@kernlang/python 3.5.9-canary.220.1.c398cd95 → 4.0.1-canary.222.1.f06f1a51

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2,10 +2,10 @@
2
2
  * Data layer generators — Python generation for KERN's data nodes:
3
3
  * model, repository, cache, dependency, service, union
4
4
  */
5
- import { emitIdentifier, getFirstChild, getProps, handlerCode, mapSemanticType, propsOf } from '@kernlang/core';
5
+ import { emitIdentifier, getFirstChild, getProps, handlerCode, hasDirectSuperCtorCall, isExprObject, mapSemanticType, propsOf, } from '@kernlang/core';
6
6
  import { emitNativeKernBodyPythonWithImports } from '../codegen-body-python.js';
7
7
  import { buildPythonParamList, firstChild, kids, p, parseLegacyParamParts } from '../codegen-helpers.js';
8
- import { mapTsTypeToPython, toSnakeCase } from '../type-map.js';
8
+ import { mapTsTypeToPythonAnnotation, toSnakeCase } from '../type-map.js';
9
9
  /** Slice 4b — native KERN method body dispatch (Python target).
10
10
  *
11
11
  * Returns `{ code, imports }` for a method's handler. When the handler
@@ -19,17 +19,28 @@ import { mapTsTypeToPython, toSnakeCase } from '../type-map.js';
19
19
  *
20
20
  * When the handler is legacy raw, returns `{ code: handlerCode(method),
21
21
  * imports: empty }`. */
