Skip to content

Create CheckDependencies class#75

Open
nano-labs wants to merge 2 commits intobchao1:masterfrom
nano-labs:master
Open

Create CheckDependencies class#75
nano-labs wants to merge 2 commits intobchao1:masterfrom
nano-labs:master

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

1 participant