axis-synome 0.1.0.dev68__tar.gz → 0.1.0.dev69__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 (174) hide show
  1. {axis_synome-0.1.0.dev68/src/axis_synome.egg-info → axis_synome-0.1.0.dev69}/PKG-INFO +1 -1
  2. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/src/axis_synome/_version.py +2 -2
  3. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/src/axis_synome/export_entities.py +19 -17
  4. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/src/axis_synome/spec/asc/entities/alm_proxies.py +11 -10
  5. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/src/axis_synome/spec/asc/entities/assets_by_prime.py +40 -30
  6. axis_synome-0.1.0.dev69/src/axis_synome/spec/asc/entities/assets_missing_from_atlas.py +565 -0
  7. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/src/axis_synome/spec/asc/entities/protocol_sets.py +45 -1
  8. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69/src/axis_synome.egg-info}/PKG-INFO +1 -1
  9. axis_synome-0.1.0.dev68/src/axis_synome/spec/asc/entities/assets_missing_from_atlas.py +0 -414
  10. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/.flake8 +0 -0
  11. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/AGENTS.md +0 -0
  12. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/CLAUDE.md +0 -0
  13. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/README.md +0 -0
  14. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/WRITING_SPECS.md +0 -0
  15. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/examples/01_prime_basics.py +0 -0
  16. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/examples/02_assets_and_tokens_of_a_prime.py +0 -0
  17. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/examples/03_inverse_lookups.py +0 -0
  18. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/examples/04_atlas_provenance.py +0 -0
  19. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/examples/05_feeding_a_formula.py +0 -0
  20. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/examples/README.md +0 -0
  21. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/pyproject.toml +0 -0
  22. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/setup.cfg +0 -0
  23. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/src/axis_synome/__init__.py +0 -0
  24. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/src/axis_synome/spec/__init__.py +0 -0
  25. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/src/axis_synome/spec/all_entities/__init__.py +0 -0
  26. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/src/axis_synome/spec/all_entities/lending_markets.py +0 -0
  27. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/src/axis_synome/spec/asc/entities/__init__.py +0 -0
  28. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/src/axis_synome/spec/asc/entities/asset_categories.py +0 -0
  29. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/src/axis_synome/spec/asc/entities/assets.py +0 -0
  30. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/src/axis_synome/spec/asc/entities/networks.py +0 -0
  31. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/src/axis_synome/spec/asc/entities/primes.py +0 -0
  32. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/src/axis_synome/spec/asc/entities/tokens.py +0 -0
  33. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/src/axis_synome/spec/asc/entities/types.py +0 -0
  34. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/src/axis_synome/spec/asc/formulas/asc.py +0 -0
  35. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/src/axis_synome/spec/asc/formulas/asc_collateral_ratio.py +0 -0
  36. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/src/axis_synome/spec/asc/formulas/asc_incentive.py +0 -0
  37. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/src/axis_synome/spec/asc/formulas/dab.py +0 -0
  38. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/src/axis_synome/spec/asc/formulas/latent_asc.py +0 -0
  39. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/src/axis_synome/spec/asc/formulas/ratio_latent_asc.py +0 -0
  40. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/src/axis_synome/spec/asc/formulas/resting_asc.py +0 -0
  41. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/src/axis_synome/spec/codegen_test/entities/agents.py +0 -0
  42. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/src/axis_synome/spec/crypto_lending/__init__.py +0 -0
  43. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/src/axis_synome/spec/crypto_lending/formulas/__init__.py +0 -0
  44. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/src/axis_synome/spec/crypto_lending/formulas/lif.py +0 -0
  45. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/src/axis_synome/spec/entities/__init__.py +0 -0
  46. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/src/axis_synome/spec/entities/audit_firms.py +0 -0
  47. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/src/axis_synome/spec/entities/capital_types.py +0 -0
  48. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/src/axis_synome/spec/entities/protocol_risk.py +0 -0
  49. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/src/axis_synome/spec/entities/risk_categories.py +0 -0
  50. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/src/axis_synome/spec/entities/smart_contract_risk.py +0 -0
  51. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/src/axis_synome/spec/risk_capital/__init__.py +0 -0
  52. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/src/axis_synome/spec/risk_capital/administrative_rrc/__init__.py +0 -0
  53. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/src/axis_synome/spec/risk_capital/administrative_rrc/administrative_risk.py +0 -0
  54. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/src/axis_synome/spec/risk_capital/aggregate_rrc.py +0 -0
  55. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/src/axis_synome/spec/risk_capital/audit_factor.py +0 -0
  56. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/src/axis_synome/spec/risk_capital/capital_composition.py +0 -0
  57. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/src/axis_synome/spec/risk_capital/entities/__init__.py +0 -0
  58. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/src/axis_synome/spec/risk_capital/entities/lending_protocol.py +0 -0
  59. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/src/axis_synome/spec/risk_capital/entities/precomputed_crr.py +0 -0
  60. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/src/axis_synome/spec/risk_capital/examples/risk_capital_walkthrough.ipynb +0 -0
  61. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/src/axis_synome/spec/risk_capital/financial_rrc/__init__.py +0 -0
  62. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/src/axis_synome/spec/risk_capital/financial_rrc/entities.py +0 -0
  63. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/src/axis_synome/spec/risk_capital/financial_rrc/perpetual_positions.py +0 -0
  64. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/src/axis_synome/spec/risk_capital/formulas/__init__.py +0 -0
  65. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/src/axis_synome/spec/risk_capital/formulas/financial_rrc/__init__.py +0 -0
  66. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/src/axis_synome/spec/risk_capital/formulas/financial_rrc/asset_correlation_coefficient.py +0 -0
  67. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/src/axis_synome/spec/risk_capital/formulas/financial_rrc/capital_requirement_without_buffers.py +0 -0
  68. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/src/axis_synome/spec/risk_capital/formulas/financial_rrc/exposure_caps.py +0 -0
  69. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/src/axis_synome/spec/risk_capital/formulas/financial_rrc/fixed_crr_rrc.py +0 -0
  70. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/src/axis_synome/spec/risk_capital/formulas/financial_rrc/instance_financial_rrc.py +0 -0
  71. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/src/axis_synome/spec/risk_capital/formulas/financial_rrc/lending_rrc.py +0 -0
  72. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/src/axis_synome/spec/risk_capital/formulas/financial_rrc/pipeline.py +0 -0
  73. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/src/axis_synome/spec/risk_capital/formulas/financial_rrc/precomputed_crr_rrc.py +0 -0
  74. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/src/axis_synome/spec/risk_capital/formulas/financial_rrc/probability_of_default.py +0 -0
  75. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/src/axis_synome/spec/risk_capital/formulas/required_risk_capital.py +0 -0
  76. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/src/axis_synome/spec/risk_capital/instance_rrc.py +0 -0
  77. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/src/axis_synome/spec/risk_capital/jrc_loss_allocation.py +0 -0
  78. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/src/axis_synome/spec/risk_capital/lindy_factor.py +0 -0
  79. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/src/axis_synome/spec/risk_capital/smart_contract_rrc/__init__.py +0 -0
  80. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/src/axis_synome/spec/risk_capital/smart_contract_rrc/exceptions.py +0 -0
  81. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/src/axis_synome/spec/risk_capital/smart_contract_rrc/smart_contract_risk.py +0 -0
  82. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/src/axis_synome/spec/risk_capital/total_risk_capital.py +0 -0
  83. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/src/axis_synome/spec/suraf/README.md +0 -0
  84. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/src/axis_synome/spec/suraf/entities/assessor_score.py +0 -0
  85. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/src/axis_synome/spec/suraf/entities/assets.py +0 -0
  86. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/src/axis_synome/spec/suraf/entities/mappings.py +0 -0
  87. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/src/axis_synome/spec/suraf/formulas/crr.py +0 -0
  88. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/src/axis_synome/spec/suraf/formulas/scoring.py +0 -0
  89. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/src/axis_synome/spec_inspect/__init__.py +0 -0
  90. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/src/axis_synome/spec_inspect/__main__.py +0 -0
  91. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/src/axis_synome/spec_inspect/cli.py +0 -0
  92. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/src/axis_synome/spec_support/__init__.py +0 -0
  93. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/src/axis_synome/spec_support/correlation_matrix.py +0 -0
  94. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/src/axis_synome/spec_support/evm_address.py +0 -0
  95. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/src/axis_synome/spec_support/math_protocol.py +0 -0
  96. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/src/axis_synome/spec_support/pendle_validation.py +0 -0
  97. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/src/axis_synome/spec_support/references/__init__.py +0 -0
  98. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/src/axis_synome/spec_support/references/graph.py +0 -0
  99. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/src/axis_synome/spec_support/runtime/__init__.py +0 -0
  100. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/src/axis_synome/spec_support/runtime/base.py +0 -0
  101. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/src/axis_synome/spec_support/runtime/math.py +0 -0
  102. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/src/axis_synome/spec_support/runtime/reference.py +0 -0
  103. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/src/axis_synome/spec_support/validated_dataclass.py +0 -0
  104. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/src/axis_synome/spec_support/validated_str.py +0 -0
  105. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/src/axis_synome/spec_validator/__init__.py +0 -0
  106. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/src/axis_synome/spec_validator/check_source_uuids.py +0 -0
  107. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/src/axis_synome/spec_validator/checker.py +0 -0
  108. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/src/axis_synome/spec_validator/flake8_plugin.py +0 -0
  109. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/src/axis_synome/spec_validator/python_subset.py +0 -0
  110. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/src/axis_synome.egg-info/SOURCES.txt +0 -0
  111. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/src/axis_synome.egg-info/dependency_links.txt +0 -0
  112. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/src/axis_synome.egg-info/entry_points.txt +0 -0
  113. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/src/axis_synome.egg-info/requires.txt +0 -0
  114. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/src/axis_synome.egg-info/top_level.txt +0 -0
  115. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/tests/axis_synome/asc/__init__.py +0 -0
  116. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/tests/axis_synome/asc/conftest.py +0 -0
  117. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/tests/axis_synome/asc/mocks.py +0 -0
  118. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/tests/axis_synome/asc/test_alm_proxies.py +0 -0
  119. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/tests/axis_synome/asc/test_asc.py +0 -0
  120. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/tests/axis_synome/asc/test_asc_collateral_ratio.py +0 -0
  121. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/tests/axis_synome/asc/test_asc_incentive.py +0 -0
  122. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/tests/axis_synome/asc/test_asset_categories.py +0 -0
  123. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/tests/axis_synome/asc/test_dab.py +0 -0
  124. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/tests/axis_synome/asc/test_evm_address.py +0 -0
  125. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/tests/axis_synome/asc/test_latent_asc.py +0 -0
  126. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/tests/axis_synome/asc/test_prime_agent_data_validation.py +0 -0
  127. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/tests/axis_synome/asc/test_ratio_latent_asc.py +0 -0
  128. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/tests/axis_synome/asc/test_resting_asc.py +0 -0
  129. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/tests/axis_synome/risk_capital/__init__.py +0 -0
  130. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/tests/axis_synome/risk_capital/administrative_rrc/test_administrative_risk.py +0 -0
  131. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/tests/axis_synome/risk_capital/financial_rrc/__init__.py +0 -0
  132. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/tests/axis_synome/risk_capital/financial_rrc/test_lending_rrc.py +0 -0
  133. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/tests/axis_synome/risk_capital/financial_rrc/test_perpetual_positions.py +0 -0
  134. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/tests/axis_synome/risk_capital/formulas/__init__.py +0 -0
  135. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/tests/axis_synome/risk_capital/formulas/test_correlation_matrix.py +0 -0
  136. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/tests/axis_synome/risk_capital/formulas/test_loss_given_default.py +0 -0
  137. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/tests/axis_synome/risk_capital/smart_contract_rrc/__init__.py +0 -0
  138. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/tests/axis_synome/risk_capital/smart_contract_rrc/test_exceptions.py +0 -0
  139. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/tests/axis_synome/risk_capital/smart_contract_rrc/test_smart_contract_risk.py +0 -0
  140. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/tests/axis_synome/risk_capital/test_a321_a322_integration.py +0 -0
  141. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/tests/axis_synome/risk_capital/test_aggregate_rrc.py +0 -0
  142. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/tests/axis_synome/risk_capital/test_capital_composition.py +0 -0
  143. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/tests/axis_synome/risk_capital/test_instance_rrc.py +0 -0
  144. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/tests/axis_synome/risk_capital/test_jrc_loss_allocation.py +0 -0
  145. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/tests/axis_synome/risk_capital/test_total_risk_capital.py +0 -0
  146. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/tests/axis_synome/scripts/test_export_entities.py +0 -0
  147. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/tests/axis_synome/spec_inspect/__init__.py +0 -0
  148. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/tests/axis_synome/spec_inspect/test_cli.py +0 -0
  149. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/tests/axis_synome/spec_support/__init__.py +0 -0
  150. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/tests/axis_synome/spec_support/references/__init__.py +0 -0
  151. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/tests/axis_synome/spec_support/references/test_graph.py +0 -0
  152. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/tests/axis_synome/spec_support/runtime/__init__.py +0 -0
  153. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/tests/axis_synome/spec_support/runtime/test_base.py +0 -0
  154. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/tests/axis_synome/spec_support/runtime/test_math.py +0 -0
  155. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/tests/axis_synome/spec_validator/test_check_source_uuids.py +0 -0
  156. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/tests/axis_synome/spec_validator/test_checker.py +0 -0
  157. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/tests/axis_synome/spec_validator/test_flake8_plugin.py +0 -0
  158. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/tests/axis_synome/suraf/__init__.py +0 -0
  159. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/tests/axis_synome/suraf/entities/__init__.py +0 -0
  160. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/tests/axis_synome/suraf/entities/test_assessor_score.py +0 -0
  161. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/tests/axis_synome/suraf/formulas/__init__.py +0 -0
  162. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/tests/axis_synome/suraf/formulas/test_crr.py +0 -0
  163. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/tests/axis_synome/suraf/formulas/test_scoring.py +0 -0
  164. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/tests/axis_synome/suraf/static/aave_ausdc/v1/crr_mapping.csv +0 -0
  165. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/tests/axis_synome/suraf/static/aave_ausdc/v1/penalty.csv +0 -0
  166. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/tests/axis_synome/suraf/static/aave_ausdc/v1/scorecards/Assessor_1_scores.csv +0 -0
  167. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/tests/axis_synome/suraf/static/aave_ausdc/v1/scorecards/Assessor_2_scores.csv +0 -0
  168. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/tests/axis_synome/suraf/static/aave_ausdc/v1/scorecards/Assessor_3_scores.csv +0 -0
  169. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/tests/axis_synome/suraf/static/aave_ausdc/v1/weights.csv +0 -0
  170. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/tests/axis_synome/suraf/suraf_client/__init__.py +0 -0
  171. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/tests/axis_synome/suraf/suraf_client/suraf_client.py +0 -0
  172. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/tests/axis_synome/suraf/suraf_client/test_suraf_client.py +0 -0
  173. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/tests/axis_synome/test_examples.py +0 -0
  174. {axis_synome-0.1.0.dev68 → axis_synome-0.1.0.dev69}/uv.lock +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: axis-synome
