mapFolding 0.9.4__py3-none-any.whl → 0.10.0__py3-none-any.whl

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 (42) hide show
  1. mapFolding/__init__.py +41 -7
  2. mapFolding/basecamp.py +100 -9
  3. mapFolding/beDRY.py +7 -15
  4. mapFolding/dataBaskets.py +12 -0
  5. mapFolding/datatypes.py +4 -4
  6. mapFolding/oeis.py +2 -7
  7. mapFolding/someAssemblyRequired/RecipeJob.py +97 -3
  8. mapFolding/someAssemblyRequired/Z0Z_makeSomeModules.py +143 -42
  9. mapFolding/someAssemblyRequired/__init__.py +38 -49
  10. mapFolding/someAssemblyRequired/_astTypes.py +117 -0
  11. mapFolding/someAssemblyRequired/_theTypes.py +12 -41
  12. mapFolding/someAssemblyRequired/_toolBe.py +524 -0
  13. mapFolding/someAssemblyRequired/_toolDOT.py +493 -0
  14. mapFolding/someAssemblyRequired/_toolGrab.py +653 -0
  15. mapFolding/someAssemblyRequired/_toolIfThis.py +193 -0
  16. mapFolding/someAssemblyRequired/_toolMake.py +339 -0
  17. mapFolding/someAssemblyRequired/_toolThen.py +63 -0
  18. mapFolding/someAssemblyRequired/_toolboxAST.py +3 -3
  19. mapFolding/someAssemblyRequired/_toolboxContainers.py +124 -29
  20. mapFolding/someAssemblyRequired/makeJobTheorem2Numba.py +274 -0
  21. mapFolding/someAssemblyRequired/synthesizeNumbaJob.py +12 -11
  22. mapFolding/someAssemblyRequired/toolboxNumba.py +4 -28
  23. mapFolding/someAssemblyRequired/transformationTools.py +46 -155
  24. mapFolding/syntheticModules/daoOfMapFolding.py +74 -0
  25. mapFolding/syntheticModules/dataPacking.py +1 -1
  26. mapFolding/syntheticModules/theorem2Numba.py +2 -8
  27. mapFolding/syntheticModules/theorem2Trimmed.py +43 -0
  28. mapFolding/toolFactory/astFactory.py +493 -0
  29. mapFolding/toolFactory/astFactory_annex.py +63 -0
  30. mapFolding/toolFactory/astFactory_docstrings.py +63 -0
  31. {mapfolding-0.9.4.dist-info → mapfolding-0.10.0.dist-info}/METADATA +2 -1
  32. mapfolding-0.10.0.dist-info/RECORD +66 -0
  33. {mapfolding-0.9.4.dist-info → mapfolding-0.10.0.dist-info}/WHEEL +1 -1
  34. tests/test_computations.py +1 -1
  35. mapFolding/Z0Z_flowControl.py +0 -117
  36. mapFolding/someAssemblyRequired/_tool_Make.py +0 -134
  37. mapFolding/someAssemblyRequired/_tool_Then.py +0 -157
  38. mapFolding/someAssemblyRequired/_toolboxAntecedents.py +0 -387
  39. mapfolding-0.9.4.dist-info/RECORD +0 -57
  40. {mapfolding-0.9.4.dist-info → mapfolding-0.10.0.dist-info}/entry_points.txt +0 -0
  41. {mapfolding-0.9.4.dist-info → mapfolding-0.10.0.dist-info}/licenses/LICENSE +0 -0
  42. {mapfolding-0.9.4.dist-info → mapfolding-0.10.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,493 @@
1
+ """This file is generated automatically, so changes to this file will be lost."""
2
+ from collections.abc import Sequence
3
+ from mapFolding import astDOTParamSpec, astDOTTryStar, astDOTTypeAlias, astDOTTypeVar, astDOTTypeVarTuple, astDOTtype_param
4
+ from mapFolding.someAssemblyRequired import ast_Identifier, ast_expr_Slice
5
+ from mapFolding.someAssemblyRequired._astTypes import *
6
+ from typing import Any, Literal, overload
7
+ import ast
8
+ '# ruff: noqa: F405'
9
+
10
+ class DOT:
11
+ """
12
+ Access attributes and sub-nodes of AST elements via consistent accessor methods.
13
+
14
+ The DOT class provides static methods to access specific attributes of different types of AST nodes in a consistent
15
+ way. This simplifies attribute access across various node types and improves code readability by abstracting the
16
+ underlying AST structure details.
17
+
18
+ DOT is designed for safe, read-only access to node properties, unlike the grab class which is designed for modifying
19
+ node attributes.
20
+ """
21
+
22
+ @staticmethod
23
+ @overload
24
+ def annotation(node: hasDOTannotation_expr) -> ast.expr:
25
+ ...
26
+
27
+ @staticmethod
28
+ @overload
29
+ def annotation(node: hasDOTannotation_exprOrNone) -> ast.expr | None:
30
+ ...
31
+
32
+ @staticmethod
33
+ def annotation(node: hasDOTannotation) -> ast.expr | (ast.expr | None):
34
+ return node.annotation
35
+
36
+ @staticmethod
37
+ @overload
38
+ def arg(node: hasDOTarg_Identifier) -> ast_Identifier:
39
+ ...
40
+
41
+ @staticmethod
42
+ @overload
43
+ def arg(node: hasDOTarg_IdentifierOrNone) -> ast_Identifier | None:
44
+ ...
45
+
46
+ @staticmethod
47
+ def arg(node: hasDOTarg) -> ast_Identifier | (ast_Identifier | None):
48
+ return node.arg
49
+
50
+ @staticmethod
51
+ @overload
52
+ def args(node: hasDOTargs_arguments) -> ast.arguments:
53
+ ...
54
+
55
+ @staticmethod
56
+ @overload
57
+ def args(node: hasDOTargs_list_expr) -> Sequence[ast.expr]:
58
+ ...
59
+
60
+ @staticmethod
61
+ @overload
62
+ def args(node: hasDOTargs_list_arg) -> list[ast.arg]:
63
+ ...
64
+
65
+ @staticmethod
66
+ def args(node: hasDOTargs) -> ast.arguments | Sequence[ast.expr] | list[ast.arg]:
67
+ return node.args
68
+
69
+ @staticmethod
70
+ def argtypes(node: hasDOTargtypes) -> Sequence[ast.expr]:
71
+ return node.argtypes
72
+
73
+ @staticmethod
74
+ def asname(node: hasDOTasname) -> ast_Identifier | None:
75
+ return node.asname
76
+
77
+ @staticmethod
78
+ def attr(node: hasDOTattr) -> ast_Identifier:
79
+ return node.attr
80
+
81
+ @staticmethod
82
+ def bases(node: hasDOTbases) -> Sequence[ast.expr]:
83
+ return node.bases
84
+
85
+ @staticmethod
86
+ @overload
87
+ def body(node: hasDOTbody_list_stmt) -> Sequence[ast.stmt]:
88
+ ...
89
+
90
+ @staticmethod
91
+ @overload
92
+ def body(node: hasDOTbody_expr) -> ast.expr:
93
+ ...
94
+
95
+ @staticmethod
96
+ def body(node: hasDOTbody) -> Sequence[ast.stmt] | ast.expr:
97
+ return node.body
98
+
99
+ @staticmethod
100
+ def bound(node: hasDOTbound) -> ast.expr | None:
101
+ return node.bound
102
+
103
+ @staticmethod
104
+ def cases(node: hasDOTcases) -> list[ast.match_case]:
105
+ return node.cases
106
+
107
+ @staticmethod
108
+ def cause(node: hasDOTcause) -> ast.expr | None:
109
+ return node.cause
110
+
111
+ @staticmethod
112
+ def cls(node: hasDOTcls) -> ast.expr:
113
+ return node.cls
114
+
115
+ @staticmethod
116
+ def comparators(node: hasDOTcomparators) -> Sequence[ast.expr]:
117
+ return node.comparators
118
+
119
+ @staticmethod
120
+ def context_expr(node: hasDOTcontext_expr) -> ast.expr:
121
+ return node.context_expr
122
+
123
+ @staticmethod
124
+ def conversion(node: hasDOTconversion) -> int:
125
+ return node.conversion
126
+
127
+ @staticmethod
128
+ def ctx(node: hasDOTctx) -> ast.expr_context:
129
+ return node.ctx
130
+
131
+ @staticmethod
132
+ def decorator_list(node: hasDOTdecorator_list) -> Sequence[ast.expr]:
133
+ return node.decorator_list
134
+
135
+ @staticmethod
136
+ def default_value(node: hasDOTdefault_value) -> ast.expr | None:
137
+ return node.default_value
138
+
139
+ @staticmethod
140
+ def defaults(node: hasDOTdefaults) -> Sequence[ast.expr]:
141
+ return node.defaults
142
+
143
+ @staticmethod
144
+ def elt(node: hasDOTelt) -> ast.expr:
145
+ return node.elt
146
+
147
+ @staticmethod
148
+ def elts(node: hasDOTelts) -> Sequence[ast.expr]:
149
+ return node.elts
150
+
151
+ @staticmethod
152
+ def exc(node: hasDOTexc) -> ast.expr | None:
153
+ return node.exc
154
+
155
+ @staticmethod
156
+ def finalbody(node: hasDOTfinalbody) -> Sequence[ast.stmt]:
157
+ return node.finalbody
158
+
159
+ @staticmethod
160
+ def format_spec(node: hasDOTformat_spec) -> ast.expr | None:
161
+ return node.format_spec
162
+
163
+ @staticmethod
164
+ def func(node: hasDOTfunc) -> ast.expr:
165
+ return node.func
166
+
167
+ @staticmethod
168
+ def generators(node: hasDOTgenerators) -> list[ast.comprehension]:
169
+ return node.generators
170
+
171
+ @staticmethod
172
+ def guard(node: hasDOTguard) -> ast.expr | None:
173
+ return node.guard
174
+
175
+ @staticmethod
176
+ def handlers(node: hasDOThandlers) -> list[ast.ExceptHandler]:
177
+ return node.handlers
178
+
179
+ @staticmethod
180
+ def id(node: hasDOTid) -> ast_Identifier:
181
+ return node.id
182
+
183
+ @staticmethod
184
+ def ifs(node: hasDOTifs) -> Sequence[ast.expr]:
185
+ return node.ifs
186
+
187
+ @staticmethod
188
+ def is_async(node: hasDOTis_async) -> int:
189
+ return node.is_async
190
+
191
+ @staticmethod
192
+ def items(node: hasDOTitems) -> list[ast.withitem]:
193
+ return node.items
194
+
195
+ @staticmethod
196
+ def iter(node: hasDOTiter) -> ast.expr:
197
+ return node.iter
198
+
199
+ @staticmethod
200
+ def key(node: hasDOTkey) -> ast.expr:
201
+ return node.key
202
+
203
+ @staticmethod
204
+ @overload
205
+ def keys(node: hasDOTkeys_list_exprOrNone) -> Sequence[ast.expr | None]:
206
+ ...
207
+
208
+ @staticmethod
209
+ @overload
210
+ def keys(node: hasDOTkeys_list_expr) -> Sequence[ast.expr]:
211
+ ...
212
+
213
+ @staticmethod
214
+ def keys(node: hasDOTkeys) -> Sequence[ast.expr | None] | Sequence[ast.expr]:
215
+ return node.keys
216
+
217
+ @staticmethod
218
+ def keywords(node: hasDOTkeywords) -> list[ast.keyword]:
219
+ return node.keywords
220
+
221
+ @staticmethod
222
+ def kind(node: hasDOTkind) -> ast_Identifier | None:
223
+ return node.kind
224
+
225
+ @staticmethod
226
+ def kw_defaults(node: hasDOTkw_defaults) -> Sequence[ast.expr | None]:
227
+ return node.kw_defaults
228
+
229
+ @staticmethod
230
+ def kwarg(node: hasDOTkwarg) -> ast.arg | None:
231
+ return node.kwarg
232
+
233
+ @staticmethod
234
+ def kwd_attrs(node: hasDOTkwd_attrs) -> list[ast_Identifier]:
235
+ return node.kwd_attrs
236
+
237
+ @staticmethod
238
+ def kwd_patterns(node: hasDOTkwd_patterns) -> Sequence[ast.pattern]:
239
+ return node.kwd_patterns
240
+
241
+ @staticmethod
242
+ def kwonlyargs(node: hasDOTkwonlyargs) -> list[ast.arg]:
243
+ return node.kwonlyargs
244
+
245
+ @staticmethod
246
+ def left(node: hasDOTleft) -> ast.expr:
247
+ return node.left
248
+
249
+ @staticmethod
250
+ def level(node: hasDOTlevel) -> int:
251
+ return node.level
252
+
253
+ @staticmethod
254
+ def lineno(node: hasDOTlineno) -> int:
255
+ return node.lineno
256
+
257
+ @staticmethod
258
+ def lower(node: hasDOTlower) -> ast.expr | None:
259
+ return node.lower
260
+
261
+ @staticmethod
262
+ def module(node: hasDOTmodule) -> ast_Identifier | None:
263
+ return node.module
264
+
265
+ @staticmethod
266
+ def msg(node: hasDOTmsg) -> ast.expr | None:
267
+ return node.msg
268
+
269
+ @staticmethod
270
+ @overload
271
+ def name(node: hasDOTname_Identifier) -> ast_Identifier:
272
+ ...
273
+
274
+ @staticmethod
275
+ @overload
276
+ def name(node: hasDOTname_IdentifierOrNone) -> ast_Identifier | None:
277
+ ...
278
+
279
+ @staticmethod
280
+ @overload
281
+ def name(node: hasDOTname_str) -> ast_Identifier:
282
+ ...
283
+
284
+ @staticmethod
285
+ @overload
286
+ def name(node: hasDOTname_Name) -> ast.Name:
287
+ ...
288
+
289
+ @staticmethod
290
+ def name(node: hasDOTname) -> ast_Identifier | (ast_Identifier | None) | ast_Identifier | ast.Name:
291
+ return node.name
292
+
293
+ @staticmethod
294
+ @overload
295
+ def names(node: hasDOTnames_list_alias) -> list[ast.alias]:
296
+ ...
297
+
298
+ @staticmethod
299
+ @overload
300
+ def names(node: hasDOTnames_list_Identifier) -> list[ast_Identifier]:
301
+ ...
302
+
303
+ @staticmethod
304
+ def names(node: hasDOTnames) -> list[ast.alias] | list[ast_Identifier]:
305
+ return node.names
306
+
307
+ @staticmethod
308
+ @overload
309
+ def op(node: hasDOTop_operator) -> ast.operator:
310
+ ...
311
+
312
+ @staticmethod
313
+ @overload
314
+ def op(node: hasDOTop_boolop) -> ast.boolop:
315
+ ...
316
+
317
+ @staticmethod
318
+ @overload
319
+ def op(node: hasDOTop_unaryop) -> ast.unaryop:
320
+ ...
321
+
322
+ @staticmethod
323
+ def op(node: hasDOTop) -> ast.operator | ast.boolop | ast.unaryop:
324
+ return node.op
325
+
326
+ @staticmethod
327
+ def operand(node: hasDOToperand) -> ast.expr:
328
+ return node.operand
329
+
330
+ @staticmethod
331
+ def ops(node: hasDOTops) -> Sequence[ast.cmpop]:
332
+ return node.ops
333
+
334
+ @staticmethod
335
+ def optional_vars(node: hasDOToptional_vars) -> ast.expr | None:
336
+ return node.optional_vars
337
+
338
+ @staticmethod
339
+ @overload
340
+ def orelse(node: hasDOTorelse_list_stmt) -> Sequence[ast.stmt]:
341
+ ...
342
+
343
+ @staticmethod
344
+ @overload
345
+ def orelse(node: hasDOTorelse_expr) -> ast.expr:
346
+ ...
347
+
348
+ @staticmethod
349
+ def orelse(node: hasDOTorelse) -> Sequence[ast.stmt] | ast.expr:
350
+ return node.orelse
351
+
352
+ @staticmethod
353
+ @overload
354
+ def pattern(node: hasDOTpattern_pattern) -> ast.pattern:
355
+ ...
356
+
357
+ @staticmethod
358
+ @overload
359
+ def pattern(node: hasDOTpattern_patternOrNone) -> ast.pattern | None:
360
+ ...
361
+
362
+ @staticmethod
363
+ def pattern(node: hasDOTpattern) -> ast.pattern | (ast.pattern | None):
364
+ return node.pattern
365
+
366
+ @staticmethod
367
+ def patterns(node: hasDOTpatterns) -> Sequence[ast.pattern]:
368
+ return node.patterns
369
+
370
+ @staticmethod
371
+ def posonlyargs(node: hasDOTposonlyargs) -> list[ast.arg]:
372
+ return node.posonlyargs
373
+
374
+ @staticmethod
375
+ def rest(node: hasDOTrest) -> ast_Identifier | None:
376
+ return node.rest
377
+
378
+ @staticmethod
379
+ @overload
380
+ def returns(node: hasDOTreturns_expr) -> ast.expr:
381
+ ...
382
+
383
+ @staticmethod
384
+ @overload
385
+ def returns(node: hasDOTreturns_exprOrNone) -> ast.expr | None:
386
+ ...
387
+
388
+ @staticmethod
389
+ def returns(node: hasDOTreturns) -> ast.expr | (ast.expr | None):
390
+ return node.returns
391
+
392
+ @staticmethod
393
+ def right(node: hasDOTright) -> ast.expr:
394
+ return node.right
395
+
396
+ @staticmethod
397
+ def simple(node: hasDOTsimple) -> int:
398
+ return node.simple
399
+
400
+ @staticmethod
401
+ def slice(node: hasDOTslice) -> ast_expr_Slice:
402
+ return node.slice
403
+
404
+ @staticmethod
405
+ def step(node: hasDOTstep) -> ast.expr | None:
406
+ return node.step
407
+
408
+ @staticmethod
409
+ def subject(node: hasDOTsubject) -> ast.expr:
410
+ return node.subject
411
+
412
+ @staticmethod
413
+ def tag(node: hasDOTtag) -> ast_Identifier:
414
+ return node.tag
415
+
416
+ @staticmethod
417
+ @overload
418
+ def target(node: hasDOTtarget_NameOrAttributeOrSubscript) -> ast.Name | ast.Attribute | ast.Subscript:
419
+ ...
420
+
421
+ @staticmethod
422
+ @overload
423
+ def target(node: hasDOTtarget_expr) -> ast.expr:
424
+ ...
425
+
426
+ @staticmethod
427
+ @overload
428
+ def target(node: hasDOTtarget_Name) -> ast.Name:
429
+ ...
430
+
431
+ @staticmethod
432
+ def target(node: hasDOTtarget) -> ast.Name | ast.Attribute | ast.Subscript | ast.expr | ast.Name:
433
+ return node.target
434
+
435
+ @staticmethod
436
+ def targets(node: hasDOTtargets) -> Sequence[ast.expr]:
437
+ return node.targets
438
+
439
+ @staticmethod
440
+ def test(node: hasDOTtest) -> ast.expr:
441
+ return node.test
442
+
443
+ @staticmethod
444
+ def type(node: hasDOTtype) -> ast.expr | None:
445
+ return node.type
446
+
447
+ @staticmethod
448
+ def type_comment(node: hasDOTtype_comment) -> ast_Identifier | None:
449
+ return node.type_comment
450
+
451
+ @staticmethod
452
+ def type_ignores(node: hasDOTtype_ignores) -> list[ast.TypeIgnore]:
453
+ return node.type_ignores
454
+
455
+ @staticmethod
456
+ def type_params(node: hasDOTtype_params) -> Sequence[astDOTtype_param]:
457
+ return node.type_params
458
+
459
+ @staticmethod
460
+ def upper(node: hasDOTupper) -> ast.expr | None:
461
+ return node.upper
462
+
463
+ @staticmethod
464
+ @overload
465
+ def value(node: hasDOTvalue_exprOrNone) -> ast.expr | None:
466
+ ...
467
+
468
+ @staticmethod
469
+ @overload
470
+ def value(node: hasDOTvalue_expr) -> ast.expr:
471
+ ...
472
+
473
+ @staticmethod
474
+ @overload
475
+ def value(node: hasDOTvalue_Any) -> Any:
476
+ ...
477
+
478
+ @staticmethod
479
+ @overload
480
+ def value(node: hasDOTvalue_LiteralTrueFalseOrNone) -> Literal[True, False] | None:
481
+ ...
482
+
483
+ @staticmethod
484
+ def value(node: hasDOTvalue) -> ast.expr | None | ast.expr | Any | (Literal[True, False] | None):
485
+ return node.value
486
+
487
+ @staticmethod
488
+ def values(node: hasDOTvalues) -> Sequence[ast.expr]:
489
+ return node.values
490
+
491
+ @staticmethod
492
+ def vararg(node: hasDOTvararg) -> ast.arg | None:
493
+ return node.vararg