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.
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/PKG-INFO +1 -1
- atopile-0.3.8.dev0/docs/CNAME +1 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/atopile/cli/build.py +1 -1
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/exporters/pcb/kicad/pcb.py +14 -10
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/CH342F.py +2 -2
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/CH344.py +0 -3
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/CH344Q_ReferenceDesign.py +2 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/EnablePin.py +3 -2
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/WCHJiangsu_Qin_Heng_CH224K.py +2 -1
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/WCHJiangsu_Qin_Heng_CH224K_ReferenceDesign.py +2 -2
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/libs/picker/lcsc.py +7 -1
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/libs/util.py +9 -0
- atopile-0.3.8.dev0/test/libs/util/test_yield_missing.py +29 -0
- atopile-0.3.7.dev0/docs/CNAME +0 -1
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/.git-blame-ignore-revs +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/.gitattributes +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/.github/CODEOWNERS +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/.github/dependabot.yml +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/.github/pull_request_template.md +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/.github/workflows/cd.yml +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/.github/workflows/pre-commit.yml +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/.github/workflows/pytest.yml +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/.github/workflows/regression.yml +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/.github/workflows/vsx.yml +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/.github/workflows/website.yml +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/.github/workflows/wheels.yml +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/.gitignore +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/.gitmodules +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/.pre-commit-config.yaml +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/.vscode/extensions.json +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/.vscode/launch.shared.json +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/.vscode/settings.shared.json +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/.vscode/tasks.shared.json +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/LICENSE +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/README.md +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/atopile-custom-words.txt +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/cspell.json +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/dockerfiles/Dockerfile.kicad +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/dockerfiles/README.md +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/CODE_OF_CONDUCT.md +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/CODING_GUIDELINES.md +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/CONTRIBUTING.md +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/api/cli.md +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/api/solver.md +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/assets/images/assertion-checks-2.png +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/assets/images/assertion-checks.png +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/assets/images/assertion-solver.png +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/assets/images/ato_extension.png +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/assets/images/block_diagram_example.png +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/assets/images/buck_ic.png +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/assets/images/buck_topology.png +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/assets/images/capacitor_definition.png +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/assets/images/ci-generated-gerbers-githash.png +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/assets/images/ci-generated-gerbers.avif +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/assets/images/ci-generated-gerbers.gif +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/assets/images/cloud_bom.png +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/assets/images/code-layout-pcb.png +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/assets/images/code-loading.png +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/assets/images/debugger-vscode.png +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/assets/images/discord-qr.png +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/assets/images/download.png +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/assets/images/equation-preview.gif +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/assets/images/extension-python-setup.gif +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/assets/images/file-import.png +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/assets/images/footprints.png +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/assets/images/groups.png +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/assets/images/import-settings.png +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/assets/images/kicad_buttons.png +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/assets/images/ldo-demo.png +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/assets/images/mosfet.png +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/assets/images/placement-reuse.avif +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/assets/images/placement-reuse.gif +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/assets/images/reload.png +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/assets/images/schematic_example.png +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/assets/images/slice.png +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/assets/images/slow-to-fast-hq.gif +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/assets/images/swoop-block-diagram.png +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/assets/images/swoop-bringup.png +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/assets/images/swoop.png +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/assets/images/trace-reuse.avif +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/assets/images/trace-reuse.gif +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/assets/images/upload.png +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/assets/logo/ato_logo_256x256.png +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/assets/logo/ato_logo_32x32.png +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/assets/logo/emblem.svg +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/assets/logo/faebryk_logo.png +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/assets/logo/logo-with-text-dark.png +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/assets/logo/logo-with-text.png +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/blog/.authors.yml +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/blog/index.md +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/blog/posts/assertions.md +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/blog/posts/ci-generated-gerbers.md +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/blog/posts/cloud_components.md +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/blog/posts/dsl.md +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/blog/posts/layout-reuse-2.md +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/blog/posts/layout-reuse.md +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/blog/posts/matts-story.md +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/blog/posts/narayans-story.md +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/blog/posts/traits.md +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/building.md +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/ci.md +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/class.md +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/component_selection.md +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/config.md +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/connect.md +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/development.md +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/doc-strings.md +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/first_project.md +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/git.md +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/how-to.md +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/import.md +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/index.md +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/install.md +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/kicad.md +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/maths.md +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/overrides/Inconsolata-Black.ttf +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/overrides/Inconsolata-Bold.ttf +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/overrides/Inconsolata-ExtraBold.ttf +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/overrides/Inconsolata-ExtraLight.ttf +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/overrides/Inconsolata-Light.ttf +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/overrides/Inconsolata-Medium.ttf +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/overrides/Inconsolata-Regular.ttf +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/overrides/Inconsolata-SemiBold.ttf +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/overrides/SpaceMono-Bold.ttf +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/overrides/SpaceMono-BoldItalic.ttf +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/overrides/SpaceMono-Italic.ttf +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/overrides/SpaceMono-Regular.ttf +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/overrides/assets/javascripts/custom.129bd6ad.min.js +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/overrides/assets/javascripts/custom.129bd6ad.min.js.map +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/overrides/assets/javascripts/iconsearch_index.json +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/overrides/assets/stylesheets/custom.css +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/overrides/home.html +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/overrides/hooks/shortcodes.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/overrides/hooks/translations.html +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/overrides/hooks/translations.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/overrides/main.html +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/roadmap.md +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/spin.md +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/swoop.md +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/types.md +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/view.md +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/yc-hardware-meetup.md +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/examples/.ato/modules/generics/README.md +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/examples/.ato/modules/generics/capacitors.ato +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/examples/.ato/modules/generics/resistors.ato +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/examples/.gitignore +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/examples/README.md +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/examples/ato.yaml +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/examples/ch1_1_ato.ato +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/examples/ch1_2_ldo_demo.ato +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/examples/ch2_1_fab.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/examples/ch2_2_minimal_led.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/examples/ch2_3_minimal_led_explicit_parts.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/examples/ch2_4_maximal_led.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/examples/ch2_5_signal_processing.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/examples/ch2_6_route.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/examples/ch2_7_pcb_layout.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/examples/ch2_8_mcu.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/examples/ch2_9_iterative_design_nand.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/examples/layout/ato/fp-lib-table +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/examples/layout/ato/pcb.kicad_pcb +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/examples/layout/ato/pcb.kicad_pro +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/examples/layout/fab/fp-lib-table +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/examples/layout/fab/pcb.kicad_pcb +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/examples/layout/fab/pcb.kicad_pro +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/mkdocs.yml +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/pyproject.toml +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/scripts/attach_license.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/scripts/clean_issues.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/scripts/find_duplicate_test_files.sh +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/atopile/__init__.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/atopile/__main__.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/atopile/_shim.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/atopile/address.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/atopile/buildutil.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/atopile/cli/__init__.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/atopile/cli/cli.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/atopile/cli/common.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/atopile/cli/configure.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/atopile/cli/console.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/atopile/cli/create.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/atopile/cli/excepthook.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/atopile/cli/inspect.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/atopile/cli/install.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/atopile/cli/logging.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/atopile/cli/view.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/atopile/config.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/atopile/datatypes.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/atopile/errors.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/atopile/front_end.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/atopile/kicad_plugin/.gitignore +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/atopile/kicad_plugin/README.md +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/atopile/kicad_plugin/__init__.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/atopile/kicad_plugin/buttons.svg +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/atopile/kicad_plugin/common.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/atopile/kicad_plugin/download.png +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/atopile/kicad_plugin/pullgroup.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/atopile/kicad_plugin/pushgroup.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/atopile/kicad_plugin/reload.png +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/atopile/kicad_plugin/reloadgroup.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/atopile/kicad_plugin/upload.png +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/atopile/layout.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/atopile/parse.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/atopile/parse_utils.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/atopile/parser/.gitignore +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/atopile/parser/AtoLexer.g4 +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/atopile/parser/AtoLexer.interp +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/atopile/parser/AtoLexer.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/atopile/parser/AtoLexer.tokens +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/atopile/parser/AtoLexerBase.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/atopile/parser/AtoParser.g4 +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/atopile/parser/AtoParser.interp +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/atopile/parser/AtoParser.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/atopile/parser/AtoParser.tokens +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/atopile/parser/AtoParserBase.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/atopile/parser/AtoParserVisitor.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/atopile/parser/README.md +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/atopile/parser/__init__.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/atopile/parser/build.sh +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/atopile/telemetry.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/atopile/version.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/__init__.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/core/__init__.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/core/core.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/core/cpp/.clang-format +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/core/cpp/CMakeLists.txt +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/core/cpp/__init__.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/core/cpp/__init__.pyi +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/core/cpp/cpp_helpers.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/core/cpp/include/graph/graph.hpp +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/core/cpp/include/graph/graphinterfaces.hpp +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/core/cpp/include/graph/links.hpp +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/core/cpp/include/nano.hpp +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/core/cpp/include/pathfinder/bfs.hpp +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/core/cpp/include/pathfinder/pathcounter.hpp +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/core/cpp/include/pathfinder/pathfinder.hpp +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/core/cpp/include/perf.hpp +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/core/cpp/include/pyutil.hpp +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/core/cpp/include/util.hpp +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/core/cpp/src/graph/graph.cpp +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/core/cpp/src/graph/graphinterface.cpp +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/core/cpp/src/graph/graphinterfaces.cpp +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/core/cpp/src/graph/link.cpp +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/core/cpp/src/graph/links.cpp +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/core/cpp/src/graph/node.cpp +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/core/cpp/src/graph/path.cpp +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/core/cpp/src/graph/type.cpp +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/core/cpp/src/main.cpp +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/core/cpp/src/pathfinder/bfs.cpp +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/core/cpp/src/pathfinder/pathcounter.cpp +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/core/cpp/src/pathfinder/pathfinder.cpp +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/core/cpp/src/perf.cpp +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/core/graph.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/core/graphinterface.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/core/link.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/core/module.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/core/moduleinterface.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/core/node.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/core/parameter.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/core/pathfinder.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/core/reference.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/core/solver/__init__.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/core/solver/analytical.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/core/solver/canonical.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/core/solver/defaultsolver.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/core/solver/literal_folding.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/core/solver/solver.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/core/solver/utils.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/core/trait.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/exporters/bom/jlcpcb.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/exporters/documentation/datasheets.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/exporters/esphome/esphome.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/exporters/netlist/graph.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/exporters/netlist/kicad/netlist_kicad.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/exporters/netlist/netlist.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/exporters/parameters/parameters_to_file.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/exporters/pcb/kicad/artifacts.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/exporters/pcb/kicad/transformer.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/exporters/pcb/layout/absolute.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/exporters/pcb/layout/extrude.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/exporters/pcb/layout/font.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/exporters/pcb/layout/heuristic_decoupling.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/exporters/pcb/layout/heuristic_pulls.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/exporters/pcb/layout/layout.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/exporters/pcb/layout/matrix.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/exporters/pcb/layout/next_to.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/exporters/pcb/layout/next_to_pin.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/exporters/pcb/layout/typehierarchy.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/exporters/pcb/pick_and_place/jlcpcb.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/exporters/pcb/routing/util.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/exporters/project/faebryk/project_faebryk.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/exporters/schematic/kicad/transformer.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/exporters/visualize/interactive_graph.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/exporters/visualize/interactive_params.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/exporters/visualize/interactive_params_base.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/exporters/visualize/util.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/importers/netlist/kicad/netlist_kicad.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/Analog_Devices_ADM2587EBRWZ.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/Analog_Devices_ADM2587EBRWZ_ReferenceDesign.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/B0505S_1WR3.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/B4B_ZR_SM4_TF.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/BH1750FVI_TR.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/BJT.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/Battery.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/Button.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/ButtonCell.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/CBM9002A_56ILG.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/CBM9002A_56ILG_ReferenceDesign.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/CD4011.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/CH340x.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/CH342.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/CH342F_ReferenceDesign.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/CH342K.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/CH342K_ReferenceDesign.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/CH344Q.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/Capacitor.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/Common_Mode_Filter.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/Comparator.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/Crystal.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/Crystal_Oscillator.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/DE9Connector.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/DE9RS232Connector.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/DIP.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/DifferentialPair.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/Diode.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/Diodes_Incorporated_AP2552W6_7.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/Diodes_Incorporated_AP2553W6_7.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/Diodes_Incorporated_AP255x_x.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/EEPROM.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/ESP32_C3.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/ESP32_C3_MINI_1.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/ESP32_C3_MINI_1_ReferenceDesign.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/ElecSuper_PSM712_ES.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/ElectricLogic.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/ElectricLogicGate.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/ElectricLogicGates.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/ElectricPower.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/Electrical.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/Ethernet.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/Fan.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/Filter.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/FilterElectricalLC.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/FilterElectricalRC.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/Footprint.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/Fuse.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/GDT.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/GenericBusProtection.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/HDMI.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/HLK_LD2410B_P.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/Header.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/I2C.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/I2S.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/INA228.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/INA228_ReferenceDesign.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/ISO1540.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/ISO1540_ReferenceDesign.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/Inductor.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/JTAG.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/KicadFootprint.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/LDO.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/LED.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/LEDIndicator.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/Logic.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/Logic74xx.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/LogicGate.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/LogicGates.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/LogicOps.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/M24C08_FMN6TP.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/MCP2221A.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/ME6211C33M5G_N.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/MOSFET.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/Mechanical.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/Mounting_Hole.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/MultiCapacitor.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/MultiSPI.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/Net.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/OLED_Module.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/OpAmp.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/PANASONIC_AQY212EHAX.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/PJ398SM.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/PM1006.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/Pad.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/Pinmux.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/Potentiometer.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/Power.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/PowerMux.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/PowerSwitch.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/PowerSwitchMOSFET.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/PowerSwitchStatic.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/PoweredLED.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/Powered_Relay.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/QFN.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/QWIIC_Connector.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/RJ45_Receptacle.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/RP2040.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/RP2040Pinmux.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/RP2040_ReferenceDesign.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/RS232.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/RS485HalfDuplex.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/RS485_Bus_Protection.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/RaspberryPiPico.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/RaspberryPiPicoBase_ReferenceDesign.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/Relay.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/Resistor.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/ResistorVoltageDivider.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/Resistor_Voltage_Divider.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/SCD40.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/SK6812.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/SK9822_EC20.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/SMDTwoPin.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/SNx4LVC541A.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/SOIC.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/SP3243E.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/SP3243E_ReferenceDesign.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/SPI.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/SPIFlash.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/SWD.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/SWDConnector.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/Sercom.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/Shenzhen_Kinghelm_Elec_KH_BNC75_3511.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/Signal.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/SignalElectrical.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/SurgeProtection.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/Switch.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/Symbol.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/TD541S485H.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/TECH_PUBLIC_USBLC6_2SC6.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/TI_CD4011BE.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/TPS2116.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/TVS.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/TXS0102DCUR.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/TXS0102DCUR_UART.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/UART.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/UART_Base.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/UART_RS485.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/USB2514B.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/USB2514B_ReferenceDesign.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/USB2_0.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/USB2_0_ESD_Protection.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/USB2_0_IF.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/USB3.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/USB3_IF.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/USB3_connector.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/USBLC6_2P6.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/USB_C.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/USB_C_5V_PSU.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/USB_C_PSU_Vertical.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/USB_C_PowerOnly.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/USB_RS485.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/USB_Type_C_Receptacle_14_pin_Vertical.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/USB_Type_C_Receptacle_16_pin.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/USB_Type_C_Receptacle_24_pin.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/Winbond_Elec_W25Q128JVSIQ.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/Winbond_W25Q16JVUXIQ.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/Wuxi_I_core_Elec_AiP74LVC1T45GB236_TR.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/XL_3528RGBW_WS2812B.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/XtalIF.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/_F.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/can_attach_to_footprint.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/can_attach_to_footprint_symmetrically.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/can_attach_to_footprint_via_pinmap.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/can_attach_via_pinmap.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/can_attach_via_pinmap_equal.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/can_attach_via_pinmap_pinlist.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/can_be_decoupled.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/can_be_decoupled_rails.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/can_be_surge_protected.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/can_be_surge_protected_defined.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/can_bridge.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/can_bridge_defined.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/can_specialize.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/can_specialize_defined.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/can_switch_power.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/can_switch_power_defined.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/has_capacitance.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/has_construction_dependency.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/has_datasheet.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/has_datasheet_defined.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/has_descriptive_properties.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/has_descriptive_properties_defined.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/has_designator.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/has_designator_defined.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/has_designator_prefix.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/has_designator_prefix_defined.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/has_equal_pins.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/has_equal_pins_in_ifs.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/has_esphome_config.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/has_esphome_config_defined.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/has_explicit_part.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/has_footprint.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/has_footprint_defined.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/has_footprint_impl.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/has_kicad_footprint.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/has_kicad_footprint_equal_ifs.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/has_kicad_footprint_equal_ifs_defined.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/has_kicad_manual_footprint.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/has_kicad_ref.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/has_layout_transform.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/has_linked_pad.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/has_linked_pad_defined.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/has_net_name.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/has_overriden_name.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/has_overriden_name_defined.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/has_package_requirement.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/has_part_picked.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/has_part_removed.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/has_pcb_layout.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/has_pcb_layout_defined.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/has_pcb_position.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/has_pcb_position_defined.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/has_pcb_position_defined_relative.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/has_pcb_position_defined_relative_to_parent.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/has_pcb_routing_strategy.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/has_pcb_routing_strategy_greedy_direct_line.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/has_pcb_routing_strategy_manual.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/has_pcb_routing_strategy_via_to_layer.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/has_pin_association_heuristic.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/has_pin_association_heuristic_lookup_table.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/has_reference.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/has_reference_layout.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/has_resistance.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/has_simple_value_representation.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/has_simple_value_representation_based_on_params.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/has_simple_value_representation_based_on_params_chain.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/has_simple_value_representation_defined.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/has_single_connection.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/has_single_connection_impl.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/has_single_electric_reference.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/has_single_electric_reference_defined.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/has_symbol_layout.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/has_symbol_layout_defined.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/is_app_root.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/is_bus_parameter.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/is_decoupled.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/is_esphome_bus.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/is_esphome_bus_defined.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/is_not_pickable.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/is_optional.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/is_optional_defined.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/is_pickable.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/is_pickable_by_part_number.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/is_pickable_by_supplier_id.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/is_pickable_by_type.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/is_representable_by_single_value.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/is_representable_by_single_value_defined.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/is_surge_protected.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/is_surge_protected_defined.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/pf_533984002.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/library/pf_74AHCT2G125.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/libs/algorithm.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/libs/app/checks.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/libs/app/designators.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/libs/app/erc.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/libs/app/manufacturing.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/libs/app/pcb.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/libs/app/picking.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/libs/brightness.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/libs/examples/resources/example/example.kicad_pcb +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/libs/examples/resources/example/example.kicad_pro +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/libs/examples/resources/example/fp-lib-table +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/libs/exceptions.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/libs/font.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/libs/geometry/basic.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/libs/header.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/libs/iso_metric_screw_thread.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/libs/kicad/fileformats.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/libs/kicad/fileformats_common.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/libs/kicad/fileformats_sch.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/libs/kicad/fileformats_v5.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/libs/kicad/fileformats_v6.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/libs/kicad/fileformats_version.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/libs/kicad/paths.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/libs/library/L.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/libs/logging.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/libs/picker/api/api.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/libs/picker/api/models.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/libs/picker/api/picker_lib.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/libs/picker/picker.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/libs/pycodegen.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/libs/sets/numeric_sets.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/libs/sets/quantity_sets.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/libs/sets/sets.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/libs/sexp/dataclass_sexp.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/libs/sexp/util.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/libs/test/fileformats.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/libs/test/times.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/libs/titlecase.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/libs/tools/typer.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/libs/units.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/tools/libadd.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/tools/main.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/tools/project.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/faebryk/tools/refactor.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/vscode-atopile/.eslintrc.json +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/vscode-atopile/.gitignore +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/vscode-atopile/.prettierrc.js +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/vscode-atopile/.vscodeignore +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/vscode-atopile/CODE_OF_CONDUCT.md +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/vscode-atopile/DEVELOPMENT.md +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/vscode-atopile/LICENSE +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/vscode-atopile/README.md +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/vscode-atopile/SECURITY.md +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/vscode-atopile/SUPPORT.md +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/vscode-atopile/ato_logo_256x256.png +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/vscode-atopile/bundled/tool/__init__.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/vscode-atopile/bundled/tool/_debug_server.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/vscode-atopile/bundled/tool/lsp_jsonrpc.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/vscode-atopile/bundled/tool/lsp_runner.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/vscode-atopile/bundled/tool/lsp_server.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/vscode-atopile/bundled/tool/lsp_utils.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/vscode-atopile/demo.gif +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/vscode-atopile/language-configuration.json +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/vscode-atopile/package-lock.json +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/vscode-atopile/package.json +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/vscode-atopile/runtime.txt +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/vscode-atopile/snippets/snippets.json +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/vscode-atopile/src/common/constants.ts +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/vscode-atopile/src/common/log/logging.ts +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/vscode-atopile/src/common/python.ts +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/vscode-atopile/src/common/server.ts +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/vscode-atopile/src/common/settings.ts +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/vscode-atopile/src/common/setup.ts +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/vscode-atopile/src/common/utilities.ts +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/vscode-atopile/src/common/vscodeapi.ts +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/vscode-atopile/src/extension.ts +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/vscode-atopile/src/ui/ui.ts +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/vscode-atopile/syntaxes/ato.tmLanguage.json +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/vscode-atopile/tsconfig.json +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/src/vscode-atopile/webpack.config.js +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/common/libs/footprints/logos.pretty/faebryk_logo.kicad_mod +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/common/resources/fileformats/kicad/v5/fp/C0603.kicad_mod +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/common/resources/fileformats/kicad/v5/fp/KMR211NGLFS.kicad_mod +0 -0
- {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
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/common/resources/fileformats/kicad/v7/fplib/fp-lib-table +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/common/resources/fileformats/kicad/v8/fp/test.kicad_mod +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/common/resources/fileformats/kicad/v8/netlist/test_e.net +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/common/resources/fileformats/kicad/v8/pcb/test.kicad_pcb +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/common/resources/fileformats/kicad/v8/prj/test.kicad_pro +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/common/resources/fileformats/kicad/v8/sch/test.kicad_sch +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/common/resources/fileformats/kicad/v8/sym/test.kicad_sym +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/common/resources/test-project/ato.yaml +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/common/resources/test-project/unconstructable.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/common/resources/test-project/unimportable.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/common/resources/test.net +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/common/resources/test_essentials.net +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/conftest.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/core/cpp/test_importcpp.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/core/solver/test_solver.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/core/solver/test_solver_util.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/core/test_core.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/core/test_core_util.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/core/test_mif_connect.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/core/test_node.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/core/test_parameters.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/core/test_performance.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/core/test_traits.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/exporters/netlist/kicad/test_netlist_kicad.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/exporters/netlist/test_graph.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/exporters/pcb/kicad/test_pcb_transformer.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/exporters/schematic/kicad/test_schematic_transformer.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/front_end/test_front_end.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/front_end/test_front_end_pick.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/front_end/test_literals.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/integration/netlist/kicad2faebryk/test_netlist_kicad_2_faebryk_prj.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/library/nodes/test_decouple.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/library/nodes/test_electricpower.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/library/nodes/test_has_simple_value_representation.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/library/test_footprints.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/library/test_instance_library_modules.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/library/test_names.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/library/test_reference.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/libs/geometry/test_basic_transformations.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/libs/kicad/test_fileformats.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/libs/picker/components.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/libs/picker/test_pickers.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/libs/test_exceptions.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/libs/test_lcsc.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/libs/test_sets.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/libs/test_units.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/libs/test_util.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/libs/test_util_atexit.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/libs/test_util_func_collections.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/libs/test_util_importers.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/libs/util/test_has_attr_or_property.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/libs/util/test_has_instance_settable_attr.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/libs/util/test_write_only_property.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/runpytest.sh +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/runtest.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/test_address.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/test_cli.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/test_config.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/test_datatypes.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/test_errors.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/test_parse_utils.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/test_regressions.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/test_telemetry.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/test/test_version.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/tools/library/gen_F.py +0 -0
- {atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/tools/profile.py +0 -0
- {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.
|
|
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
|
-
|
|
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
|
-
#
|
|
288
|
-
|
|
289
|
-
|
|
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
|
-
|
|
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
|
-
|
|
435
|
-
|
|
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(
|
|
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(
|
|
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
|
-
|
|
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)
|
atopile-0.3.7.dev0/docs/CNAME
DELETED
|
@@ -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
|
|
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
|
|
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
|
{atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/assets/images/ci-generated-gerbers-githash.png
RENAMED
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
{atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/overrides/assets/javascripts/custom.129bd6ad.min.js
RENAMED
|
File without changes
|
|
File without changes
|
{atopile-0.3.7.dev0 → atopile-0.3.8.dev0}/docs/overrides/assets/javascripts/iconsearch_index.json
RENAMED
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|