ImperialCollegeLondon / FINESSE

A graphical user interface for controlling and monitoring an interferometer device
BSD 3-Clause "New" or "Revised" License
3 stars 1 forks source link

Bump python-statemachine from 2.1.2 to 2.3.0 #611

Closed dependabot[bot] closed 5 months ago

dependabot[bot] commented 5 months ago

Bumps python-statemachine from 2.1.2 to 2.3.0.

Release notes

Sourced from python-statemachine's releases.

v2.2.0

StateMachine 2.2.0

May 6, 2024

What's new in 2.2.0

In this release, we conducted a general cleanup and refactoring across various modules to enhance code readability and maintainability. We improved exception handling and reduced code redundancy.

As a result, we achieved a ~2.2x faster setup in our performance tests and significantly simplified the callback machinery.

Check of unreachable and non-final states

We included one more state machine definition validation for non-final states.

We already check if any states are unreachable from the initial state, if not, an InvalidDefinition exception is thrown.

>>> from statemachine import StateMachine, State

>>> class TrafficLightMachine(StateMachine): ... "A workflow machine" ... red = State('Red', initial=True, value=1) ... green = State('Green', value=2) ... orange = State('Orange', value=3) ... hazard = State('Hazard', value=4) ... ... cycle = red.to(green) | green.to(orange) | orange.to(red) ... blink = hazard.to.itself() Traceback (most recent call last): ... InvalidDefinition: There are unreachable states. The statemachine graph should have a single component. Disconnected states: ['hazard']

From this release, StateMachine will also check that all non-final states have an outgoing transition, and warn you if any states would result in the statemachine becoming trapped in a non-final state with no further transitions possible.

This will currently issue a warning, but can be turned into an exception by setting `strict_states=True` on the class.
>>> from statemachine import StateMachine, State

>>> class TrafficLightMachine(StateMachine, strict_states=True): ... "A workflow machine" ... red = State('Red', initial=True, value=1) ... green = State('Green', value=2) ... orange = State('Orange', value=3) </tr></table>

... (truncated)

Commits
  • d011271 Merge branch 'release/2.3.0'
  • 60221c3 chore: Bump version to 2.3.0
  • c248a43 fix: Fix Python3.7 tests
  • fe2fd15 docs: Update readme
  • 2bc483c deps: Fix development dependencies declararion to allow python3.7+ usage
  • c1818ad docs: Lib logo
  • 661147f Update README.md to fix example (#441)
  • 2dd1233 feat: Support for native coroutines (asyncio) (#435)
  • 79546a5 chore: Example of issue #434
  • 997211a fix: release action needs graphviz to run tests before publising
  • Additional commits viewable in compare view


Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
dependabot[bot] commented 5 months ago

Superseded by #616.