dynamically load commands from obsws_cli.commands

no changes to files other than imports

patch bump
This commit is contained in:
onyx-and-iris 2026-01-24 22:29:33 +00:00
parent 8bec6908e5
commit 1ddd45911d
20 changed files with 44 additions and 60 deletions

View File

@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: 2025-present onyx-and-iris <code@onyxandiris.online>
#
# SPDX-License-Identifier: MIT
__version__ = '0.24.4'
__version__ = '0.24.5'

View File

@ -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):

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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)