atopile 0.3.7.dev0__tar.gz → 0.3.8.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 (703) hide show
  1. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/PKG-INFO +1 -1
  2. atopile-0.3.8.dev0/docs/CNAME +1 -0
  3. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/atopile/cli/build.py +1 -1
  4. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/exporters/pcb/kicad/pcb.py +14 -10
  5. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/CH342F.py +2 -2
  6. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/CH344.py +0 -3
  7. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/CH344Q_ReferenceDesign.py +2 -0
  8. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/EnablePin.py +3 -2
  9. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/WCHJiangsu_Qin_Heng_CH224K.py +2 -1
  10. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/WCHJiangsu_Qin_Heng_CH224K_ReferenceDesign.py +2 -2
  11. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/libs/picker/lcsc.py +7 -1
  12. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/libs/util.py +9 -0
  13. atopile-0.3.8.dev0/test/libs/util/test_yield_missing.py +29 -0
  14. atopile-0.3.7.dev0/docs/CNAME +0 -1
  15. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/.git-blame-ignore-revs +0 -0
  16. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/.gitattributes +0 -0
  17. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/.github/CODEOWNERS +0 -0
  18. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
  19. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  20. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
  21. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/.github/dependabot.yml +0 -0
  22. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/.github/pull_request_template.md +0 -0
  23. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/.github/workflows/cd.yml +0 -0
  24. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/.github/workflows/pre-commit.yml +0 -0
  25. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/.github/workflows/pytest.yml +0 -0
  26. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/.github/workflows/regression.yml +0 -0
  27. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/.github/workflows/vsx.yml +0 -0
  28. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/.github/workflows/website.yml +0 -0
  29. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/.github/workflows/wheels.yml +0 -0
  30. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/.gitignore +0 -0
  31. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/.gitmodules +0 -0
  32. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/.pre-commit-config.yaml +0 -0
  33. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/.vscode/extensions.json +0 -0
  34. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/.vscode/launch.shared.json +0 -0
  35. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/.vscode/settings.shared.json +0 -0
  36. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/.vscode/tasks.shared.json +0 -0
  37. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/LICENSE +0 -0
  38. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/README.md +0 -0
  39. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/atopile-custom-words.txt +0 -0
  40. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/cspell.json +0 -0
  41. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/dockerfiles/Dockerfile.kicad +0 -0
  42. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/dockerfiles/README.md +0 -0
  43. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/CODE_OF_CONDUCT.md +0 -0
  44. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/CODING_GUIDELINES.md +0 -0
  45. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/CONTRIBUTING.md +0 -0
  46. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/api/cli.md +0 -0
  47. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/api/solver.md +0 -0
  48. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/assets/images/assertion-checks-2.png +0 -0
  49. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/assets/images/assertion-checks.png +0 -0
  50. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/assets/images/assertion-solver.png +0 -0
  51. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/assets/images/ato_extension.png +0 -0
  52. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/assets/images/block_diagram_example.png +0 -0
  53. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/assets/images/buck_ic.png +0 -0
  54. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/assets/images/buck_topology.png +0 -0
  55. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/assets/images/capacitor_definition.png +0 -0
  56. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/assets/images/ci-generated-gerbers-githash.png +0 -0
  57. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/assets/images/ci-generated-gerbers.avif +0 -0
  58. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/assets/images/ci-generated-gerbers.gif +0 -0
  59. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/assets/images/cloud_bom.png +0 -0
  60. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/assets/images/code-layout-pcb.png +0 -0
  61. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/assets/images/code-loading.png +0 -0
  62. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/assets/images/debugger-vscode.png +0 -0
  63. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/assets/images/discord-qr.png +0 -0
  64. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/assets/images/download.png +0 -0
  65. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/assets/images/equation-preview.gif +0 -0
  66. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/assets/images/extension-python-setup.gif +0 -0
  67. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/assets/images/file-import.png +0 -0
  68. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/assets/images/footprints.png +0 -0
  69. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/assets/images/groups.png +0 -0
  70. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/assets/images/import-settings.png +0 -0
  71. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/assets/images/kicad_buttons.png +0 -0
  72. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/assets/images/ldo-demo.png +0 -0
  73. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/assets/images/mosfet.png +0 -0
  74. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/assets/images/placement-reuse.avif +0 -0
  75. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/assets/images/placement-reuse.gif +0 -0
  76. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/assets/images/reload.png +0 -0
  77. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/assets/images/schematic_example.png +0 -0
  78. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/assets/images/slice.png +0 -0
  79. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/assets/images/slow-to-fast-hq.gif +0 -0
  80. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/assets/images/swoop-block-diagram.png +0 -0
  81. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/assets/images/swoop-bringup.png +0 -0
  82. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/assets/images/swoop.png +0 -0
  83. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/assets/images/trace-reuse.avif +0 -0
  84. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/assets/images/trace-reuse.gif +0 -0
  85. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/assets/images/upload.png +0 -0
  86. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/assets/logo/ato_logo_256x256.png +0 -0
  87. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/assets/logo/ato_logo_32x32.png +0 -0
  88. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/assets/logo/emblem.svg +0 -0
  89. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/assets/logo/faebryk_logo.png +0 -0
  90. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/assets/logo/logo-with-text-dark.png +0 -0
  91. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/assets/logo/logo-with-text.png +0 -0
  92. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/blog/.authors.yml +0 -0
  93. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/blog/index.md +0 -0
  94. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/blog/posts/assertions.md +0 -0
  95. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/blog/posts/ci-generated-gerbers.md +0 -0
  96. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/blog/posts/cloud_components.md +0 -0
  97. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/blog/posts/dsl.md +0 -0
  98. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/blog/posts/layout-reuse-2.md +0 -0
  99. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/blog/posts/layout-reuse.md +0 -0
  100. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/blog/posts/matts-story.md +0 -0
  101. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/blog/posts/narayans-story.md +0 -0
  102. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/blog/posts/traits.md +0 -0
  103. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/building.md +0 -0
  104. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/ci.md +0 -0
  105. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/class.md +0 -0
  106. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/component_selection.md +0 -0
  107. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/config.md +0 -0
  108. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/connect.md +0 -0
  109. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/development.md +0 -0
  110. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/doc-strings.md +0 -0
  111. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/first_project.md +0 -0
  112. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/git.md +0 -0
  113. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/how-to.md +0 -0
  114. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/import.md +0 -0
  115. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/index.md +0 -0
  116. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/install.md +0 -0
  117. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/kicad.md +0 -0
  118. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/maths.md +0 -0
  119. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/overrides/Inconsolata-Black.ttf +0 -0
  120. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/overrides/Inconsolata-Bold.ttf +0 -0
  121. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/overrides/Inconsolata-ExtraBold.ttf +0 -0
  122. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/overrides/Inconsolata-ExtraLight.ttf +0 -0
  123. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/overrides/Inconsolata-Light.ttf +0 -0
  124. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/overrides/Inconsolata-Medium.ttf +0 -0
  125. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/overrides/Inconsolata-Regular.ttf +0 -0
  126. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/overrides/Inconsolata-SemiBold.ttf +0 -0
  127. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/overrides/SpaceMono-Bold.ttf +0 -0
  128. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/overrides/SpaceMono-BoldItalic.ttf +0 -0
  129. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/overrides/SpaceMono-Italic.ttf +0 -0
  130. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/overrides/SpaceMono-Regular.ttf +0 -0
  131. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/overrides/assets/javascripts/custom.129bd6ad.min.js +0 -0
  132. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/overrides/assets/javascripts/custom.129bd6ad.min.js.map +0 -0
  133. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/overrides/assets/javascripts/iconsearch_index.json +0 -0
  134. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/overrides/assets/stylesheets/custom.css +0 -0
  135. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/overrides/home.html +0 -0
  136. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/overrides/hooks/shortcodes.py +0 -0
  137. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/overrides/hooks/translations.html +0 -0
  138. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/overrides/hooks/translations.py +0 -0
  139. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/overrides/main.html +0 -0
  140. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/roadmap.md +0 -0
  141. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/spin.md +0 -0
  142. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/swoop.md +0 -0
  143. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/types.md +0 -0
  144. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/view.md +0 -0
  145. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/yc-hardware-meetup.md +0 -0
  146. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/examples/.ato/modules/generics/README.md +0 -0
  147. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/examples/.ato/modules/generics/capacitors.ato +0 -0
  148. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/examples/.ato/modules/generics/resistors.ato +0 -0
  149. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/examples/.gitignore +0 -0
  150. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/examples/README.md +0 -0
  151. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/examples/ato.yaml +0 -0
  152. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/examples/ch1_1_ato.ato +0 -0
  153. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/examples/ch1_2_ldo_demo.ato +0 -0
  154. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/examples/ch2_1_fab.py +0 -0
  155. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/examples/ch2_2_minimal_led.py +0 -0
  156. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/examples/ch2_3_minimal_led_explicit_parts.py +0 -0
  157. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/examples/ch2_4_maximal_led.py +0 -0
  158. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/examples/ch2_5_signal_processing.py +0 -0
  159. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/examples/ch2_6_route.py +0 -0
  160. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/examples/ch2_7_pcb_layout.py +0 -0
  161. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/examples/ch2_8_mcu.py +0 -0
  162. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/examples/ch2_9_iterative_design_nand.py +0 -0
  163. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/examples/layout/ato/fp-lib-table +0 -0
  164. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/examples/layout/ato/pcb.kicad_pcb +0 -0
  165. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/examples/layout/ato/pcb.kicad_pro +0 -0
  166. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/examples/layout/fab/fp-lib-table +0 -0
  167. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/examples/layout/fab/pcb.kicad_pcb +0 -0
  168. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/examples/layout/fab/pcb.kicad_pro +0 -0
  169. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/mkdocs.yml +0 -0
  170. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/pyproject.toml +0 -0
  171. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/scripts/attach_license.py +0 -0
  172. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/scripts/clean_issues.py +0 -0
  173. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/scripts/find_duplicate_test_files.sh +0 -0
  174. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/atopile/__init__.py +0 -0
  175. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/atopile/__main__.py +0 -0
  176. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/atopile/_shim.py +0 -0
  177. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/atopile/address.py +0 -0
  178. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/atopile/buildutil.py +0 -0
  179. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/atopile/cli/__init__.py +0 -0
  180. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/atopile/cli/cli.py +0 -0
  181. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/atopile/cli/common.py +0 -0
  182. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/atopile/cli/configure.py +0 -0
  183. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/atopile/cli/console.py +0 -0
  184. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/atopile/cli/create.py +0 -0
  185. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/atopile/cli/excepthook.py +0 -0
  186. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/atopile/cli/inspect.py +0 -0
  187. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/atopile/cli/install.py +0 -0
  188. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/atopile/cli/logging.py +0 -0
  189. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/atopile/cli/view.py +0 -0
  190. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/atopile/config.py +0 -0
  191. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/atopile/datatypes.py +0 -0
  192. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/atopile/errors.py +0 -0
  193. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/atopile/front_end.py +0 -0
  194. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/atopile/kicad_plugin/.gitignore +0 -0
  195. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/atopile/kicad_plugin/README.md +0 -0
  196. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/atopile/kicad_plugin/__init__.py +0 -0
  197. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/atopile/kicad_plugin/buttons.svg +0 -0
  198. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/atopile/kicad_plugin/common.py +0 -0
  199. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/atopile/kicad_plugin/download.png +0 -0
  200. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/atopile/kicad_plugin/pullgroup.py +0 -0
  201. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/atopile/kicad_plugin/pushgroup.py +0 -0
  202. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/atopile/kicad_plugin/reload.png +0 -0
  203. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/atopile/kicad_plugin/reloadgroup.py +0 -0
  204. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/atopile/kicad_plugin/upload.png +0 -0
  205. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/atopile/layout.py +0 -0
  206. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/atopile/parse.py +0 -0
  207. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/atopile/parse_utils.py +0 -0
  208. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/atopile/parser/.gitignore +0 -0
  209. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/atopile/parser/AtoLexer.g4 +0 -0
  210. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/atopile/parser/AtoLexer.interp +0 -0
  211. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/atopile/parser/AtoLexer.py +0 -0
  212. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/atopile/parser/AtoLexer.tokens +0 -0
  213. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/atopile/parser/AtoLexerBase.py +0 -0
  214. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/atopile/parser/AtoParser.g4 +0 -0
  215. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/atopile/parser/AtoParser.interp +0 -0
  216. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/atopile/parser/AtoParser.py +0 -0
  217. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/atopile/parser/AtoParser.tokens +0 -0
  218. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/atopile/parser/AtoParserBase.py +0 -0
  219. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/atopile/parser/AtoParserVisitor.py +0 -0
  220. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/atopile/parser/README.md +0 -0
  221. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/atopile/parser/__init__.py +0 -0
  222. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/atopile/parser/build.sh +0 -0
  223. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/atopile/telemetry.py +0 -0
  224. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/atopile/version.py +0 -0
  225. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/__init__.py +0 -0
  226. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/core/__init__.py +0 -0
  227. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/core/core.py +0 -0
  228. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/core/cpp/.clang-format +0 -0
  229. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/core/cpp/CMakeLists.txt +0 -0
  230. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/core/cpp/__init__.py +0 -0
  231. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/core/cpp/__init__.pyi +0 -0
  232. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/core/cpp/cpp_helpers.py +0 -0
  233. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/core/cpp/include/graph/graph.hpp +0 -0
  234. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/core/cpp/include/graph/graphinterfaces.hpp +0 -0
  235. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/core/cpp/include/graph/links.hpp +0 -0
  236. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/core/cpp/include/nano.hpp +0 -0
  237. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/core/cpp/include/pathfinder/bfs.hpp +0 -0
  238. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/core/cpp/include/pathfinder/pathcounter.hpp +0 -0
  239. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/core/cpp/include/pathfinder/pathfinder.hpp +0 -0
  240. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/core/cpp/include/perf.hpp +0 -0
  241. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/core/cpp/include/pyutil.hpp +0 -0
  242. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/core/cpp/include/util.hpp +0 -0
  243. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/core/cpp/src/graph/graph.cpp +0 -0
  244. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/core/cpp/src/graph/graphinterface.cpp +0 -0
  245. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/core/cpp/src/graph/graphinterfaces.cpp +0 -0
  246. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/core/cpp/src/graph/link.cpp +0 -0
  247. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/core/cpp/src/graph/links.cpp +0 -0
  248. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/core/cpp/src/graph/node.cpp +0 -0
  249. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/core/cpp/src/graph/path.cpp +0 -0
  250. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/core/cpp/src/graph/type.cpp +0 -0
  251. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/core/cpp/src/main.cpp +0 -0
  252. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/core/cpp/src/pathfinder/bfs.cpp +0 -0
  253. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/core/cpp/src/pathfinder/pathcounter.cpp +0 -0
  254. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/core/cpp/src/pathfinder/pathfinder.cpp +0 -0
  255. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/core/cpp/src/perf.cpp +0 -0
  256. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/core/graph.py +0 -0
  257. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/core/graphinterface.py +0 -0
  258. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/core/link.py +0 -0
  259. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/core/module.py +0 -0
  260. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/core/moduleinterface.py +0 -0
  261. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/core/node.py +0 -0
  262. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/core/parameter.py +0 -0
  263. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/core/pathfinder.py +0 -0
  264. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/core/reference.py +0 -0
  265. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/core/solver/__init__.py +0 -0
  266. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/core/solver/analytical.py +0 -0
  267. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/core/solver/canonical.py +0 -0
  268. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/core/solver/defaultsolver.py +0 -0
  269. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/core/solver/literal_folding.py +0 -0
  270. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/core/solver/solver.py +0 -0
  271. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/core/solver/utils.py +0 -0
  272. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/core/trait.py +0 -0
  273. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/exporters/bom/jlcpcb.py +0 -0
  274. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/exporters/documentation/datasheets.py +0 -0
  275. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/exporters/esphome/esphome.py +0 -0
  276. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/exporters/netlist/graph.py +0 -0
  277. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/exporters/netlist/kicad/netlist_kicad.py +0 -0
  278. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/exporters/netlist/netlist.py +0 -0
  279. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/exporters/parameters/parameters_to_file.py +0 -0
  280. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/exporters/pcb/kicad/artifacts.py +0 -0
  281. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/exporters/pcb/kicad/transformer.py +0 -0
  282. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/exporters/pcb/layout/absolute.py +0 -0
  283. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/exporters/pcb/layout/extrude.py +0 -0
  284. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/exporters/pcb/layout/font.py +0 -0
  285. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/exporters/pcb/layout/heuristic_decoupling.py +0 -0
  286. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/exporters/pcb/layout/heuristic_pulls.py +0 -0
  287. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/exporters/pcb/layout/layout.py +0 -0
  288. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/exporters/pcb/layout/matrix.py +0 -0
  289. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/exporters/pcb/layout/next_to.py +0 -0
  290. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/exporters/pcb/layout/next_to_pin.py +0 -0
  291. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/exporters/pcb/layout/typehierarchy.py +0 -0
  292. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/exporters/pcb/pick_and_place/jlcpcb.py +0 -0
  293. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/exporters/pcb/routing/util.py +0 -0
  294. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/exporters/project/faebryk/project_faebryk.py +0 -0
  295. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/exporters/schematic/kicad/transformer.py +0 -0
  296. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/exporters/visualize/interactive_graph.py +0 -0
  297. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/exporters/visualize/interactive_params.py +0 -0
  298. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/exporters/visualize/interactive_params_base.py +0 -0
  299. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/exporters/visualize/util.py +0 -0
  300. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/importers/netlist/kicad/netlist_kicad.py +0 -0
  301. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/Analog_Devices_ADM2587EBRWZ.py +0 -0
  302. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/Analog_Devices_ADM2587EBRWZ_ReferenceDesign.py +0 -0
  303. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/B0505S_1WR3.py +0 -0
  304. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/B4B_ZR_SM4_TF.py +0 -0
  305. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/BH1750FVI_TR.py +0 -0
  306. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/BJT.py +0 -0
  307. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/Battery.py +0 -0
  308. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/Button.py +0 -0
  309. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/ButtonCell.py +0 -0
  310. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/CBM9002A_56ILG.py +0 -0
  311. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/CBM9002A_56ILG_ReferenceDesign.py +0 -0
  312. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/CD4011.py +0 -0
  313. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/CH340x.py +0 -0
  314. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/CH342.py +0 -0
  315. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/CH342F_ReferenceDesign.py +0 -0
  316. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/CH342K.py +0 -0
  317. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/CH342K_ReferenceDesign.py +0 -0
  318. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/CH344Q.py +0 -0
  319. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/Capacitor.py +0 -0
  320. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/Common_Mode_Filter.py +0 -0
  321. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/Comparator.py +0 -0
  322. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/Crystal.py +0 -0
  323. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/Crystal_Oscillator.py +0 -0
  324. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/DE9Connector.py +0 -0
  325. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/DE9RS232Connector.py +0 -0
  326. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/DIP.py +0 -0
  327. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/DifferentialPair.py +0 -0
  328. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/Diode.py +0 -0
  329. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/Diodes_Incorporated_AP2552W6_7.py +0 -0
  330. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/Diodes_Incorporated_AP2553W6_7.py +0 -0
  331. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/Diodes_Incorporated_AP255x_x.py +0 -0
  332. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/EEPROM.py +0 -0
  333. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/ESP32_C3.py +0 -0
  334. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/ESP32_C3_MINI_1.py +0 -0
  335. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/ESP32_C3_MINI_1_ReferenceDesign.py +0 -0
  336. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/ElecSuper_PSM712_ES.py +0 -0
  337. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/ElectricLogic.py +0 -0
  338. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/ElectricLogicGate.py +0 -0
  339. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/ElectricLogicGates.py +0 -0
  340. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/ElectricPower.py +0 -0
  341. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/Electrical.py +0 -0
  342. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/Ethernet.py +0 -0
  343. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/Fan.py +0 -0
  344. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/Filter.py +0 -0
  345. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/FilterElectricalLC.py +0 -0
  346. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/FilterElectricalRC.py +0 -0
  347. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/Footprint.py +0 -0
  348. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/Fuse.py +0 -0
  349. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/GDT.py +0 -0
  350. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/GenericBusProtection.py +0 -0
  351. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/HDMI.py +0 -0
  352. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/HLK_LD2410B_P.py +0 -0
  353. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/Header.py +0 -0
  354. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/I2C.py +0 -0
  355. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/I2S.py +0 -0
  356. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/INA228.py +0 -0
  357. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/INA228_ReferenceDesign.py +0 -0
  358. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/ISO1540.py +0 -0
  359. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/ISO1540_ReferenceDesign.py +0 -0
  360. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/Inductor.py +0 -0
  361. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/JTAG.py +0 -0
  362. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/KicadFootprint.py +0 -0
  363. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/LDO.py +0 -0
  364. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/LED.py +0 -0
  365. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/LEDIndicator.py +0 -0
  366. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/Logic.py +0 -0
  367. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/Logic74xx.py +0 -0
  368. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/LogicGate.py +0 -0
  369. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/LogicGates.py +0 -0
  370. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/LogicOps.py +0 -0
  371. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/M24C08_FMN6TP.py +0 -0
  372. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/MCP2221A.py +0 -0
  373. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/ME6211C33M5G_N.py +0 -0
  374. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/MOSFET.py +0 -0
  375. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/Mechanical.py +0 -0
  376. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/Mounting_Hole.py +0 -0
  377. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/MultiCapacitor.py +0 -0
  378. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/MultiSPI.py +0 -0
  379. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/Net.py +0 -0
  380. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/OLED_Module.py +0 -0
  381. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/OpAmp.py +0 -0
  382. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/PANASONIC_AQY212EHAX.py +0 -0
  383. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/PJ398SM.py +0 -0
  384. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/PM1006.py +0 -0
  385. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/Pad.py +0 -0
  386. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/Pinmux.py +0 -0
  387. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/Potentiometer.py +0 -0
  388. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/Power.py +0 -0
  389. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/PowerMux.py +0 -0
  390. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/PowerSwitch.py +0 -0
  391. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/PowerSwitchMOSFET.py +0 -0
  392. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/PowerSwitchStatic.py +0 -0
  393. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/PoweredLED.py +0 -0
  394. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/Powered_Relay.py +0 -0
  395. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/QFN.py +0 -0
  396. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/QWIIC_Connector.py +0 -0
  397. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/RJ45_Receptacle.py +0 -0
  398. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/RP2040.py +0 -0
  399. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/RP2040Pinmux.py +0 -0
  400. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/RP2040_ReferenceDesign.py +0 -0
  401. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/RS232.py +0 -0
  402. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/RS485HalfDuplex.py +0 -0
  403. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/RS485_Bus_Protection.py +0 -0
  404. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/RaspberryPiPico.py +0 -0
  405. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/RaspberryPiPicoBase_ReferenceDesign.py +0 -0
  406. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/Relay.py +0 -0
  407. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/Resistor.py +0 -0
  408. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/ResistorVoltageDivider.py +0 -0
  409. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/Resistor_Voltage_Divider.py +0 -0
  410. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/SCD40.py +0 -0
  411. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/SK6812.py +0 -0
  412. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/SK9822_EC20.py +0 -0
  413. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/SMDTwoPin.py +0 -0
  414. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/SNx4LVC541A.py +0 -0
  415. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/SOIC.py +0 -0
  416. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/SP3243E.py +0 -0
  417. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/SP3243E_ReferenceDesign.py +0 -0
  418. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/SPI.py +0 -0
  419. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/SPIFlash.py +0 -0
  420. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/SWD.py +0 -0
  421. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/SWDConnector.py +0 -0
  422. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/Sercom.py +0 -0
  423. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/Shenzhen_Kinghelm_Elec_KH_BNC75_3511.py +0 -0
  424. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/Signal.py +0 -0
  425. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/SignalElectrical.py +0 -0
  426. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/SurgeProtection.py +0 -0
  427. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/Switch.py +0 -0
  428. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/Symbol.py +0 -0
  429. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/TD541S485H.py +0 -0
  430. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/TECH_PUBLIC_USBLC6_2SC6.py +0 -0
  431. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/TI_CD4011BE.py +0 -0
  432. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/TPS2116.py +0 -0
  433. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/TVS.py +0 -0
  434. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/TXS0102DCUR.py +0 -0
  435. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/TXS0102DCUR_UART.py +0 -0
  436. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/UART.py +0 -0
  437. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/UART_Base.py +0 -0
  438. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/UART_RS485.py +0 -0
  439. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/USB2514B.py +0 -0
  440. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/USB2514B_ReferenceDesign.py +0 -0
  441. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/USB2_0.py +0 -0
  442. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/USB2_0_ESD_Protection.py +0 -0
  443. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/USB2_0_IF.py +0 -0
  444. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/USB3.py +0 -0
  445. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/USB3_IF.py +0 -0
  446. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/USB3_connector.py +0 -0
  447. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/USBLC6_2P6.py +0 -0
  448. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/USB_C.py +0 -0
  449. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/USB_C_5V_PSU.py +0 -0
  450. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/USB_C_PSU_Vertical.py +0 -0
  451. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/USB_C_PowerOnly.py +0 -0
  452. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/USB_RS485.py +0 -0
  453. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/USB_Type_C_Receptacle_14_pin_Vertical.py +0 -0
  454. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/USB_Type_C_Receptacle_16_pin.py +0 -0
  455. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/USB_Type_C_Receptacle_24_pin.py +0 -0
  456. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/Winbond_Elec_W25Q128JVSIQ.py +0 -0
  457. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/Winbond_W25Q16JVUXIQ.py +0 -0
  458. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/Wuxi_I_core_Elec_AiP74LVC1T45GB236_TR.py +0 -0
  459. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/XL_3528RGBW_WS2812B.py +0 -0
  460. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/XtalIF.py +0 -0
  461. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/_F.py +0 -0
  462. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/can_attach_to_footprint.py +0 -0
  463. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/can_attach_to_footprint_symmetrically.py +0 -0
  464. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/can_attach_to_footprint_via_pinmap.py +0 -0
  465. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/can_attach_via_pinmap.py +0 -0
  466. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/can_attach_via_pinmap_equal.py +0 -0
  467. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/can_attach_via_pinmap_pinlist.py +0 -0
  468. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/can_be_decoupled.py +0 -0
  469. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/can_be_decoupled_rails.py +0 -0
  470. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/can_be_surge_protected.py +0 -0
  471. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/can_be_surge_protected_defined.py +0 -0
  472. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/can_bridge.py +0 -0
  473. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/can_bridge_defined.py +0 -0
  474. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/can_specialize.py +0 -0
  475. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/can_specialize_defined.py +0 -0
  476. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/can_switch_power.py +0 -0
  477. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/can_switch_power_defined.py +0 -0
  478. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/has_capacitance.py +0 -0
  479. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/has_construction_dependency.py +0 -0
  480. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/has_datasheet.py +0 -0
  481. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/has_datasheet_defined.py +0 -0
  482. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/has_descriptive_properties.py +0 -0
  483. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/has_descriptive_properties_defined.py +0 -0
  484. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/has_designator.py +0 -0
  485. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/has_designator_defined.py +0 -0
  486. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/has_designator_prefix.py +0 -0
  487. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/has_designator_prefix_defined.py +0 -0
  488. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/has_equal_pins.py +0 -0
  489. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/has_equal_pins_in_ifs.py +0 -0
  490. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/has_esphome_config.py +0 -0
  491. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/has_esphome_config_defined.py +0 -0
  492. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/has_explicit_part.py +0 -0
  493. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/has_footprint.py +0 -0
  494. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/has_footprint_defined.py +0 -0
  495. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/has_footprint_impl.py +0 -0
  496. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/has_kicad_footprint.py +0 -0
  497. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/has_kicad_footprint_equal_ifs.py +0 -0
  498. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/has_kicad_footprint_equal_ifs_defined.py +0 -0
  499. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/has_kicad_manual_footprint.py +0 -0
  500. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/has_kicad_ref.py +0 -0
  501. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/has_layout_transform.py +0 -0
  502. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/has_linked_pad.py +0 -0
  503. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/has_linked_pad_defined.py +0 -0
  504. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/has_net_name.py +0 -0
  505. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/has_overriden_name.py +0 -0
  506. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/has_overriden_name_defined.py +0 -0
  507. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/has_package_requirement.py +0 -0
  508. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/has_part_picked.py +0 -0
  509. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/has_part_removed.py +0 -0
  510. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/has_pcb_layout.py +0 -0
  511. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/has_pcb_layout_defined.py +0 -0
  512. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/has_pcb_position.py +0 -0
  513. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/has_pcb_position_defined.py +0 -0
  514. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/has_pcb_position_defined_relative.py +0 -0
  515. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/has_pcb_position_defined_relative_to_parent.py +0 -0
  516. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/has_pcb_routing_strategy.py +0 -0
  517. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/has_pcb_routing_strategy_greedy_direct_line.py +0 -0
  518. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/has_pcb_routing_strategy_manual.py +0 -0
  519. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/has_pcb_routing_strategy_via_to_layer.py +0 -0
  520. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/has_pin_association_heuristic.py +0 -0
  521. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/has_pin_association_heuristic_lookup_table.py +0 -0
  522. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/has_reference.py +0 -0
  523. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/has_reference_layout.py +0 -0
  524. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/has_resistance.py +0 -0
  525. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/has_simple_value_representation.py +0 -0
  526. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/has_simple_value_representation_based_on_params.py +0 -0
  527. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/has_simple_value_representation_based_on_params_chain.py +0 -0
  528. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/has_simple_value_representation_defined.py +0 -0
  529. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/has_single_connection.py +0 -0
  530. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/has_single_connection_impl.py +0 -0
  531. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/has_single_electric_reference.py +0 -0
  532. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/has_single_electric_reference_defined.py +0 -0
  533. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/has_symbol_layout.py +0 -0
  534. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/has_symbol_layout_defined.py +0 -0
  535. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/is_app_root.py +0 -0
  536. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/is_bus_parameter.py +0 -0
  537. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/is_decoupled.py +0 -0
  538. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/is_esphome_bus.py +0 -0
  539. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/is_esphome_bus_defined.py +0 -0
  540. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/is_not_pickable.py +0 -0
  541. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/is_optional.py +0 -0
  542. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/is_optional_defined.py +0 -0
  543. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/is_pickable.py +0 -0
  544. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/is_pickable_by_part_number.py +0 -0
  545. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/is_pickable_by_supplier_id.py +0 -0
  546. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/is_pickable_by_type.py +0 -0
  547. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/is_representable_by_single_value.py +0 -0
  548. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/is_representable_by_single_value_defined.py +0 -0
  549. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/is_surge_protected.py +0 -0
  550. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/is_surge_protected_defined.py +0 -0
  551. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/pf_533984002.py +0 -0
  552. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/pf_74AHCT2G125.py +0 -0
  553. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/libs/algorithm.py +0 -0
  554. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/libs/app/checks.py +0 -0
  555. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/libs/app/designators.py +0 -0
  556. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/libs/app/erc.py +0 -0
  557. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/libs/app/manufacturing.py +0 -0
  558. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/libs/app/pcb.py +0 -0
  559. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/libs/app/picking.py +0 -0
  560. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/libs/brightness.py +0 -0
  561. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/libs/examples/resources/example/example.kicad_pcb +0 -0
  562. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/libs/examples/resources/example/example.kicad_pro +0 -0
  563. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/libs/examples/resources/example/fp-lib-table +0 -0
  564. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/libs/exceptions.py +0 -0
  565. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/libs/font.py +0 -0
  566. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/libs/geometry/basic.py +0 -0
  567. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/libs/header.py +0 -0
  568. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/libs/iso_metric_screw_thread.py +0 -0
  569. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/libs/kicad/fileformats.py +0 -0
  570. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/libs/kicad/fileformats_common.py +0 -0
  571. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/libs/kicad/fileformats_sch.py +0 -0
  572. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/libs/kicad/fileformats_v5.py +0 -0
  573. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/libs/kicad/fileformats_v6.py +0 -0
  574. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/libs/kicad/fileformats_version.py +0 -0
  575. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/libs/kicad/paths.py +0 -0
  576. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/libs/library/L.py +0 -0
  577. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/libs/logging.py +0 -0
  578. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/libs/picker/api/api.py +0 -0
  579. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/libs/picker/api/models.py +0 -0
  580. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/libs/picker/api/picker_lib.py +0 -0
  581. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/libs/picker/picker.py +0 -0
  582. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/libs/pycodegen.py +0 -0
  583. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/libs/sets/numeric_sets.py +0 -0
  584. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/libs/sets/quantity_sets.py +0 -0
  585. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/libs/sets/sets.py +0 -0
  586. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/libs/sexp/dataclass_sexp.py +0 -0
  587. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/libs/sexp/util.py +0 -0
  588. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/libs/test/fileformats.py +0 -0
  589. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/libs/test/times.py +0 -0
  590. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/libs/titlecase.py +0 -0
  591. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/libs/tools/typer.py +0 -0
  592. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/libs/units.py +0 -0
  593. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/tools/libadd.py +0 -0
  594. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/tools/main.py +0 -0
  595. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/tools/project.py +0 -0
  596. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/tools/refactor.py +0 -0
  597. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/vscode-atopile/.eslintrc.json +0 -0
  598. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/vscode-atopile/.gitignore +0 -0
  599. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/vscode-atopile/.prettierrc.js +0 -0
  600. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/vscode-atopile/.vscodeignore +0 -0
  601. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/vscode-atopile/CODE_OF_CONDUCT.md +0 -0
  602. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/vscode-atopile/DEVELOPMENT.md +0 -0
  603. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/vscode-atopile/LICENSE +0 -0
  604. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/vscode-atopile/README.md +0 -0
  605. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/vscode-atopile/SECURITY.md +0 -0
  606. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/vscode-atopile/SUPPORT.md +0 -0
  607. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/vscode-atopile/ato_logo_256x256.png +0 -0
  608. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/vscode-atopile/bundled/tool/__init__.py +0 -0
  609. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/vscode-atopile/bundled/tool/_debug_server.py +0 -0
  610. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/vscode-atopile/bundled/tool/lsp_jsonrpc.py +0 -0
  611. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/vscode-atopile/bundled/tool/lsp_runner.py +0 -0
  612. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/vscode-atopile/bundled/tool/lsp_server.py +0 -0
  613. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/vscode-atopile/bundled/tool/lsp_utils.py +0 -0
  614. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/vscode-atopile/demo.gif +0 -0
  615. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/vscode-atopile/language-configuration.json +0 -0
  616. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/vscode-atopile/package-lock.json +0 -0
  617. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/vscode-atopile/package.json +0 -0
  618. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/vscode-atopile/runtime.txt +0 -0
  619. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/vscode-atopile/snippets/snippets.json +0 -0
  620. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/vscode-atopile/src/common/constants.ts +0 -0
  621. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/vscode-atopile/src/common/log/logging.ts +0 -0
  622. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/vscode-atopile/src/common/python.ts +0 -0
  623. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/vscode-atopile/src/common/server.ts +0 -0
  624. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/vscode-atopile/src/common/settings.ts +0 -0
  625. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/vscode-atopile/src/common/setup.ts +0 -0
  626. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/vscode-atopile/src/common/utilities.ts +0 -0
  627. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/vscode-atopile/src/common/vscodeapi.ts +0 -0
  628. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/vscode-atopile/src/extension.ts +0 -0
  629. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/vscode-atopile/src/ui/ui.ts +0 -0
  630. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/vscode-atopile/syntaxes/ato.tmLanguage.json +0 -0
  631. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/vscode-atopile/tsconfig.json +0 -0
  632. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/vscode-atopile/webpack.config.js +0 -0
  633. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/common/libs/footprints/logos.pretty/faebryk_logo.kicad_mod +0 -0
  634. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/common/resources/fileformats/kicad/v5/fp/C0603.kicad_mod +0 -0
  635. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/common/resources/fileformats/kicad/v5/fp/KMR211NGLFS.kicad_mod +0 -0
  636. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/common/resources/fileformats/kicad/v6/fp/SOT-23-5_RIT.kicad_mod +0 -0
  637. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/common/resources/fileformats/kicad/v7/fplib/fp-lib-table +0 -0
  638. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/common/resources/fileformats/kicad/v8/fp/test.kicad_mod +0 -0
  639. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/common/resources/fileformats/kicad/v8/netlist/test_e.net +0 -0
  640. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/common/resources/fileformats/kicad/v8/pcb/test.kicad_pcb +0 -0
  641. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/common/resources/fileformats/kicad/v8/prj/test.kicad_pro +0 -0
  642. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/common/resources/fileformats/kicad/v8/sch/test.kicad_sch +0 -0
  643. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/common/resources/fileformats/kicad/v8/sym/test.kicad_sym +0 -0
  644. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/common/resources/test-project/ato.yaml +0 -0
  645. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/common/resources/test-project/unconstructable.py +0 -0
  646. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/common/resources/test-project/unimportable.py +0 -0
  647. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/common/resources/test.net +0 -0
  648. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/common/resources/test_essentials.net +0 -0
  649. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/conftest.py +0 -0
  650. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/core/cpp/test_importcpp.py +0 -0
  651. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/core/solver/test_solver.py +0 -0
  652. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/core/solver/test_solver_util.py +0 -0
  653. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/core/test_core.py +0 -0
  654. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/core/test_core_util.py +0 -0
  655. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/core/test_mif_connect.py +0 -0
  656. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/core/test_node.py +0 -0
  657. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/core/test_parameters.py +0 -0
  658. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/core/test_performance.py +0 -0
  659. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/core/test_traits.py +0 -0
  660. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/exporters/netlist/kicad/test_netlist_kicad.py +0 -0
  661. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/exporters/netlist/test_graph.py +0 -0
  662. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/exporters/pcb/kicad/test_pcb_transformer.py +0 -0
  663. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/exporters/schematic/kicad/test_schematic_transformer.py +0 -0
  664. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/front_end/test_front_end.py +0 -0
  665. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/front_end/test_front_end_pick.py +0 -0
  666. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/front_end/test_literals.py +0 -0
  667. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/integration/netlist/kicad2faebryk/test_netlist_kicad_2_faebryk_prj.py +0 -0
  668. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/library/nodes/test_decouple.py +0 -0
  669. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/library/nodes/test_electricpower.py +0 -0
  670. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/library/nodes/test_has_simple_value_representation.py +0 -0
  671. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/library/test_footprints.py +0 -0
  672. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/library/test_instance_library_modules.py +0 -0
  673. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/library/test_names.py +0 -0
  674. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/library/test_reference.py +0 -0
  675. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/libs/geometry/test_basic_transformations.py +0 -0
  676. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/libs/kicad/test_fileformats.py +0 -0
  677. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/libs/picker/components.py +0 -0
  678. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/libs/picker/test_pickers.py +0 -0
  679. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/libs/test_exceptions.py +0 -0
  680. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/libs/test_lcsc.py +0 -0
  681. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/libs/test_sets.py +0 -0
  682. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/libs/test_units.py +0 -0
  683. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/libs/test_util.py +0 -0
  684. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/libs/test_util_atexit.py +0 -0
  685. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/libs/test_util_func_collections.py +0 -0
  686. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/libs/test_util_importers.py +0 -0
  687. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/libs/util/test_has_attr_or_property.py +0 -0
  688. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/libs/util/test_has_instance_settable_attr.py +0 -0
  689. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/libs/util/test_write_only_property.py +0 -0
  690. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/runpytest.sh +0 -0
  691. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/runtest.py +0 -0
  692. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/test_address.py +0 -0
  693. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/test_cli.py +0 -0
  694. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/test_config.py +0 -0
  695. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/test_datatypes.py +0 -0
  696. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/test_errors.py +0 -0
  697. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/test_parse_utils.py +0 -0
  698. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/test_regressions.py +0 -0
  699. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/test_telemetry.py +0 -0
  700. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/test_version.py +0 -0
  701. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/tools/library/gen_F.py +0 -0
  702. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/tools/profile.py +0 -0
  703. {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/uv.lock +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: atopile
3
- Version: 0.3.7.dev0
3
+ Version: 0.3.8.dev0
4
4
  Summary: A toolchain bringing the best of software development to the real-world!
5
5
  Project-URL: Homepage, https://github.com/atopile/atopile
6
6
  Project-URL: Bug Tracker, https://github.com/atopile/atopile/issues
@@ -0,0 +1 @@
1
+ docs.atopile.io
@@ -92,7 +92,7 @@ def build(
92
92
  lcsc.BUILD_FOLDER = build_ctx.paths.build
93
93
  lcsc.LIB_FOLDER = build_ctx.paths.component_lib
94
94
  lcsc.LIB_FOLDER.mkdir(exist_ok=True, parents=True)
95
- # lcsc.MODEL_PATH = None # TODO: assign to something to download the 3d models # noqa: E501 # pre-existing
95
+ lcsc.KICAD_PROJECT_PATH = build_ctx.paths.kicad_project.parent
96
96
 
97
97
  # TODO: add a mechanism to override the following with custom build machinery # noqa: E501 # pre-existing
98
98
  buildutil.build(build_ctx, app)
@@ -26,9 +26,11 @@ from faebryk.libs.sexp.dataclass_sexp import get_parent
26
26
  from faebryk.libs.util import (
27
27
  KeyErrorNotFound,
28
28
  dataclass_as_kwargs,
29
+ duplicates,
29
30
  find,
30
31
  find_or,
31
32
  not_none,
33
+ yield_missing,
32
34
  )
33
35
 
34
36
  logger = logging.getLogger(__name__)
@@ -283,22 +285,23 @@ class PCB:
283
285
 
284
286
  # Add new nets -----------------------------------------------------------------
285
287
  logger.debug(f"New nets: {nets_added}")
288
+ existing_net_numbers = {net.number for net in pcb.kicad_pcb.nets}
289
+ net_numbers = iter(yield_missing(existing_net_numbers))
290
+
286
291
  for net_name in nets_added:
287
- # nl_net = nl_nets[net_name]
288
- if removed_net_numbers:
289
- net_number = removed_net_numbers.pop()
290
- else:
291
- net_number = len(pcb.kicad_pcb.nets)
292
+ # Find the first unused net number
293
+ net_number = next(net_numbers)
294
+
292
295
  pcb_net = C_kicad_pcb_file.C_kicad_pcb.C_net(
293
296
  name=net_name,
294
297
  number=net_number,
295
298
  )
296
299
  pcb.kicad_pcb.nets.append(pcb_net)
297
300
  pcb_nets[net_name] = (pcb_net, [])
301
+
298
302
  pcb.kicad_pcb.nets.sort(key=lambda x: x.number)
299
303
  # Check that net numbers are unique
300
- # FIXME: this is broken by conflicting net numbers on the loaded PCB
301
- assert len(pcb.kicad_pcb.nets) == len(set(n.number for n in pcb.kicad_pcb.nets))
304
+ assert not duplicates(pcb.kicad_pcb.nets, lambda x: x.number)
302
305
 
303
306
  # Components ===================================================================
304
307
  pcb_comps = {
@@ -431,12 +434,13 @@ class PCB:
431
434
  )
432
435
  if p.name in pads
433
436
  else None,
434
- # rest of fields
435
- **dataclass_as_kwargs(p),
437
+ **{
438
+ **dataclass_as_kwargs(p),
439
+ "at": C_xyr(x=p.at.x, y=p.at.y, r=p.at.r + at.r),
440
+ },
436
441
  )
437
442
  for p in footprint.pads
438
443
  ],
439
- #
440
444
  name=footprint_identifier,
441
445
  layer=footprint.layer,
442
446
  propertys=footprint.propertys,
@@ -25,13 +25,13 @@ class CH342F(F.CH342):
25
25
  ...
26
26
 
27
27
  @assert_once
28
- def enable_tnow_mode(self):
28
+ def enable_tnow_mode(self, owner: Module):
29
29
  """
30
30
  Set TNOW mode for specified UART for use with RS485 tranceivers.
31
31
  The TNOW pin can be connected to the tx_enable and rx_enable
32
32
  pins of the RS485 tranceiver for automatic half-duplex control.
33
33
  """
34
- self.uart.dtr.set_weak(on=False)
34
+ self.uart.dtr.set_weak(on=False, owner=owner)
35
35
  self.uart.dtr.connect(self.tnow)
36
36
 
37
37
  # ----------------------------------------
@@ -70,9 +70,6 @@ class CH344(Module):
70
70
  self.gpio[14].connect(self.uart[0].dsr)
71
71
  self.gpio[15].connect(self.uart[1].dcd)
72
72
 
73
- # FIXME
74
- # self.test.set_weak(on=False)
75
-
76
73
  # ------------------------------------
77
74
  # parametrization
78
75
  # ------------------------------------
@@ -111,6 +111,8 @@ class CH344Q_ReferenceDesign(Module):
111
111
  # TODO: already done by lowpass filter
