From e76a139ca4fad75c4ce8b3bc95e0009ea0823eb5 Mon Sep 17 00:00:00 2001 From: "Jason R. Coombs" Date: Wed, 9 Dec 2015 02:48:31 -0500 Subject: Use io.open in build_py --- setuptools/command/build_py.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'setuptools/command/build_py.py') diff --git a/setuptools/command/build_py.py b/setuptools/command/build_py.py index a873d54b..779adf2a 100644 --- a/setuptools/command/build_py.py +++ b/setuptools/command/build_py.py @@ -5,6 +5,8 @@ import os import sys import fnmatch import textwrap +import io + try: from setuptools.lib2to3_ex import Mixin2to3 @@ -157,7 +159,7 @@ class build_py(orig.build_py, Mixin2to3): else: return init_py - f = open(init_py, 'rbU') + f = io.open(init_py, 'rb') if 'declare_namespace'.encode() not in f.read(): from distutils.errors import DistutilsError -- cgit v1.2.1 From 2ef88b8e709f0c090a3f7f8c7f612aacbbcd648f Mon Sep 17 00:00:00 2001 From: "Jason R. Coombs" Date: Wed, 9 Dec 2015 02:49:48 -0500 Subject: Use context manager for closing file --- setuptools/command/build_py.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'setuptools/command/build_py.py') diff --git a/setuptools/command/build_py.py b/setuptools/command/build_py.py index 779adf2a..c971626c 100644 --- a/setuptools/command/build_py.py +++ b/setuptools/command/build_py.py @@ -159,7 +159,8 @@ class build_py(orig.build_py, Mixin2to3): else: return init_py - f = io.open(init_py, 'rb') + with io.open(init_py, 'rb') as f: + contents = f.read() if 'declare_namespace'.encode() not in f.read(): from distutils.errors import DistutilsError @@ -169,7 +170,6 @@ class build_py(orig.build_py, Mixin2to3): 'fix it.\n(See the setuptools manual under ' '"Namespace Packages" for details.)\n"' % (package,) ) - f.close() return init_py def initialize_options(self): -- cgit v1.2.1 From d7b8b096a206b178d588049a396d5687dbe7235a Mon Sep 17 00:00:00 2001 From: "Jason R. Coombs" Date: Wed, 9 Dec 2015 02:50:30 -0500 Subject: Prefer bytes literal --- setuptools/command/build_py.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'setuptools/command/build_py.py') diff --git a/setuptools/command/build_py.py b/setuptools/command/build_py.py index c971626c..f0d76705 100644 --- a/setuptools/command/build_py.py +++ b/setuptools/command/build_py.py @@ -161,7 +161,7 @@ class build_py(orig.build_py, Mixin2to3): with io.open(init_py, 'rb') as f: contents = f.read() - if 'declare_namespace'.encode() not in f.read(): + if b'declare_namespace' not in f.read(): from distutils.errors import DistutilsError raise DistutilsError( -- cgit v1.2.1 From 2b2c7c76e8eda4c608183c8e75d9eb0123724135 Mon Sep 17 00:00:00 2001 From: "Jason R. Coombs" Date: Wed, 9 Dec 2015 02:51:23 -0500 Subject: Move import to top --- setuptools/command/build_py.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'setuptools/command/build_py.py') diff --git a/setuptools/command/build_py.py b/setuptools/command/build_py.py index f0d76705..43159c7c 100644 --- a/setuptools/command/build_py.py +++ b/setuptools/command/build_py.py @@ -6,6 +6,7 @@ import sys import fnmatch import textwrap import io +import distutils.errors try: @@ -162,9 +163,7 @@ class build_py(orig.build_py, Mixin2to3): with io.open(init_py, 'rb') as f: contents = f.read() if b'declare_namespace' not in f.read(): - from distutils.errors import DistutilsError - - raise DistutilsError( + raise distutils.errors.DistutilsError( "Namespace package problem: %s is a namespace package, but " "its\n__init__.py does not call declare_namespace()! Please " 'fix it.\n(See the setuptools manual under ' -- cgit v1.2.1 From fc28df6ec826b3bd1ffa89d55d3674aa89d2f5fc Mon Sep 17 00:00:00 2001 From: "Jason R. Coombs" Date: Wed, 9 Dec 2015 02:52:39 -0500 Subject: Remove hanging indent --- setuptools/command/build_py.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'setuptools/command/build_py.py') diff --git a/setuptools/command/build_py.py b/setuptools/command/build_py.py index 43159c7c..e729f712 100644 --- a/setuptools/command/build_py.py +++ b/setuptools/command/build_py.py @@ -183,8 +183,10 @@ class build_py(orig.build_py, Mixin2to3): def exclude_data_files(self, package, src_dir, files): """Filter filenames for package's data files in 'src_dir'""" - globs = (self.exclude_package_data.get('', []) - + self.exclude_package_data.get(package, [])) + globs = ( + self.exclude_package_data.get('', []) + + self.exclude_package_data.get(package, []) + ) bad = [] for pattern in globs: bad.extend( -- cgit v1.2.1 From a0ad4c94c41a9af9f2479567139ba6489305b9cc Mon Sep 17 00:00:00 2001 From: "Jason R. Coombs" Date: Wed, 9 Dec 2015 02:59:46 -0500 Subject: Rewrite init/loop/extend as dual-for generator expression. --- setuptools/command/build_py.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'setuptools/command/build_py.py') diff --git a/setuptools/command/build_py.py b/setuptools/command/build_py.py index e729f712..5bbf0870 100644 --- a/setuptools/command/build_py.py +++ b/setuptools/command/build_py.py @@ -187,14 +187,14 @@ class build_py(orig.build_py, Mixin2to3): self.exclude_package_data.get('', []) + self.exclude_package_data.get(package, []) ) - bad = [] - for pattern in globs: - bad.extend( - fnmatch.filter( - files, os.path.join(src_dir, convert_path(pattern)) - ) + bad = dict.fromkeys( + item + for pattern in globs + for item in fnmatch.filter( + files, + os.path.join(src_dir, convert_path(pattern)), ) - bad = dict.fromkeys(bad) + ) seen = {} return [ f for f in files if f not in bad -- cgit v1.2.1 From 4e960934f61c50b98953d6cd12b72b30e85bccf3 Mon Sep 17 00:00:00 2001 From: "Jason R. Coombs" Date: Wed, 9 Dec 2015 03:00:28 -0500 Subject: Prefer set to dict.fromkeys --- setuptools/command/build_py.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'setuptools/command/build_py.py') diff --git a/setuptools/command/build_py.py b/setuptools/command/build_py.py index 5bbf0870..3ae331fd 100644 --- a/setuptools/command/build_py.py +++ b/setuptools/command/build_py.py @@ -187,7 +187,7 @@ class build_py(orig.build_py, Mixin2to3): self.exclude_package_data.get('', []) + self.exclude_package_data.get(package, []) ) - bad = dict.fromkeys( + bad = set( item for pattern in globs for item in fnmatch.filter( -- cgit v1.2.1 From 3744e23d533ab5b0ebcb34f6d8792777c3433014 Mon Sep 17 00:00:00 2001 From: "Jason R. Coombs" Date: Wed, 9 Dec 2015 03:14:08 -0500 Subject: Reindent to remove trailing comment --- setuptools/command/build_py.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'setuptools/command/build_py.py') diff --git a/setuptools/command/build_py.py b/setuptools/command/build_py.py index 3ae331fd..55aed230 100644 --- a/setuptools/command/build_py.py +++ b/setuptools/command/build_py.py @@ -197,8 +197,12 @@ class build_py(orig.build_py, Mixin2to3): ) seen = {} return [ - f for f in files if f not in bad - and f not in seen and seen.setdefault(f, 1) # ditch dupes + fn + for fn in files + if fn not in bad + # ditch dupes + and fn not in seen + and seen.setdefault(fn, 1) ] -- cgit v1.2.1 From a8d85057026bc070b2f73b57133f1910218ad815 Mon Sep 17 00:00:00 2001 From: "Jason R. Coombs" Date: Wed, 9 Dec 2015 03:20:12 -0500 Subject: Use a defaultdict and count to track seen items --- setuptools/command/build_py.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'setuptools/command/build_py.py') diff --git a/setuptools/command/build_py.py b/setuptools/command/build_py.py index 55aed230..317dbba4 100644 --- a/setuptools/command/build_py.py +++ b/setuptools/command/build_py.py @@ -7,6 +7,8 @@ import fnmatch import textwrap import io import distutils.errors +import collections +import itertools try: @@ -195,14 +197,13 @@ class build_py(orig.build_py, Mixin2to3): os.path.join(src_dir, convert_path(pattern)), ) ) - seen = {} + seen = collections.defaultdict(itertools.count) return [ fn for fn in files if fn not in bad # ditch dupes - and fn not in seen - and seen.setdefault(fn, 1) + and not next(seen[fn]) ] -- cgit v1.2.1 From 1c7e97f95ea74c241b91dfb975c709940ba00f47 Mon Sep 17 00:00:00 2001 From: "Jason R. Coombs" Date: Wed, 9 Dec 2015 03:26:58 -0500 Subject: Remove unused import --- setuptools/command/build_py.py | 1 - 1 file changed, 1 deletion(-) (limited to 'setuptools/command/build_py.py') diff --git a/setuptools/command/build_py.py b/setuptools/command/build_py.py index 317dbba4..b2dafec9 100644 --- a/setuptools/command/build_py.py +++ b/setuptools/command/build_py.py @@ -2,7 +2,6 @@ from glob import glob from distutils.util import convert_path import distutils.command.build_py as orig import os -import sys import fnmatch import textwrap import io -- cgit v1.2.1 From 41112f5afd0d2b0c14899ab1cf2c27183e64d6ac Mon Sep 17 00:00:00 2001 From: "Jason R. Coombs" Date: Wed, 9 Dec 2015 03:34:35 -0500 Subject: Use io.open for future compatibility and consistency --- setuptools/command/build_py.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'setuptools/command/build_py.py') diff --git a/setuptools/command/build_py.py b/setuptools/command/build_py.py index b2dafec9..8a50f032 100644 --- a/setuptools/command/build_py.py +++ b/setuptools/command/build_py.py @@ -163,7 +163,7 @@ class build_py(orig.build_py, Mixin2to3): with io.open(init_py, 'rb') as f: contents = f.read() - if b'declare_namespace' not in f.read(): + if b'declare_namespace' not in contents: raise distutils.errors.DistutilsError( "Namespace package problem: %s is a namespace package, but " "its\n__init__.py does not call declare_namespace()! Please " -- cgit v1.2.1