atopile 0.3.0.dev0__tar.gz → 0.3.7.dev0__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 (767) hide show
  1. atopile-0.3.7.dev0/.git-blame-ignore-revs +8 -0
  2. atopile-0.3.7.dev0/.gitattributes +18 -0
  3. atopile-0.3.7.dev0/.github/CODEOWNERS +32 -0
  4. atopile-0.3.7.dev0/.github/ISSUE_TEMPLATE/bug_report.yml +60 -0
  5. atopile-0.3.7.dev0/.github/ISSUE_TEMPLATE/config.yml +5 -0
  6. atopile-0.3.7.dev0/.github/ISSUE_TEMPLATE/feature_request.yml +26 -0
  7. atopile-0.3.7.dev0/.github/dependabot.yml +36 -0
  8. atopile-0.3.7.dev0/.github/pull_request_template.md +19 -0
  9. {atopile-0.3.0.dev0 → atopile-0.3.7.dev0}/.github/workflows/cd.yml +53 -62
  10. atopile-0.3.7.dev0/.github/workflows/pre-commit.yml +20 -0
  11. atopile-0.3.7.dev0/.github/workflows/pytest.yml +57 -0
  12. atopile-0.3.7.dev0/.github/workflows/regression.yml +94 -0
  13. atopile-0.3.7.dev0/.github/workflows/vsx.yml +45 -0
  14. {atopile-0.3.0.dev0 → atopile-0.3.7.dev0}/.github/workflows/website.yml +18 -7
  15. atopile-0.3.7.dev0/.github/workflows/wheels.yml +125 -0
  16. {atopile-0.3.0.dev0 → atopile-0.3.7.dev0}/.gitignore +19 -1
  17. atopile-0.3.7.dev0/.pre-commit-config.yaml +15 -0
  18. atopile-0.3.7.dev0/.vscode/extensions.json +11 -0
  19. atopile-0.3.7.dev0/.vscode/launch.shared.json +103 -0
  20. atopile-0.3.7.dev0/.vscode/settings.shared.json +9 -0
  21. atopile-0.3.7.dev0/.vscode/tasks.shared.json +63 -0
  22. atopile-0.3.7.dev0/LICENSE +21 -0
  23. atopile-0.3.7.dev0/PKG-INFO +210 -0
  24. atopile-0.3.7.dev0/README.md +130 -0
  25. atopile-0.3.7.dev0/atopile-custom-words.txt +46 -0
  26. atopile-0.3.7.dev0/cspell.json +17 -0
  27. atopile-0.3.7.dev0/dockerfiles/Dockerfile.kicad +41 -0
  28. atopile-0.3.7.dev0/docs/CNAME +1 -0
  29. atopile-0.3.7.dev0/docs/CODE_OF_CONDUCT.md +10 -0
  30. atopile-0.3.7.dev0/docs/CODING_GUIDELINES.md +14 -0
  31. atopile-0.3.7.dev0/docs/CONTRIBUTING.md +38 -0
  32. atopile-0.3.7.dev0/docs/api/cli.md +8 -0
  33. atopile-0.3.7.dev0/docs/api/solver.md +8 -0
  34. atopile-0.3.7.dev0/docs/assets/images/assertion-checks-2.png +0 -0
  35. atopile-0.3.7.dev0/docs/assets/images/assertion-checks.png +0 -0
  36. atopile-0.3.7.dev0/docs/assets/images/assertion-solver.png +0 -0
  37. atopile-0.3.7.dev0/docs/assets/images/ato_extension.png +0 -0
  38. atopile-0.3.7.dev0/docs/assets/images/block_diagram_example.png +0 -0
  39. atopile-0.3.7.dev0/docs/assets/images/buck_ic.png +0 -0
  40. atopile-0.3.7.dev0/docs/assets/images/buck_topology.png +0 -0
  41. atopile-0.3.7.dev0/docs/assets/images/capacitor_definition.png +0 -0
  42. atopile-0.3.7.dev0/docs/assets/images/ci-generated-gerbers-githash.png +0 -0
  43. atopile-0.3.7.dev0/docs/assets/images/ci-generated-gerbers.avif +0 -0
  44. atopile-0.3.7.dev0/docs/assets/images/ci-generated-gerbers.gif +0 -0
  45. atopile-0.3.7.dev0/docs/assets/images/cloud_bom.png +0 -0
  46. atopile-0.3.7.dev0/docs/assets/images/code-layout-pcb.png +0 -0
  47. atopile-0.3.7.dev0/docs/assets/images/debugger-vscode.png +0 -0
  48. atopile-0.3.7.dev0/docs/assets/images/discord-qr.png +0 -0
  49. atopile-0.3.7.dev0/docs/assets/images/download.png +0 -0
  50. atopile-0.3.7.dev0/docs/assets/images/equation-preview.gif +0 -0
  51. atopile-0.3.7.dev0/docs/assets/images/extension-python-setup.gif +0 -0
  52. atopile-0.3.7.dev0/docs/assets/images/footprints.png +0 -0
  53. atopile-0.3.7.dev0/docs/assets/images/groups.png +0 -0
  54. atopile-0.3.7.dev0/docs/assets/images/kicad_buttons.png +0 -0
  55. atopile-0.3.7.dev0/docs/assets/images/ldo-demo.png +0 -0
  56. atopile-0.3.7.dev0/docs/assets/images/mosfet.png +0 -0
  57. atopile-0.3.7.dev0/docs/assets/images/placement-reuse.avif +0 -0
  58. atopile-0.3.7.dev0/docs/assets/images/placement-reuse.gif +0 -0
  59. atopile-0.3.7.dev0/docs/assets/images/reload.png +0 -0
  60. atopile-0.3.7.dev0/docs/assets/images/schematic_example.png +0 -0
  61. atopile-0.3.7.dev0/docs/assets/images/slice.png +0 -0
  62. atopile-0.3.7.dev0/docs/assets/images/slow-to-fast-hq.gif +0 -0
  63. atopile-0.3.7.dev0/docs/assets/images/swoop-block-diagram.png +0 -0
  64. atopile-0.3.7.dev0/docs/assets/images/swoop-bringup.png +0 -0
  65. atopile-0.3.7.dev0/docs/assets/images/swoop.png +0 -0
  66. atopile-0.3.7.dev0/docs/assets/images/trace-reuse.avif +0 -0
  67. atopile-0.3.7.dev0/docs/assets/images/trace-reuse.gif +0 -0
  68. atopile-0.3.7.dev0/docs/assets/images/upload.png +0 -0
  69. atopile-0.3.7.dev0/docs/assets/logo/emblem.svg +20 -0
  70. atopile-0.3.7.dev0/docs/assets/logo/faebryk_logo.png +0 -0
  71. atopile-0.3.7.dev0/docs/assets/logo/logo-with-text-dark.png +0 -0
  72. atopile-0.3.7.dev0/docs/assets/logo/logo-with-text.png +0 -0
  73. atopile-0.3.7.dev0/docs/blog/posts/assertions.md +34 -0
  74. atopile-0.3.7.dev0/docs/blog/posts/ci-generated-gerbers.md +30 -0
  75. atopile-0.3.7.dev0/docs/blog/posts/cloud_components.md +69 -0
  76. atopile-0.3.7.dev0/docs/blog/posts/dsl.md +27 -0
  77. atopile-0.3.7.dev0/docs/blog/posts/layout-reuse-2.md +22 -0
  78. atopile-0.3.7.dev0/docs/blog/posts/layout-reuse.md +30 -0
  79. atopile-0.3.7.dev0/docs/blog/posts/matts-story.md +24 -0
  80. atopile-0.3.7.dev0/docs/blog/posts/narayans-story.md +44 -0
  81. atopile-0.3.7.dev0/docs/blog/posts/traits.md +111 -0
  82. atopile-0.3.7.dev0/docs/building.md +55 -0
  83. atopile-0.3.7.dev0/docs/ci.md +16 -0
  84. atopile-0.3.7.dev0/docs/class.md +88 -0
  85. atopile-0.3.7.dev0/docs/component_selection.md +22 -0
  86. atopile-0.3.7.dev0/docs/config.md +67 -0
  87. atopile-0.3.7.dev0/docs/connect.md +5 -0
  88. atopile-0.3.7.dev0/docs/development.md +66 -0
  89. atopile-0.3.7.dev0/docs/doc-strings.md +13 -0
  90. atopile-0.3.7.dev0/docs/first_project.md +86 -0
  91. atopile-0.3.7.dev0/docs/git.md +47 -0
  92. atopile-0.3.7.dev0/docs/how-to.md +82 -0
  93. atopile-0.3.7.dev0/docs/import.md +16 -0
  94. atopile-0.3.7.dev0/docs/index.md +144 -0
  95. atopile-0.3.7.dev0/docs/install.md +100 -0
  96. atopile-0.3.7.dev0/docs/kicad.md +80 -0
  97. atopile-0.3.7.dev0/docs/maths.md +104 -0
  98. atopile-0.3.7.dev0/docs/overrides/assets/javascripts/custom.129bd6ad.min.js +18 -0
  99. atopile-0.3.7.dev0/docs/overrides/assets/javascripts/custom.129bd6ad.min.js.map +7 -0
  100. atopile-0.3.7.dev0/docs/overrides/assets/javascripts/iconsearch_index.json +1 -0
  101. atopile-0.3.7.dev0/docs/overrides/assets/stylesheets/custom.css +570 -0
  102. atopile-0.3.7.dev0/docs/overrides/home.html +29 -0
  103. atopile-0.3.7.dev0/docs/overrides/hooks/shortcodes.py +284 -0
  104. atopile-0.3.7.dev0/docs/overrides/hooks/translations.html +32 -0
  105. atopile-0.3.7.dev0/docs/overrides/hooks/translations.py +194 -0
  106. atopile-0.3.7.dev0/docs/overrides/main.html +40 -0
  107. atopile-0.3.7.dev0/docs/roadmap.md +60 -0
  108. atopile-0.3.7.dev0/docs/spin.md +36 -0
  109. atopile-0.3.7.dev0/docs/swoop.md +40 -0
  110. atopile-0.3.7.dev0/docs/types.md +118 -0
  111. atopile-0.3.7.dev0/docs/view.md +84 -0
  112. atopile-0.3.7.dev0/docs/yc-hardware-meetup.md +22 -0
  113. atopile-0.3.7.dev0/examples/.ato/modules/generics/README.md +3 -0
  114. atopile-0.3.7.dev0/examples/.ato/modules/generics/capacitors.ato +2 -0
  115. atopile-0.3.7.dev0/examples/.ato/modules/generics/resistors.ato +2 -0
  116. atopile-0.3.7.dev0/examples/.gitignore +8 -0
  117. atopile-0.3.7.dev0/examples/README.md +4 -0
  118. atopile-0.3.7.dev0/examples/ato.yaml +11 -0
  119. atopile-0.3.7.dev0/examples/ch1_1_ato.ato +14 -0
  120. atopile-0.3.7.dev0/examples/ch1_2_ldo_demo.ato +88 -0
  121. atopile-0.3.7.dev0/examples/ch2_1_fab.py +52 -0
  122. atopile-0.3.7.dev0/examples/ch2_2_minimal_led.py +42 -0
  123. atopile-0.3.7.dev0/examples/ch2_3_minimal_led_explicit_parts.py +41 -0
  124. atopile-0.3.7.dev0/examples/ch2_4_maximal_led.py +122 -0
  125. atopile-0.3.7.dev0/examples/ch2_5_signal_processing.py +45 -0
  126. atopile-0.3.7.dev0/examples/ch2_6_route.py +165 -0
  127. atopile-0.3.7.dev0/examples/ch2_7_pcb_layout.py +83 -0
  128. atopile-0.3.7.dev0/examples/ch2_8_mcu.py +68 -0
  129. atopile-0.3.7.dev0/examples/ch2_9_iterative_design_nand.py +156 -0
  130. atopile-0.3.7.dev0/examples/layout/ato/fp-lib-table +8 -0
  131. atopile-0.3.7.dev0/examples/layout/ato/pcb.kicad_pcb +78 -0
  132. atopile-0.3.7.dev0/examples/layout/ato/pcb.kicad_pro +273 -0
  133. atopile-0.3.7.dev0/examples/layout/fab/fp-lib-table +8 -0
  134. atopile-0.3.7.dev0/examples/layout/fab/pcb.kicad_pcb +450 -0
  135. atopile-0.3.7.dev0/examples/layout/fab/pcb.kicad_pro +273 -0
  136. atopile-0.3.7.dev0/mkdocs.yml +165 -0
  137. atopile-0.3.7.dev0/pyproject.toml +291 -0
  138. atopile-0.3.7.dev0/scripts/attach_license.py +44 -0
  139. atopile-0.3.7.dev0/scripts/clean_issues.py +30 -0
  140. atopile-0.3.7.dev0/scripts/find_duplicate_test_files.sh +8 -0
  141. atopile-0.3.7.dev0/src/atopile/__main__.py +4 -0
  142. atopile-0.3.7.dev0/src/atopile/_shim.py +400 -0
  143. atopile-0.3.7.dev0/src/atopile/address.py +231 -0
  144. atopile-0.3.7.dev0/src/atopile/buildutil.py +407 -0
  145. atopile-0.3.7.dev0/src/atopile/cli/build.py +169 -0
  146. atopile-0.3.7.dev0/src/atopile/cli/cli.py +113 -0
  147. atopile-0.3.7.dev0/src/atopile/cli/common.py +221 -0
  148. atopile-0.3.7.dev0/src/atopile/cli/configure.py +155 -0
  149. atopile-0.3.7.dev0/src/atopile/cli/console.py +8 -0
  150. atopile-0.3.7.dev0/src/atopile/cli/create.py +558 -0
  151. atopile-0.3.7.dev0/src/atopile/cli/excepthook.py +61 -0
  152. atopile-0.3.7.dev0/src/atopile/cli/inspect.py +65 -0
  153. atopile-0.3.7.dev0/src/atopile/cli/install.py +335 -0
  154. atopile-0.3.7.dev0/src/atopile/cli/logging.py +232 -0
  155. atopile-0.3.7.dev0/src/atopile/cli/view.py +31 -0
  156. atopile-0.3.7.dev0/src/atopile/config.py +483 -0
  157. {atopile-0.3.0.dev0 → atopile-0.3.7.dev0}/src/atopile/datatypes.py +36 -34
  158. atopile-0.3.7.dev0/src/atopile/errors.py +234 -0
  159. atopile-0.3.7.dev0/src/atopile/front_end.py +1611 -0
  160. atopile-0.3.7.dev0/src/atopile/kicad_plugin/.gitignore +1 -0
  161. atopile-0.3.7.dev0/src/atopile/kicad_plugin/README.md +20 -0
  162. atopile-0.3.7.dev0/src/atopile/kicad_plugin/__init__.py +3 -0
  163. atopile-0.3.7.dev0/src/atopile/kicad_plugin/buttons.svg +232 -0
  164. atopile-0.3.7.dev0/src/atopile/kicad_plugin/common.py +223 -0
  165. atopile-0.3.7.dev0/src/atopile/kicad_plugin/download.png +0 -0
  166. atopile-0.3.7.dev0/src/atopile/kicad_plugin/pullgroup.py +90 -0
  167. atopile-0.3.7.dev0/src/atopile/kicad_plugin/pushgroup.py +89 -0
  168. atopile-0.3.7.dev0/src/atopile/kicad_plugin/reload.png +0 -0
  169. atopile-0.3.7.dev0/src/atopile/kicad_plugin/reloadgroup.py +59 -0
  170. atopile-0.3.7.dev0/src/atopile/kicad_plugin/upload.png +0 -0
  171. atopile-0.3.7.dev0/src/atopile/layout.py +134 -0
  172. {atopile-0.3.0.dev0 → atopile-0.3.7.dev0}/src/atopile/parse.py +50 -26
  173. atopile-0.3.7.dev0/src/atopile/parse_utils.py +277 -0
  174. atopile-0.3.0.dev0/src/atopile/parser/AtopileLexer.g4 → atopile-0.3.7.dev0/src/atopile/parser/AtoLexer.g4 +26 -28
  175. atopile-0.3.7.dev0/src/atopile/parser/AtoLexer.interp +288 -0
  176. atopile-0.3.7.dev0/src/atopile/parser/AtoLexer.py +626 -0
  177. atopile-0.3.0.dev0/src/atopile/parser/AtopileLexer.tokens → atopile-0.3.7.dev0/src/atopile/parser/AtoLexer.tokens +13 -8
  178. atopile-0.3.7.dev0/src/atopile/parser/AtoLexerBase.py +393 -0
  179. atopile-0.3.7.dev0/src/atopile/parser/AtoParser.g4 +155 -0
  180. atopile-0.3.7.dev0/src/atopile/parser/AtoParser.interp +230 -0
  181. atopile-0.3.7.dev0/src/atopile/parser/AtoParser.py +3695 -0
  182. atopile-0.3.0.dev0/src/atopile/parser/AtopileParser.tokens → atopile-0.3.7.dev0/src/atopile/parser/AtoParser.tokens +13 -8
  183. atopile-0.3.7.dev0/src/atopile/parser/AtoParserBase.py +4 -0
  184. atopile-0.3.7.dev0/src/atopile/parser/AtoParserVisitor.py +288 -0
  185. {atopile-0.3.0.dev0 → atopile-0.3.7.dev0}/src/atopile/parser/README.md +3 -2
  186. atopile-0.3.7.dev0/src/atopile/parser/__init__.py +57 -0
  187. atopile-0.3.7.dev0/src/atopile/parser/build.sh +3 -0
  188. atopile-0.3.7.dev0/src/atopile/telemetry.py +185 -0
  189. {atopile-0.3.0.dev0 → atopile-0.3.7.dev0}/src/atopile/version.py +61 -23
  190. atopile-0.3.7.dev0/src/faebryk/__init__.py +0 -0
  191. atopile-0.3.7.dev0/src/faebryk/core/__init__.py +0 -0
  192. atopile-0.3.7.dev0/src/faebryk/core/core.py +27 -0
  193. atopile-0.3.7.dev0/src/faebryk/core/cpp/.clang-format +9 -0
  194. atopile-0.3.7.dev0/src/faebryk/core/cpp/CMakeLists.txt +87 -0
  195. atopile-0.3.7.dev0/src/faebryk/core/cpp/__init__.py +140 -0
  196. atopile-0.3.7.dev0/src/faebryk/core/cpp/__init__.pyi +212 -0
  197. atopile-0.3.7.dev0/src/faebryk/core/cpp/cpp_helpers.py +7 -0
  198. atopile-0.3.7.dev0/src/faebryk/core/cpp/include/graph/graph.hpp +284 -0
  199. atopile-0.3.7.dev0/src/faebryk/core/cpp/include/graph/graphinterfaces.hpp +73 -0
  200. atopile-0.3.7.dev0/src/faebryk/core/cpp/include/graph/links.hpp +135 -0
  201. atopile-0.3.7.dev0/src/faebryk/core/cpp/include/nano.hpp +118 -0
  202. atopile-0.3.7.dev0/src/faebryk/core/cpp/include/pathfinder/bfs.hpp +61 -0
  203. atopile-0.3.7.dev0/src/faebryk/core/cpp/include/pathfinder/pathcounter.hpp +37 -0
  204. atopile-0.3.7.dev0/src/faebryk/core/cpp/include/pathfinder/pathfinder.hpp +65 -0
  205. atopile-0.3.7.dev0/src/faebryk/core/cpp/include/perf.hpp +32 -0
  206. atopile-0.3.7.dev0/src/faebryk/core/cpp/include/pyutil.hpp +74 -0
  207. atopile-0.3.7.dev0/src/faebryk/core/cpp/include/util.hpp +56 -0
  208. atopile-0.3.7.dev0/src/faebryk/core/cpp/src/graph/graph.cpp +230 -0
  209. atopile-0.3.7.dev0/src/faebryk/core/cpp/src/graph/graphinterface.cpp +131 -0
  210. atopile-0.3.7.dev0/src/faebryk/core/cpp/src/graph/graphinterfaces.cpp +117 -0
  211. atopile-0.3.7.dev0/src/faebryk/core/cpp/src/graph/link.cpp +61 -0
  212. atopile-0.3.7.dev0/src/faebryk/core/cpp/src/graph/links.cpp +343 -0
  213. atopile-0.3.7.dev0/src/faebryk/core/cpp/src/graph/node.cpp +259 -0
  214. atopile-0.3.7.dev0/src/faebryk/core/cpp/src/graph/path.cpp +101 -0
  215. atopile-0.3.7.dev0/src/faebryk/core/cpp/src/graph/type.cpp +48 -0
  216. atopile-0.3.7.dev0/src/faebryk/core/cpp/src/main.cpp +234 -0
  217. atopile-0.3.7.dev0/src/faebryk/core/cpp/src/pathfinder/bfs.cpp +187 -0
  218. atopile-0.3.7.dev0/src/faebryk/core/cpp/src/pathfinder/pathcounter.cpp +63 -0
  219. atopile-0.3.7.dev0/src/faebryk/core/cpp/src/pathfinder/pathfinder.cpp +426 -0
  220. atopile-0.3.7.dev0/src/faebryk/core/cpp/src/perf.cpp +60 -0
  221. atopile-0.3.7.dev0/src/faebryk/core/graph.py +55 -0
  222. atopile-0.3.7.dev0/src/faebryk/core/graphinterface.py +14 -0
  223. atopile-0.3.7.dev0/src/faebryk/core/link.py +19 -0
  224. atopile-0.3.7.dev0/src/faebryk/core/module.py +230 -0
  225. atopile-0.3.7.dev0/src/faebryk/core/moduleinterface.py +251 -0
  226. atopile-0.3.7.dev0/src/faebryk/core/node.py +808 -0
  227. atopile-0.3.7.dev0/src/faebryk/core/parameter.py +1632 -0
  228. atopile-0.3.7.dev0/src/faebryk/core/pathfinder.py +125 -0
  229. atopile-0.3.7.dev0/src/faebryk/core/reference.py +63 -0
  230. atopile-0.3.7.dev0/src/faebryk/core/solver/__init__.py +0 -0
  231. atopile-0.3.7.dev0/src/faebryk/core/solver/analytical.py +684 -0
  232. atopile-0.3.7.dev0/src/faebryk/core/solver/canonical.py +265 -0
  233. atopile-0.3.7.dev0/src/faebryk/core/solver/defaultsolver.py +482 -0
  234. atopile-0.3.7.dev0/src/faebryk/core/solver/literal_folding.py +783 -0
  235. atopile-0.3.7.dev0/src/faebryk/core/solver/solver.py +108 -0
  236. atopile-0.3.7.dev0/src/faebryk/core/solver/utils.py +1013 -0
  237. atopile-0.3.7.dev0/src/faebryk/core/trait.py +174 -0
  238. atopile-0.3.7.dev0/src/faebryk/exporters/bom/jlcpcb.py +158 -0
  239. atopile-0.3.7.dev0/src/faebryk/exporters/documentation/datasheets.py +88 -0
  240. atopile-0.3.7.dev0/src/faebryk/exporters/esphome/esphome.py +36 -0
  241. atopile-0.3.7.dev0/src/faebryk/exporters/netlist/graph.py +330 -0
  242. atopile-0.3.7.dev0/src/faebryk/exporters/netlist/kicad/netlist_kicad.py +84 -0
  243. atopile-0.3.7.dev0/src/faebryk/exporters/netlist/netlist.py +74 -0
  244. atopile-0.3.7.dev0/src/faebryk/exporters/parameters/parameters_to_file.py +191 -0
  245. atopile-0.3.7.dev0/src/faebryk/exporters/pcb/kicad/artifacts.py +166 -0
  246. atopile-0.3.7.dev0/src/faebryk/exporters/pcb/kicad/pcb.py +453 -0
  247. atopile-0.3.7.dev0/src/faebryk/exporters/pcb/kicad/transformer.py +1320 -0
  248. atopile-0.3.7.dev0/src/faebryk/exporters/pcb/layout/absolute.py +26 -0
  249. atopile-0.3.7.dev0/src/faebryk/exporters/pcb/layout/extrude.py +61 -0
  250. atopile-0.3.7.dev0/src/faebryk/exporters/pcb/layout/font.py +84 -0
  251. atopile-0.3.7.dev0/src/faebryk/exporters/pcb/layout/heuristic_decoupling.py +300 -0
  252. atopile-0.3.7.dev0/src/faebryk/exporters/pcb/layout/heuristic_pulls.py +53 -0
  253. atopile-0.3.7.dev0/src/faebryk/exporters/pcb/layout/layout.py +8 -0
  254. atopile-0.3.7.dev0/src/faebryk/exporters/pcb/layout/matrix.py +66 -0
  255. atopile-0.3.7.dev0/src/faebryk/exporters/pcb/layout/next_to.py +34 -0
  256. atopile-0.3.7.dev0/src/faebryk/exporters/pcb/layout/next_to_pin.py +41 -0
  257. atopile-0.3.7.dev0/src/faebryk/exporters/pcb/layout/typehierarchy.py +87 -0
  258. atopile-0.3.7.dev0/src/faebryk/exporters/pcb/pick_and_place/jlcpcb.py +30 -0
  259. atopile-0.3.7.dev0/src/faebryk/exporters/pcb/routing/util.py +224 -0
  260. atopile-0.3.7.dev0/src/faebryk/exporters/project/faebryk/project_faebryk.py +231 -0
  261. atopile-0.3.7.dev0/src/faebryk/exporters/schematic/kicad/transformer.py +441 -0
  262. atopile-0.3.7.dev0/src/faebryk/exporters/visualize/interactive_graph.py +297 -0
  263. atopile-0.3.7.dev0/src/faebryk/exporters/visualize/interactive_params.py +264 -0
  264. atopile-0.3.7.dev0/src/faebryk/exporters/visualize/interactive_params_base.py +713 -0
  265. atopile-0.3.7.dev0/src/faebryk/exporters/visualize/util.py +52 -0
  266. atopile-0.3.7.dev0/src/faebryk/importers/netlist/kicad/netlist_kicad.py +42 -0
  267. atopile-0.3.7.dev0/src/faebryk/library/Analog_Devices_ADM2587EBRWZ.py +130 -0
  268. atopile-0.3.7.dev0/src/faebryk/library/Analog_Devices_ADM2587EBRWZ_ReferenceDesign.py +89 -0
  269. atopile-0.3.7.dev0/src/faebryk/library/B0505S_1WR3.py +76 -0
  270. atopile-0.3.7.dev0/src/faebryk/library/B4B_ZR_SM4_TF.py +31 -0
  271. atopile-0.3.7.dev0/src/faebryk/library/BH1750FVI_TR.py +120 -0
  272. atopile-0.3.7.dev0/src/faebryk/library/BJT.py +49 -0
  273. atopile-0.3.7.dev0/src/faebryk/library/Battery.py +30 -0
  274. atopile-0.3.7.dev0/src/faebryk/library/Button.py +29 -0
  275. atopile-0.3.7.dev0/src/faebryk/library/ButtonCell.py +70 -0
  276. atopile-0.3.7.dev0/src/faebryk/library/CBM9002A_56ILG.py +193 -0
  277. atopile-0.3.7.dev0/src/faebryk/library/CBM9002A_56ILG_ReferenceDesign.py +93 -0
  278. atopile-0.3.7.dev0/src/faebryk/library/CD4011.py +16 -0
  279. atopile-0.3.7.dev0/src/faebryk/library/CH340x.py +42 -0
  280. atopile-0.3.7.dev0/src/faebryk/library/CH342.py +138 -0
  281. atopile-0.3.7.dev0/src/faebryk/library/CH342F.py +140 -0
  282. atopile-0.3.7.dev0/src/faebryk/library/CH342F_ReferenceDesign.py +50 -0
  283. atopile-0.3.7.dev0/src/faebryk/library/CH342K.py +62 -0
  284. atopile-0.3.7.dev0/src/faebryk/library/CH342K_ReferenceDesign.py +50 -0
  285. atopile-0.3.7.dev0/src/faebryk/library/CH344.py +79 -0
  286. atopile-0.3.7.dev0/src/faebryk/library/CH344Q.py +147 -0
  287. atopile-0.3.7.dev0/src/faebryk/library/CH344Q_ReferenceDesign.py +155 -0
  288. atopile-0.3.7.dev0/src/faebryk/library/Capacitor.py +77 -0
  289. atopile-0.3.7.dev0/src/faebryk/library/Common_Mode_Filter.py +51 -0
  290. atopile-0.3.7.dev0/src/faebryk/library/Comparator.py +69 -0
  291. atopile-0.3.7.dev0/src/faebryk/library/Crystal.py +79 -0
  292. atopile-0.3.7.dev0/src/faebryk/library/Crystal_Oscillator.py +116 -0
  293. atopile-0.3.7.dev0/src/faebryk/library/DE9Connector.py +66 -0
  294. atopile-0.3.7.dev0/src/faebryk/library/DE9RS232Connector.py +54 -0
  295. atopile-0.3.7.dev0/src/faebryk/library/DIP.py +37 -0
  296. atopile-0.3.7.dev0/src/faebryk/library/DifferentialPair.py +33 -0
  297. atopile-0.3.7.dev0/src/faebryk/library/Diode.py +82 -0
  298. atopile-0.3.7.dev0/src/faebryk/library/Diodes_Incorporated_AP2552W6_7.py +28 -0
  299. atopile-0.3.7.dev0/src/faebryk/library/Diodes_Incorporated_AP2553W6_7.py +29 -0
  300. atopile-0.3.7.dev0/src/faebryk/library/Diodes_Incorporated_AP255x_x.py +144 -0
  301. atopile-0.3.7.dev0/src/faebryk/library/EEPROM.py +52 -0
  302. atopile-0.3.7.dev0/src/faebryk/library/ESP32_C3.py +230 -0
  303. atopile-0.3.7.dev0/src/faebryk/library/ESP32_C3_MINI_1.py +145 -0
  304. atopile-0.3.7.dev0/src/faebryk/library/ESP32_C3_MINI_1_ReferenceDesign.py +95 -0
  305. atopile-0.3.7.dev0/src/faebryk/library/ElecSuper_PSM712_ES.py +64 -0
  306. atopile-0.3.7.dev0/src/faebryk/library/ElectricLogic.py +143 -0
  307. atopile-0.3.7.dev0/src/faebryk/library/ElectricLogicGate.py +22 -0
  308. atopile-0.3.7.dev0/src/faebryk/library/ElectricLogicGates.py +23 -0
  309. atopile-0.3.7.dev0/src/faebryk/library/ElectricPower.py +123 -0
  310. atopile-0.3.7.dev0/src/faebryk/library/Electrical.py +23 -0
  311. atopile-0.3.7.dev0/src/faebryk/library/EnablePin.py +36 -0
  312. atopile-0.3.7.dev0/src/faebryk/library/Ethernet.py +28 -0
  313. atopile-0.3.7.dev0/src/faebryk/library/Fan.py +9 -0
  314. atopile-0.3.7.dev0/src/faebryk/library/Filter.py +36 -0
  315. atopile-0.3.7.dev0/src/faebryk/library/FilterElectricalLC.py +60 -0
  316. atopile-0.3.7.dev0/src/faebryk/library/FilterElectricalRC.py +60 -0
  317. atopile-0.3.7.dev0/src/faebryk/library/Footprint.py +20 -0
  318. atopile-0.3.7.dev0/src/faebryk/library/Fuse.py +46 -0
  319. atopile-0.3.7.dev0/src/faebryk/library/GDT.py +36 -0
  320. atopile-0.3.7.dev0/src/faebryk/library/GenericBusProtection.py +79 -0
  321. atopile-0.3.7.dev0/src/faebryk/library/HDMI.py +35 -0
  322. atopile-0.3.7.dev0/src/faebryk/library/HLK_LD2410B_P.py +96 -0
  323. atopile-0.3.7.dev0/src/faebryk/library/Header.py +84 -0
  324. atopile-0.3.7.dev0/src/faebryk/library/I2C.py +48 -0
  325. atopile-0.3.7.dev0/src/faebryk/library/I2S.py +26 -0
  326. atopile-0.3.7.dev0/src/faebryk/library/INA228.py +113 -0
  327. atopile-0.3.7.dev0/src/faebryk/library/INA228_ReferenceDesign.py +110 -0
  328. atopile-0.3.7.dev0/src/faebryk/library/ISO1540.py +98 -0
  329. atopile-0.3.7.dev0/src/faebryk/library/ISO1540_ReferenceDesign.py +30 -0
  330. atopile-0.3.7.dev0/src/faebryk/library/Inductor.py +57 -0
  331. atopile-0.3.7.dev0/src/faebryk/library/JTAG.py +23 -0
  332. atopile-0.3.7.dev0/src/faebryk/library/KicadFootprint.py +36 -0
  333. atopile-0.3.7.dev0/src/faebryk/library/LDO.py +121 -0
  334. atopile-0.3.7.dev0/src/faebryk/library/LED.py +87 -0
  335. atopile-0.3.7.dev0/src/faebryk/library/LEDIndicator.py +35 -0
  336. atopile-0.3.7.dev0/src/faebryk/library/Logic.py +17 -0
  337. atopile-0.3.7.dev0/src/faebryk/library/Logic74xx.py +75 -0
  338. atopile-0.3.7.dev0/src/faebryk/library/LogicGate.py +83 -0
  339. atopile-0.3.7.dev0/src/faebryk/library/LogicGates.py +23 -0
  340. atopile-0.3.7.dev0/src/faebryk/library/LogicOps.py +49 -0
  341. atopile-0.3.7.dev0/src/faebryk/library/M24C08_FMN6TP.py +91 -0
  342. atopile-0.3.7.dev0/src/faebryk/library/MCP2221A.py +37 -0
  343. atopile-0.3.7.dev0/src/faebryk/library/ME6211C33M5G_N.py +44 -0
  344. atopile-0.3.7.dev0/src/faebryk/library/MOSFET.py +53 -0
  345. atopile-0.3.7.dev0/src/faebryk/library/Mechanical.py +7 -0
  346. atopile-0.3.7.dev0/src/faebryk/library/Mounting_Hole.py +49 -0
  347. atopile-0.3.7.dev0/src/faebryk/library/MultiCapacitor.py +81 -0
  348. atopile-0.3.7.dev0/src/faebryk/library/MultiSPI.py +26 -0
  349. atopile-0.3.7.dev0/src/faebryk/library/Net.py +51 -0
  350. atopile-0.3.7.dev0/src/faebryk/library/OLED_Module.py +61 -0
  351. atopile-0.3.7.dev0/src/faebryk/library/OpAmp.py +53 -0
  352. atopile-0.3.7.dev0/src/faebryk/library/PANASONIC_AQY212EHAX.py +68 -0
  353. atopile-0.3.7.dev0/src/faebryk/library/PJ398SM.py +16 -0
  354. atopile-0.3.7.dev0/src/faebryk/library/PM1006.py +62 -0
  355. atopile-0.3.7.dev0/src/faebryk/library/Pad.py +46 -0
  356. atopile-0.3.7.dev0/src/faebryk/library/Pinmux.py +111 -0
  357. atopile-0.3.7.dev0/src/faebryk/library/Potentiometer.py +30 -0
  358. atopile-0.3.7.dev0/src/faebryk/library/Power.py +18 -0
  359. atopile-0.3.7.dev0/src/faebryk/library/PowerMux.py +23 -0
  360. atopile-0.3.7.dev0/src/faebryk/library/PowerSwitch.py +33 -0
  361. atopile-0.3.7.dev0/src/faebryk/library/PowerSwitchMOSFET.py +53 -0
  362. atopile-0.3.7.dev0/src/faebryk/library/PowerSwitchStatic.py +26 -0
  363. atopile-0.3.7.dev0/src/faebryk/library/PoweredLED.py +31 -0
  364. atopile-0.3.7.dev0/src/faebryk/library/Powered_Relay.py +42 -0
  365. atopile-0.3.7.dev0/src/faebryk/library/QFN.py +59 -0
  366. atopile-0.3.7.dev0/src/faebryk/library/QWIIC_Connector.py +66 -0
  367. atopile-0.3.7.dev0/src/faebryk/library/RJ45_Receptacle.py +24 -0
  368. atopile-0.3.7.dev0/src/faebryk/library/RP2040.py +301 -0
  369. atopile-0.3.7.dev0/src/faebryk/library/RP2040Pinmux.py +402 -0
  370. atopile-0.3.7.dev0/src/faebryk/library/RP2040_ReferenceDesign.py +222 -0
  371. atopile-0.3.7.dev0/src/faebryk/library/RS232.py +23 -0
  372. atopile-0.3.7.dev0/src/faebryk/library/RS485HalfDuplex.py +15 -0
  373. atopile-0.3.7.dev0/src/faebryk/library/RS485_Bus_Protection.py +170 -0
  374. atopile-0.3.7.dev0/src/faebryk/library/RaspberryPiPico.py +133 -0
  375. atopile-0.3.7.dev0/src/faebryk/library/RaspberryPiPicoBase_ReferenceDesign.py +423 -0
  376. atopile-0.3.7.dev0/src/faebryk/library/Relay.py +33 -0
  377. atopile-0.3.7.dev0/src/faebryk/library/Resistor.py +62 -0
  378. atopile-0.3.7.dev0/src/faebryk/library/ResistorVoltageDivider.py +28 -0
  379. atopile-0.3.7.dev0/src/faebryk/library/Resistor_Voltage_Divider.py +27 -0
  380. atopile-0.3.7.dev0/src/faebryk/library/SCD40.py +78 -0
  381. atopile-0.3.7.dev0/src/faebryk/library/SK6812.py +76 -0
  382. atopile-0.3.7.dev0/src/faebryk/library/SK9822_EC20.py +57 -0
  383. atopile-0.3.7.dev0/src/faebryk/library/SMDTwoPin.py +51 -0
  384. atopile-0.3.7.dev0/src/faebryk/library/SNx4LVC541A.py +57 -0
  385. atopile-0.3.7.dev0/src/faebryk/library/SOIC.py +40 -0
  386. atopile-0.3.7.dev0/src/faebryk/library/SP3243E.py +127 -0
  387. atopile-0.3.7.dev0/src/faebryk/library/SP3243E_ReferenceDesign.py +50 -0
  388. atopile-0.3.7.dev0/src/faebryk/library/SPI.py +18 -0
  389. atopile-0.3.7.dev0/src/faebryk/library/SPIFlash.py +26 -0
  390. atopile-0.3.7.dev0/src/faebryk/library/SWD.py +19 -0
  391. atopile-0.3.7.dev0/src/faebryk/library/SWDConnector.py +36 -0
  392. atopile-0.3.7.dev0/src/faebryk/library/Sercom.py +16 -0
  393. atopile-0.3.7.dev0/src/faebryk/library/Shenzhen_Kinghelm_Elec_KH_BNC75_3511.py +62 -0
  394. atopile-0.3.7.dev0/src/faebryk/library/Signal.py +7 -0
  395. atopile-0.3.7.dev0/src/faebryk/library/SignalElectrical.py +94 -0
  396. atopile-0.3.7.dev0/src/faebryk/library/SurgeProtection.py +48 -0
  397. atopile-0.3.7.dev0/src/faebryk/library/Switch.py +46 -0
  398. atopile-0.3.7.dev0/src/faebryk/library/Symbol.py +59 -0
  399. atopile-0.3.7.dev0/src/faebryk/library/TD541S485H.py +75 -0
  400. atopile-0.3.7.dev0/src/faebryk/library/TECH_PUBLIC_USBLC6_2SC6.py +60 -0
  401. atopile-0.3.7.dev0/src/faebryk/library/TI_CD4011BE.py +43 -0
  402. atopile-0.3.7.dev0/src/faebryk/library/TPS2116.py +137 -0
  403. atopile-0.3.7.dev0/src/faebryk/library/TVS.py +16 -0
  404. atopile-0.3.7.dev0/src/faebryk/library/TXS0102DCUR.py +58 -0
  405. atopile-0.3.7.dev0/src/faebryk/library/TXS0102DCUR_UART.py +37 -0
  406. atopile-0.3.7.dev0/src/faebryk/library/UART.py +22 -0
  407. atopile-0.3.7.dev0/src/faebryk/library/UART_Base.py +23 -0
  408. atopile-0.3.7.dev0/src/faebryk/library/UART_RS485.py +32 -0
  409. atopile-0.3.7.dev0/src/faebryk/library/USB2514B.py +373 -0
  410. atopile-0.3.7.dev0/src/faebryk/library/USB2514B_ReferenceDesign.py +318 -0
  411. atopile-0.3.7.dev0/src/faebryk/library/USB2_0.py +16 -0
  412. atopile-0.3.7.dev0/src/faebryk/library/USB2_0_ESD_Protection.py +55 -0
  413. atopile-0.3.7.dev0/src/faebryk/library/USB2_0_IF.py +25 -0
  414. atopile-0.3.7.dev0/src/faebryk/library/USB3.py +17 -0
  415. atopile-0.3.7.dev0/src/faebryk/library/USB3_IF.py +12 -0
  416. atopile-0.3.7.dev0/src/faebryk/library/USB3_connector.py +22 -0
  417. atopile-0.3.7.dev0/src/faebryk/library/USBLC6_2P6.py +36 -0
  418. atopile-0.3.7.dev0/src/faebryk/library/USB_C.py +15 -0
  419. atopile-0.3.7.dev0/src/faebryk/library/USB_C_5V_PSU.py +34 -0
  420. atopile-0.3.7.dev0/src/faebryk/library/USB_C_PSU_Vertical.py +69 -0
  421. atopile-0.3.7.dev0/src/faebryk/library/USB_C_PowerOnly.py +33 -0
  422. atopile-0.3.7.dev0/src/faebryk/library/USB_RS485.py +56 -0
  423. atopile-0.3.7.dev0/src/faebryk/library/USB_Type_C_Receptacle_14_pin_Vertical.py +58 -0
  424. atopile-0.3.7.dev0/src/faebryk/library/USB_Type_C_Receptacle_16_pin.py +77 -0
  425. atopile-0.3.7.dev0/src/faebryk/library/USB_Type_C_Receptacle_24_pin.py +63 -0
  426. atopile-0.3.7.dev0/src/faebryk/library/WCHJiangsu_Qin_Heng_CH224K.py +115 -0
  427. atopile-0.3.7.dev0/src/faebryk/library/WCHJiangsu_Qin_Heng_CH224K_ReferenceDesign.py +64 -0
  428. atopile-0.3.7.dev0/src/faebryk/library/Winbond_Elec_W25Q128JVSIQ.py +72 -0
  429. atopile-0.3.7.dev0/src/faebryk/library/Winbond_W25Q16JVUXIQ.py +67 -0
  430. atopile-0.3.7.dev0/src/faebryk/library/Wuxi_I_core_Elec_AiP74LVC1T45GB236_TR.py +94 -0
  431. atopile-0.3.7.dev0/src/faebryk/library/XL_3528RGBW_WS2812B.py +77 -0
  432. atopile-0.3.7.dev0/src/faebryk/library/XtalIF.py +38 -0
  433. atopile-0.3.7.dev0/src/faebryk/library/_F.py +274 -0
  434. atopile-0.3.7.dev0/src/faebryk/library/can_attach_to_footprint.py +12 -0
  435. atopile-0.3.7.dev0/src/faebryk/library/can_attach_to_footprint_symmetrically.py +15 -0
  436. atopile-0.3.7.dev0/src/faebryk/library/can_attach_to_footprint_via_pinmap.py +14 -0
  437. atopile-0.3.7.dev0/src/faebryk/library/can_attach_via_pinmap.py +11 -0
  438. atopile-0.3.7.dev0/src/faebryk/library/can_attach_via_pinmap_equal.py +13 -0
  439. atopile-0.3.7.dev0/src/faebryk/library/can_attach_via_pinmap_pinlist.py +19 -0
  440. atopile-0.3.7.dev0/src/faebryk/library/can_be_decoupled.py +21 -0
  441. atopile-0.3.7.dev0/src/faebryk/library/can_be_decoupled_rails.py +25 -0
  442. atopile-0.3.7.dev0/src/faebryk/library/can_be_surge_protected.py +19 -0
  443. atopile-0.3.7.dev0/src/faebryk/library/can_be_surge_protected_defined.py +26 -0
  444. atopile-0.3.7.dev0/src/faebryk/library/can_bridge.py +19 -0
  445. atopile-0.3.7.dev0/src/faebryk/library/can_bridge_defined.py +12 -0
  446. atopile-0.3.7.dev0/src/faebryk/library/can_specialize.py +30 -0
  447. atopile-0.3.7.dev0/src/faebryk/library/can_specialize_defined.py +24 -0
  448. atopile-0.3.7.dev0/src/faebryk/library/can_switch_power.py +11 -0
  449. atopile-0.3.7.dev0/src/faebryk/library/can_switch_power_defined.py +29 -0
  450. atopile-0.3.7.dev0/src/faebryk/library/has_capacitance.py +12 -0
  451. atopile-0.3.7.dev0/src/faebryk/library/has_construction_dependency.py +35 -0
  452. atopile-0.3.7.dev0/src/faebryk/library/has_datasheet.py +11 -0
  453. atopile-0.3.7.dev0/src/faebryk/library/has_datasheet_defined.py +13 -0
  454. atopile-0.3.7.dev0/src/faebryk/library/has_descriptive_properties.py +12 -0
  455. atopile-0.3.7.dev0/src/faebryk/library/has_descriptive_properties_defined.py +62 -0
  456. atopile-0.3.7.dev0/src/faebryk/library/has_designator.py +11 -0
  457. atopile-0.3.7.dev0/src/faebryk/library/has_designator_defined.py +13 -0
  458. atopile-0.3.7.dev0/src/faebryk/library/has_designator_prefix.py +166 -0
  459. atopile-0.3.7.dev0/src/faebryk/library/has_designator_prefix_defined.py +13 -0
  460. atopile-0.3.7.dev0/src/faebryk/library/has_equal_pins.py +11 -0
  461. atopile-0.3.7.dev0/src/faebryk/library/has_equal_pins_in_ifs.py +12 -0
  462. atopile-0.3.7.dev0/src/faebryk/library/has_esphome_config.py +11 -0
  463. atopile-0.3.7.dev0/src/faebryk/library/has_esphome_config_defined.py +13 -0
  464. atopile-0.3.7.dev0/src/faebryk/library/has_explicit_part.py +63 -0
  465. atopile-0.3.7.dev0/src/faebryk/library/has_footprint.py +15 -0
  466. atopile-0.3.7.dev0/src/faebryk/library/has_footprint_defined.py +13 -0
  467. atopile-0.3.7.dev0/src/faebryk/library/has_footprint_impl.py +14 -0
  468. atopile-0.3.7.dev0/src/faebryk/library/has_kicad_footprint.py +21 -0
  469. atopile-0.3.7.dev0/src/faebryk/library/has_kicad_footprint_equal_ifs.py +9 -0
  470. atopile-0.3.7.dev0/src/faebryk/library/has_kicad_footprint_equal_ifs_defined.py +13 -0
  471. atopile-0.3.7.dev0/src/faebryk/library/has_kicad_manual_footprint.py +17 -0
  472. atopile-0.3.7.dev0/src/faebryk/library/has_kicad_ref.py +9 -0
  473. atopile-0.3.7.dev0/src/faebryk/library/has_layout_transform.py +22 -0
  474. atopile-0.3.7.dev0/src/faebryk/library/has_linked_pad.py +15 -0
  475. atopile-0.3.7.dev0/src/faebryk/library/has_linked_pad_defined.py +29 -0
  476. atopile-0.3.7.dev0/src/faebryk/library/has_net_name.py +35 -0
  477. atopile-0.3.7.dev0/src/faebryk/library/has_overriden_name.py +11 -0
  478. atopile-0.3.7.dev0/src/faebryk/library/has_overriden_name_defined.py +13 -0
  479. atopile-0.3.7.dev0/src/faebryk/library/has_package_requirement.py +15 -0
  480. atopile-0.3.7.dev0/src/faebryk/library/has_part_picked.py +34 -0
  481. atopile-0.3.7.dev0/src/faebryk/library/has_part_removed.py +13 -0
  482. atopile-0.3.7.dev0/src/faebryk/library/has_pcb_layout.py +11 -0
  483. atopile-0.3.7.dev0/src/faebryk/library/has_pcb_layout_defined.py +16 -0
  484. atopile-0.3.7.dev0/src/faebryk/library/has_pcb_position.py +19 -0
  485. atopile-0.3.7.dev0/src/faebryk/library/has_pcb_position_defined.py +13 -0
  486. atopile-0.3.7.dev0/src/faebryk/library/has_pcb_position_defined_relative.py +20 -0
  487. atopile-0.3.7.dev0/src/faebryk/library/has_pcb_position_defined_relative_to_parent.py +33 -0
  488. atopile-0.3.7.dev0/src/faebryk/library/has_pcb_routing_strategy.py +23 -0
  489. atopile-0.3.7.dev0/src/faebryk/library/has_pcb_routing_strategy_greedy_direct_line.py +141 -0
  490. atopile-0.3.7.dev0/src/faebryk/library/has_pcb_routing_strategy_manual.py +67 -0
  491. atopile-0.3.7.dev0/src/faebryk/library/has_pcb_routing_strategy_via_to_layer.py +86 -0
  492. atopile-0.3.7.dev0/src/faebryk/library/has_pin_association_heuristic.py +21 -0
  493. atopile-0.3.7.dev0/src/faebryk/library/has_pin_association_heuristic_lookup_table.py +80 -0
  494. atopile-0.3.7.dev0/src/faebryk/library/has_reference.py +13 -0
  495. atopile-0.3.7.dev0/src/faebryk/library/has_reference_layout.py +27 -0
  496. atopile-0.3.7.dev0/src/faebryk/library/has_resistance.py +12 -0
  497. atopile-0.3.7.dev0/src/faebryk/library/has_simple_value_representation.py +11 -0
  498. atopile-0.3.7.dev0/src/faebryk/library/has_simple_value_representation_based_on_params.py +25 -0
  499. atopile-0.3.7.dev0/src/faebryk/library/has_simple_value_representation_based_on_params_chain.py +114 -0
  500. atopile-0.3.7.dev0/src/faebryk/library/has_simple_value_representation_defined.py +14 -0
  501. atopile-0.3.7.dev0/src/faebryk/library/has_single_connection.py +12 -0
  502. atopile-0.3.7.dev0/src/faebryk/library/has_single_connection_impl.py +11 -0
  503. atopile-0.3.7.dev0/src/faebryk/library/has_single_electric_reference.py +16 -0
  504. atopile-0.3.7.dev0/src/faebryk/library/has_single_electric_reference_defined.py +18 -0
  505. atopile-0.3.7.dev0/src/faebryk/library/has_symbol_layout.py +8 -0
  506. atopile-0.3.7.dev0/src/faebryk/library/has_symbol_layout_defined.py +10 -0
  507. atopile-0.3.7.dev0/src/faebryk/library/is_app_root.py +14 -0
  508. atopile-0.3.7.dev0/src/faebryk/library/is_bus_parameter.py +166 -0
  509. atopile-0.3.7.dev0/src/faebryk/library/is_decoupled.py +19 -0
  510. atopile-0.3.7.dev0/src/faebryk/library/is_esphome_bus.py +25 -0
  511. atopile-0.3.7.dev0/src/faebryk/library/is_esphome_bus_defined.py +13 -0
  512. atopile-0.3.7.dev0/src/faebryk/library/is_not_pickable.py +15 -0
  513. atopile-0.3.7.dev0/src/faebryk/library/is_optional.py +29 -0
  514. atopile-0.3.7.dev0/src/faebryk/library/is_optional_defined.py +24 -0
  515. atopile-0.3.7.dev0/src/faebryk/library/is_pickable.py +8 -0
  516. atopile-0.3.7.dev0/src/faebryk/library/is_pickable_by_part_number.py +18 -0
  517. atopile-0.3.7.dev0/src/faebryk/library/is_pickable_by_supplier_id.py +22 -0
  518. atopile-0.3.7.dev0/src/faebryk/library/is_pickable_by_type.py +25 -0
  519. atopile-0.3.7.dev0/src/faebryk/library/is_representable_by_single_value.py +11 -0
  520. atopile-0.3.7.dev0/src/faebryk/library/is_representable_by_single_value_defined.py +17 -0
  521. atopile-0.3.7.dev0/src/faebryk/library/is_surge_protected.py +15 -0
  522. atopile-0.3.7.dev0/src/faebryk/library/is_surge_protected_defined.py +17 -0
  523. atopile-0.3.7.dev0/src/faebryk/library/pf_533984002.py +32 -0
  524. atopile-0.3.7.dev0/src/faebryk/library/pf_74AHCT2G125.py +67 -0
  525. atopile-0.3.7.dev0/src/faebryk/libs/algorithm.py +31 -0
  526. atopile-0.3.7.dev0/src/faebryk/libs/app/checks.py +11 -0
  527. atopile-0.3.7.dev0/src/faebryk/libs/app/designators.py +123 -0
  528. atopile-0.3.7.dev0/src/faebryk/libs/app/erc.py +171 -0
  529. atopile-0.3.7.dev0/src/faebryk/libs/app/manufacturing.py +41 -0
  530. atopile-0.3.7.dev0/src/faebryk/libs/app/pcb.py +246 -0
  531. atopile-0.3.7.dev0/src/faebryk/libs/app/picking.py +42 -0
  532. atopile-0.3.7.dev0/src/faebryk/libs/brightness.py +134 -0
  533. atopile-0.3.7.dev0/src/faebryk/libs/examples/resources/example/example.kicad_pcb +2 -0
  534. atopile-0.3.7.dev0/src/faebryk/libs/examples/resources/example/example.kicad_pro +273 -0
  535. atopile-0.3.7.dev0/src/faebryk/libs/examples/resources/example/fp-lib-table +4 -0
  536. atopile-0.3.7.dev0/src/faebryk/libs/exceptions.py +314 -0
  537. atopile-0.3.7.dev0/src/faebryk/libs/font.py +132 -0
  538. atopile-0.3.7.dev0/src/faebryk/libs/geometry/basic.py +635 -0
  539. atopile-0.3.7.dev0/src/faebryk/libs/header.py +40 -0
  540. atopile-0.3.7.dev0/src/faebryk/libs/iso_metric_screw_thread.py +39 -0
  541. atopile-0.3.7.dev0/src/faebryk/libs/kicad/fileformats.py +1396 -0
  542. atopile-0.3.7.dev0/src/faebryk/libs/kicad/fileformats_common.py +184 -0
  543. atopile-0.3.7.dev0/src/faebryk/libs/kicad/fileformats_sch.py +402 -0
  544. atopile-0.3.7.dev0/src/faebryk/libs/kicad/fileformats_v5.py +215 -0
  545. atopile-0.3.7.dev0/src/faebryk/libs/kicad/fileformats_v6.py +144 -0
  546. atopile-0.3.7.dev0/src/faebryk/libs/kicad/fileformats_version.py +41 -0
  547. atopile-0.3.7.dev0/src/faebryk/libs/kicad/paths.py +38 -0
  548. atopile-0.3.7.dev0/src/faebryk/libs/library/L.py +92 -0
  549. atopile-0.3.7.dev0/src/faebryk/libs/logging.py +123 -0
  550. atopile-0.3.7.dev0/src/faebryk/libs/picker/api/api.py +146 -0
  551. atopile-0.3.7.dev0/src/faebryk/libs/picker/api/models.py +269 -0
  552. atopile-0.3.7.dev0/src/faebryk/libs/picker/api/picker_lib.py +369 -0
  553. atopile-0.3.7.dev0/src/faebryk/libs/picker/lcsc.py +301 -0
  554. atopile-0.3.7.dev0/src/faebryk/libs/picker/picker.py +385 -0
  555. atopile-0.3.7.dev0/src/faebryk/libs/pycodegen.py +113 -0
  556. atopile-0.3.7.dev0/src/faebryk/libs/sets/numeric_sets.py +581 -0
  557. atopile-0.3.7.dev0/src/faebryk/libs/sets/quantity_sets.py +747 -0
  558. atopile-0.3.7.dev0/src/faebryk/libs/sets/sets.py +285 -0
  559. atopile-0.3.7.dev0/src/faebryk/libs/sexp/dataclass_sexp.py +586 -0
  560. atopile-0.3.7.dev0/src/faebryk/libs/sexp/util.py +32 -0
  561. atopile-0.3.7.dev0/src/faebryk/libs/test/fileformats.py +69 -0
  562. atopile-0.3.7.dev0/src/faebryk/libs/test/times.py +62 -0
  563. atopile-0.3.7.dev0/src/faebryk/libs/titlecase.py +57 -0
  564. atopile-0.3.7.dev0/src/faebryk/libs/tools/typer.py +16 -0
  565. atopile-0.3.7.dev0/src/faebryk/libs/units.py +114 -0
  566. atopile-0.3.7.dev0/src/faebryk/libs/util.py +1835 -0
  567. atopile-0.3.7.dev0/src/faebryk/tools/libadd.py +395 -0
  568. atopile-0.3.7.dev0/src/faebryk/tools/main.py +21 -0
  569. atopile-0.3.7.dev0/src/faebryk/tools/project.py +89 -0
  570. atopile-0.3.7.dev0/src/faebryk/tools/refactor.py +222 -0
  571. atopile-0.3.7.dev0/src/vscode-atopile/.eslintrc.json +24 -0
  572. atopile-0.3.7.dev0/src/vscode-atopile/.gitignore +12 -0
  573. atopile-0.3.7.dev0/src/vscode-atopile/.prettierrc.js +15 -0
  574. atopile-0.3.7.dev0/src/vscode-atopile/.vscodeignore +24 -0
  575. atopile-0.3.7.dev0/src/vscode-atopile/CODE_OF_CONDUCT.md +9 -0
  576. atopile-0.3.7.dev0/src/vscode-atopile/DEVELOPMENT.md +13 -0
  577. {atopile-0.3.0.dev0 → atopile-0.3.7.dev0/src/vscode-atopile}/LICENSE +1 -1
  578. atopile-0.3.7.dev0/src/vscode-atopile/README.md +31 -0
  579. atopile-0.3.7.dev0/src/vscode-atopile/SECURITY.md +5 -0
  580. atopile-0.3.7.dev0/src/vscode-atopile/SUPPORT.md +3 -0
  581. atopile-0.3.7.dev0/src/vscode-atopile/bundled/tool/__init__.py +2 -0
  582. atopile-0.3.7.dev0/src/vscode-atopile/bundled/tool/_debug_server.py +39 -0
  583. atopile-0.3.7.dev0/src/vscode-atopile/bundled/tool/lsp_jsonrpc.py +258 -0
  584. atopile-0.3.7.dev0/src/vscode-atopile/bundled/tool/lsp_runner.py +77 -0
  585. atopile-0.3.7.dev0/src/vscode-atopile/bundled/tool/lsp_server.py +857 -0
  586. atopile-0.3.7.dev0/src/vscode-atopile/bundled/tool/lsp_utils.py +273 -0
  587. atopile-0.3.7.dev0/src/vscode-atopile/demo.gif +0 -0
  588. atopile-0.3.7.dev0/src/vscode-atopile/package-lock.json +5809 -0
  589. atopile-0.3.7.dev0/src/vscode-atopile/package.json +220 -0
  590. atopile-0.3.7.dev0/src/vscode-atopile/runtime.txt +1 -0
  591. atopile-0.3.7.dev0/src/vscode-atopile/snippets/snippets.json +43 -0
  592. atopile-0.3.7.dev0/src/vscode-atopile/src/common/constants.ts +11 -0
  593. atopile-0.3.7.dev0/src/vscode-atopile/src/common/log/logging.ts +60 -0
  594. atopile-0.3.7.dev0/src/vscode-atopile/src/common/python.ts +80 -0
  595. atopile-0.3.7.dev0/src/vscode-atopile/src/common/server.ts +126 -0
  596. atopile-0.3.7.dev0/src/vscode-atopile/src/common/settings.ts +130 -0
  597. atopile-0.3.7.dev0/src/vscode-atopile/src/common/setup.ts +18 -0
  598. atopile-0.3.7.dev0/src/vscode-atopile/src/common/utilities.ts +67 -0
  599. atopile-0.3.7.dev0/src/vscode-atopile/src/common/vscodeapi.ts +43 -0
  600. atopile-0.3.7.dev0/src/vscode-atopile/src/extension.ts +109 -0
  601. atopile-0.3.7.dev0/src/vscode-atopile/src/ui/ui.ts +244 -0
  602. {atopile-0.3.0.dev0 → atopile-0.3.7.dev0}/src/vscode-atopile/syntaxes/ato.tmLanguage.json +10 -2
  603. atopile-0.3.7.dev0/src/vscode-atopile/tsconfig.json +13 -0
  604. atopile-0.3.7.dev0/src/vscode-atopile/webpack.config.js +48 -0
  605. atopile-0.3.7.dev0/test/common/libs/footprints/logos.pretty/faebryk_logo.kicad_mod +424 -0
  606. atopile-0.3.7.dev0/test/common/resources/fileformats/kicad/v5/fp/C0603.kicad_mod +30 -0
  607. atopile-0.3.7.dev0/test/common/resources/fileformats/kicad/v5/fp/KMR211NGLFS.kicad_mod +37 -0
  608. atopile-0.3.7.dev0/test/common/resources/fileformats/kicad/v6/fp/SOT-23-5_RIT.kicad_mod +77 -0
  609. atopile-0.3.7.dev0/test/common/resources/fileformats/kicad/v7/fplib/fp-lib-table +7 -0
  610. atopile-0.3.7.dev0/test/common/resources/fileformats/kicad/v8/fp/test.kicad_mod +228 -0
  611. atopile-0.3.7.dev0/test/common/resources/fileformats/kicad/v8/netlist/test_e.net +6180 -0
  612. atopile-0.3.7.dev0/test/common/resources/fileformats/kicad/v8/pcb/test.kicad_pcb +1280 -0
  613. atopile-0.3.7.dev0/test/common/resources/fileformats/kicad/v8/prj/test.kicad_pro +273 -0
  614. atopile-0.3.7.dev0/test/common/resources/fileformats/kicad/v8/sch/test.kicad_sch +1676 -0
  615. atopile-0.3.7.dev0/test/common/resources/fileformats/kicad/v8/sym/test.kicad_sym +560 -0
  616. atopile-0.3.7.dev0/test/common/resources/test-project/ato.yaml +6 -0
  617. atopile-0.3.7.dev0/test/common/resources/test-project/unconstructable.py +6 -0
  618. atopile-0.3.7.dev0/test/common/resources/test-project/unimportable.py +8 -0
  619. atopile-0.3.7.dev0/test/common/resources/test.net +115 -0
  620. atopile-0.3.7.dev0/test/common/resources/test_essentials.net +35 -0
  621. atopile-0.3.7.dev0/test/conftest.py +13 -0
  622. atopile-0.3.7.dev0/test/core/cpp/test_importcpp.py +218 -0
  623. atopile-0.3.7.dev0/test/core/solver/test_solver.py +727 -0
  624. atopile-0.3.7.dev0/test/core/solver/test_solver_util.py +99 -0
  625. atopile-0.3.7.dev0/test/core/test_core.py +271 -0
  626. atopile-0.3.7.dev0/test/core/test_core_util.py +48 -0
  627. atopile-0.3.7.dev0/test/core/test_mif_connect.py +594 -0
  628. atopile-0.3.7.dev0/test/core/test_node.py +66 -0
  629. atopile-0.3.7.dev0/test/core/test_parameters.py +165 -0
  630. atopile-0.3.7.dev0/test/core/test_performance.py +358 -0
  631. atopile-0.3.7.dev0/test/core/test_traits.py +261 -0
  632. atopile-0.3.7.dev0/test/exporters/netlist/kicad/test_netlist_kicad.py +195 -0
  633. atopile-0.3.7.dev0/test/exporters/netlist/test_graph.py +100 -0
  634. atopile-0.3.7.dev0/test/exporters/pcb/kicad/test_pcb_transformer.py +23 -0
  635. atopile-0.3.7.dev0/test/exporters/schematic/kicad/test_schematic_transformer.py +96 -0
  636. atopile-0.3.7.dev0/test/front_end/test_front_end.py +403 -0
  637. atopile-0.3.7.dev0/test/front_end/test_front_end_pick.py +86 -0
  638. atopile-0.3.7.dev0/test/front_end/test_literals.py +36 -0
  639. atopile-0.3.7.dev0/test/integration/netlist/kicad2faebryk/test_netlist_kicad_2_faebryk_prj.py +41 -0
  640. atopile-0.3.7.dev0/test/library/nodes/test_decouple.py +56 -0
  641. atopile-0.3.7.dev0/test/library/nodes/test_electricpower.py +129 -0
  642. atopile-0.3.7.dev0/test/library/nodes/test_has_simple_value_representation.py +97 -0
  643. atopile-0.3.7.dev0/test/library/test_footprints.py +73 -0
  644. atopile-0.3.7.dev0/test/library/test_instance_library_modules.py +79 -0
  645. atopile-0.3.7.dev0/test/library/test_names.py +28 -0
  646. atopile-0.3.7.dev0/test/library/test_reference.py +139 -0
  647. atopile-0.3.7.dev0/test/libs/geometry/test_basic_transformations.py +21 -0
  648. atopile-0.3.7.dev0/test/libs/kicad/test_fileformats.py +307 -0
  649. atopile-0.3.7.dev0/test/libs/picker/components.py +269 -0
  650. atopile-0.3.7.dev0/test/libs/picker/test_pickers.py +147 -0
  651. atopile-0.3.7.dev0/test/libs/test_exceptions.py +127 -0
  652. atopile-0.3.7.dev0/test/libs/test_lcsc.py +63 -0
  653. atopile-0.3.7.dev0/test/libs/test_sets.py +325 -0
  654. atopile-0.3.7.dev0/test/libs/test_units.py +69 -0
  655. atopile-0.3.7.dev0/test/libs/test_util.py +144 -0
  656. atopile-0.3.7.dev0/test/libs/test_util_atexit.py +76 -0
  657. atopile-0.3.7.dev0/test/libs/test_util_func_collections.py +91 -0
  658. atopile-0.3.7.dev0/test/libs/test_util_importers.py +149 -0
  659. atopile-0.3.7.dev0/test/libs/util/test_has_attr_or_property.py +76 -0
  660. atopile-0.3.7.dev0/test/libs/util/test_has_instance_settable_attr.py +102 -0
  661. atopile-0.3.7.dev0/test/libs/util/test_write_only_property.py +30 -0
  662. atopile-0.3.7.dev0/test/runpytest.sh +4 -0
  663. atopile-0.3.7.dev0/test/runtest.py +55 -0
  664. atopile-0.3.7.dev0/test/test_address.py +86 -0
  665. atopile-0.3.7.dev0/test/test_cli.py +38 -0
  666. atopile-0.3.7.dev0/test/test_config.py +45 -0
  667. atopile-0.3.7.dev0/test/test_datatypes.py +39 -0
  668. atopile-0.3.7.dev0/test/test_errors.py +85 -0
  669. atopile-0.3.7.dev0/test/test_parse_utils.py +92 -0
  670. atopile-0.3.7.dev0/test/test_regressions.py +130 -0
  671. atopile-0.3.7.dev0/test/test_telemetry.py +14 -0
  672. {atopile-0.3.0.dev0/tests → atopile-0.3.7.dev0/test}/test_version.py +4 -4
  673. atopile-0.3.7.dev0/tools/library/gen_F.py +147 -0
  674. atopile-0.3.7.dev0/tools/profile.py +123 -0
  675. atopile-0.3.7.dev0/uv.lock +2588 -0
  676. atopile-0.3.0.dev0/.github/workflows/ci.yml +0 -29
  677. atopile-0.3.0.dev0/.gitlab-ci.yml +0 -95
  678. atopile-0.3.0.dev0/PKG-INFO +0 -103
  679. atopile-0.3.0.dev0/README.md +0 -48
  680. atopile-0.3.0.dev0/dockerfiles/Dockerfile.ci +0 -7
  681. atopile-0.3.0.dev0/dockerfiles/Dockerfile.kicad +0 -34
  682. atopile-0.3.0.dev0/docs/ato_flow.drawio +0 -100
  683. atopile-0.3.0.dev0/docs/blog/posts/blog_post.md +0 -13
  684. atopile-0.3.0.dev0/docs/getting-started.md +0 -436
  685. atopile-0.3.0.dev0/docs/images/cli-outputs.png +0 -0
  686. atopile-0.3.0.dev0/docs/images/dev-container-question.png +0 -0
  687. atopile-0.3.0.dev0/docs/images/download-artifacts.png +0 -0
  688. atopile-0.3.0.dev0/docs/images/get-to-code-loading.png +0 -0
  689. atopile-0.3.0.dev0/docs/images/gitlab-pipline-artifacts.png +0 -0
  690. atopile-0.3.0.dev0/docs/index.md +0 -9
  691. atopile-0.3.0.dev0/docs/overrides/home.html +0 -112
  692. atopile-0.3.0.dev0/docs/package_fetcher.py +0 -80
  693. atopile-0.3.0.dev0/docs/readme_blank.md +0 -3
  694. atopile-0.3.0.dev0/mkdocs.yml +0 -28
  695. atopile-0.3.0.dev0/pyproject.toml +0 -119
  696. atopile-0.3.0.dev0/sandbox/README.md +0 -1
  697. atopile-0.3.0.dev0/sandbox/vdiv_model.py +0 -35
  698. atopile-0.3.0.dev0/src/atopile/address.py +0 -130
  699. atopile-0.3.0.dev0/src/atopile/bom.py +0 -175
  700. atopile-0.3.0.dev0/src/atopile/cli/build.py +0 -150
  701. atopile-0.3.0.dev0/src/atopile/cli/cli.py +0 -53
  702. atopile-0.3.0.dev0/src/atopile/cli/common.py +0 -161
  703. atopile-0.3.0.dev0/src/atopile/cli/create.py +0 -211
  704. atopile-0.3.0.dev0/src/atopile/cli/install.py +0 -227
  705. atopile-0.3.0.dev0/src/atopile/cli/rich_console.py +0 -4
  706. atopile-0.3.0.dev0/src/atopile/components.py +0 -358
  707. atopile-0.3.0.dev0/src/atopile/config.py +0 -241
  708. atopile-0.3.0.dev0/src/atopile/equations.py +0 -107
  709. atopile-0.3.0.dev0/src/atopile/errors.py +0 -360
  710. atopile-0.3.0.dev0/src/atopile/front_end.py +0 -1153
  711. atopile-0.3.0.dev0/src/atopile/generic_methods.py +0 -105
  712. atopile-0.3.0.dev0/src/atopile/instance_methods.py +0 -131
  713. atopile-0.3.0.dev0/src/atopile/kicad6.j2 +0 -65
  714. atopile-0.3.0.dev0/src/atopile/kicad6_datamodel.py +0 -142
  715. atopile-0.3.0.dev0/src/atopile/loop_soup.py +0 -135
  716. atopile-0.3.0.dev0/src/atopile/manufacturing_data.py +0 -143
  717. atopile-0.3.0.dev0/src/atopile/netlist.py +0 -176
  718. atopile-0.3.0.dev0/src/atopile/nets.py +0 -184
  719. atopile-0.3.0.dev0/src/atopile/parameters.py +0 -70
  720. atopile-0.3.0.dev0/src/atopile/parse_utils.py +0 -16
  721. atopile-0.3.0.dev0/src/atopile/parser/AtopileLexer.interp +0 -280
  722. atopile-0.3.0.dev0/src/atopile/parser/AtopileLexer.py +0 -695
  723. atopile-0.3.0.dev0/src/atopile/parser/AtopileLexerBase.py +0 -101
  724. atopile-0.3.0.dev0/src/atopile/parser/AtopileParser.g4 +0 -265
  725. atopile-0.3.0.dev0/src/atopile/parser/AtopileParser.interp +0 -202
  726. atopile-0.3.0.dev0/src/atopile/parser/AtopileParser.py +0 -2154
  727. atopile-0.3.0.dev0/src/atopile/parser/AtopileParserBase.py +0 -9
  728. atopile-0.3.0.dev0/src/atopile/parser/AtopileParserListener.py +0 -237
  729. atopile-0.3.0.dev0/src/atopile/parser/AtopileParserVisitor.py +0 -178
  730. atopile-0.3.0.dev0/src/vscode-atopile/.gitignore +0 -1
  731. atopile-0.3.0.dev0/src/vscode-atopile/.vscodeignore +0 -4
  732. atopile-0.3.0.dev0/src/vscode-atopile/CHANGELOG.md +0 -9
  733. atopile-0.3.0.dev0/src/vscode-atopile/LICENSE +0 -203
  734. atopile-0.3.0.dev0/src/vscode-atopile/README.md +0 -6
  735. atopile-0.3.0.dev0/src/vscode-atopile/package.json +0 -32
  736. atopile-0.3.0.dev0/tests/test_config.py +0 -9
  737. atopile-0.3.0.dev0/tests/test_datatypes.py +0 -125
  738. atopile-0.3.0.dev0/tests/test_errors.py +0 -34
  739. atopile-0.3.0.dev0/tests/test_generic_methods.py +0 -48
  740. atopile-0.3.0.dev0/tests/test_loop_soup.py +0 -120
  741. atopile-0.3.0.dev0/tests/test_test.py +0 -14
  742. /atopile-0.3.0.dev0/src/atopile/__init__.py → /atopile-0.3.7.dev0/.gitmodules +0 -0
  743. {atopile-0.3.0.dev0 → atopile-0.3.7.dev0}/dockerfiles/README.md +0 -0
  744. {atopile-0.3.0.dev0/docs → atopile-0.3.7.dev0/docs/assets}/images/code-loading.png +0 -0
  745. {atopile-0.3.0.dev0/docs → atopile-0.3.7.dev0/docs/assets}/images/file-import.png +0 -0
  746. {atopile-0.3.0.dev0/docs → atopile-0.3.7.dev0/docs/assets}/images/import-settings.png +0 -0
  747. {atopile-0.3.0.dev0/docs/assets → atopile-0.3.7.dev0/docs/assets/logo}/ato_logo_256x256.png +0 -0
  748. {atopile-0.3.0.dev0/docs/assets → atopile-0.3.7.dev0/docs/assets/logo}/ato_logo_32x32.png +0 -0
  749. {atopile-0.3.0.dev0 → atopile-0.3.7.dev0}/docs/blog/.authors.yml +0 -0
  750. {atopile-0.3.0.dev0 → atopile-0.3.7.dev0}/docs/blog/index.md +0 -0
  751. {atopile-0.3.0.dev0 → atopile-0.3.7.dev0}/docs/overrides/Inconsolata-Black.ttf +0 -0
  752. {atopile-0.3.0.dev0 → atopile-0.3.7.dev0}/docs/overrides/Inconsolata-Bold.ttf +0 -0
  753. {atopile-0.3.0.dev0 → atopile-0.3.7.dev0}/docs/overrides/Inconsolata-ExtraBold.ttf +0 -0
  754. {atopile-0.3.0.dev0 → atopile-0.3.7.dev0}/docs/overrides/Inconsolata-ExtraLight.ttf +0 -0
  755. {atopile-0.3.0.dev0 → atopile-0.3.7.dev0}/docs/overrides/Inconsolata-Light.ttf +0 -0
  756. {atopile-0.3.0.dev0 → atopile-0.3.7.dev0}/docs/overrides/Inconsolata-Medium.ttf +0 -0
  757. {atopile-0.3.0.dev0 → atopile-0.3.7.dev0}/docs/overrides/Inconsolata-Regular.ttf +0 -0
  758. {atopile-0.3.0.dev0 → atopile-0.3.7.dev0}/docs/overrides/Inconsolata-SemiBold.ttf +0 -0
  759. {atopile-0.3.0.dev0 → atopile-0.3.7.dev0}/docs/overrides/SpaceMono-Bold.ttf +0 -0
  760. {atopile-0.3.0.dev0 → atopile-0.3.7.dev0}/docs/overrides/SpaceMono-BoldItalic.ttf +0 -0
  761. {atopile-0.3.0.dev0 → atopile-0.3.7.dev0}/docs/overrides/SpaceMono-Italic.ttf +0 -0
  762. {atopile-0.3.0.dev0 → atopile-0.3.7.dev0}/docs/overrides/SpaceMono-Regular.ttf +0 -0
  763. {atopile-0.3.0.dev0/src/atopile/cli → atopile-0.3.7.dev0/src/atopile}/__init__.py +0 -0
  764. {atopile-0.3.0.dev0/src/atopile/parser → atopile-0.3.7.dev0/src/atopile/cli}/__init__.py +0 -0
  765. {atopile-0.3.0.dev0 → atopile-0.3.7.dev0}/src/atopile/parser/.gitignore +0 -0
  766. {atopile-0.3.0.dev0 → atopile-0.3.7.dev0}/src/vscode-atopile/ato_logo_256x256.png +0 -0
  767. {atopile-0.3.0.dev0 → atopile-0.3.7.dev0}/src/vscode-atopile/language-configuration.json +0 -0
