Commit b9faa9a
SyntaxGraph bridge for Python type system
Summary:
Bridges the Python SyntaxGraph (the AST view of Thrift schemas) into the runtime TypeSystem, letting schema definitions be consumed through the unified TypeSystem interface. The SchemaRegistry becomes the on-demand, lazily-resolving entry point for turning schema URIs into runtime type nodes.
Key changes:
- Add a new SyntaxGraph → TypeSystem bridge that lazily materializes memoized, fully-resolved type nodes from AST definitions, with cycle-safe construction (recursive types resolve against stable identities) and atomic, all-or-nothing builds (a failed build leaves nothing partially cached)
- Make SchemaRegistry itself the unbounded TypeSystem view, resolving types on demand via module discovery rather than enumerating all URIs up front
- Encode the key schema semantics at the boundary: typedefs are erased to their true type, the IDL any type maps to the ANY primitive, unions force optional fields, and terse-write presence is preserved through the graph so field qualifiers map correctly
Reviewed By: praihan
Differential Revision: D107588115
fbshipit-source-id: 6ce2a7f4e30fbf59aafa95de6411921140f22d491 parent 6961552 commit b9faa9a
7 files changed
Lines changed: 710 additions & 27 deletions
File tree
- third-party/thrift/src/thrift/lib/python/schema
- tests
Lines changed: 33 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
34 | 34 | | |
35 | 35 | | |
36 | 36 | | |
| 37 | + | |
| 38 | + | |
37 | 39 | | |
38 | 40 | | |
39 | 41 | | |
| |||
126 | 128 | | |
127 | 129 | | |
128 | 130 | | |
129 | | - | |
130 | | - | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
131 | 138 | | |
132 | 139 | | |
133 | 140 | | |
| |||
154 | 161 | | |
155 | 162 | | |
156 | 163 | | |
| 164 | + | |
157 | 165 | | |
158 | 166 | | |
159 | 167 | | |
| |||
241 | 249 | | |
242 | 250 | | |
243 | 251 | | |
| 252 | + | |
| 253 | + | |
| 254 | + | |
| 255 | + | |
| 256 | + | |
| 257 | + | |
| 258 | + | |
| 259 | + | |
| 260 | + | |
| 261 | + | |
| 262 | + | |
| 263 | + | |
| 264 | + | |
| 265 | + | |
| 266 | + | |
| 267 | + | |
| 268 | + | |
| 269 | + | |
| 270 | + | |
| 271 | + | |
| 272 | + | |
| 273 | + | |
| 274 | + | |
244 | 275 | | |
245 | 276 | | |
246 | 277 | | |
| |||
Lines changed: 8 additions & 10 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
26 | 26 | | |
27 | 27 | | |
28 | 28 | | |
29 | | - | |
30 | | - | |
31 | | - | |
32 | | - | |
| 29 | + | |
33 | 30 | | |
| 31 | + | |
34 | 32 | | |
35 | 33 | | |
36 | 34 | | |
| |||
440 | 438 | | |
441 | 439 | | |
442 | 440 | | |
443 | | - | |
| 441 | + | |
444 | 442 | | |
445 | 443 | | |
446 | 444 | | |
| |||
449 | 447 | | |
450 | 448 | | |
451 | 449 | | |
452 | | - | |
| 450 | + | |
453 | 451 | | |
454 | 452 | | |
455 | 453 | | |
| |||
461 | 459 | | |
462 | 460 | | |
463 | 461 | | |
464 | | - | |
| 462 | + | |
465 | 463 | | |
466 | 464 | | |
467 | 465 | | |
468 | 466 | | |
469 | 467 | | |
470 | 468 | | |
471 | 469 | | |
472 | | - | |
| 470 | + | |
473 | 471 | | |
474 | 472 | | |
475 | 473 | | |
| |||
488 | 486 | | |
489 | 487 | | |
490 | 488 | | |
491 | | - | |
492 | | - | |
| 489 | + | |
| 490 | + | |
493 | 491 | | |
494 | 492 | | |
495 | 493 | | |
| |||
Lines changed: 2 additions & 12 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
24 | 24 | | |
25 | 25 | | |
26 | 26 | | |
27 | | - | |
28 | | - | |
29 | | - | |
30 | | - | |
| 27 | + | |
31 | 28 | | |
32 | 29 | | |
33 | 30 | | |
| |||
348 | 345 | | |
349 | 346 | | |
350 | 347 | | |
351 | | - | |
352 | | - | |
353 | | - | |
354 | | - | |
355 | | - | |
356 | | - | |
357 | | - | |
358 | 348 | | |
359 | 349 | | |
360 | 350 | | |
| |||
373 | 363 | | |
374 | 364 | | |
375 | 365 | | |
376 | | - | |
| 366 | + | |
377 | 367 | | |
378 | 368 | | |
379 | 369 | | |
| |||
Lines changed: 3 additions & 3 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
26 | 26 | | |
27 | 27 | | |
28 | 28 | | |
29 | | - | |
| 29 | + | |
30 | 30 | | |
31 | 31 | | |
32 | 32 | | |
| |||
104 | 104 | | |
105 | 105 | | |
106 | 106 | | |
107 | | - | |
| 107 | + | |
108 | 108 | | |
109 | 109 | | |
110 | 110 | | |
111 | | - | |
| 111 | + | |
112 | 112 | | |
113 | 113 | | |
114 | 114 | | |
| |||
0 commit comments