Metadata-Version: 2.4
Name: importscan
Version: 1.0.0
Summary: Recursively import modules and sub-packages
Author-email: Martijn Faassen <faassen@startifact.com>
Maintainer-email: Henri Hulski <henri@sancode.it>
License-Expression: BSD-3-Clause
Project-URL: Documentation, https://importscan.readthedocs.io
Project-URL: Repository, https://github.com/morepath/importscan
Project-URL: Issues, https://github.com/morepath/importscan/issues
Project-URL: Changelog, https://github.com/morepath/importscan/blob/master/CHANGES.txt
Keywords: decorator,import,package
Classifier: Intended Audience :: Developers
Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Programming Language :: Python :: 3.15
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Development Status :: 5 - Production/Stable
Requires-Python: >=3.11
Description-Content-Type: text/x-rst
License-File: LICENSE.txt
Provides-Extra: test
Requires-Dist: pytest>=8; extra == "test"
Requires-Dist: pytest-env; extra == "test"
Provides-Extra: coverage
Requires-Dist: pytest-cov; extra == "coverage"
Provides-Extra: lint
Requires-Dist: ruff; extra == "lint"
Provides-Extra: docs
Requires-Dist: sphinx<9.1; extra == "docs"
Provides-Extra: mypy
Requires-Dist: mypy; extra == "mypy"
Requires-Dist: pytest; extra == "mypy"
Provides-Extra: pyright
Requires-Dist: pyright; extra == "pyright"
Requires-Dist: pytest; extra == "pyright"
Dynamic: license-file

.. image:: https://github.com/morepath/importscan/workflows/CI/badge.svg?branch=master
   :target: https://github.com/morepath/importscan/actions?workflow=CI
   :alt: CI Status

.. image:: https://img.shields.io/pypi/v/importscan.svg
  :target: https://pypi.org/project/importscan/

.. image:: https://img.shields.io/pypi/pyversions/importscan.svg
  :target: https://pypi.org/project/importscan/


importscan: recursively import Python packages
**********************************************

``importscan`` provides a ``scan`` function that lets you recursively
import a package and its sub-modules and sub-packages.

Documentation_.

.. _Documentation: https://importscan.readthedocs.io

CHANGES
*******

1.0.0 (2026-10-10)
------------------

- Skip importing packages in scan() since they're already imported in walk_packages().

- Add type annotations and integrate ``mypy`` and ``pyright``.

- Switch to ``pyproject.toml`` based project setup.

- Add support for Python 3.11 - 3.15.

- Drop support for Python 3.10 and below.

- Support Pypy 3.12.

- Fix linting errors.

- Use GitHub Actions for CI.

- Add tests for 100% coverage.

- Update docs and adjust sphinx config.

- Make an overall cleanup.

- Fix readthedocs integration.

- Replace flake8, black, isort, pyupgrade and pre-commit with Ruff_.

  .. _Ruff: https://docs.astral.sh/ruff

- Add a tracked Git pre-commit hook for Ruff checks on staged Python files.

- Remove coveralls integration.

- Adjust the deployment strategy:
  
  * Move the Pypi upload from ``zest.release`` to ``gh-actions``.

  * Use ``v`` + version as release tags like ``v1.0.0``.

  * So we still use ``zest.release`` but without publishing to Pypi.
    The Pypi upload is triggered by pushing the new release tag to GitHub.
    This happens in the Release workflow in ``.github/workflows/release.yml``.
    With this workflow we get Trusted Publishing with short-lived OIDC tokens
    that PyPI issues to one specific repository, workflow file and environment (``pypi``).
    We also get PEP 740 provenance and can set required reviewers for the environment
    and a ruleset who can create release tags and trigger releases.


0.2 (2020-01-29)
----------------

- **Removed**: Removed support for Python 2.
  
  You have to upgrade to Python 3 if you want to use this version.

- Dropped support for Python 3.3 

- Added support for Python 3.5, 3.6, 3.7, 3.8 and PyPy 3.6.

- Make Python 3.7 the default testing environment.

- Fix deprecated and legacy code.

- Use virtualenv and pip instead of buildout to set up the
  development environment.

- Add development documentation and reorganize documentation.

- Upload universal wheels to pypi during release.

- Clean up the development and release workflow.

- Add integration for the Black code formatter.


0.1 (2016-03-15)
----------------

- Initial public release.
