summaryrefslogtreecommitdiffstats
path: root/Lib/functools.py
Commit message (Collapse)AuthorAgeFilesLines
* gh-109653: Avoid a top-level import of `types` in `functools` (#109804)Alex Waygood2023-09-241-1/+2
|
* gh-102757: fix function signature mismatch for `functools.reduce` between ↵Xuehai Pan2023-09-181-1/+1
| | | | code and documentation (#102759)
* gh-107995: Fix doctest collection of functools.cached_property objects (#107996)Tyler Smart2023-08-181-0/+1
| | | Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
* gh-85160: Reduce memory usage of `singledispatchmethod` (#107706)Alex Waygood2023-08-071-5/+5
| | | | | A small followup to #107148 Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
* gh-85160: improve performance of `functools.singledispatchmethod` (#107148)Pieter Eendebak2023-08-061-2/+19
| | | | Co-authored-by: mental <m3nta1@yahoo.com> Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
* gh-106292: restore checking __dict__ in cached_property.__get__ (#106380)Carl Meyer2023-07-051-10/+13
| | | | | * gh-106292: restore checking __dict__ in cached_property.__get__ Co-authored-by: Dong-hee Na <donghee.na92@gmail.com>
* gh-105172: Fixed functools.lru_cache typed argument docstring. (GH-105173)Bar Harel2023-05-311-2/+3
|
* gh-104600: Make function.__type_params__ writable (#104601)Jelle Zijlstra2023-05-181-1/+1
|
* gh-87634: remove locking from functools.cached_property (GH-101890)Carl Meyer2023-02-231-18/+9
| | | Remove the undocumented locking capabilities of functools.cached_property.
* gh-89828: Do not relay the __class__ attribute in GenericAlias (#93754)Serhiy Storchaka2022-06-181-3/+2
| | | | | list[int].__class__ returned type, and isinstance(list[int], type) returned True. It caused numerous problems in code that checks isinstance(x, type).
* This localization technique is no longer cost effective. (GH-30818)Raymond Hettinger2022-01-231-12/+12
|
* bpo-46032: Check types in singledispatch's register() at declaration time ↵Serhiy Storchaka2021-12-251-5/+16
| | | | | | | | | (GH-30050) The registry() method of functools.singledispatch() functions checks now the first argument or the first parameter annotation and raises a TypeError if it is not supported. Previously unsupported "types" were ignored (e.g. typing.List[int]) or caused an error at calling time (e.g. list[int]).
* bpo-46014: Add ability to use typing.Union with singledispatch (GH-30017)Yurii Karabas2021-12-101-7/+28
|
* bpo-44605: Teach @total_ordering() to work with metaclasses (GH-27633)Raymond Hettinger2021-08-061-12/+12
|
* Update URLs in comments and metadata to use HTTPS (GH-27458)Noah Kantrowitz2021-07-301-2/+2
|
* bpo-31082: Use "iterable" in the docstring for functools.reduce() (GH-20796)Zackery Spytz2020-06-281-7/+8
|
* bpo-17005: Move topological sort functionality to its own module (GH-20558)Pablo Galindo2020-05-311-245/+0
| | | | | | The topological sort functionality that was introduced initially in the functools module has been moved to a new graphlib module to better accommodate the new tools and keep the original scope of the functools module.
* bpo-40571: Make lru_cache(maxsize=None) more discoverable (GH-20019)Raymond Hettinger2020-05-121-1/+10
|
* bpo-39481: Make functools.cached_property, partial, partialmethod generic ↵Ethan Smith2020-04-141-0/+6
| | | | (#19427)
* Updates functools.py with consistent quotes (GH-18825)Nikita Sobolev2020-03-111-1/+1
| | | | | | I have noticed that `'` quotes are used everywhere except this particular case, which was introduced in https://github.com/python/cpython/pull/18726 So, this is a trivial fix to enforce better consistency.
* bpo-35712: Make using NotImplemented in a boolean context issue a ↵MojoVampire2020-03-031-0/+4
| | | | deprecation warning (GH-13195)
* bpo-39815: add cached_property to all (GH-18726)Hakan Çelik2020-03-011-1/+2
| | | Automerge-Triggered-By: @pablogsal
* bpo-17005: Add a class to perform topological sorting to the standard ↵Pablo Galindo2020-01-231-2/+247
| | | | | library (GH-11583) Co-Authored-By: Tim Peters <tim.peters@gmail.com>
* bpo-38565: add new cache_parameters method for lru_cache (GH-16916)Manjusaka2019-11-121-0/+2
|
* Doc: Fix Wikipedia link for functools.lru_cache (GH-16183)amist2019-09-161-1/+1
|
* bpo-36743: __get__ is sometimes called without the owner argument (#12992)Raymond Hettinger2019-08-291-3/+3
|
* [3.9] bpo-37116: Use PEP 570 syntax for positional-only parameters. (GH-12620)Serhiy Storchaka2019-06-051-18/+1
| | | Turn deprecation warnings added in 3.8 into TypeError.
* bpo-37116: Use PEP 570 syntax for positional-only parameters. (GH-13700)Serhiy Storchaka2019-06-011-13/+3
|
* bpo-36772 Allow lru_cache to be used as decorator without making a function ↵Raymond Hettinger2019-05-261-4/+8
| | | | call (GH-13048)
* bpo-35252: Remove FIXME from test_functools (GH-10551)Lysandros Nikolaou2019-05-191-3/+5
|
* bpo-36542: Allow to overwrite the signature for Python functions. (GH-12705)Serhiy Storchaka2019-05-061-0/+1
|
* bpo-36492: Deprecate passing some arguments as keyword arguments. (GH-12637)Serhiy Storchaka2019-04-011-1/+17
| | | | | | | | | | | | | | | | | | | | | | Deprecated passing the following arguments as keyword arguments: - "func" in functools.partialmethod(), weakref.finalize(), profile.Profile.runcall(), cProfile.Profile.runcall(), bdb.Bdb.runcall(), trace.Trace.runfunc() and curses.wrapper(). - "function" in unittest.addModuleCleanup() and unittest.TestCase.addCleanup(). - "fn" in the submit() method of concurrent.futures.ThreadPoolExecutor and concurrent.futures.ProcessPoolExecutor. - "callback" in contextlib.ExitStack.callback(), contextlib.AsyncExitStack.callback() and contextlib.AsyncExitStack.push_async_callback(). - "c" and "typeid" in the create() method of multiprocessing.managers.Server and multiprocessing.managers.SharedMemoryServer. - "obj" in weakref.finalize(). Also allowed to pass arbitrary keyword arguments (even "self" and "func") if the above arguments are passed as positional argument.
* bpo-36431: Use PEP 448 dict unpacking for merging two dicts. (GH-12553)Serhiy Storchaka2019-03-271-14/+7
|
* Consistently move the misses update to just before the user function call ↵Raymond Hettinger2019-01-311-3/+3
| | | | (GH-11715)
* bpo-35780: Fix errors in lru_cache() C code (GH-11623)Raymond Hettinger2019-01-261-4/+7
|
* bpo-34890: Make iscoroutinefunction, isgeneratorfunction and ↵Pablo Galindo2018-10-261-0/+6
| | | | | | | | | | | isasyncgenfunction work with functools.partial (GH-9903) inspect.isfunction() processes both inspect.isfunction(func) and inspect.isfunction(partial(func, arg)) correctly but some other functions in the inspect module (iscoroutinefunction, isgeneratorfunction and isasyncgenfunction) lack this functionality. This commits adds a new check in the mentioned functions in the inspect module so they can work correctly with arbitrarily nested partial functions.
* bpo-32321: Add pure Python fallback for functools.reduce (GH-8548)madman-bob2018-10-251-4/+39
|
* bpo-21145: Add cached_property decorator in functools (#6982)Carl Meyer2018-08-281-0/+55
| | | | | | Robust caching of calculated properties is harder than it looks at first glance, so add a solid, well-tested implementation to the standard library.
* bpo-33967: Fix singledispatch raised IndexError when no args (GH-8184)Dong-hee Na2018-07-101-0/+5
|
* bpo-32380: Create functools.singledispatchmethod (#6306)Ethan Smith2018-05-261-1/+38
|
* bpo-32227: functools.singledispatch supports registering via type ↵Łukasz Langa2017-12-111-1/+17
| | | | annotations (#4733)
* bpo-31581: Reduce the number of imports for functools (GH-3757)INADA Naoki2017-09-301-5/+8
|
* bpo-31370: Remove support for threads-less builds (#3385)Antoine Pitrou2017-09-071-7/+1
| | | | | | * Remove Setup.config * Always define WITH_THREAD for compatibility.
* Conceptually, roots is a set. Also searching it as a set is a tiny bit ↵Raymond Hettinger2017-09-051-1/+1
| | | | faster (#3338)
* Add comment to explain the implications of not sorting keywords (#3331)Raymond Hettinger2017-09-051-0/+4
| | | In Python 3.6, sorted() was removed from _make_key() for the lru_cache and instead rely on guaranteed keyword argument order preservation. This makes keyword argument handling faster but it also causes multiple callers with a different keyword argument order to be cached as separate items. Depending on your point of view, this is either a performance regression (increased number of cache misses) or a performance enhancement (faster computation of keys).
* mergeRaymond Hettinger2017-01-091-4/+3
|\
| * Issue #29203: functools.lru_cache() now respects PEP 468Raymond Hettinger2017-01-091-4/+3
| |
* | Issue #28991: Address comment that the __len__ call looked unattractiveRaymond Hettinger2016-12-161-3/+4
|/
* mergeRaymond Hettinger2016-12-161-2/+4
|\
| * Issue #28991: Fix obscure reentrancy bug in functools.lru_cache().Raymond Hettinger2016-12-161-2/+4
| |