Skip to content

[3.9] [codemod] Fix non-matching bracket pairs (GH-28473) #28512

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Sep 22, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Doc/library/cgi.rst
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@ To get at submitted form data, use the :class:`FieldStorage` class. If the form
contains non-ASCII characters, use the *encoding* keyword parameter set to the
value of the encoding defined for the document. It is usually contained in the
META tag in the HEAD section of the HTML document or by the
:mailheader:`Content-Type` header). This reads the form contents from the
:mailheader:`Content-Type` header. This reads the form contents from the
standard input or the environment (depending on the value of various
environment variables set according to the CGI standard). Since it may consume
standard input, it should be instantiated only once.
Expand Down
2 changes: 1 addition & 1 deletion Doc/library/logging.config.rst
Original file line number Diff line number Diff line change
Expand Up @@ -163,7 +163,7 @@ in :mod:`logging` itself) and defining handlers which are declared either in
:func:`listen` socket and sending a configuration which runs whatever
code the attacker wants to have executed in the victim's process. This is
especially easy to do if the default port is used, but not hard even if a
different port is used). To avoid the risk of this happening, use the
different port is used. To avoid the risk of this happening, use the
``verify`` argument to :func:`listen` to prevent unrecognised
configurations from being applied.

Expand Down
2 changes: 1 addition & 1 deletion Doc/library/urllib.request.rst
Original file line number Diff line number Diff line change
Expand Up @@ -650,7 +650,7 @@ OpenerDirector Objects
optional *timeout* parameter specifies a timeout in seconds for blocking
operations like the connection attempt (if not specified, the global default
timeout setting will be used). The timeout feature actually works only for
HTTP, HTTPS and FTP connections).
HTTP, HTTPS and FTP connections.


.. method:: OpenerDirector.error(proto, *args)
Expand Down
1 change: 0 additions & 1 deletion Doc/reference/compound_stmts.rst
Original file line number Diff line number Diff line change
Expand Up @@ -479,7 +479,6 @@ is semantically equivalent to::
The specification, background, and examples for the Python :keyword:`with`
statement.


.. index::
single: parameter; function definition

Expand Down
2 changes: 1 addition & 1 deletion Include/cpython/unicodeobject.h
Original file line number Diff line number Diff line change
Expand Up @@ -416,7 +416,7 @@ enum PyUnicode_Kind {


/* Fast check to determine whether an object is ready. Equivalent to
PyUnicode_IS_COMPACT(op) || ((PyUnicodeObject*)(op))->data.any) */
PyUnicode_IS_COMPACT(op) || ((PyUnicodeObject*)(op))->data.any */

#define PyUnicode_IS_READY(op) (((PyASCIIObject*)op)->state.ready)

Expand Down
2 changes: 1 addition & 1 deletion Lib/_osx_support.py
Original file line number Diff line number Diff line change
Expand Up @@ -482,7 +482,7 @@ def customize_compiler(_config_vars):

This customization is performed when the first
extension module build is requested
in distutils.sysconfig.customize_compiler).
in distutils.sysconfig.customize_compiler.
"""

# Find a compiler to use for extension module builds
Expand Down
2 changes: 1 addition & 1 deletion Lib/distutils/command/check.py
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ def check_metadata(self):
name, version, URL

Recommended fields:
(author and author_email) or (maintainer and maintainer_email))
(author and author_email) or (maintainer and maintainer_email)

Warns if any are missing.
"""
Expand Down
2 changes: 1 addition & 1 deletion Lib/distutils/msvc9compiler.py
Original file line number Diff line number Diff line change
Expand Up @@ -673,7 +673,7 @@ def manifest_get_embed_info(self, target_desc, ld_args):
# If a manifest should be embedded, return a tuple of
# (manifest_filename, resource_id). Returns None if no manifest
# should be embedded. See http://bugs.python.org/issue7833 for why
# we want to avoid any manifest for extension modules if we can)
# we want to avoid any manifest for extension modules if we can.
for arg in ld_args:
if arg.startswith("/MANIFESTFILE:"):
temp_manifest = arg.split(":", 1)[1]
Expand Down
2 changes: 1 addition & 1 deletion Lib/graphlib.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ def __init__(self, node):
self.npredecessors = 0

