用于简单对象缓存和工厂的python库。
unicum的Python项目详细描述
unicum由实现各种工厂模式的多个对象实现组成。 所有类型都合并到on typevisibleobject中,并且每种类型都提供位和片。
可见的obj通过persistentobject 只有简单类型或简单类型容器的值。
这些值通过fatoryobject转换为从工厂获取的更复杂的结构。
或者,也可以将数据范围用于类似于数据框的内容键入r, 具有列和行名称以及每个列值的公共类型的表。
从LinkedObject继承可以在运行时交换或更新属性
示例用法
使用singletonobject
>>>fromunicumimportSingletonObject>>>classMySingleton(SingletonObject):pass>>>s1=MySingleton()>>>s2=MySingleton()>>>s1=s2True
使用factoryobject
>>>fromunicumimportFactoryObject>>>classCurrency(FactoryObject):__factory=dict()>>>classEUR(Currency):pass>>>classUSD(Currency):pass>>>EUR().register()# registers USD() instance with class name 'EUR'>>>eur=Currency('EUR')# picks instance with key 'EUR' from currency cache>>>eur==EUR()# picks instance with key given by class name 'EUR' from currency cache, too.True>>>eur2=eur.__class__('EUR')# picks instance with key 'EUR' from currency cache>>>eur==eur2True>>>usd=USD().register()# registers USD() instance with class name 'USD'>>>usd.register('usd')# registers usd with name 'usd'>>>usd==USD()True>>>eur==eur.__class__('USD')False>>>usd==eur.__class__('USD')True>>>usd==Currency('usd')True
使用LinkedObject
>>>fromunicumimportLinkedObject
开发版本
最新的开发版本可以直接从github安装:
$ pip install --upgrade git+https://github.com/pbrisk/unicum.git
贡献
Issues和Pull Requests总是受欢迎的。
许可证
根据apache软件许可证提供了代码和文档(请参见LICENSE)。