python-statemachine 3.1.2__tar.gz → 3.2.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (590) hide show
  1. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/.github/workflows/python-package.yml +1 -1
  2. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/.gitignore +5 -0
  3. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/.pre-commit-config.yaml +1 -1
  4. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/AGENTS.md +28 -2
  5. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/PKG-INFO +16 -3
  6. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/README.md +7 -0
  7. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/docs/api.md +13 -0
  8. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/docs/behaviour.md +9 -0
  9. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/docs/contributing.md +29 -0
  10. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/docs/index.md +11 -0
  11. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/docs/installation.md +11 -4
  12. python_statemachine-3.2.0/docs/io/formats.md +479 -0
  13. python_statemachine-3.2.0/docs/io/index.md +129 -0
  14. python_statemachine-3.2.0/docs/io/json_schema.md +56 -0
  15. python_statemachine-3.2.0/docs/io/security.md +82 -0
  16. python_statemachine-3.2.0/docs/releases/3.2.0.md +206 -0
  17. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/docs/releases/index.md +2 -1
  18. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/docs/validations.md +7 -0
  19. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/pyproject.toml +27 -28
  20. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/statemachine/__init__.py +1 -1
  21. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/statemachine/callbacks.py +5 -11
  22. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/statemachine/configuration.py +5 -6
  23. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/statemachine/contrib/diagram/extract.py +23 -24
  24. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/statemachine/contrib/diagram/formatter.py +5 -7
  25. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/statemachine/contrib/diagram/model.py +9 -11
  26. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/statemachine/contrib/diagram/renderers/dot.py +20 -26
  27. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/statemachine/contrib/diagram/renderers/mermaid.py +36 -40
  28. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/statemachine/contrib/diagram/renderers/table.py +7 -9
  29. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/statemachine/contrib/weighted.py +7 -11
  30. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/statemachine/dispatcher.py +13 -12
  31. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/statemachine/engines/async_.py +5 -6
  32. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/statemachine/engines/base.py +12 -14
  33. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/statemachine/event.py +1 -2
  34. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/statemachine/exceptions.py +1 -1
  35. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/statemachine/factory.py +11 -15
  36. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/statemachine/graph.py +2 -2
  37. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/statemachine/invoke.py +12 -11
  38. python_statemachine-3.2.0/statemachine/io/__init__.py +45 -0
  39. {python_statemachine-3.1.2/statemachine/io/scxml → python_statemachine-3.2.0/statemachine/io}/actions.py +158 -288
  40. python_statemachine-3.2.0/statemachine/io/builder.py +195 -0
  41. python_statemachine-3.1.2/statemachine/io/__init__.py → python_statemachine-3.2.0/statemachine/io/class_factory.py +32 -21
  42. python_statemachine-3.2.0/statemachine/io/evaluators.py +275 -0
  43. python_statemachine-3.2.0/statemachine/io/interpreter.py +128 -0
  44. {python_statemachine-3.1.2/statemachine/io/scxml → python_statemachine-3.2.0/statemachine/io}/invoke.py +77 -49
  45. python_statemachine-3.2.0/statemachine/io/json/__init__.py +1 -0
  46. python_statemachine-3.2.0/statemachine/io/json/reader.py +27 -0
  47. python_statemachine-3.2.0/statemachine/io/loader.py +161 -0
  48. python_statemachine-3.2.0/statemachine/io/model.py +268 -0
  49. python_statemachine-3.2.0/statemachine/io/native.py +402 -0
  50. python_statemachine-3.2.0/statemachine/io/ports.py +83 -0
  51. python_statemachine-3.2.0/statemachine/io/schemas/statechart.schema.json +258 -0
  52. python_statemachine-3.2.0/statemachine/io/scxml/__init__.py +12 -0
  53. python_statemachine-3.2.0/statemachine/io/scxml/processor.py +33 -0
  54. python_statemachine-3.1.2/statemachine/io/scxml/parser.py → python_statemachine-3.2.0/statemachine/io/scxml/reader.py +64 -47
  55. python_statemachine-3.2.0/statemachine/io/system_variables.py +184 -0
  56. python_statemachine-3.2.0/statemachine/io/validation.py +44 -0
  57. python_statemachine-3.2.0/statemachine/io/yaml/__init__.py +1 -0
  58. python_statemachine-3.2.0/statemachine/io/yaml/reader.py +65 -0
  59. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/statemachine/locale/en/LC_MESSAGES/statemachine.po +19 -19
  60. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/statemachine/locale/hi_IN/LC_MESSAGES/statemachine.po +19 -19
  61. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/statemachine/locale/pt_BR/LC_MESSAGES/statemachine.po +19 -19
  62. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/statemachine/locale/zh_CN/LC_MESSAGES/statemachine.po +19 -19
  63. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/statemachine/orderedset.py +3 -3
  64. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/statemachine/registry.py +1 -4
  65. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/statemachine/signature.py +2 -5
  66. python_statemachine-3.2.0/statemachine/spec_parser.py +374 -0
  67. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/statemachine/state.py +5 -6
  68. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/statemachine/statemachine.py +18 -20
  69. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/statemachine/states.py +3 -5
  70. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/statemachine/transition.py +3 -4
  71. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/statemachine/transition_list.py +4 -5
  72. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/statemachine/transition_mixin.py +1 -1
  73. python_statemachine-3.2.0/tests/io/format_parity/guarded_counter.json +37 -0
  74. python_statemachine-3.2.0/tests/io/format_parity/guarded_counter.scxml +16 -0
  75. python_statemachine-3.2.0/tests/io/format_parity/guarded_counter.yaml +16 -0
  76. python_statemachine-3.2.0/tests/io/format_parity/invoke_child.json +37 -0
  77. python_statemachine-3.2.0/tests/io/format_parity/invoke_child.scxml +18 -0
  78. python_statemachine-3.2.0/tests/io/format_parity/invoke_child.yaml +17 -0
  79. python_statemachine-3.2.0/tests/io/format_parity/native/order_pipeline.json +92 -0
  80. python_statemachine-3.2.0/tests/io/format_parity/native/order_pipeline.yaml +47 -0
  81. python_statemachine-3.2.0/tests/io/format_parity/native/telemetry.json +122 -0
  82. python_statemachine-3.2.0/tests/io/format_parity/native/telemetry.yaml +50 -0
  83. python_statemachine-3.2.0/tests/io/format_parity/system_event.json +30 -0
  84. python_statemachine-3.2.0/tests/io/format_parity/system_event.scxml +13 -0
  85. python_statemachine-3.2.0/tests/io/format_parity/system_event.yaml +14 -0
  86. python_statemachine-3.2.0/tests/io/format_parity/w3c_test147_if.json +76 -0
  87. python_statemachine-3.2.0/tests/io/format_parity/w3c_test147_if.scxml +26 -0
  88. python_statemachine-3.2.0/tests/io/format_parity/w3c_test147_if.yaml +29 -0
  89. python_statemachine-3.2.0/tests/io/format_parity/w3c_test155_foreach.json +49 -0
  90. python_statemachine-3.2.0/tests/io/format_parity/w3c_test155_foreach.scxml +20 -0
  91. python_statemachine-3.2.0/tests/io/format_parity/w3c_test155_foreach.yaml +22 -0
  92. python_statemachine-3.2.0/tests/io/test_format_parity.py +59 -0
  93. python_statemachine-3.2.0/tests/io/test_guards_parity.py +145 -0
  94. python_statemachine-3.2.0/tests/io/test_interpreter.py +258 -0
  95. python_statemachine-3.2.0/tests/io/test_loader.py +147 -0
  96. python_statemachine-3.2.0/tests/io/test_model.py +38 -0
  97. python_statemachine-3.2.0/tests/io/test_native.py +336 -0
  98. python_statemachine-3.2.0/tests/io/test_native_behavior.py +64 -0
  99. python_statemachine-3.2.0/tests/io/test_native_invoke.py +126 -0
  100. python_statemachine-3.2.0/tests/io/test_ports.py +70 -0
  101. python_statemachine-3.2.0/tests/io/test_readers.py +58 -0
  102. python_statemachine-3.2.0/tests/io/test_security.py +230 -0
  103. python_statemachine-3.2.0/tests/io/test_validation.py +192 -0
  104. python_statemachine-3.2.0/tests/scxml/_harness.py +58 -0
  105. python_statemachine-3.2.0/tests/scxml/test_scxml_cases.py +53 -0
  106. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/test_configuration.py +92 -0
  107. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/test_copy.py +3 -2
  108. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/test_invoke.py +59 -0
  109. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/test_io.py +33 -1
  110. python_statemachine-3.2.0/tests/test_scxml_datamodel.py +165 -0
  111. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/test_scxml_units.py +101 -72
  112. python_statemachine-3.2.0/tests/test_spec_parser_values.py +141 -0
  113. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/uv.lock +512 -1132
  114. python_statemachine-3.1.2/statemachine/io/scxml/processor.py +0 -263
  115. python_statemachine-3.1.2/statemachine/io/scxml/schema.py +0 -175
  116. python_statemachine-3.1.2/statemachine/spec_parser.py +0 -245
  117. python_statemachine-3.1.2/tests/scxml/test_scxml_cases.py +0 -101
  118. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/.git-blame-ignore-revs +0 -0
  119. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/.github/FUNDING.yml +0 -0
  120. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/.github/ISSUE_TEMPLATE.md +0 -0
  121. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/.github/workflows/release.yml +0 -0
  122. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/.readthedocs.yaml +0 -0
  123. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/CLAUDE.md +0 -0
  124. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/LICENSE +0 -0
  125. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/conftest.py +0 -0
  126. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/contributing.md +0 -0
  127. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/docs/_static/custom_machine.css +0 -0
  128. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/docs/actions.md +0 -0
  129. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/docs/async.md +0 -0
  130. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/docs/authors.md +0 -0
  131. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/docs/concepts.md +0 -0
  132. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/docs/conf.py +0 -0
  133. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/docs/diagram.md +0 -0
  134. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/docs/error_handling.md +0 -0
  135. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/docs/events.md +0 -0
  136. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/docs/guards.md +0 -0
  137. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/docs/how-to/coming_from_state_pattern.md +0 -0
  138. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/docs/how-to/coming_from_transitions.md +0 -0
  139. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/docs/images/_oc_machine_processing.svg +0 -0
  140. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/docs/images/internal_transition_sc.png +0 -0
  141. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/docs/images/lab_approval_machine_accepted.png +0 -0
  142. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/docs/images/oc_machine_processing.svg +0 -0
  143. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/docs/images/python-statemachine.png +0 -0
  144. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/docs/images/readme_trafficlightmachine.png +0 -0
  145. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/docs/images/test_state_machine_internal.png +0 -0
  146. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/docs/images/traffic_light_machine.png +0 -0
  147. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/docs/integrations.md +0 -0
  148. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/docs/invoke.md +0 -0
  149. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/docs/listeners.md +0 -0
  150. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/docs/models.md +0 -0
  151. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/docs/processing_model.md +0 -0
  152. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/docs/releases/0.1.0.md +0 -0
  153. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/docs/releases/0.2.0.md +0 -0
  154. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/docs/releases/0.3.0.md +0 -0
  155. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/docs/releases/0.4.2.md +0 -0
  156. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/docs/releases/0.5.0.md +0 -0
  157. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/docs/releases/0.5.1.md +0 -0
  158. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/docs/releases/0.6.0.md +0 -0
  159. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/docs/releases/0.6.1.md +0 -0
  160. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/docs/releases/0.6.2.md +0 -0
  161. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/docs/releases/0.7.0.md +0 -0
  162. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/docs/releases/0.7.1.md +0 -0
  163. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/docs/releases/0.8.0.md +0 -0
  164. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/docs/releases/0.9.0.md +0 -0
  165. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/docs/releases/1.0.0.md +0 -0
  166. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/docs/releases/1.0.1.md +0 -0
  167. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/docs/releases/1.0.2.md +0 -0
  168. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/docs/releases/1.0.3.md +0 -0
  169. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/docs/releases/2.0.0.md +0 -0
  170. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/docs/releases/2.1.0.md +0 -0
  171. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/docs/releases/2.1.1.md +0 -0
  172. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/docs/releases/2.1.2.md +0 -0
  173. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/docs/releases/2.2.0.md +0 -0
  174. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/docs/releases/2.3.0.md +0 -0
  175. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/docs/releases/2.3.1.md +0 -0
  176. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/docs/releases/2.3.2.md +0 -0
  177. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/docs/releases/2.3.3.md +0 -0
  178. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/docs/releases/2.3.4.md +0 -0
  179. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/docs/releases/2.3.5.md +0 -0
  180. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/docs/releases/2.3.6.md +0 -0
  181. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/docs/releases/2.4.0.md +0 -0
  182. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/docs/releases/2.5.0.md +0 -0
  183. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/docs/releases/2.6.0.md +0 -0
  184. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/docs/releases/3.0.0.md +0 -0
  185. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/docs/releases/3.1.0.md +0 -0
  186. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/docs/releases/3.1.1.md +0 -0
  187. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/docs/releases/3.1.2.md +0 -0
  188. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/docs/releases/upgrade_2x_to_3.md +0 -0
  189. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/docs/statechart.md +0 -0
  190. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/docs/states.md +0 -0
  191. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/docs/timeout.md +0 -0
  192. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/docs/transitions.md +0 -0
  193. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/docs/tutorial.md +0 -0
  194. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/docs/weighted_transitions.md +0 -0
  195. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/statemachine/contrib/__init__.py +0 -0
  196. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/statemachine/contrib/diagram/__init__.py +0 -0
  197. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/statemachine/contrib/diagram/__main__.py +0 -0
  198. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/statemachine/contrib/diagram/renderers/__init__.py +0 -0
  199. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/statemachine/contrib/diagram/sphinx_ext.py +0 -0
  200. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/statemachine/contrib/timeout.py +0 -0
  201. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/statemachine/engines/__init__.py +0 -0
  202. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/statemachine/engines/sync.py +0 -0
  203. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/statemachine/event_data.py +0 -0
  204. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/statemachine/events.py +0 -0
  205. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/statemachine/i18n.py +0 -0
  206. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/statemachine/mixins.py +0 -0
  207. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/statemachine/model.py +0 -0
  208. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/statemachine/py.typed +0 -0
  209. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/statemachine/utils.py +0 -0
  210. {python_statemachine-3.1.2/statemachine/io/scxml → python_statemachine-3.2.0/tests}/__init__.py +0 -0
  211. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/conftest.py +0 -0
  212. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/django_project/app.py +0 -0
  213. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/django_project/core/__init__,.py +0 -0
  214. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/django_project/core/settings.py +0 -0
  215. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/django_project/core/wsgi.py +0 -0
  216. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/django_project/manage.py +0 -0
  217. {python_statemachine-3.1.2/tests → python_statemachine-3.2.0/tests/django_project/workflow}/__init__.py +0 -0
  218. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/django_project/workflow/apps.py +0 -0
  219. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/django_project/workflow/models.py +0 -0
  220. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/django_project/workflow/statemachines.py +0 -0
  221. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/django_project/workflow/tests.py +0 -0
  222. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/examples/README.rst +0 -0
  223. {python_statemachine-3.1.2/tests/django_project/workflow → python_statemachine-3.2.0/tests/examples}/__init__.py +0 -0
  224. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/examples/ai_shell_machine.py +0 -0
  225. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/examples/air_conditioner_machine.py +0 -0
  226. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/examples/all_actions_machine.py +0 -0
  227. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/examples/async_guess_the_number_machine.py +0 -0
  228. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/examples/async_without_loop_machine.py +0 -0
  229. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/examples/enum_campaign_machine.py +0 -0
  230. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/examples/guess_the_number_machine.py +0 -0
  231. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/examples/lor_machine.py +0 -0
  232. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/examples/order_control_machine.py +0 -0
  233. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/examples/order_control_rich_model_machine.py +0 -0
  234. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/examples/persistent_model_machine.py +0 -0
  235. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/examples/recursive_event_machine.py +0 -0
  236. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/examples/reusing_transitions_machine.py +0 -0
  237. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/examples/sqlite_persistent_model_machine.py +0 -0
  238. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/examples/statechart_cleanup_machine.py +0 -0
  239. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/examples/statechart_compound_machine.py +0 -0
  240. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/examples/statechart_delayed_machine.py +0 -0
  241. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/examples/statechart_error_handling_machine.py +0 -0
  242. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/examples/statechart_eventless_machine.py +0 -0
  243. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/examples/statechart_history_machine.py +0 -0
  244. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/examples/statechart_in_condition_machine.py +0 -0
  245. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/examples/statechart_parallel_machine.py +0 -0
  246. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/examples/traffic_light_machine.py +0 -0
  247. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/examples/user_machine.py +0 -0
  248. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/examples/weighted_idle_machine.py +0 -0
  249. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/helpers.py +0 -0
  250. {python_statemachine-3.1.2/tests/examples → python_statemachine-3.2.0/tests/io}/__init__.py +0 -0
  251. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/machines/__init__.py +0 -0
  252. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/machines/compound/__init__.py +0 -0
  253. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/machines/compound/middle_earth_journey.py +0 -0
  254. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/machines/compound/middle_earth_journey_two_compounds.py +0 -0
  255. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/machines/compound/middle_earth_journey_with_finals.py +0 -0
  256. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/machines/compound/moria_expedition.py +0 -0
  257. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/machines/compound/moria_expedition_with_escape.py +0 -0
  258. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/machines/compound/quest_for_erebor.py +0 -0
  259. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/machines/compound/shire_to_rivendell.py +0 -0
  260. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/machines/donedata/__init__.py +0 -0
  261. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/machines/donedata/destroy_the_ring.py +0 -0
  262. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/machines/donedata/destroy_the_ring_simple.py +0 -0
  263. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/machines/donedata/nested_quest_donedata.py +0 -0
  264. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/machines/donedata/quest_for_erebor_done_convention.py +0 -0
  265. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/machines/donedata/quest_for_erebor_explicit_id.py +0 -0
  266. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/machines/donedata/quest_for_erebor_multi_word.py +0 -0
  267. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/machines/donedata/quest_for_erebor_with_event.py +0 -0
  268. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/machines/error/__init__.py +0 -0
  269. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/machines/error/error_convention_event.py +0 -0
  270. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/machines/error/error_convention_transition_list.py +0 -0
  271. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/machines/error/error_in_action_sc.py +0 -0
  272. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/machines/error/error_in_action_sm_with_flag.py +0 -0
  273. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/machines/error/error_in_after_sc.py +0 -0
  274. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/machines/error/error_in_error_handler_sc.py +0 -0
  275. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/machines/error/error_in_guard_sc.py +0 -0
  276. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/machines/error/error_in_guard_sm.py +0 -0
  277. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/machines/error/error_in_on_enter_sc.py +0 -0
  278. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/machines/eventless/__init__.py +0 -0
  279. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/machines/eventless/auto_advance.py +0 -0
  280. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/machines/eventless/beacon_chain.py +0 -0
  281. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/machines/eventless/beacon_chain_lighting.py +0 -0
  282. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/machines/eventless/coordinated_advance.py +0 -0
  283. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/machines/eventless/ring_corruption.py +0 -0
  284. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/machines/eventless/ring_corruption_with_bear_ring.py +0 -0
  285. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/machines/eventless/ring_corruption_with_tick.py +0 -0
  286. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/machines/history/__init__.py +0 -0
  287. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/machines/history/deep_memory_of_moria.py +0 -0
  288. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/machines/history/gollum_personality.py +0 -0
  289. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/machines/history/gollum_personality_default_gollum.py +0 -0
  290. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/machines/history/gollum_personality_with_default.py +0 -0
  291. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/machines/history/shallow_moria.py +0 -0
  292. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/machines/in_condition/__init__.py +0 -0
  293. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/machines/in_condition/combined_guard.py +0 -0
  294. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/machines/in_condition/descendant_check.py +0 -0
  295. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/machines/in_condition/eventless_in.py +0 -0
  296. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/machines/in_condition/fellowship.py +0 -0
  297. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/machines/in_condition/fellowship_coordination.py +0 -0
  298. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/machines/in_condition/gate_of_moria.py +0 -0
  299. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/machines/parallel/__init__.py +0 -0
  300. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/machines/parallel/session.py +0 -0
  301. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/machines/parallel/session_with_done_state.py +0 -0
  302. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/machines/parallel/two_towers.py +0 -0
  303. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/machines/parallel/war_of_the_ring.py +0 -0
  304. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/machines/parallel/war_with_exit.py +0 -0
  305. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/machines/showcase_actions.py +0 -0
  306. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/machines/showcase_compound.py +0 -0
  307. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/machines/showcase_deep_history.py +0 -0
  308. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/machines/showcase_guards.py +0 -0
  309. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/machines/showcase_history.py +0 -0
  310. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/machines/showcase_internal.py +0 -0
  311. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/machines/showcase_parallel.py +0 -0
  312. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/machines/showcase_parallel_compound.py +0 -0
  313. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/machines/showcase_self_transition.py +0 -0
  314. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/machines/showcase_simple.py +0 -0
  315. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/machines/transition_from_any.py +0 -0
  316. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/machines/tutorial_coffee_order.py +0 -0
  317. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/machines/validators/__init__.py +0 -0
  318. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/machines/validators/multi_validator.py +0 -0
  319. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/machines/validators/order_validation.py +0 -0
  320. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/machines/validators/order_validation_no_error_events.py +0 -0
  321. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/machines/validators/validator_fallthrough.py +0 -0
  322. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/machines/validators/validator_with_cond.py +0 -0
  323. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/machines/validators/validator_with_error_transition.py +0 -0
  324. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/machines/workflow/__init__.py +0 -0
  325. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/machines/workflow/campaign_machine.py +0 -0
  326. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/machines/workflow/campaign_machine_with_validator.py +0 -0
  327. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/machines/workflow/campaign_machine_with_values.py +0 -0
  328. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/machines/workflow/reverse_traffic_light.py +0 -0
  329. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/models.py +0 -0
  330. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scrape_images.py +0 -0
  331. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/__init__.py +0 -0
  332. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/conftest.py +0 -0
  333. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/test_microwave.py +0 -0
  334. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/LICENSE +0 -0
  335. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test144.scxml +0 -0
  336. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test145.scxml +0 -0
  337. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test147.scxml +0 -0
  338. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test148.scxml +0 -0
  339. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test149.scxml +0 -0
  340. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test150.scxml +0 -0
  341. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test151.scxml +0 -0
  342. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test152.scxml +0 -0
  343. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test153.scxml +0 -0
  344. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test155.scxml +0 -0
  345. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test156.scxml +0 -0
  346. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test158.scxml +0 -0
  347. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test159.scxml +0 -0
  348. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test172.scxml +0 -0
  349. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test173.scxml +0 -0
  350. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test174.scxml +0 -0
  351. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test175.scxml +0 -0
  352. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test176.scxml +0 -0
  353. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test179.scxml +0 -0
  354. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test183.scxml +0 -0
  355. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test185.scxml +0 -0
  356. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test186.scxml +0 -0
  357. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test187.scxml +0 -0
  358. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test189.scxml +0 -0
  359. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test190.scxml +0 -0
  360. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test191.scxml +0 -0
  361. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test192.scxml +0 -0
  362. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test194.scxml +0 -0
  363. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test198.scxml +0 -0
  364. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test199.scxml +0 -0
  365. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test200.scxml +0 -0
  366. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test205.scxml +0 -0
  367. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test207.scxml +0 -0
  368. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test208.scxml +0 -0
  369. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test210.scxml +0 -0
  370. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test215.scxml +0 -0
  371. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test216.scxml +0 -0
  372. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test216sub1.scxml +0 -0
  373. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test220.scxml +0 -0
  374. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test223.scxml +0 -0
  375. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test224.scxml +0 -0
  376. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test225.scxml +0 -0
  377. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test226.scxml +0 -0
  378. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test226sub1.scxml +0 -0
  379. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test228.scxml +0 -0
  380. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test229.scxml +0 -0
  381. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test232.scxml +0 -0
  382. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test233.scxml +0 -0
  383. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test234.scxml +0 -0
  384. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test235.scxml +0 -0
  385. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test236.scxml +0 -0
  386. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test237.scxml +0 -0
  387. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test239.scxml +0 -0
  388. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test239sub1.scxml +0 -0
  389. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test240.scxml +0 -0
  390. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test241.scxml +0 -0
  391. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test242.scxml +0 -0
  392. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test242sub1.scxml +0 -0
  393. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test243.scxml +0 -0
  394. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test244.scxml +0 -0
  395. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test245.scxml +0 -0
  396. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test247.scxml +0 -0
  397. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test252.scxml +0 -0
  398. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test253.scxml +0 -0
  399. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test276.scxml +0 -0
  400. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test276sub1.scxml +0 -0
  401. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test277.scxml +0 -0
  402. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test279.scxml +0 -0
  403. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test280.scxml +0 -0
  404. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test286.scxml +0 -0
  405. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test287.scxml +0 -0
  406. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test294.scxml +0 -0
  407. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test298.scxml +0 -0
  408. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test302.scxml +0 -0
  409. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test303.scxml +0 -0
  410. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test304.scxml +0 -0
  411. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test309.scxml +0 -0
  412. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test310.scxml +0 -0
  413. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test311.scxml +0 -0
  414. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test312.scxml +0 -0
  415. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test318.scxml +0 -0
  416. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test319.scxml +0 -0
  417. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test321.scxml +0 -0
  418. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test322.scxml +0 -0
  419. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test323.scxml +0 -0
  420. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test324.scxml +0 -0
  421. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test325.scxml +0 -0
  422. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test326.scxml +0 -0
  423. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test329.scxml +0 -0
  424. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test330.scxml +0 -0
  425. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test331.scxml +0 -0
  426. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test332.scxml +0 -0
  427. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test333.scxml +0 -0
  428. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test335.scxml +0 -0
  429. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test336.scxml +0 -0
  430. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test337.scxml +0 -0
  431. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test338.scxml +0 -0
  432. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test339.scxml +0 -0
  433. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test342.scxml +0 -0
  434. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test343.scxml +0 -0
  435. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test344.scxml +0 -0
  436. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test346.scxml +0 -0
  437. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test347.scxml +0 -0
  438. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test348.scxml +0 -0
  439. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test349.scxml +0 -0
  440. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test350.scxml +0 -0
  441. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test351.scxml +0 -0
  442. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test352.scxml +0 -0
  443. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test354.scxml +0 -0
  444. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test355.scxml +0 -0
  445. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test364.scxml +0 -0
  446. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test372.scxml +0 -0
  447. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test375.scxml +0 -0
  448. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test376.scxml +0 -0
  449. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test377.scxml +0 -0
  450. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test378.scxml +0 -0
  451. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test387.scxml +0 -0
  452. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test388.scxml +0 -0
  453. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test396.scxml +0 -0
  454. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test399.scxml +0 -0
  455. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test401.scxml +0 -0
  456. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test402.scxml +0 -0
  457. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test403a.scxml +0 -0
  458. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test403b.scxml +0 -0
  459. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test403c.scxml +0 -0
  460. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test404.scxml +0 -0
  461. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test405.scxml +0 -0
  462. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test406.scxml +0 -0
  463. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test407.scxml +0 -0
  464. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test409.scxml +0 -0
  465. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test411.scxml +0 -0
  466. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test412.scxml +0 -0
  467. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test413.scxml +0 -0
  468. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test416.scxml +0 -0
  469. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test417.scxml +0 -0
  470. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test419.scxml +0 -0
  471. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test421.scxml +0 -0
  472. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test422.scxml +0 -0
  473. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test423.scxml +0 -0
  474. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test487.scxml +0 -0
  475. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test488.scxml +0 -0
  476. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test495.scxml +0 -0
  477. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test496.scxml +0 -0
  478. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test500.scxml +0 -0
  479. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test501.scxml +0 -0
  480. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test503.scxml +0 -0
  481. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test504.scxml +0 -0
  482. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test505.scxml +0 -0
  483. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test506.scxml +0 -0
  484. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test521.scxml +0 -0
  485. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test525.scxml +0 -0
  486. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test527.scxml +0 -0
  487. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test528.scxml +0 -0
  488. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test529.scxml +0 -0
  489. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test530.scxml +0 -0
  490. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test533.scxml +0 -0
  491. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test550.scxml +0 -0
  492. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test551.scxml +0 -0
  493. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test552.scxml +0 -0
  494. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test552.txt +0 -0
  495. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test553.scxml +0 -0
  496. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test554.scxml +0 -0
  497. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test570.scxml +0 -0
  498. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test576.scxml +0 -0
  499. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test579.scxml +0 -0
  500. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/mandatory/test580.scxml +0 -0
  501. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/optional/test193.scxml +0 -0
  502. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/optional/test201.scxml +0 -0
  503. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/optional/test278.scxml +0 -0
  504. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/optional/test444.scxml +0 -0
  505. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/optional/test445.scxml +0 -0
  506. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/optional/test446.scxml +0 -0
  507. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/optional/test446.txt +0 -0
  508. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/optional/test448.scxml +0 -0
  509. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/optional/test449.scxml +0 -0
  510. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/optional/test451.scxml +0 -0
  511. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/optional/test452.scxml +0 -0
  512. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/optional/test453.scxml +0 -0
  513. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/optional/test456.scxml +0 -0
  514. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/optional/test457.scxml +0 -0
  515. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/optional/test459.scxml +0 -0
  516. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/optional/test460.scxml +0 -0
  517. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/optional/test509.scxml +0 -0
  518. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/optional/test510.scxml +0 -0
  519. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/optional/test518.scxml +0 -0
  520. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/optional/test519.scxml +0 -0
  521. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/optional/test520.scxml +0 -0
  522. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/optional/test522.scxml +0 -0
  523. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/optional/test531.scxml +0 -0
  524. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/optional/test532.scxml +0 -0
  525. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/optional/test534.scxml +0 -0
  526. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/optional/test557.scxml +0 -0
  527. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/optional/test557.txt +0 -0
  528. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/optional/test558.scxml +0 -0
  529. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/optional/test558.txt +0 -0
  530. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/optional/test560.scxml +0 -0
  531. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/optional/test561.scxml +0 -0
  532. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/optional/test562.scxml +0 -0
  533. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/optional/test567.scxml +0 -0
  534. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/optional/test569.scxml +0 -0
  535. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/optional/test577.scxml +0 -0
  536. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/scxml/w3c/optional/test578.scxml +0 -0
  537. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/test_actions.py +0 -0
  538. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/test_api_contract.py +0 -0
  539. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/test_async.py +0 -0
  540. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/test_async_futures.py +0 -0
  541. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/test_callbacks.py +0 -0
  542. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/test_callbacks_isolation.py +0 -0
  543. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/test_class_listeners.py +0 -0
  544. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/test_conditions_algebra.py +0 -0
  545. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/test_contrib_diagram.py +0 -0
  546. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/test_contrib_timeout.py +0 -0
  547. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/test_dispatcher.py +0 -0
  548. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/test_error_execution.py +0 -0
  549. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/test_events.py +0 -0
  550. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/test_examples.py +0 -0
  551. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/test_fellowship_quest.py +0 -0
  552. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/test_listener.py +0 -0
  553. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/test_mermaid_renderer.py +0 -0
  554. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/test_mixins.py +0 -0
  555. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/test_mock_compatibility.py +0 -0
  556. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/test_multiple_destinations.py +0 -0
  557. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/test_optional_pydot.py +0 -0
  558. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/test_profiling.py +0 -0
  559. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/test_registry.py +0 -0
  560. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/test_rtc.py +0 -0
  561. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/test_signature.py +0 -0
  562. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/test_signature_positional_only.py +0 -0
  563. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/test_spec_parser.py +0 -0
  564. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/test_state.py +0 -0
  565. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/test_state_callbacks.py +0 -0
  566. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/test_statechart_compound.py +0 -0
  567. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/test_statechart_delayed.py +0 -0
  568. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/test_statechart_donedata.py +0 -0
  569. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/test_statechart_error.py +0 -0
  570. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/test_statechart_eventless.py +0 -0
  571. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/test_statechart_history.py +0 -0
  572. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/test_statechart_in_condition.py +0 -0
  573. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/test_statechart_parallel.py +0 -0
  574. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/test_statemachine.py +0 -0
  575. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/test_statemachine_bounded_transitions.py +0 -0
  576. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/test_statemachine_compat.py +0 -0
  577. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/test_statemachine_inheritance.py +0 -0
  578. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/test_threading.py +0 -0
  579. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/test_transition_list.py +0 -0
  580. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/test_transition_table.py +0 -0
  581. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/test_transitions.py +0 -0
  582. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/test_validators.py +0 -0
  583. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/test_weighted_transitions.py +0 -0
  584. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/testcases/__init__.py +0 -0
  585. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/testcases/issue308.md +0 -0
  586. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/testcases/issue384_multiple_observers.md +0 -0
  587. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/testcases/issue449.md +0 -0
  588. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/testcases/test_issue434.py +0 -0
  589. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/testcases/test_issue480.py +0 -0
  590. {python_statemachine-3.1.2 → python_statemachine-3.2.0}/tests/testcases/test_issue509.py +0 -0
