Path: csiph.com!eternal-september.org!feeder.eternal-september.org!feeds.phibee-telecom.net!newsfeed.xs4all.nl!newsfeed7.news.xs4all.nl!nzpost1.xs4all.net!not-for-mail Return-Path: X-Original-To: python-announce-list@python.org Delivered-To: python-announce-list@mail.python.org X-Spam-Status: OK 0.003 X-Spam-Evidence: '*H*': 0.99; '*S*': 0.00; 'url:pypi': 0.03; 'cpython': 0.05; 'dynamically': 0.07; 'indexing': 0.07; 'strings.': 0.07; 'subject:ANN': 0.07; 'subject:released': 0.07; '__init__': 0.09; 'instance.': 0.09; 'merged': 0.09; 'runtime': 0.09; 'url:github': 0.09; 'warn': 0.09; 'bug': 0.10; 'comparison.': 0.16; 'containers': 0.16; 'fix:': 0.16; 'iteration.': 0.16; 'url:issues': 0.16; 'documented': 0.18; 'frameworks': 0.18; 'skip:` 10': 0.18; 'skip:` 20': 0.18; 'language': 0.19; 'discovery': 0.22; 'mostly': 0.27; 'message- id:@mail.gmail.com': 0.27; 'sequence': 0.27; 'callable': 0.29; 'comparison': 0.29; 'download:': 0.29; 'methods.': 0.29; 'tail': 0.29; 'testing.': 0.29; '-----': 0.29; 'raise': 0.29; 'code': 0.30; 'fixed': 0.31; 'generally': 0.32; 'url:python': 0.33; 'received:google.com': 0.35; 'list,': 0.36; 'project': 0.36; 'url:org': 0.36; 'faster': 0.36; 'subject:: ': 0.37; 'release': 0.37; 'version': 0.38; 'skip:p 20': 0.38; 'skip:- 20': 0.39; 'test': 0.39; 'data': 0.39; 'rather': 0.39; 'to:addr:python.org': 0.40; 'skip:n 10': 0.62; 'improved': 0.63; 'complete': 0.63; 'hours': 0.65; 'inherit': 0.66; '100%': 0.72; '35%': 0.84; 'benchmark': 0.84; 'dict,': 0.84; 'issues:': 0.84; 'source:': 0.84; 'subject:skip:S 10': 0.84; 'upgrade.': 0.84; 'url:77': 0.84; 'announcing': 0.91; 'url:reference': 0.91 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:date:message-id:subject:from:to:content-type; bh=KYwcB3S91NqyCdGtiQs+Sh04ne/TgRz4svQ6RkC+V58=; b=VUUoL6jdQ2pgMp2PdFCUt4OLLBefcjkXBrn520aLbvk13TEFbLjOxTDY57t5ShULHL n3x2L7kj9wEk/szU73WkxJ4lOtOd0LaKEhLvaHBekNIwXooCjEdWZmM8DBr+Q4kQVMxR uv211AfIgTZG2KhjrQy9Sa5wL1ZuIGGNFYPiPBm8MMd65Mo3fA3ArE7yNEcqLa4E2HOj jWhsHYoBYHLOxvn+IN4K1IY+5ajfrRpyRWkNYQGQkb1jgVa5aWBua96p1Od6xjTwQc/0 8CqqGwcdfA2GG/7y6m2x/KGQ99NzAL/0EBxqnFodTeDWGjp/iQrvXTJre4bJtqi/wfYS u+Gg== MIME-Version: 1.0 X-Received: by 10.107.15.31 with SMTP id x31mr8098661ioi.51.1445400400929; Tue, 20 Oct 2015 21:06:40 -0700 (PDT) Date: Tue, 20 Oct 2015 21:06:40 -0700 Subject: ANN: SortedContainers 1.4.2 released From: Grant Jenks To: python-announce-list@python.org Content-Type: text/plain; charset=UTF-8 X-Mailman-Approved-At: Thu, 22 Oct 2015 09:40:02 +0200 X-BeenThere: python-announce-list@python.org X-Mailman-Version: 2.1.20+ Precedence: list List-Id: Announcement-only list for the Python programming language List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Approved: python-announce-list@python.org Newsgroups: comp.lang.python.announce Message-ID: Lines: 57 NNTP-Posting-Host: 2001:888:2000:d::a6 X-Trace: 1445499603 news.xs4all.nl 23836 [2001:888:2000:d::a6]:45489 X-Complaints-To: abuse@xs4all.nl Xref: csiph.com comp.lang.python.announce:1906 Announcing the release of SortedContainers version 1.4.2 What is SortedContainers? ------------------------- SortedContainers is an Apache2-licensed, pure-Python implementation of sorted list, sorted dict, and sorted set data types that is fast-as-C implementations with 100% code coverage and hours of stress testing. The project is fully documented with performance benchmarks and comparisons to alternative implementations. What's new in 1.4.2? -------------------- * Updated docs to warn against editing sorted containers during iteration. Don't do it. * Updated SortedList* comparisons to match Sequence comparison as described in CPython Language Reference Section 5.9. https://docs.python.org/2/reference/expressions.html This also lead to the discovery of a bug in the blist.sortedlist implementation (filed as Issue #77 in their bug tracker). https://github.com/DanielStutzbach/blist/issues/77 * Updated SortedSet comparison to raise NotImplemented on type mismatch. * Bug Fix: Fixed reference to self._dict in sorteddict.ValuesView.count. * Bug Fix: SortedSet.__ior__ now calls `update` rather than `union`. * Improved performance of SortedList.__getitem__ by 35% for head and tail indexing. * Improved performance of SortedList.pop by 35% by inlining fast-paths of internal indexing methods. * Improved performance of `del sorted_list[:]` by simply calling `clear`. * Improved performance of `sorted_list[:] = values` by simply calling `clear` then `update`. * Updated SortedListWithKey to inherit directly from SortedList. Removed redundant methods. Merged sortedlistwithkey.py into sortedlist.py. * Updated SortedList to accept a key-argument callable that will dynamically return a SortedListWithKey instance. * Added new __init__ benchmark comparison. SortedContainers is generally 5-10x faster than other implementations. * Added reference to ruamel.ordereddict.sorteddict on performance comparison page at http://www.grantjenks.com/docs/sortedcontainers/performance.html * Removed SortedList._slice in favor of slice.indices. * Removed SortedList.as_list in favor of `list(sorted_list)`. * Updated benchmarks using CPython 2.7.10 and CPython 3.4.3. See docs for complete version strings. * Added CPython 3.5 runtime to test frameworks configs. * Added docs reference to Debian distributions at python-sortedcontainers and python3-sortedcontainers. Links ----- - Documentation: http://www.grantjenks.com/docs/sortedcontainers/ - Download: https://pypi.python.org/pypi/sortedcontainers - Source: https://github.com/grantjenks/sorted_containers - Issues: https://github.com/grantjenks/sorted_containers/issues This release is mostly backwards-compatible. Please upgrade.