@@ -0,0 +1,8 @@
1
+ # Migrate code style to Black
2
+ 62b92558e887b97ac43e2feafa011cca094a8d68
3
+ # Add black as pre-commit hook and rerun
4
+ 94fc4f83209d85eb6f7987a083a17a68a5acaedd
5
+ # isort & autoflake
6
+ 406891587843ad51d856922cde2b8dc79c0c406a
7
+ # Faebryk merger
8
+ 1129da0d727f3589d7d2ea3112aa94667fcb1488
@@ -0,0 +1,18 @@
1
+ uv.lock linguist-generated=true
2
+
3
+ *.kicad_* linguist-generated=true
4
+ *.step linguist-generated=true
5
+ *.wrl linguist-generated=true
6
+ *.dxf linguist-generated=true
7
+ *.svg linguist-generated=true
8
+ *.net linguist-generated=true
9
+
10
+ # Generated by ANTLR4
11
+ src/atopile/parser/AtoLexer.py linguist-generated=true
12
+ src/atopile/parser/AtoParser.interp linguist-generated=true
13
+ src/atopile/parser/AtoParser.tokens linguist-generated=true
14
+ src/atopile/parser/AtoParserListener.py linguist-generated=true
15
+ src/atopile/parser/AtoLexer.interp linguist-generated=true
16
+ src/atopile/parser/AtoLexer.tokens linguist-generated=true
17
+ src/atopile/parser/AtoParser.py linguist-generated=true
18
+ src/atopile/parser/AtoParserVisitor.py linguist-generated=true
@@ -0,0 +1,32 @@
1
+ # Lines starting with '#' are comments.
2
+ # Each line is a file pattern followed by one or more owners.
3
+
4
+ # More details are here: https://help.github.com/articles/about-codeowners/
5
+
6
+ # The '*' pattern is global owners.
7
+
8
+ # Order is important. The last matching pattern has the most precedence.
9
+ # The folders are ordered as follows:
10
+
11
+ # In each subsection folders are ordered first by depth, then alphabetically.
12
+ # This should make it easy to add new rules without breaking existing ones.
13
+
14
+ # Global rule:
15
+ * @iopapamanoglou @mawildoer
16
+
17
+ # faebryk
18
+ src/faebryk @iopapamanoglou
19
+
20
+ # core
21
+ src/faebryk/core @iopapamanoglou
22
+
23
+ # stdlib
24
+ src/faebryk/library @napowderly
25
+
26
+ # picker
27
+ src/faebryk/libs/picker @sam-mellor
28
+
29
+ # ato dsl
30
+ src/atopile @mawildoer
31
+
32
+
@@ -0,0 +1,60 @@
1
+ name: 🐞 Bug Report
2
+ description: File a bug report
3
+ title: "<title>"
4
+ labels: ["🛠 goal: bug fix"]
5
+ body:
6
+ - type: markdown
7
+ attributes:
8
+ value: |
9
+ Thanks for taking the time to fill out this bug report! Please fill in the following form in detail.
10
+ - type: textarea
11
+ id: current_behaviour
12
+ attributes:
13
+ label: Current Behaviour
14
+ description: Describe what went wrong including the steps to reproduce this bug.
15
+ placeholder: Tell us what you see!
16
+ value: "An exeption occured at line 201 in faebryk/exporters/netlist/kicad/netlist.py when running samples/experiment.py"
17
+ validations:
18
+ required: true
19
+ - type: textarea
20
+ id: expected_behaviour
21
+ attributes:
22
+ label: Expected Behaviour
23
+ description: What did you expect to happen?
24
+ placeholder: Tell us what you see!
25
+ value: "The program exited with all checks \"ok\""
26
+ validations:
27
+ required: true
28
+ - type: textarea
29
+ id: possible_solution
30
+ attributes:
31
+ label: Possible Solution
32
+ description: What might be a solution to this bug?
33
+ placeholder: Tell us if you know a solution or have a pr!
34
+ value: "#pr number"
35
+ validations:
36
+ required: false
37
+ - type: input
38
+ id: version
39
+ attributes:
40
+ label: Version
41
+ description: What version/branch/pr of our software are you running?
42
+ placeholder: 1.0.0
43
+ validations:
44
+ required: true
45
+ - type: textarea
46
+ id: logs
47
+ attributes:
48
+ label: Relevant log output
49
+ description: Please copy and paste any relevant log output. This will be automatically formatted into code, so no need for backticks.
50
+ render: shell
51
+ validations:
52
+ required: false
53
+ - type: checkboxes
54
+ id: terms
55
+ attributes:
56
+ label: Code of Conduct
57
+ description: By submitting this issue, you agree to follow our [Code of Conduct](/atopile/atopile/blob/main/docs/CODE_OF_CONDUCT.md)
58
+ options:
59
+ - label: I agree to follow this project's Code of Conduct
60
+ required: true
@@ -0,0 +1,5 @@
1
+ blank_issues_enabled: true
2
+ contact_links:
3
+ - name: Support via Discord
4
+ url: https://discord.gg/nkpC7wYRVw
5
+ about: Please ask and answer questions here.
@@ -0,0 +1,26 @@
1
+ name: 🔮 Feature Request
2
+ description: File a feature request
3
+ title: "<title>"
4
+ labels: ["⭐ goal: addition"]
5
+ body:
6
+ - type: markdown
7
+ attributes:
8
+ value: |
9
+ Thank you for sharing your amazing idea with us! Please fill in the following form in detail.
10
+ - type: textarea
11
+ id: feature
12
+ attributes:
13
+ label: Feature Request
14
+ description: Describe your great idea.
15
+ placeholder: Tell us all about it!
16
+ value: "Add an interactive method to connect components to eachother"
17
+ validations:
18
+ required: true
19
+ - type: checkboxes
20
+ id: terms
21
+ attributes:
22
+ label: Code of Conduct
23
+ description: By submitting this issue, you agree to follow our [Code of Conduct](/atopile/atopile/blob/main/docs/CODE_OF_CONDUCT.md)
24
+ options:
25
+ - label: I agree to follow this project's Code of Conduct
26
+ required: true
@@ -0,0 +1,36 @@
1
+ version: 2
2
+ updates:
3
+ - package-ecosystem: 'github-actions'
4
+ directory: "/"
5
+ schedule:
6
+ interval: weekly
7
+ labels:
8
+ - 'no-changelog'
9
+
10
+ - package-ecosystem: 'pip'
11
+ directory: /
12
+ schedule:
13
+ interval: daily
14
+ labels:
15
+ - 'no-changelog'
16
+
17
+ - package-ecosystem: 'pip'
18
+ directory: /src/vscode-atopile/
19
+ schedule:
20
+ interval: daily
21
+ labels:
22
+ - 'debt'
23
+ commit-message:
24
+ include: 'scope'
25
+ prefix: 'pip'
26
+
27
+ - package-ecosystem: 'npm'
28
+ directory: /src/vscode-atopile/
29
+ schedule:
30
+ interval: monthly
31
+ labels:
32
+ - 'no-changelog'
33
+ ignore:
34
+ - dependency-name: '@types/vscode'
35
+ - dependency-name: '@types/node'
36
+ - dependency-name: 'vscode-languageclient'
@@ -0,0 +1,19 @@
1
+ # \<Prefix\>: \<Title\>
2
+
3
+ # Description
4
+
5
+ Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context. List any dependencies that are required for this change.
6
+
7
+ Fixes # (issue)
8
+
9
+ # Checklist
10
+
11
+ Please read and execute the following:
12
+
13
+ - [ ] My code follows the [coding guidelines](/faebryk/faebryk/blob/main/docs/CODING_GUIDELINES.md) of this project
14
+ - [ ] I have performed a self-review of my own code
15
+ - [ ] I have commented my code, particularly in hard-to-understand areas
16
+ - [ ] I have made corresponding changes to the documentation (if applicable)
17
+ - [ ] My changes generate no new warnings
18
+ - [ ] I have added tests that prove my fix is effective or that my feature works (if applicable)
19
+ - [ ] Any dependent changes have been merged and published in downstream modules
@@ -1,19 +1,49 @@
1
1
  name: Continuous Delivery
