summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--python-zenodo-client.spec715
-rw-r--r--sources1
3 files changed, 717 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..86e899c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/zenodo_client-0.3.2.tar.gz
diff --git a/python-zenodo-client.spec b/python-zenodo-client.spec
new file mode 100644
index 0000000..f8e6db5
--- /dev/null
+++ b/python-zenodo-client.spec
@@ -0,0 +1,715 @@
+%global _empty_manifest_terminate_build 0
+Name: python-zenodo-client
+Version: 0.3.2
+Release: 1
+Summary: A wrapper for the Zenodo API.
+License: MIT
+URL: https://github.com/cthoyt/zenodo-client
+Source0: https://mirrors.nju.edu.cn/pypi/web/packages/1f/b4/11b2ce34a84d8fca21a42c7961a4d4f17ca25a5d4d943bd183f4a4f4a844/zenodo_client-0.3.2.tar.gz
+BuildArch: noarch
+
+Requires: python3-pydantic
+Requires: python3-pystow
+Requires: python3-requests
+Requires: python3-click
+Requires: python3-more-click
+Requires: python3-typing-extensions
+Requires: python3-sphinx
+Requires: python3-sphinx-rtd-theme
+Requires: python3-sphinx-click
+Requires: python3-sphinx-autodoc-typehints
+
+%description
+<!--
+<p align="center">
+ <img src="docs/source/logo.png" height="150">
+</p>
+-->
+
+<h1 align="center">
+ Zenodo Client
+</h1>
+
+<p align="center">
+ <a href="https://github.com/cthoyt/zenodo-client/actions?query=workflow%3ATests">
+ <img alt="Tests" src="https://github.com/cthoyt/zenodo-client/workflows/Tests/badge.svg" />
+ </a>
+ <a href="https://github.com/cthoyt/cookiecutter-python-package">
+ <img alt="Cookiecutter template from @cthoyt" src="https://img.shields.io/badge/Cookiecutter-snekpack-blue" />
+ </a>
+ <a href="https://pypi.org/project/zenodo_client">
+ <img alt="PyPI" src="https://img.shields.io/pypi/v/zenodo_client" />
+ </a>
+ <a href="https://pypi.org/project/zenodo_client">
+ <img alt="PyPI - Python Version" src="https://img.shields.io/pypi/pyversions/zenodo_client" />
+ </a>
+ <a href="https://github.com/cthoyt/zenodo-client/blob/main/LICENSE">
+ <img alt="PyPI - License" src="https://img.shields.io/pypi/l/zenodo_client" />
+ </a>
+ <a href='https://zenodo_client.readthedocs.io/en/latest/?badge=latest'>
+ <img src='https://readthedocs.org/projects/zenodo_client/badge/?version=latest' alt='Documentation Status' />
+ </a>
+ <a href="https://zenodo.org/badge/latestdoi/343513445">
+ <img src="https://zenodo.org/badge/343513445.svg" alt="DOI">
+ </a>
+</p>
+
+A wrapper for the Zenodo API.
+
+## 💪 Getting Started
+
+The first example shows how you can set some configuration then never worry about whether it's been
+uploaded already or not - all baked in with [`pystow`](https://github.com/cthoyt/pystow). On the
+first time this script is run, the new deposition is made, published, and the identifier is stored
+with the given key in your `~/.config/zenodo.ini`. Next time it's run, the deposition will be looked
+up, and the data will be uploaded. Versioning is given automatically by date, and if multiple
+versions are uploaded on one day, then a dash and the revision are appended.
+
+```python
+from zenodo_client import Creator, Metadata, ensure_zenodo
+
+# Define the metadata that will be used on initial upload
+data = Metadata(
+ title='Test Upload 3',
+ upload_type='dataset',
+ description='test description',
+ creators=[
+ Creator(
+ name='Hoyt, Charles Tapley',
+ affiliation='Harvard Medical School',
+ orcid='0000-0003-4423-4370',
+ ),
+ ],
+)
+res = ensure_zenodo(
+ key='test3', # this is a unique key you pick that will be used to store
+ # the numeric deposition ID on your local system's cache
+ data=data,
+ paths=[
+ '/Users/cthoyt/Desktop/test1.png',
+ ],
+ sandbox=True, # remove this when you're ready to upload to real Zenodo
+)
+from pprint import pprint
+
+pprint(res.json())
+```
+
+A real-world example can be found here: https://github.com/cthoyt/nsockg.
+
+The following example shows how to use the Zenodo uploader if you already know what your deposition
+identifier is.
+
+```python
+from zenodo_client import update_zenodo
+
+# The ID from your deposition
+SANDBOX_DEP_ID = '724868'
+
+# Paths to local files. Good to use in combination with resources that are always
+# dumped to the same place by a given script
+paths = [
+ # os.path.join(DATABASE_DIRECTORY, 'alts_sample.tsv')
+ '/Users/cthoyt/Desktop/alts_sample.tsv',
+]
+
+# Don't forget to set the ZENODO_API_TOKEN environment variable or
+# any valid way to get zenodo/api_token from PyStow.
+update_zenodo(SANDBOX_DEP_ID, paths)
+```
+
+The following example shows how to look up the latest version of a record.
+
+```python
+from zenodo_client import Zenodo
+
+zenodo = Zenodo()
+OOH_NA_NA_RECORD = '4020486'
+new_record = zenodo.get_latest_record(OOH_NA_NA_RECORD)
+```
+
+Even further, the latest version of `names.tsv.gz` can be automatically downloaded to the
+`~/.data/zenodo/<conceptrecid>/<version>/<path>` via `pystow` with:
+
+```python
+from zenodo_client import Zenodo
+
+zenodo = Zenodo()
+OOH_NA_NA_RECORD = '4020486'
+new_record = zenodo.download_latest(OOH_NA_NA_RECORD, 'names.tsv.gz')
+```
+
+A real-world example can be found [here](https://github.com/pyobo/pyobo/blob/master/src/pyobo/resource_utils.py)
+where the latest build of the [Ooh Na Na](https://cthoyt.com/2020/04/18/ooh-na-na.html) nomenclature
+database is automatically downloaded from Zenodo, even though the PyOBO package only hardcodes the
+first deposition ID.
+
+### Command Line Interface
+
+The zenodo_client command line tool is automatically installed. It can be used from the shell with
+the `--help` flag to show all subcommands:
+
+```shell
+$ zenodo_client --help
+```
+
+It can be run with `zenodo_client <deposition ID> <path 1> ... <path N>`
+
+## ⬇️ Installation
+
+The most recent release can be installed from
+[PyPI](https://pypi.org/project/zenodo_client/) with:
+
+```bash
+$ pip install zenodo_client
+```
+
+The most recent code and data can be installed directly from GitHub with:
+
+```bash
+$ pip install git+https://github.com/cthoyt/zenodo-client.git
+```
+
+To install in development mode, use the following:
+
+```bash
+$ git clone git+https://github.com/cthoyt/zenodo-client.git
+$ cd zenodo-client
+$ pip install -e .
+```
+
+## ⚖️ License
+
+The code in this package is licensed under the MIT License.
+
+## 🙏 Contributing
+
+Contributions, whether filing an issue, making a pull request, or forking, are appreciated. See
+[CONTRIBUTING.rst](https://github.com/cthoyt/zenodo-client/blob/master/CONTRIBUTING.rst) for more
+information on getting involved.
+
+## 🍪 Cookiecutter Acknowledgement
+
+This package was created with [@audreyr](https://github.com/audreyr)'s
+[cookiecutter](https://github.com/cookiecutter/cookiecutter) package
+using [@cthoyt](https://github.com/cthoyt)'s
+[cookiecutter-python-package](https://github.com/cthoyt/cookiecutter-python-package) template.
+
+## 🛠️ Development
+
+The final section of the README is for if you want to get involved by making a code contribution.
+
+### ❓ Testing
+
+After cloning the repository and installing `tox` with `pip install tox`, the unit tests in
+the `tests/` folder can be run reproducibly with:
+
+```shell
+$ tox
+```
+
+Additionally, these tests are automatically re-run with each commit in
+a [GitHub Action](https://github.com/cthoyt/zenodo-client/actions?query=workflow%3ATests).
+
+### 📦 Making a Release
+
+After installing the package in development mode and installing
+`tox` with `pip install tox`, the commands for making a new release are contained within
+the `finish` environment in `tox.ini`. Run the following from the shell:
+
+```shell
+$ tox -e finish
+```
+
+This script does the following:
+
+1. Uses BumpVersion to switch the version number in the `setup.cfg` and
+ `src/zenodo_client/version.py` to not have the `-dev` suffix
+2. Packages the code in both a tar archive and a wheel
+3. Uploads to PyPI using `twine`. Be sure to have a `.pypirc` file configured to avoid the need for
+ manual input at this step
+4. Push to GitHub. You'll need to make a release going with the commit where the version was bumped.
+5. Bump the version to the next patch. If you made big changes and want to bump the version by
+ minor, you can use `tox -e bumpversion minor` after.
+
+
+%package -n python3-zenodo-client
+Summary: A wrapper for the Zenodo API.
+Provides: python-zenodo-client
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-zenodo-client
+<!--
+<p align="center">
+ <img src="docs/source/logo.png" height="150">
+</p>
+-->
+
+<h1 align="center">
+ Zenodo Client
+</h1>
+
+<p align="center">
+ <a href="https://github.com/cthoyt/zenodo-client/actions?query=workflow%3ATests">
+ <img alt="Tests" src="https://github.com/cthoyt/zenodo-client/workflows/Tests/badge.svg" />
+ </a>
+ <a href="https://github.com/cthoyt/cookiecutter-python-package">
+ <img alt="Cookiecutter template from @cthoyt" src="https://img.shields.io/badge/Cookiecutter-snekpack-blue" />
+ </a>
+ <a href="https://pypi.org/project/zenodo_client">
+ <img alt="PyPI" src="https://img.shields.io/pypi/v/zenodo_client" />
+ </a>
+ <a href="https://pypi.org/project/zenodo_client">
+ <img alt="PyPI - Python Version" src="https://img.shields.io/pypi/pyversions/zenodo_client" />
+ </a>
+ <a href="https://github.com/cthoyt/zenodo-client/blob/main/LICENSE">
+ <img alt="PyPI - License" src="https://img.shields.io/pypi/l/zenodo_client" />
+ </a>
+ <a href='https://zenodo_client.readthedocs.io/en/latest/?badge=latest'>
+ <img src='https://readthedocs.org/projects/zenodo_client/badge/?version=latest' alt='Documentation Status' />
+ </a>
+ <a href="https://zenodo.org/badge/latestdoi/343513445">
+ <img src="https://zenodo.org/badge/343513445.svg" alt="DOI">
+ </a>
+</p>
+
+A wrapper for the Zenodo API.
+
+## 💪 Getting Started
+
+The first example shows how you can set some configuration then never worry about whether it's been
+uploaded already or not - all baked in with [`pystow`](https://github.com/cthoyt/pystow). On the
+first time this script is run, the new deposition is made, published, and the identifier is stored
+with the given key in your `~/.config/zenodo.ini`. Next time it's run, the deposition will be looked
+up, and the data will be uploaded. Versioning is given automatically by date, and if multiple
+versions are uploaded on one day, then a dash and the revision are appended.
+
+```python
+from zenodo_client import Creator, Metadata, ensure_zenodo
+
+# Define the metadata that will be used on initial upload
+data = Metadata(
+ title='Test Upload 3',
+ upload_type='dataset',
+ description='test description',
+ creators=[
+ Creator(
+ name='Hoyt, Charles Tapley',
+ affiliation='Harvard Medical School',
+ orcid='0000-0003-4423-4370',
+ ),
+ ],
+)
+res = ensure_zenodo(
+ key='test3', # this is a unique key you pick that will be used to store
+ # the numeric deposition ID on your local system's cache
+ data=data,
+ paths=[
+ '/Users/cthoyt/Desktop/test1.png',
+ ],
+ sandbox=True, # remove this when you're ready to upload to real Zenodo
+)
+from pprint import pprint
+
+pprint(res.json())
+```
+
+A real-world example can be found here: https://github.com/cthoyt/nsockg.
+
+The following example shows how to use the Zenodo uploader if you already know what your deposition
+identifier is.
+
+```python
+from zenodo_client import update_zenodo
+
+# The ID from your deposition
+SANDBOX_DEP_ID = '724868'
+
+# Paths to local files. Good to use in combination with resources that are always
+# dumped to the same place by a given script
+paths = [
+ # os.path.join(DATABASE_DIRECTORY, 'alts_sample.tsv')
+ '/Users/cthoyt/Desktop/alts_sample.tsv',
+]
+
+# Don't forget to set the ZENODO_API_TOKEN environment variable or
+# any valid way to get zenodo/api_token from PyStow.
+update_zenodo(SANDBOX_DEP_ID, paths)
+```
+
+The following example shows how to look up the latest version of a record.
+
+```python
+from zenodo_client import Zenodo
+
+zenodo = Zenodo()
+OOH_NA_NA_RECORD = '4020486'
+new_record = zenodo.get_latest_record(OOH_NA_NA_RECORD)
+```
+
+Even further, the latest version of `names.tsv.gz` can be automatically downloaded to the
+`~/.data/zenodo/<conceptrecid>/<version>/<path>` via `pystow` with:
+
+```python
+from zenodo_client import Zenodo
+
+zenodo = Zenodo()
+OOH_NA_NA_RECORD = '4020486'
+new_record = zenodo.download_latest(OOH_NA_NA_RECORD, 'names.tsv.gz')
+```
+
+A real-world example can be found [here](https://github.com/pyobo/pyobo/blob/master/src/pyobo/resource_utils.py)
+where the latest build of the [Ooh Na Na](https://cthoyt.com/2020/04/18/ooh-na-na.html) nomenclature
+database is automatically downloaded from Zenodo, even though the PyOBO package only hardcodes the
+first deposition ID.
+
+### Command Line Interface
+
+The zenodo_client command line tool is automatically installed. It can be used from the shell with
+the `--help` flag to show all subcommands:
+
+```shell
+$ zenodo_client --help
+```
+
+It can be run with `zenodo_client <deposition ID> <path 1> ... <path N>`
+
+## ⬇️ Installation
+
+The most recent release can be installed from
+[PyPI](https://pypi.org/project/zenodo_client/) with:
+
+```bash
+$ pip install zenodo_client
+```
+
+The most recent code and data can be installed directly from GitHub with:
+
+```bash
+$ pip install git+https://github.com/cthoyt/zenodo-client.git
+```
+
+To install in development mode, use the following:
+
+```bash
+$ git clone git+https://github.com/cthoyt/zenodo-client.git
+$ cd zenodo-client
+$ pip install -e .
+```
+
+## ⚖️ License
+
+The code in this package is licensed under the MIT License.
+
+## 🙏 Contributing
+
+Contributions, whether filing an issue, making a pull request, or forking, are appreciated. See
+[CONTRIBUTING.rst](https://github.com/cthoyt/zenodo-client/blob/master/CONTRIBUTING.rst) for more
+information on getting involved.
+
+## 🍪 Cookiecutter Acknowledgement
+
+This package was created with [@audreyr](https://github.com/audreyr)'s
+[cookiecutter](https://github.com/cookiecutter/cookiecutter) package
+using [@cthoyt](https://github.com/cthoyt)'s
+[cookiecutter-python-package](https://github.com/cthoyt/cookiecutter-python-package) template.
+
+## 🛠️ Development
+
+The final section of the README is for if you want to get involved by making a code contribution.
+
+### ❓ Testing
+
+After cloning the repository and installing `tox` with `pip install tox`, the unit tests in
+the `tests/` folder can be run reproducibly with:
+
+```shell
+$ tox
+```
+
+Additionally, these tests are automatically re-run with each commit in
+a [GitHub Action](https://github.com/cthoyt/zenodo-client/actions?query=workflow%3ATests).
+
+### 📦 Making a Release
+
+After installing the package in development mode and installing
+`tox` with `pip install tox`, the commands for making a new release are contained within
+the `finish` environment in `tox.ini`. Run the following from the shell:
+
+```shell
+$ tox -e finish
+```
+
+This script does the following:
+
+1. Uses BumpVersion to switch the version number in the `setup.cfg` and
+ `src/zenodo_client/version.py` to not have the `-dev` suffix
+2. Packages the code in both a tar archive and a wheel
+3. Uploads to PyPI using `twine`. Be sure to have a `.pypirc` file configured to avoid the need for
+ manual input at this step
+4. Push to GitHub. You'll need to make a release going with the commit where the version was bumped.
+5. Bump the version to the next patch. If you made big changes and want to bump the version by
+ minor, you can use `tox -e bumpversion minor` after.
+
+
+%package help
+Summary: Development documents and examples for zenodo-client
+Provides: python3-zenodo-client-doc
+%description help
+<!--
+<p align="center">
+ <img src="docs/source/logo.png" height="150">
+</p>
+-->
+
+<h1 align="center">
+ Zenodo Client
+</h1>
+
+<p align="center">
+ <a href="https://github.com/cthoyt/zenodo-client/actions?query=workflow%3ATests">
+ <img alt="Tests" src="https://github.com/cthoyt/zenodo-client/workflows/Tests/badge.svg" />
+ </a>
+ <a href="https://github.com/cthoyt/cookiecutter-python-package">
+ <img alt="Cookiecutter template from @cthoyt" src="https://img.shields.io/badge/Cookiecutter-snekpack-blue" />
+ </a>
+ <a href="https://pypi.org/project/zenodo_client">
+ <img alt="PyPI" src="https://img.shields.io/pypi/v/zenodo_client" />
+ </a>
+ <a href="https://pypi.org/project/zenodo_client">
+ <img alt="PyPI - Python Version" src="https://img.shields.io/pypi/pyversions/zenodo_client" />
+ </a>
+ <a href="https://github.com/cthoyt/zenodo-client/blob/main/LICENSE">
+ <img alt="PyPI - License" src="https://img.shields.io/pypi/l/zenodo_client" />
+ </a>
+ <a href='https://zenodo_client.readthedocs.io/en/latest/?badge=latest'>
+ <img src='https://readthedocs.org/projects/zenodo_client/badge/?version=latest' alt='Documentation Status' />
+ </a>
+ <a href="https://zenodo.org/badge/latestdoi/343513445">
+ <img src="https://zenodo.org/badge/343513445.svg" alt="DOI">
+ </a>
+</p>
+
+A wrapper for the Zenodo API.
+
+## 💪 Getting Started
+
+The first example shows how you can set some configuration then never worry about whether it's been
+uploaded already or not - all baked in with [`pystow`](https://github.com/cthoyt/pystow). On the
+first time this script is run, the new deposition is made, published, and the identifier is stored
+with the given key in your `~/.config/zenodo.ini`. Next time it's run, the deposition will be looked
+up, and the data will be uploaded. Versioning is given automatically by date, and if multiple
+versions are uploaded on one day, then a dash and the revision are appended.
+
+```python
+from zenodo_client import Creator, Metadata, ensure_zenodo
+
+# Define the metadata that will be used on initial upload
+data = Metadata(
+ title='Test Upload 3',
+ upload_type='dataset',
+ description='test description',
+ creators=[
+ Creator(
+ name='Hoyt, Charles Tapley',
+ affiliation='Harvard Medical School',
+ orcid='0000-0003-4423-4370',
+ ),
+ ],
+)
+res = ensure_zenodo(
+ key='test3', # this is a unique key you pick that will be used to store
+ # the numeric deposition ID on your local system's cache
+ data=data,
+ paths=[
+ '/Users/cthoyt/Desktop/test1.png',
+ ],
+ sandbox=True, # remove this when you're ready to upload to real Zenodo
+)
+from pprint import pprint
+
+pprint(res.json())
+```
+
+A real-world example can be found here: https://github.com/cthoyt/nsockg.
+
+The following example shows how to use the Zenodo uploader if you already know what your deposition
+identifier is.
+
+```python
+from zenodo_client import update_zenodo
+
+# The ID from your deposition
+SANDBOX_DEP_ID = '724868'
+
+# Paths to local files. Good to use in combination with resources that are always
+# dumped to the same place by a given script
+paths = [
+ # os.path.join(DATABASE_DIRECTORY, 'alts_sample.tsv')
+ '/Users/cthoyt/Desktop/alts_sample.tsv',
+]
+
+# Don't forget to set the ZENODO_API_TOKEN environment variable or
+# any valid way to get zenodo/api_token from PyStow.
+update_zenodo(SANDBOX_DEP_ID, paths)
+```
+
+The following example shows how to look up the latest version of a record.
+
+```python
+from zenodo_client import Zenodo
+
+zenodo = Zenodo()
+OOH_NA_NA_RECORD = '4020486'
+new_record = zenodo.get_latest_record(OOH_NA_NA_RECORD)
+```
+
+Even further, the latest version of `names.tsv.gz` can be automatically downloaded to the
+`~/.data/zenodo/<conceptrecid>/<version>/<path>` via `pystow` with:
+
+```python
+from zenodo_client import Zenodo
+
+zenodo = Zenodo()
+OOH_NA_NA_RECORD = '4020486'
+new_record = zenodo.download_latest(OOH_NA_NA_RECORD, 'names.tsv.gz')
+```
+
+A real-world example can be found [here](https://github.com/pyobo/pyobo/blob/master/src/pyobo/resource_utils.py)
+where the latest build of the [Ooh Na Na](https://cthoyt.com/2020/04/18/ooh-na-na.html) nomenclature
+database is automatically downloaded from Zenodo, even though the PyOBO package only hardcodes the
+first deposition ID.
+
+### Command Line Interface
+
+The zenodo_client command line tool is automatically installed. It can be used from the shell with
+the `--help` flag to show all subcommands:
+
+```shell
+$ zenodo_client --help
+```
+
+It can be run with `zenodo_client <deposition ID> <path 1> ... <path N>`
+
+## ⬇️ Installation
+
+The most recent release can be installed from
+[PyPI](https://pypi.org/project/zenodo_client/) with:
+
+```bash
+$ pip install zenodo_client
+```
+
+The most recent code and data can be installed directly from GitHub with:
+
+```bash
+$ pip install git+https://github.com/cthoyt/zenodo-client.git
+```
+
+To install in development mode, use the following:
+
+```bash
+$ git clone git+https://github.com/cthoyt/zenodo-client.git
+$ cd zenodo-client
+$ pip install -e .
+```
+
+## ⚖️ License
+
+The code in this package is licensed under the MIT License.
+
+## 🙏 Contributing
+
+Contributions, whether filing an issue, making a pull request, or forking, are appreciated. See
+[CONTRIBUTING.rst](https://github.com/cthoyt/zenodo-client/blob/master/CONTRIBUTING.rst) for more
+information on getting involved.
+
+## 🍪 Cookiecutter Acknowledgement
+
+This package was created with [@audreyr](https://github.com/audreyr)'s
+[cookiecutter](https://github.com/cookiecutter/cookiecutter) package
+using [@cthoyt](https://github.com/cthoyt)'s
+[cookiecutter-python-package](https://github.com/cthoyt/cookiecutter-python-package) template.
+
+## 🛠️ Development
+
+The final section of the README is for if you want to get involved by making a code contribution.
+
+### ❓ Testing
+
+After cloning the repository and installing `tox` with `pip install tox`, the unit tests in
+the `tests/` folder can be run reproducibly with:
+
+```shell
+$ tox
+```
+
+Additionally, these tests are automatically re-run with each commit in
+a [GitHub Action](https://github.com/cthoyt/zenodo-client/actions?query=workflow%3ATests).
+
+### 📦 Making a Release
+
+After installing the package in development mode and installing
+`tox` with `pip install tox`, the commands for making a new release are contained within
+the `finish` environment in `tox.ini`. Run the following from the shell:
+
+```shell
+$ tox -e finish
+```
+
+This script does the following:
+
+1. Uses BumpVersion to switch the version number in the `setup.cfg` and
+ `src/zenodo_client/version.py` to not have the `-dev` suffix
+2. Packages the code in both a tar archive and a wheel
+3. Uploads to PyPI using `twine`. Be sure to have a `.pypirc` file configured to avoid the need for
+ manual input at this step
+4. Push to GitHub. You'll need to make a release going with the commit where the version was bumped.
+5. Bump the version to the next patch. If you made big changes and want to bump the version by
+ minor, you can use `tox -e bumpversion minor` after.
+
+
+%prep
+%autosetup -n zenodo-client-0.3.2
+
+%build
+%py3_build
+
+%install
+%py3_install
+install -d -m755 %{buildroot}/%{_pkgdocdir}
+if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi
+if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi
+if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi
+if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi
+pushd %{buildroot}
+if [ -d usr/lib ]; then
+ find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/lib64 ]; then
+ find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/bin ]; then
+ find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/sbin ]; then
+ find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+touch doclist.lst
+if [ -d usr/share/man ]; then
+ find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst
+fi
+popd
+mv %{buildroot}/filelist.lst .
+mv %{buildroot}/doclist.lst .
+
+%files -n python3-zenodo-client -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Fri May 05 2023 Python_Bot <Python_Bot@openeuler.org> - 0.3.2-1
+- Package Spec generated
diff --git a/sources b/sources
new file mode 100644
index 0000000..1408010
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+65b7c03b35231df5936bf8cb7d3470f1 zenodo_client-0.3.2.tar.gz