معرفی شرکت ها


cs.fsm-20221118


Card image cap
تبلیغات ما

مشتریان به طور فزاینده ای آنلاین هستند. تبلیغات می تواند به آنها کمک کند تا کسب و کار شما را پیدا کنند.

مشاهده بیشتر
Card image cap
تبلیغات ما

مشتریان به طور فزاینده ای آنلاین هستند. تبلیغات می تواند به آنها کمک کند تا کسب و کار شما را پیدا کنند.

مشاهده بیشتر
Card image cap
تبلیغات ما

مشتریان به طور فزاینده ای آنلاین هستند. تبلیغات می تواند به آنها کمک کند تا کسب و کار شما را پیدا کنند.

مشاهده بیشتر
Card image cap
تبلیغات ما

مشتریان به طور فزاینده ای آنلاین هستند. تبلیغات می تواند به آنها کمک کند تا کسب و کار شما را پیدا کنند.

مشاهده بیشتر
Card image cap
تبلیغات ما

مشتریان به طور فزاینده ای آنلاین هستند. تبلیغات می تواند به آنها کمک کند تا کسب و کار شما را پیدا کنند.

مشاهده بیشتر

توضیحات

Basic Finite State Machine (FSM) tools.
ویژگی مقدار
سیستم عامل -
نام فایل cs.fsm-20221118
نام cs.fsm
نسخه کتابخانه 20221118
نگهدارنده []
ایمیل نگهدارنده []
نویسنده Cameron Simpson
ایمیل نویسنده Cameron Simpson <cs@cskk.id.au>
آدرس صفحه اصلی https://bitbucket.org/cameron_simpson/css/commits/all
آدرس اینترنتی https://pypi.org/project/cs.fsm/
مجوز GNU General Public License v3 or later (GPLv3+)
Basic Finite State Machine (FSM) tools. *Latest release 20221118*: * FSM.__init__: make state optional, default from self.FSM_DEFAULT_STATE - now all args are optional. * FSM.__init__: if the state is None or not supplied, do not set .fsm_state at all; add explaination for this weird design choice. * FSM.__getattr__: only generate event methods for events with public names (no leading underscore). * FSM: new .fsm_history property, aiding subclassing elsewhere. * FSM: drop dot_node_fillcolor, now provided by DOTNodeMixin.__getattr__, provide dot_node_palette_key using self.fsm_state. * FSM.dot_node_attrs: color from self.dot_node_color. ## Class `FSM(cs.gvutils.DOTNodeMixin)` Base class for a finite state machine (FSM). The allowed states and transitions are defined by the class attribute `FSM_TRANSITIONS`, a mapping of *state*->*event*->*new_state*. Each instance has the following attributes: * `fsm_state`: the current state value. * `fsm_history`: an optional iterable of `FSMTransitionEvent` state transitions recorded by the `fsm_event` method. Usually this would be `None` (the default) or a `list`. *Method `FSM.__init__(self, state=None, *, history=None, lock=None, transitions=None)`*: Initialise the `FSM` from: * `state`: optional _positional_ parameter for the initial state, default `self.FSM_DEFAULT_STATE` * `history`: an optional object to record state transition history, default `None`; if not `None` this should be an iterable object with a `.append(entry)` method such as a `list`. * `lock`: an optional mutex to control access; if presupplied and shared with the caller it should probably be an `RLock`; the default is a `Lock`, which is enough for `FSM` private use * `transitions`: optional *state*->*event*->*state* mapping; if provided, this will override the class `FSM_TRANSITIONS` mapping Note that the `FSM` base class does not provide a `FSM_DEFAULT_STATE` attribute; a default `state` value of `None` will leave `.fsm_state` _unset_. This behaviour is is chosen mostly to support subclasses with unusual behaviour, particularly Django's `Model` class whose `refresh_from_db` method seems to not refresh fields which already exist, and setting `.fsm_state` from a `FSM_DEFAULT_STATE` class attribute thus breaks this method. Subclasses of this class and `Model` should _not_ provide a `FSM_DEFAULT_STATE` attribute, instead relying on the field definition to provide this default in the usual way. ## Class `FSMError(builtins.Exception, builtins.BaseException)` An exception associated with an `FSM`. These have a `.fsm` attribute storing an (optional) `FSM` reference supplied at initialisation. ## `FSMSubType = ~FSMSubType` Type variable. Usage:: T = TypeVar('T') # Can be anything A = TypeVar('A', str, bytes) # Must be str or bytes Type variables exist primarily for the benefit of static type checkers. They serve as the parameters for generic types as well as for generic function definitions. See class Generic for more information on generic types. Generic functions work as follows: def repeat(x: T, n: int) -> List[T]: '''Return a list containing n references to x.''' return [x]*n def longest(x: A, y: A) -> A: '''Return the longest of two strings.''' return x if len(x) >= len(y) else y The latter example's signature is essentially the overloading of (str, str) -> str and (bytes, bytes) -> bytes. Also note that if the arguments are instances of some subclass of str, the return type is still plain str. At runtime, isinstance(x, T) and issubclass(C, T) will raise TypeError. Type variables defined with covariant=True or contravariant=True can be used to declare covariant or contravariant generic types. See PEP 484 for more details. By default generic types are invariant in all type variables. Type variables can be introspected. e.g.: T.__name__ == 'T' T.__constraints__ == () T.__covariant__ == False T.__contravariant__ = False A.__constraints__ == (str, bytes) Note that only type variables defined in global scope can be pickled. ## Class `FSMTransitionEvent(builtins.tuple)` FSMTransitionEvent(old_state, new_state, event, when, extra) *Method `FSMTransitionEvent.__new__(_cls, old_state, new_state, event, when, extra)`*: Create new instance of FSMTransitionEvent(old_state, new_state, event, when, extra) # Release Log *Release 20221118*: * FSM.__init__: make state optional, default from self.FSM_DEFAULT_STATE - now all args are optional. * FSM.__init__: if the state is None or not supplied, do not set .fsm_state at all; add explaination for this weird design choice. * FSM.__getattr__: only generate event methods for events with public names (no leading underscore). * FSM: new .fsm_history property, aiding subclassing elsewhere. * FSM: drop dot_node_fillcolor, now provided by DOTNodeMixin.__getattr__, provide dot_node_palette_key using self.fsm_state. * FSM.dot_node_attrs: color from self.dot_node_color. *Release 20220918*: Replace callback exception warning() with exception() for the traceback. *Release 20220805.1*: * FSM: subclass DOTNodeMixin and provide a hook for a colour palette for node fillcolors. * Other minor changes. *Release 20220805*: Initial PyPI release.


نیازمندی

مقدار نام
>=20220429 cs.gimmicks
>=20221118 cs.gvutils
>=20220918 cs.lex
>=20221118 cs.pfx
- typeguard


نحوه نصب


نصب پکیج whl cs.fsm-20221118:

    pip install cs.fsm-20221118.whl


نصب پکیج tar.gz cs.fsm-20221118:

    pip install cs.fsm-20221118.tar.gz