Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,8 @@ jobs:
uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1
with:
version: ${{ env.UV_VERSION }}
python-version: ${{ matrix.python-version }}
cache-suffix: py${{ matrix.python-version }}

- name: Sync dependencies (locked)
run: uv sync --locked --extra dev
Expand Down Expand Up @@ -122,6 +124,8 @@ jobs:
uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1
with:
version: ${{ env.UV_VERSION }}
python-version: ${{ matrix.python-version }}
cache-suffix: py${{ matrix.python-version }}

- name: Sync dependencies (locked)
run: uv sync --locked --extra dev
Expand Down Expand Up @@ -196,6 +200,8 @@ jobs:
uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1
with:
version: ${{ env.UV_VERSION }}
python-version: ${{ matrix.python-version }}
cache-suffix: py${{ matrix.python-version }}

- name: Sync dependencies (locked)
run: uv sync --locked --extra dev
Expand Down
4 changes: 1 addition & 3 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,7 @@ on:
workflow_dispatch: {}
push:
branches:
- "*"
- "*/*"
- "**"
- master
pull_request:
branches:
- master
Expand Down
12 changes: 6 additions & 6 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -23,12 +23,12 @@ repos:
- --non-interactive
- --config-file=pyproject.toml
additional_dependencies:
- pandas-stubs
- pydantic
- scipy-stubs
- types-openpyxl
- types-python-dateutil
- types-requests
- pandas-stubs>=2.1.2
- pydantic>=2.5.2
- scipy-stubs>=1.14.1.0
- types-openpyxl>=3.1.2
- types-python-dateutil>=2.8.2
- types-requests>=2.20.0
- repo: https://github.com/pre-commit/pygrep-hooks
rev: v1.10.0
hooks:
Expand Down
11 changes: 7 additions & 4 deletions docs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,15 @@ This directory contains the documentation for the openseries project, built usin

### Prerequisites

Install the documentation dependencies using uv:
From the repository root, install the documentation dependencies from the
lockfile (requires the pinned uv version used in `Makefile` / CI):

```bash
uv pip install -e ".[docs]"
uv sync --locked --extra docs
```

Alternatively, `make install` installs the `dev` and `docs` extras together.

### Building HTML Documentation

To build the HTML documentation:
Expand Down Expand Up @@ -192,8 +195,8 @@ When contributing to documentation:

**Missing modules:**

- Install missing dependencies: `uv pip install -e ".[docs]"`
- For ReadTheDocs builds, dependencies are managed through `pyproject.toml`
- Install missing dependencies: `uv sync --locked --extra docs`
- For ReadTheDocs builds, `docs/requirements.txt` must match the `docs` extra in `pyproject.toml`

**Broken links:**

Expand Down
Binary file modified docs/build/html/.doctrees/environment.pickle
Binary file not shown.
Binary file modified docs/build/html/.doctrees/user_guide/installation.doctree
Binary file not shown.
98 changes: 49 additions & 49 deletions docs/build/html/_modules/openseries/datefixer.html

Large diffs are not rendered by default.

634 changes: 317 additions & 317 deletions docs/build/html/_modules/openseries/frame.html

Large diffs are not rendered by default.

26 changes: 13 additions & 13 deletions docs/build/html/_modules/openseries/load_plotly.html
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,7 @@
<div itemprop="articleBody">

<h1>Source code for openseries.load_plotly</h1><div class="highlight"><pre>
<span></span><span class="sd">&quot;&quot;&quot;Function to load plotly layout and configuration from local json file.&quot;&quot;&quot;</span>
<span></span><span class="sd">"""Function to load plotly layout and configuration from local json file."""</span>

<span class="kn">from</span><span class="w"> </span><span class="nn">__future__</span><span class="w"> </span><span class="kn">import</span> <span class="n">annotations</span>

Expand All @@ -125,18 +125,18 @@ <h1>Source code for openseries.load_plotly</h1><div class="highlight"><pre>

<span class="n">logger</span> <span class="o">=</span> <span class="n">getLogger</span><span class="p">(</span><span class="vm">__name__</span><span class="p">)</span>

<span class="n">__all__</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;load_plotly_dict&quot;</span><span class="p">]</span>
<span class="n">__all__</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"load_plotly_dict"</span><span class="p">]</span>


<span class="k">def</span><span class="w"> </span><span class="nf">_check_remote_file_existence</span><span class="p">(</span><span class="n">url</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Check if remote file exists.</span>
<span class="w"> </span><span class="sd">"""Check if remote file exists.</span>

<span class="sd"> Args:</span>
<span class="sd"> url: Path to remote file.</span>

<span class="sd"> Returns:</span>
<span class="sd"> True if url is valid and False otherwise.</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="sd"> """</span>
<span class="n">ok_code</span> <span class="o">=</span> <span class="mi">200</span>

<span class="k">try</span><span class="p">:</span>
Expand All @@ -154,7 +154,7 @@ <h1>Source code for openseries.load_plotly</h1><div class="highlight"><pre>
<span class="o">*</span><span class="p">,</span>
<span class="n">responsive</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
<span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">tuple</span><span class="p">[</span><span class="n">PlotlyLayoutType</span><span class="p">,</span> <span class="n">CaptorLogoType</span><span class="p">]:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Load Plotly defaults.</span>
<span class="w"> </span><span class="sd">"""Load Plotly defaults.</span>

<span class="sd"> Args:</span>
<span class="sd"> responsive: Flag whether to load as responsive. Defaults to True.</span>
Expand All @@ -164,22 +164,22 @@ <h1>Source code for openseries.load_plotly</h1><div class="highlight"><pre>
<span class="sd"> where config_and_layout is the Plotly config and layout template dict,</span>
<span class="sd"> and logo is the Captor logo dict (may be empty if the remote logo is</span>
<span class="sd"> unavailable).</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="sd"> """</span>
<span class="n">package_dir</span> <span class="o">=</span> <span class="n">Path</span><span class="p">(</span><span class="vm">__file__</span><span class="p">)</span><span class="o">.</span><span class="n">parent</span>
<span class="n">layoutfile</span> <span class="o">=</span> <span class="n">package_dir</span> <span class="o">/</span> <span class="s2">&quot;plotly_layouts.json&quot;</span>
<span class="n">logofile</span> <span class="o">=</span> <span class="n">package_dir</span> <span class="o">/</span> <span class="s2">&quot;plotly_captor_logo.json&quot;</span>
<span class="n">layoutfile</span> <span class="o">=</span> <span class="n">package_dir</span> <span class="o">/</span> <span class="s2">"plotly_layouts.json"</span>
<span class="n">logofile</span> <span class="o">=</span> <span class="n">package_dir</span> <span class="o">/</span> <span class="s2">"plotly_captor_logo.json"</span>

<span class="k">with</span> <span class="n">layoutfile</span><span class="o">.</span><span class="n">open</span><span class="p">(</span><span class="n">mode</span><span class="o">=</span><span class="s2">&quot;r&quot;</span><span class="p">,</span> <span class="n">encoding</span><span class="o">=</span><span class="s2">&quot;utf-8&quot;</span><span class="p">)</span> <span class="k">as</span> <span class="n">layout_file</span><span class="p">:</span>
<span class="k">with</span> <span class="n">layoutfile</span><span class="o">.</span><span class="n">open</span><span class="p">(</span><span class="n">mode</span><span class="o">=</span><span class="s2">"r"</span><span class="p">,</span> <span class="n">encoding</span><span class="o">=</span><span class="s2">"utf-8"</span><span class="p">)</span> <span class="k">as</span> <span class="n">layout_file</span><span class="p">:</span>
<span class="n">fig</span> <span class="o">=</span> <span class="n">load</span><span class="p">(</span><span class="n">layout_file</span><span class="p">)</span>
<span class="k">with</span> <span class="n">logofile</span><span class="o">.</span><span class="n">open</span><span class="p">(</span><span class="n">mode</span><span class="o">=</span><span class="s2">&quot;r&quot;</span><span class="p">,</span> <span class="n">encoding</span><span class="o">=</span><span class="s2">&quot;utf-8&quot;</span><span class="p">)</span> <span class="k">as</span> <span class="n">logo_file</span><span class="p">:</span>
<span class="k">with</span> <span class="n">logofile</span><span class="o">.</span><span class="n">open</span><span class="p">(</span><span class="n">mode</span><span class="o">=</span><span class="s2">"r"</span><span class="p">,</span> <span class="n">encoding</span><span class="o">=</span><span class="s2">"utf-8"</span><span class="p">)</span> <span class="k">as</span> <span class="n">logo_file</span><span class="p">:</span>
<span class="n">logo</span> <span class="o">=</span> <span class="n">load</span><span class="p">(</span><span class="n">logo_file</span><span class="p">)</span>

<span class="k">if</span> <span class="ow">not</span> <span class="n">_check_remote_file_existence</span><span class="p">(</span><span class="n">url</span><span class="o">=</span><span class="n">logo</span><span class="p">[</span><span class="s2">&quot;source&quot;</span><span class="p">]):</span>
<span class="n">msg</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;Failed to add logo image from URL </span><span class="si">{</span><span class="n">logo</span><span class="p">[</span><span class="s1">&#39;source&#39;</span><span class="p">]</span><span class="si">}</span><span class="s2">&quot;</span>
<span class="k">if</span> <span class="ow">not</span> <span class="n">_check_remote_file_existence</span><span class="p">(</span><span class="n">url</span><span class="o">=</span><span class="n">logo</span><span class="p">[</span><span class="s2">"source"</span><span class="p">]):</span>
<span class="n">msg</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"Failed to add logo image from URL </span><span class="si">{</span><span class="n">logo</span><span class="p">[</span><span class="s1">'source'</span><span class="p">]</span><span class="si">}</span><span class="s2">"</span>
<span class="n">logger</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span>
<span class="n">logo</span> <span class="o">=</span> <span class="p">{}</span>

<span class="n">fig</span><span class="p">[</span><span class="s2">&quot;config&quot;</span><span class="p">]</span><span class="o">.</span><span class="n">update</span><span class="p">({</span><span class="s2">&quot;responsive&quot;</span><span class="p">:</span> <span class="n">responsive</span><span class="p">})</span>
<span class="n">fig</span><span class="p">[</span><span class="s2">"config"</span><span class="p">]</span><span class="o">.</span><span class="n">update</span><span class="p">({</span><span class="s2">"responsive"</span><span class="p">:</span> <span class="n">responsive</span><span class="p">})</span>

<span class="k">return</span> <span class="n">fig</span><span class="p">,</span> <span class="n">logo</span></div>

Expand Down
Loading