atopile 0.3.0.dev0__tar.gz → 0.3.7.dev0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- atopile-0.3.7.dev0/.git-blame-ignore-revs +8 -0
- atopile-0.3.7.dev0/.gitattributes +18 -0
- atopile-0.3.7.dev0/.github/CODEOWNERS +32 -0
- atopile-0.3.7.dev0/.github/ISSUE_TEMPLATE/bug_report.yml +60 -0
- atopile-0.3.7.dev0/.github/ISSUE_TEMPLATE/config.yml +5 -0
- atopile-0.3.7.dev0/.github/ISSUE_TEMPLATE/feature_request.yml +26 -0
- atopile-0.3.7.dev0/.github/dependabot.yml +36 -0
- atopile-0.3.7.dev0/.github/pull_request_template.md +19 -0
- {atopile-0.3.0.dev0 → atopile-0.3.7.dev0}/.github/workflows/cd.yml +53 -62
- atopile-0.3.7.dev0/.github/workflows/pre-commit.yml +20 -0
- atopile-0.3.7.dev0/.github/workflows/pytest.yml +57 -0
- atopile-0.3.7.dev0/.github/workflows/regression.yml +94 -0
- atopile-0.3.7.dev0/.github/workflows/vsx.yml +45 -0
- {atopile-0.3.0.dev0 → atopile-0.3.7.dev0}/.github/workflows/website.yml +18 -7
- atopile-0.3.7.dev0/.github/workflows/wheels.yml +125 -0
- {atopile-0.3.0.dev0 → atopile-0.3.7.dev0}/.gitignore +19 -1
- atopile-0.3.7.dev0/.pre-commit-config.yaml +15 -0
- atopile-0.3.7.dev0/.vscode/extensions.json +11 -0
- atopile-0.3.7.dev0/.vscode/launch.shared.json +103 -0
- atopile-0.3.7.dev0/.vscode/settings.shared.json +9 -0
- atopile-0.3.7.dev0/.vscode/tasks.shared.json +63 -0
- atopile-0.3.7.dev0/LICENSE +21 -0
- atopile-0.3.7.dev0/PKG-INFO +210 -0
- atopile-0.3.7.dev0/README.md +130 -0
- atopile-0.3.7.dev0/atopile-custom-words.txt +46 -0
- atopile-0.3.7.dev0/cspell.json +17 -0
- atopile-0.3.7.dev0/dockerfiles/Dockerfile.kicad +41 -0
- atopile-0.3.7.dev0/docs/CNAME +1 -0
- atopile-0.3.7.dev0/docs/CODE_OF_CONDUCT.md +10 -0
- atopile-0.3.7.dev0/docs/CODING_GUIDELINES.md +14 -0
- atopile-0.3.7.dev0/docs/CONTRIBUTING.md +38 -0
- atopile-0.3.7.dev0/docs/api/cli.md +8 -0
- atopile-0.3.7.dev0/docs/api/solver.md +8 -0
- atopile-0.3.7.dev0/docs/assets/images/assertion-checks-2.png +0 -0
- atopile-0.3.7.dev0/docs/assets/images/assertion-checks.png +0 -0
- atopile-0.3.7.dev0/docs/assets/images/assertion-solver.png +0 -0
- atopile-0.3.7.dev0/docs/assets/images/ato_extension.png +0 -0
- atopile-0.3.7.dev0/docs/assets/images/block_diagram_example.png +0 -0
- atopile-0.3.7.dev0/docs/assets/images/buck_ic.png +0 -0
- atopile-0.3.7.dev0/docs/assets/images/buck_topology.png +0 -0
- atopile-0.3.7.dev0/docs/assets/images/capacitor_definition.png +0 -0
- atopile-0.3.7.dev0/docs/assets/images/ci-generated-gerbers-githash.png +0 -0
- atopile-0.3.7.dev0/docs/assets/images/ci-generated-gerbers.avif +0 -0
- atopile-0.3.7.dev0/docs/assets/images/ci-generated-gerbers.gif +0 -0
- atopile-0.3.7.dev0/docs/assets/images/cloud_bom.png +0 -0
- atopile-0.3.7.dev0/docs/assets/images/code-layout-pcb.png +0 -0
- atopile-0.3.7.dev0/docs/assets/images/debugger-vscode.png +0 -0
- atopile-0.3.7.dev0/docs/assets/images/discord-qr.png +0 -0
- atopile-0.3.7.dev0/docs/assets/images/download.png +0 -0
- atopile-0.3.7.dev0/docs/assets/images/equation-preview.gif +0 -0
- atopile-0.3.7.dev0/docs/assets/images/extension-python-setup.gif +0 -0
- atopile-0.3.7.dev0/docs/assets/images/footprints.png +0 -0
- atopile-0.3.7.dev0/docs/assets/images/groups.png +0 -0
- atopile-0.3.7.dev0/docs/assets/images/kicad_buttons.png +0 -0
- atopile-0.3.7.dev0/docs/assets/images/ldo-demo.png +0 -0
- atopile-0.3.7.dev0/docs/assets/images/mosfet.png +0 -0
- atopile-0.3.7.dev0/docs/assets/images/placement-reuse.avif +0 -0
- atopile-0.3.7.dev0/docs/assets/images/placement-reuse.gif +0 -0
- atopile-0.3.7.dev0/docs/assets/images/reload.png +0 -0
- atopile-0.3.7.dev0/docs/assets/images/schematic_example.png +0 -0
- atopile-0.3.7.dev0/docs/assets/images/slice.png +0 -0
- atopile-0.3.7.dev0/docs/assets/images/slow-to-fast-hq.gif +0 -0
- atopile-0.3.7.dev0/docs/assets/images/swoop-block-diagram.png +0 -0
- atopile-0.3.7.dev0/docs/assets/images/swoop-bringup.png +0 -0
- atopile-0.3.7.dev0/docs/assets/images/swoop.png +0 -0
- atopile-0.3.7.dev0/docs/assets/images/trace-reuse.avif +0 -0
- atopile-0.3.7.dev0/docs/assets/images/trace-reuse.gif +0 -0
- atopile-0.3.7.dev0/docs/assets/images/upload.png +0 -0
- atopile-0.3.7.dev0/docs/assets/logo/emblem.svg +20 -0
- atopile-0.3.7.dev0/docs/assets/logo/faebryk_logo.png +0 -0
- atopile-0.3.7.dev0/docs/assets/logo/logo-with-text-dark.png +0 -0
- atopile-0.3.7.dev0/docs/assets/logo/logo-with-text.png +0 -0
- atopile-0.3.7.dev0/docs/blog/posts/assertions.md +34 -0
- atopile-0.3.7.dev0/docs/blog/posts/ci-generated-gerbers.md +30 -0
- atopile-0.3.7.dev0/docs/blog/posts/cloud_components.md +69 -0
- atopile-0.3.7.dev0/docs/blog/posts/dsl.md +27 -0
- atopile-0.3.7.dev0/docs/blog/posts/layout-reuse-2.md +22 -0
- atopile-0.3.7.dev0/docs/blog/posts/layout-reuse.md +30 -0
- atopile-0.3.7.dev0/docs/blog/posts/matts-story.md +24 -0
- atopile-0.3.7.dev0/docs/blog/posts/narayans-story.md +44 -0
- atopile-0.3.7.dev0/docs/blog/posts/traits.md +111 -0
- atopile-0.3.7.dev0/docs/building.md +55 -0
- atopile-0.3.7.dev0/docs/ci.md +16 -0
- atopile-0.3.7.dev0/docs/class.md +88 -0
- atopile-0.3.7.dev0/docs/component_selection.md +22 -0
- atopile-0.3.7.dev0/docs/config.md +67 -0
- atopile-0.3.7.dev0/docs/connect.md +5 -0
- atopile-0.3.7.dev0/docs/development.md +66 -0
- atopile-0.3.7.dev0/docs/doc-strings.md +13 -0
- atopile-0.3.7.dev0/docs/first_project.md +86 -0
- atopile-0.3.7.dev0/docs/git.md +47 -0
- atopile-0.3.7.dev0/docs/how-to.md +82 -0
- atopile-0.3.7.dev0/docs/import.md +16 -0
- atopile-0.3.7.dev0/docs/index.md +144 -0
- atopile-0.3.7.dev0/docs/install.md +100 -0
- atopile-0.3.7.dev0/docs/kicad.md +80 -0
- atopile-0.3.7.dev0/docs/maths.md +104 -0
- atopile-0.3.7.dev0/docs/overrides/assets/javascripts/custom.129bd6ad.min.js +18 -0
- atopile-0.3.7.dev0/docs/overrides/assets/javascripts/custom.129bd6ad.min.js.map +7 -0
- atopile-0.3.7.dev0/docs/overrides/assets/javascripts/iconsearch_index.json +1 -0
- atopile-0.3.7.dev0/docs/overrides/assets/stylesheets/custom.css +570 -0
- atopile-0.3.7.dev0/docs/overrides/home.html +29 -0
- atopile-0.3.7.dev0/docs/overrides/hooks/shortcodes.py +284 -0
- atopile-0.3.7.dev0/docs/overrides/hooks/translations.html +32 -0
- atopile-0.3.7.dev0/docs/overrides/hooks/translations.py +194 -0
- atopile-0.3.7.dev0/docs/overrides/main.html +40 -0
- atopile-0.3.7.dev0/docs/roadmap.md +60 -0
- atopile-0.3.7.dev0/docs/spin.md +36 -0
- atopile-0.3.7.dev0/docs/swoop.md +40 -0
- atopile-0.3.7.dev0/docs/types.md +118 -0
- atopile-0.3.7.dev0/docs/view.md +84 -0
- atopile-0.3.7.dev0/docs/yc-hardware-meetup.md +22 -0
- atopile-0.3.7.dev0/examples/.ato/modules/generics/README.md +3 -0
- atopile-0.3.7.dev0/examples/.ato/modules/generics/capacitors.ato +2 -0
- atopile-0.3.7.dev0/examples/.ato/modules/generics/resistors.ato +2 -0
- atopile-0.3.7.dev0/examples/.gitignore +8 -0
- atopile-0.3.7.dev0/examples/README.md +4 -0
- atopile-0.3.7.dev0/examples/ato.yaml +11 -0
- atopile-0.3.7.dev0/examples/ch1_1_ato.ato +14 -0
- atopile-0.3.7.dev0/examples/ch1_2_ldo_demo.ato +88 -0
- atopile-0.3.7.dev0/examples/ch2_1_fab.py +52 -0
- atopile-0.3.7.dev0/examples/ch2_2_minimal_led.py +42 -0
- atopile-0.3.7.dev0/examples/ch2_3_minimal_led_explicit_parts.py +41 -0
- atopile-0.3.7.dev0/examples/ch2_4_maximal_led.py +122 -0
- atopile-0.3.7.dev0/examples/ch2_5_signal_processing.py +45 -0
- atopile-0.3.7.dev0/examples/ch2_6_route.py +165 -0
- atopile-0.3.7.dev0/examples/ch2_7_pcb_layout.py +83 -0
- atopile-0.3.7.dev0/examples/ch2_8_mcu.py +68 -0
- atopile-0.3.7.dev0/examples/ch2_9_iterative_design_nand.py +156 -0
- atopile-0.3.7.dev0/examples/layout/ato/fp-lib-table +8 -0
- atopile-0.3.7.dev0/examples/layout/ato/pcb.kicad_pcb +78 -0
- atopile-0.3.7.dev0/examples/layout/ato/pcb.kicad_pro +273 -0
- atopile-0.3.7.dev0/examples/layout/fab/fp-lib-table +8 -0
- atopile-0.3.7.dev0/examples/layout/fab/pcb.kicad_pcb +450 -0
- atopile-0.3.7.dev0/examples/layout/fab/pcb.kicad_pro +273 -0
- atopile-0.3.7.dev0/mkdocs.yml +165 -0
- atopile-0.3.7.dev0/pyproject.toml +291 -0
- atopile-0.3.7.dev0/scripts/attach_license.py +44 -0
- atopile-0.3.7.dev0/scripts/clean_issues.py +30 -0
- atopile-0.3.7.dev0/scripts/find_duplicate_test_files.sh +8 -0
- atopile-0.3.7.dev0/src/atopile/__main__.py +4 -0
- atopile-0.3.7.dev0/src/atopile/_shim.py +400 -0
- atopile-0.3.7.dev0/src/atopile/address.py +231 -0
- atopile-0.3.7.dev0/src/atopile/buildutil.py +407 -0
- atopile-0.3.7.dev0/src/atopile/cli/build.py +169 -0
- atopile-0.3.7.dev0/src/atopile/cli/cli.py +113 -0
- atopile-0.3.7.dev0/src/atopile/cli/common.py +221 -0
- atopile-0.3.7.dev0/src/atopile/cli/configure.py +155 -0
- atopile-0.3.7.dev0/src/atopile/cli/console.py +8 -0
- atopile-0.3.7.dev0/src/atopile/cli/create.py +558 -0
- atopile-0.3.7.dev0/src/atopile/cli/excepthook.py +61 -0
- atopile-0.3.7.dev0/src/atopile/cli/inspect.py +65 -0
- atopile-0.3.7.dev0/src/atopile/cli/install.py +335 -0
- atopile-0.3.7.dev0/src/atopile/cli/logging.py +232 -0
- atopile-0.3.7.dev0/src/atopile/cli/view.py +31 -0
- atopile-0.3.7.dev0/src/atopile/config.py +483 -0
- {atopile-0.3.0.dev0 → atopile-0.3.7.dev0}/src/atopile/datatypes.py +36 -34
- atopile-0.3.7.dev0/src/atopile/errors.py +234 -0
- atopile-0.3.7.dev0/src/atopile/front_end.py +1611 -0
- atopile-0.3.7.dev0/src/atopile/kicad_plugin/.gitignore +1 -0
- atopile-0.3.7.dev0/src/atopile/kicad_plugin/README.md +20 -0
- atopile-0.3.7.dev0/src/atopile/kicad_plugin/__init__.py +3 -0
- atopile-0.3.7.dev0/src/atopile/kicad_plugin/buttons.svg +232 -0
- atopile-0.3.7.dev0/src/atopile/kicad_plugin/common.py +223 -0
- atopile-0.3.7.dev0/src/atopile/kicad_plugin/download.png +0 -0
- atopile-0.3.7.dev0/src/atopile/kicad_plugin/pullgroup.py +90 -0
- atopile-0.3.7.dev0/src/atopile/kicad_plugin/pushgroup.py +89 -0
- atopile-0.3.7.dev0/src/atopile/kicad_plugin/reload.png +0 -0
- atopile-0.3.7.dev0/src/atopile/kicad_plugin/reloadgroup.py +59 -0
- atopile-0.3.7.dev0/src/atopile/kicad_plugin/upload.png +0 -0
- atopile-0.3.7.dev0/src/atopile/layout.py +134 -0
- {atopile-0.3.0.dev0 → atopile-0.3.7.dev0}/src/atopile/parse.py +50 -26
- atopile-0.3.7.dev0/src/atopile/parse_utils.py +277 -0
- atopile-0.3.0.dev0/src/atopile/parser/AtopileLexer.g4 → atopile-0.3.7.dev0/src/atopile/parser/AtoLexer.g4 +26 -28
- atopile-0.3.7.dev0/src/atopile/parser/AtoLexer.interp +288 -0
- atopile-0.3.7.dev0/src/atopile/parser/AtoLexer.py +626 -0
- atopile-0.3.0.dev0/src/atopile/parser/AtopileLexer.tokens → atopile-0.3.7.dev0/src/atopile/parser/AtoLexer.tokens +13 -8
- atopile-0.3.7.dev0/src/atopile/parser/AtoLexerBase.py +393 -0
- atopile-0.3.7.dev0/src/atopile/parser/AtoParser.g4 +155 -0
- atopile-0.3.7.dev0/src/atopile/parser/AtoParser.interp +230 -0
- atopile-0.3.7.dev0/src/atopile/parser/AtoParser.py +3695 -0
- atopile-0.3.0.dev0/src/atopile/parser/AtopileParser.tokens → atopile-0.3.7.dev0/src/atopile/parser/AtoParser.tokens +13 -8
- atopile-0.3.7.dev0/src/atopile/parser/AtoParserBase.py +4 -0
- atopile-0.3.7.dev0/src/atopile/parser/AtoParserVisitor.py +288 -0
- {atopile-0.3.0.dev0 → atopile-0.3.7.dev0}/src/atopile/parser/README.md +3 -2
- atopile-0.3.7.dev0/src/atopile/parser/__init__.py +57 -0
- atopile-0.3.7.dev0/src/atopile/parser/build.sh +3 -0
- atopile-0.3.7.dev0/src/atopile/telemetry.py +185 -0
- {atopile-0.3.0.dev0 → atopile-0.3.7.dev0}/src/atopile/version.py +61 -23
- atopile-0.3.7.dev0/src/faebryk/__init__.py +0 -0
- atopile-0.3.7.dev0/src/faebryk/core/__init__.py +0 -0
- atopile-0.3.7.dev0/src/faebryk/core/core.py +27 -0
- atopile-0.3.7.dev0/src/faebryk/core/cpp/.clang-format +9 -0
- atopile-0.3.7.dev0/src/faebryk/core/cpp/CMakeLists.txt +87 -0
- atopile-0.3.7.dev0/src/faebryk/core/cpp/__init__.py +140 -0
- atopile-0.3.7.dev0/src/faebryk/core/cpp/__init__.pyi +212 -0
- atopile-0.3.7.dev0/src/faebryk/core/cpp/cpp_helpers.py +7 -0
- atopile-0.3.7.dev0/src/faebryk/core/cpp/include/graph/graph.hpp +284 -0
- atopile-0.3.7.dev0/src/faebryk/core/cpp/include/graph/graphinterfaces.hpp +73 -0
- atopile-0.3.7.dev0/src/faebryk/core/cpp/include/graph/links.hpp +135 -0
- atopile-0.3.7.dev0/src/faebryk/core/cpp/include/nano.hpp +118 -0
- atopile-0.3.7.dev0/src/faebryk/core/cpp/include/pathfinder/bfs.hpp +61 -0
- atopile-0.3.7.dev0/src/faebryk/core/cpp/include/pathfinder/pathcounter.hpp +37 -0
- atopile-0.3.7.dev0/src/faebryk/core/cpp/include/pathfinder/pathfinder.hpp +65 -0
- atopile-0.3.7.dev0/src/faebryk/core/cpp/include/perf.hpp +32 -0
- atopile-0.3.7.dev0/src/faebryk/core/cpp/include/pyutil.hpp +74 -0
- atopile-0.3.7.dev0/src/faebryk/core/cpp/include/util.hpp +56 -0
- atopile-0.3.7.dev0/src/faebryk/core/cpp/src/graph/graph.cpp +230 -0
- atopile-0.3.7.dev0/src/faebryk/core/cpp/src/graph/graphinterface.cpp +131 -0
- atopile-0.3.7.dev0/src/faebryk/core/cpp/src/graph/graphinterfaces.cpp +117 -0
- atopile-0.3.7.dev0/src/faebryk/core/cpp/src/graph/link.cpp +61 -0
- atopile-0.3.7.dev0/src/faebryk/core/cpp/src/graph/links.cpp +343 -0
- atopile-0.3.7.dev0/src/faebryk/core/cpp/src/graph/node.cpp +259 -0
- atopile-0.3.7.dev0/src/faebryk/core/cpp/src/graph/path.cpp +101 -0
- atopile-0.3.7.dev0/src/faebryk/core/cpp/src/graph/type.cpp +48 -0
- atopile-0.3.7.dev0/src/faebryk/core/cpp/src/main.cpp +234 -0
- atopile-0.3.7.dev0/src/faebryk/core/cpp/src/pathfinder/bfs.cpp +187 -0
- atopile-0.3.7.dev0/src/faebryk/core/cpp/src/pathfinder/pathcounter.cpp +63 -0
- atopile-0.3.7.dev0/src/faebryk/core/cpp/src/pathfinder/pathfinder.cpp +426 -0
- atopile-0.3.7.dev0/src/faebryk/core/cpp/src/perf.cpp +60 -0
- atopile-0.3.7.dev0/src/faebryk/core/graph.py +55 -0
- atopile-0.3.7.dev0/src/faebryk/core/graphinterface.py +14 -0
- atopile-0.3.7.dev0/src/faebryk/core/link.py +19 -0
- atopile-0.3.7.dev0/src/faebryk/core/module.py +230 -0
- atopile-0.3.7.dev0/src/faebryk/core/moduleinterface.py +251 -0
- atopile-0.3.7.dev0/src/faebryk/core/node.py +808 -0
- atopile-0.3.7.dev0/src/faebryk/core/parameter.py +1632 -0
- atopile-0.3.7.dev0/src/faebryk/core/pathfinder.py +125 -0
- atopile-0.3.7.dev0/src/faebryk/core/reference.py +63 -0
- atopile-0.3.7.dev0/src/faebryk/core/solver/__init__.py +0 -0
- atopile-0.3.7.dev0/src/faebryk/core/solver/analytical.py +684 -0
- atopile-0.3.7.dev0/src/faebryk/core/solver/canonical.py +265 -0
- atopile-0.3.7.dev0/src/faebryk/core/solver/defaultsolver.py +482 -0
- atopile-0.3.7.dev0/src/faebryk/core/solver/literal_folding.py +783 -0
- atopile-0.3.7.dev0/src/faebryk/core/solver/solver.py +108 -0
- atopile-0.3.7.dev0/src/faebryk/core/solver/utils.py +1013 -0
- atopile-0.3.7.dev0/src/faebryk/core/trait.py +174 -0
- atopile-0.3.7.dev0/src/faebryk/exporters/bom/jlcpcb.py +158 -0
- atopile-0.3.7.dev0/src/faebryk/exporters/documentation/datasheets.py +88 -0
- atopile-0.3.7.dev0/src/faebryk/exporters/esphome/esphome.py +36 -0
- atopile-0.3.7.dev0/src/faebryk/exporters/netlist/graph.py +330 -0
- atopile-0.3.7.dev0/src/faebryk/exporters/netlist/kicad/netlist_kicad.py +84 -0
- atopile-0.3.7.dev0/src/faebryk/exporters/netlist/netlist.py +74 -0
- atopile-0.3.7.dev0/src/faebryk/exporters/parameters/parameters_to_file.py +191 -0
- atopile-0.3.7.dev0/src/faebryk/exporters/pcb/kicad/artifacts.py +166 -0
- atopile-0.3.7.dev0/src/faebryk/exporters/pcb/kicad/pcb.py +453 -0
- atopile-0.3.7.dev0/src/faebryk/exporters/pcb/kicad/transformer.py +1320 -0
- atopile-0.3.7.dev0/src/faebryk/exporters/pcb/layout/absolute.py +26 -0
- atopile-0.3.7.dev0/src/faebryk/exporters/pcb/layout/extrude.py +61 -0
- atopile-0.3.7.dev0/src/faebryk/exporters/pcb/layout/font.py +84 -0
- atopile-0.3.7.dev0/src/faebryk/exporters/pcb/layout/heuristic_decoupling.py +300 -0
- atopile-0.3.7.dev0/src/faebryk/exporters/pcb/layout/heuristic_pulls.py +53 -0
- atopile-0.3.7.dev0/src/faebryk/exporters/pcb/layout/layout.py +8 -0
- atopile-0.3.7.dev0/src/faebryk/exporters/pcb/layout/matrix.py +66 -0
- atopile-0.3.7.dev0/src/faebryk/exporters/pcb/layout/next_to.py +34 -0
- atopile-0.3.7.dev0/src/faebryk/exporters/pcb/layout/next_to_pin.py +41 -0
- atopile-0.3.7.dev0/src/faebryk/exporters/pcb/layout/typehierarchy.py +87 -0
- atopile-0.3.7.dev0/src/faebryk/exporters/pcb/pick_and_place/jlcpcb.py +30 -0
- atopile-0.3.7.dev0/src/faebryk/exporters/pcb/routing/util.py +224 -0
- atopile-0.3.7.dev0/src/faebryk/exporters/project/faebryk/project_faebryk.py +231 -0
- atopile-0.3.7.dev0/src/faebryk/exporters/schematic/kicad/transformer.py +441 -0
- atopile-0.3.7.dev0/src/faebryk/exporters/visualize/interactive_graph.py +297 -0
- atopile-0.3.7.dev0/src/faebryk/exporters/visualize/interactive_params.py +264 -0
- atopile-0.3.7.dev0/src/faebryk/exporters/visualize/interactive_params_base.py +713 -0
- atopile-0.3.7.dev0/src/faebryk/exporters/visualize/util.py +52 -0
- atopile-0.3.7.dev0/src/faebryk/importers/netlist/kicad/netlist_kicad.py +42 -0
- atopile-0.3.7.dev0/src/faebryk/library/Analog_Devices_ADM2587EBRWZ.py +130 -0
- atopile-0.3.7.dev0/src/faebryk/library/Analog_Devices_ADM2587EBRWZ_ReferenceDesign.py +89 -0
- atopile-0.3.7.dev0/src/faebryk/library/B0505S_1WR3.py +76 -0
- atopile-0.3.7.dev0/src/faebryk/library/B4B_ZR_SM4_TF.py +31 -0
- atopile-0.3.7.dev0/src/faebryk/library/BH1750FVI_TR.py +120 -0
- atopile-0.3.7.dev0/src/faebryk/library/BJT.py +49 -0
- atopile-0.3.7.dev0/src/faebryk/library/Battery.py +30 -0
- atopile-0.3.7.dev0/src/faebryk/library/Button.py +29 -0
- atopile-0.3.7.dev0/src/faebryk/library/ButtonCell.py +70 -0
- atopile-0.3.7.dev0/src/faebryk/library/CBM9002A_56ILG.py +193 -0
- atopile-0.3.7.dev0/src/faebryk/library/CBM9002A_56ILG_ReferenceDesign.py +93 -0
- atopile-0.3.7.dev0/src/faebryk/library/CD4011.py +16 -0
- atopile-0.3.7.dev0/src/faebryk/library/CH340x.py +42 -0
- atopile-0.3.7.dev0/src/faebryk/library/CH342.py +138 -0
- atopile-0.3.7.dev0/src/faebryk/library/CH342F.py +140 -0
- atopile-0.3.7.dev0/src/faebryk/library/CH342F_ReferenceDesign.py +50 -0
- atopile-0.3.7.dev0/src/faebryk/library/CH342K.py +62 -0
- atopile-0.3.7.dev0/src/faebryk/library/CH342K_ReferenceDesign.py +50 -0
- atopile-0.3.7.dev0/src/faebryk/library/CH344.py +79 -0
- atopile-0.3.7.dev0/src/faebryk/library/CH344Q.py +147 -0
- atopile-0.3.7.dev0/src/faebryk/library/CH344Q_ReferenceDesign.py +155 -0
- atopile-0.3.7.dev0/src/faebryk/library/Capacitor.py +77 -0
- atopile-0.3.7.dev0/src/faebryk/library/Common_Mode_Filter.py +51 -0
- atopile-0.3.7.dev0/src/faebryk/library/Comparator.py +69 -0
- atopile-0.3.7.dev0/src/faebryk/library/Crystal.py +79 -0
- atopile-0.3.7.dev0/src/faebryk/library/Crystal_Oscillator.py +116 -0
- atopile-0.3.7.dev0/src/faebryk/library/DE9Connector.py +66 -0
- atopile-0.3.7.dev0/src/faebryk/library/DE9RS232Connector.py +54 -0
- atopile-0.3.7.dev0/src/faebryk/library/DIP.py +37 -0
- atopile-0.3.7.dev0/src/faebryk/library/DifferentialPair.py +33 -0
- atopile-0.3.7.dev0/src/faebryk/library/Diode.py +82 -0
- atopile-0.3.7.dev0/src/faebryk/library/Diodes_Incorporated_AP2552W6_7.py +28 -0
- atopile-0.3.7.dev0/src/faebryk/library/Diodes_Incorporated_AP2553W6_7.py +29 -0
- atopile-0.3.7.dev0/src/faebryk/library/Diodes_Incorporated_AP255x_x.py +144 -0
- atopile-0.3.7.dev0/src/faebryk/library/EEPROM.py +52 -0
- atopile-0.3.7.dev0/src/faebryk/library/ESP32_C3.py +230 -0
- atopile-0.3.7.dev0/src/faebryk/library/ESP32_C3_MINI_1.py +145 -0
- atopile-0.3.7.dev0/src/faebryk/library/ESP32_C3_MINI_1_ReferenceDesign.py +95 -0
- atopile-0.3.7.dev0/src/faebryk/library/ElecSuper_PSM712_ES.py +64 -0
- atopile-0.3.7.dev0/src/faebryk/library/ElectricLogic.py +143 -0
- atopile-0.3.7.dev0/src/faebryk/library/ElectricLogicGate.py +22 -0
- atopile-0.3.7.dev0/src/faebryk/library/ElectricLogicGates.py +23 -0
- atopile-0.3.7.dev0/src/faebryk/library/ElectricPower.py +123 -0
- atopile-0.3.7.dev0/src/faebryk/library/Electrical.py +23 -0
- atopile-0.3.7.dev0/src/faebryk/library/EnablePin.py +36 -0
- atopile-0.3.7.dev0/src/faebryk/library/Ethernet.py +28 -0
- atopile-0.3.7.dev0/src/faebryk/library/Fan.py +9 -0
- atopile-0.3.7.dev0/src/faebryk/library/Filter.py +36 -0
- atopile-0.3.7.dev0/src/faebryk/library/FilterElectricalLC.py +60 -0
- atopile-0.3.7.dev0/src/faebryk/library/FilterElectricalRC.py +60 -0
- atopile-0.3.7.dev0/src/faebryk/library/Footprint.py +20 -0
- atopile-0.3.7.dev0/src/faebryk/library/Fuse.py +46 -0
- atopile-0.3.7.dev0/src/faebryk/library/GDT.py +36 -0
- atopile-0.3.7.dev0/src/faebryk/library/GenericBusProtection.py +79 -0
- atopile-0.3.7.dev0/src/faebryk/library/HDMI.py +35 -0
- atopile-0.3.7.dev0/src/faebryk/library/HLK_LD2410B_P.py +96 -0
- atopile-0.3.7.dev0/src/faebryk/library/Header.py +84 -0
- atopile-0.3.7.dev0/src/faebryk/library/I2C.py +48 -0
- atopile-0.3.7.dev0/src/faebryk/library/I2S.py +26 -0
- atopile-0.3.7.dev0/src/faebryk/library/INA228.py +113 -0
- atopile-0.3.7.dev0/src/faebryk/library/INA228_ReferenceDesign.py +110 -0
- atopile-0.3.7.dev0/src/faebryk/library/ISO1540.py +98 -0
- atopile-0.3.7.dev0/src/faebryk/library/ISO1540_ReferenceDesign.py +30 -0
- atopile-0.3.7.dev0/src/faebryk/library/Inductor.py +57 -0
- atopile-0.3.7.dev0/src/faebryk/library/JTAG.py +23 -0
- atopile-0.3.7.dev0/src/faebryk/library/KicadFootprint.py +36 -0
- atopile-0.3.7.dev0/src/faebryk/library/LDO.py +121 -0
- atopile-0.3.7.dev0/src/faebryk/library/LED.py +87 -0
- atopile-0.3.7.dev0/src/faebryk/library/LEDIndicator.py +35 -0
- atopile-0.3.7.dev0/src/faebryk/library/Logic.py +17 -0
- atopile-0.3.7.dev0/src/faebryk/library/Logic74xx.py +75 -0
- atopile-0.3.7.dev0/src/faebryk/library/LogicGate.py +83 -0
- atopile-0.3.7.dev0/src/faebryk/library/LogicGates.py +23 -0
- atopile-0.3.7.dev0/src/faebryk/library/LogicOps.py +49 -0
- atopile-0.3.7.dev0/src/faebryk/library/M24C08_FMN6TP.py +91 -0
- atopile-0.3.7.dev0/src/faebryk/library/MCP2221A.py +37 -0
- atopile-0.3.7.dev0/src/faebryk/library/ME6211C33M5G_N.py +44 -0
- atopile-0.3.7.dev0/src/faebryk/library/MOSFET.py +53 -0
- atopile-0.3.7.dev0/src/faebryk/library/Mechanical.py +7 -0
- atopile-0.3.7.dev0/src/faebryk/library/Mounting_Hole.py +49 -0
- atopile-0.3.7.dev0/src/faebryk/library/MultiCapacitor.py +81 -0
- atopile-0.3.7.dev0/src/faebryk/library/MultiSPI.py +26 -0
- atopile-0.3.7.dev0/src/faebryk/library/Net.py +51 -0
- atopile-0.3.7.dev0/src/faebryk/library/OLED_Module.py +61 -0
- atopile-0.3.7.dev0/src/faebryk/library/OpAmp.py +53 -0
- atopile-0.3.7.dev0/src/faebryk/library/PANASONIC_AQY212EHAX.py +68 -0
- atopile-0.3.7.dev0/src/faebryk/library/PJ398SM.py +16 -0
- atopile-0.3.7.dev0/src/faebryk/library/PM1006.py +62 -0
- atopile-0.3.7.dev0/src/faebryk/library/Pad.py +46 -0
- atopile-0.3.7.dev0/src/faebryk/library/Pinmux.py +111 -0
- atopile-0.3.7.dev0/src/faebryk/library/Potentiometer.py +30 -0
- atopile-0.3.7.dev0/src/faebryk/library/Power.py +18 -0
- atopile-0.3.7.dev0/src/faebryk/library/PowerMux.py +23 -0
- atopile-0.3.7.dev0/src/faebryk/library/PowerSwitch.py +33 -0
- atopile-0.3.7.dev0/src/faebryk/library/PowerSwitchMOSFET.py +53 -0
- atopile-0.3.7.dev0/src/faebryk/library/PowerSwitchStatic.py +26 -0
- atopile-0.3.7.dev0/src/faebryk/library/PoweredLED.py +31 -0
- atopile-0.3.7.dev0/src/faebryk/library/Powered_Relay.py +42 -0
- atopile-0.3.7.dev0/src/faebryk/library/QFN.py +59 -0
- atopile-0.3.7.dev0/src/faebryk/library/QWIIC_Connector.py +66 -0
- atopile-0.3.7.dev0/src/faebryk/library/RJ45_Receptacle.py +24 -0
- atopile-0.3.7.dev0/src/faebryk/library/RP2040.py +301 -0
- atopile-0.3.7.dev0/src/faebryk/library/RP2040Pinmux.py +402 -0
- atopile-0.3.7.dev0/src/faebryk/library/RP2040_ReferenceDesign.py +222 -0
- atopile-0.3.7.dev0/src/faebryk/library/RS232.py +23 -0
- atopile-0.3.7.dev0/src/faebryk/library/RS485HalfDuplex.py +15 -0
- atopile-0.3.7.dev0/src/faebryk/library/RS485_Bus_Protection.py +170 -0
- atopile-0.3.7.dev0/src/faebryk/library/RaspberryPiPico.py +133 -0
- atopile-0.3.7.dev0/src/faebryk/library/RaspberryPiPicoBase_ReferenceDesign.py +423 -0
- atopile-0.3.7.dev0/src/faebryk/library/Relay.py +33 -0
- atopile-0.3.7.dev0/src/faebryk/library/Resistor.py +62 -0
- atopile-0.3.7.dev0/src/faebryk/library/ResistorVoltageDivider.py +28 -0
- atopile-0.3.7.dev0/src/faebryk/library/Resistor_Voltage_Divider.py +27 -0
- atopile-0.3.7.dev0/src/faebryk/library/SCD40.py +78 -0
- atopile-0.3.7.dev0/src/faebryk/library/SK6812.py +76 -0
- atopile-0.3.7.dev0/src/faebryk/library/SK9822_EC20.py +57 -0
- atopile-0.3.7.dev0/src/faebryk/library/SMDTwoPin.py +51 -0
- atopile-0.3.7.dev0/src/faebryk/library/SNx4LVC541A.py +57 -0
- atopile-0.3.7.dev0/src/faebryk/library/SOIC.py +40 -0
- atopile-0.3.7.dev0/src/faebryk/library/SP3243E.py +127 -0
- atopile-0.3.7.dev0/src/faebryk/library/SP3243E_ReferenceDesign.py +50 -0
- atopile-0.3.7.dev0/src/faebryk/library/SPI.py +18 -0
- atopile-0.3.7.dev0/src/faebryk/library/SPIFlash.py +26 -0
- atopile-0.3.7.dev0/src/faebryk/library/SWD.py +19 -0
- atopile-0.3.7.dev0/src/faebryk/library/SWDConnector.py +36 -0
- atopile-0.3.7.dev0/src/faebryk/library/Sercom.py +16 -0
- atopile-0.3.7.dev0/src/faebryk/library/Shenzhen_Kinghelm_Elec_KH_BNC75_3511.py +62 -0
- atopile-0.3.7.dev0/src/faebryk/library/Signal.py +7 -0
- atopile-0.3.7.dev0/src/faebryk/library/SignalElectrical.py +94 -0
- atopile-0.3.7.dev0/src/faebryk/library/SurgeProtection.py +48 -0
- atopile-0.3.7.dev0/src/faebryk/library/Switch.py +46 -0
- atopile-0.3.7.dev0/src/faebryk/library/Symbol.py +59 -0
- atopile-0.3.7.dev0/src/faebryk/library/TD541S485H.py +75 -0
- atopile-0.3.7.dev0/src/faebryk/library/TECH_PUBLIC_USBLC6_2SC6.py +60 -0
- atopile-0.3.7.dev0/src/faebryk/library/TI_CD4011BE.py +43 -0
- atopile-0.3.7.dev0/src/faebryk/library/TPS2116.py +137 -0
- atopile-0.3.7.dev0/src/faebryk/library/TVS.py +16 -0
- atopile-0.3.7.dev0/src/faebryk/library/TXS0102DCUR.py +58 -0
- atopile-0.3.7.dev0/src/faebryk/library/TXS0102DCUR_UART.py +37 -0
- atopile-0.3.7.dev0/src/faebryk/library/UART.py +22 -0
- atopile-0.3.7.dev0/src/faebryk/library/UART_Base.py +23 -0
- atopile-0.3.7.dev0/src/faebryk/library/UART_RS485.py +32 -0
- atopile-0.3.7.dev0/src/faebryk/library/USB2514B.py +373 -0
- atopile-0.3.7.dev0/src/faebryk/library/USB2514B_ReferenceDesign.py +318 -0
- atopile-0.3.7.dev0/src/faebryk/library/USB2_0.py +16 -0
- atopile-0.3.7.dev0/src/faebryk/library/USB2_0_ESD_Protection.py +55 -0
- atopile-0.3.7.dev0/src/faebryk/library/USB2_0_IF.py +25 -0
- atopile-0.3.7.dev0/src/faebryk/library/USB3.py +17 -0
- atopile-0.3.7.dev0/src/faebryk/library/USB3_IF.py +12 -0
- atopile-0.3.7.dev0/src/faebryk/library/USB3_connector.py +22 -0
- atopile-0.3.7.dev0/src/faebryk/library/USBLC6_2P6.py +36 -0
- atopile-0.3.7.dev0/src/faebryk/library/USB_C.py +15 -0
- atopile-0.3.7.dev0/src/faebryk/library/USB_C_5V_PSU.py +34 -0
- atopile-0.3.7.dev0/src/faebryk/library/USB_C_PSU_Vertical.py +69 -0
- atopile-0.3.7.dev0/src/faebryk/library/USB_C_PowerOnly.py +33 -0
- atopile-0.3.7.dev0/src/faebryk/library/USB_RS485.py +56 -0
- atopile-0.3.7.dev0/src/faebryk/library/USB_Type_C_Receptacle_14_pin_Vertical.py +58 -0
- atopile-0.3.7.dev0/src/faebryk/library/USB_Type_C_Receptacle_16_pin.py +77 -0
- atopile-0.3.7.dev0/src/faebryk/library/USB_Type_C_Receptacle_24_pin.py +63 -0
- atopile-0.3.7.dev0/src/faebryk/library/WCHJiangsu_Qin_Heng_CH224K.py +115 -0
- atopile-0.3.7.dev0/src/faebryk/library/WCHJiangsu_Qin_Heng_CH224K_ReferenceDesign.py +64 -0
- atopile-0.3.7.dev0/src/faebryk/library/Winbond_Elec_W25Q128JVSIQ.py +72 -0
- atopile-0.3.7.dev0/src/faebryk/library/Winbond_W25Q16JVUXIQ.py +67 -0
- atopile-0.3.7.dev0/src/faebryk/library/Wuxi_I_core_Elec_AiP74LVC1T45GB236_TR.py +94 -0
- atopile-0.3.7.dev0/src/faebryk/library/XL_3528RGBW_WS2812B.py +77 -0
- atopile-0.3.7.dev0/src/faebryk/library/XtalIF.py +38 -0
- atopile-0.3.7.dev0/src/faebryk/library/_F.py +274 -0
- atopile-0.3.7.dev0/src/faebryk/library/can_attach_to_footprint.py +12 -0
- atopile-0.3.7.dev0/src/faebryk/library/can_attach_to_footprint_symmetrically.py +15 -0
- atopile-0.3.7.dev0/src/faebryk/library/can_attach_to_footprint_via_pinmap.py +14 -0
- atopile-0.3.7.dev0/src/faebryk/library/can_attach_via_pinmap.py +11 -0
- atopile-0.3.7.dev0/src/faebryk/library/can_attach_via_pinmap_equal.py +13 -0
- atopile-0.3.7.dev0/src/faebryk/library/can_attach_via_pinmap_pinlist.py +19 -0
- atopile-0.3.7.dev0/src/faebryk/library/can_be_decoupled.py +21 -0
- atopile-0.3.7.dev0/src/faebryk/library/can_be_decoupled_rails.py +25 -0
- atopile-0.3.7.dev0/src/faebryk/library/can_be_surge_protected.py +19 -0
- atopile-0.3.7.dev0/src/faebryk/library/can_be_surge_protected_defined.py +26 -0
- atopile-0.3.7.dev0/src/faebryk/library/can_bridge.py +19 -0
- atopile-0.3.7.dev0/src/faebryk/library/can_bridge_defined.py +12 -0
- atopile-0.3.7.dev0/src/faebryk/library/can_specialize.py +30 -0
- atopile-0.3.7.dev0/src/faebryk/library/can_specialize_defined.py +24 -0
- atopile-0.3.7.dev0/src/faebryk/library/can_switch_power.py +11 -0
- atopile-0.3.7.dev0/src/faebryk/library/can_switch_power_defined.py +29 -0
- atopile-0.3.7.dev0/src/faebryk/library/has_capacitance.py +12 -0
- atopile-0.3.7.dev0/src/faebryk/library/has_construction_dependency.py +35 -0
- atopile-0.3.7.dev0/src/faebryk/library/has_datasheet.py +11 -0
- atopile-0.3.7.dev0/src/faebryk/library/has_datasheet_defined.py +13 -0
- atopile-0.3.7.dev0/src/faebryk/library/has_descriptive_properties.py +12 -0
- atopile-0.3.7.dev0/src/faebryk/library/has_descriptive_properties_defined.py +62 -0
- atopile-0.3.7.dev0/src/faebryk/library/has_designator.py +11 -0
- atopile-0.3.7.dev0/src/faebryk/library/has_designator_defined.py +13 -0
- atopile-0.3.7.dev0/src/faebryk/library/has_designator_prefix.py +166 -0
- atopile-0.3.7.dev0/src/faebryk/library/has_designator_prefix_defined.py +13 -0
- atopile-0.3.7.dev0/src/faebryk/library/has_equal_pins.py +11 -0
- atopile-0.3.7.dev0/src/faebryk/library/has_equal_pins_in_ifs.py +12 -0
- atopile-0.3.7.dev0/src/faebryk/library/has_esphome_config.py +11 -0
- atopile-0.3.7.dev0/src/faebryk/library/has_esphome_config_defined.py +13 -0
- atopile-0.3.7.dev0/src/faebryk/library/has_explicit_part.py +63 -0
- atopile-0.3.7.dev0/src/faebryk/library/has_footprint.py +15 -0
- atopile-0.3.7.dev0/src/faebryk/library/has_footprint_defined.py +13 -0
- atopile-0.3.7.dev0/src/faebryk/library/has_footprint_impl.py +14 -0
- atopile-0.3.7.dev0/src/faebryk/library/has_kicad_footprint.py +21 -0
- atopile-0.3.7.dev0/src/faebryk/library/has_kicad_footprint_equal_ifs.py +9 -0
- atopile-0.3.7.dev0/src/faebryk/library/has_kicad_footprint_equal_ifs_defined.py +13 -0
- atopile-0.3.7.dev0/src/faebryk/library/has_kicad_manual_footprint.py +17 -0
- atopile-0.3.7.dev0/src/faebryk/library/has_kicad_ref.py +9 -0
- atopile-0.3.7.dev0/src/faebryk/library/has_layout_transform.py +22 -0
- atopile-0.3.7.dev0/src/faebryk/library/has_linked_pad.py +15 -0
- atopile-0.3.7.dev0/src/faebryk/library/has_linked_pad_defined.py +29 -0
- atopile-0.3.7.dev0/src/faebryk/library/has_net_name.py +35 -0
- atopile-0.3.7.dev0/src/faebryk/library/has_overriden_name.py +11 -0
- atopile-0.3.7.dev0/src/faebryk/library/has_overriden_name_defined.py +13 -0
- atopile-0.3.7.dev0/src/faebryk/library/has_package_requirement.py +15 -0
- atopile-0.3.7.dev0/src/faebryk/library/has_part_picked.py +34 -0
- atopile-0.3.7.dev0/src/faebryk/library/has_part_removed.py +13 -0
- atopile-0.3.7.dev0/src/faebryk/library/has_pcb_layout.py +11 -0
- atopile-0.3.7.dev0/src/faebryk/library/has_pcb_layout_defined.py +16 -0
- atopile-0.3.7.dev0/src/faebryk/library/has_pcb_position.py +19 -0
- atopile-0.3.7.dev0/src/faebryk/library/has_pcb_position_defined.py +13 -0
- atopile-0.3.7.dev0/src/faebryk/library/has_pcb_position_defined_relative.py +20 -0
- atopile-0.3.7.dev0/src/faebryk/library/has_pcb_position_defined_relative_to_parent.py +33 -0
- atopile-0.3.7.dev0/src/faebryk/library/has_pcb_routing_strategy.py +23 -0
- atopile-0.3.7.dev0/src/faebryk/library/has_pcb_routing_strategy_greedy_direct_line.py +141 -0
- atopile-0.3.7.dev0/src/faebryk/library/has_pcb_routing_strategy_manual.py +67 -0
- atopile-0.3.7.dev0/src/faebryk/library/has_pcb_routing_strategy_via_to_layer.py +86 -0
- atopile-0.3.7.dev0/src/faebryk/library/has_pin_association_heuristic.py +21 -0
- atopile-0.3.7.dev0/src/faebryk/library/has_pin_association_heuristic_lookup_table.py +80 -0
- atopile-0.3.7.dev0/src/faebryk/library/has_reference.py +13 -0
- atopile-0.3.7.dev0/src/faebryk/library/has_reference_layout.py +27 -0
- atopile-0.3.7.dev0/src/faebryk/library/has_resistance.py +12 -0
- atopile-0.3.7.dev0/src/faebryk/library/has_simple_value_representation.py +11 -0
- atopile-0.3.7.dev0/src/faebryk/library/has_simple_value_representation_based_on_params.py +25 -0
- atopile-0.3.7.dev0/src/faebryk/library/has_simple_value_representation_based_on_params_chain.py +114 -0
- atopile-0.3.7.dev0/src/faebryk/library/has_simple_value_representation_defined.py +14 -0
- atopile-0.3.7.dev0/src/faebryk/library/has_single_connection.py +12 -0
- atopile-0.3.7.dev0/src/faebryk/library/has_single_connection_impl.py +11 -0
- atopile-0.3.7.dev0/src/faebryk/library/has_single_electric_reference.py +16 -0
- atopile-0.3.7.dev0/src/faebryk/library/has_single_electric_reference_defined.py +18 -0
- atopile-0.3.7.dev0/src/faebryk/library/has_symbol_layout.py +8 -0
- atopile-0.3.7.dev0/src/faebryk/library/has_symbol_layout_defined.py +10 -0
- atopile-0.3.7.dev0/src/faebryk/library/is_app_root.py +14 -0
- atopile-0.3.7.dev0/src/faebryk/library/is_bus_parameter.py +166 -0
- atopile-0.3.7.dev0/src/faebryk/library/is_decoupled.py +19 -0
- atopile-0.3.7.dev0/src/faebryk/library/is_esphome_bus.py +25 -0
- atopile-0.3.7.dev0/src/faebryk/library/is_esphome_bus_defined.py +13 -0
- atopile-0.3.7.dev0/src/faebryk/library/is_not_pickable.py +15 -0
- atopile-0.3.7.dev0/src/faebryk/library/is_optional.py +29 -0
- atopile-0.3.7.dev0/src/faebryk/library/is_optional_defined.py +24 -0
- atopile-0.3.7.dev0/src/faebryk/library/is_pickable.py +8 -0
- atopile-0.3.7.dev0/src/faebryk/library/is_pickable_by_part_number.py +18 -0
- atopile-0.3.7.dev0/src/faebryk/library/is_pickable_by_supplier_id.py +22 -0
- atopile-0.3.7.dev0/src/faebryk/library/is_pickable_by_type.py +25 -0
- atopile-0.3.7.dev0/src/faebryk/library/is_representable_by_single_value.py +11 -0
- atopile-0.3.7.dev0/src/faebryk/library/is_representable_by_single_value_defined.py +17 -0
- atopile-0.3.7.dev0/src/faebryk/library/is_surge_protected.py +15 -0
- atopile-0.3.7.dev0/src/faebryk/library/is_surge_protected_defined.py +17 -0
- atopile-0.3.7.dev0/src/faebryk/library/pf_533984002.py +32 -0
- atopile-0.3.7.dev0/src/faebryk/library/pf_74AHCT2G125.py +67 -0
- atopile-0.3.7.dev0/src/faebryk/libs/algorithm.py +31 -0
- atopile-0.3.7.dev0/src/faebryk/libs/app/checks.py +11 -0
- atopile-0.3.7.dev0/src/faebryk/libs/app/designators.py +123 -0
- atopile-0.3.7.dev0/src/faebryk/libs/app/erc.py +171 -0
- atopile-0.3.7.dev0/src/faebryk/libs/app/manufacturing.py +41 -0
- atopile-0.3.7.dev0/src/faebryk/libs/app/pcb.py +246 -0
- atopile-0.3.7.dev0/src/faebryk/libs/app/picking.py +42 -0
- atopile-0.3.7.dev0/src/faebryk/libs/brightness.py +134 -0
- atopile-0.3.7.dev0/src/faebryk/libs/examples/resources/example/example.kicad_pcb +2 -0
- atopile-0.3.7.dev0/src/faebryk/libs/examples/resources/example/example.kicad_pro +273 -0
- atopile-0.3.7.dev0/src/faebryk/libs/examples/resources/example/fp-lib-table +4 -0
- atopile-0.3.7.dev0/src/faebryk/libs/exceptions.py +314 -0
- atopile-0.3.7.dev0/src/faebryk/libs/font.py +132 -0
- atopile-0.3.7.dev0/src/faebryk/libs/geometry/basic.py +635 -0
- atopile-0.3.7.dev0/src/faebryk/libs/header.py +40 -0
- atopile-0.3.7.dev0/src/faebryk/libs/iso_metric_screw_thread.py +39 -0
- atopile-0.3.7.dev0/src/faebryk/libs/kicad/fileformats.py +1396 -0
- atopile-0.3.7.dev0/src/faebryk/libs/kicad/fileformats_common.py +184 -0
- atopile-0.3.7.dev0/src/faebryk/libs/kicad/fileformats_sch.py +402 -0
- atopile-0.3.7.dev0/src/faebryk/libs/kicad/fileformats_v5.py +215 -0
- atopile-0.3.7.dev0/src/faebryk/libs/kicad/fileformats_v6.py +144 -0
- atopile-0.3.7.dev0/src/faebryk/libs/kicad/fileformats_version.py +41 -0
- atopile-0.3.7.dev0/src/faebryk/libs/kicad/paths.py +38 -0
- atopile-0.3.7.dev0/src/faebryk/libs/library/L.py +92 -0
- atopile-0.3.7.dev0/src/faebryk/libs/logging.py +123 -0
- atopile-0.3.7.dev0/src/faebryk/libs/picker/api/api.py +146 -0
- atopile-0.3.7.dev0/src/faebryk/libs/picker/api/models.py +269 -0
- atopile-0.3.7.dev0/src/faebryk/libs/picker/api/picker_lib.py +369 -0
- atopile-0.3.7.dev0/src/faebryk/libs/picker/lcsc.py +301 -0
- atopile-0.3.7.dev0/src/faebryk/libs/picker/picker.py +385 -0
- atopile-0.3.7.dev0/src/faebryk/libs/pycodegen.py +113 -0
- atopile-0.3.7.dev0/src/faebryk/libs/sets/numeric_sets.py +581 -0
- atopile-0.3.7.dev0/src/faebryk/libs/sets/quantity_sets.py +747 -0
- atopile-0.3.7.dev0/src/faebryk/libs/sets/sets.py +285 -0
- atopile-0.3.7.dev0/src/faebryk/libs/sexp/dataclass_sexp.py +586 -0
- atopile-0.3.7.dev0/src/faebryk/libs/sexp/util.py +32 -0
- atopile-0.3.7.dev0/src/faebryk/libs/test/fileformats.py +69 -0
- atopile-0.3.7.dev0/src/faebryk/libs/test/times.py +62 -0
- atopile-0.3.7.dev0/src/faebryk/libs/titlecase.py +57 -0
- atopile-0.3.7.dev0/src/faebryk/libs/tools/typer.py +16 -0
- atopile-0.3.7.dev0/src/faebryk/libs/units.py +114 -0
- atopile-0.3.7.dev0/src/faebryk/libs/util.py +1835 -0
- atopile-0.3.7.dev0/src/faebryk/tools/libadd.py +395 -0
- atopile-0.3.7.dev0/src/faebryk/tools/main.py +21 -0
- atopile-0.3.7.dev0/src/faebryk/tools/project.py +89 -0
- atopile-0.3.7.dev0/src/faebryk/tools/refactor.py +222 -0
- atopile-0.3.7.dev0/src/vscode-atopile/.eslintrc.json +24 -0
- atopile-0.3.7.dev0/src/vscode-atopile/.gitignore +12 -0
- atopile-0.3.7.dev0/src/vscode-atopile/.prettierrc.js +15 -0
- atopile-0.3.7.dev0/src/vscode-atopile/.vscodeignore +24 -0
- atopile-0.3.7.dev0/src/vscode-atopile/CODE_OF_CONDUCT.md +9 -0
- atopile-0.3.7.dev0/src/vscode-atopile/DEVELOPMENT.md +13 -0
- {atopile-0.3.0.dev0 → atopile-0.3.7.dev0/src/vscode-atopile}/LICENSE +1 -1
- atopile-0.3.7.dev0/src/vscode-atopile/README.md +31 -0
- atopile-0.3.7.dev0/src/vscode-atopile/SECURITY.md +5 -0
- atopile-0.3.7.dev0/src/vscode-atopile/SUPPORT.md +3 -0
- atopile-0.3.7.dev0/src/vscode-atopile/bundled/tool/__init__.py +2 -0
- atopile-0.3.7.dev0/src/vscode-atopile/bundled/tool/_debug_server.py +39 -0
- atopile-0.3.7.dev0/src/vscode-atopile/bundled/tool/lsp_jsonrpc.py +258 -0
- atopile-0.3.7.dev0/src/vscode-atopile/bundled/tool/lsp_runner.py +77 -0
- atopile-0.3.7.dev0/src/vscode-atopile/bundled/tool/lsp_server.py +857 -0
- atopile-0.3.7.dev0/src/vscode-atopile/bundled/tool/lsp_utils.py +273 -0
- atopile-0.3.7.dev0/src/vscode-atopile/demo.gif +0 -0
- atopile-0.3.7.dev0/src/vscode-atopile/package-lock.json +5809 -0
- atopile-0.3.7.dev0/src/vscode-atopile/package.json +220 -0
- atopile-0.3.7.dev0/src/vscode-atopile/runtime.txt +1 -0
- atopile-0.3.7.dev0/src/vscode-atopile/snippets/snippets.json +43 -0
- atopile-0.3.7.dev0/src/vscode-atopile/src/common/constants.ts +11 -0
- atopile-0.3.7.dev0/src/vscode-atopile/src/common/log/logging.ts +60 -0
- atopile-0.3.7.dev0/src/vscode-atopile/src/common/python.ts +80 -0
- atopile-0.3.7.dev0/src/vscode-atopile/src/common/server.ts +126 -0
- atopile-0.3.7.dev0/src/vscode-atopile/src/common/settings.ts +130 -0
- atopile-0.3.7.dev0/src/vscode-atopile/src/common/setup.ts +18 -0
- atopile-0.3.7.dev0/src/vscode-atopile/src/common/utilities.ts +67 -0
- atopile-0.3.7.dev0/src/vscode-atopile/src/common/vscodeapi.ts +43 -0
- atopile-0.3.7.dev0/src/vscode-atopile/src/extension.ts +109 -0
- atopile-0.3.7.dev0/src/vscode-atopile/src/ui/ui.ts +244 -0
- {atopile-0.3.0.dev0 → atopile-0.3.7.dev0}/src/vscode-atopile/syntaxes/ato.tmLanguage.json +10 -2
- atopile-0.3.7.dev0/src/vscode-atopile/tsconfig.json +13 -0
- atopile-0.3.7.dev0/src/vscode-atopile/webpack.config.js +48 -0
- atopile-0.3.7.dev0/test/common/libs/footprints/logos.pretty/faebryk_logo.kicad_mod +424 -0
- atopile-0.3.7.dev0/test/common/resources/fileformats/kicad/v5/fp/C0603.kicad_mod +30 -0
- atopile-0.3.7.dev0/test/common/resources/fileformats/kicad/v5/fp/KMR211NGLFS.kicad_mod +37 -0
- atopile-0.3.7.dev0/test/common/resources/fileformats/kicad/v6/fp/SOT-23-5_RIT.kicad_mod +77 -0
- atopile-0.3.7.dev0/test/common/resources/fileformats/kicad/v7/fplib/fp-lib-table +7 -0
- atopile-0.3.7.dev0/test/common/resources/fileformats/kicad/v8/fp/test.kicad_mod +228 -0
- atopile-0.3.7.dev0/test/common/resources/fileformats/kicad/v8/netlist/test_e.net +6180 -0
- atopile-0.3.7.dev0/test/common/resources/fileformats/kicad/v8/pcb/test.kicad_pcb +1280 -0
- atopile-0.3.7.dev0/test/common/resources/fileformats/kicad/v8/prj/test.kicad_pro +273 -0
- atopile-0.3.7.dev0/test/common/resources/fileformats/kicad/v8/sch/test.kicad_sch +1676 -0
- atopile-0.3.7.dev0/test/common/resources/fileformats/kicad/v8/sym/test.kicad_sym +560 -0
- atopile-0.3.7.dev0/test/common/resources/test-project/ato.yaml +6 -0
- atopile-0.3.7.dev0/test/common/resources/test-project/unconstructable.py +6 -0
- atopile-0.3.7.dev0/test/common/resources/test-project/unimportable.py +8 -0
- atopile-0.3.7.dev0/test/common/resources/test.net +115 -0
- atopile-0.3.7.dev0/test/common/resources/test_essentials.net +35 -0
- atopile-0.3.7.dev0/test/conftest.py +13 -0
- atopile-0.3.7.dev0/test/core/cpp/test_importcpp.py +218 -0
- atopile-0.3.7.dev0/test/core/solver/test_solver.py +727 -0
- atopile-0.3.7.dev0/test/core/solver/test_solver_util.py +99 -0
- atopile-0.3.7.dev0/test/core/test_core.py +271 -0
- atopile-0.3.7.dev0/test/core/test_core_util.py +48 -0
- atopile-0.3.7.dev0/test/core/test_mif_connect.py +594 -0
- atopile-0.3.7.dev0/test/core/test_node.py +66 -0
- atopile-0.3.7.dev0/test/core/test_parameters.py +165 -0
- atopile-0.3.7.dev0/test/core/test_performance.py +358 -0
- atopile-0.3.7.dev0/test/core/test_traits.py +261 -0
- atopile-0.3.7.dev0/test/exporters/netlist/kicad/test_netlist_kicad.py +195 -0
- atopile-0.3.7.dev0/test/exporters/netlist/test_graph.py +100 -0
- atopile-0.3.7.dev0/test/exporters/pcb/kicad/test_pcb_transformer.py +23 -0
- atopile-0.3.7.dev0/test/exporters/schematic/kicad/test_schematic_transformer.py +96 -0
- atopile-0.3.7.dev0/test/front_end/test_front_end.py +403 -0
- atopile-0.3.7.dev0/test/front_end/test_front_end_pick.py +86 -0
- atopile-0.3.7.dev0/test/front_end/test_literals.py +36 -0
- atopile-0.3.7.dev0/test/integration/netlist/kicad2faebryk/test_netlist_kicad_2_faebryk_prj.py +41 -0
- atopile-0.3.7.dev0/test/library/nodes/test_decouple.py +56 -0
- atopile-0.3.7.dev0/test/library/nodes/test_electricpower.py +129 -0
- atopile-0.3.7.dev0/test/library/nodes/test_has_simple_value_representation.py +97 -0
- atopile-0.3.7.dev0/test/library/test_footprints.py +73 -0
- atopile-0.3.7.dev0/test/library/test_instance_library_modules.py +79 -0
- atopile-0.3.7.dev0/test/library/test_names.py +28 -0
- atopile-0.3.7.dev0/test/library/test_reference.py +139 -0
- atopile-0.3.7.dev0/test/libs/geometry/test_basic_transformations.py +21 -0
- atopile-0.3.7.dev0/test/libs/kicad/test_fileformats.py +307 -0
- atopile-0.3.7.dev0/test/libs/picker/components.py +269 -0
- atopile-0.3.7.dev0/test/libs/picker/test_pickers.py +147 -0
- atopile-0.3.7.dev0/test/libs/test_exceptions.py +127 -0
- atopile-0.3.7.dev0/test/libs/test_lcsc.py +63 -0
- atopile-0.3.7.dev0/test/libs/test_sets.py +325 -0
- atopile-0.3.7.dev0/test/libs/test_units.py +69 -0
- atopile-0.3.7.dev0/test/libs/test_util.py +144 -0
- atopile-0.3.7.dev0/test/libs/test_util_atexit.py +76 -0
- atopile-0.3.7.dev0/test/libs/test_util_func_collections.py +91 -0
- atopile-0.3.7.dev0/test/libs/test_util_importers.py +149 -0
- atopile-0.3.7.dev0/test/libs/util/test_has_attr_or_property.py +76 -0
- atopile-0.3.7.dev0/test/libs/util/test_has_instance_settable_attr.py +102 -0
- atopile-0.3.7.dev0/test/libs/util/test_write_only_property.py +30 -0
- atopile-0.3.7.dev0/test/runpytest.sh +4 -0
- atopile-0.3.7.dev0/test/runtest.py +55 -0
- atopile-0.3.7.dev0/test/test_address.py +86 -0
- atopile-0.3.7.dev0/test/test_cli.py +38 -0
- atopile-0.3.7.dev0/test/test_config.py +45 -0
- atopile-0.3.7.dev0/test/test_datatypes.py +39 -0
- atopile-0.3.7.dev0/test/test_errors.py +85 -0
- atopile-0.3.7.dev0/test/test_parse_utils.py +92 -0
- atopile-0.3.7.dev0/test/test_regressions.py +130 -0
- atopile-0.3.7.dev0/test/test_telemetry.py +14 -0
- {atopile-0.3.0.dev0/tests → atopile-0.3.7.dev0/test}/test_version.py +4 -4
- atopile-0.3.7.dev0/tools/library/gen_F.py +147 -0
- atopile-0.3.7.dev0/tools/profile.py +123 -0
- atopile-0.3.7.dev0/uv.lock +2588 -0
- atopile-0.3.0.dev0/.github/workflows/ci.yml +0 -29
- atopile-0.3.0.dev0/.gitlab-ci.yml +0 -95
- atopile-0.3.0.dev0/PKG-INFO +0 -103
- atopile-0.3.0.dev0/README.md +0 -48
- atopile-0.3.0.dev0/dockerfiles/Dockerfile.ci +0 -7
- atopile-0.3.0.dev0/dockerfiles/Dockerfile.kicad +0 -34
- atopile-0.3.0.dev0/docs/ato_flow.drawio +0 -100
- atopile-0.3.0.dev0/docs/blog/posts/blog_post.md +0 -13
- atopile-0.3.0.dev0/docs/getting-started.md +0 -436
- atopile-0.3.0.dev0/docs/images/cli-outputs.png +0 -0
- atopile-0.3.0.dev0/docs/images/dev-container-question.png +0 -0
- atopile-0.3.0.dev0/docs/images/download-artifacts.png +0 -0
- atopile-0.3.0.dev0/docs/images/get-to-code-loading.png +0 -0
- atopile-0.3.0.dev0/docs/images/gitlab-pipline-artifacts.png +0 -0
- atopile-0.3.0.dev0/docs/index.md +0 -9
- atopile-0.3.0.dev0/docs/overrides/home.html +0 -112
- atopile-0.3.0.dev0/docs/package_fetcher.py +0 -80
- atopile-0.3.0.dev0/docs/readme_blank.md +0 -3
- atopile-0.3.0.dev0/mkdocs.yml +0 -28
- atopile-0.3.0.dev0/pyproject.toml +0 -119
- atopile-0.3.0.dev0/sandbox/README.md +0 -1
- atopile-0.3.0.dev0/sandbox/vdiv_model.py +0 -35
- atopile-0.3.0.dev0/src/atopile/address.py +0 -130
- atopile-0.3.0.dev0/src/atopile/bom.py +0 -175
- atopile-0.3.0.dev0/src/atopile/cli/build.py +0 -150
- atopile-0.3.0.dev0/src/atopile/cli/cli.py +0 -53
- atopile-0.3.0.dev0/src/atopile/cli/common.py +0 -161
- atopile-0.3.0.dev0/src/atopile/cli/create.py +0 -211
- atopile-0.3.0.dev0/src/atopile/cli/install.py +0 -227
- atopile-0.3.0.dev0/src/atopile/cli/rich_console.py +0 -4
- atopile-0.3.0.dev0/src/atopile/components.py +0 -358
- atopile-0.3.0.dev0/src/atopile/config.py +0 -241
- atopile-0.3.0.dev0/src/atopile/equations.py +0 -107
- atopile-0.3.0.dev0/src/atopile/errors.py +0 -360
- atopile-0.3.0.dev0/src/atopile/front_end.py +0 -1153
- atopile-0.3.0.dev0/src/atopile/generic_methods.py +0 -105
- atopile-0.3.0.dev0/src/atopile/instance_methods.py +0 -131
- atopile-0.3.0.dev0/src/atopile/kicad6.j2 +0 -65
- atopile-0.3.0.dev0/src/atopile/kicad6_datamodel.py +0 -142
- atopile-0.3.0.dev0/src/atopile/loop_soup.py +0 -135
- atopile-0.3.0.dev0/src/atopile/manufacturing_data.py +0 -143
- atopile-0.3.0.dev0/src/atopile/netlist.py +0 -176
- atopile-0.3.0.dev0/src/atopile/nets.py +0 -184
- atopile-0.3.0.dev0/src/atopile/parameters.py +0 -70
- atopile-0.3.0.dev0/src/atopile/parse_utils.py +0 -16
- atopile-0.3.0.dev0/src/atopile/parser/AtopileLexer.interp +0 -280
- atopile-0.3.0.dev0/src/atopile/parser/AtopileLexer.py +0 -695
- atopile-0.3.0.dev0/src/atopile/parser/AtopileLexerBase.py +0 -101
- atopile-0.3.0.dev0/src/atopile/parser/AtopileParser.g4 +0 -265
- atopile-0.3.0.dev0/src/atopile/parser/AtopileParser.interp +0 -202
- atopile-0.3.0.dev0/src/atopile/parser/AtopileParser.py +0 -2154
- atopile-0.3.0.dev0/src/atopile/parser/AtopileParserBase.py +0 -9
- atopile-0.3.0.dev0/src/atopile/parser/AtopileParserListener.py +0 -237
- atopile-0.3.0.dev0/src/atopile/parser/AtopileParserVisitor.py +0 -178
- atopile-0.3.0.dev0/src/vscode-atopile/.gitignore +0 -1
- atopile-0.3.0.dev0/src/vscode-atopile/.vscodeignore +0 -4
- atopile-0.3.0.dev0/src/vscode-atopile/CHANGELOG.md +0 -9
- atopile-0.3.0.dev0/src/vscode-atopile/LICENSE +0 -203
- atopile-0.3.0.dev0/src/vscode-atopile/README.md +0 -6
- atopile-0.3.0.dev0/src/vscode-atopile/package.json +0 -32
- atopile-0.3.0.dev0/tests/test_config.py +0 -9
- atopile-0.3.0.dev0/tests/test_datatypes.py +0 -125
- atopile-0.3.0.dev0/tests/test_errors.py +0 -34
- atopile-0.3.0.dev0/tests/test_generic_methods.py +0 -48
- atopile-0.3.0.dev0/tests/test_loop_soup.py +0 -120
- atopile-0.3.0.dev0/tests/test_test.py +0 -14
- /atopile-0.3.0.dev0/src/atopile/__init__.py → /atopile-0.3.7.dev0/.gitmodules +0 -0
- {atopile-0.3.0.dev0 → atopile-0.3.7.dev0}/dockerfiles/README.md +0 -0
- {atopile-0.3.0.dev0/docs → atopile-0.3.7.dev0/docs/assets}/images/code-loading.png +0 -0
- {atopile-0.3.0.dev0/docs → atopile-0.3.7.dev0/docs/assets}/images/file-import.png +0 -0
- {atopile-0.3.0.dev0/docs → atopile-0.3.7.dev0/docs/assets}/images/import-settings.png +0 -0
- {atopile-0.3.0.dev0/docs/assets → atopile-0.3.7.dev0/docs/assets/logo}/ato_logo_256x256.png +0 -0
- {atopile-0.3.0.dev0/docs/assets → atopile-0.3.7.dev0/docs/assets/logo}/ato_logo_32x32.png +0 -0
- {atopile-0.3.0.dev0 → atopile-0.3.7.dev0}/docs/blog/.authors.yml +0 -0
- {atopile-0.3.0.dev0 → atopile-0.3.7.dev0}/docs/blog/index.md +0 -0
- {atopile-0.3.0.dev0 → atopile-0.3.7.dev0}/docs/overrides/Inconsolata-Black.ttf +0 -0
- {atopile-0.3.0.dev0 → atopile-0.3.7.dev0}/docs/overrides/Inconsolata-Bold.ttf +0 -0
- {atopile-0.3.0.dev0 → atopile-0.3.7.dev0}/docs/overrides/Inconsolata-ExtraBold.ttf +0 -0
- {atopile-0.3.0.dev0 → atopile-0.3.7.dev0}/docs/overrides/Inconsolata-ExtraLight.ttf +0 -0
- {atopile-0.3.0.dev0 → atopile-0.3.7.dev0}/docs/overrides/Inconsolata-Light.ttf +0 -0
- {atopile-0.3.0.dev0 → atopile-0.3.7.dev0}/docs/overrides/Inconsolata-Medium.ttf +0 -0
- {atopile-0.3.0.dev0 → atopile-0.3.7.dev0}/docs/overrides/Inconsolata-Regular.ttf +0 -0
- {atopile-0.3.0.dev0 → atopile-0.3.7.dev0}/docs/overrides/Inconsolata-SemiBold.ttf +0 -0
- {atopile-0.3.0.dev0 → atopile-0.3.7.dev0}/docs/overrides/SpaceMono-Bold.ttf +0 -0
- {atopile-0.3.0.dev0 → atopile-0.3.7.dev0}/docs/overrides/SpaceMono-BoldItalic.ttf +0 -0
- {atopile-0.3.0.dev0 → atopile-0.3.7.dev0}/docs/overrides/SpaceMono-Italic.ttf +0 -0
- {atopile-0.3.0.dev0 → atopile-0.3.7.dev0}/docs/overrides/SpaceMono-Regular.ttf +0 -0
- {atopile-0.3.0.dev0/src/atopile/cli → atopile-0.3.7.dev0/src/atopile}/__init__.py +0 -0
- {atopile-0.3.0.dev0/src/atopile/parser → atopile-0.3.7.dev0/src/atopile/cli}/__init__.py +0 -0
- {atopile-0.3.0.dev0 → atopile-0.3.7.dev0}/src/atopile/parser/.gitignore +0 -0
- {atopile-0.3.0.dev0 → atopile-0.3.7.dev0}/src/vscode-atopile/ato_logo_256x256.png +0 -0
- {atopile-0.3.0.dev0 → atopile-0.3.7.dev0}/src/vscode-atopile/language-configuration.json +0 -0
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
# Migrate code style to Black
|
|
2
|
+
62b92558e887b97ac43e2feafa011cca094a8d68
|
|
3
|
+
# Add black as pre-commit hook and rerun
|
|
4
|
+
94fc4f83209d85eb6f7987a083a17a68a5acaedd
|
|
5
|
+
# isort & autoflake
|
|
6
|
+
406891587843ad51d856922cde2b8dc79c0c406a
|
|
7
|
+
# Faebryk merger
|
|
8
|
+
1129da0d727f3589d7d2ea3112aa94667fcb1488
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
uv.lock linguist-generated=true
|
|
2
|
+
|
|
3
|
+
*.kicad_* linguist-generated=true
|
|
4
|
+
*.step linguist-generated=true
|
|
5
|
+
*.wrl linguist-generated=true
|
|
6
|
+
*.dxf linguist-generated=true
|
|
7
|
+
*.svg linguist-generated=true
|
|
8
|
+
*.net linguist-generated=true
|
|
9
|
+
|
|
10
|
+
# Generated by ANTLR4
|
|
11
|
+
src/atopile/parser/AtoLexer.py linguist-generated=true
|
|
12
|
+
src/atopile/parser/AtoParser.interp linguist-generated=true
|
|
13
|
+
src/atopile/parser/AtoParser.tokens linguist-generated=true
|
|
14
|
+
src/atopile/parser/AtoParserListener.py linguist-generated=true
|
|
15
|
+
src/atopile/parser/AtoLexer.interp linguist-generated=true
|
|
16
|
+
src/atopile/parser/AtoLexer.tokens linguist-generated=true
|
|
17
|
+
src/atopile/parser/AtoParser.py linguist-generated=true
|
|
18
|
+
src/atopile/parser/AtoParserVisitor.py linguist-generated=true
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# Lines starting with '#' are comments.
|
|
2
|
+
# Each line is a file pattern followed by one or more owners.
|
|
3
|
+
|
|
4
|
+
# More details are here: https://help.github.com/articles/about-codeowners/
|
|
5
|
+
|
|
6
|
+
# The '*' pattern is global owners.
|
|
7
|
+
|
|
8
|
+
# Order is important. The last matching pattern has the most precedence.
|
|
9
|
+
# The folders are ordered as follows:
|
|
10
|
+
|
|
11
|
+
# In each subsection folders are ordered first by depth, then alphabetically.
|
|
12
|
+
# This should make it easy to add new rules without breaking existing ones.
|
|
13
|
+
|
|
14
|
+
# Global rule:
|
|
15
|
+
* @iopapamanoglou @mawildoer
|
|
16
|
+
|
|
17
|
+
# faebryk
|
|
18
|
+
src/faebryk @iopapamanoglou
|
|
19
|
+
|
|
20
|
+
# core
|
|
21
|
+
src/faebryk/core @iopapamanoglou
|
|
22
|
+
|
|
23
|
+
# stdlib
|
|
24
|
+
src/faebryk/library @napowderly
|
|
25
|
+
|
|
26
|
+
# picker
|
|
27
|
+
src/faebryk/libs/picker @sam-mellor
|
|
28
|
+
|
|
29
|
+
# ato dsl
|
|
30
|
+
src/atopile @mawildoer
|
|
31
|
+
|
|
32
|
+
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
name: 🐞 Bug Report
|
|
2
|
+
description: File a bug report
|
|
3
|
+
title: "<title>"
|
|
4
|
+
labels: ["🛠 goal: bug fix"]
|
|
5
|
+
body:
|
|
6
|
+
- type: markdown
|
|
7
|
+
attributes:
|
|
8
|
+
value: |
|
|
9
|
+
Thanks for taking the time to fill out this bug report! Please fill in the following form in detail.
|
|
10
|
+
- type: textarea
|
|
11
|
+
id: current_behaviour
|
|
12
|
+
attributes:
|
|
13
|
+
label: Current Behaviour
|
|
14
|
+
description: Describe what went wrong including the steps to reproduce this bug.
|
|
15
|
+
placeholder: Tell us what you see!
|
|
16
|
+
value: "An exeption occured at line 201 in faebryk/exporters/netlist/kicad/netlist.py when running samples/experiment.py"
|
|
17
|
+
validations:
|
|
18
|
+
required: true
|
|
19
|
+
- type: textarea
|
|
20
|
+
id: expected_behaviour
|
|
21
|
+
attributes:
|
|
22
|
+
label: Expected Behaviour
|
|
23
|
+
description: What did you expect to happen?
|
|
24
|
+
placeholder: Tell us what you see!
|
|
25
|
+
value: "The program exited with all checks \"ok\""
|
|
26
|
+
validations:
|
|
27
|
+
required: true
|
|
28
|
+
- type: textarea
|
|
29
|
+
id: possible_solution
|
|
30
|
+
attributes:
|
|
31
|
+
label: Possible Solution
|
|
32
|
+
description: What might be a solution to this bug?
|
|
33
|
+
placeholder: Tell us if you know a solution or have a pr!
|
|
34
|
+
value: "#pr number"
|
|
35
|
+
validations:
|
|
36
|
+
required: false
|
|
37
|
+
- type: input
|
|
38
|
+
id: version
|
|
39
|
+
attributes:
|
|
40
|
+
label: Version
|
|
41
|
+
description: What version/branch/pr of our software are you running?
|
|
42
|
+
placeholder: 1.0.0
|
|
43
|
+
validations:
|
|
44
|
+
required: true
|
|
45
|
+
- type: textarea
|
|
46
|
+
id: logs
|
|
47
|
+
attributes:
|
|
48
|
+
label: Relevant log output
|
|
49
|
+
description: Please copy and paste any relevant log output. This will be automatically formatted into code, so no need for backticks.
|
|
50
|
+
render: shell
|
|
51
|
+
validations:
|
|
52
|
+
required: false
|
|
53
|
+
- type: checkboxes
|
|
54
|
+
id: terms
|
|
55
|
+
attributes:
|
|
56
|
+
label: Code of Conduct
|
|
57
|
+
description: By submitting this issue, you agree to follow our [Code of Conduct](/atopile/atopile/blob/main/docs/CODE_OF_CONDUCT.md)
|
|
58
|
+
options:
|
|
59
|
+
- label: I agree to follow this project's Code of Conduct
|
|
60
|
+
required: true
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
name: 🔮 Feature Request
|
|
2
|
+
description: File a feature request
|
|
3
|
+
title: "<title>"
|
|
4
|
+
labels: ["⭐ goal: addition"]
|
|
5
|
+
body:
|
|
6
|
+
- type: markdown
|
|
7
|
+
attributes:
|
|
8
|
+
value: |
|
|
9
|
+
Thank you for sharing your amazing idea with us! Please fill in the following form in detail.
|
|
10
|
+
- type: textarea
|
|
11
|
+
id: feature
|
|
12
|
+
attributes:
|
|
13
|
+
label: Feature Request
|
|
14
|
+
description: Describe your great idea.
|
|
15
|
+
placeholder: Tell us all about it!
|
|
16
|
+
value: "Add an interactive method to connect components to eachother"
|
|
17
|
+
validations:
|
|
18
|
+
required: true
|
|
19
|
+
- type: checkboxes
|
|
20
|
+
id: terms
|
|
21
|
+
attributes:
|
|
22
|
+
label: Code of Conduct
|
|
23
|
+
description: By submitting this issue, you agree to follow our [Code of Conduct](/atopile/atopile/blob/main/docs/CODE_OF_CONDUCT.md)
|
|
24
|
+
options:
|
|
25
|
+
- label: I agree to follow this project's Code of Conduct
|
|
26
|
+
required: true
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
version: 2
|
|
2
|
+
updates:
|
|
3
|
+
- package-ecosystem: 'github-actions'
|
|
4
|
+
directory: "/"
|
|
5
|
+
schedule:
|
|
6
|
+
interval: weekly
|
|
7
|
+
labels:
|
|
8
|
+
- 'no-changelog'
|
|
9
|
+
|
|
10
|
+
- package-ecosystem: 'pip'
|
|
11
|
+
directory: /
|
|
12
|
+
schedule:
|
|
13
|
+
interval: daily
|
|
14
|
+
labels:
|
|
15
|
+
- 'no-changelog'
|
|
16
|
+
|
|
17
|
+
- package-ecosystem: 'pip'
|
|
18
|
+
directory: /src/vscode-atopile/
|
|
19
|
+
schedule:
|
|
20
|
+
interval: daily
|
|
21
|
+
labels:
|
|
22
|
+
- 'debt'
|
|
23
|
+
commit-message:
|
|
24
|
+
include: 'scope'
|
|
25
|
+
prefix: 'pip'
|
|
26
|
+
|
|
27
|
+
- package-ecosystem: 'npm'
|
|
28
|
+
directory: /src/vscode-atopile/
|
|
29
|
+
schedule:
|
|
30
|
+
interval: monthly
|
|
31
|
+
labels:
|
|
32
|
+
- 'no-changelog'
|
|
33
|
+
ignore:
|
|
34
|
+
- dependency-name: '@types/vscode'
|
|
35
|
+
- dependency-name: '@types/node'
|
|
36
|
+
- dependency-name: 'vscode-languageclient'
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# \<Prefix\>: \<Title\>
|
|
2
|
+
|
|
3
|
+
# Description
|
|
4
|
+
|
|
5
|
+
Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context. List any dependencies that are required for this change.
|
|
6
|
+
|
|
7
|
+
Fixes # (issue)
|
|
8
|
+
|
|
9
|
+
# Checklist
|
|
10
|
+
|
|
11
|
+
Please read and execute the following:
|
|
12
|
+
|
|
13
|
+
- [ ] My code follows the [coding guidelines](/faebryk/faebryk/blob/main/docs/CODING_GUIDELINES.md) of this project
|
|
14
|
+
- [ ] I have performed a self-review of my own code
|
|
15
|
+
- [ ] I have commented my code, particularly in hard-to-understand areas
|
|
16
|
+
- [ ] I have made corresponding changes to the documentation (if applicable)
|
|
17
|
+
- [ ] My changes generate no new warnings
|
|
18
|
+
- [ ] I have added tests that prove my fix is effective or that my feature works (if applicable)
|
|
19
|
+
- [ ] Any dependent changes have been merged and published in downstream modules
|
|
@@ -1,19 +1,49 @@
|
|
|
1
1
|
name: Continuous Delivery
|
|
2
2
|
|
|
3
3
|
on:
|
|
4
|
-
|
|
5
|
-
branches:
|
|
6
|
-
- 'main'
|
|
7
|
-
tags:
|
|
8
|
-
- 'v*'
|
|
4
|
+
workflow_dispatch:
|
|
9
5
|
pull_request:
|
|
6
|
+
push:
|
|
10
7
|
branches:
|
|
11
|
-
-
|
|
8
|
+
- main
|
|
12
9
|
|
|
13
10
|
jobs:
|
|
14
|
-
python:
|
|
11
|
+
python-build:
|
|
15
12
|
runs-on: ubuntu-latest
|
|
16
13
|
|
|
14
|
+
steps:
|
|
15
|
+
- uses: actions/checkout@v4
|
|
16
|
+
|
|
17
|
+
# Required due to a bug in the checkout action
|
|
18
|
+
# https://github.com/actions/checkout/issues/1471
|
|
19
|
+
- run: git fetch --prune --unshallow --tags
|
|
20
|
+
|
|
21
|
+
- name: Set up Python
|
|
22
|
+
uses: actions/setup-python@v5
|
|
23
|
+
with:
|
|
24
|
+
python-version-file: 'pyproject.toml'
|
|
25
|
+
|
|
26
|
+
- name: Install uv
|
|
27
|
+
uses: astral-sh/setup-uv@v4
|
|
28
|
+
with:
|
|
29
|
+
version: '0.5.5'
|
|
30
|
+
enable-cache: true
|
|
31
|
+
cache-dependency-glob: "uv.lock"
|
|
32
|
+
|
|
33
|
+
- name: Make python package
|
|
34
|
+
run: uv build
|
|
35
|
+
|
|
36
|
+
- name: Upload Python Artifact
|
|
37
|
+
uses: actions/upload-artifact@v4
|
|
38
|
+
with:
|
|
39
|
+
name: python-package
|
|
40
|
+
path: dist
|
|
41
|
+
|
|
42
|
+
python-publish:
|
|
43
|
+
runs-on: ubuntu-latest
|
|
44
|
+
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags')
|
|
45
|
+
needs: python-build
|
|
46
|
+
|
|
17
47
|
environment:
|
|
18
48
|
name: pypi
|
|
19
49
|
url: https://pypi.org/p/atopile/
|
|
@@ -25,46 +55,24 @@ jobs:
|
|
|
25
55
|
steps:
|
|
26
56
|
- uses: actions/checkout@v4
|
|
27
57
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
- run: git fetch --prune --unshallow --tags
|
|
31
|
-
|
|
32
|
-
-
|
|
33
|
-
name: Set up Python
|
|
34
|
-
uses: actions/setup-python@v2
|
|
35
|
-
with:
|
|
36
|
-
python-version: '3.11'
|
|
37
|
-
|
|
38
|
-
-
|
|
39
|
-
name: Make python package
|
|
40
|
-
run: |
|
|
41
|
-
pip install build twine
|
|
42
|
-
python -m build
|
|
43
|
-
|
|
44
|
-
-
|
|
45
|
-
name: Upload Python Artifact
|
|
46
|
-
uses: actions/upload-artifact@v2
|
|
58
|
+
- name: Download python-package
|
|
59
|
+
uses: actions/download-artifact@v4
|
|
47
60
|
with:
|
|
48
61
|
name: python-package
|
|
49
62
|
path: dist
|
|
50
63
|
|
|
51
|
-
-
|
|
52
|
-
|
|
53
|
-
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags')
|
|
54
|
-
uses: pypa/gh-action-pypi-publish@2f6f737ca5f74c637829c0f5c3acd0e29ea5e8bf
|
|
64
|
+
- name: Publish package distributions to PyPI
|
|
65
|
+
uses: pypa/gh-action-pypi-publish@v1
|
|
55
66
|
with:
|
|
56
67
|
skip-existing: true # Helpful while we're migrating
|
|
57
68
|
|
|
58
69
|
docker:
|
|
59
70
|
runs-on: ubuntu-latest
|
|
60
|
-
|
|
61
|
-
needs: python
|
|
71
|
+
needs: python-build
|
|
62
72
|
|
|
63
73
|
strategy:
|
|
64
74
|
matrix:
|
|
65
75
|
include:
|
|
66
|
-
- dockerfile: "Dockerfile.ci"
|
|
67
|
-
image: "atopile-ci"
|
|
68
76
|
- dockerfile: "Dockerfile.kicad"
|
|
69
77
|
image: "atopile-kicad"
|
|
70
78
|
|
|
@@ -77,57 +85,40 @@ jobs:
|
|
|
77
85
|
steps:
|
|
78
86
|
- uses: actions/checkout@v4
|
|
79
87
|
|
|
80
|
-
-
|
|
81
|
-
|
|
82
|
-
uses: actions/download-artifact@v2
|
|
88
|
+
- name: Download python-package
|
|
89
|
+
uses: actions/download-artifact@v4
|
|
83
90
|
with:
|
|
84
91
|
name: python-package
|
|
85
92
|
path: dist
|
|
86
93
|
|
|
87
|
-
-
|
|
88
|
-
name: Docker meta
|
|
94
|
+
- name: Docker meta
|
|
89
95
|
id: meta
|
|
90
96
|
uses: docker/metadata-action@v5
|
|
91
97
|
with:
|
|
92
98
|
images: |
|
|
93
99
|
ghcr.io/atopile/${{ matrix.image }}
|
|
100
|
+
# TODO: re-enable @latest tag once main is stable again (@v0.3)
|
|
101
|
+
flavor: |
|
|
102
|
+
latest=false
|
|
94
103
|
tags: |
|
|
95
104
|
type=ref,event=branch
|
|
96
105
|
type=ref,event=pr
|
|
97
106
|
type=semver,pattern={{version}}
|
|
98
107
|
type=semver,pattern={{major}}.{{minor}}
|
|
108
|
+
type=sha
|
|
99
109
|
|
|
100
|
-
-
|
|
101
|
-
|
|
102
|
-
uses: docker/login-action@65b78e6e13532edd9afa3aa52ac7964289d1a9c1
|
|
110
|
+
- name: Log in to the Container registry
|
|
111
|
+
uses: docker/login-action@0d4c9c5ea7693da7b068278f7b52bda2a190a446
|
|
103
112
|
with:
|
|
104
113
|
registry: ghcr.io
|
|
105
114
|
username: ${{ github.actor }}
|
|
106
115
|
password: ${{ secrets.GITHUB_TOKEN }}
|
|
107
116
|
|
|
108
|
-
-
|
|
109
|
-
|
|
110
|
-
uses: docker/build-push-action@v5
|
|
117
|
+
- name: Build and push
|
|
118
|
+
uses: docker/build-push-action@v6
|
|
111
119
|
with:
|
|
112
120
|
context: .
|
|
113
121
|
file: dockerfiles/${{ matrix.dockerfile }}
|
|
114
122
|
push: true
|
|
115
123
|
tags: ${{ steps.meta.outputs.tags }}
|
|
116
124
|
labels: ${{ steps.meta.outputs.labels }}
|
|
117
|
-
|
|
118
|
-
# vscode: TODO:
|
|
119
|
-
# runs-on: ubuntu-latest
|
|
120
|
-
# steps:
|
|
121
|
-
# - uses: actions/checkout@v4
|
|
122
|
-
|
|
123
|
-
# - uses: actions/setup-node@v1
|
|
124
|
-
# with:
|
|
125
|
-
# node-version: 20
|
|
126
|
-
|
|
127
|
-
# - run: npm ci
|
|
128
|
-
|
|
129
|
-
# - name: Publish to Visual Studio Marketplace
|
|
130
|
-
# uses: HaaLeo/publish-vscode-extension@v1
|
|
131
|
-
# with:
|
|
132
|
-
# pat: ${{ secrets.VS_MARKETPLACE_TOKEN }}
|
|
133
|
-
# registryUrl: https://marketplace.visualstudio.com
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
name: pre-commit
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
|
|
6
|
+
jobs:
|
|
7
|
+
pre-commit:
|
|
8
|
+
runs-on: ubuntu-latest
|
|
9
|
+
|
|
10
|
+
steps:
|
|
11
|
+
- uses: actions/checkout@v4
|
|
12
|
+
|
|
13
|
+
- uses: actions/setup-python@v5
|
|
14
|
+
with:
|
|
15
|
+
python-version-file: 'pyproject.toml'
|
|
16
|
+
|
|
17
|
+
- uses: pre-commit/action@v3.0.1
|
|
18
|
+
|
|
19
|
+
- name: Fail on diff after pre-commit is run
|
|
20
|
+
run: git diff --exit-code
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
name: pytest
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
|
|
6
|
+
jobs:
|
|
7
|
+
pytest:
|
|
8
|
+
runs-on: blacksmith-8vcpu-ubuntu-2204
|
|
9
|
+
steps:
|
|
10
|
+
- name: Checkout code
|
|
11
|
+
uses: actions/checkout@v4
|
|
12
|
+
|
|
13
|
+
# Required due to a bug in the checkout action
|
|
14
|
+
# https://github.com/actions/checkout/issues/1471
|
|
15
|
+
- run: git fetch --prune --unshallow --tags
|
|
16
|
+
|
|
17
|
+
- name: Install uv
|
|
18
|
+
uses: useblacksmith/setup-uv@v4
|
|
19
|
+
with:
|
|
20
|
+
version: 0.5.5
|
|
21
|
+
enable-cache: true
|
|
22
|
+
cache-dependency-glob: "uv.lock"
|
|
23
|
+
|
|
24
|
+
- name: "Set up Python"
|
|
25
|
+
uses: useblacksmith/setup-python@v6
|
|
26
|
+
with:
|
|
27
|
+
python-version-file: "pyproject.toml"
|
|
28
|
+
|
|
29
|
+
- name: Setup cmake
|
|
30
|
+
uses: jwlawson/actions-setup-cmake@v2
|
|
31
|
+
|
|
32
|
+
- name: Run pytest
|
|
33
|
+
id: pytest
|
|
34
|
+
continue-on-error: true
|
|
35
|
+
run: |
|
|
36
|
+
uv run --dev --no-editable --frozen pytest -m "not not_in_ci and not slow and not regression" --timeout=300
|
|
37
|
+
env:
|
|
38
|
+
COLUMNS: 150 # rich console width will be pulled from this
|
|
39
|
+
|
|
40
|
+
- name: Upload all test logs
|
|
41
|
+
if: steps.pytest.outcome == 'failure'
|
|
42
|
+
uses: actions/upload-artifact@v4
|
|
43
|
+
with:
|
|
44
|
+
name: test-logs
|
|
45
|
+
path: artifacts/**/*.log
|
|
46
|
+
if-no-files-found: warn
|
|
47
|
+
|
|
48
|
+
- name: Upload all test report
|
|
49
|
+
if: steps.pytest.outcome == 'failure'
|
|
50
|
+
uses: actions/upload-artifact@v4
|
|
51
|
+
with:
|
|
52
|
+
name: test-report
|
|
53
|
+
path: artifacts/test-report.html
|
|
54
|
+
|
|
55
|
+
- name: Check pytest status
|
|
56
|
+
if: steps.pytest.outcome == 'failure'
|
|
57
|
+
run: exit 1
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
name: regression
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [main] # Adjust this if your default branch has a different name
|
|
6
|
+
pull_request:
|
|
7
|
+
types: [opened, synchronize, reopened, labeled]
|
|
8
|
+
workflow_dispatch: # Add manual trigger capability
|
|
9
|
+
|
|
10
|
+
jobs:
|
|
11
|
+
regression:
|
|
12
|
+
runs-on: blacksmith-4vcpu-ubuntu-2204
|
|
13
|
+
if: ${{
|
|
14
|
+
(github.event_name == 'pull_request' && contains(github.event.pull_request.labels.*.name, 'regression-required')) ||
|
|
15
|
+
(github.event_name == 'push' || github.event_name == 'workflow_dispatch')
|
|
16
|
+
}}
|
|
17
|
+
steps:
|
|
18
|
+
# FIXME: remove this once we're done debugging
|
|
19
|
+
- run: echo "Event " ${{ github.event_name }}
|
|
20
|
+
- run: echo "Event labels " ${{ github.event.pull_request.labels }}
|
|
21
|
+
- run: echo "run for pull_request " ${{ (github.event_name == 'pull_request' && contains(github.event.pull_request.labels.*.name, 'regression-required')) }}
|
|
22
|
+
- run: echo "run else " ${{ (github.event_name == 'push' || github.event_name == 'workflow_dispatch') }}
|
|
23
|
+
|
|
24
|
+
- name: Checkout code
|
|
25
|
+
uses: actions/checkout@v4
|
|
26
|
+
|
|
27
|
+
# Required due to a bug in the checkout action
|
|
28
|
+
# https://github.com/actions/checkout/issues/1471
|
|
29
|
+
- run: git fetch --prune --unshallow --tags
|
|
30
|
+
|
|
31
|
+
- name: Install uv
|
|
32
|
+
uses: useblacksmith/setup-uv@v4
|
|
33
|
+
with:
|
|
34
|
+
version: 0.5.5
|
|
35
|
+
enable-cache: true
|
|
36
|
+
cache-dependency-glob: "uv.lock"
|
|
37
|
+
|
|
38
|
+
- name: "Set up Python"
|
|
39
|
+
uses: useblacksmith/setup-python@v6
|
|
40
|
+
with:
|
|
41
|
+
python-version-file: "pyproject.toml"
|
|
42
|
+
|
|
43
|
+
- name: Setup cmake
|
|
44
|
+
uses: jwlawson/actions-setup-cmake@v2
|
|
45
|
+
|
|
46
|
+
- name: Configure AWS Credentials
|
|
47
|
+
uses: aws-actions/configure-aws-credentials@v4
|
|
48
|
+
with:
|
|
49
|
+
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
|
50
|
+
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
|
51
|
+
aws-region: ${{ secrets.AWS_REGION }}
|
|
52
|
+
|
|
53
|
+
# TODO: remove dependency on global fp-lib-table
|
|
54
|
+
- name: Prepare test environment
|
|
55
|
+
run: |
|
|
56
|
+
mkdir -p ~/.config/kicad/8.0/
|
|
57
|
+
aws s3 cp "s3://${{ secrets.TEST_DATASET_BUCKET }}/kicad-8.0-fp-lib-table" ~/.config/kicad/8.0/fp-lib-table
|
|
58
|
+
|
|
59
|
+
mkdir -p /usr/share/kicad/
|
|
60
|
+
aws s3 cp "s3://${{ secrets.TEST_DATASET_BUCKET }}/kicad-8.0-footprints.tar.gz" - | tar -xz -C /usr/share/kicad/
|
|
61
|
+
|
|
62
|
+
- name: Run pytest
|
|
63
|
+
id: pytest
|
|
64
|
+
continue-on-error: true
|
|
65
|
+
# Regular tests are run as part of the pytest workflow
|
|
66
|
+
run: |
|
|
67
|
+
uv run --dev --no-editable --frozen pytest -m "not not_in_ci and regression" --timeout=900
|
|
68
|
+
env:
|
|
69
|
+
GH_TOKEN: ${{ github.token }}
|
|
70
|
+
PYTEST_HISTORY_EMAIL: ${{ vars.PYTEST_HISTORY_EMAIL }}
|
|
71
|
+
PYTEST_HISTORY_PASSWORD: ${{ secrets.PYTEST_HISTORY_PASSWORD }}
|
|
72
|
+
COLUMNS: 150 # rich console width will be pulled from this
|
|
73
|
+
|
|
74
|
+
- name: Upload all test artifacts
|
|
75
|
+
if: steps.pytest.outcome == 'failure'
|
|
76
|
+
uses: actions/upload-artifact@v4
|
|
77
|
+
with:
|
|
78
|
+
name: test-artifacts
|
|
79
|
+
path: artifacts/**
|
|
80
|
+
if-no-files-found: warn
|
|
81
|
+
|
|
82
|
+
# Upload the report as a separate artifact
|
|
83
|
+
# to make it easier to find since it's typically
|
|
84
|
+
# the first place we look for the failure
|
|
85
|
+
- name: Upload all test report
|
|
86
|
+
if: steps.pytest.outcome == 'failure'
|
|
87
|
+
uses: actions/upload-artifact@v4
|
|
88
|
+
with:
|
|
89
|
+
name: test-report
|
|
90
|
+
path: artifacts/test-report.html
|
|
91
|
+
|
|
92
|
+
- name: Check pytest status
|
|
93
|
+
if: steps.pytest.outcome == 'failure'
|
|
94
|
+
run: exit 1
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
name: Release VSCode Extension
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
tags:
|
|
6
|
+
- 'v[0-9]+.[0-9]+.[0-9]+'
|
|
7
|
+
workflow_dispatch:
|
|
8
|
+
inputs:
|
|
9
|
+
version:
|
|
10
|
+
description: 'Version to release'
|
|
11
|
+
required: true
|
|
12
|
+
type: string
|
|
13
|
+
|
|
14
|
+
jobs:
|
|
15
|
+
vsx-extension:
|
|
16
|
+
runs-on: ubuntu-latest
|
|
17
|
+
defaults:
|
|
18
|
+
run:
|
|
19
|
+
working-directory: src/vscode-atopile
|
|
20
|
+
steps:
|
|
21
|
+
- uses: actions/checkout@v4
|
|
22
|
+
|
|
23
|
+
- uses: actions/setup-node@v4
|
|
24
|
+
with:
|
|
25
|
+
node-version: 20
|
|
26
|
+
|
|
27
|
+
- run: npm ci
|
|
28
|
+
|
|
29
|
+
# Set the version in package.json from a workflow dispatch input
|
|
30
|
+
- run: npm version --no-git-tag-version ${{ inputs.version }}
|
|
31
|
+
if: github.event_name == 'workflow_dispatch'
|
|
32
|
+
# Otherwise use the tag name
|
|
33
|
+
- run: npm version --no-git-tag-version ${{ github.ref_name }}
|
|
34
|
+
if: github.event_name == 'push'
|
|
35
|
+
|
|
36
|
+
- name: Publish to VS Code Marketplace
|
|
37
|
+
# Skip duplicate here to allow manual triggering
|
|
38
|
+
run: npx vsce publish --skip-duplicate
|
|
39
|
+
env:
|
|
40
|
+
VSCE_PAT: ${{ secrets.VSCE_PAT }}
|
|
41
|
+
|
|
42
|
+
- name: Publish to Open VSX
|
|
43
|
+
run: npx ovsx publish --skip-duplicate
|
|
44
|
+
env:
|
|
45
|
+
OVSX_PAT: ${{ secrets.OVSX_PAT }}
|
|
@@ -10,20 +10,31 @@ jobs:
|
|
|
10
10
|
runs-on: ubuntu-latest
|
|
11
11
|
steps:
|
|
12
12
|
- uses: actions/checkout@v4
|
|
13
|
+
|
|
13
14
|
- name: Configure Git Credentials
|
|
14
15
|
run: |
|
|
15
16
|
git config user.name github-actions[bot]
|
|
16
17
|
git config user.email 41898282+github-actions[bot]@users.noreply.github.com
|
|
17
|
-
|
|
18
|
+
|
|
19
|
+
- name: Set up Python
|
|
20
|
+
uses: actions/setup-python@v5
|
|
18
21
|
with:
|
|
19
|
-
python-version:
|
|
20
|
-
|
|
21
|
-
-
|
|
22
|
+
python-version-file: 'pyproject.toml'
|
|
23
|
+
|
|
24
|
+
- name: Install uv
|
|
25
|
+
uses: astral-sh/setup-uv@v4
|
|
26
|
+
with:
|
|
27
|
+
version: '0.5.5'
|
|
28
|
+
enable-cache: true
|
|
29
|
+
cache-dependency-glob: "uv.lock"
|
|
30
|
+
|
|
31
|
+
- run: echo "cache_id=$(date --utc '+%V')" >> $GITHUB_ENV
|
|
32
|
+
|
|
33
|
+
- uses: actions/cache@v4
|
|
22
34
|
with:
|
|
23
35
|
key: mkdocs-material-${{ env.cache_id }}
|
|
24
36
|
path: .cache
|
|
25
37
|
restore-keys: |
|
|
26
38
|
mkdocs-material-
|
|
27
|
-
|
|
28
|
-
- run:
|
|
29
|
-
- run: mkdocs gh-deploy --force
|
|
39
|
+
|
|
40
|
+
- run: uv run --dev mkdocs gh-deploy --force
|