Merged revisions 77236,77383,77399,77857,78238,78861-78862,78958 via svnmerge from

svn+ssh://svn.python.org/python/branches/py3k

................
  r77236 | georg.brandl | 2010-01-02 15:51:12 +0100 (Sa, 02 Jan 2010) | 1 line

  #7592: remove duplicate description.
................
  r77383 | georg.brandl | 2010-01-09 10:48:46 +0100 (Sa, 09 Jan 2010) | 9 lines

  Merged revisions 77382 via svnmerge from
  svn+ssh://pythondev@svn.python.org/python/trunk

  ........
    r77382 | georg.brandl | 2010-01-09 10:47:11 +0100 (Sa, 09 Jan 2010) | 1 line

    #7422: make it clear that getargspec() only works on Python functions.
  ........
................
  r77399 | georg.brandl | 2010-01-09 23:39:42 +0100 (Sa, 09 Jan 2010) | 1 line

  Remove redundant brackets in signatures.
................
  r77857 | georg.brandl | 2010-01-30 18:54:04 +0100 (Sa, 30 Jan 2010) | 1 line

  #7814: fix wrong example function usage.
................
  r78238 | georg.brandl | 2010-02-19 10:10:15 +0100 (Fr, 19 Feb 2010) | 1 line

  #5341: fix parenthesis placement.
................
  r78861 | georg.brandl | 2010-03-12 11:04:37 +0100 (Fr, 12 Mär 2010) | 1 line

  Make tool compatible with 2.x and 3.x.
................
  r78862 | georg.brandl | 2010-03-12 11:06:40 +0100 (Fr, 12 Mär 2010) | 13 lines

  Merged revisions 78859-78860 via svnmerge from
  svn+ssh://pythondev@svn.python.org/python/trunk

  ........
    r78859 | georg.brandl | 2010-03-12 10:57:43 +0100 (Fr, 12 Mär 2010) | 1 line

    Get rid of backticks.
  ........
    r78860 | georg.brandl | 2010-03-12 11:02:03 +0100 (Fr, 12 Mär 2010) | 1 line

    Fix warnings from "make check".
  ........
................
  r78958 | georg.brandl | 2010-03-14 11:51:01 +0100 (So, 14 Mär 2010) | 37 lines

  Merged revisions 78101,78115,78117,78182,78188,78245,78386,78496 via svnmerge from
  svn+ssh://pythondev@svn.python.org/python/trunk

  ........
    r78101 | georg.brandl | 2010-02-08 01:04:54 +0100 (Mo, 08 Feb 2010) | 1 line

    Fix test_fnmatch.
  ........
    r78115 | georg.brandl | 2010-02-08 23:40:51 +0100 (Mo, 08 Feb 2010) | 1 line

    Fix missing string formatting placeholder.
  ........
    r78117 | georg.brandl | 2010-02-08 23:48:37 +0100 (Mo, 08 Feb 2010) | 1 line

    Convert test failure from output-producing to self.fail().
  ........
    r78182 | georg.brandl | 2010-02-14 09:18:23 +0100 (So, 14 Feb 2010) | 1 line

    #7926: fix stray parens.
  ........
    r78188 | georg.brandl | 2010-02-14 14:38:12 +0100 (So, 14 Feb 2010) | 1 line

    #7926: fix-up wording.
  ........
    r78245 | georg.brandl | 2010-02-19 20:36:08 +0100 (Fr, 19 Feb 2010) | 1 line

    #7967: PyXML is no more.
  ........
    r78386 | georg.brandl | 2010-02-23 22:48:57 +0100 (Di, 23 Feb 2010) | 1 line

    #6544: fix refleak in kqueue, occurring in certain error conditions.
  ........
    r78496 | georg.brandl | 2010-02-27 15:58:08 +0100 (Sa, 27 Feb 2010) | 1 line

    Link to http://www.python.org/dev/workflow/ from bugs page.
  ........
................
This commit is contained in:
Georg Brandl 2010-10-06 07:55:35 +00:00
parent 8ffe0bc55f
commit d6abb72a79
15 changed files with 48 additions and 51 deletions

View file

@ -38,10 +38,9 @@ information is needed (in which case you are welcome to provide it if you can!).
To do this, search the bug database using the search box on the top of the page.
If the problem you're reporting is not already in the bug tracker, go back to
the Python Bug Tracker. If you don't already have a tracker account, select the
"Register" link in the sidebar and undergo the registration procedure.
Otherwise, if you're not logged in, enter your credentials and select "Login".
It is not possible to submit a bug report anonymously.
the Python Bug Tracker and log in. If you don't already have a tracker account,
select the "Register" link or, if you use OpenID, one of the OpenID provider
logos in the sidebar. It is not possible to submit a bug report anonymously.
Being now logged in, you can submit a bug. Select the "Create New" link in the
sidebar to open the bug reporting form.
@ -58,7 +57,8 @@ were using (including version information as appropriate).
Each bug report will be assigned to a developer who will determine what needs to
be done to correct the problem. You will receive an update each time action is
taken on the bug.
taken on the bug. See http://www.python.org/dev/workflow/ for a detailed
description of the issue workflow.
.. seealso::

