gyomu-python-analysis 0.5.0__tar.gz → 0.7.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (192) hide show
  1. gyomu_python_analysis-0.7.0/.gyomu/concept/$Package.json +37 -0
  2. gyomu_python_analysis-0.7.0/.gyomu/concept/src/gyomu_python_analysis/$Directory.json +24 -0
  3. gyomu_python_analysis-0.7.0/.gyomu/concept/src/gyomu_python_analysis/analysis/$Directory.json +20 -0
  4. gyomu_python_analysis-0.7.0/.gyomu/concept/src/gyomu_python_analysis/analysis/analyzers/$Directory.json +24 -0
  5. gyomu_python_analysis-0.7.0/.gyomu/concept/src/gyomu_python_analysis/analysis/analyzers/ast/$Directory.json +18 -0
  6. gyomu_python_analysis-0.7.0/.gyomu/concept/src/gyomu_python_analysis/analysis/analyzers/expression/$Directory.json +19 -0
  7. gyomu_python_analysis-0.7.0/.gyomu/concept/src/gyomu_python_analysis/analysis/analyzers/internal/$Directory.json +19 -0
  8. gyomu_python_analysis-0.7.0/.gyomu/concept/src/gyomu_python_analysis/analysis/extract/$Directory.json +18 -0
  9. gyomu_python_analysis-0.7.0/.gyomu/concept/src/gyomu_python_analysis/analysis/file/$Directory.json +12 -0
  10. gyomu_python_analysis-0.7.0/.gyomu/concept/src/gyomu_python_analysis/analysis/parser/$Directory.json +17 -0
  11. gyomu_python_analysis-0.7.0/.gyomu/concept/src/gyomu_python_analysis/error/$Directory.json +17 -0
  12. gyomu_python_analysis-0.7.0/.gyomu/concept/src/gyomu_python_analysis/path/$Directory.json +17 -0
  13. gyomu_python_analysis-0.7.0/.gyomu/concept/src/gyomu_python_analysis/project/$Directory.json +21 -0
  14. gyomu_python_analysis-0.7.0/.gyomu/concept/src/gyomu_python_analysis/snapshot/$Directory.json +25 -0
  15. gyomu_python_analysis-0.7.0/.gyomu/knowledge/Development.yaml +11 -0
  16. gyomu_python_analysis-0.7.0/.gyomu/knowledge/Package.yaml +152 -0
  17. gyomu_python_analysis-0.7.0/.gyomu/knowledge/Roadmap.yaml +9 -0
  18. gyomu_python_analysis-0.7.0/.gyomu/knowledge/Technical.yaml +34 -0
  19. gyomu_python_analysis-0.7.0/PKG-INFO +68 -0
  20. gyomu_python_analysis-0.7.0/README.ja.md +46 -0
  21. gyomu_python_analysis-0.7.0/README.md +46 -0
  22. gyomu_python_analysis-0.7.0/experiments/fail_analysis.py +19 -0
  23. gyomu_python_analysis-0.7.0/experiments/sample/user2.py +85 -0
  24. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/python_analysis_test_support/fixtures/src/analysis/symbol/variable.py +19 -0
  25. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/python_analysis_test_support/helpers.py +47 -11
  26. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/src/gyomu_python_analysis/analysis/analyzers/ast/statement.py +10 -0
  27. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/src/gyomu_python_analysis/analysis/analyzers/ast/symbol.py +42 -13
  28. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/src/gyomu_python_analysis/analysis/analyzers/cls.py +44 -17
  29. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/src/gyomu_python_analysis/analysis/analyzers/functions.py +0 -1
  30. gyomu_python_analysis-0.7.0/src/gyomu_python_analysis/analysis/analyzers/pydantic.py +182 -0
  31. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/src/gyomu_python_analysis/analysis/analyzers/variables.py +38 -22
  32. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/src/gyomu_python_analysis/analysis/extract/symbols.py +17 -2
  33. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/src/gyomu_python_analysis/analysis/initialize.py +12 -2
  34. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/src/gyomu_python_analysis/analysis/workspace.py +3 -56
  35. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/src/gyomu_python_analysis/project/workspace.py +5 -1
  36. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/tests/unit/analysis/analyzers/test_analyze_types.py +9 -9
  37. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/tests/unit/analysis/analyzers/test_analyze_variable.py +30 -2
  38. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/tests/unit/analysis/test_initialize.py +4 -0
  39. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/tests/unit/analysis/test_workspace.py +2 -102
  40. gyomu_python_analysis-0.7.0/tests/unit/snapshot/__init__.py +0 -0
  41. gyomu_python_analysis-0.5.0/PKG-INFO +0 -25
  42. gyomu_python_analysis-0.5.0/README.md +0 -3
  43. gyomu_python_analysis-0.5.0/src/gyomu_python_analysis/analysis/analyzers/pydantic.py +0 -128
  44. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/.gitignore +0 -0
  45. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/experiments/griffe_analysis.py +0 -0
  46. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/experiments/griffe_dump.py +0 -0
  47. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/experiments/sample/__init__.py +0 -0
  48. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/experiments/sample/user.py +0 -0
  49. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/experiments/sample.py +0 -0
  50. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/pyproject.toml +0 -0
  51. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/python_analysis_test_support/__init__.py +0 -0
  52. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/python_analysis_test_support/fixtures/pyproject.toml +0 -0
  53. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/python_analysis_test_support/fixtures/src/__init__.py +0 -0
  54. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/python_analysis_test_support/fixtures/src/analysis/__init__.py +0 -0
  55. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/python_analysis_test_support/fixtures/src/analysis/ast/call.py +0 -0
  56. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/python_analysis_test_support/fixtures/src/analysis/ast/comprehension.py +0 -0
  57. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/python_analysis_test_support/fixtures/src/analysis/ast/for.py +0 -0
  58. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/python_analysis_test_support/fixtures/src/analysis/ast/function.py +0 -0
  59. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/python_analysis_test_support/fixtures/src/analysis/ast/if.py +0 -0
  60. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/python_analysis_test_support/fixtures/src/analysis/ast/match.py +0 -0
  61. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/python_analysis_test_support/fixtures/src/analysis/ast/try.py +0 -0
  62. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/python_analysis_test_support/fixtures/src/analysis/ast/with.py +0 -0
  63. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/python_analysis_test_support/fixtures/src/analysis/docstring/01-simple.py +0 -0
  64. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/python_analysis_test_support/fixtures/src/analysis/docstring/02-args.py +0 -0
  65. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/python_analysis_test_support/fixtures/src/analysis/docstring/03-typed-return.py +0 -0
  66. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/python_analysis_test_support/fixtures/src/analysis/docstring/04-raises.py +0 -0
  67. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/python_analysis_test_support/fixtures/src/analysis/docstring/05-examples.py +0 -0
  68. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/python_analysis_test_support/fixtures/src/analysis/docstring/06-notes.py +0 -0
  69. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/python_analysis_test_support/fixtures/src/analysis/docstring/07-complex.py +0 -0
  70. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/python_analysis_test_support/fixtures/src/analysis/docstring/08-gyomu-context.py +0 -0
  71. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/python_analysis_test_support/fixtures/src/analysis/docstring/09-custom-section.py +0 -0
  72. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/python_analysis_test_support/fixtures/src/analysis/docstring/10-edge-cases.py +0 -0
  73. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/python_analysis_test_support/fixtures/src/analysis/docstring/11-custom-and-gyomu-context.py +0 -0
  74. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/python_analysis_test_support/fixtures/src/analysis/docstring/12-module.py +0 -0
  75. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/python_analysis_test_support/fixtures/src/analysis/docstring/13-class.py +0 -0
  76. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/python_analysis_test_support/fixtures/src/analysis/docstring/14-variable.py +0 -0
  77. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/python_analysis_test_support/fixtures/src/analysis/docstring/15-custom-list-section.py +0 -0
  78. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/python_analysis_test_support/fixtures/src/analysis/docstring/__init__.py +0 -0
  79. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/python_analysis_test_support/fixtures/src/analysis/import/__init__.py +0 -0
  80. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/python_analysis_test_support/fixtures/src/analysis/import/all.py +0 -0
  81. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/python_analysis_test_support/fixtures/src/analysis/import/all2.py +0 -0
  82. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/python_analysis_test_support/fixtures/src/analysis/import/imports.py +0 -0
  83. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/python_analysis_test_support/fixtures/src/analysis/import/relative.py +0 -0
  84. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/python_analysis_test_support/fixtures/src/analysis/shared.py +0 -0
  85. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/python_analysis_test_support/fixtures/src/analysis/symbol/__init__.py +0 -0
  86. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/python_analysis_test_support/fixtures/src/analysis/symbol/call.py +0 -0
  87. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/python_analysis_test_support/fixtures/src/analysis/symbol/callable.py +0 -0
  88. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/python_analysis_test_support/fixtures/src/analysis/symbol/classes.py +0 -0
  89. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/python_analysis_test_support/fixtures/src/analysis/symbol/decorator.py +0 -0
  90. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/python_analysis_test_support/fixtures/src/analysis/symbol/functions.py +0 -0
  91. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/python_analysis_test_support/fixtures/src/analysis/symbol/generics.py +0 -0
  92. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/python_analysis_test_support/fixtures/src/analysis/symbol/location.py +0 -0
  93. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/python_analysis_test_support/fixtures/src/analysis/symbol/pydantic.py +0 -0
  94. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/python_analysis_test_support/fixtures/src/analysis/symbol/type_alias.py +0 -0
  95. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/python_analysis_test_support/fixtures/src/analysis/symbol/types.py +0 -0
  96. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/python_analysis_test_support/fixtures/src/analysis/types/__init__.py +0 -0
  97. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/python_analysis_test_support/fixtures/src/analysis/types/name.py +0 -0
  98. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/python_analysis_test_support/monorepo_fixtures/packages/project_a/pyproject.toml +0 -0
  99. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/python_analysis_test_support/monorepo_fixtures/packages/project_a/src/project_a/__init__.py +0 -0
  100. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/python_analysis_test_support/monorepo_fixtures/packages/project_a/src/project_a/module.py +0 -0
  101. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/python_analysis_test_support/monorepo_fixtures/packages/project_b/pyproject.toml +0 -0
  102. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/python_analysis_test_support/monorepo_fixtures/packages/project_b/src/project_b/__init__.py +0 -0
  103. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/python_analysis_test_support/monorepo_fixtures/packages/project_b/src/project_b/module.py +0 -0
  104. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/python_analysis_test_support/monorepo_fixtures/pyproject.toml +0 -0
  105. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/roadmap.md +0 -0
  106. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/src/gyomu_python_analysis/__init__.py +0 -0
  107. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/src/gyomu_python_analysis/analysis/__init__.py +0 -0
  108. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/src/gyomu_python_analysis/analysis/analyzers/__init__.py +0 -0
  109. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/src/gyomu_python_analysis/analysis/analyzers/ast/__init__.py +0 -0
  110. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/src/gyomu_python_analysis/analysis/analyzers/context.py +0 -0
  111. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/src/gyomu_python_analysis/analysis/analyzers/decorator.py +0 -0
  112. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/src/gyomu_python_analysis/analysis/analyzers/dependency.py +0 -0
  113. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/src/gyomu_python_analysis/analysis/analyzers/docstring.py +0 -0
  114. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/src/gyomu_python_analysis/analysis/analyzers/expression/__init__.py +0 -0
  115. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/src/gyomu_python_analysis/analysis/analyzers/expression/expr.py +0 -0
  116. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/src/gyomu_python_analysis/analysis/analyzers/imports.py +0 -0
  117. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/src/gyomu_python_analysis/analysis/analyzers/internal/__init__.py +0 -0
  118. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/src/gyomu_python_analysis/analysis/analyzers/internal/common.py +0 -0
  119. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/src/gyomu_python_analysis/analysis/analyzers/internal/location.py +0 -0
  120. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/src/gyomu_python_analysis/analysis/analyzers/internal/visibility.py +0 -0
  121. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/src/gyomu_python_analysis/analysis/analyzers/type_alias.py +0 -0
  122. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/src/gyomu_python_analysis/analysis/analyzers/types.py +0 -0
  123. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/src/gyomu_python_analysis/analysis/delete_cache.py +0 -0
  124. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/src/gyomu_python_analysis/analysis/extract/__init__.py +0 -0
  125. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/src/gyomu_python_analysis/analysis/file/__init__.py +0 -0
  126. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/src/gyomu_python_analysis/analysis/file/source_file_context.py +0 -0
  127. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/src/gyomu_python_analysis/analysis/get_module.py +0 -0
  128. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/src/gyomu_python_analysis/analysis/load.py +0 -0
  129. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/src/gyomu_python_analysis/analysis/load_file_context.py +0 -0
  130. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/src/gyomu_python_analysis/analysis/load_module.py +0 -0
  131. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/src/gyomu_python_analysis/analysis/metadata.py +0 -0
  132. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/src/gyomu_python_analysis/analysis/parser/__init__.py +0 -0
  133. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/src/gyomu_python_analysis/analysis/parser/docstring.py +0 -0
  134. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/src/gyomu_python_analysis/error/__init__.py +0 -0
  135. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/src/gyomu_python_analysis/error/analysis.py +0 -0
  136. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/src/gyomu_python_analysis/path/__init__.py +0 -0
  137. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/src/gyomu_python_analysis/path/conversion.py +0 -0
  138. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/src/gyomu_python_analysis/project/__init__.py +0 -0
  139. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/src/gyomu_python_analysis/project/context.py +0 -0
  140. /gyomu_python_analysis-0.5.0/src/gyomu_python_analysis/snapshot/__init__.py → /gyomu_python_analysis-0.7.0/src/gyomu_python_analysis/py.typed +0 -0
  141. {gyomu_python_analysis-0.5.0/tests/unit → gyomu_python_analysis-0.7.0/src/gyomu_python_analysis/snapshot}/__init__.py +0 -0
  142. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/src/gyomu_python_analysis/snapshot/analyze.py +0 -0
  143. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/src/gyomu_python_analysis/snapshot/commit.py +0 -0
  144. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/src/gyomu_python_analysis/snapshot/create.py +0 -0
  145. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/src/gyomu_python_analysis/snapshot/diff.py +0 -0
  146. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/src/gyomu_python_analysis/snapshot/models.py +0 -0
  147. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/src/gyomu_python_analysis/snapshot/project.py +0 -0
  148. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/src/gyomu_python_analysis/snapshot/types.py +0 -0
  149. {gyomu_python_analysis-0.5.0/tests/unit/analysis → gyomu_python_analysis-0.7.0/tests/unit}/__init__.py +0 -0
  150. {gyomu_python_analysis-0.5.0/tests/unit/analysis/analyzers → gyomu_python_analysis-0.7.0/tests/unit/analysis}/__init__.py +0 -0
  151. {gyomu_python_analysis-0.5.0/tests/unit/analysis/analyzers/ast → gyomu_python_analysis-0.7.0/tests/unit/analysis/analyzers}/__init__.py +0 -0
  152. {gyomu_python_analysis-0.5.0/tests/unit/analysis/analyzers/expression → gyomu_python_analysis-0.7.0/tests/unit/analysis/analyzers/ast}/__init__.py +0 -0
  153. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/tests/unit/analysis/analyzers/ast/conftest.py +0 -0
  154. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/tests/unit/analysis/analyzers/ast/helper.py +0 -0
  155. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/tests/unit/analysis/analyzers/ast/test_call.py +0 -0
  156. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/tests/unit/analysis/analyzers/ast/test_comprehension.py +0 -0
  157. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/tests/unit/analysis/analyzers/ast/test_conversion.py +0 -0
  158. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/tests/unit/analysis/analyzers/ast/test_dependency.py +0 -0
  159. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/tests/unit/analysis/analyzers/ast/test_for.py +0 -0
  160. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/tests/unit/analysis/analyzers/ast/test_function.py +0 -0
  161. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/tests/unit/analysis/analyzers/ast/test_if.py +0 -0
  162. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/tests/unit/analysis/analyzers/ast/test_match.py +0 -0
  163. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/tests/unit/analysis/analyzers/ast/test_statement.py +0 -0
  164. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/tests/unit/analysis/analyzers/ast/test_try.py +0 -0
  165. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/tests/unit/analysis/analyzers/ast/test_with.py +0 -0
  166. {gyomu_python_analysis-0.5.0/tests/unit/analysis/analyzers/internal → gyomu_python_analysis-0.7.0/tests/unit/analysis/analyzers/expression}/__init__.py +0 -0
  167. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/tests/unit/analysis/analyzers/expression/test_analyze_expression_name.py +0 -0
  168. {gyomu_python_analysis-0.5.0/tests/unit/path → gyomu_python_analysis-0.7.0/tests/unit/analysis/analyzers/internal}/__init__.py +0 -0
  169. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/tests/unit/analysis/analyzers/internal/test_location.py +0 -0
  170. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/tests/unit/analysis/analyzers/internal/test_visibility.py +0 -0
  171. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/tests/unit/analysis/analyzers/test_analyze_classes.py +0 -0
  172. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/tests/unit/analysis/analyzers/test_analyze_decorator.py +0 -0
  173. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/tests/unit/analysis/analyzers/test_analyze_dependency.py +0 -0
  174. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/tests/unit/analysis/analyzers/test_analyze_docstring.py +0 -0
  175. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/tests/unit/analysis/analyzers/test_analyze_functions.py +0 -0
  176. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/tests/unit/analysis/analyzers/test_analyze_imports.py +0 -0
  177. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/tests/unit/analysis/analyzers/test_analyze_pydantic.py +0 -0
  178. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/tests/unit/analysis/analyzers/test_analyze_type_alias.py +0 -0
  179. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/tests/unit/analysis/analyzers/test_context.py +0 -0
  180. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/tests/unit/analysis/test_get_module.py +0 -0
  181. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/tests/unit/analysis/test_load.py +0 -0
  182. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/tests/unit/analysis/test_load_file.py +0 -0
  183. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/tests/unit/analysis/test_load_module.py +0 -0
  184. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/tests/unit/analysis/test_metadata.py +0 -0
  185. {gyomu_python_analysis-0.5.0/tests/unit/snapshot → gyomu_python_analysis-0.7.0/tests/unit/path}/__init__.py +0 -0
  186. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/tests/unit/path/test_conversion.py +0 -0
  187. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/tests/unit/project/test_config.py +0 -0
  188. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/tests/unit/snapshot/test_analyze.py +0 -0
  189. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/tests/unit/snapshot/test_commit.py +0 -0
  190. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/tests/unit/snapshot/test_create.py +0 -0
  191. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/tests/unit/snapshot/test_diff.py +0 -0
  192. {gyomu_python_analysis-0.5.0 → gyomu_python_analysis-0.7.0}/tests/unit/snapshot/test_project.py +0 -0