3
- Version: 0.1.0.dev68
3
+ Version: 0.1.0.dev69
4
4
  Summary: Axis specification modules (entities, formulas, validators)
5
5
  Author-email: Archon Tech <hello@archontech.ai>
6
6
  License: MIT
@@ -18,7 +18,7 @@ version_tuple: tuple[int | str, ...]
18
18
  commit_id: str | None
19
19
  __commit_id__: str | None
20
20
 
21
- __version__ = version = '0.1.0.dev68'
22
- __version_tuple__ = version_tuple = (0, 1, 0, 'dev68')
21
+ __version__ = version = '0.1.0.dev69'
22
+ __version_tuple__ = version_tuple = (0, 1, 0, 'dev69')
23
23
 
24
24
  __commit_id__ = commit_id = None
@@ -25,7 +25,9 @@ from axis_synome.spec.asc.entities.protocol_sets import (
25
25
  L1_PSM_PROTOCOLS,
26
26
  L2_PSM_PROTOCOLS,
27
27
  UNISWAP_STYLE_PROTOCOLS,
28
+ AllocationType,
28
29
  Protocol,
30
+ TokenType,
29
31
  )
30
32
 
31
33
  # Proxy roles. "alm" is the canonical ALM Proxy holding operational allocation
@@ -60,8 +62,8 @@ class TokenEntryModel(BaseModel):
60
62
  star: str
