Sickle


NameSickle JSON
Version 0.7.0 PyPI version JSON
download
home_pagehttp://github.com/mloesch/sickle
SummaryA lightweight OAI client library for Python
upload_time2020-05-17 08:45:30
maintainer
docs_urlNone
authorMathias Loesch
requires_python
licenseBSD
keywords oai oai-pmh
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI
coveralls test coverage
            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"
}
        
Elapsed time: 0.09711s