wfc3tools 1.5.0__tar.gz → 1.6.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 (79) hide show
  1. wfc3tools-1.6.0/.github/dependabot.yml +14 -0
  2. {wfc3tools-1.5.0 → wfc3tools-1.6.0}/.github/workflows/build.yml +1 -1
  3. wfc3tools-1.6.0/.github/workflows/tests.yml +20 -0
  4. {wfc3tools-1.5.0 → wfc3tools-1.6.0}/CHANGES.rst +4 -1
  5. {wfc3tools-1.5.0 → wfc3tools-1.6.0}/MANIFEST.in +0 -4
  6. wfc3tools-1.6.0/PKG-INFO +91 -0
  7. {wfc3tools-1.5.0 → wfc3tools-1.6.0}/docs/conf.py +12 -7
  8. {wfc3tools-1.5.0 → wfc3tools-1.6.0}/docs/rtd_environment.yaml +1 -2
  9. wfc3tools-1.6.0/pyproject.toml +70 -0
  10. wfc3tools-1.6.0/setup.cfg +4 -0
  11. wfc3tools-1.6.0/tox.ini +53 -0
  12. {wfc3tools-1.5.0 → wfc3tools-1.6.0}/wfc3tools/sampinfo.py +41 -41
  13. {wfc3tools-1.5.0 → wfc3tools-1.6.0}/wfc3tools/sub2full.py +3 -3
  14. wfc3tools-1.6.0/wfc3tools/tests/test_pstack.py +31 -0
  15. wfc3tools-1.6.0/wfc3tools/tests/test_pstat.py +36 -0
  16. wfc3tools-1.6.0/wfc3tools/tests/test_sampinfo.py +57 -0
  17. wfc3tools-1.6.0/wfc3tools/tests/test_sub2full.py +55 -0
  18. wfc3tools-1.6.0/wfc3tools/version.py +34 -0
  19. wfc3tools-1.6.0/wfc3tools.egg-info/PKG-INFO +91 -0
  20. {wfc3tools-1.5.0 → wfc3tools-1.6.0}/wfc3tools.egg-info/SOURCES.txt +8 -3
  21. {wfc3tools-1.5.0 → wfc3tools-1.6.0}/wfc3tools.egg-info/requires.txt +4 -0
  22. wfc3tools-1.5.0/PKG-INFO +0 -30
  23. wfc3tools-1.5.0/pyproject.toml +0 -3
  24. wfc3tools-1.5.0/setup.cfg +0 -46
  25. wfc3tools-1.5.0/setup.py +0 -4
  26. wfc3tools-1.5.0/wfc3tools/version.py +0 -16
  27. wfc3tools-1.5.0/wfc3tools.egg-info/PKG-INFO +0 -30
  28. {wfc3tools-1.5.0 → wfc3tools-1.6.0}/.github/CODEOWNERS +0 -0
  29. {wfc3tools-1.5.0 → wfc3tools-1.6.0}/.gitignore +0 -0
  30. {wfc3tools-1.5.0 → wfc3tools-1.6.0}/.readthedocs.yaml +0 -0
  31. {wfc3tools-1.5.0 → wfc3tools-1.6.0}/CODE_OF_CONDUCT.md +0 -0
  32. {wfc3tools-1.5.0 → wfc3tools-1.6.0}/LICENSE.txt +0 -0
  33. {wfc3tools-1.5.0 → wfc3tools-1.6.0}/README.rst +0 -0
  34. {wfc3tools-1.5.0 → wfc3tools-1.6.0}/docs/Makefile +0 -0
  35. {wfc3tools-1.5.0 → wfc3tools-1.6.0}/docs/_static/calwf3_flow.png +0 -0
  36. {wfc3tools-1.5.0 → wfc3tools-1.6.0}/docs/_static/ir_data_format.png +0 -0
  37. {wfc3tools-1.5.0 → wfc3tools-1.6.0}/docs/_static/pstack_example.png +0 -0
  38. {wfc3tools-1.5.0 → wfc3tools-1.6.0}/docs/_static/pstat_example.png +0 -0
  39. {wfc3tools-1.5.0 → wfc3tools-1.6.0}/docs/_static/raw_uvis_format.png +0 -0
  40. {wfc3tools-1.5.0 → wfc3tools-1.6.0}/docs/_static/stsci_pri_combo_mark_white.png +0 -0
  41. {wfc3tools-1.5.0 → wfc3tools-1.6.0}/docs/_static/sub2full_translate.png +0 -0
  42. {wfc3tools-1.5.0 → wfc3tools-1.6.0}/docs/_static/uvis_data_format.png +0 -0
  43. {wfc3tools-1.5.0 → wfc3tools-1.6.0}/docs/_static/wfc3_Ch33_1.png +0 -0
  44. {wfc3tools-1.5.0 → wfc3tools-1.6.0}/docs/_static/wfc3_Ch33_5.png +0 -0
  45. {wfc3tools-1.5.0 → wfc3tools-1.6.0}/docs/_static/wfc_logo.png +0 -0
  46. {wfc3tools-1.5.0 → wfc3tools-1.6.0}/docs/exts/numfig.py +0 -0
  47. {wfc3tools-1.5.0 → wfc3tools-1.6.0}/docs/index.rst +0 -0
  48. {wfc3tools-1.5.0 → wfc3tools-1.6.0}/docs/make.bat +0 -0
  49. {wfc3tools-1.5.0 → wfc3tools-1.6.0}/docs/notebooks/README +0 -0
  50. {wfc3tools-1.5.0 → wfc3tools-1.6.0}/docs/notebooks/wf3persist.ipynb +0 -0
  51. {wfc3tools-1.5.0 → wfc3tools-1.6.0}/docs/wfc3tools/calwf3.rst +0 -0
  52. {wfc3tools-1.5.0 → wfc3tools-1.6.0}/docs/wfc3tools/embedsub.rst +0 -0
  53. {wfc3tools-1.5.0 → wfc3tools-1.6.0}/docs/wfc3tools/history.rst +0 -0
  54. {wfc3tools-1.5.0 → wfc3tools-1.6.0}/docs/wfc3tools/ir_pipeline.inc +0 -0
  55. {wfc3tools-1.5.0 → wfc3tools-1.6.0}/docs/wfc3tools/pstack.rst +0 -0
  56. {wfc3tools-1.5.0 → wfc3tools-1.6.0}/docs/wfc3tools/pstat.rst +0 -0
  57. {wfc3tools-1.5.0 → wfc3tools-1.6.0}/docs/wfc3tools/sampinfo.rst +0 -0
  58. {wfc3tools-1.5.0 → wfc3tools-1.6.0}/docs/wfc3tools/sub2full.rst +0 -0
  59. {wfc3tools-1.5.0 → wfc3tools-1.6.0}/docs/wfc3tools/uvis_pipeline.inc +0 -0
  60. {wfc3tools-1.5.0 → wfc3tools-1.6.0}/docs/wfc3tools/wf32d.rst +0 -0
  61. {wfc3tools-1.5.0 → wfc3tools-1.6.0}/docs/wfc3tools/wf3ccd.rst +0 -0
  62. {wfc3tools-1.5.0 → wfc3tools-1.6.0}/docs/wfc3tools/wf3cte.rst +0 -0
  63. {wfc3tools-1.5.0 → wfc3tools-1.6.0}/docs/wfc3tools/wf3ir.rst +0 -0
  64. {wfc3tools-1.5.0 → wfc3tools-1.6.0}/docs/wfc3tools/wf3rej.rst +0 -0
  65. {wfc3tools-1.5.0 → wfc3tools-1.6.0}/wfc3tools/__init__.py +0 -0
  66. {wfc3tools-1.5.0 → wfc3tools-1.6.0}/wfc3tools/calwf3.py +0 -0
  67. {wfc3tools-1.5.0 → wfc3tools-1.6.0}/wfc3tools/embedsub.py +0 -0
  68. {wfc3tools-1.5.0 → wfc3tools-1.6.0}/wfc3tools/pstack.py +0 -0
  69. {wfc3tools-1.5.0 → wfc3tools-1.6.0}/wfc3tools/pstat.py +0 -0
  70. {wfc3tools-1.5.0 → wfc3tools-1.6.0}/wfc3tools/tests/test_calwf3.py +0 -0
  71. {wfc3tools-1.5.0 → wfc3tools-1.6.0}/wfc3tools/util.py +0 -0
  72. {wfc3tools-1.5.0 → wfc3tools-1.6.0}/wfc3tools/wf32d.py +0 -0
  73. {wfc3tools-1.5.0 → wfc3tools-1.6.0}/wfc3tools/wf3ccd.py +0 -0
  74. {wfc3tools-1.5.0 → wfc3tools-1.6.0}/wfc3tools/wf3cte.py +0 -0
  75. {wfc3tools-1.5.0 → wfc3tools-1.6.0}/wfc3tools/wf3ir.py +0 -0
  76. {wfc3tools-1.5.0 → wfc3tools-1.6.0}/wfc3tools/wf3rej.py +0 -0
  77. {wfc3tools-1.5.0 → wfc3tools-1.6.0}/wfc3tools.egg-info/dependency_links.txt +0 -0
  78. {wfc3tools-1.5.0 → wfc3tools-1.6.0}/wfc3tools.egg-info/not-zip-safe +0 -0
  79. {wfc3tools-1.5.0 → wfc3tools-1.6.0}/wfc3tools.egg-info/top_level.txt +0 -0
