资源管理(文件/目录/等)。

rsrc的Python项目详细描述


RSRC

在接下来的内容中

  • 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 rsrc
    
  • PyPy
    pypy -m pip install --upgrade rsrc
    

显影剂

GitHub存储库下载最新版本

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

安装依赖项:

  • 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
    

用法

主要思想是使用setuptools特性 叫"Dynamic Discovery of Services and Plugins"

假设我们有一个具有结构的包rsrc_ftp

|_ rsrc_ftp.py
|_ setup.py

它添加了对带有ftp方案的url的支持

rsrc_ftp.py

fromrsrc.modelsimportResourcedefdeserialize(string:str)->Resource:...

使其可用于rsrc包 我们应该注册它的入口点 (rsrc_ftp::deserialize函数在我们的例子中)

setup.py

fromsetuptoolsimportsetupfromrsrcimportpluginsplugins_entry_points=[plugins.to_entry_point(id_=plugins.to_id('ftp'),module_name='rsrc_ftp',function_name='deserialize'),]setup(name='rsrc_ftp',py_modules=['rsrc_ftp'],entry_points={plugins.__name__:plugins_entry_points},install_requires=['rsrc'])

之后,安装rsrc_ftp包 将在rsrc包中注册rsrc_ftp::deserialize函数 作为使用ftp方案的资源的入口点

>>>fromrsrc.baseimportdeserialize>>>ftp_resource=deserialize('ftp://path/to/resource')>>>ftp_resource.urlURL('ftp','path','/to/resource','','','')

插件

  • ^{}——添加对本地/本地网络文件和目录的支持。
  • ^{}——添加对web资源的支持(包括http&;https方案)。

开发

碰撞版本

准备工作

安装 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

注释

为了避免分支和拉取请求之间的不一致, 碰撞版本应该合并到master分支中 作为单独的请求。

运行测试

安装依赖项:

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

普通

pytest

容器内部:

  • 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第三方库


热门话题
javajaxb在嵌套节点中生成xmlns:xsi声明   java重定向到youtube以上传jsp上可用的视频   java提高了JVM和ANT的性能   java如何将返回的JSON数据放在HTML表单中   java如何发送XWWWFORMURLENCODE在重新授权   java为什么jvm XX:+EliminateAllocations失败   堆移除和重建方法?(爪哇)   Stanford NPL in Spark(Scala)应用程序运行到Java堆空间(Java.lang.OutOfMemoryError)   调试java中打开/关闭println的任何方式(详细模式)   java IntelliJ在鼠标悬停时显示JavaDocs工具提示   Olingo Odata Java中的自动扩展选项   json将postgres文本arry转换为java列表?   oop需要帮助推断Java代码   复选框的java添加操作侦听器AbstractTableModel   java如何从公共静态void main(String[]args)传递值   java从数据库中获取大值   java Processing 2.0电影从jar运行时无法打开电影文件   java如何在不使用应用程序的情况下刷新活动?   尝试将JSON解析为ListView时的Android:JSON parse:null对象引用