Spaces:
Running
Running
#!/usr/bin/env python | |
# -*- coding: utf-8 -*- | |
# Note: To use the 'upload' functionality of this file, you must: | |
# $ pipenv install twine --dev | |
import io | |
import os | |
import sys | |
from shutil import rmtree | |
from setuptools import find_packages, setup, Command | |
# Package meta-data. | |
NAME = 'nfl_data_py' | |
DESCRIPTION = 'python library for interacting with NFL data sourced from nflfastR' | |
URL = 'https://github.com/cooperdff/nfl_data_py' | |
EMAIL = 'cooper.dff11@gmail.com' | |
AUTHOR = 'cooperdff' | |
REQUIRES_PYTHON = '>=3.6.0' | |
VERSION = '0.3.0' | |
# What packages are required for this module to be executed? | |
REQUIRED = [ | |
'pandas>1', | |
'appdirs>1', | |
'fastparquet>0.5', | |
'python-snappy>0.5' | |
] | |
# What packages are optional? | |
EXTRAS = { | |
} | |
# The rest you shouldn't have to touch too much :) | |
# ------------------------------------------------ | |
# Except, perhaps the License and Trove Classifiers! | |
# If you do change the License, remember to change the Trove Classifier for that! | |
here = os.path.abspath(os.path.dirname(__file__)) | |
# Import the README and use it as the long-description. | |
# Note: this will only work if 'README.md' is present in your MANIFEST.in file! | |
from os import path | |
this_directory = path.abspath(path.dirname(__file__)) | |
with open(path.join(this_directory, 'README.md'), encoding='utf-8') as f: | |
long_description = f.read() | |
# Load the package's __version__.py module as a dictionary. | |
about = {} | |
if not VERSION: | |
project_slug = NAME.lower().replace("-", "_").replace(" ", "_") | |
with open(os.path.join(here, project_slug, '__version__.py')) as f: | |
exec(f.read(), about) | |
else: | |
about['__version__'] = VERSION | |
class UploadCommand(Command): | |
"""Support setup.py upload.""" | |
description = 'Build and publish the package.' | |
user_options = [] | |
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() | |
# Where the magic happens: | |
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.*"]), | |
install_requires=REQUIRED, | |
extras_require=EXTRAS, | |
include_package_data=True, | |
license='MIT', | |
classifiers=[ | |
# Trove classifiers | |
# Full list: https://pypi.python.org/pypi?%3Aaction=list_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, | |
}, | |
) | |