Skip to content

Commit ebba93e

Browse files
committed
initial files
0 parents  commit ebba93e

31 files changed

+1667
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
# SPDX-FileCopyrightText: 2021 Adafruit Industries
2+
#
3+
# SPDX-License-Identifier: MIT
4+
5+
Thank you for contributing! Before you submit a pull request, please read the following.
6+
7+
Make sure any changes you're submitting are in line with the CircuitPython Design Guide, available here: https://docs.circuitpython.org/en/latest/docs/design_guide.html
8+
9+
If your changes are to documentation, please verify that the documentation builds locally by following the steps found here: https://adafru.it/build-docs
10+
11+
Before submitting the pull request, make sure you've run Pylint and Black locally on your code. You can do this manually or using pre-commit. Instructions are available here: https://adafru.it/check-your-code
12+
13+
Please remove all of this text before submitting. Include an explanation or list of changes included in your PR, as well as, if applicable, a link to any related issues.

.github/workflows/build.yml

+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
# SPDX-FileCopyrightText: 2017 Scott Shawcroft, written for Adafruit Industries
2+
#
3+
# SPDX-License-Identifier: MIT
4+
5+
name: Build CI
6+
7+
on: [pull_request, push]
8+
9+
jobs:
10+
test:
11+
runs-on: ubuntu-latest
12+
steps:
13+
- name: Run Build CI workflow
14+
uses: adafruit/workflows-circuitpython-libs/build@main
+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# SPDX-FileCopyrightText: 2021 Scott Shawcroft for Adafruit Industries
2+
#
3+
# SPDX-License-Identifier: MIT
4+
5+
name: Failure help text
6+
7+
on:
8+
workflow_run:
9+
workflows: ["Build CI"]
10+
types:
11+
- completed
12+
13+
jobs:
14+
post-help:
15+
runs-on: ubuntu-latest
16+
if: ${{ github.event.workflow_run.conclusion == 'failure' && github.event.workflow_run.event == 'pull_request' }}
17+
steps:
18+
- name: Post comment to help
19+
uses: adafruit/circuitpython-action-library-ci-failed@v1

.github/workflows/release_gh.yml

+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# SPDX-FileCopyrightText: 2017 Scott Shawcroft, written for Adafruit Industries
2+
#
3+
# SPDX-License-Identifier: MIT
4+
5+
name: GitHub Release Actions
6+
7+
on:
8+
release:
9+
types: [published]
10+
11+
jobs:
12+
upload-release-assets:
13+
runs-on: ubuntu-latest
14+
steps:
15+
- name: Run GitHub Release CI workflow
16+
uses: adafruit/workflows-circuitpython-libs/release-gh@main
17+
with:
18+
github-token: ${{ secrets.GITHUB_TOKEN }}
19+
upload-url: ${{ github.event.release.upload_url }}

.github/workflows/release_pypi.yml

+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# SPDX-FileCopyrightText: 2017 Scott Shawcroft, written for Adafruit Industries
2+
#
3+
# SPDX-License-Identifier: MIT
4+
5+
name: PyPI Release Actions
6+
7+
on:
8+
release:
9+
types: [published]
10+
11+
jobs:
12+
upload-release-assets:
13+
runs-on: ubuntu-latest
14+
steps:
15+
- name: Run PyPI Release CI workflow
16+
uses: adafruit/workflows-circuitpython-libs/release-pypi@main
17+
with:
18+
pypi-username: ${{ secrets.pypi_username }}
19+
pypi-password: ${{ secrets.pypi_password }}

.gitignore

+48
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
# SPDX-FileCopyrightText: 2022 Kattni Rembor, written for Adafruit Industries
2+
#
3+
# SPDX-License-Identifier: MIT
4+
5+
# Do not include files and directories created by your personal work environment, such as the IDE
6+
# you use, except for those already listed here. Pull requests including changes to this file will
7+
# not be accepted.
8+
9+
# This .gitignore file contains rules for files generated by working with CircuitPython libraries,
10+
# including building Sphinx, testing with pip, and creating a virual environment, as well as the
11+
# MacOS and IDE-specific files generated by using MacOS in general, or the PyCharm or VSCode IDEs.
12+
13+
# If you find that there are files being generated on your machine that should not be included in
14+
# your git commit, you should create a .gitignore_global file on your computer to include the
15+
# files created by your personal setup. To do so, follow the two steps below.
16+
17+
# First, create a file called .gitignore_global somewhere convenient for you, and add rules for
18+
# the files you want to exclude from git commits.
19+
20+
# Second, configure Git to use the exclude file for all Git repositories by running the
21+
# following via commandline, replacing "path/to/your/" with the actual path to your newly created
22+
# .gitignore_global file:
23+
# git config --global core.excludesfile path/to/your/.gitignore_global
24+
25+
# CircuitPython-specific files
26+
*.mpy
27+
28+
# Python-specific files
29+
__pycache__
30+
*.pyc
31+
32+
# Sphinx build-specific files
33+
_build
34+
35+
# This file results from running `pip -e install .` in a local repository
36+
*.egg-info
37+
38+
# Virtual environment-specific files
39+
.env
40+
.venv
41+
42+
# MacOS-specific files
43+
*.DS_Store
44+
45+
# IDE-specific files
46+
.idea
47+
.vscode
48+
*~

