Skip to content

Conversation

@nano-labs
Copy link

This class extends Check adding a dependency tree so when an item is checked it automatically checks all it's dependencies. Also, if an item is unchecked it automatically unchecks all it's dependants. The effect cascades to dependencies of dependencies.

Here's an example:

from bullet import CheckDependencies
from pprint import pprint
dependency_tree = (
    ("Option A", ("Option B",)),
    ("Option B", ("Option C",)),
    ("Option C", ()),
    ("Option D", ("Option C", "Option E")),
    ("Option E", ()),
)
pprint(dependency_tree)
print()
cli = CheckDependencies("Check some options", dep_tree=dependency_tree)
print(cli.launch())

checkdependency.gif

Or a different usage:

from bullet import CheckDependencies
from pprint import pprint
dependency_tree = (
    ("Option A", ()),
    ("Option B", ()),
    ("Option C", ()),
    ("Option D", ()),
    ("Option E", ()),
    ("ALL ABOVE", ("Option A", "Option B", "Option C", "Option D", "Option E")),
)
pprint(dependency_tree)
print()
cli = CheckDependencies("Check some options", dep_tree=dependency_tree)
print(cli.launch())

allabove.gif

@nano-labs
Copy link
Author

Im already using this on my own project: https://github.com/nano-labs/dstart

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant