Skip to content

Commit 914c8cc

Browse files
committed
2 parents 96e1ee6 + 9d6e085 commit 914c8cc

37 files changed

+1505
-671
lines changed
Lines changed: 13 additions & 0 deletions
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

Lines changed: 29 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
# SPDX-FileCopyrightText: 2017 Scott Shawcroft, written for Adafruit Industries
2+
#
3+
# SPDX-License-Identifier: MIT
4+
15
name: Build CI
26

37
on: [pull_request, push]
@@ -18,10 +22,10 @@ jobs:
1822
awk -F '\/' '{ print tolower($2) }' |
1923
tr '_' '-'
2024
)
21-
- name: Set up Python 3.6
22-
uses: actions/setup-python@v1
25+
- name: Set up Python 3.x
26+
uses: actions/setup-python@v2
2327
with:
24-
python-version: 3.6
28+
python-version: "3.x"
2529
- name: Versions
2630
run: |
2731
python3 --version
@@ -38,17 +42,34 @@ jobs:
3842
# (e.g. - apt-get: gettext, etc; pip: circuitpython-build-tools, requirements.txt; etc.)
3943
run: |
4044
source actions-ci/install.sh
41-
- name: Pip install pylint, black, & Sphinx
45+
- name: Pip install Sphinx, pre-commit
4246
run: |
43-
pip install --force-reinstall pylint==1.9.2 black==19.10b0 Sphinx sphinx-rtd-theme
47+
pip install --force-reinstall Sphinx sphinx-rtd-theme pre-commit
4448
- name: Library version
4549
run: git describe --dirty --always --tags
46-
- name: PyLint
50+
- name: Pre-commit hooks
4751
run: |
48-
pylint $( find . -path './adafruit*.py' )
49-
([[ ! -d "examples" ]] || pylint --disable=missing-docstring,invalid-name,bad-whitespace $( find . -path "./examples/*.py" ))
52+
pre-commit run --all-files
5053
- name: Build assets
5154
run: circuitpython-build-bundles --filename_prefix ${{ steps.repo-name.outputs.repo-name }} --library_location .
55+
- name: Archive bundles
56+
uses: actions/upload-artifact@v2
57+
with:
58+
name: bundles
59+
path: ${{ github.workspace }}/bundles/
5260
- name: Build docs
5361
working-directory: docs
5462
run: sphinx-build -E -W -b html . _build/html
63+
- name: Check For setup.py
64+
id: need-pypi
65+
run: |
66+
echo ::set-output name=setup-py::$( find . -wholename './setup.py' )
67+
- name: Build Python package
68+
if: contains(steps.need-pypi.outputs.setup-py, 'setup.py')
69+
run: |
70+
pip install --upgrade setuptools wheel twine readme_renderer testresources
71+
python setup.py sdist
72+
python setup.py bdist_wheel --universal
73+
twine check dist/*
74+
- name: Setup problem matchers
75+
uses: adafruit/circuitpython-action-library-ci-problem-matchers@v1
Lines changed: 19 additions & 0 deletions
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.yml

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
# SPDX-FileCopyrightText: 2017 Scott Shawcroft, written for Adafruit Industries
2+
#
3+
# SPDX-License-Identifier: MIT
4+
15
name: Release Actions
26

37
on:
@@ -20,10 +24,10 @@ jobs:
2024
awk -F '\/' '{ print tolower($2) }' |
2125
tr '_' '-'
2226
)
23-
- name: Set up Python 3.6
24-
uses: actions/setup-python@v1
27+
- name: Set up Python 3.x
28+
uses: actions/setup-python@v2
2529
with:
26-
python-version: 3.6
30+
python-version: "3.x"
2731
- name: Versions
2832
run: |
2933
python3 --version
@@ -63,7 +67,7 @@ jobs:
6367
echo ::set-output name=setup-py::$( find . -wholename './setup.py' )
6468
- name: Set up Python
6569
if: contains(steps.need-pypi.outputs.setup-py, 'setup.py')
66-
uses: actions/setup-python@v1
70+
uses: actions/setup-python@v2
6771
with:
6872
python-version: '3.x'
6973
- name: Install dependencies

.gitignore

Lines changed: 42 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,47 @@
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
126
*.mpy
2-
.idea
27+
28+
# Python-specific files
329
__pycache__
4-
_build
530
*.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
639
.env
7-
bundles
40+
41+
# MacOS-specific files
842
*.DS_Store
9-
.eggs
10-
dist
11-
**/*.egg-info
43+
44+
# IDE-specific files
45+
.idea
46+
.vscode
47+
*~

