Merge pull request #255 from bndr/drop_python2

Drop support for python 2 and bump python versions in general
This commit is contained in:
Alan Barzilay 2021-05-09 01:03:21 -03:00 committed by GitHub
commit 4219833019
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 1487 additions and 214 deletions

View File

@ -4,17 +4,17 @@ language: python
matrix:
include:
- python: 3.9
env: TOX_ENV=py39
- python: 3.8
env: TOX_ENV=py38
- python: 3.7
env: TOX_ENV=py37
- python: 3.6
env: TOX_ENV=py36
- python: 3.5
env: TOX_ENV=py35
- python: 3.4
env: TOX_ENV=py34
- python: 2.7
env: TOX_ENV=py27
- python: pypy3
env: TOX_ENV=pypy3
- python: 3.6
- python: 3.9
env: TOX_ENV=flake8
# Use tox to run tests on Travis-CI to keep one unified method of running tests in any environment

View File

@ -1,5 +1,4 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""pipreqs - Generate pip requirements.txt file based on imports
Usage:
@ -37,13 +36,11 @@ Options:
<gt> | e.g. Flask>=1.1.2
<no-pin> | e.g. Flask
"""
from __future__ import print_function, absolute_import
from contextlib import contextmanager
import os
import sys
import re
import logging
import codecs
import ast
import traceback
from docopt import docopt
@ -58,14 +55,6 @@ REGEXP = [
re.compile(r'^from ((?!\.+).*?) import (?:.*)$')
]
if sys.version_info[0] > 2:
open_func = open
py2 = False
else:
open_func = codecs.open
py2 = True
py2_exclude = ["concurrent", "concurrent.futures"]
@contextmanager
def _open(filename=None, mode='r'):
@ -122,7 +111,7 @@ def get_all_imports(
candidates += [os.path.splitext(fn)[0] for fn in files]
for file_name in files:
file_name = os.path.join(root, file_name)
with open_func(file_name, "r", encoding=encoding) as f:
with open(file_name, "r", encoding=encoding) as f:
contents = f.read()
try:
tree = ast.parse(contents)
@ -157,7 +146,6 @@ def get_all_imports(
with open(join("stdlib"), "r") as f:
data = {x.strip() for x in f}
data = {x for x in data if x not in py2_exclude} if py2 else data
return list(packages - data)
@ -214,7 +202,7 @@ def get_locally_installed_packages(encoding=None):
for item in files:
if "top_level" in item:
item = os.path.join(root, item)
with open_func(item, "r", encoding=encoding) as f:
with open(item, "r", encoding=encoding) as f:
package = root.split(os.sep)[-1].split("-")
try:
package_import = f.read().strip().split("\n")
@ -309,7 +297,7 @@ def parse_requirements(file_):
delim = ["<", ">", "=", "!", "~"]
try:
f = open_func(file_, "r")
f = open(file_, "r")
except OSError:
logging.error("Failed on file: {}".format(file_))
raise
@ -381,7 +369,7 @@ def clean(file_, imports):
to_write = []
try:
f = open_func(file_, "r+")
f = open(file_, "r+")
except OSError:
logging.error("Failed on file: {}".format(file_))
raise

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,4 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
try:
from setuptools import setup
@ -34,7 +32,7 @@ setup(
package_dir={'pipreqs':
'pipreqs'},
include_package_data=True,
package_data={'': ['stdlib','mapping']},
package_data={'': ['stdlib', 'mapping']},
install_requires=requirements,
license='Apache License',
zip_safe=False,
@ -44,12 +42,11 @@ setup(
'Intended Audience :: Developers',
'License :: OSI Approved :: Apache Software License',
'Natural Language :: English',
'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 :: 3.8',
'Programming Language :: Python :: 3.9',
],
test_suite='tests',
entry_points={

View File

@ -1,5 +1,5 @@
[tox]
envlist = py27, py34, py35, py36, pypy3, flake8
envlist = py36, py37, py38, py39, pypy3, flake8
[testenv]
setenv =
@ -9,7 +9,7 @@ deps =
-r{toxinidir}/requirements.txt
[testenv:flake8]
basepython = python3.6
basepython = python3.9
commands = flake8 pipreqs
deps =
-r{toxinidir}/requirements.txt