Skip to content

Package transformation frontends for Python v0.4.0 - #9

Merged
TonisOrmisson merged 1 commit into
mainfrom
codex/frontend-packaging
Jul 31, 2026
Merged

Package transformation frontends for Python v0.4.0#9
TonisOrmisson merged 1 commit into
mainfrom
codex/frontend-packaging

Conversation

@TonisOrmisson

Copy link
Copy Markdown
Contributor

What changed

  • keeps canonical transformation plans, schema models, and live-schema validation language-neutral
  • moves the SPSS lexer/parser/binder/compiler into openstatspec.frontends.spss
  • adds a generic apply_transformation_plan_in_place API for typed plans and strict mappings
  • keeps compile_spss_syntax, apply_spss_in_place, legacy transform imports, and apply-spss compatible
  • adds apply-plan and install-in-place-schema CLI commands
  • reserves empty Stata and SAS frontend directories without support claims
  • records canonical-plan versus SPSS-source audit provenance
  • documents the architecture and operational workflow in a transformation manual linked from README
  • prepares package version 0.4.0 and release gates

Why

The previous implementation had a generic canonical plan but placed SPSS-specific parser/compiler files under the generic transform namespace, and the SQL executor compiled SPSS text itself. This made future frontends difficult to add safely.

The new boundary is source syntax → frontend → canonical plan → generic in-place executor.

Invariants

  • same logical dataset and physical wide table are mutated in place
  • no OpenStatSpec undo, snapshot, copied table, derived dataset, or parallel history layer
  • all supported SQL connections remain allowed
  • Dolt adds branch/HEAD/clean-working-set controls and remains the versioning layer

Validation

  • complete local test suite: passed
  • focused canonical/frontend/in-place/CLI suite: 40 passed
  • official specification conformance fixtures: passed
  • source and installed-wheel import/compatibility smoke: passed
  • wheel and sdist builds: passed
  • two independent autoreview loops: no remaining P0/P1 blockers
  • git diff --check: passed (line-ending notices only)

@TonisOrmisson
TonisOrmisson marked this pull request as ready for review July 31, 2026 15:57
@TonisOrmisson
TonisOrmisson merged commit f2fce6f into main Jul 31, 2026
28 checks passed

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 051e12f763

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +262 to 265
return bind_transformation_plan(
plan,
schema,
)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Preserve operation spans in SPSS binding results

When callers compile SPSS syntax and inspect compilation.bound.operation_spans, this return now replaces the previous SPSS bound result with the generic two-field BoundTransformation, causing an AttributeError and discarding the spans collected above. Preserve the tuple in a frontend-specific result (or expose it on SpssFrontendCompilation) so the existing source-to-operation mapping remains available.

Useful? React with 👍 / 👎.

@TonisOrmisson
TonisOrmisson deleted the codex/frontend-packaging branch July 31, 2026 16:03
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.

1 participant