Path: csiph.com!fu-berlin.de!uni-berlin.de!not-for-mail From: Shawn Brown <03sjbrown@gmail.com> Newsgroups: comp.lang.python.announce Subject: ANN: datatest 0.9.1 released (test driven data-wrangling) Date: Fri, 22 Jun 2018 10:37:21 -0400 Lines: 35 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 risa+oRefVXOdZc2Rb5XxQE5YoJFeyiwktsTrt+V9vWg== Return-Path: <03sjbrown@gmail.com> X-Original-To: python-announce-list@python.org Delivered-To: python-announce-list@mail.python.org X-Spam-Status: OK 0.001 X-Spam-Evidence: '*H*': 1.00; '*S*': 0.00; 'url:pypi': 0.03; 'subject:released': 0.05; 'subject:ANN': 0.07; 'unittest': 0.07; 'url-ip:162.242.198.235/32': 0.07; 'url-ip:162.242.198/24': 0.07; 'url-ip:162.242/16': 0.07; 'pandas': 0.09; 'released.': 0.09; '"&"': 0.16; '"|"': 0.16; '3.6,': 0.16; 'dependencies': 0.16; 'intersection': 0.16; 'operators.': 0.16; 'received:mail- lf0-x244.google.com': 0.16; 'sfxlen:0': 0.16; 'url:project': 0.16; 'wildcards': 0.16; 'python': 0.16; 'files.': 0.17; '-----': 0.19; 'subject:data': 0.21; 'to:2**1': 0.24; '----------': 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; 'url-ip:151.101.192/24': 0.26; 'announce': 0.27; 'url- ip:151.101.0/24': 0.27; 'url-ip:151.101.128/24': 0.27; 'url- ip:151.101.64/24': 0.27; '(like': 0.27; 'message- id:@mail.gmail.com': 0.29; "i'm": 0.31; 'url-ip:192.30/16': 0.31; 'url:io': 0.31; 'received:google.com': 0.33; '3.1': 0.33; 'more...': 0.33; 'pytest': 0.33; 'subject:test': 0.33; 'url:readthedocs': 0.33; 'test': 0.33; 'testing': 0.34; 'url- ip:151.101/16': 0.34; 'url-ip:151/8': 0.34; 'clear': 0.35; 'subject:)': 0.36; 'url:en': 0.37; 'next': 0.37; 'style': 0.37; 'to:no real name:2**1': 0.37; 'driven': 0.38; 'loading': 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; 'subject: (': 0.38; 'supports': 0.38; 'version': 0.39; 'subject:-': 0.39; 'url:org': 0.40; 'through': 0.61; 'more': 0.61; 'url:tutorial': 0.62; 'analysis.': 0.70; 'improved': 0.79; 'examples.': 0.84; 'excel,': 0.84; 'url:stable': 0.84 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=iwq7b50UMUv7XBzGb2MfYjGlaadKntH6MpdTMbygvOw=; b=ff6lkpUQRqVjNI8ZYAZ4M2YaXaff1xniEgc6nBbXDE/f+hNNhkWTQGO4IptAcodINp NpdWFCUbAt9G45rBb3b5fANy7Br4dkP5xoKgF2hTRmLVle8tzkOdEB4bZVWfI3bNEIRM 4IysC0+mRMKvrvHlQfVt1Gvtofw4nYQn7QnXfxvfAbyks3MM2KER+QhWThcsQWe91EXv BPtBIWWwQaViEirWrNx4+/+UUEHsDZGKRenwcVlr6N7MD4ZeFnda7H4mT95rlrY/uDCw 2DXhNlwbuK1/fMfxwKZBjsF1CW8YQaH1BR214OANGE1T/+qzG1XRhsYHN2mXPM32eJGA CcAg== 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=iwq7b50UMUv7XBzGb2MfYjGlaadKntH6MpdTMbygvOw=; b=c/hYh/zGBQAJxe1tvI/QqJHPT23Y9ELPYb+csJ3PKAr7TN6uuextPEE+XTB5cWBn7/ KAOiribtTJPefieq1EOTQNWCzGm12KupOuWvsyqijz+umK3Tl+OMs6CrpOeQqGeEUm0/ gmkQjyTxbMYPJILa9laEFryBsUZZ74aYzhIHz1xMMbkzffNWNVu+aN9U8O1IHziX/xQe pwUmhJpdOnc+iGMKFwFAHIUclYdKL/cxlOQk9XlMym1D2xwiQIC8yEIBvKEdPzb5Y8qR ogkHnu0ZENH8cdtDYckL6HxRDKOLPbb/xQzeuz77SqSjyd2CnNH91+E6BigUyPhMwLly gWWg== X-Gm-Message-State: APt69E06uSnKJiwkfakxuRCgHyYF4QPttbsEkDHsXeZCI7EtpIdDfecf oiLUpi5FYjfTCGifDaZRte3hjn7j4u8EOcQeym8f3w== X-Google-Smtp-Source: ADUXVKJaXmgOoyQ3NAmB/muo40hiis/fXTO2rRCU026jkaq0RS/IVKxYdch8SMo8X6yGQie95HyQybPyIOXmwR41eWc= X-Received: by 2002:a2e:9614:: with SMTP id v20-v6mr1366558ljh.127.1529678262497; Fri, 22 Jun 2018 07:37:42 -0700 (PDT) X-Mailman-Approved-At: Fri, 22 Jun 2018 10:40:59 -0400 X-Content-Filtered-By: Mailman/MimeDel 2.1.26 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:2891 Hello, I'm happy to announce the next version of datatest has been released. About ----- Datatest provides tools for test driven data-wrangling and analysis. It supports both pytest and unittest style testing. * Docs: http://datatest.readthedocs.io/ * PyPI: https://pypi.org/project/datatest/ * Devel: https://github.com/shawnbrown/datatest Datatest has no hard dependencies and supports Python 2.6, 2.7, 3.1 through 3.6, PyPy, and PyPy3. What's New ---------- * Supports PyTest with a bundled version of the datatest plugin. * Added tuple- and wildcard-predicates for more expressive validation. * Fully composable data-allowances using UNION and INTERSECTION via "|" and "&" operators. * Added support for incremental testing with the 'mandatory' marker. * Improved data loading now supports shell-style wildcards (like "*.csv"), Pandas DataFrames, MS Excel, and DBF files. * New introductory docs: https://datatest.readthedocs.io/en/stable/tutorial/introduction.html * Added Sphinx-tabs style docs for clear separation of pytest and unittest style examples. * And more...