tnfr 2.0.1__tar.gz → 3.0.1__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.

Potentially problematic release.


This version of tnfr might be problematic. Click here for more details.

@@ -1,17 +1,24 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: tnfr
3
- Version: 2.0.1
3
+ Version: 3.0.1
4
4
  Summary: TNFR canónica: dinámica glífica modular sobre redes.
5
5
  Author: Fer
6
6
  License: MIT
7
+ Project-URL: Homepage, https://pypi.org/project/tnfr/
8
+ Project-URL: Repository, https://github.com/fermga/Teoria-de-la-naturaleza-fractal-resonante-TNFR-
9
+ Keywords: TNFR,fractal resonante,resonancia,glifos,networkx,dinámica,coherencia,EPI,Kuramoto
7
10
  Classifier: Programming Language :: Python :: 3
8
11
  Classifier: Programming Language :: Python :: 3 :: Only
9
12
  Classifier: Programming Language :: Python :: 3.9
10
13
  Classifier: Programming Language :: Python :: 3.10
11
14
  Classifier: Programming Language :: Python :: 3.11
12
15
  Classifier: Programming Language :: Python :: 3.12
16
+ Classifier: Programming Language :: Python :: 3.13
13
17
  Classifier: License :: OSI Approved :: MIT License
14
18
  Classifier: Operating System :: OS Independent
19
+ Classifier: Intended Audience :: Science/Research
20
+ Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
21
+ Classifier: Topic :: Scientific/Engineering :: Information Analysis
15
22
  Requires-Python: >=3.9
16
23
  Description-Content-Type: text/markdown
17
24
  License-File: LICENSE.txt
@@ -1,11 +1,15 @@
1
1
  [project]
2
2
  name = "tnfr"
3
- version = "2.0.1" # <- sube el número si la anterior ya existe
3
+ version = "3.0.1"
4
4
  description = "TNFR canónica: dinámica glífica modular sobre redes."
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.9"
7
7
  license = { text = "MIT" }
8
8
  authors = [{ name = "Fer" }]