22
- function methodBodyCodePython(method) {
22
+ function methodBodyCodePython(method, opts) {
23
23
  const handler = getFirstChild(method, 'handler');
24
24
  if (!handler || getProps(handler).lang !== 'kern') {
25
25
  return { code: handlerCode(method), imports: new Set(), helpers: new Set() };
26
26
  }
27
27
  const symbolMap = {};
28
- const claimedSnake = new Set(['self']);
28
+ // The implicit receiver occupies the first parameter slot: `self` for an
29
+ // instance member, `cls` for a static accessor (metaclass property). A user
30
+ // parameter that snake-cases to the receiver name would emit invalid Python
31
+ // (e.g. `def label(cls, cls):`), so reserve it and fail codegen early with a
32
+ // clear message rather than generate a SyntaxError.
33
+ const receiver = opts?.staticReceiver ? 'cls' : 'self';
34
+ const claimedSnake = new Set([receiver]);
29
35
  const recordParam = (rawName) => {
30
36
  if (!rawName)
31
37
  return;
32
38
  const snake = toSnakeCase(rawName);
39
+ if (snake === receiver) {
40
+ throw new Error(`KERN-Python codegen: parameter '${rawName}' snake-cases to '${snake}', the implicit ` +
41
+ `${opts?.staticReceiver ? 'static-accessor receiver (cls)' : 'method receiver (self)'}. ` +
42
+ 'Rename the parameter to avoid shadowing the receiver.');
43
+ }
33
44
  if (claimedSnake.has(snake)) {
34
45
  throw new Error(`KERN-Python codegen: method param '${rawName}' snake-cases to '${snake}', which collides with another param on this method. ` +
35
46
  'Rename one of the parameters to disambiguate.');
@@ -54,7 +65,16 @@ function methodBodyCodePython(method) {
54
65
  recordParam(part.name);
55
66
  }
56
67
  }
57
- const { code, imports, helpers } = emitNativeKernBodyPythonWithImports(handler, { symbolMap });
68
+ // Class member bodies: `this` resolves to `self`, and `super(...)`/`super.x`
69
+ // lower to `super().__init__(...)`/`super().x` via the inClassBody flag.
70
+ // In a static accessor (metaclass property) body `this` is the class -> `cls`.
71
+ if (opts?.classBody)
72
+ symbolMap.this = opts?.staticReceiver ? 'cls' : 'self';
73
+ const { code, imports, helpers } = emitNativeKernBodyPythonWithImports(handler, {
74
+ symbolMap,
75
+ inClassBody: opts?.classBody ?? false,
76
+ inConstructor: opts?.isConstructor ?? false,
77
+ });
58
78
  return { code, imports, helpers };
59
79
  }
60
80
  /** Slice 4b — flatten a method's body code + per-method imports into the
@@ -63,8 +83,8 @@ function methodBodyCodePython(method) {
63
83
  * scope absorbs them, and Python caches modules after first import.
64
84
  * Returns the indented lines (4-space prefix) ready to push into the
65
85
  * enclosing class definition. Empty body yields a single `pass`. */
66
- function methodBodyLinesPython(method) {
67
- const { code, imports, helpers } = methodBodyCodePython(method);
86
+ function methodBodyLinesPython(method, opts) {
87
+ const { code, imports, helpers } = methodBodyCodePython(method, opts);
68
88
  const lines = [];
69
89
  for (const mod of [...imports].sort()) {
70
90
  lines.push(` import ${mod} as __k_${mod}`);
@@ -112,6 +132,27 @@ export function formatPythonDefault(value, kernType) {
112
132
  }
113
133
  return trimmed;
114
134
  }
135
+ /** Lower a field's default to a Python expression, or undefined when none.
136
+ * A `value={{ <expr> }}` block parses to `{ __expr: true, code: '<expr>' }`;
137
+ * a bare `default=...` is a raw string. `new X(...)` -> `X(...)`; literals go
138
+ * through formatPythonDefault (true/false/null/number/string handling). */
139
+ function fieldDefaultPython(field) {
140
+ const fp = p(field);
141
+ const v = fp.value;
142
+ let code;
143
+ if (v && typeof v === 'object' && v.__expr) {
144
+ code = v.code;
145
+ }
146
+ else if (typeof v === 'string') {
147
+ code = v;
148
+ }
149
+ else if (typeof fp.default === 'string') {
150
+ code = fp.default;
151
+ }
152
+ if (code === undefined)
153
+ return undefined;
154
+ return formatPythonDefault(code.replace(/\bnew\s+/g, ''), fp.type || '');
155
+ }
115
156
  // SQLModel column override: pydantic validator types -> plain DB types for column declarations
116
157
  const SQLMODEL_COLUMN_OVERRIDE = {
117
158
  Email: 'str',
@@ -244,8 +285,11 @@ export function generatePythonRepository(node) {
244
285
  const asyncKw = isAsync ? 'async ' : '';
245
286
  // Slice 3c P2 follow-up: target-neutral helper reads structured `param`
246
287
  // children when present, falls back to legacy `params="..."` otherwise.
247
- const params = buildPythonParamList(method, { selfPrefix: true });
248
- const returns = mp.returns ? ` -> ${mapTsTypeToPython(mp.returns)}` : '';
288
+ // Lazy annotations (mirror of fb0bd72a for generatePythonClass): a member
289
+ // signature that references a custom/forward class name must be quoted so
290
+ // Python's eager annotation evaluation doesn't NameError on the ref.
291
+ const params = buildPythonParamList(method, { selfPrefix: true, lazyAnnotations: true });
292
+ const returns = mp.returns ? ` -> ${mapTsTypeToPythonAnnotation(mp.returns)}` : '';
249
293
  lines.push(` ${asyncKw}def ${mname}(${params})${returns}:`);
250
294
  // Slice 4b — methodBodyLinesPython dispatches lang=kern, builds symbol
251
295
  // map, injects required imports inline, and falls back to raw handler
@@ -328,7 +372,12 @@ export function generatePythonDependency(node) {
328
372
  lines.push(`_${name}_instance = None`);
329
373
  lines.push('');
330
374
  }
331
- lines.push(`def create_${name}() -> ${returnsType}:`);
375
+ // Lazy annotation (mirror of d1c209de): the factory's return annotation may
376
+ // reference a forward-defined class, so quote it to avoid an eager-evaluation
377
+ // NameError. Only the ANNOTATION is mapped — `returnsType` is reused verbatim
378
+ // below as a CONSTRUCTOR CALL (`instance = ${returnsType}(...)`), an evaluated
379
+ // position that must stay a bare name.
380
+ lines.push(`def create_${name}() -> ${mapTsTypeToPythonAnnotation(returnsType)}:`);
332
381
  if (scope === 'singleton') {
333
382
  lines.push(` global _${name}_instance`);
334
383
  lines.push(` if _${name}_instance:`);
@@ -380,7 +429,9 @@ export function generatePythonService(node) {
380
429
  .map((f) => {
381
430
  const fp = p(f);
382
431
  const fname = toSnakeCase(fp.name || 'field');
383
- const ftype = fp.type ? mapTsTypeToPython(fp.type) : 'Any';
432
+ // Lazy annotation (mirror of fb0bd72a): a ctor field typed with a custom
433
+ // class name must be quoted so the eager annotation doesn't NameError.
434
+ const ftype = fp.type ? mapTsTypeToPythonAnnotation(fp.type) : 'Any';
384
435
  return `${fname}: ${ftype}`;
385
436
  })
386
437
  .join(', ');
@@ -404,8 +455,10 @@ export function generatePythonService(node) {
404
455
  const asyncKw = isAsync ? 'async ' : '';
405
456
  // Slice 3c P2 follow-up: target-neutral helper reads structured `param`
406
457
  // children when present, falls back to legacy `params="..."` otherwise.
407
- const params = buildPythonParamList(method, { selfPrefix: true });
408
- const returns = mp.returns ? ` -> ${mapTsTypeToPython(mp.returns)}` : '';
458
+ // Lazy annotations (mirror of fb0bd72a): a service member signature
459
+ // referencing a custom/forward class name is quoted to avoid a NameError.
460
+ const params = buildPythonParamList(method, { selfPrefix: true, lazyAnnotations: true });
461
+ const returns = mp.returns ? ` -> ${mapTsTypeToPythonAnnotation(mp.returns)}` : '';
409
462
  lines.push(` ${asyncKw}def ${mname}(${params})${returns}:`);
410
463
  // Slice 4b — same method dispatch as repository, sharing the helper.
411
464
  const bodyLines = methodBodyLinesPython(method);
@@ -420,6 +473,231 @@ export function generatePythonService(node) {
420
473
  }
421
474
  return lines;
422
475
  }
476
+ // ── Class (single-source class slice, Python target) ────────────────────
477
+ // Phase 1: structural shell parity with the TS `emitClassBody`. Emits the
478
+ // class header + `extends` base, static fields as class attributes, the
479
+ // constructor as `__init__`, instance/static methods, and getters/setters via
480
+ // `@property`. Method/ctor bodies route through the shared
481
+ // `methodBodyLinesPython`; full class-body symbol translation
482
+ // (`this`->`self`, `super.m()`->`super().m()`, `new X()`->`X()`) is the next
483
+ // sub-problem the differential class fixtures will drive.
484
+ export function generatePythonClass(node) {
485
+ const props = p(node);
486
+ const name = emitIdentifier(props.name, 'UnknownClass', node);
487
+ const baseRaw = typeof props.extends === 'string' ? props.extends : '';
488
+ const base = baseRaw ? emitIdentifier(baseRaw, 'object', node) : '';
489
+ const isStatic = (n) => {
490
+ const np = p(n);
491
+ return np.static === 'true' || np.static === true;
492
+ };
493
+ // `abstract` is ERASED at codegen on both targets (a plain, instantiable
494
+ // class — matching TS, where `abstract` is compile-time-only and gone from
495
+ // emitted JS). An abstract member is a handler-less method/getter/setter under
496
+ // an abstract class; it lowers to a fail-fast `raise`, so an un-overridden
497
+ // abstract member fails identically on TS (throw) and Python (raise) — parity
498
+ // by construction. `implements` is likewise erased (the semantic validator
499
+ // owns conformance); only a human-readable marker comment is emitted.
500
+ const isAbstractClass = props.abstract === 'true' || props.abstract === true;
501
+ const implementsRaw = typeof props.implements === 'string' ? props.implements : '';
502
+ const isAbstractMember = (m) => isAbstractClass && firstChild(m, 'handler') === undefined;
503
+ const abstractRaise = (kind, memberName) => ` raise NotImplementedError("abstract ${kind} ${name}.${memberName} not implemented")`;
504
+ const fields = kids(node, 'field');
505
+ const staticFields = fields.filter(isStatic);
506
+ const methods = kids(node, 'method');
507
+ const getters = kids(node, 'getter');
508
+ const setters = kids(node, 'setter');
509
+ const ctor = firstChild(node, 'constructor');
510
+ // Static accessors (static get/set) lower to a per-class metaclass: both
511
+ // `Box.label` reads and `Box.label = x` writes dispatch through the metaclass
512
+ // @property/.setter (a plain descriptor would be shadowed on assignment). The
513
+ // static backing field stays a class attribute. The metaclass extends
514
+ // `type(<base>)` so that when the base ALSO has static accessors the derived
515
+ // metaclass subclasses the base metaclass (no `metaclass conflict`, and the
516
+ // base's static accessors are inherited); when the base has none, `type(<base>)`
517
+ // is just `type`.
518
+ const staticGetters = getters.filter(isStatic);
519
+ const staticSetters = setters.filter(isStatic);
520
+ const metaName = `_${name}Meta`;
521
+ const metaLines = [];
522
+ if (staticGetters.length + staticSetters.length > 0) {
523
+ metaLines.push(`class ${metaName}(${base ? `type(${base})` : 'type'}):`);
524
+ const metaGetterNames = new Set();
525
+ for (const g of staticGetters) {
526
+ const gp = p(g);
527
+ const gname = toSnakeCase(gp.name || 'prop');
528
+ const returns = gp.returns ? ` -> ${mapTsTypeToPythonAnnotation(gp.returns)}` : '';
529
+ metaGetterNames.add(gname);
530
+ metaLines.push(' @property');
531
+ metaLines.push(` def ${gname}(cls)${returns}:`);
532
+ // Abstract static accessors fail-fast like instance ones, so an
533
+ // un-overridden abstract static getter raises on Python the same way it
534
+ // throws on TS (was silently `pass` -> None before).
535
+ if (isAbstractMember(g)) {
536
+ metaLines.push(abstractRaise('getter', gname));
537
+ }
538
+ else {
539
+ metaLines.push(...methodBodyLinesPython(g, { classBody: true, staticReceiver: true }));
540
+ }
541
+ metaLines.push('');
542
+ }
543
+ for (const s of staticSetters) {
544
+ const sname = toSnakeCase(p(s).name || 'prop');
545
+ if (!metaGetterNames.has(sname)) {
546
+ metaLines.push(' @property');
547
+ metaLines.push(` def ${sname}(cls): # write-only static property`);
548
+ metaLines.push(' return None');
549
+ metaLines.push('');
550
+ metaGetterNames.add(sname);
551
+ }
552
+ metaLines.push(` @${sname}.setter`);
553
+ metaLines.push(` def ${sname}(cls, ${buildPythonParamList(s, { selfPrefix: false, lazyAnnotations: true })}):`);
554
+ if (isAbstractMember(s)) {
555
+ metaLines.push(abstractRaise('setter', sname));
556
+ }
557
+ else {
558
+ metaLines.push(...methodBodyLinesPython(s, { classBody: true, staticReceiver: true }));
559
+ }
560
+ metaLines.push('');
561
+ }
562
+ }
563
+ const baseParts = [base, metaLines.length > 0 ? `metaclass=${metaName}` : ''].filter(Boolean);
564
+ const header = baseParts.length > 0 ? `class ${name}(${baseParts.join(', ')}):` : `class ${name}:`;
565
+ const body = [];
566
+ // Static fields -> class-level attributes (shared across instances, like TS statics).
567
+ for (const f of staticFields) {
568
+ const fp = p(f);
569
+ const fname = toSnakeCase(fp.name || 'field');
570
+ const ftype = fp.type ? mapTsTypeToPythonAnnotation(fp.type) : 'Any';
571
+ body.push(` ${fname}: ${ftype} = ${fieldDefaultPython(f) ?? 'None'}`);
572
+ }
573
+ if (staticFields.length > 0)
574
+ body.push('');
575
+ // Constructor -> __init__. Instance-field defaults are emitted INSIDE __init__
576
+ // (never as class-level attributes) so each instance gets a fresh value —
577
+ // matching TS per-instance field initialization and avoiding Python's
578
+ // shared-mutable-default trap (a class-level `items = []` would be shared by
579
+ // every instance). Defaults precede the constructor body, which may reassign
580
+ // them (TS field-init-then-constructor order).
581
+ const instanceDefaults = fields.filter((f) => !isStatic(f) && fieldDefaultPython(f) !== undefined);
582
+ const defaultLines = instanceDefaults.map((f) => ` self.${toSnakeCase(p(f).name || 'field')} = ${fieldDefaultPython(f)}`);
583
+ if (ctor) {
584
+ body.push(` def __init__(${buildPythonParamList(ctor, { selfPrefix: true, lazyAnnotations: true })}):`);
585
+ const ctorLines = methodBodyLinesPython(ctor, { classBody: true, isConstructor: true });
586
+ // Whether the constructor already calls super(...) is decided by the canonical
587
+ // structural predicate (shared with the validator, runtime, and TS target) —
588
+ // NEVER by scanning emitted text, so a `super().__init__` substring inside a
589
+ // string literal or comment can't change codegen. Field initializers run AFTER
590
+ // super (TS field-init-after-super order).
591
+ if (hasDirectSuperCtorCall(ctor)) {
592
+ // Explicit-super mode: position the field defaults right after the emitted
593
+ // super line. The predicate already proved a direct super exists, so this
594
+ // locates the real call (a native super(...) lowers to `super().__init__(...)`);
595
+ // the index is used only for placement, not the inject decision.
596
+ const superIdx = ctorLines.findIndex((line) => line.includes('super().__init__'));
597
+ const splice = superIdx >= 0 ? superIdx + 1 : 0;
598
+ body.push(...ctorLines.slice(0, splice), ...defaultLines, ...ctorLines.slice(splice));
599
+ }
600
+ else if (base) {
601
+ // Implicit-super mode (KERN Option C): a DERIVED constructor that omits
602
+ // super() gets an implicit no-arg base-init injected FIRST, then field
603
+ // defaults, then the body — so `this`/field access is always legal (TS
604
+ // requires super-before-this; Python is lax, but we emit identically for
605
+ // parity). The author writes explicit `super(args)` only to pass args up;
606
+ // when the base constructor REQUIRES args, the validator flags it.
607
+ body.push(' super().__init__()', ...defaultLines, ...ctorLines);
608
+ }
609
+ else {
610
+ body.push(...defaultLines, ...ctorLines);
611
+ }
612
+ body.push('');
613
+ }
614
+ else if (instanceDefaults.length > 0) {
615
+ // No explicit constructor. A derived class still forwards to its base
616
+ // initializer (TS subclasses without a constructor auto-forward args), then
617
+ // applies its own field defaults.
618
+ if (base) {
619
+ body.push(' def __init__(self, *args, **kwargs):');
620
+ body.push(' super().__init__(*args, **kwargs)');
621
+ }
622
+ else {
623
+ body.push(' def __init__(self):');
624
+ }
625
+ body.push(...defaultLines);
626
+ body.push('');
627
+ }
628
+ // Methods (instance + static).
629
+ for (const m of methods) {
630
+ const mp = p(m);
631
+ const mname = toSnakeCase(mp.name || 'method');
632
+ const asyncKw = mp.async === 'true' || mp.async === true ? 'async ' : '';
633
+ const returns = mp.returns ? ` -> ${mapTsTypeToPythonAnnotation(mp.returns)}` : '';
634
+ if (isStatic(m)) {
635
+ body.push(' @staticmethod');
636
+ body.push(` ${asyncKw}def ${mname}(${buildPythonParamList(m, { selfPrefix: false, lazyAnnotations: true })})${returns}:`);
637
+ }
638
+ else {
639
+ body.push(` ${asyncKw}def ${mname}(${buildPythonParamList(m, { selfPrefix: true, lazyAnnotations: true })})${returns}:`);
640
+ }
641
+ if (isAbstractMember(m)) {
642
+ body.push(abstractRaise('method', mname));
643
+ }
644
+ else {
645
+ body.push(...methodBodyLinesPython(m, { classBody: !isStatic(m) }));
646
+ }
647
+ body.push('');
648
+ }
649
+ // Getters -> @property. Static getters were already emitted on the metaclass.
650
+ const instanceGetterNames = new Set();
651
+ for (const g of getters) {
652
+ if (isStatic(g))
653
+ continue;
654
+ const gp = p(g);
655
+ const gname = toSnakeCase(gp.name || 'prop');
656
+ instanceGetterNames.add(gname);
657
+ const returns = gp.returns ? ` -> ${mapTsTypeToPythonAnnotation(gp.returns)}` : '';
658
+ body.push(' @property');
659
+ body.push(` def ${gname}(self)${returns}:`);
660
+ if (isAbstractMember(g)) {
661
+ body.push(abstractRaise('getter', gname));
662
+ }
663
+ else {
664
+ body.push(...methodBodyLinesPython(g, { classBody: true }));
665
+ }
666
+ body.push('');
667
+ }
668
+ // Setters -> @<name>.setter. Python requires a property to exist before its
669
+ // `.setter`; KERN allows setter-only properties, so synthesize a getter when
670
+ // none was declared (write-only -> returns None, matching a TS getter-less read).
671
+ for (const s of setters) {
672
+ if (isStatic(s))
673
+ continue; // static setters were already emitted on the metaclass
674
+ const sp = p(s);
675
+ const sname = toSnakeCase(sp.name || 'prop');
676
+ if (!instanceGetterNames.has(sname)) {
677
+ body.push(' @property');
678
+ body.push(` def ${sname}(self): # write-only property (no getter declared in KERN)`);
679
+ body.push(' return None');
680
+ body.push('');
681
+ instanceGetterNames.add(sname);
682
+ }
683
+ body.push(` @${sname}.setter`);
684
+ body.push(` def ${sname}(${buildPythonParamList(s, { selfPrefix: true, lazyAnnotations: true })}):`);
685
+ if (isAbstractMember(s)) {
686
+ body.push(abstractRaise('setter', sname));
687
+ }
688
+ else {
689
+ body.push(...methodBodyLinesPython(s, { classBody: true }));
690
+ }
691
+ body.push('');
692
+ }
693
+ if (body.length === 0)
694
+ body.push(' pass');
695
+ // `implements` is erased at codegen (the validator owns conformance); emit a
696
+ // human-readable marker so the relationship survives in the generated source.
697
+ const headerLines = implementsRaw ? [`# implements: ${implementsRaw}`, header] : [header];
698
+ // Metaclass (if any) must be defined before the class that references it.
699
+ return metaLines.length > 0 ? [...metaLines, ...headerLines, ...body] : [...headerLines, ...body];
700
+ }
423
701
  // ── Union (Pydantic Discriminated Union) ────────────────────────────────
424
702
  // union name=ContentSegment discriminant=type
425
703
  // variant name=prose
@@ -450,7 +728,13 @@ export function generatePythonUnion(node) {
450
728
  for (const field of fields) {
451
729
  const fp = p(field);
452
730
  const fname = toSnakeCase(fp.name || 'field');
453
- const ftype = mapTsTypeToPython(fp.type || 'Any');
731
+ // Lazy annotation (mirror of fb0bd72a/d1c209de): a variant field is a
732
+ // dataclass-style member of a `class …(BaseModel):` body, evaluated
733
+ // EAGERLY at import time — a custom/forward class name must be quoted to
734
+ // avoid a NameError. The module-level `${name} = Union[...]` alias below is
735
+ // built from the (already-defined) variant CLASS names, not this mapper, so
736
+ // it stays unquoted (an evaluated TypeAlias, not a class-body annotation).
737
+ const ftype = mapTsTypeToPythonAnnotation(fp.type || 'Any');
454
738
  const isOptional = fp.optional === 'true' || fp.optional === true;
455
739
  if (isOptional) {
456
740
  lines.push(` ${fname}: ${ftype} | None = None`);
@@ -467,4 +751,123 @@ export function generatePythonUnion(node) {
467
751
  lines.push(`${name} = Union[${variantClassNames.join(', ')}]`);
468
752
  return lines;
469
753
  }
754
+ // ── Enum (plain namespace class) ─────────────────────────────────────────
755
+ // enum name=Status values="Pending|Active|Done"
756
+ // -> class Status:
757
+ // Pending = 0
758
+ // Active = 1
759
+ // Done = 2
760
+ //
761
+ // enum name=Direction
762
+ // member name=Up value="UP"
763
+ // member name=Down value="DOWN"
764
+ // -> class Direction:
765
+ // Up = "UP"
766
+ // Down = "DOWN"
767
+ //
768
+ // Tribunal-decided representation (run tribunal-1781176354539): a PLAIN
769
+ // namespace class, NOT enum.Enum / IntEnum / StrEnum / a metaclass, and NO
770
+ // runtime library import. Members evaluate to bare `int`/`str`, so equality,
771
+ // arithmetic, JSON serialization and fmt interpolation all behave identically
772
+ // to the TS `enum` (which compiles to plain numbers/strings too) WITHOUT any
773
+ // runtime support — parity by construction.
774
+ //
775
+ // The implicit-numeric semantics MIRROR the TS emitter (generateEnum in
776
+ // packages/core/src/codegen/type-system.ts) EXACTLY, which in turn mirrors
777
+ // TypeScript's own enum value assignment:
778
+ // - the `values="A|B|C"` pipe form auto-numbers 0, 1, 2, …
779
+ // - a bare member child (no `value=`) takes `<previous numeric> + 1`, or 0
780
+ // when it is the first member
781
+ // - a member with an explicit numeric `value=N` resets the running counter,
782
+ // so the next bare member is `N + 1` (verified against tsc runtime output:
783
+ // `A=10, B, C=30, D` -> 10, 11, 30, 31).
784
+ // `export=` is intentionally ignored here, mirroring generatePythonClass /
785
+ // generatePythonUnion (see line ~617): Python module-level names are importable
786
+ // by definition, so there is no `export` keyword to emit. `const=true` produces
787
+ // the SAME class — TS forbids reverse-map access on const enums anyway, and the
788
+ // core symmetric gate rejects `Enum[0]` / `Object.keys(Enum)` on both targets,
789
+ // so dropping the (absent) const inlining diverges from nothing.
790
+ export function generatePythonEnum(node) {
791
+ const props = propsOf(node);
792
+ const name = emitIdentifier(props.name, 'UnknownEnum', node);
793
+ const body = [];
794
+ // Running implicit counter — the next value a bare member would receive.
795
+ // Reset to `explicitNumeric + 1` after each explicit numeric member, exactly
796
+ // as TypeScript's enum auto-increment does. `null` = the previous member's
797
+ // value is not statically numeric (expression / string member): a bare
798
+ // member then emits `<prevName> + 1` — the class body evaluates members in
799
+ // order, so the prior attribute is referencable, and the successor mirrors
800
+ // TS auto-increment BY CONSTRUCTION (kern-codex probe: `A = 1 << 0` then
801
+ // bare B is 2 in TS; a stale numeric counter silently emitted B = 0).
802
+ let nextImplicit = 0;
803
+ let prevName = null;
804
+ const emitBare = (mname) => nextImplicit !== null ? ` ${mname} = ${nextImplicit}` : ` ${mname} = ${prevName} + 1`;
805
+ const memberChildren = kids(node, 'member');
806
+ if (memberChildren.length > 0) {
807
+ for (const m of memberChildren) {
808
+ const mp = propsOf(m);
809
+ const mname = emitIdentifier(mp.name, 'unknownMember', m);
810
+ const rawVal = mp.value;
811
+ if (rawVal === undefined || rawVal === '') {
812
+ // Bare member -> implicit successor (numeric counter, or symbolic
813
+ // `prev + 1` when the previous value is an expression).
814
+ body.push(emitBare(mname));
815
+ if (nextImplicit !== null)
816
+ nextImplicit += 1;
817
+ // After a symbolic successor the NEXT bare member chains (`C = B + 1`),
818
+ // which `prevName` tracking below gives us for free.
819
+ }
820
+ else if (isExprObject(rawVal)) {
821
+ // ExprObject escape hatch: emit the carried code verbatim. The value is
822
+ // not statically known, so the counter goes symbolic (`prev + 1`).
823
+ body.push(` ${mname} = ${rawVal.code}`);
824
+ nextImplicit = null;
825
+ }
826
+ else if (typeof rawVal === 'string') {
827
+ const isQuoted = m.__quotedProps?.includes('value') === true;
828
+ if (isQuoted) {
829
+ // Explicit string member -> Python string literal. A bare member
830
+ // after a string member is invalid in TS (tsc errors); the symbolic
831
+ // `prev + 1` mirrors that as a Python TypeError at class definition —
832
+ // an error on both targets, fail-closed.
833
+ body.push(` ${mname} = ${JSON.stringify(rawVal)}`);
834
+ nextImplicit = null;
835
+ }
836
+ else {
837
+ // Bare (unquoted) value: numeric literals seed the implicit counter
838
+ // (matching TS — ANY finite numeric seeds it: after `A = 1.5` a bare
839
+ // member is 2.5 in TS, so integer-only seeding silently diverged),
840
+ // anything else is emitted verbatim with a symbolic counter.
841
+ const asNum = Number(rawVal);
842
+ if (rawVal.trim() !== '' && Number.isFinite(asNum)) {
843
+ body.push(` ${mname} = ${asNum}`);
844
+ nextImplicit = asNum + 1;
845
+ }
846
+ else {
847
+ body.push(` ${mname} = ${rawVal}`);
848
+ nextImplicit = null;
849
+ }
850
+ }
851
+ }
852
+ else {
853
+ // number | boolean prop value.
854
+ body.push(` ${mname} = ${String(rawVal)}`);
855
+ nextImplicit = typeof rawVal === 'number' && Number.isFinite(rawVal) ? rawVal + 1 : null;
856
+ }
857
+ prevName = mname;
858
+ }
859
+ }
860
+ else if (props.values) {
861
+ // `values="A|B|C"` -> auto-numbered 0, 1, 2, … (mirrors TS bare-member enum).
862
+ for (const v of props.values.split('|')) {
863
+ const mname = emitIdentifier(v.trim(), 'unknownMember', node);
864
+ body.push(` ${mname} = ${nextImplicit}`);
865
+ nextImplicit += 1;
866
+ }
867
+ }
868
+ // An empty enum still emits a valid (empty) namespace class.
869
+ if (body.length === 0)
870
+ body.push(' pass');
871
+ return [`class ${name}:`, ...body];
872
+ }
470
873
  //# sourceMappingURL=data.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"data.js","sourceRoot":"","sources":["../../src/generators/data.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"data.js","sourceRoot":"","sources":["../../src/generators/data.ts"],"names":[],"mappings":"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"}