{ "info": { "author": "Infrae", "author_email": "info@infrae.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Web Environment", "License :: OSI Approved :: BSD License", "Programming Language :: Python", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": ".. -*- restructuredtext -*-\n\nOAIPMH\n======\n\n\n.. image:: https://travis-ci.org/mpasternak/pyoai.svg?branch=master\n :target: https://travis-ci.org/mpasternak/pyoai\n\nThe oaipmh module is a Python implementation of an \"Open Archives\nInitiative Protocol for Metadata Harvesting\" (version 2) client and\nserver. The protocol is described here:\n\nhttp://www.openarchives.org/OAI/openarchivesprotocol.html\n\nBelow is a simple implementation of an OAIPMH client:\n\n>>> from oaipmh.client import Client\n>>> from oaipmh.metadata import MetadataRegistry, oai_dc_reader\n\n>>> URL = 'http://uni.edu/ir/oaipmh'\n\n>>> registry = MetadataRegistry()\n>>> registry.registerReader('oai_dc', oai_dc_reader)\n>>> client = Client(URL, registry)\n\n>>> for record in client.listRecords(metadataPrefix='oai_dc'):\n>>> print record\n\n\nThe pyoai package also contains a generic server implementation of the \nOAIPMH protocol, this is used as the foundation of the `MOAI Server Platform`_\n\n.. _MOAI Server Platform: http://pypi.python.org/pypi/MOAI\n\n\nChangelog\n=========\n2.5.1 (unreleased)\n~~~~~~~~~~~~~~~~~\n\n2.5.0 (2017-07-03)\n~~~~~~~~~~~~~~~~~~\n\n- Added Python 3 compatibility (contributed by Tobias Kurze, Uli K\u00f6hler and Micha\u0142 Pasternak)\n- Travis support and badges (Micha\u0142 Pasternak)\n\n2.4.5 (2015-12-23)\n~~~~~~~~~~~~~~~~~~\n\n- Added switch in client to force harvesting using HTTP Get method (contributed by Stefan Oderbolz).\n\n- Added unofficial GetMetadata verb in server and client. GetMetadata is \n identical to GetRecord, but only returns the first element below the \n oai:metadata element, it does not return the oai enveloppe.\n\n\n2.4.4 (2010-09-30)\n~~~~~~~~~~~~~~~~~~\n\n * Changed contact info, Migrated code from Subversion to Mercurial\n\n2.4.3 (2010-08-19)\n~~~~~~~~~~~~~~~~~~\n\nChanges\n-------\n\n * Convert lxml.etree._ElementUnicodeResult and ElementStringResult\n to normal string and unicode objects, to prevent errors when these\n objects get pickled. (lp #617439)\n\n2.4.2 (2010-05-03)\n~~~~~~~~~~~~~~~~~~\n\nChanges\n-------\n\n * OAI_DC and DC namespace declarations should not be declared on the document\n root, but on the child of the metadata element. According to the OAI spec\n\n \n2.4.1 (2009-11-16)\n~~~~~~~~~~~~~~~~~~\n\nChanges\n-------\n\n * When specifying a date (not a datetime) for the until parameter,\n default to 23:59:59 instead of 00:00:00\n\n2.4 (2009-05-04)\n~~~~~~~~~~~~~~~~\n\nChanges\n-------\n\n* Included support for description elements in OAI Identify headers,\n added 'toolkit' description by default.\n\n2.3.1 (2009-04-24)\n~~~~~~~~~~~~~~~~~~\n\nChanges\n-------\n\n* Raise correct error when from and until parameters have different granularities\n\n2.3 (2009-04-23)\n~~~~~~~~~~~~~~~~\n\nChanges\n-------\n\n* Fixed bug and added tests for handling invalid dateTime formats, \n the server will now respond with a BadArgument (XML) error instead\n of a python traceback.\n\n* Use buildout to create testrunner and environment as opposed to\n ``test.py`` script. \n\n Install buildout by:\n\n $ python bootstrap.py\n $ bin/buildout\n\n Run the tests by doing:\n \n $ bin/test\n\n To get a python interpreter with the ``oaipmh`` library importable::\n\n $ bin/devpython\n\n2.2.1 (2008-04-04)\n~~~~~~~~~~~~~~~~~~\n\nChanges\n-------\n\n* Added xml declaration to server output\n* Prettyprint xml output\n* compatibility fix: should be compatible with lxml 2.0 now\n* server resumption tokens now work with POST requests.\n* Fix for client code that handles 503 response from server.\n\n2.2 (2006-11-20)\n~~~~~~~~~~~~~~~~\n\nChanges\n-------\n\n* Support for BatchingServer. A BatchingServer implements the\n IBatchingOAI interface. This is very similar to IOAI, but methods\n get a 'cursor' and 'batch_size' argument. This can be used to\n efficiently implement batching OAI servers on top of relational\n databases.\n\n* Make it possible to explicitly pass None as the from or until parameters\n for a OAIPMH client.\n\n* an extra nsmap argument to Server and BatchingServer allows the\n programmer to specify either namespace prefix to namespace URI mappings\n that should be used in the server output.\n\n* fixed a bug where the output wasn't encoded properly as UTF-8.\n\n2.1.5 (2006-09-18)\n~~~~~~~~~~~~~~~~~~\n\nChanges\n-------\n\n* compatibility fix: it should work with lxml 1.1 now.\n\n2.1.4 (2006-06-16)\n~~~~~~~~~~~~~~~~~~\n\nChanges\n-------\n\n* Distribute as an egg.\n\n2.1.3\n~~~~~\n\nChanges\n-------\n\n* Add infrastructure to deal with non-XML compliant OAI-PMH feeds;\n an XMLSyntaxError is raised in that case.\n\n* added tolerant_datestamp_to_datetime which is a bit more tolerant\n than the normal datestamp_to_datetime when encountering bad \n datestamps.\n\n* Split off datestamp handling into separate datestamp module.\n\n2.0\n~~~\n\nChanges\n-------\n\n* Add support for day-only granularity (YYYY-MM-DD) in client.\n calling 'updateGranularity' with the client will check with the\n server (using identify()) to see what granularity the server\n supports. If the server only supports day level granularity, the\n client will make sure only YYYY-MM-DD timestamps are sent.\n\n2.0b1\n~~~~~\n\nChanges\n-------\n\n* Added framework for implementing OAI-PMH compliant servers.\n\n* Changed package structure: now a oaipmh namespace package. Client\n functionality now in oaipmh.client.\n\n* Refactoring of oaipmh.py module to reuse code for both client and\n server.\n\n* Extended testing infrastructure.\n\n* Switched over from using libxml2 Python wrappers to the lxml binding.\n\n* Use generators instead of hacked up __getitem__. This means that the\n return from listRecords, listIdentifiers and listSets are now not\n normal lists but iterators. They can easily be turned into a normal\n list by using list() on them, however.\n\n1.0.1 \n~~~~~\n\nBugs fixed\n----------\n\n* Typo in oaipmh.py\n\n1.0\n~~~\n\nBugs fixed\n----------\n\n* Added an encoding parameter to the serialize call, which fixes a\n unicode bug.\n\n0.7.4\n~~~~~\n\nBugs fixed\n----------\n\n* A harvest can return records with
that\n contain no metadata and are merely an indication that that\n metadata-set for that resource is no longer on the OAI service.\n These records should be used to remove metadata from the catalog if\n it is there, bur should never be stored or catalogued\n themselves. They aren't now. (Fixed in zope/OAICore/core.py)\n\n0.7 \n~~~\n\nInitial public release.", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://www.infrae.com/download/oaipmh", "keywords": "OAI-PMH xml archive", "license": "BSD", "maintainer": null, "maintainer_email": null, "name": "pyoai", "package_url": "https://pypi.org/project/pyoai/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/pyoai/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://www.infrae.com/download/oaipmh" }, "release_url": "https://pypi.org/project/pyoai/2.5.0/", "requires_dist": null, "requires_python": null, "summary": "The oaipmh module is a Python implementation of an \"Open Archives\nInitiative Protocol for Metadata Harvesting\" (version 2) client and server.\nThe protocol is described here:\n\nhttp://www.openarchives.org/OAI/openarchivesprotocol.html", "version": "2.5.0" }, "last_serial": 4833939, "releases": { "2.1.4": [ { "comment_text": "", "digests": { "md5": "6dc425f5880b670ad586e89a49e508cf", "sha256": "3ea7c81f54f05fd91603a7e3eff0abf5453e91bbcd44b3c7aea9ace05631af51" }, "downloads": -1, "filename": "pyoai-2.1.4-py2.4.egg", "has_sig": false, "md5_digest": "6dc425f5880b670ad586e89a49e508cf", "packagetype": "bdist_egg", "python_version": "2.4", "requires_python": null, "size": 37004, "upload_time": "2006-06-16T13:47:57", "url": "https://files.pythonhosted.org/packages/e6/d4/49500c6d25a77f03e7a29ba90c8dd014139f352297b26788f58e6a497bbd/pyoai-2.1.4-py2.4.egg" }, { "comment_text": "", "digests": { "md5": "b914483d4d084f7364207763a7f6b783", "sha256": "2e2d605a0e0969a149c9e8a6983d2b3afd366c34d8a5622c5a0d16c9c4f9f78c" }, "downloads": -1, "filename": "pyoai-2.1.4.tar.gz", "has_sig": false, "md5_digest": "b914483d4d084f7364207763a7f6b783", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 100310, "upload_time": "2006-06-16T13:49:55", "url": "https://files.pythonhosted.org/packages/df/86/298fa6ba68c730fb24aea695c1021385c94b484fda8ec16ff6a84aca2ae3/pyoai-2.1.4.tar.gz" } ], "2.1.5": [ { "comment_text": "", "digests": { "md5": "522a4d447db029703968361bfb268bff", "sha256": "6c13becef902a6efd18d0710703d8012a60076fed331c1ee71b6ddea295770eb" }, "downloads": -1, "filename": "pyoai-2.1.5-py2.3.egg", "has_sig": false, "md5_digest": "522a4d447db029703968361bfb268bff", "packagetype": "bdist_egg", "python_version": "2.3", "requires_python": null, "size": 37277, "upload_time": "2006-09-18T16:43:11", "url": "https://files.pythonhosted.org/packages/84/bc/c8bb64733923b8217f69cc9f03b7706cb155376dea8f81c4dfa28fac06f2/pyoai-2.1.5-py2.3.egg" }, { "comment_text": "", "digests": { "md5": "679e86acc635292bfe77bf31169ddbd9", "sha256": "72117f48f1d0b233484a359635427dcc8fdf4c8116aba0b22ba7922994a48d58" }, "downloads": -1, "filename": "pyoai-2.1.5-py2.4.egg", "has_sig": false, "md5_digest": "679e86acc635292bfe77bf31169ddbd9", "packagetype": "bdist_egg", "python_version": "2.4", "requires_python": null, "size": 37156, "upload_time": "2006-09-18T16:42:53", "url": "https://files.pythonhosted.org/packages/47/8e/dc87b500c60b826d0324d3b1e968fb167bf50184a13d87925222afd5d6fd/pyoai-2.1.5-py2.4.egg" } ], "2.2": [ { "comment_text": "", "digests": { "md5": "7a127933dc56f2c425aa4b9219dfb512", "sha256": "bcd43a9300f8a807613397d40a009f2b0143b34696a87040a164bbaf2c6df426" }, "downloads": -1, "filename": "pyoai-2.2-py2.4.egg", "has_sig": false, "md5_digest": "7a127933dc56f2c425aa4b9219dfb512", "packagetype": "bdist_egg", "python_version": "2.4", "requires_python": null, "size": 38677, "upload_time": "2006-11-20T17:33:29", "url": "https://files.pythonhosted.org/packages/49/40/4207fbd9e1e850ff08d7db24c0735f362df30f2d9e43aac03f1b6bf264ae/pyoai-2.2-py2.4.egg" }, { "comment_text": "", "digests": { "md5": "393ca869753b72257299491aaa038d3f", "sha256": "af5ed40c6e8560d93fcf2409756177f516e698f18f2fd4cffe8e8ca189e44bba" }, "downloads": -1, "filename": "pyoai-2.2.tar.gz", "has_sig": false, "md5_digest": "393ca869753b72257299491aaa038d3f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 102017, "upload_time": "2006-11-20T17:33:19", "url": "https://files.pythonhosted.org/packages/49/3e/7d5af104184406c227f95a1486885b9deb27d275e3c17f81591cd1651145/pyoai-2.2.tar.gz" } ], "2.2.1": [ { "comment_text": "", "digests": { "md5": "f9df57b512d9471af72511ac972b15c3", "sha256": "26e5b0bdcbe731de75dd7dbf03dc3ea81ee59be26ab3319a17f625aacde91b6b" }, "downloads": -1, "filename": "pyoai-2.2.1-py2.4.egg", "has_sig": false, "md5_digest": "f9df57b512d9471af72511ac972b15c3", "packagetype": "bdist_egg", "python_version": "2.4", "requires_python": null, "size": 69357, "upload_time": "2008-04-04T11:38:24", "url": "https://files.pythonhosted.org/packages/8f/1e/cd91bf088b4338324b95b87c54987a9d5455cd0f368f631ee7715918d2b9/pyoai-2.2.1-py2.4.egg" }, { "comment_text": "", "digests": { "md5": "879b40e56aeefe4817ee79ed78e588d5", "sha256": "f76e250e67de485a1036f8d20d889e049e28e7b9b6798e1c62ec90bd198f961f" }, "downloads": -1, "filename": "pyoai-2.2.1.tar.gz", "has_sig": false, "md5_digest": "879b40e56aeefe4817ee79ed78e588d5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 103346, "upload_time": "2008-04-04T11:38:37", "url": "https://files.pythonhosted.org/packages/c1/29/4eb5537d70c8298e32f4ca3b5dbe9a6357dde2ea5c82058bdddbd1324bc8/pyoai-2.2.1.tar.gz" } ], "2.3": [ { "comment_text": "", "digests": { "md5": "79d08a4eb887b11bc9ff289c95cca577", "sha256": "83dd0405db6fc42f884f62ceee6c50356b65bf0e6486444cb7ac1ec316ab1a1a" }, "downloads": -1, "filename": "pyoai-2.3-py2.5.egg", "has_sig": false, "md5_digest": "79d08a4eb887b11bc9ff289c95cca577", "packagetype": "bdist_egg", "python_version": "2.5", "requires_python": null, "size": 68569, "upload_time": "2009-04-23T13:13:19", "url": "https://files.pythonhosted.org/packages/ab/ee/12cde7793f8f8edfa39009c368e34d128344c88649272b2fb95836e37c1a/pyoai-2.3-py2.5.egg" }, { "comment_text": "", "digests": { "md5": "2b844330bf464c65f28fd76244ff395d", "sha256": "4c22d08e029b40bd5e5fb8aa35f816ad29e6ff56dd642265bfd96dad88e0baa8" }, "downloads": -1, "filename": "pyoai-2.3.tar.gz", "has_sig": false, "md5_digest": "2b844330bf464c65f28fd76244ff395d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 99147, "upload_time": "2009-04-23T13:13:19", "url": "https://files.pythonhosted.org/packages/b5/14/112b34259235a2c2a06dce4f02aeebc7d780affc52bc1de7504f1b0c5ad6/pyoai-2.3.tar.gz" } ], "2.3.1": [ { "comment_text": "", "digests": { "md5": "87560b593624b2859fc2f196cc640043", "sha256": "5e223e74aa1570740a8d43e9539abf250e432daec048bf8cd1817ee268d7518a" }, "downloads": -1, "filename": "pyoai-2.3.1-py2.5.egg", "has_sig": false, "md5_digest": "87560b593624b2859fc2f196cc640043", "packagetype": "bdist_egg", "python_version": "2.5", "requires_python": null, "size": 69066, "upload_time": "2009-04-24T10:41:07", "url": "https://files.pythonhosted.org/packages/a7/a5/d278d5f087b1ff67eb5c41d1521dfb74f181c11b76d4865db2c867df88c7/pyoai-2.3.1-py2.5.egg" }, { "comment_text": "", "digests": { "md5": "5d6983a3327b5e4a090ced1b7170d416", "sha256": "d217390985cb0f96f18f9cadfa4986e08d47c0c7e75b3830e972b0f9f7ef331b" }, "downloads": -1, "filename": "pyoai-2.3.1.tar.gz", "has_sig": false, "md5_digest": "5d6983a3327b5e4a090ced1b7170d416", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 99589, "upload_time": "2009-04-24T10:41:07", "url": "https://files.pythonhosted.org/packages/a7/43/90aa27698c2451d26762a1645361006316b4324bfd10cebfafad1c306eb3/pyoai-2.3.1.tar.gz" } ], "2.4": [ { "comment_text": "", "digests": { "md5": "a0855611f5ad4b96946813f13d445f73", "sha256": "a1718504eefedeb242bfc4e01b2e545795d1f85abea637ea06d166e272489d7b" }, "downloads": -1, "filename": "pyoai-2.4-py2.5.egg", "has_sig": false, "md5_digest": "a0855611f5ad4b96946813f13d445f73", "packagetype": "bdist_egg", "python_version": "2.5", "requires_python": null, "size": 69970, "upload_time": "2009-05-04T15:50:07", "url": "https://files.pythonhosted.org/packages/a2/64/5cb7da3b489bb0fcbac509f18ff91d87ffa1e6f5eef046138090ce8488e5/pyoai-2.4-py2.5.egg" }, { "comment_text": "", "digests": { "md5": "66d3300a924913a40ed5c3bb63658143", "sha256": "5b2f7945a36c453a33552067865a34bd97ceafc25b2a93c445abdf79f88e3647" }, "downloads": -1, "filename": "pyoai-2.4.tar.gz", "has_sig": false, "md5_digest": "66d3300a924913a40ed5c3bb63658143", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 99901, "upload_time": "2009-05-04T15:50:05", "url": "https://files.pythonhosted.org/packages/df/7d/3bf1f7737c2ee4f7d22c9db5d2acb5b6ff98da70ed982b9b063cabf0be2c/pyoai-2.4.tar.gz" } ], "2.4.1": [ { "comment_text": "", "digests": { "md5": "70c548f8e23ae5718d01083c46f0df8b", "sha256": "34a5283352b55355393cc756251d137d180069dd290a142e83c416df1d42a2f1" }, "downloads": -1, "filename": "pyoai-2.4.1.tar.gz", "has_sig": false, "md5_digest": "70c548f8e23ae5718d01083c46f0df8b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20873, "upload_time": "2009-11-16T17:42:37", "url": "https://files.pythonhosted.org/packages/c8/9a/4dd9414a844969142dd698ec7a56a9e026ac5268334b7639f474b450a715/pyoai-2.4.1.tar.gz" } ], "2.4.2": [ { "comment_text": "", "digests": { "md5": "641f81bed55d31246db16005a33a20c7", "sha256": "dc54046e2249dc867eb4b95e52374020c3f45433970be42e7d71ff1d19bb0b1c" }, "downloads": -1, "filename": "pyoai-2.4.2.tar.gz", "has_sig": false, "md5_digest": "641f81bed55d31246db16005a33a20c7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 100916, "upload_time": "2010-05-03T17:39:18", "url": "https://files.pythonhosted.org/packages/eb/0a/3993ed6054bf4126ec23461b2d7886a7b516f2d99637b695ee9bd846a3be/pyoai-2.4.2.tar.gz" } ], "2.4.3": [ { "comment_text": "", "digests": { "md5": "ef7389ba69c831c01ae10643258d669f", "sha256": "b038d605131490e0009735a60d7ebdaa4256ed0f4f71a149f3f9e6e4d7b05433" }, "downloads": -1, "filename": "pyoai-2.4.3.tar.gz", "has_sig": false, "md5_digest": "ef7389ba69c831c01ae10643258d669f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 103125, "upload_time": "2010-08-19T15:32:17", "url": "https://files.pythonhosted.org/packages/58/40/a7609b7c6affb409333f477484429fb7c02b5adb97ef5b99830df1715fd3/pyoai-2.4.3.tar.gz" } ], "2.4.4": [ { "comment_text": "", "digests": { "md5": "d3639011cb4d08547ce96d58669f4448", "sha256": "d30d132d6ce66512a2178c132bf57b8422047cce29dee12ffe76c2a408dfd9a2" }, "downloads": -1, "filename": "pyoai-2.4.4.tar.gz", "has_sig": false, "md5_digest": "d3639011cb4d08547ce96d58669f4448", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 103809, "upload_time": "2010-09-30T11:21:41", "url": "https://files.pythonhosted.org/packages/ce/0b/766b2dff0356c1447038c324eb2be4f6bafe12123c90220c2c70314e6dfe/pyoai-2.4.4.tar.gz" } ], "2.4.5": [ { "comment_text": "", "digests": { "md5": "b019b3342841093672447dfb3d374c0c", "sha256": "de74f25396929d2c3206890c1c70ee4dccb62048a6ee58c170177f201c17f361" }, "downloads": -1, "filename": "pyoai-2.4.5.tar.gz", "has_sig": false, "md5_digest": "b019b3342841093672447dfb3d374c0c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 106545, "upload_time": "2015-12-23T12:07:35", "url": "https://files.pythonhosted.org/packages/53/91/809a6a694d5b1020766eccf6a727aa10370a44dda27e6a671e22f115fed2/pyoai-2.4.5.tar.gz" } ], "2.5.0": [ { "comment_text": "", "digests": { "md5": "251a1288e2ac071a44de72c8cdf37ff4", "sha256": "029521e1f6a819511feb4299a6181b5c312e8a71f7cddc4547e27001e7552be0" }, "downloads": -1, "filename": "pyoai-2.5.0.tar.gz", "has_sig": false, "md5_digest": "251a1288e2ac071a44de72c8cdf37ff4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 106528, "upload_time": "2017-07-03T15:06:47", "url": "https://files.pythonhosted.org/packages/21/3c/0ad6e6d50fc355be718fe667541797a27d0252641983b7925df685ef2163/pyoai-2.5.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "251a1288e2ac071a44de72c8cdf37ff4", "sha256": "029521e1f6a819511feb4299a6181b5c312e8a71f7cddc4547e27001e7552be0" }, "downloads": -1, "filename": "pyoai-2.5.0.tar.gz", "has_sig": false, "md5_digest": "251a1288e2ac071a44de72c8cdf37ff4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 106528, "upload_time": "2017-07-03T15:06:47", "url": "https://files.pythonhosted.org/packages/21/3c/0ad6e6d50fc355be718fe667541797a27d0252641983b7925df685ef2163/pyoai-2.5.0.tar.gz" } ] }