112
112
  # self.usb_uart_converter.reset.pulled.pull(up=True)
113
113
 
114
+ self.usb_uart_converter.test.set_weak(on=False, owner=self)
115
+
114
116
  self.ldo.enable_output()
115
117
 
116
118
  # ------------------------------------
@@ -2,6 +2,7 @@
2
2
  # SPDX-License-Identifier: MIT
3
3
 
4
4
  import faebryk.library._F as F
5
+ from faebryk.core.module import Module
5
6
  from faebryk.core.moduleinterface import ModuleInterface
6
7
  from faebryk.libs.library import L
7
8
 
@@ -17,8 +18,8 @@ class EnablePin(ModuleInterface):
17
18
  self.add(F.is_optional_defined(not value, self._handle_optional))
18
19
  self.enable.set(value)
19
20
 
20
- def set_weak(self, value: bool):
21
- self.enable.set_weak(value)
21
+ def set_weak(self, value: bool, owner: Module):
22
+ self.enable.set_weak(value, owner=owner)
22
23
 
23
24
  @L.rt_field
24
25
  def has_single_electric_reference(self):
@@ -24,6 +24,7 @@ class WCHJiangsu_Qin_Heng_CH224K(Module):
24
24
  @assert_once
25
25
  def config_voltage(
26
26
  self,
27
+ owner: Module,
27
28
  voltage: Literal["5V", "9V", "12V", "15V", "20V"],
28
29
  mode: Literal["Resistor", "LogicLevel"] = "LogicLevel",
29
30
  ):
