Commit Graph

86 Commits

Author SHA1 Message Date
Raymond Hettinger 6b96ecb0ab Improve clear() method. Keeps key/value refcnts >= 1 until final dict.clear() so that decrefs to zero won't trigger arbitrary code . Also runs a bit faster. 2010-04-03 03:14:28 +00:00
Raymond Hettinger 3928276e64 Clear cyclical references in list based OrderedDict. 2010-04-03 00:39:26 +00:00
Raymond Hettinger e30bc38ce9 Improve code clarity a bit. 2010-03-09 11:29:10 +00:00
Raymond Hettinger aba2293862 Have links in OrderedDicts be native Python lists instead
of a custom class with __slots__.  This simplifies the
code a bit, reduces memory consumption, improves speed,
and eliminates the need for weak reference proxies.
2010-03-09 09:58:53 +00:00
Raymond Hettinger 9bd3508530 Add nicer docstrings to namedtuples().
Provides better tooltips and looks better in help().
2010-03-09 09:01:46 +00:00
Georg Brandl 7d4b759bd9 Remove unused import. 2010-02-06 22:49:47 +00:00
Raymond Hettinger 5dfc7f9fc8 Issue 6370: Performance issue with collections.Counter(). 2009-06-29 19:10:29 +00:00
Alexandre Vassalotti cb73bdac95 Revert r73401 per Raymond Hettinger's request.
The rational is the change might cause imcompatiblity problems with
PyYAML. In addition, Raymond wants to kept the different versions of
collections synchronized across Python versions.
2009-06-12 23:03:35 +00:00
Alexandre Vassalotti 450ae573bc Make pickling of OrderedDict instances more efficient. 2009-06-12 21:52:14 +00:00
Raymond Hettinger a68cad13ae Fix field name conflicts for named tuples. 2009-05-27 02:24:45 +00:00
Benjamin Peterson 7c67b03051 using sys._getframe(x), where x > 0 doesnt' work on IronPython 2009-05-05 00:55:24 +00:00
Raymond Hettinger 1355a3dbf6 Minor factoring. 2009-04-08 08:26:55 +00:00
Raymond Hettinger a5cd6375c0 Add docstrings. 2009-04-08 05:39:38 +00:00
Raymond Hettinger e3bc5577e8 Replace the localized min/max calls with normal if/else 2009-04-04 08:46:58 +00:00
Raymond Hettinger 756ab67a98 Have namedtuple's field renamer assign names that
are consistent with the corresponding tuple index.
2009-04-02 22:25:40 +00:00
Raymond Hettinger 2dc90fdfaf Separate initialization from clearing. 2009-03-25 22:41:32 +00:00
Raymond Hettinger e5b78563b6 Make imported name private and wrap long-line. 2009-03-23 18:26:59 +00:00
Raymond Hettinger 906f95e80b Move initialization of root link to __init__. 2009-03-23 04:42:18 +00:00
Raymond Hettinger f1e2df9780 Add more comments. Improve variable names.
Make links clearer by using a Link object
instead of a list.  Use proxy links to avoid
circular references.
2009-03-23 00:08:09 +00:00
Raymond Hettinger c8e81ef508 Fix typo 2009-03-19 23:22:25 +00:00
Raymond Hettinger e980d2d44b * Add implementation notes.
* Re-order methods so that those touching the underlying data
  structure come first and the derived methods come last.
2009-03-19 23:12:41 +00:00
Raymond Hettinger 2412299be9 * Add clearer comment to initialization code.
* Add optional argument to popitem() -- modeled
  after Anthon van der Neut's C version.