@@ -18,7 +18,7 @@ jobs:
18
18
  strategy:
19
19
  fail-fast: false
20
20
  matrix:
21
- python-version: ["3.9", "3.10", "3.11", "3.12", "3.13", "3.14"]
21
+ python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"]
22
22
 
23
23
  steps:
24
24
  - uses: actions/checkout@v5
@@ -85,3 +85,8 @@ tmp/
85
85
 
86
86
  # Local specs
87
87
  specs/
88
+
89
+ # Environment files (secrets)
90
+ .env
91
+ .env.*
92
+ !.env.example
@@ -9,7 +9,7 @@ repos:
9
9
  exclude: docs/auto_examples
10
10
  - repo: https://github.com/astral-sh/ruff-pre-commit
11
11
  # Ruff version.
12
- rev: v0.15.13
12
+ rev: v0.15.17
13
13
  hooks:
14
14
  # Run the linter.
15
15
  - id: ruff
@@ -218,11 +218,19 @@ uv run mypy statemachine/ tests/
218
218
 
219
219
  ## Code style
220
220
 
221
- - **Formatter/Linter:** ruff (line length 99, target Python 3.9)
221
+ - **Formatter/Linter:** ruff (line length 99, target Python 3.10)
222
222
  - **Rules:** pycodestyle, pyflakes, isort, pyupgrade, flake8-comprehensions, flake8-bugbear, flake8-pytest-style
