mirror of
				https://github.com/python/cpython.git
				synced 2025-11-04 03:44:55 +00:00 
			
		
		
		
	Branch merge
This commit is contained in:
		
						commit
						cae1be85f5
					
				
					 10 changed files with 58 additions and 38 deletions
				
			
		| 
						 | 
					@ -511,13 +511,12 @@ interpreter can only be used after the interpreter has been initialized.
 | 
				
			||||||
   module: builtins
 | 
					   module: builtins
 | 
				
			||||||
   module: __main__
 | 
					   module: __main__
 | 
				
			||||||
   module: sys
 | 
					   module: sys
 | 
				
			||||||
   module: exceptions
 | 
					 | 
				
			||||||
   triple: module; search; path
 | 
					   triple: module; search; path
 | 
				
			||||||
   single: path (in module sys)
 | 
					   single: path (in module sys)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
The basic initialization function is :c:func:`Py_Initialize`. This initializes
 | 
					The basic initialization function is :c:func:`Py_Initialize`. This initializes
 | 
				
			||||||
the table of loaded modules, and creates the fundamental modules
 | 
					the table of loaded modules, and creates the fundamental modules
 | 
				
			||||||
:mod:`builtins`, :mod:`__main__`, :mod:`sys`, and :mod:`exceptions`.  It also
 | 
					:mod:`builtins`, :mod:`__main__`, and :mod:`sys`.  It also
 | 
				
			||||||
initializes the module search path (``sys.path``).
 | 
					initializes the module search path (``sys.path``).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.. index:: single: PySys_SetArgvEx()
 | 
					.. index:: single: PySys_SetArgvEx()
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -152,7 +152,7 @@ The directives are:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
   Describes global data in a module, including both variables and values used
 | 
					   Describes global data in a module, including both variables and values used
 | 
				
			||||||
   as "defined constants."  Class and object attributes are not documented
 | 
					   as "defined constants."  Class and object attributes are not documented
 | 
				
			||||||
   using this environment.
 | 
					   using this directive.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.. describe:: exception
 | 
					.. describe:: exception
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -165,7 +165,7 @@ The directives are:
 | 
				
			||||||
   parameters, enclosing optional parameters in brackets.  Default values can be
 | 
					   parameters, enclosing optional parameters in brackets.  Default values can be
 | 
				
			||||||
   given if it enhances clarity.  For example::
 | 
					   given if it enhances clarity.  For example::
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      .. function:: Timer.repeat([repeat=3[, number=1000000]])
 | 
					      .. function:: repeat([repeat=3[, number=1000000]])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
   Object methods are not documented using this directive. Bound object methods
 | 
					   Object methods are not documented using this directive. Bound object methods
 | 
				
			||||||
   placed in the module namespace as part of the public interface of the module
 | 
					   placed in the module namespace as part of the public interface of the module
 | 
				
			||||||
