Recent Releases of sqliteimport

sqliteimport - v0.13.0

Python support

  • Drop support for PyPy 3.10.

Fixed

  • Fall back to importing from source code if importing from byte code fails.

    This resolves a problem importing Flask when byte-compiled, due to its sansio subdirectory, which has no __init__.py file and whose submodules currently fail to import from the byte code table.

Documentation

  • Document compatible ruff configurations.

  • Add a logo and description to the sidebar on subpages.

  • Update the homepage sidebar layout and design.

Development

  • Fix performance testing issues.

    Zip-based bytecode import times were skewed during testing because zipimport doesn't use PEP 3147 __pycache__/ subdirectories. This is now accounted for by the performance testing script's setup steps, and zip-based import times are now accurate for comparison.

    Also, the total size of the source code and byte code trees is captured.

  • Begin to expand and better automate performance testing.

    This includes the ability to install from a requirements.txt file, to execute an arbitrary Python file, and to plot comparison bar charts of import times and package content sizes.

  • Use chipshot to standardize headers.

  • Prefer the new Python 3.14 compression.lzma namespace.

- Python
Published by kurtmckee 9 months ago

sqliteimport - v0.12.0

Fixed

  • Find all available distributions when no name is given.

    This allows tools like flake8 to auto-detect installed plugins.

- Python
Published by kurtmckee 11 months ago

sqliteimport - v0.11.0

Fixed

  • Fix a crash that occurs when CLI extras are not installed.

    This restores the user-friendly warning message behavior when [cli] extras are not installed.

Changed

  • A FileNotFoundError subclass is now raised when a file isn't found.

    Previously, a TypeError was implicitly raised due to the structure of the code.

Documentation

  • Add a CITATION.cff file.

- Python
Published by kurtmckee 11 months ago

sqliteimport - v0.10.0

Added

  • Add preliminary support for displaying files and source lines in tracebacks.

- Python
Published by kurtmckee about 1 year ago

sqliteimport - v0.9.0

Fixed

  • Ensure that modules have a __file__ attribute, and possibly a __cached__ attribute.

    The Python data model docs make it clear that these attributes aren't guaranteed, but it is nevertheless common for authors to assume that __file__ exists.

    The string value may not be usable for a specific purpose, but the attributes now exist with the correct type for increased compatibility.

- Python
Published by kurtmckee about 1 year ago

sqliteimport - v0.8.0

Added

  • Support namespace packages.

Fixed

  • Fix a bug, and inconsistencies, in the describe command output.
  • Verify a distribution package exists in the database before claiming it does.

- Python
Published by kurtmckee about 1 year ago

sqliteimport - v0.7.0

Added

  • Add a subcommand, describe, to print info about a database.
  • Add an alias for the CLI sqliteimport command: si.

Development

  • Improve the isolation of compatibility code.

- Python
Published by kurtmckee about 1 year ago

sqliteimport - v0.6.0

Added

  • Compress all database content using the LZMA algorithm.

    sqliteimport now produces databases that are smaller than importable zip files.

  • Support compiling to, and loading from, pre-compiled bytecode in the database.

    Performance testing shows that sqliteimport now imports large dependency trees faster than standard filesystem-based imports.

  • Add a sqliteimport compile command to compile all Python source to bytecode.

    The command should be run for each Python interpreter that will be used by the application.

Development

  • Add a Powershell script to test performance on Windows.

- Python
Published by kurtmckee about 1 year ago

sqliteimport - v0.5.0

Python support

  • Support PyPy 3.11.

Added

  • Add initial support for bundling and loading Python bytecode (.pyc files).

    Performance testing on Linux shows that loading from sqlite is now twice as fast.

    The implementation is currently inflexible: it binds the sqlite database to the Python version used to bundle it.

Documentation

  • Add the changelog and a colophon to the documentation.
  • Configure ReadtheDocs to use the dirhtml builder.
  • Update the links shown on PyPI.

Development

  • Fix test project regeneration, which broke when Poetry 2 was released.

    • Migrate from Poetry to build to build the test project wheels.
    • Pin the regeneration tool dependencies.
    • Update the test projects' pyproject.toml files to use PEP 621 metadata keys.
  • Add a script to log performance comparisons across multiple importers, including source and bytecode files when imported from the filesystem, from sqlite, and from zip files with varying compression levels.

- Python
Published by kurtmckee about 1 year ago

sqliteimport - v0.4.0

Added

  • Auto-load files on the Python path that end with .sqlite3.

Fixed

  • Pin the build system requirement to poetry-core v2.

Documentation

  • Document compatible flake8 and isort configurations.

- Python
Published by kurtmckee about 1 year ago

sqliteimport - v0.3.0

Python support

  • Test against Python 3.14 pre-releases.
  • Drop Python 3.8 support.
  • Drop PyPy 3.9 support.

Added

  • Add a database index to improve import performance.
  • Support calls to importlib.metadata.version().
  • Partially support accessing resources in packages.
  • Support binary files (like non-UTF-8 Python modules) and resources.

Fixed

  • Fix a bug in the bundling code that allowed non-Python files to be importable.

    Previously, a package containing a PEP 561 py.typed file would have an importable submodule named {package}.py.

  • Fix a bug that prevented databases bundled on Windows from finding package metadata.

Changed

  • Introduce a data access object to manage database interactions.
  • Create a sqliteimport table to store metadata about the database.
  • Bundle .dist-info/ metadata directories into databases.

Documentation

  • Use an absolute URL to the banner in the README.

    This helps ensure that PyPI releases will render the README consistently.

Development

  • Test that Unicode filenames can be imported.
  • Add a script to generate a large Python package for performance testing.
  • Resolve a ResourceWarning in the test suite on Python 3.13.
  • Add CI testing.
  • Create a framework for testing bundling and importing.
  • Migrate to PEP 621 metadata in pyproject.toml.
  • Create release PRs via a reusable workflow.

- Python
Published by kurtmckee about 1 year ago

sqliteimport - v0.2.0

Added

  • Add a cli extra.
  • Add a CLI command, sqliteimport bundle, to assist with database generation.

- Python
Published by kurtmckee almost 2 years ago

sqliteimport - v0.1.0

Initial release

  • Support loading Python source code from a sqlite database.

- Python
Published by kurtmckee almost 2 years ago