tnfr 4.5.2__py3-none-any.whl → 6.0.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 (161) hide show
  1. tnfr/__init__.py +228 -49
  2. tnfr/__init__.pyi +40 -0
  3. tnfr/_compat.py +11 -0
  4. tnfr/_version.py +7 -0
  5. tnfr/_version.pyi +7 -0
  6. tnfr/alias.py +106 -21
  7. tnfr/alias.pyi +140 -0
  8. tnfr/cache.py +666 -512
  9. tnfr/cache.pyi +232 -0
  10. tnfr/callback_utils.py +2 -9
  11. tnfr/callback_utils.pyi +105 -0
  12. tnfr/cli/__init__.py +21 -7
  13. tnfr/cli/__init__.pyi +47 -0
  14. tnfr/cli/arguments.py +42 -20
  15. tnfr/cli/arguments.pyi +33 -0
  16. tnfr/cli/execution.py +54 -20
  17. tnfr/cli/execution.pyi +80 -0
  18. tnfr/cli/utils.py +0 -2
  19. tnfr/cli/utils.pyi +8 -0
  20. tnfr/config/__init__.py +12 -0
  21. tnfr/config/__init__.pyi +8 -0
  22. tnfr/config/constants.py +104 -0
  23. tnfr/config/constants.pyi +12 -0
  24. tnfr/{config.py → config/init.py} +11 -7
  25. tnfr/config/init.pyi +8 -0
  26. tnfr/config/operator_names.py +106 -0
  27. tnfr/config/operator_names.pyi +28 -0
  28. tnfr/config/presets.py +104 -0
  29. tnfr/config/presets.pyi +7 -0
  30. tnfr/constants/__init__.py +78 -24
  31. tnfr/constants/__init__.pyi +104 -0
  32. tnfr/constants/core.py +1 -2
  33. tnfr/constants/core.pyi +17 -0
  34. tnfr/constants/init.pyi +12 -0
  35. tnfr/constants/metric.py +4 -12
  36. tnfr/constants/metric.pyi +19 -0
  37. tnfr/constants_glyphs.py +9 -91
  38. tnfr/constants_glyphs.pyi +12 -0
  39. tnfr/dynamics/__init__.py +112 -634
  40. tnfr/dynamics/__init__.pyi +83 -0
  41. tnfr/dynamics/adaptation.py +201 -0
  42. tnfr/dynamics/aliases.py +22 -0
  43. tnfr/dynamics/coordination.py +343 -0
  44. tnfr/dynamics/dnfr.py +1936 -354
  45. tnfr/dynamics/dnfr.pyi +33 -0
  46. tnfr/dynamics/integrators.py +369 -75
  47. tnfr/dynamics/integrators.pyi +35 -0
  48. tnfr/dynamics/runtime.py +521 -0
  49. tnfr/dynamics/sampling.py +8 -5
  50. tnfr/dynamics/sampling.pyi +7 -0
  51. tnfr/dynamics/selectors.py +680 -0
  52. tnfr/execution.py +56 -41
  53. tnfr/execution.pyi +65 -0
  54. tnfr/flatten.py +7 -7
  55. tnfr/flatten.pyi +28 -0
  56. tnfr/gamma.py +54 -37
  57. tnfr/gamma.pyi +40 -0
  58. tnfr/glyph_history.py +85 -38
  59. tnfr/glyph_history.pyi +53 -0
  60. tnfr/grammar.py +19 -338
  61. tnfr/grammar.pyi +13 -0
  62. tnfr/helpers/__init__.py +110 -30
  63. tnfr/helpers/__init__.pyi +66 -0
  64. tnfr/helpers/numeric.py +1 -0
  65. tnfr/helpers/numeric.pyi +12 -0
  66. tnfr/immutable.py +55 -19
  67. tnfr/immutable.pyi +37 -0
  68. tnfr/initialization.py +12 -10
  69. tnfr/initialization.pyi +73 -0
  70. tnfr/io.py +99 -34
  71. tnfr/io.pyi +11 -0
  72. tnfr/locking.pyi +7 -0
  73. tnfr/metrics/__init__.pyi +20 -0
  74. tnfr/metrics/coherence.py +934 -294
  75. tnfr/metrics/common.py +1 -3
  76. tnfr/metrics/common.pyi +15 -0
  77. tnfr/metrics/core.py +192 -34
  78. tnfr/metrics/core.pyi +13 -0
  79. tnfr/metrics/diagnosis.py +707 -101
  80. tnfr/metrics/diagnosis.pyi +89 -0
  81. tnfr/metrics/export.py +27 -13
  82. tnfr/metrics/glyph_timing.py +218 -38
  83. tnfr/metrics/reporting.py +22 -18
  84. tnfr/metrics/reporting.pyi +12 -0
  85. tnfr/metrics/sense_index.py +199 -25
  86. tnfr/metrics/sense_index.pyi +9 -0
  87. tnfr/metrics/trig.py +53 -18
  88. tnfr/metrics/trig.pyi +12 -0
  89. tnfr/metrics/trig_cache.py +3 -7
  90. tnfr/metrics/trig_cache.pyi +10 -0
  91. tnfr/node.py +148 -125
  92. tnfr/node.pyi +161 -0
  93. tnfr/observers.py +44 -30
  94. tnfr/observers.pyi +46 -0
  95. tnfr/ontosim.py +14 -13
  96. tnfr/ontosim.pyi +33 -0
  97. tnfr/operators/__init__.py +84 -52
  98. tnfr/operators/__init__.pyi +31 -0
  99. tnfr/operators/definitions.py +181 -0
  100. tnfr/operators/definitions.pyi +92 -0
  101. tnfr/operators/jitter.py +86 -23
  102. tnfr/operators/jitter.pyi +11 -0
  103. tnfr/operators/registry.py +80 -0
  104. tnfr/operators/registry.pyi +15 -0
  105. tnfr/operators/remesh.py +141 -57
  106. tnfr/presets.py +9 -54
  107. tnfr/presets.pyi +7 -0
  108. tnfr/py.typed +0 -0
  109. tnfr/rng.py +259 -73
  110. tnfr/rng.pyi +14 -0
  111. tnfr/selector.py +24 -17
  112. tnfr/selector.pyi +19 -0
  113. tnfr/sense.py +55 -43
  114. tnfr/sense.pyi +30 -0
  115. tnfr/structural.py +44 -267
  116. tnfr/structural.pyi +46 -0
  117. tnfr/telemetry/__init__.py +13 -0
  118. tnfr/telemetry/verbosity.py +37 -0
  119. tnfr/tokens.py +3 -2
  120. tnfr/tokens.pyi +41 -0
  121. tnfr/trace.py +272 -82
  122. tnfr/trace.pyi +68 -0
  123. tnfr/types.py +345 -6
  124. tnfr/types.pyi +145 -0
  125. tnfr/utils/__init__.py +158 -0
  126. tnfr/utils/__init__.pyi +133 -0
  127. tnfr/utils/cache.py +755 -0
  128. tnfr/utils/cache.pyi +156 -0
  129. tnfr/{collections_utils.py → utils/data.py} +57 -90
  130. tnfr/utils/data.pyi +73 -0
  131. tnfr/utils/graph.py +87 -0
  132. tnfr/utils/graph.pyi +10 -0
  133. tnfr/utils/init.py +746 -0
  134. tnfr/utils/init.pyi +85 -0
  135. tnfr/{json_utils.py → utils/io.py} +13 -18
  136. tnfr/utils/io.pyi +10 -0
  137. tnfr/utils/validators.py +130 -0
  138. tnfr/utils/validators.pyi +19 -0
  139. tnfr/validation/__init__.py +25 -0
  140. tnfr/validation/__init__.pyi +17 -0
  141. tnfr/validation/compatibility.py +59 -0
  142. tnfr/validation/compatibility.pyi +8 -0
  143. tnfr/validation/grammar.py +149 -0
  144. tnfr/validation/grammar.pyi +11 -0
  145. tnfr/validation/rules.py +194 -0
  146. tnfr/validation/rules.pyi +18 -0
  147. tnfr/validation/syntax.py +151 -0
  148. tnfr/validation/syntax.pyi +7 -0
  149. tnfr-6.0.0.dist-info/METADATA +135 -0
  150. tnfr-6.0.0.dist-info/RECORD +157 -0
  151. tnfr/graph_utils.py +0 -84
  152. tnfr/import_utils.py +0 -228
  153. tnfr/logging_utils.py +0 -116
  154. tnfr/validators.py +0 -84
  155. tnfr/value_utils.py +0 -59
  156. tnfr-4.5.2.dist-info/METADATA +0 -379
  157. tnfr-4.5.2.dist-info/RECORD +0 -67
  158. {tnfr-4.5.2.dist-info → tnfr-6.0.0.dist-info}/WHEEL +0 -0
  159. {tnfr-4.5.2.dist-info → tnfr-6.0.0.dist-info}/entry_points.txt +0 -0
  160. {tnfr-4.5.2.dist-info → tnfr-6.0.0.dist-info}/licenses/LICENSE.md +0 -0
  161. {tnfr-4.5.2.dist-info → tnfr-6.0.0.dist-info}/top_level.txt +0 -0
