基于python的注释和注释处理工具。

annopyte的Python项目详细描述


概述

这是为了向python对象a-laJava Annotations添加和处理注释而设计的。

注释只是元数据,不是代码本身直接使用的,而是程序其他部分可以查询的。

python本身不需要特殊的低级实现来支持元数据,这个库的目标只是提供 从python对象设置和查询元数据的标准方法。

python 3实际上包含了元数据的一个基本版本,但它仅限于函数的参数和返回值;这个库被设计为扩展 这种对其他对象的支持,因此您可以用任何类型的数据注释类、函数或任何对象。

当前状态

当前包含与PEP-3107兼容的签名批注实现 对于python 2.x.

示例代码

基本功能注释:

>>> from annopyte.annotations.signature import annotate_f
>>> @annotate_f("return_value_annotation", param1="asd", param2="fgh")
... def myfunc(param1, param2=None):
...     pass
...
>>> print myfunc.__annotations__
{'return': 'return_value_annotation', 'param2': 'fgh', 'param1': 'asd'}
>>>

预期代码(待完成)

这是我要实现的元数据使用的基本思想:

class Author(Annotation)
    name = "default"

@Author(name="John Doe")
class MyClass(object):
    pass

>>> query_for_metadata("mypackage", Author, name="John Doe")
[<class 'mypackage.subpackage.MyClass'>]
>>>

就这样。

联系我

alan franzoni<;用户名atfranzoni.eu>;(请注意:在电子邮件地址中按字面意思写用户名!)

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

推荐PyPI第三方库


热门话题
java将Map<String,String>传递给需要Map<String,Object>   java在循环中使用字符串而不是StringBuilder是否会造成内存损失?   jnlp如何更新java控制台JRE?   java更改、修改和重新打包CXFAPI源文件   JavaFXJava应用程序在Fedora上运行一段时间后关闭   使用来自不同类的方法的java   java如何通过ant脚本在linux中使用subst?   java在使用camunda modeler进行base64编码/解码时出错   获取java。netbeans、weblogic和fastswap设置为true时的lang.NoSuchMethodError   java如何提高FinalizerThread在GC中收集对象的优先级   java检测具有相同根的单词   netbeans crud应用程序中的java错误