问题标签 [pytransitions]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 如何为“转换”状态机定义触发器枚举?
作为对此答案的不相关跟进,它使用以下工作代码:
我也想有一个枚举Trigger,就像我有一个State.
唉,当我尝试
和
我明白了
我可以使用Enum's解决它.name:
但是之间的不对称State和Trigger困扰着我。
难道我做错了什么?为什么 Enum 工作State但不工作Trigger?
python - 使用 PyTransitions 的非确定性状态机?
我正在使用pytransitions并且遇到了需要有几个与其他状态无关的状态,并且使用非确定性状态机进行建模非常有意义,这在数学上是等效的。
我想要类似下面的东西
我可以定义一组新的状态states=itertools.product(states1, states2),然后定义所有转换,如等价定理所示。
我想知道库中是否支持这种行为,如果支持,如何实现。
我有不止 2 组(大部分)独立状态。真的,我有一堆偶尔会有交互的切换,但大多数都是独立的。
pytransitions - Pytransitions:异步相关回调的 AsyncMachine 顺序解析
注意: 这个问题与 Python 的 FSM 库pytransitions 有关
我正在寻找一种方法来按顺序解决方法回调,当它们在prepare or/and before or/and after中作为列表被提及时。我正在使用AsyncMachine来自的模块transitions.extensions.asyncio
预期结果:
1Done_2Done_3Done
得到:
None_3Done
复制当前情况的示例代码:
正如代码中所示,'prepare': ['initialize1', 'initialize2', 'initialize3']我正在寻找一种方法,一旦解决了 initialize1 就调用 initialize2 ,一旦解决了 initialize1 和 initialize2 方法,就调用 initialize3 。目前,它们被并行调用,这是一个很好的特性,但如果有一种方法可以让它们按顺序执行/解析,那就太棒了。
当然,我可以再添加一个方法initialize_all,然后在其中调用上述所有方法。但是想想我要不断添加多少新方法来处理现实世界的问题。我想让我的函数可重用且更小,仅用于特定任务。
python - Pytransitions 中的状态历史
例如,我正在使用Pytransitions,并且我有一些状态机
是否有一些图书馆支持的方式来跟踪所有州的历史?
我现在手动做的是初始化:
和
我想知道该库是否支持一些可查询的日志记录,这意味着不仅将事件转储到文件中,而且还能够将它们保存在列表中。
python - pytransitions 中的终端/接收器状态
例如,我正在使用带有状态机的pytransitions
我想添加一个状态,任何触发器都保持相同状态,不调用转换,不明确指定每个可能的触发器,也不忽略所有无效触发器(因为这非常适合调试)。
例如,我想要一个crystal可以通过触发crystalizefrom达到的状态liquid,对此任何事件都不会执行任何操作。
这可以通过图书馆实现吗?
表达这个问题的另一种方式是ignore_invalid_triggers=True只针对特定州,而不是所有州。
python-3.x - 将嵌套状态与 pytransitions 一起使用的正确方法是什么?
所以我一直在 pytransitions github 和 SO 上四处寻找,似乎在 0.8 之后你可以使用宏状态(或其中包含子状态的超级状态)的方式发生了变化。我想知道是否仍然可以使用 pytransition 创建这样的机器(蓝色方块假设是一个宏状态,其中有 2 个状态,其中一个是绿色,是另一个宏):
还是我必须遵循此处建议的工作流程:https ://github.com/pytransitions/transitions/issues/332 ?非常感谢任何信息!
pytransitions - GraphMachine doesn't generate graph for NarcolepticSuperhero quickstart example
I tried creating a Diagram using the NarcolepticSuperhero machine defined in the GitHub documentation but it only outputs this:
Steps to recreate:
- Create a file named
test.py, with this content:
- Install the requirements (Ubuntu 20.10, I tested on it's docker image) and run the script:
- Check the generated image
python - Pytransitions 排队分层机器总是以初始化状态结束
我正在使用带有 HierarchicalMachine 类的 pytransitions 来创建小型嵌套机器以在更大的状态机中完成子任务。我正在使用排队转换能够从状态回调内部调用触发器。
我希望以下代码以 prepare_waiting 状态结束,但实际上它会回到 prepare_init 状态。
你知道为什么会这样吗?
代码:
输出:
python - Python 转换库 - 从内部回调调用转换
我正在使用 Python 的转换库,我发现它非常有用。在我的特定情况下,我使用 FSM 在状态内(在回调中)做出决策,并相应地根据内部逻辑调用新的转换。例如:
这种方法将所有逻辑保留在 FSM 中,这正是我想要的,但有两个缺点:
- 我可能有一个无限的调用链,这会导致堆栈溢出(只有
proceed()转换,while循环调用,会中断它) - 我必须记住
return在从回调调用任何转换后手动调用
有没有更好的方法来使用转换库来实现我想要的(从回调调用转换)?
感谢帮助!
python - 从其他线程触发转换时出现 TypeError
我Controller在主线程中进行了实例化,产生了自己的工作线程,它正在处理来自其他控制器的事件。Controller实例化,这ProductionMachine是主要的状态机,它有嵌套的机器PrepareMachine和FlashMachine.
PrepareMachine向某些设备发送连接请求并等待通过Controller工作线程收到的响应。当所有设备都连接好后,它将控制权移交给FlashMachine.
到现在为止它似乎还可以,但是当我尝试触发转换时,event_data.model.to_done()我得到TypeError了self.machine.to_connected()我应该完成的。你知道我在做什么错吗?
我在 Raspberry Pi 上使用过渡 0.8.9、python 3.7.3。
代码:
输出:

