PrefectHQ
prefect
BlogDocsChangelog

Add Naming & Data Models for Custom Deployment SDK

#20158Merged
Comparing
custom-deployments-sdk-phase-2
(
0f00145
) with
main
(
ebb2c53
)
CodSpeed Performance Gauge
0%
Untouched
2
Ignored
6

Benchmarks

Passed

bench_task_decorator
benches/bench_tasks.py
CodSpeed Performance Gauge
0%
603.2 µs602 µs
bench_import_prefect_flow
benches/bench_import.py
CodSpeed Performance Gauge
0%
1.4 s1.4 s

Ignored

bench_task_submit
benches/bench_tasks.py
Ignored
CodSpeed Performance Gauge
-30%
8.4 ms11.9 ms
bench_task_call
benches/bench_tasks.py
Ignored
CodSpeed Performance Gauge
+3%
33.5 ms32.6 ms
bench_import_prefect
benches/bench_import.py
Ignored
CodSpeed Performance Gauge
0%
1.1 s1.1 s
bench_flow_call[options1]
benches/bench_flows.py
Ignored
CodSpeed Performance Gauge
-7%
107.2 ms114.8 ms
bench_flow_call[options0]
benches/bench_flows.py
Ignored
CodSpeed Performance Gauge
+1%
171.4 ms168.9 ms
bench_flow_decorator
benches/bench_flows.py
Ignored
CodSpeed Performance Gauge
+5%
5.8 ms5.5 ms

Commits

Click on a commit to change the comparison range
Base
main
ebb2c53
+0.11%
Add Phase 2 of Custom Deployment SDK: Naming & Data Models This phase adds: 1. Naming utilities (src/prefect/_sdk/naming.py): - to_identifier(): Convert arbitrary names to valid Python identifiers - to_class_name(): Convert names to PascalCase class names - Unicode separator handling (em-dash, non-breaking space become word boundaries) - NFKD normalization for accented characters (é → e) - Python keyword handling (class → class_ for identifiers, Class for class names) - Reserved name detection for SDK surface (run, run_async, with_options, etc.) - Collision resolution with numeric suffixes (_2, _3, etc.) 2. Data models (src/prefect/_sdk/models.py): - WorkPoolInfo: Work pool name, type, job variables schema - DeploymentInfo: Deployment name, flow name, parameter schema, work pool ref - FlowInfo: Flow name with list of deployments - SDKGenerationMetadata: Generation time, Prefect version, workspace, API URL - SDKData: Complete container for SDK generation with convenience methods 3. Comprehensive tests (227 total for _sdk module): - Edge cases: emoji, Unicode, keywords, empty strings, collisions - Non-ASCII separators, German ß, Unicode digits - Deterministic ordering verification Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
0f00145
1 day ago
by desertaxle
© 2026 CodSpeed Technology
Home Terms Privacy Docs