mirror of
https://github.com/python-kasa/python-kasa.git
synced 2025-08-09 20:24:02 +00:00
Split out main cli module into lazily loaded submodules (#1039)
This commit is contained in:
46
kasa/cli/schedule.py
Normal file
46
kasa/cli/schedule.py
Normal file
@@ -0,0 +1,46 @@
|
||||
"""Module for cli schedule commands.."""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import asyncclick as click
|
||||
|
||||
from .common import (
|
||||
echo,
|
||||
error,
|
||||
pass_dev,
|
||||
pass_dev_or_child,
|
||||
)
|
||||
|
||||
|
||||
@click.group()
|
||||
@pass_dev
|
||||
async def schedule(dev):
|
||||
"""Scheduling commands."""
|
||||
|
||||
|
||||
@schedule.command(name="list")
|
||||
@pass_dev_or_child
|
||||
@click.argument("type", default="schedule")
|
||||
async def _schedule_list(dev, type):
|
||||
"""Return the list of schedule actions for the given type."""
|
||||
sched = dev.modules[type]
|
||||
for rule in sched.rules:
|
||||
print(rule)
|
||||
else:
|
||||
error(f"No rules of type {type}")
|
||||
|
||||
return sched.rules
|
||||
|
||||
|
||||
@schedule.command(name="delete")
|
||||
@pass_dev_or_child
|
||||
@click.option("--id", type=str, required=True)
|
||||
async def delete_rule(dev, id):
|
||||
"""Delete rule from device."""
|
||||
schedule = dev.modules["schedule"]
|
||||
rule_to_delete = next(filter(lambda rule: (rule.id == id), schedule.rules), None)
|
||||
if rule_to_delete:
|
||||
echo(f"Deleting rule id {id}")
|
||||
return await schedule.delete_rule(rule_to_delete)
|
||||
else:
|
||||
error(f"No rule with id {id} was found")
|
Reference in New Issue
Block a user