hydra-python 0.17.6__tar.gz → 0.18.0__tar.gz

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.
Files changed (28) hide show
  1. {hydra_python-0.17.6 → hydra_python-0.18.0}/.gitignore +5 -2
  2. {hydra_python-0.17.6 → hydra_python-0.18.0}/PKG-INFO +6 -6
  3. {hydra_python-0.17.6 → hydra_python-0.18.0}/README.md +4 -4
  4. hydra_python-0.18.0/build/main/digest.json +276 -0
  5. {hydra_python-0.17.6 → hydra_python-0.18.0}/pyproject.toml +2 -2
  6. {hydra_python-0.17.6 → hydra_python-0.18.0}/src/main/python/hydra/python/coder.py +1091 -1031
  7. hydra_python-0.18.0/src/main/python/hydra/python/dsl/environment.py +3462 -0
  8. hydra_python-0.18.0/src/main/python/hydra/python/dsl/names.py +184 -0
  9. hydra_python-0.18.0/src/main/python/hydra/python/dsl/syntax.py +9006 -0
  10. hydra_python-0.18.0/src/main/python/hydra/python/dsl/utils.py +580 -0
  11. {hydra_python-0.17.6 → hydra_python-0.18.0}/src/main/python/hydra/python/environment.py +60 -60
  12. hydra_python-0.18.0/src/main/python/hydra/python/language.py +132 -0
  13. hydra_python-0.18.0/src/main/python/hydra/python/names.py +211 -0
  14. {hydra_python-0.17.6 → hydra_python-0.18.0}/src/main/python/hydra/python/pyproject.py +7 -7
  15. {hydra_python-0.17.6 → hydra_python-0.18.0}/src/main/python/hydra/python/serde.py +370 -349
  16. {hydra_python-0.17.6 → hydra_python-0.18.0}/src/main/python/hydra/python/syntax.py +642 -642
  17. hydra_python-0.18.0/src/main/python/hydra/python/testing.py +104 -0
  18. {hydra_python-0.17.6 → hydra_python-0.18.0}/src/main/python/hydra/python/utils.py +155 -79
  19. hydra_python-0.17.6/build/main/digest.json +0 -123
  20. hydra_python-0.17.6/src/main/python/hydra/dsl/python/environment.py +0 -3437
  21. hydra_python-0.17.6/src/main/python/hydra/dsl/python/names.py +0 -161
  22. hydra_python-0.17.6/src/main/python/hydra/dsl/python/syntax.py +0 -8772
  23. hydra_python-0.17.6/src/main/python/hydra/dsl/python/utils.py +0 -510
  24. hydra_python-0.17.6/src/main/python/hydra/python/language.py +0 -132
  25. hydra_python-0.17.6/src/main/python/hydra/python/names.py +0 -205
  26. hydra_python-0.17.6/src/main/python/hydra/python/testing.py +0 -102
  27. {hydra_python-0.17.6 → hydra_python-0.18.0}/LICENSE +0 -0
  28. {hydra_python-0.17.6 → hydra_python-0.18.0}/NOTICE +0 -0
@@ -8,8 +8,6 @@ benchmark/
8
8
  # Bootstrapping demo runs
9
9
  bootstrap/
10
10
 
11
- # Hydra wiki
12
- wiki/
13
11
 
14
12
  # Old files
15
13
  old/
@@ -150,3 +148,8 @@ claude/.*.sh
150
148
 
151
149
  # Backed-up branch plan documents (not release content)
152
150
  finalized-task-plans/
151
+
152
+ # Coordination-hook state: last surfaced coordination-branch SHA (per worktree)
153
+ .coordination-seen
154
+ # per-session scratch measurement scripts (#289); never part of the build
155
+ .scratch-289/
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: hydra-python
3
- Version: 0.17.6
3
+ Version: 0.18.0
4
4
  Summary: Python support for Hydra
5
5
  Project-URL: Homepage, https://github.com/CategoricalData/hydra
6
6
  Project-URL: Repository, https://github.com/CategoricalData/hydra
@@ -9,7 +9,7 @@ License: Apache-2.0
9
9
  License-File: LICENSE
10
10
  License-File: NOTICE
11
11
  Requires-Python: >=3.12
12
- Requires-Dist: hydra-kernel==0.17.6
12
+ Requires-Dist: hydra-kernel==0.18.0
13
13
  Description-Content-Type: text/markdown
14
14
 
15
15
  # Hydra-Python
@@ -79,7 +79,7 @@ for comprehensive documentation.
79
79
 
80
80
  ### Hydra-kernel test suite
81
81
 
82
- The hydra-kernel test suite (`hydra.test.testSuite`) ensures parity across all Hydra implementations.
82
+ The hydra-kernel test suite (`hydra.core.test.testSuite`) ensures parity across all Hydra implementations.
83
83
  **Passing all hydra-kernel test suite cases is the criterion for a true Hydra implementation.**
84
84
 
85
85
  To run all tests (from `heads/python/`):
@@ -308,13 +308,13 @@ The cost is full O(n) copy on every update (no structural sharing); the
308
308
  benefit is C-speed inner loops. Hydra-Python has **no third-party runtime
309
309
  dependencies** beyond the standard library.
310
310
 
311
- Where ordered iteration matters (`hydra.lib.maps.{keys, elems, to_list}`, the
311
+ Where ordered iteration matters (`hydra.core.lib.maps.{keys, elems, to_list}`, the
312
312
  various `*_list()` extraction helpers, `PersistentSet.__iter__`), elements
313
313
  are sorted at extraction time via a fall-through comparator: natural `<`
314
314
  where it works, structural comparison for Hydra `Term`/`Type` and other
315
315
  complex values that don't define ordering in Python.
316
316
 
317
- The classes live under `hydra.python.util` rather than `hydra.util` because the
317
+ The classes live under `hydra.python.util` rather than `hydra.core.util` because the
318
318
  latter is already a kernel-generated module (containing `Comparison`,
319
319
  `CaseConvention`, etc.) shared across all Hydra implementations. Putting the
320
320
  Python-runtime helpers under `hydra.python.util` keeps the kernel namespace
@@ -336,7 +336,7 @@ Rough guide:
336
336
  | Workload | Faster on |
337
337
  |---|---|
338
338
  | `bin/run-bootstrapping-demo.sh` codegen | CPython by ~5% |
339
- | Type inference on large modules (`hydra.codegen.infer_modules_given`) | PyPy by ~4× |
339
+ | Type inference on large modules (`hydra.core.codegen.infer_modules_given`) | PyPy by ~4× |
340
340
  | `hydra.lib.*` primitive microbenchmarks | CPython by ~2.5× |
341
341
 
342
342
  The microbench gap reflects CPython's C-level `dict`/`frozenset`/`tuple`
@@ -65,7 +65,7 @@ for comprehensive documentation.
65
65
 
66
66
  ### Hydra-kernel test suite
67
67
 
68
- The hydra-kernel test suite (`hydra.test.testSuite`) ensures parity across all Hydra implementations.
68
+ The hydra-kernel test suite (`hydra.core.test.testSuite`) ensures parity across all Hydra implementations.
69
69
  **Passing all hydra-kernel test suite cases is the criterion for a true Hydra implementation.**
70
70
 
71
71
  To run all tests (from `heads/python/`):
@@ -294,13 +294,13 @@ The cost is full O(n) copy on every update (no structural sharing); the
294
294
  benefit is C-speed inner loops. Hydra-Python has **no third-party runtime
295
295
  dependencies** beyond the standard library.
296
296
 
297
- Where ordered iteration matters (`hydra.lib.maps.{keys, elems, to_list}`, the
297
+ Where ordered iteration matters (`hydra.core.lib.maps.{keys, elems, to_list}`, the
298
298
  various `*_list()` extraction helpers, `PersistentSet.__iter__`), elements
299
299
  are sorted at extraction time via a fall-through comparator: natural `<`
300
300
  where it works, structural comparison for Hydra `Term`/`Type` and other
301
301
  complex values that don't define ordering in Python.
302
302
 
303
- The classes live under `hydra.python.util` rather than `hydra.util` because the
303
+ The classes live under `hydra.python.util` rather than `hydra.core.util` because the
304
304
  latter is already a kernel-generated module (containing `Comparison`,
305
305
  `CaseConvention`, etc.) shared across all Hydra implementations. Putting the
306
306
  Python-runtime helpers under `hydra.python.util` keeps the kernel namespace
@@ -322,7 +322,7 @@ Rough guide:
322
322
  | Workload | Faster on |
323
323
  |---|---|
324
324
  | `bin/run-bootstrapping-demo.sh` codegen | CPython by ~5% |
325
- | Type inference on large modules (`hydra.codegen.infer_modules_given`) | PyPy by ~4× |
325
+ | Type inference on large modules (`hydra.core.codegen.infer_modules_given`) | PyPy by ~4× |
326
326
  | `hydra.lib.*` primitive microbenchmarks | CPython by ~2.5× |
327
327
 
328
328
  The microbench gap reflects CPython's C-level `dict`/`frozenset`/`tuple`
@@ -0,0 +1,276 @@
1
+ {
2
+ "digestFormatVersion": 2,
3
+ "moduleFormatVersion": 1,
4
+ "generator": "5a50491e0397dc38",
5
+ "generation": {
6
+ "generatorId": "5a50491e0397dc38",
7
+ "mode": "published",
8
+ "host": "python",
9
+ "hydraVersion": "0.17.7",
10
+ "revision": "7bd6abd085-dirty",
11
+ "timestamp": "2026-09-30T13:26:02Z"
12
+ },
13
+ "selfHash": "00045be951e61f6fb06f7d91520179e9b22a02ea11c69b0e7f46a15b06ce999b",
14
+ "dependencyHashes": [
15
+ {
16
+ "key": "hydra-kernel",
17
+ "value": "36d7c3d508263ad06f8c13a2ba4a71cc146a96c869d9cb20b5ea6a5b0ce390e8"
18
+ }
19
+ ],
20
+ "inputs": [
21
+ {
22
+ "key": "hydra.python.coder",
23
+ "value": {
24
+ "kind": "other",
25
+ "hash": "28992c1cc791e71a55098f8d33eb1bbb0d956222682a8dbf36281470c5686bf9"
26
+ }
27
+ },
28
+ {
29
+ "key": "hydra.python.environment",
30
+ "value": {
31
+ "kind": "other",
32
+ "hash": "83c1208296eab01cfbffc4fc50f6967f552c470c6e01c12801039f2b3b8c2bc0"
33
+ }
34
+ },
35
+ {
36
+ "key": "hydra.python.language",
37
+ "value": {
38
+ "kind": "other",
39
+ "hash": "3f88fe2e99d10fcfbb3be22daf109c73834b4b4f5c7eceb45dbd166317e8369c"
40
+ }
41
+ },
42
+ {
43
+ "key": "hydra.python.names",
44
+ "value": {
45
+ "kind": "other",
46
+ "hash": "77a402cd75674e64c0d81900852eb3e08fcc840fe466c5f082b8e9ea416a9f7b"
47
+ }
48
+ },
49
+ {
50
+ "key": "hydra.python.pyproject",
51
+ "value": {
52
+ "kind": "other",
53
+ "hash": "4514e50fbd7e9a13385434f4e5a66d6e686235dce236f4219efa6c512d9ba083"
54
+ }
55
+ },
56
+ {
57
+ "key": "hydra.python.serde",
58
+ "value": {
59
+ "kind": "other",
60
+ "hash": "5c2e847814d45febc8224cd3a9c30514da33891f7a3545a3aacb054c5c889d00"
61
+ }
62
+ },
63
+ {
64
+ "key": "hydra.python.syntax",
65
+ "value": {
66
+ "kind": "other",
67
+ "hash": "cdb61b373aa8d4d8b7427abd6047552b1108d1d673652b62f98204f18c10e567"
68
+ }
69
+ },
70
+ {
71
+ "key": "hydra.python.testing",
72
+ "value": {
73
+ "kind": "other",
74
+ "hash": "50f9aebc882e20ed00d107c869c449915ba1daa79e946e2eb879250cc08a42ec"
75
+ }
76
+ },
77
+ {
78
+ "key": "hydra.python.utils",
79
+ "value": {
80
+ "kind": "other",
81
+ "hash": "c08cab871295e6e1ab911a06199109e60e454e77db3e53f9e11084ba80459ab0"
82
+ }
83
+ },
84
+ {
85
+ "key": "jsonContent:hydra/python/coder.json",
86
+ "value": {
87
+ "kind": "other",
88
+ "hash": "cefe10af40042a2f6c9e2a493cdc66a86fb7b9127317b90f8a5dc289daf4ae43"
89
+ }
90
+ },
91
+ {
92
+ "key": "jsonContent:hydra/python/dsl/environment.json",
93
+ "value": {
94
+ "kind": "other",
95
+ "hash": "0759e40b9fa262856b2cac9871d64962963d2a8441f468f6ec1c0d5bbdce1c9b"
96
+ }
97
+ },
98
+ {
99
+ "key": "jsonContent:hydra/python/dsl/names.json",
100
+ "value": {
101
+ "kind": "other",
102
+ "hash": "e78db1f9ebbf21ea02ea14c03e2af248c5c5b3b5df7cf270ee6c7c9742aacd72"
103
+ }
104
+ },
105
+ {
106
+ "key": "jsonContent:hydra/python/dsl/syntax.json",
107
+ "value": {
108
+ "kind": "other",
109
+ "hash": "d95ab6c218c5361f4cad7892b1456dd3eb9b4cefbcb3902b95c1dc6d60b8a5ea"
110
+ }
111
+ },
112
+ {
113
+ "key": "jsonContent:hydra/python/dsl/utils.json",
114
+ "value": {
115
+ "kind": "other",
116
+ "hash": "84a975b75c1abbe65acd82b0dc51c465cfbfd81768f10213733d3c99e95bffe7"
117
+ }
118
+ },
119
+ {
120
+ "key": "jsonContent:hydra/python/environment.json",
121
+ "value": {
122
+ "kind": "other",
123
+ "hash": "d99b9c15bf33589032b50c5945a4046a9ced51bdad5e63c42e3fb8622c18c706"
124
+ }
125
+ },
126
+ {
127
+ "key": "jsonContent:hydra/python/language.json",
128
+ "value": {
129
+ "kind": "other",
130
+ "hash": "a7660ace07ce024e7201372e3831d697a5985f5024b2a4ed7276f93410b0cb56"
131
+ }
132
+ },
133
+ {
134
+ "key": "jsonContent:hydra/python/names.json",
135
+ "value": {
136
+ "kind": "other",
137
+ "hash": "6cfd153c09b46510f98dcb59fdd6dcbb23ccd58f8d148fa62fddc00b1510b68a"
138
+ }
139
+ },
140
+ {
141
+ "key": "jsonContent:hydra/python/pyproject.json",
142
+ "value": {
143
+ "kind": "other",
144
+ "hash": "71d2a617b497c86425ce21c6b6d08e4b80d7244d990941b9a50392e220ad0422"
145
+ }
146
+ },
147
+ {
148
+ "key": "jsonContent:hydra/python/serde.json",
149
+ "value": {
150
+ "kind": "other",
151
+ "hash": "39f2d6585b2f29ac07f83a658727be6b0f05d3ebe271df210dd75e5a3041e9ca"
152
+ }
153
+ },
154
+ {
155
+ "key": "jsonContent:hydra/python/syntax.json",
156
+ "value": {
157
+ "kind": "other",
158
+ "hash": "f2fe676d4fdd976b4c93349f3f2f6e8c5fea79ede0aa19d39c02522b79598b97"
159
+ }
160
+ },
161
+ {
162
+ "key": "jsonContent:hydra/python/testing.json",
163
+ "value": {
164
+ "kind": "other",
165
+ "hash": "160fe3e98eaec39b5b188ff0e56c1eb3e244c86e4f68792a63cefaf1ad146d54"
166
+ }
167
+ },
168
+ {
169
+ "key": "jsonContent:hydra/python/utils.json",
170
+ "value": {
171
+ "kind": "other",
172
+ "hash": "9772d8e7b4e1c6d32c27e0fada2adb4b38e60f4497f07a347d0f83801537b4df"
173
+ }
174
+ },
175
+ {
176
+ "key": "jsonContent:manifest.json",
177
+ "value": {
178
+ "kind": "other",
179
+ "hash": "3f94b521766d042381d7bee84596308ea4e35c7e8fb45f8fd8338a8dbe27a0ac"
180
+ }
181
+ }
182
+ ],
183
+ "outputs": [
184
+ {
185
+ "key": "hydra/python/coder.py",
186
+ "value": {
187
+ "kind": "targetFile",
188
+ "hash": "72ae97e3cbc247a4945cfd2d9c2592a8c483958202ab3605a5aaed46370507ae"
189
+ }
190
+ },
191
+ {
192
+ "key": "hydra/python/dsl/environment.py",
193
+ "value": {
194
+ "kind": "targetFile",
195
+ "hash": "0e27e9f44096aa98a526d987971c0013d8f8106e728a95ed7cbc4a4150897343"
196
+ }
197
+ },
198
+ {
199
+ "key": "hydra/python/dsl/names.py",
200
+ "value": {
201
+ "kind": "targetFile",
202
+ "hash": "a50b44ae888c762862f711adb0fee88ac4d06748573ae00b52bb8af7a661ce47"
203
+ }
204
+ },
205
+ {
206
+ "key": "hydra/python/dsl/syntax.py",
207
+ "value": {
208
+ "kind": "targetFile",
209
+ "hash": "c121fd190217475bb2caf7c9285eb34d652b091e3ffb2f03dd01ed8eb0e6cb44"
210
+ }
211
+ },
212
+ {
213
+ "key": "hydra/python/dsl/utils.py",
214
+ "value": {
215
+ "kind": "targetFile",
216
+ "hash": "7d020c3439c27f234f8f9a4dada9b5d308e2522b8d6934889648166748a08f4b"
217
+ }
218
+ },
219
+ {
220
+ "key": "hydra/python/environment.py",
221
+ "value": {
222
+ "kind": "targetFile",
223
+ "hash": "7cdca6935cc15b52a69a36a907b7ac8d9b04d090d1878a420e561fb31ef99336"
224
+ }
225
+ },
226
+ {
227
+ "key": "hydra/python/language.py",
228
+ "value": {
229
+ "kind": "targetFile",
230
+ "hash": "f06bfd52f640c14b919cd4308b09abaedb9ed2162b80a01bf2743d29e6bb743e"
231
+ }
232
+ },
233
+ {
234
+ "key": "hydra/python/names.py",
235
+ "value": {
236
+ "kind": "targetFile",
237
+ "hash": "2511e63995887a029b4085282a5b9cb3c79406d2e4339c97d602266e754268d8"
238
+ }
239
+ },
240
+ {
241
+ "key": "hydra/python/pyproject.py",
242
+ "value": {
243
+ "kind": "targetFile",
244
+ "hash": "52073eb576f6518ee674180a543c5fdadf556f2890154fb216d58df1cb71e1dd"
245
+ }
246
+ },
247
+ {
248
+ "key": "hydra/python/serde.py",
249
+ "value": {
250
+ "kind": "targetFile",
251
+ "hash": "ca25d41d0b868e9bfb562952c1be72a527932b9fb03bc3e7e5a6817e6a9a08c1"
252
+ }
253
+ },
254
+ {
255
+ "key": "hydra/python/syntax.py",
256
+ "value": {
257
+ "kind": "targetFile",
258
+ "hash": "163e955ebe962f50fae41af93e532c7674969e814db050a81559458a80c5b586"
259
+ }
260
+ },
261
+ {
262
+ "key": "hydra/python/testing.py",
263
+ "value": {
264
+ "kind": "targetFile",
265
+ "hash": "f7556b45313a44573d3b9fc27cc794750c944289713a6c51a7c4aad1ebcc7227"
266
+ }
267
+ },
268
+ {
269
+ "key": "hydra/python/utils.py",
270
+ "value": {
271
+ "kind": "targetFile",
272
+ "hash": "b0ec106c8f9f6c5483f4e752275367722be6d5cb41f2d4d73a01da4a43b66402"
273
+ }
274
+ }
275
+ ]
276
+ }
@@ -13,7 +13,7 @@
13
13
 
14
14
  [project]
15
15
  name = "hydra-python"
16
- version = "0.17.6"
16
+ version = "0.18.0"
17
17
  description = "Python support for Hydra"
18
18
  readme = "README.md"
19
19
  requires-python = ">=3.12"
@@ -22,7 +22,7 @@ authors = [
22
22
  { name = "Joshua Shinavier", email = "josh@fortytwo.net" },
23
23
  ]
24
24
  dependencies = [
25
- "hydra-kernel == 0.17.6",
25
+ "hydra-kernel == 0.18.0",
26
26
  ]
27
27
 
28
28
  [project.urls]