View file

@ -257,9 +257,9 @@ Running the ``check`` command will display some warnings::
(maintainer and maintainer_email) must be supplied
If you use the reStructuredText syntax in the `long_description` field and
If you use the reStructuredText syntax in the ``long_description`` field and
`docutils <http://docutils.sourceforge.net/>`_ is installed you can check if
the syntax is fine with the ``check`` command, using the `restructuredtext`
the syntax is fine with the ``check`` command, using the ``restructuredtext``
option.
For example, if the :file:`setup.py` script is changed like this::
@ -278,7 +278,7 @@ For example, if the :file:`setup.py` script is changed like this::
url='http://example.com', long_description=desc)
Where the long description is broken, ``check`` will be able to detect it
by using the `docutils` parser::
by using the :mod:`docutils` parser::
$ pythontrunk setup.py check --restructuredtext
running check

View file

@ -60,13 +60,13 @@ in the package::
setup(name='Distutils',
long_description=open('README.txt'))
In that case, `README.txt` is a regular reStructuredText text file located
in the root of the package besides `setup.py`.
In that case, :file:`README.txt` is a regular reStructuredText text file located
in the root of the package besides :file:`setup.py`.
To prevent registering broken reStructuredText content, you can use the
:program:`rst2html` program that is provided by the `docutils` package
:program:`rst2html` program that is provided by the :mod:`docutils` package
and check the ``long_description`` from the command line::
$ python setup.py --long-description | rst2html.py > output.html
`docutils` will display a warning if there's something wrong with your syntax.
:mod:`docutils` will display a warning if there's something wrong with your syntax.

View file

@ -331,7 +331,7 @@ Glossary
iterator
An object representing a stream of data. Repeated calls to the iterator's
:meth:`__next__` (or passing it to the builtin function) :func:`next`
:meth:`__next__` (or passing it to the built-in function :func:`next`)
method return successive items in the stream. When no more data are
available a :exc:`StopIteration` exception is raised instead. At this
point, the iterator object is exhausted and any further calls to its

View file

@ -486,7 +486,7 @@ statement.
.. attribute:: HTTPResponse.debuglevel
A debugging hook. If `debuglevel` is greater than zero, messages
A debugging hook. If :attr:`debuglevel` is greater than zero, messages
will be printed to stdout as the response is read and parsed.

View file

