Python代码生成工具。
项目描述
- 版本:
- 1.0.0
概述
文字是一个有趣的周末项目,旨在通过Python代码生成Python代码。而不是使用Python代码的字符串字面量,你使用文字.py对象,它记得对它们所做的操作,操作的历史记录就是生成的Python程序。
这只是我想尝试的一个实验;它的有用性尚未得到证明,很可能这个实验会失败。所以请谨慎使用。
快速概述
import literal @literal.py def unpack_octet(x, payload, offset, unpack_from): x <<= unpack_from('B', payload, offset) offset += 1 print(unpack_octet())
提供
x = unpack_from('B', payload, offset) offset += 1
或另一个示例,用于创建AMQP协议的参数解包器
def unpack(method): @literal.py def body(p, payload, offset, unpack_from, argtuple, ssize): fields = method.fields names = p.tuple(*self.field_names) for i, fset in enumerate(fields): if len(fset) == 1: for field in fset: name = p.var(field.name) if field.format == '*': # This is a string payload, # don't have to unpack name <<= payload[offset:offset + ssize] offset += ssize else: # A single field to unpack name <<= unpack_from(struct_format(field.format), payload, offset)[0] offset += field.size else: # A list of field to unpack these = p.tuple(*fset.names) these <<= unpack_from(struct_format(fset.format), payload, offset) offset += sum(f.size for f in fset) return names return body().as_fun(lambda payload, offset: 1, method.name)
将为AMQP方法basic_deliver生成以下代码
def deliver(payload, offset): ssize = unpack_from('B', payload, offset)[0] offset += 1 consumer_tag = payload[offset:offset + ssize] offset += ssize delivery_tag, redelivered, ssize = unpack_from('QBB', payload, offset) offset += 10 exchange = payload[offset:offset + ssize] offset += ssize ssize = unpack_from('B', payload, offset)[0] offset += 1 routing_key = payload[offset:offset + ssize] offset += ssize return (consumer_tag, delivery_tag, redelivered, exchange, routing_key)
更多文档即将到来。
安装
您可以通过Python包索引(PyPI)或从源代码安装文字。
要使用pip安装,
$ pip install literal
要使用easy_install安装,
$ easy_install literal
如果您已下载源代码包,可以通过以下方式安装它,
$ python setup.py build # python setup.py install # as root
错误跟踪器
如果您有任何建议、错误报告或烦恼,请向我们的问题跟踪器报告,链接为http://github.com/ask/literal.py/issues/
贡献
文字.py的开发发生在Github上:http://github.com/ask/literal.py
您被鼓励参与开发。如果您不喜欢GitHub(出于某种原因),您也可以发送常规补丁。
许可证
此软件根据新BSD许可证许可。请参阅顶层分发目录中的LICENSE文件以获取完整的许可证文本。
项目详情
关闭
literal-1.0.0.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 68e5502d66eb8ccb46159235441dd0b65bcd5ab2ac57075101860c35d1b7208d |
|
MD5 | 30f766764916eb75445c83c63a68b94f |
|
BLAKE2b-256 | fd416b7c7cd9a1e51cd1a8751353bfe004d00c9f9a33bd3e4410b6e70b28ea5b |