distutils2: c1b1b537196d (original) (raw)

Mercurial > distutils2

changeset 1257:c1b1b537196d

Remove usage of stdlib shutil. This should help avoiding issues like #13170. Because of implicit relative imports, _backport.tarfile already imported shutil from the backports instead of the stdlib; I have inlined the only function it needed to remove the circular dependency between these modules.

Éric Araujo merwok@netwok.org
date Sun, 20 Nov 2011 18:51:32 +0100
parents 659bf2a679d2
children 723517bf6708
files distutils2/_backport/shutil.py distutils2/_backport/tarfile.py distutils2/_backport/tests/test_sysconfig.py distutils2/command/bdist_dumb.py distutils2/command/bdist_msi.py distutils2/command/bdist_wininst.py distutils2/command/clean.py distutils2/command/install_distinfo.py distutils2/compiler/ccompiler.py distutils2/create.py distutils2/tests/support.py distutils2/tests/test_command_test.py distutils2/tests/test_command_upload_docs.py distutils2/tests/test_database.py distutils2/tests/test_pypi_dist.py distutils2/util.py
diffstat 16 files changed, 24 insertions(+), 29 deletions(-)[+] [-] distutils2/_backport/shutil.py 7 distutils2/_backport/tarfile.py 7 distutils2/_backport/tests/test_sysconfig.py 2 distutils2/command/bdist_dumb.py 2 distutils2/command/bdist_msi.py 3 distutils2/command/bdist_wininst.py 3 distutils2/command/clean.py 5 distutils2/command/install_distinfo.py 2 distutils2/compiler/ccompiler.py 2 distutils2/create.py 3 distutils2/tests/support.py 3 distutils2/tests/test_command_test.py 2 distutils2/tests/test_command_upload_docs.py 2 distutils2/tests/test_database.py 2 distutils2/tests/test_pypi_dist.py 5 distutils2/util.py 3

line wrap: on

line diff

