Skip to content

ExcelAlchemy 2.1.0

Choose a tag to compare

@ruicore ruicore released this 01 Apr 14:10
· 30 commits to main since this release
191d2ca

ExcelAlchemy 2.1.0

ExcelAlchemy 2.1.0 continues the stable 2.x line with internal architecture cleanup, clearer naming, and stronger separation between long-lived facade state and single-run import workflow state.

This release does not change the core public import/export workflow API. Instead, it makes the library easier to reason about, easier to extend, and better aligned with the design goals documented in the repository.

Highlights

  • import runtime state moved into a dedicated ImportSession
  • ExcelAlchemy is now a lighter facade focused on configuration and wiring
  • config internals are normalized into schema, behavior, and storage layers
  • FieldMetaInfo now uses clearer internal layering for declaration, runtime binding, workbook presentation, and import constraints
  • internal naming is more explicit, including the shift from df/header_df toward worksheet_table/header_table
  • excelalchemy.util.converter is now the canonical converter module name

What changed

Import workflow architecture

  • added ImportSession as the one-shot import runtime
  • moved worksheet state, header parsing state, issue tracking, and executor state out of the long-lived facade
  • kept ExcelAlchemy.import_data(...) unchanged at the public API level

Config normalization

  • added internal config layers:
    • ImporterSchemaOptions
    • ImportBehavior
    • ExporterSchemaOptions
    • ExportBehavior
    • StorageOptions
  • kept ImporterConfig(...) and ExporterConfig(...) unchanged for users
  • normalized internal storage resolution so the codebase now reads storage_options instead of scattering direct reads of storage, minio, bucket_name, and url_expires

Metadata layering

  • split FieldMetaInfo into clearer internal layers:
    • declaration metadata
    • runtime field binding
    • workbook presentation metadata
    • import constraint metadata
  • preserved existing FieldMeta(...) and ExcelMeta(...) usage

Naming cleanup

  • simplified generic type parameter names across the core architecture
  • moved internal workbook table vocabulary from df/header_df to worksheet_table/header_table
  • renamed excelalchemy.util.convertor to excelalchemy.util.converter

Compatibility notes

  • no public import/export workflow API was removed in this release
  • df and header_df remain available as backward-compatible aliases in 2.x
  • excelalchemy.util.convertor remains importable in 2.x and now acts as a deprecated compatibility shim
  • legacy Minio configuration remains supported in 2.x while the internal storage path now prefers normalized storage options

Verification

The release branch was verified with:

uv run ruff check .
uv run pyright
uv run pytest tests
uv build
uvx twine check dist/*