We actively encourage contributions. Feel free to open an issue to discuss changes or open a pull request if you want to make changes to our Github.
This project uses poetry >= 1.2 to manage it's dependencies. Please checkout the official instructions to setup poetry on your system.
$ git clone https://github.com/0xPlaygrounds/subgrounds && cd subgrounds
$ poetry install
$ poetry install --all-extras
We also use a
poetry plugin called
poethepoet to aid in managing our frequently run tasks.
$ poetry self add 'poethepoet[poetry_plugin]'
Alternative to using
If you wish not use
poe, you'll have to run the following and checkout the commands listed in the
This will run
<my-command> inside a virtual environment (
poetry shell will explictly keep you inside one until you run
$ poetry shell
$ poetry run <my-command>
pytest to ensure our code doesn't regress in behavior with fixes and new features. Make sure to continously run tests alongside writing new ones as you add more features to the codebase.
$ poe test
Black provides us an opinionated set of style conventions which helps keep the code consistent.
Ruff is a bleeding edge
flake8replacement which helps us lint our code efficiently and effectively.
This library also leverages python typing via the pyright project. We leverage the type-safety via the official Python VSCode Extension.
All PRs should be type-checked and adhere to the
ruff style conventions.
$ poe format
$ poe check