--- a/distutils2/_backport/shutil.py +++ b/distutils2/_backport/shutil.py @@ -10,6 +10,7 @@ import stat from os.path import abspath import fnmatch import errno +from distutils2._backport import tarfile try: import bz2 @@ -407,10 +408,6 @@ def _make_tarball(base_name, base_dir, c os.makedirs(archive_dir) # creating the tarball

- if logger is not None: logger.info('Creating tar archive') @@ -700,8 +697,6 @@ def _unpack_zipfile(filename, extract_di def _unpack_tarfile(filename, extract_dir): """Unpack tar/tar.gz/tar.bz2 filename to extract_dir """

--- a/distutils2/_backport/tarfile.py +++ b/distutils2/_backport/tarfile.py @@ -43,7 +43,6 @@ version = "0.9.0" #--------- import sys import os -import shutil import stat import errno import time @@ -256,7 +255,11 @@ def copyfileobj(src, dst, length=None): if length == 0: return if length is None:

BUFSIZE = 16 * 1024

--- a/distutils2/_backport/tests/test_sysconfig.py +++ b/distutils2/_backport/tests/test_sysconfig.py @@ -1,10 +1,10 @@ import os import sys import subprocess -import shutil from copy import copy from StringIO import StringIO +from distutils2._backport import shutil from distutils2._backport import sysconfig from distutils2._backport.sysconfig import ( get_paths, get_platform, get_config_vars, get_path, get_path_names,

--- a/distutils2/command/bdist_dumb.py +++ b/distutils2/command/bdist_dumb.py @@ -5,12 +5,12 @@ sys.prefix or sys.exec_prefix. """ import os -from shutil import rmtree from distutils2.util import get_platform from distutils2.command.cmd import Command from distutils2.errors import PackagingPlatformError from distutils2 import logger +from distutils2._backport.shutil import rmtree from distutils2._backport.sysconfig import get_python_version

--- a/distutils2/command/bdist_msi.py +++ b/distutils2/command/bdist_msi.py @@ -7,9 +7,8 @@ import sys import os import msilib - +from distutils2._backport.shutil import rmtree from distutils2._backport.sysconfig import get_python_version -from shutil import rmtree from distutils2.command.cmd import Command from distutils2.version import NormalizedVersion from distutils2.errors import PackagingOptionError

--- a/distutils2/command/bdist_wininst.py +++ b/distutils2/command/bdist_wininst.py @@ -4,12 +4,11 @@ import sys import os import codecs -from shutil import rmtree - from distutils2.command.cmd import Command from distutils2.errors import PackagingOptionError, PackagingPlatformError from distutils2 import logger from distutils2.util import get_platform +from distutils2._backport.shutil import rmtree from distutils2._backport.sysconfig import get_python_version

--- a/distutils2/command/clean.py +++ b/distutils2/command/clean.py @@ -3,9 +3,10 @@

Contributed by Bastian Kleineidam calvin@cs.uni-sb.de

import os -from shutil import rmtree +from distutils2 import logger from distutils2.command.cmd import Command -from distutils2 import logger +from distutils2._backport.shutil import rmtree + class clean(Command):

--- a/distutils2/command/install_distinfo.py +++ b/distutils2/command/install_distinfo.py @@ -5,7 +5,6 @@ import os import csv import codecs -from shutil import rmtree try: import hashlib except ImportError: @@ -13,6 +12,7 @@ except ImportError: from distutils2 import logger from distutils2.command.cmd import Command +from distutils2._backport.shutil import rmtree class install_distinfo(Command):

--- a/distutils2/compiler/ccompiler.py +++ b/distutils2/compiler/ccompiler.py @@ -5,11 +5,11 @@ interface for the compiler abstraction m """ import os -from shutil import move from distutils2 import logger from distutils2.util import split_quoted, execute, newer_group, spawn from distutils2.errors import CompileError, LinkError, UnknownFileError from distutils2.compiler import gen_preprocess_options +from distutils2._backport.shutil import move class CCompiler(object):

--- a/distutils2/create.py +++ b/distutils2/create.py @@ -24,7 +24,6 @@ import imp import sys import glob import codecs -import shutil from textwrap import dedent from ConfigParser import RawConfigParser @@ -34,7 +33,7 @@ from distutils2 import logger from distutils2._trove import all_classifiers as _CLASSIFIERS_LIST from distutils2.compat import detect_encoding from distutils2.version import is_valid_version -from distutils2._backport import sysconfig +from distutils2._backport import shutil, sysconfig try: any except NameError:

--- a/distutils2/tests/support.py +++ b/distutils2/tests/support.py @@ -37,7 +37,6 @@ import re import sys import errno import codecs -import shutil import logging import logging.handlers import subprocess @@ -53,7 +52,7 @@ from distutils2.util import resolve_name from distutils2.command import set_command, _COMMANDS from distutils2.tests import unittest -from distutils2._backport import sysconfig +from distutils2._backport import shutil, sysconfig

define all to make pydoc more useful

all = [

--- a/distutils2/tests/test_command_test.py +++ b/distutils2/tests/test_command_test.py @@ -1,7 +1,6 @@ import os import re import sys -import shutil import unittest as ut1 import distutils2.database @@ -14,6 +13,7 @@ from distutils2.tests.support import (Te from distutils2.command.test import test from distutils2.command import set_command from distutils2.dist import Distribution +from distutils2._backport import shutil EXPECTED_OUTPUT_RE = r'''FAIL: test_blah (myowntestmodule.SomeTest)

--- a/distutils2/tests/test_command_upload_docs.py +++ b/distutils2/tests/test_command_upload_docs.py @@ -1,6 +1,5 @@ """Tests for distutils2.command.upload_docs.""" import os -import shutil import logging import zipfile try: @@ -12,6 +11,7 @@ from distutils2.command import upload_do from distutils2.command.upload_docs import upload_docs, zip_dir from distutils2.dist import Distribution from distutils2.errors import PackagingFileError, PackagingOptionError +from distutils2._backport import shutil from distutils2.tests import unittest, support try:

--- a/distutils2/tests/test_database.py +++ b/distutils2/tests/test_database.py @@ -1,7 +1,6 @@ import os import csv import sys -import shutil import tempfile try: from hashlib import md5 @@ -22,6 +21,7 @@ from distutils2.database import ( provides_distribution, obsoletes_distribution, get_file_users, enable_cache, disable_cache, distinfo_dirname, _yield_distributions, get_file, get_file_path) +from distutils2._backport import shutil

TODO Add a test for getting a distribution provided by another distribution

TODO Add a test for absolute pathed RECORD items (e.g. /etc/myapp/config.ini)

--- a/distutils2/tests/test_pypi_dist.py +++ b/distutils2/tests/test_pypi_dist.py @@ -1,11 +1,11 @@ """Tests for the distutils2.pypi.dist module.""" import os -import shutil from distutils2.version import VersionPredicate from distutils2.pypi.dist import (ReleaseInfo, ReleasesList, DistInfo,

from distutils2.pypi.errors import HashDoesNotMatch, UnsupportedHashName +from distutils2._backport import shutil from distutils2.tests import unittest from distutils2.tests.support import TempdirManager, requires_zlib, fake_dec @@ -38,6 +38,7 @@ class TestReleaseInfo(unittest.TestCase) # should not fail release['sdist']

--- a/distutils2/util.py +++ b/distutils2/util.py @@ -6,7 +6,6 @@ import csv import sys import errno import codecs -import shutil import string import posixpath import subprocess @@ -26,7 +25,7 @@ from distutils2 import logger from distutils2.errors import (PackagingPlatformError, PackagingFileError, PackagingExecError, InstallationException, PackagingInternalError) -from distutils2._backport import sysconfig +from distutils2._backport import shutil, sysconfig all = [ # file dependencies