Skip to content

Commit

Permalink
Merge pull request #32 from OSIPI/poetry
Browse files Browse the repository at this point in the history
Poetry
  • Loading branch information
ltorres6 authored Jun 20, 2024
2 parents 684dd2e + f82ed41 commit e475090
Show file tree
Hide file tree
Showing 61 changed files with 2,156 additions and 1,916 deletions.
23 changes: 0 additions & 23 deletions .github/workflows/lint.yaml

This file was deleted.

39 changes: 39 additions & 0 deletions .github/workflows/pre-commit.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
name: Lint and Auto-Fix Code

on:
push:
pull_request:
branches:
- main

jobs:
pre-commit:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3

- name: Set up Python
uses: actions/setup-python@v3
with:
python-version: '3.9' # Specify the Python version you need

- name: Install Poetry
uses: Gr1N/setup-poetry@v8
with:
poetry-version: '1.8.3'

- name: Cache Poetry dependencies
uses: actions/cache@v3
with:
path: |
~/.cache/pypoetry
~/.virtualenvs
key: ${{ runner.os }}-poetry-${{ hashFiles('**/poetry.lock') }}
restore-keys: |
${{ runner.os }}-poetry-
- name: Install dependencies
run: poetry install

- name: Run pre-commit
run: poetry run pre-commit run --all-files
36 changes: 25 additions & 11 deletions .github/workflows/pytest-actions.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
# GitHub Actions Configuration for integrated testing using pytest
name: Test osipi

on: [push]
Expand All @@ -15,28 +14,43 @@ jobs:

steps:
- uses: actions/checkout@v3

- name: Set up Python 3.10
uses: actions/setup-python@v4
with:
python-version: '3.10'

- name: Set up Java
uses: actions/setup-java@v3
with:
java-version: '11'
distribution: 'adopt'
architecture: x64

- name: Install Poetry
uses: Gr1N/setup-poetry@v8
with:
poetry-version: '1.8.3' # Specify the Poetry version you need

- name: Cache Poetry dependencies
uses: actions/cache@v3
with:
path: |
~/.cache/pypoetry
~/.virtualenvs
key: ${{ runner.os }}-poetry-${{ hashFiles('**/poetry.lock') }}
restore-keys: |
${{ runner.os }}-poetry-
- name: Update lock file
run: poetry lock --no-update

- name: Install dependencies
run: |
python -m pip install --upgrade pip
python -m pip install -r requirements.txt
- name: Install osipi
run: |
python -m pip install -e .[docs]
python -m pip install -e .[tests]
run: poetry install

- name: Test with pytest
run: |
python -m pip install pytest pytest-cov
pytest --junitxml=junit/test-results.xml --cov=dbdicom tests/
run: poetry run pytest --junitxml=junit/test-results.xml --cov=dbdicom tests/

- name: Upload coverage to Codecov
if: runner.os == 'Windows'
uses: codecov/codecov-action@v3
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,8 @@ dist
pytest_cache
src/osipi/__pycache__
tests/__pycache__
.coverage
junit
docs/build
docs/source/generated
docs/source/sg_execution_times.rst
7 changes: 2 additions & 5 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,5 @@ repos:
rev: v6.1.2 # Use the latest version
hooks:
- id: rstcheck
entry: rstcheck --ignore-messages="(Hyperlink target .* is not referenced.|No directive entry for
.*|Unknown directive type .*|Duplicate explicit target name.*)"
args: [
"--ignore-roles", "ref",
]
args: ["--ignore-directives=autosummary,autofunction,minigallery,image-sg","--ignore-messages=(Hyperlink target *|Duplicate explicit target name*)"]
additional_dependencies: [sphinx]
5 changes: 5 additions & 0 deletions .rstcheck.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
[rstcheck]
ignore-directives =
autosummary,
image-sg,
minigallery
101 changes: 101 additions & 0 deletions docs/build/html/_sphinx_design_static/design-tabs.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
// @ts-check

// Extra JS capability for selected tabs to be synced
// The selection is stored in local storage so that it persists across page loads.

/**
* @type {Record<string, HTMLElement[]>}
*/
let sd_id_to_elements = {};
const storageKeyPrefix = "sphinx-design-tab-id-";

/**
* Create a key for a tab element.
* @param {HTMLElement} el - The tab element.
* @returns {[string, string, string] | null} - The key.
*
*/
function create_key(el) {
let syncId = el.getAttribute("data-sync-id");
let syncGroup = el.getAttribute("data-sync-group");
if (!syncId || !syncGroup) return null;
return [syncGroup, syncId, syncGroup + "--" + syncId];
}

/**
* Initialize the tab selection.
*
*/
function ready() {
// Find all tabs with sync data

/** @type {string[]} */
let groups = [];

document.querySelectorAll(".sd-tab-label").forEach((label) => {
if (label instanceof HTMLElement) {
let data = create_key(label);
if (data) {
let [group, id, key] = data;

// add click event listener
// @ts-ignore
label.onclick = onSDLabelClick;

// store map of key to elements
if (!sd_id_to_elements[key]) {
sd_id_to_elements[key] = [];
}
sd_id_to_elements[key].push(label);

if (groups.indexOf(group) === -1) {
groups.push(group);
// Check if a specific tab has been selected via URL parameter
const tabParam = new URLSearchParams(window.location.search).get(
group
);
if (tabParam) {
console.log(
"sphinx-design: Selecting tab id for group '" +
group +
"' from URL parameter: " +
tabParam
);
window.sessionStorage.setItem(storageKeyPrefix + group, tabParam);
}
}

// Check is a specific tab has been selected previously
let previousId = window.sessionStorage.getItem(
storageKeyPrefix + group
);
if (previousId === id) {
// console.log(
// "sphinx-design: Selecting tab from session storage: " + id
// );
// @ts-ignore
label.previousElementSibling.checked = true;
}
}
}
});
}

/**
* Activate other tabs with the same sync id.
*
* @this {HTMLElement} - The element that was clicked.
*/
function onSDLabelClick() {
let data = create_key(this);
if (!data) return;
let [group, id, key] = data;
for (const label of sd_id_to_elements[key]) {
if (label === this) continue;
// @ts-ignore
label.previousElementSibling.checked = true;
}
window.sessionStorage.setItem(storageKeyPrefix + group, id);
}

document.addEventListener("DOMContentLoaded", ready, false);

Large diffs are not rendered by default.

8 changes: 5 additions & 3 deletions docs/examples/aif/plot_aif_parker.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
"""======================================
"""
======================================
The Parker AIF - a play with variables
======================================
The Parker AIF - a play with variables ====================================== Simulating a Parker
AIF with different settings.
Simulating a Parker AIF with different settings.
"""

Expand Down
Binary file removed docs/source/generated/.DS_Store
Binary file not shown.
16 changes: 0 additions & 16 deletions docs/source/generated/api/osipi.aif_georgiou.rst

This file was deleted.

16 changes: 0 additions & 16 deletions docs/source/generated/api/osipi.aif_parker.rst

This file was deleted.

16 changes: 0 additions & 16 deletions docs/source/generated/api/osipi.aif_weinmann.rst

This file was deleted.

16 changes: 0 additions & 16 deletions docs/source/generated/api/osipi.extended_tofts.rst

This file was deleted.

16 changes: 0 additions & 16 deletions docs/source/generated/api/osipi.tofts.rst

This file was deleted.

Empty file.
38 changes: 0 additions & 38 deletions docs/source/generated/backreferences/osipi.aif_parker.examples

This file was deleted.

Empty file.
Loading

0 comments on commit e475090

Please sign in to comment.