cpython/Lib
Miss Islington (bot) 18450be94d
bpo-34454: Clean up datetime.fromisoformat surrogate handling (GH-8959)
* Use _PyUnicode_Copy in sanitize_isoformat_str

* Use repr in fromisoformat error message

This reverses commit 67b74a98b2 per Serhiy Storchaka's suggestion:

     I suggested to use %R in the error message because including the raw
     string can be confusing in the case of empty string, or string
     containing trailing whitespaces, invisible or unprintable characters.

We agree that it is better to change both the C and pure Python versions
to use repr.

* Retain non-sanitized dtstr for error printing

This does not create an extra string, it just holds on to a reference to
the original input string for purposes of creating the error message.

* PEP 7 fixes to from_isoformat

* Separate handling of Unicode and other errors

In the initial implementation, errors other than encoding errors would
both raise an error indicating an invalid format, which would not be
true for errors like MemoryError.

* Drop needs_decref from _sanitize_isoformat_str

Instead _sanitize_isoformat_str returns a new reference, even to the
original string.
(cherry picked from commit 3df85404d4)

Co-authored-by: Paul Ganssle <pganssle@users.noreply.github.com>
2018-10-22 15:35:15 -07:00
..
asyncio bpo-34970: Protect tasks weak set manipulation in asyncio.all_tasks() (GH-9837) (GH-9849) 2018-10-20 00:37:51 -04:00
collections bpo-25988: Emit a warning when use or import ABCs from 'collections'. (GH-5734) 2018-02-18 17:40:59 +00:00
concurrent bpo-34819: Use a monotonic clock to compute timeouts in concurrent.futures (GH-9599) 2018-09-27 04:46:38 -07:00
ctypes Use assertEqual() instead of assertEquals(). (GH-9721) (GH-9725) 2018-10-05 21:46:24 +03:00
curses Issue #13051: Fixed recursion errors in large or resized curses.textpad.Textbox. 2016-12-28 10:16:06 +02:00
dbm bpo-30144: Import collections ABC from collections.abc rather than collections. (#1263) 2017-04-24 09:05:00 +03:00
distutils bpo-34421: Improve distutils logging for non-ASCII strings. (GH-9126) (GH-9506) 2018-09-23 10:31:53 +03:00
email bpo-33476: Fix _header_value_parser when address group is missing final ';' (GH-7484) 2018-07-28 08:41:26 -07:00
encodings bpo-32943: Fix confusing error message for rot13 codec (GH-5869) 2018-03-24 21:30:39 -07:00
ensurepip Improve ensurepip's --help (GH-4686) (GH-7238) 2018-05-30 10:34:32 +02:00
html bpo-30629: Remove second call of str.lower() in html.parser.parse_endtag. (#2099) 2017-06-16 21:15:25 -04:00
http bpo-33365: print the header values beside the keys (GH-6611) 2018-06-19 06:52:36 -07:00
idlelib bpo-33656: Move pyshell ctypes import inside try block. (GH-9858) 2018-10-13 17:19:22 -07:00
importlib bpo-30436: Add missing space in importlib.util.find_spec() error message (GH-7385) 2018-06-06 23:21:43 -07:00
json bpo-30877: Fix clearing a cache in the the JSON decoder. (GH-7048) 2018-05-22 06:03:10 -07:00
lib2to3 bpo-16965: 2to3 now rewrites execfile() to open with 'rb'. (GH-8569) 2018-10-13 02:48:18 -07:00
logging bpo-6721: Hold logging locks across fork() (GH-4071) (#9291) 2018-10-07 00:09:59 -07:00
msilib bpo-34251: Restore msilib.Win64 to preserve compatibility (GH-8510) 2018-07-28 17:14:44 -07:00
multiprocessing bpo-34172: multiprocessing.Pool leaks resources after being deleted (GH-8450) (GH-9676) 2018-10-02 23:17:04 +02:00
pydoc_data 3.7.1final 2018-10-20 02:04:19 -04:00
site-packages Issue #29283: Delete accidentally added Lib/site-packages/README 2017-01-30 13:55:49 +03:00
sqlite3 Spelling fixes to docs, docstrings, and comments (GH-6374) 2018-04-20 14:00:41 -07:00
test bpo-34454: Clean up datetime.fromisoformat surrogate handling (GH-8959) 2018-10-22 15:35:15 -07:00
tkinter bpo-34936: Fix TclError in tkinter.Spinbox.selection_element(). (GH-9760) (GH-9957) 2018-10-19 18:20:00 +03:00
turtledemo bpo-14117: Make minor tweaks to turtledemo (GH-8002) 2018-06-28 22:30:44 -07:00
unittest unittest.mock doc: Fix references to recursive seal of Mocks (GH-9028) 2018-10-19 15:17:31 -07:00
urllib bpo-34866: Adding max_num_fields to cgi.FieldStorage (GH-9660) 2018-10-19 04:11:16 -07:00
venv bpo-32409: Ensures activate.bat can handle Unicode contents (GH-5765) 2018-02-19 17:45:02 -08:00
wsgiref Remove tiny bit of deadcode from wsgiref.validate (#3996) 2017-10-31 00:07:36 -04:00
xml bpo-34791: xml package obeys ignore env flags (GH-9544) (GH-9545) 2018-10-20 01:09:01 +02:00
xmlrpc bpo-33911: Fixed deprecation warning in xmlrpc.server (GH-7847) (GH-8294) 2018-07-16 11:02:23 +02:00
__future__.py String annotations [PEP 563] (#4390) 2018-01-26 08:20:18 -08:00
__phello__.foo.py
_bootlocale.py bpo-29240: PEP 540: Add a new UTF-8 Mode (#855) 2017-12-13 12:29:09 +01:00
_collections_abc.py bpo-32467: Let collections.abc.ValuesView inherit from Collection (#5152) 2018-01-11 21:53:49 -08:00
_compat_pickle.py
_compression.py
_dummy_thread.py Restore dummy_threading and _dummy_thread, but deprecate them (bpo-31370) (#3648) 2017-09-18 22:04:20 +02:00
_markupbase.py
_osx_support.py Fix misplaced positional argument in OS X support library (#1134) 2017-04-14 15:28:55 +03:00
_py_abc.py bpo-33018: Improve issubclass() error checking and message. (GH-5944) 2018-03-22 04:49:26 -07:00
_pydecimal.py bpo-32630: Use contextvars in decimal (GH-5278) 2018-01-27 13:46:46 -05:00
_pyio.py bpo-25862: Fix assertion failures in io.TextIOWrapper.tell(). (GH-3918) 2018-06-29 03:34:34 -07:00
_sitebuiltins.py
_strptime.py Spelling fixes to docs, docstrings, and comments (GH-6374) 2018-04-20 14:00:41 -07:00
_threading_local.py Delete a broken threading.local example (GH-5870) 2018-02-25 07:23:25 -08:00
_weakrefset.py bpo-30296 Remove unnecessary tuples, lists, sets, and dicts (#1489) 2017-05-18 07:35:54 -07:00
abc.py bpo-31333: Re-implement ABCMeta in C (GH-5733) 2018-02-18 17:39:43 +00:00
aifc.py bpo-32056: Improve exceptions in aifc, wave and sunau. (GH-5951) 2018-03-18 13:50:41 -07:00
antigravity.py Change the xkcd link in comment over https. (GH-9293) 2018-09-14 09:28:07 -07:00
argparse.py bpo-11874: fix assertion failure in argparse metavar handling (GH-1826) 2018-06-08 04:33:50 -07:00
ast.py bpo-33851: Fix ast.get_docstring() for a node that lacks a docstring. (GH-7682) 2018-06-15 01:25:13 -07:00
asynchat.py
asyncore.py bpo-29639: change test.support.HOST to "localhost" 2017-09-09 00:30:15 -07:00
base64.py bpo-34164: Fix handling of incorrect padding in base64.b32decode(). (GH-8351) (GH-8435) 2018-07-24 13:53:39 +03:00
bdb.py bpo-34906: Doc: Fix typos (GH-9712) 2018-10-05 07:35:18 -07:00
binhex.py
bisect.py Issue #28792: Remove aliases from _bisect 2016-11-24 23:31:59 +01:00
bz2.py bpo-31370: Remove support for threads-less builds (#3385) 2017-09-07 18:56:24 +02:00
calendar.py Closes bpo-28281: Remove year (1-9999) limits on the weekday() function. (#4109) 2017-10-26 15:34:11 -04:00
cgi.py bpo-34866: Adding max_num_fields to cgi.FieldStorage (GH-9660) 2018-10-19 04:11:16 -07:00
cgitb.py bpo-33256: Replace angle brackets around python object repr to display it in html (GH-6442) 2018-04-29 12:10:12 -07:00
chunk.py bpo-29762: More use "raise from None". (#569) 2017-04-05 09:37:24 +03:00
cmd.py
code.py bpo-30166: Import command-line parsing modules only when needed. (#1293) 2017-05-04 08:17:47 +03:00
codecs.py bpo-32110: codecs.StreamReader.read(n) now returns not more than n (#4499) 2017-11-29 01:30:00 +02:00
codeop.py
colorsys.py
compileall.py closes bpo-31650: PEP 552 (Deterministic pycs) implementation (#4575) 2017-12-09 10:26:52 -08:00
configparser.py bpo-27351: Fix ConfigParser.read() documentation and docstring (GH-8123) 2018-09-29 10:33:05 -06:00
contextlib.py bpo-30306: release arguments of contextmanager (GH-1500) 2018-01-28 14:17:46 +10:00
contextvars.py bpo-32436: Implement PEP 567 (#5027) 2018-01-22 19:11:18 -05:00
copy.py
copyreg.py bpo-31107: Fix copyreg mangled slot names calculation. (#2989) 2017-08-04 11:45:00 +03:00
cProfile.py [3.7] bpo-23420: Verify the value of '-s' when execute the CLI of cProfile (GH-9925) (GH-9926) 2018-10-17 04:48:05 -07:00
crypt.py bpo-31702: Allow to specify rounds for SHA-2 hashing in crypt.mksalt(). (#4110) 2017-11-16 13:22:51 +02:00
csv.py bpo-30157: Fix csv.Sniffer.sniff() regex pattern. (GH-5601) (GH-5602) 2018-02-10 00:00:48 +02:00
dataclasses.py bpo-33947: dataclasses no longer can raise RecursionError in repr (GF9916) (#9970) 2018-10-19 13:28:30 -04:00
datetime.py bpo-34454: Clean up datetime.fromisoformat surrogate handling (GH-8959) 2018-10-22 15:35:15 -07:00
decimal.py
difflib.py bpo-33224: PEP 479 fix for difflib.mdiff() (GH-6381) (GH-6390) 2018-04-05 11:45:33 -07:00
dis.py bpo-31183: dis now handles coroutines & async generators (GH-3077) 2017-08-18 12:29:21 +10:00
doctest.py bpo-25054, bpo-1647489: Added support of splitting on zerowidth patterns. (#4471) 2017-12-04 14:29:05 +02:00
dummy_threading.py Restore dummy_threading and _dummy_thread, but deprecate them (bpo-31370) (#3648) 2017-09-18 22:04:20 +02:00
enum.py bpo-34536: raise error for invalid _missing_ results (GH-9147) (GH-9978) 2018-10-19 16:49:30 -07:00
filecmp.py
fileinput.py bpo-31281: Fix pathlib.Path incompatibility in fileinput (gh-3208) 2017-09-04 13:37:24 -04:00
fnmatch.py bpo-32775: Fix regular expression warnings in fnmatch. (GH-5583) (GH-5596) 2018-02-09 13:56:50 +02:00
formatter.py
fractions.py
ftplib.py bpo-31346: Use PROTOCOL_TLS_CLIENT/SERVER (#3058) 2017-09-15 20:27:30 +02:00
functools.py bpo-33967: Fix singledispatch raised IndexError when no args (GH-8184) 2018-07-10 00:48:57 -07:00
genericpath.py
getopt.py
getpass.py getpass: update docstrings (#49) 2017-02-12 23:10:48 +01:00
gettext.py bpo-30152: Reduce the number of imports for argparse. (#1269) 2017-09-26 00:55:55 +03:00
glob.py
gzip.py Replace KB unit with KiB (#4293) 2017-11-08 14:44:44 -08:00
hashlib.py [3.7] bpo-33729: Fix issues with arguments parsing in hashlib. (GH-8346) (GH-8581) 2018-07-31 10:22:44 +03:00
heapq.py Improve clarity (and small speed-up) by using tuple unpacking (#3289) 2017-09-04 11:47:58 -07:00
hmac.py bpo-33604: Remove Pending from hmac Deprecation warning. (GH-7062) 2018-05-22 16:40:44 -07:00
imaplib.py bpo-18540: Fix EAI_NONAME in imaplib.IMAP4*() (GH-8634) 2018-08-07 05:37:38 +03:00
imghdr.py
imp.py closes bpo-34056: Always return bytes from _HackedGetData.get_data(). (GH-8130) 2018-07-06 21:00:45 -07:00
inspect.py bpo-33594: Add deprecation info in inspect.py module (GH-7036) 2018-10-19 17:05:49 -07:00
io.py
ipaddress.py bpo-27683: Fix a regression for host() of ipaddress network objects (GH-6016) 2018-03-20 18:22:23 -07:00
keyword.py bpo-30406: Make async and await proper keywords (#1669) 2017-10-05 23:24:46 -04:00
linecache.py
locale.py [3.7] bpo-20087: Update locale alias mapping with glibc 2.27 supported locales. (GH-6708) (GH-6713) 2018-05-06 10:20:12 +03:00
lzma.py
macpath.py bpo-31802: Fix importing native path module before importing os. (#4017) 2018-01-07 17:54:31 +02:00
mailbox.py bpo-29762: More use "raise from None". (#569) 2017-04-05 09:37:24 +03:00
mailcap.py
mimetypes.py bpo-22589 Changed MIME type of .bmp to "image/bmp" (#4756) 2017-12-08 07:48:44 -05:00
modulefinder.py closes bpo-31650: PEP 552 (Deterministic pycs) implementation (#4575) 2017-12-09 10:26:52 -08:00
netrc.py bpo-28334: netrc() now uses expanduser() to find .netrc file (GH-4537) 2017-11-25 13:37:22 +03:00
nntplib.py bpo-29762: More use "raise from None". (#569) 2017-04-05 09:37:24 +03:00
ntpath.py bpo-31047: Fix ntpath.abspath for invalid paths (GH-8544) 2018-07-29 08:42:18 -07:00
nturl2path.py bpo-29836: Remove nturl2path from test_sundry and amend the module docstring (GH-694) 2017-03-17 11:16:20 -07:00
numbers.py Fix miscellaneous typos (#4275) 2017-11-05 15:37:50 +02:00
opcode.py [3.7] bpo-32746: Fix multiple typos (GH-5144) (GH-5520) 2018-02-03 20:41:43 -05:00
operator.py
optparse.py
os.py bpo-32297: Few misspellings found in Python source code comments. (#4803) 2017-12-14 13:04:53 +02:00
pathlib.py bpo-33635: Handling Bad file descriptor in Path.is_file and related. (GH-8542) 2018-08-27 18:37:18 -04:00
pdb.py [3.7] bpo-32691: Use mod_spec.parent when running modules with pdb (GH-5510) 2018-02-04 18:07:16 +10:00
pickle.py bpo-32503: Avoid creating too small frames in pickles. (#5127) 2018-01-20 16:42:44 +02:00
pickletools.py Fix pickletools doc for NEWFALSE. (GH-9432) 2018-09-25 22:19:08 -07:00
pipes.py
pkgutil.py closes bpo-31650: PEP 552 (Deterministic pycs) implementation (#4575) 2017-12-09 10:26:52 -08:00
platform.py [3.7] bpo-26544: Get rid of dependence from distutils in platform. (GH-8356). (GH-8970) 2018-09-04 17:31:18 +03:00
plistlib.py bpo-32072: Fix issues with binary plists. (#4455) 2017-11-30 23:26:11 +02:00
poplib.py bpo-32981: Fix catastrophic backtracking vulns (GH-5955) 2018-03-03 21:55:07 -08:00
posixpath.py bpo-31802: Fix importing native path module before importing os. (#4017) 2018-01-07 17:54:31 +02:00
pprint.py
profile.py time.clock() now emits a DeprecationWarning (GH-4020) 2017-10-17 14:46:45 -07:00
pstats.py Revert unneccessary changes made in bpo-30296 and apply other improvements. (GH-2624) 2018-02-26 08:22:24 -08:00
pty.py
py_compile.py bpo-29708: Setting SOURCE_DATE_EPOCH forces hash-based .pyc files (GH-5200) 2018-01-24 13:26:18 -08:00
pyclbr.py bpo-6691: Pyclbr now reports nested classes and functions. (#2503) 2017-07-03 21:31:25 -04:00
pydoc.py bpo-940286: Fix pydoc to show cross refs correctly (GH-8390) 2018-07-23 09:51:54 +03:00
queue.py bpo-14976: Reentrant simple queue (#3346) 2018-01-16 00:27:16 +01:00
quopri.py
random.py bpo-24567: Random subnormal.diff (GH-7954) (GH-7955) 2018-06-27 01:53:04 -07:00
re.py bpo-32338: OrderedDict import is no longer needed in re. (GH-4891) 2018-03-10 23:01:58 -08:00
reprlib.py bpo-31370: Remove support for threads-less builds (#3385) 2017-09-07 18:56:24 +02:00
rlcompleter.py
runpy.py
sched.py bpo-31370: Remove support for threads-less builds (#3385) 2017-09-07 18:56:24 +02:00
secrets.py Issue #29061: secrets.randbelow() would hang with a negative input 2016-12-29 22:54:25 -07:00
selectors.py bpo-30624 remaining bare except (#2108) 2017-06-12 14:43:40 +02:00
shelve.py Fix misleading docsting of shelve.open(). (GH-6427) 2018-04-09 07:57:31 -07:00
shlex.py Fixed #29132: Updated shlex to work better with punctuation chars in POSIX mode. 2017-01-15 10:06:52 +00:00
shutil.py bpo-28564: Use os.scandir() in shutil.rmtree(). (#4085) 2017-11-04 14:16:35 +02:00
signal.py
site.py bpo-19891: Ignore error while writing history file (GH-8483) 2018-08-06 02:03:43 -07:00
smtpd.py
smtplib.py closes bpo-34525: Fix smtplib's authobject() documentation (GH-8965) 2018-09-10 11:13:13 -07:00
sndhdr.py bpo-31985: Deprecate openfp in aifc, sunau, and wave (#4344) 2017-11-10 11:38:25 -05:00
socket.py bpo-28134: Auto-detect socket values from file descriptor (#1349) 2018-01-29 22:37:58 +01:00
socketserver.py bpo-33540: Fix socketserver.ThreadingMixIn if block_on_close=False (GH-7309) 2018-06-01 14:07:50 +02:00
sre_compile.py bpo-31690: Allow the inline flags "a", "L", and "u" to be used as group flags for RE. (#3885) 2017-10-24 23:31:42 +03:00
sre_constants.py bpo-31690: Allow the inline flags "a", "L", and "u" to be used as group flags for RE. (#3885) 2017-10-24 23:31:42 +03:00
sre_parse.py bpo-30349: Raise FutureWarning for nested sets and set operations (#1553) 2017-11-16 12:38:26 +02:00
ssl.py Fix a typo ssl.py docstring (GH-9697) (GH-9709) 2018-10-05 10:33:36 +03:00
stat.py
statistics.py bpo-29919: Remove unused imports found by pyflakes (#137) 2017-03-27 16:05:26 +02:00
string.py bpo-31672: Restore the former behavior when override flags in Template. (#5099) 2018-01-04 19:20:11 +02:00
stringprep.py
struct.py
subprocess.py bpo-34044: subprocess.Popen copies startupinfo (GH-8090) (GH-8121) 2018-07-05 23:15:28 +02:00
sunau.py bpo-32056: Improve exceptions in aifc, wave and sunau. (GH-5951) 2018-03-18 13:50:41 -07:00
symbol.py bpo-30406: Make async and await proper keywords (#1669) 2017-10-05 23:24:46 -04:00
symtable.py bpo-30296 Remove unnecessary tuples, lists, sets, and dicts (#1489) 2017-05-18 07:35:54 -07:00
sysconfig.py remove support for BSD/OS (closes bpo-31624) (#3812) 2017-09-28 22:44:27 -07:00
tabnanny.py bpo-30166: Import command-line parsing modules only when needed. (#1293) 2017-05-04 08:17:47 +03:00
tarfile.py bpo-34010: Fix tarfile read performance regression (GH-8020) 2018-07-04 01:32:41 -07:00
telnetlib.py bpo-30397: Add re.Pattern and re.Match. (#1646) 2017-10-04 20:09:49 +03:00
tempfile.py bpo-33522: Enable CI builds on Visual Studio Team Services (GH-6865) (GH-6926) 2018-05-17 08:49:01 -04:00
textwrap.py bpo-30620: Remove dead lines from textwrap.dedent (GH-2064) 2017-06-15 19:19:43 -07:00
this.py
threading.py bpo-33556: Remove reference to thread module from docstring (GH-6963) 2018-05-18 14:46:43 -05:00
timeit.py bpo-28240: timeit: Update repeat() doc (GH-7419) (GH-7457) 2018-06-06 19:05:46 +02:00
token.py bpo-33260: Regenerate token.py after removing ASYNC and AWAIT. (GH-6447) 2018-04-11 10:07:23 -07:00
tokenize.py [3.7] bpo-33899: Make tokenize module mirror end-of-file is end-of-line behavior (GH-7891) (GH-8132) 2018-07-06 13:21:05 +03:00
trace.py bpo-34171: Prevent creating Lib/trace.cover when run the trace module. (GH-8841) 2018-08-25 03:47:22 -04:00
traceback.py bpo-34588: Fix an off-by-one error in traceback formatting. (GH-9077) 2018-09-10 09:00:08 -07:00
tracemalloc.py bpo-32121: Add most_recent_first parameter to tracemalloc.Traceback.format (#4534) 2017-11-30 00:05:07 +01:00
tty.py
turtle.py Revert unneccessary changes made in bpo-30296 and apply other improvements. (GH-2624) 2018-02-26 08:22:24 -08:00
types.py bpo-32265: Classify class and static methods of builtin types. (#4776) 2017-12-15 14:13:41 +02:00
typing.py Fix typo in typing.py module docstring (GH-9014) 2018-09-01 05:15:40 -04:00
uu.py bpo-30103: Allow Uuencode in Python using backtick as zero instead of space (#1326) 2017-05-03 11:16:21 +08:00
uuid.py [3.7] bpo-34621: fix uuid.UUID (un)pickling compatbility with older Python versions (<3.7) (GH-9133) 2018-09-10 18:47:29 +03:00
warnings.py bpo-32591: Add native coroutine origin tracking (#5250) 2018-01-21 09:44:07 -05:00
wave.py bpo-32056: Improve exceptions in aifc, wave and sunau. (GH-5951) 2018-03-18 13:50:41 -07:00
weakref.py bpo-30152: Reduce the number of imports for argparse. (#1269) 2017-09-26 00:55:55 +03:00
webbrowser.py bpo-31014: Fix the webbrowser module. (GH-7267) 2018-07-08 01:09:21 -07:00
xdrlib.py
zipapp.py bpo-31638: Add compression support to zipapp (GH-3819) 2017-09-29 18:31:52 +01:00
zipfile.py bpo-34472: Add data descriptor signature to zipfile (GH-8871) (GH-9399) 2018-09-22 21:03:04 +03:00