summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCharles-Henri de Boysson <ceache@users.noreply.github.com>2022-09-30 13:48:49 -0400
committerGitHub <noreply@github.com>2022-09-30 13:48:49 -0400
commit5f7ae4833a64dac7e6cca407498fc6a1e2baca90 (patch)
treec55ef4a9f5994ee929f41a640031c299a39a94df
parent9bb849941deb1d62ca3ca4d74882ed41cf569513 (diff)
downloadkazoo-5f7ae4833a64dac7e6cca407498fc6a1e2baca90.tar.gz
chore: migrate to setup.cfg (#666)
closes #644 #662 #663
-rw-r--r--.gitignore2
-rw-r--r--MANIFEST.in19
-rw-r--r--constraints.txt5
-rw-r--r--kazoo/tests/test_selectors_select.py12
-rw-r--r--pyproject.toml6
-rw-r--r--requirements.txt2
-rw-r--r--requirements_eventlet.txt1
-rw-r--r--requirements_gevent.txt1
-rw-r--r--requirements_sasl.txt1
-rw-r--r--requirements_sphinx.txt4
-rw-r--r--requirements_test.txt6
-rw-r--r--setup.cfg94
-rw-r--r--setup.py83
-rw-r--r--tox.ini42
14 files changed, 141 insertions, 137 deletions
diff --git a/.gitignore b/.gitignore
index 84cb76a..87c7457 100644
--- a/.gitignore
+++ b/.gitignore
@@ -32,3 +32,5 @@ zookeeper/
.tox
/.settings
/.metadata
+
+!.gitignore
diff --git a/MANIFEST.in b/MANIFEST.in
index 7b22377..1cdaf5e 100644
--- a/MANIFEST.in
+++ b/MANIFEST.in
@@ -1,12 +1,21 @@
+global-exclude *pyc *pyo __pycache__
+# Git files
+exclude .gitignore
+# CI/CD files
+exclude .travis.yml.bak
+exclude .clog.toml
+prune .github
+
+exclude Makefile
+exclude run_failure.py
+
include CHANGES.md
include CONTRIBUTING.md
include README.md
include LICENSE
include MANIFEST.in
-exclude .gitignore
-exclude .travis.yml
-exclude Makefile
-exclude run_failure.py
+
+include tox.ini
+
recursive-include kazoo *
recursive-include docs *
-global-exclude *pyc *pyo
diff --git a/constraints.txt b/constraints.txt
index 26c28c4..f661f97 100644
--- a/constraints.txt
+++ b/constraints.txt
@@ -1,9 +1,10 @@
# Consistent testing environment.
+coverage==6.3.2
flake8==3.7.9
mock==3.0.5
objgraph==3.4.1
-pytest==4.6.9
-pytest-cov==2.8.1
+pytest-cov~=2.12
+pytest~=4.6
# Documentation building.
Jinja2==2.7.3
diff --git a/kazoo/tests/test_selectors_select.py b/kazoo/tests/test_selectors_select.py
index b5cdd33..2baf225 100644
--- a/kazoo/tests/test_selectors_select.py
+++ b/kazoo/tests/test_selectors_select.py
@@ -8,7 +8,7 @@ import os
import socket
import sys
import unittest
-from test import support
+
from kazoo.handlers.utils import selector_select
select = selector_select
@@ -56,18 +56,12 @@ class SelectTestCase(unittest.TestCase):
cmd = 'for i in 0 1 2 3 4 5 6 7 8 9; do echo testing...; sleep 1; done'
p = os.popen(cmd, 'r')
for tout in (0, 1, 2, 4, 8, 16) + (None,) * 10:
- if support.verbose:
- print('timeout =', tout)
rfd, wfd, xfd = select([p], [], [], tout)
if (rfd, wfd, xfd) == ([], [], []):
continue
if (rfd, wfd, xfd) == ([p], [], []):
line = p.readline()
- if support.verbose:
- print(repr(line))
if not line:
- if support.verbose:
- print('EOF')
break
continue
self.fail('Unexpected return values from select():', rfd, wfd, xfd)
@@ -87,5 +81,5 @@ class SelectTestCase(unittest.TestCase):
self.assertEqual(select([], a, []), ([], a[:5], []))
-def tearDownModule():
- support.reap_children()
+if __name__ == '__main__':
+ unittest.main()
diff --git a/pyproject.toml b/pyproject.toml
new file mode 100644
index 0000000..0bea47b
--- /dev/null
+++ b/pyproject.toml
@@ -0,0 +1,6 @@
+[build-system]
+build-backend = 'setuptools.build_meta'
+requires = [
+ 'setuptools >= 46.4.0',
+ 'wheel'
+] \ No newline at end of file
diff --git a/requirements.txt b/requirements.txt
deleted file mode 100644
index 83adeb7..0000000
--- a/requirements.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-six
-selectors2>=2.0.2; python_version < "3.4.0" \ No newline at end of file
diff --git a/requirements_eventlet.txt b/requirements_eventlet.txt
deleted file mode 100644
index 4cbece8..0000000
--- a/requirements_eventlet.txt
+++ /dev/null
@@ -1 +0,0 @@
-eventlet>=0.17.1
diff --git a/requirements_gevent.txt b/requirements_gevent.txt
deleted file mode 100644
index 4526759..0000000
--- a/requirements_gevent.txt
+++ /dev/null
@@ -1 +0,0 @@
-gevent>=1.2
diff --git a/requirements_sasl.txt b/requirements_sasl.txt
deleted file mode 100644
index 8e04041..0000000
--- a/requirements_sasl.txt
+++ /dev/null
@@ -1 +0,0 @@
-pure_sasl>=0.5.1
diff --git a/requirements_sphinx.txt b/requirements_sphinx.txt
deleted file mode 100644
index 6600509..0000000
--- a/requirements_sphinx.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-Jinja2>=2.7.3
-Pygments>=1.6
-Sphinx>=1.2.2
-docutils>=0.12
diff --git a/requirements_test.txt b/requirements_test.txt
deleted file mode 100644
index 30f6df7..0000000
--- a/requirements_test.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-flake8
-mock
-objgraph
-pytest
-pytest-cov
-pytest-xdist
diff --git a/setup.cfg b/setup.cfg
index d2c3491..babe067 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -1,15 +1,95 @@
-[aliases]
-clean_egg_info = egg_info -Db ''
-release = clean_egg_info sdist bdist_wheel
+[metadata]
+name = kazoo
+version = attr: kazoo.version.__version__
+author = Kazoo team
+author_email = python-zk@googlegroups.com
+url = https://kazoo.readthedocs.io
+description = "Higher Level Zookeeper Client"
+long_description = file: README.md, CHANGES.md
+long_description_content_type = text/markdown
+license = Apache 2.0
+license_file = LICENSE
+platform = any
+keywords = zookeeper, lock, leader, configuration
+classifiers =
+ Development Status :: 5 - Production/Stable
+ License :: OSI Approved :: Apache Software License
+ Intended Audience :: Developers
+ Operating System :: OS Independent
+ Programming Language :: Python
+ Programming Language :: Python :: 3
+ Programming Language :: Python :: 3.7
+ Programming Language :: Python :: 3.8
+ Programming Language :: Python :: Implementation :: CPython
+ Programming Language :: Python :: Implementation :: PyPy
+ Topic :: Communications
+ Topic :: System :: Distributed Computing
+ Topic :: System :: Networking
+project_urls =
+ Documentation = https://kazoo.readthedocs.io
+ Changelog = https://github.com/python-zk/kazoo/releases
+ Source = https://github.com/python-zk/kazoo
+ Bug Tracker = https://github.com/python-zk/kazoo/issues
-[bdist_wheel]
-universal = 1
+
+[options]
+zip_safe = false
+include_package_data = true
+packages = find:
+install_requires =
+ six
+ selectors2>=2.0.2 ; python_version < "3.4.0"
+
+[aliases]
+release = sdist bdist_wheel
[egg_info]
tag_build = dev
-[metadata]
-license_file = LICENSE
+[bdist_wheel]
+universal = true
+
+[options.extras_require]
+dev =
+ flake8
+
+test =
+ mock
+ objgraph
+ pytest
+ pytest-cov
+ gevent>=1.2 ; implementation_name!='pypy'
+ eventlet>=0.17.1 ; implementation_name!='pypy'
+
+eventlet =
+ eventlet>=0.17.1
+
+gevent =
+ gevent>=1.2
+
+sasl =
+ pure_sasl>=0.5.1
+
+docs =
+ Sphinx>=1.2.2
+
+alldeps =
+ %(dev)s
+ %(eventlet)s
+ %(gevent)s
+ %(sasl)s
+ %(docs)s
[tool:pytest]
addopts = -ra -v
+
+[flake8]
+builtins = _
+exclude =
+ .git,
+ __pycache__,
+ .venv/,venv/,
+ .tox/,
+ build/,dist/,*egg,
+ docs/conf.py,
+ zookeeper/
diff --git a/setup.py b/setup.py
index c9f9dc2..b908cbe 100644
--- a/setup.py
+++ b/setup.py
@@ -1,82 +1,3 @@
-import os
-import re
-from setuptools import setup, find_packages
-import sys
+import setuptools
-here = os.path.abspath(os.path.dirname(__file__))
-with open(os.path.join(here, 'README.md')) as f:
- README = f.read()
-with open(os.path.join(here, 'CHANGES.md')) as f:
- CHANGES = f.read()
-version = ''
-with open(os.path.join(here, 'kazoo', 'version.py')) as f:
- version = re.search(r'^__version__\s*=\s*[\'"]([^\'"]*)[\'"]',
- f.read(), re.MULTILINE).group(1)
-
-PYPY = getattr(sys, 'pypy_version_info', False) and True or False
-
-install_requires = ['six', 'selectors2>=2.0.2; python_version < "3.4.0"']
-
-tests_require = install_requires + [
- 'mock',
- 'pytest',
- 'pytest-cov',
- 'flake8',
- 'objgraph',
-]
-
-if not PYPY:
- tests_require += [
- 'gevent>=1.2',
- 'eventlet>=0.17.1',
- ]
-
-on_rtd = os.environ.get('READTHEDOCS', None) == 'True'
-if on_rtd:
- install_requires += [
- 'gevent>=1.2',
- 'eventlet>=0.17.1',
- 'pure-sasl',
- ]
-
-setup(
- name='kazoo',
- version=version,
- description='Higher Level Zookeeper Client',
- long_description=README + '\n\n' + CHANGES,
- classifiers=[
- "Development Status :: 5 - Production/Stable",
- "License :: OSI Approved :: Apache Software License",
- "Intended Audience :: Developers",
- "Operating System :: OS Independent",
- "Programming Language :: Python",
- "Programming Language :: Python :: 2",
- "Programming Language :: Python :: 2.7",
- "Programming Language :: Python :: 3",
- "Programming Language :: Python :: 3.4",
- "Programming Language :: Python :: 3.5",
- "Programming Language :: Python :: 3.6",
- "Programming Language :: Python :: 3.7",
- "Programming Language :: Python :: Implementation :: CPython",
- "Programming Language :: Python :: Implementation :: PyPy",
- "Topic :: Communications",
- "Topic :: System :: Distributed Computing",
- "Topic :: System :: Networking",
- ],
- keywords='zookeeper lock leader configuration',
- author="Kazoo team",
- author_email="python-zk@googlegroups.com",
- url="https://kazoo.readthedocs.io",
- license="Apache 2.0",
- packages=find_packages(),
- test_suite="kazoo.tests",
- include_package_data=True,
- zip_safe=False,
- install_requires=install_requires,
- tests_require=tests_require,
- extras_require={
- 'test': tests_require,
- 'sasl': ['pure-sasl==0.5.1'],
- },
- long_description_content_type="text/markdown",
-)
+setuptools.setup()
diff --git a/tox.ini b/tox.ini
index 44d792f..5ab4f33 100644
--- a/tox.ini
+++ b/tox.ini
@@ -1,30 +1,33 @@
[tox]
-minversion = 3.7
-skipsdist = True
+minversion = 3.24.1
+requires=
+ virtualenv>=20.7.2
+ tox-wheel>=0.6.0
+skip_missing_interpreters=True
envlist =
pep8,
- {py37,py38,py39,pypy3}
{gevent,eventlet,sasl,docs},
pypy3
+isolated_build = true
[testenv]
-usedevelop = True
-install_command = pip install {opts} {packages}
+wheel = True
+wheel_build_env = build
+install_command = pip install -c{toxinidir}/constraints.txt {opts} {packages}
passenv =
CI
TOX_*
CI_*
ZOOKEEPER_*
setenv =
- VIRTUAL_ENV={envdir}
+ pypy3: PYPY=1
+extras =
+ test
+ docs: docs
+ gevent: gevent
+ eventlet: eventlet
+ sasl: sasl
deps =
- -c{toxinidir}/constraints.txt
- -r{toxinidir}/requirements.txt
- -r{toxinidir}/requirements_test.txt
- docs: -r{toxinidir}/requirements_sphinx.txt
- gevent: -r{toxinidir}/requirements_gevent.txt
- eventlet: -r{toxinidir}/requirements_eventlet.txt
- sasl: -r{toxinidir}/requirements_sasl.txt
sasl: kerberos
codecov: codecov
commands =
@@ -32,13 +35,16 @@ commands =
/{toxinidir}/ensure-zookeeper-env.sh \
pytest {posargs: -ra -v --cov-report=xml --cov=kazoo kazoo/tests}
+
+[testenv:build]
+
[testenv:codecov]
commands = - codecov -e TOX_VENV,ZOOKEEPER_VERSION
[testenv:pep8]
-commands = flake8 {posargs}
-
+extra = alldeps
+deps =
+ flake8==3.7.9
+usedevelop = True
+commands = flake8 {posargs} {toxinidir}/kazoo
-[flake8]
-builtins = _
-exclude = .venv,.tox,dist,doc,*egg,.git,build,tools,local,docs,zookeeper