# List of successor nodes. The list can contain duplicated elements as
# long as they're all reflected in the successor's npredecessors attribute).
# long as they're all reflected in the successor's npredecessors attribute.
self.successors = []


Expand Down
2 changes: 1 addition & 1 deletion Lib/idlelib/idle_test/test_config_key.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

Coverage is effectively 100%. Tkinter dialog is mocked, Mac-only line
may be skipped, and dummy function in bind test should not be called.
Not tested: exit with 'self.advanced or self.keys_ok(keys)) ...' False.
Not tested: exit with 'self.advanced or self.keys_ok(keys) ...' False.
"""

from idlelib import config_key
Expand Down
2 changes: 1 addition & 1 deletion Lib/idlelib/idle_test/test_query.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
"""Test query, coverage 93%).
"""Test query, coverage 93%.

Non-gui tests for Query, SectionName, ModuleName, and HelpSource use
dummy versions that extract the non-gui methods and add other needed
Expand Down
2 changes: 1 addition & 1 deletion Lib/msilib/schema.py
Original file line number Diff line number Diff line change
Expand Up @@ -664,7 +664,7 @@
('Class','Component_','N',None, None, 'Component',1,'Identifier',None, 'Required foreign key into the Component Table, specifying the component for which to return a path when called through LocateComponent.',),
('Class','Context','N',None, None, None, None, 'Identifier',None, 'The numeric server context for this server. CLSCTX_xxxx',),
('Class','DefInprocHandler','Y',None, None, None, None, 'Filename','1;2;3','Optional default inproc handler. Only optionally provided if Context=CLSCTX_LOCAL_SERVER. Typically "ole32.dll" or "mapi32.dll"',),
('Class','FileTypeMask','Y',None, None, None, None, 'Text',None, 'Optional string containing information for the HKCRthis CLSID) key. If multiple patterns exist, they must be delimited by a semicolon, and numeric subkeys will be generated: 0,1,2...',),
('Class','FileTypeMask','Y',None, None, None, None, 'Text',None, 'Optional string containing information for the HKCRthis CLSID key. If multiple patterns exist, they must be delimited by a semicolon, and numeric subkeys will be generated: 0,1,2...',),
('Class','Icon_','Y',None, None, 'Icon',1,'Identifier',None, 'Optional foreign key into the Icon Table, specifying the icon file associated with this CLSID. Will be written under the DefaultIcon key.',),
('Class','IconIndex','Y',-32767,32767,None, None, None, None, 'Optional icon index.',),
('Class','ProgId_Default','Y',None, None, 'ProgId',1,'Text',None, 'Optional ProgId associated with this CLSID.',),
Expand Down
2 changes: 1 addition & 1 deletion Lib/pkgutil.py
Original file line number Diff line number Diff line change
Expand Up @@ -673,7 +673,7 @@ def resolve_name(name):
ValueError - if `name` isn't in a recognised format
ImportError - if an import failed when it shouldn't have
AttributeError - if a failure occurred when traversing the object hierarchy
within the imported package to get to the desired object)
within the imported package to get to the desired object.
"""
m = _NAME_PATTERN.match(name)
if not m:
Expand Down
30 changes: 15 additions & 15 deletions Lib/pydoc_data/topics.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
# Autogenerated by Sphinx on Mon Aug 30 20:40:44 2021
# Autogenerated by Sphinx on Wed Sep 22 01:22:10 2021
topics = {'assert': 'The "assert" statement\n'
'**********************\n'
'\n'
Expand Down Expand Up @@ -3262,13 +3262,13 @@
'\n'
' If "__new__()" is invoked during object construction and '
'it returns\n'
' an instance or subclass of *cls*, then the new '
'instance’s\n'
' "__init__()" method will be invoked like '
'"__init__(self[, ...])",\n'
' where *self* is the new instance and the remaining '
'arguments are\n'
' the same as were passed to the object constructor.\n'
' an instance of *cls*, then the new instance’s '
'"__init__()" method\n'
' will be invoked like "__init__(self[, ...])", where '
'*self* is the\n'
' new instance and the remaining arguments are the same as '
'were\n'
' passed to the object constructor.\n'
'\n'
' If "__new__()" does not return an instance of *cls*, '
'then the new\n'
Expand Down Expand Up @@ -8120,13 +8120,13 @@
'\n'
' If "__new__()" is invoked during object construction and '
'it returns\n'
' an instance or subclass of *cls*, then the new '
'instance’s\n'
' "__init__()" method will be invoked like "__init__(self[, '
'...])",\n'
' where *self* is the new instance and the remaining '
'arguments are\n'
' the same as were passed to the object constructor.\n'
' an instance of *cls*, then the new instance’s '
'"__init__()" method\n'
' will be invoked like "__init__(self[, ...])", where '
'*self* is the\n'
' new instance and the remaining arguments are the same as '
'were\n'
' passed to the object constructor.\n'
'\n'
' If "__new__()" does not return an instance of *cls*, then '
'the new\n'
Expand Down
4 changes: 2 additions & 2 deletions Lib/test/support/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -682,8 +682,8 @@ def dec(*args, **kwargs):
# A constant likely larger than the underlying OS socket buffer size, to make
# writes blocking.
# The socket buffer sizes can usually be tuned system-wide (e.g. through sysctl
# on Linux), or on a per-socket basis (SO_SNDBUF/SO_RCVBUF). See issue #18643
# for a discussion of this number).
# on Linux), or on a per-socket basis (SO_SNDBUF/SO_RCVBUF). See issue #18643
# for a discussion of this number.
SOCK_MAX_SIZE = 16 * 1024 * 1024 + 1

# decorator for skipping tests on non-IEEE 754 platforms
Expand Down
2 changes: 1 addition & 1 deletion Lib/test/test_format.py
Original file line number Diff line number Diff line change
Expand Up @@ -249,7 +249,7 @@ def test_common_format(self):
# base marker shouldn't change the size
testcommon("%0#35.33o", big, "0o012345670123456701234567012345670")

# Some small ints, in both Python int and flavors).
# Some small ints, in both Python int and flavors.
testcommon("%d", 42, "42")
testcommon("%d", -42, "-42")
testcommon("%d", 42.0, "42")
Expand Down
2 changes: 1 addition & 1 deletion Lib/test/test_importlib/source/test_source_encoding.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ class EncodingTest:

PEP 263 specifies how that can change on a per-file basis. Either the first
or second line can contain the encoding line [encoding first line]
encoding second line]. If the file has the BOM marker it is considered UTF-8
[encoding second line]. If the file has the BOM marker it is considered UTF-8
implicitly [BOM]. If any encoding is specified it must be UTF-8, else it is
an error [BOM and utf-8][BOM conflict].

