From ef1e94a848533f2e7dbb2ed7a8b2de50e97e4b7f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Araujo?= Date: Tue, 9 Aug 2011 23:03:43 +0200 Subject: Test pipes.quote with a few non-ASCII characters (see #9723). MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit That pipes.quote thinks all non-ASCII characters need to be quoted may be a bug, but right now I’m committing this test to make sure I haven’t introduced a behavior change in 3.3 when I simplified the code to use a regex (in 5966eeb0457d). --- Lib/test/test_pipes.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Lib/test/test_pipes.py b/Lib/test/test_pipes.py index f2b58d5..d5b886f 100644 --- a/Lib/test/test_pipes.py +++ b/Lib/test/test_pipes.py @@ -81,7 +81,8 @@ class SimplePipeTests(unittest.TestCase): def testQuoting(self): safeunquoted = string.ascii_letters + string.digits + '@%_-+=:,./' - unsafe = '"`$\\!' + unicode_sample = '\xe9\xe0\xdf' # e + acute accent, a + grave, sharp s + unsafe = '"`$\\!' + unicode_sample self.assertEqual(pipes.quote(''), "''") self.assertEqual(pipes.quote(safeunquoted), safeunquoted) -- cgit v0.12 From 1c608e38474d7b0aa74f023d877c38e37a8cae0e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Araujo?= Date: Wed, 10 Aug 2011 02:01:32 +0200 Subject: =?UTF-8?q?Fix=20find=20command=20in=20makefile=20=E2=80=9Cfunny?= =?UTF-8?q?=E2=80=9D=20target?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Makefile.pre.in | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile.pre.in b/Makefile.pre.in index dfa7219..1108c75 100644 --- a/Makefile.pre.in +++ b/Makefile.pre.in @@ -1283,7 +1283,7 @@ smelly: all # Find files with funny names funny: - find $(DISTDIRS) \ + find $(SUBDIRS) $(SUBDIRSTOO) \ -name .svn -prune \ -o -type d \ -o -name '*.[chs]' \ @@ -1313,7 +1313,7 @@ funny: -o -name .hgignore \ -o -name .bzrignore \ -o -name MANIFEST \ - -o -print + -print # Perform some verification checks on any modified files. patchcheck: -- cgit v0.12 From 25785e9ca581a0197cfb70027f02b85d9851ad54 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Araujo?= Date: Wed, 10 Aug 2011 02:46:33 +0200 Subject: Revert cosmetic change. A reminder: distutils only gets bug fixes. Cosmetic changes, especially in tests, are not worth the time spent, and can even make future merges of bugfixes a bit less easy. --- Lib/distutils/tests/test_build_py.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Lib/distutils/tests/test_build_py.py b/Lib/distutils/tests/test_build_py.py index c7c36f3..4e46339 100644 --- a/Lib/distutils/tests/test_build_py.py +++ b/Lib/distutils/tests/test_build_py.py @@ -10,7 +10,7 @@ from distutils.core import Distribution from distutils.errors import DistutilsFileError from distutils.tests import support -from test.support import run_unittest, create_empty_file +from test.support import run_unittest class BuildPyTestCase(support.TempdirManager, @@ -71,11 +71,11 @@ class BuildPyTestCase(support.TempdirManager, # create the distribution files. sources = self.mkdtemp() - create_empty_file(os.path.join(sources, "__init__.py")) + open(os.path.join(sources, "__init__.py"), "w").close() testdir = os.path.join(sources, "doc") os.mkdir(testdir) - create_empty_file(os.path.join(testdir, "testfile")) + open(os.path.join(testdir, "testfile"), "w").close() os.chdir(sources) old_stdout = sys.stdout -- cgit v0.12 From d9d7bca6dac2917eac7bd0ec306ad298d2de4a78 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Araujo?= Date: Wed, 10 Aug 2011 04:19:03 +0200 Subject: Use real word in English text (i.e. not code) --- Doc/library/argparse.rst | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/Doc/library/argparse.rst b/Doc/library/argparse.rst index e4add74..8d602fe 100644 --- a/Doc/library/argparse.rst +++ b/Doc/library/argparse.rst @@ -2,7 +2,7 @@ =============================================================================== .. module:: argparse - :synopsis: Command-line option and argument-parsing library. + :synopsis: Command-line option and argument parsing library. .. moduleauthor:: Steven Bethard .. sectionauthor:: Steven Bethard @@ -107,7 +107,7 @@ or the :func:`max` function if it was not. Parsing arguments ^^^^^^^^^^^^^^^^^ -:class:`ArgumentParser` parses args through the +:class:`ArgumentParser` parses arguments through the :meth:`~ArgumentParser.parse_args` method. This will inspect the command line, convert each arg to the appropriate type and then invoke the appropriate action. In most cases, this means a simple :class:`Namespace` object will be built up from @@ -118,7 +118,7 @@ attributes parsed out of the command line:: In a script, :meth:`~ArgumentParser.parse_args` will typically be called with no arguments, and the :class:`ArgumentParser` will automatically determine the -command-line args from :data:`sys.argv`. +command-line arguments from :data:`sys.argv`. ArgumentParser objects @@ -650,11 +650,11 @@ be positional:: action ^^^^^^ -:class:`ArgumentParser` objects associate command-line args with actions. These -actions can do just about anything with the command-line args associated with +:class:`ArgumentParser` objects associate command-line arguments with actions. These +actions can do just about anything with the command-line arguments associated with them, though most actions simply add an attribute to the object returned by :meth:`~ArgumentParser.parse_args`. The ``action`` keyword argument specifies -how the command-line args should be handled. The supported actions are: +how the command-line arguments should be handled. The supported actions are: * ``'store'`` - This just stores the argument's value. This is the default action. For example:: @@ -726,8 +726,8 @@ the Action API. The easiest way to do this is to extend :meth:`~ArgumentParser.parse_args`. Most actions add an attribute to this object. -* ``values`` - The associated command-line args, with any type-conversions - applied. (Type-conversions are specified with the type_ keyword argument to +* ``values`` - The associated command-line arguments, with any type conversions + applied. (Type conversions are specified with the type_ keyword argument to :meth:`~ArgumentParser.add_argument`. * ``option_string`` - The option string that was used to invoke this action. @@ -759,7 +759,7 @@ single action to be taken. The ``nargs`` keyword argument associates a different number of command-line arguments with a single action. The supported values are: -* N (an integer). N args from the command line will be gathered together into a +* N (an integer). N arguments from the command line will be gathered together into a list. For example:: >>> parser = argparse.ArgumentParser() @@ -803,7 +803,7 @@ values are: Namespace(infile=<_io.TextIOWrapper name='' encoding='UTF-8'>, outfile=<_io.TextIOWrapper name='' encoding='UTF-8'>) -* ``'*'``. All command-line args present are gathered into a list. Note that +* ``'*'``. All command-line arguments present are gathered into a list. Note that it generally doesn't make much sense to have more than one positional argument with ``nargs='*'``, but multiple optional arguments with ``nargs='*'`` is possible. For example:: @@ -827,7 +827,7 @@ values are: usage: PROG [-h] foo [foo ...] PROG: error: too few arguments -If the ``nargs`` keyword argument is not provided, the number of args consumed +If the ``nargs`` keyword argument is not provided, the number of arguments consumed is determined by the action_. Generally this means a single command-line arg will be consumed and a single item (not a list) will be produced. @@ -845,7 +845,7 @@ the various :class:`ArgumentParser` actions. The two most common uses of it are * When :meth:`~ArgumentParser.add_argument` is called with option strings (like ``-f`` or ``--foo``) and ``nargs='?'``. This creates an optional - argument that can be followed by zero or one command-line args. + argument that can be followed by zero or one command-line arguments. When parsing the command line, if the option string is encountered with no command-line arg following it, the value of ``const`` will be assumed instead. See the nargs_ description for examples. @@ -895,11 +895,11 @@ command-line argument was not present.:: type ^^^^ -By default, :class:`ArgumentParser` objects read command-line args in as simple +By default, :class:`ArgumentParser` objects read command-line arguments in as simple strings. However, quite often the command-line string should instead be interpreted as another type, like a :class:`float` or :class:`int`. The ``type`` keyword argument of :meth:`~ArgumentParser.add_argument` allows any -necessary type-checking and type-conversions to be performed. Common built-in +necessary type-checking and type conversions to be performed. Common built-in types and functions can be used directly as the value of the ``type`` argument:: >>> parser = argparse.ArgumentParser() @@ -919,7 +919,7 @@ writable file:: Namespace(bar=<_io.TextIOWrapper name='out.txt' encoding='UTF-8'>) ``type=`` can take any callable that takes a single string argument and returns -the type-converted value:: +the converted value:: >>> def perfect_square(string): ... value = int(string) @@ -954,7 +954,7 @@ See the choices_ section for more details. choices ^^^^^^^ -Some command-line args should be selected from a restricted set of values. +Some command-line arguments should be selected from a restricted set of values. These can be handled by passing a container object as the ``choices`` keyword argument to :meth:`~ArgumentParser.add_argument`. When the command line is parsed, arg values will be checked, and an error message will be displayed if @@ -1312,7 +1312,7 @@ An error is produced for arguments that could produce more than one options. Beyond ``sys.argv`` ^^^^^^^^^^^^^^^^^^^ -Sometimes it may be useful to have an ArgumentParser parse args other than those +Sometimes it may be useful to have an ArgumentParser parse arguments other than those of :data:`sys.argv`. This can be accomplished by passing a list of strings to :meth:`~ArgumentParser.parse_args`. This is useful for testing at the interactive prompt:: @@ -1540,7 +1540,7 @@ FileType objects The :class:`FileType` factory creates objects that can be passed to the type argument of :meth:`ArgumentParser.add_argument`. Arguments that have - :class:`FileType` objects as their type will open command-line args as files + :class:`FileType` objects as their type will open command-line arguments as files with the requested modes and buffer sizes: >>> parser = argparse.ArgumentParser() @@ -1654,7 +1654,7 @@ Parser defaults .. method:: ArgumentParser.set_defaults(**kwargs) Most of the time, the attributes of the object returned by :meth:`parse_args` - will be fully determined by inspecting the command-line args and the argument + will be fully determined by inspecting the command-line arguments and the argument actions. :meth:`set_defaults` allows some additional attributes that are determined without any inspection of the command line to be added:: -- cgit v0.12 From cfcc9779fc7b756fa1c01b4816e16c7615a9ad3a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Araujo?= Date: Wed, 10 Aug 2011 20:54:33 +0200 Subject: Remove unused names in except clauses --- Lib/shutil.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Lib/shutil.py b/Lib/shutil.py index 329add0..8718884 100644 --- a/Lib/shutil.py +++ b/Lib/shutil.py @@ -267,7 +267,7 @@ def rmtree(path, ignore_errors=False, onerror=None): names = [] try: names = os.listdir(path) - except os.error as err: + except os.error: onerror(os.listdir, path, sys.exc_info()) for name in names: fullname = os.path.join(path, name) @@ -280,7 +280,7 @@ def rmtree(path, ignore_errors=False, onerror=None): else: try: os.remove(fullname) - except os.error as err: + except os.error: onerror(os.remove, fullname, sys.exc_info()) try: os.rmdir(path) @@ -323,7 +323,7 @@ def move(src, dst): raise Error("Destination path '%s' already exists" % real_dst) try: os.rename(src, real_dst) - except OSError as exc: + except OSError: if os.path.isdir(src): if _destinsrc(src, dst): raise Error("Cannot move a directory '%s' into itself '%s'." % (src, dst)) -- cgit v0.12 From 54dbfbd675076da8cc5518fdfe0d86a960f8d75a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Araujo?= Date: Wed, 10 Aug 2011 21:43:13 +0200 Subject: Fix directive markup --- Doc/library/email.policy.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Doc/library/email.policy.rst b/Doc/library/email.policy.rst index 157f692..a77e510 100644 --- a/Doc/library/email.policy.rst +++ b/Doc/library/email.policy.rst @@ -4,7 +4,7 @@ .. module:: email.policy :synopsis: Controlling the parsing and generating of messages -.. versionadded: 3.3 +.. versionadded:: 3.3 The :mod:`email` package's prime focus is the handling of email messages as -- cgit v0.12 From 4460abea64b0f2b59d311871eca24f8a09b3cee5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Araujo?= Date: Fri, 12 Aug 2011 00:15:41 +0200 Subject: Use our existing drop-in, no-op decorator instead of redefining it. Patch by Francisco Martin Brugue. --- Lib/packaging/tests/test_pypi_xmlrpc.py | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/Lib/packaging/tests/test_pypi_xmlrpc.py b/Lib/packaging/tests/test_pypi_xmlrpc.py index 682bd7b..b7b382d 100644 --- a/Lib/packaging/tests/test_pypi_xmlrpc.py +++ b/Lib/packaging/tests/test_pypi_xmlrpc.py @@ -3,18 +3,14 @@ from packaging.pypi.xmlrpc import Client, InvalidSearchField, ProjectNotFound from packaging.tests import unittest +from packaging.tests.support import fake_dec try: import threading from packaging.tests.pypi_server import use_xmlrpc_server except ImportError: threading = None - def use_xmlrpc_server(): - def _use(func): - def __use(*args, **kw): - return func(*args, **kw) - return __use - return _use + use_xmlrpc_server = fake_dec @unittest.skipIf(threading is None, "Needs threading") -- cgit v0.12