dgraph到python对象映射器
pydigg的Python项目详细描述
重要提示:我还在做这个项目。慢慢来,但我希望它能在2019年年中发布。
pydiggy
dgraph到python对象映射器
- 自由软件:麻省理工学院许可证
注意
仅限Python 3.7。对不起的。
示例
# ./examples/__init__from.basicimport*# noqa# ./examples/basic.pyfrom__future__importannotationsfrompydiggyimportNodefromtypingimportListclassRegion(Node):area:intpopulation:intname:strborders:List[Region]
cli
指向现有模块中的CLI实用程序,以生成DGRAPH模式。
$ python3 -m pydiggy generate examples Generating schema for: examples Nodes found: (1) - Region Your schema: ~~~~~~~~ Region: bool @index(bool) . _type: string . area: int . borders: uid . name: string . population: int . ~~~~~~~~
产生突变
frompydiggyimportgenerate_mutation,Facetspor=Region(uid=0x11,name="Portugal")spa=Region(uid=0x12,name="Spain")gas=Region(uid=0x13,name="Gascony")mar=Region(uid=0x14,name="Marseilles")por.borders=[spa]spa.borders=[por,gas,mar]gas.borders=[Facets(spa,foo='bar',hello='world'),mar]mar.borders=[spa,gas]por.stage()spa.stage()gas.stage()mar.stage()print(generate_mutation())
结果:
{ set { <0x11> <Region> "true" . <0x11> <_type> "Region" . <0x11> <name> "Portugal" . <0x11> <borders> <0x12> . <0x12> <Region> "true" . <0x12> <_type> "Region" . <0x12> <name> "Spain" . <0x12> <borders> <0x11> . <0x12> <borders> <0x13> . <0x12> <borders> <0x14> . <0x13> <Region> "true" . <0x13> <_type> "Region" . <0x13> <name> "Gascony" . <0x13> <borders> <0x12> (foo="bar", hello="world") . <0x13> <borders> <0x14> . <0x14> <Region> "true" . <0x14> <_type> "Region" . <0x14> <name> "Marseilles" . <0x14> <borders> <0x12> . <0x14> <borders> <0x13> . } }
从json到python对象的hydate
给出dgraph的一些响应:
{"data":{"allRegions":[{"uid":"0x11","_type":"Region","name":"Portugal","borders":[{"uid":"0x12","_type":"Region","name":"Spain"}]},{"uid":"0x12","_type":"Region","name":"Spain","borders":[{"uid":"0x11","_type":"Region","name":"Portugal"},{"uid":"0x13","_type":"Region","name":"Gascony"},{"uid":"0x14","_type":"Region","name":"Marseilles"}]},{"uid":"0x13","_type":"Region","name":"Gascony","borders":[{"uid":"0x12","_type":"Region","name":"Spain","borders|foo":"bar","borders|hello":"world"},{"uid":"0x14","_type":"Region","name":"Marseilles"}]},{"uid":"0x14","_type":"Region","name":"Marseilles","borders":[{"uid":"0x12","_type":"Region","name":"Spain"},{"uid":"0x13","_type":"Region","name":"Gascony"}]}]},"extensions":{"server_latency":{"parsing_ns":23727,"processing_ns":2000535,"encoding_ns":7803450},"txn":{"start_ts":117,"lin_read":{"ids":{"1":49}}}}}
我们可以将其转换为一些python对象:
>>>data=hydrate(retrieved_data){'allRegions':[<Region:17>,<Region:18>,<Region:19>,<Region:20>]}
历史记录
0.1.0(2018-07-31)
- pypi上的第一个版本。