9
+ keywords = [
10
+ "TNFR", "fractal resonante", "resonancia", "glifos",
11
+ "networkx", "dinámica", "coherencia", "EPI", "Kuramoto"
12
+ ]
9
13
  classifiers = [
10
14
  "Programming Language :: Python :: 3",
11
15
  "Programming Language :: Python :: 3 :: Only",
@@ -13,17 +17,15 @@ classifiers = [
13
17
  "Programming Language :: Python :: 3.10",
14
18
  "Programming Language :: Python :: 3.11",
15
19
  "Programming Language :: Python :: 3.12",
20
+ "Programming Language :: Python :: 3.13",
16
21
  "License :: OSI Approved :: MIT License",
17
22
  "Operating System :: OS Independent",
23
+ "Intended Audience :: Science/Research",
24
+ "Topic :: Scientific/Engineering :: Artificial Intelligence",
25
+ "Topic :: Scientific/Engineering :: Information Analysis"
18
26
  ]
19
27
  dependencies = ["networkx>=2.6"]
20
28
 
21
- [project.scripts]
22
- tnfr = "tnfr.__main__:main"
23
-
24
- [tool.setuptools]
25
- package-dir = {"" = "src"}
26
-
27
- [tool.setuptools.packages.find]
28
- where = ["src"]
29
- include = ["tnfr*"]
29
+ [project.urls]
30
+ Homepage = "https://pypi.org/project/tnfr/"
31
+ Repository = "https://github.com/fermga/Teoria-de-la-naturaleza-fractal-resonante-TNFR-"
@@ -0,0 +1,58 @@
1
+ from __future__ import annotations
2
+ """
3
+ TNFR — Teoría de la Naturaleza Fractal Resonante
4
+ API pública del paquete.
5
+
6
+ Principio operativo (ecuación nodal):
7
+ ∂EPI/∂t = νf · ΔNFR(t)
8
+
9
+ Re-exporta:
10
+ - preparar_red
11
+ - step, run, set_delta_nfr_hook
12
+ - attach_standard_observer, coherencia_global, orden_kuramoto
13
+ """
14
+
15
+ __version__ = "3.0.1"
16
+
17
+ # -------------------------------------------------------------------
18
+ # 1) Registrar alias ANTES de importar submódulos que usan imports
19
+ # absolutos (p.ej. `from constants import DEFAULTS`)
20
+ # -------------------------------------------------------------------
21
+ import sys as _sys
22
+
23
+ from . import constants as _constants
24
+ from . import helpers as _helpers
25
+ from . import operators as _operators
26
+ from . import observers as _observers
27
+
28
+ _sys.modules.setdefault("constants", _constants)
29
+ _sys.modules.setdefault("helpers", _helpers)
30
+ _sys.modules.setdefault("operators", _operators)
31
+ _sys.modules.setdefault("observers", _observers)
32
+
33
+ # -------------------------------------------------------------------
34
+ # 2) Ahora sí: importar módulos que dependen de esos alias
35
+ # -------------------------------------------------------------------
36
+ from .dynamics import step, run, set_delta_nfr_hook
37
+ from .ontosim import preparar_red
38
+ from .observers import attach_standard_observer, coherencia_global, orden_kuramoto
39
+
40
+ # (opcional) exponer también alias para `dynamics` y `ontosim`
41
+ # si algún código externo hace `from dynamics import run`, etc.
42
+ import types as _types
43
+ import importlib as _importlib
44
+
45
+ _dynamics_mod = _importlib.import_module(__name__ + ".dynamics")
46
+ _ontosim_mod = _importlib.import_module(__name__ + ".ontosim")
47
+ _sys.modules.setdefault("dynamics", _dynamics_mod)
48
+ _sys.modules.setdefault("ontosim", _ontosim_mod)
49
+
50
+ # -------------------------------------------------------------------
51
+ # 3) API pública
52
+ # -------------------------------------------------------------------
53
+ __all__ = [
54
+ "preparar_red",
55
+ "step", "run", "set_delta_nfr_hook",
56
+ "attach_standard_observer", "coherencia_global", "orden_kuramoto",
57
+ "__version__",
58
+ ]
@@ -1,47 +1,37 @@
1
1
  from __future__ import annotations
2
- import argparse
3
- import sys
2
+ import argparse, sys
4
3
  import networkx as nx
5
-
6
- from . import preparar_red, run, attach_standard_observer, __version__
4
+ from . import preparar_red, run, __version__
7
5
 
8
6
  def main(argv: list[str] | None = None) -> None:
9
7
  p = argparse.ArgumentParser(
10
8
  prog="tnfr",
11
- description="TNFR canónica — demo CLI (orquesta step/run sobre una red aleatoria)",
9
+ description="TNFR canónica — demo CLI (red Erdős–Rényi + dinámica glífica)",
12
10
  )
13
11
  p.add_argument("--version", action="store_true", help="muestra versión y sale")
14
12
  p.add_argument("--n", type=int, default=30, help="nodos (Erdős–Rényi)")
15
13
  p.add_argument("--p", type=float, default=0.15, help="probabilidad de arista (Erdős–Rényi)")
16
14
  p.add_argument("--steps", type=int, default=100, help="pasos a simular")
17
15
  p.add_argument("--observer", action="store_true", help="adjunta observador estándar")
18
-
19
-
20
16
  args = p.parse_args(argv)
17
+
21
18
  if args.version:
22
19
  print(__version__)
23
20
  return
24
21
 
25
-
26
22
  G = nx.erdos_renyi_graph(args.n, args.p)
27
- G.graph["ATTACH_STD_OBSERVER"] = bool(args.observer)
28
-
29
-
30
- preparar_red(G)
23
+ preparar_red(G, ATTACH_STD_OBSERVER=bool(args.observer))
31
24
  run(G, args.steps)
32
25
 
33
-
34
- # resumen rápido al final
35
26
  h = G.graph.get("history", {})
36
27
  C = h.get("C_steps", [])[-1] if h.get("C_steps") else None
37
28
  stab = h.get("stable_frac", [])[-1] if h.get("stable_frac") else None
38
29
  R = h.get("kuramoto_R", [])[-1] if h.get("kuramoto_R") else None
39
30
 
40
-
41
31
  print("TNFR terminado:")
42
32
  if C is not None: print(f" C(t) ~ {C:.3f}")
43
33
  if stab is not None: print(f" estable ~ {stab:.3f}")
44
34
  if R is not None: print(f" R (Kuramoto) ~ {R:.3f}")
45
35
 
46
36
  if __name__ == "__main__":
47
- main(sys.argv[1:])
37
+ main(sys.argv[1:])
@@ -1,17 +1,24 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: tnfr
3
- Version: 2.0.1
3
+ Version: 3.0.1
4
4
  Summary: TNFR canónica: dinámica glífica modular sobre redes.
5
5
  Author: Fer
6
6
  License: MIT
7
+ Project-URL: Homepage, https://pypi.org/project/tnfr/
8
+ Project-URL: Repository, https://github.com/fermga/Teoria-de-la-naturaleza-fractal-resonante-TNFR-
9
+ Keywords: TNFR,fractal resonante,resonancia,glifos,networkx,dinámica,coherencia,EPI,Kuramoto
7
10
  Classifier: Programming Language :: Python :: 3
8
11
  Classifier: Programming Language :: Python :: 3 :: Only
9
12
  Classifier: Programming Language :: Python :: 3.9
10
13
  Classifier: Programming Language :: Python :: 3.10
11
14
  Classifier: Programming Language :: Python :: 3.11
12
15
  Classifier: Programming Language :: Python :: 3.12
16
+ Classifier: Programming Language :: Python :: 3.13
13
17
  Classifier: License :: OSI Approved :: MIT License
14
18
  Classifier: Operating System :: OS Independent
19
+ Classifier: Intended Audience :: Science/Research
20
+ Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
21
+ Classifier: Topic :: Scientific/Engineering :: Information Analysis
15
22
  Requires-Python: >=3.9
16
23
  Description-Content-Type: text/markdown
17
24
  License-File: LICENSE.txt
@@ -12,6 +12,5 @@ src/tnfr/operators.py
12
12
  src/tnfr.egg-info/PKG-INFO
13
13
  src/tnfr.egg-info/SOURCES.txt
14
14
  src/tnfr.egg-info/dependency_links.txt
15
- src/tnfr.egg-info/entry_points.txt
16
15
  src/tnfr.egg-info/requires.txt
17
16
  src/tnfr.egg-info/top_level.txt
File without changes
@@ -1,2 +0,0 @@
1
- [console_scripts]
2
- tnfr = tnfr.__main__:main
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes