GitHub - adafruit/cookiecutter-adafruit-circuitpython: Cookiecutter template for Adafruit's CircuitPython libraries. (original) (raw)

Introduction

Discord

This cookiecutter creates a project structure for an Adafruit CircuitPython library.

See this Adafruit Learn Guide for an explanation of creating a CircuitPython library: Creating and sharing a CircuitPython library The section for using cookiecutter is here.

Note

The above Learn Guide is directed towards creating a library for the Community Bundle. For libraries meant for the Adafruit Bundle, contact the CircuitPython Helpers (@circuitpython helpers) on Discord or put in a new issue on the Adafruit_CircuitPython_Bundle GitHub repository.

Cookiecutter Usage

The first time

pip install cookiecutter~=2.1

cookiecutter gh:adafruit/cookiecutter-adafruit-circuitpython

Then, fill in the prompts and accomplish some post generation cleanup:

Prompts

Post Generation Cleanup

After generation, make sure to glance over the files to make sure they autogenerated as you expect (such as capitalization). There are a few places with .. todo:: that should also be taken care of. After adding or updating the information requested, make sure the .. todo:: text is removed. Like this:

Before Cleanup

.. todo:: Describe what the module does

After Cleanup

This library talks to the AM4Z-1NG sensor. Typical use is for robot friends.

Note

If you are not uploading the repository for Adafruit (i.e., the Community bundle), and you wish to use the Release feature on GitHub to upload libraries to PyPI, you will need to add your PyPI token to the repository secrets. Set a secret named PYPI_USERNAME to__token__ and a secret named PYPI_PASSWORD to your API token with the proper scope. Never share your API token anyone!

Windows Users

Due to the development nature of cookiecutter, there are some limitations when using with Windows.

Cookiecutter Installation

The Python enviornment can be tricky sometimes in Windows. Use this documentation page for steps and tips on Windows installation: Cookiecutter Installation - Windows

.py & /examples/_simpletest.py File Generation

Cookiecutter was developed for use in *nix/OSX enviornments. When implementing prompt based configuration for things like filenames, special characters were used for programmatic detection and formatting.

{% if cookiecutter.library_prefix %}{{ cookiecutter.library_prefix | lower }}_{% endif %}{{ cookiecutter.library_name | lower }}.py

As such, Windows will block the use of these special characters in filenames. So when cookiecutter pulls the Adafruit CircuitPython template, the .py and /examples/_simpletest.py files are not created. This adds an extra step. Simply copy an existing library's .py files (and structure if making a "package"), and change the prompted values (e.g. author name, library name, documentation information, etc).

Note

The above is from experience with using cookiecutter within a Windows native setup. This may not be applicable when using Windows Subsystem for Linux (WSL) or any *nix-For-Windows utilities.

We are always exploring ways to make things easier, so this workflow may change. Also, ideas and solutions are always welcome!