.pre-commit-config.yaml

+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# SPDX-FileCopyrightText: 2024 Justin Myers for Adafruit Industries
2+
#
3+
# SPDX-License-Identifier: Unlicense
4+
5+
repos:
6+
- repo: https://github.com/pre-commit/pre-commit-hooks
7+
rev: v4.5.0
8+
hooks:
9+
- id: check-yaml
10+
- id: end-of-file-fixer
11+
- id: trailing-whitespace
12+
- repo: https://github.com/astral-sh/ruff-pre-commit
13+
rev: v0.3.4
14+
hooks:
15+
- id: ruff-format
16+
- id: ruff
17+
args: ["--fix"]
18+
- repo: https://github.com/fsfe/reuse-tool
19+
rev: v3.0.1
20+
hooks:
21+
- id: reuse

.readthedocs.yaml

+22
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
2+
#
3+
# SPDX-License-Identifier: Unlicense
4+
5+
# Read the Docs configuration file
6+
# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details
7+
8+
# Required
9+
version: 2
10+
11+
sphinx:
12+
configuration: docs/conf.py
13+
14+
build:
15+
os: ubuntu-lts-latest
16+
tools:
17+
python: "3"
18+
19+
python:
20+
install:
21+
- requirements: docs/requirements.txt
22+
- requirements: requirements.txt

CODE_OF_CONDUCT.md