2
2
 
3
3
  on:
4
- push:
5
- branches:
6
- - 'main'
7
- tags:
8
- - 'v*'
4
+ workflow_dispatch:
9
5
  pull_request:
6
+ push:
10
7
  branches:
11
- - 'main'
8
+ - main
12
9
 
13
10
  jobs:
14
- python:
11
+ python-build:
15
12
  runs-on: ubuntu-latest
16
13
 
14
+ steps:
15
+ - uses: actions/checkout@v4
16
+
17
+ # Required due to a bug in the checkout action
18
+ # https://github.com/actions/checkout/issues/1471
19
+ - run: git fetch --prune --unshallow --tags
20
+
21
+ - name: Set up Python
22
+ uses: actions/setup-python@v5
23
+ with:
24
+ python-version-file: 'pyproject.toml'
25
+
26
+ - name: Install uv
27
+ uses: astral-sh/setup-uv@v4
28
+ with:
29
+ version: '0.5.5'
30
+ enable-cache: true
31
+ cache-dependency-glob: "uv.lock"
32
+
33
+ - name: Make python package
34
+ run: uv build
35
+
36
+ - name: Upload Python Artifact
37
+ uses: actions/upload-artifact@v4
38
+ with:
39
+ name: python-package
40
+ path: dist
41
+
42
+ python-publish:
43
+ runs-on: ubuntu-latest
44
+ if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags')
45
+ needs: python-build
46
+
17
47
  environment:
18
48
  name: pypi
19
49
  url: https://pypi.org/p/atopile/
@@ -25,46 +55,24 @@ jobs:
25
55
  steps:
26
56
  - uses: actions/checkout@v4
27
57
 
28
- # Required due to a bug in the checkout action
29
- # https://github.com/actions/checkout/issues/1471
30
- - run: git fetch --prune --unshallow --tags
31
-
32
- -
33
- name: Set up Python
34
- uses: actions/setup-python@v2
35
- with:
36
- python-version: '3.11'
37
-
38
- -
39
- name: Make python package
40
- run: |
41
- pip install build twine
42
- python -m build
43
-
44
- -
45
- name: Upload Python Artifact
46
- uses: actions/upload-artifact@v2
58
+ - name: Download python-package
59
+ uses: actions/download-artifact@v4
47
60
  with:
48
61
  name: python-package
49
62
  path: dist
50
63
 
51
- -
52
- name: Publish package distributions to PyPI
53
- if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags')
54
- uses: pypa/gh-action-pypi-publish@2f6f737ca5f74c637829c0f5c3acd0e29ea5e8bf
64
+ - name: Publish package distributions to PyPI
65
+ uses: pypa/gh-action-pypi-publish@v1
55
66
  with:
56
67
  skip-existing: true # Helpful while we're migrating
