Skip to content

Commit 3fe7eb7

Browse files
authored
refactor: host Rust-only data models, constants and errors natively (#1112)
* refactor: delete unused compiler data-model constants and types * refactor: move Rust-read compiler constants into the native extension * refactor: move native row aliases and protocols into the extension stub * refactor: return native project assembly facts as extension classes * refactor: host planner constants natively and drop dead planner declarations * refactor: host planner value records natively * refactor: declare planner enums and the fixture inference cache natively * chore: reconcile boundary after planner data models * refactor: build CLI command requests and invocation contexts as native records * refactor: build CLI entry, compile output and skill results as native records * refactor: build dbt interop manifests, arguments and plans as native records * refactor: build source freshness observations and outcomes as native records * refactor: build run-cost observations, records and ledger entries as native records * refactor: declare CLI command and dbt interop enums natively * refactor: build authored SQL values and limits natively and raise validation errors natively * refactor: declare completion states, partial build timings and cost window units natively * refactor: raise expected CLI and migration state errors from native classes * chore: reconcile integrated data-model batch * test: compare planner differential types by name, not module * chore: drop stale imports after integrating native data models * chore: drop stale fensu exception and tidy differential comparison * fix: keep process resource usage in Python and account render-raised reference codes * fix: report oversized rendered constants as compile errors
1 parent 4153b83 commit 3fe7eb7

457 files changed

Lines changed: 14008 additions & 10268 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎crates/sqlbuild-cli/src/dispatch/constants.rs‎

Lines changed: 26 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@ pub(crate) const DBT_COMMAND_NAME: &str = "dbt";
1111
pub(crate) const DBT_INIT_SUBCOMMAND: &str = "init";
1212
pub(crate) const DIFF_COMMAND_NAME: &str = "diff";
1313

14-
const COMMAND_MODELS: &str = "sqlbuild.cli.commands.models";
15-
const ENTRY_MODELS: &str = "sqlbuild.cli.entry.models";
14+
const NATIVE_RECORDS: &str = "sqlbuild._native";
15+
const ENTRY_MODELS: &str = "sqlbuild._native";
1616
const PLANNER_MODELS: &str = "sqlbuild.compiler.planner.models";
1717

1818
const PROJECT_DIR: Field = field("project_dir", Source::ProjectDir);
@@ -54,7 +54,7 @@ const SNAPSHOT_LIMIT_FIELDS: [Field; 5] = [
5454
const SNAPSHOT_LIMITS: Field = field(
5555
"limit_inputs",
5656
Source::Nested(
57-
class(COMMAND_MODELS, "ScenarioSnapshotLimitInputs"),
57+
class(NATIVE_RECORDS, "ScenarioSnapshotLimitInputs"),
5858
&SNAPSHOT_LIMIT_FIELDS,
5959
),
6060
);
@@ -95,7 +95,7 @@ const SCOPE_FIELDS: [Field; 22] = [
9595
NO_COLOR,
9696
];
9797
const SCOPE_ARGUMENTS: [Field; 1] = [request(
98-
class(COMMAND_MODELS, "ScopeCommandRequest"),
98+
class(NATIVE_RECORDS, "ScopeCommandRequest"),
9999
&SCOPE_FIELDS,
100100
)];
101101
pub(crate) const SCOPE_ROUTE: Route = routed(
@@ -138,7 +138,7 @@ const PLAN_FIELDS: [Field; 19] = [
138138
same("selection_diagnostics"),
139139
];
140140
const PLAN_ARGUMENTS: [Field; 1] = [request(
141-
class(COMMAND_MODELS, "PlanCommandRequest"),
141+
class(NATIVE_RECORDS, "PlanCommandRequest"),
142142
&PLAN_FIELDS,
143143
)];
144144
pub(crate) const PLAN_ROUTE: Route = routed(
@@ -185,7 +185,7 @@ const BUILD_FIELDS: [Field; 34] = [
185185
same("selection_diagnostics"),
186186
];
187187
const BUILD_ARGUMENTS: [Field; 1] = [request(
188-
class(COMMAND_MODELS, "BuildCommandRequest"),
188+
class(NATIVE_RECORDS, "BuildCommandRequest"),
189189
&BUILD_FIELDS,
190190
)];
191191
pub(crate) const BUILD_ROUTE: Route = routed(
@@ -210,7 +210,7 @@ const FRESHNESS_FIELDS: [Field; 12] = [
210210
same("fail_on_stale"),
211211
];
212212
const FRESHNESS_ARGUMENTS: [Field; 1] = [request(
213-
class(COMMAND_MODELS, "FreshnessCommandRequest"),
213+
class(NATIVE_RECORDS, "FreshnessCommandRequest"),
214214
&FRESHNESS_FIELDS,
215215
)];
216216
pub(crate) const FRESHNESS_ROUTE: Route = routed(
@@ -235,7 +235,7 @@ const TEST_FIELDS: [Field; 12] = [
235235
same("inspect"),
236236
];
237237
const TEST_ARGUMENTS: [Field; 1] = [request(
238-
class(COMMAND_MODELS, "TestCommandRequest"),
238+
class(NATIVE_RECORDS, "TestCommandRequest"),
239239
&TEST_FIELDS,
240240
)];
241241
pub(crate) const TEST_ROUTE: Route = routed(
@@ -257,7 +257,7 @@ const CHECK_FIELDS: [Field; 9] = [
257257
JSON_OUTPUT_PATH,
258258
];
259259
const CHECK_ARGUMENTS: [Field; 1] = [request(
260-
class(COMMAND_MODELS, "CheckCommandRequest"),
260+
class(NATIVE_RECORDS, "CheckCommandRequest"),
261261
&CHECK_FIELDS,
262262
)];
263263
pub(crate) const CHECK_ROUTE: Route = routed(
@@ -281,7 +281,7 @@ const AUDIT_FIELDS: [Field; 11] = [
281281
JSON_OUTPUT_PATH,
282282
];
283283
const AUDIT_ARGUMENTS: [Field; 1] = [request(
284-
class(COMMAND_MODELS, "AuditCommandRequest"),
284+
class(NATIVE_RECORDS, "AuditCommandRequest"),
285285
&AUDIT_FIELDS,
286286
)];
287287
pub(crate) const AUDIT_ROUTE: Route = routed(
@@ -305,7 +305,7 @@ const LOAD_FIELDS: [Field; 11] = [
305305
JSON_OUTPUT_PATH,
306306
];
307307
const LOAD_ARGUMENTS: [Field; 1] = [request(
308-
class(COMMAND_MODELS, "LoadCommandRequest"),
308+
class(NATIVE_RECORDS, "LoadCommandRequest"),
309309
&LOAD_FIELDS,
310310
)];
311311
pub(crate) const LOAD_ROUTE: Route = routed(
@@ -327,7 +327,7 @@ const SEED_FIELDS: [Field; 9] = [
327327
JSON_OUTPUT_PATH,
328328
];
329329
const SEED_ARGUMENTS: [Field; 1] = [request(
330-
class(COMMAND_MODELS, "SeedCommandRequest"),
330+
class(NATIVE_RECORDS, "SeedCommandRequest"),
331331
&SEED_FIELDS,
332332
)];
333333
pub(crate) const SEED_ROUTE: Route = routed(
@@ -357,7 +357,7 @@ const LINEAGE_FIELDS: [Field; 11] = [
357357
CLI_VARS,
358358
];
359359
const LINEAGE_ARGUMENTS: [Field; 1] = [request(
360-
class(COMMAND_MODELS, "LineageCommandRequest"),
360+
class(NATIVE_RECORDS, "LineageCommandRequest"),
361361
&LINEAGE_FIELDS,
362362
)];
363363
pub(crate) const LINEAGE_ROUTE: Route = routed(
@@ -382,7 +382,7 @@ const CLONE_FIELDS: [Field; 12] = [
382382
attr("event_output_path", "event_output"),
383383
];
384384
const CLONE_ARGUMENTS: [Field; 1] = [request(
385-
class(COMMAND_MODELS, "CloneCommandRequest"),
385+
class(NATIVE_RECORDS, "CloneCommandRequest"),
386386
&CLONE_FIELDS,
387387
)];
388388
pub(crate) const CLONE_ROUTE: Route = routed(
@@ -433,7 +433,7 @@ const DIFF_FIELDS: [Field; 35] = [
433433
same("full_example_values"),
434434
];
435435
const DIFF_ARGUMENTS: [Field; 1] = [request(
436-
class(COMMAND_MODELS, "DiffCommandRequest"),
436+
class(NATIVE_RECORDS, "DiffCommandRequest"),
437437
&DIFF_FIELDS,
438438
)];
439439
pub(crate) const DIFF_ROUTE: Route = routed(
@@ -475,7 +475,7 @@ const COST_FIELDS: [Field; 11] = [
475475
JSON_OUTPUT_PATH,
476476
];
477477
const COST_ARGUMENTS: [Field; 1] = [request(
478-
class(COMMAND_MODELS, "CostCommandRequest"),
478+
class(NATIVE_RECORDS, "CostCommandRequest"),
479479
&COST_FIELDS,
480480
)];
481481
pub(crate) const COST_ROUTE: Route = routed(
@@ -516,7 +516,7 @@ const JANITOR_FIELDS: [Field; 8] = [
516516
same("as_target"),
517517
];
518518
const JANITOR_ARGUMENTS: [Field; 1] = [request(
519-
class(COMMAND_MODELS, "JanitorCommandRequest"),
519+
class(NATIVE_RECORDS, "JanitorCommandRequest"),
520520
&JANITOR_FIELDS,
521521
)];
522522
pub(crate) const JANITOR_ROUTE: Route = routed(
@@ -538,7 +538,7 @@ const REFACTOR_FIELDS: [Field; 9] = [
538538
NO_COLOR,
539539
];
540540
const REFACTOR_ARGUMENTS: [Field; 1] = [request(
541-
class(COMMAND_MODELS, "RefactorCommandRequest"),
541+
class(NATIVE_RECORDS, "RefactorCommandRequest"),
542542
&REFACTOR_FIELDS,
543543
)];
544544
pub(crate) const REFACTOR_ROUTE: Route = Route {
@@ -564,7 +564,7 @@ const CONTRACT_FIELDS: [Field; 10] = [
564564
CLI_VARS,
565565
];
566566
const CONTRACT_ARGUMENTS: [Field; 1] = [request(
567-
class(COMMAND_MODELS, "ContractCommandRequest"),
567+
class(NATIVE_RECORDS, "ContractCommandRequest"),
568568
&CONTRACT_FIELDS,
569569
)];
570570
pub(crate) const CONTRACT_ROUTE: Route = Route {
@@ -599,7 +599,7 @@ const COMPILE_FIELDS: [Field; 15] = [
599599
field(
600600
"lineage_mode",
601601
Source::Member(
602-
class("sqlbuild.cli.commands.types", "CompileLineageMode"),
602+
class("sqlbuild._native", "CompileLineageMode"),
603603
"compile_lineage_mode",
604604
),
605605
),
@@ -637,7 +637,7 @@ const PLAYGROUND_FIELDS: [Field; 3] = [
637637
attr("template", "playground_template"),
638638
];
639639
const PLAYGROUND_ARGUMENTS: [Field; 1] = [request(
640-
class(COMMAND_MODELS, "PlaygroundCommandRequest"),
640+
class(NATIVE_RECORDS, "PlaygroundCommandRequest"),
641641
&PLAYGROUND_FIELDS,
642642
)];
643643
pub(crate) const PLAYGROUND_ROUTE: Route = routed(
@@ -694,7 +694,7 @@ const RULES_FIELDS: [Field; 7] = [
694694
EXCLUDE,
695695
];
696696
const RULES_ARGUMENTS: [Field; 1] = [request(
697-
class(COMMAND_MODELS, "RulesCommandRequest"),
697+
class(NATIVE_RECORDS, "RulesCommandRequest"),
698698
&RULES_FIELDS,
699699
)];
700700
pub(crate) const RULES_ROUTE: Route = routed(
@@ -716,7 +716,7 @@ const DBT_INIT_FIELDS: [Field; 9] = [
716716
same("skip_dbt_debug"),
717717
];
718718
const DBT_INIT_ARGUMENTS: [Field; 1] = [request(
719-
class(COMMAND_MODELS, "DbtInitCommandRequest"),
719+
class(NATIVE_RECORDS, "DbtInitCommandRequest"),
720720
&DBT_INIT_FIELDS,
721721
)];
722722
pub(crate) const DBT_INIT_ROUTE: Route = routed(
@@ -731,7 +731,7 @@ const DBT_ARGUMENTS: [Field; 3] = [
731731
field("args", Source::TupleOf("dbt_args")),
732732
NO_COLOR,
733733
];
734-
const DBT_COMMAND: ClassRef = class("sqlbuild.integrations.dbt.types", "DbtInteropCommand");
734+
const DBT_COMMAND: ClassRef = class("sqlbuild._native", "DbtInteropCommand");
735735

736736
pub(crate) const DBT_PLAN_ROUTE: Route =
737737
dbt_route("run_dbt_plan", "plan", &DBT_ARGUMENTS, DBT_COMMAND);
@@ -769,7 +769,7 @@ const SCENARIO_TEST_FIELDS: [Field; 15] = [
769769
JSON_OUTPUT_PATH,
770770
];
771771
const SCENARIO_TEST_ARGUMENTS: [Field; 1] = [request(
772-
class(COMMAND_MODELS, "ScenarioTestCommandRequest"),
772+
class(NATIVE_RECORDS, "ScenarioTestCommandRequest"),
773773
&SCENARIO_TEST_FIELDS,
774774
)];
775775
pub(crate) const SCENARIO_TEST_ROUTE: Route = routed(
@@ -790,7 +790,7 @@ const SCENARIO_CAPTURE_FIELDS: [Field; 8] = [
790790
SNAPSHOT_LIMITS,
791791
];
792792
const SCENARIO_CAPTURE_ARGUMENTS: [Field; 1] = [request(
793-
class(COMMAND_MODELS, "ScenarioCaptureCommandRequest"),
793+
class(NATIVE_RECORDS, "ScenarioCaptureCommandRequest"),
794794
&SCENARIO_CAPTURE_FIELDS,
795795
)];
796796
pub(crate) const SCENARIO_CAPTURE_ROUTE: Route = routed(

‎crates/sqlbuild-python/src/bindings/_helpers/audit_command/command.rs‎

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ use crate::bindings::_helpers::command_runtime::invocation::resolve_reported_com
1515
use crate::bindings::_helpers::compile_driver::python_calls::{call_with, imported, within};
1616

1717
const NATIVE_MODULE: &str = "sqlbuild._native";
18-
const COMMAND_MODELS: &str = "sqlbuild.cli.commands.models";
1918
const EXTERNAL_REFS_MODULE: &str = "sqlbuild._native";
2019
const STATIC_COMMAND_MODULE: &str = "sqlbuild._native";
2120
const PIPELINE_MODELS: &str = "sqlbuild.compiler.pipeline.models";
@@ -484,7 +483,7 @@ fn complete(
484483
fn run_audit_command(py: Python<'_>, request: &Bound<'_, PyAny>) -> PyResult<i32> {
485484
let invocation: Bound<'_, PyAny> = resolve_reported_command_invocation(
486485
request,
487-
&imported(py, COMMAND_MODELS, "AuditInvocation")?,
486+
&imported(py, NATIVE_MODULE, "AuditInvocation")?,
488487
true,
489488
)?;
490489
let pipeline: Bound<'_, PyAny> = compile_audits(request, &invocation)?;

‎crates/sqlbuild-python/src/bindings/_helpers/build_command/completion.rs‎

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@ use crate::bindings::_helpers::cost_report::degradation::{
2626
};
2727

2828
const NATIVE_MODULE: &str = "sqlbuild._native";
29-
const COMMAND_MODELS: &str = "sqlbuild.cli.commands.models";
3029
const COST_TYPES: &str = "sqlbuild.cost.types";
3130
const BUILD_MODELS: &str = "sqlbuild.executor.build.models";
3231
const BUILD_TYPES: &str = "sqlbuild.executor.build.types";
@@ -76,7 +75,7 @@ pub(crate) fn finalize_build_cost<'py>(
7675
];
7776
fields.extend(cost.overrides);
7877
let finalization: Bound<'py, PyAny> = call_with(
79-
&imported(py, COMMAND_MODELS, "BuildCostFinalization")?,
78+
&imported(py, NATIVE_MODULE, "BuildCostFinalization")?,
8079
&fields,
8180
)?;
8281
finalize_cost(&finalization)

‎crates/sqlbuild-python/src/bindings/_helpers/build_command/invocation.rs‎

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ use crate::bindings::_helpers::compile_driver::python_calls::{call_with, importe
1414
use crate::bindings::_helpers::presentation_text::terminal::stdout_supports_color;
1515

1616
const NATIVE_MODULE: &str = "sqlbuild._native";
17-
const COMMAND_MODELS: &str = "sqlbuild.cli.commands.models";
1817
const SETTINGS_MODULE: &str = "sqlbuild._native";
1918
const ADAPTER_NAME_MODULE: &str = "sqlbuild._native";
2019
const TARGET_CONFIG_MODULE: &str = "sqlbuild._native";
@@ -196,7 +195,7 @@ pub(crate) fn resolve_build_context<'py>(
196195
load_sources.is_truthy()?
197196
};
198197
let invocation: Bound<'py, PyAny> = call_with(
199-
&imported(py, COMMAND_MODELS, "BuildInvocation")?,
198+
&imported(py, NATIVE_MODULE, "BuildInvocation")?,
200199
&[
201200
("effective_project_dir", project_dir),
202201
("discovered_inputs", discovered),

‎crates/sqlbuild-python/src/bindings/_helpers/build_command/policies.rs‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ use sqlbuild_core::build_command::models::{
1818

1919
use crate::bindings::_helpers::compile_driver::python_calls::{KeywordArguments, imported};
2020

21-
const ERRORS_MODULE: &str = "sqlbuild.cli.commands.exceptions";
21+
const ERRORS_MODULE: &str = "sqlbuild._native";
2222
const SNAPSHOT_VALUE: &str = "snapshot";
2323
const FULL_REFRESH_REASON: &str = "full_refresh";
2424
const SKIP_ACTION: &str = "skip";

‎crates/sqlbuild-python/src/bindings/_helpers/check/check_command.rs‎

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,7 @@ use crate::bindings::_helpers::compile_outputs::runtime_target::write_python_che
2525
use crate::bindings::_helpers::graph::python_selection::python_node_names;
2626

2727
const NATIVE_MODULE: &str = "sqlbuild._native";
28-
const ERRORS_MODULE: &str = "sqlbuild.cli.commands.exceptions";
29-
const COMMAND_MODELS: &str = "sqlbuild.cli.commands.models";
28+
const ERRORS_MODULE: &str = "sqlbuild._native";
3029
const EXTERNAL_REFS_MODULE: &str = "sqlbuild._native";
3130
const REJECT_UNIT_TESTS_MODULE: &str = "sqlbuild._native";
3231
const STATIC_COMMAND_MODULE: &str = "sqlbuild._native";
@@ -663,7 +662,7 @@ fn complete<'py>(
663662
fn run_check_command(py: Python<'_>, request: &Bound<'_, PyAny>) -> PyResult<i32> {
664663
let invocation: Bound<'_, PyAny> = resolve_reported_command_invocation(
665664
request,
666-
&imported(py, COMMAND_MODELS, "CheckInvocation")?,
665+
&imported(py, NATIVE_MODULE, "CheckInvocation")?,
667666
true,
668667
)?;
669668
let stream: Bound<'_, PyAny> = invocation.getattr("progress_stream")?;

‎crates/sqlbuild-python/src/bindings/_helpers/cli/argv.rs‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ use crate::bindings::_helpers::cli::namespace::new_cli_namespace;
1515
use crate::bindings::_helpers::cli::surrogates::{python_text, rust_text, uses_placeholders};
1616
use crate::bindings::_helpers::compile_driver::python_calls::{call_with, imported};
1717

18-
const ENTRY_MODELS_MODULE: &str = "sqlbuild.cli.entry.models";
18+
const ENTRY_MODELS_MODULE: &str = "sqlbuild._native";
1919
const INT_CONVERTER: &str = "int";
2020
const POSITIVE_INTEGER_CONVERTER: &str = "_positive_integer";
2121
const VARS_CONVERTER: &str = "parse_cli_vars";

‎crates/sqlbuild-python/src/bindings/_helpers/cli/dispatch.rs‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@ use sqlbuild_core::text::main::python_strip::python_strip;
2020

2121
use crate::bindings::_helpers::compile_driver::python_calls::{call_with, imported, within};
2222

23-
const EXCEPTIONS_MODULE: &str = "sqlbuild.cli.commands.exceptions";
24-
const ENTRY_MODELS_MODULE: &str = "sqlbuild.cli.entry.models";
23+
const EXCEPTIONS_MODULE: &str = "sqlbuild._native";
24+
const ENTRY_MODELS_MODULE: &str = "sqlbuild._native";
2525
const WAREHOUSES_MODULE: &str = "sqlbuild._native";
2626
const PATHLIB_MODULE: &str = "pathlib";
2727
const COMMENT_PREFIX: &str = "#";

‎crates/sqlbuild-python/src/bindings/_helpers/cli/entry.rs‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ use sqlbuild_core::cli_text::main::format_coded_error::format_coded_error;
2323
use sqlbuild_core::cli_text::models::CliStyle;
2424

2525
const NO_COLOR_OPTION: &str = "--no-color";
26-
const EXCEPTIONS_MODULE: &str = "sqlbuild.cli.commands.exceptions";
26+
const EXCEPTIONS_MODULE: &str = "sqlbuild._native";
2727
const COMPUTE_LOGS_MODULE: &str =
2828
"sqlbuild.cli.commands.main.entrypoint._dispatch_with_compute_logs";
2929
const LIFECYCLE_EVENT_MODULE: &str = "sqlbuild.runtime.observability.main.create_lifecycle_event";

‎crates/sqlbuild-python/src/bindings/_helpers/cli/namespace.rs‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ use sqlbuild_cli::argv::models::NamespaceDefault;
99

1010
use crate::bindings::_helpers::compile_driver::python_calls::imported;
1111

12-
const COMPILE_LINEAGE_MODULE: &str = "sqlbuild.cli.commands.types";
12+
const COMPILE_LINEAGE_MODULE: &str = "sqlbuild._native";
1313
const COLUMN_LINEAGE_MODULE: &str = "sqlbuild.compiler.lineage.types";
1414

1515
/// Typed namespace for all CLI arguments across all commands.

0 commit comments

Comments
 (0)