| 
						 | 
					@ -217,13 +217,30 @@ The directives are:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
   Describes an object data attribute.  The description should include
 | 
					   Describes an object data attribute.  The description should include
 | 
				
			||||||
   information about the type of the data to be expected and whether it may be
 | 
					   information about the type of the data to be expected and whether it may be
 | 
				
			||||||
   changed directly.
 | 
					   changed directly.  This directive should be nested in a class directive,
 | 
				
			||||||
 | 
					   like in this example::
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      .. class:: Spam
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            Description of the class.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            .. data:: ham
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					               Description of the attribute.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   If is also possible to document an attribute outside of a class directive,
 | 
				
			||||||
 | 
					   for example if the documentation for different attributes and methods is
 | 
				
			||||||
 | 
					   split in multiple sections.  The class name should then be included
 | 
				
			||||||
 | 
					   explicitly::
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      .. data:: Spam.eggs
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.. describe:: method
 | 
					.. describe:: method
 | 
				
			||||||
 | 
					
 | 
				
			||||||
   Describes an object method.  The parameters should not include the ``self``
 | 
					   Describes an object method.  The parameters should not include the ``self``
 | 
				
			||||||
   parameter.  The description should include similar information to that
 | 
					   parameter.  The description should include similar information to that
 | 
				
			||||||
   described for ``function``.
 | 
					   described for ``function``.  This method should be nested in a class
 | 
				
			||||||
 | 
					   method, like in the example above.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.. describe:: decoratormethod
 | 
					.. describe:: decoratormethod
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -30,9 +30,9 @@ the Oracle Berkeley DB.
 | 
				
			||||||
   name, such as ``'dbm.ndbm'`` or ``'dbm.gnu'``.
 | 
					   name, such as ``'dbm.ndbm'`` or ``'dbm.gnu'``.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.. function:: open(filename, flag='r', mode=0o666)
 | 
					.. function:: open(file, flag='r', mode=0o666)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
   Open the database file *filename* and return a corresponding object.
 | 
					   Open the database file *file* and return a corresponding object.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
   If the database file already exists, the :func:`whichdb` function is used to
 | 
					   If the database file already exists, the :func:`whichdb` function is used to
 | 
				
			||||||
   determine its type and the appropriate module is used; if it does not exist,
 | 
					   determine its type and the appropriate module is used; if it does not exist,
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -40,8 +40,8 @@ def literal_eval(node_or_string):
 | 
				
			||||||
    """
 | 
					    """
 | 
				
			||||||
    Safely evaluate an expression node or a string containing a Python
 | 
					    Safely evaluate an expression node or a string containing a Python
 | 
				
			||||||
    expression.  The string or node provided may only consist of the following
 | 
					    expression.  The string or node provided may only consist of the following
 | 
				
			||||||
    Python literal structures: strings, numbers, tuples, lists, dicts, booleans,
 | 
					    Python literal structures: strings, bytes, numbers, tuples, lists, dicts,
 | 
				
			||||||
    and None.
 | 
					    sets, booleans, and None.
 | 
				
			||||||
    """
 | 
					    """
 | 
				
			||||||
    _safe_names = {'None': None, 'True': True, 'False': False}
 | 
					    _safe_names = {'None': None, 'True': True, 'False': False}
 | 
				
			||||||
    if isinstance(node_or_string, str):
 | 
					    if isinstance(node_or_string, str):
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -23,16 +23,8 @@ It has the following interface (key and data are strings):
 | 
				
			||||||
        list = d.keys() # return a list of all existing keys (slow!)
 | 
					        list = d.keys() # return a list of all existing keys (slow!)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Future versions may change the order in which implementations are
 | 
					Future versions may change the order in which implementations are
 | 
				
			||||||
tested for existence, add interfaces to other dbm-like
 | 
					tested for existence, and add interfaces to other dbm-like
 | 
				
			||||||
implementations.
 | 
					implementations.
 | 
				
			||||||
 | 
					 | 
				
			||||||
The open function has an optional second argument.  This can be 'r',
 | 
					 | 
				
			||||||
for read-only access, 'w', for read-write access of an existing
 | 
					 | 
				
			||||||
database, 'c' for read-write access to a new or existing database, and
 | 
					 | 
				
			||||||
'n' for read-write access to a new database.  The default is 'r'.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Note: 'r' and 'w' fail if the database doesn't exist; 'c' creates it
 | 
					 | 
				
			||||||
only if it doesn't exist; and 'n' always creates a new database.
 | 
					 | 
				
			||||||
"""
 | 
					"""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
__all__ = ['open', 'whichdb', 'error']
 | 
					__all__ = ['open', 'whichdb', 'error']
 | 
				
			||||||
