cpython/Lib
Barney Gale 6716254e71
GH-101362: Optimise PurePath(PurePath(...)) (GH-101667)
The previous `_parse_args()` method pulled the `_parts` out of any supplied `PurePath` objects; these were subsequently joined in `_from_parts()` using `os.path.join()`. This is actually a slower form of joining than calling `fspath()` on the path object, because it doesn't take advantage of the fact that the contents of `_parts` is normalized!

This reduces the time taken to run `PurePath("foo", "bar")` by ~20%, and the time taken to run `PurePath(p, "cheese")`, where `p = PurePath("/foo", "bar", "baz")`, by ~40%.

Automerge-Triggered-By: GH:AlexWaygood
2023-03-05 15:50:21 -08:00
..
__phello__
asyncio gh-100226: Clarify StreamReader.read behavior (#101807) 2023-02-17 13:01:26 -08:00
collections gh-101446: Change repr of collections.OrderedDict (#101661) 2023-02-07 20:01:10 -06:00
concurrent gh-84559: Remove the new multiprocessing warning, too disruptive. (#101551) 2023-02-03 15:20:46 -08:00
ctypes bpo-33591: Add support for path like objects to ctypes.CDLL (#7032) 2023-02-05 23:06:57 +05:30
curses
dbm
email gh-101021: Document binary parameters as bytes (#101024) 2023-01-14 11:01:27 -08:00
encodings
ensurepip gh-101997: Update bundled pip version to 23.0.1 (#101998) 2023-02-25 12:00:12 +00:00
html gh-100210: Correct the comment link for unescaping HTML (#100212) 2023-02-19 11:18:12 +01:00
http gh-91219: http - use subclassing to override index_pages attribute (GH-100731) 2023-01-03 15:20:08 -08:00
idlelib IDLE: Simplify DynOptionsMenu __init__code (#101371) 2023-02-28 01:11:52 -05:00
importlib gh-97930: Apply changes from importlib_resources 5.12. (GH-102010) 2023-02-18 16:29:22 -05:00
json
lib2to3
logging
msilib
multiprocessing gh-84559: Remove the new multiprocessing warning, too disruptive. (#101551) 2023-02-03 15:20:46 -08:00
pydoc_data Python 3.12.0a5 2023-02-07 13:21:15 +01:00
re
site-packages
sqlite3
test GH-101362: Optimise PurePath(PurePath(...)) (GH-101667) 2023-03-05 15:50:21 -08:00
tkinter
tomllib
turtledemo
unittest gh-96127: Fix inspect.signature call on mocks (#96335) 2023-01-07 10:49:15 +00:00
urllib gh-101936: Update the default value of fp from io.StringIO to io.BytesIO (gh-102100) 2023-02-22 00:14:41 +09:00
venv gh-100676: Improve description for venv --upgrade-deps (GH-100678) 2023-01-02 12:17:58 +00:00
wsgiref
xml gh-83122: Deprecate testing element truth values in ElementTree (#31149) 2023-01-22 17:16:48 -08:00
xmlrpc
zipfile gh-102209: Sync with zipp 3.15 moving complexity tests into dedicated module (#102232) 2023-02-25 11:15:48 -05:00
zoneinfo Fix typos in documentation and comments (GH-102374) 2023-03-02 07:26:49 -08:00
__future__.py
__hello__.py
_aix_support.py gh-96305: Fix AIX build by avoiding subprocess during bootstrap (#96429) 2023-02-02 12:30:49 -08:00
_collections_abc.py
_compat_pickle.py
_compression.py
_markupbase.py
_osx_support.py
_py_abc.py
_pydecimal.py gh-86682: Adds sys._getframemodulename as an alternative to using _getframe (GH-99520) 2023-01-13 11:31:06 +00:00
_pyio.py
_pylong.py
_sitebuiltins.py
_strptime.py
_threading_local.py
_weakrefset.py
abc.py
aifc.py
antigravity.py
argparse.py gh-101979: argparse: fix a bug where parentheses in metavar argument of add_argument() were dropped (#102318) 2023-03-05 06:54:33 -08:00
ast.py
base64.py
bdb.py gh-101517: make bdb avoid looking up in linecache with lineno=None (#101787) 2023-02-10 16:49:29 +00:00
bisect.py
bz2.py
calendar.py
cgi.py
cgitb.py
chunk.py
cmd.py
code.py
codecs.py
codeop.py
colorsys.py
compileall.py GH-84559: Deprecate fork being the multiprocessing default. (#100618) 2023-02-02 15:50:35 -08:00
configparser.py
contextlib.py gh-95882: fix regression in the traceback of exceptions propagated from inside a contextlib context manager (#95883) 2023-01-03 15:47:13 +00:00
contextvars.py
copy.py gh-100815: Normalize types module usage in copy module (#100816) 2023-01-07 21:29:53 +00:00
copyreg.py
cProfile.py
crypt.py
csv.py
dataclasses.py gh-90104: avoid RecursionError on recursive dataclass field repr (gh-100756) 2023-01-05 19:19:40 -05:00
datetime.py Trivial Change: Remove unhelpful doc in datetime.timedelta (#100164) 2023-02-06 06:55:37 +04:00
decimal.py
difflib.py
dis.py GH-87849: Simplify stack effect of SEND and specialize it for generators and coroutines. (GH-101788) 2023-02-13 11:24:55 +00:00
doctest.py gh-86682: Adds sys._getframemodulename as an alternative to using _getframe (GH-99520) 2023-01-13 11:31:06 +00:00
enum.py gh-101541: [Enum] create flag psuedo-member without calling original __new__ (GH-101590) 2023-02-05 19:29:06 -08:00
filecmp.py
fileinput.py gh-101961 fileinput.hookcompressed should not set the encoding value for the binary mode (gh-102068) 2023-02-21 12:10:29 +09:00
fnmatch.py
fractions.py gh-101825: Clarify that as_integer_ratio() output is always normalized (#101843) 2023-02-27 19:11:28 +00:00
ftplib.py
functools.py gh-87634: remove locking from functools.cached_property (GH-101890) 2023-02-22 17:49:22 -08:00
genericpath.py gh-101196: Make isdir/isfile/exists faster on Windows (GH-101324) 2023-02-08 14:34:24 +00:00
getopt.py
getpass.py
gettext.py
glob.py
graphlib.py
gzip.py
hashlib.py gh-99108: Refactor _sha256 & _sha512 into _sha2. (#101924) 2023-02-15 22:08:20 -08:00
heapq.py
hmac.py
imaplib.py
imghdr.py
imp.py gh-102251: Updates to test_imp Toward Fixing Some Refleaks (gh-102254) 2023-02-27 09:21:18 -07:00
inspect.py gh-102302 Micro-optimize inspect.Parameter.__hash__ (#102303) 2023-03-04 15:08:57 +00:00
io.py
ipaddress.py
keyword.py
linecache.py
locale.py
lzma.py
mailbox.py
mailcap.py
mimetypes.py
modulefinder.py
netrc.py
nntplib.py
ntpath.py gh-101196: Make isdir/isfile/exists faster on Windows (GH-101324) 2023-02-08 14:34:24 +00:00
nturl2path.py
numbers.py
opcode.py gh-101799: implement PREP_RERAISE_STAR as an intrinsic function (#101800) 2023-02-14 11:54:13 +00:00
operator.py
optparse.py
os.py gh-89727: Improve os.walk complexity (#100671) 2023-01-02 13:41:19 -08:00
pathlib.py GH-101362: Optimise PurePath(PurePath(...)) (GH-101667) 2023-03-05 15:50:21 -08:00
pdb.py
pickle.py
pickletools.py
pipes.py
pkgutil.py
platform.py gh-91038: Change default argument value to False instead of 0 (#31621) 2023-02-26 18:10:34 -08:00
plistlib.py gh-101992: update pstlib module documentation (#102133) 2023-03-04 13:35:25 -08:00
poplib.py
posixpath.py gh-101196: Make isdir/isfile/exists faster on Windows (GH-101324) 2023-02-08 14:34:24 +00:00
pprint.py
profile.py
pstats.py
pty.py gh-85984: Remove legacy Lib/pty.py code. (#92365) 2023-02-08 17:00:17 -08:00
py_compile.py
pyclbr.py
pydoc.py
queue.py
quopri.py
random.py GH-101097: Switch from standard interval notation to greater or less than signs for random.random()'s documentation (#101119) 2023-01-22 14:58:36 -06:00
reprlib.py
rlcompleter.py
runpy.py
sched.py
secrets.py
selectors.py
shelve.py
shlex.py
shutil.py
signal.py
site.py
smtplib.py
sndhdr.py
socket.py
socketserver.py
sre_compile.py
sre_constants.py
sre_parse.py
ssl.py
stat.py
statistics.py
string.py
stringprep.py
struct.py
subprocess.py gh-101283: Fix use of unbound variable (GH-101712) 2023-02-08 23:38:56 +00:00
sunau.py
symtable.py
sysconfig.py
tabnanny.py gh-63301: Set exit code when tabnanny CLI exits on error (#7699) 2023-03-04 13:32:13 -08:00
tarfile.py
telnetlib.py
tempfile.py
textwrap.py
this.py
threading.py
timeit.py
token.py
tokenize.py
trace.py
traceback.py
tracemalloc.py
tty.py
turtle.py
types.py
typing.py gh-101561: Add typing.override decorator (#101564) 2023-02-27 13:16:11 -08:00
uu.py
uuid.py GH-88597: Rename uuid's new CLI args to be in line with uuidgen. (#101248) 2023-01-25 09:39:42 -08:00
warnings.py gh-39615: Add warnings.warn() skip_file_prefixes support (#100840) 2023-01-27 18:35:14 -08:00
wave.py
weakref.py
webbrowser.py
xdrlib.py
zipapp.py
zipimport.py