oaipmh模块是“开放档案倡议元数据收割协议”(版本2)客户端和服务器的一个Python实现。
项目描述
The oaipmh module is a Python implementation of an “Open Archives Initiative Protocol for Metadata Harvesting” (version 2) client and server. The protocol is described here
http://www.openarchives.org/OAI/openarchivesprotocol.html
以下是一个简单的OAIPMH客户端实现
>>> from oaipmh.client import Client >>> from oaipmh.metadata import MetadataRegistry, oai_dc_reader
>>> URL = 'http://uni.edu/ir/oaipmh'
>>> registry = MetadataRegistry() >>> registry.registerReader('oai_dc', oai_dc_reader) >>> client = Client(URL, registry)
>>> for record in client.listRecords(metadataPrefix='oai_dc'): >>> print record
pyoai包还包含OAIPMH协议的通用服务器实现,这是MOAI服务器平台的基础。
变更日志
2.5.2(未发布)
2.5.1
添加了可定制的客户端重试策略(由adimascio贡献)
添加了对Python 3.8的兼容性(由krenzlin贡献)
如果没有返回结果,则不恢复ListRecord请求(由wetneb贡献)
2.5.0 (2017-07-03)
添加了对Python 3的兼容性(由Tobias Kurze、Uli Köhler和Michał Pasternak贡献)
Travis支持及徽章(Michał Pasternak)
2.4.5 (2015-12-23)
在客户端添加了强制使用HTTP Get方法进行收割的开关(由Stefan Oderbolz贡献)
在服务器和客户端中添加了非官方的GetMetadata动词。GetMetadata与GetRecord相同,但只返回oai:metadata元素下的第一个元素,不返回oai enveloppe。
2.4.4 (2010-09-30)
更改了联系信息,将代码从Subversion迁移到Mercurial
2.4.3 (2010-08-19)
将lxml.etree._ElementUnicodeResult和ElementStringResult转换为正常字符串和unicode对象,以防止在将这些对象序列化时出错。(lp #617439)
2.4.2 (2010-05-03)
OAI_DC和DC命名空间声明不应在文档根上声明,而应在metadata元素的子元素上声明。根据OAI规范
2.4.1 (2009-11-16)
当指定日期(不是日期时间)作为until参数时,默认为23:59:59而不是00:00:00
2.4 (2009-05-04)
在OAI Identify报头中包含了对描述元素的兼容性支持,默认添加了‘toolkit’描述。
2.3.1 (2009-04-24)
当from和until参数具有不同的粒度时,引发正确的错误
2.3 (2009-04-23)
修复了处理无效dateTime格式的错误,并添加了测试,现在服务器将响应BadArgument(XML)错误而不是Python跟踪信息。
使用buildout创建测试运行器和环境,而不是使用test.py脚本。
通过以下方式安装buildout
$ python bootstrap.py $ bin/buildout
通过以下方式运行测试
$ bin/test
要获取一个可导入oaipmh库的python解释器
$ bin/devpython
2.2.1 (2008-04-04)
将xml声明添加到服务器输出中
美化xml输出
兼容性修复:现在应该与lxml 2.0兼容
服务器恢复令牌现在与POST请求一起工作。
修复了处理服务器503响应的客户端代码。
2.2 (2006-11-20)
对BatchingServer的支持。BatchingServer实现了IBatchingOAI接口。这与IOAI非常相似,但方法接受一个“光标”和“批大小”参数。这可以用来在关系数据库上高效地实现批处理OAI服务器。
使OAIPMH客户端能够显式地传递None作为from或until参数。
Server和BatchingServer的额外nsmap参数允许程序员指定用于服务器输出的命名空间前缀到命名空间URI映射。
修复了输出未正确编码为UTF-8的bug。
2.1.5 (2006-09-18)
兼容性修复:现在应该与lxml 1.1兼容。
2.1.4 (2006-06-16)
作为egg分发。
2.1.3
添加处理非XML兼容OAI-PMH源的基础设施;在这种情况下,引发XMLSyntaxError。
添加了tolerant_datestamp_to_datetime,它在遇到不良日期戳时比正常的datestamp_to_datetime更加宽容。
将日期戳处理分离到单独的日期戳模块。
2.0
在客户端添加了对仅支持天粒度(YYYY-MM-DD)的支持。使用客户端的“updateGranularity”将检查服务器(使用identify())支持什么粒度。如果服务器只支持天级别粒度,客户端将确保只发送YYYY-MM-DD时间戳。
2.0b1
添加了实现OAI-PMH兼容服务器的框架。
更改了包结构:现在是一个oaipmh命名空间包。客户端功能现在在oaipmh.client中。
重构oaipmh.py模块,以使客户端和服务器重用代码。
扩展了测试基础设施。
从使用libxml2 Python包装器切换到lxml绑定。
使用生成器而不是修改过的 getitem。这意味着 listRecords、listIdentifiers 和 listSets 的返回值现在不再是正常列表,而是迭代器。然而,通过在它们上使用 list(),可以轻松地将它们转换为正常列表。
1.0.1
oaipmh.py 中的错误。
1.0
在 serialize 调用中添加了一个编码参数,这修复了一个 Unicode 错误。
0.7.4
收割可以返回带有 <header status“deleted”> 的记录,这些记录不包含元数据,仅表明该资源的元数据集不再在 OAI 服务上。这些记录应用于从目录中删除元数据(如果存在),但不应存储或编目。目前它们不这样做。(在 zope/OAICore/core.py 中修复。)
0.7
初始公共版本。
项目详情
下载文件
下载适用于您平台的自定义文件。如果您不确定选择哪个,请了解有关 安装包 的更多信息。
源分发
构建分发
pyoai-2.5.1-py3.9.egg 的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | b3043b84d4eef61093c32be1b22e5b74d5387fd2d1c6534aa445f574ac8f46f4 |
|
MD5 | d4fc2bcb6f0a5ae527a4e7622f268f4b |
|
BLAKE2b-256 | 30975d976b8d4d15ce8fe2484d07db874a180c585a5ef942579b177e05407aec |