python元数据

metabeyond的Python项目详细描述


metabeyond-用于现代python代码的元数据实用程序

statuscoverage

一组小实用程序,用于编写自文档化代码,并允许对应用的元数据进行内省。 在运行时以类似于Java6注释接口的方式使用decorators。整个模块都很重 受Java6注释的影响,例如下面的无意义示例:

@Configuration@FunctionalInterface@SafeForSpeedsNotExceeding(value=1.15572735,units=ATTOPARSECS_PER_MICROFORTNIGHT)publicclassQuantumDecoherenceStabilizer{@HaikupublicvoidcheckNodes(){if(tree.hasAnyRealLeafNodes()){freshenLeavesOn(tree);}}}

因此提供以下python解决方案:

@Configuration()@FunctionalInterface()@SafeForSpeedsNotExceeding(value=1.15572735,units=ATTOPARSECS_PER_MICROFORTNIGHT)classQuantumDecoherenceStabilizer:@haikudefcheck_nodes(self)->str:iftree.has_any_real_leaf_nodes():freshen_leaves_on(tree)

(有关更深奥的注释示例,请参见Google Annotation Gallery!)

提示

提示的目的是为sphinx之类的实用程序向docstring添加一些描述。使用背后的想法 作为decorator,decorator通常比docstring中的文本对读者更可见,所以 这是一种利用可读性的简单方法。除了操作docstring之外,没有对这个decorator的引用 一直被保留着。它本质上是透明的。

  • 提示的定义:
frommetabeyondimporthintshaiku=hints.Hint('This is designed to be poetic to read.')
  • 应用提示。提示在装饰中的名称后面永远不会有括号。
@haikudefbasho():"""old pond"""frog.leap()inwatersound()
  • 这提供了以下效果:
>>>importinspect>>>get_docstring=lambdao:inspect.cleandoc(inspect.getdoc(o))>>>print(get_docstring(basho))oldpondThisisdesignedtobepoetictoread.

备注

备注是从提示开始的下一步,旨在将自己注册到要检测的类或函数中 稍后。这类似于java 6注释的工作方式。

  • 定义备注
frommetabeyondimportremarksclassBean(remarks.Remark):"""Marks the object as a bean."""
  • 应用评论。注释总是有括号。未能添加括号将导致修饰项 被装饰器替换,否则将被调用,这将导致任何依赖代码中断,所以不要 试试看。
@Bean()defbar():return69# lol
  • 我们可以提供更复杂的定义,其中包含修饰元素的验证约束,或者 每个装饰特有的属性。有关完整的解释,请参见文档,但下面给出了您 总的想法。这个例子定义了一个路由装饰器,类似于 flask。将它应用于类将导致失败。
classRoute(remarks.Remark,constraint=inspect.isfunction):def__init__(self,route):self.route=route@Route('/about-me')defabout_me():...
  • 检查任何应用的备注也很容易。
>>>frommetabeyondimportremarks>>>remarks.get_remark(Route,about_me)Route(route='/about_me')

其他以各种方式进行搜索和查询的方法可以在文档中找到。

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

推荐PyPI第三方库


热门话题
java从JSP或HTML向servlet发送多个参数   java方法来查看字符是否在字符数组中   使用带有java的MAC地址连接到设备   java如何将csv文件中的数据打印到secondactivity?   java如何从netbean 7.0.1连接到数据库   java考虑所有可能的类值,用于输出测试分割的预测值。   java我的actionListener调用有什么问题   swing在Java中实现粒子过滤器最有效的方法是什么?   java运行。getFontFamily()为返回null。使用apachepoi的docx文件   一个事务中的java领域循环与每个步骤循环中的一个事务   java日期格式与Spring Boot不兼容   java类冲突。处理   java GridBagLayout不工作   java将图像发送到另一个应用程序