phasorpy 0.1.dev0__tar.gz → 0.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {phasorpy-0.1.dev0 → phasorpy-0.2}/.codecov.yml +11 -11
- {phasorpy-0.1.dev0 → phasorpy-0.2}/.github/dependabot.yml +11 -11
- phasorpy-0.2/.github/pull_request_template.md +15 -0
- phasorpy-0.2/.github/workflows/build_sdist.yml +77 -0
- {phasorpy-0.1.dev0 → phasorpy-0.2}/.github/workflows/build_wheels.yml +11 -5
- {phasorpy-0.1.dev0 → phasorpy-0.2}/.github/workflows/run-tests.yml +31 -3
- {phasorpy-0.1.dev0 → phasorpy-0.2}/PKG-INFO +10 -10
- {phasorpy-0.1.dev0 → phasorpy-0.2}/README.md +2 -2
- phasorpy-0.2/docs/_static/custom-icons.js +16 -0
- phasorpy-0.2/docs/_static/switcher.json +13 -0
- {phasorpy-0.1.dev0 → phasorpy-0.2}/docs/acknowledgments.rst +3 -0
- {phasorpy-0.1.dev0 → phasorpy-0.2}/docs/conf.py +30 -5
- {phasorpy-0.1.dev0 → phasorpy-0.2}/docs/contributing.rst +2 -2
- {phasorpy-0.1.dev0 → phasorpy-0.2}/docs/index.rst +17 -16
- {phasorpy-0.1.dev0 → phasorpy-0.2}/docs/phasor_approach.rst +17 -1
- phasorpy-0.2/docs/release.rst +176 -0
- {phasorpy-0.1.dev0 → phasorpy-0.2}/docs/sg_execution_times.rst +15 -15
- {phasorpy-0.1.dev0 → phasorpy-0.2}/pyproject.toml +7 -7
- {phasorpy-0.1.dev0 → phasorpy-0.2}/requirements_dev.txt +3 -2
- {phasorpy-0.1.dev0 → phasorpy-0.2}/src/phasorpy/_phasorpy.pyx +333 -1
- {phasorpy-0.1.dev0 → phasorpy-0.2}/src/phasorpy/_utils.py +27 -14
- {phasorpy-0.1.dev0 → phasorpy-0.2}/src/phasorpy/datasets.py +20 -0
- {phasorpy-0.1.dev0 → phasorpy-0.2}/src/phasorpy/io.py +7 -9
- {phasorpy-0.1.dev0 → phasorpy-0.2}/src/phasorpy/phasor.py +227 -51
- phasorpy-0.2/src/phasorpy/utils.py +368 -0
- {phasorpy-0.1.dev0 → phasorpy-0.2}/src/phasorpy/version.py +1 -1
- {phasorpy-0.1.dev0 → phasorpy-0.2}/src/phasorpy.egg-info/PKG-INFO +10 -10
- {phasorpy-0.1.dev0 → phasorpy-0.2}/src/phasorpy.egg-info/SOURCES.txt +8 -4
- {phasorpy-0.1.dev0 → phasorpy-0.2}/src/phasorpy.egg-info/requires.txt +1 -1
- {phasorpy-0.1.dev0 → phasorpy-0.2}/tests/test__utils.py +23 -18
- {phasorpy-0.1.dev0 → phasorpy-0.2}/tests/test_io.py +2 -2
- {phasorpy-0.1.dev0 → phasorpy-0.2}/tests/test_nan.py +16 -5
- {phasorpy-0.1.dev0 → phasorpy-0.2}/tests/test_phasor.py +384 -20
- phasorpy-0.2/tests/test_utils.py +140 -0
- phasorpy-0.2/tools/build_manylinux2014.cmd +13 -0
- phasorpy-0.2/tools/build_manylinux2014.sh +10 -0
- phasorpy-0.2/tools/sha256.py +36 -0
- phasorpy-0.2/tutorials/api/phasorpy_multi-harmonic.py +209 -0
- {phasorpy-0.1.dev0 → phasorpy-0.2}/tutorials/phasorpy_introduction.py +46 -12
- phasorpy-0.1.dev0/.github/pull_request_template.md +0 -24
- phasorpy-0.1.dev0/.github/workflows/release-pypi.yml +0 -75
- phasorpy-0.1.dev0/docs/release.rst +0 -11
- phasorpy-0.1.dev0/src/phasorpy/utils.py +0 -68
- phasorpy-0.1.dev0/tests/test_utils.py +0 -29
- phasorpy-0.1.dev0/tutorials/misc/README.rst +0 -2
- phasorpy-0.1.dev0/tutorials/misc/phasorpy_logo.py +0 -23
- {phasorpy-0.1.dev0 → phasorpy-0.2}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {phasorpy-0.1.dev0 → phasorpy-0.2}/.github/workflows/coverage.yml +0 -0
- {phasorpy-0.1.dev0 → phasorpy-0.2}/.github/workflows/deploy-docs.yml +0 -0
- {phasorpy-0.1.dev0 → phasorpy-0.2}/.gitignore +0 -0
- {phasorpy-0.1.dev0 → phasorpy-0.2}/.pre-commit-config.yaml +0 -0
- {phasorpy-0.1.dev0 → phasorpy-0.2}/CHANGELOG.md +0 -0
- {phasorpy-0.1.dev0 → phasorpy-0.2}/CODE_OF_CONDUCT.md +0 -0
- {phasorpy-0.1.dev0 → phasorpy-0.2}/CONTRIBUTING.md +0 -0
- {phasorpy-0.1.dev0 → phasorpy-0.2}/LICENSE.txt +0 -0
- {phasorpy-0.1.dev0 → phasorpy-0.2}/MANIFEST.in +0 -0
- {phasorpy-0.1.dev0 → phasorpy-0.2}/docs/Makefile +0 -0
- {phasorpy-0.1.dev0 → phasorpy-0.2}/docs/_static/categorical.png +0 -0
- {phasorpy-0.1.dev0 → phasorpy-0.2}/docs/_static/logo.png +0 -0
- {phasorpy-0.1.dev0 → phasorpy-0.2}/docs/_static/srgb_spectrum.png +0 -0
- {phasorpy-0.1.dev0 → phasorpy-0.2}/docs/api/_phasorpy.rst +0 -0
- {phasorpy-0.1.dev0 → phasorpy-0.2}/docs/api/_utils.rst +0 -0
- {phasorpy-0.1.dev0 → phasorpy-0.2}/docs/api/cli.rst +0 -0
- {phasorpy-0.1.dev0 → phasorpy-0.2}/docs/api/color.rst +0 -0
- {phasorpy-0.1.dev0 → phasorpy-0.2}/docs/api/components.rst +0 -0
- {phasorpy-0.1.dev0 → phasorpy-0.2}/docs/api/cursors.rst +0 -0
- {phasorpy-0.1.dev0 → phasorpy-0.2}/docs/api/datasets.rst +0 -0
- {phasorpy-0.1.dev0 → phasorpy-0.2}/docs/api/index.rst +0 -0
- {phasorpy-0.1.dev0 → phasorpy-0.2}/docs/api/io.rst +0 -0
- {phasorpy-0.1.dev0 → phasorpy-0.2}/docs/api/phasor.rst +0 -0
- {phasorpy-0.1.dev0 → phasorpy-0.2}/docs/api/phasorpy.rst +0 -0
- {phasorpy-0.1.dev0 → phasorpy-0.2}/docs/api/plot.rst +0 -0
- {phasorpy-0.1.dev0 → phasorpy-0.2}/docs/api/utils.rst +0 -0
- {phasorpy-0.1.dev0 → phasorpy-0.2}/docs/code_of_conduct.rst +0 -0
- {phasorpy-0.1.dev0 → phasorpy-0.2}/docs/license.rst +0 -0
- {phasorpy-0.1.dev0 → phasorpy-0.2}/docs/make.bat +0 -0
- {phasorpy-0.1.dev0 → phasorpy-0.2}/requirements_min.txt +0 -0
- {phasorpy-0.1.dev0 → phasorpy-0.2}/setup.cfg +0 -0
- {phasorpy-0.1.dev0 → phasorpy-0.2}/setup.py +0 -0
- {phasorpy-0.1.dev0 → phasorpy-0.2}/src/phasorpy/__init__.py +0 -0
- {phasorpy-0.1.dev0 → phasorpy-0.2}/src/phasorpy/__main__.py +0 -0
- {phasorpy-0.1.dev0 → phasorpy-0.2}/src/phasorpy/_typing.py +0 -0
- {phasorpy-0.1.dev0 → phasorpy-0.2}/src/phasorpy/cli.py +0 -0
- {phasorpy-0.1.dev0 → phasorpy-0.2}/src/phasorpy/color.py +0 -0
- {phasorpy-0.1.dev0 → phasorpy-0.2}/src/phasorpy/components.py +0 -0
- {phasorpy-0.1.dev0 → phasorpy-0.2}/src/phasorpy/conftest.py +0 -0
- {phasorpy-0.1.dev0 → phasorpy-0.2}/src/phasorpy/cursors.py +0 -0
- {phasorpy-0.1.dev0 → phasorpy-0.2}/src/phasorpy/plot.py +0 -0
- {phasorpy-0.1.dev0 → phasorpy-0.2}/src/phasorpy/py.typed +0 -0
- {phasorpy-0.1.dev0 → phasorpy-0.2}/src/phasorpy.egg-info/dependency_links.txt +0 -0
- {phasorpy-0.1.dev0 → phasorpy-0.2}/src/phasorpy.egg-info/entry_points.txt +0 -0
- {phasorpy-0.1.dev0 → phasorpy-0.2}/src/phasorpy.egg-info/not-zip-safe +0 -0
- {phasorpy-0.1.dev0 → phasorpy-0.2}/src/phasorpy.egg-info/top_level.txt +0 -0
- {phasorpy-0.1.dev0 → phasorpy-0.2}/tests/conftest.py +0 -0
- {phasorpy-0.1.dev0 → phasorpy-0.2}/tests/test__phasorpy.py +0 -0
- {phasorpy-0.1.dev0 → phasorpy-0.2}/tests/test__typing.py +0 -0
- {phasorpy-0.1.dev0 → phasorpy-0.2}/tests/test_cli.py +0 -0
- {phasorpy-0.1.dev0 → phasorpy-0.2}/tests/test_color.py +0 -0
- {phasorpy-0.1.dev0 → phasorpy-0.2}/tests/test_components.py +0 -0
- {phasorpy-0.1.dev0 → phasorpy-0.2}/tests/test_cursors.py +0 -0
- {phasorpy-0.1.dev0 → phasorpy-0.2}/tests/test_datasets.py +0 -0
- {phasorpy-0.1.dev0 → phasorpy-0.2}/tests/test_phasorpy.py +0 -0
- {phasorpy-0.1.dev0 → phasorpy-0.2}/tests/test_plot.py +0 -0
- {phasorpy-0.1.dev0 → phasorpy-0.2}/tutorials/README.rst +0 -0
- {phasorpy-0.1.dev0 → phasorpy-0.2}/tutorials/api/README.rst +0 -0
- {phasorpy-0.1.dev0 → phasorpy-0.2}/tutorials/api/phasorpy_components.py +0 -0
- {phasorpy-0.1.dev0 → phasorpy-0.2}/tutorials/api/phasorpy_cursors.py +0 -0
- {phasorpy-0.1.dev0 → phasorpy-0.2}/tutorials/api/phasorpy_fret.py +0 -0
- {phasorpy-0.1.dev0 → phasorpy-0.2}/tutorials/api/phasorpy_lifetime_to_signal.py +0 -0
- {phasorpy-0.1.dev0 → phasorpy-0.2}/tutorials/api/phasorpy_pca.py +0 -0
- {phasorpy-0.1.dev0 → phasorpy-0.2}/tutorials/api/phasorpy_phasor_from_lifetime.py +0 -0
- {phasorpy-0.1.dev0 → phasorpy-0.2}/tutorials/api/phasorpy_phasorplot.py +0 -0
- {phasorpy-0.1.dev0 → phasorpy-0.2}/tutorials/applications/README.rst +0 -0
- {phasorpy-0.1.dev0 → phasorpy-0.2}/tutorials/benchmarks/README.rst +0 -0
- {phasorpy-0.1.dev0 → phasorpy-0.2}/tutorials/benchmarks/phasorpy_phasor_from_signal.py +0 -0
- {phasorpy-0.1.dev0 → phasorpy-0.2}/tutorials/phasorpy_lfd_workshop.py +0 -0
@@ -1,11 +1,11 @@
|
|
1
|
-
codecov:
|
2
|
-
notify:
|
3
|
-
require_ci_to_pass: false
|
4
|
-
after_n_builds: 1
|
5
|
-
coverage:
|
6
|
-
status:
|
7
|
-
project:
|
8
|
-
default:
|
9
|
-
threshold: 0.1%
|
10
|
-
informational: true
|
11
|
-
comment: off
|
1
|
+
codecov:
|
2
|
+
notify:
|
3
|
+
require_ci_to_pass: false
|
4
|
+
after_n_builds: 1
|
5
|
+
coverage:
|
6
|
+
status:
|
7
|
+
project:
|
8
|
+
default:
|
9
|
+
threshold: 0.1%
|
10
|
+
informational: true
|
11
|
+
comment: off
|
@@ -1,11 +1,11 @@
|
|
1
|
-
version: 2
|
2
|
-
|
3
|
-
updates:
|
4
|
-
- package-ecosystem: "github-actions"
|
5
|
-
directory: "/"
|
6
|
-
schedule:
|
7
|
-
interval: "monthly"
|
8
|
-
groups:
|
9
|
-
github-actions:
|
10
|
-
patterns:
|
11
|
-
- "*"
|
1
|
+
version: 2
|
2
|
+
|
3
|
+
updates:
|
4
|
+
- package-ecosystem: "github-actions"
|
5
|
+
directory: "/"
|
6
|
+
schedule:
|
7
|
+
interval: "monthly"
|
8
|
+
groups:
|
9
|
+
github-actions:
|
10
|
+
patterns:
|
11
|
+
- "*"
|
@@ -0,0 +1,15 @@
|
|
1
|
+
## Description
|
2
|
+
|
3
|
+
...
|
4
|
+
|
5
|
+
## Checklist
|
6
|
+
|
7
|
+
- [ ] The pull request title and description are concise.
|
8
|
+
- [ ] Related issues are linked in the description.
|
9
|
+
- [ ] New dependencies are explained.
|
10
|
+
- [ ] The source code and documentation can be distributed under the [MIT license](https://www.phasorpy.org/docs/stable/license/).
|
11
|
+
- [ ] The source code adheres to [code standards](https://www.phasorpy.org/docs/stable/contributing/#code-standards).
|
12
|
+
- [ ] New classes, functions, and features are thoroughly [tested](https://www.phasorpy.org/docs/stable/contributing/#tests).
|
13
|
+
- [ ] New, user-facing classes, functions, and features are [documented](https://www.phasorpy.org/docs/stable/contributing/#documentation).
|
14
|
+
- [ ] New features are covered in tutorials.
|
15
|
+
- [ ] No files other than source code, documentation, and project settings are added to the repository.
|
@@ -0,0 +1,77 @@
|
|
1
|
+
name: Build sdist
|
2
|
+
|
3
|
+
on:
|
4
|
+
push:
|
5
|
+
tags:
|
6
|
+
- "*"
|
7
|
+
branches:
|
8
|
+
- main
|
9
|
+
pull_request:
|
10
|
+
branches:
|
11
|
+
- main
|
12
|
+
workflow_dispatch:
|
13
|
+
|
14
|
+
jobs:
|
15
|
+
build_artifacts:
|
16
|
+
name: Build sdist
|
17
|
+
runs-on: ubuntu-latest
|
18
|
+
strategy:
|
19
|
+
fail-fast: false
|
20
|
+
|
21
|
+
steps:
|
22
|
+
- uses: actions/checkout@v4
|
23
|
+
with:
|
24
|
+
submodules: true
|
25
|
+
fetch-depth: 0
|
26
|
+
- uses: actions/setup-python@v5
|
27
|
+
with:
|
28
|
+
python-version: "3.12"
|
29
|
+
- name: Install PyBuild
|
30
|
+
run: |
|
31
|
+
python -m pip install -U build
|
32
|
+
- name: Build sdist
|
33
|
+
run: |
|
34
|
+
python -m build --sdist .
|
35
|
+
- uses: actions/upload-artifact@v4
|
36
|
+
with:
|
37
|
+
name: sdist
|
38
|
+
path: dist
|
39
|
+
|
40
|
+
test_artifacts:
|
41
|
+
name: Test sdist
|
42
|
+
needs: [build_artifacts]
|
43
|
+
runs-on: ubuntu-latest
|
44
|
+
steps:
|
45
|
+
- uses: actions/download-artifact@v4
|
46
|
+
with:
|
47
|
+
name: sdist
|
48
|
+
path: dist
|
49
|
+
- uses: actions/setup-python@v5
|
50
|
+
with:
|
51
|
+
python-version: "3.12"
|
52
|
+
- run: |
|
53
|
+
ls
|
54
|
+
ls dist
|
55
|
+
python -m pip install -U twine setuptools build wheel numpy Cython
|
56
|
+
python -m twine check dist/*
|
57
|
+
python -m pip install --upgrade --no-build-isolation --no-cache-dir --no-deps --pre --no-index --find-links=dist phasorpy
|
58
|
+
python -c"from phasorpy import __version__;print(__version__)"
|
59
|
+
|
60
|
+
# Upload sdist and wheels manually for now
|
61
|
+
#
|
62
|
+
# upload_artifacts:
|
63
|
+
# name: Upload release to PyPI
|
64
|
+
# needs: [test_artifacts]
|
65
|
+
# runs-on: ubuntu-latest
|
66
|
+
# environment:
|
67
|
+
# name: pypi
|
68
|
+
# url: https://pypi.org/p/phasorpy
|
69
|
+
# permissions:
|
70
|
+
# id-token: write
|
71
|
+
# if: github.event_name == 'push' && startsWith(github.event.ref, 'refs/tags/v')
|
72
|
+
# steps:
|
73
|
+
# - uses: actions/download-artifact@v4
|
74
|
+
# with:
|
75
|
+
# name: releases
|
76
|
+
# path: dist
|
77
|
+
# - uses: pypa/gh-action-pypi-publish@release/v1
|
@@ -12,7 +12,6 @@ on:
|
|
12
12
|
workflow_dispatch:
|
13
13
|
|
14
14
|
env:
|
15
|
-
CIBW_TEST_SKIP: "cp313*"
|
16
15
|
MPLBACKEND: agg
|
17
16
|
|
18
17
|
jobs:
|
@@ -21,16 +20,23 @@ jobs:
|
|
21
20
|
runs-on: ${{ matrix.os }}
|
22
21
|
strategy:
|
23
22
|
matrix:
|
24
|
-
os: [ubuntu-22.04, macos-
|
23
|
+
os: [ubuntu-22.04, macos-13, windows-2019]
|
25
24
|
steps:
|
26
25
|
- uses: actions/checkout@v4
|
27
|
-
-
|
26
|
+
# - name: Set up QEMU
|
27
|
+
# if: runner.os == 'Linux'
|
28
|
+
# uses: docker/setup-qemu-action@v3
|
29
|
+
# with:
|
30
|
+
# platforms: all
|
31
|
+
- uses: pypa/cibuildwheel@v2.21.3
|
28
32
|
env:
|
29
|
-
#
|
30
|
-
|
33
|
+
# Building and testing manylinux2014_aarch64 too is slow.
|
34
|
+
# See https://github.com/phasorpy/phasorpy/pull/135
|
35
|
+
# CIBW_ARCHS_LINUX: x86_64 aarch64
|
31
36
|
CIBW_ARCHS_LINUX: auto
|
32
37
|
CIBW_ARCHS_MACOS: x86_64 arm64
|
33
38
|
CIBW_ARCHS_WINDOWS: AMD64 ARM64
|
39
|
+
CIBW_BUILD_VERBOSITY: 2
|
34
40
|
- uses: actions/upload-artifact@v4
|
35
41
|
with:
|
36
42
|
path: ./wheelhouse/*.whl
|
@@ -55,7 +55,7 @@ jobs:
|
|
55
55
|
strategy:
|
56
56
|
fail-fast: false
|
57
57
|
matrix:
|
58
|
-
os: ["windows-2019", "macos-
|
58
|
+
os: ["windows-2019", "macos-13"]
|
59
59
|
python-version: ["3.10"]
|
60
60
|
# 3.12 tested with cibuildwheel
|
61
61
|
steps:
|
@@ -84,10 +84,10 @@ jobs:
|
|
84
84
|
strategy:
|
85
85
|
fail-fast: false
|
86
86
|
matrix:
|
87
|
-
os: ["ubuntu-22.04", "windows-2019", "macos-
|
87
|
+
os: ["ubuntu-22.04", "windows-2019", "macos-13"]
|
88
88
|
steps:
|
89
89
|
- uses: actions/checkout@v4
|
90
|
-
- uses: pypa/cibuildwheel@v2.
|
90
|
+
- uses: pypa/cibuildwheel@v2.21.3
|
91
91
|
env:
|
92
92
|
# CIBW_ENVIRONMENT: "PIP_PRE=1"
|
93
93
|
CIBW_BUILD_VERBOSITY: 3
|
@@ -98,6 +98,34 @@ jobs:
|
|
98
98
|
path: ./wheelhouse/*.whl
|
99
99
|
name: wheels-${{ matrix.os }}
|
100
100
|
|
101
|
+
# Building and testing manylinux2014_aarch64 too is slow.
|
102
|
+
# See https://github.com/phasorpy/phasorpy/pull/135
|
103
|
+
#
|
104
|
+
# build_wheels_arm64:
|
105
|
+
# name: Test Linux on AArch64
|
106
|
+
# runs-on: ${{ matrix.os }}
|
107
|
+
# strategy:
|
108
|
+
# fail-fast: false
|
109
|
+
# matrix:
|
110
|
+
# os: ["ubuntu-latest"]
|
111
|
+
# steps:
|
112
|
+
# - uses: actions/checkout@v4
|
113
|
+
# - name: Set up QEMU
|
114
|
+
# if: runner.os == 'Linux'
|
115
|
+
# uses: docker/setup-qemu-action@v3
|
116
|
+
# with:
|
117
|
+
# platforms: all
|
118
|
+
# - uses: pypa/cibuildwheel@v2.21.3
|
119
|
+
# env:
|
120
|
+
# CIBW_ARCHS_LINUX: aarch64
|
121
|
+
# CIBW_BUILD_VERBOSITY: 2
|
122
|
+
# CIBW_BUILD: "cp311*"
|
123
|
+
# CIBW_SKIP: "*musllinux*"
|
124
|
+
# - uses: actions/upload-artifact@v4
|
125
|
+
# with:
|
126
|
+
# path: ./wheelhouse/*.whl
|
127
|
+
# name: wheels-aarch64
|
128
|
+
|
101
129
|
static_analysis:
|
102
130
|
name: Static code analysis
|
103
131
|
runs-on: "ubuntu-latest"
|
@@ -1,15 +1,15 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: phasorpy
|
3
|
-
Version: 0.
|
3
|
+
Version: 0.2
|
4
4
|
Summary: Analysis of fluorescence lifetime and hyperspectral images using the phasor approach
|
5
5
|
Author: PhasorPy Contributors
|
6
6
|
License: MIT
|
7
|
-
Project-URL:
|
8
|
-
Project-URL:
|
9
|
-
Project-URL:
|
10
|
-
Project-URL:
|
11
|
-
Project-URL: tracker, https://github.com/phasorpy/phasorpy/issues
|
12
|
-
Project-URL:
|
7
|
+
Project-URL: Homepage, https://www.phasorpy.org
|
8
|
+
Project-URL: Documentation, https://www.phasorpy.org/docs/stable/
|
9
|
+
Project-URL: Download, https://pypi.org/project/phasorpy/#files
|
10
|
+
Project-URL: Source code, https://github.com/phasorpy/phasorpy
|
11
|
+
Project-URL: Issue tracker, https://github.com/phasorpy/phasorpy/issues
|
12
|
+
Project-URL: Release notes, https://www.phasorpy.org/docs/stable/release
|
13
13
|
Classifier: Development Status :: 3 - Alpha
|
14
14
|
Classifier: Intended Audience :: Developers
|
15
15
|
Classifier: Intended Audience :: Science/Research
|
@@ -40,7 +40,7 @@ Requires-Dist: sphinx-issues; extra == "docs"
|
|
40
40
|
Requires-Dist: sphinx_gallery; extra == "docs"
|
41
41
|
Requires-Dist: sphinx-copybutton; extra == "docs"
|
42
42
|
Requires-Dist: sphinx_click; extra == "docs"
|
43
|
-
Requires-Dist: pydata-sphinx-theme; extra == "docs"
|
43
|
+
Requires-Dist: pydata-sphinx-theme>=0.16.0; extra == "docs"
|
44
44
|
Requires-Dist: numpydoc; extra == "docs"
|
45
45
|
Provides-Extra: test
|
46
46
|
Requires-Dist: pytest; extra == "test"
|
@@ -61,9 +61,9 @@ lifetime and hyperspectral images using the phasor approach.
|
|
61
61
|
- [Homepage](https://www.phasorpy.org)
|
62
62
|
- [Documentation](https://www.phasorpy.org/docs/stable/)
|
63
63
|
- [Source code](https://github.com/phasorpy/phasorpy)
|
64
|
-
- [
|
65
|
-
- [Python package](https://pypi.org/project/phasorpy/)
|
64
|
+
- [Download releases](https://pypi.org/project/phasorpy/#files)
|
66
65
|
- [Data files](https://zenodo.org/communities/phasorpy/)
|
66
|
+
- [Issues and questions](https://github.com/phasorpy/phasorpy/issues)
|
67
67
|
|
68
68
|
PhasorPy is a community-maintained project.
|
69
69
|
[Contributions](https://www.phasorpy.org/docs/stable/contributing/)
|
@@ -6,9 +6,9 @@ lifetime and hyperspectral images using the phasor approach.
|
|
6
6
|
- [Homepage](https://www.phasorpy.org)
|
7
7
|
- [Documentation](https://www.phasorpy.org/docs/stable/)
|
8
8
|
- [Source code](https://github.com/phasorpy/phasorpy)
|
9
|
-
- [
|
10
|
-
- [Python package](https://pypi.org/project/phasorpy/)
|
9
|
+
- [Download releases](https://pypi.org/project/phasorpy/#files)
|
11
10
|
- [Data files](https://zenodo.org/communities/phasorpy/)
|
11
|
+
- [Issues and questions](https://github.com/phasorpy/phasorpy/issues)
|
12
12
|
|
13
13
|
PhasorPy is a community-maintained project.
|
14
14
|
[Contributions](https://www.phasorpy.org/docs/stable/contributing/)
|
@@ -0,0 +1,16 @@
|
|
1
|
+
/*******************************************************************************
|
2
|
+
* Set a custom icon for pypi as it's not available in the fa built-in brands
|
3
|
+
*/
|
4
|
+
FontAwesome.library.add(
|
5
|
+
(faListOldStyle = {
|
6
|
+
prefix: "fa-custom",
|
7
|
+
iconName: "pypi",
|
8
|
+
icon: [
|
9
|
+
17.313, // viewBox width
|
10
|
+
19.807, // viewBox height
|
11
|
+
[], // ligature
|
12
|
+
"e001", // unicode codepoint - private use area
|
13
|
+
"m10.383 0.2-3.239 1.1769 3.1883 1.1614 3.239-1.1798zm-3.4152 1.2411-3.2362 1.1769 3.1855 1.1614 3.2369-1.1769zm6.7177 0.00281-3.2947 1.2009v3.8254l3.2947-1.1988zm-3.4145 1.2439-3.2926 1.1981v3.8254l0.17548-0.064132 3.1171-1.1347zm-6.6564 0.018325v3.8247l3.244 1.1805v-3.8254zm10.191 0.20931v2.3137l3.1777-1.1558zm3.2947 1.2425-3.2947 1.1988v3.8254l3.2947-1.1988zm-8.7058 0.45739c0.00929-1.931e-4 0.018327-2.977e-4 0.027485 0 0.25633 0.00851 0.4263 0.20713 0.42638 0.49826 1.953e-4 0.38532-0.29327 0.80469-0.65542 0.93662-0.36226 0.13215-0.65608-0.073306-0.65613-0.4588-6.28e-5 -0.38556 0.2938-0.80504 0.65613-0.93662 0.068422-0.024919 0.13655-0.038114 0.20156-0.039466zm5.2913 0.78369-3.2947 1.1988v3.8247l3.2947-1.1981zm-10.132 1.239-3.2362 1.1769 3.1883 1.1614 3.2362-1.1769zm6.7177 0.00213-3.2926 1.2016v3.8247l3.2926-1.2009zm-3.4124 1.2439-3.2947 1.1988v3.8254l3.2947-1.1988zm-6.6585 0.016195v3.8275l3.244 1.1805v-3.8254zm16.9 0.21143-3.2947 1.1988v3.8247l3.2947-1.1981zm-3.4145 1.2411-3.2926 1.2016v3.8247l3.2926-1.2009zm-3.4145 1.2411-3.2926 1.2016v3.8247l3.2926-1.2009zm-3.4124 1.2432-3.2947 1.1988v3.8254l3.2947-1.1988zm-6.6585 0.019027v3.8247l3.244 1.1805v-3.8254zm13.485 1.4497-3.2947 1.1988v3.8247l3.2947-1.1981zm-3.4145 1.2411-3.2926 1.2016v3.8247l3.2926-1.2009zm2.4018 0.38127c0.0093-1.83e-4 0.01833-3.16e-4 0.02749 0 0.25633 0.0085 0.4263 0.20713 0.42638 0.49826 1.97e-4 0.38532-0.29327 0.80469-0.65542 0.93662-0.36188 0.1316-0.65525-0.07375-0.65542-0.4588-1.95e-4 -0.38532 0.29328-0.80469 0.65542-0.93662 0.06842-0.02494 0.13655-0.03819 0.20156-0.03947zm-5.8142 0.86403-3.244 1.1805v1.4201l3.244 1.1805z", // svg path (https://simpleicons.org/icons/pypi.svg)
|
14
|
+
],
|
15
|
+
}),
|
16
|
+
);
|
@@ -25,6 +25,7 @@ import phasorpy
|
|
25
25
|
|
26
26
|
version = phasorpy.__version__
|
27
27
|
release = phasorpy.__version__
|
28
|
+
version_match = version.replace('.dev', '').replace('.rc', '')
|
28
29
|
|
29
30
|
# general configuration
|
30
31
|
|
@@ -55,6 +56,7 @@ exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store']
|
|
55
56
|
# html_theme = 'sphinx_rtd_theme'
|
56
57
|
html_theme = 'pydata_sphinx_theme'
|
57
58
|
html_static_path = ['_static']
|
59
|
+
html_js_files = ['custom-icons.js']
|
58
60
|
html_show_sourcelink = False
|
59
61
|
|
60
62
|
html_logo = '_static/logo.png'
|
@@ -71,6 +73,7 @@ napoleon_use_param = True
|
|
71
73
|
|
72
74
|
html_theme_options = {
|
73
75
|
'logo': {
|
76
|
+
# 'text': f'PhasorPy {version}',
|
74
77
|
'text': 'PhasorPy',
|
75
78
|
'alt_text': 'PhasorPy',
|
76
79
|
# 'image_dark': '_static/logo-dark.svg',
|
@@ -78,17 +81,39 @@ html_theme_options = {
|
|
78
81
|
'header_links_before_dropdown': 4,
|
79
82
|
'show_nav_level': 2,
|
80
83
|
'navigation_with_keys': False,
|
84
|
+
# 'collapse_navigation': True,
|
85
|
+
'navbar_align': 'content', # [left, content, right]
|
86
|
+
'navbar_persistent': [],
|
87
|
+
# 'navbar_center': [], # , 'version-switcher', 'navbar-nav'
|
88
|
+
'navbar_end': [
|
89
|
+
'search-button',
|
90
|
+
'version-switcher',
|
91
|
+
'theme-switcher',
|
92
|
+
'navbar-icon-links',
|
93
|
+
],
|
94
|
+
'switcher': {
|
95
|
+
'version_match': version_match,
|
96
|
+
'json_url': 'https://www.phasorpy.org/docs/dev/_static/switcher.json',
|
97
|
+
},
|
98
|
+
# 'check_switcher': False,
|
99
|
+
'show_version_warning_banner': True,
|
81
100
|
'icon_links': [
|
101
|
+
{
|
102
|
+
'name': 'Home',
|
103
|
+
'url': 'https://www.phasorpy.org',
|
104
|
+
'icon': 'fa fa-home',
|
105
|
+
},
|
106
|
+
{
|
107
|
+
'name': 'PyPI',
|
108
|
+
'url': 'https://pypi.org/project/phasorpy/',
|
109
|
+
'icon': 'fa-custom fa-pypi',
|
110
|
+
'type': 'fontawesome',
|
111
|
+
},
|
82
112
|
{
|
83
113
|
'name': 'GitHub',
|
84
114
|
'url': 'https://github.com/phasorpy/phasorpy',
|
85
115
|
'icon': 'fa-brands fa-github',
|
86
116
|
},
|
87
|
-
# {
|
88
|
-
# 'name': 'PyPI',
|
89
|
-
# 'url': 'https://pypi.org/project/phasorpy/',
|
90
|
-
# 'icon': 'fa-custom fa-pypi',
|
91
|
-
# },
|
92
117
|
],
|
93
118
|
}
|
94
119
|
|
@@ -15,9 +15,6 @@ lifetime and hyperspectral images using the :doc:`phasor_approach`.
|
|
15
15
|
Quickstart
|
16
16
|
==========
|
17
17
|
|
18
|
-
The PhasorPy library and documentation are released under the permissive
|
19
|
-
:doc:`license`.
|
20
|
-
|
21
18
|
The :doc:`tutorials/index` demonstrate the use the library, from simple
|
22
19
|
examples to advanced applications.
|
23
20
|
|
@@ -27,46 +24,50 @@ classes of the library.
|
|
27
24
|
The :doc:`release` list recent bug fixes, feature enhancements, documentation
|
28
25
|
and maintenance changes.
|
29
26
|
|
30
|
-
The :doc:`contributing`
|
27
|
+
The :doc:`contributing` explains how to get support, report bugs,
|
31
28
|
submit bug fixes, or improve documentation.
|
32
29
|
|
33
30
|
The :doc:`code_of_conduct` should be honored by everyone participating in
|
34
31
|
the PhasorPy community.
|
35
32
|
|
33
|
+
The :doc:`acknowledgments` list individuals and organizations that
|
34
|
+
contributed to the development of PhasorPy.
|
35
|
+
|
36
|
+
The PhasorPy library and documentation are released under the permissive
|
37
|
+
:doc:`license`.
|
38
|
+
|
36
39
|
The library's source code and documentation are maintained in the
|
37
40
|
`PhasorPy repository on GitHub <https://github.com/phasorpy/phasorpy>`_.
|
38
41
|
|
42
|
+
Releases can be downloaded and installed from the
|
43
|
+
`PhasorPy project on PyPI <https://pypi.org/project/phasorpy/>`_.
|
44
|
+
|
39
45
|
Sample data files used in tutorials and testing are available from the
|
40
46
|
`PhasorPy community on Zenodo <https://zenodo.org/communities/phasorpy>`_.
|
41
47
|
|
42
|
-
|
48
|
+
Report issues with the code or documentation on the
|
43
49
|
`issue tracker on GitHub <https://github.com/phasorpy/phasorpy/issues>`_.
|
44
50
|
|
45
51
|
Questions about the usage of the PhasorPy library are answered on the
|
46
52
|
`issue tracker on GitHub <https://github.com/phasorpy/phasorpy/issues>`_.
|
47
53
|
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
Please cite the PhasorPy library as:
|
52
|
-
|
53
|
-
.. todo::
|
54
|
-
|
55
|
-
Create DOI at zenodo.org.
|
54
|
+
Please cite
|
55
|
+
`doi: 10.5281/zenodo.13862587 <https://doi.org/10.5281/zenodo.13862587>`_
|
56
|
+
if PhasorPy contributes to a project that leads to a publication.
|
56
57
|
|
57
58
|
Contents
|
58
59
|
========
|
59
60
|
|
60
61
|
.. toctree::
|
61
|
-
:maxdepth:
|
62
|
+
:maxdepth: 2
|
62
63
|
|
63
64
|
phasor_approach
|
64
65
|
tutorials/index
|
65
66
|
api/index
|
66
|
-
contributing
|
67
67
|
release
|
68
|
-
|
68
|
+
contributing
|
69
69
|
code_of_conduct
|
70
|
+
acknowledgments
|
70
71
|
license
|
71
72
|
|
72
73
|
Indices and tables
|
@@ -188,13 +188,18 @@ approach to analyze fluorescence time-resolved or spectral images:
|
|
188
188
|
- `FLUTE <https://github.com/LaboratoryOpticsBiosciences/FLUTE>`_,
|
189
189
|
the Fluorescence Lifetime Ultimate Explorer, is an open-source Python GUI
|
190
190
|
for interactive phasor analysis of FLIM data developed by Chiara Stringari
|
191
|
-
and others. The software is distributed under the
|
191
|
+
and others. The software is distributed under the BSD-3-Clause license.
|
192
192
|
|
193
193
|
- `FLIMPA <https://github.com/SofiaKapsiani/FLIMPA>`_
|
194
194
|
is an open-source GUI software designed for the phasor plot analysis of
|
195
195
|
raw TCSPC-FLIM data. The software is written in Python and distributed
|
196
196
|
under the BSD-3-Clause license.
|
197
197
|
|
198
|
+
- `AlliGator <https://alligator-distribution.readthedocs.io>`_
|
199
|
+
is a free, closed-source software for fluorescence lifetime image data
|
200
|
+
analysis using the phasor approach and standard nonlinear fitting.
|
201
|
+
The software is written in LabVIEW for Windows by Xavier Michalet.
|
202
|
+
|
198
203
|
- `FLIM_tools <https://github.com/jayunruh/FLIM_tools>`_
|
199
204
|
is an open-source Python library for linear unmixing and phasor tools for
|
200
205
|
FLIM analysis developed by Jay Unruh. The library is distributed under
|
@@ -214,6 +219,13 @@ approach to analyze fluorescence time-resolved or spectral images:
|
|
214
219
|
segmentation, pH correlation, nanoscale effects, and precise quantification.
|
215
220
|
The notebook is distributed under CC BY-NC 4.0.
|
216
221
|
|
222
|
+
-
|
223
|
+
.. _phasorplots_for_dummies:
|
224
|
+
|
225
|
+
`PhasorPlots for dummies <https://github.com/Jalink-lab/phasor-plots>`_
|
226
|
+
is a Jupyter notebook to teach the analysis of FLIM/FRET by phasor plots.
|
227
|
+
The notebook is implemented in R and licensed under the GPL v3.
|
228
|
+
|
217
229
|
- `FLIMLib <https://flimlib.github.io>`_ is an exponential curve fitting
|
218
230
|
library used for Fluorescent Lifetime Imaging (FLIM). It includes a function
|
219
231
|
to calculate phasor coordinates from time-resolved signals.
|
@@ -280,6 +292,10 @@ approach to analyze fluorescence time-resolved or spectral images:
|
|
280
292
|
image analysis and visualization, including phasor plots, in conjunction
|
281
293
|
with the FLIMera wide-field camera.
|
282
294
|
|
295
|
+
- `LIFA <https://lambertinstruments.com/lifa-software>`_
|
296
|
+
is a commercial software by Lambert Instruments to record and analyze
|
297
|
+
fluorescence lifetime images, integrating all Lambert hardware.
|
298
|
+
|
283
299
|
- `FlimFast <https://www.cgohlke.com/flimfast/>`_
|
284
300
|
was a research-grade Windows desktop software for frequency-domain,
|
285
301
|
full-field, fluorescence lifetime imaging at video rate, developed by
|