61
63
  chain: str
62
64
  protocol: str
63
- allocation_type: str
64
- token_type: str
65
+ allocation_type: AllocationType
66
+ token_type: TokenType
65
67
 
66
68
 
67
69
  class AssetsByPrimeContainer(BaseModel):
@@ -120,39 +122,39 @@ def _prime_to_star(prime: PrimeName | str) -> str:
120
122
  return text.lower().replace(" ", "-")
121
123
 
122
124
 
123
- def _token_type(protocol: Protocol, chain: str, token_name: str) -> str:
125
+ def _token_type(protocol: Protocol, chain: str, token_name: str) -> TokenType:
124
126
  if protocol in ATOKEN_PROTOCOLS:
125
- return "atoken"
127
+ return TokenType.ATOKEN
126
128
 
127
129
  if protocol in ERC4626_PROTOCOLS:
128
- return "erc4626"
130
+ return TokenType.ERC4626
129
131
 
130
132
  if protocol == Protocol.CURVE:
131
- return "curve"
133
+ return TokenType.CURVE
132
134
 
133
135
  if protocol in UNISWAP_STYLE_PROTOCOLS:
134
136
  if "LP" in token_name.upper():
135
- return "uni_v3_lp"
136
- return "uni_v3_pool"
137
+ return TokenType.UNI_V3_LP
138
+ return TokenType.UNI_V3_POOL
137
139
 