.pre-commit-config.yaml

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
# SPDX-FileCopyrightText: 2020 Diego Elio Pettenò
2+
#
3+
# SPDX-License-Identifier: Unlicense
4+
5+
repos:
6+
- repo: https://github.com/python/black
7+
rev: 22.3.0
8+
hooks:
9+
- id: black
10+
- repo: https://github.com/fsfe/reuse-tool
11+
rev: v0.14.0
12+
hooks:
13+
- id: reuse
14+
- repo: https://github.com/pre-commit/pre-commit-hooks
15+
rev: v4.2.0
16+
hooks:
17+
- id: check-yaml
18+
- id: end-of-file-fixer
19+
- id: trailing-whitespace
20+
- repo: https://github.com/pycqa/pylint
21+
rev: v2.11.1
22+
hooks:
23+
- id: pylint
24+
name: pylint (library code)
25+
types: [python]
26+
args:
27+
- --disable=consider-using-f-string,duplicate-code
28+
exclude: "^(docs/|examples/|tests/|setup.py$)"
29+
- id: pylint
30+
name: pylint (example code)
31+
description: Run pylint rules on "examples/*.py" files
32+
types: [python]
33+
files: "^examples/"
34+
args:
35+
- --disable=missing-docstring,invalid-name,consider-using-f-string,duplicate-code
36+
- id: pylint
37+
name: pylint (test code)
38+
description: Run pylint rules on "tests/*.py" files
39+
types: [python]
40+
files: "^tests/"
41+
args:
42+
- --disable=missing-docstring,consider-using-f-string,duplicate-code

.pylintrc

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,19 @@
1+
# SPDX-FileCopyrightText: 2021 ladyada for Adafruit Industries
2+
#
3+
# SPDX-License-Identifier: Unlicense
4+
15
[MASTER]
26

37
# A comma-separated list of package or module names from where C extensions may
48
# be loaded. Extensions are loading into the active Python interpreter and may
59
# run arbitrary code
610
extension-pkg-whitelist=
711

8-
# Add files or directories to the blacklist. They should be base names, not
12+
# Add files or directories to the ignore-list. They should be base names, not
913
# paths.
1014
ignore=CVS
1115

12-
# Add files or directories matching the regex patterns to the blacklist. The
16+
# Add files or directories matching the regex patterns to the ignore-list. The
1317
# regex matches against base names, not paths.
1418
ignore-patterns=
1519

@@ -18,8 +22,7 @@ ignore-patterns=
1822
#init-hook=
1923

2024
# Use multiple processes to speed up Pylint.
21-
# jobs=1
22-
jobs=2
25+
jobs=1
2326