+158
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,158 @@
1+
<!--
2+
SPDX-FileCopyrightText: 2014 Coraline Ada Ehmke
3+
SPDX-FileCopyrightText: 2019-2021 Kattni Rembor for Adafruit Industries
4+
5+
SPDX-License-Identifier: CC-BY-4.0
6+
-->
7+
# Adafruit Community Code of Conduct
8+
9+
## Our Pledge
10+
11+
In the interest of fostering an open and welcoming environment, we as
12+
contributors and leaders pledge to making participation in our project and
13+
our community a harassment-free experience for everyone, regardless of age, body
14+
size, disability, ethnicity, gender identity and expression, level or type of
15+
experience, education, socio-economic status, nationality, personal appearance,
16+
race, religion, or sexual identity and orientation.
17+
18+
## Our Standards
19+
20+
We are committed to providing a friendly, safe and welcoming environment for
21+
all.
22+
23+
Examples of behavior that contributes to creating and maintaining a positive environment
24+
include:
25+
26+
* Be kind and courteous to others
27+
* Using welcoming and inclusive language
28+
* Respecting the identity of every community member, including asking for their
29+
pronouns if uncertain
30+
* Being respectful of differing viewpoints and experiences
31+
* Collaborating with other community members
32+
* Providing desired assistance and knowledge to other community members
33+
* Being open to new information and ideas
34+
* Gracefully accepting constructive criticism
35+
* Focusing on what is best for the community
36+
* Showing empathy towards other community members
37+
38+
Examples of unacceptable behavior by community members include:
39+
40+
* The use of sexualized language or imagery and sexual attention or advances
41+
* The use of inappropriate images, including in a community member's avatar
42+
* The use of inappropriate language or profanity, including in a community member's nickname
43+
* Any spamming, flaming, baiting or other attention-stealing behavior
44+
* Excessive or unwelcome helping; answering outside the scope of the question
45+
asked
46+
* Discussion or promotion of activities or projects that intend or pose a risk of
47+
significant harm
48+
* Trolling, insulting/derogatory comments, and attacks of any nature (including,
49+
but not limited to, personal or political attacks)
50+
* Promoting or spreading disinformation, lies, or conspiracy theories against
51+
a person, group, organisation, project, or community
52+
* Public or private harassment
53+
* Publishing others' private information, such as a physical or electronic
54+
address, without explicit permission
55+
* Engaging in behavior that creates an unwelcoming or uninclusive environment
56+
* Other conduct which could reasonably be considered inappropriate
57+
58+
The Adafruit Community welcomes everyone and strives to create a safe space for all. It is built
59+
around sharing and contributing to technology. We encourage discussing your thoughts, experiences,
60+
and feelings within the scope of the community. However, there are topics that can sometimes stray
61+
from that scope, and can lead to hurting others and create an unwelcoming, uninclusive environment.
62+
63+
Examples of discussion topics that have been known to stray outside the scope of the Adafruit
64+
Community include, but are not limited to:
65+
66+
* Discussions regarding religion and related topics
67+
* Discussions regarding politics and related topics
68+
69+
The goal of the standards and moderation guidelines outlined here is to build
70+
and maintain a respectful community. We ask that you don’t just aim to be
71+
"technically unimpeachable", but rather try to be your best self.
72+
73+
We value many things beyond technical expertise, including collaboration and
74+
supporting others within our community. Providing a positive experience for
75+
other community members can have a much more significant impact than simply
76+
providing the correct answer.
77+
78+
## Our Responsibilities
79+
80+
Project leaders are responsible for clarifying the standards of acceptable
81+
behavior and are expected to take appropriate and fair corrective action in
82+
response to any instances of unacceptable behavior.
83+
84+
Project leaders have the right and responsibility to remove, edit, or
85+
reject messages, comments, commits, code, issues, and other contributions
86+
that are not aligned to this Code of Conduct, or to ban temporarily or
87+
permanently any community member for other behaviors that they deem
88+
inappropriate, threatening, offensive, or harmful.
89+
90+
## Moderation
91+
92+
Instances of behaviors that violate the Adafruit Community Code of Conduct
93+
may be reported by any member of the community. Community members are
94+
encouraged to report these situations, including situations they witness
95+
involving other community members.
96+
97+
You may report in the following ways:
98+
99+
In any situation, you may email <support@adafruit.com>.
100+
101+
On the Adafruit Discord, you may send an open message from any channel
102+
to all Community Moderators by tagging @community moderators. You may
103+
also send an open message from the #help-with-community channel, or a
104+
direct message to any Community Moderator.
105+
106+
The source of email and direct message reports will be kept confidential.
107+
108+
In situations on Discord where the issue is particularly offensive, possibly
109+
illegal, requires immediate action, or violates the Discord terms of service,
110+
you should also report the message directly to [Discord](https://discord.com/safety).
111+
112+
These are the steps for upholding our community’s standards of conduct.
113+
114+
1. Any member of the community may report any situation that violates the
115+
Adafruit Community Code of Conduct. All reports will be reviewed and
116+
investigated.
117+
2. If the behavior is a severe violation, the community member who
118+
committed the violation may be banned immediately, without warning.
119+
3. Otherwise, moderators will first respond to such behavior with a warning.
120+
4. Moderators follow a soft "three strikes" policy - the community member may
121+
be given another chance, if they are receptive to the warning and change their
122+
behavior.
123+
5. If the community member is unreceptive or unreasonable when warned by a
124+
moderator, or the warning goes unheeded, they may be banned for a first or
125+
second offense. Repeated offenses will result in the community member being
126+
banned.
127+
6. Disciplinary actions (warnings, bans, etc) for Code of Conduct violations apply
128+
to the platform where the violation occurred. However, depending on the severity
129+
of the violation, the disciplinary action may be applied across Adafruit's other
130+
community platforms. For example, a severe violation on the Adafruit Discord
131+
server may result in a ban on not only the Adafruit Discord server, but also on
132+
the Adafruit GitHub organisation, Adafruit Forums, Adafruit Twitter, etc.
133+
134+
## Scope
135+
136+
This Code of Conduct and the enforcement policies listed above apply to all
137+
Adafruit Community venues. This includes but is not limited to any community
138+
spaces (both public and private), the entire Adafruit Discord server, and
139+
Adafruit GitHub repositories. Examples of Adafruit Community spaces include
140+
but are not limited to meet-ups, audio chats on the Adafruit Discord, or
141+
interaction at a conference.
142+
143+
This Code of Conduct applies both within project spaces and in public spaces
144+
when an individual is representing the project or its community. As a community
145+
member, you are representing our community, and are expected to behave
146+
accordingly.
147+
148+
## Attribution
149+
150+
This Code of Conduct is adapted from the [Contributor Covenant](https://www.contributor-covenant.org/),
151+
version 1.4, available on [contributor-covenant.org](https://www.contributor-covenant.org/version/1/4/code-of-conduct.html),
152+
and the [Rust Code of Conduct](https://www.rust-lang.org/en-US/conduct.html).
153+
154+
For other projects adopting the Adafruit Community Code of
155+
Conduct, please contact the maintainers of those projects for enforcement.
156+
If you wish to use this code of conduct for your own project, consider
157+
explicitly mentioning your moderation policy or making a copy with your
158+
own moderation policy so as to avoid confusion.

LICENSE

+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
The MIT License (MIT)
2+
3+
Copyright (c) 2025 Tim Cocks for Adafruit Industries
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.

0 commit comments

Comments
 (0)