Sickle: OAI-PMH for Humans
==========================
.. image:: https://travis-ci.org/mloesch/sickle.svg?branch=master
:target: https://travis-ci.org/mloesch/sickle
.. image:: https://img.shields.io/pypi/v/Sickle.svg
:target: https://pypi.python.org/pypi/Sickle
.. image:: https://img.shields.io/pypi/dm/sickle.svg
:target: https://pypi.python.org/pypi/Sickle
Sickle is a lightweight `OAI-PMH <http://www.openarchives.org/OAI/openarchivesprotocol.html>`_
client library written in Python. It has been designed for conveniently retrieving data from
OAI interfaces the Pythonic way::
>>> from sickle import Sickle
>>> sickle = Sickle('http://elis.da.ulcc.ac.uk/cgi/oai2')
>>> records = sickle.ListRecords(metadataPrefix='oai_dc')
>>> records.next()
<Record oai:eprints.rclis.org:4088>
Features
--------
- Easy harvesting of OAI-compliant interfaces
- Support for all six OAI verbs
- Convenient object representations of OAI items (records, headers, sets, ...)
- Automatic de-serialization of Dublin Core-encoded metadata payloads to Python
dictionaries
- Option for ignoring deleted items
Installation
------------
::
pip install sickle
Dependencies:
* `requests <http://docs.python-requests.org/en/latest/>`_
* `lxml <http://lxml.de/>`_
Documentation
-------------
Documentation is available at `Read the Docs <https://sickle.readthedocs.org/en/latest/>`_
Development
-----------
* `Sickle @ GitHub <https://github.com/mloesch/sickle>`_
Changelog
=========
Version 0.7.0
-------------
May 17, 2020
- method for record metadata extraction has been extracted (``Record.get_metadata()``) to make subclassing easier
(https://github.com/mloesch/sickle/pull/38)
- retryable HTTP status codes and default wait time between retries can be customized (https://github.com/mloesch/sickle/issues/21 https://github.com/mloesch/sickle/pull/41)
- retry logic has been fixed: ``max_retries`` parameter now refers to no. of retries, not counting the initial request anymore
- the default number of HTTP retries has been set to 0 (= no retries)
- fix for https://github.com/mloesch/sickle/pull/39
Version 0.6.5
-------------
January 12, 2020
- fix: repr methods where causing an exception on Python 3 (https://github.com/mloesch/sickle/issues/30)
Version 0.6.4
-------------
October 2, 2018
- fix: resumption token with empty body indicates last response (https://github.com/mloesch/sickle/issues/25)
Version 0.6.3
-------------
April 8, 2018
- fix unicode problems (issues 20 & 22)
Version 0.6.2
-------------
August 11, 2017
- missing datestamp and identifier elements in record header don't break harvesting
- lxml resolve_entities disabled (http://lxml.de/FAQ.html#how-do-i-use-lxml-safely-as-a-web-service-endpoint)
Version 0.6.1
-------------
November 13, 2016
- it is now possible to pass any keyword arguments to requests
- the encoding used to decode the server response can be overridden
Version 0.5
-----------
November 12, 2015
- support for Python 3
- consider resumption tokens with empty tag bodies
Version 0.4
-----------
May 31, 2015
- bug fix: resumptionToken parameter is exclusive
- added support for harvesting complete OAI-XML responses
Version 0.3
-----------
April 17, 2013
- added support for protected OAI interfaces (basic authentication)
- made class mapping for OAI elements configurable
- added options for HTTP timeout and max retries
- added handling of HTTP 503 responses
Version 0.2
-----------
February 26, 2013
- OAI items are now represented as their own classes instead of XML elements
- library raises OAI-specific exceptions
- made lxml a required dependency
Version 0.1
-----------
February 20, 2013
First public release.
Raw data
{
"_id": null,
"home_page": "http://github.com/mloesch/sickle",
"name": "Sickle",
"maintainer": "",
"docs_url": null,
"requires_python": "",
"maintainer_email": "",
"keywords": "oai oai-pmh",
"author": "Mathias Loesch",
"author_email": "",
"download_url": "https://files.pythonhosted.org/packages/a3/78/8fe5fc3d7379593abf0b42b97e7ad9981437afd5cf5ae2032536def9d411/Sickle-0.7.0.tar.gz",
"platform": "any",
"description": "Sickle: OAI-PMH for Humans\n==========================\n\n.. image:: https://travis-ci.org/mloesch/sickle.svg?branch=master\n :target: https://travis-ci.org/mloesch/sickle\n.. image:: https://img.shields.io/pypi/v/Sickle.svg\n :target: https://pypi.python.org/pypi/Sickle\n.. image:: https://img.shields.io/pypi/dm/sickle.svg\n :target: https://pypi.python.org/pypi/Sickle\n\nSickle is a lightweight `OAI-PMH <http://www.openarchives.org/OAI/openarchivesprotocol.html>`_\nclient library written in Python. It has been designed for conveniently retrieving data from\nOAI interfaces the Pythonic way::\n\n >>> from sickle import Sickle\n >>> sickle = Sickle('http://elis.da.ulcc.ac.uk/cgi/oai2')\n >>> records = sickle.ListRecords(metadataPrefix='oai_dc')\n >>> records.next()\n <Record oai:eprints.rclis.org:4088>\n\nFeatures\n--------\n\n- Easy harvesting of OAI-compliant interfaces\n- Support for all six OAI verbs\n- Convenient object representations of OAI items (records, headers, sets, ...)\n- Automatic de-serialization of Dublin Core-encoded metadata payloads to Python\n dictionaries\n- Option for ignoring deleted items\n\nInstallation\n------------\n\n::\n\n pip install sickle\n\nDependencies:\n\n* `requests <http://docs.python-requests.org/en/latest/>`_\n* `lxml <http://lxml.de/>`_\n\n\nDocumentation\n-------------\n\nDocumentation is available at `Read the Docs <https://sickle.readthedocs.org/en/latest/>`_\n\nDevelopment\n-----------\n\n* `Sickle @ GitHub <https://github.com/mloesch/sickle>`_\n\n\nChangelog\n=========\n\nVersion 0.7.0\n-------------\n\nMay 17, 2020\n\n- method for record metadata extraction has been extracted (``Record.get_metadata()``) to make subclassing easier\n (https://github.com/mloesch/sickle/pull/38)\n- retryable HTTP status codes and default wait time between retries can be customized (https://github.com/mloesch/sickle/issues/21 https://github.com/mloesch/sickle/pull/41)\n- retry logic has been fixed: ``max_retries`` parameter now refers to no. of retries, not counting the initial request anymore\n- the default number of HTTP retries has been set to 0 (= no retries)\n- fix for https://github.com/mloesch/sickle/pull/39\n\nVersion 0.6.5\n-------------\n\nJanuary 12, 2020\n\n- fix: repr methods where causing an exception on Python 3 (https://github.com/mloesch/sickle/issues/30)\n\n\nVersion 0.6.4\n-------------\n\nOctober 2, 2018\n\n- fix: resumption token with empty body indicates last response (https://github.com/mloesch/sickle/issues/25)\n\n\nVersion 0.6.3\n-------------\n\nApril 8, 2018\n\n- fix unicode problems (issues 20 & 22)\n\n\nVersion 0.6.2\n-------------\n\nAugust 11, 2017\n\n- missing datestamp and identifier elements in record header don't break harvesting\n- lxml resolve_entities disabled (http://lxml.de/FAQ.html#how-do-i-use-lxml-safely-as-a-web-service-endpoint)\n\n\nVersion 0.6.1\n-------------\n\nNovember 13, 2016\n\n- it is now possible to pass any keyword arguments to requests\n- the encoding used to decode the server response can be overridden\n\n\nVersion 0.5\n-----------\n\nNovember 12, 2015\n\n- support for Python 3\n- consider resumption tokens with empty tag bodies\n\n\nVersion 0.4\n-----------\n\nMay 31, 2015\n\n- bug fix: resumptionToken parameter is exclusive\n- added support for harvesting complete OAI-XML responses\n\n\nVersion 0.3\n-----------\n\nApril 17, 2013\n\n- added support for protected OAI interfaces (basic authentication)\n- made class mapping for OAI elements configurable\n- added options for HTTP timeout and max retries\n- added handling of HTTP 503 responses\n\n\nVersion 0.2\n-----------\n\nFebruary 26, 2013\n\n- OAI items are now represented as their own classes instead of XML elements\n- library raises OAI-specific exceptions\n- made lxml a required dependency\n\n\nVersion 0.1\n-----------\n\nFebruary 20, 2013\n\nFirst public release.\n\n\n",
"bugtrack_url": null,
"license": "BSD",
"summary": "A lightweight OAI client library for Python",
"version": "0.7.0",
"split_keywords": [
"oai",
"oai-pmh"
],
"urls": [
{
"comment_text": "",
"digests": {
"md5": "d913f8b9153365e09cc5989d2d88b4ac",
"sha256": "6ace7b1d1fc76571fe0dbfefc2c49e5e6c026e2d0dcaae521f4da21e98d4bc85"
},
"downloads": -1,
"filename": "Sickle-0.7.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "d913f8b9153365e09cc5989d2d88b4ac",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 12575,
"upload_time": "2020-05-17T08:45:28",
"upload_time_iso_8601": "2020-05-17T08:45:28.923657Z",
"url": "https://files.pythonhosted.org/packages/59/c4/e98ed4dfc15f51245e17626dab983ffde53f9f03ef5100938bcb4996427f/Sickle-0.7.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"md5": "4ee9dee00e36ec15874f2aeb27c21416",
"sha256": "8944bcda3db0109a361248ef71fef476dd1f11109cdd1a41135527b7992b958b"
},
"downloads": -1,
"filename": "Sickle-0.7.0.tar.gz",
"has_sig": false,
"md5_digest": "4ee9dee00e36ec15874f2aeb27c21416",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 106804,
"upload_time": "2020-05-17T08:45:30",
"upload_time_iso_8601": "2020-05-17T08:45:30.530776Z",
"url": "https://files.pythonhosted.org/packages/a3/78/8fe5fc3d7379593abf0b42b97e7ad9981437afd5cf5ae2032536def9d411/Sickle-0.7.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2020-05-17 08:45:30",
"github": true,
"gitlab": false,
"bitbucket": false,
"github_user": "mloesch",
"github_project": "sickle",
"travis_ci": true,
"coveralls": true,
"github_actions": false,
"lcname": "sickle"
}