* Fix method markup in docs.
2009-03-19 19:59:58 +00:00
Raymond Hettinger 2124599eaa Improve implementation with better underlying data structure
for O(1) deletions.  Big-Oh performance now the same as regular
dictionaries.  Uses a doubly-linked list instead of a list/seq
to track insertion order.
2009-03-19 15:21:10 +00:00
Raymond Hettinger a61ae6922f Use mixin methods where possible. (2.7 only -- these don't all exist in 3.0) 2009-03-18 22:13:20 +00:00
Raymond Hettinger 131af6505a Backport 70140, 70141, 70143, and 70144.
Adds tests, switches from list to deque, fixes __reduce__
which was unnecessarily copying __keys.
2009-03-03 22:59:25 +00:00
Raymond Hettinger 0b15541ae2 Minor simplification. 2009-03-03 21:13:51 +00:00
Raymond Hettinger 9353ea2b85 Make the underlying data structure more private. 2009-03-03 20:53:51 +00:00
Raymond Hettinger 88a9164cdb Backport 70106: Add OrderedDict support to collections.namedtuple(). 2009-03-03 04:51:24 +00:00
Raymond Hettinger bc512d3abd Backport PEP 372: OrderedDict() 2009-03-03 04:45:34 +00:00
Raymond Hettinger 322daea7c3 Issue 1818: collections.namedtuple() to support automatic renaming of invalid fieldnames. 2009-02-10 01:24:05 +00:00
Raymond Hettinger ecf252abac Issue 5021: doctest.testfile should set __name__ 2009-01-27 10:03:04 +00:00
Raymond Hettinger 1bc1c8ac76 Update comments and add an optimized path for Counter.update(). 2009-01-22 09:05:43 +00:00
Raymond Hettinger 4571f347f9 Simplify explanation of multiset operations by removing restrictions on negative inputs. 2009-01-21 20:31:50 +00:00
Raymond Hettinger ae3f068fb5 Make merging easier by formattng comment blocks the same in Py3.1 2009-01-20 03:36:36 +00:00
Raymond Hettinger 562a4ada56 Add Counter() to __all__. 2009-01-20 02:24:38 +00:00
Raymond Hettinger bad1eb2ff3 Build-outs for Counter() class:
* Constructor and update() support keyword args (like their dict counterparts).
* The 'del' statement no longer raises KeyError for missing values.
* Add multiset operations:  __add__, __sub__, __and__, __or__.
2009-01-20 01:19:26 +00:00
Raymond Hettinger 35288c6b6c Speed-up __repr__. Eliminate duplicate tests. Use a from-irmport. 2009-01-13 04:50:35 +00:00
Raymond Hettinger 783d73fc2f Fixup and simplify docstrings and doctests. 2009-01-13 04:13:53 +00:00
Raymond Hettinger aaa6e630f8 Simplify Counter() API. Replace items keyword argument
with a mapping.  Makes Counter() idempotent, makes update()
API the same as Counter.__init__(), makes a more readable
repr, makes the API more dict-like, and allows Steven
Bethard's update() example to work.
2009-01-13 01:05:03 +00:00
Raymond Hettinger f94d7fa5fb Issue 1696199: Add collections.Counter(). 2009-01-12 22:58:41 +00:00
Raymond Hettinger 6ee7bc04f7 Fix namedtuple bug reported by Glenn Linderman. Template did not form correctly if the field names were input in Unicode. 2008-09-25 23:31:52 +00:00
Raymond Hettinger e98839a1f4 Issue3065: Fixed pickling of named tuples. Added tests. 2008-06-09 01:28:30 +00:00
Raymond Hettinger 3c2523c2eb Issue 2903: Add __name__ in globals for namedtuple namespace. 2008-05-30 07:16:53 +00:00
Raymond Hettinger 15b5e55b48 Neaten-up the named tuple docs 2008-01-10 23:00:01 +00:00
Raymond Hettinger e850c466c7 Clarify how to add a field to a named tuple. 2008-01-10 20:37:12 +00:00
Raymond Hettinger e1655088ca Examples for named tuple subclassing should include __slots__ 2008-01-10 19:15:10 +00:00
Raymond Hettinger 581671419f Expand comment. 2008-01-08 02:02:05 +00:00
Raymond Hettinger f5e8af1bb7 Use get() instead of pop() for the optimized version of _replace(). 2008-01-07 20:56:05 +00:00
Raymond Hettinger 9a359210aa Cleanup named tuple subclassing example. 2008-01-07 20:07:38 +00:00
Raymond Hettinger dc55f35f38 Add another named tuple subclassing example. 2008-01-07 09:03:49 +00:00