photutils 2.0.2__tar.gz → 2.2.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.
- {photutils-2.0.2 → photutils-2.2.0}/.github/dependabot.yml +1 -1
- {photutils-2.0.2 → photutils-2.2.0}/.github/workflows/ci_cron_daily.yml +4 -4
- {photutils-2.0.2 → photutils-2.2.0}/.github/workflows/ci_cron_weekly.yml +5 -26
- {photutils-2.0.2 → photutils-2.2.0}/.github/workflows/ci_tests.yml +22 -15
- {photutils-2.0.2 → photutils-2.2.0}/.github/workflows/codeql.yml +1 -1
- {photutils-2.0.2 → photutils-2.2.0}/.github/workflows/publish.yml +1 -5
- {photutils-2.0.2 → photutils-2.2.0}/.pre-commit-config.yaml +4 -4
- {photutils-2.0.2 → photutils-2.2.0}/.readthedocs.yaml +1 -1
- {photutils-2.0.2 → photutils-2.2.0}/CHANGES.rst +140 -0
- {photutils-2.0.2 → photutils-2.2.0}/LICENSE.rst +1 -1
- {photutils-2.0.2 → photutils-2.2.0}/PKG-INFO +15 -9
- {photutils-2.0.2 → photutils-2.2.0}/README.rst +10 -3
- photutils-2.2.0/docs/_static/custom.css +3 -0
- {photutils-2.0.2 → photutils-2.2.0}/docs/conf.py +4 -7
- {photutils-2.0.2 → photutils-2.2.0}/docs/development/releasing.rst +5 -0
- {photutils-2.0.2 → photutils-2.2.0}/docs/getting_started/importing.rst +15 -10
- {photutils-2.0.2 → photutils-2.2.0}/docs/getting_started/install.rst +2 -2
- {photutils-2.0.2 → photutils-2.2.0}/docs/index.rst +2 -2
- photutils-2.2.0/docs/reference/datasets_api.rst +8 -0
- photutils-2.2.0/docs/reference/detection_api.rst +8 -0
- photutils-2.0.2/docs/reference/segmentation_api.rst → photutils-2.2.0/docs/reference/geometry_api.rst +2 -2
- {photutils-2.0.2 → photutils-2.2.0}/docs/reference/index.rst +5 -3
- photutils-2.2.0/docs/reference/isophote_api.rst +8 -0
- photutils-2.2.0/docs/reference/morphology_api.rst +8 -0
- photutils-2.2.0/docs/reference/segmentation_api.rst +8 -0
- photutils-2.2.0/docs/reference/utils_api.rst +8 -0
- {photutils-2.0.2 → photutils-2.2.0}/docs/user_guide/aperture.rst +28 -37
- {photutils-2.0.2 → photutils-2.2.0}/docs/user_guide/centroids.rst +3 -1
- photutils-2.2.0/docs/user_guide/datasets.rst +157 -0
- {photutils-2.0.2 → photutils-2.2.0}/docs/user_guide/detection.rst +7 -8
- {photutils-2.0.2 → photutils-2.2.0}/docs/user_guide/geometry.rst +3 -1
- {photutils-2.0.2 → photutils-2.2.0}/docs/user_guide/grouping.rst +29 -14
- {photutils-2.0.2 → photutils-2.2.0}/docs/user_guide/index.rst +27 -13
- {photutils-2.0.2 → photutils-2.2.0}/docs/user_guide/morphology.rst +64 -20
- {photutils-2.0.2 → photutils-2.2.0}/docs/user_guide/profiles.rst +181 -55
- {photutils-2.0.2 → photutils-2.2.0}/docs/user_guide/psf.rst +41 -38
- {photutils-2.0.2 → photutils-2.2.0}/docs/user_guide/segmentation.rst +13 -13
- photutils-2.2.0/docs/user_guide/utils.rst +31 -0
- {photutils-2.0.2 → photutils-2.2.0}/docs/whats_new/1.1.rst +26 -26
- {photutils-2.0.2 → photutils-2.2.0}/docs/whats_new/1.6.rst +10 -10
- {photutils-2.0.2 → photutils-2.2.0}/docs/whats_new/1.7.rst +7 -7
- {photutils-2.0.2 → photutils-2.2.0}/docs/whats_new/1.9.rst +12 -12
- {photutils-2.0.2 → photutils-2.2.0}/docs/whats_new/2.0.rst +4 -4
- photutils-2.2.0/docs/whats_new/2.1.rst +90 -0
- photutils-2.2.0/docs/whats_new/2.2.rst +56 -0
- {photutils-2.0.2 → photutils-2.2.0}/docs/whats_new/index.rst +3 -1
- {photutils-2.0.2 → photutils-2.2.0}/photutils/CITATION.rst +15 -15
- {photutils-2.0.2 → photutils-2.2.0}/photutils/aperture/attributes.py +16 -8
- {photutils-2.0.2 → photutils-2.2.0}/photutils/aperture/bounding_box.py +6 -6
- {photutils-2.0.2 → photutils-2.2.0}/photutils/aperture/circle.py +29 -25
- photutils-2.2.0/photutils/aperture/converters.py +421 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/aperture/core.py +57 -60
- {photutils-2.0.2 → photutils-2.2.0}/photutils/aperture/ellipse.py +48 -43
- {photutils-2.0.2 → photutils-2.2.0}/photutils/aperture/photometry.py +40 -37
- {photutils-2.0.2 → photutils-2.2.0}/photutils/aperture/rectangle.py +55 -50
- {photutils-2.0.2 → photutils-2.2.0}/photutils/aperture/stats.py +52 -37
- {photutils-2.0.2 → photutils-2.2.0}/photutils/aperture/tests/test_converters.py +92 -6
- {photutils-2.0.2 → photutils-2.2.0}/photutils/aperture/tests/test_ellipse.py +13 -4
- {photutils-2.0.2 → photutils-2.2.0}/photutils/aperture/tests/test_photometry.py +71 -21
- {photutils-2.0.2 → photutils-2.2.0}/photutils/aperture/tests/test_rectangle.py +13 -4
- {photutils-2.0.2 → photutils-2.2.0}/photutils/background/background_2d.py +1 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/background/core.py +13 -5
- {photutils-2.0.2 → photutils-2.2.0}/photutils/background/interpolators.py +1 -1
- {photutils-2.0.2 → photutils-2.2.0}/photutils/background/tests/test_background_2d.py +4 -4
- {photutils-2.0.2 → photutils-2.2.0}/photutils/centroids/core.py +4 -4
- {photutils-2.0.2 → photutils-2.2.0}/photutils/datasets/__init__.py +5 -2
- {photutils-2.0.2 → photutils-2.2.0}/photutils/datasets/images.py +78 -49
- {photutils-2.0.2 → photutils-2.2.0}/photutils/datasets/load.py +12 -6
- {photutils-2.0.2 → photutils-2.2.0}/photutils/datasets/noise.py +2 -2
- {photutils-2.0.2 → photutils-2.2.0}/photutils/datasets/tests/test_images.py +26 -2
- {photutils-2.0.2 → photutils-2.2.0}/photutils/datasets/wcs.py +1 -1
- {photutils-2.0.2 → photutils-2.2.0}/photutils/detection/__init__.py +2 -2
- {photutils-2.0.2 → photutils-2.2.0}/photutils/detection/core.py +2 -2
- {photutils-2.0.2 → photutils-2.2.0}/photutils/detection/daofinder.py +39 -30
- {photutils-2.0.2 → photutils-2.2.0}/photutils/detection/irafstarfinder.py +47 -39
- {photutils-2.0.2 → photutils-2.2.0}/photutils/detection/peakfinder.py +24 -14
- {photutils-2.0.2 → photutils-2.2.0}/photutils/detection/starfinder.py +16 -16
- {photutils-2.0.2 → photutils-2.2.0}/photutils/detection/tests/test_daofinder.py +27 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/detection/tests/test_irafstarfinder.py +24 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/detection/tests/test_peakfinder.py +17 -5
- {photutils-2.0.2 → photutils-2.2.0}/photutils/detection/tests/test_starfinder.py +18 -0
- photutils-2.2.0/photutils/geometry/__init__.py +13 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/isophote/ellipse.py +3 -1
- {photutils-2.0.2 → photutils-2.2.0}/photutils/isophote/geometry.py +2 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/isophote/harmonics.py +1 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/isophote/integrator.py +1 -1
- {photutils-2.0.2 → photutils-2.2.0}/photutils/isophote/tests/test_model.py +7 -1
- {photutils-2.0.2 → photutils-2.2.0}/photutils/isophote/tests/test_regression.py +5 -5
- {photutils-2.0.2 → photutils-2.2.0}/photutils/morphology/non_parametric.py +22 -8
- photutils-2.2.0/photutils/morphology/tests/test_non_parametric.py +42 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/profiles/core.py +32 -24
- {photutils-2.0.2 → photutils-2.2.0}/photutils/profiles/curve_of_growth.py +50 -42
- {photutils-2.0.2 → photutils-2.2.0}/photutils/profiles/radial_profile.py +139 -51
- {photutils-2.0.2 → photutils-2.2.0}/photutils/profiles/tests/test_radial_profile.py +34 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/psf/epsf.py +1 -1
- {photutils-2.0.2 → photutils-2.2.0}/photutils/psf/functional_models.py +14 -5
- {photutils-2.0.2 → photutils-2.2.0}/photutils/psf/gridded_models.py +11 -12
- {photutils-2.0.2 → photutils-2.2.0}/photutils/psf/image_models.py +14 -12
- {photutils-2.0.2 → photutils-2.2.0}/photutils/psf/matching/fourier.py +1 -1
- {photutils-2.0.2 → photutils-2.2.0}/photutils/psf/matching/windows.py +12 -8
- {photutils-2.0.2 → photutils-2.2.0}/photutils/psf/model_helpers.py +1 -1
- {photutils-2.0.2 → photutils-2.2.0}/photutils/psf/model_io.py +9 -9
- {photutils-2.0.2 → photutils-2.2.0}/photutils/psf/model_plotting.py +11 -16
- {photutils-2.0.2 → photutils-2.2.0}/photutils/psf/photometry.py +14 -12
- {photutils-2.0.2 → photutils-2.2.0}/photutils/psf/simulation.py +3 -3
- {photutils-2.0.2 → photutils-2.2.0}/photutils/psf/utils.py +2 -2
- {photutils-2.0.2 → photutils-2.2.0}/photutils/segmentation/catalog.py +78 -57
- {photutils-2.0.2 → photutils-2.2.0}/photutils/segmentation/core.py +109 -15
- {photutils-2.0.2 → photutils-2.2.0}/photutils/segmentation/deblend.py +57 -17
- {photutils-2.0.2 → photutils-2.2.0}/photutils/segmentation/detect.py +3 -2
- {photutils-2.0.2 → photutils-2.2.0}/photutils/segmentation/tests/test_catalog.py +10 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/segmentation/tests/test_core.py +94 -2
- {photutils-2.0.2 → photutils-2.2.0}/photutils/segmentation/tests/test_deblend.py +3 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/segmentation/tests/test_detect.py +3 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/segmentation/utils.py +13 -11
- {photutils-2.0.2 → photutils-2.2.0}/photutils/utils/__init__.py +2 -1
- {photutils-2.0.2 → photutils-2.2.0}/photutils/utils/_misc.py +2 -6
- {photutils-2.0.2 → photutils-2.2.0}/photutils/utils/_moments.py +1 -1
- {photutils-2.0.2 → photutils-2.2.0}/photutils/utils/depths.py +10 -6
- {photutils-2.0.2 → photutils-2.2.0}/photutils/utils/errors.py +13 -4
- {photutils-2.0.2 → photutils-2.2.0}/photutils/utils/interpolation.py +1 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/version.py +2 -2
- {photutils-2.0.2 → photutils-2.2.0}/photutils.egg-info/PKG-INFO +15 -9
- {photutils-2.0.2 → photutils-2.2.0}/photutils.egg-info/SOURCES.txt +3 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils.egg-info/requires.txt +1 -4
- {photutils-2.0.2 → photutils-2.2.0}/pyproject.toml +3 -6
- {photutils-2.0.2 → photutils-2.2.0}/tox.ini +3 -3
- photutils-2.0.2/docs/reference/datasets_api.rst +0 -8
- photutils-2.0.2/docs/reference/detection_api.rst +0 -8
- photutils-2.0.2/docs/reference/geometry_api.rst +0 -8
- photutils-2.0.2/docs/reference/isophote_api.rst +0 -8
- photutils-2.0.2/docs/reference/morphology_api.rst +0 -8
- photutils-2.0.2/docs/reference/utils_api.rst +0 -8
- photutils-2.0.2/docs/user_guide/datasets.rst +0 -64
- photutils-2.0.2/docs/user_guide/utils.rst +0 -14
- photutils-2.0.2/photutils/aperture/converters.py +0 -161
- photutils-2.0.2/photutils/geometry/__init__.py +0 -8
- photutils-2.0.2/photutils/morphology/tests/test_non_parametric.py +0 -20
- {photutils-2.0.2 → photutils-2.2.0}/.flake8 +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/.gitignore +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/.pycodestyle +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/CITATION.md +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/CODE_OF_CONDUCT.rst +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/CONTRIBUTING.rst +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/codecov.yml +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/docs/Makefile +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/docs/_static/photutils_logo.ico +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/docs/_static/photutils_logo_dark_plain_path.svg +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/docs/_static/photutils_logo_light_plain_path.svg +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/docs/changelog.rst +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/docs/development/index.rst +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/docs/development/license.rst +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/docs/getting_started/citation.rst +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/docs/getting_started/contributing.rst +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/docs/getting_started/contributors.rst +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/docs/getting_started/index.rst +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/docs/getting_started/overview.rst +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/docs/getting_started/pixel_conventions.rst +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/docs/make.bat +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/docs/nitpick-exceptions.txt +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/docs/reference/aperture_api.rst +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/docs/reference/background_api.rst +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/docs/reference/centroids_api.rst +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/docs/reference/profiles_api.rst +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/docs/reference/psf_api.rst +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/docs/reference/psf_matching_api.rst +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/docs/user_guide/background.rst +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/docs/user_guide/epsf.rst +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/docs/user_guide/isophote.rst +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/docs/user_guide/isophote_faq.rst +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/docs/user_guide/psf_matching.rst +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/docs/whats_new/1.10.rst +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/docs/whats_new/1.11.rst +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/docs/whats_new/1.12.rst +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/docs/whats_new/1.13.rst +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/docs/whats_new/1.2.rst +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/docs/whats_new/1.3.rst +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/docs/whats_new/1.4.rst +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/docs/whats_new/1.5.rst +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/docs/whats_new/1.8.rst +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/__init__.py +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/_compiler.c +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/aperture/__init__.py +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/aperture/mask.py +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/aperture/tests/__init__.py +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/aperture/tests/test_aperture_common.py +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/aperture/tests/test_bounding_box.py +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/aperture/tests/test_circle.py +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/aperture/tests/test_mask.py +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/aperture/tests/test_stats.py +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/background/__init__.py +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/background/local_background.py +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/background/tests/__init__.py +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/background/tests/test_core.py +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/background/tests/test_interpolators.py +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/background/tests/test_local_background.py +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/centroids/__init__.py +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/centroids/gaussian.py +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/centroids/tests/__init__.py +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/centroids/tests/test_core.py +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/centroids/tests/test_gaussian.py +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/conftest.py +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/datasets/data/100gaussians_params.ecsv +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/datasets/data/4gaussians_params.ecsv +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/datasets/examples.py +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/datasets/model_params.py +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/datasets/tests/__init__.py +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/datasets/tests/test_examples.py +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/datasets/tests/test_load.py +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/datasets/tests/test_model_params.py +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/datasets/tests/test_noise.py +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/datasets/tests/test_wcs.py +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/detection/tests/__init__.py +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/detection/tests/conftest.py +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/extern/__init__.py +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/extern/biweight.py +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/geometry/circular_overlap.pyx +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/geometry/core.pxd +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/geometry/core.pyx +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/geometry/elliptical_overlap.pyx +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/geometry/rectangular_overlap.pyx +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/geometry/tests/__init__.py +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/geometry/tests/test_circular_overlap_grid.py +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/geometry/tests/test_elliptical_overlap_grid.py +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/geometry/tests/test_rectangular_overlap_grid.py +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/isophote/__init__.py +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/isophote/fitter.py +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/isophote/isophote.py +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/isophote/model.py +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/isophote/sample.py +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/isophote/tests/__init__.py +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/isophote/tests/data/M51_table.fits +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/isophote/tests/data/README.rst +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/isophote/tests/data/minimum_radius_test.fits +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/isophote/tests/data/synth_highsnr_table.fits +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/isophote/tests/data/synth_lowsnr_table.fits +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/isophote/tests/data/synth_table.fits +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/isophote/tests/data/synth_table_mean.fits +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/isophote/tests/data/synth_table_mean.txt +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/isophote/tests/make_test_data.py +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/isophote/tests/test_angles.py +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/isophote/tests/test_ellipse.py +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/isophote/tests/test_fitter.py +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/isophote/tests/test_geometry.py +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/isophote/tests/test_harmonics.py +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/isophote/tests/test_integrator.py +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/isophote/tests/test_isophote.py +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/isophote/tests/test_sample.py +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/morphology/__init__.py +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/morphology/core.py +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/morphology/tests/__init__.py +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/morphology/tests/test_core.py +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/profiles/__init__.py +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/profiles/tests/__init__.py +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/profiles/tests/test_curve_of_growth.py +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/psf/__init__.py +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/psf/epsf_stars.py +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/psf/groupers.py +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/psf/matching/__init__.py +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/psf/matching/tests/__init__.py +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/psf/matching/tests/test_fourier.py +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/psf/matching/tests/test_windows.py +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/psf/tests/__init__.py +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/psf/tests/data/STDPSF_ACSWFC_F814W_mock.fits +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/psf/tests/data/STDPSF_NRCA1_F150W_mock.fits +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/psf/tests/data/STDPSF_NRCSW_F150W_mock.fits +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/psf/tests/data/STDPSF_WFC3UV_F814W_mock.fits +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/psf/tests/data/STDPSF_WFPC2_F814W_mock.fits +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/psf/tests/data/nircam_nrca1_f200w_fovp101_samp4_npsf16_mock.fits +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/psf/tests/data/nircam_nrca1_f200w_fovp101_samp4_npsf4_mock.fits +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/psf/tests/data/nircam_nrca5_f444w_fovp101_samp4_npsf4_mock.fits +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/psf/tests/data/nircam_nrcb4_f150w_fovp101_samp4_npsf1_mock.fits +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/psf/tests/test_epsf.py +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/psf/tests/test_epsf_stars.py +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/psf/tests/test_functional_models.py +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/psf/tests/test_gridded_models.py +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/psf/tests/test_groupers.py +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/psf/tests/test_image_models.py +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/psf/tests/test_model_helpers.py +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/psf/tests/test_photometry.py +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/psf/tests/test_simulation.py +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/psf/tests/test_utils.py +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/segmentation/__init__.py +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/segmentation/finder.py +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/segmentation/tests/__init__.py +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/segmentation/tests/test_finder.py +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/segmentation/tests/test_utils.py +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/tests/__init__.py +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/tests/helper.py +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/utils/_convolution.py +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/utils/_coords.py +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/utils/_optional_deps.py +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/utils/_parameters.py +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/utils/_progress_bars.py +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/utils/_quantity_helpers.py +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/utils/_repr.py +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/utils/_round.py +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/utils/_stats.py +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/utils/_wcs_helpers.py +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/utils/colormaps.py +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/utils/cutouts.py +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/utils/exceptions.py +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/utils/footprints.py +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/utils/tests/__init__.py +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/utils/tests/test_colormaps.py +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/utils/tests/test_convolution.py +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/utils/tests/test_cutouts.py +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/utils/tests/test_depths.py +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/utils/tests/test_errors.py +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/utils/tests/test_footprints.py +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/utils/tests/test_interpolation.py +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/utils/tests/test_misc.py +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/utils/tests/test_moments.py +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/utils/tests/test_parameters.py +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/utils/tests/test_quantity_helpers.py +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/utils/tests/test_round.py +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils/utils/tests/test_stats.py +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils.egg-info/dependency_links.txt +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils.egg-info/not-zip-safe +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/photutils.egg-info/top_level.txt +0 -0
- {photutils-2.0.2 → photutils-2.2.0}/setup.cfg +0 -0
|
@@ -49,11 +49,11 @@ jobs:
|
|
|
49
49
|
|
|
50
50
|
steps:
|
|
51
51
|
- name: Check out repository
|
|
52
|
-
uses: actions/checkout@
|
|
52
|
+
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
|
53
53
|
with:
|
|
54
54
|
fetch-depth: 0
|
|
55
55
|
- name: Set up Python ${{ matrix.python }}
|
|
56
|
-
uses: actions/setup-python@
|
|
56
|
+
uses: actions/setup-python@42375524e23c412d93fb67b49958b491fce71c38 # v5.4.0
|
|
57
57
|
with:
|
|
58
58
|
python-version: ${{ matrix.python }}
|
|
59
59
|
allow-prereleases: true
|
|
@@ -66,10 +66,10 @@ jobs:
|
|
|
66
66
|
python -c "import setuptools; print(f'setuptools {setuptools.__version__}')"
|
|
67
67
|
python -c "import tox; print(f'tox {tox.__version__}')"
|
|
68
68
|
- name: Run tests
|
|
69
|
-
run: tox -e ${{ matrix.tox_env }} -- ${{ matrix.toxposargs }}
|
|
69
|
+
run: python -m tox -e ${{ matrix.tox_env }} -- ${{ matrix.toxposargs }}
|
|
70
70
|
- name: Upload coverage to codecov
|
|
71
71
|
if: ${{ contains(matrix.tox_env, '-cov') }}
|
|
72
|
-
uses: codecov/codecov-action@
|
|
72
|
+
uses: codecov/codecov-action@13ce06bfc6bbe3ecf90edbbf1bc32fe5978ca1d3 # v5.3.1
|
|
73
73
|
with:
|
|
74
74
|
files: ./coverage.xml
|
|
75
75
|
verbose: true
|
|
@@ -43,11 +43,11 @@ jobs:
|
|
|
43
43
|
|
|
44
44
|
steps:
|
|
45
45
|
- name: Check out repository
|
|
46
|
-
uses: actions/checkout@
|
|
46
|
+
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
|
47
47
|
with:
|
|
48
48
|
fetch-depth: 0
|
|
49
49
|
- name: Set up Python ${{ matrix.python }}
|
|
50
|
-
uses: actions/setup-python@
|
|
50
|
+
uses: actions/setup-python@42375524e23c412d93fb67b49958b491fce71c38 # v5.4.0
|
|
51
51
|
with:
|
|
52
52
|
python-version: ${{ matrix.python }}
|
|
53
53
|
- name: Install base dependencies
|
|
@@ -59,7 +59,7 @@ jobs:
|
|
|
59
59
|
python -c "import setuptools; print(f'setuptools {setuptools.__version__}')"
|
|
60
60
|
python -c "import tox; print(f'tox {tox.__version__}')"
|
|
61
61
|
- name: Run tests
|
|
62
|
-
run: tox -e ${{ matrix.tox_env }} -- ${{ matrix.toxposargs }}
|
|
62
|
+
run: python -m tox -e ${{ matrix.tox_env }} -- ${{ matrix.toxposargs }}
|
|
63
63
|
|
|
64
64
|
|
|
65
65
|
test_more_architectures:
|
|
@@ -67,7 +67,7 @@ jobs:
|
|
|
67
67
|
# we include them just in the weekly cron. These also serve as a test
|
|
68
68
|
# of using system libraries and using pytest directly.
|
|
69
69
|
|
|
70
|
-
runs-on: ubuntu-
|
|
70
|
+
runs-on: ubuntu-latest
|
|
71
71
|
name: More architectures
|
|
72
72
|
if: (github.repository == 'astropy/photutils' && (github.event_name == 'schedule' || github.event_name == 'push' || github.event_name == 'workflow_dispatch' || contains(github.event.pull_request.labels.*.name, 'Arch CI')))
|
|
73
73
|
env:
|
|
@@ -82,7 +82,7 @@ jobs:
|
|
|
82
82
|
- arch: armv7
|
|
83
83
|
|
|
84
84
|
steps:
|
|
85
|
-
- uses: actions/checkout@
|
|
85
|
+
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
|
86
86
|
with:
|
|
87
87
|
fetch-depth: 0
|
|
88
88
|
- uses: uraimo/run-on-arch-action@5397f9e30a9b62422f302092631c99ae1effcd9e # v2.8.1
|
|
@@ -128,24 +128,3 @@ jobs:
|
|
|
128
128
|
ASTROPY_USE_SYSTEM_ALL=1 pip3 install -v --no-build-isolation -e .[test]
|
|
129
129
|
pip3 list
|
|
130
130
|
python3 -m pytest
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
test_arm64:
|
|
134
|
-
# Native arm64 testing -- paid test runner
|
|
135
|
-
# keep this in the weekly cron to minimize the number of jobs
|
|
136
|
-
runs-on: linux-arm64
|
|
137
|
-
name: Python 3.12 (arm64)
|
|
138
|
-
# keep condition in sync with test_more_architectures
|
|
139
|
-
if: (github.repository == 'astropy/photutils' && (github.event_name == 'schedule' || github.event_name == 'push' || github.event_name == 'workflow_dispatch' || contains(github.event.pull_request.labels.*.name, 'Arch CI')))
|
|
140
|
-
|
|
141
|
-
steps:
|
|
142
|
-
- uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1
|
|
143
|
-
with:
|
|
144
|
-
fetch-depth: 0
|
|
145
|
-
- uses: actions/setup-python@f677139bbe7f9c59b41e40162b753c062f5d49a3 # v5.2.0
|
|
146
|
-
with:
|
|
147
|
-
python-version: '3.12'
|
|
148
|
-
- name: Set up dependencies
|
|
149
|
-
run: pip install tox
|
|
150
|
-
- name: Run tests
|
|
151
|
-
run: tox -e py312-test -- -n=2
|
|
@@ -31,8 +31,8 @@ jobs:
|
|
|
31
31
|
matrix:
|
|
32
32
|
include:
|
|
33
33
|
- os: ubuntu-latest
|
|
34
|
-
python: '3.
|
|
35
|
-
tox_env: '
|
|
34
|
+
python: '3.11'
|
|
35
|
+
tox_env: 'py311-test-oldestdeps'
|
|
36
36
|
allow_failure: false
|
|
37
37
|
prefix: ''
|
|
38
38
|
|
|
@@ -42,13 +42,6 @@ jobs:
|
|
|
42
42
|
allow_failure: false
|
|
43
43
|
prefix: ''
|
|
44
44
|
|
|
45
|
-
- os: ubuntu-latest
|
|
46
|
-
python: '3.12'
|
|
47
|
-
tox_env: 'py312-test-alldeps-cov'
|
|
48
|
-
toxposargs: --remote-data=any
|
|
49
|
-
allow_failure: false
|
|
50
|
-
prefix: ''
|
|
51
|
-
|
|
52
45
|
- os: macos-latest
|
|
53
46
|
python: '3.12'
|
|
54
47
|
tox_env: 'py312-test-alldeps'
|
|
@@ -74,6 +67,20 @@ jobs:
|
|
|
74
67
|
allow_failure: false
|
|
75
68
|
prefix: ''
|
|
76
69
|
|
|
70
|
+
- os: ubuntu-latest
|
|
71
|
+
python: '3.12'
|
|
72
|
+
tox_env: 'py312-test-alldeps-cov'
|
|
73
|
+
toxposargs: --remote-data=any
|
|
74
|
+
allow_failure: false
|
|
75
|
+
prefix: ''
|
|
76
|
+
|
|
77
|
+
# cannot use alldeps: rasterio does not have a arm64 wheel
|
|
78
|
+
- os: ubuntu-24.04-arm
|
|
79
|
+
python: '3.12'
|
|
80
|
+
tox_env: 'py312-test'
|
|
81
|
+
allow_failure: false
|
|
82
|
+
prefix: ''
|
|
83
|
+
|
|
77
84
|
- os: ubuntu-latest
|
|
78
85
|
python: '3.12'
|
|
79
86
|
tox_env: 'codestyle'
|
|
@@ -93,8 +100,8 @@ jobs:
|
|
|
93
100
|
prefix: ''
|
|
94
101
|
|
|
95
102
|
- os: ubuntu-latest
|
|
96
|
-
python: '3.
|
|
97
|
-
tox_env: '
|
|
103
|
+
python: '3.13'
|
|
104
|
+
tox_env: 'py313-test-alldeps'
|
|
98
105
|
allow_failure: false
|
|
99
106
|
prefix: ''
|
|
100
107
|
|
|
@@ -107,11 +114,11 @@ jobs:
|
|
|
107
114
|
|
|
108
115
|
steps:
|
|
109
116
|
- name: Check out repository
|
|
110
|
-
uses: actions/checkout@
|
|
117
|
+
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
|
111
118
|
with:
|
|
112
119
|
fetch-depth: 0
|
|
113
120
|
- name: Set up Python ${{ matrix.python }}
|
|
114
|
-
uses: actions/setup-python@
|
|
121
|
+
uses: actions/setup-python@42375524e23c412d93fb67b49958b491fce71c38 # v5.4.0
|
|
115
122
|
with:
|
|
116
123
|
python-version: ${{ matrix.python }}
|
|
117
124
|
allow-prereleases: true
|
|
@@ -124,10 +131,10 @@ jobs:
|
|
|
124
131
|
python -c "import setuptools; print(f'setuptools {setuptools.__version__}')"
|
|
125
132
|
python -c "import tox; print(f'tox {tox.__version__}')"
|
|
126
133
|
- name: Run tests
|
|
127
|
-
run: tox -e ${{ matrix.tox_env }} -- ${{ matrix.toxposargs }}
|
|
134
|
+
run: python -m tox -e ${{ matrix.tox_env }} -- -n=2 ${{ matrix.toxposargs }}
|
|
128
135
|
- name: Upload coverage to codecov
|
|
129
136
|
if: ${{ contains(matrix.tox_env, '-cov') }}
|
|
130
|
-
uses: codecov/codecov-action@
|
|
137
|
+
uses: codecov/codecov-action@13ce06bfc6bbe3ecf90edbbf1bc32fe5978ca1d3 # v5.3.1
|
|
131
138
|
with:
|
|
132
139
|
files: ./coverage.xml
|
|
133
140
|
verbose: true
|
|
@@ -43,7 +43,7 @@ jobs:
|
|
|
43
43
|
|
|
44
44
|
steps:
|
|
45
45
|
- name: Checkout repository
|
|
46
|
-
uses: actions/checkout@
|
|
46
|
+
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
|
47
47
|
|
|
48
48
|
# Initializes the CodeQL tools for scanning.
|
|
49
49
|
- name: Initialize CodeQL
|
|
@@ -32,7 +32,7 @@ jobs:
|
|
|
32
32
|
permissions:
|
|
33
33
|
contents: none
|
|
34
34
|
|
|
35
|
-
uses: OpenAstronomy/github-actions-workflows/.github/workflows/publish.yml@
|
|
35
|
+
uses: OpenAstronomy/github-actions-workflows/.github/workflows/publish.yml@8c0fde6f7e926df6ed7057255d29afa9c1ad5320 # v1.16.0
|
|
36
36
|
|
|
37
37
|
if: (github.repository == 'astropy/photutils' && (github.event_name == 'push' || github.event_name == 'schedule' || github.event_name == 'workflow_dispatch' || contains(github.event.pull_request.labels.*.name, 'Build all wheels')))
|
|
38
38
|
with:
|
|
@@ -43,24 +43,20 @@ jobs:
|
|
|
43
43
|
test_command: pytest -p no:warnings --pyargs photutils
|
|
44
44
|
targets: |
|
|
45
45
|
# Linux wheels
|
|
46
|
-
- cp310-manylinux_x86_64
|
|
47
46
|
- cp311-manylinux_x86_64
|
|
48
47
|
- cp312-manylinux_x86_64
|
|
49
48
|
- cp313-manylinux_x86_64
|
|
50
49
|
|
|
51
50
|
# MacOS X wheels
|
|
52
|
-
- cp310*macosx_x86_64
|
|
53
51
|
- cp311*macosx_x86_64
|
|
54
52
|
- cp312*macosx_x86_64
|
|
55
53
|
- cp313*macosx_x86_64
|
|
56
54
|
|
|
57
|
-
- cp310*macosx_arm64
|
|
58
55
|
- cp311*macosx_arm64
|
|
59
56
|
- cp312*macosx_arm64
|
|
60
57
|
- cp313*macosx_arm64
|
|
61
58
|
|
|
62
59
|
# Windows wheels
|
|
63
|
-
- cp310*win_amd64
|
|
64
60
|
- cp311*win_amd64
|
|
65
61
|
- cp312*win_amd64
|
|
66
62
|
- cp313*win_amd64
|
|
@@ -55,18 +55,18 @@ repos:
|
|
|
55
55
|
# Enforce that all noqa annotations always occur with specific codes.
|
|
56
56
|
|
|
57
57
|
- repo: https://github.com/astral-sh/ruff-pre-commit
|
|
58
|
-
rev: "v0.
|
|
58
|
+
rev: "v0.9.4"
|
|
59
59
|
hooks:
|
|
60
60
|
- id: ruff
|
|
61
61
|
args: ["--fix", "--show-fixes"]
|
|
62
62
|
|
|
63
63
|
- repo: https://github.com/scientific-python/cookie
|
|
64
|
-
rev:
|
|
64
|
+
rev: 2025.01.22
|
|
65
65
|
hooks:
|
|
66
66
|
- id: sp-repo-review
|
|
67
67
|
|
|
68
68
|
- repo: https://github.com/pycqa/isort
|
|
69
|
-
rev:
|
|
69
|
+
rev: 6.0.0
|
|
70
70
|
hooks:
|
|
71
71
|
- id: isort
|
|
72
72
|
name: isort (python)
|
|
@@ -83,7 +83,7 @@ repos:
|
|
|
83
83
|
args: ["--ignore", "E501,W503"]
|
|
84
84
|
|
|
85
85
|
- repo: https://github.com/codespell-project/codespell
|
|
86
|
-
rev: v2.
|
|
86
|
+
rev: v2.4.1
|
|
87
87
|
hooks:
|
|
88
88
|
- id: codespell
|
|
89
89
|
args: ["--write-changes", "--ignore-words-list", "exten, conver, fom"]
|
|
@@ -1,3 +1,143 @@
|
|
|
1
|
+
2.2.0 (2025-02-18)
|
|
2
|
+
------------------
|
|
3
|
+
|
|
4
|
+
New Features
|
|
5
|
+
^^^^^^^^^^^^
|
|
6
|
+
|
|
7
|
+
- ``photutils.aperture``
|
|
8
|
+
|
|
9
|
+
- Add an ``aperture_to_region`` function to convert an Aperture object
|
|
10
|
+
to an astropy ``Region`` or ``Regions`` object. [#2009]
|
|
11
|
+
|
|
12
|
+
- ``photutils.profiles``
|
|
13
|
+
|
|
14
|
+
- Added ``data_radius`` and ``data_profile`` attributes to the
|
|
15
|
+
``RadialProfile`` class for calculating the raw radial profile.
|
|
16
|
+
[#2001]
|
|
17
|
+
|
|
18
|
+
- ``photutils.segmentation``
|
|
19
|
+
|
|
20
|
+
- Added a ``to_regions`` method to ``SegmentationImage`` that converts
|
|
21
|
+
the segment outlines to a ``regions.Regions`` object. [#2010]
|
|
22
|
+
|
|
23
|
+
Bug Fixes
|
|
24
|
+
^^^^^^^^^
|
|
25
|
+
|
|
26
|
+
- ``photutils.segmentation``
|
|
27
|
+
|
|
28
|
+
- Fixed an issue where the ``SegmentationImage`` ``polygons``
|
|
29
|
+
attribute would raise an error if any source segment contained a
|
|
30
|
+
hole. [#2005]
|
|
31
|
+
|
|
32
|
+
API Changes
|
|
33
|
+
^^^^^^^^^^^
|
|
34
|
+
|
|
35
|
+
- ``photutils.aperture``
|
|
36
|
+
|
|
37
|
+
- The ``theta`` attribute of ``EllipticalAperture``,
|
|
38
|
+
``EllipticalAnnulus``, ``RectangularAperture``, and
|
|
39
|
+
``RectangularAnnulus`` is now always returned as an angular
|
|
40
|
+
``Quantity``. [#2008]
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
2.1.0 (2025-01-06)
|
|
44
|
+
------------------
|
|
45
|
+
|
|
46
|
+
General
|
|
47
|
+
^^^^^^^
|
|
48
|
+
|
|
49
|
+
- The minimum required Python is now 3.11. [#1958]
|
|
50
|
+
|
|
51
|
+
- The minimum required gwcs is now 0.20. [#1961]
|
|
52
|
+
|
|
53
|
+
New Features
|
|
54
|
+
^^^^^^^^^^^^
|
|
55
|
+
|
|
56
|
+
- ``photutils.aperture``
|
|
57
|
+
|
|
58
|
+
- The ``aperture_photometry`` output table will now include a
|
|
59
|
+
``sky_center`` column if ``wcs`` is input, even if the input aperture
|
|
60
|
+
is not a sky aperture. [#1965]
|
|
61
|
+
|
|
62
|
+
- ``photutils.datasets``
|
|
63
|
+
|
|
64
|
+
- A ``params_map`` keyword was added to ``make_model_image`` to allow
|
|
65
|
+
a custom mapping between model parameter names and columns names in
|
|
66
|
+
the parameter table. [#1994]
|
|
67
|
+
|
|
68
|
+
- ``photutils.detection``
|
|
69
|
+
|
|
70
|
+
- The ``find_peaks`` ``border_width`` keyword can now accept two
|
|
71
|
+
values, indicating the border width along the the y and x edges,
|
|
72
|
+
respectively. [#1957]
|
|
73
|
+
|
|
74
|
+
- ``photutils.morphology``
|
|
75
|
+
|
|
76
|
+
- An optional ``mask`` keyword was added to the ``gini`` function.
|
|
77
|
+
[#1979]
|
|
78
|
+
|
|
79
|
+
- ``photutils.segmentation``
|
|
80
|
+
|
|
81
|
+
- Added ``deblended_labels``, ``deblended_labels_map``, and
|
|
82
|
+
``deblended_labels_inverse_map`` properties to ``SegmentationImage``
|
|
83
|
+
to identify and map any deblended labels. [#1988]
|
|
84
|
+
|
|
85
|
+
Bug Fixes
|
|
86
|
+
^^^^^^^^^
|
|
87
|
+
|
|
88
|
+
- ``photutils.segmentation``
|
|
89
|
+
|
|
90
|
+
- Fixed a bug where the table output from the ``SourceCatalog``
|
|
91
|
+
``to_table`` method could have column names with a ``np.str_``
|
|
92
|
+
representation instead of ``str`` representation when using NumPy
|
|
93
|
+
2.0+. [#1956]
|
|
94
|
+
|
|
95
|
+
- Fixed a bug to ensure that the dtype of the ``SegmentationImage``
|
|
96
|
+
``labels`` always matches the image dtype. [#1986]
|
|
97
|
+
|
|
98
|
+
- Fixed a issue with the source labels after source deblending when
|
|
99
|
+
using ``relabel=False``. [#1988]
|
|
100
|
+
|
|
101
|
+
API Changes
|
|
102
|
+
^^^^^^^^^^^
|
|
103
|
+
|
|
104
|
+
- ``photutils.aperture``
|
|
105
|
+
|
|
106
|
+
- The ``xcenter`` and ``ycenter`` columns in the table returned by
|
|
107
|
+
``aperture_photometry`` no longer have (pixel) units for consistency
|
|
108
|
+
with other tools. [#1993]
|
|
109
|
+
|
|
110
|
+
- ``photutils.detection``
|
|
111
|
+
|
|
112
|
+
- When ``exclude_border`` is set to ``True`` in the ``DAOStarFinder``
|
|
113
|
+
and ``StarFinder`` classes, the excluded border region can be
|
|
114
|
+
different along the x and y edges if the kernel shape is rectangular.
|
|
115
|
+
[#1957]
|
|
116
|
+
|
|
117
|
+
- Detected sources that match interval ends for sharpness, roundness, and
|
|
118
|
+
maximum peak values (``sharplo``, ``sharphi``, ``roundlo``, ``roundhi``,
|
|
119
|
+
and ``peakmax``) are now included in the returned table of detected
|
|
120
|
+
sources by ``DAOStarFinder`` and ``IRAFStarFinder``. [#1978]
|
|
121
|
+
|
|
122
|
+
- Detected sources that match the maximum peak value (``peakmax``)
|
|
123
|
+
are now included in the returned table of detected sources by
|
|
124
|
+
``StarFinder``. [#1990]
|
|
125
|
+
|
|
126
|
+
- ``photutils.morphology``
|
|
127
|
+
|
|
128
|
+
- The ``gini`` function now returns zero instead of NaN if the
|
|
129
|
+
(unmasked) data values sum to zero. [#1979]
|
|
130
|
+
|
|
131
|
+
- ``photutils.psf``
|
|
132
|
+
|
|
133
|
+
- The ``'viridis'`` color map is now the default in the
|
|
134
|
+
``GriddedPSFModel`` ``plot_grid`` method when ``deltas=True``.
|
|
135
|
+
[#1954]
|
|
136
|
+
|
|
137
|
+
- The ``GriddedPSFModel`` ``plot_grid`` color bar now matches the
|
|
138
|
+
height of the displayed image. [#1955]
|
|
139
|
+
|
|
140
|
+
|
|
1
141
|
2.0.2 (2024-10-24)
|
|
2
142
|
------------------
|
|
3
143
|
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.2
|
|
2
2
|
Name: photutils
|
|
3
|
-
Version: 2.0
|
|
3
|
+
Version: 2.2.0
|
|
4
4
|
Summary: An Astropy package for source detection and photometry
|
|
5
5
|
Author-email: Photutils Developers <astropy.team@gmail.com>
|
|
6
|
-
License: Copyright (c) 2011-
|
|
6
|
+
License: Copyright (c) 2011-2025, Photutils Developers
|
|
7
7
|
All rights reserved.
|
|
8
8
|
|
|
9
9
|
Redistribution and use in source and binary forms, with or without
|
|
@@ -44,7 +44,7 @@ Classifier: Programming Language :: Cython
|
|
|
44
44
|
Classifier: Programming Language :: Python
|
|
45
45
|
Classifier: Programming Language :: Python :: 3
|
|
46
46
|
Classifier: Topic :: Scientific/Engineering :: Astronomy
|
|
47
|
-
Requires-Python: >=3.
|
|
47
|
+
Requires-Python: >=3.11
|
|
48
48
|
Description-Content-Type: text/x-rst
|
|
49
49
|
License-File: LICENSE.rst
|
|
50
50
|
Requires-Dist: numpy>=1.24
|
|
@@ -54,7 +54,7 @@ Provides-Extra: all
|
|
|
54
54
|
Requires-Dist: matplotlib>=3.7; extra == "all"
|
|
55
55
|
Requires-Dist: regions>=0.9; extra == "all"
|
|
56
56
|
Requires-Dist: scikit-image>=0.20; extra == "all"
|
|
57
|
-
Requires-Dist: gwcs>=0.
|
|
57
|
+
Requires-Dist: gwcs>=0.20; extra == "all"
|
|
58
58
|
Requires-Dist: bottleneck; extra == "all"
|
|
59
59
|
Requires-Dist: tqdm; extra == "all"
|
|
60
60
|
Requires-Dist: rasterio; extra == "all"
|
|
@@ -67,7 +67,6 @@ Requires-Dist: photutils[all]; extra == "docs"
|
|
|
67
67
|
Requires-Dist: sphinx; extra == "docs"
|
|
68
68
|
Requires-Dist: sphinx_design; extra == "docs"
|
|
69
69
|
Requires-Dist: sphinx-astropy[confv2]>=1.9.1; extra == "docs"
|
|
70
|
-
Requires-Dist: tomli; python_version < "3.11" and extra == "docs"
|
|
71
70
|
|
|
72
71
|
=========
|
|
73
72
|
Photutils
|
|
@@ -77,12 +76,19 @@ Photutils
|
|
|
77
76
|
|
|
78
77
|
|CI Status| |Codecov Status| |Latest RTD Status|
|
|
79
78
|
|
|
80
|
-
Photutils is
|
|
81
|
-
|
|
79
|
+
Photutils is a Python library that provides commonly-used tools
|
|
80
|
+
and key functionality for detecting and performing photometry of
|
|
81
|
+
astronomical sources. Tools are provided for background estimation,
|
|
82
|
+
star finding, source detection and extraction, aperture photometry,
|
|
83
|
+
PSF photometry, image segmentation, centroids, radial profiles,
|
|
84
|
+
and elliptical isophote fitting. It is an a `coordinated package
|
|
85
|
+
<https://www.astropy.org/affiliated/index.html>`_ of `Astropy`_ and
|
|
86
|
+
integrates well with other Astropy packages, making it a powerful tool
|
|
87
|
+
for astronomical image analysis.
|
|
82
88
|
|
|
83
89
|
Please see the `online documentation
|
|
84
90
|
<https://photutils.readthedocs.io>`_ for `installation instructions
|
|
85
|
-
<https://photutils.readthedocs.io/en/stable/install.html>`_ and usage
|
|
91
|
+
<https://photutils.readthedocs.io/en/stable/getting_started/install.html>`_ and usage
|
|
86
92
|
information.
|
|
87
93
|
|
|
88
94
|
|
|
@@ -6,12 +6,19 @@ Photutils
|
|
|
6
6
|
|
|
7
7
|
|CI Status| |Codecov Status| |Latest RTD Status|
|
|
8
8
|
|
|
9
|
-
Photutils is
|
|
10
|
-
|
|
9
|
+
Photutils is a Python library that provides commonly-used tools
|
|
10
|
+
and key functionality for detecting and performing photometry of
|
|
11
|
+
astronomical sources. Tools are provided for background estimation,
|
|
12
|
+
star finding, source detection and extraction, aperture photometry,
|
|
13
|
+
PSF photometry, image segmentation, centroids, radial profiles,
|
|
14
|
+
and elliptical isophote fitting. It is an a `coordinated package
|
|
15
|
+
<https://www.astropy.org/affiliated/index.html>`_ of `Astropy`_ and
|
|
16
|
+
integrates well with other Astropy packages, making it a powerful tool
|
|
17
|
+
for astronomical image analysis.
|
|
11
18
|
|
|
12
19
|
Please see the `online documentation
|
|
13
20
|
<https://photutils.readthedocs.io>`_ for `installation instructions
|
|
14
|
-
<https://photutils.readthedocs.io/en/stable/install.html>`_ and usage
|
|
21
|
+
<https://photutils.readthedocs.io/en/stable/getting_started/install.html>`_ and usage
|
|
15
22
|
information.
|
|
16
23
|
|
|
17
24
|
|
|
@@ -15,17 +15,13 @@ See astropy.sphinx.conf for which values are set there.
|
|
|
15
15
|
|
|
16
16
|
import os
|
|
17
17
|
import sys
|
|
18
|
-
|
|
18
|
+
import tomllib
|
|
19
|
+
from datetime import UTC, datetime
|
|
19
20
|
from importlib import metadata
|
|
20
21
|
from pathlib import Path
|
|
21
22
|
|
|
22
23
|
from sphinx.util import logging
|
|
23
24
|
|
|
24
|
-
if sys.version_info < (3, 11):
|
|
25
|
-
import tomli as tomllib
|
|
26
|
-
else:
|
|
27
|
-
import tomllib
|
|
28
|
-
|
|
29
25
|
logger = logging.getLogger(__name__)
|
|
30
26
|
|
|
31
27
|
try:
|
|
@@ -89,7 +85,7 @@ rst_epilog = """
|
|
|
89
85
|
# -- Project information ------------------------------------------------------
|
|
90
86
|
project = project_meta['name']
|
|
91
87
|
author = project_meta['authors'][0]['name']
|
|
92
|
-
project_copyright = f'2011-{datetime.now(tz=
|
|
88
|
+
project_copyright = f'2011-{datetime.now(tz=UTC).year}, {author}'
|
|
93
89
|
github_project = 'astropy/photutils'
|
|
94
90
|
|
|
95
91
|
# The version info for the project you're documenting, acts as
|
|
@@ -121,6 +117,7 @@ html_title = f'{project} {release}'
|
|
|
121
117
|
html_show_sourcelink = False
|
|
122
118
|
html_favicon = os.path.join('_static', 'photutils_logo.ico')
|
|
123
119
|
html_static_path = ['_static']
|
|
120
|
+
html_css_files = ['custom.css'] # path relative to _static
|
|
124
121
|
|
|
125
122
|
# Output file base name for HTML help builder.
|
|
126
123
|
htmlhelp_basename = project + 'doc'
|
|
@@ -22,6 +22,11 @@ repository is called ``upstream``.
|
|
|
22
22
|
sure to push all changes to the repository so that CI can run on the
|
|
23
23
|
bugfix branch.
|
|
24
24
|
|
|
25
|
+
#. Ensure that a "What's New" page is added to the documentation for the
|
|
26
|
+
new release. This page should be added to the ``docs/whats_new``
|
|
27
|
+
directory and should be named ``<X.Y.Z>.rst``. Update the "What's
|
|
28
|
+
New" link on the main page (``docs/index.rst``) to the new version.
|
|
29
|
+
|
|
25
30
|
#. Ensure that `CI tests <https://github.com/astropy/photutils/actions>`_
|
|
26
31
|
are passing for the branch you are going to
|
|
27
32
|
release. Also, ensure that `Read the Docs builds
|
|
@@ -24,21 +24,26 @@ or::
|
|
|
24
24
|
>>> from photutils.aperture import CircularAperture
|
|
25
25
|
>>> aper = CircularAperture((10, 20), r=4)
|
|
26
26
|
|
|
27
|
-
In general, one should not import from specific submodules of packages.
|
|
28
|
-
This is unnecessary and the internal organization of the package may
|
|
29
|
-
change without notice. For example, the following is not recommended::
|
|
30
27
|
|
|
31
|
-
|
|
32
|
-
|
|
28
|
+
.. warning::
|
|
29
|
+
|
|
30
|
+
*Do not import from specific modules of packages.* This is
|
|
31
|
+
unnecessary and the internal organization of the package may change
|
|
32
|
+
without notice. All public tools are available in the package
|
|
33
|
+
top-level namespace. For example, do not import from the ``circle``
|
|
34
|
+
module within the ``aperture`` package::
|
|
35
|
+
|
|
36
|
+
>>> from photutils.aperture.circle import CircularAperture
|
|
37
|
+
>>> aper = CircularAperture((10, 20), r=4)
|
|
33
38
|
|
|
34
39
|
|
|
35
40
|
.. warning::
|
|
36
41
|
|
|
37
|
-
Modules, functions, classes, and
|
|
38
|
-
leading underscore are considered private objects and
|
|
39
|
-
imported or accessed. If a module name in a package
|
|
40
|
-
leading underscore, then none of its members are
|
|
41
|
-
of whether they begin with a leading underscore.
|
|
42
|
+
Modules, functions, classes, methods, and attributes whose names
|
|
43
|
+
begin with a leading underscore are considered private objects and
|
|
44
|
+
should not be imported or accessed. If a module name in a package
|
|
45
|
+
begins with a leading underscore, then none of its members are
|
|
46
|
+
public, regardless of whether they begin with a leading underscore.
|
|
42
47
|
|
|
43
48
|
Private objects are not intended for public use and may change
|
|
44
49
|
without notice.
|
|
@@ -7,7 +7,7 @@ Requirements
|
|
|
7
7
|
|
|
8
8
|
Photutils has the following strict requirements:
|
|
9
9
|
|
|
10
|
-
* `Python <https://www.python.org/>`_ 3.
|
|
10
|
+
* `Python <https://www.python.org/>`_ 3.11 or later
|
|
11
11
|
|
|
12
12
|
* `NumPy <https://numpy.org/>`_ 1.24 or later
|
|
13
13
|
|
|
@@ -26,7 +26,7 @@ Photutils also optionally depends on other packages for some features:
|
|
|
26
26
|
* `scikit-image <https://scikit-image.org/>`_ 0.20 or later: Required
|
|
27
27
|
to deblend segmented sources.
|
|
28
28
|
|
|
29
|
-
* `GWCS <https://gwcs.readthedocs.io/en/stable/>`_ 0.
|
|
29
|
+
* `GWCS <https://gwcs.readthedocs.io/en/stable/>`_ 0.20 or later:
|
|
30
30
|
Required in `~photutils.datasets.make_gwcs` to create a simple celestial
|
|
31
31
|
gwcs object.
|
|
32
32
|
|
|
@@ -23,14 +23,14 @@ Photutils
|
|
|
23
23
|
*********
|
|
24
24
|
|
|
25
25
|
| **Version**: |release| -- **Date**: |today|
|
|
26
|
-
| Useful links: :doc:`getting_started/install` | :ref:`whatsnew-2.
|
|
26
|
+
| Useful links: :doc:`getting_started/install` | :ref:`whatsnew-2.2`
|
|
27
27
|
|
|
28
28
|
**Photutils** is a Python library that provides commonly-used tools
|
|
29
29
|
and key functionality for detecting and performing photometry of
|
|
30
30
|
astronomical sources. Tools are provided for background estimation,
|
|
31
31
|
star finding, source detection and extraction, aperture photometry,
|
|
32
32
|
PSF photometry, image segmentation, centroids, radial profiles,
|
|
33
|
-
and elliptical isophote fitting. It is
|
|
33
|
+
and elliptical isophote fitting. It is a `coordinated package
|
|
34
34
|
<https://www.astropy.org/affiliated/index.html>`_ of `Astropy`_ and
|
|
35
35
|
integrates well with other Astropy packages, making it a powerful tool
|
|
36
36
|
for astronomical image analysis.
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
|
|
2
2
|
==============================================
|
|
3
|
-
|
|
3
|
+
Geometry Functions (:mod:`photutils.geometry`)
|
|
4
4
|
==============================================
|
|
5
5
|
|
|
6
|
-
.. automodapi:: photutils.
|
|
6
|
+
.. automodapi:: photutils.geometry
|
|
7
7
|
:no-heading:
|
|
8
8
|
:inherited-members:
|