diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml
index 8db4a08..fc5030b 100644
--- a/.github/workflows/ci.yaml
+++ b/.github/workflows/ci.yaml
@@ -9,7 +9,7 @@ jobs:
name: Unit tests
strategy:
matrix:
- python-version: ['3.10']
+ python-version: ['3.10', '3.12']
os: [macos-latest, ubuntu-latest, windows-latest]
runs-on: ${{ matrix.os }}
@@ -38,7 +38,7 @@ jobs:
- name: set up Python
uses: actions/setup-python@v2
with:
- python-version: 3.7
+ python-version: '3.12'
- name: set up node # we need node for for semantic release
uses: actions/setup-node@v4
with:
@@ -88,7 +88,7 @@ jobs:
- name: set up Python
uses: actions/setup-python@v2
with:
- python-version: 3.7
+ python-version: '3.12'
- name: install dependencies
run: |
pip install -U .
diff --git a/dev-requirements.txt b/dev-requirements.txt
index c211332..37c85bd 100644
--- a/dev-requirements.txt
+++ b/dev-requirements.txt
@@ -1,23 +1,18 @@
-coverage==5.5
-coveralls==1.7.0;python_version<'3.0'
-coveralls==2.2.0;python_version>='3.6'
-pytest==4.6.9;python_version<'3.0'
-pytest==6.2.4;python_version>='3.6'
-pytest-cov==2.12.0
-Sphinx==1.8.5;python_version<'3.0'
-Sphinx==5.3.0;python_version>='3.6'
-docutils==0.17;python_version>='3.6'
+pytest==8.3.2;python_version>='3.6'
+Sphinx==8.0.2;python_version>='3.6'
sphinx-bootstrap-theme==0.8.1
sphinxcontrib-fulltoc==1.2.0
+sphinxcontrib-websupport==2.0.0;python_version>='3.6'
+sphinx-click==6.0.0;python_version>='3.6'
+twine==5.1.1;python_version>='3.6'
+wheel==0.44.0;python_version>='3.6'
+setuptools==75.1.0;python_version>='3.6'
+importlib-metadata==8.5.0;python_version>='3.6'
+pytest==4.6.9;python_version<'3.0'
+Sphinx==1.8.5;python_version<'3.0'
sphinxcontrib-websupport==1.1.2;python_version<'3.0'
-sphinxcontrib-websupport==1.2.4;python_version>='3.6'
-sphinx-click==4.4.0
+sphinx-click==4.4.0;python_version<'3.0'
twine==1.13.0;python_version<'3.0'
-twine==3.4.1;python_version>='3.6'
-wheel==0.38.1
+wheel==0.38.1;python_version<'3.0'
setuptools==44.1.0;python_version<'3.0'
-setuptools==65.5.1;python_version>='3.6'
importlib-metadata==2.0.0;python_version<'3.0'
-importlib-metadata==4.8.0;python_version>='3.6'
-jinja2==3.0.3;python_version>='3.6'
-markupsafe==2.0.1;python_version>='3.6'
diff --git a/docs/_static/custom.css b/docs/_static/custom.css
index 5e15300..b7cf214 100644
--- a/docs/_static/custom.css
+++ b/docs/_static/custom.css
@@ -5,44 +5,61 @@
* Sphinx stylesheet -- Bootstrap theme.
*/
+/* Overwrite colors */
+div.navbar-inverse {
+ background-color: #04A54F;
+ border-color: #04A54F;
+}
+a {
+ color: #04A54F;
+}
+a:visited {
+ color: #04A54F;
+}
+code {
+ color: #04A54F;
+}
+div.bs-sidenav a {
+ color: #333333;
+}
-/* The code below is based on the bootstrap website sidebar */
+/* Prevent top nav from blocking docs */
+div.navbar-fixed-top {
+ position: absolute;
+}
+/* Indent the side nav when in mobile mode */
+@media screen and (min-width: 0px) {
+ div.bs-sidenav ul {
+ margin-bottom: 0;
+ padding-left: 5px;
+ list-style: none;
+ }
+}
-/* Show and affix the side nav when space allows it */
+/* Widen and de-indent the side nav when space is restricted */
@media screen and (min-width: 992px) {
.bs-sidenav .nav > .active > ul {
display: block;
}
div.bs-sidenav ul {
margin-bottom: 0;
- padding-left: 5px;
+ padding-left: 0px;
list-style: none;
}
- div.bs-sidenav a {
- color: #333333;
- }
- /* Widen the fixed sidenav */
- .bs-sidenav.affix,
- .bs-sidenav.affix-bottom {
- width: 292px;
- }
- .bs-sidenav.affix {
- position: fixed; /* Undo the static from mobile first approach */
- }
- .bs-sidenav.affix-bottom {
- position: absolute; /* Undo the static from mobile first approach */
- }
- .bs-sidenav.affix-bottom .bs-sidenav,
- .bs-sidenav.affix .bs-sidenav {
- margin-top: 0;
- margin-bottom: 0;
+ .bs-sidenav {
+ width: 300px;
}
}
+
+/* Slightly indent the side nav when space allows it */
@media screen and (min-width: 1200px) {
- /* Widen the fixed sidenav again */
- .bs-sidenav.affix-bottom,
- .bs-sidenav.affix {
- width: 360px;
+ div.bs-sidenav ul {
+ margin-bottom: 0;
+ padding-left: 5px;
+ list-style: none;
+ }
+ .bs-sidenav {
+ width: 370px;
}
}
diff --git a/docs/_templates/layout.html b/docs/_templates/layout.html
index ae4101c..9a93386 100644
--- a/docs/_templates/layout.html
+++ b/docs/_templates/layout.html
@@ -48,6 +48,7 @@
{% endif %}
{%- block extrahead %}
+
diff --git a/docs/conf.py b/docs/conf.py
index 21de34b..030ab64 100644
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -16,6 +16,10 @@
import sys
import re
import datetime
+
+# The theme to use for HTML and HTML Help pages
+import sphinx_bootstrap_theme
+
now = datetime.datetime.now()
sys.path.insert(0, os.path.abspath('..'))
@@ -71,7 +75,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.
@@ -84,11 +88,6 @@
# -- Options for HTML output -------------------------------------------------
-# The theme to use for HTML and HTML Help pages. See the documentation for
-# a list of builtin themes.
-#
-import sphinx_bootstrap_theme
-
# html_theme = 'alabaster'
html_theme = 'bootstrap'
html_theme_path = sphinx_bootstrap_theme.get_html_theme_path()
@@ -125,6 +124,7 @@
# relative to this directory. They are copied after the builtin static files,
# so a file named "default.css" will overwrite the builtin "default.css".
html_static_path = ['_static']
+html_css_files = ['custom.css']
# Custom sidebar templates, must be a dictionary that maps document names
# to template names.
@@ -591,13 +591,3 @@ def update_doc_index(proj_folder, lib_name):
create_cli_files()
# -----------------------------------------------------------------------------
-
-
-def setup(app):
- """Run custom code with access to the Sphinx application object
- Args:
- app: the Sphinx application object
- """
-
- # Add bootstrap theme custom stylesheet
- app.add_stylesheet("custom.css")