模型中的同调表达式
modello的Python项目详细描述
型号lo
本计画旨在探讨以物件导向程式设计的符号建模。繁重的工作是由sympy库完成的。这个模块只是提供了一个从中派生模型的类。
基于examples/geometry.py
:
frommodelloimportInstanceDummy,ModellofromsympyimportsqrtclassRightAngleTriangle(Modello):a=InstanceDummy("a",real=True,positive=True)b=InstanceDummy("b",real=True,positive=True)c=sqrt(a**2+b**2)T=RightAngleTriangle("T",a=3,b=4)assertT.c==5T=RightAngleTriangle("T",b=4,c=5)assertT.a==3
查看如何使用它的最佳位置是查看examples目录,该目录仍然需要填充
示例中的test_modello.py
和doctests+测试都涵盖了该功能。
安装
这可以使用以下方法之一安装:
# using pipenv pipenv install modello # using pip pip install --user modello # using git+pipenv pipenv install git+https://github.com/Code0x58/modello.git#egg=modello # using git+pip pip install --user git+https://github.com/Code0x58/modello.git#egg=modello
目前,这需要Python3.6+,但是如果有兴趣的话,版本需求可以很容易地删除几个次要版本。由于modello类依赖于PEP-3115,因此不打算支持python 2.7。
开发
用python setup.py test
运行测试和linting。push让测试套件针对它们运行,如果由于github操作而被标记,它还将发布一个版本。您可以使用act在本地重现操作,例如TWINE_USERNAME= TWINE_PASSWORD= act
待办事项:
- 详细说明测试/示例
- 考虑扩展功能以允许更完整的约束系统,使用直角三角形示例作为基础
- 找出符号上标签/名称的模式,以便它们能很好地呈现
- 对于mypy,考虑从中获取或移除值
- 在嵌套模型(命名而不是列表)上实现第一次尝试
- 考虑符号(实例)虚拟对象允许对系统进行实时更新的可能性,而不是最终的modello实例化