通过示例完成的测试和文档。

examples的Python项目详细描述


eXamples - Python Tests and Documentation Done by Example.


PyPI versionBuild StatuscodecovJoin the chat at https://gitter.im/timothycrosley/examplesLicenseDownloads


Read Latest Documentation-Browse GitHub Code Repository


eXamples(AKA:eXamples for SEO)是一个Python3库,支持可交互、自记录和自我验证的示例。这些示例使用decorator或通过单独的MODULE_examples.py源文件直接附加到Python函数。在

Example Usage Gif

主要特点:

  • ^{str1}$简单而明显的API:为每个要添加到函数的示例添加@examples.example(*args, **kwargs)装饰器。在
  • Auto Documenting:默认情况下,示例被添加到函数docstring中,无论是在交互式解释程序中还是在使用portraypdocs时都可以查看。在
  • Signature Validating:可以轻松检查所有示例,以确保它们与函数签名(和类型注释)匹配一次呼叫(examples.verify_all_signatures())。在
  • 作为测试:示例充当附加测试用例,可以使用您最喜欢的测试运行程序中的单个测试用例轻松验证这些测试用例:(examples.test_all_examples())。在
  • Async Compatibility:与非异步函数一样,可以附加示例并针对异步函数进行测试。在

缺少什么:

  • Class Support:当前示例只能附加到单个函数。类和方法支持计划在将来的版本中使用。在

快速入门

下面的指南将帮助您尽快开始使用示例。在

  1. Installation-TL;DR:在项目虚拟环境中运行pip3 install examples。在

  2. Adding Examples- TL;DR:添加表示每个示例的示例装饰器:

     # my_module_with_examples.py
     from examples import example
    
     @example(1, number_2=1, _example_returns=2)
     def add(number_1: int, number_2: int) -> int:
         return number_1 + number_2
    
  3. Verify and Test Examples- TL;DR:在项目测试用例中运行examples.verify_and_test_examples。在

    ^{pr2}$ 在
  4. 反省的例子-

     import examples
    
     from my_module_with_examples import add
    
    
     examples.get_examples(add)[0].use() == 2
    

为什么要创建示例?在

我一直希望有一种方法可以将示例附加到函数中,使其能够在文档、测试和API建议中重用。 就像将Python参数类型从注释移动到类型注释使它们更广泛地有用一样,我希望示例也能在示例调用中实现同样的效果。在

我希望你也发现eXamples有用!在

~蒂莫西·克罗斯利

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

推荐PyPI第三方库


热门话题
java WiFi P2P通信(已连接的设备)   java从Junit中的JaxRs响应类获取头值、状态代码等   java如何使用Spring将xml转换为bean?   HibernateJava中的迭代器错误问题。util。ConcurrentModificationException:null   java从Outlook Javamail读取邮件   java在实现以下库Android后出现重复类错误   java这个zip方法有什么问题?   SpringJava。lang.NoSuchMethodError:org。冬眠会话工厂。openSession()Lorg/hibernate/classic/Session更新到hibernate 4后   为什么Java Stripe API对receiveChangeCipherSpec()有异常NoSuchMethodError?   javajavax。摆动JCheckBox setSelected未从GUI调用   小程序需要特定的最低Java版本   java无法设置JTextField,但可以输出变量   如何在没有exec插件的情况下执行java项目?   使用replace Java删除句子中的表达式时出现正则表达式错误