Expand Down
2 changes: 1 addition & 1 deletion Lib/test/test_winreg.py
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@
("Raw Data", b"binary\x00data", REG_BINARY),
("Big String", "x"*(2**14-1), REG_SZ),
("Big Binary", b"x"*(2**14), REG_BINARY),
# Two and three kanjis, meaning: "Japan" and "Japanese")
# Two and three kanjis, meaning: "Japan" and "Japanese".
("Japanese 日本", "日本語", REG_SZ),
]

Expand Down
2 changes: 1 addition & 1 deletion Misc/NEWS.d/3.8.0b1.rst
Original file line number Diff line number Diff line change
Expand Up @@ -568,7 +568,7 @@ Make :func:`asyncio.create_subprocess_exec` accept path-like arguments.
.. section: Library

Change default *max_workers* of ``ThreadPoolExecutor`` from ``cpu_count() *
5`` to ``min(32, cpu_count() + 4))``. Previous value was unreasonably large
5`` to ``min(32, cpu_count() + 4)``. Previous value was unreasonably large
on many cores machines.

..
Expand Down
2 changes: 1 addition & 1 deletion Modules/_datetimemodule.c
Original file line number Diff line number Diff line change
Expand Up @@ -1022,7 +1022,7 @@ new_time_ex(int hour, int minute, int second, int usecond,
* true. Passing false is a speed optimization, if you know for sure
* that seconds and microseconds are already in their proper ranges. In any
* case, raises OverflowError and returns NULL if the normalized days is out
* of range).
* of range.
*/
static PyObject *
new_delta_ex(int days, int seconds, int microseconds, int normalize,
Expand Down
2 changes: 1 addition & 1 deletion Modules/_math.c
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ _Py_acosh(double x)
* asinh(x) = sign(x) * log [ |x| + sqrt(x*x+1) ]
* we have
* asinh(x) := x if 1+x*x=1,
* := sign(x)*(log(x)+ln2)) for large |x|, else
* := sign(x)*(log(x)+ln2) for large |x|, else
* := sign(x)*log(2|x|+1/(|x|+sqrt(x*x+1))) if|x|>2, else
* := sign(x)*log1p(|x| + x^2/(1 + sqrt(1+x^2)))
*/
Expand Down
4 changes: 2 additions & 2 deletions Modules/arraymodule.c
Original file line number Diff line number Diff line change
Expand Up @@ -1636,12 +1636,12 @@ array.array.frombytes
buffer: Py_buffer
/