tnfr/alias.pyi ADDED
@@ -0,0 +1,140 @@
1
+ from __future__ import annotations
2
+
3
+ from collections.abc import Callable, Iterable, Mapping, MutableMapping
4
+ from types import ModuleType
5
+ from typing import TYPE_CHECKING, Any, Hashable, TypeVar
6
+
7
+ from .types import FloatArray, NodeId
8
+
9
+ if TYPE_CHECKING:
10
+ import networkx as nx
11
+
12
+ T = TypeVar("T")
13
+
14
+ __all__: list[str]
15
+
16
+ def __getattr__(name: str) -> Any: ...
17
+
18
+
19
+ class AbsMaxResult:
20
+ max_value: float
21
+ node: Hashable | None
22
+
23
+
24
+ SCALAR_SETTERS: dict[str, dict[str, Any]]
25
+
26
+
27
+ def get_attr(
28
+ d: dict[str, Any],
29
+ aliases: Iterable[str],
30
+ default: T | None = ...,
31
+ *,
32
+ strict: bool = ...,
33
+ log_level: int | None = ...,
34
+ conv: Callable[[Any], T] = ...,
35
+ ) -> T | None: ...
36
+
37
+
38
+ def get_theta_attr(
39
+ d: Mapping[str, Any],
40
+ default: T | None = ...,
41
+ *,
42
+ strict: bool = ...,
43
+ log_level: int | None = ...,
44
+ conv: Callable[[Any], T] = ...,
45
+ ) -> T | None: ...
46
+
47
+
48
+ def collect_attr(
49
+ G: "nx.Graph",
50
+ nodes: Iterable[NodeId],
51
+ aliases: Iterable[str],
52
+ default: float = ...,
53
+ *,
54
+ np: ModuleType | None = ...,
55
+ ) -> FloatArray | list[float]: ...
56
+
57
+
58
+ def collect_theta_attr(
59
+ G: "nx.Graph",
60
+ nodes: Iterable[NodeId],
61
+ default: float = ...,
62
+ *,
63
+ np: ModuleType | None = ...,
64
+ ) -> FloatArray | list[float]: ...
65
+
66
+
67
+ def set_attr_generic(
68
+ d: dict[str, Any],
69
+ aliases: Iterable[str],
70
+ value: Any,
71
+ *,
72
+ conv: Callable[[Any], T],
73
+ ) -> T: ...
74
+
75
+
76
+ def set_attr(
77
+ d: dict[str, Any], aliases: Iterable[str], value: Any, conv: Callable[[Any], T] = ...
78
+ ) -> T: ...
79
+
80
+
81
+ def get_attr_str(
82
+ d: dict[str, Any],
83
+ aliases: Iterable[str],
84
+ default: str | None = ...,
85
+ *,
86
+ strict: bool = ...,
87
+ log_level: int | None = ...,
88
+ conv: Callable[[Any], str] = ...,
89
+ ) -> str | None: ...
90
+
91
+
92
+ def set_attr_str(d: dict[str, Any], aliases: Iterable[str], value: Any) -> str: ...
93
+
94
+
95
+ def set_theta_attr(d: MutableMapping[str, Any], value: Any) -> float: ...
96
+
97
+
98
+ def multi_recompute_abs_max(
99
+ G: "nx.Graph", alias_map: Mapping[str, tuple[str, ...]]
100
+ ) -> dict[str, float]: ...
101
+
102
+
103
+ def set_attr_and_cache(
104
+ G: "nx.Graph",
105
+ n: Hashable,
106
+ aliases: tuple[str, ...],
107
+ value: float,
108
+ *,
109
+ cache: str | None = ...,
110
+ extra: Callable[["nx.Graph", Hashable, float], None] | None = ...,
111
+ ) -> AbsMaxResult | None: ...
112
+
113
+
114
+ def set_attr_with_max(
115
+ G: "nx.Graph", n: Hashable, aliases: tuple[str, ...], value: float, *, cache: str
116
+ ) -> AbsMaxResult: ...
117
+
118
+
119
+ def set_scalar(
120
+ G: "nx.Graph",
121
+ n: Hashable,
122
+ alias: tuple[str, ...],
123
+ value: float,
124
+ *,
125
+ cache: str | None = ...,
126
+ extra: Callable[["nx.Graph", Hashable, float], None] | None = ...,
127
+ ) -> AbsMaxResult | None: ...
128
+
129
+
130
+ def set_vf(
131
+ G: "nx.Graph", n: Hashable, value: float, *, update_max: bool = ...
132
+ ) -> AbsMaxResult | None: ...
133
+
134
+
135
+ def set_dnfr(G: "nx.Graph", n: Hashable, value: float) -> AbsMaxResult | None: ...
136
+
137
+
138
+ def set_theta(
139
+ G: "nx.Graph", n: Hashable, value: float
140
+ ) -> AbsMaxResult | None: ...