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
sansiosubdirectory, which has no__init__.pyfile 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
zipimportdoesn'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.txtfile, 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.lzmanamespace.
- 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
FileNotFoundErrorsubclass is now raised when a file isn't found.Previously, a
TypeErrorwas implicitly raised due to the structure of the code.
Documentation
- Add a
CITATION.cfffile.
- 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
describecommand 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
sqliteimportcommand: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 compilecommand 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 (
.pycfiles).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
dirhtmlbuilder. - Update the links shown on PyPI.
Development
Fix test project regeneration, which broke when Poetry 2 was released.
- Migrate from Poetry to
buildto build the test project wheels. - Pin the regeneration tool dependencies.
- Update the test projects'
pyproject.tomlfiles to use PEP 621 metadata keys.
- Migrate from Poetry to
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-corev2.
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.typedfile 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
sqliteimporttable 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
ResourceWarningin 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
cliextra. - 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