没有项目描述

pulsar-odm的Python项目详细描述


Badges:licensepyversionsstatuspypiversion
Master CI:traviscoverage
Downloads:http://pypi.python.org/pypi/pulsar-odm
Source:https://github.com/quantmind/pulsar-odm
Mailing list:google user group
Design by:Quantmind and Luca Sbardella
Platforms:Linux, OSX, Windows. Python 3.5 and above
Keywords:sql, sqlalchemy, asynchronous, asyncio, concurrency, greenlet

脉冲星odm是建立在pulsarsqlalchemygreenlet库之上的 提供隐式异步对象数据映射器,用于编写代码 用asyncio。 目前只实现并测试了一种方言:

Usage

为了能够在标准块代码中使用对象数据映射器, 需要使用pulsar GreenPool作为以下片段的亮点:

fromdatetimeimportdatetimefromsqlalchemyimportInteger,Column,String,DateTime,Booleanfrompulsar.apps.greenioimportGreenPoolimportodmclassTask(odm.Model):id=Column(Integer,primary_key=True)subject=Column(String(250))done=Column(Boolean,default=False)created=Column(DateTime,default=datetime.utcnow)def__str__(self):return'%d: %s'%(self.id,self.subject)defexample(mp):# Make sure table is availablemp.table_create()# Insert a new Task in the tablewithmp.begin()assession:task=mp.task(subject='my task')session.add(task)returntaskif__name__=='__main__':pool=GreenPool()mp=odm.Mapper('postgresql+green://odm:odmtest@127.0.0.1:5432/odmtests')mp.register(Task)task=pool._loop.run_until_complete(pool.submit(example,mp))print(task)

example函数是在主函数以外的一个greenlet中执行的。这一点很重要,否则呼叫将失败:

>>example(mp)>>Traceback(mostrecentcalllast):...RuntimeError:acquireinmaingreenlet

在greenlet池上运行该函数可以保证正确的异步执行。当psycopg2 对子greenlet上的数据库执行命令,它将控制切换到父(主)greenlet,后者由asyncio eventloop控制,以便可以执行其他异步操作。 一旦执行结果就绪,执行就会切换回原始的子greenlet,以便example函数可以继续。

Testing

要运行测试,请为postgresql创建一个新角色和数据库:

psql -a -f tests/db.sql

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

推荐PyPI第三方库


热门话题
如何使用外部java程序在minecraft中移动minecraft角色的相机   java输出文本文件中的变量   java LazyLoadingException在我尝试从多通关系获取对象时出现   java json rest API的错误:ClassCastException:org。json。无法将JSONObject强制转换为组织。json。杰索纳雷   java BigInteger。C中的intValue()等价物#   java大写所有字符,但不包括带引号字符串中的字符   java获取特殊字符   javascript为什么Selenium中的所有getX()调用都需要这么长时间?   rabbitmq rabbitmq java客户端并行消费   如何使用selenium Java在popover窗口中提取文本   对象在java中构造一类对象   java Room数据库未实现   json JSONObject可以使用java保存大的格式化双值吗?   有时限的旅行推销员   java HttpsURLConnection openConnection查询   java无法使用Spring@Entity注释创建MySQL表   lambda Java 8仅映射到值类型集合   java提供OSGi服务而不实现接口   java单个对象重写对象数组,不确定原因