From jendrikseipp at web.de Tue Jun 5 08:01:59 2018 From: jendrikseipp at web.de (Jendrik Seipp) Date: Tue, 5 Jun 2018 14:01:59 +0200 Subject: Vulture 0.27 Message-ID: <2e0c4eaa-9c65-c783-eb94-c85e488e31f4@web.de> Vulture - Find dead code ======================== Vulture finds unused code in Python programs. This is useful for cleaning up and finding errors in large code bases. If you run Vulture on both your library and test suite you can find untested code. Due to Python's dynamic nature, static code analyzers like Vulture are likely to miss some dead code. Also, code that is only called implicitly may be reported as unused. Nonetheless, Vulture can be a very helpful tool for higher code quality. Download ======== https://github.com/jendrikseipp/vulture http://pypi.python.org/pypi/vulture Features ======== * fast: static code analysis * tested: tests itself and has complete test coverage * complements pyflakes and has the same output syntax * sorts unused classes and functions by size with ``--sort-by-size`` * supports Python 2.7 and Python >= 3.4 News ==== * Report ``while (True): ... else: ...`` as unreachable (thanks @RJ722). * Whitelist Mock.return_value and Mock.side_effect in unittest.mock. * Drop support for Python 2.6 and 3.3. * Improve documentation and test coverage (thanks @RJ722). Cheers Jendrik From nicoddemus at gmail.com Tue Jun 5 13:52:03 2018 From: nicoddemus at gmail.com (Bruno Oliveira) Date: Tue, 5 Jun 2018 14:52:03 -0300 Subject: pytest 3.6.1 Message-ID: pytest 3.6.1 has just been released to PyPI. This is a bug-fix release, being a drop-in replacement. To upgrade:: pip install --upgrade pytest The full changelog is available at http://doc.pytest.org/en/latest/changelog.html. Thanks to all who contributed to this release, among them: * Anthony Sottile * Bruno Oliveira * Jeffrey Rackauckas * Miro Hron?ok * Niklas Meinzer * Oliver Bestwalter * Ronny Pfannschmidt Happy testing, The pytest Development Team From charlesr.harris at gmail.com Wed Jun 6 14:06:48 2018 From: charlesr.harris at gmail.com (Charles R Harris) Date: Wed, 6 Jun 2018 12:06:48 -0600 Subject: NumPy 1.14.4 released. Message-ID: Hi All, On behalf of the NumPy team, I am pleased to announce the release of NumPy 1.14.4. This is a bugfix release for bugs reported following the 1.14.3 release. The most significant fixes are: * fixes for compiler instruction reordering that resulted in NaN's not being properly propagated in `np.max` and `np.min`, * fixes for bus faults on SPARC and older ARM due to incorrect alignment checks. There are also improvements to printing of long doubles on PPC platforms. All is not yet perfect on that platform, the whitespace padding is still incorrect and is to be fixed in numpy 1.15, consequently NumPy still fails some printing-related (and other) unit tests on ppc systems. However, the printed values are now correct. Note that NumPy will error on import if it detects incorrect float32 `dot` results. This problem has been seen on the Mac when working in the Anaconda enviroment and is due to a subtle interaction between MKL and PyQt5. It is not strictly a NumPy problem, but it is best that users be aware of it. See the gh-8577 NumPy issue for more information. The Python versions supported in this release are 2.7 and 3.4 - 3.6. Wheels for all supported versions are available from PIP and source releases are available on github . The source releases were cythonized with Cython 0.28.2 and should be compatible with the upcoming Python 3.7. Contributors ============ A total of 7 people contributed to this release. People with a "+" by their names contributed a patch for the first time. * Allan Haldane * Charles Harris * Marten van Kerkwijk * Matti Picus * Pauli Virtanen * Ryan Soklaski + * Sebastian Berg Pull requests merged ==================== A total of 11 pull requests were merged for this release. * #11104: BUG: str of DOUBLE_DOUBLE format wrong on ppc64 * #11170: TST: linalg: add regression test for gh-8577 * #11174: MAINT: add sanity-checks to be run at import time * #11181: BUG: void dtype setup checked offset not actual pointer for alignment * #11194: BUG: Python2 doubles don't print correctly in interactive shell. * #11198: BUG: optimizing compilers can reorder call to npy_get_floatstatus * #11199: BUG: reduce using SSE only warns if inside SSE loop * #11203: BUG: Bytes delimiter/comments in genfromtxt should be decoded Cheers, Chuck From mal at europython.eu Thu Jun 7 03:31:43 2018 From: mal at europython.eu (M.-A. Lemburg) Date: Thu, 7 Jun 2018 09:31:43 +0200 Subject: EuroPython 2018: Training pass sale starts on Friday at 12:00 CEST Message-ID: <4baa6b0b-d16e-bbfe-dd5f-225cf7c889ee@europython.eu> As we have already announced, access to trainings is not included in our regular conference tickets this year. We have done this to keep the conference ticket prices reasonable, acknowledge the value in the trainings are and to add more flexibility. Two full days of trainings included ----------------------------------- Training passes allow you to access all trainings on the two training days, Monday and Tuesday. Each training will run for 3 hours and they will be scheduled in 3 parallel tracks. Please note: Training access is on a first-come-first-served basis. We don?t provide registration for specific training sessions. A light lunch is served on the training days, which is included in the training pass price. * Business training pass: EUR 295.00 excl. VAT, EUR 354.00 incl. 20% UK VAT (for people using Python to make a living) * Personal training pass: EUR 175.00 incl. 20% UK VAT (for people enjoying Python from home) * Student training pass: EUR 125.00 incl. 20% UK VAT (only available for pupils, students and postdoctoral researchers; please bring your student card or declaration from University, stating your affiliation, starting and end dates of your contract) The trainings pass does not grant you permission to attend the main EuroPython conference days or the sprints. Please get a separate conference ticket for this. Available training sessions --------------------------- We have already selected an initial set of trainings, you can view on our session list: https://ep2018.europython.eu/en/events/sessions/#Training-sessions We will also have a few sponsored trainings, which are free (you don?t need a training pass to attend these). These will be announced in a separate blog post. Only a limited number of training passes available -------------------------------------------------- Since we don?t want to overbook the trainings sessions, we have limited the number of training passes to 200. Training pass sales will start on Friday, June 6, at around 12:00 CEST (that?s 10:00 UTC, 11:00 BST, 13:00 EEST, etc.). Given the experience with the early bird tickets, which sold out in less than 45 minutes, we recommend to get your ticket as soon as you can. Regular conference tickets are selling out much faster than last year as well, so the same recommendation applies to those as well: https://ep2018.europython.eu/en/registration/buy-tickets/ Help spread the word -------------------- Please help us spread this message by sharing it on your social networks as widely as possible. Thank you ! Link to the blog post: https://blog.europython.eu/post/174655358657/europython-2018-training-pass-sale-starts-on Tweet: https://twitter.com/europython/status/1004625811335458818 Enjoy, -- EuroPython 2018 Team https://ep2018.europython.eu/ https://www.europython-society.org/ From phd at phdru.name Wed Jun 6 12:28:51 2018 From: phd at phdru.name (Oleg Broytman) Date: Wed, 6 Jun 2018 18:28:51 +0200 Subject: SQLObject 3.7.0 Message-ID: <20180606162851.dnlowo4ftwyz3ze7@phdru.name> Hello! I'm pleased to announce version 3.7.0, the first stable release of branch 3.7 of SQLObject. What's new in SQLObject ======================= Contributors for this release are Scott Stahl and Christophe Popov. Features -------- * Add signals on commit and rollback; pull request by Scott Stahl. Bug fixes --------- * Fix SSL-related parameters for MySQL-connector (connector uses a different param style). Bug reported by Christophe Popov. Drivers ------- * Remove psycopg1. Driver ``psycopg`` is now just an alias for ``psycopg2``. Tests ----- * Install psycopg2 from `psycopg2-binary`_ package. .. _`psycopg2-binary`: https://pypi.org/project/psycopg2-binary/ For a more complete list, please see the news: http://sqlobject.org/News.html What is SQLObject ================= SQLObject is an object-relational mapper. Your database tables are described as classes, and rows are instances of those classes. SQLObject is meant to be easy to use and quick to get started with. SQLObject supports a number of backends: MySQL, PostgreSQL, SQLite, Firebird, Sybase, MSSQL and MaxDB (also known as SAPDB). Python 2.7 or 3.4+ is required. Where is SQLObject ================== Site: http://sqlobject.org Development: http://sqlobject.org/devel/ Mailing list: https://lists.sourceforge.net/mailman/listinfo/sqlobject-discuss Download: https://pypi.org/project/SQLObject/3.7.0/ News and changes: http://sqlobject.org/News.html StackOverflow: https://stackoverflow.com/questions/tagged/sqlobject Example ======= Create a simple class that wraps a table:: >>> from sqlobject import * >>> >>> sqlhub.processConnection = connectionForURI('sqlite:/:memory:') >>> >>> class Person(SQLObject): ... fname = StringCol() ... mi = StringCol(length=1, default=None) ... lname = StringCol() ... >>> Person.createTable() Use the object:: >>> p = Person(fname="John", lname="Doe") >>> p >>> p.fname 'John' >>> p.mi = 'Q' >>> p2 = Person.get(1) >>> p2 >>> p is p2 True Queries:: >>> p3 = Person.selectBy(lname="Doe")[0] >>> p3 >>> pc = Person.select(Person.q.lname=="Doe").count() >>> pc 1 Oleg. -- Oleg Broytman https://phdru.name/ phd at phdru.name Programmers don't die, they just GOSUB without RETURN. From serge.guelton at telecom-bretagne.eu Thu Jun 7 08:01:20 2018 From: serge.guelton at telecom-bretagne.eu (Serge Guelton) Date: Thu, 7 Jun 2018 14:01:20 +0200 Subject: Pythran - 0.8.6 Message-ID: <20180607120120.GA9284@lakota> Hi there, Pythran just released its 0.8.6 version. A quick reminder: Pythran is a compiler for scientific Python, it can be used to turn Python kernels as: #pythran export _brief_loop(float64[:,:], uint8[:,:], intp[:,:], int[:,:], int[:,:]) def _brief_loop(image, descriptors, keypoints, pos0, pos1): for k in range(len(keypoints)): kr, kc = keypoints[k] for p in range(len(pos0)): pr0, pc0 = pos0[p] pr1, pc1 = pos1[p] descriptors[k,p] = image[kr + pr0, kc + pc0] < image[kr + pr1, kc + pc1] In a native library that runs much faster. It's available on pypi: https://pypi.org/project/pythran/ on conda-forge (linux and osx): https://anaconda.org/conda-forge/pythran and on github: https://github.com/serge-sans-paille/pythran As a fun fact, Pythran is now used as a mean to turn Python code into pure native library used in C++ code base, without Python involved. Some people even use SWIG to turn this code into native libraries called from... Java through JNI :-) Enjoy, Serge From g.rodola at gmail.com Thu Jun 7 11:40:51 2018 From: g.rodola at gmail.com (Giampaolo Rodola') Date: Thu, 7 Jun 2018 17:40:51 +0200 Subject: ANN: psutil 5.4.6 released Message-ID: Hello all, I'm glad to announce the release of psutil 5.4.6: https://github.com/giampaolo/psutil About ===== psutil (process and system utilities) is a cross-platform library for retrieving information on running processes and system utilization (CPU, memory, disks, network) in Python. It is useful mainly for system monitoring, profiling and limiting process resources and management of running processes. It implements many functionalities offered by command line tools such as: ps, top, lsof, netstat, ifconfig, who, df, kill, free, nice, ionice, iostat, iotop, uptime, pidof, tty, taskset, pmap. It currently supports Linux, Windows, OSX, Sun Solaris, FreeBSD, OpenBSD, NetBSD and AIX, both 32-bit and 64-bit architectures, with Python versions from 2.6 to 3.6. PyPy is also known to work. What's new ========== 2018-06-07 **Bug fixes** - #1258: [Windows] Process.username() may cause a segfault (Python interpreter crash). (patch by Jean-Luc Migot) - #1273: net_if_addr() namedtuple's name has been renamed from "snic" to "snicaddr". - #1274: [Linux] there was a small chance Process.children() may swallow AccessDenied exceptions. Links ===== - Home page: https://github.com/giampaolo/psutil - Download: https://pypi.org/project/psutil/#files - Documentation: http://psutil.readthedocs.io - What's new: https://github.com/giampaolo/psutil/blob/master/HISTORY.rst -- Giampaolo - http://grodola.blogspot.com From dan.gass at gmail.com Fri Jun 8 01:02:23 2018 From: dan.gass at gmail.com (Dan Gass) Date: Fri, 8 Jun 2018 00:02:23 -0500 Subject: [baseline 0.2.1] Easy String Baseline Message-ID: I am please to announce the availability of the "baseline" package. This tool streamlines creation and maintenance of tests which compare string output against a baseline. It offers a mechanism to compare a string against a baselined copy and update the baselined copy to match the new value when a mismatch occurs. The update process includes a manual step to facilitate a review of the change before acceptance. The tool uses multi-line string format for string baselines to improve readability for human review. Docs: https://baseline.readthedocs.io/en/latest/ PyPi: https://pypi.org/project/baseline/ Repo: https://github.com/dmgass/baseline License: MIT With Regards, Dan Gass (dan.gass at gmail) *********** Quick Start *********** Create an empty baseline with a triple quoted multi-line string. Place the ending triple quote on a separate line and indent it to the level you wish the string baseline update to be indented to. Add a compare of the string being tested to the baseline string. Then save the file as ``fox.py``: .. code-block:: python from baseline import Baseline expected = Baseline(""" """) test_string = "THE QUICK BROWN FOX\n JUMPS\nOVER THE LAZY DOG." assert test_string == expected Run ``fox.py`` and observe that the ``assert`` raises an exception since the strings are not equal. Because the comparison failed, the tool located the triple quoted baseline string in the source file and updated it with the miscompared value. When the interpretter exited, the tool saved the updated source file but changed the file name to ``fox.update.py``: .. code-block:: python from baseline import Baseline expected = Baseline(""" THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG. """) test_string = "THE QUICK BROWN FOX\n JUMPS\nOVER THE LAZY DOG." assert test_string == expected After reviewing the change with your favorite file differencing tool, accept the change by either manually overwriting the original file or use the ``baseline`` command line tool to scan the directory for updated scripts and accept them: .. code-block:: shell $ python -m baseline * Found updates for: fox.py Hit [ENTER] to update, [Ctrl-C] to cancel fox.update.py -> fox.py Run ``fox.py`` again and observe the ``assert`` does not raise an exception nor is a source file update generated. If in the future the test value changes, the ``assert`` will raise an exception and cause a new source file update to be generated. Simply repeat the review and acceptance step and you are back in business!

