elspais 0.11.2__py3-none-any.whl → 0.43.5__py3-none-any.whl

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 (147) hide show
  1. elspais/__init__.py +1 -10
  2. elspais/{sponsors/__init__.py → associates.py} +102 -56
  3. elspais/cli.py +366 -69
  4. elspais/commands/__init__.py +9 -3
  5. elspais/commands/analyze.py +118 -169
  6. elspais/commands/changed.py +12 -23
  7. elspais/commands/config_cmd.py +10 -13
  8. elspais/commands/edit.py +33 -13
  9. elspais/commands/example_cmd.py +319 -0
  10. elspais/commands/hash_cmd.py +161 -183
  11. elspais/commands/health.py +1177 -0
  12. elspais/commands/index.py +98 -115
  13. elspais/commands/init.py +99 -22
  14. elspais/commands/reformat_cmd.py +41 -433
  15. elspais/commands/rules_cmd.py +2 -2
  16. elspais/commands/trace.py +443 -324
  17. elspais/commands/validate.py +193 -411
  18. elspais/config/__init__.py +799 -5
  19. elspais/{core/content_rules.py → content_rules.py} +20 -2
  20. elspais/docs/cli/assertions.md +67 -0
  21. elspais/docs/cli/commands.md +304 -0
  22. elspais/docs/cli/config.md +262 -0
  23. elspais/docs/cli/format.md +66 -0
  24. elspais/docs/cli/git.md +45 -0
  25. elspais/docs/cli/health.md +190 -0
  26. elspais/docs/cli/hierarchy.md +60 -0
  27. elspais/docs/cli/ignore.md +72 -0
  28. elspais/docs/cli/mcp.md +245 -0
  29. elspais/docs/cli/quickstart.md +58 -0
  30. elspais/docs/cli/traceability.md +89 -0
  31. elspais/docs/cli/validation.md +96 -0
  32. elspais/graph/GraphNode.py +383 -0
  33. elspais/graph/__init__.py +40 -0
  34. elspais/graph/annotators.py +927 -0
  35. elspais/graph/builder.py +1886 -0
  36. elspais/graph/deserializer.py +248 -0
  37. elspais/graph/factory.py +284 -0
  38. elspais/graph/metrics.py +127 -0
  39. elspais/graph/mutations.py +161 -0
  40. elspais/graph/parsers/__init__.py +156 -0
  41. elspais/graph/parsers/code.py +213 -0
  42. elspais/graph/parsers/comments.py +112 -0
  43. elspais/graph/parsers/config_helpers.py +29 -0
  44. elspais/graph/parsers/heredocs.py +225 -0
  45. elspais/graph/parsers/journey.py +131 -0
  46. elspais/graph/parsers/remainder.py +79 -0
  47. elspais/graph/parsers/requirement.py +347 -0
  48. elspais/graph/parsers/results/__init__.py +6 -0
  49. elspais/graph/parsers/results/junit_xml.py +229 -0
  50. elspais/graph/parsers/results/pytest_json.py +313 -0
  51. elspais/graph/parsers/test.py +305 -0
  52. elspais/graph/relations.py +78 -0
  53. elspais/graph/serialize.py +216 -0
  54. elspais/html/__init__.py +8 -0
  55. elspais/html/generator.py +731 -0
  56. elspais/html/templates/trace_view.html.j2 +2151 -0
  57. elspais/mcp/__init__.py +45 -29
  58. elspais/mcp/__main__.py +5 -1
  59. elspais/mcp/file_mutations.py +138 -0
  60. elspais/mcp/server.py +1998 -244
  61. elspais/testing/__init__.py +3 -3
  62. elspais/testing/config.py +3 -0
  63. elspais/testing/mapper.py +1 -1
  64. elspais/testing/scanner.py +301 -12
  65. elspais/utilities/__init__.py +1 -0
  66. elspais/utilities/docs_loader.py +115 -0
  67. elspais/utilities/git.py +607 -0
  68. elspais/{core → utilities}/hasher.py +8 -22
  69. elspais/utilities/md_renderer.py +189 -0
  70. elspais/{core → utilities}/patterns.py +56 -51
  71. elspais/utilities/reference_config.py +626 -0
  72. elspais/validation/__init__.py +19 -0
  73. elspais/validation/format.py +264 -0
  74. {elspais-0.11.2.dist-info → elspais-0.43.5.dist-info}/METADATA +7 -4
  75. elspais-0.43.5.dist-info/RECORD +80 -0
  76. elspais/config/defaults.py +0 -179
  77. elspais/config/loader.py +0 -494
  78. elspais/core/__init__.py +0 -21
  79. elspais/core/git.py +0 -346
  80. elspais/core/models.py +0 -320
  81. elspais/core/parser.py +0 -639
  82. elspais/core/rules.py +0 -509
  83. elspais/mcp/context.py +0 -172
  84. elspais/mcp/serializers.py +0 -112
  85. elspais/reformat/__init__.py +0 -50
  86. elspais/reformat/detector.py +0 -112
  87. elspais/reformat/hierarchy.py +0 -247
  88. elspais/reformat/line_breaks.py +0 -218
  89. elspais/reformat/prompts.py +0 -133
  90. elspais/reformat/transformer.py +0 -266
  91. elspais/trace_view/__init__.py +0 -55
  92. elspais/trace_view/coverage.py +0 -183
  93. elspais/trace_view/generators/__init__.py +0 -12
  94. elspais/trace_view/generators/base.py +0 -334
  95. elspais/trace_view/generators/csv.py +0 -118
  96. elspais/trace_view/generators/markdown.py +0 -170
  97. elspais/trace_view/html/__init__.py +0 -33
  98. elspais/trace_view/html/generator.py +0 -1140
  99. elspais/trace_view/html/templates/base.html +0 -283
  100. elspais/trace_view/html/templates/components/code_viewer_modal.html +0 -14
  101. elspais/trace_view/html/templates/components/file_picker_modal.html +0 -20
  102. elspais/trace_view/html/templates/components/legend_modal.html +0 -69
  103. elspais/trace_view/html/templates/components/review_panel.html +0 -118
  104. elspais/trace_view/html/templates/partials/review/help/help-panel.json +0 -244
  105. elspais/trace_view/html/templates/partials/review/help/onboarding.json +0 -77
  106. elspais/trace_view/html/templates/partials/review/help/tooltips.json +0 -237
  107. elspais/trace_view/html/templates/partials/review/review-comments.js +0 -928
  108. elspais/trace_view/html/templates/partials/review/review-data.js +0 -961
  109. elspais/trace_view/html/templates/partials/review/review-help.js +0 -679
  110. elspais/trace_view/html/templates/partials/review/review-init.js +0 -177
  111. elspais/trace_view/html/templates/partials/review/review-line-numbers.js +0 -429
  112. elspais/trace_view/html/templates/partials/review/review-packages.js +0 -1029
  113. elspais/trace_view/html/templates/partials/review/review-position.js +0 -540
  114. elspais/trace_view/html/templates/partials/review/review-resize.js +0 -115
  115. elspais/trace_view/html/templates/partials/review/review-status.js +0 -659
  116. elspais/trace_view/html/templates/partials/review/review-sync.js +0 -992
  117. elspais/trace_view/html/templates/partials/review-styles.css +0 -2238
  118. elspais/trace_view/html/templates/partials/scripts.js +0 -1741
  119. elspais/trace_view/html/templates/partials/styles.css +0 -1756
  120. elspais/trace_view/models.py +0 -378
  121. elspais/trace_view/review/__init__.py +0 -63
  122. elspais/trace_view/review/branches.py +0 -1142
  123. elspais/trace_view/review/models.py +0 -1200
  124. elspais/trace_view/review/position.py +0 -591
  125. elspais/trace_view/review/server.py +0 -1032
  126. elspais/trace_view/review/status.py +0 -455
  127. elspais/trace_view/review/storage.py +0 -1343
  128. elspais/trace_view/scanning.py +0 -213
  129. elspais/trace_view/specs/README.md +0 -84
  130. elspais/trace_view/specs/tv-d00001-template-architecture.md +0 -36
  131. elspais/trace_view/specs/tv-d00002-css-extraction.md +0 -37
  132. elspais/trace_view/specs/tv-d00003-js-extraction.md +0 -43
  133. elspais/trace_view/specs/tv-d00004-build-embedding.md +0 -40
  134. elspais/trace_view/specs/tv-d00005-test-format.md +0 -78
  135. elspais/trace_view/specs/tv-d00010-review-data-models.md +0 -33
  136. elspais/trace_view/specs/tv-d00011-review-storage.md +0 -33
  137. elspais/trace_view/specs/tv-d00012-position-resolution.md +0 -33
  138. elspais/trace_view/specs/tv-d00013-git-branches.md +0 -31
  139. elspais/trace_view/specs/tv-d00014-review-api-server.md +0 -31
  140. elspais/trace_view/specs/tv-d00015-status-modifier.md +0 -27
  141. elspais/trace_view/specs/tv-d00016-js-integration.md +0 -33
  142. elspais/trace_view/specs/tv-p00001-html-generator.md +0 -33
  143. elspais/trace_view/specs/tv-p00002-review-system.md +0 -29
  144. elspais-0.11.2.dist-info/RECORD +0 -101
  145. {elspais-0.11.2.dist-info → elspais-0.43.5.dist-info}/WHEEL +0 -0
  146. {elspais-0.11.2.dist-info → elspais-0.43.5.dist-info}/entry_points.txt +0 -0
  147. {elspais-0.11.2.dist-info → elspais-0.43.5.dist-info}/licenses/LICENSE +0 -0
