evolib 0.2.0b2.dev4__tar.gz → 0.2.0b2.dev6__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 (470) hide show
  1. {evolib-0.2.0b2.dev4/evolib.egg-info → evolib-0.2.0b2.dev6}/PKG-INFO +1 -1
  2. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/api.py +4 -0
  3. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/config/schema.py +30 -0
  4. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/core/individual.py +5 -4
  5. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/core/population.py +30 -12
  6. evolib-0.2.0b2.dev6/evolib/initializers/evonet_initializers.py +193 -0
  7. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/initializers/registry.py +9 -1
  8. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/io/checkpoint.py +9 -1
  9. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/operators/crossover.py +13 -20
  10. evolib-0.2.0b2.dev6/evolib/representation/dummy.py +31 -0
  11. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/representation/evonet.py +0 -42
  12. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/utils/benchmarks.py +196 -0
  13. evolib-0.2.0b2.dev6/evolib/utils/parallel.py +96 -0
  14. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/utils/plotting.py +3 -0
  15. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6/evolib.egg-info}/PKG-INFO +1 -1
  16. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib.egg-info/SOURCES.txt +10 -2
  17. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/examples/02_strategies/01_step_by_step_evolution.py +5 -5
  18. evolib-0.2.0b2.dev6/examples/07_evonet/00_identity_test.py +63 -0
  19. evolib-0.2.0b2.dev6/examples/07_evonet/04_recurrent_bit_prediction.py +107 -0
  20. evolib-0.2.0b2.dev6/examples/07_evonet/05_recurrent_timeseries.py +176 -0
  21. evolib-0.2.0b2.dev6/examples/07_evonet/06_recurrent_indicator.py +198 -0
  22. evolib-0.2.0b2.dev6/examples/07_evonet/06_recurrent_indicator_01.py +181 -0
  23. evolib-0.2.0b2.dev6/examples/07_evonet/06_recurrent_indicator_02.py +198 -0
  24. evolib-0.2.0b2.dev6/examples/07_evonet/06_recurrent_trading.py +241 -0
  25. evolib-0.2.0b2.dev6/examples/07_evonet/07_recurrent_trading_01.py +232 -0
  26. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/pyproject.toml +1 -1
  27. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/tests/test_evonet_vector_io.py +5 -5
  28. evolib-0.2.0b2.dev4/evolib/initializers/evonet_initializers.py +0 -27
  29. evolib-0.2.0b2.dev4/examples/07_evonet/04_recurrent_bitseq.py +0 -144
  30. evolib-0.2.0b2.dev4/examples/07_evonet/resize_all_images.py +0 -28
  31. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/LICENSE +0 -0
  32. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/MANIFEST.in +0 -0
  33. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/README.md +0 -0
  34. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/docs/api_core_individual.rst +0 -0
  35. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/docs/api_core_population.rst +0 -0
  36. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/docs/api_operators_crossover.rst +0 -0
  37. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/docs/api_operators_evonet_structural_mutation.rst +0 -0
  38. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/docs/api_operators_mutation.rst +0 -0
  39. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/docs/api_operators_replacement.rst +0 -0
  40. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/docs/api_operators_reproduction.rst +0 -0
  41. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/docs/api_operators_selection.rst +0 -0
  42. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/docs/api_operators_strategy.rst +0 -0
  43. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/docs/api_public_api.rst +0 -0
  44. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/docs/api_representation_evonet.rst +0 -0
  45. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/docs/api_representation_netvector.rst +0 -0
  46. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/docs/api_representation_vector.rst +0 -0
  47. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/docs/api_utils_benchmarks.rst +0 -0
  48. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/docs/api_utils_history_logger.rst +0 -0
  49. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/docs/api_utils_loss_functions.rst +0 -0
  50. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/docs/api_utils_plotting.rst +0 -0
  51. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/docs/conf.py +0 -0
  52. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/docs/config_guide.md +0 -0
  53. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/docs/config_parameter.md +0 -0
  54. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/docs/getting_started.md +0 -0
  55. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/docs/index.md +0 -0
  56. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/.mypy_cache/3.12/PIL/__init__.py +0 -0
  57. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/.mypy_cache/3.12/__init__.py +0 -0
  58. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/.mypy_cache/3.12/_typeshed/__init__.py +0 -0
  59. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/.mypy_cache/3.12/annotated_types/__init__.py +0 -0
  60. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/.mypy_cache/3.12/asyncio/__init__.py +0 -0
  61. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/.mypy_cache/3.12/collections/__init__.py +0 -0
  62. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/.mypy_cache/3.12/concurrent/__init__.py +0 -0
  63. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/.mypy_cache/3.12/concurrent/futures/__init__.py +0 -0
  64. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/.mypy_cache/3.12/ctypes/__init__.py +0 -0
  65. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/.mypy_cache/3.12/cycler/__init__.py +0 -0
  66. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/.mypy_cache/3.12/email/__init__.py +0 -0
  67. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/.mypy_cache/3.12/evolib/__init__.py +0 -0
  68. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/.mypy_cache/3.12/evolib/config/__init__.py +0 -0
  69. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/.mypy_cache/3.12/evolib/core/__init__.py +0 -0
  70. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/.mypy_cache/3.12/evolib/globals/__init__.py +0 -0
  71. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/.mypy_cache/3.12/evolib/initializers/__init__.py +0 -0
  72. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/.mypy_cache/3.12/evolib/interfaces/__init__.py +0 -0
  73. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/.mypy_cache/3.12/evolib/operators/__init__.py +0 -0
  74. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/.mypy_cache/3.12/evolib/registry/__init__.py +0 -0
  75. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/.mypy_cache/3.12/evolib/representation/__init__.py +0 -0
  76. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/.mypy_cache/3.12/evolib/utils/__init__.py +0 -0
  77. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/.mypy_cache/3.12/html/__init__.py +0 -0
  78. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/.mypy_cache/3.12/importlib/__init__.py +0 -0
  79. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/.mypy_cache/3.12/importlib/metadata/__init__.py +0 -0
  80. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/.mypy_cache/3.12/importlib/resources/__init__.py +0 -0
  81. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/.mypy_cache/3.12/jinja2/__init__.py +0 -0
  82. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/.mypy_cache/3.12/json/__init__.py +0 -0
  83. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/.mypy_cache/3.12/logging/__init__.py +0 -0
  84. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/.mypy_cache/3.12/markdown_it/__init__.py +0 -0
  85. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/.mypy_cache/3.12/markdown_it/common/__init__.py +0 -0
  86. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/.mypy_cache/3.12/markdown_it/helpers/__init__.py +0 -0
  87. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/.mypy_cache/3.12/markdown_it/presets/__init__.py +0 -0
  88. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/.mypy_cache/3.12/markdown_it/rules_block/__init__.py +0 -0
  89. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/.mypy_cache/3.12/markdown_it/rules_core/__init__.py +0 -0
  90. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/.mypy_cache/3.12/markdown_it/rules_inline/__init__.py +0 -0
  91. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/.mypy_cache/3.12/markupsafe/__init__.py +0 -0
  92. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/.mypy_cache/3.12/matplotlib/__init__.py +0 -0
  93. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/.mypy_cache/3.12/matplotlib/_api/__init__.py +0 -0
  94. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/.mypy_cache/3.12/matplotlib/axes/__init__.py +0 -0
  95. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/.mypy_cache/3.12/matplotlib/backends/__init__.py +0 -0
  96. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/.mypy_cache/3.12/matplotlib/projections/__init__.py +0 -0
  97. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/.mypy_cache/3.12/matplotlib/style/__init__.py +0 -0
  98. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/.mypy_cache/3.12/matplotlib/tri/__init__.py +0 -0
  99. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/.mypy_cache/3.12/mdurl/__init__.py +0 -0
  100. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/.mypy_cache/3.12/multiprocessing/__init__.py +0 -0
  101. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/.mypy_cache/3.12/numpy/__init__.py +0 -0
  102. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/.mypy_cache/3.12/numpy/_core/__init__.py +0 -0
  103. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/.mypy_cache/3.12/numpy/_typing/__init__.py +0 -0
  104. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/.mypy_cache/3.12/numpy/_utils/__init__.py +0 -0
  105. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/.mypy_cache/3.12/numpy/char/__init__.py +0 -0
  106. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/.mypy_cache/3.12/numpy/core/__init__.py +0 -0
  107. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/.mypy_cache/3.12/numpy/f2py/__init__.py +0 -0
  108. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/.mypy_cache/3.12/numpy/fft/__init__.py +0 -0
  109. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/.mypy_cache/3.12/numpy/lib/__init__.py +0 -0
  110. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/.mypy_cache/3.12/numpy/linalg/__init__.py +0 -0
  111. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/.mypy_cache/3.12/numpy/ma/__init__.py +0 -0
  112. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/.mypy_cache/3.12/numpy/matrixlib/__init__.py +0 -0
  113. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/.mypy_cache/3.12/numpy/polynomial/__init__.py +0 -0
  114. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/.mypy_cache/3.12/numpy/random/__init__.py +0 -0
  115. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/.mypy_cache/3.12/numpy/rec/__init__.py +0 -0
  116. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/.mypy_cache/3.12/numpy/strings/__init__.py +0 -0
  117. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/.mypy_cache/3.12/numpy/testing/__init__.py +0 -0
  118. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/.mypy_cache/3.12/numpy/testing/_private/__init__.py +0 -0
  119. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/.mypy_cache/3.12/numpy/typing/__init__.py +0 -0
  120. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/.mypy_cache/3.12/os/__init__.py +0 -0
  121. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/.mypy_cache/3.12/packaging/__init__.py +0 -0
  122. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/.mypy_cache/3.12/pydantic/__init__.py +0 -0
  123. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/.mypy_cache/3.12/pydantic/_internal/__init__.py +0 -0
  124. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/.mypy_cache/3.12/pydantic/deprecated/__init__.py +0 -0
  125. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/.mypy_cache/3.12/pydantic/plugin/__init__.py +0 -0
  126. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/.mypy_cache/3.12/pydantic/v1/__init__.py +0 -0
  127. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/.mypy_cache/3.12/pydantic_core/__init__.py +0 -0
  128. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/.mypy_cache/3.12/pyexpat/__init__.py +0 -0
  129. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/.mypy_cache/3.12/pyparsing/__init__.py +0 -0
  130. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/.mypy_cache/3.12/pyparsing/diagram/__init__.py +0 -0
  131. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/.mypy_cache/3.12/rich/__init__.py +0 -0
  132. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/.mypy_cache/3.12/sys/__init__.py +0 -0
  133. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/.mypy_cache/3.12/typing_inspection/__init__.py +0 -0
  134. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/.mypy_cache/3.12/unittest/__init__.py +0 -0
  135. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/.mypy_cache/3.12/urllib/__init__.py +0 -0
  136. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/.mypy_cache/3.12/xml/__init__.py +0 -0
  137. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/.mypy_cache/3.12/xml/etree/__init__.py +0 -0
  138. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/.mypy_cache/3.12/xml/parsers/__init__.py +0 -0
  139. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/.mypy_cache/3.12/xml/parsers/expat/__init__.py +0 -0
  140. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/.mypy_cache/3.12/yaml/__init__.py +0 -0
  141. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/.mypy_cache/3.12/zipfile/__init__.py +0 -0
  142. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/.mypy_cache/3.12/zipfile/_path/__init__.py +0 -0
  143. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/.mypy_cache/3.12/zoneinfo/__init__.py +0 -0
  144. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/.mypy_cache/__init__.py +0 -0
  145. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/__init__.py +0 -0
  146. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/__pycache__/__init__.py +0 -0
  147. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/config/__init__.py +0 -0
  148. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/config/__pycache__/__init__.py +0 -0
  149. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/config/base_component_config.py +0 -0
  150. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/config/component_registry.py +0 -0
  151. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/config/evonet_component_config.py +0 -0
  152. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/config/vector_component_config.py +0 -0
  153. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/core/.mypy_cache/3.12/PIL/__init__.py +0 -0
  154. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/core/.mypy_cache/3.12/__init__.py +0 -0
  155. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/core/.mypy_cache/3.12/_typeshed/__init__.py +0 -0
  156. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/core/.mypy_cache/3.12/asyncio/__init__.py +0 -0
  157. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/core/.mypy_cache/3.12/collections/__init__.py +0 -0
  158. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/core/.mypy_cache/3.12/concurrent/__init__.py +0 -0
  159. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/core/.mypy_cache/3.12/concurrent/futures/__init__.py +0 -0
  160. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/core/.mypy_cache/3.12/ctypes/__init__.py +0 -0
  161. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/core/.mypy_cache/3.12/cycler/__init__.py +0 -0
  162. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/core/.mypy_cache/3.12/email/__init__.py +0 -0
  163. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/core/.mypy_cache/3.12/evolib/__init__.py +0 -0
  164. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/core/.mypy_cache/3.12/evolib/core/__init__.py +0 -0
  165. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/core/.mypy_cache/3.12/evolib/globals/__init__.py +0 -0
  166. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/core/.mypy_cache/3.12/evolib/interfaces/__init__.py +0 -0
  167. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/core/.mypy_cache/3.12/evolib/operators/__init__.py +0 -0
  168. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/core/.mypy_cache/3.12/evolib/utils/__init__.py +0 -0
  169. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/core/.mypy_cache/3.12/html/__init__.py +0 -0
  170. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/core/.mypy_cache/3.12/importlib/__init__.py +0 -0
  171. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/core/.mypy_cache/3.12/importlib/metadata/__init__.py +0 -0
  172. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/core/.mypy_cache/3.12/importlib/resources/__init__.py +0 -0
  173. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/core/.mypy_cache/3.12/jinja2/__init__.py +0 -0
  174. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/core/.mypy_cache/3.12/json/__init__.py +0 -0
  175. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/core/.mypy_cache/3.12/logging/__init__.py +0 -0
  176. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/core/.mypy_cache/3.12/markupsafe/__init__.py +0 -0
  177. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/core/.mypy_cache/3.12/matplotlib/__init__.py +0 -0
  178. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/core/.mypy_cache/3.12/matplotlib/_api/__init__.py +0 -0
  179. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/core/.mypy_cache/3.12/matplotlib/axes/__init__.py +0 -0
  180. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/core/.mypy_cache/3.12/matplotlib/backends/__init__.py +0 -0
  181. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/core/.mypy_cache/3.12/matplotlib/projections/__init__.py +0 -0
  182. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/core/.mypy_cache/3.12/matplotlib/style/__init__.py +0 -0
  183. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/core/.mypy_cache/3.12/matplotlib/tri/__init__.py +0 -0
  184. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/core/.mypy_cache/3.12/multiprocessing/__init__.py +0 -0
  185. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/core/.mypy_cache/3.12/numpy/__init__.py +0 -0
  186. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/core/.mypy_cache/3.12/numpy/_core/__init__.py +0 -0
  187. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/core/.mypy_cache/3.12/numpy/_typing/__init__.py +0 -0
  188. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/core/.mypy_cache/3.12/numpy/_utils/__init__.py +0 -0
  189. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/core/.mypy_cache/3.12/numpy/char/__init__.py +0 -0
  190. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/core/.mypy_cache/3.12/numpy/core/__init__.py +0 -0
  191. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/core/.mypy_cache/3.12/numpy/f2py/__init__.py +0 -0
  192. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/core/.mypy_cache/3.12/numpy/fft/__init__.py +0 -0
  193. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/core/.mypy_cache/3.12/numpy/lib/__init__.py +0 -0
  194. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/core/.mypy_cache/3.12/numpy/linalg/__init__.py +0 -0
  195. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/core/.mypy_cache/3.12/numpy/ma/__init__.py +0 -0
  196. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/core/.mypy_cache/3.12/numpy/matrixlib/__init__.py +0 -0
  197. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/core/.mypy_cache/3.12/numpy/polynomial/__init__.py +0 -0
  198. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/core/.mypy_cache/3.12/numpy/random/__init__.py +0 -0
  199. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/core/.mypy_cache/3.12/numpy/rec/__init__.py +0 -0
  200. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/core/.mypy_cache/3.12/numpy/strings/__init__.py +0 -0
  201. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/core/.mypy_cache/3.12/numpy/testing/__init__.py +0 -0
  202. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/core/.mypy_cache/3.12/numpy/testing/_private/__init__.py +0 -0
  203. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/core/.mypy_cache/3.12/numpy/typing/__init__.py +0 -0
  204. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/core/.mypy_cache/3.12/os/__init__.py +0 -0
  205. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/core/.mypy_cache/3.12/packaging/__init__.py +0 -0
  206. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/core/.mypy_cache/3.12/pyexpat/__init__.py +0 -0
  207. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/core/.mypy_cache/3.12/pyparsing/__init__.py +0 -0
  208. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/core/.mypy_cache/3.12/pyparsing/diagram/__init__.py +0 -0
  209. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/core/.mypy_cache/3.12/sys/__init__.py +0 -0
  210. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/core/.mypy_cache/3.12/unittest/__init__.py +0 -0
  211. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/core/.mypy_cache/3.12/urllib/__init__.py +0 -0
  212. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/core/.mypy_cache/3.12/xml/__init__.py +0 -0
  213. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/core/.mypy_cache/3.12/xml/etree/__init__.py +0 -0
  214. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/core/.mypy_cache/3.12/xml/parsers/__init__.py +0 -0
  215. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/core/.mypy_cache/3.12/xml/parsers/expat/__init__.py +0 -0
  216. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/core/.mypy_cache/3.12/yaml/__init__.py +0 -0
  217. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/core/.mypy_cache/3.12/zipfile/__init__.py +0 -0
  218. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/core/.mypy_cache/3.12/zipfile/_path/__init__.py +0 -0
  219. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/core/.mypy_cache/__init__.py +0 -0
  220. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/core/README.md +0 -0
  221. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/core/__init__.py +0 -0
  222. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/core/__pycache__/__init__.py +0 -0
  223. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/globals/README.md +0 -0
  224. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/globals/__init__.py +0 -0
  225. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/globals/__pycache__/__init__.py +0 -0
  226. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/globals/numeric.py +0 -0
  227. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/initializers/.mypy_cache/3.12/PIL/__init__.py +0 -0
  228. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/initializers/.mypy_cache/3.12/__init__.py +0 -0
  229. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/initializers/.mypy_cache/3.12/_typeshed/__init__.py +0 -0
  230. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/initializers/.mypy_cache/3.12/asyncio/__init__.py +0 -0
  231. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/initializers/.mypy_cache/3.12/collections/__init__.py +0 -0
  232. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/initializers/.mypy_cache/3.12/concurrent/__init__.py +0 -0
  233. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/initializers/.mypy_cache/3.12/concurrent/futures/__init__.py +0 -0
  234. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/initializers/.mypy_cache/3.12/ctypes/__init__.py +0 -0
  235. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/initializers/.mypy_cache/3.12/cycler/__init__.py +0 -0
  236. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/initializers/.mypy_cache/3.12/email/__init__.py +0 -0
  237. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/initializers/.mypy_cache/3.12/evolib/__init__.py +0 -0
  238. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/initializers/.mypy_cache/3.12/evolib/core/__init__.py +0 -0
  239. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/initializers/.mypy_cache/3.12/evolib/globals/__init__.py +0 -0
  240. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/initializers/.mypy_cache/3.12/evolib/initializers/__init__.py +0 -0
  241. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/initializers/.mypy_cache/3.12/evolib/interfaces/__init__.py +0 -0
  242. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/initializers/.mypy_cache/3.12/evolib/operators/__init__.py +0 -0
  243. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/initializers/.mypy_cache/3.12/evolib/utils/__init__.py +0 -0
  244. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/initializers/.mypy_cache/3.12/html/__init__.py +0 -0
  245. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/initializers/.mypy_cache/3.12/importlib/__init__.py +0 -0
  246. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/initializers/.mypy_cache/3.12/importlib/metadata/__init__.py +0 -0
  247. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/initializers/.mypy_cache/3.12/importlib/resources/__init__.py +0 -0
  248. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/initializers/.mypy_cache/3.12/jinja2/__init__.py +0 -0
  249. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/initializers/.mypy_cache/3.12/json/__init__.py +0 -0
  250. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/initializers/.mypy_cache/3.12/logging/__init__.py +0 -0
  251. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/initializers/.mypy_cache/3.12/markupsafe/__init__.py +0 -0
  252. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/initializers/.mypy_cache/3.12/matplotlib/__init__.py +0 -0
  253. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/initializers/.mypy_cache/3.12/matplotlib/_api/__init__.py +0 -0
  254. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/initializers/.mypy_cache/3.12/matplotlib/axes/__init__.py +0 -0
  255. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/initializers/.mypy_cache/3.12/matplotlib/backends/__init__.py +0 -0
  256. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/initializers/.mypy_cache/3.12/matplotlib/projections/__init__.py +0 -0
  257. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/initializers/.mypy_cache/3.12/matplotlib/style/__init__.py +0 -0
  258. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/initializers/.mypy_cache/3.12/matplotlib/tri/__init__.py +0 -0
  259. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/initializers/.mypy_cache/3.12/multiprocessing/__init__.py +0 -0
  260. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/initializers/.mypy_cache/3.12/numpy/__init__.py +0 -0
  261. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/initializers/.mypy_cache/3.12/numpy/_core/__init__.py +0 -0
  262. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/initializers/.mypy_cache/3.12/numpy/_typing/__init__.py +0 -0
  263. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/initializers/.mypy_cache/3.12/numpy/_utils/__init__.py +0 -0
  264. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/initializers/.mypy_cache/3.12/numpy/char/__init__.py +0 -0
  265. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/initializers/.mypy_cache/3.12/numpy/core/__init__.py +0 -0
  266. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/initializers/.mypy_cache/3.12/numpy/f2py/__init__.py +0 -0
  267. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/initializers/.mypy_cache/3.12/numpy/fft/__init__.py +0 -0
  268. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/initializers/.mypy_cache/3.12/numpy/lib/__init__.py +0 -0
  269. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/initializers/.mypy_cache/3.12/numpy/linalg/__init__.py +0 -0
  270. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/initializers/.mypy_cache/3.12/numpy/ma/__init__.py +0 -0
  271. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/initializers/.mypy_cache/3.12/numpy/matrixlib/__init__.py +0 -0
  272. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/initializers/.mypy_cache/3.12/numpy/polynomial/__init__.py +0 -0
  273. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/initializers/.mypy_cache/3.12/numpy/random/__init__.py +0 -0
  274. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/initializers/.mypy_cache/3.12/numpy/rec/__init__.py +0 -0
  275. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/initializers/.mypy_cache/3.12/numpy/strings/__init__.py +0 -0
  276. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/initializers/.mypy_cache/3.12/numpy/testing/__init__.py +0 -0
  277. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/initializers/.mypy_cache/3.12/numpy/testing/_private/__init__.py +0 -0
  278. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/initializers/.mypy_cache/3.12/numpy/typing/__init__.py +0 -0
  279. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/initializers/.mypy_cache/3.12/os/__init__.py +0 -0
  280. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/initializers/.mypy_cache/3.12/packaging/__init__.py +0 -0
  281. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/initializers/.mypy_cache/3.12/pyexpat/__init__.py +0 -0
  282. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/initializers/.mypy_cache/3.12/pyparsing/__init__.py +0 -0
  283. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/initializers/.mypy_cache/3.12/pyparsing/diagram/__init__.py +0 -0
  284. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/initializers/.mypy_cache/3.12/sys/__init__.py +0 -0
  285. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/initializers/.mypy_cache/3.12/unittest/__init__.py +0 -0
  286. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/initializers/.mypy_cache/3.12/urllib/__init__.py +0 -0
  287. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/initializers/.mypy_cache/3.12/xml/__init__.py +0 -0
  288. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/initializers/.mypy_cache/3.12/xml/etree/__init__.py +0 -0
  289. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/initializers/.mypy_cache/3.12/xml/parsers/__init__.py +0 -0
  290. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/initializers/.mypy_cache/3.12/xml/parsers/expat/__init__.py +0 -0
  291. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/initializers/.mypy_cache/3.12/yaml/__init__.py +0 -0
  292. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/initializers/.mypy_cache/3.12/zipfile/__init__.py +0 -0
  293. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/initializers/.mypy_cache/3.12/zipfile/_path/__init__.py +0 -0
  294. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/initializers/.mypy_cache/__init__.py +0 -0
  295. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/initializers/__init__.py +0 -0
  296. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/initializers/__pycache__/__init__.py +0 -0
  297. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/initializers/net_initializers.py +0 -0
  298. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/initializers/vector_initializers.py +0 -0
  299. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/interfaces/__init__.py +0 -0
  300. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/interfaces/__pycache__/__init__.py +0 -0
  301. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/interfaces/enum_helpers.py +0 -0
  302. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/interfaces/enums.py +0 -0
  303. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/interfaces/structs.py +0 -0
  304. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/interfaces/types.py +0 -0
  305. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/io/serialization.py +0 -0
  306. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/operators/README.md +0 -0
  307. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/operators/__init__.py +0 -0
  308. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/operators/__pycache__/__init__.py +0 -0
  309. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/operators/evonet_structural_mutation.py +0 -0
  310. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/operators/mutation.py +0 -0
  311. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/operators/replacement.py +0 -0
  312. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/operators/reproduction.py +0 -0
  313. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/operators/selection.py +0 -0
  314. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/operators/strategy.py +0 -0
  315. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/registry/__init__.py +0 -0
  316. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/registry/__pycache__/__init__.py +0 -0
  317. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/registry/replacement_registry.py +0 -0
  318. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/registry/selection_registry.py +0 -0
  319. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/registry/strategy_registry.py +0 -0
  320. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/representation/.mypy_cache/3.12/PIL/__init__.py +0 -0
  321. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/representation/.mypy_cache/3.12/__init__.py +0 -0
  322. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/representation/.mypy_cache/3.12/_typeshed/__init__.py +0 -0
  323. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/representation/.mypy_cache/3.12/annotated_types/__init__.py +0 -0
  324. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/representation/.mypy_cache/3.12/asyncio/__init__.py +0 -0
  325. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/representation/.mypy_cache/3.12/collections/__init__.py +0 -0
  326. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/representation/.mypy_cache/3.12/concurrent/__init__.py +0 -0
  327. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/representation/.mypy_cache/3.12/concurrent/futures/__init__.py +0 -0
  328. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/representation/.mypy_cache/3.12/ctypes/__init__.py +0 -0
  329. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/representation/.mypy_cache/3.12/cycler/__init__.py +0 -0
  330. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/representation/.mypy_cache/3.12/email/__init__.py +0 -0
  331. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/representation/.mypy_cache/3.12/evolib/__init__.py +0 -0
  332. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/representation/.mypy_cache/3.12/evolib/config/__init__.py +0 -0
  333. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/representation/.mypy_cache/3.12/evolib/core/__init__.py +0 -0
  334. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/representation/.mypy_cache/3.12/evolib/globals/__init__.py +0 -0
  335. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/representation/.mypy_cache/3.12/evolib/initializers/__init__.py +0 -0
  336. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/representation/.mypy_cache/3.12/evolib/interfaces/__init__.py +0 -0
  337. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/representation/.mypy_cache/3.12/evolib/operators/__init__.py +0 -0
  338. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/representation/.mypy_cache/3.12/evolib/registry/__init__.py +0 -0
  339. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/representation/.mypy_cache/3.12/evolib/representation/__init__.py +0 -0
  340. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/representation/.mypy_cache/3.12/evolib/utils/__init__.py +0 -0
  341. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/representation/.mypy_cache/3.12/html/__init__.py +0 -0
  342. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/representation/.mypy_cache/3.12/importlib/__init__.py +0 -0
  343. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/representation/.mypy_cache/3.12/importlib/metadata/__init__.py +0 -0
  344. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/representation/.mypy_cache/3.12/importlib/resources/__init__.py +0 -0
  345. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/representation/.mypy_cache/3.12/jinja2/__init__.py +0 -0
  346. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/representation/.mypy_cache/3.12/json/__init__.py +0 -0
  347. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/representation/.mypy_cache/3.12/logging/__init__.py +0 -0
  348. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/representation/.mypy_cache/3.12/markdown_it/__init__.py +0 -0
  349. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/representation/.mypy_cache/3.12/markdown_it/common/__init__.py +0 -0
  350. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/representation/.mypy_cache/3.12/markdown_it/helpers/__init__.py +0 -0
  351. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/representation/.mypy_cache/3.12/markdown_it/presets/__init__.py +0 -0
  352. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/representation/.mypy_cache/3.12/markdown_it/rules_block/__init__.py +0 -0
  353. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/representation/.mypy_cache/3.12/markdown_it/rules_core/__init__.py +0 -0
  354. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/representation/.mypy_cache/3.12/markdown_it/rules_inline/__init__.py +0 -0
  355. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/representation/.mypy_cache/3.12/markupsafe/__init__.py +0 -0
  356. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/representation/.mypy_cache/3.12/matplotlib/__init__.py +0 -0
  357. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/representation/.mypy_cache/3.12/matplotlib/_api/__init__.py +0 -0
  358. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/representation/.mypy_cache/3.12/matplotlib/axes/__init__.py +0 -0
  359. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/representation/.mypy_cache/3.12/matplotlib/backends/__init__.py +0 -0
  360. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/representation/.mypy_cache/3.12/matplotlib/projections/__init__.py +0 -0
  361. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/representation/.mypy_cache/3.12/matplotlib/style/__init__.py +0 -0
  362. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/representation/.mypy_cache/3.12/matplotlib/tri/__init__.py +0 -0
  363. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/representation/.mypy_cache/3.12/mdurl/__init__.py +0 -0
  364. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/representation/.mypy_cache/3.12/multiprocessing/__init__.py +0 -0
  365. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/representation/.mypy_cache/3.12/numpy/__init__.py +0 -0
  366. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/representation/.mypy_cache/3.12/numpy/_core/__init__.py +0 -0
  367. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/representation/.mypy_cache/3.12/numpy/_typing/__init__.py +0 -0
  368. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/representation/.mypy_cache/3.12/numpy/_utils/__init__.py +0 -0
  369. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/representation/.mypy_cache/3.12/numpy/char/__init__.py +0 -0
  370. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/representation/.mypy_cache/3.12/numpy/core/__init__.py +0 -0
  371. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/representation/.mypy_cache/3.12/numpy/f2py/__init__.py +0 -0
  372. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/representation/.mypy_cache/3.12/numpy/fft/__init__.py +0 -0
  373. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/representation/.mypy_cache/3.12/numpy/lib/__init__.py +0 -0
  374. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/representation/.mypy_cache/3.12/numpy/linalg/__init__.py +0 -0
  375. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/representation/.mypy_cache/3.12/numpy/ma/__init__.py +0 -0
  376. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/representation/.mypy_cache/3.12/numpy/matrixlib/__init__.py +0 -0
  377. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/representation/.mypy_cache/3.12/numpy/polynomial/__init__.py +0 -0
  378. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/representation/.mypy_cache/3.12/numpy/random/__init__.py +0 -0
  379. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/representation/.mypy_cache/3.12/numpy/rec/__init__.py +0 -0
  380. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/representation/.mypy_cache/3.12/numpy/strings/__init__.py +0 -0
  381. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/representation/.mypy_cache/3.12/numpy/testing/__init__.py +0 -0
  382. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/representation/.mypy_cache/3.12/numpy/testing/_private/__init__.py +0 -0
  383. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/representation/.mypy_cache/3.12/numpy/typing/__init__.py +0 -0
  384. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/representation/.mypy_cache/3.12/os/__init__.py +0 -0
  385. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/representation/.mypy_cache/3.12/packaging/__init__.py +0 -0
  386. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/representation/.mypy_cache/3.12/pydantic/__init__.py +0 -0
  387. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/representation/.mypy_cache/3.12/pydantic/_internal/__init__.py +0 -0
  388. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/representation/.mypy_cache/3.12/pydantic/deprecated/__init__.py +0 -0
  389. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/representation/.mypy_cache/3.12/pydantic/plugin/__init__.py +0 -0
  390. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/representation/.mypy_cache/3.12/pydantic/v1/__init__.py +0 -0
  391. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/representation/.mypy_cache/3.12/pydantic_core/__init__.py +0 -0
  392. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/representation/.mypy_cache/3.12/pyexpat/__init__.py +0 -0
  393. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/representation/.mypy_cache/3.12/pyparsing/__init__.py +0 -0
  394. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/representation/.mypy_cache/3.12/pyparsing/diagram/__init__.py +0 -0
  395. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/representation/.mypy_cache/3.12/rich/__init__.py +0 -0
  396. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/representation/.mypy_cache/3.12/sys/__init__.py +0 -0
  397. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/representation/.mypy_cache/3.12/typing_inspection/__init__.py +0 -0
  398. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/representation/.mypy_cache/3.12/unittest/__init__.py +0 -0
  399. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/representation/.mypy_cache/3.12/urllib/__init__.py +0 -0
  400. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/representation/.mypy_cache/3.12/xml/__init__.py +0 -0
  401. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/representation/.mypy_cache/3.12/xml/etree/__init__.py +0 -0
  402. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/representation/.mypy_cache/3.12/xml/parsers/__init__.py +0 -0
  403. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/representation/.mypy_cache/3.12/xml/parsers/expat/__init__.py +0 -0
  404. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/representation/.mypy_cache/3.12/yaml/__init__.py +0 -0
  405. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/representation/.mypy_cache/3.12/zipfile/__init__.py +0 -0
  406. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/representation/.mypy_cache/3.12/zipfile/_path/__init__.py +0 -0
  407. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/representation/.mypy_cache/3.12/zoneinfo/__init__.py +0 -0
  408. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/representation/.mypy_cache/__init__.py +0 -0
  409. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/representation/__init__.py +0 -0
  410. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/representation/__pycache__/__init__.py +0 -0
  411. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/representation/_apply_config_mapping.py +0 -0
  412. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/representation/base.py +0 -0
  413. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/representation/composite.py +0 -0
  414. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/representation/evo_params.py +0 -0
  415. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/representation/netvector.py +0 -0
  416. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/representation/vector.py +0 -0
  417. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/utils/README.md +0 -0
  418. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/utils/__init__.py +0 -0
  419. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/utils/__pycache__/__init__.py +0 -0
  420. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/utils/config_loader.py +0 -0
  421. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/utils/fitness.py +0 -0
  422. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/utils/history_logger.py +0 -0
  423. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/utils/loss_functions.py +0 -0
  424. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/utils/random.py +0 -0
  425. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib/utils/registry.py +0 -0
  426. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib.egg-info/dependency_links.txt +0 -0
  427. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib.egg-info/requires.txt +0 -0
  428. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/evolib.egg-info/top_level.txt +0 -0
  429. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/examples/01_basic_usage/01_getting_started.py +0 -0
  430. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/examples/01_basic_usage/02_mutation.py +0 -0
  431. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/examples/01_basic_usage/03_population_mutation.py +0 -0
  432. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/examples/01_basic_usage/04_fitness.py +0 -0
  433. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/examples/02_strategies/02_mu_lambda_step.py +0 -0
  434. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/examples/02_strategies/03_mu_lambda.py +0 -0
  435. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/examples/02_strategies/04_flexible.py +0 -0
  436. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/examples/03_comparisons/01_history.py +0 -0
  437. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/examples/03_comparisons/02_plotting.py +0 -0
  438. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/examples/03_comparisons/03_compare_runs.py +0 -0
  439. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/examples/03_comparisons/04_exponential_decay_vs_static.py +0 -0
  440. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/examples/03_comparisons/05_adaptive_global_vs_static.py +0 -0
  441. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/examples/03_comparisons/06_adaptive_individual_vs_static.py +0 -0
  442. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/examples/03_comparisons/07_selection_comparison.py +0 -0
  443. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/examples/03_comparisons/08_selection_pressure.py +0 -0
  444. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/examples/03_comparisons/09_selection_vs_mutation_pressure.py +0 -0
  445. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/examples/03_comparisons/10_selection_stochastic_vs_deterministic.py +0 -0
  446. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/examples/03_comparisons/11_crossover_comparison.py +0 -0
  447. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/examples/04_function_approximation/01_polynomial_sine.py +0 -0
  448. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/examples/04_function_approximation/02_sine_point_approximation.py +0 -0
  449. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/examples/04_function_approximation/03_approximation_with_noise.py +0 -0
  450. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/examples/05_advanced_topics/01_fitness_landscape_exploration.py +0 -0
  451. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/examples/05_advanced_topics/02_rosenbrock_surface_path.py +0 -0
  452. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/examples/05_advanced_topics/03_vector_control.py +0 -0
  453. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/examples/05_advanced_topics/04_vector_control_with_obstacles.py +0 -0
  454. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/examples/05_advanced_topics/05_piecewise_linear_xsys.py +0 -0
  455. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/examples/05_advanced_topics/06_evolving_mutation_strength_as_a_module.py +0 -0
  456. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/examples/06_netvector/01_netvector_sine_approximation.py +0 -0
  457. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/examples/06_netvector/02_netvector_modulated_output.py +0 -0
  458. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/examples/06_netvector/03_netvector_gain_and_bias.py +0 -0
  459. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/examples/07_evonet/01_sine_approximation.py +0 -0
  460. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/examples/07_evonet/02_image_approximation.py +0 -0
  461. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/examples/07_evonet/03_structural_xor.py +0 -0
  462. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/setup.cfg +0 -0
  463. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/tests/test_benchmarks.py +0 -0
  464. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/tests/test_config_loader.py +0 -0
  465. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/tests/test_elitism_preserves_best_fitness.py +0 -0
  466. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/tests/test_initializer_evonet.py +0 -0
  467. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/tests/test_initializer_net.py +0 -0
  468. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/tests/test_mutation.py +0 -0
  469. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/tests/test_population.py +0 -0
  470. {evolib-0.2.0b2.dev4 → evolib-0.2.0b2.dev6}/tests/test_selection.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: evolib
