Skip to main content

A toolchain bringing the best of software development to the real-world!

Project description

atopile

Compiler for hardware - starting with PCBs

Usage

There's not a lot here, because it's over at http://docs.atopile.io/

Development

Prerequisites / Installation

You'll need >= python3.10 and pip (Use brew).

I'd strongly recommend developing within a venv

Since we'll be using this venv for both work within this tool directory and whatever projects you're using it on, I'd recommend creating something along the lines of an atopile-workspace or ato-ws directory somewhere, and then creating a venv in there. This means if you do something like a git clean -xdf to remove crud, you won't blow away your venv with it.

If you decide to follow this, you'll end up with something like this:

atopile-workspace
├── .venv --> your virtual environment
├── atopile --> this repo
├── atopile.code-workspace --> vscode workspace file
└── bike-light --> project using atopile

Clone this repo.

Wherever you stick the venv, you can create the venv with python3.11 -m venv .venv and then source .venv/bin/activate

For cli development (so practically all the time) : pip install -e ."[dev,test,docs]"

You'll need npm for front-end development (brew install node).

For any front-end development, you'll also need to install the front-end dependencies: npm install

CLI development

ANTLR (or more specifically Java) was a PITA to get working on my Mac... so, I didn't 🤷‍♂️, I just wrapped up ANTLR in a neat little dockerised bundle and make a script that calls out to it easily.

As of writing, that lives in mawildoer/antlr4, but hopefully we can get it into ANTLR mainline soon.

For now, clone the branch in the first link (eg. to your "repos" or "projects" directory), and then follow the instructions on how to build it.

You can build the grammer to python source with the following command (modified with the appropriate paths for you).

cd src/atopile/parser

/Users/mattwildoer/Projects/antlr4/docker-simplified/antlr4 -Dlanguage=Python3 -visitor AtopileParser.g4 AtopileLexer.g4

Front end development

To check out front-end changes live, run npm run serve in one terminal and make sure to run ato view on a project in another (to provide API access).

This will start the front-end server at localhost:1234 and the backend at localhost:2860. The front-end's development server (pracel) will proxy API requests to the backend.

Syntax highlighting is pretty nice...

You can download the extension from CI here:

download-artifacts

Then, from your PC code --install-extension path/to/atopile-*.vsix

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

atopile-0.0.22.tar.gz (2.8 MB view details)

Uploaded Source

Built Distribution

atopile-0.0.22-py3-none-any.whl (1.4 MB view details)

Uploaded Python 3

File details

Details for the file atopile-0.0.22.tar.gz.

File metadata

  • Download URL: atopile-0.0.22.tar.gz
  • Upload date:
  • Size: 2.8 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.18

File hashes

Hashes for atopile-0.0.22.tar.gz
Algorithm Hash digest
SHA256 7f600a99bfda4d6f3ec7e311f8980740de594adc67eb103737a14ad3f9e88fc7
MD5 1fe91ec185e90f0e625ce16eee6504ce
BLAKE2b-256 9ee6d204e8f994efc84fa1955c86746129d2d596ac25ab217a36f86ca87951ba

See more details on using hashes here.

File details

Details for the file atopile-0.0.22-py3-none-any.whl.

File metadata

  • Download URL: atopile-0.0.22-py3-none-any.whl
  • Upload date:
  • Size: 1.4 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.18

File hashes

Hashes for atopile-0.0.22-py3-none-any.whl
Algorithm Hash digest
SHA256 d973913c06d015eec8ffefae3d3e094bc55eb9b9da1566b84ae95431b90e6668
MD5 17152044d4132d5250cea69cf12014f9
BLAKE2b-256 3fa43ddfb02e159a08d25b303f884f8a374b4ef64348f21daa639451aaae07d8

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page