tnfr 4.3.0__tar.gz β 8.6.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.
- {tnfr-4.3.0 β tnfr-8.6.0}/LICENSE.md +1 -1
- tnfr-8.6.0/PKG-INFO +490 -0
- tnfr-8.6.0/README.md +348 -0
- tnfr-8.6.0/pyproject.toml +285 -0
- tnfr-8.6.0/src/tnfr/__init__.py +375 -0
- tnfr-8.6.0/src/tnfr/__init__.pyi +33 -0
- tnfr-8.6.0/src/tnfr/_compat.py +10 -0
- tnfr-8.6.0/src/tnfr/_generated_version.py +34 -0
- tnfr-8.6.0/src/tnfr/_version.py +49 -0
- tnfr-8.6.0/src/tnfr/_version.pyi +7 -0
- tnfr-8.6.0/src/tnfr/alias.py +723 -0
- tnfr-8.6.0/src/tnfr/alias.pyi +108 -0
- tnfr-8.6.0/src/tnfr/backends/__init__.py +354 -0
- tnfr-8.6.0/src/tnfr/backends/jax_backend.py +173 -0
- tnfr-8.6.0/src/tnfr/backends/numpy_backend.py +238 -0
- tnfr-8.6.0/src/tnfr/backends/optimized_numpy.py +420 -0
- tnfr-8.6.0/src/tnfr/backends/torch_backend.py +408 -0
- tnfr-8.6.0/src/tnfr/cache.py +171 -0
- tnfr-8.6.0/src/tnfr/cache.pyi +13 -0
- tnfr-8.6.0/src/tnfr/cli/__init__.py +110 -0
- tnfr-8.6.0/src/tnfr/cli/__init__.pyi +26 -0
- tnfr-8.6.0/src/tnfr/cli/arguments.py +489 -0
- tnfr-8.6.0/src/tnfr/cli/arguments.pyi +29 -0
- tnfr-8.6.0/src/tnfr/cli/execution.py +914 -0
- tnfr-8.6.0/src/tnfr/cli/execution.pyi +70 -0
- tnfr-8.6.0/src/tnfr/cli/interactive_validator.py +614 -0
- tnfr-8.6.0/src/tnfr/cli/utils.py +51 -0
- tnfr-8.6.0/src/tnfr/cli/utils.pyi +7 -0
- tnfr-8.6.0/src/tnfr/cli/validate.py +236 -0
- tnfr-8.6.0/src/tnfr/compat/__init__.py +85 -0
- tnfr-8.6.0/src/tnfr/compat/dataclass.py +136 -0
- tnfr-8.6.0/src/tnfr/compat/jsonschema_stub.py +61 -0
- tnfr-8.6.0/src/tnfr/compat/matplotlib_stub.py +73 -0
- tnfr-8.6.0/src/tnfr/compat/numpy_stub.py +155 -0
- tnfr-8.6.0/src/tnfr/config/__init__.py +224 -0
- tnfr-8.6.0/src/tnfr/config/__init__.pyi +10 -0
- tnfr-8.6.0/src/tnfr/config/constants.py +104 -0
- tnfr-8.6.0/src/tnfr/config/constants.pyi +12 -0
- tnfr-8.6.0/src/tnfr/config/defaults.py +54 -0
- tnfr-8.6.0/src/tnfr/config/defaults_core.py +212 -0
- tnfr-8.6.0/src/tnfr/config/defaults_init.py +33 -0
- tnfr-8.6.0/src/tnfr/config/defaults_metric.py +104 -0
- tnfr-8.6.0/src/tnfr/config/feature_flags.py +81 -0
- tnfr-8.6.0/src/tnfr/config/feature_flags.pyi +16 -0
- tnfr-8.6.0/src/tnfr/config/glyph_constants.py +31 -0
- tnfr-8.6.0/src/tnfr/config/init.py +77 -0
- tnfr-8.6.0/src/tnfr/config/init.pyi +8 -0
- tnfr-8.6.0/src/tnfr/config/operator_names.py +254 -0
- tnfr-8.6.0/src/tnfr/config/operator_names.pyi +36 -0
- tnfr-8.6.0/src/tnfr/config/physics_derivation.py +354 -0
- tnfr-8.6.0/src/tnfr/config/presets.py +83 -0
- tnfr-8.6.0/src/tnfr/config/presets.pyi +7 -0
- tnfr-8.6.0/src/tnfr/config/security.py +927 -0
- tnfr-8.6.0/src/tnfr/config/thresholds.py +114 -0
- tnfr-8.6.0/src/tnfr/config/tnfr_config.py +498 -0
- tnfr-8.6.0/src/tnfr/constants/__init__.py +92 -0
- tnfr-8.6.0/src/tnfr/constants/__init__.pyi +92 -0
- tnfr-8.6.0/src/tnfr/constants/aliases.py +33 -0
- tnfr-8.6.0/src/tnfr/constants/aliases.pyi +27 -0
- tnfr-8.6.0/src/tnfr/constants/init.py +33 -0
- tnfr-8.6.0/src/tnfr/constants/init.pyi +12 -0
- tnfr-8.6.0/src/tnfr/constants/metric.py +104 -0
- tnfr-8.6.0/src/tnfr/constants/metric.pyi +19 -0
- tnfr-8.6.0/src/tnfr/core/__init__.py +33 -0
- tnfr-8.6.0/src/tnfr/core/container.py +226 -0
- tnfr-8.6.0/src/tnfr/core/default_implementations.py +329 -0
- tnfr-8.6.0/src/tnfr/core/interfaces.py +279 -0
- tnfr-8.6.0/src/tnfr/dynamics/__init__.py +238 -0
- tnfr-8.6.0/src/tnfr/dynamics/__init__.pyi +83 -0
- tnfr-8.6.0/src/tnfr/dynamics/adaptation.py +267 -0
- tnfr-8.6.0/src/tnfr/dynamics/adaptation.pyi +7 -0
- tnfr-8.6.0/src/tnfr/dynamics/adaptive_sequences.py +189 -0
- tnfr-8.6.0/src/tnfr/dynamics/adaptive_sequences.pyi +14 -0
- tnfr-8.6.0/src/tnfr/dynamics/aliases.py +23 -0
- tnfr-8.6.0/src/tnfr/dynamics/aliases.pyi +19 -0
- tnfr-8.6.0/src/tnfr/dynamics/bifurcation.py +232 -0
- tnfr-8.6.0/src/tnfr/dynamics/canonical.py +229 -0
- tnfr-8.6.0/src/tnfr/dynamics/canonical.pyi +48 -0
- tnfr-8.6.0/src/tnfr/dynamics/coordination.py +385 -0
- tnfr-8.6.0/src/tnfr/dynamics/coordination.pyi +25 -0
- tnfr-8.6.0/src/tnfr/dynamics/dnfr.py +3034 -0
- tnfr-8.6.0/src/tnfr/dynamics/dnfr.pyi +26 -0
- tnfr-8.6.0/src/tnfr/dynamics/dynamic_limits.py +225 -0
- tnfr-8.6.0/src/tnfr/dynamics/feedback.py +252 -0
- tnfr-8.6.0/src/tnfr/dynamics/feedback.pyi +24 -0
- tnfr-8.6.0/src/tnfr/dynamics/fused_dnfr.py +454 -0
- tnfr-8.6.0/src/tnfr/dynamics/homeostasis.py +157 -0
- tnfr-8.6.0/src/tnfr/dynamics/homeostasis.pyi +14 -0
- tnfr-8.6.0/src/tnfr/dynamics/integrators.py +661 -0
- tnfr-8.6.0/src/tnfr/dynamics/integrators.pyi +36 -0
- tnfr-8.6.0/src/tnfr/dynamics/learning.py +310 -0
- tnfr-8.6.0/src/tnfr/dynamics/learning.pyi +33 -0
- tnfr-8.6.0/src/tnfr/dynamics/metabolism.py +254 -0
- tnfr-8.6.0/src/tnfr/dynamics/nbody.py +796 -0
- tnfr-8.6.0/src/tnfr/dynamics/nbody_tnfr.py +783 -0
- tnfr-8.6.0/src/tnfr/dynamics/propagation.py +326 -0
- tnfr-8.6.0/src/tnfr/dynamics/runtime.py +908 -0
- tnfr-8.6.0/src/tnfr/dynamics/runtime.pyi +77 -0
- tnfr-8.6.0/src/tnfr/dynamics/sampling.py +36 -0
- tnfr-8.6.0/src/tnfr/dynamics/sampling.pyi +7 -0
- tnfr-8.6.0/src/tnfr/dynamics/selectors.py +711 -0
- tnfr-8.6.0/src/tnfr/dynamics/selectors.pyi +85 -0
- tnfr-8.6.0/src/tnfr/dynamics/structural_clip.py +207 -0
- tnfr-8.6.0/src/tnfr/errors/__init__.py +37 -0
- tnfr-8.6.0/src/tnfr/errors/contextual.py +492 -0
- tnfr-8.6.0/src/tnfr/execution.py +223 -0
- tnfr-8.6.0/src/tnfr/execution.pyi +45 -0
- tnfr-8.6.0/src/tnfr/extensions/__init__.py +205 -0
- tnfr-8.6.0/src/tnfr/extensions/__init__.pyi +18 -0
- tnfr-8.6.0/src/tnfr/extensions/base.py +173 -0
- tnfr-8.6.0/src/tnfr/extensions/base.pyi +35 -0
- tnfr-8.6.0/src/tnfr/extensions/business/__init__.py +71 -0
- tnfr-8.6.0/src/tnfr/extensions/business/__init__.pyi +11 -0
- tnfr-8.6.0/src/tnfr/extensions/business/cookbook.py +88 -0
- tnfr-8.6.0/src/tnfr/extensions/business/cookbook.pyi +8 -0
- tnfr-8.6.0/src/tnfr/extensions/business/health_analyzers.py +202 -0
- tnfr-8.6.0/src/tnfr/extensions/business/health_analyzers.pyi +9 -0
- tnfr-8.6.0/src/tnfr/extensions/business/patterns.py +183 -0
- tnfr-8.6.0/src/tnfr/extensions/business/patterns.pyi +8 -0
- tnfr-8.6.0/src/tnfr/extensions/medical/__init__.py +73 -0
- tnfr-8.6.0/src/tnfr/extensions/medical/__init__.pyi +11 -0
- tnfr-8.6.0/src/tnfr/extensions/medical/cookbook.py +88 -0
- tnfr-8.6.0/src/tnfr/extensions/medical/cookbook.pyi +8 -0
- tnfr-8.6.0/src/tnfr/extensions/medical/health_analyzers.py +181 -0
- tnfr-8.6.0/src/tnfr/extensions/medical/health_analyzers.pyi +9 -0
- tnfr-8.6.0/src/tnfr/extensions/medical/patterns.py +163 -0
- tnfr-8.6.0/src/tnfr/extensions/medical/patterns.pyi +8 -0
- tnfr-8.6.0/src/tnfr/flatten.py +262 -0
- tnfr-8.6.0/src/tnfr/flatten.pyi +21 -0
- tnfr-8.6.0/src/tnfr/gamma.py +354 -0
- tnfr-8.6.0/src/tnfr/gamma.pyi +36 -0
- tnfr-8.6.0/src/tnfr/glyph_history.py +377 -0
- tnfr-8.6.0/src/tnfr/glyph_history.pyi +35 -0
- tnfr-8.6.0/src/tnfr/glyph_runtime.py +19 -0
- tnfr-8.6.0/src/tnfr/glyph_runtime.pyi +8 -0
- tnfr-8.6.0/src/tnfr/immutable.py +218 -0
- tnfr-8.6.0/src/tnfr/immutable.pyi +36 -0
- tnfr-8.6.0/src/tnfr/initialization.py +203 -0
- tnfr-8.6.0/src/tnfr/initialization.pyi +65 -0
- tnfr-8.6.0/src/tnfr/io.py +10 -0
- tnfr-8.6.0/src/tnfr/io.pyi +13 -0
- tnfr-8.6.0/src/tnfr/locking.py +37 -0
- tnfr-8.6.0/src/tnfr/locking.pyi +7 -0
- tnfr-8.6.0/src/tnfr/mathematics/__init__.py +79 -0
- tnfr-8.6.0/src/tnfr/mathematics/backend.py +453 -0
- tnfr-8.6.0/src/tnfr/mathematics/backend.pyi +99 -0
- tnfr-8.6.0/src/tnfr/mathematics/dynamics.py +408 -0
- tnfr-8.6.0/src/tnfr/mathematics/dynamics.pyi +90 -0
- tnfr-8.6.0/src/tnfr/mathematics/epi.py +391 -0
- tnfr-8.6.0/src/tnfr/mathematics/epi.pyi +65 -0
- tnfr-8.6.0/src/tnfr/mathematics/generators.py +242 -0
- tnfr-8.6.0/src/tnfr/mathematics/generators.pyi +29 -0
- tnfr-8.6.0/src/tnfr/mathematics/metrics.py +119 -0
- tnfr-8.6.0/src/tnfr/mathematics/metrics.pyi +16 -0
- tnfr-8.6.0/src/tnfr/mathematics/operators.py +239 -0
- tnfr-8.6.0/src/tnfr/mathematics/operators.pyi +59 -0
- tnfr-8.6.0/src/tnfr/mathematics/operators_factory.py +124 -0
- tnfr-8.6.0/src/tnfr/mathematics/operators_factory.pyi +11 -0
- tnfr-8.6.0/src/tnfr/mathematics/projection.py +87 -0
- tnfr-8.6.0/src/tnfr/mathematics/projection.pyi +33 -0
- tnfr-8.6.0/src/tnfr/mathematics/runtime.py +182 -0
- tnfr-8.6.0/src/tnfr/mathematics/runtime.pyi +64 -0
- tnfr-8.6.0/src/tnfr/mathematics/spaces.py +256 -0
- tnfr-8.6.0/src/tnfr/mathematics/spaces.pyi +83 -0
- tnfr-8.6.0/src/tnfr/mathematics/transforms.py +305 -0
- tnfr-8.6.0/src/tnfr/mathematics/transforms.pyi +62 -0
- tnfr-8.6.0/src/tnfr/metrics/__init__.py +79 -0
- tnfr-8.6.0/src/tnfr/metrics/__init__.pyi +20 -0
- tnfr-8.6.0/src/tnfr/metrics/buffer_cache.py +163 -0
- tnfr-8.6.0/src/tnfr/metrics/buffer_cache.pyi +24 -0
- tnfr-8.6.0/src/tnfr/metrics/cache_utils.py +214 -0
- tnfr-8.6.0/src/tnfr/metrics/coherence.py +2009 -0
- tnfr-8.6.0/src/tnfr/metrics/coherence.pyi +129 -0
- tnfr-8.6.0/src/tnfr/metrics/common.py +158 -0
- tnfr-8.6.0/src/tnfr/metrics/common.pyi +35 -0
- tnfr-8.6.0/src/tnfr/metrics/core.py +316 -0
- tnfr-8.6.0/src/tnfr/metrics/core.pyi +13 -0
- tnfr-8.6.0/src/tnfr/metrics/diagnosis.py +833 -0
- tnfr-8.6.0/src/tnfr/metrics/diagnosis.pyi +86 -0
- tnfr-8.6.0/src/tnfr/metrics/emergence.py +245 -0
- tnfr-8.6.0/src/tnfr/metrics/export.py +179 -0
- tnfr-8.6.0/src/tnfr/metrics/export.pyi +7 -0
- tnfr-8.6.0/src/tnfr/metrics/glyph_timing.py +379 -0
- tnfr-8.6.0/src/tnfr/metrics/glyph_timing.pyi +81 -0
- tnfr-8.6.0/src/tnfr/metrics/learning_metrics.py +280 -0
- tnfr-8.6.0/src/tnfr/metrics/learning_metrics.pyi +21 -0
- tnfr-8.6.0/src/tnfr/metrics/phase_coherence.py +351 -0
- tnfr-8.6.0/src/tnfr/metrics/phase_compatibility.py +349 -0
- tnfr-8.6.0/src/tnfr/metrics/reporting.py +183 -0
- tnfr-8.6.0/src/tnfr/metrics/reporting.pyi +25 -0
- tnfr-8.6.0/src/tnfr/metrics/sense_index.py +1203 -0
- tnfr-8.6.0/src/tnfr/metrics/sense_index.pyi +9 -0
- tnfr-8.6.0/src/tnfr/metrics/trig.py +373 -0
- tnfr-8.6.0/src/tnfr/metrics/trig.pyi +13 -0
- tnfr-8.6.0/src/tnfr/metrics/trig_cache.py +233 -0
- tnfr-8.6.0/src/tnfr/metrics/trig_cache.pyi +10 -0
- tnfr-8.6.0/src/tnfr/multiscale/__init__.py +32 -0
- tnfr-8.6.0/src/tnfr/multiscale/hierarchical.py +517 -0
- tnfr-8.6.0/src/tnfr/node.py +763 -0
- tnfr-8.6.0/src/tnfr/node.pyi +139 -0
- tnfr-8.6.0/src/tnfr/observers.py +274 -0
- tnfr-8.6.0/src/tnfr/observers.pyi +31 -0
- tnfr-8.6.0/src/tnfr/ontosim.py +144 -0
- tnfr-8.6.0/src/tnfr/ontosim.pyi +28 -0
- tnfr-8.6.0/src/tnfr/operators/__init__.py +1672 -0
- tnfr-8.6.0/src/tnfr/operators/__init__.pyi +31 -0
- tnfr-8.6.0/src/tnfr/operators/algebra.py +279 -0
- tnfr-8.6.0/src/tnfr/operators/cascade.py +267 -0
- tnfr-8.6.0/src/tnfr/operators/cycle_detection.py +358 -0
- tnfr-8.6.0/src/tnfr/operators/definitions.py +4140 -0
- tnfr-8.6.0/src/tnfr/operators/definitions.pyi +78 -0
- tnfr-8.6.0/src/tnfr/operators/grammar.py +1322 -0
- tnfr-8.6.0/src/tnfr/operators/grammar.pyi +140 -0
- tnfr-8.6.0/src/tnfr/operators/hamiltonian.py +710 -0
- tnfr-8.6.0/src/tnfr/operators/health_analyzer.py +809 -0
- tnfr-8.6.0/src/tnfr/operators/jitter.py +272 -0
- tnfr-8.6.0/src/tnfr/operators/jitter.pyi +11 -0
- tnfr-8.6.0/src/tnfr/operators/lifecycle.py +314 -0
- tnfr-8.6.0/src/tnfr/operators/metabolism.py +618 -0
- tnfr-8.6.0/src/tnfr/operators/metrics.py +2138 -0
- tnfr-8.6.0/src/tnfr/operators/network_analysis/__init__.py +27 -0
- tnfr-8.6.0/src/tnfr/operators/network_analysis/source_detection.py +186 -0
- tnfr-8.6.0/src/tnfr/operators/nodal_equation.py +395 -0
- tnfr-8.6.0/src/tnfr/operators/pattern_detection.py +660 -0
- tnfr-8.6.0/src/tnfr/operators/postconditions/__init__.py +38 -0
- tnfr-8.6.0/src/tnfr/operators/postconditions/mutation.py +236 -0
- tnfr-8.6.0/src/tnfr/operators/preconditions/__init__.py +1230 -0
- tnfr-8.6.0/src/tnfr/operators/preconditions/coherence.py +305 -0
- tnfr-8.6.0/src/tnfr/operators/preconditions/dissonance.py +236 -0
- tnfr-8.6.0/src/tnfr/operators/preconditions/emission.py +128 -0
- tnfr-8.6.0/src/tnfr/operators/preconditions/mutation.py +580 -0
- tnfr-8.6.0/src/tnfr/operators/preconditions/reception.py +125 -0
- tnfr-8.6.0/src/tnfr/operators/preconditions/resonance.py +364 -0
- tnfr-8.6.0/src/tnfr/operators/registry.py +74 -0
- tnfr-8.6.0/src/tnfr/operators/registry.pyi +9 -0
- tnfr-8.6.0/src/tnfr/operators/remesh.py +1809 -0
- tnfr-8.6.0/src/tnfr/operators/remesh.pyi +26 -0
- tnfr-8.6.0/src/tnfr/operators/structural_units.py +268 -0
- tnfr-8.6.0/src/tnfr/operators/unified_grammar.py +110 -0
- tnfr-8.6.0/src/tnfr/parallel/__init__.py +54 -0
- tnfr-8.6.0/src/tnfr/parallel/auto_scaler.py +234 -0
- tnfr-8.6.0/src/tnfr/parallel/distributed.py +384 -0
- tnfr-8.6.0/src/tnfr/parallel/engine.py +238 -0
- tnfr-8.6.0/src/tnfr/parallel/gpu_engine.py +420 -0
- tnfr-8.6.0/src/tnfr/parallel/monitoring.py +248 -0
- tnfr-8.6.0/src/tnfr/parallel/partitioner.py +459 -0
- tnfr-8.6.0/src/tnfr/py.typed +0 -0
- tnfr-8.6.0/src/tnfr/recipes/__init__.py +22 -0
- tnfr-8.6.0/src/tnfr/recipes/cookbook.py +743 -0
- tnfr-8.6.0/src/tnfr/rng.py +178 -0
- tnfr-8.6.0/src/tnfr/rng.pyi +26 -0
- tnfr-8.6.0/src/tnfr/schemas/__init__.py +8 -0
- tnfr-8.6.0/src/tnfr/schemas/grammar.json +94 -0
- tnfr-8.6.0/src/tnfr/sdk/__init__.py +107 -0
- tnfr-8.6.0/src/tnfr/sdk/__init__.pyi +19 -0
- tnfr-8.6.0/src/tnfr/sdk/adaptive_system.py +173 -0
- tnfr-8.6.0/src/tnfr/sdk/adaptive_system.pyi +21 -0
- tnfr-8.6.0/src/tnfr/sdk/builders.py +370 -0
- tnfr-8.6.0/src/tnfr/sdk/builders.pyi +51 -0
- tnfr-8.6.0/src/tnfr/sdk/fluent.py +1121 -0
- tnfr-8.6.0/src/tnfr/sdk/fluent.pyi +74 -0
- tnfr-8.6.0/src/tnfr/sdk/templates.py +342 -0
- tnfr-8.6.0/src/tnfr/sdk/templates.pyi +41 -0
- tnfr-8.6.0/src/tnfr/sdk/utils.py +341 -0
- tnfr-8.6.0/src/tnfr/secure_config.py +46 -0
- tnfr-8.6.0/src/tnfr/security/__init__.py +70 -0
- tnfr-8.6.0/src/tnfr/security/database.py +514 -0
- tnfr-8.6.0/src/tnfr/security/subprocess.py +503 -0
- tnfr-8.6.0/src/tnfr/security/validation.py +290 -0
- tnfr-8.6.0/src/tnfr/selector.py +247 -0
- tnfr-8.6.0/src/tnfr/selector.pyi +19 -0
- tnfr-8.6.0/src/tnfr/sense.py +378 -0
- tnfr-8.6.0/src/tnfr/sense.pyi +23 -0
- tnfr-8.6.0/src/tnfr/services/__init__.py +17 -0
- tnfr-8.6.0/src/tnfr/services/orchestrator.py +325 -0
- tnfr-8.6.0/src/tnfr/sparse/__init__.py +39 -0
- tnfr-8.6.0/src/tnfr/sparse/representations.py +492 -0
- tnfr-8.6.0/src/tnfr/structural.py +705 -0
- tnfr-8.6.0/src/tnfr/structural.pyi +83 -0
- tnfr-8.6.0/src/tnfr/telemetry/__init__.py +35 -0
- tnfr-8.6.0/src/tnfr/telemetry/cache_metrics.py +226 -0
- tnfr-8.6.0/src/tnfr/telemetry/cache_metrics.pyi +64 -0
- tnfr-8.6.0/src/tnfr/telemetry/nu_f.py +422 -0
- tnfr-8.6.0/src/tnfr/telemetry/nu_f.pyi +108 -0
- tnfr-8.6.0/src/tnfr/telemetry/verbosity.py +36 -0
- tnfr-8.6.0/src/tnfr/telemetry/verbosity.pyi +15 -0
- tnfr-8.6.0/src/tnfr/tokens.py +58 -0
- tnfr-8.6.0/src/tnfr/tokens.pyi +36 -0
- tnfr-8.6.0/src/tnfr/tools/__init__.py +20 -0
- tnfr-8.6.0/src/tnfr/tools/domain_templates.py +478 -0
- tnfr-8.6.0/src/tnfr/tools/sequence_generator.py +846 -0
- tnfr-8.6.0/src/tnfr/topology/__init__.py +13 -0
- tnfr-8.6.0/src/tnfr/topology/asymmetry.py +151 -0
- tnfr-8.6.0/src/tnfr/trace.py +543 -0
- tnfr-8.6.0/src/tnfr/trace.pyi +42 -0
- tnfr-8.6.0/src/tnfr/tutorials/__init__.py +38 -0
- tnfr-8.6.0/src/tnfr/tutorials/autonomous_evolution.py +285 -0
- tnfr-8.6.0/src/tnfr/tutorials/interactive.py +1576 -0
- tnfr-8.6.0/src/tnfr/tutorials/structural_metabolism.py +238 -0
- tnfr-8.6.0/src/tnfr/types.py +775 -0
- tnfr-8.6.0/src/tnfr/types.pyi +357 -0
- tnfr-8.6.0/src/tnfr/units.py +68 -0
- tnfr-8.6.0/src/tnfr/units.pyi +13 -0
- tnfr-8.6.0/src/tnfr/utils/__init__.py +282 -0
- tnfr-8.6.0/src/tnfr/utils/__init__.pyi +215 -0
- tnfr-8.6.0/src/tnfr/utils/cache.py +4223 -0
- tnfr-8.6.0/src/tnfr/utils/cache.pyi +470 -0
- tnfr-8.6.0/src/tnfr/utils/callbacks.py +375 -0
- tnfr-8.6.0/src/tnfr/utils/callbacks.pyi +49 -0
- tnfr-8.6.0/src/tnfr/utils/chunks.py +108 -0
- tnfr-8.6.0/src/tnfr/utils/chunks.pyi +22 -0
- tnfr-8.6.0/src/tnfr/utils/data.py +428 -0
- tnfr-8.6.0/src/tnfr/utils/data.pyi +74 -0
- tnfr-8.6.0/src/tnfr/utils/graph.py +85 -0
- tnfr-8.6.0/src/tnfr/utils/graph.pyi +10 -0
- tnfr-8.6.0/src/tnfr/utils/init.py +821 -0
- tnfr-8.6.0/src/tnfr/utils/init.pyi +80 -0
- tnfr-8.6.0/src/tnfr/utils/io.py +559 -0
- tnfr-8.6.0/src/tnfr/utils/io.pyi +66 -0
- tnfr-8.6.0/src/tnfr/utils/numeric.py +114 -0
- tnfr-8.6.0/src/tnfr/utils/numeric.pyi +21 -0
- tnfr-8.6.0/src/tnfr/validation/__init__.py +257 -0
- tnfr-8.6.0/src/tnfr/validation/__init__.pyi +85 -0
- tnfr-8.6.0/src/tnfr/validation/compatibility.py +460 -0
- tnfr-8.6.0/src/tnfr/validation/compatibility.pyi +6 -0
- tnfr-8.6.0/src/tnfr/validation/config.py +73 -0
- tnfr-8.6.0/src/tnfr/validation/graph.py +139 -0
- tnfr-8.6.0/src/tnfr/validation/graph.pyi +18 -0
- tnfr-8.6.0/src/tnfr/validation/input_validation.py +755 -0
- tnfr-8.6.0/src/tnfr/validation/invariants.py +712 -0
- tnfr-8.6.0/src/tnfr/validation/rules.py +256 -0
- tnfr-8.6.0/src/tnfr/validation/rules.pyi +44 -0
- tnfr-8.6.0/src/tnfr/validation/runtime.py +279 -0
- tnfr-8.6.0/src/tnfr/validation/runtime.pyi +28 -0
- tnfr-8.6.0/src/tnfr/validation/sequence_validator.py +162 -0
- tnfr-8.6.0/src/tnfr/validation/soft_filters.py +170 -0
- tnfr-8.6.0/src/tnfr/validation/soft_filters.pyi +32 -0
- tnfr-8.6.0/src/tnfr/validation/spectral.py +164 -0
- tnfr-8.6.0/src/tnfr/validation/spectral.pyi +42 -0
- tnfr-8.6.0/src/tnfr/validation/validator.py +1266 -0
- tnfr-8.6.0/src/tnfr/validation/window.py +39 -0
- tnfr-8.6.0/src/tnfr/validation/window.pyi +1 -0
- tnfr-8.6.0/src/tnfr/visualization/__init__.py +98 -0
- tnfr-8.6.0/src/tnfr/visualization/cascade_viz.py +256 -0
- tnfr-8.6.0/src/tnfr/visualization/hierarchy.py +284 -0
- tnfr-8.6.0/src/tnfr/visualization/sequence_plotter.py +784 -0
- tnfr-8.6.0/src/tnfr/viz/__init__.py +60 -0
- tnfr-8.6.0/src/tnfr/viz/matplotlib.py +278 -0
- tnfr-8.6.0/src/tnfr/viz/matplotlib.pyi +35 -0
- tnfr-8.6.0/src/tnfr.egg-info/PKG-INFO +490 -0
- tnfr-8.6.0/src/tnfr.egg-info/SOURCES.txt +356 -0
- {tnfr-4.3.0 β tnfr-8.6.0}/src/tnfr.egg-info/entry_points.txt +1 -0
- tnfr-8.6.0/src/tnfr.egg-info/requires.txt +138 -0
- tnfr-8.6.0/tests/test_bandit_converter.py +303 -0
- tnfr-8.6.0/tests/test_cookbook.py +313 -0
- tnfr-4.3.0/PKG-INFO +0 -109
- tnfr-4.3.0/README.md +0 -82
- tnfr-4.3.0/pyproject.toml +0 -41
- tnfr-4.3.0/src/tnfr/__init__.py +0 -61
- tnfr-4.3.0/src/tnfr/cli.py +0 -270
- tnfr-4.3.0/src/tnfr/constants.py +0 -220
- tnfr-4.3.0/src/tnfr/dynamics.py +0 -665
- tnfr-4.3.0/src/tnfr/gamma.py +0 -110
- tnfr-4.3.0/src/tnfr/grammar.py +0 -155
- tnfr-4.3.0/src/tnfr/helpers.py +0 -252
- tnfr-4.3.0/src/tnfr/main.py +0 -47
- tnfr-4.3.0/src/tnfr/metrics.py +0 -234
- tnfr-4.3.0/src/tnfr/observers.py +0 -161
- tnfr-4.3.0/src/tnfr/ontosim.py +0 -140
- tnfr-4.3.0/src/tnfr/operators.py +0 -352
- tnfr-4.3.0/src/tnfr/presets.py +0 -28
- tnfr-4.3.0/src/tnfr/program.py +0 -176
- tnfr-4.3.0/src/tnfr/scenarios.py +0 -34
- tnfr-4.3.0/src/tnfr/sense.py +0 -200
- tnfr-4.3.0/src/tnfr/trace.py +0 -134
- tnfr-4.3.0/src/tnfr/types.py +0 -17
- tnfr-4.3.0/src/tnfr.egg-info/PKG-INFO +0 -109
- tnfr-4.3.0/src/tnfr.egg-info/SOURCES.txt +0 -37
- tnfr-4.3.0/src/tnfr.egg-info/requires.txt +0 -1
- tnfr-4.3.0/tests/test_canon.py +0 -30
- tnfr-4.3.0/tests/test_cli_sanity.py +0 -12
- tnfr-4.3.0/tests/test_edge_cases.py +0 -30
- tnfr-4.3.0/tests/test_gamma.py +0 -20
- tnfr-4.3.0/tests/test_grammar.py +0 -56
- tnfr-4.3.0/tests/test_history.py +0 -15
- tnfr-4.3.0/tests/test_history_series.py +0 -27
- tnfr-4.3.0/tests/test_invariants.py +0 -89
- tnfr-4.3.0/tests/test_program.py +0 -17
- tnfr-4.3.0/tests/test_remesh.py +0 -48
- {tnfr-4.3.0 β tnfr-8.6.0}/setup.cfg +0 -0
- {tnfr-4.3.0 β tnfr-8.6.0}/src/tnfr.egg-info/dependency_links.txt +0 -0
- {tnfr-4.3.0 β tnfr-8.6.0}/src/tnfr.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# MIT License
|
|
2
2
|
|
|
3
|
-
Copyright (c) 2025 TNFR
|
|
3
|
+
Copyright (c) 2025 TNFR β Resonant Fractal Nature Theory
|
|
4
4
|
|
|
5
5
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
6
|
of this software and associated documentation files (the "Software"), to deal
|
tnfr-8.6.0/PKG-INFO
ADDED
|
@@ -0,0 +1,490 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: tnfr
|
|
3
|
+
Version: 8.6.0
|
|
4
|
+
Summary: Modular structural-based dynamics on networks.
|
|
5
|
+
Author: fmg
|
|
6
|
+
License: MIT
|
|
7
|
+
Project-URL: Homepage, https://pypi.org/project/tnfr/
|
|
8
|
+
Project-URL: Repository, https://github.com/fermga/TNFR-Python-Engine
|
|
9
|
+
Project-URL: GPT, https://chatgpt.com/g/g-67abc78885a88191b2d67f94fd60dc97-tnfr-resonant-fractal-nature-theory
|
|
10
|
+
Keywords: TNFR,complex systems,fractals,resonance,networks,structural dynamics,structural analysis
|
|
11
|
+
Classifier: Programming Language :: Python :: 3
|
|
12
|
+
Classifier: Programming Language :: Python :: 3 :: Only
|
|
13
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
18
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
19
|
+
Classifier: Operating System :: OS Independent
|
|
20
|
+
Classifier: Intended Audience :: Science/Research
|
|
21
|
+
Classifier: Topic :: Scientific/Engineering
|
|
22
|
+
Classifier: Topic :: Scientific/Engineering :: Information Analysis
|
|
23
|
+
Classifier: Topic :: Scientific/Engineering :: Mathematics
|
|
24
|
+
Requires-Python: >=3.9
|
|
25
|
+
Description-Content-Type: text/markdown
|
|
26
|
+
License-File: LICENSE.md
|
|
27
|
+
Requires-Dist: networkx<4.0,>=2.6
|
|
28
|
+
Requires-Dist: cachetools<7.0,>=5.0
|
|
29
|
+
Requires-Dist: numpy<3.0,>=1.24
|
|
30
|
+
Requires-Dist: scipy<2.0,>=1.9
|
|
31
|
+
Requires-Dist: typing-extensions>=4.4; python_version < "3.10"
|
|
32
|
+
Provides-Extra: compute-jax
|
|
33
|
+
Requires-Dist: jax<1.0,>=0.4; extra == "compute-jax"
|
|
34
|
+
Provides-Extra: compute-torch
|
|
35
|
+
Requires-Dist: torch<3.0,>=2.1; extra == "compute-torch"
|
|
36
|
+
Provides-Extra: serialization
|
|
37
|
+
Requires-Dist: pyyaml<7.0,>=6.0; extra == "serialization"
|
|
38
|
+
Requires-Dist: orjson<4,>=3; extra == "serialization"
|
|
39
|
+
Provides-Extra: viz-basic
|
|
40
|
+
Requires-Dist: matplotlib<4.0,>=3.7; extra == "viz-basic"
|
|
41
|
+
Provides-Extra: numpy
|
|
42
|
+
Provides-Extra: jax
|
|
43
|
+
Requires-Dist: jax<1.0,>=0.4; extra == "jax"
|
|
44
|
+
Provides-Extra: torch
|
|
45
|
+
Requires-Dist: torch<3.0,>=2.1; extra == "torch"
|
|
46
|
+
Provides-Extra: yaml
|
|
47
|
+
Requires-Dist: pyyaml<7.0,>=6.0; extra == "yaml"
|
|
48
|
+
Provides-Extra: orjson
|
|
49
|
+
Requires-Dist: orjson<4,>=3; extra == "orjson"
|
|
50
|
+
Provides-Extra: viz
|
|
51
|
+
Requires-Dist: matplotlib<4.0,>=3.7; extra == "viz"
|
|
52
|
+
Provides-Extra: docs
|
|
53
|
+
Requires-Dist: sphinx>=7.2; extra == "docs"
|
|
54
|
+
Requires-Dist: sphinx-autodoc-typehints>=1.25; extra == "docs"
|
|
55
|
+
Requires-Dist: myst-parser>=2.0; extra == "docs"
|
|
56
|
+
Requires-Dist: nbsphinx>=0.9; extra == "docs"
|
|
57
|
+
Requires-Dist: sphinx-rtd-theme>=1.3; extra == "docs"
|
|
58
|
+
Requires-Dist: sphinxcontrib-mermaid>=0.9; extra == "docs"
|
|
59
|
+
Requires-Dist: ipykernel>=6; extra == "docs"
|
|
60
|
+
Requires-Dist: nbconvert>=7.16; extra == "docs"
|
|
61
|
+
Requires-Dist: pypandoc-binary>=1.14; extra == "docs"
|
|
62
|
+
Requires-Dist: mkdocs>=1.5; extra == "docs"
|
|
63
|
+
Requires-Dist: mkdocs-material>=9.4; extra == "docs"
|
|
64
|
+
Requires-Dist: mkdocs-jupyter>=0.24; extra == "docs"
|
|
65
|
+
Provides-Extra: test-unit
|
|
66
|
+
Requires-Dist: pytest<9,>=7; extra == "test-unit"
|
|
67
|
+
Requires-Dist: pytest-cov<8,>=4; extra == "test-unit"
|
|
68
|
+
Requires-Dist: pytest-timeout<3,>=2; extra == "test-unit"
|
|
69
|
+
Provides-Extra: test-property
|
|
70
|
+
Requires-Dist: hypothesis<7,>=6; extra == "test-property"
|
|
71
|
+
Requires-Dist: hypothesis-networkx<1.0,>=0.3; extra == "test-property"
|
|
72
|
+
Provides-Extra: test-performance
|
|
73
|
+
Requires-Dist: pytest-benchmark<6,>=4; extra == "test-performance"
|
|
74
|
+
Provides-Extra: test-parallel
|
|
75
|
+
Requires-Dist: pytest-xdist<4,>=3; extra == "test-parallel"
|
|
76
|
+
Provides-Extra: test-quality
|
|
77
|
+
Requires-Dist: pydocstyle<7,>=6; extra == "test-quality"
|
|
78
|
+
Requires-Dist: flake8<8,>=5; extra == "test-quality"
|
|
79
|
+
Requires-Dist: flake8-pyproject<2.0,>=1.2; extra == "test-quality"
|
|
80
|
+
Requires-Dist: vulture<3,>=2; extra == "test-quality"
|
|
81
|
+
Provides-Extra: test-all
|
|
82
|
+
Requires-Dist: pytest<9,>=7; extra == "test-all"
|
|
83
|
+
Requires-Dist: pytest-cov<8,>=4; extra == "test-all"
|
|
84
|
+
Requires-Dist: pytest-timeout<3,>=2; extra == "test-all"
|
|
85
|
+
Requires-Dist: hypothesis<7,>=6; extra == "test-all"
|
|
86
|
+
Requires-Dist: hypothesis-networkx<1.0,>=0.3; extra == "test-all"
|
|
87
|
+
Requires-Dist: pytest-benchmark<6,>=4; extra == "test-all"
|
|
88
|
+
Requires-Dist: pytest-xdist<4,>=3; extra == "test-all"
|
|
89
|
+
Requires-Dist: pydocstyle<7,>=6; extra == "test-all"
|
|
90
|
+
Requires-Dist: flake8<8,>=5; extra == "test-all"
|
|
91
|
+
Requires-Dist: flake8-pyproject<2.0,>=1.2; extra == "test-all"
|
|
92
|
+
Requires-Dist: vulture<3,>=2; extra == "test-all"
|
|
93
|
+
Requires-Dist: matplotlib<4.0,>=3.7; extra == "test-all"
|
|
94
|
+
Provides-Extra: test
|
|
95
|
+
Requires-Dist: pytest<9,>=7; extra == "test"
|
|
96
|
+
Requires-Dist: pytest-cov<8,>=4; extra == "test"
|
|
97
|
+
Requires-Dist: pytest-timeout<3,>=2; extra == "test"
|
|
98
|
+
Requires-Dist: hypothesis<7,>=6; extra == "test"
|
|
99
|
+
Requires-Dist: hypothesis-networkx<1.0,>=0.3; extra == "test"
|
|
100
|
+
Requires-Dist: pytest-benchmark<6,>=4; extra == "test"
|
|
101
|
+
Requires-Dist: pytest-xdist<4,>=3; extra == "test"
|
|
102
|
+
Requires-Dist: pydocstyle<7,>=6; extra == "test"
|
|
103
|
+
Requires-Dist: flake8<8,>=5; extra == "test"
|
|
104
|
+
Requires-Dist: flake8-pyproject<2.0,>=1.2; extra == "test"
|
|
105
|
+
Requires-Dist: vulture<3,>=2; extra == "test"
|
|
106
|
+
Requires-Dist: matplotlib<4.0,>=3.7; extra == "test"
|
|
107
|
+
Provides-Extra: typecheck
|
|
108
|
+
Requires-Dist: mypy<2.0,>=1.8; extra == "typecheck"
|
|
109
|
+
Requires-Dist: pyright<1.2.0,>=1.1.350; extra == "typecheck"
|
|
110
|
+
Requires-Dist: networkx-stubs>=0.0.1; extra == "typecheck"
|
|
111
|
+
Requires-Dist: types-cachetools>=6.0.0.0; extra == "typecheck"
|
|
112
|
+
Provides-Extra: dev-minimal
|
|
113
|
+
Requires-Dist: mypy<2.0,>=1.8; extra == "dev-minimal"
|
|
114
|
+
Requires-Dist: black<26,>=23; extra == "dev-minimal"
|
|
115
|
+
Requires-Dist: pytest<9,>=7; extra == "dev-minimal"
|
|
116
|
+
Requires-Dist: pytest-cov<8,>=4; extra == "dev-minimal"
|
|
117
|
+
Requires-Dist: pytest-timeout<3,>=2; extra == "dev-minimal"
|
|
118
|
+
Provides-Extra: dev-full
|
|
119
|
+
Requires-Dist: pytest<9,>=7; extra == "dev-full"
|
|
120
|
+
Requires-Dist: pytest-cov<8,>=4; extra == "dev-full"
|
|
121
|
+
Requires-Dist: pytest-timeout<3,>=2; extra == "dev-full"
|
|
122
|
+
Requires-Dist: hypothesis<7,>=6; extra == "dev-full"
|
|
123
|
+
Requires-Dist: hypothesis-networkx<1.0,>=0.3; extra == "dev-full"
|
|
124
|
+
Requires-Dist: pytest-benchmark<6,>=4; extra == "dev-full"
|
|
125
|
+
Requires-Dist: pytest-xdist<4,>=3; extra == "dev-full"
|
|
126
|
+
Requires-Dist: pydocstyle<7,>=6; extra == "dev-full"
|
|
127
|
+
Requires-Dist: flake8<8,>=5; extra == "dev-full"
|
|
128
|
+
Requires-Dist: flake8-pyproject<2.0,>=1.2; extra == "dev-full"
|
|
129
|
+
Requires-Dist: vulture<3,>=2; extra == "dev-full"
|
|
130
|
+
Requires-Dist: matplotlib<4.0,>=3.7; extra == "dev-full"
|
|
131
|
+
Requires-Dist: jax<1.0,>=0.4; extra == "dev-full"
|
|
132
|
+
Requires-Dist: mypy<2.0,>=1.8; extra == "dev-full"
|
|
133
|
+
Requires-Dist: pyright<1.2.0,>=1.1.350; extra == "dev-full"
|
|
134
|
+
Requires-Dist: networkx-stubs>=0.0.1; extra == "dev-full"
|
|
135
|
+
Requires-Dist: types-cachetools>=6.0.0.0; extra == "dev-full"
|
|
136
|
+
Provides-Extra: release
|
|
137
|
+
Requires-Dist: python-semantic-release<11,>=10.4; extra == "release"
|
|
138
|
+
Requires-Dist: setuptools-scm<10,>=8; extra == "release"
|
|
139
|
+
Requires-Dist: build<2,>=1; extra == "release"
|
|
140
|
+
Requires-Dist: towncrier<26,>=23; extra == "release"
|
|
141
|
+
Dynamic: license-file
|
|
142
|
+
|
|
143
|
+
# TNFR Python Engine
|
|
144
|
+
|
|
145
|
+
<div align="center">
|
|
146
|
+
|
|
147
|
+
**Model reality as resonant patterns, not isolated objects**
|
|
148
|
+
|
|
149
|
+
[](https://pypi.org/project/tnfr/)
|
|
150
|
+
[](https://pypi.org/project/tnfr/)
|
|
151
|
+
[](LICENSE.md)
|
|
152
|
+
[](https://fermga.github.io/TNFR-Python-Engine/)
|
|
153
|
+
|
|
154
|
+
[Quick Start](#-quick-start) β’ [Key Concepts](#-key-concepts) β’ [Documentation](#-documentation) β’ [Examples](#-examples) β’ [Contributing](#-contributing)
|
|
155
|
+
|
|
156
|
+
</div>
|
|
157
|
+
|
|
158
|
+
---
|
|
159
|
+
|
|
160
|
+
## π What is TNFR?
|
|
161
|
+
|
|
162
|
+
**TNFR** (**Resonant Fractal Nature Theory** / **TeorΓa de la Naturaleza Fractal Resonante**) is a paradigm shift in modeling complex systems. Instead of viewing reality as isolated "things" that interact through cause-and-effect, TNFR models it as **coherent patterns that persist through resonance**.
|
|
163
|
+
|
|
164
|
+
Think of a choir: each singer maintains their unique voice while synchronizing with others to create harmony. When voices resonate, they produce stable, beautiful structures. When they clash, patterns fragment. **TNFR captures this principle mathematically and makes it operational in code.**
|
|
165
|
+
|
|
166
|
+
### π― Why TNFR?
|
|
167
|
+
|
|
168
|
+
| Traditional Approach | TNFR Paradigm |
|
|
169
|
+
|---------------------|---------------|
|
|
170
|
+
| Objects exist independently | Patterns exist through resonance |
|
|
171
|
+
| Causality: A causes B | Coherence: A and B co-organize |
|
|
172
|
+
| Static snapshots | Dynamic reorganization |
|
|
173
|
+
| Domain-specific models | Trans-scale, trans-domain |
|
|
174
|
+
|
|
175
|
+
**Key Advantages:**
|
|
176
|
+
- π **Operational Fractality**: Patterns scale without losing structure
|
|
177
|
+
- π **Complete Traceability**: Every reorganization is observable
|
|
178
|
+
- π― **Guaranteed Reproducibility**: Same conditions β same outcomes
|
|
179
|
+
- π **Domain Neutral**: Works from quantum to social systems
|
|
180
|
+
|
|
181
|
+
### π Use Cases
|
|
182
|
+
|
|
183
|
+
- 𧬠**Biology**: Cellular networks, neuronal synchronization, protein dynamics
|
|
184
|
+
- π **Social Systems**: Information spread, community formation, opinion dynamics
|
|
185
|
+
- π€ **AI**: Resonant symbolic systems, emergent learning
|
|
186
|
+
- π¬ **Network Science**: Structural coherence, pattern detection
|
|
187
|
+
- ποΈ **Distributed Systems**: Decentralized coordination, self-organization
|
|
188
|
+
|
|
189
|
+
---
|
|
190
|
+
|
|
191
|
+
## β‘ Quick Start
|
|
192
|
+
|
|
193
|
+
### Installation
|
|
194
|
+
|
|
195
|
+
```bash
|
|
196
|
+
pip install tnfr
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
Requires Python β₯ 3.9
|
|
200
|
+
|
|
201
|
+
### Your First TNFR Network (3 Lines!)
|
|
202
|
+
|
|
203
|
+
```python
|
|
204
|
+
from tnfr.sdk import TNFRNetwork
|
|
205
|
+
|
|
206
|
+
# Create, activate, and measure a network
|
|
207
|
+
network = TNFRNetwork("hello_world")
|
|
208
|
+
results = network.add_nodes(10).connect_nodes(0.3, "random").apply_sequence("basic_activation", repeat=3).measure()
|
|
209
|
+
print(results.summary())
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
π **That's it!** You just created a resonant network.
|
|
213
|
+
|
|
214
|
+
**What happened?**
|
|
215
|
+
- `add_nodes(10)`: Created 10 nodes that can synchronize
|
|
216
|
+
- `connect_nodes(0.3, "random")`: Connected them (30% probability)
|
|
217
|
+
- `apply_sequence("basic_activation", repeat=3)`: Applied Emission β Coherence β Resonance (3x)
|
|
218
|
+
- `measure()`: Calculated coherence C(t), sense index Si, and structural metrics
|
|
219
|
+
|
|
220
|
+
### π Interactive Learning (5 Minutes)
|
|
221
|
+
|
|
222
|
+
```python
|
|
223
|
+
from tnfr.tutorials import hello_tnfr
|
|
224
|
+
hello_tnfr() # Guided tour of TNFR concepts
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
**Domain Examples:**
|
|
228
|
+
```python
|
|
229
|
+
from tnfr.tutorials import (
|
|
230
|
+
biological_example, # Cell communication
|
|
231
|
+
social_network_example, # Social dynamics
|
|
232
|
+
technology_example, # Distributed systems
|
|
233
|
+
adaptive_ai_example, # Learning through resonance
|
|
234
|
+
)
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
π **Structured Learning Path**: See our [**60-Minute Interactive Tutorial**](docs/source/getting-started/INTERACTIVE_TUTORIAL.md)
|
|
238
|
+
|
|
239
|
+
---
|
|
240
|
+
|
|
241
|
+
## π‘ Key Concepts
|
|
242
|
+
|
|
243
|
+
> **New to TNFR?** π [**TNFR Fundamental Concepts Guide**](docs/source/getting-started/TNFR_CONCEPTS.md) - Understand the paradigm in 10 minutes!
|
|
244
|
+
|
|
245
|
+
### The Nodal Equation
|
|
246
|
+
|
|
247
|
+
At the heart of TNFR is one elegant equation:
|
|
248
|
+
|
|
249
|
+
```
|
|
250
|
+
βEPI/βt = Ξ½f Β· ΞNFR(t)
|
|
251
|
+
```
|
|
252
|
+
|
|
253
|
+
**What it means:**
|
|
254
|
+
- **EPI**: Primary Information Structure (the "shape" of a node)
|
|
255
|
+
- **Ξ½f**: Structural frequency (reorganization rate in Hz_str)
|
|
256
|
+
- **ΞNFR**: Internal reorganization operator (structural gradient)
|
|
257
|
+
|
|
258
|
+
*Structure changes proportionally to frequency and gradient*
|
|
259
|
+
|
|
260
|
+
### Three Essential Elements
|
|
261
|
+
|
|
262
|
+
**1. Resonant Fractal Node (NFR)**
|
|
263
|
+
- Minimum unit of structural coherence
|
|
264
|
+
- Has EPI (form), Ξ½f (frequency), Ο (phase)
|
|
265
|
+
|
|
266
|
+
**2. Structural Operators** (13 canonical)
|
|
267
|
+
- **Emission/Reception**: Initiate & capture patterns
|
|
268
|
+
- **Coherence/Dissonance**: Stabilize or destabilize
|
|
269
|
+
- **Resonance**: Propagate without losing identity
|
|
270
|
+
- **Self-organization**: Create emergent structures
|
|
271
|
+
- [See all 13 operators β](GLOSSARY.md#structural-operators)
|
|
272
|
+
|
|
273
|
+
**3. Coherence Metrics**
|
|
274
|
+
- **C(t)**: Total network coherence [0,1]
|
|
275
|
+
- **Si**: Sense index (reorganization stability)
|
|
276
|
+
- **ΞNFR**: Evolution gradient
|
|
277
|
+
|
|
278
|
+
---
|
|
279
|
+
|
|
280
|
+
## π Documentation
|
|
281
|
+
|
|
282
|
+
### Core Documentation
|
|
283
|
+
|
|
284
|
+
**Theory & Foundations**
|
|
285
|
+
- π **[Mathematical Foundations](docs/source/theory/mathematical_foundations.md)** - Formal TNFR mathematics
|
|
286
|
+
- π **[TNFR Concepts](docs/source/getting-started/TNFR_CONCEPTS.md)** - Paradigm introduction
|
|
287
|
+
- π **[GLOSSARY](GLOSSARY.md)** - Operational definitions
|
|
288
|
+
- π¬ **[Classical Mechanics Emergence](docs/TNFR_CLASSICAL_NBODY.md)** - How classical physics emerges from TNFR
|
|
289
|
+
|
|
290
|
+
**Grammar System**
|
|
291
|
+
- π― **[Grammar Documentation Hub](docs/grammar/README.md)** - Complete navigation guide
|
|
292
|
+
- π **[Unified Grammar Rules](UNIFIED_GRAMMAR_RULES.md)** - U1-U4 constraint derivations
|
|
293
|
+
- π **[Grammar Quick Reference](docs/grammar/08-QUICK-REFERENCE.md)** - One-page cheat sheet
|
|
294
|
+
- π **[Executive Summary](docs/grammar/EXECUTIVE-SUMMARY.md)** - For managers and stakeholders
|
|
295
|
+
|
|
296
|
+
**Implementation & API**
|
|
297
|
+
- βοΈ **[API Overview](docs/source/api/overview.md)** - Package architecture
|
|
298
|
+
- π§ **[Operator Guide](docs/source/api/operators.md)** - Complete operator reference
|
|
299
|
+
- π οΈ **[ARCHITECTURE](ARCHITECTURE.md)** - System design
|
|
300
|
+
|
|
301
|
+
**Development**
|
|
302
|
+
- π€ **[CONTRIBUTING](CONTRIBUTING.md)** - Development workflow
|
|
303
|
+
- π§ͺ **[TESTING](TESTING.md)** - Test strategy
|
|
304
|
+
- π **[SECURITY](SECURITY.md)** - Security practices
|
|
305
|
+
- π **[AGENTS](AGENTS.md)** - Canonical invariants and guidance
|
|
306
|
+
|
|
307
|
+
---
|
|
308
|
+
|
|
309
|
+
## π¬ Examples
|
|
310
|
+
|
|
311
|
+
### Hello World
|
|
312
|
+
|
|
313
|
+
```python
|
|
314
|
+
# examples/hello_world.py
|
|
315
|
+
from tnfr.sdk import TNFRNetwork
|
|
316
|
+
|
|
317
|
+
network = TNFRNetwork("simple_demo")
|
|
318
|
+
results = (network
|
|
319
|
+
.add_nodes(5)
|
|
320
|
+
.connect_nodes(0.5, "random")
|
|
321
|
+
.apply_sequence("basic_activation")
|
|
322
|
+
.measure())
|
|
323
|
+
|
|
324
|
+
print(f"Coherence: {results.coherence:.3f}")
|
|
325
|
+
print(f"Sense Index: {results.sense_index:.3f}")
|
|
326
|
+
```
|
|
327
|
+
|
|
328
|
+
### Biological Network
|
|
329
|
+
|
|
330
|
+
```python
|
|
331
|
+
# examples/biological_network.py
|
|
332
|
+
from tnfr.sdk import TNFRNetwork
|
|
333
|
+
|
|
334
|
+
# Model cellular communication
|
|
335
|
+
cells = TNFRNetwork("cell_network")
|
|
336
|
+
results = (cells
|
|
337
|
+
.add_nodes(20, epi_range=(0.8, 1.2)) # Biological variation
|
|
338
|
+
.connect_nodes(0.3, "scale_free") # Power-law connectivity
|
|
339
|
+
.apply_sequence("therapeutic", repeat=5) # Healing pattern
|
|
340
|
+
.measure())
|
|
341
|
+
|
|
342
|
+
print(f"Network health: {results.coherence:.2%}")
|
|
343
|
+
```
|
|
344
|
+
|
|
345
|
+
### More Examples
|
|
346
|
+
|
|
347
|
+
- [Dynamic Limits](examples/dynamic_limits_demo.py) - Adaptive thresholds
|
|
348
|
+
- [Multiscale Networks](examples/multiscale_network_demo.py) - Hierarchical structures
|
|
349
|
+
- [Regenerative Cycles](examples/regenerative_cycles.py) - Self-sustaining patterns
|
|
350
|
+
- [Performance Comparison](examples/backend_performance_comparison.py) - Backend benchmarks
|
|
351
|
+
|
|
352
|
+
π **Full Collection**: [examples/](examples/) directory
|
|
353
|
+
|
|
354
|
+
---
|
|
355
|
+
|
|
356
|
+
## π οΈ Development
|
|
357
|
+
|
|
358
|
+
### Local Setup
|
|
359
|
+
|
|
360
|
+
```bash
|
|
361
|
+
# Clone repository
|
|
362
|
+
git clone https://github.com/fermga/TNFR-Python-Engine.git
|
|
363
|
+
cd TNFR-Python-Engine
|
|
364
|
+
|
|
365
|
+
# Install with development dependencies
|
|
366
|
+
pip install -e ".[dev,docs]"
|
|
367
|
+
|
|
368
|
+
# Run tests
|
|
369
|
+
./scripts/run_tests.sh
|
|
370
|
+
|
|
371
|
+
# Format code
|
|
372
|
+
./scripts/format.sh
|
|
373
|
+
```
|
|
374
|
+
|
|
375
|
+
### Documentation Build
|
|
376
|
+
|
|
377
|
+
```bash
|
|
378
|
+
# Install docs dependencies
|
|
379
|
+
pip install -r docs/requirements.txt
|
|
380
|
+
|
|
381
|
+
# Build documentation
|
|
382
|
+
make docs
|
|
383
|
+
|
|
384
|
+
# View locally
|
|
385
|
+
open docs/_build/html/index.html
|
|
386
|
+
```
|
|
387
|
+
|
|
388
|
+
### Configuration & Secrets
|
|
389
|
+
|
|
390
|
+
```bash
|
|
391
|
+
# Copy environment template
|
|
392
|
+
cp .env.example .env
|
|
393
|
+
|
|
394
|
+
# Edit .env with your credentials (never commit this file!)
|
|
395
|
+
# Load with:
|
|
396
|
+
```
|
|
397
|
+
|
|
398
|
+
```python
|
|
399
|
+
from tnfr.secure_config import load_redis_config, get_cache_secret
|
|
400
|
+
redis_config = load_redis_config()
|
|
401
|
+
```
|
|
402
|
+
|
|
403
|
+
See [SECURITY.md](SECURITY.md) for best practices.
|
|
404
|
+
|
|
405
|
+
---
|
|
406
|
+
|
|
407
|
+
## π€ Contributing
|
|
408
|
+
|
|
409
|
+
We welcome contributions! Here's how to get started:
|
|
410
|
+
|
|
411
|
+
1. **Understand TNFR**: Read [Mathematical Foundations](docs/source/theory/mathematical_foundations.md)
|
|
412
|
+
2. **Check Invariants**: Follow [AGENTS.md](AGENTS.md) rules
|
|
413
|
+
3. **Write Tests**: Cover all invariants (see [TESTING.md](TESTING.md))
|
|
414
|
+
4. **Run QA**: Execute `./scripts/run_tests.sh`
|
|
415
|
+
5. **Submit PR**: See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines
|
|
416
|
+
|
|
417
|
+
**Key Principles:**
|
|
418
|
+
- β
Preserve canonical invariants
|
|
419
|
+
- β
Use structural operators only
|
|
420
|
+
- β
Document with references to Mathematical Foundations
|
|
421
|
+
- β
Test spectral properties
|
|
422
|
+
|
|
423
|
+
---
|
|
424
|
+
|
|
425
|
+
## π CLI Tools
|
|
426
|
+
|
|
427
|
+
### Profiling Pipeline
|
|
428
|
+
|
|
429
|
+
```bash
|
|
430
|
+
tnfr profile-pipeline \
|
|
431
|
+
--nodes 120 --edge-probability 0.28 --loops 3 \
|
|
432
|
+
--si-chunk-sizes auto 48 --dnfr-chunk-sizes auto \
|
|
433
|
+
--output-dir profiles/pipeline
|
|
434
|
+
```
|
|
435
|
+
|
|
436
|
+
Generates `.pstats` and JSON summaries for performance analysis.
|
|
437
|
+
|
|
438
|
+
---
|
|
439
|
+
|
|
440
|
+
## π Learning Path
|
|
441
|
+
|
|
442
|
+
**Recommended Progression:**
|
|
443
|
+
|
|
444
|
+
1. **Newcomers** (10 min)
|
|
445
|
+
- Read [TNFR Concepts](docs/source/getting-started/TNFR_CONCEPTS.md)
|
|
446
|
+
- Run `hello_tnfr()` tutorial
|
|
447
|
+
|
|
448
|
+
2. **Beginners** (30 min)
|
|
449
|
+
- Try [examples/hello_world.py](examples/hello_world.py)
|
|
450
|
+
- Explore domain examples (biological, social, AI)
|
|
451
|
+
|
|
452
|
+
3. **Intermediate** (2 hours)
|
|
453
|
+
- Study [Mathematical Foundations Β§1-3](docs/source/theory/mathematical_foundations.md)
|
|
454
|
+
- Read [GLOSSARY](GLOSSARY.md)
|
|
455
|
+
- Practice with [Interactive Tutorial](docs/source/getting-started/INTERACTIVE_TUTORIAL.md)
|
|
456
|
+
|
|
457
|
+
4. **Advanced** (ongoing)
|
|
458
|
+
- Deep dive: [Mathematical Foundations (complete)](docs/source/theory/mathematical_foundations.md)
|
|
459
|
+
- Architecture: [ARCHITECTURE.md](ARCHITECTURE.md)
|
|
460
|
+
- Contribute: [CONTRIBUTING.md](CONTRIBUTING.md)
|
|
461
|
+
|
|
462
|
+
---
|
|
463
|
+
|
|
464
|
+
## π License
|
|
465
|
+
|
|
466
|
+
Released under the [MIT License](LICENSE.md).
|
|
467
|
+
|
|
468
|
+
**Citation**: When publishing research or applications based on TNFR, please cite:
|
|
469
|
+
- This repository: `fermga/TNFR-Python-Engine`
|
|
470
|
+
- Theoretical foundations: [TNFR.pdf](TNFR.pdf)
|
|
471
|
+
- Mathematical formalization: [Mathematical Foundations](docs/source/theory/mathematical_foundations.md)
|
|
472
|
+
|
|
473
|
+
---
|
|
474
|
+
|
|
475
|
+
## π Links
|
|
476
|
+
|
|
477
|
+
- **Documentation**: https://fermga.github.io/TNFR-Python-Engine/
|
|
478
|
+
- **PyPI Package**: https://pypi.org/project/tnfr/
|
|
479
|
+
- **GitHub**: https://github.com/fermga/TNFR-Python-Engine
|
|
480
|
+
- **Issues**: https://github.com/fermga/TNFR-Python-Engine/issues
|
|
481
|
+
|
|
482
|
+
---
|
|
483
|
+
|
|
484
|
+
<div align="center">
|
|
485
|
+
|
|
486
|
+
**Made with β€οΈ for researchers, developers, and explorers of complex systems**
|
|
487
|
+
|
|
488
|
+
*Reality is not made of thingsβit's made of resonance*
|
|
489
|
+
|
|
490
|
+
</div>
|