@@ -47,7 +48,7 @@ class WCHJiangsu_Qin_Heng_CH224K(Module):
47
48
  elif voltage == "20V":
48
49
  return # no resistor connected
49
50
 
50
- self.cfg[0].set_weak(on=False).resistance.constrain_subset(
51
+ self.cfg[0].set_weak(on=False, owner=owner).resistance.constrain_subset(
51
52
  connection_matrix[voltage][0]
52
53
  )
53
54
  elif mode == "LogicLevel":
@@ -39,7 +39,7 @@ class WCHJiangsu_Qin_Heng_CH224K_ReferenceDesign(Module):
39
39
  # ------------------------------------
40
40
  self.controller.vbus_detect.set_weak(
41
41
  on=True, owner=self
42
- ).resistance.constrain_subset(L.Range.from_center_rel(1 * P.kohm, 0.01))
42
+ ).resistance.constrain_subset(L.Range.from_center_rel(10 * P.kohm, 0.01))
43
43
  self.controller.vbus_detect.reference.connect(self.vbus)
44
44
 
45
45
  self.controller.power.hv.connect_via(self.vdd_resistor, self.vbus.hv)
@@ -60,5 +60,5 @@ class WCHJiangsu_Qin_Heng_CH224K_ReferenceDesign(Module):
60
60
  )
61
61
 
62
62
  self.vdd_resistor.resistance.constrain_subset(
63
- L.Range.from_center_rel(10 * P.kohm, 0.01)
63
+ L.Range.from_center_rel(1 * P.kohm, 0.01)
64
64
  )
@@ -34,7 +34,8 @@ CRAWL_DATASHEET = ConfigFlag(
34
34
  # TODO dont hardcode relative paths
35
35
  BUILD_FOLDER = Path("./build")
36
36
  LIB_FOLDER = Path("./src/kicad/libs")
37
- MODEL_PATH: str | None = "${KIPRJMOD}/../libs/"
37
+ KICAD_PROJECT_PATH: Path | None = None
38
+ MODEL_PATH: str | None = None
38
39
 
39
40
  EXPORT_NON_EXISTING_MODELS = False
40
41
 
@@ -172,6 +173,11 @@ def download_easyeda_info(lcsc_id: str, get_model: bool = True):
172
173
  kicad_model_path = (
173
174
  f"{MODEL_PATH}/3dmodels/lcsc.3dshapes"
174
175
  if MODEL_PATH
176
+ else str(
177
+ "${KIPRJMOD}"
178
+ / model_base_path_full.relative_to(KICAD_PROJECT_PATH, walk_up=True)
179
+ )
180
+ if KICAD_PROJECT_PATH
175
181
  else str(model_base_path_full.resolve())
176
182
  )
177
183
  ki_footprint.export(
@@ -33,6 +33,7 @@ from typing import (
33
33
  Any,
34
34
  Callable,
35
35
  Concatenate,
36
+ Container,
36
37
  Generator,
37
38
  Hashable,
38
39
  Iterable,
@@ -1813,6 +1814,14 @@ def robustly_rm_dir(path: os.PathLike) -> None:
1813
1814
  shutil.rmtree(path, onexc=remove_readonly)
1814
1815
 
1815
1816
 
1817
+ def yield_missing(existing: Container, candidates: Iterable | None = None):
1818
+ if candidates is None:
1819
+ candidates = range(10000) # Prevent counting to infinity by default
1820
+ for c in candidates:
1821
+ if c not in existing:
1822
+ yield c
1823
+
1824
+
1816
1825
  def try_relative_to(
1817
1826
  target: os.PathLike, root: os.PathLike | None = None, walk_up: bool = False
1818
1827
  ) -> Path:
@@ -0,0 +1,29 @@
1
+ import pytest
2
+
3
+ from faebryk.libs.util import yield_missing
4
+
5
+
6
+ def test_basic():
7
+ existing = {1, 2, 3}
8
+ candidates = [1, 2, 3, 4, 5]
9
+ assert list(yield_missing(existing, candidates)) == [4, 5]
10
+
11
+
12
+ def test_no_candidates():
13
+ existing = {0, 1, 3}
14
+ missing = iter(yield_missing(existing))
15
+ assert next(missing) == 2
16
+ assert next(missing) == 4
17
+ assert next(missing) == 5
18
+ assert next(missing) == 6
19
+
20
+
21
+ def test_max_range():
22
+ existing = {1, 2, 3}
23
+ missing = iter(yield_missing(existing, range(7)))
24
+ assert next(missing) == 0
25
+ assert next(missing) == 4
26
+ assert next(missing) == 5
27
+ assert next(missing) == 6
28
+ with pytest.raises(StopIteration):
29
+ next(missing)
@@ -1 +0,0 @@
1
- atopile.io
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes