Releases: mdickinson/refcycle
refcycle 0.3.1
refcycle 0.3.0
This is a minor release that extends refcycle support through Python 3.12.
Changes
- Now supports Python 3.7 through Python 3.12. Support for earlier versions
of Python has been dropped. - The
refcycle.version
module and therefcycle.__version__
attribute
have been removed. To get the version number of the currently installed
package, useimportlib.metadata
.
Fixes
- Imports of container ABCs (like
Sized
,Iterable
) fromcollections
have been fixed to import fromcollections.abc
instead. - Test failures on Python 3.10 and 3.11 have been fixed.
Maintenance
- GitHub Actions workflows have been added for testing, style checks, test
documentation build and release. The previous Travis CI-based checks have
been removed. - Now uses setuptools-scm for dynamic versioning.
- Copyright headers have been updated.
- Source tree now follows a src/ layout.
- The project now uses
pyproject.toml
rather thansetup.py
. - Support for coverage via coveralls has been dropped.
refcycle 0.2.1
This is a bugfix release, fixing an issue with the readthedocs
URLs in the project's description on PyPI.
Fixes
- Fix readthedocs URLs in the package long description. (#69)
refcycle 0.2.0
This is a minor release, containing a few new helper methods and
bugfixes. Highlights include the shortest_path
and shortest_cycle
methods, improved annotations, and fixes for performance bugs that make
linear-time algorithms take quadratic time or worse.
Features
-
New
ObjectGraph
methods:shortest_cycle
,find_by_typename
andcount_by_typename
. (#64) -
New
shortest_path
method. (#61) -
Reduce memory usage of the AnnotatedGraph object by adding slots
to the AnnotatedEdge and AnnotatedVertex types. -
Add specific annotation for
module
objects. -
Add specific annotations for
getset_descriptor
objects.
Changes
- Use the current line number instead of the first line number in
the annotations forframe
objects. (#50)
Fixes
-
Fix quadratic-time behaviour in
DirectedGraph.full_subgraph
. (#63) -
Fix non-linear (exponential, in extreme cases) running time in
descendants
andancestors
methods. (#62) -
Fix annotations for functions with no
__name__
attribute. (#59) -
In Python 2, fix annotations for bound methods with no
im_class
attribute. (#56) -
Fix annotations for some peculiar
frame
objects whosef_locals
dict
has been replaced with a dict-like object. (The Enaml package does this.) (#51) -
Fix missing annotation for f_trace on frames. This was causing one
of the tests to fail when run under coverage. (#41)
RELEASE: Version 0.1.2.
This is a bugfix release:
- Ensure that the PDF docs build correctly, by providing PDF sources as well as SVG sources for images.
- Fix a buggy test that failed on second and subsequent runs.
- Update README and long description text: add PyPI information; add information on prerequisites; remove outdated information.
RELEASE: Version 0.1.1.
Bugfix release: include README.rst
in source distribution, since it's needed for the long description. Without this, pip install refcycle
fails.
RELEASE: Version 0.1.0.
New in this release:
- Basic documentation now exists.
- Added
IDirectedGraph.source_components
method for finding key strongly connected components. - More annotations: basic types (strings, numbers); frame objects.
- New methods
ObjectGraph.export_json
andAnnotatedGraph.import_json
for exporting to a JSON file, and for importing that JSON file as anAnnotatedGraph
object. (The previousexport_json
function, which returned a string, is now calledto_json
.) - New method
ObjectGraph.export_image
to export directly to an image file (usingdot
).
Bugfixes:
ancestors
anddescendants
methods didn't always fully explore to the given depth. Now fixed.- Graphviz labels containing quote characters are now correctly quoted.
See the CHANGES file for full details.
RELEASE: Version 0.0.1.
Bugfix release; fixes the download URL in the setup script.
RELEASE: Version 0.0.0.
This is the first release of refcycle that's meant for public consumption.