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!
<P><A HREF="https://baseline.readthedocs.io/en/latest/">
baseline 0.2.1</A> - Easy String Baseline (07-Jun-18)
This course will help you to expertise the usage of Python in Data Science world.
Carter your Python Knowledge so that it can be utilized to get the Insights of Data using Methodologies and Techniques of Data Science...
Objective:
Understand the concepts of Data science and Python
You will be able to use Python in Discovering Data.
You will have an idea of Statistical and Analytical methods to deal with huge data sets.
You will gain an expertise on Regular Expressions, looping functions and concepts of Object Oriented Programming.
You will be able to create business algorithms and data models using Python and it's techniques.
Work on Real-life Projects will help you to get a practical experience of real scenarios of IT Industry.
Start learning Python for Data Science from basics to advance levels here...
https://goo.gl/070wXw
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-W68ndj93…
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/1FAIpQLSdkqmu8o2R0FN7BqlaLrv5trOKHqhEQyHt…
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-…
Tweet:
https://twitter.com/europython/status/1012671128790290432
Enjoy,
--
EuroPython 2018 Team
https://ep2018.europython.eu/https://www.europython-society.org/
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-avail…
Tweet:
https://twitter.com/europython/status/1012670816352382977
Enjoy,
--
EuroPython 2018 Team
https://ep2018.europython.eu/https://www.europython-society.org/
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.
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(a)python.org -- []
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
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(a)dds.nl
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 <h.goebel(a)crazy-compilers.com>
: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
<http://tools.ietf.org/html/rfc5804>`_.
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(a)crazy-compilers.com |
| www.crazy-compilers.com | compilers which you thought are impossible |
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