138
140
  if protocol == Protocol.CENTRIFUGE:
139
141
  if chain == "plume":
140
- return "centrifuge_feeder"
141
- return "centrifuge"
142
+ return TokenType.CENTRIFUGE_FEEDER
143
+ return TokenType.CENTRIFUGE
142
144
 
143
145
  if protocol == Protocol.ANCHORAGE:
144
- return "anchorage"
146
+ return TokenType.ANCHORAGE
145
147
 
146
148
  if protocol in L1_PSM_PROTOCOLS | L2_PSM_PROTOCOLS:
147
- return "psm3"
149
+ return TokenType.PSM3
148
150
 
149
- return "erc20"
151
+ return TokenType.ERC20
150
152
 
151
153
 
152
- def _allocation_type(protocol: Protocol) -> str:
154
+ def _allocation_type(protocol: Protocol) -> AllocationType:
153
155
  if protocol in L1_PSM_PROTOCOLS | L2_PSM_PROTOCOLS:
154
- return "psm3"
155
- return "allocation"
156
+ return AllocationType.PSM3
157
+ return AllocationType.ALLOCATION
156
158
 
157
159
 
158
160
  def _version_from_package_metadata() -> str:
@@ -297,7 +299,7 @@ def build_axis_synome_contract(
297
299
  ),
