用于生成FOLIO数据迁移预测性UUID的库
项目描述
folio_uuid
在FOLIO之外迁移数据时创建确定性的UUID(UUID v5)的Python模块。
安装
该模块已上传到pypi。只需做
pip install folio-uuid
或
pipenv install folio-uuid
概述
UUID(v5)按照以下方式构建
- 命名空间对所有“Folio UUID”相同: 8405ae4d-b315-42e1-918a-d1919900cf3f
- 名称由以下部分构成,由冒号(:)分隔
- OKAPI_URL 这应该是包括https在内的完整OKAPI URL。 示例: https://okapi-bugfest-juniper.folio.ebsco.com
- OBJECT_TYPE_NAME 这应该是为ID生成的对象类型的名称。如果是复数,则在该存储库中的 file folio_namespaces.py 中有当前使用的完整列表。 示例: items
- 遗留标识符 这应该是来自源系统的遗留标识符。如果标识符是Sierra/Millennium标识符,库将对其进行一些规范化*。 示例: i3696836
* 规范化会从标识符中移除任何点(.)、校验位和校园代码
测试/示例
- 命名空间是 8405ae4d-b315-42e1-918a-d1919900cf3f
- 名称,构造为 OKAPI_URL:OBJECT_TYPE_NAME:LEGACY_IDENTIFIER 将成为 https://okapi-bugfest-juniper.folio.ebsco.com:items:i3696836
- 生成的UUID随后变为 9647225d-d8e9-530d-b8cc-52a53be14e26
Bash/Linux 示例
uuidgen --sha1 -n 8405ae4d-b315-42e1-918a-d1919900cf3f -N https://okapi-bugfest-juniper.folio.ebsco.com:items:i3696836
在支持apt的Linux发行版上安装uuidgen,使用
sudo apt-get install uuid-runtime
Python 示例
def test_deterministic_uuid_generation_holdings():
deterministic_uuid = FolioUUID(
"https://okapi-bugfest-juniper.folio.ebsco.com",
FOLIONamespaces.holdings,
"000000167",
)
assert "a0b4c8a2-01fd-50fd-8158-81bd551412a0" == str(deterministic_uuid)
参考文献
维基百科有关于UUID版本5的文章
有许多基于浏览器的工具可以创建单个UUID v5。 UUIDTools 是其中之一。
项目详情
下载文件
下载适用于您的平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。
源代码分发
folio_uuid-0.2.10.tar.gz (6.2 kB 查看哈希)
构建分发
folio_uuid-0.2.10-py3-none-any.whl (6.9 kB 查看哈希)