57
68
 
58
69
  docker:
59
70
  runs-on: ubuntu-latest
60
-
61
- needs: python
71
+ needs: python-build
62
72
 
63
73
  strategy:
64
74
  matrix:
65
75
  include:
66
- - dockerfile: "Dockerfile.ci"
67
- image: "atopile-ci"
68
76
  - dockerfile: "Dockerfile.kicad"
69
77
  image: "atopile-kicad"
70
78
 
@@ -77,57 +85,40 @@ jobs:
77
85
  steps:
78
86
  - uses: actions/checkout@v4
79
87
 
80
- -
81
- name: Download python-package
82
- uses: actions/download-artifact@v2
88
+ - name: Download python-package
89
+ uses: actions/download-artifact@v4
83
90
  with:
84
91
  name: python-package
85
92
  path: dist
86
93
 
87
- -
88
- name: Docker meta
94
+ - name: Docker meta
89
95
  id: meta
90
96
  uses: docker/metadata-action@v5
91
97
  with:
92
98
  images: |
93
99
  ghcr.io/atopile/${{ matrix.image }}
100
+ # TODO: re-enable @latest tag once main is stable again (@v0.3)
101
+ flavor: |
102
+ latest=false
94
103
  tags: |
95
104
  type=ref,event=branch
96
105
  type=ref,event=pr