223
223
  - **Imports:** single-line, sorted by isort. **Always prefer top-level imports** — only use
224
224
  lazy (in-function) imports when strictly necessary to break circular dependencies
225
- - **Docstrings:** Google convention
225
+ - **Docstrings:** Google convention. Document only what isn't obvious from the
226
+ name/type (hidden conventions, non-obvious semantics), not trivial fields.
227
+ - **Attribute docs:** use an attribute *docstring* (a string literal on the line
228
+ **below** the attribute), not an inline `#` comment, so Sphinx autodoc captures it.
229
+ Reserve `#` for explaining logic. Example:
230
+ ```python
231
+ unless: "str | None" = None
232
+ """Negated guard expression; the transition is allowed only if it is falsy."""
233
+ ```
226
234
  - **Naming:** PascalCase for classes, snake_case for functions/methods, UPPER_SNAKE_CASE for constants
227
235
  - **Type hints:** used throughout; `TYPE_CHECKING` for circular imports
228
236
  - Pre-commit hooks enforce ruff + mypy + pytest
@@ -268,6 +276,24 @@ All code examples in `docs/*.md` **must** be testable doctests (using ```` ```py
268
276
  `--doctest-glob=*.md`. If an example cannot be expressed as a doctest (e.g., it requires
269
277
  real concurrency), write it as a unit test in `tests/` and reference it from the docs instead.
270
278
 
279
+ ### Declarative IO: keep the JSON Schema and the parser in sync
280
+
281
+ The native JSON/YAML format has three artifacts that must agree: the parser
282
+ (`statemachine/io/native.py`), the runtime, and the published JSON Schema
283
+ (`statemachine/io/schemas/statechart.schema.json`). They drift apart silently unless
284
+ enforced, so when you add or change native vocabulary:
285
+
286
+ - Update the **schema** alongside the parser/runtime change, never after.
287
+ - The parser is the source of truth for accepted keys: `_ACTION_KEYS` and the
288
+ `_DOCUMENT_KEYS`/`_STATE_KEYS`/`_TRANSITION_KEYS`/`_INVOKE_KEYS` frozensets. The parser
289
+ **rejects unknown keys** using them, and `tests/io/test_validation.py` asserts each set
290
+ equals the matching schema node's properties, so a change on one side without the other
291
+ fails CI.
292
+ - **Every native example is schema-validated.** Test fixtures load with `validate=True` (and
293
+ a corpus test validates every `.yaml`/`.json` under `tests/io/`); docs examples pass
294
+ `validate=True` too. A feature exercised by an example but missing from the schema breaks a
295
+ test.
296
+
271
297
  ## Git workflow
272
298
 
273
299
  - Main branch: `develop`
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: python-statemachine
3
- Version: 3.1.2
3
+ Version: 3.2.0
4
4
  Summary: Python Finite State Machines made easy.
5
5
  Project-URL: homepage, https://github.com/fgmacedo/python-statemachine
6
6
  Author-email: Fernando Macedo <fgmacedo@gmail.com>
@@ -13,7 +13,6 @@ Classifier: Framework :: Django
13
13
  Classifier: Intended Audience :: Developers
14
14
  Classifier: License :: OSI Approved :: MIT License
15
15
  Classifier: Natural Language :: English
16
- Classifier: Programming Language :: Python :: 3.9
17
16
  Classifier: Programming Language :: Python :: 3.10
18
17
  Classifier: Programming Language :: Python :: 3.11
19
18
  Classifier: Programming Language :: Python :: 3.12
@@ -21,9 +20,16 @@ Classifier: Programming Language :: Python :: 3.13
21
20
  Classifier: Programming Language :: Python :: 3.14
22
21
  Classifier: Topic :: Home Automation
23
22
  Classifier: Topic :: Software Development :: Libraries
24
- Requires-Python: >=3.9
23
+ Requires-Python: >=3.10
25
24
  Provides-Extra: diagrams
26
25
  Requires-Dist: pydot>=4.0.1; extra == 'diagrams'
26
+ Provides-Extra: io
27
+ Requires-Dist: jsonschema>=4.18; extra == 'io'
28
+ Requires-Dist: pyyaml>=6.0; extra == 'io'
29
+ Provides-Extra: validation
30
+ Requires-Dist: jsonschema>=4.18; extra == 'validation'
31
+ Provides-Extra: yaml
32
+ Requires-Dist: pyyaml>=6.0; extra == 'yaml'
27
33
  Description-Content-Type: text/markdown
28
34
 
29
35
  # Python StateMachine
@@ -400,6 +406,13 @@ To generate diagrams, install with the `diagrams` extra (requires
400
406
  pip install python-statemachine[diagrams]
401
407
  ```
402
408
 
409
+ To load statecharts from declarative documents, install the IO extras
410
+ (`yaml` for YAML, `validation` for `validate=True`, or `io` for both):
411
+
412
+ ```
413
+ pip install python-statemachine[io]
414
+ ```
415
+
403
416
 
404
417
  ## Contributing
405
418
 
@@ -372,6 +372,13 @@ To generate diagrams, install with the `diagrams` extra (requires
372
372
  pip install python-statemachine[diagrams]
373
373
  ```
374
374
 
375
+ To load statecharts from declarative documents, install the IO extras
376
+ (`yaml` for YAML, `validation` for `validate=True`, or `io` for both):
377
+
378
+ ```
379
+ pip install python-statemachine[io]
380
+ ```
381
+
375
382
 
376
383
  ## Contributing
377
384
 
@@ -147,6 +147,19 @@ class MyMachine(StateChart):
147
147
  .. autofunction:: statemachine.io.create_machine_class_from_definition
148
148
  ```
149
149
 
150
+ ## io.load
151
+
152
+ ```{versionadded} 3.2.0
153
+ ```
154
+
155
+ See [](io/index.md) for the guide.
156
+
157
+ ```{eval-rst}
158
+ .. autofunction:: statemachine.io.load
159
+
160
+ .. autofunction:: statemachine.io.build_processor
161
+ ```
162
+
150
163
  ## timeout
151
164
 
152
165
  ```{versionadded} 3.0.0
@@ -25,6 +25,15 @@ Existing projects should consider migrating when possible, as the
25
25
  SCXML-compliant behavior provides more predictable semantics.
26
26
  ```
27
27
 
28
+ ```{warning}
29
+ This page describes runtime *semantics*. If you **load SCXML documents** via
30
+ `SCXMLProcessor`, note that SCXML is executable content: by default the
31
+ datamodel is evaluated with a restricted AST whitelist and `<script>` is
32
+ rejected, so untrusted documents cannot execute arbitrary code. Pass
33
+ `trusted=True` only for SCXML you control. See the 3.2.0 release notes and
34
+ GHSA-v4jc-pm6r-3vj8.
35
+ ```
36
+
28
37
 
29
38
  ## Comparison table
30
39
 
@@ -289,3 +289,32 @@ which will:
289
289
 
290
290
  Monitor the workflow run at `https://github.com/fgmacedo/python-statemachine/actions` to
291
291
  confirm the release was published successfully.
292
+
293
+ #### 10. Publish the GitHub release
294
+
295
+ Create the GitHub release from the freshly pushed tag using the release notes file as the
296
+ body. Two adjustments are needed when going from MyST/Sphinx markdown to GitHub-flavored
297
+ markdown:
298
+
299
+ - Convert MyST directives (`` ```{note} ``, `` ```{warning} ``, etc.) to GitHub's
300
+ [alert syntax](https://docs.github.com/en/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax#alerts)
301
+ (`> [!NOTE]`, `> [!WARNING]`) or to plain blockquotes.
302
+ - Rewrite intra-docs links. Relative links like `[3.1.0 release notes](3.1.0.md)` resolve
303
+ on ReadTheDocs but not on github.com. Replace them with absolute URLs against the
304
+ matching tag, e.g.
305
+ `https://github.com/fgmacedo/python-statemachine/blob/vX.Y.Z/docs/releases/X.Y.Z.md`.
306
+ Avoid linking to `https://python-statemachine.readthedocs.io/en/vX.Y.Z/` immediately
307
+ after publishing because the ReadTheDocs build for the new tag may still be in progress.
308
+
309
+ Then create the release. Use the converted notes as the body:
310
+
311
+ ```shell
312
+ gh release create vX.Y.Z \
313
+ --title "vX.Y.Z" \
314
+ --notes-file /tmp/release-X.Y.Z-notes.md \
315
+ --target main \
316
+ --verify-tag
317
+ ```
318
+
319
+ Confirm the rendered release at
320
+ `https://github.com/fgmacedo/python-statemachine/releases/tag/vX.Y.Z`.
@@ -58,6 +58,17 @@ weighted_transitions
58
58
  timeout
59
59
  ```
60
60
 
61
+ ```{toctree}
62
+ :caption: IO and formats
63
+ :maxdepth: 2
64
+ :hidden:
65
+
66
+ io/index
67
+ io/formats
68
+ io/json_schema
69
+ io/security
70
+ ```
71
+
61
72
  ```{toctree}
62
73
  :caption: How to
63
74
  :maxdepth: 2
@@ -21,14 +21,21 @@ Alternatively, if you prefer using [pip](https://pip.pypa.io):
21
21
  python3 -m pip install python-statemachine
22
22
  ```
23
23
 
24
- For those looking to generate diagrams from your state machines, [pydot](https://github.com/pydot/pydot) and [Graphviz](https://graphviz.org/) are required.
25
- Conveniently, you can install python-statemachine along with the `pydot` dependency using the extras option.
26
- For more information, please refer to our documentation.
24
+ ## Optional extras
25
+
26
+ Some features require extra dependencies, available as pip extras:
27
27
 
28
28
  ```shell
29
- python3 -m pip install "python-statemachine[diagrams]"
29
+ python3 -m pip install "python-statemachine[diagrams]" # pydot, to generate diagrams from your machines
30
+ python3 -m pip install "python-statemachine[yaml]" # PyYAML, to load YAML statechart documents
31
+ python3 -m pip install "python-statemachine[validation]" # jsonschema, to validate documents (validate=True)
32
+ python3 -m pip install "python-statemachine[io]" # PyYAML + jsonschema, the full JSON/YAML IO stack
30
33
  ```
31
34
 
35
+ Diagram generation also requires the [Graphviz](https://graphviz.org/) system package (see
36
+ [](diagram.md)). The `[yaml]`, `[validation]` and `[io]` extras back the declarative loaders
37
+ documented in [](io/index.md); loading JSON needs no extra, as it uses only the standard library.
38
+
32
39
 
33
40
 
34
41
  ## From sources