3
- Version: 0.2.0b2.dev4
3
+ Version: 0.2.0b2.dev6
4
4
  Summary: A modular framework for evolutionary strategies and neuroevolution.
5
5
  Author-email: EvoLib <evolib@dismail.de>
6
6
  License: MIT License
@@ -15,9 +15,11 @@ from evolib.utils.benchmarks import (
15
15
  ackley,
16
16
  ackley_2d,
17
17
  ackley_3d,
18
+ generate_timeseries,
18
19
  griewank,
19
20
  griewank_2d,
20
21
  griewank_3d,
22
+ lfsr_sequence,
21
23
  rastrigin,
22
24
  rastrigin_2d,
23
25
  rastrigin_3d,
@@ -90,6 +92,8 @@ __all__ = [
90
92
  "sphere_3d",
91
93
  "rosenbrock_3d",
92
94
  "schwefel_3d",
95
+ "lfsr_sequence",
96
+ "generate_timeseries",
93
97
  "save_checkpoint",
94
98
  "resume_from_checkpoint",
95
99
  "save_best_indiv",
@@ -88,6 +88,30 @@ class StoppingCriteria(BaseModel):
88
88
  )
89
89
 
90
90
 
91
+ class ParallelConfig(BaseModel):
92
+ """
93
+ Optional parallelization backend.
94
+
95
+ Controls whether fitness evaluation is run sequentially or distributed
96
+ (currently only Ray is supported).
97
+ """
98
+
99
+ backend: str = Field(
100
+ default="none",
101
+ description="Parallel backend to use: 'none' (default) or 'ray'.",
102
+ )
103
+ num_cpus: Optional[int] = Field(
104
+ default=None,
105
+ description="Number of CPUs to allocate (Ray only). "
106
+ "If None, Ray chooses automatically.",
107
+ )
108
+ address: Optional[str] = Field(
109
+ default=None,
110
+ description="Ray cluster address (e.g. 'auto' or '127.0.0.1:6379'). "
111
+ "If None, starts a local Ray instance.",
112
+ )
113
+
114
+
91
115
  class FullConfig(BaseModel):
92
116
  """
93
117
  Main configuration model for an evolutionary run.
@@ -140,6 +164,12 @@ class FullConfig(BaseModel):
140
164
  replacement: ReplacementConfig | None = Field(
141
165
  default=None, description="Survivor selection (replacement) configuration."
142
166
  )
167
+
168
+ # Optional parallelization backend
169
+ parallel: Optional[ParallelConfig] = Field(
170
+ default=None,
171
+ description="Optional parallelization backend configuration."
172
+ )
143
173
 
144
174
  @model_validator(mode="before")
145
175
  @classmethod
@@ -24,13 +24,14 @@ from typing import Any, Dict, Optional
24
24
  from uuid import uuid4
25
25
 
26
26
  from evolib.interfaces.enums import Origin
27
+ from evolib.representation.dummy import ParaDummy
27
28
 
28
29
 
29
30
  class Indiv:
30
31
  """Represents an individual in an evolutionary optimization algorithm."""
31
32
 
32
- #: para (Any, optional): Parameter values of the individual. Default: None.
33
- para: Any | None
33
+ #: para (Any): Parameter values of the individual. Default: None.
34
+ para: Any
34
35
 
35
36
  #: fitness (float): Fitness value of the individual.
36
37
  #: None means the individual has not yet been evaluated.
@@ -73,9 +74,9 @@ class Indiv:
73
74
  "is_elite",
74
75
  )
75
76
 
76
- def __init__(self, para: Any | None = None):
77
+ def __init__(self, para: Any = None):
77
78
  self.id: str = str(uuid4())
78
- self.para = para
79
+ self.para = para if para is not None else ParaDummy()
79
80
  self.fitness = None
80
81
  self.is_evaluated = False
81
82
  self.age = 0
@@ -51,6 +51,8 @@ from evolib.utils.config_loader import load_config
51
51
  from evolib.utils.history_logger import HistoryLogger
52
52
  from evolib.utils.random import set_random_seed
53
53
 
54
+ from evolib.utils.parallel import map_fitness
55
+
54
56
 
55
57
  class Pop:
56
58
  """Represents a population for evolutionary optimization, including configuration,
@@ -128,6 +130,16 @@ class Pop:
128
130
  self._replacement_registry = {}
129
131
  self._replacement_fn = None
130
132
 
133
+ # Parallel backend
134
+ if cfg.parallel:
135
+ self.parallel_backend = cfg.parallel.backend
136
+ self.parallel_num_cpus = cfg.parallel.num_cpus
137
+ self.parallel_address = cfg.parallel.address
138
+ else:
139
+ self.parallel_backend = None
140
+ self.parallel_num_cpus = None
141
+ self.parallel_address = None
142
+
131
143
  # Statistics
132
144
  self.history_logger = HistoryLogger(
133
145
  columns=[
@@ -242,21 +254,27 @@ class Pop:
242
254
  """Evaluate the fitness function for all individuals in the population."""
243
255
  if self.fitness_function is None:
244
256
  raise ValueError("No fitness function has been set.")
245
- for indiv in self.indivs:
246
- result = self.fitness_function(indiv)
247
- if result is not None:
248
- indiv.fitness = float(result)
249
- indiv.is_evaluated = True
257
+
258
+ map_fitness(
259
+ self.indivs,
260
+ self.fitness_function,
261
+ backend=self.parallel_backend,
262
+ num_cpus=self.parallel_num_cpus,
263
+ address=self.parallel_address,
264
+ )
250
265
 
251
266
  def evaluate_indivs(self, indivs: list[Indiv]) -> None:
252
267
  """Evaluate fitness for a custom list of individuals."""
253
268
  if self.fitness_function is None:
254
269
  raise ValueError("No fitness function has been set.")
255
- for indiv in indivs:
256
- result = self.fitness_function(indiv)
257
- if result is not None:
258
- indiv.fitness = float(result)
259
- indiv.is_evaluated = True
270
+
271
+ map_fitness(
272
+ indivs,
273
+ self.fitness_function,
274
+ backend=self.parallel_backend,
275
+ num_cpus=self.parallel_num_cpus,
276
+ address=self.parallel_address,
277
+ )
260
278
 
261
279
  def get_elites(self) -> list[Indiv]:
262
280
  """Return a list of elite individuals and set their is_elite flag."""
@@ -408,14 +426,14 @@ class Pop:
408
426
 
409
427
  self.indivs.sort(key=lambda indivs: indivs.fitness, reverse=reverse)
410
428
 
411
- def best(self, sort: bool = False) -> Indiv:
429
+ def best(self, sort: bool = True) -> Indiv:
412
430
  """
413
431
  Return the best individual (lowest fitness).
414
432
 
415
433
  Args:
416
434
  sort (bool): If True, sort the population before returning the best.
417
435
  If False, return first individual as-is.
418
- Default: False.
436
+ Default: True.
419
437
  """
420
438
 
421
439
  if not self.indivs:
@@ -0,0 +1,193 @@
1
+ # SPDX-License-Identifier: MIT
2
+ """
3
+ Initializers for EvoNet networks.
4
+
5
+ These initializers convert a module configuration with `type: evonet` into a fully
6
+ initialized EvoNet instance.
7
+ """
8
+
9
+ import numpy as np
10
+ from evonet.activation import random_function_name
11
+ from evonet.enums import ConnectionType, NeuronRole
12
+
13
+ from evolib.config.evonet_component_config import EvoNetComponentConfig
14
+ from evolib.config.schema import FullConfig
15
+ from evolib.interfaces.enum_helpers import resolve_recurrent_kinds
16
+ from evolib.representation.evonet import EvoNet
17
+
18
+
19
+ def _build_architecture(para: EvoNet, cfg: EvoNetComponentConfig) -> None:
20
+ """
21
+ Build the EvoNet architecture (layers, neurons, activations) from config.
22
+
23
+ Args:
24
+ para (EvoNet): The EvoNet instance (already has parameters set).
25
+ cfg (EvoNetComponentConfig): Config with architecture definition.
26
+ """
27
+ # Activation functions per layer
28
+ if isinstance(cfg.activation, list):
29
+ activations = cfg.activation
30
+ else:
31
+ # Input layer linear, others same activation
32
+ activations = ["linear"] + [cfg.activation] * (len(cfg.dim) - 1)
33
+
34
+ for layer_idx, num_neurons in enumerate(cfg.dim):
35
+ if num_neurons == 0:
36
+ continue
37
+
38
+ activation_name = activations[layer_idx]
39
+ if activation_name == "random":
40
+ if cfg.activations_allowed is not None:
41
+ activation_name = random_function_name(cfg.activations_allowed)
42
+ else:
43
+ activation_name = random_function_name()
44
+
45
+ para.net.add_layer()
46
+
47
+ if layer_idx == 0:
48
+ role = NeuronRole.INPUT
49
+ elif layer_idx == len(cfg.dim) - 1:
50
+ role = NeuronRole.OUTPUT
51
+ else:
52
+ role = NeuronRole.HIDDEN
53
+
54
+ recurrent_kinds = resolve_recurrent_kinds(cfg.recurrent)
55
+ para.net.add_neuron(
56
+ count=num_neurons,
57
+ activation=activation_name,
58
+ role=role,
59
+ connection_init="zero",
60
+ bias=0.0,
61
+ recurrent=recurrent_kinds if role != NeuronRole.INPUT else None,
62
+ )
63
+
64
+
65
+ def initializer_normal_evonet(config: FullConfig, module: str) -> EvoNet:
66
+ """
67
+ Initializes an EvoNet with normally distributed weights.
68
+
69
+ Args:
70
+ config (FullConfig): Full experiment configuration
71
+ module (str): Module name (e.g. "brain")
72
+
73
+ Returns:
74
+ EvoNet: Initialized EvoNet representation
75
+ """
76
+ para = EvoNet()
77
+ cfg = config.modules[module].model_copy(deep=True)
78
+ para.apply_config(cfg)
79
+
80
+ _build_architecture(para, cfg)
81
+
82
+ # Initialize weights and biases with normal distribution
83
+ weights = np.random.normal(loc=0.0, scale=0.5, size=para.net.num_weights)
84
+ biases = np.random.normal(loc=0.0, scale=0.5, size=para.net.num_biases)
85
+
86
+ para.net.set_weights(weights)
87
+ para.net.set_biases(biases)
88
+ return para
89
+
90
+
91
+ def initializer_random_evonet(config: FullConfig, module: str) -> EvoNet:
92
+ """
93
+ Initializes an EvoNet with uniformly random weights and biases within init_bounds
94
+ (fallback: weight_bounds, bias_bounds).
95
+
96
+ Args:
97
+ config (FullConfig): Full experiment configuration
98
+ module (str): Module name
99
+
100
+ Returns:
101
+ EvoNet: Initialized EvoNet representation
102
+ """
103
+ para = EvoNet()
104
+ cfg = config.modules[module].model_copy(deep=True)
105
+ para.apply_config(cfg)
106
+
107
+ _build_architecture(para, cfg)
108
+
109
+ # Use weight_bounds if available, else fall back to bounds
110
+ weight_bounds = cfg.weight_bounds or (-1.0, 1.0)
111
+ min_weight = weight_bounds[0]
112
+ max_weight = weight_bounds[1]
113
+ bias_bounds = cfg.bias_bounds or (-0.5, 0.5)
114
+ min_bias = bias_bounds[0]
115
+ max_bias = bias_bounds[1]
116
+
117
+ weights = np.random.uniform(min_weight, max_weight, size=para.net.num_weights)
118
+ biases = np.random.uniform(min_bias, max_bias, size=para.net.num_biases)
119
+
120
+ para.net.set_weights(weights)
121
+ para.net.set_biases(biases)
122
+ return para
123
+
124
+
125
+ def initializer_zero_evonet(config: FullConfig, module: str) -> EvoNet:
126
+ """
127
+ Initializes an EvoNet with all weights and biases set to zero.
128
+
129
+ Args:
130
+ config (FullConfig): Full experiment configuration
131
+ module (str): Module name
132
+
133
+ Returns:
134
+ EvoNet: Initialized EvoNet representation
135
+ """
136
+ para = EvoNet()
137
+ cfg = config.modules[module].model_copy(deep=True)
138
+ para.apply_config(cfg)
139
+
140
+ _build_architecture(para, cfg)
141
+
142
+ para.net.set_weights(np.zeros(para.net.num_weights))
143
+ para.net.set_biases(np.zeros(para.net.num_biases))
144
+ return para
145
+
146
+
147
+ def initializer_identity_evonet(config: FullConfig, module: str) -> EvoNet:
148
+ """
149
+ Initialize EvoNet with damped self-recurrence and zeroed weights elsewhere.
150
+
151
+ - All feedforward weights are near-zero
152
+ - Self-recurrent connections get weight ~0.8 (memory)
153
+ - Biases are randomized slightly to break symmetry
154
+
155
+ This initializer encourages stable internal state retention from the start,
156
+ making recurrent behavior immediately available to evolution.
157
+
158
+ Args:
159
+ config (FullConfig): Full experiment configuration
160
+ module (str): Name of the EvoNet module in the config
161
+
162
+ Returns:
163
+ EvoNet: Initialized network with identity-style dynamics
164
+ """
165
+
166
+ SELF_LOOP_WEIGHT = 0.8
167
+ ALPHA = 0.01
168
+
169
+ para = EvoNet()
170
+ cfg = config.modules[module].model_copy(deep=True)
171
+ para.apply_config(cfg)
172
+
173
+ _build_architecture(para, cfg)
174
+
175
+ para.net.set_weights(np.zeros(para.net.num_weights))
176
+ para.net.set_biases(np.zeros(para.net.num_biases))
177
+
178
+ for neuron in para.net.get_all_neurons():
179
+ # Small random bias to break symmetry
180
+ neuron.bias = np.random.uniform(-ALPHA, ALPHA)
181
+ for connection in neuron.outgoing:
182
+ # Damped self-recurrence: acts like memory cell
183
+ if (
184
+ connection.type == ConnectionType.RECURRENT
185
+ and connection.source.id == connection.target.id
186
+ ):
187
+ connection.weight = SELF_LOOP_WEIGHT
188
+
189
+ # Small random feedforward weight to allow weak stimulus flow
190
+ if connection.type == ConnectionType.STANDARD:
191
+ connection.weight = np.random.uniform(-ALPHA, ALPHA)
192
+
193
+ return para
@@ -16,7 +16,12 @@ from typing import Any, Callable
16
16
  from evolib.config.schema import FullConfig
17
17
 
18
18
  # EvoNet-based initializer
19
- from evolib.initializers.evonet_initializers import initializer_normal_evonet
19
+ from evolib.initializers.evonet_initializers import (
20
+ initializer_identity_evonet,
21
+ initializer_normal_evonet,
22
+ initializer_random_evonet,
23
+ initializer_zero_evonet,
24
+ )
20
25
 
21
26
  # NetVector-based initializer
22
27
  from evolib.initializers.net_initializers import initializer_normal_net
@@ -45,6 +50,9 @@ INITIALIZER_REGISTRY: dict[str, InitializerFunction] = {
45
50
  "adaptive_vector": initializer_adaptive_vector,
46
51
  "normal_net": initializer_normal_net,
47
52
  "normal_evonet": initializer_normal_evonet,
53
+ "random_evonet": initializer_random_evonet,
54
+ "zero_evonet": initializer_zero_evonet,
55
+ "identity_evonet": initializer_identity_evonet,
48
56
  }
49
57
 
50
58
 
@@ -14,6 +14,7 @@ All files are stored in the 'checkpoints/' directory by default.
14
14
  from pathlib import Path
15
15
  from typing import Any, Optional, cast
16
16
 
17
+ from evolib.config.schema import FullConfig
17
18
  from evolib.core.individual import Indiv
18
19
  from evolib.core.population import Pop
19
20
  from evolib.initializers.registry import build_composite_initializer
@@ -24,6 +25,8 @@ from evolib.io.serialization import (
24
25
  save_indiv,
25
26
  save_population_pickle,
26
27
  )
28
+ from evolib.utils.config_loader import load_config
29
+ from evolib.utils.random import set_random_seed
27
30
 
28
31
  # Internal checkpoint directory
29
32
  _CHECKDIR = Path("checkpoints")
@@ -116,8 +119,13 @@ def resume_or_create(
116
119
  )
117
120
 
118
121
  if pop is not None:
122
+ print(f"[Resume] Loaded checkpoint for run_name={run_name}")
123
+ cfg: FullConfig = load_config(config_path)
124
+ random_seed = cfg.random_seed
125
+ set_random_seed(random_seed)
119
126
  return pop
120
-
127
+
128
+ print(f"[Create] New population for run_name={run_name}")
121
129
  return Pop(config_path=config_path, fitness_function=fitness_fn)
122
130
 
123
131
 
@@ -196,9 +196,11 @@ def crossover_intermediate(
196
196
 
197
197
  def crossover_offspring(pop: "Pop", offspring: list["Indiv"]) -> None:
198
198
  """
199
- Perform crossover for each pair of offspring individuals. Supports ParaComposite by
200
- applying module-specific crossover operators and probabilities defined in the
201
- configuration.
199
+ Perform crossover for each pair of offspring individuals.
200
+
201
+ Delegates the actual crossover logic to the individuals' parameter
202
+ representations (ParaBase subclasses). Works for both single-module
203
+ (e.g. Vector, EvoNet) and multi-module (ParaComposite) individuals.
202
204
 
203
205
  Notes:
204
206
  - Offspring are assumed to be copied before this call.
@@ -216,20 +218,11 @@ def crossover_offspring(pop: "Pop", offspring: list["Indiv"]) -> None:
216
218
  if child1.para is None or child2.para is None:
217
219
  continue
218
220
 
219
- for module_name in child1.para.components:
220
- module1 = child1.para.components[module_name]
221
- module2 = child2.para.components[module_name]
222
-
223
- prob1 = module1.evo_params.crossover_probability
224
- prob2 = module2.evo_params.crossover_probability
225
-
226
- if prob1 is None or prob2 is None:
227
- continue
228
-
229
- effective_prob = min(prob1, prob2)
230
-
231
- if effective_prob <= 0.0 or np.random.rand() >= effective_prob:
232
- continue
233
-
234
- # Perform crossover
235
- module1.crossover_with(module2)
221
+ # Delegate crossover to para (Vector, EvoNet, or ParaComposite)
222
+ try:
223
+ child1.para.crossover_with(child2.para)
224
+ except Exception as e:
225
+ # Optional: log or raise, depending on how strict du es haben willst
226
+ raise RuntimeError(
227
+ f"Crossover failed for individuals {child1.id} and {child2.id}: {e}"
228
+ )
@@ -0,0 +1,31 @@
1
+ """
2
+ Placeholder implementation of ParaBase for uninitialized individuals.
3
+
4
+ Ensures that every individual always has a ParaBase instance, even before configuration.
5
+ All operations (mutation, crossover, apply_config) raise clear errors to prevent
6
+ accidental use of uninitialized parameters.
7
+ """
8
+
9
+ from typing import Any
10
+
11
+ from evolib.interfaces.types import ModuleConfig
12
+ from evolib.representation.base import ParaBase
13
+
14
+
15
+ class ParaDummy(ParaBase):
16
+ """Placeholder ParaBase used for uninitialized individuals."""
17
+
18
+ def apply_config(self, cfg: ModuleConfig) -> None:
19
+ raise RuntimeError("DummyPara cannot be configured.")
20
+
21
+ def mutate(self) -> None:
22
+ raise RuntimeError("DummyPara cannot be mutated.")
23
+
24
+ def print_status(self) -> None:
25
+ print("[DummyPara] (no parameters)")
26
+
27
+ def get_status(self) -> str | dict[str, Any]:
28
+ return "<DummyPara: no parameters>"
29
+
30
+ def crossover_with(self, partner: "ParaBase") -> None:
31
+ raise RuntimeError("DummyPara cannot participate in crossover.")
@@ -10,14 +10,12 @@ import random as rng
10
10
  from typing import Any, Literal, Optional
11
11
 
12
12
  import numpy as np
13
- from evonet.activation import random_function_name
14
13
  from evonet.core import Nnet
15
14
  from evonet.enums import NeuronRole
16
15
  from evonet.mutation import mutate_activations, mutate_bias, mutate_weight
17
16
 
18
17
  from evolib.config.base_component_config import StructuralMutationConfig
19
18
  from evolib.config.evonet_component_config import EvoNetComponentConfig
20
- from evolib.interfaces.enum_helpers import resolve_recurrent_kinds
21
19
  from evolib.interfaces.enums import MutationStrategy
22
20
  from evolib.interfaces.types import ModuleConfig
23
21
  from evolib.operators.evonet_structural_mutation import mutate_structure
@@ -112,46 +110,6 @@ class EvoNet(ParaBase):
112
110
  # Apply crossover config
113
111
  apply_crossover_config(evo_params, cfg.crossover)
114
112
 
115
- # Activation functions per layer
116
- if isinstance(cfg.activation, list):
117
- activations = cfg.activation
118
- else:
119
- # Apply the same activation to all hidden/output layers,
120
- # but force input layer to be linear
121
- activations = ["linear"] + [cfg.activation] * (len(cfg.dim) - 1)
122
-
123
- for layer_idx, num_neurons in enumerate(self.dim):
124
- if num_neurons == 0:
125
- continue
126
-
127
- activation_name = activations[layer_idx]
128
-
129
- if activation_name == "random":
130
- if cfg.activations_allowed is not None:
131
- activation_name = random_function_name(cfg.activations_allowed)
132
- else:
133
- activation_name = random_function_name()
134
-
135
- self.net.add_layer()
136
-
137
- if layer_idx == 0:
138
- # Input Layer
139
- role = NeuronRole.INPUT
140
- elif layer_idx == len(self.dim) - 1:
141
- # Output Layer
142
- role = NeuronRole.OUTPUT
143
- else:
144
- # Hidden Layer
145
- role = NeuronRole.HIDDEN
146
-
147
- recurrent_kinds = resolve_recurrent_kinds(cfg.recurrent)
148
- self.net.add_neuron(
149
- count=num_neurons,
150
- activation=activation_name,
151
- role=role,
152
- recurrent=recurrent_kinds if role != NeuronRole.INPUT else None,
153
- )
154
-
155
113
  def calc(self, input_values: list[float]) -> list[float]:
156
114
  return self.net.calc(input_values)
157
115