From 6af2e2e5c8377da0f54f6b93c14977a8be497210 Mon Sep 17 00:00:00 2001 From: Stephen Finucane Date: Tue, 24 Apr 2018 22:41:16 +0100 Subject: [PATCH 1/3] setup: Remove get_packages, get_package_data The former of these duplicates functionality already provided by setuptools, while the latter doesn't do anything. Replace the first and remove the second. Signed-off-by: Stephen Finucane --- setup.py | 32 +++----------------------------- 1 file changed, 3 insertions(+), 29 deletions(-) diff --git a/setup.py b/setup.py index 7dabead..28611af 100755 --- a/setup.py +++ b/setup.py @@ -1,10 +1,9 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -from setuptools import setup +from setuptools import find_packages, setup import re import os -import shutil import sys @@ -16,31 +15,6 @@ def get_version(package): return re.search("__version__ = ['\"]([^'\"]+)['\"]", init_py).group(1) -def get_packages(package): - """ - Return root package and all sub-packages. - """ - return [dirpath - for dirpath, dirnames, filenames in os.walk(package) - if os.path.exists(os.path.join(dirpath, '__init__.py'))] - - -def get_package_data(package): - """ - Return all files under the root package, that are not in a - package themselves. - """ - walk = [(dirpath.replace(package + os.sep, '', 1), filenames) - for dirpath, dirnames, filenames in os.walk(package) - if not os.path.exists(os.path.join(dirpath, '__init__.py'))] - - filepaths = [] - for base, filenames in walk: - filepaths.extend([os.path.join(base, filename) - for filename in filenames]) - return {package: filepaths} - - version = get_version('coreapi') @@ -60,8 +34,8 @@ def get_package_data(package): description='Python client library for Core API.', author='Tom Christie', author_email='tom@tomchristie.com', - packages=get_packages('coreapi'), - package_data=get_package_data('coreapi'), + packages=find_packages('coreapi'), + include_package_data=True, install_requires=[ 'coreschema', 'requests', From fb5b0a5aad77ed9f7feebdf11075f4c1d75b9668 Mon Sep 17 00:00:00 2001 From: Stephen Finucane Date: Tue, 24 Apr 2018 22:56:42 +0100 Subject: [PATCH 2/3] setup: Start using 'setup.cfg' This is machine readable and frankly more human-readable too. Also, it comes with goodies we can start using shortly. Signed-off-by: Stephen Finucane --- setup.cfg | 44 ++++++++++++++++++++++++++++++++++++++++++++ setup.py | 41 ----------------------------------------- 2 files changed, 44 insertions(+), 41 deletions(-) diff --git a/setup.cfg b/setup.cfg index 5e40900..de21ac4 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,2 +1,46 @@ +[metadata] +name = coreapi +url = https://github.com/core-api/python-client +license = BSD +description = Python client library for Core API. +author = Tom Christie +author_email = tom@tomchristie.com +classifiers = + Development Status :: 3 - Alpha + Environment :: Web Environment + Intended Audience :: Developers + License :: OSI Approved :: BSD License + Operating System :: OS Independent + Programming Language :: Python + Programming Language :: Python :: 2 + Programming Language :: Python :: 2.7 + Programming Language :: Python :: 3 + Programming Language :: Python :: 3.3 + Programming Language :: Python :: 3.4 + Programming Language :: Python :: 3.5 + Programming Language :: Python :: 3.6 + Topic :: Internet :: WWW/HTTP + +[options] +include_package_data = True +install_requires = + coreschema + requests + itypes + uritemplate + +[options.entry_points] +coreapi.codecs = + corejson = coreapi.codecs:CoreJSONCodec + json = coreapi.codecs:JSONCodec + text = coreapi.codecs:TextCodec + download = coreapi.codecs:DownloadCodec +coreapi.transports = + http = coreapi.transports:HTTPTransport + +[options.packages.find] +include = + coreapi + [wheel] universal = 1 diff --git a/setup.py b/setup.py index 28611af..5c42209 100755 --- a/setup.py +++ b/setup.py @@ -27,46 +27,5 @@ def get_version(package): setup( - name='coreapi', version=version, - url='https://github.com/core-api/python-client', - license='BSD', - description='Python client library for Core API.', - author='Tom Christie', - author_email='tom@tomchristie.com', - packages=find_packages('coreapi'), - include_package_data=True, - install_requires=[ - 'coreschema', - 'requests', - 'itypes', - 'uritemplate' - ], - entry_points={ - 'coreapi.codecs': [ - 'corejson=coreapi.codecs:CoreJSONCodec', - 'json=coreapi.codecs:JSONCodec', - 'text=coreapi.codecs:TextCodec', - 'download=coreapi.codecs:DownloadCodec', - ], - 'coreapi.transports': [ - 'http=coreapi.transports:HTTPTransport', - ] - }, - classifiers=[ - 'Development Status :: 3 - Alpha', - 'Environment :: Web Environment', - 'Intended Audience :: Developers', - 'License :: OSI Approved :: BSD License', - 'Operating System :: OS Independent', - 'Programming Language :: Python', - 'Programming Language :: Python :: 2', - 'Programming Language :: Python :: 2.7', - 'Programming Language :: Python :: 3', - 'Programming Language :: Python :: 3.3', - 'Programming Language :: Python :: 3.4', - 'Programming Language :: Python :: 3.5', - 'Programming Language :: Python :: 3.6', - 'Topic :: Internet :: WWW/HTTP', - ] ) From f19f450bc5bfa65039fd0d768b40a85ac3cb3b07 Mon Sep 17 00:00:00 2001 From: Stephen Finucane Date: Tue, 24 Apr 2018 23:05:40 +0100 Subject: [PATCH 3/3] setup: Use README.md for long description Finally, the thing we came here to solve: displaying the README on pypi.org. This is made possible thanks to PEP 566 [1]. [1] https://www.python.org/dev/peps/pep-0566/ Signed-off-by: Stephen Finucane --- setup.cfg | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/setup.cfg b/setup.cfg index de21ac4..1db5be1 100644 --- a/setup.cfg +++ b/setup.cfg @@ -3,6 +3,8 @@ name = coreapi url = https://github.com/core-api/python-client license = BSD description = Python client library for Core API. +long_description = file:README.md +long_description_content_type = text/markdown author = Tom Christie author_email = tom@tomchristie.com classifiers = @@ -23,6 +25,8 @@ classifiers = [options] include_package_data = True +setup_requires = + setuptools>=38.6.0 install_requires = coreschema requests