Appends items from the string, interpreting it as an array of machine values, as if it had been read from a file using the fromfile() method).
Appends items from the string, interpreting it as an array of machine values, as if it had been read from a file using the fromfile() method.
[clinic start generated code]*/

static PyObject *
array_array_frombytes_impl(arrayobject *self, Py_buffer *buffer)
/*[clinic end generated code: output=d9842c8f7510a516 input=2bbf2b53ebfcc988]*/
/*[clinic end generated code: output=d9842c8f7510a516 input=378db226dfac949e]*/
{
return frombytes(self, buffer);
}
Expand Down
4 changes: 2 additions & 2 deletions Modules/clinic/arraymodule.c.h

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion Modules/zlibmodule.c
Original file line number Diff line number Diff line change
Expand Up @@ -1361,7 +1361,7 @@ PyDoc_STRVAR(zlib_module_documentation,
"compressobj([level[, ...]]) -- Return a compressor object.\n"
"crc32(string[, start]) -- Compute a CRC-32 checksum.\n"
"decompress(string,[wbits],[bufsize]) -- Decompresses a compressed string.\n"
"decompressobj([wbits[, zdict]]]) -- Return a decompressor object.\n"
"decompressobj([wbits[, zdict]]) -- Return a decompressor object.\n"
"\n"
"'wbits' is window buffer size and container format.\n"
"Compressor objects support compress() and flush() methods; decompressor\n"
Expand Down
2 changes: 1 addition & 1 deletion Objects/unicodeobject.c
Original file line number Diff line number Diff line change
Expand Up @@ -10867,7 +10867,7 @@ replace(PyObject *self, PyObject *str1,
release1 = 1;
}
/* new_size = PyUnicode_GET_LENGTH(self) + n * (PyUnicode_GET_LENGTH(str2) -
PyUnicode_GET_LENGTH(str1))); */
PyUnicode_GET_LENGTH(str1)); */
if (len1 < len2 && len2 - len1 > (PY_SSIZE_T_MAX - slen) / n) {
PyErr_SetString(PyExc_OverflowError,
"replace string is too long");
Expand Down
2 changes: 1 addition & 1 deletion PC/getpathp.c
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@
- If we DO have a Python Home: The relevant sub-directories (Lib,
DLLs, etc) are based on the Python Home
- If we DO NOT have a Python Home, the core Python Path is
loaded from the registry. This is the main PythonPath key,
loaded from the registry. (This is the main PythonPath key,
and both HKLM and HKCU are combined to form the path)

* Iff - we can not locate the Python Home, have not had a PYTHONPATH
Expand Down
2 changes: 1 addition & 1 deletion Tools/stringbench/stringbench.py
Original file line number Diff line number Diff line change
Expand Up @@ -730,7 +730,7 @@ def join_alphabet_list_five(STR):
for x in _RANGE_1000:
sep_join(s2)

@bench('"A".join(["Bob"]*100))',
@bench('"A".join(["Bob"]*100)',
"join list of 100 words, with 1 character sep", 1000)
def join_100_words_single(STR):
sep = STR("A")
Expand Down