| 
						 | 
					@ -54,6 +46,16 @@ error = (error, IOError)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def open(file, flag='r', mode=0o666):
 | 
					def open(file, flag='r', mode=0o666):
 | 
				
			||||||
 | 
					    """Open or create database at path given by *file*.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Optional argument *flag* can be 'r' (default) for read-only access, 'w'
 | 
				
			||||||
 | 
					    for read-write access of an existing database, 'c' for read-write access
 | 
				
			||||||
 | 
					    to a new or existing database, and 'n' for read-write access to a new
 | 
				
			||||||
 | 
					    database.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Note: 'r' and 'w' fail if the database doesn't exist; 'c' creates it
 | 
				
			||||||
 | 
					    only if it doesn't exist; and 'n' always creates a new database.
 | 
				
			||||||
 | 
					    """
 | 
				
			||||||
    global _defaultmod
 | 
					    global _defaultmod
 | 
				
			||||||
    if _defaultmod is None:
 | 
					    if _defaultmod is None:
 | 
				
			||||||
        for name in _names:
 | 
					        for name in _names:
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -294,6 +294,7 @@ class sdist(Command):
 | 
				
			||||||
                            join_lines=1, lstrip_ws=1, rstrip_ws=1,
 | 
					                            join_lines=1, lstrip_ws=1, rstrip_ws=1,
 | 
				
			||||||
                            collapse_join=1)
 | 
					                            collapse_join=1)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        try:
 | 
				
			||||||
            while True:
 | 
					            while True:
 | 
				
			||||||
                line = template.readline()
 | 
					                line = template.readline()
 | 
				
			||||||
                if line is None:            # end of file
 | 
					                if line is None:            # end of file
 | 
				
			||||||
| 
						 | 
					@ -305,6 +306,8 @@ class sdist(Command):
 | 
				
			||||||
                    self.warn("%s, line %d: %s" % (template.filename,
 | 
					                    self.warn("%s, line %d: %s" % (template.filename,
 | 
				
			||||||
                                                   template.current_line,
 | 
					                                                   template.current_line,
 | 
				
			||||||
                                                   msg))
 | 
					                                                   msg))
 | 
				
			||||||
 | 
					        finally:
 | 
				
			||||||
 | 
					            template.close()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def prune_file_list(self):
 | 
					    def prune_file_list(self):
 | 
				
			||||||
        """Prune off branches that might slip into the file list as created
 | 
					        """Prune off branches that might slip into the file list as created
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -137,7 +137,7 @@ class RegisterTestCase(PyPIRCCommandTestCase):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        # let's see what the server received : we should
 | 
					        # let's see what the server received : we should
 | 
				
			||||||
        # have 2 similar requests
 | 
					        # have 2 similar requests
 | 
				
			||||||
        self.assertTrue(self.conn.reqs, 2)
 | 
					        self.assertEqual(len(self.conn.reqs), 2)
 | 
				
			||||||
        req1 = dict(self.conn.reqs[0].headers)
 | 
					        req1 = dict(self.conn.reqs[0].headers)
 | 
				
			||||||
        req2 = dict(self.conn.reqs[1].headers)
 | 
					        req2 = dict(self.conn.reqs[1].headers)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -169,7 +169,7 @@ class RegisterTestCase(PyPIRCCommandTestCase):
 | 
				
			||||||
            del register_module.input
 | 
					            del register_module.input
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        # we should have send a request
 | 
					        # we should have send a request
 | 
				
			||||||
        self.assertTrue(self.conn.reqs, 1)
 | 
					        self.assertEqual(len(self.conn.reqs), 1)
 | 
				
			||||||
        req = self.conn.reqs[0]
 | 
					        req = self.conn.reqs[0]
 | 
				
			||||||
        headers = dict(req.headers)
 | 
					        headers = dict(req.headers)
 | 
				
			||||||
        self.assertEqual(headers['Content-length'], '608')
 | 
					        self.assertEqual(headers['Content-length'], '608')
 | 
				
			||||||
