yuho 5.0.0__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 (91) hide show
  1. yuho/__init__.py +16 -0
  2. yuho/ast/__init__.py +196 -0
  3. yuho/ast/builder.py +926 -0
  4. yuho/ast/constant_folder.py +280 -0
  5. yuho/ast/dead_code.py +199 -0
  6. yuho/ast/exhaustiveness.py +503 -0
  7. yuho/ast/nodes.py +907 -0
  8. yuho/ast/overlap.py +291 -0
  9. yuho/ast/reachability.py +293 -0
  10. yuho/ast/scope_analysis.py +490 -0
  11. yuho/ast/transformer.py +490 -0
  12. yuho/ast/type_check.py +471 -0
  13. yuho/ast/type_inference.py +425 -0
  14. yuho/ast/visitor.py +239 -0
  15. yuho/cli/__init__.py +14 -0
  16. yuho/cli/commands/__init__.py +1 -0
  17. yuho/cli/commands/api.py +431 -0
  18. yuho/cli/commands/ast_viz.py +334 -0
  19. yuho/cli/commands/check.py +218 -0
  20. yuho/cli/commands/config.py +311 -0
  21. yuho/cli/commands/contribute.py +122 -0
  22. yuho/cli/commands/diff.py +487 -0
  23. yuho/cli/commands/explain.py +240 -0
  24. yuho/cli/commands/fmt.py +253 -0
  25. yuho/cli/commands/generate.py +316 -0
  26. yuho/cli/commands/graph.py +410 -0
  27. yuho/cli/commands/init.py +120 -0
  28. yuho/cli/commands/library.py +656 -0
  29. yuho/cli/commands/lint.py +503 -0
  30. yuho/cli/commands/lsp.py +36 -0
  31. yuho/cli/commands/preview.py +377 -0
  32. yuho/cli/commands/repl.py +444 -0
  33. yuho/cli/commands/serve.py +44 -0
  34. yuho/cli/commands/test.py +528 -0
  35. yuho/cli/commands/transpile.py +121 -0
  36. yuho/cli/commands/wizard.py +370 -0
  37. yuho/cli/completions.py +182 -0
  38. yuho/cli/error_formatter.py +193 -0
  39. yuho/cli/main.py +1064 -0
  40. yuho/config/__init__.py +46 -0
  41. yuho/config/loader.py +235 -0
  42. yuho/config/mask.py +194 -0
  43. yuho/config/schema.py +147 -0
  44. yuho/library/__init__.py +84 -0
  45. yuho/library/index.py +328 -0
  46. yuho/library/install.py +699 -0
  47. yuho/library/lockfile.py +330 -0
  48. yuho/library/package.py +421 -0
  49. yuho/library/resolver.py +791 -0
  50. yuho/library/signature.py +335 -0
  51. yuho/llm/__init__.py +45 -0
  52. yuho/llm/config.py +75 -0
  53. yuho/llm/factory.py +123 -0
  54. yuho/llm/prompts.py +146 -0
  55. yuho/llm/providers.py +383 -0
  56. yuho/llm/utils.py +470 -0
  57. yuho/lsp/__init__.py +14 -0
  58. yuho/lsp/code_action_handler.py +518 -0
  59. yuho/lsp/completion_handler.py +85 -0
  60. yuho/lsp/diagnostics.py +100 -0
  61. yuho/lsp/hover_handler.py +130 -0
  62. yuho/lsp/server.py +1425 -0
  63. yuho/mcp/__init__.py +10 -0
  64. yuho/mcp/server.py +1452 -0
  65. yuho/parser/__init__.py +8 -0
  66. yuho/parser/source_location.py +108 -0
  67. yuho/parser/wrapper.py +311 -0
  68. yuho/testing/__init__.py +48 -0
  69. yuho/testing/coverage.py +274 -0
  70. yuho/testing/fixtures.py +263 -0
  71. yuho/transpile/__init__.py +52 -0
  72. yuho/transpile/alloy_transpiler.py +546 -0
  73. yuho/transpile/base.py +100 -0
  74. yuho/transpile/blocks_transpiler.py +338 -0
  75. yuho/transpile/english_transpiler.py +470 -0
  76. yuho/transpile/graphql_transpiler.py +404 -0
  77. yuho/transpile/json_transpiler.py +217 -0
  78. yuho/transpile/jsonld_transpiler.py +250 -0
  79. yuho/transpile/latex_preamble.py +161 -0
  80. yuho/transpile/latex_transpiler.py +406 -0
  81. yuho/transpile/latex_utils.py +206 -0
  82. yuho/transpile/mermaid_transpiler.py +357 -0
  83. yuho/transpile/registry.py +275 -0
  84. yuho/verify/__init__.py +43 -0
  85. yuho/verify/alloy.py +352 -0
  86. yuho/verify/combined.py +218 -0
  87. yuho/verify/z3_solver.py +1155 -0
  88. yuho-5.0.0.dist-info/METADATA +186 -0
  89. yuho-5.0.0.dist-info/RECORD +91 -0
  90. yuho-5.0.0.dist-info/WHEEL +4 -0
  91. yuho-5.0.0.dist-info/entry_points.txt +2 -0
