Skip to content

Dependicies for CLI variant are needlessly complex #17

@MitchellThompkins

Description

@MitchellThompkins

Because this pulls in flutter, it is needlessly dependency heavy for users that only use the CLI. Consider doing something like:

[project]
dependencies = [
    "click",
    "requests"
]

[project.optional-dependencies]
gui = [
    "PySide6",
    "qtpy",
    "mpv"
]

and

pip install rclone-decrypt
pip install "rclone-decrypt[gui]"

Then only pull in the deps specified:

def main():
    parser = argparse.ArgumentParser()
    parser.add_argument("--gui", action="store_true")

    args = parser.parse_args()

    if args.gui:
        from rclone_decrypt.gui import run_gui
        run_gui()
    else:
        from rclone_decrypt.cli import run_cli
        run_cli()

Consider also splitting up into 2 packages but that's not necessarily required.

rclone_decrypt/
    core/
        decrypt.py
    cli/
        main.py
    gui/
        app.py

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions