summaryrefslogtreecommitdiffstats
path: root/Lib/copy.py
Commit message (Collapse)AuthorAgeFilesLines
* gh-109868: Skip deepcopy memo check for empty memo (GH-109869)Pieter Eendebak2023-09-291-5/+5
|
* gh-108751: Add copy.replace() function (GH-108752)Serhiy Storchaka2023-09-061-0/+13
| | | | | | | | | It creates a modified copy of an object by calling the object's __replace__() method. It is a generalization of dataclasses.replace(), named tuple's _replace() method and replace() methods in various classes, and supports all these stdlib classes.
* gh-100815: Normalize `types` module usage in `copy` module (#100816)Nikita Sobolev2023-01-071-9/+7
|
* gh-99482: remove `jython` compatibility parts from stdlib and tests (#99484)Nikita Sobolev2022-12-231-11/+1
|
* gh-90494: Reject 6th element of the __reduce__() tuple (GH-93609)Serhiy Storchaka2022-06-091-1/+1
| | | | | copy.copy() and copy.deepcopy() now always raise a TypeError if __reduce__() returns a tuple with length 6 instead of silently ignore the 6th item or produce incorrect result.
* bpo-45752: Remove "array" from list of things that cannot be copied in ↵Alex Waygood2021-11-141-2/+2
| | | | | `copy` module docstring (GH-29555) Automerge-Triggered-By: GH:asvetlov
* bpo-40792: Make the result of PyNumber_Index() always having exact type int. ↵Serhiy Storchaka2020-05-281-0/+1
| | | | | | | | | | | | (GH-20443) Previously, the result could have been an instance of a subclass of int. Also revert bpo-26202 and make attributes start, stop and step of the range object having exact type int. Add private function _PyNumber_Index() which preserves the old behavior of PyNumber_Index() for performance to use it in the conversion functions like PyLong_AsLong().
* bpo-38293: Allow shallow and deep copying of property objects (GH-16438)Guðni Natan Gunnarsson2020-01-121-1/+2
| | | | | | | | | | | | | | | | | | Copying property objects results in a TypeError. Steps to reproduce: ``` >>> import copy >>> obj = property() >>> copy.copy(obj) ```` This affects both shallow and deep copying. My idea for a fix is to add property objects to the list of "atomic" objects in the copy module. These already include types like functions and type objects. I also added property objects to the unit tests test_copy_atomic and test_deepcopy_atomic. This is my first PR, and it's highly likely I've made some mistake, so please be kind :) https://bugs.python.org/issue38293
* bpo-11572: Make minor improvements to copy module (GH-8208)Berker Peksag2018-07-091-20/+9
| | | | | | | * When doing getattr lookups with a default of "None", it now uses an "is" comparison against None which is more correct * Removed outdated code Patch by Brandon Rhodes.
* Issue #26167: Minimized overhead in copy.copy() and copy.deepcopy().Serhiy Storchaka2016-03-061-66/+49
| | | | | Optimized copying and deepcopying bytearrays, NotImplemented, slices, short lists, tuples, dicts, sets.
* Issue #26202: copy.deepcopy() now correctly copies range() objects withSerhiy Storchaka2016-01-281-1/+0
| | | | non-atomic attributes.
* Issue #25718: Fixed copying object with state with boolean value is false.Serhiy Storchaka2015-11-301-2/+2
|\
| * Issue #25718: Fixed copying object with state with boolean value is false.Serhiy Storchaka2015-11-301-2/+2
| |
* | Issue #20289: The copy module now uses pickle protocol 4 (PEP 3154) andSerhiy Storchaka2015-03-241-2/+2
| | | | | | | | | | supports copying of instances of classes whose __new__ method takes keyword-only arguments.
* | improve idioms (closes #20642)Benjamin Peterson2014-05-041-5/+3
|/ | | | Patch by Claudiu Popa.
* Issue #20791: copy.copy() now doesn't make a copy when the input is a bytes ↵Antoine Pitrou2014-02-271-1/+1
| | | | object. Initial patch by Peter Otten.
* Issue #11480: Fixed copy.copy to work with classes with custom metaclasses.Alexandre Vassalotti2013-12-011-0/+8
| | | | Patch by Daniel Urban.
* #11572: improvements to copy module tests along with removal of old test suiteSandro Tosi2011-08-051-65/+0
|
* don't memoize objects that are their own copies (closes #12422)Benjamin Peterson2011-06-271-5/+7
| | | | Patch mostly by Alex Gaynor.
* Fix running the copy module from the command-line (however use{ful,less} it ↵Antoine Pitrou2010-09-041-1/+2
| | | | may be).
* Issue #1100562: Fix deep-copying of objects derived from the list and dict ↵Antoine Pitrou2010-09-041-11/+23
| | | | | | types. Patch by Michele Orrù and Björn Lindqvist.
* Merged revisions 76571 via svnmerge fromAntoine Pitrou2009-11-281-0/+4
| | | | | | | | | | svn+ssh://pythondev@svn.python.org/python/trunk ........ r76571 | antoine.pitrou | 2009-11-28 16:55:58 +0100 (sam., 28 nov. 2009) | 3 lines Issue #1515: Enable use of deepcopy() with instance methods. Patch by Robert Collins. ........
* Merged revisions 72669 via svnmerge fromAntoine Pitrou2009-05-151-1/+3
| | | | | | | | | | svn+ssh://pythondev@svn.python.org/python/trunk ........ r72669 | antoine.pitrou | 2009-05-15 18:54:52 +0200 (ven., 15 mai 2009) | 3 lines Issue #2116: Weak references and weak dictionaries now support copy()ing and deepcopy()ing. ........
* Rename the repr module to reprlib.Alexandre Vassalotti2008-05-161-10/+9
| | | | | | | | | | | Merged revisions 63357 via svnmerge from svn+ssh://pythondev@svn.python.org/python/trunk ........ r63357 | alexandre.vassalotti | 2008-05-16 02:58:49 -0400 (Fri, 16 May 2008) | 2 lines Changed references to the reprlib module to use its new name. ........
* Rename copy_reg module to copyreg.Alexandre Vassalotti2008-05-111-1/+1
| | | | | | | | | | | | | | | Updated documentation. Merged revisions 63042 via svnmerge from svn+ssh://pythondev@svn.python.org/python/trunk ........ r63042 | alexandre.vassalotti | 2008-05-11 04:25:28 -0400 (Sun, 11 May 2008) | 5 lines Added module stub for copy_reg renaming in 3.0. Renamed copy_reg to copyreg in the standard library, to avoid spurious warnings and ease later merging to py3k branch. Public documentation remains intact. ........
* Merged revisions ↵Christian Heimes2008-03-251-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 61834,61841-61842,61851-61853,61863-61864,61869-61870,61874,61889 via svnmerge from svn+ssh://pythondev@svn.python.org/python/trunk ........ r61834 | raymond.hettinger | 2008-03-24 07:07:49 +0100 (Mon, 24 Mar 2008) | 1 line Tighten documentation for Random.triangular. ........ r61841 | raymond.hettinger | 2008-03-24 09:17:39 +0100 (Mon, 24 Mar 2008) | 1 line Issue 2460: Make Ellipsis objects copyable. ........ r61842 | georg.brandl | 2008-03-24 10:34:34 +0100 (Mon, 24 Mar 2008) | 2 lines #1700821: add a note to audioop docs about signedness of sample formats. ........ r61851 | christian.heimes | 2008-03-24 20:57:42 +0100 (Mon, 24 Mar 2008) | 1 line Added quick hack for bzr ........ r61852 | christian.heimes | 2008-03-24 20:58:17 +0100 (Mon, 24 Mar 2008) | 1 line Added quick hack for bzr ........ r61853 | amaury.forgeotdarc | 2008-03-24 22:04:10 +0100 (Mon, 24 Mar 2008) | 4 lines Issue2469: Correct a typo I introduced at r61793: compilation error with UCS4 builds. All buildbots compile with UCS2... ........ r61863 | neal.norwitz | 2008-03-25 05:17:38 +0100 (Tue, 25 Mar 2008) | 2 lines Fix a bunch of UnboundLocalErrors when the tests fail. ........ r61864 | neal.norwitz | 2008-03-25 05:18:18 +0100 (Tue, 25 Mar 2008) | 2 lines Try to fix a bunch of compiler warnings on Win64. ........ r61869 | neal.norwitz | 2008-03-25 07:35:10 +0100 (Tue, 25 Mar 2008) | 3 lines Don't try to close a non-open file. Don't let file removal cause the test to fail. ........ r61870 | neal.norwitz | 2008-03-25 08:00:39 +0100 (Tue, 25 Mar 2008) | 7 lines Try to get this test to be more stable: * disable gc during the test run because we are spawning objects and there was an exception when calling Popen.__del__ * Always set an alarm handler so the process doesn't exit if the test fails (should probably add assertions on the value of hndl_called in more places) * Using a negative time causes Linux to treat it as zero, so disable that test. ........ r61874 | gregory.p.smith | 2008-03-25 08:31:28 +0100 (Tue, 25 Mar 2008) | 2 lines Use a 32-bit unsigned int here, a long is not needed. ........ r61889 | georg.brandl | 2008-03-25 12:59:51 +0100 (Tue, 25 Mar 2008) | 2 lines Move declarations to block start. ........
* Merging the py3k-pep3137 branch back into the py3k branch.Guido van Rossum2007-11-061-1/+1
| | | | | | | | | | | | | | No detailed change log; just check out the change log for the py3k-pep3137 branch. The most obvious changes: - str8 renamed to bytes (PyString at the C level); - bytes renamed to buffer (PyBytes at the C level); - PyString and PyUnicode are no longer compatible. I.e. we now have an immutable bytes type and a mutable bytes type. The behavior of PyString was modified quite a bit, to make it more bytes-like. Some changes are still on the to-do list.
* Merged revisions 55795-55816 via svnmerge fromGuido van Rossum2007-06-071-4/+6
| | | | | | | | | | | | | | | | | | | svn+ssh://pythondev@svn.python.org/python/branches/p3yk ........ r55797 | neal.norwitz | 2007-06-07 00:00:57 -0700 (Thu, 07 Jun 2007) | 3 lines Get rid of some remnants of classic classes. types.ClassType == type. Also get rid of almost all uses of the types module and use the builtin name. ........ r55798 | neal.norwitz | 2007-06-07 00:12:36 -0700 (Thu, 07 Jun 2007) | 1 line Remove a use of types, verify commit hook works ........ r55809 | guido.van.rossum | 2007-06-07 11:11:29 -0700 (Thu, 07 Jun 2007) | 2 lines Fix syntax error introduced by Neal in last checkin. ........
* Register a dispatcher for str8. (This makes test_copy.py pass again.)Walter Dörwald2007-06-071-4/+1
| | | | Make registeration of str dispatcher unconditional.
* Merged revisions 55007-55179 via svnmerge fromGuido van Rossum2007-05-071-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | svn+ssh://pythondev@svn.python.org/python/branches/p3yk ........ r55077 | guido.van.rossum | 2007-05-02 11:54:37 -0700 (Wed, 02 May 2007) | 2 lines Use the new print syntax, at least. ........ r55142 | fred.drake | 2007-05-04 21:27:30 -0700 (Fri, 04 May 2007) | 1 line remove old cruftiness ........ r55143 | fred.drake | 2007-05-04 21:52:16 -0700 (Fri, 04 May 2007) | 1 line make this work with the new Python ........ r55162 | neal.norwitz | 2007-05-06 22:29:18 -0700 (Sun, 06 May 2007) | 1 line Get asdl code gen working with Python 2.3. Should continue to work with 3.0 ........ r55164 | neal.norwitz | 2007-05-07 00:00:38 -0700 (Mon, 07 May 2007) | 1 line Verify checkins to p3yk (sic) branch go to 3000 list. ........ r55166 | neal.norwitz | 2007-05-07 00:12:35 -0700 (Mon, 07 May 2007) | 1 line Fix this test so it runs again by importing warnings_test properly. ........ r55167 | neal.norwitz | 2007-05-07 01:03:22 -0700 (Mon, 07 May 2007) | 8 lines So long xrange. range() now supports values that are outside -sys.maxint to sys.maxint. floats raise a TypeError. This has been sitting for a long time. It probably has some problems and needs cleanup. Objects/rangeobject.c now uses 4-space indents since it is almost completely new. ........ r55171 | guido.van.rossum | 2007-05-07 10:21:26 -0700 (Mon, 07 May 2007) | 4 lines Fix two tests that were previously depending on significant spaces at the end of a line (and before that on Python 2.x print behavior that has no exact equivalent in 3.0). ........
* Rip out all the u"..." literals and calls to unicode().Guido van Rossum2007-05-021-1/+1
|
* Remove duplicate refs to int from int/long unification presumably. (There ↵Neal Norwitz2007-02-271-2/+1
| | | | might be more refs like these.)
* - PEP 3106: dict.iterkeys(), .iteritems(), .itervalues() are now gone;Guido van Rossum2007-02-111-3/+3
| | | | | | | | | | and .keys(), .items(), .values() return dict views. The dict views aren't fully functional yet; in particular, they can't be compared to sets yet. but they are useful as "iterator wells". There are still 27 failing unit tests; I expect that many of these have fairly trivial fixes, but there are so many, I could use help.
* Fix most trivially-findable print statements.Guido van Rossum2007-02-091-17/+17
| | | | | | | | | There's one major and one minor category still unfixed: doctests are the major category (and I hope to be able to augment the refactoring tool to refactor bona fide doctests soon); other code generating print statements in strings is the minor category. (Oh, and I don't know if the compiler package works.)
* Rip out 'long' and 'L'-suffixed integer literals.Guido van Rossum2007-01-151-3/+3
| | | | (Rough first cut.)
* SF patch 1495675: Remove types.InstanceType and new.instanceGuido van Rossum2006-05-261-43/+0
| | | | (Collin Winter)
* Whitespace normalization.Tim Peters2006-02-261-1/+1
|
* - Patch 1433928:Guido van Rossum2006-02-251-1/+3
| | | | | | | | - The copy module now "copies" function objects (as atomic objects). - dict.__getitem__ now looks for a __missing__ hook before raising KeyError. - Added a new type, defaultdict, to the collections module. This uses the new __missing__ hook behavior added to dict (see above).
* SF bug #1219361 Fix typoRaymond Hettinger2005-06-131-1/+1
|
* Build with --disable-unicode again. Fixes #1158607.Martin v. Löwis2005-03-081-2/+2
| | | | Will backport to 2.4.
* Reduce the usage of the types module.Raymond Hettinger2005-02-071-14/+14
|
* Refactor the copy dispatcher code in copy.py. Simplifies and shortensRaymond Hettinger2004-03-081-35/+17
| | | | the code by grouping common cases together.
* Copy builtin functions as atomic. Fixes #746304. Will backport to 2.2.Martin v. Löwis2003-06-141-0/+2
|
* SF patch 707900, fixing bug 702858, by Steven Taschuk.Guido van Rossum2003-06-131-0/+1
| | | | | Copying a new-style class that had a reference to itself didn't work. (The same thing worked fine for old-style classes.)
* Get rid of many apply() calls.Guido van Rossum2003-02-271-2/+2
|
* Whitespace normalization.Tim Peters2003-02-191-1/+1
|
* Remove now unused _better_reduce.Guido van Rossum2003-02-191-1/+1
|
* Use __reduce_ex__ in copy.py. The test_*copy_cant() tests are simpler again.Guido van Rossum2003-02-191-22/+34
|
* Somehow, copy() of a classic class object was handledGuido van Rossum2003-02-071-0/+1
| | | | | | atomically, but deepcopy() didn't support this at all. I don't see any reason for this, so I'm adding ClassType to the set of types that are deep-copied atomically.
* Add support for copy_reg.dispatch_table.Guido van Rossum2003-02-071-48/+50
| | | | | Rewrote copy() and deepcopy() without avoidable try/except statements; getattr(x, name, None) or dict.get() are much faster than try/except.