Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

FIX: Pip 20+ support and fix tests #16

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
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
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM kpndigital/tox:py27_py35
FROM kpndigital/tox:py27_py37_py38

WORKDIR /app

Expand Down
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ clean: pyclean docsclean
@rm -rf venv

venv:
@python3.6 -m venv venv
@python3.8 -m venv venv
@$(PIP) install -U "pip>=7.0" -q
@$(PIP) install -r $(DEPS)

Expand Down
13 changes: 8 additions & 5 deletions pkgversion/pkgversion.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,16 @@
import re
from subprocess import PIPE, Popen

try:
from pip._internal.download import PipSession
try: # pip20+
from pip._internal.network.session import PipSession
from pip._internal.req import parse_requirements
except ImportError:
# Output expected ImportErrors for PIP < 10.
from pip.download import PipSession
from pip.req import parse_requirements
try: # pip10+
from pip._internal.download import PipSession
from pip._internal.req import parse_requirements
except ImportError: # pip<10
from pip.download import PipSession
from pip.req import parse_requirements


setup_py_template = """
Expand Down
46 changes: 45 additions & 1 deletion setup.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,47 @@

from setuptools import setup
setup(**{'name': 'pkgversion', 'author': 'Niels Lensink', 'author_email': '[email protected]', 'include_package_data': True, 'long_description': 'Python pkgversion\n=================\n\n.. image:: https://secure.travis-ci.org/kpn-digital/py-pkgversion.svg?branch=master\n :target: http://travis-ci.org/kpn-digital/py-pkgversion?branch=master\n\n.. image:: https://img.shields.io/codecov/c/github/kpn-digital/py-pkgversion/master.svg\n :target: http://codecov.io/github/kpn-digital/py-pkgversion?branch=master\n\n.. image:: https://img.shields.io/pypi/v/pkgversion.svg\n :target: https://pypi.python.org/pypi/pkgversion\n\n.. image:: https://readthedocs.org/projects/py-pkgversion/badge/?version=latest\n :target: http://py-pkgversion.readthedocs.org/en/latest/?badge=latest\n\n\nVersioning utils for python projects\n', 'url': 'https://github.com/kpn-digital/py-pkgversion', 'version': '1.0.3+3.g6154f4d', 'zip_safe': False, 'install_requires': [], 'packages': ['pkgversion'], 'classifiers': ['Development Status :: 5 - Production/Stable', 'Environment :: Web Environment', '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.5', 'Topic :: Internet :: WWW/HTTP'], 'tests_require': ['tox'], 'description': 'Versioning utils for python projects'})
setup(**{'author': 'Niels Lensink',
'author_email': '[email protected]',
'classifiers': ['Development Status :: 5 - Production/Stable',
'Environment :: Web Environment',
'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.7',
'Programming Language :: Python :: 3.8',
'Topic :: Internet :: WWW/HTTP'],
'description': 'Versioning utils for python projects',
'include_package_data': True,
'install_requires': [],
'long_description': 'Python pkgversion\n'
'=================\n'
'\n'
'.. image:: '
'https://secure.travis-ci.org/kpn-digital/py-pkgversion.svg?branch=master\n'
' :target: '
'http://travis-ci.org/kpn-digital/py-pkgversion?branch=master\n'
'\n'
'.. image:: '
'https://img.shields.io/codecov/c/github/kpn-digital/py-pkgversion/master.svg\n'
' :target: '
'http://codecov.io/github/kpn-digital/py-pkgversion?branch=master\n'
'\n'
'.. image:: https://img.shields.io/pypi/v/pkgversion.svg\n'
' :target: https://pypi.python.org/pypi/pkgversion\n'
'\n'
'.. image:: '
'https://readthedocs.org/projects/py-pkgversion/badge/?version=latest\n'
' :target: '
'http://py-pkgversion.readthedocs.org/en/latest/?badge=latest\n'
'\n'
'\n'
'Versioning utils for python projects\n',
'name': 'pkgversion',
'packages': ['pkgversion'],
'tests_require': ['tox'],
'url': 'https://github.com/kpn-digital/py-pkgversion',
'version': '3.0.2+1.g578d983',
'zip_safe': False})
3 changes: 2 additions & 1 deletion setup_gen.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,8 @@
'Programming Language :: Python :: 2',
'Programming Language :: Python :: 2.7',
'Programming Language :: Python :: 3',
'Programming Language :: Python :: 3.5',
'Programming Language :: Python :: 3.7',
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we also add python 3.6?

Copy link
Contributor

@kammala kammala Apr 9, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

also it does not seem as FIX to me as we are officially dropping support for python version and adding support for next one. more like NEW or even BREAK(even though it is only python classifiers which do not mean it won't work with other versions)

'Programming Language :: Python :: 3.8',
'Topic :: Internet :: WWW/HTTP',
]
)
2 changes: 1 addition & 1 deletion tests/test_pkgversion.py
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@ def test_write_setup_py_with_git_repo(self, tmpdir):
Popen(command, stdout=PIPE, cwd=str(tmpdir)).communicate()

expected_import = "^from setuptools import setup$"
expected_setup = "^setup\(\*\*(.*)\)$"
expected_setup = "^setup\(\*\*(.*)\)$" # noqa: W605

write_setup_py(
install_requires=['test']
Expand Down
50 changes: 17 additions & 33 deletions tox.ini
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ addopts=--tb=short
[tox]
envlist =
py27-{pip9,pip10}
py35-{pip9,pip10}
py36-{pip9,pip10}
py37-{pip9,pip10}
py38-pip20
cov
isort-check
isort-fix
Expand All @@ -14,68 +14,52 @@ envlist =

skipsdist = true

[testenv]
basepython =
py27-{pip9,pip10}: python2.7
py35-{pip9,pip10}: python3.5
py36-{pip9,pip10}: python3.6
cov: python3.6
py27: python2.7
py37: python3.7
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would also keep py36 here as it is the main platform for this package

py38: python3.8
cov: python3.8
deps =
-rrequirements/requirements-base.txt
-rrequirements/requirements-testing.txt
pip9: pip<10.0
pip10: pip<11.0
pip20: pip<21.0
commands =
py.test tests

[testenv:cov]
basepython= python3.6
basepython= python3.8
commands =
py.test tests --cov-report=term-missing --cov-append --cov=pkgversion --cov-report xml {posargs}
deps =
-rrequirements/requirements-base.txt
-rrequirements/requirements-testing.txt

[general]
commands =
py.test tests
deps =
-rrequirements/requirements-base.txt
-rrequirements/requirements-testing.txt

[testenv:py27-{pip9,pip10}]
basepython = python2.7
commands =
{[general]commands}

[testenv:py35-{pip9,pip10}]
basepython = python3.5
commands =
{[general]commands}

[testenv:py36-{pip9,pip10}]
basepython = python3.6
commands =
{[general]commands}

##
# Flake8 linting
##

[testenv:lint]
basepython = python3.6
basepython = python3.8
commands = flake8 pkgversion tests --exclude=pkgversion/__init__.py
deps =
flake8

[testenv:docs]
basepython = python3.6
basepython = python3.8
commands = sphinx-build -W -b html {toxinidir}/docs {toxinidir}/docs/_build/html
deps =
-rrequirements/requirements-testing.txt

[testenv:isort-check]
basepython = python3.6
basepython = python3.8
commands = isort -rc -c pkgversion tests
deps = isort

[testenv:isort-fix]
basepython = python3.6
basepython = python3.8
commands = isort -rc pkgversion tests
deps = isort

Expand Down