@ -387,7 +387,7 @@ Classes and functions
.. function:: getargspec(func)
Get the names and default values of a function's arguments. A
Get the names and default values of a Python function's arguments. A
:term:`named tuple` ``ArgSpec(args, varargs, keywords,
defaults)`` is returned. *args* is a list of
the argument names. *varargs* and *varkw* are the names of the ``*`` and
@ -402,8 +402,8 @@ Classes and functions
.. function:: getfullargspec(func)
Get the names and default values of a function's arguments. A :term:`named
tuple` is returned:
Get the names and default values of a Python function's arguments. A
:term:`named tuple` is returned:
``FullArgSpec(args, varargs, varkw, defaults, kwonlyargs, kwonlydefaults,
annotations)``

View file

@ -117,5 +117,5 @@ empty, and the path manipulations are skipped; however the import of
Adds a directory to sys.path and processes its pth files.
XXX Update documentation
XXX document python -m site --user-base --user-site
.. XXX Update documentation
.. XXX document python -m site --user-base --user-site

View file

@ -278,14 +278,6 @@ SSLSocket Objects
else:
raise
.. method:: SSLSocket.unwrap()
Performs the SSL shutdown handshake, which removes the TLS layer from the
underlying socket, and returns the underlying socket object. This can be
used to go from encrypted operation over a connection to unencrypted. The
returned socket should always be used for further communication with the
other side of the connection, rather than the original socket
.. method:: SSLSocket.getpeercert(binary_form=False)
If there is no certificate for the peer on the other end of the connection,

View file

@ -359,7 +359,7 @@ always available.
specific.
If given, *default* will be returned if the object does not provide means to
retrieve the size. Otherwise a `TypeError` will be raised.
retrieve the size. Otherwise a :exc:`TypeError` will be raised.
:func:`getsizeof` calls the object's ``__sizeof__`` method and adds an
additional garbage collector overhead if the object is managed by the garbage

View file

@ -136,10 +136,10 @@ Server code::
server.register_function(adder_function, 'add')
# Register an instance; all the methods of the instance are
# published as XML-RPC methods (in this case, just 'div').
# published as XML-RPC methods (in this case, just 'mul').
class MyFuncs:
def div(self, x, y):
return x // y
def mul(self, x, y):
return x * y
server.register_instance(MyFuncs())
@ -209,7 +209,8 @@ requests sent to Python CGI scripts.
Example::
class MyFuncs:
def div(self, x, y) : return x // y
def mul(self, x, y):
return x * y
handler = CGIXMLRPCRequestHandler()

View file

@ -169,7 +169,6 @@ def main(argv):
return 2
count = defaultdict(int)
out = sys.stdout
for root, dirs, files in os.walk(path):
# ignore subdirs controlled by svn
@ -212,8 +211,7 @@ def main(argv):
csev = checker.severity
if csev >= severity:
for lno, msg in checker(fn, lines):
print('[%d] %s:%d: %s' % (csev, fn, lno, msg),
file=out)
print('[%d] %s:%d: %s' % (csev, fn, lno, msg))
count[csev] += 1
if verbose:
print()

View file

@ -30,7 +30,7 @@ understand the complete implementation and design rationale for a change, refer
to the PEP for a particular new feature.
.. seealso (now defunct)
.. see also, now defunct
http://www.unixreview.com/documents/s=1356/urm0109h/0109h.htm
"What's So Special About Python 2.2?" is also about the new 2.2 features, and

View file

@ -350,9 +350,10 @@ A high-level explanation of the context management protocol is:
* The code in *BLOCK* is executed.
* If *BLOCK* raises an exception, the :meth:`__exit__(type, value, traceback)`
is called with the exception details, the same values returned by
:func:`sys.exc_info`. The method's return value controls whether the exception
* If *BLOCK* raises an exception, the context manager's :meth:`__exit__` method
is called with three arguments, the exception details (``type, value, traceback``,
the same values returned by :func:`sys.exc_info`, which can also be ``None``
if no exception occurred). The method's return value controls whether an exception
is re-raised: any false value re-raises the exception, and ``True`` will result
in suppressing it. You'll only rarely want to suppress the exception, because
if you do the author of the code containing the ':keyword:`with`' statement will
@ -463,7 +464,7 @@ could be written as::
with db_transaction(db) as cursor:
...
The :mod:`contextlib` module also has a :func:`nested(mgr1, mgr2, ...)` function
The :mod:`contextlib` module also has a ``nested(mgr1, mgr2, ...)`` function
that combines a number of context managers so you don't need to write nested
':keyword:`with`' statements. In this example, the single ':keyword:`with`'
statement both starts a database transaction and acquires a thread lock::
@ -472,8 +473,9 @@ statement both starts a database transaction and acquires a thread lock::
with nested (db_transaction(db), lock) as (cursor, locked):
...
Finally, the :func:`closing(object)` function returns *object* so that it can be
bound to a variable, and calls ``object.close`` at the end of the block. ::
Finally, the :func:`closing` function returns its argument so that it can be
bound to a variable, and calls the argument's ``.close()`` method at the end
of the block. ::
import urllib, sys
from contextlib import closing

View file

@ -11,13 +11,13 @@ class FnmatchTestCase(unittest.TestCase):
def tearDown(self):
_purge()
def check_match(self, filename, pattern, should_match=1):
def check_match(self, filename, pattern, should_match=1, fn=fnmatch):
if should_match:
self.assertTrue(fnmatch(filename, pattern),
self.assertTrue(fn(filename, pattern),
"expected %r to match pattern %r"
% (filename, pattern))
else:
self.assertTrue(not fnmatch(filename, pattern),
self.assertTrue(not fn(filename, pattern),
"expected %r not to match pattern %r"
% (filename, pattern))
@ -54,6 +54,11 @@ def test_mix_bytes_str(self):
self.assertRaises(TypeError, fnmatchcase, 'test', b'*')
self.assertRaises(TypeError, fnmatchcase, b'test', '*')
def test_fnmatchcase(self):
check = self.check_match
check('AbC', 'abc', 0, fnmatchcase)
check('abc', 'AbC', 0, fnmatchcase)
def test_bytes(self):
self.check_match(b'test', b'te*')
self.check_match(b'test\xff', b'te*\xff')

View file

@ -117,16 +117,15 @@ def strftest1(self, now):
try:
result = time.strftime(e[0], now)
except ValueError as error:
print("Standard '%s' format gaver error:" % (e[0], error))
continue
self.fail("strftime '%s' format gave error: %s" % (e[0], error))
if re.match(escapestr(e[1], self.ampm), result):
continue
if not result or result[0] == '%':
print("Does not support standard '%s' format (%s)" % \
(e[0], e[2]))
self.fail("strftime does not support standard '%s' format (%s)"
% (e[0], e[2]))
else:
print("Conflict for %s (%s):" % (e[0], e[2]))
print(" Expected %s, but got %s" % (e[1], result))
self.fail("Conflict for %s (%s): expected %s, but got %s"
% (e[0], e[2], e[1], result))
def strftest2(self, now):
nowsecs = str(int(now))[:-1]