97
106
  type=semver,pattern={{version}}
98
107
  type=semver,pattern={{major}}.{{minor}}
108
+ type=sha
99
109
 
100
- -
101
- name: Log in to the Container registry
102
- uses: docker/login-action@65b78e6e13532edd9afa3aa52ac7964289d1a9c1
110
+ - name: Log in to the Container registry
111
+ uses: docker/login-action@0d4c9c5ea7693da7b068278f7b52bda2a190a446
103
112
  with:
104
113
  registry: ghcr.io
105
114
  username: ${{ github.actor }}
106
115
  password: ${{ secrets.GITHUB_TOKEN }}
107
116
 
108
- -
109
- name: Build and push
110
- uses: docker/build-push-action@v5
117
+ - name: Build and push
118
+ uses: docker/build-push-action@v6
111
119
  with:
112
120
  context: .
113
121
  file: dockerfiles/${{ matrix.dockerfile }}
114
122
  push: true
115
123
  tags: ${{ steps.meta.outputs.tags }}
116
124
  labels: ${{ steps.meta.outputs.labels }}
117
-
118
- # vscode: TODO:
119
- # runs-on: ubuntu-latest
120
- # steps:
121
- # - uses: actions/checkout@v4
122
-
123
- # - uses: actions/setup-node@v1
124
- # with:
125
- # node-version: 20
126
-
127
- # - run: npm ci
128
-
129
- # - name: Publish to Visual Studio Marketplace
130
- # uses: HaaLeo/publish-vscode-extension@v1
131
- # with:
132
- # pat: ${{ secrets.VS_MARKETPLACE_TOKEN }}
133
- # registryUrl: https://marketplace.visualstudio.com
@@ -0,0 +1,20 @@
1
+ name: pre-commit
2
+
3
+ on:
4
+ push:
5
+
6
+ jobs:
7
+ pre-commit:
8
+ runs-on: ubuntu-latest
9
+
10
+ steps:
11
+ - uses: actions/checkout@v4
12
+
13
+ - uses: actions/setup-python@v5
14
+ with:
15
+ python-version-file: 'pyproject.toml'
16
+
17
+ - uses: pre-commit/action@v3.0.1
18
+
19
+ - name: Fail on diff after pre-commit is run
20
+ run: git diff --exit-code
@@ -0,0 +1,57 @@
1
+ name: pytest
2
+
3
+ on:
4
+ push:
5
+
6
+ jobs:
7
+ pytest:
8
+ runs-on: blacksmith-8vcpu-ubuntu-2204
9
+ steps:
10
+ - name: Checkout code
11
+ uses: actions/checkout@v4
12
+
13
+ # Required due to a bug in the checkout action
14
+ # https://github.com/actions/checkout/issues/1471
15
+ - run: git fetch --prune --unshallow --tags
16
+
17
+ - name: Install uv
18
+ uses: useblacksmith/setup-uv@v4
19
+ with:
20
+ version: 0.5.5
21
+ enable-cache: true
22
+ cache-dependency-glob: "uv.lock"
23
+
24
+ - name: "Set up Python"
25
+ uses: useblacksmith/setup-python@v6
26
+ with:
27
+ python-version-file: "pyproject.toml"
28
+
29
+ - name: Setup cmake
30
+ uses: jwlawson/actions-setup-cmake@v2
31
+
32
+ - name: Run pytest
33
+ id: pytest
34
+ continue-on-error: true
35
+ run: |
36
+ uv run --dev --no-editable --frozen pytest -m "not not_in_ci and not slow and not regression" --timeout=300
37
+ env:
38
+ COLUMNS: 150 # rich console width will be pulled from this
39
+
40
+ - name: Upload all test logs
41
+ if: steps.pytest.outcome == 'failure'
42
+ uses: actions/upload-artifact@v4
43
+ with:
44
+ name: test-logs
45
+ path: artifacts/**/*.log
46
+ if-no-files-found: warn
47
+
48
+ - name: Upload all test report
49
+ if: steps.pytest.outcome == 'failure'
50
+ uses: actions/upload-artifact@v4
51
+ with:
52
+ name: test-report
53
+ path: artifacts/test-report.html
54
+
55
+ - name: Check pytest status
56
+ if: steps.pytest.outcome == 'failure'
57
+ run: exit 1
@@ -0,0 +1,94 @@
1
+ name: regression
2
+
3
+ on:
4
+ push:
5
+ branches: [main] # Adjust this if your default branch has a different name
6
+ pull_request:
7
+ types: [opened, synchronize, reopened, labeled]
8
+ workflow_dispatch: # Add manual trigger capability
9
+
10
+ jobs:
11
+ regression:
12
+ runs-on: blacksmith-4vcpu-ubuntu-2204
13
+ if: ${{
14
+ (github.event_name == 'pull_request' && contains(github.event.pull_request.labels.*.name, 'regression-required')) ||
15
+ (github.event_name == 'push' || github.event_name == 'workflow_dispatch')
16
+ }}
17
+ steps:
18
+ # FIXME: remove this once we're done debugging
19
+ - run: echo "Event " ${{ github.event_name }}
20
+ - run: echo "Event labels " ${{ github.event.pull_request.labels }}
21
+ - run: echo "run for pull_request " ${{ (github.event_name == 'pull_request' && contains(github.event.pull_request.labels.*.name, 'regression-required')) }}
22
+ - run: echo "run else " ${{ (github.event_name == 'push' || github.event_name == 'workflow_dispatch') }}
23
+
24
+ - name: Checkout code
25
+ uses: actions/checkout@v4
26
+
27
+ # Required due to a bug in the checkout action
28
+ # https://github.com/actions/checkout/issues/1471
29
+ - run: git fetch --prune --unshallow --tags
30
+
31
+ - name: Install uv
32
+ uses: useblacksmith/setup-uv@v4
33
+ with:
34
+ version: 0.5.5
35
+ enable-cache: true
36
+ cache-dependency-glob: "uv.lock"
37
+
38
+ - name: "Set up Python"
39
+ uses: useblacksmith/setup-python@v6
40
+ with:
41
+ python-version-file: "pyproject.toml"
42
+
43
+ - name: Setup cmake
44
+ uses: jwlawson/actions-setup-cmake@v2
45
+
46
+ - name: Configure AWS Credentials
47
+ uses: aws-actions/configure-aws-credentials@v4
48
+ with:
49
+ aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
50
+ aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
51
+ aws-region: ${{ secrets.AWS_REGION }}
52
+
53
+ # TODO: remove dependency on global fp-lib-table
54
+ - name: Prepare test environment
55
+ run: |
56
+ mkdir -p ~/.config/kicad/8.0/
57
+ aws s3 cp "s3://${{ secrets.TEST_DATASET_BUCKET }}/kicad-8.0-fp-lib-table" ~/.config/kicad/8.0/fp-lib-table
58
+
59
+ mkdir -p /usr/share/kicad/
60
+ aws s3 cp "s3://${{ secrets.TEST_DATASET_BUCKET }}/kicad-8.0-footprints.tar.gz" - | tar -xz -C /usr/share/kicad/
61
+
62
+ - name: Run pytest
63
+ id: pytest
64
+ continue-on-error: true
65
+ # Regular tests are run as part of the pytest workflow
66
+ run: |
67
+ uv run --dev --no-editable --frozen pytest -m "not not_in_ci and regression" --timeout=900
68
+ env:
69
+ GH_TOKEN: ${{ github.token }}
70
+ PYTEST_HISTORY_EMAIL: ${{ vars.PYTEST_HISTORY_EMAIL }}
71
+ PYTEST_HISTORY_PASSWORD: ${{ secrets.PYTEST_HISTORY_PASSWORD }}
72
+ COLUMNS: 150 # rich console width will be pulled from this
73
+
74
+ - name: Upload all test artifacts
75
+ if: steps.pytest.outcome == 'failure'
76
+ uses: actions/upload-artifact@v4
77
+ with:
78
+ name: test-artifacts
79
+ path: artifacts/**
80
+ if-no-files-found: warn
81
+
82
+ # Upload the report as a separate artifact
83
+ # to make it easier to find since it's typically
84
+ # the first place we look for the failure
85
+ - name: Upload all test report
86
+ if: steps.pytest.outcome == 'failure'
87
+ uses: actions/upload-artifact@v4
88
+ with:
89
+ name: test-report
90
+ path: artifacts/test-report.html
91
+
92
+ - name: Check pytest status
93
+ if: steps.pytest.outcome == 'failure'
94
+ run: exit 1
@@ -0,0 +1,45 @@
1
+ name: Release VSCode Extension
2
+
3
+ on:
4
+ push:
5
+ tags:
6
+ - 'v[0-9]+.[0-9]+.[0-9]+'
7
+ workflow_dispatch:
8
+ inputs:
9
+ version:
10
+ description: 'Version to release'
11
+ required: true
12
+ type: string
13
+
14
+ jobs:
15
+ vsx-extension:
16
+ runs-on: ubuntu-latest
17
+ defaults:
18
+ run:
19
+ working-directory: src/vscode-atopile
20
+ steps:
21
+ - uses: actions/checkout@v4
22
+
23
+ - uses: actions/setup-node@v4
24
+ with:
25
+ node-version: 20
26
+
27
+ - run: npm ci
28
+
29
+ # Set the version in package.json from a workflow dispatch input
30
+ - run: npm version --no-git-tag-version ${{ inputs.version }}
31
+ if: github.event_name == 'workflow_dispatch'
32
+ # Otherwise use the tag name
33
+ - run: npm version --no-git-tag-version ${{ github.ref_name }}
34
+ if: github.event_name == 'push'
35
+
36
+ - name: Publish to VS Code Marketplace
37
+ # Skip duplicate here to allow manual triggering
38
+ run: npx vsce publish --skip-duplicate
39
+ env:
40
+ VSCE_PAT: ${{ secrets.VSCE_PAT }}
41
+
42
+ - name: Publish to Open VSX
43
+ run: npx ovsx publish --skip-duplicate
44
+ env:
45
+ OVSX_PAT: ${{ secrets.OVSX_PAT }}
@@ -10,20 +10,31 @@ jobs:
10
10
  runs-on: ubuntu-latest
11
11
  steps:
12
12
  - uses: actions/checkout@v4
13
+
13
14
  - name: Configure Git Credentials
14
15
  run: |
15
16
  git config user.name github-actions[bot]
16
17
  git config user.email 41898282+github-actions[bot]@users.noreply.github.com
17
- - uses: actions/setup-python@v4
18
+
19
+ - name: Set up Python
20
+ uses: actions/setup-python@v5
18
21
  with:
19
- python-version: 3.x
20
- - run: echo "cache_id=$(date --utc '+%V')" >> $GITHUB_ENV
21
- - uses: actions/cache@v3
22
+ python-version-file: 'pyproject.toml'
23
+
24
+ - name: Install uv
25
+ uses: astral-sh/setup-uv@v4
26
+ with:
27
+ version: '0.5.5'
28
+ enable-cache: true
29
+ cache-dependency-glob: "uv.lock"
30
+
31
+ - run: echo "cache_id=$(date --utc '+%V')" >> $GITHUB_ENV
32
+
33
+ - uses: actions/cache@v4
22
34
  with:
23
35
  key: mkdocs-material-${{ env.cache_id }}
24
36
  path: .cache
25
37
  restore-keys: |
26
38
  mkdocs-material-
27
- - run: pip install mkdocs-material
28
- - run: pip install mkdocs-drawio-file
29
- - run: mkdocs gh-deploy --force
39
+
40
+ - run: uv run --dev mkdocs gh-deploy --force