Commit Graph

176 Commits

Author SHA1 Message Date
Raymond Hettinger 14adbd4598
bpo-36650: Fix handling of empty keyword args in C version of lru_cache. (GH-12881) 2019-04-20 07:20:44 -10:00
Serhiy Storchaka 42a139ed88
bpo-36492: Deprecate passing some arguments as keyword arguments. (GH-12637)
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.
2019-04-01 09:16:35 +03:00
Raymond Hettinger d8080c0119
bpo-35780: Fix errors in lru_cache() C code (GH-11623) 2019-01-26 03:02:00 -05:00
madman-bob e25d5fc18e bpo-32321: Add pure Python fallback for functools.reduce (GH-8548) 2018-10-25 16:02:10 +02:00
Carl Meyer d658deac60 bpo-21145: Add cached_property decorator in functools (#6982)
Robust caching of calculated properties is
harder than it looks at first glance, so add
a solid, well-tested implementation to the
standard library.
2018-08-28 17:11:56 +10:00
INADA Naoki 56d8f57b83
bpo-33967: Fix wrong use of assertRaises (GH-8306) 2018-07-17 13:44:47 +09:00
Zackery Spytz 9e9b2c32a3 bpo-33967: Remove use of deprecated assertRaisesRegexp() (GH-8261)
It was added in test_functools at 445f1b3.
2018-07-12 12:57:05 +09:00
Dong-hee Na 445f1b35ce bpo-33967: Fix singledispatch raised IndexError when no args (GH-8184) 2018-07-10 16:26:36 +09:00
Ethan Smith c651275afe bpo-32380: Create functools.singledispatchmethod (#6306) 2018-05-26 13:38:33 -07:00
Mike 53f7a7c281 bpo-32297: Few misspellings found in Python source code comments. (#4803)
* Fix multiple typos in code comments

* Add spacing in comments (test_logging.py, test_math.py)

* Fix spaces at the beginning of comments in test_logging.py
2017-12-14 13:04:53 +02:00
Łukasz Langa e56975351b
bpo-32227: functools.singledispatch supports registering via type annotations (#4733) 2017-12-11 13:56:31 -08:00
INADA Naoki 9811e80fd0 bpo-31581: Reduce the number of imports for functools (GH-3757) 2017-09-30 16:13:02 +09:00
Antoine Pitrou a6a4dc816d bpo-31370: Remove support for threads-less builds (#3385)
* Remove Setup.config
* Always define WITH_THREAD for compatibility.
2017-09-07 18:56:24 +02:00
Ville Skyttä 49b2734bf1 Spelling fixes (#2902) 2017-08-03 09:00:59 +03:00
Serhiy Storchaka 2e576f5aec bpo-30144: Import collections ABC from collections.abc rather than collections. (#1263) 2017-04-24 09:05:00 +03:00
Michael Seifert 6c3d527468 bpo-29800: Fix crashes in partial.__repr__ if the keys of partial.keywords are not strings (#649) 2017-03-15 07:26:33 +02:00
Serhiy Storchaka 9639e4ab6d bpo-29532: Altering a kwarg dictionary passed to functools.partial() (#190)
no longer affects a partial object after creation.
2017-02-20 14:04:30 +02:00
Serhiy Storchaka 617c7753ce Issue #28969: Fixed race condition in C implementation of functools.lru_cache.
KeyError could be raised when cached function with full cache was
simultaneously called from differen threads with the same uncached arguments.
2017-01-12 19:42:20 +02:00
Serhiy Storchaka 42e1ea9a10 Issue #28969: Fixed race condition in C implementation of functools.lru_cache.
KeyError could be raised when cached function with full cache was
simultaneously called from differen threads with the same uncached arguments.
2017-01-12 19:12:21 +02:00
Serhiy Storchaka 67796521dd Issue #28969: Fixed race condition in C implementation of functools.lru_cache.
KeyError could be raised when cached function with full cache was
simultaneously called from differen threads with the same uncached arguments.
2017-01-12 18:34:33 +02:00
Raymond Hettinger 605a4476f8 Add test for ea064ff3c10f 2017-01-09 07:50:19 -08:00
Raymond Hettinger ac7c5acf9b merge 2017-01-08 17:29:21 -08:00
Raymond Hettinger 4ee39141e8 Issue #29203: functools.lru_cache() now respects PEP 468 2017-01-08 17:28:20 -08:00
Raymond Hettinger 5eed36fab4 Issue #29200: Fix test to use self.assertEqual instead of py.test style tests 2017-01-07 20:53:09 -08:00
Raymond Hettinger d191ef25c1 Issue #29200: Add test for lru cache only calling __hash__ once 2017-01-07 20:44:48 -08:00
Raymond Hettinger c28dbd0452 merge 2016-12-16 13:59:32 -08:00
Raymond Hettinger af56e0e70f Issue #28991: Fix obscure reentrancy bug in functools.lru_cache(). 2016-12-16 13:57:40 -08:00
Xavier de Gaye 7522ef402c Issue #26939: Add the support.setswitchinterval() function to fix
test_functools hanging on the Android armv7 qemu emulator.
2016-12-08 11:06:56 +01:00
Yury Selivanov 0a66a1cdd6 Merge 3.6 (issue #28653) 2016-11-09 18:56:26 -05:00
Yury Selivanov 46a02db90b Issue #28653: Fix a refleak in functools.lru_cache. 2016-11-09 18:55:45 -05:00
Serhiy Storchaka e3d504090c Extend the test to lower pickle protocols. 2016-09-22 11:42:38 +03:00
Serhiy Storchaka 92bb90a9ff Extend the test to lower pickle protocols. 2016-09-22 11:39:25 +03:00
Nick Coghlan 457fc9a69e Issue #27137: align Python & C implementations of functools.partial
The pure Python fallback implementation of functools.partial
now matches the behaviour of its accelerated C counterpart for
subclassing, pickling and text representation purposes.

Patch by Emanuel Barry and Serhiy Storchaka.
2016-09-10 20:00:02 +10:00
Guido van Rossum f0666949fd Issue 27598: Add Collections to collections.abc.
Patch by Ivan Levkivskyi, docs by Neil Girdhar.
2016-08-23 10:47:07 -07:00
Benjamin Peterson ab078e9ed1 Backed out changeset af29d89083b3 (closes #25548) (closes #27498) 2016-07-13 21:13:29 -07:00
Serhiy Storchaka 8918b89e61 Issue #25455: Clean up reference loops created in tests for recursive
functools.partial objects.
2016-06-12 15:53:09 +03:00
Serhiy Storchaka 46fe29de31 Issue #25455: Clean up reference loops created in tests for recursive
functools.partial objects.
2016-06-12 15:45:14 +03:00
Serhiy Storchaka b62ff6eb57 Issue #25455: Fixed a crash in repr of recursive functools.partial objects. 2016-06-12 11:51:26 +03:00
Serhiy Storchaka 179f960d47 Issue #25455: Fixed a crash in repr of recursive functools.partial objects. 2016-06-12 11:44:06 +03:00
Kushal Das 5801ecb440 Issue #25548: Showing memory address of class objects in repl 2016-06-04 16:21:13 -07:00
Martin Panter 3e04d5b306 Issue #27076: Merge spelling from 3.5 2016-05-26 06:03:19 +00:00
Martin Panter 46f50726a0 Issue #27076: Doc, comment and tests spelling fixes
Most fixes to Doc/ and Lib/ directories by Ville Skyttä.
2016-05-26 05:35:26 +00:00
Guido van Rossum 16ca06b8cb Add collections.Reversible. Patch by Ivan Levkivskyi. Fixes issue #25987. 2016-04-04 10:59:29 -07:00
Serhiy Storchaka 3874128519 Issue #25945: Fixed bugs in functools.partial.
Fixed a crash when unpickle the functools.partial object with wrong state.
Fixed a leak in failed functools.partial constructor.
"args" and "keywords" attributes of functools.partial have now always types
tuple and dict correspondingly.
2016-02-02 18:45:17 +02:00
Serhiy Storchaka e4d65e3aab Issue #25447: Copying the lru_cache() wrapper object now always works,
independedly from the type of the wrapped object (by returning the original
object unchanged).
2015-12-28 23:58:07 +02:00
Serhiy Storchaka 45120f272b Issue #25447: The lru_cache() wrapper objects now can be copied and pickled
(by returning the original object unchanged).
2015-10-24 09:49:56 +03:00
Berker Peksag 9b93c6b5df Issue #25137: Add a note to whatsnew/3.5.rst for nested functools.partial calls
Also, properly skip the test_nested_optimization test for partial subclasses
and add a test for the suggested usage.
2015-09-22 13:08:16 +03:00
Yury Selivanov 77a8cd65be Issue #23572: Fixed functools.singledispatch on classes with falsy metaclasses.
Patch by Ethan Furman.
2015-08-18 14:20:00 -04:00
Serhiy Storchaka 391af751f2 Issue #14373: Other attempt to fix threaded test for lru_cache(). 2015-06-08 12:44:18 +03:00
Serhiy Storchaka e7070f09bc Issue #14373: C implementation of functools.lru_cache() now can be used with
methods.
2015-06-08 11:19:24 +03:00
Serhiy Storchaka 77cb197aaa Issue #14373: Fixed threaded test for lru_cache(). Added new threaded test. 2015-06-08 11:14:31 +03:00
Serhiy Storchaka bf2b3b72d3 Use test.support.start_threads() in threaded lru_cache tests. 2015-05-30 15:49:17 +03:00
Serhiy Storchaka 46c5611948 Backed out changeset: b0a0b9b59012 2015-05-24 21:53:49 +03:00
Larry Hastings 8252cc9832 Backed out changeset 57776eee74f2 2015-05-23 14:56:23 -07:00
Serhiy Storchaka 1c858c352b Issue #14373: Added C implementation of functools.lru_cache(). Based on
patches by Matt Joiner and Alexey Kachayev.
2015-05-23 22:42:49 +03:00
Benjamin Peterson dae2ef1cfa merge 3.4 2015-05-09 00:29:08 -04:00
Benjamin Peterson 65bcdd7195 ensure .keywords is always a dict 2015-05-09 00:25:18 -04:00
Zachary Ware 38c707e7e0 Issue #21741: Update 147 test modules to use test discovery.
I have compared output between pre- and post-patch runs of these tests
to make sure there's nothing missing and nothing broken, on both
Windows and Linux.  The only differences I found were actually tests
that were previously *not* run.
2015-04-13 15:00:43 -05:00
Alexander Belopolsky e49af34151 Issue #7830: Flatten nested functools.partial. 2015-03-01 15:08:17 -05:00
Serhiy Storchaka 90caf017ee Issue #19681: Test the repr of partial with more than one keyword argument. 2015-02-15 16:22:11 +02:00
Serhiy Storchaka 0aa74e10bb Issue #19681: Test the repr of partial with more than one keyword argument. 2015-02-15 16:20:47 +02:00
Serhiy Storchaka 697a526fa1 Issue #23132: Improve performance and introspection support of comparison
methods created by functool.total_ordering.
2015-01-01 15:23:12 +02:00
Serhiy Storchaka bad1257c96 Issue #22777: Test pickling with all protocols. 2014-12-15 14:03:42 +02:00
Raymond Hettinger 4d58897fdb Issue 22184: Early detection and reporting of missing lru_cache parameters 2014-08-12 12:44:52 -07:00
Serhiy Storchaka b12cb6a550 Issue #19535: Fixed test_docxmlrpc, test_functools, test_inspect, and
test_statistics when python is run with -OO.
2013-12-08 18:16:18 +02:00
Zachary Ware 101d9e7250 Issue 19572: More silently skipped tests explicitly skipped. 2013-12-08 00:44:27 -06:00
Zachary Ware 9fe6d86709 Issue 19572: More silently skipped tests explicitly skipped. 2013-12-08 00:20:35 -06:00
Christian Heimes d062892542 Issue #19681: Apply a quick and minimal band-aid.
The flaky buildbots make it hard to detect real issue. This is just a temporary fix until we agree
on a permanent solution.
2013-11-22 01:22:47 +01:00
Nick Coghlan f4cb48a72b Issue #4331: Added functools.partialmethod
Initial patch by Alon Horev
2013-11-03 16:41:46 +10:00
Nick Coghlan f05d981f58 Close #10042: functools.total_ordering now handles NotImplemented
(Patch by Katie Miller)
2013-10-02 00:02:03 +10:00
Nick Coghlan 24c05bc154 Close issue 17482: don't overwrite __wrapped__ 2013-07-15 21:13:08 +10:00
Łukasz Langa 3720c77e30 Issue #18244: Adopt C3-based linearization in functools.singledispatch for improved ABC support 2013-07-01 16:00:38 +02:00
Łukasz Langa 7f7a67aac8 Fixed #18150: duplicate test inside TestSingleDispatch
Thanks to Vajrasky Kok for the patch
2013-06-07 22:25:27 +02:00
Łukasz Langa 6f69251980 Add reference implementation for PEP 443
PEP accepted: http://mail.python.org/pipermail/python-dev/2013-June/126734.html
2013-06-05 12:20:24 +02:00
Raymond Hettinger 6c2078d545 merge 2013-03-04 02:58:40 -05:00
Raymond Hettinger 0392342673 Add test for RLock in the lru_cache(). 2013-03-04 02:52:50 -05:00
Serhiy Storchaka ca4220be1f Issue #17122: Fix and cleanup test_functools.py. 2013-02-05 22:12:59 +02:00
Serhiy Storchaka b6a53404b7 Issue #6083: Fix multiple segmentation faults occured when PyArg_ParseTuple
parses nested mutating sequence.
2013-02-04 12:57:16 +02:00
Serhiy Storchaka 1d0bb9c8f9 Issue #6083: Fix multiple segmentation faults occured when PyArg_ParseTuple
parses nested mutating sequence.
2013-02-04 12:54:04 +02:00
Serhiy Storchaka 19c4e0df29 Issue #6083: Fix multiple segmentation faults occured when PyArg_ParseTuple
parses nested mutating sequence.
2013-02-04 12:47:24 +02:00
Serhiy Storchaka a4fdd599e2 Fix skip conditions in some docstings tests. 2013-01-28 13:26:25 +02:00
Serhiy Storchaka 8e0ae2a4f0 Fix skip conditions in some docstings tests. 2013-01-28 13:25:44 +02:00
Serhiy Storchaka f011881d7d Issue #17041: Fix testing when Python is configured with the
--without-doc-strings.
2013-01-27 20:04:26 +02:00
Serhiy Storchaka 26f1166510 Issue #17041: Fix testing when Python is configured with the
--without-doc-strings.
2013-01-27 20:03:39 +02:00
Serhiy Storchaka 9d0add0c7e Issue #17041: Fix testing when Python is configured with the
--without-doc-strings.
2013-01-27 19:47:45 +02:00
Antoine Pitrou 3354327113 Fix whitespace. 2012-11-13 21:36:21 +01:00
Antoine Pitrou b5b3714168 Issue #12428: Add a pure Python implementation of functools.partial().
Patch by Brian Thorne.
2012-11-13 21:35:40 +01:00
Meador Inge ff7f64ca0e Issue #13544: Add __qualname__ to functools.WRAPPER_ASSIGNMENTS.
Patch by Filip Gruszczyński.
2011-12-11 22:37:31 -06:00
Raymond Hettinger cd9fdfd652 Issue 13227: Option to make the lru_cache() type specific (suggested by Andrew Koenig). 2011-10-20 08:57:45 -07:00
Raymond Hettinger d8886fc831 Merge 2011-10-16 00:00:51 -07:00
Raymond Hettinger 4b779b3785 Issue 13177: Make tracebacks more readable by avoiding chained exceptions in the lru_cache. 2011-10-15 23:50:42 -07:00
Raymond Hettinger e7a2430dde Fix __hash__ in functools.cmp_to_key() to work with collections.Hashable. 2011-05-03 11:16:36 -07:00
Raymond Hettinger 003be52932 Fix __hash__ in functools.cmp_to_key() to work with collections.Hashable. 2011-05-03 11:01:32 -07:00
Raymond Hettinger 7ab9e22e34 Issue #11707: Fast C version of functools.cmp_to_key() 2011-04-05 02:33:54 -07:00
Raymond Hettinger 23f9fc3448 Issue #10042: Fixed the total_ordering decorator to handle cross-type
comparisons that could lead to infinite recursion.
2011-01-08 07:01:56 +00:00
Alexander Belopolsky 41e422a4ff Issue #4113: Added custom __repr__ method to functools.partial. 2010-12-01 20:05:49 +00:00
Raymond Hettinger c79fb0e52d Issue 10593: Adopt Nick's suggestion for an lru_cache with maxsize=None. 2010-12-01 03:45:41 +00:00
Raymond Hettinger 7496b4171e Add example, tighten text, and minor clean-ups. 2010-11-30 19:15:45 +00:00
Nick Coghlan 234515afe5 Issue 10586: change the new functools.lru_cache implementation to expose the maximum and current cache sizes through the public statistics API. This API is now a single function that returns a named tuple. 2010-11-30 06:19:46 +00:00
Ezio Melotti b3aedd4862 #9424: Replace deprecated assert* methods in the Python test suite. 2010-11-20 19:04:17 +00:00