一个集装箱级的权限范围
scopelist的Python项目详细描述
重要
这个包裹过时了。它的替代品可以在https://pypi.python.org/pypi/scopes
scopelist公开ScopeList类,该容器类型旨在 简化检查授权范围。
安装
您可以从pypi安装scopelist:
> pip install scopelist
这将为您安装所有依赖项。如果要安装 直接从源代码处克隆git存储库并运行标准 python setup.py install命令。
依赖性
- Python2.7,3.2+
用法
scopelist实现了__contains__magic方法,使它变得简单 检查特定范围和权限是否表示为 斯科普斯
>>> from scopelist import ScopeList >>> ScopeList(['user/emails+r']) ScopeList(['user/emails']) >>> 'user/emails' in ScopeList(['user/emails']) True
实际上,scopelist的工作方式类似于任何不可变的序列。
>>> len(ScopeList(['user/emails', 'user/repo'])) 2 >>> ScopeList(['user/emails+r', 'user/repo+aaaaa'])[1] 'user/repo+a' >>> list(ScopeList(['user/emails+r', 'user/repo+aaaaa'])) ['user/emails', 'user/repo+a'] >>> ['foo/bar', 'foo/baz'] in ScopeList.from_string('foo') True >>> ['foo/bar', 'foo/baz', 'extra'] in ScopeList(['foo', 'bar']) False
它们也可以直接从字符串中解析出来
>>> ScopeList.from_string("user/emails+r user/emails+n") ScopeList(['user/emails', 'user/emails+n'])
>>> ScopeList.from_string("user/emails+r:user/emails+n", item_sep=":") ScopeList(['user/emails', 'user/emails+n'])
权限
您可以将字母附加到范围项以表示某些权限。 权限分隔符(+by)后面的任何ascii字母 默认)被解释为权限。检查项目时 在作用域列表中,其值和权限必须至少匹配 列表中的一项。
>>> 'user/emails+a' in ScopeList(['user/emails']) False >>> 'user/emails+a' in ScopeList(['user/emails+a']) True
通过包含多个 在+符号后一个字母。将忽略重复的权限。
>>> 'user/repo+w' in ScopeList(['user/repo+abcd', 'user/repo+rw']) True
权限是完全任意的,除了+r由 未显式授予权限时的默认值。
>>> 'user/emails+r' in ScopeList(['user/emails']) True
您可以将默认权限更改为您喜欢的任何权限。
>>> 'user/emails+n' in ScopeList(['user/emails'], default_mode='n') True >>> 'user/emails+q' in ScopeList(['user/emails'], default_mode='pq') True >>> 'user/emails+p' in ScopeList(['user/emails'], default_mode='pq') True
权限分隔符也是可配置的。
>>> 'user/emails|r' in ScopeList(['user/emails'], mode_sep='|') True
父母
/符号是默认的子分隔符。父范围项 自动“包含”作用域列表中的子项。
>>> 'user/emails+r' in ScopeList(['user']) True >>> 'user/emails+w' in ScopeList(['user']) False >>> 'user/emails+rw' in ScopeList(['user+w', 'user/emails+r']) True
子分隔符也可以更改:
>>> 'user:emails+r' in ScopeList(['user'], child_sep=':') True
许可证
版权所有(c)2016 TE-Jérodgers
兹免费准许任何人取得副本 本软件和相关文档文件(“软件”)的 在软件中不受限制,包括但不限于 使用、复制、修改、合并、发布、分发、再授权和/或出售 软件的副本,并允许软件的用户 在满足以下条件的情况下,可以这样做:
上述版权公告及本许可公告须包括在 软件的拷贝或大部分。
本软件按“原样”提供,无任何形式的保证,明示或 默示的,包括但不限于适销性保证, 适合特定目的和不侵权。在任何情况下 作者或版权所有者应对任何索赔、损害或其他 责任,无论是在合同诉讼、侵权诉讼或其他诉讼中, 不属于或与本软件有关,或使用或与本软件的其他交易有关。 软件。