From a3d7716476fba6c8e9d199134053e1749985c545 Mon Sep 17 00:00:00 2001 From: Aki Ariga Date: Tue, 2 Feb 2021 12:18:02 +0900 Subject: [PATCH 1/7] Use setup.cfg adding python_requires --- setup.cfg | 49 ++++++++++++++++++++++++++++++++++++ setup.py | 74 ++----------------------------------------------------- 2 files changed, 51 insertions(+), 72 deletions(-) diff --git a/setup.cfg b/setup.cfg index 7a0a345..28a402a 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,3 +1,52 @@ +[metadata] +name = pytd +version = attr: pytd.__version__ +summary = Treasure Data Driver for Python +author = Treasure Data +author_email = support@treasure-data.com +maintainer = Treasure Data +maintainer_email = support@treasure-data.com +license = Apache License 2.0 +license_files = + LICENSE +long_description = file: README.rst +url = https://github.com/treasure-data/pytd +classifiers = + Development Status :: 5 - Production/Stable + Intended Audience :: Developers + License :: OSI Approved :: Apache Software License + Topic :: Database + Programming Language :: Python + Programming Language :: Python :: 3 + Programming Language :: Python :: 3.6 + Programming Language :: Python :: 3.7 + Programming Language :: Python :: 3.8 + +[options] +packages = find: +python_requires = >=3.6,<3.9 +isntall_requires = + urllib3<1.25,>=1.21.1 + presto-python-client>=0.6.0 + pandas>=0.25.0 + td-client>=1.1.0 + pytz>=2018.5 + +[options.extras_require] +spark = + td-pyspark>20.10.0 + pyspark>=3.0.0 + pyarrow>=0.12.1 +test = pytest +doc = + sphinx>=2.2.0 + sphinx_rtd_theme + numpydoc + ipython + +[options.packages.find] +exclude = *tests* + [flake8] ignore = E203, W503 max-line-length = 88 diff --git a/setup.py b/setup.py index fabdeea..bf0469f 100644 --- a/setup.py +++ b/setup.py @@ -7,75 +7,5 @@ a shorter time. It eventually makes your day-to-day data analytics work more efficient and productive. """ -import ast -import re -from os import path - -with open("pytd/version.py", "rb") as f: - version_re = re.compile(r"__version__\s+=\s+(.*)") - VERSION = str( - ast.literal_eval(version_re.search(f.read().decode("utf-8")).group(1)) - ) - -with open( - path.join(path.abspath(path.dirname(__file__)), "README.rst"), encoding="utf-8" -) as f: - long_description = f.read() - -DISTNAME = "pytd" -DESCRIPTION = "Treasure Data Driver for Python" -LONG_DESCRIPTION = long_description or __doc__ -AUTHOR = "Treasure Data" -AUTHOR_EMAIL = "support@treasure-data.com" -MAINTAINER = AUTHOR -MAINTAINER_EMAIL = AUTHOR_EMAIL -LICENSE = "Apache License 2.0" -URL = "https://github.com/treasure-data/pytd" - - -def setup_package(): - from setuptools import find_packages, setup - - metadata = dict( - name=DISTNAME, - version=VERSION, - description=DESCRIPTION, - long_description=LONG_DESCRIPTION, - long_description_content_type="text/x-rst", - author=AUTHOR, - author_email=AUTHOR_EMAIL, - maintainer=MAINTAINER, - maintainer_email=MAINTAINER_EMAIL, - license=LICENSE, - url=URL, - classifiers=[ - "Development Status :: 5 - Production/Stable", - "Intended Audience :: Developers", - "License :: OSI Approved :: Apache Software License", - "Topic :: Database", - "Programming Language :: Python", - "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.6", - "Programming Language :: Python :: 3.7", - "Programming Language :: Python :: 3.8", - ], - packages=find_packages(exclude=["*tests*"]), - install_requires=[ - "urllib3<1.25,>=1.21.1", - "presto-python-client>=0.6.0", - "pandas>=0.25.0", - "td-client>=1.1.0", - "pytz>=2018.5", - ], - extras_require={ - "spark": ["td-pyspark>20.10.0", "pyspark>=3.0.0", "pyarrow>=0.12.1"], - "test": ["pytest"], - "doc": ["sphinx>=2.2.0", "sphinx_rtd_theme", "numpydoc", "ipython"], - }, - ) - - setup(**metadata) - - -if __name__ == "__main__": - setup_package() +from setuptools import setup +setup() From 75f2c28cd15b8b518740e17fe7f68c48f12971f2 Mon Sep 17 00:00:00 2001 From: Aki Ariga Date: Tue, 2 Feb 2021 13:44:47 +0900 Subject: [PATCH 2/7] Describe version number in setup.cfg instead of version.py To use attr: pytd.__version__, we need to stop importing .client in __init__.py. This introduces incompatible change than benefit, so changes to write version number in setup.cfg explicitly. --- doc/contributing.rst | 4 ++-- pytd/__init__.py | 4 +++- pytd/version.py | 1 - setup.cfg | 4 ++-- setup.py | 1 + 5 files changed, 8 insertions(+), 6 deletions(-) delete mode 100644 pytd/version.py diff --git a/doc/contributing.rst b/doc/contributing.rst index 0c54d9b..b0a76ce 100644 --- a/doc/contributing.rst +++ b/doc/contributing.rst @@ -72,11 +72,11 @@ The ``doc/`` folder is monitored and automatically published by `Read the Docs < Releasing --------- -Update version in ``pytd/version.py``. Set it to ``1.0.0``, for example: +Update version in ``setup.cfg``. Set it to ``1.0.0``, for example: .. code:: py - __version__ = "1.0.0" + version = 1.0.0 Commit and push the latest code, and tag the version: diff --git a/pytd/__init__.py b/pytd/__init__.py index 7541095..0bacdf6 100644 --- a/pytd/__init__.py +++ b/pytd/__init__.py @@ -1,8 +1,10 @@ import logging +import pkg_resources + from .client import Client -from .version import __version__ +__version__ = pkg_resources.get_distribution("pytd").version logger = logging.getLogger(__name__) logger.addHandler(logging.StreamHandler()) logger.setLevel(logging.INFO) diff --git a/pytd/version.py b/pytd/version.py deleted file mode 100644 index 3e8d9f9..0000000 --- a/pytd/version.py +++ /dev/null @@ -1 +0,0 @@ -__version__ = "1.4.0" diff --git a/setup.cfg b/setup.cfg index 28a402a..04ed0fb 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,6 +1,6 @@ [metadata] name = pytd -version = attr: pytd.__version__ +version = 1.4.0 summary = Treasure Data Driver for Python author = Treasure Data author_email = support@treasure-data.com @@ -25,7 +25,7 @@ classifiers = [options] packages = find: python_requires = >=3.6,<3.9 -isntall_requires = +install_requires = urllib3<1.25,>=1.21.1 presto-python-client>=0.6.0 pandas>=0.25.0 diff --git a/setup.py b/setup.py index bf0469f..0b8a6cf 100644 --- a/setup.py +++ b/setup.py @@ -8,4 +8,5 @@ efficient and productive. """ from setuptools import setup + setup() From 6d4f13d4f33df6d00fa3b3e49bcdd7aab8971f10 Mon Sep 17 00:00:00 2001 From: Aki Ariga Date: Tue, 2 Feb 2021 14:01:14 +0900 Subject: [PATCH 3/7] Fix importing version --- pytd/query_engine.py | 3 ++- pytd/tests/test_query_engine.py | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/pytd/query_engine.py b/pytd/query_engine.py index 417c552..17ea927 100644 --- a/pytd/query_engine.py +++ b/pytd/query_engine.py @@ -1,12 +1,13 @@ import abc import logging import os +import pkg_resources from urllib.parse import urlparse import prestodb import tdclient -from .version import __version__ +__version__ = pkg_resources.get_distribution("pytd").version logger = logging.getLogger(__name__) diff --git a/pytd/tests/test_query_engine.py b/pytd/tests/test_query_engine.py index 15b8124..e4b96ba 100644 --- a/pytd/tests/test_query_engine.py +++ b/pytd/tests/test_query_engine.py @@ -5,7 +5,7 @@ import tdclient from pytd.query_engine import HiveQueryEngine, PrestoQueryEngine -from pytd.version import __version__ +from pytd import __version__ class QueryEngineEndpointSchemeTestCase(unittest.TestCase): From 4f79b936f16fba22303fdd0644c1f8fad8a638f1 Mon Sep 17 00:00:00 2001 From: Aki Ariga Date: Tue, 2 Feb 2021 14:15:44 +0900 Subject: [PATCH 4/7] Set upper version for numpy --- setup.cfg | 1 + 1 file changed, 1 insertion(+) diff --git a/setup.cfg b/setup.cfg index 04ed0fb..573be79 100644 --- a/setup.cfg +++ b/setup.cfg @@ -31,6 +31,7 @@ install_requires = pandas>=0.25.0 td-client>=1.1.0 pytz>=2018.5 + numpy<1.20 [options.extras_require] spark = From ad47066ddf7c39ba32b18c96699c18a64d7d0d56 Mon Sep 17 00:00:00 2001 From: Aki Ariga Date: Tue, 2 Feb 2021 14:19:27 +0900 Subject: [PATCH 5/7] Fix for lint error --- pytd/query_engine.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pytd/query_engine.py b/pytd/query_engine.py index 17ea927..1869078 100644 --- a/pytd/query_engine.py +++ b/pytd/query_engine.py @@ -7,7 +7,7 @@ import prestodb import tdclient -__version__ = pkg_resources.get_distribution("pytd").version +__version__ = pkg_resources.get_distribution("pytd").version logger = logging.getLogger(__name__) From f2bbfaaf65dc5d2a4851fe998e5c4612bfe5960c Mon Sep 17 00:00:00 2001 From: Aki Ariga Date: Tue, 2 Feb 2021 14:29:18 +0900 Subject: [PATCH 6/7] Apply isort --- pytd/query_engine.py | 2 +- pytd/tests/test_query_engine.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pytd/query_engine.py b/pytd/query_engine.py index 1869078..9ca6f74 100644 --- a/pytd/query_engine.py +++ b/pytd/query_engine.py @@ -1,9 +1,9 @@ import abc import logging import os -import pkg_resources from urllib.parse import urlparse +import pkg_resources import prestodb import tdclient diff --git a/pytd/tests/test_query_engine.py b/pytd/tests/test_query_engine.py index e4b96ba..f774dff 100644 --- a/pytd/tests/test_query_engine.py +++ b/pytd/tests/test_query_engine.py @@ -4,8 +4,8 @@ import prestodb import tdclient -from pytd.query_engine import HiveQueryEngine, PrestoQueryEngine from pytd import __version__ +from pytd.query_engine import HiveQueryEngine, PrestoQueryEngine class QueryEngineEndpointSchemeTestCase(unittest.TestCase): From 865e9dfacbbbea2448f602b62f0803875302354f Mon Sep 17 00:00:00 2001 From: Aki Ariga Date: Thu, 4 Feb 2021 17:29:47 +0900 Subject: [PATCH 7/7] Apply feedback review --- doc/contributing.rst | 4 +++- setup.py | 9 --------- 2 files changed, 3 insertions(+), 10 deletions(-) diff --git a/doc/contributing.rst b/doc/contributing.rst index b0a76ce..1fb0261 100644 --- a/doc/contributing.rst +++ b/doc/contributing.rst @@ -74,8 +74,10 @@ Releasing Update version in ``setup.cfg``. Set it to ``1.0.0``, for example: -.. code:: py +.. code:: ini + [metadata] + name = pytd version = 1.0.0 Commit and push the latest code, and tag the version: diff --git a/setup.py b/setup.py index 0b8a6cf..6068493 100644 --- a/setup.py +++ b/setup.py @@ -1,12 +1,3 @@ -"""Treasure Data Driver for Python - -pytd is a Python interface to Treasure Data data management platform. Unlike -td-client-python, the official Treasure Data API library for Python, pytd gives -a direct access to their back-end query and storage engines. The seamless -connection allows your Python code to read and write a large volume of data in -a shorter time. It eventually makes your day-to-day data analytics work more -efficient and productive. -""" from setuptools import setup setup()