Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
76 commits
Select commit Hold shift + click to select a range
2348e34
new changes for the 3d gui and the fitting panel for workable version
Apr 10, 2025
7a33a6a
new additions with the main interface and the 4d gui
Apr 10, 2025
d175e85
added set points for the cursors and save button to extract the relev…
Apr 10, 2025
38cc77c
Changed the name of the class to Gui_3d
Apr 10, 2025
edecfcf
update imports
rettigl Apr 11, 2025
263c72b
Took out the cursors for the EDC graph since it will be treated in th…
Apr 11, 2025
82bac6e
changed the method of plotting the xaarays
Apr 11, 2025
c690b4a
added small comments
Apr 11, 2025
e993b0e
small change
Apr 11, 2025
c8d6497
add extraction result button for the Jupyter Notebook and corrected s…
Apr 12, 2025
ab5c98a
Created a method for double clicking on the graph and relate it to a …
Apr 15, 2025
e32c1f5
added the new clicking feature to Gui_3d
Apr 15, 2025
35a867c
added the new clicking feature to show_window_4d
Apr 15, 2025
f66ca06
basically no modification here
Apr 15, 2025
4eef8dd
added the new clicking feature to graphs
Apr 15, 2025
2bc5265
added a template file for Jupyter Notebook
Apr 15, 2025
b936f05
corrected a small bug related to clearing the graph and leaving the c…
Apr 15, 2025
381f9ca
created a fit panel for a single 1D xarray data
Apr 15, 2025
f5db38b
added an example for the fit panel single
Apr 15, 2025
c688ac1
added a test file for fit panel single
Apr 15, 2025
f29c452
cleaned up a bit
Apr 16, 2025
9a5f4cd
cleaned up tutorial
Apr 16, 2025
8dea3c8
cleaning up additional prints and so on
Apr 16, 2025
ece7604
I add a loading function for nexus files on Main.py
Apr 16, 2025
c87fc1b
fixed the sinusoid fit function
Apr 16, 2025
495a09d
I change the loading function for nexus files to use nxarray
Apr 17, 2025
9c8b12b
added the feature to extract results by right clicking
Apr 17, 2025
c9b8079
added the feature to extract results by right clicking and added extr…
Apr 17, 2025
2f8da32
function for the right click feature
Apr 17, 2025
37a577d
add nxarray dependency
Arora0 Apr 17, 2025
e6995de
modified the whole structure and separated the cursors and dots in an…
Apr 18, 2025
60a85a3
the cursor and dot handlers
Apr 18, 2025
15c8af7
modified accordingly the fit panel since the input array got modified
Apr 18, 2025
14306e8
added the error bars which is fed to graphs
Apr 23, 2025
08120d6
added the error bars and checkboxes to show them, added a cursor for …
Apr 23, 2025
72a07a5
removed an usued block
Apr 23, 2025
eee3402
added cursors for the delay in the energy_time plot from all the time…
Apr 23, 2025
f955c1c
modified the logic a bit by changing the checkbox_changed and deleted…
Apr 23, 2025
5818cb7
added colorscale sliders to the show_4d_window
Apr 24, 2025
7227446
the function for adding a colorscale slider with two handlers for min…
Apr 24, 2025
3e31a22
changed the initialization of the cursors and how they are updated
Apr 25, 2025
4c28ff3
cleaned out some prints
Apr 25, 2025
40b509a
cleaned up
Apr 25, 2025
9607b6b
changed the structure for the 4 plots each its own canvas and added t…
Apr 25, 2025
d483815
added a colorbar
Apr 25, 2025
e26036c
made it more general
Apr 25, 2025
22a458b
added a feature to keep the log scale on when updating the graph with…
Apr 25, 2025
ed8027b
added mpes_tools.
Apr 25, 2025
a47bb54
small clean up
Apr 25, 2025
9d7c1e2
deleted unwanted import
Apr 25, 2025
4e35ccf
added superqt into the dependencies
Apr 25, 2025
0430aff
clean up
Apr 25, 2025
5df5e41
small changes
Apr 25, 2025
2a7e0c3
merged Arpes_gui_nxs into Arpes_gui
Apr 25, 2025
917bd76
added the nxarray that I mistakenly didnt merge earlier
Apr 25, 2025
572a4df
fixed a bug with the cursors for the fit
Apr 25, 2025
70d4d9f
fixed a bug with leaving a touched cell in the table empty
Apr 25, 2025
96d888b
fixed changes suggested in the pull request
May 6, 2025
936dee1
changed the call for Gui_3d
May 6, 2025
762f71f
took out old imports
May 6, 2025
8ff652e
took out old imports and the external call
May 6, 2025
7f76735
deleted unnecessary or unfinished files
May 6, 2025
7aadfd6
deleted unnecessary or unfinished files
May 6, 2025
3258102
bug fix
May 6, 2025
a019a5e
Add download path for example file
rettigl May 7, 2025
1629809
update easy access api
rettigl May 7, 2025
18cfc9a
stored the colorscale variables
May 7, 2025
8c6c7f8
Merge remote-tracking branch 'origin/main' into Arpes_gui
rettigl May 7, 2025
657b3ad
format
rettigl May 7, 2025
27e7777
add rudimentary tests
rettigl May 7, 2025
9669be4
add workflows
rettigl May 7, 2025
2c8246d
add ipython to requirements
rettigl May 7, 2025
25046bd
use pytest-qt
rettigl May 7, 2025
4e34e2b
try different approach
rettigl May 7, 2025
c5139fb
run tests in offscreen platform
rettigl May 7, 2025
9e94468
allow python3.13, use main pypi repo
rettigl May 7, 2025
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
16 changes: 16 additions & 0 deletions .cspell/custom-dictionary.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
ARPES
cmap
codemirror
ipython
kernelspec
matplotlib
mpes
nbconvert
nbformat
numpy
nxarray
pygments
pyplot
pytestqt
qtbot
venv
45 changes: 45 additions & 0 deletions .github/workflows/linting.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
name: linting

