Skip to content

Fix lots of bugs - #39

Open
alexchandel wants to merge 5 commits into
claroty:masterfrom
alexchandel:alex
Open

Fix lots of bugs#39
alexchandel wants to merge 5 commits into
claroty:masterfrom
alexchandel:alex

Conversation

@alexchandel

Copy link
Copy Markdown

Hey, I don't expect you to merge this as I bumped to Python 3.14 for better syntax, but I've fixed a bunch of things you might want to know about and extract.

Bugs fixed:

  • Fixed Jet 3 jump-table offsets across null fields and 256-byte boundaries, preventing bogus memo/LVAL pointers.
  • Fixed Jet 3 LVPROP name decoding, eliminating repeated MSysObjects parsing errors.
  • Corrected Access GUID byte order; returns UUID.
  • Corrected OLE Date/Time handling; returns datetime.
  • Currency and Numeric/Decimal now return exact Decimal values.
  • Fixed null fixed-length field decoding.
  • Fixed primary keys referencing non-contiguous column IDs.

QOL improvements:

  • Added query-only, in-memory SQLite adapter with safe identifier quoting.

Regression testing:

  • Added broad pytest regression test coverage for test.mdb, type decoding, malformed inputs, and schema metadata.

Type annotations and cleanup:

  • Added strict Ruff, Pyright, and ty compliance with typed Construct boundaries.
  • Added SQLite/type documentation.

Other (enabling the above):

  • Modernized packaging to pyproject.toml/uv with a src layout, locked dependencies.

Fixes #34, #37, I think #31, and probably others.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Types coerced to string

1 participant