@@ -0,0 +1,14 @@
1
+ version: 2
2
+ updates:
3
+
4
+ # Maintain dependencies for GitHub Actions
5
+ - package-ecosystem: "github-actions"
6
+ directory: ".github/workflows"
7
+ target-branch: "main"
8
+ schedule:
9
+ interval: monthly
10
+ time: "03:30"
11
+ groups:
12
+ actions:
13
+ patterns:
14
+ - "*"
@@ -8,7 +8,7 @@ on:
8
8
 
9
9
  jobs:
10
10
  build:
11
- uses: OpenAstronomy/github-actions-workflows/.github/workflows/publish_pure_python.yml@v1
11
+ uses: OpenAstronomy/github-actions-workflows/.github/workflows/publish_pure_python.yml@v2
12
12
  with:
13
13
  upload_to_pypi: ${{ (github.event_name == 'release') && (github.event.action == 'released') }}
14
14
  secrets:
@@ -0,0 +1,20 @@
1
+ name: tests
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - main
7
+ - '*x'
8
+ tags:
9
+ - '*'
10
+ pull_request:
11
+
12
+ jobs:
13
+ test:
14
+ uses: OpenAstronomy/github-actions-workflows/.github/workflows/tox.yml@v2
15
+ with:
16
+ conda: true
17
+ envs: |
18
+ - linux: py311
19
+ - linux: py312
20
+ - macos: py312
@@ -1,3 +1,7 @@
1
+ 1.6.0 (2025-10-21)
2
+ ------------------
3
+ - Follow PEP621 to move build configuration pyproject.toml [#90]
4
+
1
5
  1.5.0 (2023-10-18)
2
6
  ------------------
3
7
  - Major updates to the readthedocs documentation, particularly for UVIS pipeline and new full-well saturation [#68, #83]
@@ -7,7 +11,6 @@
7
11
  - Modified how an image section is specified and reversed the use of column and row parameters for pstat [#75]
8
12
  - Dropped support for Python 3.8 [#79]
9
13
 
10
-
11
14
  1.4.0 (2022-03-10)
12
15
  ------------------
13
16
  - fixed matplotlib plotting issue, added explicit draw and interaction plots
@@ -1,12 +1,8 @@
1
1
  include README.rst
2
2
  include CHANGES.rst
3
- include setup.cfg
4
3
  include LICENSE.txt
5
4
  include pyproject.toml
6
5
 
7
- include setup.py
8
- include setup.cfg
9
-
10
6
  recursive-include docs *
11
7
  recursive-include wfc3tools *
12
8
 
@@ -0,0 +1,91 @@
1
+ Metadata-Version: 2.4
2
+ Name: wfc3tools
3
+ Version: 1.6.0
4
+ Summary: Python Tools for HST WFC3 Data
5
+ Author: STScI
6
+ Project-URL: Homepage, http://wfc3tools.readthedocs.io/
7
+ Project-URL: Bug Reports, https://github.com/spacetelescope/wfc3tools/issues/
8
+ Project-URL: Source, https://github.com/spacetelescope/wfc3tools/
9
+ Project-URL: Help, https://hsthelp.stsci.edu
10
+ Classifier: Intended Audience :: Science/Research
11
+ Classifier: Operating System :: OS Independent
12
+ Classifier: Programming Language :: Python
13
+ Classifier: Topic :: Scientific/Engineering :: Astronomy
14
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
15
+ Requires-Python: >=3.9
16
+ Description-Content-Type: text/x-rst
17
+ License-File: LICENSE.txt
18
+ Requires-Dist: astropy>=4.2.0
19
+ Requires-Dist: numpy>=1.21.0
20
+ Requires-Dist: matplotlib>=3.5.1
21
+ Requires-Dist: stsci.tools>=4.0.1
22
+ Requires-Dist: scipy>=1.8.0
23
+ Provides-Extra: tests
24
+ Requires-Dist: pytest; extra == "tests"
25
+ Requires-Dist: astroquery; extra == "tests"
26
+ Provides-Extra: docs
27
+ Requires-Dist: sphinx; extra == "docs"
28
+ Requires-Dist: sphinx-automodapi; extra == "docs"
29
+ Requires-Dist: sphinx-rtd-theme; extra == "docs"
30
+ Dynamic: license-file
31
+
32
+ WFC3TOOLS
33
+ =========
34
+
35
+ .. image:: https://readthedocs.org/projects/wfc3tools/badge/?version=latest
36
+ :target: http://wfc3tools.readthedocs.io/en/latest/?badge=latest
37
+ :alt: Documentation Status
38
+
39
+ .. image:: http://img.shields.io/badge/powered%20by-AstroPy-orange.svg?style=flat
40
+ :target: http://www.astropy.org
41
+ :alt: Powered by Astropy Badge
42
+
43
+
44
+ For more information please see the `online documentation <http://wfc3tools.readthedocs.io/>`_.
45
+
46
+ You can also display the docs locally after install, import ``wfc3tools`` and then issue the following command to display the help docs in your local browser:
47
+
48
+ ::
49
+
50
+ wfc3tools.display_help()
51
+
52
+ To install using pip:
53
+
54
+ ::
55
+
56
+ pip install wfc3tools
57
+
58
+ pip install --upgrade wfc3tools # if you already have an older version installed
59
+
60
+
61
+
62
+ Contributing
63
+ ------------
64
+
65
+ Please open a new issue or new pull request for bugs, feedback, or new features
66
+ you would like to see. If there is an issue you would like to work on, please
67
+ leave a comment and we will be happy to assist. New contributions and
68
+ contributors are very welcome!
69
+
70
+ New to github or open source projects? If you are unsure about where to start
71
+ or haven't used github before, please feel free to contact `HST Help Desk <https://stsci.service-now.com/hst>`_.
72
+
73
+ Feedback and feature requests? Is there something missing you would like
74
+ to see? Please open an issue or contact `HST Help Desk <https://stsci.service-now.com/hst>`_.
75
+
76
+ ``wfc3tools`` follows the `Astropy Code of Conduct`_ and strives to provide a
77
+ welcoming community to all of our users and contributors.
78
+
79
+ Want more information about how to make a contribution? Take a look at
80
+ the the astropy `contributing`_ and `developer`_ documentation.
81
+
82
+
83
+ License
84
+ -------
85
+
86
+ ``wfc3tools`` is licensed under a 3-clause BSD style license (see the ``LICENSE.txt`` file).
87
+
88
+ .. _AstroPy: http://www.astropy.org/
89
+ .. _contributing: http://docs.astropy.org/en/stable/index.html#contributing
90
+ .. _developer: http://docs.astropy.org/en/stable/index.html#developer-documentation
91
+ .. _Astropy Code of Conduct: http://www.astropy.org/about.html#codeofconduct
@@ -9,13 +9,18 @@
9
9
  from configparser import ConfigParser
10
10
  import datetime
11
11
  import os
12
+ from pathlib import Path
12
13
  import sys
13
14
 
14
15
  from wfc3tools import __version__
15
16
 
16
- conf = ConfigParser()
17
- conf.read([os.path.join(os.path.dirname(__file__), '..', 'setup.cfg')])
18
- setup_cfg = dict(conf.items('metadata'))
17
+ if sys.version_info < (3, 11):
18
+ import tomli as tomllib
19
+ else:
20
+ import tomllib
21
+
22
+ with open(Path(__file__).parent.parent / "pyproject.toml", "rb") as configuration_file:
23
+ metadata = tomllib.load(configuration_file)["project"]
19
24
  # -- Path setup --------------------------------------------------------------
20
25
 
21
26
  # If extensions (or modules to document with autodoc) are in another directory,
@@ -28,9 +33,9 @@ sys.path.insert(0, os.path.abspath('exts/'))
28
33
 
29
34
 
30
35
  # -- Project information -----------------------------------------------------
31
- project = setup_cfg['name']
32
- author = setup_cfg['author']
33
- copyright = '{0}, {1}'.format(datetime.datetime.now().year, author)
36
+ project = metadata["name"]
37
+ author = f'{metadata["authors"][0]["name"]}'
38
+ copyright = f"{datetime.datetime.now().year}, {author}"
34
39
 
35
40
  # The version info for the project you're documenting, acts as replacement for
36
41
  # |version| and |release|, also used in various other places throughout the
@@ -139,4 +144,4 @@ latex_show_urls = 'True'
139
144
  # latex_appendices = []
140
145
 
141
146
  # If false, no module index is generated.
142
- latex_domain_indices = True
147
+ latex_domain_indices = True
@@ -1,9 +1,8 @@
1
1
  name: rtd311
2
2
  channels:
3
3
  - conda-forge
4
- - defaults
5
4
  dependencies:
6
5
  - python=3.11
7
6
  - pip
8
7
  - graphviz
9
- - sphinx_rtd_theme>1.2.0
8
+ - sphinx_rtd_theme>1.2.0
@@ -0,0 +1,70 @@
1
+ [project]
2
+ name = "wfc3tools"
3
+ description = "Python Tools for HST WFC3 Data"
4
+ requires-python = ">=3.9"
5
+ authors = [
6
+ { name = "STScI" },
7
+ ]
8
+ license-files = ["LICENSE.txt"]
9
+ classifiers = [
10
+ "Intended Audience :: Science/Research",
11
+ "Operating System :: OS Independent",
12
+ "Programming Language :: Python",
13
+ "Topic :: Scientific/Engineering :: Astronomy",
14
+ "Topic :: Software Development :: Libraries :: Python Modules",
15
+ ]
16
+ dependencies = [
17
+ "astropy>=4.2.0",
18
+ "numpy>=1.21.0",
19
+ "matplotlib>=3.5.1",
20
+ "stsci.tools>=4.0.1",
21
+ "scipy>=1.8.0",
22
+ ]
23
+ dynamic = [
24
+ "version",
25
+ ]
26
+
27
+ [project.readme]
28
+ file = "README.rst"
29
+ content-type = "text/x-rst"
30
+
31
+ [project.urls]
32
+ Homepage = "http://wfc3tools.readthedocs.io/"
33
+ "Bug Reports" = "https://github.com/spacetelescope/wfc3tools/issues/"
34
+ Source = "https://github.com/spacetelescope/wfc3tools/"
35
+ Help = "https://hsthelp.stsci.edu"
36
+
37
+ [project.optional-dependencies]
38
+ tests = [
39
+ "pytest",
40
+ "astroquery",
41
+ ]
42
+ docs = [
43
+ "sphinx",
44
+ "sphinx-automodapi",
45
+ "sphinx-rtd-theme",
46
+ ]
47
+
48
+ [build-system]
49
+ requires = [
50
+ "setuptools>=61.2",
51
+ "setuptools_scm[toml]>=3.4",
52
+ "wheel",
53
+ ]
54
+ build-backend = "setuptools.build_meta"
55
+
56
+ [tool.setuptools]
57
+ zip-safe = false
58
+ include-package-data = false
59
+
60
+ [tool.setuptools.packages.find]
61
+ namespaces = false
62
+
63
+ [tool.setuptools_scm]
64
+ version_file = "wfc3tools/version.py"
65
+
66
+ [tool.ruff]
67
+ extend-ignore = [
68
+ "E501", # Line too long
69
+ ]
70
+ line-length = 127
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
@@ -0,0 +1,53 @@
1
+ [tox]
2
+ env_list =
3
+ check-{style}
4
+ test{,-warnings}{,-cov}-xdist
5
+ build-{docs,dist}
6
+ isolated_build = True
7
+
8
+ [testenv:check-style]
9
+ description = check code style, e.g. with flake8
10
+ skip_install = true
11
+ deps =
12
+ ruff
13
+ commands =
14
+ ruff check . {posargs}
15
+
16
+ [testenv]
17
+ description =
18
+ run tests
19
+ warnings: treating warnings as errors
20
+ cov: with coverage
21
+ xdist: using parallel processing
22
+ package = editable
23
+ extras = tests
24
+ deps =
25
+ pytest
26
+ xdist: pytest-xdist
27
+ cov: pytest-cov
28
+ conda_deps =
29
+ hstcal
30
+ conda_channels =
31
+ conda-forge
32
+ commands_pre =
33
+ pip freeze
34
+ commands =
35
+ pytest \
36
+ warnings: -W error \
37
+ cov: --cov=. --cov-config=pyproject.toml --cov-report=term-missing --cov-report=xml \
38
+ xdist: -n auto \
39
+ {posargs}
40
+
41
+ [testenv:build-docs]
42
+ description = invoke sphinx-build to build the HTML docs
43
+ extras = docs
44
+ commands =
45
+ sphinx-build -b html docs docs/_build/html
46
+
47
+ [testenv:build-dist]
48
+ description = build wheel and sdist
49
+ skip_install = true
50
+ deps =
51
+ build
52
+ commands =
53
+ python -m build .
@@ -26,50 +26,50 @@ Usage:
26
26
 
27
27
  >>> from wfc3tools import sampinfo
28
28
  >>> sampinfo('ibcf02faq_raw.fits')
29
- >>> IMAGE NEXTEND SAMP_SEQ NSAMP EXPTIME
30
- ibcf02faq_raw.fits 80 STEP50 16 499.234009
31
-
32
- IMSET SAMPNUM SAMPTIME DELTATIM
33
- 1 15 499.234009 50.000412
34
- 2 14 449.233582 50.000412
35
- 3 13 399.233154 50.000412
36
- 4 12 349.232727 50.000412
37
- 5 11 299.2323 50.000412
38
- 6 10 249.231873 50.000412
39
- 7 9 199.231461 50.000412
40
- 8 8 149.231049 50.000412
41
- 9 7 99.230637 50.000412
42
- 10 6 49.230225 25.000511
43
- 11 5 24.229715 12.500551
44
- 12 4 11.729164 2.932291
45
- 13 3 8.796873 2.932291
46
- 14 2 5.864582 2.932291
47
- 15 1 2.932291 2.932291
48
- 16 0 0.0 0.0
29
+ >>> IMAGE NEXTEND SAMP_SEQ NSAMP EXPTIME
30
+ ibcf02faq_raw.fits 80 STEP50 16 499.234009
31
+
32
+ IMSET SAMPNUM SAMPTIME DELTATIM
33
+ 1 15 499.234009 50.000412
34
+ 2 14 449.233582 50.000412
35
+ 3 13 399.233154 50.000412
36
+ 4 12 349.232727 50.000412
37
+ 5 11 299.2323 50.000412
38
+ 6 10 249.231873 50.000412
39
+ 7 9 199.231461 50.000412
40
+ 8 8 149.231049 50.000412
41
+ 9 7 99.230637 50.000412
42
+ 10 6 49.230225 25.000511
43
+ 11 5 24.229715 12.500551
44
+ 12 4 11.729164 2.932291
45
+ 13 3 8.796873 2.932291
46
+ 14 2 5.864582 2.932291
47
+ 15 1 2.932291 2.932291
48
+ 16 0 0.0 0.0
49
49
 
50
50
  Include median:
51
51
 
52
52
  >>> sampinfo('ibcf02faq_raw.fits',median=True)
53
- >>> IMAGE NEXTEND SAMP_SEQ NSAMP EXPTIME
54
- ibcf02faq_raw.fits 80 STEP50 16 499.234009
55
-
56
- IMSET SAMPNUM SAMPTIME DELTATIM
57
- 1 15 499.234009 50.000412 MedPixel: 11384.0
58
- 2 14 449.233582 50.000412 MedPixel: 11360.0
59
- 3 13 399.233154 50.000412 MedPixel: 11335.0
60
- 4 12 349.232727 50.000412 MedPixel: 11309.0
61
- 5 11 299.2323 50.000412 MedPixel: 11283.0
62
- 6 10 249.231873 50.000412 MedPixel: 11256.0
63
- 7 9 199.231461 50.000412 MedPixel: 11228.0
64
- 8 8 149.231049 50.000412 MedPixel: 11198.0
65
- 9 7 99.230637 50.000412 MedPixel: 11166.0
66
- 10 6 49.230225 25.000511 MedPixel: 11131.0
67
- 11 5 24.229715 12.500551 MedPixel: 11111.0
68
- 12 4 11.729164 2.932291 MedPixel: 11099.0
69
- 13 3 8.796873 2.932291 MedPixel: 11097.0
70
- 14 2 5.864582 2.932291 MedPixel: 11093.0
71
- 15 1 2.932291 2.932291 MedPixel: 11090.0
72
- 16 0 0.0 0.0 MedPixel: 11087.0
53
+ >>> IMAGE NEXTEND SAMP_SEQ NSAMP EXPTIME
54
+ ibcf02faq_raw.fits 80 STEP50 16 499.234009
55
+
56
+ IMSET SAMPNUM SAMPTIME DELTATIM
57
+ 1 15 499.234009 50.000412 MedPixel: 11384.0
58
+ 2 14 449.233582 50.000412 MedPixel: 11360.0
59
+ 3 13 399.233154 50.000412 MedPixel: 11335.0
60
+ 4 12 349.232727 50.000412 MedPixel: 11309.0
61
+ 5 11 299.2323 50.000412 MedPixel: 11283.0
62
+ 6 10 249.231873 50.000412 MedPixel: 11256.0
63
+ 7 9 199.231461 50.000412 MedPixel: 11228.0
64
+ 8 8 149.231049 50.000412 MedPixel: 11198.0
65
+ 9 7 99.230637 50.000412 MedPixel: 11166.0
66
+ 10 6 49.230225 25.000511 MedPixel: 11131.0
67
+ 11 5 24.229715 12.500551 MedPixel: 11111.0
68
+ 12 4 11.729164 2.932291 MedPixel: 11099.0
69
+ 13 3 8.796873 2.932291 MedPixel: 11097.0
70
+ 14 2 5.864582 2.932291 MedPixel: 11093.0
71
+ 15 1 2.932291 2.932291 MedPixel: 11090.0
72
+ 16 0 0.0 0.0 MedPixel: 11087.0
73
73
 
74
74
  """
75
75
 
@@ -174,7 +174,7 @@ def sampinfo(imagelist, add_keys=None, mean=False, median=False):
174
174
  dataminval = np.min(current["SCI", samp].data)
175
175
  if "DATAMAX" in key:
176
176
  datamax = True
177
- datamaxval = np.min(current["SCI", samp].data)
177
+ datamaxval = np.max(current["SCI", samp].data)
178
178
  try:
179
179
  printline += ("\t"+str(current["SCI", samp].header[key]))
180
180
  except KeyError:
@@ -85,7 +85,7 @@ def sub2full(filename, x=None, y=None, fullExtent=False):
85
85
 
86
86
  infiles, dummy_out = parseinput.parseinput(filename)
87
87
  if len(infiles) < 1:
88
- return ValueError("Please input a valid HST filename")
88
+ raise ValueError("Please input a valid HST filename")
89
89
 
90
90
  coords = list()
91
91
 
@@ -112,10 +112,10 @@ def sub2full(filename, x=None, y=None, fullExtent=False):
112
112
  numcols = int(fd2[1].header['NUMCOLS'])
113
113
  fd2.close()
114
114
  except KeyError as e:
115
- raise KeyError("Required header keyword missing; %s" % (e))
115
+ raise KeyError(f"Required header keyword missing: {e}")
116
116
 
117
117
  if "NO" in subarray:
118
- raise ValueError("Image is not a subarray: %s" % (f))
118
+ raise ValueError(f"Image is not a subarray: {f}")
119
119
 
120
120
  sizaxis1 = numcols
121
121
  sizaxis2 = numrows
@@ -0,0 +1,31 @@
1
+ import os
2
+
3
+ from astroquery.mast import Observations
4
+ import numpy as np
5
+
6
+ from wfc3tools import pstack
7
+
8
+
9
+ def test_pstack(tmpdir):
10
+
11
+ os.chdir(tmpdir)
12
+
13
+ filename = 'ibh719grq_ima.fits'
14
+ Observations.download_file(f'mast:HST/product/{filename}', cache=True)
15
+
16
+ x_data, y_data = pstack('ibh719grq_ima.fits',
17
+ column=100,
18
+ row=25,
19
+ extname='sci',
20
+ plot=False)
21
+
22
+ x_truth = np.array([100.651947, 93.470573, 86.2892, 79.107826, 71.926453,
23
+ 64.745079, 57.563702, 50.382328, 43.200954, 36.019581,
24
+ 28.838205, 21.65683, 14.475455, 7.29408, 0.112705, 0.])
25
+ y_truth = np.array([136.75660802, 151.46077054, 133.8688648, 108.50410805,
26
+ 109.17918583, 81.5139582, 90.26712192, 61.68512157,
27
+ 59.11241987, 39.01870227, 32.63157047, 16.07532735,
28
+ 33.69198196, 16.90631634, 13.54113704, 0.])
29
+
30
+ np.testing.assert_allclose(x_data, x_truth)
31
+ np.testing.assert_allclose(y_data, y_truth)
@@ -0,0 +1,36 @@
1
+ import os
2
+
3
+ from astroquery.mast import Observations
4
+ import numpy as np
5
+
6
+ from wfc3tools import pstat
7
+
8
+
9
+ def test_pstat(tmpdir):
10
+
11
+ os.chdir(tmpdir)
12
+
13
+ filename = 'ibh719grq_ima.fits'
14
+ Observations.download_file(f'mast:HST/product/{filename}', cache=True)
15
+
16
+ truth = (np.array([100.651947, 93.470573, 86.2892, 79.107826, 71.926453,
17
+ 64.745079, 57.563702, 50.382328, 43.200954, 36.019581,
18
+ 28.838205, 21.65683, 14.475455, 7.29408, 0.112705, 0.]),
19
+ np.array([210.93391217, 210.3575491, 187.08969378, 181.75601219,
20
+ 151.43222828, 138.52899031, 116.67495111, 109.19263377,
21
+ 86.42073624, 80.97576756, 70.44724733, 53.37688116,
22
+ 33.1249918, 12.25499919, -4.88105808, 0.]))
23
+
24
+ stat = pstat(filename, col_slice=(100, 104), row_slice=(20, 25),
25
+ units="counts", plot=False)
26
+ np.testing.assert_allclose(stat[0], truth[0])
27
+ np.testing.assert_allclose(stat[1], truth[1])
28
+
29
+ stat = pstat(filename, col_slice=(100, 104), row_slice=(20, 25),
30
+ units="rate", plot=False)
31
+ rate = np.array([2.09567642, 2.25052166, 2.16817045, 2.29757309,
32
+ 2.10537601, 2.13960648, 2.02688408, 2.16728044,
33
+ 2.00043583, 2.2481041, 2.44284439, 2.46466732,
34
+ 2.28835583, 1.68012953, -43.30826569, 0.])
35
+ np.testing.assert_allclose(stat[0], truth[0])
36
+ np.testing.assert_allclose(stat[1], rate)
@@ -0,0 +1,57 @@
1
+ from wfc3tools import sampinfo
2
+ from astroquery.mast import Observations
3
+ import re
4
+ import os
5
+
6
+
7
+ def normalize(r):
8
+ # strip white space and tabs from output, replace with all single spaces,
9
+ # split into a list by newlines
10
+ return [re.sub(r'\s+', ' ', s.strip()) for s in r.split('\n')]
11
+
12
+
13
+ def test_sampinfo(capsys, tmpdir):
14
+
15
+ os.chdir(tmpdir)
16
+
17
+ filename = 'ibcf02faq_raw.fits'
18
+ Observations.download_file(f'mast:HST/product/{filename}', cache=True)
19
+ capsys.readouterr() # clear buffer
20
+
21
+ # expected header for all calls to sampinfo, for this dataset
22
+ h1 = 'IMAGE NEXTEND SAMP_SEQ NSAMP EXPTIME'
23
+ h2 = 'ibcf02faq_raw.fits 80 STEP50 16 499.234009'
24
+ h3 = 'IMSET SAMPNUM SAMPTIME DELTATIM'
25
+
26
+ sampinfo(filename)
27
+ c = normalize(capsys.readouterr().out)
28
+ assert h2 in c
29
+ assert h3 in c
30
+ assert '1 15 499.234009 50.000412' in c
31
+ capsys.readouterr() # clear buffer
32
+
33
+ # include median
34
+ sampinfo('ibcf02faq_raw.fits', median=True)
35
+ c = normalize(capsys.readouterr().out)
36
+ assert h1 in c
37
+ assert h2 in c
38
+ assert h3 in c
39
+ assert '1 15 499.234009 50.000412 MedPixel: 11384.0' in c
40
+ capsys.readouterr() # clear buffer
41
+
42
+ # include mean
43
+ sampinfo('ibcf02faq_raw.fits', mean=True)
44
+ c = normalize(capsys.readouterr().out)
45
+ assert h1 in c
46
+ assert h2 in c
47
+ assert 'IMSET SAMPNUM SAMPTIME DELTATIM DATAMIN DATAMAX' in c
48
+ assert '1 15 499.234009 50.000412 0.0 57019.0 AvgPixel: 28509.5' in c
49
+ capsys.readouterr() # clear buffer
50
+
51
+ # test image list (same image twice)
52
+ sampinfo(['ibcf02faq_raw.fits', 'ibcf02faq_raw.fits'])
53
+ c = normalize(capsys.readouterr().out)
54
+ assert c.count(h1) == 2
55
+ assert c.count(h2) == 2
56
+ assert c.count(h3) == 2
57
+ assert c.count('1 15 499.234009 50.000412') == 2
@@ -0,0 +1,55 @@
1
+ from wfc3tools import sub2full
2
+ from astropy.io import fits
3
+
4
+ from astroquery.mast import Observations
5
+ import pytest
6
+ import os
7
+
8
+
9
+ def download_test_data(filenames, local_path='', cache=False):
10
+ for f in filenames:
11
+ Observations.download_file(f'mast:HST/product/{f}', cache=cache,
12
+ local_path=local_path)
13
+
14
+
15
+ def test_sub2full(tmpdir):
16
+ flt = 'ibbso1fdq_flt.fits'
17
+ spt = 'ibbso1fdq_spt.fits'
18
+
19
+ download_test_data([flt, spt], local_path=tmpdir)
20
+
21
+ os.chdir(tmpdir)
22
+
23
+ # default args
24
+ coords = sub2full(flt, x=None, y=None, fullExtent=False)
25
+ assert coords == [(3584, 1539)]
26
+
27
+ # full extent
28
+ coords = sub2full(flt , x=None, y=None, fullExtent=True)
29
+ assert coords == [(3584, 4096, 1539, 2050)]
30
+
31
+ # single coordinate
32
+ coords = sub2full(flt , x=1, y=1)
33
+ assert coords == [(3585, 1540)]
34
+
35
+ # list of images
36
+ flt2 = 'ic5p02e2q_flt.fits'
37
+ spt2 = 'ic5p02e2q_spt.fits'
38
+ download_test_data([flt2, spt2])
39
+ coords = sub2full([flt, flt2])
40
+ assert coords == [(3584, 1539), (1410, 1243)]
41
+
42
+ # multiple coordinates should raise error
43
+ with pytest.raises(ValueError,
44
+ match='Must input integer value for x and y'):
45
+ sub2full(flt, x=(1, 2), y=(1, 2))
46
+
47
+ # bad filename should raise error
48
+ with pytest.raises(ValueError, match='Please input a valid HST filename'):
49
+ sub2full('test', x=(1, 2), y=(1, 2))
50
+
51
+ # missing header keyword should raise an error
52
+ with fits.open(spt, mode='update') as f:
53
+ del f[0].header['SS_DTCTR']
54
+ with pytest.raises(KeyError, match='Required header keyword missing'):
55
+ sub2full(flt)
@@ -0,0 +1,34 @@
1
+ # file generated by setuptools-scm
2
+ # don't change, don't track in version control
3
+
4
+ __all__ = [
5
+ "__version__",
6
+ "__version_tuple__",
7
+ "version",
8
+ "version_tuple",
9
+ "__commit_id__",
10
+ "commit_id",
11
+ ]
12
+
13
+ TYPE_CHECKING = False
14
+ if TYPE_CHECKING:
15
+ from typing import Tuple
16
+ from typing import Union
17
+
18
+ VERSION_TUPLE = Tuple[Union[int, str], ...]
19
+ COMMIT_ID = Union[str, None]
20
+ else:
21
+ VERSION_TUPLE = object
22
+ COMMIT_ID = object
23
+
24
+ version: str
25
+ __version__: str
26
+ __version_tuple__: VERSION_TUPLE
27
+ version_tuple: VERSION_TUPLE
28
+ commit_id: COMMIT_ID
29
+ __commit_id__: COMMIT_ID
30
+
31
+ __version__ = version = '1.6.0'
32
+ __version_tuple__ = version_tuple = (1, 6, 0)
33
+
34
+ __commit_id__ = commit_id = 'g1206755c4'
@@ -0,0 +1,91 @@
1
+ Metadata-Version: 2.4
2
+ Name: wfc3tools
3
+ Version: 1.6.0
4
+ Summary: Python Tools for HST WFC3 Data
5
+ Author: STScI
6
+ Project-URL: Homepage, http://wfc3tools.readthedocs.io/
7
+ Project-URL: Bug Reports, https://github.com/spacetelescope/wfc3tools/issues/
8
+ Project-URL: Source, https://github.com/spacetelescope/wfc3tools/
9
+ Project-URL: Help, https://hsthelp.stsci.edu
10
+ Classifier: Intended Audience :: Science/Research
11
+ Classifier: Operating System :: OS Independent
12
+ Classifier: Programming Language :: Python
13
+ Classifier: Topic :: Scientific/Engineering :: Astronomy
14
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
15
+ Requires-Python: >=3.9
16
+ Description-Content-Type: text/x-rst
17
+ License-File: LICENSE.txt
18
+ Requires-Dist: astropy>=4.2.0
19
+ Requires-Dist: numpy>=1.21.0
20
+ Requires-Dist: matplotlib>=3.5.1
21
+ Requires-Dist: stsci.tools>=4.0.1
22
+ Requires-Dist: scipy>=1.8.0
23
+ Provides-Extra: tests
24
+ Requires-Dist: pytest; extra == "tests"
25
+ Requires-Dist: astroquery; extra == "tests"
26
+ Provides-Extra: docs
27
+ Requires-Dist: sphinx; extra == "docs"
28
+ Requires-Dist: sphinx-automodapi; extra == "docs"
29
+ Requires-Dist: sphinx-rtd-theme; extra == "docs"
30
+ Dynamic: license-file
31
+
32
+ WFC3TOOLS
33
+ =========
34
+
35
+ .. image:: https://readthedocs.org/projects/wfc3tools/badge/?version=latest
36
+ :target: http://wfc3tools.readthedocs.io/en/latest/?badge=latest
37
+ :alt: Documentation Status
38
+
39
+ .. image:: http://img.shields.io/badge/powered%20by-AstroPy-orange.svg?style=flat
40
+ :target: http://www.astropy.org
41
+ :alt: Powered by Astropy Badge
42
+
43
+
44
+ For more information please see the `online documentation <http://wfc3tools.readthedocs.io/>`_.
45
+
46
+ You can also display the docs locally after install, import ``wfc3tools`` and then issue the following command to display the help docs in your local browser:
47
+
48
+ ::
49
+
50
+ wfc3tools.display_help()
51
+
52
+ To install using pip:
53
+
54
+ ::
55
+
56
+ pip install wfc3tools
57
+
58
+ pip install --upgrade wfc3tools # if you already have an older version installed
59
+
60
+
61
+
62
+ Contributing
63
+ ------------
64
+
65
+ Please open a new issue or new pull request for bugs, feedback, or new features
66
+ you would like to see. If there is an issue you would like to work on, please
67
+ leave a comment and we will be happy to assist. New contributions and
68
+ contributors are very welcome!
69
+
70
+ New to github or open source projects? If you are unsure about where to start
71
+ or haven't used github before, please feel free to contact `HST Help Desk <https://stsci.service-now.com/hst>`_.
72
+
73
+ Feedback and feature requests? Is there something missing you would like
74
+ to see? Please open an issue or contact `HST Help Desk <https://stsci.service-now.com/hst>`_.
75
+
76
+ ``wfc3tools`` follows the `Astropy Code of Conduct`_ and strives to provide a
77
+ welcoming community to all of our users and contributors.
78
+
79
+ Want more information about how to make a contribution? Take a look at
80
+ the the astropy `contributing`_ and `developer`_ documentation.
81
+
82
+
83
+ License
84
+ -------
85
+
86
+ ``wfc3tools`` is licensed under a 3-clause BSD style license (see the ``LICENSE.txt`` file).
87
+
88
+ .. _AstroPy: http://www.astropy.org/
89
+ .. _contributing: http://docs.astropy.org/en/stable/index.html#contributing
90
+ .. _developer: http://docs.astropy.org/en/stable/index.html#developer-documentation
91
+ .. _Astropy Code of Conduct: http://www.astropy.org/about.html#codeofconduct
@@ -6,10 +6,11 @@ LICENSE.txt
6
6
  MANIFEST.in
7
7
  README.rst
8
8
  pyproject.toml
9
- setup.cfg
10
- setup.py
9
+ tox.ini
11
10
  .github/CODEOWNERS
11
+ .github/dependabot.yml
12
12
  .github/workflows/build.yml
13
+ .github/workflows/tests.yml
13
14
  docs/Makefile
14
15
  docs/conf.py
15
16
  docs/index.rst
@@ -63,4 +64,8 @@ wfc3tools.egg-info/dependency_links.txt
63
64
  wfc3tools.egg-info/not-zip-safe
64
65
  wfc3tools.egg-info/requires.txt
65
66
  wfc3tools.egg-info/top_level.txt
66
- wfc3tools/tests/test_calwf3.py
67
+ wfc3tools/tests/test_calwf3.py
68
+ wfc3tools/tests/test_pstack.py
69
+ wfc3tools/tests/test_pstat.py
70
+ wfc3tools/tests/test_sampinfo.py
71
+ wfc3tools/tests/test_sub2full.py
@@ -8,3 +8,7 @@ scipy>=1.8.0
8
8
  sphinx
9
9
  sphinx-automodapi
10
10
  sphinx-rtd-theme
11
+
12
+ [tests]
13
+ pytest
14
+ astroquery
wfc3tools-1.5.0/PKG-INFO DELETED
@@ -1,30 +0,0 @@
1
- Metadata-Version: 2.1
2
- Name: wfc3tools
3
- Version: 1.5.0
4
- Summary: Python Tools for HST WFC3 Data
5
- Home-page: http://wfc3tools.readthedocs.io/
6
- Author: STScI
7
- Author-email: help@stsci.edu
8
- License: BSD
9
- Project-URL: Bug Reports, https://github.com/spacetelescope/wfc3tools/issues/
10
- Project-URL: Source, https://github.com/spacetelescope/wfc3tools/
11
- Project-URL: Help, https://hsthelp.stsci.edu
12
- Classifier: Intended Audience :: Science/Research
13
- Classifier: License :: OSI Approved :: BSD License
14
- Classifier: Operating System :: OS Independent
15
- Classifier: Programming Language :: Python
16
- Classifier: Topic :: Scientific/Engineering :: Astronomy
17
- Classifier: Topic :: Software Development :: Libraries :: Python Modules
18
- Requires-Python: >=3.9
19
- License-File: LICENSE.txt
20
- Requires-Dist: astropy>=4.2.0
21
- Requires-Dist: numpy>=1.21.0
22
- Requires-Dist: matplotlib>=3.5.1
23
- Requires-Dist: stsci.tools>=4.0.1
24
- Requires-Dist: scipy>=1.8.0
25
- Provides-Extra: docs
26
- Requires-Dist: sphinx; extra == "docs"
27
- Requires-Dist: sphinx-automodapi; extra == "docs"
28
- Requires-Dist: sphinx-rtd-theme; extra == "docs"
29
-
30
- A package which contains wrappers for the calwf3 reduction scripts and tools to aid data analysis.
@@ -1,3 +0,0 @@
1
- [build-system]
2
- requires = ["setuptools>=42", "setuptools_scm[toml]>=3.4", "wheel"]
3
- build-backend = "setuptools.build_meta"
wfc3tools-1.5.0/setup.cfg DELETED
@@ -1,46 +0,0 @@
1
- [metadata]
2
- name = wfc3tools
3
- description = Python Tools for HST WFC3 Data
4
- long_description = A package which contains wrappers for the calwf3 reduction scripts and tools to aid data analysis.
5
- author = STScI
6
- author_email = help@stsci.edu
7
- license = BSD
8
- github_project = spacetelescope/wfc3tools
9
- description_file = README.rst
10
- url = http://wfc3tools.readthedocs.io/
11
- homepage = http:://wfc3tools.readthedocs.io/
12
- project_urls =
13
- Bug Reports = https://github.com/spacetelescope/wfc3tools/issues/
14
- Source = https://github.com/spacetelescope/wfc3tools/
15
- Help = https://hsthelp.stsci.edu
16
- classifier =
17
- Intended Audience :: Science/Research
18
- License :: OSI Approved :: BSD License
19
- Operating System :: OS Independent
20
- Programming Language :: Python
21
- Topic :: Scientific/Engineering :: Astronomy
22
- Topic :: Software Development :: Libraries :: Python Modules
23
-
24
- [options]
25
- packages = find:
26
- zip_safe = False
27
- python_requires = >=3.9
28
- setup_requires =
29
- setuptools_scm
30
- install_requires =
31
- astropy>=4.2.0
32
- numpy>=1.21.0
33
- matplotlib>=3.5.1
34
- stsci.tools>=4.0.1
35
- scipy>=1.8.0
36
-
37
- [options.extras_require]
38
- docs =
39
- sphinx
40
- sphinx-automodapi
41
- sphinx-rtd-theme
42
-
43
- [egg_info]
44
- tag_build =
45
- tag_date = 0
46
-
wfc3tools-1.5.0/setup.py DELETED
@@ -1,4 +0,0 @@
1
- #!/usr/bin/env python
2
- from setuptools import setup
3
-
4
- setup(use_scm_version={'write_to': 'wfc3tools/version.py'})
@@ -1,16 +0,0 @@
1
- # file generated by setuptools_scm
2
- # don't change, don't track in version control
3
- TYPE_CHECKING = False
4
- if TYPE_CHECKING:
5
- from typing import Tuple, Union
6
- VERSION_TUPLE = Tuple[Union[int, str], ...]
7
- else:
8
- VERSION_TUPLE = object
9
-
10
- version: str
11
- __version__: str
12
- __version_tuple__: VERSION_TUPLE
13
- version_tuple: VERSION_TUPLE
14
-
15
- __version__ = version = '1.5.0'
16
- __version_tuple__ = version_tuple = (1, 5, 0)
@@ -1,30 +0,0 @@
1
- Metadata-Version: 2.1
2
- Name: wfc3tools
3
- Version: 1.5.0
4
- Summary: Python Tools for HST WFC3 Data
5
- Home-page: http://wfc3tools.readthedocs.io/
6
- Author: STScI
7
- Author-email: help@stsci.edu
8
- License: BSD
9
- Project-URL: Bug Reports, https://github.com/spacetelescope/wfc3tools/issues/
10
- Project-URL: Source, https://github.com/spacetelescope/wfc3tools/
11
- Project-URL: Help, https://hsthelp.stsci.edu
12
- Classifier: Intended Audience :: Science/Research
13
- Classifier: License :: OSI Approved :: BSD License
14
- Classifier: Operating System :: OS Independent
15
- Classifier: Programming Language :: Python
16
- Classifier: Topic :: Scientific/Engineering :: Astronomy
17
- Classifier: Topic :: Software Development :: Libraries :: Python Modules
18
- Requires-Python: >=3.9
19
- License-File: LICENSE.txt
20
- Requires-Dist: astropy>=4.2.0
21
- Requires-Dist: numpy>=1.21.0
22
- Requires-Dist: matplotlib>=3.5.1
23
- Requires-Dist: stsci.tools>=4.0.1
24
- Requires-Dist: scipy>=1.8.0
25
- Provides-Extra: docs
26
- Requires-Dist: sphinx; extra == "docs"
27
- Requires-Dist: sphinx-automodapi; extra == "docs"
28
- Requires-Dist: sphinx-rtd-theme; extra == "docs"
29
-
30
- A package which contains wrappers for the calwf3 reduction scripts and tools to aid data analysis.
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes