(original) (raw)

changeset: 1257:c1b1b537196d user: Éric Araujo merwok@netwok.org date: Sun Nov 20 18:51:32 2011 +0100 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 description: 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. diff -r 659bf2a679d2 -r c1b1b537196d distutils2/_backport/shutil.py --- a/distutils2/_backport/shutil.py Tue Nov 15 15:03:54 2011 +0100 +++ b/distutils2/_backport/shutil.py Sun Nov 20 18:51:32 2011 +0100 @@ -10,6 +10,7 @@ from os.path import abspath import fnmatch import errno +from distutils2._backport import tarfile try: import bz2 @@ -407,10 +408,6 @@ os.makedirs(archive_dir) # creating the tarball - # XXX late import because of circular dependency between shutil and - # tarfile :( - from distutils2._backport import tarfile - if logger is not None: logger.info('Creating tar archive') @@ -700,8 +697,6 @@ def _unpack_tarfile(filename, extract_dir): """Unpack tar/tar.gz/tar.bz2 `filename` to `extract_dir` """ - # late import because of circular dependency - from distutils2._backport import tarfile try: tarobj = tarfile.open(filename) except tarfile.TarError: diff -r 659bf2a679d2 -r c1b1b537196d distutils2/_backport/tarfile.py --- a/distutils2/_backport/tarfile.py Tue Nov 15 15:03:54 2011 +0100 +++ b/distutils2/_backport/tarfile.py Sun Nov 20 18:51:32 2011 +0100 @@ -43,7 +43,6 @@ #--------- import sys import os -import shutil import stat import errno import time @@ -256,7 +255,11 @@ if length == 0: return if length is None: - shutil.copyfileobj(src, dst) + while 1: + buf = src.read(16*1024) + if not buf: + break + dst.write(buf) return BUFSIZE = 16 * 1024 diff -r 659bf2a679d2 -r c1b1b537196d distutils2/_backport/tests/test_sysconfig.py --- a/distutils2/_backport/tests/test_sysconfig.py Tue Nov 15 15:03:54 2011 +0100 +++ b/distutils2/_backport/tests/test_sysconfig.py Sun Nov 20 18:51:32 2011 +0100 @@ -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, diff -r 659bf2a679d2 -r c1b1b537196d distutils2/command/bdist_dumb.py --- a/distutils2/command/bdist_dumb.py Tue Nov 15 15:03:54 2011 +0100 +++ b/distutils2/command/bdist_dumb.py Sun Nov 20 18:51:32 2011 +0100 @@ -5,12 +5,12 @@ """ 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 diff -r 659bf2a679d2 -r c1b1b537196d distutils2/command/bdist_msi.py --- a/distutils2/command/bdist_msi.py Tue Nov 15 15:03:54 2011 +0100 +++ b/distutils2/command/bdist_msi.py Sun Nov 20 18:51:32 2011 +0100 @@ -7,9 +7,8 @@ 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 diff -r 659bf2a679d2 -r c1b1b537196d distutils2/command/bdist_wininst.py --- a/distutils2/command/bdist_wininst.py Tue Nov 15 15:03:54 2011 +0100 +++ b/distutils2/command/bdist_wininst.py Sun Nov 20 18:51:32 2011 +0100 @@ -4,12 +4,11 @@ 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 diff -r 659bf2a679d2 -r c1b1b537196d distutils2/command/clean.py --- a/distutils2/command/clean.py Tue Nov 15 15:03:54 2011 +0100 +++ b/distutils2/command/clean.py Sun Nov 20 18:51:32 2011 +0100 @@ -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): diff -r 659bf2a679d2 -r c1b1b537196d distutils2/command/install_distinfo.py --- a/distutils2/command/install_distinfo.py Tue Nov 15 15:03:54 2011 +0100 +++ b/distutils2/command/install_distinfo.py Sun Nov 20 18:51:32 2011 +0100 @@ -5,7 +5,6 @@ import os import csv import codecs -from shutil import rmtree try: import hashlib except ImportError: @@ -13,6 +12,7 @@ from distutils2 import logger from distutils2.command.cmd import Command +from distutils2._backport.shutil import rmtree class install_distinfo(Command): diff -r 659bf2a679d2 -r c1b1b537196d distutils2/compiler/ccompiler.py --- a/distutils2/compiler/ccompiler.py Tue Nov 15 15:03:54 2011 +0100 +++ b/distutils2/compiler/ccompiler.py Sun Nov 20 18:51:32 2011 +0100 @@ -5,11 +5,11 @@ """ 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): diff -r 659bf2a679d2 -r c1b1b537196d distutils2/create.py --- a/distutils2/create.py Tue Nov 15 15:03:54 2011 +0100 +++ b/distutils2/create.py Sun Nov 20 18:51:32 2011 +0100 @@ -24,7 +24,6 @@ import sys import glob import codecs -import shutil from textwrap import dedent from ConfigParser import RawConfigParser @@ -34,7 +33,7 @@ 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: diff -r 659bf2a679d2 -r c1b1b537196d distutils2/tests/support.py --- a/distutils2/tests/support.py Tue Nov 15 15:03:54 2011 +0100 +++ b/distutils2/tests/support.py Sun Nov 20 18:51:32 2011 +0100 @@ -37,7 +37,6 @@ import sys import errno import codecs -import shutil import logging import logging.handlers import subprocess @@ -53,7 +52,7 @@ 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__ = [ diff -r 659bf2a679d2 -r c1b1b537196d distutils2/tests/test_command_test.py --- a/distutils2/tests/test_command_test.py Tue Nov 15 15:03:54 2011 +0100 +++ b/distutils2/tests/test_command_test.py Sun Nov 20 18:51:32 2011 +0100 @@ -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.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\) diff -r 659bf2a679d2 -r c1b1b537196d distutils2/tests/test_command_upload_docs.py --- a/distutils2/tests/test_command_upload_docs.py Tue Nov 15 15:03:54 2011 +0100 +++ b/distutils2/tests/test_command_upload_docs.py Sun Nov 20 18:51:32 2011 +0100 @@ -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.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: diff -r 659bf2a679d2 -r c1b1b537196d distutils2/tests/test_database.py --- a/distutils2/tests/test_database.py Tue Nov 15 15:03:54 2011 +0100 +++ b/distutils2/tests/test_database.py Sun Nov 20 18:51:32 2011 +0100 @@ -1,7 +1,6 @@ import os import csv import sys -import shutil import tempfile try: from hashlib import md5 @@ -22,6 +21,7 @@ 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) diff -r 659bf2a679d2 -r c1b1b537196d distutils2/tests/test_pypi_dist.py --- a/distutils2/tests/test_pypi_dist.py Tue Nov 15 15:03:54 2011 +0100 +++ b/distutils2/tests/test_pypi_dist.py Sun Nov 20 18:51:32 2011 +0100 @@ -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, - split_archive_name, get_infos_from_url) + split_archive_name, get_infos_from_url) 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 @@ # should not fail release['sdist'] + @unittest.skip('needs to be written') def test_get_unknown_distribution(self): # should raise a KeyError pass diff -r 659bf2a679d2 -r c1b1b537196d distutils2/util.py --- a/distutils2/util.py Tue Nov 15 15:03:54 2011 +0100 +++ b/distutils2/util.py Sun Nov 20 18:51:32 2011 +0100 @@ -6,7 +6,6 @@ import sys import errno import codecs -import shutil import string import posixpath import subprocess @@ -26,7 +25,7 @@ from distutils2.errors import (PackagingPlatformError, PackagingFileError, PackagingExecError, InstallationException, PackagingInternalError) -from distutils2._backport import sysconfig +from distutils2._backport import shutil, sysconfig __all__ = [ # file dependencies /calvin@cs.uni-sb.de/merwok@netwok.org