@@ -0,0 +1,37 @@
1
+ {
2
+ "summary": "Gyomu Python Analysis is a comprehensive toolkit for statically analyzing Python projects, workspaces, and language constructs. It provides modular AST-based analyzers for examining classes, functions, types, Pydantic models, and expressions, alongside robust workspace initialization, configuration parsing, and project snapshot tracking capabilities.",
3
+ "responsibilities": [
4
+ "Analyze Python source code structures, language constructs, and metadata.",
5
+ "Manage project and workspace initialization, configuration parsing, and module loading contexts.",
6
+ "Create, diff, and manage project snapshots to track code modifications and changes over time.",
7
+ "Build symbol indexes, locations, and identity contexts from source code elements."
8
+ ],
9
+ "capabilities": [
10
+ {
11
+ "name": "Python Language Analysis",
12
+ "description": "Examines Python language constructs including classes, functions, variables, imports, dependencies, docstrings, type aliases, and Pydantic models."
13
+ },
14
+ {
15
+ "name": "AST Parsing and Indexing",
16
+ "description": "Parses Python Abstract Syntax Trees to analyze statements, expressions, and build symbol indexes and identities."
17
+ },
18
+ {
19
+ "name": "Workspace and Project Management",
20
+ "description": "Initializes project and workspace contexts, reads configurations, manages module loading, and handles caching."
21
+ },
22
+ {
23
+ "name": "Snapshot and Version Tracking",
24
+ "description": "Tracks file modifications, diffs changes between versions, and handles project snapshot creation, validation, and persistence."
25
+ }
26
+ ],
27
+ "design_decisions": [
28
+ "Employs modular AST-based analyzers to decompose Python language constructs into structured representations.",
29
+ "Maintains explicit project and workspace contexts to support multi-project configurations and source root resolution.",
30
+ "Utilizes snapshot tracking with file hashing and modification timestamps to detect and analyze project changes efficiently."
31
+ ],
32
+ "usage_guidance": [
33
+ "Use the workspace and project initialization modules to set up analysis contexts from project configurations.",
34
+ "Leverage the core analyzers and AST utilities to inspect Python source code constructs and extract symbol metadata.",
35
+ "Employ snapshot and diffing workflows to track modifications and analyze changes across project files."
36
+ ]
37
+ }
@@ -0,0 +1,24 @@
1
+ {
2
+ "summary": "Provides core Python analysis capabilities, including project and workspace initialization, configuration management, path conversion, custom error handling, and snapshot tracking workflows.",
3
+ "responsibilities": [
4
+ "Initialize project and workspace contexts, parse configurations, and manage file and module analysis.",
5
+ "Define custom error types and analysis phases for Python analysis operations.",
6
+ "Translate between various path formats including project-relative, source-relative, python, and full paths.",
7
+ "Manage project configurations and workspace structures.",
8
+ "Track file modifications, compute diffs, and handle snapshot creation, validation, and commit workflows."
9
+ ],
10
+ "concepts": [
11
+ "project analysis",
12
+ "configuration management",
13
+ "path conversion",
14
+ "error handling",
15
+ "project snapshot"
16
+ ],
17
+ "relationships": [
18
+ "Project and workspace contexts configure project analysis and snapshot management workflows."
19
+ ],
20
+ "design_decisions": [
21
+ "Modular structure organizing core analysis functions into domain-specific subpackages such as analysis, error, path, project, and snapshot."
22
+ ],
23
+ "importance": "Core"
24
+ }
@@ -0,0 +1,20 @@
1
+ {
2
+ "summary": "Performs project and workspace initialization, reads project configurations, manages module loading, caching, and file analysis contexts.",
3
+ "responsibilities": [
4
+ "Initialize project contexts and parse project configurations from workspace structures, load and manage module and file analysis contexts, and delete module caches."
5
+ ],
6
+ "concepts": [
7
+ "project initialization",
8
+ "module loading and analysis",
9
+ "workspace configuration",
10
+ "file analysis context",
11
+ "cache management"
12
+ ],
13
+ "relationships": [
14
+ "Project initialization handles workspace configurations and source roots."
15
+ ],
16
+ "design_decisions": [
17
+ "Modular functions for project initialization, module loading, caching, workspace handling, and file context loading."
18
+ ],
19
+ "importance": "Core"
20
+ }
@@ -0,0 +1,24 @@
1
+ {
2
+ "summary": "Provides core analyzer modules for examining Python language constructs such as classes, functions, dependencies, docstrings, imports, Pydantic models, type aliases, types, and variables, along with symbol context management.",
3
+ "responsibilities": [
4
+ "Analyze Python classes, functions, dependencies, docstrings, imports, Pydantic models, type aliases, types, and variables, and manage symbol context and identity during code analysis."
5
+ ],
6
+ "concepts": [
7
+ "class analysis",
8
+ "function analysis",
9
+ "dependency analysis",
10
+ "docstring analysis",
11
+ "import analysis",
12
+ "pydantic analysis",
13
+ "type analysis",
14
+ "variable analysis",
15
+ "symbol context"
16
+ ],
17
+ "relationships": [
18
+ "Code analysis uses specialized analyzers for classes, functions, dependencies, docstrings, imports, pydantic models, type aliases, types, and variables alongside symbol context management."
19
+ ],
20
+ "design_decisions": [
21
+ "Modular analysis routines for specific Python code constructs and features"
22
+ ],
23
+ "importance": "Core"
24
+ }
@@ -0,0 +1,18 @@
1
+ {
2
+ "summary": "Provides AST-based code analysis capabilities, including functions to analyze Python statements and expressions as well as utilities for building symbol indexes.",
3
+ "responsibilities": [
4
+ "Provides functions to analyze statements, expressions, tuples, slices, sets, arrays, and dictionaries using Abstract Syntax Trees.",
5
+ "Builds class and function indexes and AST indexes from source code symbols."
6
+ ],
7
+ "concepts": [
8
+ "AST statement analysis",
9
+ "AST symbol indexing"
10
+ ],
11
+ "relationships": [
12
+ "Statement analysis and symbol indexing are components of AST-based code analysis."
13
+ ],
14
+ "design_decisions": [
15
+ "Organizes analysis routines into specialized modules for statements, expressions, and symbols."
16
+ ],
17
+ "importance": "Core"
18
+ }
@@ -0,0 +1,19 @@
1
+ {
2
+ "summary": "Provides functions for analyzing various types of Python expressions, including constants, subscripts, dictionaries, arrays, literals, type expressions, tuples, sets, and expression names, alongside literal value parsing.",
3
+ "responsibilities": [
4
+ "analyze Python expressions including constants, subscripts, dictionaries, arrays, literals, type expressions, tuples, sets, and expression names",
5
+ "parse literal values"
6
+ ],
7
+ "concepts": [
8
+ "expression analysis",
9
+ "literal parsing",
10
+ "type expression analysis"
11
+ ],
12
+ "relationships": [
13
+ "analyze expression delegates to specific analyzers for constants, subscripts, dictionaries, arrays, literals, type expressions, tuples, sets, and expression names"
14
+ ],
15
+ "design_decisions": [
16
+ "modular expression analysis functions"
17
+ ],
18
+ "importance": "Core"
19
+ }
@@ -0,0 +1,19 @@
1
+ {
2
+ "summary": "Houses internal helper utilities supporting analysis functionality, specifically providing common building blocks, location calculation, and visibility determination for code analysis.",
3
+ "responsibilities": [
4
+ "Provide internal helper utilities for code analysis including calculating symbol locations, determining visibility, and building common components."
5
+ ],
6
+ "concepts": [
7
+ "internal analysis helpers",
8
+ "symbol location calculation",
9
+ "visibility calculation",
10
+ "common analyzer components"
11
+ ],
12
+ "relationships": [
13
+ "Internal analysis modules provide shared calculation utilities for location, visibility, and common metadata attributes."
14
+ ],
15
+ "design_decisions": [
16
+ "Internal module helper functions are grouped together to support analysis logic."
17
+ ],
18
+ "importance": "Core"
19
+ }
@@ -0,0 +1,18 @@
1
+ {
2
+ "summary": "Provides core symbol extraction capabilities and context management for analyzing Python source code.",
3
+ "responsibilities": [
4
+ "Extract symbols from Python code analysis.",
5
+ "Manage context used during symbol extraction."
6
+ ],
7
+ "concepts": [
8
+ "Symbol Extraction",
9
+ "Symbol Extract Context"
10
+ ],
11
+ "relationships": [
12
+ "SymbolExtractContext provides configuration and context for extract_symbols."
13
+ ],
14
+ "design_decisions": [
15
+ "Provides functional extraction logic operating within a specific context."
16
+ ],
17
+ "importance": "Core"
18
+ }
@@ -0,0 +1,12 @@
1
+ {
2
+ "summary": "Provides file-level analysis context and source file representation for Python code analysis.",
3
+ "responsibilities": [
4
+ "Manage source file context for analysis"
5
+ ],
6
+ "concepts": [
7
+ "source file context"
8
+ ],
9
+ "relationships": [],
10
+ "design_decisions": [],
11
+ "importance": "Core"
12
+ }
@@ -0,0 +1,17 @@
1
+ {
2
+ "summary": "The parser directory is responsible for analyzing and parsing code documentation, specifically providing docstring parsing capabilities for python analysis.",
3
+ "responsibilities": [
4
+ "Parse docstrings to extract analysis information"
5
+ ],
6
+ "concepts": [
7
+ "parser",
8
+ "docstring parser"
9
+ ],
10
+ "relationships": [
11
+ "DocstringParser provides docstring analysis functionality within the parser module."
12
+ ],
13
+ "design_decisions": [
14
+ "modular parsing organization"
15
+ ],
16
+ "importance": "Core"
17
+ }
@@ -0,0 +1,17 @@
1
+ {
2
+ "summary": "Provides error handling and analysis phase definitions for Python analysis operations, including custom exception types.",
3
+ "responsibilities": [
4
+ "Define error types and analysis phases for Python analysis operations."
5
+ ],
6
+ "concepts": [
7
+ "Python Analysis error",
8
+ "AnalysisPhase"
9
+ ],
10
+ "relationships": [
11
+ "AnalysisError incorporates or references AnalysisPhase to represent Python analysis errors."
12
+ ],
13
+ "design_decisions": [
14
+ "Defines custom error types and analysis phases for Python analysis operations."
15
+ ],
16
+ "importance": "Core"
17
+ }
@@ -0,0 +1,17 @@
1
+ {
2
+ "summary": "Provides path conversion and manipulation utilities to translate between different path formats including project-relative paths, source-relative paths, python paths, and full paths.",
3
+ "responsibilities": [
4
+ "converts various path representations such as project-relative paths, source-relative paths, python paths, and full paths"
5
+ ],
6
+ "concepts": [
7
+ "path conversion",
8
+ "path manipulation"
9
+ ],
10
+ "relationships": [
11
+ "converts project-relative paths, source-relative paths, python paths, and full paths to each other using path conversion functions"
12
+ ],
13
+ "design_decisions": [
14
+ "provides functions to convert between project-relative paths, source-relative paths, python paths, and full paths"
15
+ ],
16
+ "importance": "Core"
17
+ }
@@ -0,0 +1,21 @@
1
+ {
2
+ "summary": "Manages project configuration, context, and workspace definitions, encapsulating settings parsed from configuration files and workspace structures.",
3
+ "responsibilities": [
4
+ "Manage project configuration settings parsed from pyproject.toml files.",
5
+ "Encapsulate project context including roots, configurations, and loaders.",
6
+ "Define workspace configurations, roots, and constituent projects."
7
+ ],
8
+ "concepts": [
9
+ "Project Context",
10
+ "Workspace Configuration",
11
+ "PyProject Config"
12
+ ],
13
+ "relationships": [
14
+ "ProjectContext encapsulates PyProjectConfig and project metadata.",
15
+ "WorkspaceContext contains WorkspaceConfig and WorkspaceProject instances."
16
+ ],
17
+ "design_decisions": [
18
+ "Encapsulates project context and workspace structures into object representations."
19
+ ],
20
+ "importance": "Core"
21
+ }
@@ -0,0 +1,25 @@
1
+ {
2
+ "summary": "Manages project snapshots, tracking file modifications, diffing changes between snapshots, and handling snapshot creation, validation, and commit workflows.",
3
+ "responsibilities": [
4
+ "Create and manage project snapshots including target files, hashes, and modification timestamps.",
5
+ "Analyze, diff, and commit project changes by comparing snapshots.",
6
+ "Manage project snapshot workspaces and persistence."
7
+ ],
8
+ "concepts": [
9
+ "project snapshot",
10
+ "project changes",
11
+ "file snapshots",
12
+ "snapshot diff",
13
+ "snapshot workspace"
14
+ ],
15
+ "relationships": [
16
+ "Project changes analysis compares previous and current snapshots.",
17
+ "Diffing computes differences between previous and current project snapshots.",
18
+ "Committing validates the project snapshot and commits changes.",
19
+ "Creating a project snapshot enumerates target files and generates file snapshots."
20
+ ],
21
+ "design_decisions": [
22
+ "Exports functions for creating, validating, committing, analyzing, and diffing project snapshots."
23
+ ],
24
+ "importance": "Core"
25
+ }
@@ -0,0 +1,11 @@
1
+ # yaml-language-server: $schema=../../../../schemas/Development.json
2
+
3
+ faq:
4
+ - question: |
5
+ このパッケージは単独で利用できますか?
6
+ answer: |
7
+ いいえ。gyomu-schema, gyomu-infra に依存しています
8
+
9
+ known_issues: []
10
+
11
+ tips: []
@@ -0,0 +1,152 @@
1
+ # yaml-language-server: $schema=../../../../schemas/Package.json
2
+
3
+ display_name: Gyomu Python Analysis
4
+
5
+ mission: |
6
+ GyomuにおけるPythonソースコード解析基盤を提供します。
7
+ PythonプロジェクトおよびWorkspaceを解析し、ソースコードの構造、
8
+ 宣言、依存関係などを構造化された解析モデルとして抽出します。
9
+ Project ContextやWorkspace Contextを通じて解析対象と設定を一貫して管理し、
10
+ 解析結果とプロジェクト状態を再利用可能な形式で扱えるようにすることで、
11
+ Concept、Facts、Docstringなどの上位レイヤーが利用する共通の解析基盤を提供します。
12
+
13
+ policies:
14
+ - 解析結果はソースコードおよびプロジェクト設定から決定的に導出されるものとする。
15
+ - Project ContextとWorkspace Contextを通じて解析対象と解析設定を一貫して管理する。
16
+ - プロジェクト解析とソースファイル解析は独立した責務として設計する。
17
+ - 解析結果は読み取り専用の構造化されたモデルとして提供し、解析処理によってソースコードを変更しない。
18
+ - パス解決はプロジェクトおよびWorkspace全体で一貫したルールに従う。
19
+ - Python固有の解析処理を共通基盤に集約し、上位レイヤーが解析ライブラリの実装詳細へ直接依存しない構造を維持する。
20
+ - 解析対象のプロジェクト境界とソースルートを明確に管理する。
21
+ - プロジェクトの状態はSnapshotとして永続化し、後続の処理から再利用できるようにする。
22
+ - Snapshotは解析対象の現在状態を表現する情報として扱い、ドキュメント更新などの上位処理とは分離する。
23
+
24
+ constraints:
25
+ - ソースコードを書き換えてはならない。
26
+ - READMEや設計ドキュメントなどのドキュメント生成を担当してはならない。
27
+ - docstringの生成、更新、適用を担当してはならない。
28
+ - AIによる推論や意味解析を実装してはならない。
29
+ - 特定プロジェクト固有の解析ロジックを共通解析基盤へ持ち込んではならない。
30
+ - Python解析ライブラリの実装詳細を上位レイヤーの公開APIとして露出させてはならない。
31
+ - 解析結果を利用したアプリケーション固有の判断ロジックを実装してはならない。
32
+ - 解析処理とドキュメント更新処理を結合してはならない。
33
+
34
+ non_goals:
35
+ - READMEや設計ドキュメントを生成すること。
36
+ - docstringを生成・更新・適用すること。
37
+ - ConceptやKnowledgeなどのプロジェクト知識を生成・管理すること。
38
+ - AIによるコード推論や意味解析を提供すること。
39
+ - コード変換やリファクタリングを実行すること。
40
+ - Pythonソースコードの品質改善やLint修正を実行すること。
41
+ - 解析結果を利用した重要度評価やアーキテクチャ判断を実行すること。
42
+ - 解析対象の変更を検出してUpdate Planを生成すること。
43
+
44
+ terminology:
45
+ - term: Project Context
46
+ definition: |
47
+ Pythonプロジェクトのルート、ソースルート、パッケージ、
48
+ 解析対象ファイルなど、プロジェクト解析に必要な情報を保持するコンテキスト。
49
+
50
+ - term: Workspace Context
51
+ definition: |
52
+ 複数のPythonプロジェクトやパッケージを含むWorkspace全体の解析対象と
53
+ プロジェクト間の関係を管理するコンテキスト。
54
+
55
+ - term: File Analysis
56
+ definition: |
57
+ 単一のPythonソースファイルから抽出された宣言、シンボル、
58
+ 依存関係などの構造解析結果。
59
+
60
+ - term: Project Analysis
61
+ definition: |
62
+ Pythonプロジェクトの構造や設定、ソースファイルを解析し、
63
+ プロジェクト全体の解析情報を構築する処理。
64
+
65
+ - term: Snapshot
66
+ definition: |
67
+ 特定時点におけるPythonプロジェクトの状態を表現する永続化された情報。
68
+ ファイルハッシュなどを用いて解析対象の状態を記録し、
69
+ 後続の処理から現在のプロジェクト状態を参照できるようにする。
70
+
71
+ - term: Source Root
72
+ definition: |
73
+ Pythonプロジェクトにおいて解析対象となるソースコードのルートディレクトリ。
74
+
75
+ - term: Project Root
76
+ definition: |
77
+ Pythonプロジェクトを識別し、pyproject.tomlなどのプロジェクト設定や
78
+ ソースコードを解決するための基準となるディレクトリ。
79
+
80
+ rationale:
81
+ - Pythonソースコードの解析を共通基盤化することで、上位レイヤーは解析ライブラリや解析方法を意識せず利用できる。
82
+ - Project ContextとWorkspace Contextを導入することで、プロジェクト境界や解析対象を一貫したルールで管理できる。
83
+ - 解析結果を構造化されたモデルとして提供することで、Concept、Facts、Docstringなど複数の上位処理から再利用できる。
84
+ - パス解決を共通化することで、プロジェクトルート、ソースルート、ファイルなどの対応を安定して管理できる。
85
+ - Snapshotによってプロジェクトの特定時点の状態を永続化することで、上位の状態管理処理が現在の解析対象を一貫して参照できる。
86
+ - Python固有の解析処理を集約することで、上位パッケージがGriffeなどの解析実装へ直接依存することを防げる。
87
+ - 解析処理とドキュメント生成・更新処理を分離することで、解析結果を複数の用途へ安全に再利用できる。
88
+
89
+ usage:
90
+ - situation: Pythonプロジェクトを解析したい
91
+ guidance: Project Contextを初期化し、プロジェクトのソースルートと解析対象を解決して解析を実行する。
92
+
93
+ - situation: Workspace内のPythonプロジェクトを解析したい
94
+ guidance: Workspace Contextから対象プロジェクトを解決し、そのProject Contextを利用して解析する。
95
+
96
+ - situation: 単一のPythonソースファイルを解析したい
97
+ guidance: File Analysisを利用して、ファイルに含まれる宣言や依存関係などの構造情報を取得する。
98
+
99
+ - situation: Pythonプロジェクト全体の構造を取得したい
100
+ guidance: Project Analysisを利用して、プロジェクトのソースコードと設定から構造化された解析情報を構築する。
101
+
102
+ - situation: プロジェクトの現在状態を記録したい
103
+ guidance: Snapshotを生成して、解析対象の状態を永続化する。
104
+
105
+ - situation: ConceptやFactsなどの上位処理で解析結果を利用したい
106
+ guidance: Python Analysisが提供する構造化された解析モデルを利用し、解析ライブラリの実装へ直接依存しない。
107
+
108
+ - situation: テストでPython解析を利用したい
109
+ guidance: テスト用のプロジェクト構造を用意し、Project Contextを初期化して実際のファイルシステム上で解析する。
110
+
111
+ examples:
112
+ - title: プロジェクト解析
113
+ input: |
114
+ Pythonプロジェクト全体の構造を解析したい。
115
+ output: |
116
+ Project Contextを初期化してPythonプロジェクトを解析する。
117
+ explanation: |
118
+ プロジェクトルートとソースルートを基準として解析対象を一貫して解決できる。
119
+
120
+ - title: ファイル解析
121
+ input: |
122
+ Pythonソースファイルに含まれる公開宣言や依存関係を取得したい。
123
+ output: |
124
+ File Analysisを実行して構造化された解析結果を取得する。
125
+ explanation: |
126
+ ソースコードを変更せず、ファイルの構造情報のみを取得できる。
127
+
128
+ - title: Workspace解析
129
+ input: |
130
+ 複数のPythonプロジェクトを含むWorkspaceを解析したい。
131
+ output: |
132
+ Workspace Contextから対象プロジェクトを解決し、それぞれのProject Contextを利用して解析する。
133
+ explanation: |
134
+ Workspace内の複数プロジェクトを、それぞれのプロジェクト境界を維持したまま一貫して解析できる。
135
+
136
+ - title: Snapshotの作成
137
+ input: |
138
+ Pythonプロジェクトの特定時点の状態を記録したい。
139
+ output: |
140
+ Snapshotを生成して解析対象ファイルの状態を永続化する。
141
+ explanation: |
142
+ プロジェクトの状態を再利用可能な形式で記録できるため、
143
+ 後続の状態管理処理から一貫して参照できる。
144
+
145
+ - title: 上位処理からの解析結果利用
146
+ input: |
147
+ ConceptやFactsの処理でPythonソースコードの構造を利用したい。
148
+ output: |
149
+ Python Analysisが提供する解析モデルを利用する。
150
+ explanation: |
151
+ 上位レイヤーはPython解析ライブラリの実装詳細に依存せず、
152
+ 共通化された解析結果を利用できる。
@@ -0,0 +1,9 @@
1
+ # yaml-language-server: $schema=../../../../schemas/Roadmap.json
2
+
3
+ planned: []
4
+
5
+ in_progress: []
6
+
7
+ completed: []
8
+
9
+ backlog: []
@@ -0,0 +1,34 @@
1
+ # yaml-language-server: $schema=../../../../schemas/Technical.json
2
+
3
+ installation:
4
+ - command: uv add gyomu-python-analysis
5
+ description: |
6
+ 通常のPythonパッケージと同様にインストールする。
7
+ 特別なセットアップは不要。
8
+
9
+ configuration: []
10
+
11
+ dependencies:
12
+ - package: returns
13
+ description: |
14
+ Success / Failure / Result による明示的な成功・失敗表現に利用する。
15
+
16
+ - package: gyomu-schema
17
+ description: |
18
+ スキーマ、共通型の置き場として利用
19
+
20
+ - package: gyomu-infra
21
+ description: |
22
+ I/Oなどの基盤処理全般に利用
23
+
24
+ - package: griffelib
25
+ description: |
26
+ Pythonの構文解析に利用
27
+
28
+ - package: docstring-parser
29
+ description: |
30
+ docstring解析に利用
31
+
32
+ compatibility: []
33
+
34
+ migration: []
@@ -0,0 +1,68 @@
1
+ Metadata-Version: 2.5
2
+ Name: gyomu-python-analysis
3
+ Version: 0.7.0
4
+ Summary: Gyomu Python Analysis
5
+ Author: Yoshihisa Matsumoto
6
+ License-Expression: MIT
7
+ Classifier: Development Status :: 4 - Beta
8
+ Classifier: Intended Audience :: Developers
9
+ Classifier: License :: OSI Approved :: MIT License
10
+ Classifier: Programming Language :: Python :: 3
11
+ Classifier: Programming Language :: Python :: 3.13
12
+ Classifier: Topic :: Software Development :: Libraries
13
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
14
+ Requires-Python: >=3.13
15
+ Requires-Dist: docstring-parser>=0.18.0
16
+ Requires-Dist: griffelib>=2.2.0
17
+ Requires-Dist: gyomu-infra
18
+ Requires-Dist: gyomu-schema
19
+ Requires-Dist: pydantic
20
+ Requires-Dist: returns
21
+ Description-Content-Type: text/markdown
22
+
23
+ # Gyomu Python Analysis
24
+
25
+ US English | [JP 日本語](README.ja.md)
26
+
27
+ ## Overview
28
+
29
+ This package serves as a comprehensive static analysis foundation for Python projects and workspaces within Gyomu. Its primary purpose is to examine language constructs and extract source code structures, declarations, and dependencies into a unified, structured analysis model.
30
+
31
+ By managing targets and configurations consistently through project and workspace contexts, the toolkit enables analysis results and project states to be handled in a reusable format. This establishes a common infrastructure that empowers upper layers, such as concepts, facts, and docstrings, with reliable structural insights.
32
+
33
+ ## Architecture
34
+
35
+ Gyomu Python Analysis is organized into modular components that divide responsibilities across language analysis, workspace management, and version tracking. The architecture centers on analyzing Python source structures through AST parsing and dedicated analyzers for language constructs, classes, functions, types, and Pydantic models.
36
+
37
+ The analysis subsystem handles project and workspace initialization, reads configurations, manages module loading, and maintains file analysis contexts. Within this subsystem, specialized components focus on deep AST inspection of statements and expressions, alongside symbol indexing and identity resolution.
38
+
39
+ Separately, the snapshot component manages project version tracking by creating, validating, and persisting project snapshots. It collaborates with the broader architecture by tracking file modifications and computing diffs to analyze code changes over time.
40
+
41
+ ## Installation
42
+
43
+ Install using uv.
44
+
45
+ ```bash
46
+ uv add gyomu-python-analysis
47
+ ```
48
+
49
+ ## Dependencies
50
+
51
+ This package relies on several runtime dependencies for its core functionality. It uses `returns` for explicit success and failure representation via Success, Failure, and Result, while `gyomu-schema` and `gyomu-infra` serve as repositories for common types and general infrastructure processing such as I/O. Additionally, `griffelib` and `docstring-parser` are utilized for AST and docstring analysis, respectively.
52
+
53
+ ## Development
54
+
55
+ Contributors must ensure that all analysis results are deterministically derived exclusively from source code and project configurations, treating the underlying code as strictly read-only to prevent any unintended modifications during execution. Project Context and Workspace Context must be maintained as the central authorities for managing parsing targets, configuration rules, and path resolution uniformly across the entire scope. To preserve clean architectural boundaries, project-level analysis and individual source file parsing must be strictly separated as independent responsibilities, ensuring that Python-specific implementation details remain encapsulated within this shared foundation and are never leaked to upper layers.
56
+
57
+ State management relies on the creation, comparison, and persistence of project snapshots, which represent the exact current state of the code over time and must be handled independently of higher-level operations such as documentation updates. Contributors are required to structure all output data as immutable, read-structured models that can be efficiently reused by Concept, Facts, and Docstring layers. Furthermore, any evolution of the codebase must respect clearly defined project boundaries and source roots, maintaining a decoupled architecture where dependent layers interact solely through the provided analysis models and context interfaces rather than direct parsing libraries.
58
+
59
+ ## Public API
60
+
61
+ - Python Language Analysis - Examines Python language constructs including classes, functions, variables, imports, dependencies, docstrings, type aliases, and Pydantic models.
62
+ - AST Parsing and Indexing - Parses Python Abstract Syntax Trees to analyze statements, expressions, and build symbol indexes and identities.
63
+ - Workspace and Project Management - Initializes project and workspace contexts, reads configurations, manages module loading, and handles caching.
64
+ - Snapshot and Version Tracking - Tracks file modifications, diffs changes between versions, and handles project snapshot creation, validation, and persistence.
65
+
66
+ ## License
67
+
68
+ MIT
@@ -0,0 +1,46 @@
1
+ # Gyomu Python Analysis
2
+
3
+ [US English](README.md) | JP 日本語
4
+
5
+ ## 概要
6
+
7
+ 本パッケージは、Gyomu内のPythonプロジェクトやワークスペースを対象とした、包括的な静態解析の基盤として機能します。その主な目的は、言語構造を検証し、ソースコードの構造、宣言、および依存関係を抽出し、統一された構造化解析モデルへと統合することです。
8
+
9
+ プロジェクトやワークスペースのコンテキストを通じてターゲットと設定を統一的に管理することで、解析結果やプロジェクトの状態を再利用可能な形式で扱うことができます。これにより共通基盤が構築され、Concept、Fact、docstringsなどの上位レイヤーに対して信頼性の高い構造的洞察を提供します。
10
+
11
+ ## アーキテクチャ
12
+
13
+ Gyomu Python Analysis は、言語分析、ワークスペース管理、バージョン追跡に責任を分割するモジュール式コンポーネントで構成されています。このアーキテクチャは、AST パースと、言語構造、クラス、関数、型、Pydantic モデル向けの専用アナライザーを通じた Python ソース構造の分析を中心としています。
14
+
15
+ 分析サブシステムは、プロジェクトおよびワークスペースの初期化処理、設定の読み込み、モジュール読み込みの管理、ファイル分析コンテキストの維持を行います。このサブシステム内では、専用コンポーネントが文や式の詳細な AST 検査に加えて、シンボルインデックス作成と識別子の解決に注力します。
16
+
17
+ これとは別に、スナップショットコンポーネントは、プロジェクトスナップショットの作成、検証、永続化によってプロジェクトのバージョン追跡を管理します。ファイル変更の追跡と差分の計算を行い、経時的なコード変更を分析することで、より広範なアーキテクチャと連携します。
18
+
19
+ ## インストール
20
+
21
+ uv を使用してインストールします。
22
+
23
+ ```bash
24
+ uv add gyomu-python-analysis
25
+ ```
26
+
27
+ ## 依存関係
28
+
29
+ このパッケージは、コア機能の実現にいくつかのランタイム依存関係を利用しています。成功、失敗、結果を明示的に表現するために `returns` を使用し、共通型の保持や入出力などの一般的なインフラストラクチャ処理には `gyomu-schema` および `gyomu-infra` をリポジトリとして利用します。さらに、AST(抽象構文木)およびドキュメント文字列の解析には、それぞれ `griffelib` と `docstring-parser` が使用されます。
30
+
31
+ ## 開発
32
+
33
+ コントリビューターは、すべての解析結果がソースコードとプロジェクトの設定のみから決定論的に導出されることを確認する必要があります。実行中の意図しない変更を防ぐため、基盤となるコードは厳密に読み取り専用として扱います。Project ContextとWorkspace Contextは、解析ターゲット、設定ルール、およびパス解決をスコープ全体で一元管理するための信頼の唯一の情報源として維持されなければなりません。クリーンなアーキテクチャの境界を維持するため、プロジェクトレベルの解析と個別のソースファイル解析は独立した責務として厳密に分離し、Python固有の実装詳細がこの共有基盤内にカプセル化され、上位レイヤーに漏洩しないようにする必要があります。
34
+
35
+ 状態管理はプロジェクトスナップショットの作成、比較、永続化に依存します。これらは時間の経過におけるコードの正確な現在状態を表すものであり、ドキュメントの更新などの上位レイヤーの操作とは独立して処理されなければなりません。コントリビューターは、すべての出力データを、Concept、Facts、Docstringの各レイヤーによって効率的に再利用できる、不変かつ読み取り構造化されたモデルとして構築することが求められます。さらに、コードベースの変更にあたっては、明確に定義されたプロジェクト境界とソースルートを尊重し、依存レイヤーが直接的な解析ライブラリではなく、提供される解析モデルとcontextインターフェースを介してのみ相互作用する、疎結合なアーキテクチャを維持する必要があります。
36
+
37
+ ## Public API
38
+
39
+ - Python言語解析 - クラス、関数、変数、インポート、依存関係、ドキュメント文字列、型エイリアス、PydanticモデルなどのPython言語の構文要素を検証します。
40
+ - AST解析とインデックス作成 - Pythonの抽象構文木(AST)を解析して文や式を検証し、シンボルのインデックスと識別子を構築します。
41
+ - ワークスペースおよびプロジェクト管理 - プロジェクトとワークスペースのコンテキストを初期化し、設定を読み込み、モジュールのロードを管理し、キャッシュを処理します。
42
+ - スナップショットとバージョン追跡 - ファイルの変更を追跡し、バージョン間の差分を検出し、プロジェクトのスナップショットの作成、検証、永続化を処理します。
43
+
44
+ ## ライセンス
45
+
46
+ MIT