baseline 0.2.1 - Easy String Baseline (07-Jun-18) From jsf at jsancho.org Wed Jun 13 06:39:15 2018 From: jsf at jsancho.org (Javier Sancho) Date: Wed, 13 Jun 2018 12:39:15 +0200 Subject: [ANN] PyTables 3.4.4 Message-ID: <2611a916-25ed-4193-5a0a-fe782d843bed@jsancho.org> =========================== Announcing PyTables 3.4.4 =========================== We are happy to announce PyTables 3.4.4 What's new ========== This new release of PyTables adds an environment variable to control the use of embedded libraries and fixed test failures with Python 2.7 and NumPy 1.14.3. The release includes many small bugfixes. In case you want to know more in detail what has changed in this version, please refer to: http://www.pytables.org/release_notes.html You can install it via pip or download a source package with generated PDF and HTML docs from: https://github.com/PyTables/PyTables/releases/v3.4.4 For an online version of the manual, visit: http://www.pytables.org/usersguide/index.html What it is? =========== PyTables is a library for managing hierarchical datasets and designed to efficiently cope with extremely large amounts of data with support for full 64-bit file addressing. PyTables runs on top of the HDF5 library and NumPy package for achieving maximum throughput and convenient use. PyTables includes OPSI, a new indexing technology, allowing to perform data lookups in tables exceeding 10 gigarows (10**10 rows) in less than a tenth of a second. Resources ========= About PyTables: http://www.pytables.org About the HDF5 library: http://hdfgroup.org/HDF5/ About NumPy: http://numpy.scipy.org/ Acknowledgments =============== Thanks to many users who provided feature improvements, patches, bug reports, support and suggestions. See the ``THANKS`` file in the distribution package for a (incomplete) list of contributors. Most specially, a lot of kudos go to the HDF5 and NumPy makers. Without them, PyTables simply would not exist. Share your experience ===================== Let us know of any bugs, suggestions, gripes, kudos, etc. you may have. ---- **Enjoy data!** -- The PyTables Developers From nad at python.org Tue Jun 12 16:29:38 2018 From: nad at python.org (Ned Deily) Date: Tue, 12 Jun 2018 16:29:38 -0400 Subject: [RELEASE] Python 3.7.0rc1 and 3.6.6rc1 are now available Message-ID: <18BD5CA7-EB42-477F-9D14-7EE78CBEB5C2@python.org> Python 3.7.0rc1 and 3.6.6rc1 are now available. 3.7.0rc1 is the final planned release preview of Python 3.7, the next feature release of Python. 3.6.6rc1 is the the release preview of the next maintenance release of Python 3.6, the current release of Python. Assuming no critical problems are found prior to *2018-06-27*, the scheduled release dates for 3.7.0 and 3.6.6, no code changes are planned between these release candidates and the final releases. These release candidates are intended to give you the opportunity to test the new features and bug fixes in 3.7.0 and 3.6.6 and to prepare your projects to support them. We strongly encourage you to test your projects and report issues found to bugs.python.org as soon as possible. Please keep in mind that these are preview releases and, thus, their use is not recommended for production environments. Attention macOS users: there is now a new installer variant for macOS 10.9+ that includes a built-in version of Tcl/Tk 8.6. This variant will become the default version when 3.7.0 releases. Check it out! You can find these releases and more information here: https://www.python.org/downloads/release/python-370rc1/ https://www.python.org/downloads/release/python-366rc1/ -- Ned Deily nad at python.org -- [] From tom.augspurger88 at gmail.com Tue Jun 12 22:33:03 2018 From: tom.augspurger88 at gmail.com (Tom Augspurger) Date: Tue, 12 Jun 2018 21:33:03 -0500 Subject: ANN: Pandas 0.23.1 Released Message-ID: Hi all, I'm happy to announce pandas that pandas 0.23.1 has been released. This is a minor bug-fix release in the 0.23.x series and includes some regression fixes, bug fixes, and performance improvements. We recommend that all users upgrade to this version. See the full whatsnew for a list of all the changes. The release can be installed with conda from the default channel and conda-forge:: conda install pandas Or via PyPI: python -m pip install --upgrade pandas A total of 30 people contributed patches to this release. People with a ?+? by their names contributed a patch for the first time. - Adam J. Stewart - Adam Kim + - Aly Sivji - Chalmer Lowe + - Damini Satya + - Dr. Irv - Gabe Fernando + - Giftlin Rajaiah - Jeff Reback - Jeremy Schendel + - Joris Van den Bossche - Kalyan Gokhale + - Kevin Sheppard - Matthew Roeschke - Max Kanter + - Ming Li - Pyry Kovanen + - Stefano Cianciulli - Tom Augspurger - Uddeshya Singh + - Wenhuan - William Ayd - chris-b1 - gfyoung - h-vetinari - nprad + - ssikdar1 + - tmnhat2001 - topper-123 - zertrin + From vinay_sajip at yahoo.co.uk Wed Jun 13 14:06:51 2018 From: vinay_sajip at yahoo.co.uk (Vinay Sajip) Date: Wed, 13 Jun 2018 18:06:51 +0000 (UTC) Subject: ANN: A new version (0.4.3) of python-gnupg has been released. It contains a security-related change - please update to this version References: <2072830771.8419896.1528913211931.ref@mail.yahoo.com> Message-ID: <2072830771.8419896.1528913211931@mail.yahoo.com> A new version of the Python module which wraps GnuPG has been released. What Changed?=============This is a security-fix release, and all users are strongly encouraged to upgrade.This fix mitigates against CVE-2018-12020. See the discoverer's blog post [6] formore information. Brief summary: * Added --no-verbose to the gpg command line, in case verbose is specified in? gpg.conf - we don't need verbose output. This release [2] has been signed with my code signing key: Vinay Sajip (CODE SIGNING KEY) Fingerprint: CA74 9061 914E AC13 8E66 EADB 9147 B477 339A 9B86 Recent changes to PyPI don't show the GPG signature with the download links.An alternative download source where the signatures are available is the project'sown downloads page [5]. What Does It Do?================The gnupg module allows Python programs to make use of thefunctionality provided by the Gnu Privacy Guard (abbreviated GPG orGnuPG). Using this module, Python programs can encrypt and decryptdata, digitally sign documents and verify digital signatures, manage(generate, list and delete) encryption keys, using proven Public KeyInfrastructure (PKI) encryption technology based on OpenPGP. This module is expected to be used with Python versions >= 2.4, as itmakes use of the subprocess module which appeared in that version ofPython. This module is a newer version derived from earlier work byAndrew Kuchling, Richard Jones and Steve Traugott. A test suite using unittest is included with the source distribution. Simple usage: >>> import gnupg>>> gpg = gnupg.GPG(gnupghome='/path/to/keyring/directory')>>> gpg.list_keys() [{...'fingerprint': 'F819EE7705497D73E3CCEE65197D5DAC68F1AAB2','keyid': '197D5DAC68F1AAB2','length': '1024','type': 'pub','uids': ['', 'Gary Gross (A test user) ']},{...'fingerprint': '37F24DD4B918CC264D4F31D60C5FEFA7A921FC4A','keyid': '0C5FEFA7A921FC4A','length': '1024',...'uids': ['', 'Danny Davis (A test user) ']}]>>> encrypted = gpg.encrypt("Hello, world!", ['0C5FEFA7A921FC4A'])>>> str(encrypted) '-----BEGIN PGP MESSAGE-----\nVersion: GnuPG v1.4.9 (GNU/Linux)\n\nhQIOA/6NHMDTXUwcEAf.-----END PGP MESSAGE-----\n'>>> decrypted = gpg.decrypt(str(encrypted), passphrase='secret')>>> str(decrypted) 'Hello, world!'>>> signed = gpg.sign("Goodbye, world!", passphrase='secret')>>> verified = gpg.verify(str(signed))>>> print "Verified" if verified else "Not verified" 'Verified' As always, your feedback is most welcome (especially bug reports [3],patches and suggestions for improvement, or any other points via themailing list/discussion group [4]). Enjoy! Cheers Vinay SajipRed Dove Consultants Ltd. [1] https://bitbucket.org/vinay.sajip/python-gnupg[2] https://pypi.python.org/pypi/python-gnupg/0.4.3[3] https://bitbucket.org/vinay.sajip/python-gnupg/issues[4] https://groups.google.com/forum/#!forum/python-gnupg[5] https://bitbucket.org/vinay.sajip/python-gnupg/downloads/[6] https://neopg.io/blog/gpg-signature-spoof/ From robin at alldunn.com Mon Jun 18 00:49:29 2018 From: robin at alldunn.com (Robin Dunn) Date: Sun, 17 Jun 2018 21:49:29 -0700 Subject: wxPython 4.0.2 Message-ID: Announcing wxPython 4.0.2 ========================= PyPI: https://pypi.org/project/wxPython/4.0.2 Extras: https://extras.wxPython.org/wxPython4/extras/ Pip: ``pip install wxPython==4.0.2`` Changes in this release include the following: * Fixed wx.html2.EVT_WEBVIEW_NAVIGATING event not being sent on some versions of Linux. (#741) * wx.Sizers can now be used as an iterator to iterate over the items within the sizer. (#738) * Fix Python3 division in ThumbnailCtrl. (#746) * Fix leaking image list in CheckListCtrlMixin (#752) * All items marked as deprecated in the wxWidgets interface (documentation) files will now throw a DeprecationWarning when used from wxPython. Many of these items are disappearing in 4.1 so it's important to ensure they are deprecated at runtime too instead of just in the docs. (#749) * Ensure that the attribute list given to the GLCanvas constructor is zero-terminated like it was in Classic. (#770) * Updated to the wxWidgets 3.0.4 release version. * Added the wxWidgets version number to the tail end of the string returned by wx.version(). * Bind EVT_WINDOW_DESTROY event only to the tree windows in CustomTreeCtrl, since otherwise it would be caught when child windows are destroyed too, which causes problems in this case. (#778) * Fixed a problem where wx.TreeCtrl.OnCompareItems was not being called in derived classes on Windows. This was due to an optimization that wasn't compatible with how the classes are wrapped. (#774) * Added wrappers for wx.ClassInfo and exposed wx.Object.GetClassInfo. This class is part of wxWidgets' internal type information system and although it is not very useful for Python applications it is useful for debugging some internal wxPython issues. * Removed the wx.lib.pubsub package, and replaced it with code that imports the standalone PyPubSub in order remain compatible with older code that still uses wx.lib.pubsub. (#782, #792) * Fixed bug in wx.lib.intctrl (#790) * Fixed subclassing of wx.TextCompleter and wx.TextCompleterSimple (#827) * Fixes for Python3 compatibility in PyCrust. (#823) * Fix wxGet to be able to use pip v10. (#817) * Change winid parameter in wx.ScrolledWindow to id, for consistency. (#816) * Ensure that the page exists in book controls GetPage and RemovePage methods. At least one of the wx ports do not do this. (#830) * Added missing wx.NumberEntryDialog * Change wx.TextCompleterSimple.GetCompletions to send the list of strings as a return value, rather than a parameter that gets filled. (#836) * Enabled the wx.GraphicsContext.Create(metaFileDC) wrapper (#811) * Metafile support is also available on OSX, so wx.msw.Metafile and wx.msw.MetafileDC have been moved to the core wx module. So they can now be accessed as wx.Metafile and wx.MetafileDC. * Updated the waf tool used by the build to version 2.0.7. This fixes problems with building for Python 3.7. * Fixed alignment in buttons on MSW which have had foreground or background colors set. (#815) * Fix for unexpected assertion inside wx.aui.AuiMDIChildFrame.Close. * Fix a bug in setting AuiDockingGuide size. (#727) * Remove unnecessary AUI notebook updating, and use wx.BufferedDC in Repaint() to mitigate flicker. (wx.lib.agw.aui). (#851, #686) * Fixed crashing bug when using client data with items in wx.dataview.DataViewTreeCtrl. (#856) * Detach wx.Control in AuiToolbar from current sizer before attach to a new one. (#843) * Fixed a problem in wx.lib.mixins.listctrl.TextEditMixin where the height of the editor widget could be set to zero. (See discussion in #849) * Fix a bug in calculating whether a tool fits into the AuiToolBar. (#863) * Override SetForegroundColour and SetBackgroundColour in MaskedEditMixin (#808) * Add an explicit wx.GraphicsContext.Create overload for wx.AutoBufferedPaintDC. (#783) * Return original AGW window style in AuiToolBar.GetAGWWindowStyleFlag. (#870) * Fix a bug in group management on wx.lib.masked.numctrl; the previous code used truediv ('/') to calculate _groupSpace, but in python 3.x this leads to a float result, instead of an integer as was expected. Using floordiv ('//') instead to solve the problem. (#865) * Hide the window when the tool does not fit into AuiToolBar. (#872) * Fixed the virtual dispatch code for the PGEditor.GetValueFromControl method to properly pass the parameters to the Python implementation, and also fixed how the return value is handled. (#742) * Fixed all implementations of the PGProperty.StringToValue and IntToValue methods to treat the value parameter as a return value. (#742) * Add missing wx.adv.EVT_CALENDAR_WEEK_CLICKED (#875) * Fixed the stock labels to conform to Windows design guidelines. (#787) * Always reset floating size and style when floating a toolbar in agw.aui. (#880) What is wxPython? ----------------- wxPython is a cross-platform GUI toolkit for the Python programming language. It allows Python programmers to create programs with a robust, highly functional graphical user interface, simply and easily. It is implemented as a set of Python extension modules that wrap the GUI components of the popular wxWidgets cross platform library, which is written in C++. Supported platforms are Microsoft Windows, Mac OS X and macOS, and Linux or other unix-like systems with GTK2 or GTK3 libraries. In most cases the native widgets are used on each platform to provide a 100% native look and feel for the application. What is wxPython Phoenix? ------------------------- wxPython's Project Phoenix is a new from-the-ground-up implementation of wxPython, created with the intent of making wxPython ?better, stronger, faster than he was before.? In other words, this new implementation is focused on improving speed, maintainability and extensibility of wxPython, as well as removing most of the cruft that had accumulated over the long life of Classic wxPython. The project has been in development off and on, mostly behind the scenes, for many years. For the past few years automated snapshot builds have been available for those adventurous enough to try it, and many people eventually started using the snapshots in their projects, even for production releases. While there are still some things on the periphery that need to be completed, the core of the new wxPython extension modules which wrap the wxWidgets code has been stable for a long time now. Due to some things being cleaned up, reorganized, simplified and dehackified wxPython Phoenix is not completely backwards compatible with wxPython Classic. This is intended. In general, however, the API differences tend to be minor and some applications can use Phoenix with slight, or even with no modifications. In some other cases the correct way to do things was also available in Classic and it's only the wrong way that has been removed from Phoenix. For more information there is a Migration Guide document available at: https://docs.wxpython.org/MigrationGuide.html The new wxPython API reference documentation, including all Python-specific additions and customizations, and docs for the wx.lib package, is located at: https://docs.wxpython.org/ -- Robin Dunn Software Craftsman http://wxPython.org From vinay_sajip at yahoo.co.uk Mon Jun 18 07:17:15 2018 From: vinay_sajip at yahoo.co.uk (Vinay Sajip) Date: Mon, 18 Jun 2018 11:17:15 +0000 (UTC) Subject: ANN: Version 0.1.5 of sarge (a subprocess wrapper library) has been released. References: <623045556.2285083.1529320635284.ref@mail.yahoo.com> Message-ID: <623045556.2285083.1529320635284@mail.yahoo.com> Version 0.1.5 of Sarge, a cross-platform library which wraps the subprocessmodule in the standard library, has been released. What changed?------------- - Fixed #37: Instead of an OSError with a "no such file or directory" message,? a ValueError is raised with a more informative "Command not found" message. - Fixed #38: Replaced ``async`` keyword argument with ``async_``, as ``async``? has become a keyword in Python 3.7. - Fixed #39: Updated tutorial example on progress monitoring. What does Sarge do?------------------- Sarge tries to make interfacing with external programs from yourPython applications easier than just using subprocess alone. Sarge offers the following features: * A simple way to run command lines which allows a rich subset of Bash-style shell command syntax, but parsed and run by sarge so that youcan run on Windows without cygwin (subject to having those commandsavailable): >>> from sarge import capture_stdout>>> p = capture_stdout('echo foo | cat; echo bar')>>> for line in p.stdout: print(repr(line))...'foo\n''bar\n' * The ability to format shell commands with placeholders, such thatvariables are quoted to prevent shell injection attacks. * The ability to capture output streams without requiring you toprogram your own threads. You just use a Capture object and then youcan read from it as and when you want. * The ability to look for patterns in captured output and to interactaccordingly with the child process. Advantages over subprocess--------------------------- Sarge offers the following benefits compared to using subprocess: * The API is very simple. * It's easier to use command pipelines - using subprocess out of thebox often leads to deadlocks because pipe buffers get filled up. * It would be nice to use Bash-style pipe syntax on Windows, butWindows shells don't support some of the syntax which is useful, like&&, ||, |& and so on. Sarge gives you that functionality on Windows,without cygwin. * Sometimes, subprocess.Popen.communicate() is not flexible enough forone's needs - for example, when one needs to process output a line ata time without buffering the entire output in memory. * It's desirable to avoid shell injection problems by having theability to quote command arguments safely. * subprocess allows you to let stderr be the same as stdout, but notthe other way around - and sometimes, you need to do that. Python version and platform compatibility----------------------------------------- Sarge is intended to be used on any Python version >= 2.6 and istested on Python versions 2.6, 2.7, 3.3, 3.4, 3.5, 3.6 and 3.7 on Linux,Windows, and Mac OS X (not all versions are tested on all platforms,but sarge is expected to work correctly on all these versions on allthese platforms). Finding out more---------------- You can read the documentation at http://sarge.readthedocs.org/ There's a lot more information, with examples, than I can put intothis post. You can install Sarge using "pip install sarge" to try it out. Theproject is hosted on BitBucket at https://bitbucket.org/vinay.sajip/sarge/ And you can leave feedback on the issue tracker there. I hope you find Sarge useful! Regards, Vinay Sajip From cimrman3 at ntc.zcu.cz Tue Jun 19 07:52:33 2018 From: cimrman3 at ntc.zcu.cz (Robert Cimrman) Date: Tue, 19 Jun 2018 13:52:33 +0200 Subject: ANN: SfePy 2018.2 Message-ID: <10b44af6-dccf-de9b-9d1c-af383927faef@ntc.zcu.cz> I am pleased to announce release 2018.2 of SfePy. Description ----------- SfePy (simple finite elements in Python) is a software for solving systems of coupled partial differential equations by the finite element method or by the isogeometric analysis (limited support). It is distributed under the new BSD license. Home page: http://sfepy.org Mailing list: https://mail.python.org/mm3/mailman3/lists/sfepy.python.org/ Git (source) repository, issue tracker: https://github.com/sfepy/sfepy Highlights of this release -------------------------- - generalized-alpha and velocity Verlet elastodynamics solvers - terms for dispersion in fluids - caching of reference coordinates for faster repeated use of probes - new wrapper of MUMPS linear solver for parallel runs For full release notes see http://docs.sfepy.org/doc/release_notes.html#id1 (rather long and technical). Cheers, Robert Cimrman --- Contributors to this release in alphabetical order: Robert Cimrman Lubos Kejzlar Vladimir Lukes Matyas Novak From bryanv at anaconda.com Wed Jun 20 11:56:04 2018 From: bryanv at anaconda.com (Bryan Van de ven) Date: Wed, 20 Jun 2018 08:56:04 -0700 Subject: ANN: Bokeh 0.13.0 Released Message-ID: <96A78210-89D9-4CDC-A447-0023E39D9CE1@anaconda.com> On behalf of the Bokeh team, I am pleased to announce the release of version 0.13.0 of Bokeh! For more information and details, please see the announcement post at: https://bokeh.github.io/blog/2018/6/13/release-0-13-0/ If you are using Anaconda/miniconda, you can install it with conda: conda install -c bokeh bokeh Alternatively, you can also install it with pip: pip install bokeh Full information including details about how to use and obtain BokehJS are at: https://bokeh.pydata.org/en/0.13.0/docs/installation.html Issues, enhancement requests, and pull requests can be made on the Bokeh Github page: https://github.com/bokeh/bokeh Documentation is available at: https://bokeh.pydata.org/en/0.13.0 There are over 301 total contributors to Bokeh and their time and effort help make Bokeh such an amazing project and community. Thank you again for your contributions. Finally, for questions or technical assistance we recommend starting with detailed posts on Stack Overflow. Or if you are interested in contributing, come by the Bokeh dev chat room: https://gitter.im/bokeh/bokeh-dev Thanks, Bryan Van de Ven From charlesr.harris at gmail.com Thu Jun 21 13:34:08 2018 From: charlesr.harris at gmail.com (Charles R Harris) Date: Thu, 21 Jun 2018 11:34:08 -0600 Subject: NumPy 1.15.0rc1 released Message-ID: Hi All, On behalf of the NumPy team I'm pleased to announce the release of NumPy 1.15.0rc1. This release has an unusual number of cleanups, many deprecations of old functions, and improvements to many existing functions. A total of 423 pull reguests were merged for this release, please look at the release notes for details. Some highlights are: - NumPy has switched to pytest for testing. - A new `numpy.printoptions` context manager. - Many improvements to the histogram functions. - Support for unicode field names in python 2.7. - Improved support for PyPy. The Python versions supported by this release are 2.7, 3.4-3.6. The wheels are linked with OpenBLAS 3.0, which should fix some of the linalg problems reported for NumPy 1.14, and the source archives were created using Cython 0.28.2 and should work with the upcoming Python 3.7. Wheels for this release can be downloaded from PyPI , source archives are available from Github . A total of 128 people contributed to this release. People with a "+" by their names contributed a patch for the first time. - Aaron Critchley + - Aarthi + - Aarthi Agurusa + - Alex Thomas + - Alexander Belopolsky - Allan Haldane - Anas Khan + - Andras Deak - Andrey Portnoy + - Anna Chiara - Aurelien Jarno + - Baurzhan Muftakhidinov - Berend Kapelle + - Bernhard M. Wiedemann - Bjoern Thiel + - Bob Eldering - Cenny Wenner + - Charles Harris - ChloeColeongco + - Chris Billington + - Christopher + - Chun-Wei Yuan + - Claudio Freire + - Daniel Smith - Darcy Meyer + - David Abdurachmanov + - David Freese - Deepak Kumar Gouda + - Dennis Weyland + - Derrick Williams + - Dmitriy Shalyga + - Eric Cousineau + - Eric Larson - Eric Wieser - Evgeni Burovski - Frederick Lefebvre + - Gaspar Karm + - Geoffrey Irving - Gerhard Hobler + - Gerrit Holl - Guo Ci + - Hameer Abbasi + - Han Shen - Hiroyuki V. Yamazaki + - Hong Xu - Ihor Melnyk + - Jaime Fernandez - Jake VanderPlas + - James Tocknell + - Jarrod Millman - Jeff VanOss + - John Kirkham - Jonas Rauber + - Jonathan March + - Joseph Fox-Rabinovitz - Julian Taylor - Junjie Bai + - Juris Bogusevs + - J?rg D?pfert - Kenichi Maehashi + - Kevin Sheppard - Kimikazu Kato + - Kirit Thadaka + - Kritika Jalan + - Lakshay Garg + - Lars G + - Licht Takeuchi - Louis Potok + - Luke Zoltan Kelley - MSeifert04 + - Mads R. B. Kristensen + - Malcolm Smith + - Mark Harfouche + - Marten H. van Kerkwijk + - Marten van Kerkwijk - Matheus Vieira Portela + - Mathieu Lamarre - Mathieu Sornay + - Matthew Brett - Matthew Rocklin + - Matthias Bussonnier - Matti Picus - Michael Droettboom - Miguel S?nchez de Le?n Peque + - Mike Toews + - Milo + - Nathaniel J. Smith - Nelle Varoquaux - Nicholas Nadeau + - Nick Minkyu Lee + - Nikita + - Nikita Kartashov + - Nils Becker + - Oleg Zabluda - Orestis Floros + - Pat Gunn + - Paul van Mulbregt + - Pauli Virtanen - Pierre Chanial + - Ralf Gommers - Raunak Shah + - Robert Kern - Russell Keith-Magee + - Ryan Soklaski + - Samuel Jackson + - Sebastian Berg - Siavash Eliasi + - Simon Conseil - Simon Gibbons - Stefan Krah + - Stefan van der Walt - Stephan Hoyer - Subhendu + - Subhendu Ranjan Mishra + - Tai-Lin Wu + - Tobias Fischer + - Toshiki Kataoka + - Tyler Reddy + - Varun Nayyar - Victor Rodriguez + - Warren Weckesser - Zane Bradley + - fo40225 - lumbric + - luzpaz + - mamrehn + - tynn + - xoviat Cheers Chuck From mmanns at gmx.net Wed Jun 20 18:08:16 2018 From: mmanns at gmx.net (Martin Manns) Date: Thu, 21 Jun 2018 00:08:16 +0200 Subject: pyspread 1.1.2 released Message-ID: <20180621000816.71fed199@Fuddel.mynet> ================ pyspread 1.1.2 ================ Pyspread 1.1.2 has been released. About pyspread ============== Pyspread is a non-traditional spreadsheet that is based on and written in the programming language Python. The goal of pyspread is to be the most pythonic spreadsheet application. Pyspread is free software. It is released under the GPL v3. Project website: https://manns.github.io/pyspread/ Download page: https://pypi.python.org/pypi/pyspread Source code: https://github.com/manns/pyspread Release 1.1.2 is a bugfix release. Major changes to 1.1.1: ======================= * Bugfix for the font choice combo box that fixes a glitch, which renders it unusable after a GTK update Enjoy Martin From 03sjbrown at gmail.com Fri Jun 22 10:37:21 2018 From: 03sjbrown at gmail.com (Shawn Brown) Date: Fri, 22 Jun 2018 10:37:21 -0400 Subject: ANN: datatest 0.9.1 released (test driven data-wrangling) Message-ID: 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... From h.goebel at crazy-compilers.com Sun Jun 24 17:01:40 2018 From: h.goebel at crazy-compilers.com (Hartmut Goebel) Date: Sun, 24 Jun 2018 23:01:40 +0200 Subject: [ANN] pdfposter 0.7 Message-ID: I'm pleased to announce pdftools.pdfposter 0.7, a tool to scale and tile PDF images/pages to print on multiple pages. :Homepage: https://pdfposter.readthedocs.io/ :Author:?? Hartmut Goebel :Licence:? GNU Public Licence v3 (GPLv3) :Quick Installation: ??? pip install -U pdftools.pdfposter :Tarballs:? https://pypi.org/project/pdftools.pdfposter/#files What is pdfposter? -------------------- Scale and tile PDF images/pages to print on multiple pages. ``Pdfposter`` can be used to create a large poster by building it from multiple pages and/or printing it on large media. It expects as input a PDF file, normally printing on a single page. The output is again a PDF file, maybe containing multiple pages together building the poster. The input page will be scaled to obtain the desired size. This is much like ``poster`` does for Postscript files, but working with PDF. Since sometimes poster does not like your files converted from PDF. :-) Indeed ``pdfposter`` was inspired by ``poster``. For more information please refer to the manpage or visit the `project homepage `_. What's new in version 0.7 --------------------------------------- * Incompatible change: `DIN lang` and `Envelope No. 10` are now defined as ? landscape formats. * New options ``-f``/``--first`` and ``-l``/``--last`` for specifying the ? first resp. last page to convert * Reduce the size of the output file a lot. Now the output file is ? nearly the same size as the input file. While this behaviour was ? intended from the beginning, it was not yet implemented for two ? reasons: The content was a) copied for each print-page and b) not ? compressed. * Make the content of each page appear only once in the output file. ? This vastly reduces the size of the output file. * Compress page content. Now the output file is nearly the same size ? as the input file in much more cases. I thought, the underlying ? library will do this automatically, but it does not. * Fix bug in PDF code used for clipping the page content. Many thanks ? to Johannes Br?del for reporting this bug. * Add support for Python 3. * Use `PyPFDF2` instead of the unmaintained `pyPDF`. -- Regards Hartmut Goebel | Hartmut Goebel | h.goebel at crazy-compilers.com | | www.crazy-compilers.com | compilers which you thought are impossible | From ingy at ingy.net Tue Jun 26 18:24:03 2018 From: ingy at ingy.net (Ingy dot Net) Date: Tue, 26 Jun 2018 16:24:03 -0600 Subject: [ANN] PyYAML-4.1: YAML parser and emitter for Python Message-ID: ======================= Announcing PyYAML-4.1 ======================= A new MAJOR RELEASE of PyYAML is now available: https://pypi.org/project/PyYAML/ This is the first release of PyYAML under a new maintenance team. In August 2016, maintenance of PyYAML and LibYAML was turned over from the original author, Kirill Simonov, to Ian Cordasco and Ingy d?t Net. The canonical source repo moved: from: https://bitbucket.org/xi/pyyaml/ to: https://github.com/yaml/pyyaml The PyYAML project is now maintained by the YAML and Python communities. Planning happens on the #yaml-dev, #pyyaml and #libyaml IRC channels on irc.freenode.net. Changes ======= * https://github.com/yaml/pyyaml/pull/35 -- Some modernization of the test running * https://github.com/yaml/pyyaml/pull/42 -- Install tox in a virtualenv * https://github.com/yaml/pyyaml/pull/45 -- Allow colon in a plain scalar in a flow context * https://github.com/yaml/pyyaml/pull/48 -- Fix typos * https://github.com/yaml/pyyaml/pull/55 -- Improve RepresenterError creation * https://github.com/yaml/pyyaml/pull/59 -- Resolves #57, update readme issues link * https://github.com/yaml/pyyaml/pull/60 -- Document and test Python 3.6 support * https://github.com/yaml/pyyaml/pull/61 -- Use Travis CI built in pip cache support * https://github.com/yaml/pyyaml/pull/62 -- Remove tox workaround for Travis CI * https://github.com/yaml/pyyaml/pull/63 -- Adding support to Unicode characters over codepoint 0xffff * https://github.com/yaml/pyyaml/pull/65 -- Support unicode literals over codepoint 0xffff * https://github.com/yaml/pyyaml/pull/74 -- Make pyyaml safe by default. * https://github.com/yaml/pyyaml/pull/75 -- add 3.12 changelog * https://github.com/yaml/pyyaml/pull/76 -- Fallback to Pure Python if Compilation fails * https://github.com/yaml/pyyaml/pull/84 -- Drop unsupported Python 3.3 * https://github.com/yaml/pyyaml/pull/111 -- Remove commented out Psyco code * https://github.com/yaml/pyyaml/pull/149 -- Test on Python 3.7-dev * https://github.com/yaml/pyyaml/pull/158 -- Support escaped slash in double quotes "\/" Resources ========= PyYAML IRC Channel: #pyyaml on irc.freenode.net PyYAML homepage: https://github.com/yaml/pyyaml PyYAML documentation: http://pyyaml.org/wiki/PyYAMLDocumentation Source and binary installers: https://pypi.org/project/PyYAML/ GitHub repository: https://github.com/yaml/pyyaml/ Bug tracking: https://github.com/yaml/pyyaml/issues YAML homepage: http://yaml.org/ YAML-core mailing list: http://lists.sourceforge.net/lists/listinfo/yaml-core About PyYAML ============ YAML is a data serialization format designed for human readability and interaction with scripting languages. PyYAML is a YAML parser and emitter for Python. PyYAML features a complete YAML 1.1 parser, Unicode support, pickle support, capable extension API, and sensible error messages. PyYAML supports standard YAML tags and provides Python-specific tags that allow to represent an arbitrary Python object. PyYAML is applicable for a broad range of tasks from complex configuration files to object serialization and persistence. Example ======= >>> import yaml >>> yaml.load(""" ... name: PyYAML ... description: YAML parser and emitter for Python ... homepage: https://github.com/yaml/pyyaml ... keywords: [YAML, serialization, configuration, persistence, pickle] ... """) {'keywords': ['YAML', 'serialization', 'configuration', 'persistence', 'pickle'], 'homepage': 'https://github.com/yaml/pyyaml', 'description': 'YAML parser and emitter for Python', 'name': 'PyYAML'} >>> print yaml.dump(_) name: PyYAML homepage: https://github.com/yaml/pyyaml description: YAML parser and emitter for Python keywords: [YAML, serialization, configuration, persistence, pickle] Maintainers =========== The following people are responsible for maintaining PyYAML: * Ingy d?t Net * Ian Cordasco * Tina Mueller * Alex Gaynor * Donald Stufft * Matt Davis and many thanks to all who have contribributed! See: https://github.com/yaml/pyyaml/pulls Copyright ========= Copyright (c) 2017-2018 Ingy d?t Net Copyright (c) 2006-2016 Kirill Simonov The PyYAML module was written by Kirill Simonov . It is currently maintained by the YAML and Python communities. PyYAML is released under the MIT license. See the file LICENSE for more details. From robin at alldunn.com Wed Jun 27 00:09:02 2018 From: robin at alldunn.com (Robin Dunn) Date: Tue, 26 Jun 2018 21:09:02 -0700 Subject: wxPython 4.0.3 Message-ID: <1173542a-7e2b-d880-2184-ae9cc881a96d@alldunn.com> Announcing wxPython 4.0.3 ========================= PyPI: https://pypi.org/project/wxPython/4.0.3 Extras: https://extras.wxPython.org/wxPython4/extras/ Pip: ``pip install wxPython==4.0.3`` Changes in this release include the following: * Fixed a linking problem on macOS. The new waf added an explicit link to the Python shared library which meant that it would try to load it at runtime, even if a different Python (such as Anaconda, EDM or Homebrew) was used to import wxPython. This, of course, caused runtime errors. (#892) * Sort pages by dock_pos when added to automatic (agw.aui) notebook. (#882) * Fix a bug in py.introspect.getTokens. (#889) * Added Vagrant configuration for Fedora-28. Removed Fedora-23 (#884) * Added wrappers for the wx.WindowIDRef class and added the wx.NewIdRef function. These will make it possible to create reserved Window IDs using the same mechanism which is used when passing wx.ID_ANY to a widget constructor. The object returned by wx.NewIdRef will automatically convert to an int when passing it to a window constructor, and can also be used as the source in a Bind(). (#896) * Fixed issue when sys.prefix is not unicode (Python2) and when its contents are not translatable to utf-8. What is wxPython? ----------------- wxPython is a cross-platform GUI toolkit for the Python programming language. It allows Python programmers to create programs with a robust, highly functional graphical user interface, simply and easily. It is implemented as a set of Python extension modules that wrap the GUI components of the popular wxWidgets cross platform library, which is written in C++. Supported platforms are Microsoft Windows, Mac OS X and macOS, and Linux or other unix-like systems with GTK2 or GTK3 libraries. In most cases the native widgets are used on each platform to provide a 100% native look and feel for the application. What is wxPython Phoenix? ------------------------- wxPython's Project Phoenix is a new from-the-ground-up implementation of wxPython, created with the intent of making wxPython ?better, stronger, faster than he was before.? In other words, this new implementation is focused on improving speed, maintainability and extensibility of wxPython, as well as removing most of the cruft that had accumulated over the long life of Classic wxPython. The project has been in development off and on, mostly behind the scenes, for many years. For the past few years automated snapshot builds have been available for those adventurous enough to try it, and many people eventually started using the snapshots in their projects, even for production releases. While there are still some things on the periphery that need to be completed, the core of the new wxPython extension modules which wrap the wxWidgets code has been stable for a long time now. Due to some things being cleaned up, reorganized, simplified and dehackified wxPython Phoenix is not completely backwards compatible with wxPython Classic. This is intended. In general, however, the API differences tend to be minor and some applications can use Phoenix with slight, or even with no modifications. In some other cases the correct way to do things was also available in Classic and it's only the wrong way that has been removed from Phoenix. For more information there is a Migration Guide document available at: https://docs.wxpython.org/MigrationGuide.html The new wxPython API reference documentation, including all Python-specific additions and customizations, and docs for the wx.lib package, is located at: https://docs.wxpython.org/ -- Robin Dunn Software Craftsman http://wxPython.org From h.goebel at crazy-compilers.com Wed Jun 27 04:46:22 2018 From: h.goebel at crazy-compilers.com (Hartmut Goebel) Date: Wed, 27 Jun 2018 10:46:22 +0200 Subject: [ANN] managesieve 0.6 Message-ID: I'm pleased to announce managesieve 0.6, a ManageSieve client library for remotely managing Sieve scripts, including an user application (the interactive 'sieveshell'). :Homepage: https://managesieve.readthedocs.io/ Development: https://gitlab.com/htgoebel/managesieve :Author:?? Hartmut Goebel :License for `managesieve`: Python Software Foundation License :License for 'sieveshell' and test suite: GNU Public Licence v3 (GPLv3) :Quick Installation: ??? pip install -U managesieve :Tarballs:? https://pypi.org/project/managesieve/#files What is managesieve? --------------------- A ManageSieve client library for remotely managing Sieve scripts, including an user application (the interactive 'sieveshell'). Sieve scripts allow users to filter incoming email on the mail server. The ManageSieve protocol allows managing Sieve scripts on a remote mail server. These servers are commonly sealed so users cannot log into them, yet users must be able to update their scripts on them. This is what for the "ManageSieve" protocol is. For more information about the ManageSieve protocol see `RFC 5804 `_. This module allows accessing a Sieve-Server for managing Sieve scripts there. It is accompanied by a simple yet functional user application 'sieveshell'. What's new in version 0.6 --------------------------------------- * Add support for Python 3. Minimum required Python version is now ? Python 2.7. * Homepage is now hosted at https://managesieve.readthedocs.io/ * Development hosted at https://gitlab.com/htgoebel/managesieve * Documentation is extended and includes API documentation. :sieveshell: ?? - Security fix: No longer leak environment variable SIEVE_PASSWORD ???? when displaying usage help. ?? - Per default enforce secure transport. Suggested by Jan Zerebecki. ?? - Add possibility to use username/password from the .netrc file. ???? The order is: command line options -> environment variables -> ???? .netrc file -> ask user. Thanks to Gr?goire D?trez. :managesieve: ?? - Fail if TLS is requested, but server doesn't support TLS. ???? Suggested by Jan Zerebecki. :project: ?? - Rework and enhance test-suite. Thanks to Mat?j Cepl for nudging ???? to proper pytest integration. ?? - Lots if internal cleanup. -- Regards Hartmut Goebel | Hartmut Goebel | h.goebel at crazy-compilers.com | | www.crazy-compilers.com | compilers which you thought are impossible | From bthate at dds.nl Wed Jun 27 08:59:29 2018 From: bthate at dds.nl (Bart Thate) Date: Wed, 27 Jun 2018 14:59:29 +0200 Subject: ANN: OB - Framework to progam bots Message-ID: <94ed33c4-3006-3827-fb90-3159270d4512@dds.nl> Hello python-announce-list, I am Bart Thate, a 50 year old programming schizofenic. I like to annouce the version 4 of OB, a pure python3 package you can use to program bots. OB has a ?no-clause MIT license? that should be the most liberal license you can get at the year 2018. I am looking for feedback on my new bot. https://pypi.org/project/ob/ http://ob.readthedocs.io/en/latest/ thnx ! Bart - bthate at dds.nl From pie.denis at skynet.be Wed Jun 27 10:44:29 2018 From: pie.denis at skynet.be (Pierre Denis) Date: Wed, 27 Jun 2018 16:44:29 +0200 Subject: ANN: Lea 3.0 released Message-ID: <001501d40e25$5af15050$10d3f0f0$@denis@skynet.be> Lea 3.0 final is now released! ---> http://pypi.org/project/lea/3.0.0 What is Lea? ------------ Lea is a Python module aiming at working with discrete probability distributions in an intuitive way. It allows you modeling a broad range of random phenomena: gambling, weather, finance, etc. More generally, Lea may be used for any finite set of discrete values having known probability: numbers, booleans, date/times, symbols, . Each probability distribution is modeled as a plain object, which can be named, displayed, queried or processed to produce new probability distributions. Lea also provides advanced functions and Probabilistic Programming (PP) features; these include conditional probabilities, Bayesian networks, joint probability distributions, Markov chains and symbolic computation. Lea can be used for AI, machine learning, education, ... LGPL - Python 2.6+ / Python 3 supported What's new in Lea 3? -------------------- Compared to latest version (2.3.5), many things have changed to extend the usability and openness of the library. To name a few: * ability to choose between different probability representations: floats, fractions and decimals * symbolic computation: Lea can now calculate probability *formula* using the SymPy library (http://www.sympy.org) * simpler API and compliance with PEP8 naming convention * revamped tutorials and examples -> http://bitbucket.org/piedenis/lea/wiki/Home * paper on the "Statues" algorithm used in Lea -> http://arxiv.org/abs/1806.09997 Here is a short sample. A biased coins is flipped with 1/4 chance to be 'head'. Suppose that this coin is thrown 6 times. What is the probability to get no more than two 'heads'? Here is how you could make this calculation in Lea, using successively float, fraction and symbolic representations: print (P(lea.binom(6,1/4) <= 2)) # -> 0.83056640625 print (P(lea.binom(6,'1/4') <= 2)) # -> 1701/2048 print (P(lea.binom(6,'p') <= 2)) # -> (p - 1)**4*(10*p**2 + 4*p + 1)) print (P(lea.binom(6,'p') <= 2).subs('p',1/4)) # -> 0.830566406250000 To learn more... ---------------- Lea 3 on PyPI -> http://pypi.org/project/lea/3.0.0 Lea project page -> http://bitbucket.org/piedenis/lea Documentation -> http://bitbucket.org/piedenis/lea/wiki/Home Statues algorithm -> http://arxiv.org/abs/1806.09997 With the hope that Lea can make the Universe less hazardous, Pierre Denis From nad at python.org Wed Jun 27 20:58:03 2018 From: nad at python.org (Ned Deily) Date: Wed, 27 Jun 2018 20:58:03 -0400 Subject: Python 3.7.0 is now available! (and so is 3.6.6) Message-ID: <6FF553CD-6580-4939-A5E4-78143633BF1F@python.org> On behalf of the Python development community and the Python 3.7 release team, we are pleased to announce the availability of Python 3.7.0. Python 3.7.0 is the newest feature release of the Python language, and it contains many new features and optimizations. You can find Python 3.7.0 here: https://www.python.org/downloads/release/python-370/ Most third-party distributors of Python should be making 3.7.0 packages available soon. See the "What?s New In Python 3.7" document (https://docs.python.org/3.7/whatsnew/3.7.html) for more information about features included in the 3.7 series. Detailed information about the changes made in 3.7.0 can be found in its change log. Maintenance releases for the 3.7 series will follow at regular intervals starting in July of 2018. We hope you enjoy Python 3.7! P.S. We are also happy to announce the availability of Python 3.6.6, the next maintenance release of Python 3.6: https://www.python.org/downloads/release/python-366/ Thanks to all of the many volunteers who help make Python Development and these releases possible! Please consider supporting our efforts by volunteering yourself or through organization contributions to the Python Software Foundation. https://www.python.org/psf/ -- Ned Deily nad at python.org -- [] From ingy at ingy.net Thu Jun 28 17:17:43 2018 From: ingy at ingy.net (Ingy dot Net) Date: Thu, 28 Jun 2018 14:17:43 -0700 Subject: [ANN] PyYAML-4.1: ***RETRACTED*** Message-ID: I am sorry to report that the PyYAML-4.1 release from 48 hours ago has been removed from PyPI There were too many problems to make this a viable release. The biggest known issue with this retraction is that PyYAML will not work with the new Python 3.7 until PyYAML-4.2 is released. https://github.com/yaml/pyyaml/issues/126#issuecomment-401175258 We are starting work immediately on 4.2b1 prerelease series. I hope to see 4.2 released in the next few days. Work is being coordinated on #pyyaml on irc.freenode.net and issues can be reported and followed at https://github.com/yaml/pyyaml Thank you for your patience. From mal at europython.eu Fri Jun 29 08:23:38 2018 From: mal at europython.eu (M.-A. Lemburg) Date: Fri, 29 Jun 2018 14:23:38 +0200 Subject: =?UTF-8?Q?EuroPython_2018:_Beginners=e2=80=99_Day_Workshop?= Message-ID: Maybe you?ve come to EuroPython as a programmer from another language. Or perhaps you have other tech skills or you really want to understand what it?s like to program in Python. Then come to our Beginners? Day at EuroPython. https://ep2018.europython.eu/en/events/beginners-day/ What is Beginners? Day ? ------------------------ Beginners? Day is a session we are running, just for newcomers to the Python programming language, on Tuesday, July 24th from 09:30 - 16:45, at the Edinburgh International Conference Center (EICC), the EuroPython 2018 venue, and just in time to get you ready for all the talks which follow on Wednesday, Thursday and Friday. You will need a conference pass to attend, but otherwise, it?s free, so if you?re thinking of coming to the conference, but you?re new to Python or programming, this could be the session for you. The workshop will be run by: - Vincent D. Warmerdam (PyData Amsterdam) - Christian Barra (EuroPython board member) Sign up for Beginners? Day -------------------------- Whether you?re totally new to programming or you already know another language - this full day session will give you a crash-course in Python, and the ecosystem around it. You?ll get the context you need to get the most out of the rest of the EuroPython conference. Bring your laptop, because this will be a hands-on session! This session will be presented in English (although a few of the coaches do speak basic Spanish, French, Italian and Portuguese). Please see the Beginners? Day page for the full program: https://ep2018.europython.eu/en/events/beginners-day/ If you?d like to come, please do register in advance for this session, so that we know how to plan to make it the best yet. We need to know the numbers for planing the workshop. Sign up for Beginners? Day https://docs.google.com/forms/d/e/1FAIpQLSf7hTdKbYm_Jn8SSYNyC4iQXe-W68ndj93NxQacOSJKhyUeIQ/viewform Call for Mentors ---------------- Already know Python ? Want to be a mentor ? Fantastic ! Especially if you can add an extra language to help non-English speakers feel comfortable asking questions, or if you?ve never mentored before and want to try to share your knowledge for the first time. Please sign up as a mentor on our mentor registration form: https://docs.google.com/forms/d/e/1FAIpQLSdkqmu8o2R0FN7BqlaLrv5trOKHqhEQyHtt5_RR2kYhqI-pJw/viewform Help spread the word -------------------- Please help us spread this message by sharing it on your social networks as widely as possible. Thank you ! Link to the blog post: https://blog.europython.eu/post/175370423057/europython-2018-beginners-day-workshop Tweet: https://twitter.com/europython/status/1012671128790290432 Enjoy, -- EuroPython 2018 Team https://ep2018.europython.eu/ https://www.europython-society.org/ From mal at europython.eu Fri Jun 29 08:23:26 2018 From: mal at europython.eu (M.-A. Lemburg) Date: Fri, 29 Jun 2018 14:23:26 +0200 Subject: EuroPython 2018: Invoices available Message-ID: <7c9ebcf3-b5bd-df82-3f69-b9da32cd58eb@europython.eu> We have great news ! After many months of sorting the UK VAT registration issue, we have finally been registered for VAT in the UK. This is the number, we?ve all been waiting for: GB 297620469 We?ve now generated all the missing invoices for existing purchases and hope that this will make it easier for companies to now register their employees as well. EuroPython 2018: Get your tickets before we sell out https://ep2018.europython.eu/en/registration/buy-tickets/ Downloading Invoices -------------------- If you have already purchased tickets, you can find the invoices in your account. Simply log in, go to the profile page, select ?Orders, invoices & coupons? on the right and you should find the invoice links for your orders. The invoices are generated as PDFs, so you can print or archive them easily. Sorry for keeping you waiting so long. Help spread the word -------------------- Please help us spread this message by sharing it on your social networks as widely as possible. Thank you ! Link to the blog post: https://blog.europython.eu/post/175370400437/europython-2018-invoices-available Tweet: https://twitter.com/europython/status/1012670816352382977 Enjoy, -- EuroPython 2018 Team https://ep2018.europython.eu/ https://www.europython-society.org/