diff --git a/.github/PULL_REQUEST_TEMPLATE/adafruit_circuitpython_pr.md b/.github/PULL_REQUEST_TEMPLATE/adafruit_circuitpython_pr.md
new file mode 100644
index 0000000..8de294e
--- /dev/null
+++ b/.github/PULL_REQUEST_TEMPLATE/adafruit_circuitpython_pr.md
@@ -0,0 +1,13 @@
+# SPDX-FileCopyrightText: 2021 Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
+
+Thank you for contributing! Before you submit a pull request, please read the following.
+
+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
+
+If your changes are to documentation, please verify that the documentation builds locally by following the steps found here: https://adafru.it/build-docs
+
+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
+
+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.
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
new file mode 100644
index 0000000..041a337
--- /dev/null
+++ b/.github/workflows/build.yml
@@ -0,0 +1,14 @@
+# SPDX-FileCopyrightText: 2017 Scott Shawcroft, written for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
+
+name: Build CI
+
+on: [pull_request, push]
+
+jobs:
+ test:
+ runs-on: ubuntu-latest
+ steps:
+ - name: Run Build CI workflow
+ uses: adafruit/workflows-circuitpython-libs/build@main
diff --git a/.github/workflows/failure-help-text.yml b/.github/workflows/failure-help-text.yml
new file mode 100644
index 0000000..0b1194f
--- /dev/null
+++ b/.github/workflows/failure-help-text.yml
@@ -0,0 +1,19 @@
+# SPDX-FileCopyrightText: 2021 Scott Shawcroft for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
+
+name: Failure help text
+
+on:
+ workflow_run:
+ workflows: ["Build CI"]
+ types:
+ - completed
+
+jobs:
+ post-help:
+ runs-on: ubuntu-latest
+ if: ${{ github.event.workflow_run.conclusion == 'failure' && github.event.workflow_run.event == 'pull_request' }}
+ steps:
+ - name: Post comment to help
+ uses: adafruit/circuitpython-action-library-ci-failed@v1
diff --git a/.github/workflows/release_gh.yml b/.github/workflows/release_gh.yml
new file mode 100644
index 0000000..5675042
--- /dev/null
+++ b/.github/workflows/release_gh.yml
@@ -0,0 +1,23 @@
+# SPDX-FileCopyrightText: 2017 Scott Shawcroft, written for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
+
+name: GitHub Release Actions
+
+on:
+ release:
+ types: [published]
+
+jobs:
+ upload-release-assets:
+ runs-on: ubuntu-latest
+ steps:
+ - name: Run GitHub Release CI workflow
+ uses: adafruit/workflows-circuitpython-libs/release-gh@main
+ with:
+ github-token: ${{ secrets.GITHUB_TOKEN }}
+ upload-url: ${{ github.event.release.upload_url }}
+ # TODO: If you're creating a package (library is a folder), add this
+ # argument along with the prefix (or full name) of the package folder
+ # so the MPY bundles are built correctly:s
+ # package-prefix: displayio_gauge
diff --git a/.github/workflows/release_pypi.yml b/.github/workflows/release_pypi.yml
new file mode 100644
index 0000000..65775b7
--- /dev/null
+++ b/.github/workflows/release_pypi.yml
@@ -0,0 +1,19 @@
+# SPDX-FileCopyrightText: 2017 Scott Shawcroft, written for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
+
+name: PyPI Release Actions
+
+on:
+ release:
+ types: [published]
+
+jobs:
+ upload-release-assets:
+ runs-on: ubuntu-latest
+ steps:
+ - name: Run PyPI Release CI workflow
+ uses: adafruit/workflows-circuitpython-libs/release-pypi@main
+ with:
+ pypi-username: ${{ secrets.pypi_username }}
+ pypi-password: ${{ secrets.pypi_password }}
diff --git a/.gitignore b/.gitignore
index 2c6ddfd..db3d538 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,18 +1,48 @@
-# SPDX-FileCopyrightText: 2017 Scott Shawcroft, written for Adafruit Industries
+# SPDX-FileCopyrightText: 2022 Kattni Rembor, written for Adafruit Industries
#
-# SPDX-License-Identifier: Unlicense
+# SPDX-License-Identifier: MIT
+# Do not include files and directories created by your personal work environment, such as the IDE
+# you use, except for those already listed here. Pull requests including changes to this file will
+# not be accepted.
+
+# This .gitignore file contains rules for files generated by working with CircuitPython libraries,
+# including building Sphinx, testing with pip, and creating a virual environment, as well as the
+# MacOS and IDE-specific files generated by using MacOS in general, or the PyCharm or VSCode IDEs.
+
+# If you find that there are files being generated on your machine that should not be included in
+# your git commit, you should create a .gitignore_global file on your computer to include the
+# files created by your personal setup. To do so, follow the two steps below.
+
+# First, create a file called .gitignore_global somewhere convenient for you, and add rules for
+# the files you want to exclude from git commits.
+
+# Second, configure Git to use the exclude file for all Git repositories by running the
+# following via commandline, replacing "path/to/your/" with the actual path to your newly created
+# .gitignore_global file:
+# git config --global core.excludesfile path/to/your/.gitignore_global
+
+# CircuitPython-specific files
*.mpy
-.idea
+
+# Python-specific files
__pycache__
-_build
*.pyc
+
+# Sphinx build-specific files
+_build
+
+# This file results from running `pip -e install .` in a local repository
+*.egg-info
+
+# Virtual environment-specific files
.env
-.python-version
-build*/
-bundles
+.venv
+
+# MacOS-specific files
*.DS_Store
-.eggs
-dist
-**/*.egg-info
+
+# IDE-specific files
+.idea
.vscode
+*~
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index 7e02117..70ade69 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -3,38 +3,40 @@
# SPDX-License-Identifier: Unlicense
repos:
-- repo: https://github.com/python/black
- rev: 20.8b1
+ - repo: https://github.com/python/black
+ rev: 23.3.0
hooks:
- - id: black
-- repo: https://github.com/fsfe/reuse-tool
- rev: v0.12.1
+ - id: black
+ - repo: https://github.com/fsfe/reuse-tool
+ rev: v1.1.2
hooks:
- - id: reuse
-- repo: https://github.com/pre-commit/pre-commit-hooks
- rev: v2.3.0
+ - id: reuse
+ - repo: https://github.com/pre-commit/pre-commit-hooks
+ rev: v4.4.0
hooks:
- - id: check-yaml
- - id: end-of-file-fixer
- - id: trailing-whitespace
-- repo: https://github.com/pycqa/pylint
- rev: pylint-2.7.1
+ - id: check-yaml
+ - id: end-of-file-fixer
+ - id: trailing-whitespace
+ - repo: https://github.com/pycqa/pylint
+ rev: v2.17.4
hooks:
- - id: pylint
+ - id: pylint
name: pylint (library code)
types: [python]
+ args:
+ - --disable=consider-using-f-string
exclude: "^(docs/|examples/|tests/|setup.py$)"
-- repo: local
- hooks:
- - id: pylint_examples
- name: pylint (examples code)
+ - id: pylint
+ name: pylint (example code)
description: Run pylint rules on "examples/*.py" files
- entry: /usr/bin/env bash -c
- args: ['([[ ! -d "examples" ]] || for example in $(find . -path "./examples/*.py"); do pylint --disable=missing-docstring,invalid-name $example; done)']
- language: system
- - id: pylint_tests
- name: pylint (tests code)
+ types: [python]
+ files: "^examples/"
+ args:
+ - --disable=missing-docstring,invalid-name,consider-using-f-string,duplicate-code
+ - id: pylint
+ name: pylint (test code)
description: Run pylint rules on "tests/*.py" files
- entry: /usr/bin/env bash -c
- args: ['([[ ! -d "tests" ]] || for test in $(find . -path "./tests/*.py"); do pylint --disable=missing-docstring $test; done)']
- language: system
+ types: [python]
+ files: "^tests/"
+ args:
+ - --disable=missing-docstring,consider-using-f-string,duplicate-code
diff --git a/.pylintrc b/.pylintrc
index 79bcfb7..f945e92 100644
--- a/.pylintrc
+++ b/.pylintrc
@@ -26,7 +26,7 @@ jobs=1
# List of plugins (as comma separated values of python modules names) to load,
# usually to register additional checkers.
-load-plugins=
+load-plugins=pylint.extensions.no_self_use
# Pickle collected data for later comparisons.
persistent=yes
@@ -54,8 +54,8 @@ confidence=
# --enable=similarities". If you want to run only the classes checker, but have
# no Warning level messages displayed, use"--disable=all --enable=classes
# --disable=W"
-# 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
-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,pointless-string-statement
+# disable=import-error,raw-checker-failed,bad-inline-option,locally-disabled,file-ignored,suppressed-message,useless-suppression,deprecated-pragma,deprecated-str-translate-call
+disable=raw-checker-failed,bad-inline-option,locally-disabled,file-ignored,suppressed-message,useless-suppression,deprecated-pragma,import-error,pointless-string-statement,unspecified-encoding
# Enable the message, report, category or checker with the given id(s). You can
# either give multiple identifier separated by comma (,) or put this option
@@ -225,12 +225,6 @@ max-line-length=100
# Maximum number of lines in a module
max-module-lines=1000
-# List of optional constructs for which whitespace checking is disabled. `dict-
-# separator` is used to allow tabulation in dicts, etc.: {1 : 1,\n222: 2}.
-# `trailing-comma` allows a space between comma and closing bracket: (a, ).
-# `empty-line` allows space-only lines.
-no-space-check=trailing-comma,dict-separator
-
# Allow the body of a class to be on the same line as the declaration if body
# contains single statement.
single-line-class-stmt=no
@@ -257,38 +251,22 @@ min-similarity-lines=12
[BASIC]
-# Naming hint for argument names
-argument-name-hint=(([a-z][a-z0-9_]{2,30})|(_[a-z0-9_]*))$
-
# Regular expression matching correct argument names
argument-rgx=(([a-z][a-z0-9_]{2,30})|(_[a-z0-9_]*))$
-# Naming hint for attribute names
-attr-name-hint=(([a-z][a-z0-9_]{2,30})|(_[a-z0-9_]*))$
-
# Regular expression matching correct attribute names
attr-rgx=(([a-z][a-z0-9_]{2,30})|(_[a-z0-9_]*))$
# Bad variable names which should always be refused, separated by a comma
bad-names=foo,bar,baz,toto,tutu,tata
-# Naming hint for class attribute names
-class-attribute-name-hint=([A-Za-z_][A-Za-z0-9_]{2,30}|(__.*__))$
-
# Regular expression matching correct class attribute names
class-attribute-rgx=([A-Za-z_][A-Za-z0-9_]{2,30}|(__.*__))$
-# Naming hint for class names
-# class-name-hint=[A-Z_][a-zA-Z0-9]+$
-class-name-hint=[A-Z_][a-zA-Z0-9_]+$
-
# Regular expression matching correct class names
# class-rgx=[A-Z_][a-zA-Z0-9]+$
class-rgx=[A-Z_][a-zA-Z0-9_]+$
-# Naming hint for constant names
-const-name-hint=(([A-Z_][A-Z0-9_]*)|(__.*__))$
-
# Regular expression matching correct constant names
const-rgx=(([A-Z_][A-Z0-9_]*)|(__.*__))$
@@ -296,9 +274,6 @@ const-rgx=(([A-Z_][A-Z0-9_]*)|(__.*__))$
# ones are exempt.
docstring-min-length=-1
-# Naming hint for function names
-function-name-hint=(([a-z][a-z0-9_]{2,30})|(_[a-z0-9_]*))$
-
# Regular expression matching correct function names
function-rgx=(([a-z][a-z0-9_]{2,30})|(_[a-z0-9_]*))$
@@ -309,21 +284,12 @@ good-names=r,g,b,w,i,j,k,n,x,y,z,ex,ok,Run,_
# Include a hint for the correct naming format with invalid-name
include-naming-hint=no
-# Naming hint for inline iteration names
-inlinevar-name-hint=[A-Za-z_][A-Za-z0-9_]*$
-
# Regular expression matching correct inline iteration names
inlinevar-rgx=[A-Za-z_][A-Za-z0-9_]*$
-# Naming hint for method names
-method-name-hint=(([a-z][a-z0-9_]{2,30})|(_[a-z0-9_]*))$
-
# Regular expression matching correct method names
method-rgx=(([a-z][a-z0-9_]{2,30})|(_[a-z0-9_]*))$
-# Naming hint for module names
-module-name-hint=(([a-z_][a-z0-9_]*)|([A-Z][a-zA-Z0-9]+))$
-
# Regular expression matching correct module names
module-rgx=(([a-z_][a-z0-9_]*)|([A-Z][a-zA-Z0-9]+))$
@@ -339,9 +305,6 @@ no-docstring-rgx=^_
# to this list to register other decorators that produce valid properties.
property-classes=abc.abstractproperty
-# Naming hint for variable names
-variable-name-hint=(([a-z][a-z0-9_]{2,30})|(_[a-z0-9_]*))$
-
# Regular expression matching correct variable names
variable-rgx=(([a-z][a-z0-9_]{2,30})|(_[a-z0-9_]*))$
@@ -433,4 +396,4 @@ min-public-methods=1
# Exceptions that will emit a warning when being caught. Defaults to
# "Exception"
-overgeneral-exceptions=Exception
+overgeneral-exceptions=builtins.Exception
diff --git a/.readthedocs.yaml b/.readthedocs.yaml
new file mode 100644
index 0000000..b79ec5b
--- /dev/null
+++ b/.readthedocs.yaml
@@ -0,0 +1,19 @@
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: Unlicense
+
+# Read the Docs configuration file
+# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details
+
+# Required
+version: 2
+
+build:
+ os: ubuntu-20.04
+ tools:
+ python: "3"
+
+python:
+ install:
+ - requirements: docs/requirements.txt
+ - requirements: requirements.txt
diff --git a/README.rst b/README.rst
index 62012af..53a1fb7 100644
--- a/README.rst
+++ b/README.rst
@@ -2,11 +2,12 @@ Introduction
============
-.. image:: https://readthedocs.org/projects/circuitpython-displayio_gauge/badge/?version=latest
- :target: https://circuitpython-displayio_gauge.readthedocs.io/
+.. image:: https://readthedocs.org/projects/circuitpython-displayio-gauge/badge/?version=latest
+ :target: https://circuitpython-displayio-gauge.readthedocs.io/
:alt: Documentation Status
+
.. image:: https://img.shields.io/discord/327254708534116352.svg
:target: https://adafru.it/discord
:alt: Discord
@@ -21,7 +22,7 @@ Introduction
:target: https://github.com/psf/black
:alt: Code Style: Black
-Displayio widget that creates circular gauges that can have their fill value set dynamically.
+A circular gauge that can be filled to a certain value. The origin is set using ``x`` and ``y`` coordinates relative to the center of the gauge.
Dependencies
@@ -38,13 +39,9 @@ or individual libraries can be installed using
Installing from PyPI
=====================
-.. note:: This library is not available on PyPI yet. Install documentation is included
- as a standard element. Stay tuned for PyPI availability!
-
-.. todo:: Remove the above note if PyPI version is/will be available at time of release.
On supported GNU/Linux systems like the Raspberry Pi, you can install the driver locally `from
-PyPI `_.
+PyPI `_.
To install for current user:
.. code-block:: shell
@@ -62,12 +59,10 @@ To install in a virtual environment in your current project:
.. code-block:: shell
mkdir project-name && cd project-name
- python3 -m venv .env
+ python3 -m venv .venv
source .env/bin/activate
pip3 install circuitpython-displayio-gauge
-
-
Installing to a Connected CircuitPython Device with Circup
==========================================================
@@ -94,8 +89,13 @@ Or the following command to update an existing version:
Usage Example
=============
-.. todo:: Add a quick, simple example. It and other examples should live in the
-examples folder and be included in docs/examples.rst.
+
+Documentation
+=============
+API documentation for this library can be found on `Read the Docs `_.
+
+For information on building library documentation, please check out
+`this guide `_.
Contributing
============
@@ -103,9 +103,3 @@ Contributing
Contributions are welcome! Please read our `Code of Conduct
`_
before contributing to help this project stay welcoming.
-
-Documentation
-=============
-
-For information on building library documentation, please check out
-`this guide `_.
diff --git a/displayio_gauge.py b/displayio_gauge.py
index b5d34e3..f9efd2e 100644
--- a/displayio_gauge.py
+++ b/displayio_gauge.py
@@ -52,6 +52,8 @@ class Gauge(displayio.TileGrid):
"""
+ # pylint: disable=invalid-name, too-many-arguments
+
# The dial is a subclass of TileGrid.
def __init__(
@@ -65,7 +67,6 @@ def __init__(
foreground_color=0x00FF00,
background_color=0x00000,
):
-
self.xcenter = x
self.ycenter = y
self.radius = radius
@@ -241,7 +242,7 @@ def _draw_regress(self):
)
# Draw end line for level value
- if self.level != 100 and self.level != 0: # @ 100%, no need to draw end line
+ if self.level not in (100, 0): # @ 100%, no need to draw end line
bitmaptools.draw_line(self._bitmap, xs, ys, xe, ye, 0)
if self.level == 24:
print(xs, ys, xe, ye)
diff --git a/docs/api.rst.license b/docs/api.rst.license
index 2177b9e..fca452e 100644
--- a/docs/api.rst.license
+++ b/docs/api.rst.license
@@ -1,4 +1,4 @@
SPDX-FileCopyrightText: 2017 Scott Shawcroft, written for Adafruit Industries
-SPDX-FileCopyrightText: Copyright (c) 2021 Tim Cocks for circuitpython
+SPDX-FileCopyrightText: Copyright (c) 2021 GaryZ for CircuitPython Organization
SPDX-License-Identifier: MIT
diff --git a/docs/conf.py b/docs/conf.py
index 981f476..87b2651 100644
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -6,6 +6,7 @@
import os
import sys
+import datetime
sys.path.insert(0, os.path.abspath(".."))
@@ -16,6 +17,7 @@
# ones.
extensions = [
"sphinx.ext.autodoc",
+ "sphinxcontrib.jquery",
"sphinx.ext.intersphinx",
"sphinx.ext.napoleon",
"sphinx.ext.todo",
@@ -25,12 +27,14 @@
# Uncomment the below if you use native CircuitPython modules such as
# digitalio, micropython and busio. List the modules you use. Without it, the
# autodoc module docs will fail to generate with a warning.
-autodoc_mock_imports = ["displayio", "bitmaptools"]
+autodoc_mock_imports = ["bitmaptools", "displayio"]
+
+autodoc_preserve_defaults = True
intersphinx_mapping = {
- "python": ("https://docs.python.org/3.4", None),
- "CircuitPython": ("https://circuitpython.readthedocs.io/en/latest/", None),
+ "python": ("https://docs.python.org/3", None),
+ "CircuitPython": ("https://docs.circuitpython.org/en/latest/", None),
}
# Show the docstring from both the class and its __init__() method.
@@ -46,8 +50,15 @@
# General information about the project.
project = "CircuitPython DisplayIO_Gauge Library"
-copyright = "2021 Tim Cocks"
-author = "Tim Cocks"
+creation_year = "2021"
+current_year = str(datetime.datetime.now().year)
+year_duration = (
+ current_year
+ if current_year == creation_year
+ else creation_year + " - " + current_year
+)
+copyright = year_duration + " GaryZ"
+author = "GaryZ"
# The version info for the project you're documenting, acts as replacement for
# |version| and |release|, also used in various other places throughout the
@@ -63,7 +74,7 @@
#
# This is also used if you do content translation via gettext catalogs.
# Usually you set "language" from the command line for these cases.
-language = None
+language = "en"
# List of patterns, relative to source directory, that match files and
# directories to ignore when looking for source files.
@@ -101,19 +112,10 @@
# The theme to use for HTML and HTML Help pages. See the documentation for
# a list of builtin themes.
#
-on_rtd = os.environ.get("READTHEDOCS", None) == "True"
-
-if not on_rtd: # only import and set the theme if we're building docs locally
- try:
- import sphinx_rtd_theme
-
- html_theme = "sphinx_rtd_theme"
- html_theme_path = [sphinx_rtd_theme.get_html_theme_path(), "."]
- except:
- html_theme = "default"
- html_theme_path = ["."]
-else:
- html_theme_path = ["."]
+import sphinx_rtd_theme
+
+html_theme = "sphinx_rtd_theme"
+html_theme_path = [sphinx_rtd_theme.get_html_theme_path(), "."]
# Add any paths that contain custom static files (such as style sheets) here,
# relative to this directory. They are copied after the builtin static files,
diff --git a/docs/examples.rst.license b/docs/examples.rst.license
index 2177b9e..fca452e 100644
--- a/docs/examples.rst.license
+++ b/docs/examples.rst.license
@@ -1,4 +1,4 @@
SPDX-FileCopyrightText: 2017 Scott Shawcroft, written for Adafruit Industries
-SPDX-FileCopyrightText: Copyright (c) 2021 Tim Cocks for circuitpython
+SPDX-FileCopyrightText: Copyright (c) 2021 GaryZ for CircuitPython Organization
SPDX-License-Identifier: MIT
diff --git a/docs/index.rst b/docs/index.rst
index 720f8aa..c9cd4fd 100644
--- a/docs/index.rst
+++ b/docs/index.rst
@@ -24,20 +24,17 @@ Table of Contents
.. toctree::
:caption: Tutorials
-.. todo:: Add any Learn guide links here. If there are none, then simply delete this todo and leave
- the toctree above for use later.
+ CircuitPython Display Support Using DisplayIO
.. toctree::
:caption: Related Products
-.. todo:: Add any product links here. If there are none, then simply delete this todo and leave
- the toctree above for use later.
-
.. toctree::
:caption: Other Links
- Download
- CircuitPython Reference Documentation
+ Download from GitHub
+ Download Library Bundle
+ CircuitPython Reference Documentation
CircuitPython Support Forum
Discord Chat
Adafruit Learning System
diff --git a/docs/index.rst.license b/docs/index.rst.license
index 2177b9e..fca452e 100644
--- a/docs/index.rst.license
+++ b/docs/index.rst.license
@@ -1,4 +1,4 @@
SPDX-FileCopyrightText: 2017 Scott Shawcroft, written for Adafruit Industries
-SPDX-FileCopyrightText: Copyright (c) 2021 Tim Cocks for circuitpython
+SPDX-FileCopyrightText: Copyright (c) 2021 GaryZ for CircuitPython Organization
SPDX-License-Identifier: MIT
diff --git a/docs/requirements.txt b/docs/requirements.txt
new file mode 100644
index 0000000..979f568
--- /dev/null
+++ b/docs/requirements.txt
@@ -0,0 +1,7 @@
+# SPDX-FileCopyrightText: 2021 Kattni Rembor for Adafruit Industries
+#
+# SPDX-License-Identifier: Unlicense
+
+sphinx
+sphinxcontrib-jquery
+sphinx-rtd-theme
diff --git a/examples/displayio_gauge_multiple_test.py b/examples/displayio_gauge_multiple_test.py
index dd66b34..5da8dae 100644
--- a/examples/displayio_gauge_multiple_test.py
+++ b/examples/displayio_gauge_multiple_test.py
@@ -88,7 +88,6 @@
main_group.append(gauge5)
while True:
-
for i in range(0, 101, 4):
if i >= 80:
gauge4.foreground_color = 0xFF0000
diff --git a/pyproject.toml b/pyproject.toml
index f3c35ae..feceaa2 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -1,6 +1,51 @@
-# SPDX-FileCopyrightText: 2020 Diego Elio Pettenò
+# SPDX-FileCopyrightText: 2022 Alec Delaney, written for Adafruit Industries
+# SPDX-FileCopyrightText: Copyright (c) 2024 GaryZ for CircuitPython Organization
#
-# SPDX-License-Identifier: Unlicense
+# SPDX-License-Identifier: MIT
-[tool.black]
-target-version = ['py35']
+[build-system]
+requires = [
+ "setuptools",
+ "wheel",
+ "setuptools-scm",
+]
+
+[project]
+name = "circuitpython-displayio-gauge"
+description = "A circular gauge that can be filled to a certain value. The origin is set using ``x`` and ``y`` coordinates relative to the center of the gauge."
+version = "0.0.0+auto.0"
+readme = "README.rst"
+authors = [
+ {name = "CircuitPython Organization", email = "circuitpython@adafruit.com"}
+]
+urls = {Homepage = "https://github.com/circuitpython/CircuitPython_Org_DisplayIO_Gauge"}
+keywords = [
+ "adafruit",
+ "blinka",
+ "circuitpython",
+ "micropython",
+ "displayio_gauge",
+ "displayio",
+ "widget",
+ "gauge",
+ "progressbar",
+]
+license = {text = "MIT"}
+classifiers = [
+ "Intended Audience :: Developers",
+ "Topic :: Software Development :: Libraries",
+ "Topic :: Software Development :: Embedded Systems",
+ "Topic :: System :: Hardware",
+ "License :: OSI Approved :: MIT License",
+ "Programming Language :: Python :: 3",
+]
+dynamic = ["dependencies", "optional-dependencies"]
+
+[tool.setuptools]
+# TODO: IF LIBRARY FILES ARE A PACKAGE FOLDER,
+# CHANGE `py_modules = ['...']` TO `packages = ['...']`
+py-modules = ["displayio_gauge"]
+
+[tool.setuptools.dynamic]
+dependencies = {file = ["requirements.txt"]}
+optional-dependencies = {optional = {file = ["optional_requirements.txt"]}}