https://github.com/afuetterer/oaipmh-scythe
A Scythe for harvesting OAI-PMH repositories.
Science Score: 23.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
○codemeta.json file
-
○.zenodo.json file
-
✓DOI references
Found 3 DOI reference(s) in README -
✓Academic publication links
Links to: zenodo.org -
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (9.1%) to scientific vocabulary
Keywords
metadata
oai-pmh
oai-pmh-client
python
Last synced: 5 months ago
·
JSON representation
Repository
A Scythe for harvesting OAI-PMH repositories.
Basic Info
- Host: GitHub
- Owner: afuetterer
- License: bsd-3-clause
- Language: Python
- Default Branch: main
- Homepage: https://afuetterer.github.io/oaipmh-scythe/
- Size: 1.47 MB
Statistics
- Stars: 10
- Watchers: 0
- Forks: 5
- Open Issues: 7
- Releases: 0
Fork of mloesch/sickle
Topics
metadata
oai-pmh
oai-pmh-client
python
Created over 2 years ago
· Last pushed 6 months ago
https://github.com/afuetterer/oaipmh-scythe/blob/main/
# oaipmh-scythe: A Scythe for harvesting OAI-PMH repositories.
Welcome to `oaipmh-scythe`, an updated and modernized version of the original
[sickle](https://github.com/mloesch/sickle), now with additional features and ongoing maintenance.
| __CI__ | [![pre-commit.ci status][pre-commit-ci-badge]][pre-commit-ci-status] [![ci][ci-badge]][ci-workflow] [![coverage][coverage-badge]][ci-workflow] [![codeql][codeql-badge]][codeql-workflow] |
| :---------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| __Docs__ | [![docs][docs-badge]][docs-workflow] |
| __Package__ | [![pypi-version][pypi-version-badge]][pypi-url] [![pypi-python-versions][pypi-python-versions-badge]][pypi-url] [![all-downloads][all-downloads-badge]][pepy-tech-url] [![monthly-downloads][monthly-downloads-badge]][pepy-tech-url] |
| __Meta__ | [![doi][doi-badge]][doi-url] [![OpenSSF Scorecard][scorecard-badge]][scorecard-url] [![hatch][hatch-badge]][hatch] [![ruff][ruff-badge]][ruff] [![mypy][mypy-badge]][mypy] [![License][license-badge]][license] |
`oaipmh-scythe` 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:
```python
from oaipmh_scythe import Scythe
with Scythe("https://zenodo.org/oai2d") as scythe:
records = scythe.list_records()
next(records)
#
```
## 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
## Requirements
[Python](https://www.python.org/downloads/) >= 3.10
`oaipmh-scythe` is built with:
- [httpx](https://github.com/encode/httpx) for issuing HTTP requests
- [lxml](https://github.com/lxml/lxml) for parsing XML responses
## Installation
You can install `oaipmh-scythe` via pip from [PyPI][pypi-url]:
```console
python -m pip install oaipmh-scythe
```
## Documentation
The [documentation][docs-url] is made with [Material for MkDocs](https://github.com/squidfunk/mkdocs-material) and is
hosted by [GitHub Pages](https://docs.github.com/en/pages).
## Similar Projects
There are a couple of similar projects available on [PyPI](https://pypi.org/search/?q=oai-pmh) and GitHub, e.g. via the
topics [oai-pmh](https://github.com/topics/oai-pmh) and [oai-pmh-client](https://github.com/topics/oai-pmh-client).
Among them are these implementations in Python:
| Project | Description | Last commit |
| -------------------------------------------------------------------------------- | ------------------------------------- | ----------------------------------------------------------------------------------------------------- |
| [sickle](https://github.com/mloesch/sickle) | `oaipmh-scythe` is a fork of `sickle` |  |
| [pyoai](https://github.com/infrae/pyoai) | `sickle` was inspired by `pyoai` |  |
| [pyoaiharvester](https://github.com/vphill/pyoaiharvester) | oai-pmh harvester CLI |  |
| [ddblabs-ometha](https://github.com/Deutsche-Digitale-Bibliothek/ddblabs-ometha) | oai-pmh harvester with CLI and TUI |  |
| [oai-harvest](https://github.com/bloomonkey/oai-harvest) | uses `pyoai` internally |  |
| [oai-pmh-harvester](https://github.com/MITLibraries/oai-pmh-harvester) | uses `sickle` internally |  |
There are also similar projects available in [Java](https://github.com/topics/oai-pmh-client?l=java) and
[PHP](https://github.com/topics/oai-pmh-client?l=php).
## Acknowledgments
This is a fork of [sickle](https://github.com/mloesch/sickle) which was originally written by Mathias Loesch.
## License
`oaipmh-scythe` is distributed under the terms of the [BSD license](https://spdx.org/licenses/BSD-3-Clause.html).
[all-downloads-badge]: https://static.pepy.tech/badge/oaipmh-scythe
[ci-badge]: https://github.com/afuetterer/oaipmh-scythe/actions/workflows/main.yml/badge.svg
[ci-workflow]: https://github.com/afuetterer/oaipmh-scythe/actions/workflows/main.yml
[codeql-badge]: https://github.com/afuetterer/oaipmh-scythe/actions/workflows/codeql.yml/badge.svg
[codeql-workflow]: https://github.com/afuetterer/oaipmh-scythe/actions/workflows/codeql.yml
[coverage-badge]: https://img.shields.io/endpoint?url=https://gist.githubusercontent.com/afuetterer/fcb87d45f4d7defdfeffa65eb1d65f63/raw/coverage-badge.json
[docs-badge]: https://github.com/afuetterer/oaipmh-scythe/actions/workflows/docs.yml/badge.svg
[docs-url]: https://afuetterer.github.io/oaipmh-scythe
[docs-workflow]: https://github.com/afuetterer/oaipmh-scythe/actions/workflows/docs.yml
[doi-badge]: https://zenodo.org/badge/DOI/10.5281/zenodo.11125401.svg
[doi-url]: https://doi.org/10.5281/zenodo.11125401
[hatch]: https://github.com/pypa/hatch
[hatch-badge]: https://img.shields.io/badge/%F0%9F%A5%9A-Hatch-4051b5.svg
[license]: https://spdx.org/licenses/BSD-3-Clause.html
[license-badge]: https://img.shields.io/badge/License-BSD_3--Clause-blue.svg
[monthly-downloads-badge]: https://static.pepy.tech/badge/oaipmh-scythe/month
[mypy]: https://mypy-lang.org
[mypy-badge]: https://img.shields.io/badge/types-mypy-blue.svg
[pepy-tech-url]: https://pepy.tech/project/oaipmh-scythe
[pre-commit-ci-badge]: https://results.pre-commit.ci/badge/github/afuetterer/oaipmh-scythe/main.svg
[pre-commit-ci-status]: https://results.pre-commit.ci/latest/github/afuetterer/oaipmh-scythe/main
[pypi-python-versions-badge]: https://img.shields.io/pypi/pyversions/oaipmh-scythe.svg?logo=python&label=Python
[pypi-url]: https://pypi.org/project/oaipmh-scythe/
[pypi-version-badge]: https://img.shields.io/pypi/v/oaipmh-scythe.svg?logo=pypi&label=PyPI
[ruff]: https://github.com/astral-sh/ruff
[ruff-badge]: https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/charliermarsh/ruff/main/assets/badge/v2.json
[scorecard-badge]: https://api.securityscorecards.dev/projects/github.com/afuetterer/oaipmh-scythe/badge
[scorecard-url]: https://securityscorecards.dev/viewer/?uri=github.com/afuetterer/oaipmh-scythe
Owner
- Name: Heinz-Alexander Fuetterer
- Login: afuetterer
- Kind: user
- Location: Berlin, Germany
- Company: Freie Universität Berlin
- Repositories: 5
- Profile: https://github.com/afuetterer
GitHub Events
Total
- Issues event: 24
- Watch event: 4
- Delete event: 11
- Issue comment event: 41
- Push event: 21
- Pull request review event: 3
- Pull request event: 21
- Fork event: 3
- Create event: 9
Last Year
- Issues event: 24
- Watch event: 4
- Delete event: 11
- Issue comment event: 41
- Push event: 21
- Pull request review event: 3
- Pull request event: 21
- Fork event: 3
- Create event: 9
Issues and Pull Requests
Last synced: 5 months ago
All Time
- Total issues: 80
- Total pull requests: 128
- Average time to close issues: 2 months
- Average time to close pull requests: 6 days
- Total issue authors: 4
- Total pull request authors: 4
- Average comments per issue: 0.6
- Average comments per pull request: 0.1
- Merged pull requests: 99
- Bot issues: 1
- Bot pull requests: 45
Past Year
- Issues: 6
- Pull requests: 14
- Average time to close issues: 1 day
- Average time to close pull requests: about 2 months
- Issue authors: 3
- Pull request authors: 3
- Average comments per issue: 0.17
- Average comments per pull request: 0.14
- Merged pull requests: 4
- Bot issues: 1
- Bot pull requests: 10
Top Authors
Issue Authors
- afuetterer (76)
- nespera (2)
- cmahnke (1)
- dependabot[bot] (1)
Pull Request Authors
- afuetterer (82)
- dependabot[bot] (35)
- github-actions[bot] (10)
- yzqzss (1)
Top Labels
Issue Labels
type: ci (23)
type: docs (20)
type: build (15)
type: feature (8)
status: abandoned (7)
type: refactor (5)
type: test (5)
type: style (4)
status: blocked (4)
deps: python (2)
type: breaking (2)
type: chore (2)
type: bug (2)
deps: github-actions (1)
deps: pre-commit (1)
priority: low (1)
Pull Request Labels
type: ci (57)
type: build (34)
deps: github-actions (24)
type: docs (22)
deps: python (20)
deps: pre-commit (9)
type: feature (5)
type: style (5)
type: chore (4)
type: breaking (3)
type: refactor (1)
type: bug (1)
Packages
- Total packages: 2
-
Total downloads:
- pypi 1,182 last-month
-
Total dependent packages: 0
(may contain duplicates) -
Total dependent repositories: 0
(may contain duplicates) - Total versions: 6
- Total maintainers: 2
pypi.org: oaipmh-scythe
A Scythe for harvesting OAI-PMH repositories.
- Documentation: https://afuetterer.github.io/oaipmh-scythe
- License: BSD-3-Clause
-
Latest release: 0.13.0
published almost 2 years ago
Rankings
Dependent packages count: 10.0%
Stargazers count: 24.1%
Forks count: 30.8%
Average: 32.7%
Dependent repos count: 65.8%
Maintainers (1)
Last synced:
6 months ago
pypi.org: invenio-oaipmh-scythe
A Scythe for harvesting OAI-PMH repositories.
- Documentation: https://afuetterer.github.io/oaipmh-scythe
- License: BSD-3-Clause
-
Latest release: 0.13.0
published over 1 year ago
Rankings
Dependent packages count: 10.6%
Average: 35.2%
Dependent repos count: 59.9%
Maintainers (1)
Last synced:
6 months ago