diff --git a/obsws_cli/__about__.py b/obsws_cli/__about__.py index d02145c..4332135 100644 --- a/obsws_cli/__about__.py +++ b/obsws_cli/__about__.py @@ -1,4 +1,4 @@ # SPDX-FileCopyrightText: 2025-present onyx-and-iris # # SPDX-License-Identifier: MIT -__version__ = '0.24.4' +__version__ = '0.24.5' diff --git a/obsws_cli/app.py b/obsws_cli/app.py index 99b7d4e..d623ba4 100644 --- a/obsws_cli/app.py +++ b/obsws_cli/app.py @@ -2,6 +2,7 @@ import importlib import logging +import pkgutil from typing import Annotated import obsws_python as obsws @@ -9,32 +10,15 @@ import typer from obsws_cli.__about__ import __version__ as version -from . import config, console, styles +from . import commands, config, console, styles from .alias import RootTyperAliasGroup app = typer.Typer(cls=RootTyperAliasGroup) -for sub_typer in ( - 'filter', - 'group', - 'hotkey', - 'input', - 'media', - 'profile', - 'projector', - 'record', - 'replaybuffer', - 'scene', - 'scenecollection', - 'sceneitem', - 'screenshot', - 'settings', - 'stream', - 'studiomode', - 'text', - 'virtualcam', +for importer, modname, ispkg in pkgutil.iter_modules( + commands.__path__, commands.__name__ + '.' ): - module = importlib.import_module(f'.{sub_typer}', package=__package__) - app.add_typer(module.app, name=sub_typer) + subtyper = importlib.import_module(modname) + app.add_typer(subtyper.app, name=modname.split('.')[-1]) def version_callback(value: bool): diff --git a/obsws_cli/filter.py b/obsws_cli/commands/filter.py similarity index 98% rename from obsws_cli/filter.py rename to obsws_cli/commands/filter.py index 470be77..dfcc983 100644 --- a/obsws_cli/filter.py +++ b/obsws_cli/commands/filter.py @@ -7,8 +7,8 @@ import typer from rich.table import Table from rich.text import Text -from . import console, util -from .alias import SubTyperAliasGroup +from obsws_cli import console, util +from obsws_cli.alias import SubTyperAliasGroup app = typer.Typer(cls=SubTyperAliasGroup) diff --git a/obsws_cli/group.py b/obsws_cli/commands/group.py similarity index 97% rename from obsws_cli/group.py rename to obsws_cli/commands/group.py index f83ef3a..b50e7bc 100644 --- a/obsws_cli/group.py +++ b/obsws_cli/commands/group.py @@ -6,9 +6,9 @@ import typer from rich.table import Table from rich.text import Text -from . import console, util, validate -from .alias import SubTyperAliasGroup -from .protocols import DataclassProtocol +from obsws_cli import console, util, validate +from obsws_cli.alias import SubTyperAliasGroup +from obsws_cli.protocols import DataclassProtocol app = typer.Typer(cls=SubTyperAliasGroup) diff --git a/obsws_cli/hotkey.py b/obsws_cli/commands/hotkey.py similarity index 96% rename from obsws_cli/hotkey.py rename to obsws_cli/commands/hotkey.py index 57c6591..64231f4 100644 --- a/obsws_cli/hotkey.py +++ b/obsws_cli/commands/hotkey.py @@ -6,8 +6,8 @@ import typer from rich.table import Table from rich.text import Text -from . import console -from .alias import SubTyperAliasGroup +from obsws_cli import console +from obsws_cli.alias import SubTyperAliasGroup app = typer.Typer(cls=SubTyperAliasGroup) diff --git a/obsws_cli/input.py b/obsws_cli/commands/input.py similarity index 99% rename from obsws_cli/input.py rename to obsws_cli/commands/input.py index 63a63ba..5ccc7bd 100644 --- a/obsws_cli/input.py +++ b/obsws_cli/commands/input.py @@ -7,8 +7,8 @@ import typer from rich.table import Table from rich.text import Text -from . import console, util, validate -from .alias import SubTyperAliasGroup +from obsws_cli import console, util, validate +from obsws_cli.alias import SubTyperAliasGroup app = typer.Typer(cls=SubTyperAliasGroup) diff --git a/obsws_cli/media.py b/obsws_cli/commands/media.py similarity index 96% rename from obsws_cli/media.py rename to obsws_cli/commands/media.py index d53c11a..50bf641 100644 --- a/obsws_cli/media.py +++ b/obsws_cli/commands/media.py @@ -4,8 +4,8 @@ from typing import Annotated, Optional import typer -from . import console, util, validate -from .alias import SubTyperAliasGroup +from obsws_cli import console, util, validate +from obsws_cli.alias import SubTyperAliasGroup app = typer.Typer(cls=SubTyperAliasGroup) diff --git a/obsws_cli/profile.py b/obsws_cli/commands/profile.py similarity index 97% rename from obsws_cli/profile.py rename to obsws_cli/commands/profile.py index 1b7ee81..de25153 100644 --- a/obsws_cli/profile.py +++ b/obsws_cli/commands/profile.py @@ -6,8 +6,8 @@ import typer from rich.table import Table from rich.text import Text -from . import console, util, validate -from .alias import SubTyperAliasGroup +from obsws_cli import console, util, validate +from obsws_cli.alias import SubTyperAliasGroup app = typer.Typer(cls=SubTyperAliasGroup) diff --git a/obsws_cli/projector.py b/obsws_cli/commands/projector.py similarity index 96% rename from obsws_cli/projector.py rename to obsws_cli/commands/projector.py index 9eecd53..050c7c1 100644 --- a/obsws_cli/projector.py +++ b/obsws_cli/commands/projector.py @@ -6,8 +6,8 @@ import typer from rich.table import Table from rich.text import Text -from . import console -from .alias import SubTyperAliasGroup +from obsws_cli import console +from obsws_cli.alias import SubTyperAliasGroup app = typer.Typer(cls=SubTyperAliasGroup) diff --git a/obsws_cli/record.py b/obsws_cli/commands/record.py similarity index 98% rename from obsws_cli/record.py rename to obsws_cli/commands/record.py index 8915d10..a81645a 100644 --- a/obsws_cli/record.py +++ b/obsws_cli/commands/record.py @@ -5,8 +5,8 @@ from typing import Annotated, Optional import typer -from . import console -from .alias import SubTyperAliasGroup +from obsws_cli import console +from obsws_cli.alias import SubTyperAliasGroup app = typer.Typer(cls=SubTyperAliasGroup) diff --git a/obsws_cli/replaybuffer.py b/obsws_cli/commands/replaybuffer.py similarity index 95% rename from obsws_cli/replaybuffer.py rename to obsws_cli/commands/replaybuffer.py index ad2dc5c..b0cc1a9 100644 --- a/obsws_cli/replaybuffer.py +++ b/obsws_cli/commands/replaybuffer.py @@ -2,8 +2,8 @@ import typer -from . import console -from .alias import SubTyperAliasGroup +from obsws_cli import console +from obsws_cli.alias import SubTyperAliasGroup app = typer.Typer(cls=SubTyperAliasGroup) diff --git a/obsws_cli/scene.py b/obsws_cli/commands/scene.py similarity index 97% rename from obsws_cli/scene.py rename to obsws_cli/commands/scene.py index 6e6979e..8d16ee9 100644 --- a/obsws_cli/scene.py +++ b/obsws_cli/commands/scene.py @@ -6,8 +6,8 @@ import typer from rich.table import Table from rich.text import Text -from . import console, util, validate -from .alias import SubTyperAliasGroup +from obsws_cli import console, util, validate +from obsws_cli.alias import SubTyperAliasGroup app = typer.Typer(cls=SubTyperAliasGroup) diff --git a/obsws_cli/scenecollection.py b/obsws_cli/commands/scenecollection.py similarity index 96% rename from obsws_cli/scenecollection.py rename to obsws_cli/commands/scenecollection.py index 1792a42..838a1ba 100644 --- a/obsws_cli/scenecollection.py +++ b/obsws_cli/commands/scenecollection.py @@ -5,8 +5,8 @@ from typing import Annotated import typer from rich.table import Table -from . import console, validate -from .alias import SubTyperAliasGroup +from obsws_cli import console, validate +from obsws_cli.alias import SubTyperAliasGroup app = typer.Typer(cls=SubTyperAliasGroup) diff --git a/obsws_cli/sceneitem.py b/obsws_cli/commands/sceneitem.py similarity index 99% rename from obsws_cli/sceneitem.py rename to obsws_cli/commands/sceneitem.py index 29a2db7..bf59421 100644 --- a/obsws_cli/sceneitem.py +++ b/obsws_cli/commands/sceneitem.py @@ -5,8 +5,8 @@ from typing import Annotated, Optional import typer from rich.table import Table -from . import console, util, validate -from .alias import SubTyperAliasGroup +from obsws_cli import console, util, validate +from obsws_cli.alias import SubTyperAliasGroup app = typer.Typer(cls=SubTyperAliasGroup) diff --git a/obsws_cli/screenshot.py b/obsws_cli/commands/screenshot.py similarity index 96% rename from obsws_cli/screenshot.py rename to obsws_cli/commands/screenshot.py index 6ee953f..6219053 100644 --- a/obsws_cli/screenshot.py +++ b/obsws_cli/commands/screenshot.py @@ -6,8 +6,8 @@ from typing import Annotated import obsws_python as obsws import typer -from . import console -from .alias import SubTyperAliasGroup +from obsws_cli import console +from obsws_cli.alias import SubTyperAliasGroup app = typer.Typer(cls=SubTyperAliasGroup) diff --git a/obsws_cli/settings.py b/obsws_cli/commands/settings.py similarity index 99% rename from obsws_cli/settings.py rename to obsws_cli/commands/settings.py index 8ac483d..e2936e2 100644 --- a/obsws_cli/settings.py +++ b/obsws_cli/commands/settings.py @@ -6,8 +6,8 @@ import typer from rich.table import Table from rich.text import Text -from . import console, util -from .alias import SubTyperAliasGroup +from obsws_cli import console, util +from obsws_cli.alias import SubTyperAliasGroup app = typer.Typer(cls=SubTyperAliasGroup) diff --git a/obsws_cli/stream.py b/obsws_cli/commands/stream.py similarity index 96% rename from obsws_cli/stream.py rename to obsws_cli/commands/stream.py index 854051a..567cf91 100644 --- a/obsws_cli/stream.py +++ b/obsws_cli/commands/stream.py @@ -2,8 +2,8 @@ import typer -from . import console -from .alias import SubTyperAliasGroup +from obsws_cli import console +from obsws_cli.alias import SubTyperAliasGroup app = typer.Typer(cls=SubTyperAliasGroup) diff --git a/obsws_cli/studiomode.py b/obsws_cli/commands/studiomode.py similarity index 94% rename from obsws_cli/studiomode.py rename to obsws_cli/commands/studiomode.py index 449bd0c..54a2f66 100644 --- a/obsws_cli/studiomode.py +++ b/obsws_cli/commands/studiomode.py @@ -2,8 +2,8 @@ import typer -from . import console -from .alias import SubTyperAliasGroup +from obsws_cli import console +from obsws_cli.alias import SubTyperAliasGroup app = typer.Typer(cls=SubTyperAliasGroup) diff --git a/obsws_cli/text.py b/obsws_cli/commands/text.py similarity index 95% rename from obsws_cli/text.py rename to obsws_cli/commands/text.py index 9484a0d..0d715dc 100644 --- a/obsws_cli/text.py +++ b/obsws_cli/commands/text.py @@ -4,8 +4,8 @@ from typing import Annotated, Optional import typer -from . import console, validate -from .alias import SubTyperAliasGroup +from obsws_cli import console, validate +from obsws_cli.alias import SubTyperAliasGroup app = typer.Typer(cls=SubTyperAliasGroup) diff --git a/obsws_cli/virtualcam.py b/obsws_cli/commands/virtualcam.py similarity index 93% rename from obsws_cli/virtualcam.py rename to obsws_cli/commands/virtualcam.py index dc739c1..01878ab 100644 --- a/obsws_cli/virtualcam.py +++ b/obsws_cli/commands/virtualcam.py @@ -2,8 +2,8 @@ import typer -from . import console -from .alias import SubTyperAliasGroup +from obsws_cli import console +from obsws_cli.alias import SubTyperAliasGroup app = typer.Typer(cls=SubTyperAliasGroup)