diff --git a/HISTORY.txt b/HISTORY.txt index a831780..e6aa4ea 100644 --- a/HISTORY.txt +++ b/HISTORY.txt @@ -1,234 +1,170 @@ Changelog ========= -2.5.1 (unreleased) -~~~~~~~~~~~~~~~~~ +2.5.2 (unreleased) -- Added customizable client retry policy (contributed by adimascio) +2.5.1 +- Added customizable client retry policy (contributed by adimascio) -2.5.0 (2017-07-03) -~~~~~~~~~~~~~~~~~~ +- Added compatibility with Python 3.8 (contributed by krenzlin) -- Added Python 3 compatibility (contributed by Tobias Kurze, Uli Köhler and Michał Pasternak) -- Travis support and badges (Michał Pasternak) +- Do not resume ListRecord requests if no result was returned (contributed by wetneb) -2.4.5 (2015-12-23) -~~~~~~~~~~~~~~~~~~ +2.5.0 (2017-07-03) -- Added switch in client to force harvesting using HTTP Get method (contributed by Stefan Oderbolz). +- Added Python 3 compatibility (contributed by Tobias Kurze, Uli Köhler + and Michał Pasternak) +- Travis support and badges (Michał Pasternak) -- Added unofficial GetMetadata verb in server and client. GetMetadata is - identical to GetRecord, but only returns the first element below the - oai:metadata element, it does not return the oai enveloppe. +2.4.5 (2015-12-23) +- Added switch in client to force harvesting using HTTP Get method + (contributed by Stefan Oderbolz). -2.4.4 (2010-09-30) -~~~~~~~~~~~~~~~~~~ +- Added unofficial GetMetadata verb in server and client. GetMetadata + is identical to GetRecord, but only returns the first element below + the oai:metadata element, it does not return the oai enveloppe. - * Changed contact info, Migrated code from Subversion to Mercurial +2.4.4 (2010-09-30) -2.4.3 (2010-08-19) -~~~~~~~~~~~~~~~~~~ +- Changed contact info, Migrated code from Subversion to Mercurial -Changes -------- +2.4.3 (2010-08-19) - * Convert lxml.etree._ElementUnicodeResult and ElementStringResult - to normal string and unicode objects, to prevent errors when these - objects get pickled. (lp #617439) +- Convert lxml.etree._ElementUnicodeResult and ElementStringResult to + normal string and unicode objects, to prevent errors when these + objects get pickled. (lp #617439) -2.4.2 (2010-05-03) -~~~~~~~~~~~~~~~~~~ +2.4.2 (2010-05-03) -Changes -------- +- OAI_DC and DC namespace declarations should not be declared on the + document root, but on the child of the metadata element. According to + the OAI spec - * OAI_DC and DC namespace declarations should not be declared on the document - root, but on the child of the metadata element. According to the OAI spec +2.4.1 (2009-11-16) - -2.4.1 (2009-11-16) -~~~~~~~~~~~~~~~~~~ - -Changes -------- - - * When specifying a date (not a datetime) for the until parameter, +- When specifying a date (not a datetime) for the until parameter, default to 23:59:59 instead of 00:00:00 -2.4 (2009-05-04) -~~~~~~~~~~~~~~~~ - -Changes -------- - -* Included support for description elements in OAI Identify headers, - added 'toolkit' description by default. - -2.3.1 (2009-04-24) -~~~~~~~~~~~~~~~~~~ - -Changes -------- - -* Raise correct error when from and until parameters have different granularities +2.4 (2009-05-04) -2.3 (2009-04-23) -~~~~~~~~~~~~~~~~ +- Included support for description elements in OAI Identify headers, + added ‘toolkit’ description by default. -Changes -------- +2.3.1 (2009-04-24) -* Fixed bug and added tests for handling invalid dateTime formats, - the server will now respond with a BadArgument (XML) error instead - of a python traceback. +- Raise correct error when from and until parameters have different + granularities -* Use buildout to create testrunner and environment as opposed to - ``test.py`` script. +2.3 (2009-04-23) - Install buildout by: +- Fixed bug and added tests for handling invalid dateTime formats, the + server will now respond with a BadArgument (XML) error instead of a + python traceback. - $ python bootstrap.py - $ bin/buildout +- Use buildout to create testrunner and environment as opposed to + ``test.py`` script. - Run the tests by doing: - - $ bin/test + Install buildout by: - To get a python interpreter with the ``oaipmh`` library importable:: + $ python bootstrap.py $ bin/buildout - $ bin/devpython + Run the tests by doing: -2.2.1 (2008-04-04) -~~~~~~~~~~~~~~~~~~ + $ bin/test -Changes -------- + To get a python interpreter with the ``oaipmh`` library importable:: -* Added xml declaration to server output -* Prettyprint xml output -* compatibility fix: should be compatible with lxml 2.0 now -* server resumption tokens now work with POST requests. -* Fix for client code that handles 503 response from server. + $ bin/devpython -2.2 (2006-11-20) -~~~~~~~~~~~~~~~~ +2.2.1 (2008-04-04) -Changes -------- +- Added xml declaration to server output +- Prettyprint xml output +- compatibility fix: should be compatible with lxml 2.0 now +- server resumption tokens now work with POST requests. +- Fix for client code that handles 503 response from server. -* Support for BatchingServer. A BatchingServer implements the - IBatchingOAI interface. This is very similar to IOAI, but methods - get a 'cursor' and 'batch_size' argument. This can be used to - efficiently implement batching OAI servers on top of relational - databases. +2.2 (2006-11-20) -* Make it possible to explicitly pass None as the from or until parameters - for a OAIPMH client. +- Support for BatchingServer. A BatchingServer implements the + IBatchingOAI interface. This is very similar to IOAI, but methods get + a ‘cursor’ and ‘batch_size’ argument. This can be used to efficiently + implement batching OAI servers on top of relational databases. -* an extra nsmap argument to Server and BatchingServer allows the - programmer to specify either namespace prefix to namespace URI mappings - that should be used in the server output. +- Make it possible to explicitly pass None as the from or until + parameters for a OAIPMH client. -* fixed a bug where the output wasn't encoded properly as UTF-8. +- an extra nsmap argument to Server and BatchingServer allows the + programmer to specify either namespace prefix to namespace URI + mappings that should be used in the server output. -2.1.5 (2006-09-18) -~~~~~~~~~~~~~~~~~~ +- fixed a bug where the output wasn’t encoded properly as UTF-8. -Changes -------- +2.1.5 (2006-09-18) -* compatibility fix: it should work with lxml 1.1 now. +- compatibility fix: it should work with lxml 1.1 now. -2.1.4 (2006-06-16) -~~~~~~~~~~~~~~~~~~ +2.1.4 (2006-06-16) -Changes -------- +- Distribute as an egg. -* Distribute as an egg. +2.1.3 -2.1.3 -~~~~~ +- Add infrastructure to deal with non-XML compliant OAI-PMH feeds; an + XMLSyntaxError is raised in that case. -Changes -------- +- added tolerant_datestamp_to_datetime which is a bit more tolerant + than the normal datestamp_to_datetime when encountering bad + datestamps. -* Add infrastructure to deal with non-XML compliant OAI-PMH feeds; - an XMLSyntaxError is raised in that case. +- Split off datestamp handling into separate datestamp module. -* added tolerant_datestamp_to_datetime which is a bit more tolerant - than the normal datestamp_to_datetime when encountering bad - datestamps. +2.0 -* Split off datestamp handling into separate datestamp module. +- Add support for day-only granularity (YYYY-MM-DD) in client. calling + ‘updateGranularity’ with the client will check with the server (using + identify()) to see what granularity the server supports. If the + server only supports day level granularity, the client will make sure + only YYYY-MM-DD timestamps are sent. -2.0 -~~~ +2.0b1 -Changes -------- +- Added framework for implementing OAI-PMH compliant servers. -* Add support for day-only granularity (YYYY-MM-DD) in client. - calling 'updateGranularity' with the client will check with the - server (using identify()) to see what granularity the server - supports. If the server only supports day level granularity, the - client will make sure only YYYY-MM-DD timestamps are sent. +- Changed package structure: now a oaipmh namespace package. Client + functionality now in oaipmh.client. -2.0b1 -~~~~~ +- Refactoring of oaipmh.py module to reuse code for both client and + server. -Changes -------- +- Extended testing infrastructure. -* Added framework for implementing OAI-PMH compliant servers. +- Switched over from using libxml2 Python wrappers to the lxml binding. -* Changed package structure: now a oaipmh namespace package. Client - functionality now in oaipmh.client. - -* Refactoring of oaipmh.py module to reuse code for both client and - server. - -* Extended testing infrastructure. - -* Switched over from using libxml2 Python wrappers to the lxml binding. - -* Use generators instead of hacked up __getitem__. This means that the - return from listRecords, listIdentifiers and listSets are now not - normal lists but iterators. They can easily be turned into a normal - list by using list() on them, however. +- Use generators instead of hacked up **getitem**. This means that the + return from listRecords, listIdentifiers and listSets are now not + normal lists but iterators. They can easily be turned into a normal + list by using list() on them, however. 1.0.1 -~~~~~ - -Bugs fixed ----------- - -* Typo in oaipmh.py - -1.0 -~~~ -Bugs fixed ----------- +- Typo in oaipmh.py -* Added an encoding parameter to the serialize call, which fixes a - unicode bug. +1.0 -0.7.4 -~~~~~ +- Added an encoding parameter to the serialize call, which fixes a + unicode bug. -Bugs fixed ----------- +0.7.4 -* A harvest can return records with
that - contain no metadata and are merely an indication that that - metadata-set for that resource is no longer on the OAI service. - These records should be used to remove metadata from the catalog if - it is there, bur should never be stored or catalogued - themselves. They aren't now. (Fixed in zope/OAICore/core.py) +- A harvest can return records with
that + contain no metadata and are merely an indication that that + metadata-set for that resource is no longer on the OAI service. These + records should be used to remove metadata from the catalog if it is + there, bur should never be stored or catalogued themselves. They + aren’t now. (Fixed in zope/OAICore/core.py) 0.7 -~~~ Initial public release. diff --git a/README.rst b/README.rst index 1cf0a98..f7602d3 100644 --- a/README.rst +++ b/README.rst @@ -1,5 +1,4 @@ -.. -*- restructuredtext -*- - +====== OAIPMH ====== diff --git a/setup.py b/setup.py index 60c1969..f054f03 100644 --- a/setup.py +++ b/setup.py @@ -3,7 +3,7 @@ setup( name='pyoai', - version='2.5.1pre', + version='2.5.1', author='Infrae', author_email='info@infrae.com', url='http://www.infrae.com/download/oaipmh', @@ -12,16 +12,11 @@ "License :: OSI Approved :: BSD License", "Topic :: Software Development :: Libraries :: Python Modules", "Environment :: Web Environment"], - description="""\ -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 -""", + description="""The oaipmh module is a Python implementation of an "Open Archives Initiative Protocol for Metadata Harvesting" (version 2) client and server.""", long_description=(open(join(dirname(__file__), 'README.rst')).read()+ '\n\n'+ open(join(dirname(__file__), 'HISTORY.txt')).read()), + long_description_content_type='text/x-rst', packages=find_packages('src'), package_dir = {'': 'src'}, zip_safe=False,