版本管理器。有版本要求的模块可以写为`ModuleName(==|>=|<=)1.2.3`。VerManager的目标是版本控制。

vermanager的Python项目详细描述


经理

简介

版本管理器。有版本要求的模块可以写成ModuleName(==|>=|<=)1.2.3。VerManager的目标是版本控制。在

功能

使用版本信息

构造模块

Module可以用一个类似'ModuleName==1.2.3'的字符串构造,其中1.2.3是版本,可以选择后跟字母后缀,比较时将忽略它,如后面所述。在

检查版本是否符合要求

一个需求有四种可能的语义。如果没有说明版本要求,则该要求只应包含模块名称。否则模块名后面应该跟一个关系运算符,它可以是==>=和{}。运算符指示当前版本应满足与所述版本的某种关系。在

如果运算符是==,则两个版本应该完全相同。在其他情况下,按字母顺序排列的部分将是ingore,即模块aaa==1.2.3.abc满足aaa>=1.2.3.cde的要求。在

如果当前版本不能满足要求,经理将尝试找到合适的版本并记录“应更新到…”。如果找不到满足所有需求的版本,那么一定存在冲突的需求。请注意,所有需求都将被记录下来,以便以后进行冲突分析。在

示例

vm=VersionsManager()vm.set_current_modules(['aaa==1.1.2','bbb==0.8.23','ccc=1.1.1','ddd==a.b.c','eee==1.2.4.abc'])print(vm.check_requirements(['aaa>=1.0.9','aaa<=2.0','bbb==0.8.27','ccc==1.1.1','ddd>=a.b.a','eee>=1.2.4.cde','fff==1.2','eee=1','eee==1.2.3']))

打印出来的是

^{pr2}$

更新

v0.1.2版

  • 将未满足集分为可解集和冲突集。在
  • 替换模块名检查方法以支持-_

v0.1.3版

  • 删除Python3.8语法

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

推荐PyPI第三方库


热门话题
隐写术中随机lsb位的java访问   java如何使用GZIP压缩Http Post正文   java Mockito的when()不是stubing超类的方法   java安卓:片段中的Setter&在recycleServiceAdapter中获取字符串   用JDBC进行简单的客户端中间件仿真   JavaF:param返回null?   Java413语音错误   java获取子文档中的数据   启用持久性的java嵌入式HornetQ无法使用编程配置启动   运行spring引导jar工件时出现java“在METAINF/spring.factories中找不到自动配置类”错误   java如何格式化Spring引导的GET请求中的对象   swing Java填充自定义形状   Java仅在超类中处理序列化   在java应用程序中使用ftp4j库下载/上载时发生FTP错误   java准备语句作为sql参数