pumpia 0.1.0__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.
Files changed (76) hide show
  1. pumpia-0.1.0/.github/workflows/main.yml +34 -0
  2. pumpia-0.1.0/.github/workflows/publish.yml +32 -0
  3. pumpia-0.1.0/.gitignore +116 -0
  4. pumpia-0.1.0/LICENSE +29 -0
  5. pumpia-0.1.0/PKG-INFO +52 -0
  6. pumpia-0.1.0/README.md +25 -0
  7. pumpia-0.1.0/docs/Makefile +20 -0
  8. pumpia-0.1.0/docs/make.bat +35 -0
  9. pumpia-0.1.0/docs/source/components/components.rst +35 -0
  10. pumpia-0.1.0/docs/source/components/images.rst +10 -0
  11. pumpia-0.1.0/docs/source/components/manager.rst +4 -0
  12. pumpia-0.1.0/docs/source/components/rois.rst +14 -0
  13. pumpia-0.1.0/docs/source/components/viewers.rst +14 -0
  14. pumpia-0.1.0/docs/source/conf.py +31 -0
  15. pumpia-0.1.0/docs/source/file_handling/dicom_tags.rst +10 -0
  16. pumpia-0.1.0/docs/source/file_handling/dicoms.rst +10 -0
  17. pumpia-0.1.0/docs/source/file_handling/file_handling.rst +29 -0
  18. pumpia-0.1.0/docs/source/index.rst +46 -0
  19. pumpia-0.1.0/docs/source/usage/collections.rst +7 -0
  20. pumpia-0.1.0/docs/source/usage/context.rst +35 -0
  21. pumpia-0.1.0/docs/source/usage/example.rst +138 -0
  22. pumpia-0.1.0/docs/source/usage/module_ios/groups.rst +3 -0
  23. pumpia-0.1.0/docs/source/usage/module_ios/module_ios.rst +55 -0
  24. pumpia-0.1.0/docs/source/usage/module_ios/roi_ios.rst +15 -0
  25. pumpia-0.1.0/docs/source/usage/module_ios/simple.rst +29 -0
  26. pumpia-0.1.0/docs/source/usage/module_ios/viewer_ios.rst +13 -0
  27. pumpia-0.1.0/docs/source/usage/modules.rst +6 -0
  28. pumpia-0.1.0/docs/source/usage/usage.rst +69 -0
  29. pumpia-0.1.0/docs/source/utilities/array_utils.rst +36 -0
  30. pumpia-0.1.0/docs/source/utilities/feature_utils.rst +16 -0
  31. pumpia-0.1.0/docs/source/utilities/string_validators.rst +14 -0
  32. pumpia-0.1.0/docs/source/utilities/tk_utilities.rst +5 -0
  33. pumpia-0.1.0/docs/source/utilities/utilities.rst +28 -0
  34. pumpia-0.1.0/docs/source/widgets/entry_boxes.rst +10 -0
  35. pumpia-0.1.0/docs/source/widgets/scrolled_window.rst +4 -0
  36. pumpia-0.1.0/docs/source/widgets/widgets.rst +18 -0
  37. pumpia-0.1.0/pumpia/__init__.py +0 -0
  38. pumpia-0.1.0/pumpia/contrib/__init__.py +0 -0
  39. pumpia-0.1.0/pumpia/contrib/example/__init__.py +0 -0
  40. pumpia-0.1.0/pumpia/contrib/example/collection.py +61 -0
  41. pumpia-0.1.0/pumpia/contrib/example/example.py +136 -0
  42. pumpia-0.1.0/pumpia/contrib/example/module.py +72 -0
  43. pumpia-0.1.0/pumpia/file_handling/__init__.py +0 -0
  44. pumpia-0.1.0/pumpia/file_handling/dicom_structures.py +985 -0
  45. pumpia-0.1.0/pumpia/file_handling/dicom_tags.py +775 -0
  46. pumpia-0.1.0/pumpia/image_handling/__init__.py +0 -0
  47. pumpia-0.1.0/pumpia/image_handling/image_structures.py +714 -0
  48. pumpia-0.1.0/pumpia/image_handling/image_validators.py +24 -0
  49. pumpia-0.1.0/pumpia/image_handling/roi_structures.py +2423 -0
  50. pumpia-0.1.0/pumpia/module_handling/__init__.py +0 -0
  51. pumpia-0.1.0/pumpia/module_handling/context.py +118 -0
  52. pumpia-0.1.0/pumpia/module_handling/in_outs/__init__.py +0 -0
  53. pumpia-0.1.0/pumpia/module_handling/in_outs/groups.py +30 -0
  54. pumpia-0.1.0/pumpia/module_handling/in_outs/roi_ios.py +324 -0
  55. pumpia-0.1.0/pumpia/module_handling/in_outs/simple.py +632 -0
  56. pumpia-0.1.0/pumpia/module_handling/in_outs/viewer_ios.py +102 -0
  57. pumpia-0.1.0/pumpia/module_handling/manager.py +893 -0
  58. pumpia-0.1.0/pumpia/module_handling/module_collections.py +793 -0
  59. pumpia-0.1.0/pumpia/module_handling/modules.py +844 -0
  60. pumpia-0.1.0/pumpia/utilities/__init__.py +0 -0
  61. pumpia-0.1.0/pumpia/utilities/array_utils.py +557 -0
  62. pumpia-0.1.0/pumpia/utilities/dicom_utils.py +82 -0
  63. pumpia-0.1.0/pumpia/utilities/feature_utils.py +401 -0
  64. pumpia-0.1.0/pumpia/utilities/string_validators.py +101 -0
  65. pumpia-0.1.0/pumpia/utilities/tkinter_utils.py +83 -0
  66. pumpia-0.1.0/pumpia/utilities/typing.py +6 -0
  67. pumpia-0.1.0/pumpia/widgets/__init__.py +0 -0
  68. pumpia-0.1.0/pumpia/widgets/context_managers.py +988 -0
  69. pumpia-0.1.0/pumpia/widgets/entry_boxes.py +553 -0
  70. pumpia-0.1.0/pumpia/widgets/scrolled_window.py +216 -0
  71. pumpia-0.1.0/pumpia/widgets/tables.py +305 -0
  72. pumpia-0.1.0/pumpia/widgets/typing.py +39 -0
  73. pumpia-0.1.0/pumpia/widgets/variables.py +54 -0
  74. pumpia-0.1.0/pumpia/widgets/viewers.py +1493 -0
  75. pumpia-0.1.0/pyproject.toml +37 -0
  76. pumpia-0.1.0/requirements.txt +5 -0
