Path: csiph.com!fu-berlin.de!uni-berlin.de!not-for-mail From: Grant Jenks Newsgroups: comp.lang.python.announce Subject: ANN: Sorted Containers 2.0.3 Released Date: Thu, 31 May 2018 12:40:57 -0700 Lines: 62 Approved: python-announce-list@python.org Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" X-Trace: news.uni-berlin.de NToD1c252YWItMhb7HYU+g2S+Y9MmFlfk/CoITb3BYoA== Return-Path: X-Original-To: python-announce-list@python.org Delivered-To: python-announce-list@mail.python.org X-Spam-Status: OK 0.006 X-Spam-Evidence: '*H*': 0.99; '*S*': 0.00; 'url:pypi': 0.03; 'base.': 0.04; 'repository': 0.05; 'sphinx': 0.05; 'subject:ANN': 0.07; 'dict': 0.09; 'methods,': 0.09; 'refactored': 0.09; 'semantics': 0.09; 'url:issues': 0.09; 'containers': 0.16; 'maintainable': 0.16; 'projects:': 0.16; 'subject:Released': 0.16; 'types:': 0.16; 'ways:': 0.16; 'wrongly': 0.16; 'python': 0.16; 'instead.': 0.17; "python's": 0.17; '-----': 0.19; 'primary': 0.19; 'documented': 0.21; 'removed.': 0.21; 'replaced': 0.21; 'skip:` 10': 0.21; 'changes,': 0.24; 'url-ip:151.101.0.223/32': 0.25; 'url- ip:151.101.128.223/32': 0.25; 'url-ip:151.101.192.223/32': 0.25; 'url-ip:151.101.64.223/32': 0.25; 'changes': 0.26; 'url- ip:151.101.192/24': 0.26; 'url-ip:151.101.0/24': 0.27; 'url- ip:151.101.128/24': 0.27; 'url-ip:151.101.64/24': 0.27; 'consistent': 0.27; 'message-id:@mail.gmail.com': 0.29; 'url- ip:192.30/16': 0.31; 'source': 0.32; 'received:google.com': 0.33; 'parameter': 0.33; 'url-ip:104.198/16': 0.33; 'raise': 0.33; 'at:': 0.33; 'url-ip:151.101/16': 0.34; 'url-ip:151/8': 0.34; 'code': 0.34; 'mostly': 0.36; 'list': 0.36; 'changed': 0.36; 'interface': 0.36; 'list,': 0.36; 'but': 0.36; 'branch': 0.37; 'core': 0.38; 'includes': 0.38; 'maintained': 0.38; 'stress': 0.38; 'to:addr:python-announce-list': 0.38; 'url- ip:192.30.253.112/32': 0.38; 'url-ip:192.30.253.113/32': 0.38; 'url-ip:192.30.253/24': 0.38; 'url:github': 0.38; 'still': 0.38; 'history': 0.38; 'supports': 0.38; 'possible': 0.38; 'same.': 0.39; 'method': 0.39; 'drop': 0.39; 'version': 0.39; 'url:org': 0.40; 'january': 0.40; 'skip:b 20': 0.60; 'through': 0.61; 'more': 0.61; 'announcing': 0.62; 'algorithms': 0.63; 'design': 0.63; 'reference': 0.67; '100%': 0.70; 'sometime': 0.70; 'dict,': 0.84; 'inefficient': 0.84; 'issues:': 0.84; 'source:': 0.84; 'upgrade.': 0.84; '2020': 0.91; 'migrating': 0.91 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=W5BefLdH1KaF/y1YWTHhsrAwl34lxTUPGQ5pDWcs5J4=; b=NPBk6bDA0wnfe4aIBm7bAb29mXMRtukg4/zx5+pNUkgroNLRBUcMT57wxVxNLLF6AY YR1yTD6+4DxtwvAnT66DJ9zv9s2Sh9L4ONyS0lKJf4RmUG2VpFOrecCwmOjiY/Hf6pFV JA19XavOBJVZaVgpskH8ex9N7btTOBdrzMDaPFjkBFbtcsQIPouDuRjNPlCVP6jZZLBK j7VbfW5XmGvAM4fB/MKMzZXe7pgRjMyOVURZXp5k1U4h5QDypao7D0E3oAFD1HzJMBl8 LpXkGl+GL7kEnXqTAeiMces6NqoHP7STROECYFp1MsmJZZ7+nA+pFtxMLJmvBpUrMNO+ tTxw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=W5BefLdH1KaF/y1YWTHhsrAwl34lxTUPGQ5pDWcs5J4=; b=EvN0OVm6/0x/DDmGuanbhcYkuNP21fUxEskan//1Zq12t7RhHrPI4LzduruWqpWhEL rrHgIe4L/cFojwBk54DTRPokMLFk0yNfov6E5/iOrjydnVa6u8cKO18hwDM3vQlrfCao Y1/EwsfprdQaMcMI2r0uudUhi9Rw3AUsmo6WxuVsSOdNc7TPLVuGTmdjT229a52icplQ 6BEcZ9p7IHR+hG1JfNF15QQw5sPcgFhCFSrMI+CIufC/olfZANQWyv0wzf1dDT/FpXnu BZW77d/OltsDSMfN06m8Ti5kSBSBTQbk2oqQFSbxPfHoHgnEEzMHUByVwD32fYfiTT5d GZrA== X-Gm-Message-State: ALKqPwccsDU25ellQJ973VAK+nYgPfy4q5BiABWkCAp1hV/w+FseW3RI kiotSukRnW9i5Pj2k121YUqU/4iIjaUoJvafM9zURi8Y X-Google-Smtp-Source: ADUXVKI/mEs+oxKoSvFshhUUVxVV7fzzEhpwLpAN1ZzPiLdY3qTwRYNd54+ethVnA5mVQErlmOPo3/zPBo6lKl5qmXo= X-Received: by 2002:adf:9634:: with SMTP id b49-v6mr6393031wra.253.1527795657957; Thu, 31 May 2018 12:40:57 -0700 (PDT) X-Mailman-Approved-At: Fri, 01 Jun 2018 08:10:31 -0400 X-BeenThere: python-announce-list@python.org X-Mailman-Version: 2.1.26 Precedence: list List-Id: Announcement-only list for the Python programming language List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Mailman-Original-Message-ID: Xref: csiph.com comp.lang.python.announce:2872 Announcing the release of Sorted Containers version 2.0.3 What is Sorted Containers? -------------------------- Sorted Containers 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 2.0.3? -------------------- Version 2 represents a significant update to the source base. The code has been refactored and modernized to embrace Python 3 semantics while also using `autodoc` in Sphinx for more maintainable documentation. The core design and algorithms are all the same. Sorted Containers still supports and is tested on Python 2 but primary development is now on Python 3.6. Version 2 is developed on the `master` branch in the source repository and Version 1 of Sorted Containers will be maintained on branch `v1`. Version 3 of Sorted Containers will be released sometime after January 1, 2020 and will drop support for Python 2. At a high-level, changes can be categorized in three ways: 1. :class:`SortedList` methods `__setitem__`, `append`, `extend`, and `insert` all now raise :exc:`NotImplementedError`. Use `add` or `update` instead. Though it's possible to implement these methods, they were confusing, inefficient and wrongly used by some users. Sorted list implementations that need the functionality are encouraged to do so through subclassing. Branch `v1` contains a reference implementation. 2. :class:`SortedDict` now uses Python 3 semantics for dict views. The `iterkeys`, `iteritems`, `itervalues`, `viewkeys`, `viewitems`, and `viewvalues` methods have all been removed. Use the `keys`, `items`, or `values` methods which now return sorted dict views. :class:`SortedKeysView` has also replaced `SortedDict.iloc` as a better interface for indexing. 3. Method parameter names have changed to be more consistent with Python's built-in data types: `val` has changed to `value`, `idx` has changed to `index`, and `that` has changed to `other`. For a detailed list of changes, see the Release History at: http://www.grantjenks.com/docs/sortedcontainers/history.html The introduction now includes a section on migrating from version 1 as well as from other projects: http://www.grantjenks.com/docs/sortedcontainers/introduction.html#migrating Links ----- - Documentation: http://www.grantjenks.com/docs/sortedcontainers/ - Download: https://pypi.python.org/pypi/sortedcontainers/ - Source: https://github.com/grantjenks/python-sortedcontainers - Issues: https://github.com/grantjenks/python-sortedcontainers/issues This release is mostly backwards-compatible. Please upgrade.