298
300
  "star": star,
299
301
  "chain": chain,
300
- "protocol": missing.protocol,
302
+ "protocol": _slug(missing.protocol.value) if missing.protocol is not None else "",
301
303
  "allocation_type": missing.allocation_type,
302
304
  "token_type": missing.token_type,
303
305
  })
@@ -209,18 +209,19 @@ class AlmProxy(Enum):
209
209
  GROVE_MONAD = GROVE_MONAD_ALM_PROXY
210
210
 
211
211
 
212
- # Additional ALM-controlled wallets that are NOT the canonical ALM Proxy but
213
- # must still be tracked by downstream consumers. The canonical ALM Proxy holds
214
- # the operational allocation positions; these SubProxy ("risk capital" /
215
- # treasury) wallets hold capital separately and are exported alongside the ALM
216
- # Proxy for the same (Prime, Network) rather than replacing it.
217
- STL_ADDITIONAL_PROXIES: Final[dict[tuple[PrimeAgent, Network], list[str]]] = {
218
- # Spark SubProxy — Atlas A.6.1.1.1.2.1.1.3.1.1.2.
212
+ STL_ADDITIONAL_PROXIES: Final[dict[tuple[PrimeAgent, Network], list[EvmAddress]]] = {
219
213
  (PrimeAgent.SPARK, Network.ETHEREUM_MAINNET): [
220
- "0x3300f198988e4c9c63f75df86de36421f06af8c4",
214
+ EvmAddress("0x3300f198988e4C9C63F75dF86De36421f06af8c4"),
221
215
  ],
222
- # Grove SubProxy — Atlas A.6.1.1.2.2.1.1.3.1.1.2.
223
216
  (PrimeAgent.GROVE, Network.ETHEREUM_MAINNET): [
224
- "0x1369f7b2b38c76b6478c0f0e66d94923421891ba",
217
+ EvmAddress("0x1369f7b2b38c76B6478c0f0E66D94923421891Ba"),
225
218
  ],
226
219
  }
220
+ """Additional ALM-controlled wallets that are NOT the canonical ALM Proxy but
221
+ must still be tracked by downstream consumers. The canonical ALM Proxy holds the
222
+ operational allocation positions; these SubProxy ("risk capital" / treasury)
223
+ wallets hold capital separately and are exported alongside the ALM Proxy for the
224
+ same (Prime, Network) rather than replacing it.
225
+
226
+ Atlas references: the Spark SubProxy is A.6.1.1.1.2.1.1.3.1.1.2 and the Grove
227
+ SubProxy is A.6.1.1.2.2.1.1.3.1.1.2."""
@@ -1,4 +1,5 @@
1
1
  from enum import StrEnum
2
+ from typing import Final
2
3
 
3
4
  from axis_synome.spec.asc.entities.asset_categories import AssetCategory
4
5
  from axis_synome.spec.asc.entities.assets import Asset
@@ -19,6 +20,43 @@ class PrimeName(StrEnum):
19
20
  SPARK = "Spark"
20
21
 
21
22
 
23
+ # Grove positions whose non-obvious provenance is captured in a docstring. They
24
+ # are referenced from ASSETS_BY_PRIME below; a "#" comment on a list element is
25
+ # not machine-readable, so these are named constants instead.
26
+ GROVE_GACLO_1: Final[Asset] = Asset(
27
+ token=Token.GACLO_1,
28
+ network=Network.AVALANCHE,
29
+ protocol=Protocol.GALAXY,
30
+ address=EvmAddress("0x2C0aDFF8e114f3cA106051144353aC703D24B901"),
31
+ source="A.6.1.1.2.2.6.1.3.1.9.1.2.2.1",
32
+ underlying_asset=Token.USDC,
33
+ underlying_asset_address=EvmAddress("0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48"),
34
+ underlying_asset_source="A.6.1.1.2.2.6.1.3.1.9.1.2.2.3",
35
+ categories={AssetCategory.REAL_WORLD_ASSET},
36
+ )
37
+ """Galaxy Arch CLOs. The GACLO-1 token is on Avalanche while deposits are made on
38
+ Ethereum Mainnet, so the Atlas-recorded Underlying Asset Address is mainnet USDC
39
+ (0xA0b8…) per the Instance Configuration Document. Network is Avalanche to match
40
+ the token deployment chain."""
41
+
42
+
43
+ GROVE_MONAD_UNISWAP_AUSD_USDC: Final[Asset] = Asset(
44
+ token=Token.UNISWAP_AUSD_USDC_POOL,
45
+ network=Network.MONAD,
46
+ protocol=Protocol.UNISWAP,
47
+ address=EvmAddress("0x6B405DCA74897c9442d369DcF6c0EC230f7E1c7C"),
48
+ source="A.6.1.1.2.2.6.1.3.1.12.1.2.2.1",
49
+ underlying_asset=Token.USDC,
50
+ underlying_asset_address=EvmAddress("0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48"),
51
+ underlying_asset_source="A.6.1.1.2.2.6.1.3.1.12.1.2.2.2",
52
+ categories={AssetCategory.CASH_STABLECOIN},
53
+ )
54
+ """Monad Uniswap AUSD/USDC pool. The Atlas Underlying Asset Address node records
55
+ USDC (0xA0b8…), which is the asset supplied by the Grove Liquidity Layer; the
56
+ token name carries no "LP" marker so the export derives token_type
57
+ "uni_v3_pool"."""
58
+
59
+
22
60
  ASSETS_BY_PRIME: dict[PrimeName, list[Asset]] = {
23
61
  PrimeName.GROVE: [
24
62
  Asset(
@@ -263,21 +301,7 @@ ASSETS_BY_PRIME: dict[PrimeName, list[Asset]] = {
263
301
  underlying_asset_source="A.6.1.1.2.2.6.1.3.4.1.1.2.2.2",
264
302
  categories={AssetCategory.LENDING_MARKET},
265
303
  ),
266
- # Galaxy Arch CLOs. The GACLO-1 token is on Avalanche while deposits are
267
- # made on Ethereum Mainnet, so the Atlas-recorded Underlying Asset
268
- # Address is mainnet USDC (0xA0b8…) per the Instance Configuration
269
- # Document. Network is Avalanche to match the token deployment chain.
270
- Asset(
271
- token=Token.GACLO_1,
272
- network=Network.AVALANCHE,
273
- protocol=Protocol.GALAXY,
274
- address=EvmAddress("0x2C0aDFF8e114f3cA106051144353aC703D24B901"),
275
- source="A.6.1.1.2.2.6.1.3.1.9.1.2.2.1",
276
- underlying_asset=Token.USDC,
277
- underlying_asset_address=EvmAddress("0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48"),
278
- underlying_asset_source="A.6.1.1.2.2.6.1.3.1.9.1.2.2.3",
279
- categories={AssetCategory.REAL_WORLD_ASSET},
280
- ),
304
+ GROVE_GACLO_1,
281
305
  Asset(
282
306
  token=Token.ACRDX,
283
307
  network=Network.PLUME,
@@ -289,21 +313,7 @@ ASSETS_BY_PRIME: dict[PrimeName, list[Asset]] = {
289
313
  underlying_asset_source="A.6.1.1.2.2.6.1.3.5.1.1.2.2.2",
290
314
  categories={AssetCategory.REAL_WORLD_ASSET},
291
315
  ),
292
- # Monad Uniswap AUSD/USDC pool. The Atlas Underlying Asset Address node
293
- # records USDC (0xA0b8…), which is the asset supplied by the Grove
294
- # Liquidity Layer; the token name carries no "LP" marker so the export
295
- # derives token_type "uni_v3_pool".
296
- Asset(
297
- token=Token.UNISWAP_AUSD_USDC_POOL,
298
- network=Network.MONAD,
299
- protocol=Protocol.UNISWAP,
300
- address=EvmAddress("0x6B405DCA74897c9442d369DcF6c0EC230f7E1c7C"),
301
- source="A.6.1.1.2.2.6.1.3.1.12.1.2.2.1",
302
- underlying_asset=Token.USDC,
303
- underlying_asset_address=EvmAddress("0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48"),
304
- underlying_asset_source="A.6.1.1.2.2.6.1.3.1.12.1.2.2.2",
305
- categories={AssetCategory.CASH_STABLECOIN},
306
- ),
316
+ GROVE_MONAD_UNISWAP_AUSD_USDC,
307
317
  ],
308
318
  PrimeName.OBEX: [
309
319
  Asset(