@@ -1,31 +0,0 @@
1
- # REQ-tv-d00014: Review API Server
2
-
3
- **Level**: Dev | **Status**: Draft | **Implements**: REQ-tv-p00002
4
-
5
- ## Assertions
6
-
7
- A. The API server SHALL be implemented as a Flask application with a `create_app(repo_root, static_dir)` factory function.
8
-
9
- B. Thread endpoints SHALL support: `POST /api/reviews/reqs/{id}/threads` (create), `POST /api/reviews/reqs/{id}/threads/{tid}/comments` (add comment), `POST /api/reviews/reqs/{id}/threads/{tid}/resolve` (resolve), `POST /api/reviews/reqs/{id}/threads/{tid}/unresolve` (unresolve).
10
-
11
- C. Status endpoints SHALL support: `GET /api/reviews/reqs/{id}/status` (get status), `POST /api/reviews/reqs/{id}/status` (change status in spec file), `GET /api/reviews/reqs/{id}/requests` (list requests), `POST /api/reviews/reqs/{id}/requests` (create request), `POST /api/reviews/reqs/{id}/requests/{rid}/approvals` (add approval).
12
-
13
- D. Package endpoints SHALL support: `GET /api/reviews/packages` (list), `POST /api/reviews/packages` (create), `GET/PUT/DELETE /api/reviews/packages/{id}` (CRUD), `POST/DELETE /api/reviews/packages/{id}/reqs/{req_id}` (membership), `GET/PUT /api/reviews/packages/active` (active package).
14
-
15
- E. Sync endpoints SHALL support: `GET /api/reviews/sync/status` (sync status), `POST /api/reviews/sync/push` (commit and push), `POST /api/reviews/sync/fetch` (fetch from remote), `POST /api/reviews/sync/fetch-all-package` (fetch all user branches).
16
-
17
- F. The server SHALL enable CORS for cross-origin requests from the HTML viewer.
18
-
19
- G. The server SHALL serve static files from the configured static directory at the root path.
20
-
21
- H. All write endpoints SHALL optionally trigger auto-sync based on configuration.
22
-
23
- I. Error responses SHALL use appropriate HTTP status codes and include JSON error details.
24
-
25
- J. The server SHALL provide a `/api/health` endpoint for health checks.
26
-
27
- ## Rationale
28
-
29
- The Flask API provides a lightweight HTTP interface for the review UI. The endpoint structure follows REST conventions with resource-oriented URLs. Auto-sync enables automatic git commits on each change for users who prefer immediate persistence, while manual sync is available for batched workflows.
30
-
31
- *End* *Review API Server* | **Hash**: 00000000
@@ -1,27 +0,0 @@
1
- # REQ-tv-d00015: Status Modifier
2
-
3
- **Level**: Dev | **Status**: Draft | **Implements**: REQ-tv-p00002
4
-
5
- ## Assertions
6
-
7
- A. `find_req_in_file(file_path, req_id)` SHALL locate a requirement in a spec file and return the status line information.
8
-
9
- B. `get_req_status(repo_root, req_id)` SHALL read and return the current status value from the spec file.
10
-
11
- C. `change_req_status(repo_root, req_id, new_status, user)` SHALL update the status value in the spec file atomically.
12
-
13
- D. Status values SHALL be validated against the allowed set: Draft, Active, Deprecated.
14
-
15
- E. The status modifier SHALL preserve all other content and formatting when changing status.
16
-
17
- F. The status modifier SHALL update the requirement's content hash footer after status changes.
18
-
19
- G. Failed status changes SHALL NOT leave the spec file in a corrupted or partial state.
20
-
21
- ## Rationale
22
-
23
- The status modifier enables the review workflow to complete the cycle by applying approved status changes directly to the spec files. This maintains the spec files as the authoritative source while the review system provides the approval workflow around changes.
24
-
25
- Atomic updates ensure that interrupted operations don't corrupt spec files, which are the source of truth for requirements.
26
-
27
- *End* *Status Modifier* | **Hash**: 00000000
@@ -1,33 +0,0 @@
1
- # REQ-tv-d00016: Review JavaScript Integration
2
-
3
- **Level**: Dev | **Status**: Draft | **Implements**: REQ-tv-p00002
4
-
5
- ## Assertions
6
-
7
- A. Review JavaScript modules SHALL be organized under the `TraceView.review` namespace to integrate with existing TraceView code.
8
-
9
- B. The review panel SHALL support opening, closing, and stacking requirement cards for multi-requirement review sessions.
10
-
11
- C. Thread UI SHALL support creating, viewing, resolving, unresolving, and replying to comment threads.
12
-
13
- D. Sync operations SHALL handle git push/fetch with conflict detection and user feedback via UI indicators.
14
-
15
- E. Package management UI SHALL support selecting, creating, editing, and deleting review packages.
16
-
17
- F. Position highlighting SHALL visually indicate comment anchor locations in the requirement content.
18
-
19
- G. Auto-sync functionality SHALL be configurable via the review panel settings.
20
-
21
- H. Event-driven architecture SHALL use custom DOM events (`traceview:thread-created`, `traceview:comment-added`, etc.) for component communication.
22
-
23
- I. The review panel SHALL integrate with the existing TraceView side panel system.
24
-
25
- J. Mode toggle buttons SHALL allow switching between View, Edit, and Review modes.
26
-
27
- ## Rationale
28
-
29
- Integrating with the existing TraceView namespace ensures consistent patterns and enables reuse of existing panel management, event handling, and UI components. The event-driven architecture decouples components and enables extensibility.
30
-
31
- Position highlighting helps reviewers understand the spatial context of comments, especially when positions have drifted due to content changes.
32
-
33
- *End* *Review JavaScript Integration* | **Hash**: 00000000
@@ -1,33 +0,0 @@
1
- # REQ-tv-p00001: HTML Generator Maintainability
2
-
3
- **Level**: PRD | **Status**: Draft | **Implements**: -
4
-
5
- ## Assertions
6
-
7
- A. The HTML generator SHALL produce a single, self-contained HTML file that can be opened in any modern browser without requiring a web server.
8
-
9
- B. The HTML generator SHALL support two operational modes: standalone mode with embedded requirement data, and link-only mode with relative URLs to source files.
10
-
11
- C. The HTML generator SHALL produce output that is functionally equivalent to the current implementation for all existing use cases.
12
-
13
- D. The HTML generator codebase SHALL separate concerns such that HTML structure, CSS styling, and JavaScript behavior can be modified independently.
14
-
15
- E. The HTML generator SHALL support IDE syntax highlighting and autocomplete for HTML, CSS, and JavaScript content.
16
-
17
- F. The HTML generator SHALL maintain backward compatibility with existing command-line interfaces and configuration options.
18
-
19
- G. The HTML generator SHALL support optional edit mode UI for batch requirement operations.
20
-
21
- ## Rationale
22
-
23
- The current HTMLGenerator class in `trace_view/html/generator.py` is a 3,420-line monolith that mixes HTML, CSS, JavaScript, and Python logic. This makes the code difficult to maintain, test, and extend.
24
-
25
- The current implementation has several challenges that motivate this refactoring:
26
- - No IDE support for embedded HTML/CSS/JS (all are Python strings)
27
- - Single 1,268-line method (`_generate_html`) with cyclomatic complexity of 598
28
- - Tight coupling prevents independent modification of presentation layers
29
- - Difficult to test components in isolation
30
-
31
- The refactoring preserves all current functionality while enabling better developer experience and maintainability.
32
-
33
- *End* *HTML Generator Maintainability* | **Hash**: 5dc964a5
@@ -1,29 +0,0 @@
1
- # REQ-tv-p00002: Collaborative Requirement Review System
2
-
3
- **Level**: PRD | **Status**: Draft | **Implements**: REQ-tv-p00001
4
-
5
- ## Assertions
6
-
7
- A. The system SHALL support threaded comments anchored to specific positions within requirement text.
8
-
9
- B. The system SHALL support status change workflows with approval gates for transitions between Draft, Active, and Deprecated states.
10
-
11
- C. Comment positions SHALL survive content changes through hash-based drift detection and fallback resolution strategies.
12
-
13
- D. Review data SHALL be stored in git branches following the `reviews/{package}/{user}` naming convention.
14
-
15
- E. Review packages SHALL group related requirements for coordinated review workflows.
16
-
17
- F. The system SHALL function offline with git-based synchronization when connectivity is available.
18
-
19
- G. The system SHALL provide a Flask API server for real-time review operations.
20
-
21
- H. The review UI SHALL integrate with the existing trace_view HTML output as a collapsible panel.
22
-
23
- ## Rationale
24
-
25
- The collaborative review system enables teams to review requirements without modifying the source specification files. By using git branches and JSON storage, the system maintains full audit trails compatible with FDA 21 CFR Part 11 requirements. Position-anchored comments allow precise feedback that survives requirement edits through intelligent re-anchoring.
26
-
27
- The package system supports sprint-based or topic-based review workflows, while the branch-per-user model enables offline work with eventual consistency through git merge operations.
28
-
29
- *End* *Collaborative Requirement Review System* | **Hash**: 00000000
@@ -1,101 +0,0 @@
1
- elspais/__init__.py,sha256=ax6rM4V27X5ZItQ5nIabGHDg8B1n38kyxnr0x-tW_Lw,1014
2
- elspais/__main__.py,sha256=rCMaObqJeT_6dhyfND7S4dh_lv30j7Ww3Z7992YYwaE,130
3
- elspais/cli.py,sha256=PZjgis0e1w7ppZdJGONxoP--R14p8He7PYmRzUbpmxY,19617
4
- elspais/commands/__init__.py,sha256=jS7ry2ez7xri-fUlYUw9fGKJi5yTHtVN4PU8voHjgLI,155
5
- elspais/commands/analyze.py,sha256=sYJ56eRGAVEF8xsD08DeNrrfP8C9aqEGmZGrxKDdDcA,7117
6
- elspais/commands/changed.py,sha256=MtfVsU89TxGuinxh83xmLSHeCZly7m0FJW0UzGJ4FnM,4811
7
- elspais/commands/config_cmd.py,sha256=WSozX2mnQwhKsu6UCzxST_tH9ZbrIPpwJhu4Mv-LHIE,13918
8
- elspais/commands/edit.py,sha256=OEYEcdusY6BGuxjIJFDNGIaNRadSQ4ZXzjgzcS8yrjU,16025
9
- elspais/commands/hash_cmd.py,sha256=KPypAEEdUIwTPnZrzodlb_OgWyVxWg1YtVCNJ2W_KAU,7937
10
- elspais/commands/index.py,sha256=BGh7SeC437kWTrQSdzpd-UqwOCJdMeA_3snFsOuwO_s,5312
11
- elspais/commands/init.py,sha256=O5YKXvdWoOENkKV1t7latAMl1W0r0OCX6RaneaWX0vU,3870
12
- elspais/commands/reformat_cmd.py,sha256=YR0Cz3O9saJr-ZmtlqLpOSSEVNCv6Rn0x79191ytZ3c,14714
13
- elspais/commands/rules_cmd.py,sha256=xXVRrKlBOw_lcX_XDebMjjGz_oshrfSTRLN2Qru6OLo,3463
14
- elspais/commands/trace.py,sha256=oApwzn0d5ILyS2hENsl932udOYYDfFdEXohNKd76UxA,12658
15
- elspais/commands/validate.py,sha256=eiapn9KadjtABza16WdnoJL_QypAeWoRDBHqdVpmBDc,15627
16
- elspais/config/__init__.py,sha256=NkQEonHWWiXXCDrfehOCrsEYSuhj75KYj8oBQ7FuS4c,292
17
- elspais/config/defaults.py,sha256=aRrw8Mrj6dVJB4-H3pJtCHGCaWZeRDgdI2P9QCDj6Q4,5274
18
- elspais/config/loader.py,sha256=MnG_j2W1pOSRTTUHAOvu5xcJUAzDFNPvRjloFXpM15w,13827
19
- elspais/core/__init__.py,sha256=OTQ1TOf7iLN4czmlkrV5tiaxpAat0VcrWpxYbfonAys,576
20
- elspais/core/content_rules.py,sha256=XmrPuwD7rjUnVT8WPFYv7THO_el0Gwc0_Rb7TgQyA6Y,4505
21
- elspais/core/git.py,sha256=CyRysPQ6UK2KFxkDvwvVflRLEIvAI4r_V48J998b-Ro,11179
22
- elspais/core/hasher.py,sha256=X3Ry_M6zgs2pZPZ3UFItlvM0mRW6aPS0SKPhCYeaFUE,4259
23
- elspais/core/models.py,sha256=qwi9rVEUGLW2bJABW2s2-2OzyI3hdl3rdvkWRuTl908,9719
24
- elspais/core/parser.py,sha256=JsJf5At8uOqkigWqIXngXXrCyahqSIrRPT92ZuZ4HyU,23995
25
- elspais/core/patterns.py,sha256=-aL1-aaZdViR3Dh9uxajyf9wd6nXvAXy2nEZeGL-iOA,13046
26
- elspais/core/rules.py,sha256=mQ05pCYnsTGq2tRHYbQ1HGbRl3GC0aivCvc6hLIM_68,18977
27
- elspais/mcp/__init__.py,sha256=m7rCKV2Yhlb5iVvoqSCWp5xxbkouoZeyDwF8VD1MB9I,1145
28
- elspais/mcp/__main__.py,sha256=oqpwTiE14vr5AGnP0MxRzILx_hYqonUMMK96dX-EXVw,134
29
- elspais/mcp/context.py,sha256=tcx0UprV1L6bVlD5IUbVLNBo72-0uLucnr7KT3LymS4,5539
30
- elspais/mcp/serializers.py,sha256=EfqeolkQH_bPpVczMC9YL26De0r1m49g3i6mzzr--ZA,2826
31
- elspais/mcp/server.py,sha256=tQ22LaOU-8rsEeNxQvwjvekc0wWC2j0XjCe8fxdJfAk,10638
32
- elspais/reformat/__init__.py,sha256=8Hfm-6E5CEdTlFFf_fpiZ2M9suwLpdeHsDFyMXVWBq0,1256
33
- elspais/reformat/detector.py,sha256=6EvWe8xs7in_wMOiX4RjPlBG4K3AZkXor2dgUFlzB8U,3499
34
- elspais/reformat/hierarchy.py,sha256=Mxz0PIQYnuELJhyTckeWeOjXj9wMO3E_BWyoUKoRr5g,8081
35
- elspais/reformat/line_breaks.py,sha256=gA3lAexa31uA-sT3mlU2x0MlK6oJnwcvC5WqLB9FxSk,6277
36
- elspais/reformat/prompts.py,sha256=FGh5rIPi92saLfSHi9b5mD6pJsxp7p_fJjOkQhP1Jno,4397
37
- elspais/reformat/transformer.py,sha256=hsrv_1n2VqHmtOKFL7pY7B7lVd326nM8a0zG7tpguBs,8159
38
- elspais/sponsors/__init__.py,sha256=ueikkPnyAVLNeW-9bF-HG5fUwJNd2vmTUEMeHRLGJwY,13010
39
- elspais/testing/__init__.py,sha256=BNbKelkUR3HwI7G91txlluE3z4CKN4Obl-avcquKfbs,879
40
- elspais/testing/config.py,sha256=PQkrnuk_p8pObc-Nio3s3mIKLO4AfB-2eiwXruXTw0Y,1620
41
- elspais/testing/mapper.py,sha256=EGund_KgeYbAnWRRcnuVs0xCzlf7EvJ-qiluSmvRIso,5649
42
- elspais/testing/result_parser.py,sha256=YgSNQa3mlT-ovo3PzjoUypN2urR1dIunPcfdB2IMAH8,9415
43
- elspais/testing/scanner.py,sha256=PEn0qJCE2eX2SCru3Cc-v18mf81q7BNkPYE-MZ3m8CM,7037
44
- elspais/trace_view/__init__.py,sha256=kWZNbZgJ0Y8z99b24r5PFVlzBGe1rZQ6PJy-F4WT8K4,1792
45
- elspais/trace_view/coverage.py,sha256=vFKwqRswztq3G39EyjaAOb4rvolVKd5vl0Nl3PSD3J4,6139
46
- elspais/trace_view/models.py,sha256=Gvt2sTuhs8naM6EaNJHEuXYOL6kZWeQMf-zHZYUq7Nw,12033
47
- elspais/trace_view/scanning.py,sha256=c4zxj9_wI5aYhUHb2boiI5kG0OXvhs8rFaJ2Gc229ls,7511
48
- elspais/trace_view/generators/__init__.py,sha256=wnXCNq1V1bV67wJpKpCVI2YZ9iWfEbl-uZAlFGNqIE8,424
49
- elspais/trace_view/generators/base.py,sha256=7K63STIT0cw_lftwrodx0XkTJ7dC_JeHSPUUCnBDZbQ,12422
50
- elspais/trace_view/generators/csv.py,sha256=4KPbeyFAo4cbqB6d9yCwYKYFPZHe3Ja5UYLwBONaG2I,3513
51
- elspais/trace_view/generators/markdown.py,sha256=ozQ9DCfgt_iYxNIF_YYsOCtv78y-S2xeAbkHD8xodSY,5699
52
- elspais/trace_view/html/__init__.py,sha256=7CzeRGfqjIdfgUzZZEvcUFrMeZHFhNTxvXHqHLF4ykg,793
53
- elspais/trace_view/html/generator.py,sha256=uMV4O6Jpdr3_jM3NzJZDQDQb2oeifcC5J3pIYRBmCP0,48142
54
- elspais/trace_view/html/templates/base.html,sha256=hy2G-Gw7qDCu7FEdt5VeBlIwoV9vJoKk1J5LDwEH8og,13176
55
- elspais/trace_view/html/templates/components/code_viewer_modal.html,sha256=7S_ocNo2mfWMimXGlhhUWR7IUhdAiASdecsUPWmCdEw,736
56
- elspais/trace_view/html/templates/components/file_picker_modal.html,sha256=hb7W0Gfkl_FFAz42wvVzPwHplWgRuU_0-NPmU5XM8rg,1182
57
- elspais/trace_view/html/templates/components/legend_modal.html,sha256=S7j_KY6O3kgYusJBLF5uT22S3TnRahLtHSFgZlnGM7Y,3562
58
- elspais/trace_view/html/templates/components/review_panel.html,sha256=8DDa5eZXpLMklGZBPV5N54VaxaqZlD1s3bbQPS59D2o,5592
59
- elspais/trace_view/html/templates/partials/review-styles.css,sha256=8lh_Wf8Gc5BxAniL9tiHuKfDHnQI0UMMbSLqmQnhvUs,42833
60
- elspais/trace_view/html/templates/partials/scripts.js,sha256=3qaZkFJj3oNg_p16cvpHKiE6rtPIWoM3LrFHx7TGJyQ,72717
61
- elspais/trace_view/html/templates/partials/styles.css,sha256=csqKjs6RPrnIYm3kq-0BhXWi8shpeYiGPJ61Kvl6OXg,33321
62
- elspais/trace_view/html/templates/partials/review/review-comments.js,sha256=sYT4r9At4qlWQMLchRfpfl8V7xY3jV8B4m97dkpRz_g,38903
63
- elspais/trace_view/html/templates/partials/review/review-data.js,sha256=0tPPMBzoNoTeB-wWVmwR2gRDvOT8iK-iSigZA1ddT1E,32644
64
- elspais/trace_view/html/templates/partials/review/review-help.js,sha256=Sy77ioN6stmdCR7OK4dYOdKLkzD3DJI8VCfPjFWGIyY,24047
65
- elspais/trace_view/html/templates/partials/review/review-init.js,sha256=guLPdd4iH2bxAOi3GiDULQk7XDNzmvVOLx5UJlt9eU0,6435
66
- elspais/trace_view/html/templates/partials/review/review-line-numbers.js,sha256=j8tU7lxqFljt6rBF7VU6j00qIhrpvA8EVXIsxCbfJCI,15855
67
- elspais/trace_view/html/templates/partials/review/review-packages.js,sha256=QxLZXfpWK2xp4qrDy0dgTx7TuQBnkGmWb9jNM4clHHA,39754
68
- elspais/trace_view/html/templates/partials/review/review-position.js,sha256=nRRcSLbM-OAxUQADbFbRN5XJtEcIER2gzoL-_9pLf-Y,19182
69
- elspais/trace_view/html/templates/partials/review/review-resize.js,sha256=fS081RfoiJAe9QRoEkQfSvdZotPQcPG45s-WDCxIbsE,3136
70
- elspais/trace_view/html/templates/partials/review/review-status.js,sha256=WgK2p56v1HKZpwuSX6zOv1KpfGAKLfpdb66qIRXsi2Q,26235
71
- elspais/trace_view/html/templates/partials/review/review-sync.js,sha256=xr4qrNRmkRSb7YO3ErBjckJltSLbbAy5NfnYba50GrE,31541
72
- elspais/trace_view/html/templates/partials/review/help/help-panel.json,sha256=A592sy3spIjvTBj87Yl_Ow8bm09s2JY-SAWc2Ac_jjU,14518
73
- elspais/trace_view/html/templates/partials/review/help/onboarding.json,sha256=uqqLXdD1rgR8bobnBFTAkgcMbbrWeyRnk5jX-1vbvHI,2942
74
- elspais/trace_view/html/templates/partials/review/help/tooltips.json,sha256=P9VfihRKL7BamrYfXRI855J51KMU29wbwpQGa5hO0y8,8714
75
- elspais/trace_view/review/__init__.py,sha256=Iglo86k7b5ALYxLhcrKCux2_EfKuqYSWJsOoJwmPuBM,1299
76
- elspais/trace_view/review/branches.py,sha256=vLvXs76sehlCy6ERl47GWURYNcQ7jeMzFWfIcv-s4xo,36166
77
- elspais/trace_view/review/models.py,sha256=aN-tQdog5PrNXNya-wMaxL5WIdxRtcu2pcoaL9z1MEA,40316
78
- elspais/trace_view/review/position.py,sha256=5VN052JzKYPHFbWOFZde_on9C_cid3SLIYCQMc71-iY,20874
79
- elspais/trace_view/review/server.py,sha256=7KZY-61JKHkqBhhP-Jpsl-bUYOdmS8SE-giEwym0jnk,35886
80
- elspais/trace_view/review/status.py,sha256=FESGOEacKXiJqWt0Kcwd2e3I5jsh9Bdzsa3-OrCTh_c,15378
81
- elspais/trace_view/review/storage.py,sha256=cGoALBsrZrCsM0kfzFEl3EC9buKEWz2I-ahu4OztsG0,38056
82
- elspais/trace_view/specs/README.md,sha256=LY3Ilp1RNYJYxAFV3KRTp2ASp5nyUhkFkgPFY2BEdEU,3282
83
- elspais/trace_view/specs/tv-d00001-template-architecture.md,sha256=WUnD2cYSnGqaAtzaCzYQdMV2S_iWUF-aHb6-UYmW_5E,1753
84
- elspais/trace_view/specs/tv-d00002-css-extraction.md,sha256=28KeqYDFrCsms8AXjKKiA8yn85_kT4nZOOqIlMB553c,1653
85
- elspais/trace_view/specs/tv-d00003-js-extraction.md,sha256=R65UQhgIW8uyUqyAo2ZPUEeLZqO7sOH8RsKVsB1TL5w,2068
86
- elspais/trace_view/specs/tv-d00004-build-embedding.md,sha256=2vI-zNi7Ibxnxwf0hvhLZh-JbrwBrUU68tp18wLXjQ4,1901
87
- elspais/trace_view/specs/tv-d00005-test-format.md,sha256=7XeJmQdSG_5OJiwFxshmnzfaQlIFvhhbwqNe9w7EaIs,2804
88
- elspais/trace_view/specs/tv-d00010-review-data-models.md,sha256=Yr8Pntii7bn-gXSPJGRSCBbui3dehc9_xi6ocWtslf8,1875
89
- elspais/trace_view/specs/tv-d00011-review-storage.md,sha256=fjqz0tQ2QqIYXAIpCUbtU09ajMTqARPJTWCgnjQaeXA,2051
90
- elspais/trace_view/specs/tv-d00012-position-resolution.md,sha256=GpW78rhbCoU-Ipo31MBdFgRHB_DRmZC2cVnSx3iLvxw,1885
91
- elspais/trace_view/specs/tv-d00013-git-branches.md,sha256=TFNrgBJqalDGpU9avjMMJZ9DCo8zO5UJ7N4sJQcVfD8,1565
92
- elspais/trace_view/specs/tv-d00014-review-api-server.md,sha256=1efAzKT-R2vrouEG0K6vW1byGSYyNoHnpQwOxg84ZgM,2189
93
- elspais/trace_view/specs/tv-d00015-status-modifier.md,sha256=MK7YwLWr0KFZXImJefFV171vBeNbTdtaWCVgyxSXqec,1285
94
- elspais/trace_view/specs/tv-d00016-js-integration.md,sha256=wofQ4qkCCILpjzFTtAKIwL7FB47KGoPpW9ox2k-BQ7c,1658
95
- elspais/trace_view/specs/tv-p00001-html-generator.md,sha256=tv4cP0CynaRPxHKTzGN3r9CXqQBbioVX2ESOcOBKnUI,1792
96
- elspais/trace_view/specs/tv-p00002-review-system.md,sha256=JQJSwNbZ_Hkqk43QQ9JKKhTBsfI0rF1Hp_3RIR6hS-4,1609
97
- elspais-0.11.2.dist-info/METADATA,sha256=Jlt2P-0_ky4w_fE0LYow3DMtW4ou_gGiKx0eqOntvFo,11634
98
- elspais-0.11.2.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
99
- elspais-0.11.2.dist-info/entry_points.txt,sha256=yWZZEfn2fBSKSzGoS-fMQ9YoTkyeu6-i7Oht6NsdKpk,45
100
- elspais-0.11.2.dist-info/licenses/LICENSE,sha256=x_dNMsy_askp2MmKXZFL2bKW_tDiJHcRTyAg0TY1RMI,1063
101
- elspais-0.11.2.dist-info/RECORD,,