@@ -0,0 +1,34 @@
1
+ name: documentation
2
+
3
+ on:
4
+ workflow_dispatch:
5
+ release:
6
+ types: [published]
7
+
8
+ permissions:
9
+ contents: write
10
+
11
+ jobs:
12
+ docs:
13
+ runs-on: ubuntu-latest
14
+ steps:
15
+ - uses: actions/checkout@v4
16
+ - uses: actions/setup-python@v5
17
+ with:
18
+ python-version: '3.12'
19
+ - name: Install pumpia dependencies
20
+ run: |
21
+ pip install -r requirements.txt
22
+ - name: Install dependencies
23
+ run: |
24
+ pip install sphinx sphinx_rtd_theme
25
+ - name: Sphinx build
26
+ run: |
27
+ sphinx-build docs/source docs/_build
28
+ - name: Deploy to GitHub Pages
29
+ uses: peaceiris/actions-gh-pages@v4
30
+ with:
31
+ publish_branch: gh-pages
32
+ github_token: ${{ secrets.GITHUB_TOKEN }}
33
+ publish_dir: docs/_build
34
+ force_orphan: true
@@ -0,0 +1,32 @@
1
+ name: Upload Python Package
2
+
3
+ on:
4
+ workflow_dispatch:
5
+ release:
6
+ types: [published]
7
+
8
+ permissions:
9
+ contents: read
10
+
11
+ jobs:
12
+ deploy:
13
+
14
+ runs-on: ubuntu-latest
15
+
16
+ steps:
17
+ - uses: actions/checkout@v4
18
+ - name: Set up Python
19
+ uses: actions/setup-python@v5
20
+ with:
21
+ python-version: '3.12'
22
+ - name: Install dependencies
23
+ run: |
24
+ python -m pip install --upgrade pip
25
+ pip install build
26
+ - name: Build package
27
+ run: python -m build
28
+ - name: Publish package
29
+ uses: pypa/gh-action-pypi-publish@release/v1
30
+ with:
31
+ user: __token__
32
+ password: ${{ secrets.PYPI_API_TOKEN }}
@@ -0,0 +1,116 @@
1
+ # Editor temporary/working/backup files #
2
+ #########################################
3
+ .#*
4
+ [#]*#
5
+ *~
6
+ *$
7
+ *.bak
8
+ *.diff
9
+ .idea/
10
+ *.iml
11
+ *.ipr
12
+ *.iws
13
+ *.org
14
+ .project
15
+ pmip
16
+ *.rej
17
+ .settings/
18
+ .*.sw[nop]
19
+ .sw[nop]
20
+ *.tmp
21
+ *.vim
22
+ .vscode
23
+ tags
24
+ cscope.out
25
+ # gnu global
26
+ GPATH
27
+ GRTAGS
28
+ GSYMS
29
+ GTAGS
30
+ .cache
31
+ .mypy_cache/
32
+
33
+ # Compiled source #
34
+ ###################
35
+ *.a
36
+ *.com
37
+ *.class
38
+ *.dll
39
+ *.exe
40
+ *.o
41
+ *.o.d
42
+ *.py[ocd]
43
+ *.so
44
+ *.mod
45
+
46
+ # Packages #
47
+ ############
48
+ # it's better to unpack these files and commit the raw source
49
+ # git has its own built in compression methods
50
+ *.7z
51
+ *.bz2
52
+ *.bzip2
53
+ *.dmg
54
+ *.gz
55
+ *.iso
56
+ *.jar
57
+ *.rar
58
+ *.tar
59
+ *.tbz2
60
+ *.tgz
61
+ *.zip
62
+
63
+ # Python files #
64
+ ################
65
+ # meson build/installation directories
66
+ build
67
+ build-install
68
+ # meson python output
69
+ .mesonpy-native-file.ini
70
+ # sphinx build directory
71
+ _build
72
+ # dist directory is where sdist/wheel end up
73
+ dist
74
+ doc/build
75
+ doc/docenv
76
+ doc/cdoc/build
77
+ # Egg metadata
78
+ *.egg-info
79
+ # The shelf plugin uses this dir
80
+ ./.shelf
81
+ .cache
82
+ pip-wheel-metadata
83
+ .python-version
84
+
85
+ # Logs and databases #
86
+ ######################
87
+ *.log
88
+ *.sql
89
+ *.sqlite
90
+
91
+ # Patches #
92
+ ###########
93
+ *.patch
94
+ *.diff
95
+
96
+ # OS generated files #
97
+ ######################
98
+ .DS_Store*
99
+ .VolumeIcon.icns
100
+ .fseventsd
101
+ Icon?
102
+ .gdb_history
103
+ ehthumbs.db
104
+ Thumbs.db
105
+ .directory
106
+
107
+ # pytest generated files #
108
+ ##########################
109
+ /.pytest_cache
110
+
111
+ # doc build generated files #
112
+ #############################
113
+ doc/source/savefig/
114
+ doc/source/**/generated/
115
+ doc/source/release/notes-towncrier.rst
116
+ doc/source/.jupyterlite.doit.db
pumpia-0.1.0/LICENSE ADDED
@@ -0,0 +1,29 @@
1
+ BSD 3-Clause License
2
+
3
+ Copyright (c) 2025, Zack Ravetz
4
+ All rights reserved.
5
+
6
+ Redistribution and use in source and binary forms, with or without
7
+ modification, are permitted provided that the following conditions are met:
8
+
9
+ 1. Redistributions of source code must retain the above copyright notice, this
10
+ list of conditions and the following disclaimer.
11
+
12
+ 2. Redistributions in binary form must reproduce the above copyright notice,
13
+ this list of conditions and the following disclaimer in the documentation
14
+ and/or other materials provided with the distribution.
15
+
16
+ 3. Neither the name of the copyright holder nor the names of its
17
+ contributors may be used to endorse or promote products derived from
18
+ this software without specific prior written permission.
19
+
20
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
23
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
24
+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
25
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
26
+ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
27
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
28
+ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
pumpia-0.1.0/PKG-INFO ADDED
@@ -0,0 +1,52 @@
1
+ Metadata-Version: 2.4
2
+ Name: pumpia
3
+ Version: 0.1.0
4
+ Summary: A simple to use framework for making user interfaces for image analysis.
5
+ Project-URL: Homepage, https://github.com/Principle-Five/PumpIA
6
+ Project-URL: Source, https://github.com/Principle-Five/PumpIA
7
+ Project-URL: Issues, https://github.com/Principle-Five/PumpIA/issues
8
+ Author: Zack Ravetz et al.
9
+ License-Expression: BSD-3-Clause
10
+ License-File: LICENSE
11
+ Classifier: Intended Audience :: Science/Research
12
+ Classifier: License :: OSI Approved :: BSD License
13
+ Classifier: Programming Language :: Python :: 3
14
+ Classifier: Programming Language :: Python :: 3 :: Only
15
+ Classifier: Programming Language :: Python :: 3.12
16
+ Classifier: Programming Language :: Python :: 3.13
17
+ Classifier: Topic :: Scientific/Engineering
18
+ Classifier: Topic :: Scientific/Engineering :: Image Processing
19
+ Classifier: Topic :: Software Development
20
+ Requires-Python: >=3.12
21
+ Requires-Dist: matplotlib==3.*
22
+ Requires-Dist: numpy==2.*
23
+ Requires-Dist: pillow==11.*
24
+ Requires-Dist: pydicom==3.*
25
+ Requires-Dist: scipy==1.*
26
+ Description-Content-Type: text/markdown
27
+
28
+ Introduction
29
+ ------------
30
+
31
+ PumpIA is a python framework designed to allow users to visualise the analysis of images through a user interface.
32
+ It does not do any image analysis itself, but rather provides a platform for users to write their own analysis code and view the results.
33
+ This means that the full power of python and its libraries are available to the user.
34
+
35
+ Requirements
36
+ ------------
37
+ PumpIA has been designed to use the minimum number of dependencies, so the user interface relies on tkinter.
38
+ PumpIA has the following dependencies:
39
+
40
+ * numpy
41
+ * scipy
42
+ * pillow
43
+ * pydicom
44
+ * matplotlib
45
+
46
+ Installation
47
+ ------------
48
+
49
+ PumpIA requires python 3.12 or greater.
50
+ To use PumpIA, install it using pip:
51
+
52
+ pip install pumpia
pumpia-0.1.0/README.md ADDED
@@ -0,0 +1,25 @@
1
+ Introduction
2
+ ------------
3
+
4
+ PumpIA is a python framework designed to allow users to visualise the analysis of images through a user interface.
5
+ It does not do any image analysis itself, but rather provides a platform for users to write their own analysis code and view the results.
6
+ This means that the full power of python and its libraries are available to the user.
7
+
8
+ Requirements
9
+ ------------
10
+ PumpIA has been designed to use the minimum number of dependencies, so the user interface relies on tkinter.
11
+ PumpIA has the following dependencies:
12
+
13
+ * numpy
14
+ * scipy
15
+ * pillow
16
+ * pydicom
17
+ * matplotlib
18
+
19
+ Installation
20
+ ------------
21
+
22
+ PumpIA requires python 3.12 or greater.
23
+ To use PumpIA, install it using pip:
24
+
25
+ pip install pumpia
@@ -0,0 +1,20 @@
1
+ # Minimal makefile for Sphinx documentation
2
+ #
3
+
4
+ # You can set these variables from the command line, and also
5
+ # from the environment for the first two.
6
+ SPHINXOPTS ?=
7
+ SPHINXBUILD ?= sphinx-build
8
+ SOURCEDIR = source
9
+ BUILDDIR = build
10
+
11
+ # Put it first so that "make" without argument is like "make help".
12
+ help:
13
+ @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
14
+
15
+ .PHONY: help Makefile
16
+
17
+ # Catch-all target: route all unknown targets to Sphinx using the new
18
+ # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
19
+ %: Makefile
20
+ @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
@@ -0,0 +1,35 @@
1
+ @ECHO OFF
2
+
3
+ pushd %~dp0
4
+
5
+ REM Command file for Sphinx documentation
6
+
7
+ if "%SPHINXBUILD%" == "" (
8
+ set SPHINXBUILD=sphinx-build
9
+ )
10
+ set SOURCEDIR=source
11
+ set BUILDDIR=_build
12
+
13
+ %SPHINXBUILD% >NUL 2>NUL
14
+ if errorlevel 9009 (
15
+ echo.
16
+ echo.The 'sphinx-build' command was not found. Make sure you have Sphinx
17
+ echo.installed, then set the SPHINXBUILD environment variable to point
18
+ echo.to the full path of the 'sphinx-build' executable. Alternatively you
19
+ echo.may add the Sphinx directory to PATH.
20
+ echo.
21
+ echo.If you don't have Sphinx installed, grab it from
22
+ echo.https://www.sphinx-doc.org/
23
+ exit /b 1
24
+ )
25
+
26
+ if "%1" == "" goto help
27
+
28
+ %SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O%
29
+ goto end
30
+
31
+ :help
32
+ %SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O%
33
+
34
+ :end
35
+ popd
@@ -0,0 +1,35 @@
1
+ Core Components
2
+ ===============
3
+
4
+ Most people will want to use PumpIA through the :doc:`modules </usage/modules>` and :doc:`collections </usage/collections>` as described in :doc:`usage </usage/usage>`,
5
+ however the core components and how they iteract are described for anyone who wants more control over them, or who wants to embed them in their own program.
6
+
7
+ :doc:`manager`
8
+ --------------
9
+ This is the central piece of the program, it controls the loading of all images and links all the other components together.
10
+ Use the manager to get the treeviews and widgets for the controls within the program.
11
+ Users can right click on different entries in treeviews for different options.
12
+ There is typically only one manager per program.
13
+
14
+ :doc:`viewers`
15
+ --------------
16
+ These are the widgets which show the images.
17
+ There are a few different kinds depending on if the image loaded should be limited.
18
+ Viewers have multiple shortcuts to make it easier for the end user.
19
+
20
+ :doc:`images`
21
+ -------------
22
+ Different classes which represent images and collections of images.
23
+ Also see :doc:`file handling </file_handling/file_handling>`.
24
+
25
+ :doc:`rois`
26
+ -----------
27
+ These represent regions of interest of different shapes.
28
+
29
+ Contents
30
+ --------
31
+ .. toctree::
32
+ manager
33
+ viewers
34
+ images
35
+ rois
@@ -0,0 +1,10 @@
1
+ Images
2
+ ======
3
+
4
+ .. autoclass:: pumpia.image_handling.image_structures.BaseImageSet
5
+
6
+ .. autoclass:: pumpia.image_handling.image_structures.ArrayImage
7
+
8
+ .. autoclass:: pumpia.image_handling.image_structures.FileImageSet
9
+
10
+ .. autoclass:: pumpia.image_handling.image_structures.ImageCollection
@@ -0,0 +1,4 @@
1
+ The Manager
2
+ ===========
3
+
4
+ .. autoclass:: pumpia.module_handling.manager.Manager
@@ -0,0 +1,14 @@
1
+ Regions of Interest
2
+ -------------------
3
+
4
+ .. autoclass:: pumpia.image_handling.roi_structures.BaseROI
5
+
6
+ .. autoclass:: pumpia.image_handling.roi_structures.Angle
7
+
8
+ .. autoclass:: pumpia.image_handling.roi_structures.PointROI
9
+
10
+ .. autoclass:: pumpia.image_handling.roi_structures.EllipseROI
11
+
12
+ .. autoclass:: pumpia.image_handling.roi_structures.RectangleROI
13
+
14
+ .. autoclass:: pumpia.image_handling.roi_structures.LineROI
@@ -0,0 +1,14 @@
1
+ Viewers
2
+ =======
3
+
4
+ .. autoclass:: pumpia.widgets.viewers.BaseViewer
5
+
6
+ .. autoclass:: pumpia.widgets.viewers.Viewer
7
+
8
+ .. autoclass:: pumpia.widgets.viewers.ArrayViewer
9
+
10
+ .. autoclass:: pumpia.widgets.viewers.MonochromeViewer
11
+
12
+ .. autoclass:: pumpia.widgets.viewers.DicomViewer
13
+
14
+ .. autoclass:: pumpia.widgets.viewers.MonochromeDicomViewer
@@ -0,0 +1,31 @@
1
+ import sys
2
+ from pathlib import Path
3
+
4
+ sys.path.insert(0, str(Path(__file__).resolve().parent.parent.parent))
5
+
6
+ # Configuration file for the Sphinx documentation builder.
7
+ #
8
+ # For the full list of built-in configuration values, see the documentation:
9
+ # https://www.sphinx-doc.org/en/master/usage/configuration.html
10
+
11
+ # -- Project information -----------------------------------------------------
12
+ # https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information
13
+
14
+ project = 'PumpIA'
15
+ copyright = '2025, Zack Ravetz'
16
+ author = 'Zack Ravetz'
17
+
18
+ # -- General configuration ---------------------------------------------------
19
+ # https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration
20
+
21
+ extensions = ['sphinx.ext.autodoc', 'sphinx.ext.autosummary', 'sphinx.ext.coverage', 'sphinx.ext.napoleon', 'sphinx.ext.autosectionlabel']
22
+ coverage_modules = ("pumpia",)
23
+ templates_path = ['_templates']
24
+ exclude_patterns = []
25
+ autosectionlabel_prefix_document = True
26
+
27
+ # -- Options for HTML output -------------------------------------------------
28
+ # https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output
29
+
30
+ html_theme = 'sphinx_rtd_theme'
31
+ html_static_path = ['_static']
@@ -0,0 +1,10 @@
1
+ DICOM Tags
2
+ ==========
3
+
4
+ .. autofunction:: pumpia.file_handling.dicom_tags.get_tag
5
+
6
+ .. autoclass:: pumpia.file_handling.dicom_tags.Tag
7
+
8
+ .. autoclass:: pumpia.file_handling.dicom_tags.DicomTags
9
+
10
+ .. autoclass:: pumpia.file_handling.dicom_tags.MRTags
@@ -0,0 +1,10 @@
1
+ DICOM File Handling
2
+ ===================
3
+
4
+ .. autoclass:: pumpia.file_handling.dicom_structures.Patient
5
+
6
+ .. autoclass:: pumpia.file_handling.dicom_structures.Study
7
+
8
+ .. autoclass:: pumpia.file_handling.dicom_structures.Series
9
+
10
+ .. autoclass:: pumpia.file_handling.dicom_structures.Instance
@@ -0,0 +1,29 @@
1
+ File Handling
2
+ =============
3
+
4
+ The :doc:`manager </components/manager>` is used to handle files and make sure all components have access to the loaded ones.
5
+
6
+ :doc:`dicoms`
7
+ -------------
8
+ Loaded DICOMS can be accessed through the ``patients`` attribute of the manager.
9
+ This provides a set of all patients loaded from DICOM files.
10
+
11
+ Four classes are used to group and handle DICOM files:
12
+
13
+ * Patient
14
+ * Study
15
+ * Series
16
+ * Instance
17
+
18
+ The DICOM file path and pydicom Dataset can be accessed through either `Series` or `Instance`.
19
+ For `Series` these will be for the current instance defined by the ``current_slice`` attribute.
20
+
21
+ :doc:`dicom_tags`
22
+ -----------------
23
+ DICOM tag handling is different to pydicom to allow for the handling of classic and enhanced DICOM files.
24
+
25
+ Contents
26
+ --------
27
+ .. toctree::
28
+ dicoms
29
+ dicom_tags
@@ -0,0 +1,46 @@
1
+ PumpIA documentation
2
+ ====================
3
+
4
+ Introduction
5
+ ------------
6
+
7
+ PumpIA is a python framework designed to allow users to visualise the analysis of images through a user interface.
8
+ It does not do any image analysis itself, but rather provides a platform for users to write their own analysis code and view the results.
9
+ This means that the full power of python and its libraries are available to the user.
10
+
11
+ Requirements
12
+ ------------
13
+ PumpIA has been designed to use the minimum number of dependencies, so the user interface relies on `tkinter <https://docs.python.org/3/library/tkinter.html>`_.
14
+ PumpIA has the following dependencies:
15
+
16
+ * `numpy <https://numpy.org/>`_
17
+ * `scipy <https://scipy.org/>`_
18
+ * `pillow <https://pillow.readthedocs.io/en/stable/>`_
19
+ * `pydicom <https://pydicom.github.io/pydicom/stable/>`_
20
+ * `matplotlib <https://matplotlib.org/>`_
21
+
22
+ See `pydicom: Compression of Pixel Data <https://pydicom.github.io/pydicom/stable/tutorials/pixel_data/compressing.html#compression-of-pixel-data>`_ for information on how to install the required libraries for reading compressed dicom files.
23
+
24
+ Installation
25
+ ------------
26
+
27
+ PumpIA requires `python <https://www.python.org>`_ 3.12 or greater.
28
+ To use PumpIA, install it using pip:
29
+
30
+ .. code-block:: console
31
+
32
+ (.venv) $ pip install pumpia
33
+
34
+ Contents
35
+ --------
36
+
37
+ .. toctree::
38
+ :includehidden:
39
+ :titlesonly:
40
+ :maxdepth: 2
41
+
42
+ components/components
43
+ usage/usage
44
+ file_handling/file_handling
45
+ utilities/utilities
46
+ widgets/widgets
@@ -0,0 +1,7 @@
1
+ Collections
2
+ ===========
3
+ .. autoclass:: pumpia.module_handling.module_collections.OutputFrame
4
+
5
+ .. autoclass:: pumpia.module_handling.module_collections.WindowGroup
6
+
7
+ .. autoclass:: pumpia.module_handling.module_collections.BaseCollection
@@ -0,0 +1,35 @@
1
+ Context
2
+ =======
3
+ .. autoclass:: pumpia.module_handling.context.BaseContext
4
+
5
+ .. autoclass:: pumpia.module_handling.context.PhantomContext
6
+
7
+ .. autoclass:: pumpia.module_handling.context.BoundBoxContext
8
+
9
+ .. autoclass:: pumpia.module_handling.context.SimpleContext
10
+
11
+ Context Managers
12
+ ----------------
13
+
14
+ .. autoclass:: pumpia.widgets.context_managers.BaseContextManager
15
+
16
+ .. autoclass:: pumpia.widgets.context_managers.SimpleContextManager
17
+
18
+ .. autoclass:: pumpia.widgets.context_managers.PhantomContextManager
19
+
20
+ .. autoclass:: pumpia.widgets.context_managers.ManualPhantomManager
21
+
22
+ .. autoclass:: pumpia.widgets.context_managers.AutoPhantomManager
23
+
24
+ Context Manager Generators
25
+ --------------------------
26
+
27
+ .. autoclass:: pumpia.widgets.context_managers.BaseContextManagerGenerator
28
+
29
+ .. autoclass:: pumpia.widgets.context_managers.SimpleContextManagerGenerator
30
+
31
+ .. autoclass:: pumpia.widgets.context_managers.PhantomContextManagerGenerator
32
+
33
+ .. autoclass:: pumpia.widgets.context_managers.ManualPhantomManagerGenerator
34
+
35
+ .. autoclass:: pumpia.widgets.context_managers.AutoPhantomManagerGenerator