Hi!
I'm pleased to announce the availability of wxGlade revision 1.0.1
Please download from https://sourceforge.net/projects/wxglade/files/wxglade/1.0.1/
wxGlade is a GUI builder for wxWidgets and wxPython.
The documentation includes a tutorial for people who have not used wxPython
before.
Included are also examples for integration with matplotlib.
A snapshot of the documentation is available at http://wxglade.sourceforge.net/docs/index.html
For support, there's a mailing list at https://sourceforge.net/p/wxglade/mailman/wxglade-general/
git repository and bug tracker are at https://github.com/wxGlade/wxGlade
(These pages are also linked from the help menu.)
Changes in revision 1.0.x:
==========================
Besides many improvements in usability, code generation and widget support,
this is also a major internal refactoring of the main data structure and how
widgets in the Design window are created / updated / destroyed.
*General:*
- sizers only required where wx requires them; not required e.g. for
Frame->Panel (used to be Frame->Sizer->Panel)
- better handling of display updates when properties are edited
- accessibility and usability improvements
- Dialog example
- documentation update
*Widgets:*
- all: separate class related properties into Class / Base Classes /
Instance Class
- Dialog: add StdDialogButtonSizer and standard buttons (stock items);
support SetAffirmativeId, SetEscapeId
- Button: support for image direction
- MenuBar: support lambda event handlers
- GridBagSizer: indicate overlapped slots in the Tree view
*Generated Code:*
- no separation into __set_properties/__do_layout any more
- support for instantiation classes
*Internal:*
- internal structures refactored
- add shell window and Tree Printer
wxGlade is released under the MIT license.
Happy New Year,
Dietmar Schwertberger
dietmar(a)schwertberger.de
<P><A HREF="https://sourceforge.net/projects/wxglade/files/wxglade/1.0.1/">wxGlade 1.0.1</A> - GUI builder for wxPython (31-Dec-20)
Version 1.4 of the GF4 Graphics Calculator is now available on GitHub at
https://github.com/tbpassin/gf4-project/tree/1.4
This version contains the following changes, among others:
- Least Squares fits can be any polynomial power, not just linear;
- Improvements to normalization and horizontal axis for convolution,
correlation, and auto-correlation;
- An extended help system for more detailed explanations of commands
(only a few commands are available so far).
- Startup line colors can be set using an ini file;
A more complete list of recent changes is in the file recent_changes.md
on the GitHub site.
I am pleased to announce the release of SfePy 2022.4.
Description
-----------
SfePy (simple finite elements in Python) is a software for solving systems of
coupled partial differential equations by finite element methods. It is
distributed under the new BSD license.
Home page: https://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
--------------------------
- new examples: transient heat equation with several material domains and
scalar Helmholtz equation
- adaptive time step control for elastodynamics solvers
- central difference elastodynamics solver
For full release notes see [1].
Cheers,
Robert Cimrman
[1] http://docs.sfepy.org/doc/release_notes.html#id1
---
Contributors to this release in alphabetical order:
Robert Cimrman
Jan Heczko
Florian Le Bourdais
Vladimir Lukes
Hello,
I am happy to inform you about a new release of makepackage (v0.1.8). The
new version comes with
- `--cli` being the main flag for a package with the command-line
inference; the `-cli` will work, too, and even the `cli` flag will work,
the latter for backward compatibility;
- bug fix: after creating a package, a log is printed to the console
informing about what's been done.
The makepackage package is available from PyPi, and its code can be found
in GitHub (https://github.com/nyggus/makepackage).
For those who don't know, makepackage enables one to create a Python
package, with and without command-line interface, with just one simple
shell command. It works under both Linux and Windows.
Kind regards,
Marcin
Hi All,
On behalf of the NumPy team, I'm pleased to announce the release of NumPy
1.24.1. NumPy 1.24.1 is a maintenance release that fixes bugs and
regressions discovered after the 1.24.0 release.
The Python versions supported by this release are 3.8-3.11 Note that 32 bit
wheels are only provided for Windows, all other wheels are 64 bits on
account of Ubuntu, Fedora, and other Linux distributions dropping 32 bit
support. Wheels can be downloaded from PyPI
<https://pypi.org/project/numpy/1.24.1/>; source archives, release notes,
and wheel hashes are available on Github
<https://github.com/numpy/numpy/releases/tag/v1.24.1>.
*Contributors*
A total of 12 people contributed to this release. People with a "+" by
their names contributed a patch for the first time.
- Andrew Nelson
- Ben Greiner +
- Charles Harris
- Clément Robert
- Matteo Raso
- Matti Picus
- Melissa Weber Mendonça
- Miles Cranmer
- Ralf Gommers
- Rohit Goswami
- Sayed Adel
- Sebastian Berg
*Pull requests merged*
A total of 18 pull requests were merged for this release.
- #22820: BLD: add workaround in setup.py for newer setuptools
- #22830: BLD: CIRRUS_TAG redux
- #22831: DOC: fix a couple typos in 1.23 notes
- #22832: BUG: Fix refcounting errors found using pytest-leaks
- #22834: BUG, SIMD: Fix invalid value encountered in several ufuncs
- #22837: TST: ignore more np.distutils.log imports
- #22839: BUG: Do not use getdata() in np.ma.masked_invalid
- #22847: BUG: Ensure correct behavior for rows ending in delimiter
in\...
- #22848: BUG, SIMD: Fix the bitmask of the boolean comparison
- #22857: BLD: Help raspian arm + clang 13 about builtin_mul_overflow
- #22858: API: Ensure a full mask is returned for masked_invalid
- #22866: BUG: Polynomials now copy properly (#22669)
- #22867: BUG, SIMD: Fix memory overlap in ufunc comparison loops
- #22868: BUG: Fortify string casts against floating point warnings
- #22875: TST: Ignore nan-warnings in randomized out tests
- #22883: MAINT: restore npymath implementations needed for freebsd
- #22884: BUG: Fix integer overflow in in1d for mixed integer dtypes
#22877
- #22887: BUG: Use whole file for encoding checks with
`charset_normalizer`.
Cheers,
Charles Harris
Hello!
I'm pleased to announce version 3.3.1, the 1st bugfix release
of branch 3.3 of CheetahTemplate3.
What's new in CheetahTemplate3
==============================
Bug fixes:
- Fixed ``ImportHooks`` under PyPy3.
Tests:
- Run tests with PyPy3.
CI:
- Use ``conda`` to install older Pythons
Ubuntu >= 22 and ``setup-python`` dropped Pythons < 3.7.
Use ``s-weigand/setup-conda`` instead of ``setup-python``.
What is CheetahTemplate3
========================
Cheetah3 is a free and open source (MIT) Python template engine.
It's a fork of the original CheetahTemplate library.
Python 2.7 or 3.4+ is required.
Where is CheetahTemplate3
=========================
Site:
https://cheetahtemplate.org/
Download:
https://pypi.org/project/CT3/3.3.1
News and changes:
https://cheetahtemplate.org/news.html
StackOverflow:
https://stackoverflow.com/questions/tagged/cheetah
Mailing lists:
https://sourceforge.net/p/cheetahtemplate/mailman/
Development:
https://github.com/CheetahTemplate3
Developer Guide:
https://cheetahtemplate.org/dev_guide/
Example
=======
Install::
$ pip install CT3 # (or even "ct3")
Below is a simple example of some Cheetah code, as you can see it's practically
Python. You can import, inherit and define methods just like in a regular Python
module, since that's what your Cheetah templates are compiled to :) ::
#from Cheetah.Template import Template
#extends Template
#set $people = [{'name' : 'Tom', 'mood' : 'Happy'}, {'name' : 'Dick',
'mood' : 'Sad'}, {'name' : 'Harry', 'mood' : 'Hairy'}]
<strong>How are you feeling?</strong>
<ul>
#for $person in $people
<li>
$person['name'] is $person['mood']
</li>
#end for
</ul>
Oleg.
--
Oleg Broytman https://phdru.name/ phd(a)phdru.name
Programmers don't die, they just GOSUB without RETURN.
Hello!
I'm pleased to announce version 3.10.1, the first minor feature release of
branch 3.10 of SQLObject.
What's new in SQLObject
=======================
Minor features
--------------
* Use ``module_loader.exec_module(module_loader.create_module())``
instead of ``module_loader.load_module()`` when available.
Drivers
-------
* Added ``mysql-connector-python``.
Tests
-----
* Run tests with Python 3.11.
CI
--
* Ubuntu >= 22 and ``setup-python`` dropped Pythons < 3.7.
Use ``conda`` via ``s-weigand/setup-conda`` instead of ``setup-python``
to install older Pythons on Linux.
For a more complete list, please see the news:
http://sqlobject.org/News.html
What is SQLObject
=================
SQLObject is a free and open-source (LGPL) Python 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/MariaDB (with a number of
DB API drivers: ``MySQLdb``, ``mysqlclient``, ``mysql-connector``,
``PyMySQL``, ``mariadb``), PostgreSQL (``psycopg2``, ``PyGreSQL``,
partially ``pg8000`` and ``py-postgresql``), SQLite (builtin ``sqlite``,
``pysqlite``, partially ``supersqlite``); connections to other backends
- Firebird, Sybase, MSSQL and MaxDB (also known as SAPDB) - are less
debugged).
Python 2.7 or 3.4+ is required.
Where is SQLObject
==================
Site:
http://sqlobject.org
Download:
https://pypi.org/project/SQLObject/3.10.1
News and changes:
http://sqlobject.org/News.html
StackOverflow:
https://stackoverflow.com/questions/tagged/sqlobject
Mailing lists:
https://sourceforge.net/p/sqlobject/mailman/
Development:
http://sqlobject.org/devel/
Developer Guide:
http://sqlobject.org/DeveloperGuide.html
Example
=======
Install::
$ pip install sqlobject
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
<Person 1 fname='John' mi=None lname='Doe'>
>>> p.fname
'John'
>>> p.mi = 'Q'
>>> p2 = Person.get(1)
>>> p2
<Person 1 fname='John' mi='Q' lname='Doe'>
>>> p is p2
True
Queries::
>>> p3 = Person.selectBy(lname="Doe")[0]
>>> p3
<Person 1 fname='John' mi='Q' lname='Doe'>
>>> pc = Person.select(Person.q.lname=="Doe").count()
>>> pc
1
Oleg.
--
Oleg Broytman https://phdru.name/ phd(a)phdru.name
Programmers don't die, they just GOSUB without RETURN.
I’m happy to announce a new release of attrs!
attrs is the direct ancestor of – and the inspiration for – dataclasses in the standard library and remains the more powerful toolkit for creating regular classes without getting bogged down with writing repetitive boilerplate code: <https://www.attrs.org/>
------------------------------------------------------------------------
It's been a lot busier than the changelog indicates, but a lot of the work happened under the hood (like some impressive performance improvements). But we've got still one big new feature that's are worthy the holidays:
Fields now have an alias argument that allows you to set the field's name in the generated __init__ method. This is especially useful for those who aren't fans of attrs's behavior of stripping underscores from private attribute names.
Special Thanks
This release would not be possible without my generous sponsors! Thank you to all of you making sustainable maintenance possible! If you would like to join them, go to https://github.com/sponsors/hynek and check out the sweet perks!
Above and Beyond
Variomedia AG (@variomedia), Tidelift (@tidelift), Sentry (@getsentry), HiredScore (@HiredScore), FilePreviews (@filepreviews), and Daniel Fortunov (@asqui).
Maintenance Sustainers
@rzijp, Adam Hill (@adamghill), Dan Groshev (@si14), Tamir Bahar (@tmr232), Adi Roiban (@adiroiban), Magnus Watn (@magnuswatn), David Cramer (@dcramer), Moving Content AG (@moving-content), Stein Magnus Jodal (@jodal), Iwan Aucamp (@aucampia), ProteinQure (@ProteinQure), Jesse Snyder (@jessesnyder), Rivo Laks (@rivol), Thomas Ballinger (@thomasballinger), @medecau, Ionel Cristian Mărieș (@ionelmc), The Westervelt Company (@westerveltco), Philippe Galvan (@PhilippeGalvan), Birk Jernström (@birkjernstrom), Jannis Leidel (@jezdez), Tim Schilling (@tim-schilling), Chris Withers (@cjw296), and Christopher Dignam (@chdsbd).
Not to forget 2 more amazing humans who chose to be generous but anonymous!
Full Changelog
Backwards-incompatible Changes
- Python 3.5 is not supported anymore. #988
Deprecations
- Python 3.6 is now deprecated and support will be removed in the next release. #1017
Changes
- attrs.field() now supports an alias option for explicit __init__ argument names.
Get __init__ signatures matching any taste, peculiar or plain! The PEP 681 compatible alias option can be use to override private attribute name mangling, or add other arbitrary field argument name overrides. #950
- attrs.NOTHING is now an enum value, making it possible to use with e.g. typing.Literal. #983
- Added missing re-import of attr.AttrsInstance to the attrs namespace. #987
- Fix slight performance regression in classes with custom __setattr__ and speedup even more. #991
- Class-creation performance improvements by switching performance-sensitive templating operations to f-strings.
You can expect an improvement of about 5% -- even for very simple classes. #995
- attrs.has() is now a TypeGuard for AttrsInstance. That means that type checkers know a class is an instance of an attrs class if you check it using attrs.has() (or attr.has()) first. #997
- Made attrs.AttrsInstance stub available at runtime and fixed type errors related to the usage of attrs.AttrsInstance in Pyright. #999
- On Python 3.10 and later, call abc.update_abstractmethods() on dict classes after creation. This improves the detection of abstractness. #1001
- attrs's pickling methods now use dicts instead of tuples. That is safer and more robust across different versions of a class. #1009
- Added attrs.validators.not_(wrapped_validator) to logically invert wrapped_validator by accepting only values where wrapped_validator rejects the value with a ValueError or TypeError (by default, exception types configurable). #1010
- The type stubs for attrs.cmp_using() now have default values. #1027
- To conform with PEP 681, attr.s() and attrs.define() now accept unsafe_hash in addition to hash. #1065
Wing Python IDE version 9.0.2 has been released with more debugger
optimizations and fixes for issues with match/case, 'python -m', and a
few other usability and stability problems:
Details: https://wingware.com/news/2022-12-20
Downloads: https://wingware.com/downloads
== About Wing ==
Wing is a full-featured but light-weight Python IDE designed
specifically for Python, with powerful editing, code inspection,
testing, and debugging capabilities. Wing's deep code analysis provides
auto-completion, auto-editing, code navigation, early error detection,
and refactoring that speed up development. Its top notch debugger works
with any Python code, locally or on a remote host, container, or
cluster. Wing also supports test-driven development, version control,
Python package management, UI color and layout customization, and
includes extensive documentation and support.
Wing is available in three product levels: Wing Pro is the
full-featured Python IDE for professional developers, Wing Personal is a
free Python IDE for students and hobbyists (omits some features), and
Wing 101 is a very simplified free Python IDE for beginners (omits many
features).
Learn more at https://wingware.com/