Skip to main content

TaskManager with context resolution

Project description

Developing

Install extras:

python -m pip install .[test] .[lint]

Ideas

Parallel States

To model a parallel substate, for example you have a MenuMachine and only in the specific menu SFTPState it is possible to change the SFTPState. The SFTPState would be a substate which lives indipendently (parallel) from the main MenuMachine state, however it can only be changed when being when the MenuMachine is in the SFTPMenu state.

It could look something like:

class SFTPMenu(MenuMachine):
    def enable_sftp(self) -> Prallel(SFTPEnabled):
        pass

    def disable_sftp(self) -> Prallel(SFTPDisabled):
        pass

calling enable_sftp or disable_sftp would not change the main menu state, which would still be in SFTPMenu but the substate would change.

The object carrying the state would probably have multiple attribs, like menustate and sftpstate.

Automatic Transitions

I created this module for automatic transitions, it however only works transparently if there is only one transitions to each state, my current solution is:

class MyState(MyMachine):
    def transition_which_is_not_normal_path(self):
        self.state(MyState,NewState)

which works but is not transparent, better would be something like:

class MyState(MyMachine):
    def transition_which_is_not_normal_path(self) -> NoAutoTrans(NewState):
        self.state(MyState,NewState)

And to have an easier auto transition it would be great to maybe set some key in the Machine to do auto transitions if possible and then:

MyState(stateobj)

would automaticallly transition if it wouldn’t be in the correct state.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for taskcontext, version 0.1.0
Filename, size File type Python version Upload date Hashes
Filename, size taskcontext-0.1.0.tar.gz (5.8 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page