# Triggers the workflow on push for all branches
on:
push:

jobs:
lint:
runs-on: ubuntu-latest
steps:
# Check out repo and set up Python
- uses: actions/checkout@v4
with:
fetch-depth: 0

# Setup python

- name: Install uv and set the python version to 3.12
uses: astral-sh/setup-uv@v5
with:
python-version: 3.12

- name: Install package and dev dependencies
run: |
uv pip install ".[dev]"

# Linting steps, execute all linters even if one fails
- name: ruff check
run:
ruff check src/mpes_tools tests
- name: ruff formatting
if: ${{ always() }}
run:
ruff format --check src/mpes_tools tests
- name: mypy
if: ${{ always() }}
run:
mypy src/mpes_tools tests
- name: spellcheck
if: ${{ always() }}
uses: streetsidesoftware/cspell-action@v6
with:
check_dot_files: false
incremental_files_only: false
config: './cspell.json'
41 changes: 41 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
name: Upload Python Package

# Workflow runs a release job on every published tag.
# The package is distributed as sed-processor
on:
release:
types: [published]

env:
python-version: 3.12

jobs:
release:
name: Upload release to PyPI
runs-on: ubuntu-latest
environment:
name: pypi
url: https://pypi.org/p/mpes-tools
# name: testpypi
# url: https://test.pypi.org/p/mpes-tools
permissions:
id-token: write

steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Install uv and set the python version to ${{ env.python-version }}
uses: astral-sh/setup-uv@v5
with:
python-version: ${{ env.python-version }}

- name: Build package
run: uv build

- name: Publish package distributions to PyPI
uses: pypa/gh-action-pypi-publish@release/v1
with:
verbose: true
# repository-url: https://test.pypi.org/legacy/
40 changes: 40 additions & 0 deletions .github/workflows/testing_coverage.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
name: pytest and coverage report

# Triggers the workflow on push for all branches and PR only for main
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]

jobs:
pytest:
runs-on: ubuntu-latest
steps:
# Check out repo and set up Python
- uses: actions/checkout@v4
with:
fetch-depth: 0

# Setup python
- name: Install uv and set the python version to 3.12
uses: astral-sh/setup-uv@v5
with:
python-version: 3.12

- name: Install package
run: |
uv pip install -e ".[dev]"

# Run pytest with coverage report, saving to xml
- name: Run tests on python 3.12
run: |
export QT_QPA_PLATFORM=offscreen
pytest --cov --cov-report xml:cobertura.xml --full-trace --show-capture=no -sv -n auto tests/

# Take report and upload to coveralls
- name: Coveralls
uses: coverallsapp/github-action@v2
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
file: ./cobertura.xml
38 changes: 38 additions & 0 deletions .github/workflows/testing_multiversion.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
# Tests for all supported versions [Python 3.9|3.10|3.11|3.12]
name: Unit Tests

on:
schedule:
- cron: '0 1 * * 1'
workflow_dispatch:
push:
branches: [ main ]

jobs:
pytest:
runs-on: ubuntu-latest
# Using matrix strategy
strategy:
fail-fast: false
matrix:
python-version: ["3.9", "3.10", "3.11", "3.12", "3.13"]

steps:
# Check out repo and set up Python
- uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Install uv and set the python version to ${{ matrix.python-version }}
uses: astral-sh/setup-uv@v5
with:
python-version: ${{ matrix.python-version }}

- name: Install package and test dependencies
run: |
uv pip install ".[dev]"

- name: Run tests on python ${{matrix.python-version}}
run: |
export QT_QPA_PLATFORM=offscreen
pytest --full-trace --show-capture=no -sv -n auto tests/
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -161,4 +161,5 @@ cython_debug/
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
#.idea/

poetry.toml
poetry.toml
*.nxs
7 changes: 6 additions & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -19,22 +19,26 @@ authors = [
readme = "README.md"
keywords = ["mpes", "arpes", "trarpes", "gui"]
license = { file = "LICENSE" }
requires-python = ">=3.9,<3.13"
requires-python = ">=3.9"
classifiers = [
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"License :: OSI Approved :: MIT License",
"Operating System :: OS Independent",
]

dependencies = [
"ipython>=8.0.0",
"lmfit>=1.0.3",
"matplotlib>=3.8.0",
"numpy>=1.26.1,<2.0",
"PyQt5>=5.0.0",
"xarray>=0.20.2",
"nxarray>=0.4.4",
"superqt >=0.3.0",
]

[project.urls]
Expand All @@ -47,6 +51,7 @@ dev = [
"pytest-cov>=3.0.0",
"pytest-xdist>=2.5.0",
"pytest-clarity>=1.0.1",
"pytest-qt",
"ruff<0.3.0,>=0.1.7",
"mypy<1.10.0,>=1.6.0",
"pre-commit>=3.0.0",
Expand Down
Loading
Loading