Changelog
3.2 (2024-1-8)
Allow configuring sibling layer independence.
Fix bug where a warning would be logged if a non-Python file with multiple dots in the filename was encountered.
Formally add support for Python 3.12.
3.1 (2023-10-13)
Add exclude_type_checking_imports argument to build_graph.
3.0 (2023-8-18)
Stable release of functionality from 3.0b1-3.
3.0b3 (2023-8-17)
Support for independent layers in find_illegal_dependencies_for_layers.
3.0b1, 3.0b2 (2023-8-15)
Switch to pyproject.toml.
Rename upstream/downstream in find_illegal_dependencies_for_layers to importer/imported. The original names were accidentally used in reverse; the new names have less potential for confusion.
Use Rust extension module for find_illegal_dependencies_for_layers.
2.5 (2023-7-6)
Log cache activity.
Drop support for Python 3.7.
Add find_illegal_dependencies_for_layers method.
2.4 (2023-5-5)
Change cache filename scheme to use a hash.
Ignore modules with dots in the filename.
2.3 (2023-3-3)
Add caching.
2.2 (2023-1-5)
Annotate get_import_details return value with a DetailedImport.
2.1 (2022-12-2)
Officially support Python 3.11.
2.0 (2022-9-27)
Significantly speed up graph copying.
Remove find_all_simple_chains method.
No longer use a networkx graph internally.
Fix bug where import details remained stored in the graph after removing modules or imports.
1.3 (2022-8-15)
Officially support Python 3.9 and 3.10.
Drop support for Python 3.6.
Support namespaced packages.
1.2.3 (2021-1-19)
Raise custom exception (NamespacePackageEncountered) if code under analysis appears to be a namespace package.
1.2.2 (2020-6-29)
Raise custom exception (SourceSyntaxError) if code under analysis contains syntax error.
1.2.1 (2020-3-16)
Better handling of source code containing non-ascii compatible characters
1.2 (2019-11-27)
Significantly increase the speed of building the graph.
1.1 (2019-11-18)
Clarify behaviour of get_import_details.
Add module_is_squashed method.
Add squash_module method.
Add find_all_simple_chains method.
1.0 (2019-10-17)
Officially support Python 3.8.
1.0b13 (2019-9-25)
Support multiple root packages.
1.0b12 (2019-6-12)
Add find_shortest_chains method.
1.0b11 (2019-5-18)
Add remove_module method.
1.0b10 (2019-5-15)
Fix Windows incompatibility.
1.0b9 (2019-4-16)
Fix bug with calling importlib.util.find_spec.
1.0b8 (2019-2-1)
Add as_packages parameter to direct_import_exists.
1.0b7 (2019-1-21)
Add count_imports method.
1.0b6 (2019-1-20)
Support building the graph with external packages.
1.0b5 (2019-1-12)
Rename get_shortest_path to get_shortest_chain.
Rename path_exists to chain_exists.
Rename and reorder the kwargs for get_shortest_chain and chain_exists.
Raise ValueError if modules with shared descendants are passed to chain_exists if as_packages=True.
1.0b4 (2019-1-7)
Improve repr of ImportGraph.
Fix bug with find_shortest_path using upstream/downstream the wrong way around.
1.0b3 (2018-12-16)
Fix bug with analysing relative imports from within __init__.py files.
Stop skipping analysing packages called
migrations
.Deal with invalid imports by warning instead of raising an exception.
Rename NetworkXBackedImportGraph to ImportGraph.
1.0b2 (2018-12-12)
Fix PyPI readme rendering.
1.0b1 (2018-12-08)
Implement core functionality.
0.0.1 (2018-11-05)
Release blank project on PyPI.