Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
103 changes: 103 additions & 0 deletions setup.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@
import io
import os
import sys
from shutil import rmtree

from setuptools import find_packages, setup, Command

# Package meta-data.
NAME = 'zenodo_python'
DESCRIPTION = 'Zenodo client written in Python.'
URL = 'https://github.com/SiLeBAT/zenodo-python'
EMAIL = 'me@example.com'
AUTHOR = 'Awesome Soul'
REQUIRES_PYTHON = '>=3.6.0'
VERSION = '0.1.0'

REQUIRED = [
'requests'
]


here = os.path.abspath(os.path.dirname(__file__))

try:
with io.open(os.path.join(here, 'README.md'), encoding='utf-8') as f:
long_description = '\n' + f.read()
except FileNotFoundError:
long_description = DESCRIPTION

# Load the package's __version__.py module as a dictionary.
about = {}
about['__version__'] = VERSION


class UploadCommand(Command):
"""Support setup.py upload
Requires:
$ pipenv install twine --dev
"""

description = 'Build and publish the package.'
user_options = []

@staticmethod
def status(s):
"""Prints things in bold."""
print('\033[1m{0}\033[0m'.format(s))

def initialize_options(self):
pass

def finalize_options(self):
pass

def run(self):
try:
self.status('Removing previous builds…')
rmtree(os.path.join(here, 'dist'))
except OSError:
pass

self.status('Building Source and Wheel (universal) distribution…')
os.system('{0} setup.py sdist bdist_wheel --universal'.format(sys.executable))

self.status('Uploading the package to PyPI via Twine…')
os.system('twine upload dist/*')

self.status('Pushing git tags…')
os.system('git tag v{0}'.format(about['__version__']))
os.system('git push --tags')

sys.exit()



setup(
name=NAME,
version=about['__version__'],
description=DESCRIPTION,
long_description=long_description,
long_description_content_type='text/markdown',
author=AUTHOR,
author_email=EMAIL,
python_requires=REQUIRES_PYTHON,
url=URL,
packages=find_packages(exclude=["tests", "*.tests", "*.tests.*", "tests.*"]),
py_modules=['zenodo_python'],
install_requires=REQUIRED,
include_package_data=True,
license='MIT',
classifiers=[
'License :: OSI Approved :: MIT License',
'Programming Language :: Python',
'Programming Language :: Python :: 3',
'Programming Language :: Python :: 3.6',
'Programming Language :: Python :: Implementation :: CPython',
'Programming Language :: Python :: Implementation :: PyPy'
],
# $ setup.py publish support.
cmdclass={
'upload': UploadCommand,
},
)
11 changes: 9 additions & 2 deletions zenodolib.py → zenodo_python.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
"""
import enum
import json
import os

import requests

Expand All @@ -41,7 +42,7 @@ class StatusCode(enum.Enum):


class ZenodoHandler:
def __init__(self, access_token, proxies=None, test=False):
def __init__(self, access_token=None, proxies=None, test=False):
"""
Initializes ZenodoHandler.

Expand All @@ -54,14 +55,20 @@ def __init__(self, access_token, proxies=None, test=False):
otherwise connects to Zenodo.
"""

if access_token is None:
access_token = os.environ.get('ZENODO_TOKEN')
if test:
access_token = os.environ.get('SANDBOX_TOKEN')

if test:
self.base_url = "https://sandbox.zenodo.org/api/"
else:
self.base_url = "https://zenodo.org/api/"

self.token = access_token
self.session = requests.Session()
self.session.proxies.update(proxies)
if proxies:
self.session.proxies.update(proxies)
self.session.params['access_token'] = access_token

def deposition_list(self):
Expand Down