语义和正则表达式版本筛选/屏蔽库。
version-filter的Python项目详细描述
版本过滤器
语义和正则表达式版本过滤/屏蔽库。
给定过滤掩码或正则表达式和版本列表(作为字符串),将返回该版本列表的子集。 如果给定了掩码并且该掩码使用当前版本引用,则还必须提供显式的当前版本作为 输入也必须作为输入提供。
输入
掩码/正则表达式
掩码可以是具有以下扩展名的Semver v2有效掩码。
面罩锁延长
锁( l )用作掩码中的替换字符,用于在需要的地方替换主要、次要和修补程序组件 将版本筛选器限制为与给定的当前版本具有相同值的版本。如果a l 如果掩码中的任何位置存在,则还必须提供当前版本参数。通过给出一个正整数 紧跟着"l"你可以表达"lock+int"行为。例如,掩码中的 l1 表示"当前 任何给定位置的版本号+1"。
屏蔽是扩展
是( y )用于提供对位于 y 位置的任何值的通配符接受。它可以用在 版本'
的主要、次要、修补程序或预发布组件次优匹配分机
有些包从未公开发布过预期的语义版本。以一个从未发布的包为例 a '2.0.0' 版本,但已将 '2.0.1' 作为2系列的第一个可用版本。能够处理 在不使用范围或通配符的情况下偏离了约定,从而失去了锁的某些功能,是的 扩展名可以用连字符( - )作为掩码的前缀。这使得算法能够预测 发布"应该"被发布,如果预期的发布从未出现,则选择"下一个"发布。例如, 掩模 '-y.0.0' 预期将进行 '2.0.0' 释放,但如果 2.0.0 从未出现释放。
布尔型和/或
布尔和运算符( &; )和布尔或运算符( )可用于组合掩码。但是,和和或 不能在同一表达式中组合 。
一些常见示例:
- '1.y.0' 仅返回主要版本1的次要版本
- 'l.y.0' 只返回那些比当前安装的版本大的次要版本,但在相同的版本中 主要版本
- '>;=l1.0.0' >返回主版本的每个版本,至少比当前主版本大1个版本
- '-y.0.0' \ 已启用匹配(如果从未发布2.0.0,则返回2.0.1版本)
- 'l.l.y' 只返回那些大于当前安装版本的修补程序版本,但在相同的版本中 主要和次要版本
- 'y.y.y' 返回所有主要、次要和修补程序版本
- 'y.y.y-y' >返回所有主要、次要、修补程序和预发布版本
- 'l.l.y y.y.0' 返回当前安装版本或所有主要和次要版本的修补程序版本
- '>;1.0.0&;3.0.0' ;返回1.0.0到3.0.0之间的所有版本,独占
- '*' 返回所有版本,包括预发行版
版本字符串列表
版本字符串列表应该是一组格式良好的语义版本,符合semver v2规范。
当前版本
符合semver v2规范的版本字符串。
用法
fromversion_filterimportVersionFiltermask='L.Y.Y'versions=['1.8.0','1.8.1','1.8.2','1.9.0','1.9.1','1.10.0','nightly']current_version='1.9.0'VersionFilter.semver_filter(mask,versions,current_version)# ['1.9.1', '1.10.0']VersionFilter.regex_filter(r'^night',versions)# ['nightly']
许可证
- 自由软件:麻省理工学院许可证
学分
- 保罗·奥特曼
- 戴夫·盖德特