| 
						 | 
					@ -187,7 +187,7 @@ class RegisterTestCase(PyPIRCCommandTestCase):
 | 
				
			||||||
            del register_module.input
 | 
					            del register_module.input
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        # we should have send a request
 | 
					        # we should have send a request
 | 
				
			||||||
        self.assertTrue(self.conn.reqs, 1)
 | 
					        self.assertEqual(len(self.conn.reqs), 1)
 | 
				
			||||||
        req = self.conn.reqs[0]
 | 
					        req = self.conn.reqs[0]
 | 
				
			||||||
        headers = dict(req.headers)
 | 
					        headers = dict(req.headers)
 | 
				
			||||||
        self.assertEqual(headers['Content-length'], '290')
 | 
					        self.assertEqual(headers['Content-length'], '290')
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -170,7 +170,7 @@ def heappushpop(heap, item):
 | 
				
			||||||
    return item
 | 
					    return item
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def heapify(x):
 | 
					def heapify(x):
 | 
				
			||||||
    """Transform list into a heap, in-place, in O(len(heap)) time."""
 | 
					    """Transform list into a heap, in-place, in O(len(x)) time."""
 | 
				
			||||||
    n = len(x)
 | 
					    n = len(x)
 | 
				
			||||||
    # Transform bottom-up.  The largest index there's any point to looking at
 | 
					    # Transform bottom-up.  The largest index there's any point to looking at
 | 
				
			||||||
    # is the largest with a child index in-range, so must have 2*i + 1 < n,
 | 
					    # is the largest with a child index in-range, so must have 2*i + 1 < n,
 | 
				
			||||||
| 
						 | 
					@ -360,7 +360,7 @@ def nsmallest(n, iterable, key=None):
 | 
				
			||||||
            return [min(chain(head, it))]
 | 
					            return [min(chain(head, it))]
 | 
				
			||||||
        return [min(chain(head, it), key=key)]
 | 
					        return [min(chain(head, it), key=key)]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # When n>=size, it's faster to use sort()
 | 
					    # When n>=size, it's faster to use sorted()
 | 
				
			||||||
    try:
 | 
					    try:
 | 
				
			||||||
        size = len(iterable)
 | 
					        size = len(iterable)
 | 
				
			||||||
    except (TypeError, AttributeError):
 | 
					    except (TypeError, AttributeError):
 | 
				
			||||||
| 
						 | 
					@ -398,7 +398,7 @@ def nlargest(n, iterable, key=None):
 | 
				
			||||||
            return [max(chain(head, it))]
 | 
					            return [max(chain(head, it))]
 | 
				
			||||||
        return [max(chain(head, it), key=key)]
 | 
					        return [max(chain(head, it), key=key)]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # When n>=size, it's faster to use sort()
 | 
					    # When n>=size, it's faster to use sorted()
 | 
				
			||||||
    try:
 | 
					    try:
 | 
				
			||||||
        size = len(iterable)
 | 
					        size = len(iterable)
 | 
				
			||||||
    except (TypeError, AttributeError):
 | 
					    except (TypeError, AttributeError):
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -694,7 +694,6 @@ def get_platform():
 | 
				
			||||||
                    m = re.search(
 | 
					                    m = re.search(
 | 
				
			||||||
                            r'<key>ProductUserVisibleVersion</key>\s*' +
 | 
					                            r'<key>ProductUserVisibleVersion</key>\s*' +
 | 
				
			||||||
                            r'<string>(.*?)</string>', f.read())
 | 
					                            r'<string>(.*?)</string>', f.read())
 | 
				
			||||||
                    f.close()
 | 
					 | 
				
			||||||
                    if m is not None:
 | 
					                    if m is not None:
 | 
				
			||||||
                        macrelease = '.'.join(m.group(1).split('.')[:2])
 | 
					                        macrelease = '.'.join(m.group(1).split('.')[:2])
 | 
				
			||||||
                    # else: fall back to the default behaviour
 | 
					                    # else: fall back to the default behaviour
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -688,7 +688,7 @@ def main(argv=None):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    for opt, val in opts:
 | 
					    for opt, val in opts:
 | 
				
			||||||
        if opt == "--help":
 | 
					        if opt == "--help":
 | 
				
			||||||
            usage(sys.stdout)
 | 
					            _usage(sys.stdout)
 | 
				
			||||||
            sys.exit(0)
 | 
					            sys.exit(0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if opt == "--version":
 | 
					        if opt == "--version":
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue