A Python 3.6+ package to manage Zenodo repositories.
.create_project()
: create a new project.upload_file()
: upload file to project.download_file()
: download a file from a project.delete_file()
: permanently removes a file from a project.get_urls_from_doi()
: returns the files urls for a given doi
pip install zenodopy==0.3.0
pip install -e git+https://github.com/lgloege/zenodopy.git#egg=zenodopy
-
Create a Zenodo access token by first logging into your account and clicking on your username in the top right corner. Navigate to "Applications" and then "+new token" under "Personal access tokens". Keep this window open while you proceed to step 2 because the token is only displayed once.
-
Store the token in
~/.zenodo_token
using the folowing command
{ echo 'ACCESS_TOKEN: your_access_token_here' } > ~/.zenodo_token
- start using the
zenodopy
package
import zenodopy
# always start by creating a Client object
zeno = zenodopy.Client()
# list projects
zeno.list_projects
# list files
zeno.list_files
# create a projects
zeno.create_project(title="test_project", upload_type="other")
# your zeno object now points to this newly created project
# create a file to upload
with open("~/test_file.txt", "w+") as f:
f.write("Hello from zenodopy")
# upload file to zenodo
zeno.upload_file("~/test.file.txt")
This project is under active development. Here is a list of things that needs improvement:
- more tests: need to test uploading and downloading files
- documentation: need to setup a readthedocs
- download based on DOI: right now you can only download from your own projects. Would be nice to download from
- asyncronous functions: use
asyncio
andaiohttp
to write async functions. This will speed up downloading multiple files.