Skip to content

Remove unused import#565

Merged
briangow merged 1 commit intomainfrom
bg_rm_import
Mar 19, 2026
Merged

Remove unused import#565
briangow merged 1 commit intomainfrom
bg_rm_import

Conversation

@briangow
Copy link
Contributor

This PR removes an import of from the dateutil package since it is not being used. The import had been added recently: 5ec257e.

From what I gather, this was the only place that dateutil was being used. Since dateutil was not in our requirements.txt, this could be related to the current issue where our readthedocs site is not displaying the docstring details. Hopefully this fixes the Read the Docs rendering issue. The build logs show that only section outlines were rendered because autodoc failed to import wfdb after hitting a now-removed, unused dateutil import that wasn’t installed in the docs build environment.

@briangow briangow requested a review from tompollard March 19, 2026 18:31
@tompollard
Copy link
Member

Fixing this import might help. Here is the build log (with dateutil errors):

Read the Docs build information
Build id: 31305468
Project: wfdb
Version: latest
Commit: 6e2563a959ef6432f28a1900f8648e77d9861be6
Date: 2026-02-06T17:09:14.732714Z
State: finished
Success: True


[rtd-command-info] start-time: 2026-02-06T17:09:15.204175Z, end-time: 2026-02-06T17:09:18.385310Z, duration: 3, exit-code: 0
git clone --depth 1 https://github.com/MIT-LCP/wfdb-python .
Cloning into '.'...

[rtd-command-info] start-time: 2026-02-06T17:09:18.423309Z, end-time: 2026-02-06T17:09:18.984111Z, duration: 0, exit-code: 0
git fetch origin --force --prune --prune-tags --depth 50 refs/heads/main:refs/remotes/origin/main
From https://github.com/MIT-LCP/wfdb-python
 * [new tag]         v4.1.0     -> v4.1.0
 * [new tag]         v4.1.1     -> v4.1.1
 * [new tag]         v4.1.2     -> v4.1.2
 * [new tag]         v4.2.0     -> v4.2.0
 * [new tag]         v4.3.0     -> v4.3.0
 * [new tag]         v4.3.1     -> v4.3.1

[rtd-command-info] start-time: 2026-02-06T17:09:19.060282Z, end-time: 2026-02-06T17:09:19.753251Z, duration: 0, exit-code: 0
git checkout --force origin/main
Note: switching to 'origin/main'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by switching back to a branch.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -c with the switch command. Example:

  git switch -c <new-branch-name>

Or undo this operation with:

  git switch -

Turn off this advice by setting config variable advice.detachedHead to false

HEAD is now at 6e2563a Remove broken badges from README, and tidy content (#564)

[rtd-command-info] start-time: 2026-02-06T17:09:19.810705Z, end-time: 2026-02-06T17:09:19.847705Z, duration: 0, exit-code: 0
cat .readthedocs.yml
# File: .readthedocs.yaml

version: 2

build:
  os: "ubuntu-20.04"
  tools:
    python: "3.10"

# Build from the docs/ directory with Sphinx
sphinx:
  configuration: docs/conf.py

# Explicitly set the version of Python and its requirements
python:
  install:
    - requirements: docs/requirements.txt

[rtd-command-info] start-time: 2026-02-06T17:09:24.511993Z, end-time: 2026-02-06T17:09:24.578215Z, duration: 0, exit-code: 0
asdf global python 3.10.17


[rtd-command-info] start-time: 2026-02-06T17:09:24.963961Z, end-time: 2026-02-06T17:09:25.865762Z, duration: 0, exit-code: 0
python -mvirtualenv $READTHEDOCS_VIRTUALENV_PATH
created virtual environment CPython3.10.17.final.0-64 in 515ms
  creator CPython3Posix(dest=/home/docs/checkouts/readthedocs.org/user_builds/wfdb/envs/latest, clear=False, no_vcs_ignore=False, global=False)
  seeder FromAppData(download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=/home/docs/.local/share/virtualenv)
    added seed packages: pip==23.1, setuptools==67.6.1, wheel==0.40.0
  activators BashActivator,CShellActivator,FishActivator,NushellActivator,PowerShellActivator,PythonActivator

[rtd-command-info] start-time: 2026-02-06T17:09:25.909211Z, end-time: 2026-02-06T17:09:31.808338Z, duration: 5, exit-code: 0
python -m pip install --upgrade --no-cache-dir pip setuptools
Requirement already satisfied: pip in /home/docs/checkouts/readthedocs.org/user_builds/wfdb/envs/latest/lib/python3.10/site-packages (23.1)
Collecting pip
  Downloading pip-26.0.1-py3-none-any.whl (1.8 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.8/1.8 MB 44.2 MB/s eta 0:00:00
Requirement already satisfied: setuptools in /home/docs/checkouts/readthedocs.org/user_builds/wfdb/envs/latest/lib/python3.10/site-packages (67.6.1)
Collecting setuptools
  Downloading setuptools-80.10.2-py3-none-any.whl (1.1 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.1/1.1 MB 196.6 MB/s eta 0:00:00
Installing collected packages: setuptools, pip
  Attempting uninstall: setuptools
    Found existing installation: setuptools 67.6.1
    Uninstalling setuptools-67.6.1:
      Successfully uninstalled setuptools-67.6.1
  Attempting uninstall: pip
    Found existing installation: pip 23.1
    Uninstalling pip-23.1:
      Successfully uninstalled pip-23.1
Successfully installed pip-26.0.1 setuptools-80.10.2

[rtd-command-info] start-time: 2026-02-06T17:09:31.854018Z, end-time: 2026-02-06T17:09:36.804480Z, duration: 4, exit-code: 0
python -m pip install --upgrade --no-cache-dir sphinx
Collecting sphinx
  Downloading sphinx-8.1.3-py3-none-any.whl.metadata (6.4 kB)
Collecting sphinxcontrib-applehelp>=1.0.7 (from sphinx)
  Downloading sphinxcontrib_applehelp-2.0.0-py3-none-any.whl.metadata (2.3 kB)
Collecting sphinxcontrib-devhelp>=1.0.6 (from sphinx)
  Downloading sphinxcontrib_devhelp-2.0.0-py3-none-any.whl.metadata (2.3 kB)
Collecting sphinxcontrib-htmlhelp>=2.0.6 (from sphinx)
  Downloading sphinxcontrib_htmlhelp-2.1.0-py3-none-any.whl.metadata (2.3 kB)
Collecting sphinxcontrib-jsmath>=1.0.1 (from sphinx)
  Downloading sphinxcontrib_jsmath-1.0.1-py2.py3-none-any.whl.metadata (1.4 kB)
Collecting sphinxcontrib-qthelp>=1.0.6 (from sphinx)
  Downloading sphinxcontrib_qthelp-2.0.0-py3-none-any.whl.metadata (2.3 kB)
Collecting sphinxcontrib-serializinghtml>=1.1.9 (from sphinx)
  Downloading sphinxcontrib_serializinghtml-2.0.0-py3-none-any.whl.metadata (2.4 kB)
Collecting Jinja2>=3.1 (from sphinx)
  Downloading jinja2-3.1.6-py3-none-any.whl.metadata (2.9 kB)
Collecting Pygments>=2.17 (from sphinx)
  Downloading pygments-2.19.2-py3-none-any.whl.metadata (2.5 kB)
Collecting docutils<0.22,>=0.20 (from sphinx)
  Downloading docutils-0.21.2-py3-none-any.whl.metadata (2.8 kB)
Collecting snowballstemmer>=2.2 (from sphinx)
  Downloading snowballstemmer-3.0.1-py3-none-any.whl.metadata (7.9 kB)
Collecting babel>=2.13 (from sphinx)
  Downloading babel-2.18.0-py3-none-any.whl.metadata (2.2 kB)
Collecting alabaster>=0.7.14 (from sphinx)
  Downloading alabaster-1.0.0-py3-none-any.whl.metadata (2.8 kB)
Collecting imagesize>=1.3 (from sphinx)
  Downloading imagesize-1.4.1-py2.py3-none-any.whl.metadata (1.5 kB)
Collecting requests>=2.30.0 (from sphinx)
  Downloading requests-2.32.5-py3-none-any.whl.metadata (4.9 kB)
Collecting packaging>=23.0 (from sphinx)
  Downloading packaging-26.0-py3-none-any.whl.metadata (3.3 kB)
Collecting tomli>=2 (from sphinx)
  Downloading tomli-2.4.0-py3-none-any.whl.metadata (10 kB)
Collecting MarkupSafe>=2.0 (from Jinja2>=3.1->sphinx)
  Downloading markupsafe-3.0.3-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (2.7 kB)
Collecting charset_normalizer<4,>=2 (from requests>=2.30.0->sphinx)
  Downloading charset_normalizer-3.4.4-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (37 kB)
Collecting idna<4,>=2.5 (from requests>=2.30.0->sphinx)
  Downloading idna-3.11-py3-none-any.whl.metadata (8.4 kB)
Collecting urllib3<3,>=1.21.1 (from requests>=2.30.0->sphinx)
  Downloading urllib3-2.6.3-py3-none-any.whl.metadata (6.9 kB)
Collecting certifi>=2017.4.17 (from requests>=2.30.0->sphinx)
  Downloading certifi-2026.1.4-py3-none-any.whl.metadata (2.5 kB)
Downloading sphinx-8.1.3-py3-none-any.whl (3.5 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.5/3.5 MB 118.6 MB/s  0:00:00
Downloading docutils-0.21.2-py3-none-any.whl (587 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 587.4/587.4 kB 660.5 MB/s  0:00:00
Downloading alabaster-1.0.0-py3-none-any.whl (13 kB)
Downloading babel-2.18.0-py3-none-any.whl (10.2 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 10.2/10.2 MB 252.8 MB/s  0:00:00
Downloading imagesize-1.4.1-py2.py3-none-any.whl (8.8 kB)
Downloading jinja2-3.1.6-py3-none-any.whl (134 kB)
Downloading markupsafe-3.0.3-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (20 kB)
Downloading packaging-26.0-py3-none-any.whl (74 kB)
Downloading pygments-2.19.2-py3-none-any.whl (1.2 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.2/1.2 MB 545.2 MB/s  0:00:00
Downloading requests-2.32.5-py3-none-any.whl (64 kB)
Downloading charset_normalizer-3.4.4-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (153 kB)
Downloading idna-3.11-py3-none-any.whl (71 kB)
Downloading urllib3-2.6.3-py3-none-any.whl (131 kB)
Downloading certifi-2026.1.4-py3-none-any.whl (152 kB)
Downloading snowballstemmer-3.0.1-py3-none-any.whl (103 kB)
Downloading sphinxcontrib_applehelp-2.0.0-py3-none-any.whl (119 kB)
Downloading sphinxcontrib_devhelp-2.0.0-py3-none-any.whl (82 kB)
Downloading sphinxcontrib_htmlhelp-2.1.0-py3-none-any.whl (98 kB)
Downloading sphinxcontrib_jsmath-1.0.1-py2.py3-none-any.whl (5.1 kB)
Downloading sphinxcontrib_qthelp-2.0.0-py3-none-any.whl (88 kB)
Downloading sphinxcontrib_serializinghtml-2.0.0-py3-none-any.whl (92 kB)
Downloading tomli-2.4.0-py3-none-any.whl (14 kB)
Installing collected packages: urllib3, tomli, sphinxcontrib-serializinghtml, sphinxcontrib-qthelp, sphinxcontrib-jsmath, sphinxcontrib-htmlhelp, sphinxcontrib-devhelp, sphinxcontrib-applehelp, snowballstemmer, Pygments, packaging, MarkupSafe, imagesize, idna, docutils, charset_normalizer, certifi, babel, alabaster, requests, Jinja2, sphinx

Successfully installed Jinja2-3.1.6 MarkupSafe-3.0.3 Pygments-2.19.2 alabaster-1.0.0 babel-2.18.0 certifi-2026.1.4 charset_normalizer-3.4.4 docutils-0.21.2 idna-3.11 imagesize-1.4.1 packaging-26.0 requests-2.32.5 snowballstemmer-3.0.1 sphinx-8.1.3 sphinxcontrib-applehelp-2.0.0 sphinxcontrib-devhelp-2.0.0 sphinxcontrib-htmlhelp-2.1.0 sphinxcontrib-jsmath-1.0.1 sphinxcontrib-qthelp-2.0.0 sphinxcontrib-serializinghtml-2.0.0 tomli-2.4.0 urllib3-2.6.3

[rtd-command-info] start-time: 2026-02-06T17:09:36.847494Z, end-time: 2026-02-06T17:09:38.938235Z, duration: 2, exit-code: 0
python -m pip install --exists-action=w --no-cache-dir -r docs/requirements.txt
Collecting numpydoc==1.7.0 (from -r docs/requirements.txt (line 1))
  Downloading numpydoc-1.7.0-py3-none-any.whl.metadata (4.2 kB)
Collecting sphinx==7.0.0 (from -r docs/requirements.txt (line 2))
  Downloading sphinx-7.0.0-py3-none-any.whl.metadata (6.1 kB)
Collecting sphinx_rtd_theme==3.0.0 (from -r docs/requirements.txt (line 3))
  Downloading sphinx_rtd_theme-3.0.0-py2.py3-none-any.whl.metadata (4.4 kB)
Collecting readthedocs-sphinx-search==0.3.2 (from -r docs/requirements.txt (line 4))
  Downloading readthedocs_sphinx_search-0.3.2-py3-none-any.whl.metadata (2.4 kB)
Collecting fsspec>=2023.10.0 (from -r docs/requirements.txt (line 5))
  Downloading fsspec-2026.2.0-py3-none-any.whl.metadata (10 kB)
Collecting tabulate>=0.8.10 (from numpydoc==1.7.0->-r docs/requirements.txt (line 1))
  Downloading tabulate-0.9.0-py3-none-any.whl.metadata (34 kB)
Requirement already satisfied: tomli>=1.1.0 in /home/docs/checkouts/readthedocs.org/user_builds/wfdb/envs/latest/lib/python3.10/site-packages (from numpydoc==1.7.0->-r docs/requirements.txt (line 1)) (2.4.0)
Requirement already satisfied: sphinxcontrib-applehelp in /home/docs/checkouts/readthedocs.org/user_builds/wfdb/envs/latest/lib/python3.10/site-packages (from sphinx==7.0.0->-r docs/requirements.txt (line 2)) (2.0.0)
Requirement already satisfied: sphinxcontrib-devhelp in /home/docs/checkouts/readthedocs.org/user_builds/wfdb/envs/latest/lib/python3.10/site-packages (from sphinx==7.0.0->-r docs/requirements.txt (line 2)) (2.0.0)
Requirement already satisfied: sphinxcontrib-jsmath in /home/docs/checkouts/readthedocs.org/user_builds/wfdb/envs/latest/lib/python3.10/site-packages (from sphinx==7.0.0->-r docs/requirements.txt (line 2)) (1.0.1)
Requirement already satisfied: sphinxcontrib-htmlhelp>=2.0.0 in /home/docs/checkouts/readthedocs.org/user_builds/wfdb/envs/latest/lib/python3.10/site-packages (from sphinx==7.0.0->-r docs/requirements.txt (line 2)) (2.1.0)
Requirement already satisfied: sphinxcontrib-serializinghtml>=1.1.5 in /home/docs/checkouts/readthedocs.org/user_builds/wfdb/envs/latest/lib/python3.10/site-packages (from sphinx==7.0.0->-r docs/requirements.txt (line 2)) (2.0.0)
Requirement already satisfied: sphinxcontrib-qthelp in /home/docs/checkouts/readthedocs.org/user_builds/wfdb/envs/latest/lib/python3.10/site-packages (from sphinx==7.0.0->-r docs/requirements.txt (line 2)) (2.0.0)
Requirement already satisfied: Jinja2>=3.0 in /home/docs/checkouts/readthedocs.org/user_builds/wfdb/envs/latest/lib/python3.10/site-packages (from sphinx==7.0.0->-r docs/requirements.txt (line 2)) (3.1.6)
Requirement already satisfied: Pygments>=2.13 in /home/docs/checkouts/readthedocs.org/user_builds/wfdb/envs/latest/lib/python3.10/site-packages (from sphinx==7.0.0->-r docs/requirements.txt (line 2)) (2.19.2)
Collecting docutils<0.20,>=0.18.1 (from sphinx==7.0.0->-r docs/requirements.txt (line 2))
  Downloading docutils-0.19-py3-none-any.whl.metadata (2.7 kB)
Requirement already satisfied: snowballstemmer>=2.0 in /home/docs/checkouts/readthedocs.org/user_builds/wfdb/envs/latest/lib/python3.10/site-packages (from sphinx==7.0.0->-r docs/requirements.txt (line 2)) (3.0.1)
Requirement already satisfied: babel>=2.9 in /home/docs/checkouts/readthedocs.org/user_builds/wfdb/envs/latest/lib/python3.10/site-packages (from sphinx==7.0.0->-r docs/requirements.txt (line 2)) (2.18.0)
Collecting alabaster<0.8,>=0.7 (from sphinx==7.0.0->-r docs/requirements.txt (line 2))
  Downloading alabaster-0.7.16-py3-none-any.whl.metadata (2.9 kB)
Requirement already satisfied: imagesize>=1.3 in /home/docs/checkouts/readthedocs.org/user_builds/wfdb/envs/latest/lib/python3.10/site-packages (from sphinx==7.0.0->-r docs/requirements.txt (line 2)) (1.4.1)
Requirement already satisfied: requests>=2.25.0 in /home/docs/checkouts/readthedocs.org/user_builds/wfdb/envs/latest/lib/python3.10/site-packages (from sphinx==7.0.0->-r docs/requirements.txt (line 2)) (2.32.5)
Requirement already satisfied: packaging>=21.0 in /home/docs/checkouts/readthedocs.org/user_builds/wfdb/envs/latest/lib/python3.10/site-packages (from sphinx==7.0.0->-r docs/requirements.txt (line 2)) (26.0)
Collecting sphinxcontrib-jquery<5,>=4 (from sphinx_rtd_theme==3.0.0->-r docs/requirements.txt (line 3))
  Downloading sphinxcontrib_jquery-4.1-py2.py3-none-any.whl.metadata (2.6 kB)
Requirement already satisfied: MarkupSafe>=2.0 in /home/docs/checkouts/readthedocs.org/user_builds/wfdb/envs/latest/lib/python3.10/site-packages (from Jinja2>=3.0->sphinx==7.0.0->-r docs/requirements.txt (line 2)) (3.0.3)
Requirement already satisfied: charset_normalizer<4,>=2 in /home/docs/checkouts/readthedocs.org/user_builds/wfdb/envs/latest/lib/python3.10/site-packages (from requests>=2.25.0->sphinx==7.0.0->-r docs/requirements.txt (line 2)) (3.4.4)
Requirement already satisfied: idna<4,>=2.5 in /home/docs/checkouts/readthedocs.org/user_builds/wfdb/envs/latest/lib/python3.10/site-packages (from requests>=2.25.0->sphinx==7.0.0->-r docs/requirements.txt (line 2)) (3.11)
Requirement already satisfied: urllib3<3,>=1.21.1 in /home/docs/checkouts/readthedocs.org/user_builds/wfdb/envs/latest/lib/python3.10/site-packages (from requests>=2.25.0->sphinx==7.0.0->-r docs/requirements.txt (line 2)) (2.6.3)
Requirement already satisfied: certifi>=2017.4.17 in /home/docs/checkouts/readthedocs.org/user_builds/wfdb/envs/latest/lib/python3.10/site-packages (from requests>=2.25.0->sphinx==7.0.0->-r docs/requirements.txt (line 2)) (2026.1.4)
Downloading numpydoc-1.7.0-py3-none-any.whl (62 kB)
Downloading sphinx-7.0.0-py3-none-any.whl (3.0 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.0/3.0 MB 113.6 MB/s  0:00:00
Downloading sphinx_rtd_theme-3.0.0-py2.py3-none-any.whl (7.7 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 7.7/7.7 MB 187.6 MB/s  0:00:00
Downloading readthedocs_sphinx_search-0.3.2-py3-none-any.whl (21 kB)
Downloading alabaster-0.7.16-py3-none-any.whl (13 kB)
Downloading docutils-0.19-py3-none-any.whl (570 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 570.5/570.5 kB 629.3 MB/s  0:00:00
Downloading sphinxcontrib_jquery-4.1-py2.py3-none-any.whl (121 kB)
Downloading fsspec-2026.2.0-py3-none-any.whl (202 kB)
Downloading tabulate-0.9.0-py3-none-any.whl (35 kB)
Installing collected packages: tabulate, readthedocs-sphinx-search, fsspec, docutils, alabaster, sphinx, sphinxcontrib-jquery, numpydoc, sphinx_rtd_theme
  Attempting uninstall: docutils
    Found existing installation: docutils 0.21.2
    Uninstalling docutils-0.21.2:
      Successfully uninstalled docutils-0.21.2
  Attempting uninstall: alabaster
    Found existing installation: alabaster 1.0.0
    Uninstalling alabaster-1.0.0:
      Successfully uninstalled alabaster-1.0.0
  Attempting uninstall: sphinx
    Found existing installation: Sphinx 8.1.3
    Uninstalling Sphinx-8.1.3:
      Successfully uninstalled Sphinx-8.1.3

Successfully installed alabaster-0.7.16 docutils-0.19 fsspec-2026.2.0 numpydoc-1.7.0 readthedocs-sphinx-search-0.3.2 sphinx-7.0.0 sphinx_rtd_theme-3.0.0 sphinxcontrib-jquery-4.1 tabulate-0.9.0

[rtd-command-info] start-time: 2026-02-06T17:09:39.019131Z, end-time: 2026-02-06T17:09:39.055536Z, duration: 0, exit-code: 0
cat docs/conf.py
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
#
# WFDB documentation build configuration file, created by
# sphinx-quickstart on Tue Jan  2 13:19:02 2018.
#
# This file is execfile()d with the current directory set to its
# containing dir.
#
# Note that not all possible configuration values are present in this
# autogenerated file.
#
# All configuration values have a default; values that are commented out
# serve to show the default.

# If extensions (or modules to document with autodoc) are in another directory,
# add these directories to sys.path here. If the directory is relative to the
# documentation root, use os.path.abspath to make it absolute, like shown here.
#
import os
import sys

sys.path.insert(0, os.path.abspath(".."))

# For dependencies
from unittest.mock import MagicMock


class Mock(MagicMock):
    @classmethod
    def __getattr__(cls, name):
        return MagicMock()


MOCK_MODULES = ["numpy", "matplotlib", "matplotlib.pyplot", "pandas", "scipy"]
sys.modules.update((mod_name, Mock()) for mod_name in MOCK_MODULES)

# -- General configuration ------------------------------------------------

# If your documentation needs a minimal Sphinx version, state it here.
#
# needs_sphinx = '1.0'

# Add any Sphinx extension module names here, as strings. They can be
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
# ones.
extensions = [
    "sphinx.ext.autodoc",
    "numpydoc",
]

# Add any paths that contain templates here, relative to this directory.
templates_path = ["_templates"]

# The suffix(es) of source filenames.
# You can specify multiple suffix as a list of string:
#
# source_suffix = ['.rst', '.md']
source_suffix = ".rst"

# The master toctree document.
master_doc = "index"

# General information about the project.
project = "wfdb"
copyright = "2018, MIT Lab for Computational Physiology"
author = "MIT Lab for Computational Physiology"

with open("../wfdb/version.py") as f:
    __version__ = f.read().split()[-1].strip("'")
# The version info for the project you're documenting, acts as replacement for
# |version| and |release|, also used in various other places throughout the
# built documents.
#
# The short X.Y version.
version = __version__
# The full version, including alpha/beta/rc tags.
release = __version__

# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
#
# This is also used if you do content translation via gettext catalogs.
# Usually you set "language" from the command line for these cases.
language = "en"

# List of patterns, relative to source directory, that match files and
# directories to ignore when looking for source files.
# This patterns also effect to html_static_path and html_extra_path
exclude_patterns = ["_build", "Thumbs.db", ".DS_Store"]

# The name of the Pygments (syntax highlighting) style to use.
pygments_style = "sphinx"

# If true, `todo` and `todoList` produce output, else they produce nothing.
todo_include_todos = False


# -- Options for HTML output ----------------------------------------------

# The theme to use for HTML and HTML Help pages.  See the documentation for
# a list of builtin themes.
#
html_theme = "classic"

# Theme options are theme-specific and customize the look and feel of a theme
# further.  For a list of options available for each theme, see the
# documentation.
#
# html_theme_options = {}

# 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,
# so a file named "default.css" will overwrite the builtin "default.css".
html_static_path = ["_static"]

# Custom sidebar templates, must be a dictionary that maps document names
# to template names.
#
# This is required for the alabaster theme
# refs: http://alabaster.readthedocs.io/en/latest/installation.html#sidebars
html_sidebars = {
    "**": [
        "relations.html",  # needs 'show_related': True theme option to display
        "searchbox.html",
    ]
}


# -- Options for HTMLHelp output ------------------------------------------

# Output file base name for HTML help builder.
htmlhelp_basename = "wfdbdoc"


# -- Options for LaTeX output ---------------------------------------------

latex_elements = {
    # The paper size ('letterpaper' or 'a4paper').
    #
    # 'papersize': 'letterpaper',
    # The font size ('10pt', '11pt' or '12pt').
    #
    # 'pointsize': '10pt',
    # Additional stuff for the LaTeX preamble.
    #
    # 'preamble': '',
    # Latex figure (float) alignment
    #
    # 'figure_align': 'htbp',
}

# Grouping the document tree into LaTeX files. List of tuples
# (source start file, target name, title,
#  author, documentclass [howto, manual, or own class]).
latex_documents = [
    (master_doc, "wfdb.tex", "wfdb Documentation", author, "manual"),
]


# -- Options for manual page output ---------------------------------------

# One entry per manual page. List of tuples
# (source start file, name, description, authors, manual section).
man_pages = [(master_doc, "wfdb", "wfdb Documentation", [author], 1)]


# -- Options for Texinfo output -------------------------------------------

# Grouping the document tree into Texinfo files. List of tuples
# (source start file, target name, title, author,
#  dir menu entry, description, category)
texinfo_documents = [
    (
        master_doc,
        "wfdb",
        "wfdb Documentation",
        author,
        "wfdb",
        "One line description of project.",
        "Miscellaneous",
    ),
]

[rtd-command-info] start-time: 2026-02-06T17:09:39.108618Z, end-time: 2026-02-06T17:09:40.049454Z, duration: 0, exit-code: 0
python -m sphinx -T -b html -d _build/doctrees -D language=en . $READTHEDOCS_OUTPUT/html
Running Sphinx v7.0.0
making output directory... done
[autosummary] generating autosummary for: changes.rst, convert.rst, index.rst, installation.rst, io.rst, plot.rst, processing.rst, wfdb-specifications.rst, wfdb.rst
Failed to import wfdb.
Possible hints:
* KeyError: 'wfdb'
* ModuleNotFoundError: No module named 'dateutil'
Failed to import wfdb.
Possible hints:
* KeyError: 'wfdb'
* ModuleNotFoundError: No module named 'dateutil'
Failed to import wfdb.
Possible hints:
* KeyError: 'wfdb'
* ModuleNotFoundError: No module named 'dateutil'
Failed to import wfdb.
Possible hints:
* KeyError: 'wfdb'
* ModuleNotFoundError: No module named 'dateutil'
Failed to import wfdb.io.
Possible hints:
* KeyError: 'wfdb'
* ModuleNotFoundError: No module named 'dateutil'
Failed to import wfdb.io.
Possible hints:
* KeyError: 'wfdb'
* ModuleNotFoundError: No module named 'dateutil'
Failed to import wfdb.io.
Possible hints:
* KeyError: 'wfdb'
* ModuleNotFoundError: No module named 'dateutil'
Failed to import wfdb.processing.
Possible hints:
* KeyError: 'wfdb'
* ModuleNotFoundError: No module named 'dateutil'
Failed to import wfdb.processing.
Possible hints:
* KeyError: 'wfdb'
* ModuleNotFoundError: No module named 'dateutil'
Failed to import wfdb.processing.
Possible hints:
* KeyError: 'wfdb'
* ModuleNotFoundError: No module named 'dateutil'
Failed to import wfdb.processing.
Possible hints:
* KeyError: 'wfdb'
* ModuleNotFoundError: No module named 'dateutil'
Failed to import wfdb.processing.
Possible hints:
* KeyError: 'wfdb'
* ModuleNotFoundError: No module named 'dateutil'
Failed to import wfdb.processing.
Possible hints:
* KeyError: 'wfdb'
* ModuleNotFoundError: No module named 'dateutil'
Failed to import wfdb.io.convert.csv.
Possible hints:
* KeyError: 'wfdb'
* ModuleNotFoundError: No module named 'dateutil'
Failed to import wfdb.io.convert.edf.
Possible hints:
* KeyError: 'wfdb'
* ModuleNotFoundError: No module named 'dateutil'
Failed to import wfdb.io.convert.matlab.
Possible hints:
* KeyError: 'wfdb'
* ModuleNotFoundError: No module named 'dateutil'
Failed to import wfdb.io.convert.tff.
Possible hints:
* KeyError: 'wfdb'
* ModuleNotFoundError: No module named 'dateutil'
Failed to import wfdb.io.convert.wav.
Possible hints:
* KeyError: 'wfdb'
* ModuleNotFoundError: No module named 'dateutil'
Failed to import wfdb.plot.
Possible hints:
* KeyError: 'wfdb'
* ModuleNotFoundError: No module named 'dateutil'
building [mo]: targets for 0 po files that are out of date
writing output... 
building [html]: targets for 9 source files that are out of date
updating environment: [new config] 9 added, 0 changed, 0 removed
reading sources... [ 11%] changes
reading sources... [ 22%] convert
reading sources... [ 33%] index
reading sources... [ 44%] installation
reading sources... [ 55%] io
reading sources... [ 66%] plot
reading sources... [ 77%] processing
reading sources... [ 88%] wfdb
reading sources... [100%] wfdb-specifications

WARNING: autodoc: failed to import module 'io.convert.csv' from module 'wfdb'; the following exception was raised:
No module named 'dateutil'
WARNING: autodoc: failed to import module 'io.convert.edf' from module 'wfdb'; the following exception was raised:
No module named 'dateutil'
WARNING: autodoc: failed to import module 'io.convert.matlab' from module 'wfdb'; the following exception was raised:
No module named 'dateutil'
WARNING: autodoc: failed to import module 'io.convert.tff' from module 'wfdb'; the following exception was raised:
No module named 'dateutil'
WARNING: autodoc: failed to import module 'io.convert.wav' from module 'wfdb'; the following exception was raised:
No module named 'dateutil'
WARNING: autodoc: failed to import module 'io' from module 'wfdb'; the following exception was raised:
No module named 'dateutil'
WARNING: autodoc: failed to import class 'io.Record' from module 'wfdb'; the following exception was raised:
No module named 'dateutil'
WARNING: autodoc: failed to import class 'io.MultiRecord' from module 'wfdb'; the following exception was raised:
No module named 'dateutil'
/home/docs/checkouts/readthedocs.org/user_builds/wfdb/checkouts/latest/docs/io.rst:24: WARNING: Title underline too short.

WFDB Annotations
---------------
/home/docs/checkouts/readthedocs.org/user_builds/wfdb/checkouts/latest/docs/io.rst:24: WARNING: Title underline too short.

WFDB Annotations
---------------
WARNING: autodoc: failed to import module 'io' from module 'wfdb'; the following exception was raised:
No module named 'dateutil'
WARNING: autodoc: failed to import class 'io.Annotation' from module 'wfdb'; the following exception was raised:
No module named 'dateutil'
WARNING: autodoc: failed to import module 'io' from module 'wfdb'; the following exception was raised:
No module named 'dateutil'
WARNING: autodoc: failed to import module 'plot' from module 'wfdb'; the following exception was raised:
No module named 'dateutil'
WARNING: autodoc: failed to import module 'processing' from module 'wfdb'; the following exception was raised:
No module named 'dateutil'
WARNING: autodoc: failed to import module 'processing' from module 'wfdb'; the following exception was raised:
No module named 'dateutil'
WARNING: autodoc: failed to import module 'processing' from module 'wfdb'; the following exception was raised:
No module named 'dateutil'
WARNING: autodoc: failed to import module 'processing' from module 'wfdb'; the following exception was raised:
No module named 'dateutil'
WARNING: autodoc: failed to import module 'processing' from module 'wfdb'; the following exception was raised:
No module named 'dateutil'
WARNING: autodoc: failed to import module 'processing' from module 'wfdb'; the following exception was raised:
No module named 'dateutil'
WARNING: autodoc: failed to import module 'wfdb'; the following exception was raised:
No module named 'dateutil'
WARNING: autodoc: failed to import class 'Record' from module 'wfdb'; the following exception was raised:
No module named 'dateutil'
WARNING: autodoc: failed to import class 'MultiRecord' from module 'wfdb'; the following exception was raised:
No module named 'dateutil'
/home/docs/checkouts/readthedocs.org/user_builds/wfdb/checkouts/latest/docs/wfdb.rst:24: WARNING: Title underline too short.

WFDB Annotations
---------------
/home/docs/checkouts/readthedocs.org/user_builds/wfdb/checkouts/latest/docs/wfdb.rst:24: WARNING: Title underline too short.

WFDB Annotations
---------------
WARNING: autodoc: failed to import module 'wfdb'; the following exception was raised:
No module named 'dateutil'
WARNING: autodoc: failed to import class 'Annotation' from module 'wfdb'; the following exception was raised:
No module named 'dateutil'
WARNING: autodoc: failed to import module 'wfdb'; the following exception was raised:
No module named 'dateutil'
WARNING: autodoc: failed to import module 'wfdb'; the following exception was raised:
No module named 'dateutil'
looking for now-outdated files... none found
pickling environment... done
checking consistency... done
preparing documents... done
writing output... [ 11%] changes
writing output... [ 22%] convert
writing output... [ 33%] index
writing output... [ 44%] installation
writing output... [ 55%] io
writing output... [ 66%] plot
writing output... [ 77%] processing
writing output... [ 88%] wfdb
writing output... [100%] wfdb-specifications

generating indices... genindex done
writing additional pages... search done
copying static files... done
copying extra files... done
dumping search index in English (code: en)... done
dumping object inventory... done
build succeeded, 29 warnings.

The HTML pages are in ../_readthedocs/html.

@briangow briangow merged commit 6850ad1 into main Mar 19, 2026
19 checks passed
@briangow briangow deleted the bg_rm_import branch March 19, 2026 19:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants