管理mosaik实体标识符的实用程序。

mosaik.EId的Python项目详细描述


莫赛克开斋节

Mosaik EID通过管理 实体。在

状态

pipeline statuscoverage reportlibraries statuslicense badgePyPI versionPython Versions

动机

传统上,mosaik实体是用硬编码的名称创建的。 Mosaik EID打算比硬编码的值更容易使用和更少出错。 clean和pythonicapi鼓励以干燥的方式创建场景。在

设计

该包包含一个解析器、生成器、数据模型和创建此类名称的异常。 数据模型基于 ^{}。 在此基础上是一个发布实体标识符的管理器 基于实体类型和序列号。 实体管理器实现borg模式和 因此可以随意实例化而不丢失状态。 有一些预定义的基本实体类型, 可以通过注册其他类型来扩展它们。在

兼容性

允许注册任意大小写的实体名称, 例如CHPBioGas或{}或{}。 所有组件都进行了100%的测试覆盖率测试,希望有很多角落的案例 抓住了。 有广泛的单元测试、集成测试和功能测试。 测试集成到tox中,以确保跨某些python的兼容性 实现。 它们是:cpython2.7、python3.6、cpython3.7、pyy2v6和PyPy3v6

局限性

  • 线程安全尚未实现,因为它似乎没有什么价值。在

  • 实体类型必须是有效的Python identifiers。在

  • PyPy3当前在Windows 10下不工作,因为一个未解析的a bug in pypy。在

测试

此包使用 ^{} 为了写测试, ^{} 用于测试发现和 ^{} 在多个python版本上运行它们。在

克隆源

git clone https://eprojects.offis.de/mosaik-eid/git/mosaik-eid.git

创建虚拟环境

在Linux下:

^{pr2}$

在Windows下:

virtualenv -p "C:\Program Files\Python38\python.exe" venv

安装要求

python -m pip install --upgrade -r requirements.d/venv.txt

运行测试

tox --parallel all

测试覆盖率

python -m coverage html mosaik_eid/*.py

在Linux下

xdg-open htmlcov/index.html

在窗户下面

start htmlcov/index.html

使用库

>>> from mosaik_eid.eid_registry import EidRegistry
>>> e_type = EntityTypeRegistry.register(e_type='biogas')
>>> for _ in range(3):
...     next(EidManager(e_type=e_type))
...
'biogas-0'
'biogas-1'
'biogas-2'

请参阅tests/functional,以获得更多预期用途的实际示例。在

发展图书馆

出于发展目的, 使用.tox下的一个虚拟环境。在

冻结虚拟环境需求

在Linux下

 venv/bin/python -m pip freeze --all --exclude-editable > requirements.d/venv.txt
 # And remove line beginning with package name

在窗户下面

 venv\Scripts\python.exe -m pip freeze --all --exclude-editable > requirements.d/venv.txt
# And remove line beginning with package name

冻结毒物要求

在Linux下

.tox/py38/bin/python -m pip freeze --all --exclude-editable > requirements.d/base.txt
# And remove line beginning with package name

在窗户下面

.tox\py37\Scripts\python -m pip freeze --all --exclude-editable > requirements.d/base.txt
# And remove line beginning with package name

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Android应用程序在后台   如何使用java减去日期。sql。时间戳   在Eclipse中使用Tomcat和Maven的java抛出错误   java Runnable jar什么都不做,资源不导出   并发Java内存模型:volatiles和读/写重新排序   使用Morphia在MongoDB中进行java批量升级。可能吗?   java将自己创建的sqlite数据库复制到安卓失败   在java中使用嵌套循环解决消除?   地图上多个标记的java实时动画   java如何在J2EE web应用程序中从服务层调用DAO方法   java我只想浏览文件,并将其作为电子邮件中的文件。我应如何附加:   猜猜我在think Java中的数字是57   可以在java流中的groupingBy中使用foreach吗?   我的Java程序编译时没有任何错误,但不会完全运行