2427
# List of plugins (as comma separated values of python modules names) to load,
2528
# usually to register additional checkers.
@@ -52,7 +55,7 @@ confidence=
5255
# no Warning level messages displayed, use"--disable=all --enable=classes
5356
# --disable=W"
5457
# disable=import-error,print-statement,parameter-unpacking,unpacking-in-except,old-raise-syntax,backtick,long-suffix,old-ne-operator,old-octal-literal,import-star-module-level,raw-checker-failed,bad-inline-option,locally-disabled,locally-enabled,file-ignored,suppressed-message,useless-suppression,deprecated-pragma,apply-builtin,basestring-builtin,buffer-builtin,cmp-builtin,coerce-builtin,execfile-builtin,file-builtin,long-builtin,raw_input-builtin,reduce-builtin,standarderror-builtin,unicode-builtin,xrange-builtin,coerce-method,delslice-method,getslice-method,setslice-method,no-absolute-import,old-division,dict-iter-method,dict-view-method,next-method-called,metaclass-assignment,indexing-exception,raising-string,reload-builtin,oct-method,hex-method,nonzero-method,cmp-method,input-builtin,round-builtin,intern-builtin,unichr-builtin,map-builtin-not-iterating,zip-builtin-not-iterating,range-builtin-not-iterating,filter-builtin-not-iterating,using-cmp-argument,eq-without-hash,div-method,idiv-method,rdiv-method,exception-message-attribute,invalid-str-codec,sys-max-int,bad-python3-import,deprecated-string-function,deprecated-str-translate-call
55-
disable=print-statement,parameter-unpacking,unpacking-in-except,old-raise-syntax,backtick,long-suffix,old-ne-operator,old-octal-literal,import-star-module-level,raw-checker-failed,bad-inline-option,locally-disabled,locally-enabled,file-ignored,suppressed-message,useless-suppression,deprecated-pragma,apply-builtin,basestring-builtin,buffer-builtin,cmp-builtin,coerce-builtin,execfile-builtin,file-builtin,long-builtin,raw_input-builtin,reduce-builtin,standarderror-builtin,unicode-builtin,xrange-builtin,coerce-method,delslice-method,getslice-method,setslice-method,no-absolute-import,old-division,dict-iter-method,dict-view-method,next-method-called,metaclass-assignment,indexing-exception,raising-string,reload-builtin,oct-method,hex-method,nonzero-method,cmp-method,input-builtin,round-builtin,intern-builtin,unichr-builtin,map-builtin-not-iterating,zip-builtin-not-iterating,range-builtin-not-iterating,filter-builtin-not-iterating,using-cmp-argument,eq-without-hash,div-method,idiv-method,rdiv-method,exception-message-attribute,invalid-str-codec,sys-max-int,bad-python3-import,deprecated-string-function,deprecated-str-translate-call,import-error,bad-continuation
58+
disable=print-statement,parameter-unpacking,unpacking-in-except,old-raise-syntax,backtick,long-suffix,old-ne-operator,old-octal-literal,import-star-module-level,raw-checker-failed,bad-inline-option,locally-disabled,locally-enabled,file-ignored,suppressed-message,useless-suppression,deprecated-pragma,apply-builtin,basestring-builtin,buffer-builtin,cmp-builtin,coerce-builtin,execfile-builtin,file-builtin,long-builtin,raw_input-builtin,reduce-builtin,standarderror-builtin,unicode-builtin,xrange-builtin,coerce-method,delslice-method,getslice-method,setslice-method,no-absolute-import,old-division,dict-iter-method,dict-view-method,next-method-called,metaclass-assignment,indexing-exception,raising-string,reload-builtin,oct-method,hex-method,nonzero-method,cmp-method,input-builtin,round-builtin,intern-builtin,unichr-builtin,map-builtin-not-iterating,zip-builtin-not-iterating,range-builtin-not-iterating,filter-builtin-not-iterating,using-cmp-argument,eq-without-hash,div-method,idiv-method,rdiv-method,exception-message-attribute,invalid-str-codec,sys-max-int,bad-python3-import,deprecated-string-function,deprecated-str-translate-call,import-error,bad-continuation,unspecified-encoding
5659

5760
# Enable the message, report, category or checker with the given id(s). You can
5861
# either give multiple identifier separated by comma (,) or put this option
@@ -119,7 +122,7 @@ spelling-store-unknown-words=no
119122
[MISCELLANEOUS]
120123

121124
# List of note tags to take in consideration, separated by a comma.
122-
#notes=FIXME,XXX,TODO
125+
# notes=FIXME,XXX,TODO
123126
notes=FIXME,XXX
124127

125128

@@ -246,10 +249,10 @@ ignore-comments=yes
246249
ignore-docstrings=yes
247250

248251
# Ignore imports when computing similarities.
249-
ignore-imports=no
252+
ignore-imports=yes
250253

251254
# Minimum lines number of a similarity.
252-
min-similarity-lines=4
255+
min-similarity-lines=12
253256

254257

255258
[BASIC]
@@ -301,7 +304,7 @@ function-rgx=(([a-z][a-z0-9_]{2,30})|(_[a-z0-9_]*))$
301304

302305
# Good variable names which should always be accepted, separated by a comma
303306
# good-names=i,j,k,ex,Run,_
304-
good-names=r,g,b,i,j,k,n,x,y,z,ex,Run,_
307+
good-names=r,g,b,w,i,j,k,n,x,y,z,ex,ok,Run,_
305308

306309
# Include a hint for the correct naming format with invalid-name
307310
include-naming-hint=no
@@ -423,7 +426,7 @@ max-returns=6
423426
max-statements=50
424427

425428
# Minimum number of public methods for a class (see R0903).
426-
min-public-methods=2
429+
min-public-methods=1
427430

428431

429432
[EXCEPTIONS]

.readthedocs.yaml

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# SPDX-FileCopyrightText: 2021 ladyada 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+
build:
12+
os: ubuntu-20.04
13+
tools:
14+
python: "3"
15+
16+
python:
17+
install:
18+
- requirements: docs/requirements.txt
19+
- requirements: requirements.txt

.readthedocs.yml

Lines changed: 0 additions & 3 deletions
This file was deleted.

0 commit comments

Comments
 (0)