Recent Releases of enable
enable - Version 6.0.0
This is a major version update to add support for Python 3.11, PySide 6.4+, and TraitsUI 8. As part of this update, a number of backwards-incompatible changes were made. Perhaps the most significant of these was the removal of the partially implemented and buggy OpenGL Kiva backend, but it also included removing support for legacy Numeric APIs, changing modules with "qt4" in their name to use "qt" instead, some changes to make the various Kiva APIs more consistent, and some changes to the mapping of font families to bring them in line with documentation and other libraries.
Building Enable, with its complex dependencies has sometimes been challenging for users, so this release includes Github actions that use cibuildwheel to automatically build binary wheels across a wide variety of Python versions, operating systems and architectures and upload them to PyPI. This should make pip-based installs of Enable significantly easier.
Finally, as is usual for a release, there are a number of smaller bugfixes and minor improvements, such as bringing the PyCairo and Quartz backends back into a working state.
Thanks to:
- Mark Dickinson
- Chengyu Liu
- Didrik Pinte
- Corran Webster
- John Wiggins
Enhancements
- Move
kiva.imagetokiva.oldaggand makekiva.imagea stub (#1054) - Map
MODERNfonts to monospace andTELETYPEto typewriter (#977) - Normalize setting of colors across backends (#1052)
- Support for PySide 6.4+ (#1045, #1053)
- Remove support for old Numeric APIs (#1011)
- Python 3.11 support (#1042)
- Remove OpenGL backend (#1029)
- Code modernization (#933, #1015)
Fixes
- Fix
draw_path_at_pointsfor the Quartz Kiva backend (#1051) - Do explicit type conversions for PyQt5 on Python 3.10+ (#1041)
- Handle namespace changes for Pyface 8 and TraitsUI 8 (#1025, #1028, #1033, #1043)
- Better feedback for constraints examples if kiwisolver unavailable (#1019)
Testing and CI
- Automated wheel building (#1039)
- Maintenance of CI and tests (#1007, #1035, #1044)
- C
Published by corranwebster about 3 years ago
enable - Version 5.3.1
This is a bugfix release that aims to improve compatibility and completeness of the various Kiva backends. In particular, there are improvements for font selection and rendering, and some fixes for path and curve rendering (particularly for arcs). There are still some discrepancies in how things are drawn, but it is more likely that something reasonable will be produced on all backends.
This also includes some fixes provided by Brecht Machiels to return the wxPython backend to a working condition.
On the build and CI front, we have added SWIG to the pyproject.toml, and no longer ship any Cython-generated C++ files. With these changes it should be possible to pip install Enable in an environment with the appropriate C/C++ compilers.
Thanks to:
- Mark Dickinson
- Brecht Machiels
- Rahul Poruri
- Corran Webster
- John Wiggins
Fixes
- Fix the SCRIPT font family (#975)
- Improve font rendering (#973, #978, #980, #990)
- Fix curve and path rendering (#970, #987, #988)
- Correct Quartz backend string encoding (#966)
- Restore the WxPython backends to working order (#950)
Documentation
- Sphinx copy button support in documentation (#948)
Build and Continuous Integration
- add a github workflow for publishing releases to PyPI (#967)
- don't ship Cython-generated C++ files (#958)
- add SWIG to pyproject.toml dependencies (#954)
- C
Published by corranwebster almost 4 years ago
enable - Version 5.3.0
This release focused on support for PySide6, modernization of Traits code, and improving font handling.
Thanks to:
- Aaron Ayres
- Mark Dickinson
- Frank Fishburn
- Rahul Poruri
- Joris Vankerschaver
- Corran Webster
- John Wiggins
Enhancements
- A new font trait, including support for Pyface Font objects, including support for more font weights (#929)
- A new cross-toolkit Font editor that uses Enable internally (#928)
- Unification of the various color traits (#917, #924)
- Support for PySide6 (#897, #900)
Fixes
- Fix incorrect fallback font path (#931)
- Ensure toolkits are initialized before they are used (#921)
- Fix incorrect trait definitions for mouse pointer traits (#911)
- Validate line dash arguments (#910)
- Fixes for font file parsing and discovery (#906, #918, #919)
- Support pyparsing >= 3 for SVG parsing (#888)
Documentation
- Improvements to Kiva documentation (#914)
Maintenance
- Modernization of trait definitions (#925)
Build and Continuous Integration
- CI is now run on Python 3.8 and PySide 6 (#927)
- Replace use of Hypothesis by unittest subTest (#912)
- Use Ubuntu 18.04 for CI (#889)
- Some tests were not being run in CI (#929, #937)
- C
Published by corranwebster about 4 years ago
enable - Version 5.2.1
This is a bug fix release which addresses an issue with the FontManager encountered when no fonts are available and a rounding issue related to a recent pillow release.
Fixes
- Fix FontManager bug when no fonts are available (#871)
- Fix the dpi rounding issues with newer versions of pillow (#875)
- C
Published by aaronayres35 almost 5 years ago
enable - Release 5.2.0
The enable 5.2.0 minor version release was made to accompany the chaco 5.0.0 release. It includes some removals of deprecated code, refactoring, documentation improvements and bugfixes.
Enhancements
- Provide better support for mixed writing systems (#763, #764 #767, #768)
Fixes
- Fix listeners hooked up using observe but unhooked using ontraitchange (#766)
- Handle preferred size computation when container isnt resizable (#778)
- Fix alignment trait on "HStackedContainer" (#780)
- Update custom marker as scale_ctm expects floats (#782)
Documentation
- Convert # to #: to improve docstrings in markers (#784)
- Document EnableTestAssistant (#800)
Maintenance
- Remove "usedraworder" code path (#777)
- Add useful objects to "enable.api" (#779, #788)
- Remove Python 2 or 3 only conditionals (#785, #810)
- Remove dead code (#786)
- Remove deprecated "strtofont" and "pointsinpolygon" functions. (#787)
- Update super usage (#789, #790)
- Remove deprecated intercept_events trait on Container (#801)
- Use non deprecated font families styles etc (#806)* Replace use of deprecated GetItemPyData with its new replacement GetItemData (#807)
- Remove unused tk related drawing methods (#809)* Remove old deprecated drawing methods (#814)
- Remove AbstractWindow.bg_color trait (#816)
- Remove unused enable/traitdefs/ui/wx/enablergbacoloreditor.py module (#817)
- Deal with getstate methods (#804, #841)
Build and Continuous Integration
- Skip markers tests if not using agg (#799)
- Add pyproject.toml to specify cython and numpy as build deps (#808, #836, #847)
- Verify swig version in setup.py (#811)
- C
Published by aaronayres35 about 5 years ago
enable - Version 5.1.1
This is a bug fix release which addresses a drawing alignment issue.
Fixes
- Fix artefact in Qt caused by a wrong QRectF size. (#820)
- C
Published by aaronayres35 about 5 years ago
enable - Version 5.1.0
This is an incremental release which fixes several known bugs and improves font handling. On top of that, the documentation was substantially overhauled.
Enhancements
- Create an independent renderer for drawmarkerat_points (#724)
- Add IPython display support (#389)
- Add a way for applications to supply custom fonts (#711)
- Add Brush classes (#689)
- Add a benchmark program for comparing Kiva backends (#647, #653, #659, #661, #666, #667, #668, #671, #673, #677)
- Add a celiagg Kiva backend for Wx (#608)
Changes
- Add new ondragleave Enum trait to DragTool (#712)
- Refactor Font management and selection (#693, #695, #700, #701, #702, #704, #707, #714, #723, #726)
- Accept PIL Image instances in kiva.agg draw_image() (#682)
- Supply DPI when saving images (#678)
- Add face_index support to celiagg and kiva.agg backends. (#605)
Fixes
- Catch the exception thrown by AGG (#751)
- Don't create a ref cycle in AbstractWindow.cleanup() (#749)
- Set encoding when saving svg file (#735)
- Reorder the preferred fonts list (#698)
- Extract a better property dict from TTF fonts (#697)
- Get the Qt Quartz backend working again (#679)
- Fix set_font() for PDF and SVG backends (#674)
- Fix QPainter fill_path (#660)
- Fix save() in the quartz backend (#645)
- Fix font selection in the QPainter backend (#641)
Documentation
- Mention return value for drawmarkerat_points (#754)
- Update constrained layout documentation (#746)
- Rearrange the documentation (#732)
- Add documentation for ComponentEditor (#730)
- Add some developer docs for Kiva's FontManager (#725)
- Document Enable trait types (#721)
- Add documentation for mouse events (#717)
- Add documentation for AbstractWindow (#718)
- Ignore Kiva backends in the API docs (#703)
- Add a Kiva tutorial (#676)
- Document how colors work in Kiva (#684)
- Document image drawing in Kiva (#680)
- Place Kiva docs before Enable docs (#675)
- Document GraphicsContext state (#672)
- Add documentation for CompiledPath (#662)
- Add an intro section for Enable docs (#658)
- Update the Kiva GraphicsContext documentation (#644)
- Document the available Kiva backends (#646)
- Reorg docs and document Kiva text rendering (#639)
Testing
- Allow sending "mouse move" with left/right down with EnableTestAssistant (#715)
- Add tests for strtofont (#705)
Maintenance
- Deprecate the strtofont in enable.base (#748)
- Use BGRA32 for celiagg's default pixel format (#729)
- Require a minimum of Traits 6.2.0 (#755)
- Don't test drawing on Qt4 due to lack of Pillow support
- Remove kiva.fonttools.sstruct (#699)
- Remove old/broken code (#692)
- Add an 'oldagg' backend pointing to kiva.agg (#669)
- Replace uses of ontraitchange with observe (#656, #663, #665, #654)
- Normalize some signatures of Kiva methods (#691)
- Add ContextMenuTool to enable.tools.pyface.api (#690)
- Update celiagg backend to use 2.0.0 API (#633)
Build and Continuous Integration
- fix edmtool test-all command (#655)
- Install cron job dependencies correctly (#637)
- Add Cython and SWIG to cron job build deps (#607)
- C
Published by jwiggins over 5 years ago
enable - Version 5.1.0rc2
This is the second release candidate for 5.1.0
- C
Published by jwiggins over 5 years ago
enable - Version 5.1.0rc1
This is the first release candidate for 5.1.0
- C
Published by jwiggins over 5 years ago
enable - Version 5.0.1
This is a patch release which addresses some issues that were caught early in the 5.0.x series.
Fixes
- Fix KeySpec.from_string (#638)
- Don't mess up the component bounds in HiDPI mode (#635)
- C
Published by jwiggins over 5 years ago
enable - Version 5.0.0
Enhancements
- Add HiDPI support (#591, #595)
- Contribute examples to
etsdemo. (#494) - Add
Container.componentssetter. (#387)
Changes
- Accept a PIL Image as input to
draw_image(#590) - Use Pyface-style toolkit selection. (#571)
- Remove the old and outdated pyglet and vtk backends. (#570)
- Remove the PIL/pillow kiva compatibility wrapper code. (#569)
- Remove quartz
CGGLContext. (#515) - Make kiva explorer a popup. (#510)
- Remove import time side effect of creating the font cache in the
font_manager. (#488) - Drop support for Python <= 3.6 from the codebase. (#384, #461, #462, #463, #464, #465, #479, #506)
- Split out the GL backend. (#392)
- Add opacity to null-toolkit-defined rgbacolortrait. (#374)
- Don't use a
GraphicsContextfor storage in theImagecomponent. (#251)
Fixes
- Allow scaling in
kiva.aggdraw_marker_at_points(#594) - Celiagg's
clip_to_rectshould respect the transform matrix (#592) - Handle
ETSConfig.toolkit == 'qt'(#587) - Undo removal of getmaccontext import (#586)
- Allow unhandled key and mouse-wheel events to bubble up. (#552)
- Fix
Font.findfontnameAttributeErrorwhen the default font manager has not been initialized. (#531) - Fix
AttributeErroron Python 3.9 due to the use of removed API inxml. (#492) - Make font style- and stretch- check case insensitive. (#405)
- Add a missing
selfargument to a method. (#468) - WxPython4 fixes. (#403)
- Pass file object into
TTCollectionand close when done. (#378) - Fix
DeprecationWarning\s due to escape characters. (#371) - Don't mess with logging configuration. (#370)
- Fix KeyError while parsing ttfFontProperty. (#365)
Documentation
- Add documentation for toolkit/backend selection (#597)
- Add an example of controlling HiDPI usage (#596)
- Add an Image Explorer demo (#589)
- Improve module docstrings in kiva and enable api modules. (#518, #564)
- Mention in the README
libglu1-mesa-devis a build dependency on Linux. (#546) - Use templates when generating api docs for
enableandkiva. (#526) - Ignore toolkit-specific modules in api documentation. (#522, #527)
- Cleanup and fix errors in demos and examples. (#388, #402, #508, #511)
- Add a click command to build docs. (#499)
- Fix failing documentation build on Python 3. (#478)
- Expand
DragToolcomments. (#452) - Add a demo runner for enable. (#383)
Testing
- Clean up some of the agg tests. (#573)
- Add a unit test for drawing images. (#572)
- Unskip most of the
TestGLDrawingtests on OSX. (#540) - Address resource warnings because of open file handles. (#529)
- Rename test module so it gets discovered by unittest. (#528)
- Fix tests for PySide2 and add PySide2 to the testing matrix. (#484)
- Make tests for font manager quieter. (#487)
- Use unittest as the test runner instead of nose. (#475)
- Switch on default warnings flag for CI test command. (#469)
- Replace use of
tempfile.mktempwithtempfile.NamedTemporaryFile. (#456) - Add
dclickoption to test assistant. (#444)
Maintenance
- Remove files that are not used or needed. (#578)
- Use a standard copyright header. (#577)
- Remove
is_string_like. (#568) - Stop using deprecated trait handlers. (#567)
- Use kiva api modules where possible. (#565)
- Use
traits.api,traitsui.apiandpyface.apiwhere possible. (#566) - Remove outdated/broken debugging constructs. (#560)
- Cleanup non-standard use of
traitsui.apiimports. (#561) - Add
tox.inifor flake8 control. (#559) - Run black on enable and kiva. (#557, #558)
- Remove outdated/unnecessary files. (#521)
- Remove
TODO.txtfile from the manifest. (#523) - Use
pyface.undoinstead ofapptools.undo. (#507) - Remove module-level
findfontinfont_manager. (#505) - Remove
USE_FONTCONFIGinfont_manager. (#498) - Warn if attempted
pyfaceandtraitsuiimports fail. (#481) - Remove todo files in the repository. (#474)
- Add disclaimer in complaince with FreeType License. (#477)
- Add or update README files to mention what are vendored code. (#476)
- Remove unnecessary empty return statements. (#455)
- Replace default list argument with None. (#467)
- Use
isinstead of==when comparing toNone. (#457) - Remove dead/commented out code. (#466)
- Remove EOF markers from files. (#453)
- Fix test failures when testing against TraitsUI 7.1.0. (#446)
- Update badges and links in README. (#420)
- Regenerate
_cython_speedups.cppfor compatibility with Python 3.8. (#376) - Defer imports from
font_managerinfontmodule. (#368)
Build and Continuous Integration
- Update
setup.pyto allow creation of release candidates. (#575) - Provide the right path to the version file on windows. (#563)
- Unconditionally list
pillowas a runtime dependency. (#562) - Move to a single
setup.pyfile. (#535) - Declare
setuptoolsas a test dependency. (#547) - Move from Travis, Appveyor CI to GitHub Actions CI. (#538, #539. #542, #544, #548, #549, #579)
- Remove code coverage reporting on PRs. (#536)
- Unset and remove
use_2to3fromsetup.py. (#520) - Update CI requirements. (#513)
- Require wx toolkit CI job to pass. (#459)
- Use config when bootstrapping an edm environment. (#489)
- Remove install requirement version numbers from README. (#470)
- Make improvements to
edmtoolutility. (#454) - Fix missing new dependencies in cron job. (#448)
- Use PyQt5 from EDM instead of PyPI. (#437)
- Re-add Wx as a supported toolkit. (#432)
- Update cron job to install dependencies from git source. (#428)
- Use Python 3.6 as the default runtime in edmtool. (#430)
- Make CI green again and remove Python 3.5 from CI. (#424)
- Add optional demo dependencies to
setup.py. (#386) - Upgrade to EDM 2.0.0. (#373)
- Prevent nose from capturing logs. (#367)
- Fix the environment name used in CI. (#366)
- C
Published by jwiggins over 5 years ago
enable - Version 4.8.1
This is a patch release in the 4.8.x series.
Fixes
- PR #368: Deferral of kiva font_manager imports
- PR #365: Fix a KeyError while parsing ttfFontProperty
Maintenance
- PR #366: Fix CI config to avoid skipping tests in matrix
- PR #367: Fix CI config to avoid losing logs to nose
- C
Published by jwiggins almost 7 years ago
enable - Version 4.8.0
Enhancements
- PR #302: Qt5 Support
- PR #330: Add support for ttc fonts
- PR #345: Add more Qt mouse button names
Fixes
- PR #312: Ensure contiguity for memoryview arrays in pointsinpolygon
- PR #317: Fix rect drawing with celiagg
- PR #321: Kiva PDF backend: Don't clobber a passed-in font object
- PR #331: Prevent context menus in Enable Qt widgets.
- PR #346: Fix TypeError when passing unicode args to agg gradient methods
- PR #350: Don't fail when empty arrays are passed to pointsinpolygon
- PR #354: Fix typo in MANIFEST.in
- PR #358: Fix paths to static files.
Maintenance
- PR #322: Remove
sudo: falsefrom Travis config - PR #343: Fix code which triggered DeprecationWarnings
- PR #347: Setup Appveyor
- PR #348: Update EDM version for CI script
- PR #349: Update
unittestimports - PR #352: Quick and Dirty Documentation Improvements
- PR #353: Update Travis CI configuration to be compatible with Ubuntu Xenial.
- PR #356: CI failures on wx, python 2.7, win expected
- PR #357: Remove unnecessary Ubuntu package.
- C
Published by jwiggins about 7 years ago
enable - Version 4.7.2
Fixes
- PR #310: Remove locale-dependence in Agg text rendering
- PR #309: FIX: Ensure contiguous transposed arrays
- PR #305: Ignore X11 fonts on macOS
- PR #299: BUG: Remove use of C API not available in Python 3
Maintenance
- PR #308: Update to the most recent release of fonttools
- C
Published by jwiggins about 8 years ago
enable - Version 4.7.1
Bugfix release
Fixes
- PR #295: Use uint8_t from numpy instead of stdint
- C
Published by jvkersch over 8 years ago
enable - Version 4.7.0
This is a maintenance release, with the most significant change being an upgrade to the vendorized Agg code. This should resolve issues with hard crashes in (packages that use) Kiva.
Maintenance
- PR #288: Upgrade to a newer Agg version
- PR #287: Improve mouse wheel support
- PR #285: Add Python 3.5, 3.6 to CI
- PR #284, #289, #290: Support Python 3 without 2to3
- PR #281: Use EDM for CI testing
- PR #280: Clean up circular import in test
- C
Published by jvkersch over 8 years ago
enable - Version 4.6.2
Bugfix release
Fixes
- PR #272: Fix import failure when no fonts are installed on the system.
- PR #269: Fix floating-point numbers used as NumPy shapes (incompatible with NumPy 1.12.0).
- PR #268: Fix "no attribute 'getcurrentpoint'" error from savage on OS X.
- C
Published by mdickinson about 9 years ago
enable - Version 4.6.1
Bugfix release
Fixes
- PR #257: Fix a problem encountered when installing from pip
- C
Published by jwiggins over 9 years ago
enable - Version 4.6.0
Enhancements
- PR #246: Kiva explorer demo
- PR #222: New markers: 2 triangles, star, cross-plus, 2 hexagons, and pentagon
- PR #209: Python 3 Support
- PR #207: Viewport resizing
Fixes
- PR #243: Make savage compatible with newer PyParsing versions.
- PR #241: Fixed the trs_factor function
- PR #238: pointsinpolygon now returns a bool array
- PR #234: allow multiple gradient stops with wx toolkit
- PR #231: Be deterministic about initial state of viewport position and bounds
- PRs #215 & 217: Support for Pillow 3.0
- PR #205: Fix scrolling problem with Qt native scrollbar
- PR #203: numpy.rank() is deprecated
Maintainence
- PR #244: Remove support for Mac font suitcases.
- PR #240: add quartz to MANIFEST file
- PR #232: Don't assume window is MockWindow when dealing with pointer position
- PR #230: Fix for build issues
- PR #227: Create codecov.yml
- PRs #226 & #201: Fix g++ version string parsing
- PR #223: Fix SVG Tests
- PR #214: Add docs and examples to the source distribution
- PR #206: Containerize Travis CI Builds
- PR #195: Multiple build environments
- PR #177: fixes for recent swig
- PR #192: Add the auto-generated enable/_version.py to .gitignore
- PR #191: fix missing framework when building kiva.quartz.
- PR #180: fix minor errors in sphinx build
- C
Published by jwiggins over 9 years ago
enable - Version 4.5.1
Bugfix release
Fixes
- PR #182: Fix enable setup under recent versions of setuptools
- PR #180: Fixed sphinx warnings
- PR #178: Fix Travis-CI build and version file setup for kiva and enable
- C
Published by itziakos over 11 years ago
enable - Version 4.5.0
Enhancements
- PR #138: Optional constraints-based layout.
- PR #140: Add a base class for drag and drop tools, example and test support.
- PR #150: Add a very basic Image component
- PR #160: Basic testing for kiva backends.
- PR #168: Simple push-button and checkbox tool.
- PR #167: Add tools that support Apptools Undo/Redo.
Fixes
- PR#139 Significant code clean-up, modernization, test improvement and documentation for Kiva.
- Multiple fixes for breaks to Travis-CI builds.
- C
Published by jwiggins over 11 years ago