@@ -0,0 +1,186 @@
1
+ Metadata-Version: 2.4
2
+ Name: yuho
3
+ Version: 5.0.0
4
+ Summary: A domain-specific language for encoding legal statutes
5
+ Project-URL: Homepage, https://github.com/gongahkia/yuho
6
+ Project-URL: Documentation, https://yuho.dev/docs
7
+ Project-URL: Repository, https://github.com/gongahkia/yuho
8
+ Author-email: gongahkia <gongahkia@example.com>
9
+ License-Expression: MIT
10
+ Keywords: dsl,law,legal,parser,statute,transpiler
11
+ Classifier: Development Status :: 4 - Beta
12
+ Classifier: Intended Audience :: Developers
13
+ Classifier: Intended Audience :: Legal Industry
14
+ Classifier: License :: OSI Approved :: MIT License
15
+ Classifier: Programming Language :: Python :: 3
16
+ Classifier: Programming Language :: Python :: 3.10
17
+ Classifier: Programming Language :: Python :: 3.11
18
+ Classifier: Programming Language :: Python :: 3.12
19
+ Classifier: Topic :: Software Development :: Compilers
20
+ Classifier: Topic :: Text Processing :: Linguistic
21
+ Requires-Python: >=3.10
22
+ Requires-Dist: click<9.0,>=8.0
23
+ Requires-Dist: tree-sitter<0.24.0,>=0.21.0
24
+ Provides-Extra: all
25
+ Requires-Dist: black<25.0,>=23.0; extra == 'all'
26
+ Requires-Dist: fastmcp<1.0,>=0.1; extra == 'all'
27
+ Requires-Dist: httpx<1.0,>=0.24; extra == 'all'
28
+ Requires-Dist: hypothesis<7.0,>=6.0; extra == 'all'
29
+ Requires-Dist: mypy<2.0,>=1.0; extra == 'all'
30
+ Requires-Dist: pygls<2.0,>=1.0; extra == 'all'
31
+ Requires-Dist: pytest<9.0,>=7.0; extra == 'all'
32
+ Requires-Dist: transformers<5.0,>=4.30; extra == 'all'
33
+ Provides-Extra: dev
34
+ Requires-Dist: black<25.0,>=23.0; extra == 'dev'
35
+ Requires-Dist: hypothesis<7.0,>=6.0; extra == 'dev'
36
+ Requires-Dist: mypy<2.0,>=1.0; extra == 'dev'
37
+ Requires-Dist: pytest<9.0,>=7.0; extra == 'dev'
38
+ Provides-Extra: llm
39
+ Requires-Dist: httpx<1.0,>=0.24; extra == 'llm'
40
+ Requires-Dist: transformers<5.0,>=4.30; extra == 'llm'
41
+ Provides-Extra: lsp
42
+ Requires-Dist: pygls<2.0,>=1.0; extra == 'lsp'
43
+ Provides-Extra: mcp
44
+ Requires-Dist: fastmcp<1.0,>=0.1; extra == 'mcp'
45
+ Requires-Dist: httpx<1.0,>=0.24; extra == 'mcp'
46
+ Description-Content-Type: text/markdown
47
+
48
+ [![](https://img.shields.io/badge/yuho_1.0-passing-%23004D00)](https://github.com/gongahkia/yuho/releases/tag/1.0)
49
+ [![](https://img.shields.io/badge/yuho_2.0-passing-%23228B22)](https://github.com/gongahkia/yuho/releases/tag/2.0)
50
+ [![](https://img.shields.io/badge/yuho_3.0-passing-%2332CD32)](https://github.com/gongahkia/yuho/releases/tag/3.0)
51
+ [![](https://img.shields.io/badge/yuho_4.0-passing-%237CFC00)](https://github.com/gongahkia/yuho/releases/tag/4.0)
52
+ [![](https://img.shields.io/badge/yuho_5.0-passing-%2398FB98)](https://github.com/gongahkia/yuho/releases/tag/5.0)
53
+ ![](https://github.com/gongahkia/yuho/actions/workflows/ci.yml/badge.svg)
54
+ ![](https://github.com/gongahkia/yuho/actions/workflows/release.yml/badge.svg)
55
+
56
+ # `Yuho`
57
+
58
+ <p align="center">
59
+ <img src="./asset/logo/yuho_mascot.png" width=40% height=40%>
60
+ </p>
61
+
62
+ Yuho is a domain-specific language dedicated to simplifying [legalese](https://www.merriam-webster.com/dictionary/legalese) by providing a programmatic representation of Singapore Law.
63
+
64
+ Current applications are focused on Singapore Criminal Law but really can be applied to any jurisdiction that relies on [statutes](https://www.merriam-webster.com/dictionary/statute).
65
+
66
+ ## Rationale
67
+
68
+ The law is innately complex.
69
+
70
+ [Statutes](https://sso.agc.gov.sg/) are not always easy to understand, especially for incoming law students new to [legalese](https://www.merriam-webster.com/dictionary/legalese) and its [logical structure](https://law.stanford.edu/wp-content/uploads/2018/04/ILEI-Forms-of-Legal-Reasoning-2014.pdf).
71
+
72
+ Criminal Law is often a [foundational module](https://law.smu.edu.sg/programmes/core-courses-description) most students take in their first year of law school. In particular, Singapore Criminal Law is nearly entirely statute-based, largely focusing on the [Penal Code](https://sso.agc.gov.sg/Act/PC1871).
73
+
74
+ Yuho is a DSL that seeks to *help law students* better understand statutes by providing a flexible syntax which affords a programmatic representation of Singapore Criminal Law. By allowing users to decide how to represent stautory provisions in `.yh` code, the hope is that the statute's key elements and its underlying conditional relationships surface themselves. These representations can be coarse or granular, entirely scoped by their use-cases.
75
+
76
+ Getting into the specifics, Yuho provides the following four products.
77
+
78
+ 1. [Yuho](./doc/SYNTAX.md), a DSL made to be readable and codeable by law students and lawyers
79
+ 2. [Formalised semantics](./tests/) for legal reasoning modelled after the syntactical patterns of the law
80
+ 3. [CLI tool](./src/yuho/cli/) for interacting with Yuho's primary functions in the CLI
81
+ 4. [LSP](./src/yuho/lsp/) for editor integration with diagnostics, completion, and hover
82
+ 5. [Transpiler](./src/yuho/transpile/) that transpiles to multiple targets
83
+
84
+ ### Output formats
85
+
86
+ | Target | Usage |
87
+ | :--- | :--- |
88
+ | JSON | Machine-readable structured representation for tooling integration |
89
+ | JSON-LD | Linked data format for semantic web applications |
90
+ | English | Human-readable plain English explanation of statutory logic |
91
+ | Alloy | Formal verification with Alloy Analyzer |
92
+ | Z3 | SMT-based constraint solving and verification |
93
+ | Mermaid | Diagrammatic representations of statutory logic *(mindmap, flowchart)* |
94
+
95
+ Sold on Yuho? Check out the [quickstart](#quickstart) guide.
96
+
97
+ > [!TIP]
98
+ > More transpilation outputs can be added. Open an issue to contribute suggestions!
99
+
100
+ ## Nerd stuff
101
+
102
+ For those interested, Yuho v5 provides:
103
+
104
+ * **Tree-sitter based parser** for robust, incremental parsing with excellent error recovery
105
+ * **Full LSP implementation** with diagnostics, completion, hover, go-to-definition, and references
106
+ * **Property-based testing** with [Hypothesis](https://hypothesis.readthedocs.io/) for thorough validation
107
+ * **Formal verification** integration with [Alloy](https://alloytools.org/) and [Z3](https://github.com/Z3Prover/z3)
108
+ * **LLM integration** for statute explanation and analysis (local-first with Ollama, cloud fallback)
109
+ * **MCP server** exposing all functionality via Model Context Protocol
110
+
111
+ Yuho is [grammatically-validated](https://www.usna.edu/Users/cs/wcbrown/courses/F19SI413/lec/l07/lec.html), [exception-validated](https://www.reddit.com/r/learnjavascript/comments/y6663u/difference_between_input_validation_and_exception/), and [language-agnostic](https://softwareengineering.stackexchange.com/questions/28484/what-is-language-agnosticism-and-why-is-it-called-that), transpiling from one formally-specified source of truth to multiple target outputs.
112
+
113
+ Want to find out more? See Yuho's [documentation](#documentation).
114
+
115
+ ### Documentation
116
+
117
+ * [Language specification](./doc/SYNTAX.md)
118
+ * [Grammar specification](./grammar)
119
+ * [Formal verification](./tests)
120
+ * [Library statutes](./library/penal_code)
121
+ * [Examples](./example)
122
+
123
+ ## Quickstart
124
+
125
+ **Yuho v5.0**: Install via pip and start using immediately:
126
+
127
+ ```bash
128
+ pip install yuho
129
+ yuho --help
130
+ ```
131
+
132
+ **Learn Yuho**: Understand the basics in 5 minutes at [`5_MINUTES.md`](./doc/5_MINUTES.md).
133
+
134
+ **Legacy versions**: See [`archive/`](./archive/) for v1-v4 implementations.
135
+
136
+ ## Roadmap
137
+
138
+ For more details on what's being implemented in the future, refer to [`ROADMAP.md`](./doc/ROADMAP.md).
139
+
140
+ ## Scope
141
+
142
+ Development is currently scoped by the following statutes at [`SCOPE.md`](./doc/SCOPE.md).
143
+
144
+ ## Contribute
145
+
146
+ Yuho is open-source. Contribution guidelines are found at [`CONTRIBUTING.md`](./admin/CONTRIBUTING.md).
147
+
148
+ ## References
149
+
150
+ ### Analogues
151
+
152
+ Yuho takes much inspiration from the following projects.
153
+
154
+ * [Natural L4](https://github.com/smucclaw/dsl): Language with an English-like syntax that transpiles to multiple targets, focused on codification of Singapore law at large and Contract Law in specific.
155
+ * [Catala](https://github.com/CatalaLang): Language syntax that explicitly mimicks logical structure of the Law, focused on general Socio-fiscal legislature in most jurisidictions.
156
+ * [Blawx](https://github.com/Lexpedite/blawx): User-friendly web-based tool for Rules as Code, a declarative logic knowledge representation tool for encoding, testing and using rules.
157
+ * [Morphir](https://github.com/finos/morphir): Technology agnostic toolkit for digitisation of business models and their underlying decision logic, enabling automation in fintech.
158
+ * [OpenFisca](https://github.com/openfisca/openfisca-core): Open-source platform for modelling social policies through tax and benefits systems across jurisdictions.
159
+ * [Docassemble](https://docassemble.org/): Document automation system for generating guided interview documents through a question-and-answer interface.
160
+ * [Akoma Ntoso](https://github.com/oasis-open/legaldocml-akomantoso): Standardised XML schema for representing parliamentary, legislative and judiciary documents across jurisdictions.
161
+
162
+ ### Research
163
+
164
+ Yuho stands on the shoulders of past research and academia.
165
+
166
+ * [A Logic for Statutes](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=3088206) by Sarah B Lawsky
167
+ * [An End-to-End Pipeline from Law Text to Logical Formulas](https://ebooks.iospress.nl/volumearticle/62060) by Aarne Ranta, Inari Listenmaa, Jerrold Soh and Meng Weng Wong
168
+ * [Symbolic and automatic differentiation of languages](https://dl.acm.org/doi/10.1145/3473583) by Conal Elliott
169
+ * [Legal Rules, Legal Reasoning, and Nonmonotonic Logic](https://philpapers.org/rec/RIGLRL-2) by Adam W Rigoni
170
+ * [Law and logic: A review from an argumentation perspective](https://www.sciencedirect.com/science/article/pii/S0004370215000910) by Henry Prakken and Giovanni Sartor
171
+ * [Rules as code: Seven levels of digitisation](https://ink.library.smu.edu.sg/cgi/viewcontent.cgi?article=5051&context=sol_research) by Meng Weng Wong
172
+ * [Defeasible semantics for L4](https://ink.library.smu.edu.sg/cclaw/5/) by Guido Governatori and Meng Weng Wong
173
+ * [CLAWs and Effect](https://www.lawsociety.org.sg/publication/claws-and-effect/) by Alexis N Chun
174
+ * [The LKIF Core Ontology of Basic Legal Concepts](https://ceur-ws.org/Vol-321/paper3.pdf) by Rinke Hoekstra, Joost Breuker, Marcello Di Bello and Alexander Boer
175
+ * [ChatGPT, Large Language Models, and Law](https://fordhamlawreview.org/issues/chatgpt-large-language-models-and-law/) by Harry Surden
176
+ * [Scaling Laws for Neural Language Models](https://arxiv.org/abs/2001.08361) by Jared Kaplan, Sam McCandlish, Tom Henighan, Tom B Brown, Benjamin Chess, Rewon Child, Scott Gray, Alec Radford, Jeffrey Wu and Dario Amodei
177
+ * [Large Language Models in Law: A Survey](https://arxiv.org/pdf/2312.03718) by Jinqi Lai, Wensheng Gan, Jiayang Wu, Zhenlian Qi and Philip S Yu
178
+ * [Automating Defeasible Reasoning in Law with Answer Set Programming](http://platon.etsii.urjc.es/~jarias/GDE-2022/GDE-07.pdf) by Lim How Khang, Avishkar Mahajan, Martin Strecker and Meng Weng Wong
179
+ * [User Guided Abductive Proof Generation for Answer Set Programming Queries](https://dl.acm.org/doi/10.1145/3551357.3551383) by Avishkar Mahajan, Martin Strecker and Meng Weng Wong
180
+ * [Computer-Readable Legislation Project: What might an IDE-like drafting tool look like?](https://osf.io/uk2vy/) by Matthew Waddington, Laurence Diver and Tin San Leon Qiu
181
+ * [Normalized Legal Drafting and the Query Method](https://repository.law.umich.edu/articles/29/) by Layman E Allen and C Rudy Engholm
182
+ * [An IDE-like tool for legislative drafting](https://crlp-jerseyldo.github.io/work/an-ide-for-legislation) by crlp-jerseyldo.github.io
183
+ * [The Grammar And Structure Of Legal Texts](https://academic.oup.com/edited-volume/34877/chapter-abstract/298341735?redirectedFrom=fulltext) by Risto Hiltunen
184
+ * [Does Justice Have a Syntax?](https://www.jstor.org/stable/27073484) by Steven L Winter
185
+ * [The syntax of legal exceptions: how the absence of proof is a proof of absence thereof](https://www.tandfonline.com/doi/abs/10.1080/20414005.2017.1283567) by Kyriakos N Kotsoglou
186
+ * [The British Nationality Act as a logic program](https://www.semanticscholar.org/paper/The-British-Nationality-Act-as-a-logic-program-Sergot-Sadri/16d480717a1d233ae94b09e3b983d8cc96437644) by M Sergot, F Sadri, R Kowalski, F Kriwaczek, P Hammond and H T Cory
@@ -0,0 +1,91 @@
1
+ yuho/__init__.py,sha256=HAfxfYTI_8zTU9RrfC4lcGeCQkYNW5L5nU6UF2g-q6g,505
2
+ yuho/ast/__init__.py,sha256=N195bRlbVz3hGRVSUcNVXZIdTp7GVtEuwtWNpBf73_0,3990
3
+ yuho/ast/builder.py,sha256=DLED5Q88fnn4qOK_9NxNG_L0MzNDwKAxoHXkIbDM93I,37553
4
+ yuho/ast/constant_folder.py,sha256=gvHhXNfQSDI7qs3OfNQhkHI3RxeSJCUmn6cXODY0BwE,10018
5
+ yuho/ast/dead_code.py,sha256=hQsc2IaIDfjSPQLSbAly5spayf4CTL8N4kbp5qFzShk,6656
6
+ yuho/ast/exhaustiveness.py,sha256=nr-Ac_TSwwnvfGDU9xwjydesHSSCwMh079gNISZ2DQw,18417
7
+ yuho/ast/nodes.py,sha256=zVcs-L3VantxnrWK216CnQH8mjCOlB4RVv01vPefteA,24712
8
+ yuho/ast/overlap.py,sha256=drDoMEetEl_IFle19zL7L8B7rqPUoCp_G2m88FO1RZE,9720
9
+ yuho/ast/reachability.py,sha256=-WISr5Y9ZaOiIwiN8OLd4sNkoBjbZUN3tk-THaGsoLA,9782
10
+ yuho/ast/scope_analysis.py,sha256=XROQfXy9amU4ZBVlf_UxkxNwG8baXy1eGoPhRN6dT44,16201
11
+ yuho/ast/transformer.py,sha256=et61Fd6LN5EfMMQWh4mUjtpYWYUX9fFAMSazsRZmCzM,19634
12
+ yuho/ast/type_check.py,sha256=AvBhUPjhTWW23-4_t8n4DzgblCIKKbOI9gjUZ4gCTFs,17237
13
+ yuho/ast/type_inference.py,sha256=b-lj5YQxm-nqappSJaYdjJO6SJgbDQYdMMznAs0VQZ0,16041
14
+ yuho/ast/visitor.py,sha256=kEYQQHZb9_Hi4fpn0O8j6yiyP_MByI7YJ0JDwT4SjCE,8618
15
+ yuho/cli/__init__.py,sha256=7mplKKfDd3v5901nkcYr5M-b5NlJazpJUNmwg4qb7Ao,356
16
+ yuho/cli/completions.py,sha256=vkgTrBszf-YXdXcbDLEoUHr49-V5KQlKCQEJ4jyX7sI,4586
17
+ yuho/cli/error_formatter.py,sha256=u9XRBOtQiiM7NcNbrpoMVPAJGilaeUHcfFtaTH3MPrU,5911
18
+ yuho/cli/main.py,sha256=FBZmLbeoiQyL70iqeulFPBmj9Hlmcm7QdjW-BK2gQCs,33224
19
+ yuho/cli/commands/__init__.py,sha256=weT_1UUG8bWrm_1-nTnjYo70cH6YoDc8eD1H4yoEqew,36
20
+ yuho/cli/commands/api.py,sha256=NJetADN0ecM6sfUjMFG70pZWr6iSf6tF2xkqrjWkF0s,14019
21
+ yuho/cli/commands/ast_viz.py,sha256=oEVWi20U-Z6dY1QGJfttNpZ7a22Z-1qf7LHmbfQt9MM,10340
22
+ yuho/cli/commands/check.py,sha256=eiubIgK189fW13gdu3sqrPGJy9AY0zpGvMIe6UBi6_k,7770
23
+ yuho/cli/commands/config.py,sha256=DYpeZnQPdmYnibF_a1ZKTsw9vF8_AZFqpXGVaAb2BUA,10611
24
+ yuho/cli/commands/contribute.py,sha256=sXm16vDUcyCovy1PVyAsGVNx3n01bzBZx442-baLd_8,3793
25
+ yuho/cli/commands/diff.py,sha256=8C5SgG2CkoLfUS-K89GdSSY-bqHYxzfW0TnesflzIQ0,16306
26
+ yuho/cli/commands/explain.py,sha256=OT80R_q0lgPZnMBAFfkCUXj54OEUyDr0ELHC7Qsd8B0,7895
27
+ yuho/cli/commands/fmt.py,sha256=fvgqQE7KrH8hgGYAFWmpMXwKjfQKrjIpt4r6_TIEsck,8570
28
+ yuho/cli/commands/generate.py,sha256=Gub1LswbJ3oRX06f-RMlRNlTJYZB6XQrtblDdKGlHPo,10080
29
+ yuho/cli/commands/graph.py,sha256=ucKCdpko2sxUSIJhkaZ6XXgPOBKE_xTV2s_-rR5YZxo,12089
30
+ yuho/cli/commands/init.py,sha256=Ze6r9VMcuK-GY0XfApFjFf0nNPfbHWqPLmkpqbSY8D8,3385
31
+ yuho/cli/commands/library.py,sha256=59-U2m2TbhW28lUVLw-whraKgZqrHUJfUzMtcnNQ6rY,20688
32
+ yuho/cli/commands/lint.py,sha256=lSe9ON6c38NRZ66wK2n-1XfYw6_U6SsjhVCnM_KkrTY,17456
33
+ yuho/cli/commands/lsp.py,sha256=qoC_YvM5oTQRPQFSkCH12zYsr0Uskx4f8GJeYSa8MDg,971
34
+ yuho/cli/commands/preview.py,sha256=NdsJpGODZHwFTcMSRmg1d9-1uIcabmXe3_iNXz9aCAY,11699
35
+ yuho/cli/commands/repl.py,sha256=WrFM7gHbJx2Z7oEsDFyYw-3H_YzoLcagZ7B5s9dRS74,14811
36
+ yuho/cli/commands/serve.py,sha256=o65tthLqhpaQ5zh7ow94R3v_C6YOYO-luOHkvitsUWQ,1305
37
+ yuho/cli/commands/test.py,sha256=Pt2sbsfoZODu8dKh1naffoRtaSpfYwJlVcgSrl5zwf8,18251
38
+ yuho/cli/commands/transpile.py,sha256=0Z_zhgFtQnub_Fv1_MmF-Bf9IOPkikNOPriDgamWwbI,3734
39
+ yuho/cli/commands/wizard.py,sha256=5l2sCPZvYfTecfvtTp7M4kqREul4rqk-ztv-5pUU8z0,12641
40
+ yuho/config/__init__.py,sha256=BA3FCa38aK0QP7Sg8uss79ULrEWzLonXfNJ_ds4XCqQ,879
41
+ yuho/config/loader.py,sha256=MnQLrl6SYRY3kuMHKtj1krbmCphvpfH-TYP-2KjwSGU,6584
42
+ yuho/config/mask.py,sha256=piBKXigh646eeYzOKU0Nz1TEZHvTRikjB20D2gNTD68,5205
43
+ yuho/config/schema.py,sha256=E7C9EAVcpjTJDstLCHSIma4B3a2cnM09BxNEJQIBbKc,5466
44
+ yuho/library/__init__.py,sha256=Jdtj0KPk0EcyzpHGqeUyu9Pnh1gtmIyBAlcPsdRD7bY,1762
45
+ yuho/library/index.py,sha256=rVXxuBkknWB_j0BlXR6x_7A2QUjiNyLMqFobnbgh5eE,10523
46
+ yuho/library/install.py,sha256=ESVyW-lQJSbrja__HKDksc79IVhCZgdnev_PnSjQc7g,21582
47
+ yuho/library/lockfile.py,sha256=Y5SVT-Ni6a7fxbhbOBBG9d8yzO-cRdETP8EakajNJ-4,9710
48
+ yuho/library/package.py,sha256=0TdousKDO_2yirkCiwbjHHYSFphHxV-Qb0xS4WhRUOE,14007
49
+ yuho/library/resolver.py,sha256=lErnSF642eADEHqeXTtL6xLVOPs4v-t9Urfj4VvCGAE,26826
50
+ yuho/library/signature.py,sha256=4QzEy6g0lRn0zZjxFaBEvnUm5Js2qUD1Yb-jUl-mOaQ,10085
51
+ yuho/llm/__init__.py,sha256=H3m9jY8CI6vfRXMd0ccww5EG8k5Ya6Mdh6JYL56Ow1A,969
52
+ yuho/llm/config.py,sha256=iUExHJgEZOkwyabHElX3XxRXbqxodK8zkZ-Q3XPmXSc,2530
53
+ yuho/llm/factory.py,sha256=6Qqcn2b141DrKKVuk320jWee0xoLVPaR7rZ8DDqPczU,3926
54
+ yuho/llm/prompts.py,sha256=08XdOz_aW7XWf5MNvA9mnppNPlUmW5r7Frla_GET6z8,3806
55
+ yuho/llm/providers.py,sha256=dq_oGalSFWx0xVmb05xwMqVMfSm4AI38K7aks_VYcXc,12474
56
+ yuho/llm/utils.py,sha256=Vx89pkfVkoRfKgO6RK_pU_8UUWx1u8mgyRJOeaU2HwE,15652
57
+ yuho/lsp/__init__.py,sha256=fJ3im1ebvw_aaCJPHll-n3js-vaxQDdcW4JxjOydvYw,288
58
+ yuho/lsp/code_action_handler.py,sha256=T-PgEVz3fUivbFHP5-9HD4auOr4T0q8TLTGqgPHY7yQ,18330
59
+ yuho/lsp/completion_handler.py,sha256=TDfdEVjqqCkvg2nby31YCuUHlmsQLIFyCyS9TdDBCmk,2592
60
+ yuho/lsp/diagnostics.py,sha256=qEi9JDA9iuOjx1btG8zoG41IHAi1bEjKP-smyYPYogo,3065
61
+ yuho/lsp/hover_handler.py,sha256=VBRWyYFUVXqai46HrjUt91rMrWcDq2w9Xmp0VE2AKa4,4884
62
+ yuho/lsp/server.py,sha256=Z8ZcUpAc559HgP7aHBVhKuau2gbnUyTu2dOCe5zF-L4,54225
63
+ yuho/mcp/__init__.py,sha256=N6e9BjGZ6F3KivzHkfVGlKCllO26xYVTm3_fukIXNBY,302
64
+ yuho/mcp/server.py,sha256=6XRUZu-ERkW5PPghSUt--jvZH7irhQyQV-e-fimg9n4,51979
65
+ yuho/parser/__init__.py,sha256=oPlVid1qAfmUWLvZARzV1ngvTG0hUOMSUY4dYR0F-nM,280
66
+ yuho/parser/source_location.py,sha256=ODOPfpefukR7wD_BGuG44GPG5pcDIgYNMsNiKTmLFBw,4029
67
+ yuho/parser/wrapper.py,sha256=Kqq3lE1XMroHyRy94lfBvLBYurD9xE1gTTPtHkhQz9g,9648
68
+ yuho/testing/__init__.py,sha256=ueN0IXYzKFmPyhyY1gqRuZYzoAxp75lgQs4Rz-JQN5Q,1086
69
+ yuho/testing/coverage.py,sha256=uaIOpPq9pNWT7f5MAy61zXhtsiL01IPfardGeAdVZF4,9946
70
+ yuho/testing/fixtures.py,sha256=xMx3vmS7589t2wmBYIyL2SPxWbR11QdkCSIEE49XezU,7844
71
+ yuho/transpile/__init__.py,sha256=FU7Zd_4CNrWrg6Z3FABdss8Fk_W7oYDnZqrtGGLQIEY,1603
72
+ yuho/transpile/alloy_transpiler.py,sha256=WxvhYAZqC1W6C_9zySpYbuoTfg3lp2yckH2AO5irc-o,21756
73
+ yuho/transpile/base.py,sha256=YRHGRcJItAXwLVwhXb3-bY3KfaRU-2G7JkgxYOmLxOk,2780
74
+ yuho/transpile/blocks_transpiler.py,sha256=gVHsCRpM-ewWvDlPH3QJ8MLYHn7Hje3sUtyU2zXaZj8,10766
75
+ yuho/transpile/english_transpiler.py,sha256=q6kldrfOJNGsTmd39FQd5COkZdXzm8pw6WnpL9IYoTY,18592
76
+ yuho/transpile/graphql_transpiler.py,sha256=i2k9jx9l2wkgJd2AtPpaJUwpIe3TXwGXQS45DeysvcM,14556
77
+ yuho/transpile/json_transpiler.py,sha256=iZpDymf0gtLwFxyMlI00vaXhNpeyJZlzGlMiwu_-E4Y,10222
78
+ yuho/transpile/jsonld_transpiler.py,sha256=TzilaeHLwe8uTe00oT3rxHD-u-u-t-rZ9Z6sBHRtMIA,9312
79
+ yuho/transpile/latex_preamble.py,sha256=k6bfrajJKY33WTiZakXm3RcoUZlbKuSAojDGX9wGCEk,4311
80
+ yuho/transpile/latex_transpiler.py,sha256=kOhkwMcqKctZf4PbJivO518kSpXU_eppWw6Snem_EdY,14256
81
+ yuho/transpile/latex_utils.py,sha256=2cHNYl1Fze18Tb5kvPetGbM3rmnk26VuECvW2yh--d4,6816
82
+ yuho/transpile/mermaid_transpiler.py,sha256=Z1TELNg9GBaxBchcOA6NNOfBUMahyKMs9LX-7LZlf-Y,14454
83
+ yuho/transpile/registry.py,sha256=TXyU1bYv0uMhAtyWrMlffBShTELnQR_4HNM3drFSx2Y,9016
84
+ yuho/verify/__init__.py,sha256=xBsE45jN1pAf2tEr3vybXFwq-teAO8KyOHMXutlrqnU,1039
85
+ yuho/verify/alloy.py,sha256=xTQ04L5unpHaUv3Q-4xu4We-3s-o12F5lGuGjQ1DZPM,11827
86
+ yuho/verify/combined.py,sha256=-w52Bohm4vGA2c2pc6M4wdOPrOK5QO-XhT4H5gcvwog,6996
87
+ yuho/verify/z3_solver.py,sha256=5ZQnFWAU0VykYtWkUwSFQeiT1pp7YQLXuvS30I7QRrU,40207
88
+ yuho-5.0.0.dist-info/METADATA,sha256=WF5JKfo0bGSQYPMABs3ChWXESYXFYC6q9f4g_LYvb2E,12078
89
+ yuho-5.0.0.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
90
+ yuho-5.0.0.dist-info/entry_points.txt,sha256=S3LQ7oCM0Drs-zbqI3aCP4SusjBYRRCPqqwyyrqnEws,38
91
+ yuho-5.0.0.dist-info/RECORD,,
@@ -0,0 +1,4 @@
1
+ Wheel-Version: 1.0
2
+ Generator: hatchling 1.28.0
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ yuho = yuho.cli:cli