python对象元数据解析器。

paradigm的Python项目详细描述


范例

在接下来的内容中

  • pythonpython3.5或任何更高版本的别名 版本(python3.6等),
  • pypypypy3.5或任何更高版本的别名 版本(pypy3.6等等)。

安装

安装最新的pip&;setuptools软件包版本:

  • CPython
    python -m pip install --upgrade pip setuptools
    
  • PyPy
    pypy -m pip install --upgrade pip setuptools
    

用户

PyPI存储库下载并安装最新的稳定版本:

  • CPython
    python -m pip install --upgrade paradigm
    
  • PyPy
    pypy -m pip install --upgrade paradigm
    

显影剂

GitHub存储库下载最新版本

git clone https://github.com/lycantropos/paradigm.git
cd paradigm

安装依赖项:

  • CPython
    python -m pip install -r requirements.txt
    
  • PyPy
    pypy -m pip install -r requirements.txt
    

安装:

  • CPython
    python setup.py install
    
  • PyPy
    pypy setup.py install
    

用法

paradigm可用于获取签名

>>>fromparadigmimportsignatures

对于用户定义的函数

>>>deffunc(foo,bar=None,**kwargs):...pass>>>signatures.factory(func)Plain(Parameter(name='foo',kind=Parameter.Kind.POSITIONAL_OR_KEYWORD,has_default=False),Parameter(name='bar',kind=Parameter.Kind.POSITIONAL_OR_KEYWORD,has_default=True),Parameter(name='kwargs',kind=Parameter.Kind.VARIADIC_KEYWORD,has_default=False))

对于用户定义的类

>>>classUpperOut:...def__init__(self,outfile):...self._outfile=outfile......defwrite(self,s):...self._outfile.write(s.upper())......def__getattr__(self,name):...returngetattr(self._outfile,name)>>>signatures.factory(UpperOut)Plain(Parameter(name='outfile',kind=Parameter.Kind.POSITIONAL_OR_KEYWORD,has_default=False))

对于用户定义的类方法

>>>signatures.factory(UpperOut.write)Plain(Parameter(name='self',kind=Parameter.Kind.POSITIONAL_OR_KEYWORD,has_default=False),Parameter(name='s',kind=Parameter.Kind.POSITIONAL_OR_KEYWORD,has_default=False))

对于内置功能

>>>importplatform>>>fromparadigm.modelsimportParameter,Plain>>>signatures.factory(any)==(...Plain(Parameter(name='seq',...kind=Parameter.Kind.POSITIONAL_OR_KEYWORD,...has_default=False))...ifplatform.python_implementation()=='PyPy'...elsePlain(Parameter(name='iterable',...kind=Parameter.Kind.POSITIONAL_ONLY,...has_default=False)))True

对于内置类

>>>importplatform>>>fromparadigm.modelsimportParameter,Plain>>>signatures.factory(float)==(...Plain(Parameter(name='x',...kind=Parameter.Kind.POSITIONAL_OR_KEYWORD,...has_default=True))...ifplatform.python_implementation()=='PyPy'...elsePlain(Parameter(name='x',...kind=Parameter.Kind.POSITIONAL_ONLY,...has_default=True)))True

对于内置类方法

>>>importplatform>>>fromparadigm.modelsimportParameter,Plain>>>signatures.factory(float.as_integer_ratio)==(...Plain(Parameter(name='self',...kind=Parameter.Kind.POSITIONAL_OR_KEYWORD,...has_default=False))...ifplatform.python_implementation()=='PyPy'...elsePlain(Parameter(name='self',...kind=Parameter.Kind.POSITIONAL_ONLY,...has_default=False)))True

使用

可以检查对象是否受paradigm支持
>>>fromparadigmimportdefinitions>>>definitions.is_supported(int.bit_length)True

开发

碰撞版本

准备工作

安装 bump2version

预发布

选择要在semver specification之后凹凸的版本号类别。

测试碰撞版本

bump2version --dry-run --verbose $CATEGORY

其中$CATEGORY是目标版本号类别名称,可能 值是patch/minor/major

凹凸版本

bump2version --verbose $CATEGORY

这将把version设置为major.minor.patch-alpha

释放

测试碰撞版本

bump2version --dry-run --verbose release

凹凸版本

bump2version --verbose release

这将把version设置为major.minor.patch

运行测试

安装依赖项:

  • CPython
    python -m pip install -r requirements-tests.txt
    
  • PyPy
    pypy -m pip install -r requirements-tests.txt
    

普通

pytest

Docker容器内:

  • CPython
    docker-compose --file docker-compose.cpython.yml up
    
  • PyPy
    docker-compose --file docker-compose.pypy.yml up
    

Bash脚本(例如,可用于Git挂钩):

  • CPython

    ./run-tests.sh
    

    ./run-tests.sh cpython
    
  • PyPy

    ./run-tests.sh pypy
    

PowerShell脚本(例如,可用于Git挂钩):

  • CPython
    .\run-tests.ps1
    .\run-tests.ps1cpython
  • PyPy
    .\run-tests.ps1pypy

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

推荐PyPI第三方库


热门话题
java将一个节点拖到另一个不运行JavaFX的节点中   java如何在spring boot中创建完全自定义的查询   java Arraylist和ArrayListBlockingQueue之间的区别是什么?   java Weblogic会中断长时间运行的线程吗   java如何调用displayAd()方法?   使用数组在两个组之间进行java IPL匹配   java如何在Eclipse中的org下创建测试套件。朱尼特   java获取屏幕上任意点的鼠标坐标   正则表达式需要java正则表达式方面的帮助   如何使用Java获取Ram大小和硬盘大小?   java如何将所需长度设置为数组中的整数?   安卓应用程序启动前的java程序已终止   swing设置要在Java代码中打印的页边距   迭代期间java故障安全迭代器的删除   java如何在main中调用方法,以便它们在同一行上输出?   编译Java:尝试播放mp3文件时出错   java如何使用Spring数据Rest在POST调用中保存嵌入对象   java JAXWS如何在端点外部注入SecurityContext