photutils 2.2.0__tar.gz → 2.3.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.2.0 → photutils-2.3.0}/.github/workflows/ci_cron_daily.yml +4 -3
- {photutils-2.2.0 → photutils-2.3.0}/.github/workflows/ci_cron_weekly.yml +6 -4
- {photutils-2.2.0 → photutils-2.3.0}/.github/workflows/ci_tests.yml +22 -26
- {photutils-2.2.0 → photutils-2.3.0}/.github/workflows/codeql.yml +3 -0
- {photutils-2.2.0 → photutils-2.3.0}/.github/workflows/publish.yml +5 -14
- {photutils-2.2.0 → photutils-2.3.0}/.pre-commit-config.yaml +20 -11
- {photutils-2.2.0 → photutils-2.3.0}/.readthedocs.yaml +1 -1
- {photutils-2.2.0 → photutils-2.3.0}/CHANGES.rst +181 -4
- {photutils-2.2.0/photutils.egg-info → photutils-2.3.0}/PKG-INFO +17 -42
- {photutils-2.2.0 → photutils-2.3.0}/README.rst +1 -1
- {photutils-2.2.0 → photutils-2.3.0}/docs/conf.py +21 -12
- photutils-2.3.0/docs/development/index.rst +22 -0
- {photutils-2.2.0 → photutils-2.3.0}/docs/getting_started/importing.rst +6 -6
- {photutils-2.2.0 → photutils-2.3.0}/docs/getting_started/index.rst +0 -3
- {photutils-2.2.0 → photutils-2.3.0}/docs/getting_started/install.rst +16 -27
- {photutils-2.2.0 → photutils-2.3.0}/docs/index.rst +4 -3
- {photutils-2.2.0 → photutils-2.3.0}/docs/reference/index.rst +1 -1
- photutils-2.3.0/docs/release_notes/index.rst +58 -0
- {photutils-2.2.0 → photutils-2.3.0}/docs/user_guide/centroids.rst +1 -1
- {photutils-2.2.0 → photutils-2.3.0}/docs/user_guide/detection.rst +1 -1
- photutils-2.3.0/docs/user_guide/grouping.rst +207 -0
- {photutils-2.2.0 → photutils-2.3.0}/docs/user_guide/index.rst +9 -2
- {photutils-2.2.0 → photutils-2.3.0}/docs/user_guide/profiles.rst +1 -1
- {photutils-2.2.0 → photutils-2.3.0}/docs/user_guide/psf.rst +37 -55
- {photutils-2.2.0 → photutils-2.3.0}/docs/whats_new/1.1.rst +5 -0
- {photutils-2.2.0 → photutils-2.3.0}/docs/whats_new/1.10.rst +4 -0
- {photutils-2.2.0 → photutils-2.3.0}/docs/whats_new/1.11.rst +4 -0
- {photutils-2.2.0 → photutils-2.3.0}/docs/whats_new/1.12.rst +4 -0
- {photutils-2.2.0 → photutils-2.3.0}/docs/whats_new/1.13.rst +6 -2
- {photutils-2.2.0 → photutils-2.3.0}/docs/whats_new/1.2.rst +8 -0
- {photutils-2.2.0 → photutils-2.3.0}/docs/whats_new/1.3.rst +8 -1
- {photutils-2.2.0 → photutils-2.3.0}/docs/whats_new/1.4.rst +6 -1
- {photutils-2.2.0 → photutils-2.3.0}/docs/whats_new/1.5.rst +6 -1
- {photutils-2.2.0 → photutils-2.3.0}/docs/whats_new/1.6.rst +4 -0
- {photutils-2.2.0 → photutils-2.3.0}/docs/whats_new/1.7.rst +4 -0
- {photutils-2.2.0 → photutils-2.3.0}/docs/whats_new/1.8.rst +4 -0
- {photutils-2.2.0 → photutils-2.3.0}/docs/whats_new/1.9.rst +4 -0
- {photutils-2.2.0 → photutils-2.3.0}/docs/whats_new/2.0.rst +4 -0
- {photutils-2.2.0 → photutils-2.3.0}/docs/whats_new/2.1.rst +6 -2
- {photutils-2.2.0 → photutils-2.3.0}/docs/whats_new/2.2.rst +4 -0
- photutils-2.3.0/docs/whats_new/2.3.rst +168 -0
- {photutils-2.2.0 → photutils-2.3.0}/photutils/CITATION.rst +22 -17
- {photutils-2.2.0 → photutils-2.3.0}/photutils/aperture/__init__.py +1 -1
- {photutils-2.2.0 → photutils-2.3.0}/photutils/aperture/attributes.py +40 -25
- {photutils-2.2.0 → photutils-2.3.0}/photutils/aperture/bounding_box.py +16 -12
- {photutils-2.2.0 → photutils-2.3.0}/photutils/aperture/circle.py +8 -6
- {photutils-2.2.0 → photutils-2.3.0}/photutils/aperture/converters.py +47 -29
- {photutils-2.2.0 → photutils-2.3.0}/photutils/aperture/core.py +37 -21
- {photutils-2.2.0 → photutils-2.3.0}/photutils/aperture/ellipse.py +12 -7
- {photutils-2.2.0 → photutils-2.3.0}/photutils/aperture/mask.py +9 -6
- {photutils-2.2.0 → photutils-2.3.0}/photutils/aperture/photometry.py +6 -6
- {photutils-2.2.0 → photutils-2.3.0}/photutils/aperture/rectangle.py +12 -7
- {photutils-2.2.0 → photutils-2.3.0}/photutils/aperture/stats.py +36 -17
- {photutils-2.2.0 → photutils-2.3.0}/photutils/aperture/tests/test_aperture_common.py +1 -1
- {photutils-2.2.0 → photutils-2.3.0}/photutils/aperture/tests/test_converters.py +8 -8
- {photutils-2.2.0 → photutils-2.3.0}/photutils/aperture/tests/test_photometry.py +0 -1
- {photutils-2.2.0 → photutils-2.3.0}/photutils/background/__init__.py +1 -1
- {photutils-2.2.0 → photutils-2.3.0}/photutils/background/background_2d.py +117 -74
- {photutils-2.2.0 → photutils-2.3.0}/photutils/background/core.py +54 -52
- {photutils-2.2.0 → photutils-2.3.0}/photutils/background/interpolators.py +3 -3
- {photutils-2.2.0 → photutils-2.3.0}/photutils/background/local_background.py +5 -4
- {photutils-2.2.0 → photutils-2.3.0}/photutils/background/tests/test_background_2d.py +44 -6
- {photutils-2.2.0 → photutils-2.3.0}/photutils/centroids/__init__.py +1 -1
- {photutils-2.2.0 → photutils-2.3.0}/photutils/centroids/core.py +35 -21
- {photutils-2.2.0 → photutils-2.3.0}/photutils/centroids/gaussian.py +22 -10
- {photutils-2.2.0 → photutils-2.3.0}/photutils/centroids/tests/test_core.py +17 -0
- {photutils-2.2.0 → photutils-2.3.0}/photutils/centroids/tests/test_gaussian.py +8 -2
- {photutils-2.2.0 → photutils-2.3.0}/photutils/datasets/__init__.py +1 -1
- {photutils-2.2.0 → photutils-2.3.0}/photutils/datasets/examples.py +2 -2
- {photutils-2.2.0 → photutils-2.3.0}/photutils/datasets/images.py +80 -57
- {photutils-2.2.0 → photutils-2.3.0}/photutils/datasets/load.py +6 -4
- {photutils-2.2.0 → photutils-2.3.0}/photutils/datasets/model_params.py +8 -6
- {photutils-2.2.0 → photutils-2.3.0}/photutils/datasets/noise.py +10 -6
- {photutils-2.2.0 → photutils-2.3.0}/photutils/datasets/tests/test_images.py +53 -0
- {photutils-2.2.0 → photutils-2.3.0}/photutils/datasets/tests/test_model_params.py +3 -3
- {photutils-2.2.0 → photutils-2.3.0}/photutils/datasets/wcs.py +1 -1
- {photutils-2.2.0 → photutils-2.3.0}/photutils/detection/__init__.py +2 -2
- {photutils-2.2.0 → photutils-2.3.0}/photutils/detection/core.py +14 -9
- {photutils-2.2.0 → photutils-2.3.0}/photutils/detection/daofinder.py +9 -5
- {photutils-2.2.0 → photutils-2.3.0}/photutils/detection/irafstarfinder.py +9 -5
- {photutils-2.2.0 → photutils-2.3.0}/photutils/detection/peakfinder.py +8 -6
- {photutils-2.2.0 → photutils-2.3.0}/photutils/detection/starfinder.py +3 -2
- {photutils-2.2.0 → photutils-2.3.0}/photutils/detection/tests/test_daofinder.py +11 -11
- {photutils-2.2.0 → photutils-2.3.0}/photutils/detection/tests/test_irafstarfinder.py +11 -11
- {photutils-2.2.0 → photutils-2.3.0}/photutils/detection/tests/test_peakfinder.py +5 -5
- {photutils-2.2.0 → photutils-2.3.0}/photutils/detection/tests/test_starfinder.py +6 -6
- {photutils-2.2.0 → photutils-2.3.0}/photutils/extern/__init__.py +1 -1
- {photutils-2.2.0 → photutils-2.3.0}/photutils/geometry/__init__.py +1 -1
- {photutils-2.2.0 → photutils-2.3.0}/photutils/isophote/__init__.py +2 -2
- {photutils-2.2.0 → photutils-2.3.0}/photutils/isophote/ellipse.py +1 -1
- photutils-2.3.0/photutils/isophote/ellipse_model.pyx +156 -0
- {photutils-2.2.0 → photutils-2.3.0}/photutils/isophote/fitter.py +2 -2
- {photutils-2.2.0 → photutils-2.3.0}/photutils/isophote/geometry.py +3 -3
- {photutils-2.2.0 → photutils-2.3.0}/photutils/isophote/harmonics.py +3 -2
- {photutils-2.2.0 → photutils-2.3.0}/photutils/isophote/integrator.py +2 -2
- {photutils-2.2.0 → photutils-2.3.0}/photutils/isophote/isophote.py +13 -15
- photutils-2.3.0/photutils/isophote/model.py +140 -0
- {photutils-2.2.0 → photutils-2.3.0}/photutils/isophote/sample.py +7 -15
- {photutils-2.2.0 → photutils-2.3.0}/photutils/isophote/tests/make_test_data.py +1 -1
- {photutils-2.2.0 → photutils-2.3.0}/photutils/isophote/tests/test_angles.py +3 -1
- {photutils-2.2.0 → photutils-2.3.0}/photutils/isophote/tests/test_model.py +7 -6
- {photutils-2.2.0 → photutils-2.3.0}/photutils/isophote/tests/test_regression.py +3 -1
- {photutils-2.2.0 → photutils-2.3.0}/photutils/morphology/__init__.py +1 -1
- {photutils-2.2.0 → photutils-2.3.0}/photutils/morphology/core.py +1 -2
- {photutils-2.2.0 → photutils-2.3.0}/photutils/morphology/non_parametric.py +1 -2
- {photutils-2.2.0 → photutils-2.3.0}/photutils/profiles/__init__.py +1 -1
- {photutils-2.2.0 → photutils-2.3.0}/photutils/profiles/core.py +19 -11
- {photutils-2.2.0 → photutils-2.3.0}/photutils/profiles/curve_of_growth.py +9 -8
- {photutils-2.2.0 → photutils-2.3.0}/photutils/profiles/radial_profile.py +1 -1
- {photutils-2.2.0 → photutils-2.3.0}/photutils/profiles/tests/test_radial_profile.py +2 -2
- {photutils-2.2.0 → photutils-2.3.0}/photutils/psf/__init__.py +3 -1
- photutils-2.3.0/photutils/psf/_components.py +1580 -0
- {photutils-2.2.0 → photutils-2.3.0}/photutils/psf/epsf.py +49 -30
- {photutils-2.2.0 → photutils-2.3.0}/photutils/psf/epsf_stars.py +37 -31
- photutils-2.3.0/photutils/psf/flags.py +437 -0
- {photutils-2.2.0 → photutils-2.3.0}/photutils/psf/functional_models.py +7 -4
- {photutils-2.2.0 → photutils-2.3.0}/photutils/psf/gridded_models.py +118 -40
- {photutils-2.2.0 → photutils-2.3.0}/photutils/psf/groupers.py +10 -3
- {photutils-2.2.0 → photutils-2.3.0}/photutils/psf/image_models.py +62 -38
- photutils-2.3.0/photutils/psf/iterative.py +654 -0
- {photutils-2.2.0 → photutils-2.3.0}/photutils/psf/matching/__init__.py +1 -1
- {photutils-2.2.0 → photutils-2.3.0}/photutils/psf/matching/fourier.py +4 -3
- {photutils-2.2.0 → photutils-2.3.0}/photutils/psf/matching/windows.py +4 -3
- {photutils-2.2.0 → photutils-2.3.0}/photutils/psf/model_helpers.py +45 -32
- {photutils-2.2.0 → photutils-2.3.0}/photutils/psf/model_io.py +25 -16
- {photutils-2.2.0 → photutils-2.3.0}/photutils/psf/model_plotting.py +1 -1
- photutils-2.3.0/photutils/psf/photometry.py +1701 -0
- {photutils-2.2.0 → photutils-2.3.0}/photutils/psf/simulation.py +10 -12
- photutils-2.3.0/photutils/psf/tests/test_components.py +621 -0
- {photutils-2.2.0 → photutils-2.3.0}/photutils/psf/tests/test_epsf.py +85 -93
- photutils-2.3.0/photutils/psf/tests/test_flags.py +513 -0
- {photutils-2.2.0 → photutils-2.3.0}/photutils/psf/tests/test_functional_models.py +2 -1
- {photutils-2.2.0 → photutils-2.3.0}/photutils/psf/tests/test_gridded_models.py +37 -1
- {photutils-2.2.0 → photutils-2.3.0}/photutils/psf/tests/test_image_models.py +39 -39
- photutils-2.3.0/photutils/psf/tests/test_iterative.py +483 -0
- {photutils-2.2.0 → photutils-2.3.0}/photutils/psf/tests/test_model_helpers.py +3 -3
- photutils-2.3.0/photutils/psf/tests/test_photometry.py +1855 -0
- {photutils-2.2.0 → photutils-2.3.0}/photutils/psf/tests/test_utils.py +25 -7
- photutils-2.3.0/photutils/psf/utils.py +816 -0
- {photutils-2.2.0 → photutils-2.3.0}/photutils/segmentation/__init__.py +1 -1
- {photutils-2.2.0 → photutils-2.3.0}/photutils/segmentation/catalog.py +89 -49
- {photutils-2.2.0 → photutils-2.3.0}/photutils/segmentation/core.py +272 -79
- {photutils-2.2.0 → photutils-2.3.0}/photutils/segmentation/deblend.py +18 -17
- {photutils-2.2.0 → photutils-2.3.0}/photutils/segmentation/detect.py +28 -16
- {photutils-2.2.0 → photutils-2.3.0}/photutils/segmentation/finder.py +6 -7
- {photutils-2.2.0 → photutils-2.3.0}/photutils/segmentation/tests/test_catalog.py +17 -2
- {photutils-2.2.0 → photutils-2.3.0}/photutils/segmentation/tests/test_core.py +121 -5
- {photutils-2.2.0 → photutils-2.3.0}/photutils/segmentation/tests/test_deblend.py +6 -6
- {photutils-2.2.0 → photutils-2.3.0}/photutils/segmentation/tests/test_detect.py +1 -1
- {photutils-2.2.0 → photutils-2.3.0}/photutils/segmentation/tests/test_finder.py +1 -1
- {photutils-2.2.0 → photutils-2.3.0}/photutils/segmentation/utils.py +3 -3
- {photutils-2.2.0 → photutils-2.3.0}/photutils/tests/helper.py +1 -1
- {photutils-2.2.0 → photutils-2.3.0}/photutils/utils/__init__.py +2 -2
- {photutils-2.2.0 → photutils-2.3.0}/photutils/utils/_convolution.py +1 -1
- {photutils-2.2.0 → photutils-2.3.0}/photutils/utils/_coords.py +3 -2
- {photutils-2.2.0 → photutils-2.3.0}/photutils/utils/_misc.py +1 -2
- {photutils-2.2.0 → photutils-2.3.0}/photutils/utils/_moments.py +3 -2
- {photutils-2.2.0 → photutils-2.3.0}/photutils/utils/_optional_deps.py +3 -24
- {photutils-2.2.0 → photutils-2.3.0}/photutils/utils/_parameters.py +40 -8
- {photutils-2.2.0 → photutils-2.3.0}/photutils/utils/_progress_bars.py +23 -1
- {photutils-2.2.0 → photutils-2.3.0}/photutils/utils/_quantity_helpers.py +3 -3
- photutils-2.3.0/photutils/utils/_repr.py +78 -0
- {photutils-2.2.0 → photutils-2.3.0}/photutils/utils/_round.py +1 -1
- {photutils-2.2.0 → photutils-2.3.0}/photutils/utils/_stats.py +3 -3
- {photutils-2.2.0 → photutils-2.3.0}/photutils/utils/_wcs_helpers.py +1 -1
- {photutils-2.2.0 → photutils-2.3.0}/photutils/utils/colormaps.py +1 -1
- {photutils-2.2.0 → photutils-2.3.0}/photutils/utils/cutouts.py +9 -2
- {photutils-2.2.0 → photutils-2.3.0}/photutils/utils/depths.py +20 -12
- {photutils-2.2.0 → photutils-2.3.0}/photutils/utils/errors.py +16 -12
- {photutils-2.2.0 → photutils-2.3.0}/photutils/utils/exceptions.py +1 -1
- {photutils-2.2.0 → photutils-2.3.0}/photutils/utils/footprints.py +3 -3
- {photutils-2.2.0 → photutils-2.3.0}/photutils/utils/interpolation.py +24 -19
- photutils-2.3.0/photutils/utils/tests/test_coords.py +37 -0
- {photutils-2.2.0 → photutils-2.3.0}/photutils/utils/tests/test_depths.py +1 -1
- {photutils-2.2.0 → photutils-2.3.0}/photutils/utils/tests/test_interpolation.py +1 -1
- photutils-2.3.0/photutils/utils/tests/test_repr.py +73 -0
- photutils-2.3.0/photutils/version.py +34 -0
- {photutils-2.2.0 → photutils-2.3.0/photutils.egg-info}/PKG-INFO +17 -42
- {photutils-2.2.0 → photutils-2.3.0}/photutils.egg-info/SOURCES.txt +14 -4
- photutils-2.3.0/photutils.egg-info/requires.txt +28 -0
- {photutils-2.2.0 → photutils-2.3.0}/pyproject.toml +65 -67
- {photutils-2.2.0 → photutils-2.3.0}/tox.ini +6 -19
- photutils-2.2.0/docs/development/index.rst +0 -12
- photutils-2.2.0/docs/nitpick-exceptions.txt +0 -9
- photutils-2.2.0/docs/user_guide/grouping.rst +0 -191
- photutils-2.2.0/docs/whats_new/index.rst +0 -35
- photutils-2.2.0/photutils/isophote/model.py +0 -168
- photutils-2.2.0/photutils/psf/photometry.py +0 -2012
- photutils-2.2.0/photutils/psf/tests/test_photometry.py +0 -1225
- photutils-2.2.0/photutils/psf/utils.py +0 -425
- photutils-2.2.0/photutils/utils/_repr.py +0 -54
- photutils-2.2.0/photutils/version.py +0 -16
- photutils-2.2.0/photutils.egg-info/requires.txt +0 -23
- {photutils-2.2.0 → photutils-2.3.0}/.flake8 +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/.github/dependabot.yml +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/.gitignore +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/.pycodestyle +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/CITATION.md +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/CODE_OF_CONDUCT.rst +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/CONTRIBUTING.rst +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/LICENSE.rst +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/codecov.yml +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/docs/Makefile +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/docs/_static/custom.css +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/docs/_static/photutils_logo.ico +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/docs/_static/photutils_logo_dark_plain_path.svg +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/docs/_static/photutils_logo_light_plain_path.svg +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/docs/changelog.rst +0 -0
- {photutils-2.2.0/docs/getting_started → photutils-2.3.0/docs/development}/contributing.rst +0 -0
- {photutils-2.2.0/docs/getting_started → photutils-2.3.0/docs/development}/contributors.rst +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/docs/development/license.rst +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/docs/development/releasing.rst +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/docs/getting_started/citation.rst +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/docs/getting_started/overview.rst +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/docs/getting_started/pixel_conventions.rst +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/docs/make.bat +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/docs/reference/aperture_api.rst +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/docs/reference/background_api.rst +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/docs/reference/centroids_api.rst +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/docs/reference/datasets_api.rst +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/docs/reference/detection_api.rst +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/docs/reference/geometry_api.rst +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/docs/reference/isophote_api.rst +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/docs/reference/morphology_api.rst +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/docs/reference/profiles_api.rst +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/docs/reference/psf_api.rst +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/docs/reference/psf_matching_api.rst +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/docs/reference/segmentation_api.rst +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/docs/reference/utils_api.rst +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/docs/user_guide/aperture.rst +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/docs/user_guide/background.rst +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/docs/user_guide/datasets.rst +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/docs/user_guide/epsf.rst +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/docs/user_guide/geometry.rst +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/docs/user_guide/isophote.rst +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/docs/user_guide/isophote_faq.rst +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/docs/user_guide/morphology.rst +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/docs/user_guide/psf_matching.rst +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/docs/user_guide/segmentation.rst +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/docs/user_guide/utils.rst +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/photutils/__init__.py +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/photutils/_compiler.c +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/photutils/aperture/tests/__init__.py +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/photutils/aperture/tests/test_bounding_box.py +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/photutils/aperture/tests/test_circle.py +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/photutils/aperture/tests/test_ellipse.py +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/photutils/aperture/tests/test_mask.py +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/photutils/aperture/tests/test_rectangle.py +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/photutils/aperture/tests/test_stats.py +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/photutils/background/tests/__init__.py +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/photutils/background/tests/test_core.py +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/photutils/background/tests/test_interpolators.py +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/photutils/background/tests/test_local_background.py +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/photutils/centroids/tests/__init__.py +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/photutils/conftest.py +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/photutils/datasets/data/100gaussians_params.ecsv +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/photutils/datasets/data/4gaussians_params.ecsv +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/photutils/datasets/tests/__init__.py +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/photutils/datasets/tests/test_examples.py +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/photutils/datasets/tests/test_load.py +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/photutils/datasets/tests/test_noise.py +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/photutils/datasets/tests/test_wcs.py +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/photutils/detection/tests/__init__.py +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/photutils/detection/tests/conftest.py +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/photutils/extern/biweight.py +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/photutils/geometry/circular_overlap.pyx +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/photutils/geometry/core.pxd +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/photutils/geometry/core.pyx +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/photutils/geometry/elliptical_overlap.pyx +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/photutils/geometry/rectangular_overlap.pyx +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/photutils/geometry/tests/__init__.py +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/photutils/geometry/tests/test_circular_overlap_grid.py +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/photutils/geometry/tests/test_elliptical_overlap_grid.py +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/photutils/geometry/tests/test_rectangular_overlap_grid.py +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/photutils/isophote/tests/__init__.py +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/photutils/isophote/tests/data/M51_table.fits +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/photutils/isophote/tests/data/README.rst +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/photutils/isophote/tests/data/minimum_radius_test.fits +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/photutils/isophote/tests/data/synth_highsnr_table.fits +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/photutils/isophote/tests/data/synth_lowsnr_table.fits +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/photutils/isophote/tests/data/synth_table.fits +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/photutils/isophote/tests/data/synth_table_mean.fits +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/photutils/isophote/tests/data/synth_table_mean.txt +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/photutils/isophote/tests/test_ellipse.py +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/photutils/isophote/tests/test_fitter.py +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/photutils/isophote/tests/test_geometry.py +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/photutils/isophote/tests/test_harmonics.py +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/photutils/isophote/tests/test_integrator.py +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/photutils/isophote/tests/test_isophote.py +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/photutils/isophote/tests/test_sample.py +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/photutils/morphology/tests/__init__.py +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/photutils/morphology/tests/test_core.py +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/photutils/morphology/tests/test_non_parametric.py +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/photutils/profiles/tests/__init__.py +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/photutils/profiles/tests/test_curve_of_growth.py +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/photutils/psf/matching/tests/__init__.py +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/photutils/psf/matching/tests/test_fourier.py +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/photutils/psf/matching/tests/test_windows.py +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/photutils/psf/tests/__init__.py +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/photutils/psf/tests/data/STDPSF_ACSWFC_F814W_mock.fits +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/photutils/psf/tests/data/STDPSF_NRCA1_F150W_mock.fits +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/photutils/psf/tests/data/STDPSF_NRCSW_F150W_mock.fits +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/photutils/psf/tests/data/STDPSF_WFC3UV_F814W_mock.fits +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/photutils/psf/tests/data/STDPSF_WFPC2_F814W_mock.fits +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/photutils/psf/tests/data/nircam_nrca1_f200w_fovp101_samp4_npsf16_mock.fits +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/photutils/psf/tests/data/nircam_nrca1_f200w_fovp101_samp4_npsf4_mock.fits +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/photutils/psf/tests/data/nircam_nrca5_f444w_fovp101_samp4_npsf4_mock.fits +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/photutils/psf/tests/data/nircam_nrcb4_f150w_fovp101_samp4_npsf1_mock.fits +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/photutils/psf/tests/test_epsf_stars.py +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/photutils/psf/tests/test_groupers.py +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/photutils/psf/tests/test_simulation.py +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/photutils/segmentation/tests/__init__.py +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/photutils/segmentation/tests/test_utils.py +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/photutils/tests/__init__.py +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/photutils/utils/tests/__init__.py +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/photutils/utils/tests/test_colormaps.py +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/photutils/utils/tests/test_convolution.py +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/photutils/utils/tests/test_cutouts.py +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/photutils/utils/tests/test_errors.py +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/photutils/utils/tests/test_footprints.py +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/photutils/utils/tests/test_misc.py +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/photutils/utils/tests/test_moments.py +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/photutils/utils/tests/test_parameters.py +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/photutils/utils/tests/test_quantity_helpers.py +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/photutils/utils/tests/test_round.py +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/photutils/utils/tests/test_stats.py +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/photutils.egg-info/dependency_links.txt +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/photutils.egg-info/not-zip-safe +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/photutils.egg-info/top_level.txt +0 -0
- {photutils-2.2.0 → photutils-2.3.0}/setup.cfg +0 -0
|
@@ -35,7 +35,7 @@ jobs:
|
|
|
35
35
|
matrix:
|
|
36
36
|
include:
|
|
37
37
|
- os: ubuntu-latest
|
|
38
|
-
python: '3.
|
|
38
|
+
python: '3.13'
|
|
39
39
|
tox_env: 'linkcheck'
|
|
40
40
|
allow_failure: false
|
|
41
41
|
prefix: ''
|
|
@@ -51,9 +51,10 @@ jobs:
|
|
|
51
51
|
- name: Check out repository
|
|
52
52
|
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
|
53
53
|
with:
|
|
54
|
+
persist-credentials: false
|
|
54
55
|
fetch-depth: 0
|
|
55
56
|
- name: Set up Python ${{ matrix.python }}
|
|
56
|
-
uses: actions/setup-python@
|
|
57
|
+
uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
|
|
57
58
|
with:
|
|
58
59
|
python-version: ${{ matrix.python }}
|
|
59
60
|
allow-prereleases: true
|
|
@@ -69,7 +70,7 @@ jobs:
|
|
|
69
70
|
run: python -m tox -e ${{ matrix.tox_env }} -- ${{ matrix.toxposargs }}
|
|
70
71
|
- name: Upload coverage to codecov
|
|
71
72
|
if: ${{ contains(matrix.tox_env, '-cov') }}
|
|
72
|
-
uses: codecov/codecov-action@
|
|
73
|
+
uses: codecov/codecov-action@18283e04ce6e62d37312384ff67231eb8fd56d24 # v5.4.3
|
|
73
74
|
with:
|
|
74
75
|
files: ./coverage.xml
|
|
75
76
|
verbose: true
|
|
@@ -37,7 +37,7 @@ jobs:
|
|
|
37
37
|
matrix:
|
|
38
38
|
include:
|
|
39
39
|
- os: ubuntu-latest
|
|
40
|
-
python: '3.
|
|
40
|
+
python: '3.13'
|
|
41
41
|
tox_env: 'py312-test-alldeps-devinfra'
|
|
42
42
|
allow_failure: false
|
|
43
43
|
|
|
@@ -45,9 +45,10 @@ jobs:
|
|
|
45
45
|
- name: Check out repository
|
|
46
46
|
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
|
47
47
|
with:
|
|
48
|
+
persist-credentials: false
|
|
48
49
|
fetch-depth: 0
|
|
49
50
|
- name: Set up Python ${{ matrix.python }}
|
|
50
|
-
uses: actions/setup-python@
|
|
51
|
+
uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
|
|
51
52
|
with:
|
|
52
53
|
python-version: ${{ matrix.python }}
|
|
53
54
|
- name: Install base dependencies
|
|
@@ -84,8 +85,9 @@ jobs:
|
|
|
84
85
|
steps:
|
|
85
86
|
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
|
86
87
|
with:
|
|
88
|
+
persist-credentials: false
|
|
87
89
|
fetch-depth: 0
|
|
88
|
-
- uses: uraimo/run-on-arch-action@
|
|
90
|
+
- uses: uraimo/run-on-arch-action@d94c13912ea685de38fccc1109385b83fd79427d # v3.0.1
|
|
89
91
|
name: Run tests
|
|
90
92
|
id: build
|
|
91
93
|
with:
|
|
@@ -123,7 +125,7 @@ jobs:
|
|
|
123
125
|
python3 -m venv --system-site-packages tests
|
|
124
126
|
source tests/bin/activate
|
|
125
127
|
# cython and pyerfa versions in ubuntu repos are too old currently
|
|
126
|
-
pip install -U cython
|
|
128
|
+
pip install -U cython setuptools packaging
|
|
127
129
|
pip install -U --no-build-isolation pyerfa
|
|
128
130
|
ASTROPY_USE_SYSTEM_ALL=1 pip3 install -v --no-build-isolation -e .[test]
|
|
129
131
|
pip3 list
|
|
@@ -42,33 +42,26 @@ jobs:
|
|
|
42
42
|
allow_failure: false
|
|
43
43
|
prefix: ''
|
|
44
44
|
|
|
45
|
-
- os:
|
|
45
|
+
- os: ubuntu-latest
|
|
46
46
|
python: '3.12'
|
|
47
47
|
tox_env: 'py312-test-alldeps'
|
|
48
48
|
allow_failure: false
|
|
49
49
|
prefix: ''
|
|
50
50
|
|
|
51
|
-
- os: macos-
|
|
52
|
-
python: '3.
|
|
53
|
-
tox_env: '
|
|
54
|
-
allow_failure: false
|
|
55
|
-
prefix: 'M1'
|
|
56
|
-
|
|
57
|
-
- os: windows-latest
|
|
58
|
-
python: '3.12'
|
|
59
|
-
tox_env: 'py312-test-alldeps'
|
|
51
|
+
- os: macos-latest
|
|
52
|
+
python: '3.13'
|
|
53
|
+
tox_env: 'py313-test-alldeps'
|
|
60
54
|
allow_failure: false
|
|
61
55
|
prefix: ''
|
|
62
56
|
|
|
63
|
-
- os:
|
|
64
|
-
python: '3.
|
|
65
|
-
tox_env: '
|
|
66
|
-
toxposargs: --remote-data=any
|
|
57
|
+
- os: windows-latest
|
|
58
|
+
python: '3.13'
|
|
59
|
+
tox_env: 'py313-test-alldeps'
|
|
67
60
|
allow_failure: false
|
|
68
61
|
prefix: ''
|
|
69
62
|
|
|
70
63
|
- os: ubuntu-latest
|
|
71
|
-
python: '3.
|
|
64
|
+
python: '3.13'
|
|
72
65
|
tox_env: 'py312-test-alldeps-cov'
|
|
73
66
|
toxposargs: --remote-data=any
|
|
74
67
|
allow_failure: false
|
|
@@ -76,32 +69,34 @@ jobs:
|
|
|
76
69
|
|
|
77
70
|
# cannot use alldeps: rasterio does not have a arm64 wheel
|
|
78
71
|
- os: ubuntu-24.04-arm
|
|
79
|
-
python: '3.
|
|
80
|
-
tox_env: '
|
|
72
|
+
python: '3.13'
|
|
73
|
+
tox_env: 'py313-test'
|
|
81
74
|
allow_failure: false
|
|
82
75
|
prefix: ''
|
|
83
76
|
|
|
77
|
+
# test without all dependencies
|
|
84
78
|
- os: ubuntu-latest
|
|
85
|
-
python: '3.
|
|
86
|
-
tox_env: '
|
|
79
|
+
python: '3.13'
|
|
80
|
+
tox_env: 'py313-test'
|
|
81
|
+
toxposargs: --remote-data=any
|
|
87
82
|
allow_failure: false
|
|
88
83
|
prefix: ''
|
|
89
84
|
|
|
90
85
|
- os: ubuntu-latest
|
|
91
|
-
python: '3.
|
|
92
|
-
tox_env: '
|
|
86
|
+
python: '3.13'
|
|
87
|
+
tox_env: 'codestyle'
|
|
93
88
|
allow_failure: false
|
|
94
89
|
prefix: ''
|
|
95
90
|
|
|
96
91
|
- os: ubuntu-latest
|
|
97
|
-
python: '3.
|
|
98
|
-
tox_env: '
|
|
92
|
+
python: '3.13'
|
|
93
|
+
tox_env: 'pep517'
|
|
99
94
|
allow_failure: false
|
|
100
95
|
prefix: ''
|
|
101
96
|
|
|
102
97
|
- os: ubuntu-latest
|
|
103
98
|
python: '3.13'
|
|
104
|
-
tox_env: '
|
|
99
|
+
tox_env: 'bandit'
|
|
105
100
|
allow_failure: false
|
|
106
101
|
prefix: ''
|
|
107
102
|
|
|
@@ -116,9 +111,10 @@ jobs:
|
|
|
116
111
|
- name: Check out repository
|
|
117
112
|
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
|
118
113
|
with:
|
|
114
|
+
persist-credentials: false
|
|
119
115
|
fetch-depth: 0
|
|
120
116
|
- name: Set up Python ${{ matrix.python }}
|
|
121
|
-
uses: actions/setup-python@
|
|
117
|
+
uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
|
|
122
118
|
with:
|
|
123
119
|
python-version: ${{ matrix.python }}
|
|
124
120
|
allow-prereleases: true
|
|
@@ -134,7 +130,7 @@ jobs:
|
|
|
134
130
|
run: python -m tox -e ${{ matrix.tox_env }} -- -n=2 ${{ matrix.toxposargs }}
|
|
135
131
|
- name: Upload coverage to codecov
|
|
136
132
|
if: ${{ contains(matrix.tox_env, '-cov') }}
|
|
137
|
-
uses: codecov/codecov-action@
|
|
133
|
+
uses: codecov/codecov-action@18283e04ce6e62d37312384ff67231eb8fd56d24 # v5.4.3
|
|
138
134
|
with:
|
|
139
135
|
files: ./coverage.xml
|
|
140
136
|
verbose: true
|
|
@@ -44,6 +44,9 @@ jobs:
|
|
|
44
44
|
steps:
|
|
45
45
|
- name: Checkout repository
|
|
46
46
|
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
|
47
|
+
with:
|
|
48
|
+
persist-credentials: false
|
|
49
|
+
fetch-depth: 0
|
|
47
50
|
|
|
48
51
|
# Initializes the CodeQL tools for scanning.
|
|
49
52
|
- 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@28e947497bed4d6ec3fa1d66d198e95a1d17bc63 # v2.2.1
|
|
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,23 +43,14 @@ jobs:
|
|
|
43
43
|
test_command: pytest -p no:warnings --pyargs photutils
|
|
44
44
|
targets: |
|
|
45
45
|
# Linux wheels
|
|
46
|
-
-
|
|
47
|
-
- cp312-manylinux_x86_64
|
|
48
|
-
- cp313-manylinux_x86_64
|
|
46
|
+
- cp*-manylinux_x86_64
|
|
49
47
|
|
|
50
48
|
# MacOS X wheels
|
|
51
|
-
-
|
|
52
|
-
-
|
|
53
|
-
- cp313*macosx_x86_64
|
|
54
|
-
|
|
55
|
-
- cp311*macosx_arm64
|
|
56
|
-
- cp312*macosx_arm64
|
|
57
|
-
- cp313*macosx_arm64
|
|
49
|
+
- cp*-macosx_x86_64
|
|
50
|
+
- cp*-macosx_arm64
|
|
58
51
|
|
|
59
52
|
# Windows wheels
|
|
60
|
-
-
|
|
61
|
-
- cp312*win_amd64
|
|
62
|
-
- cp313*win_amd64
|
|
53
|
+
- cp*-win_amd64
|
|
63
54
|
|
|
64
55
|
# Developer wheels
|
|
65
56
|
upload_to_anaconda: ${{ (github.event_name == 'schedule' || github.event_name == 'workflow_dispatch') }}
|
|
@@ -4,7 +4,7 @@ ci:
|
|
|
4
4
|
|
|
5
5
|
repos:
|
|
6
6
|
- repo: https://github.com/pre-commit/pre-commit-hooks
|
|
7
|
-
rev:
|
|
7
|
+
rev: v6.0.0
|
|
8
8
|
hooks:
|
|
9
9
|
- id: check-added-large-files
|
|
10
10
|
# Prevent giant files from being committed.
|
|
@@ -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.12.11"
|
|
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: 2025.
|
|
64
|
+
rev: 2025.05.02
|
|
65
65
|
hooks:
|
|
66
66
|
- id: sp-repo-review
|
|
67
67
|
|
|
68
68
|
- repo: https://github.com/pycqa/isort
|
|
69
|
-
rev: 6.0.
|
|
69
|
+
rev: 6.0.1
|
|
70
70
|
hooks:
|
|
71
71
|
- id: isort
|
|
72
72
|
name: isort (python)
|
|
@@ -77,7 +77,7 @@ repos:
|
|
|
77
77
|
additional_dependencies: [toml]
|
|
78
78
|
|
|
79
79
|
- repo: https://github.com/PyCQA/flake8
|
|
80
|
-
rev: 7.
|
|
80
|
+
rev: 7.3.0
|
|
81
81
|
hooks:
|
|
82
82
|
- id: flake8
|
|
83
83
|
args: ["--ignore", "E501,W503"]
|
|
@@ -86,26 +86,35 @@ repos:
|
|
|
86
86
|
rev: v2.4.1
|
|
87
87
|
hooks:
|
|
88
88
|
- id: codespell
|
|
89
|
-
args: ["--write-changes"
|
|
89
|
+
args: ["--write-changes"]
|
|
90
90
|
additional_dependencies:
|
|
91
91
|
- tomli
|
|
92
92
|
|
|
93
93
|
- repo: https://github.com/numpy/numpydoc
|
|
94
|
-
rev: v1.
|
|
94
|
+
rev: v1.9.0
|
|
95
95
|
hooks:
|
|
96
96
|
- id: numpydoc-validation
|
|
97
97
|
exclude: "extern/"
|
|
98
98
|
|
|
99
|
-
#
|
|
100
|
-
# see https://github.com/PyCQA/docformatter/pull/287
|
|
99
|
+
# Formats docstrings to follow PEP 257
|
|
101
100
|
- repo: https://github.com/PyCQA/docformatter
|
|
102
|
-
rev:
|
|
101
|
+
rev: v1.7.7
|
|
103
102
|
hooks:
|
|
104
103
|
- id: docformatter
|
|
105
|
-
additional_dependencies: [tomli]
|
|
106
104
|
args: [--in-place, --config, ./pyproject.toml]
|
|
107
105
|
exclude: "extern/"
|
|
108
106
|
|
|
107
|
+
- repo: https://github.com/woodruffw/zizmor-pre-commit
|
|
108
|
+
rev: v1.12.1
|
|
109
|
+
hooks:
|
|
110
|
+
- id: zizmor
|
|
111
|
+
|
|
112
|
+
- repo: https://github.com/sphinx-contrib/sphinx-lint
|
|
113
|
+
rev: v1.0.0
|
|
114
|
+
hooks:
|
|
115
|
+
- id: sphinx-lint
|
|
116
|
+
exclude: "(docs/_build/|photutils/extern/)"
|
|
117
|
+
|
|
109
118
|
# - repo: https://github.com/MarcoGorelli/absolufy-imports
|
|
110
119
|
# rev: v0.3.1
|
|
111
120
|
# hooks:
|
|
@@ -1,3 +1,180 @@
|
|
|
1
|
+
2.3.0 (2025-09-15)
|
|
2
|
+
------------------
|
|
3
|
+
|
|
4
|
+
General
|
|
5
|
+
^^^^^^^
|
|
6
|
+
|
|
7
|
+
- The minimum required NumPy is now 1.25. [#2043]
|
|
8
|
+
|
|
9
|
+
- The minimum required SciPy is now 1.11.1. [#2043]
|
|
10
|
+
|
|
11
|
+
- The minimum required Matplotlib is now 3.8. [#2043]
|
|
12
|
+
|
|
13
|
+
- The minimum required scikit-image is now 0.21. [#2043]
|
|
14
|
+
|
|
15
|
+
New Features
|
|
16
|
+
^^^^^^^^^^^^
|
|
17
|
+
|
|
18
|
+
- ``photutils.isophote``
|
|
19
|
+
|
|
20
|
+
- ``build_ellipse_model`` is now Cythonized and considerably faster.
|
|
21
|
+
[#2046]
|
|
22
|
+
|
|
23
|
+
- ``build_ellipse_model`` also has an additional optional keyword
|
|
24
|
+
argument ``sma_interval``, which was previously hardcoded. [#2046]
|
|
25
|
+
|
|
26
|
+
- ``photutils.psf``
|
|
27
|
+
|
|
28
|
+
- ``PSFPhotometry`` and ``IterativePSFPhotometry`` now raise an error
|
|
29
|
+
if the input ``error`` array contains non-finite or zero values.
|
|
30
|
+
[#2022]
|
|
31
|
+
|
|
32
|
+
- ``GriddedPSFModel`` can now be used with a single input ePSF model,
|
|
33
|
+
which will be equivalent to ``ImagePSF``. [#2034]
|
|
34
|
+
|
|
35
|
+
- The ``finder`` callable input to ``PSFPhotometry`` and
|
|
36
|
+
``IterativePSFPhotometry`` is no longer restricted to have x and y
|
|
37
|
+
column names of ``'xcentroid'`` and ``'ycentroid'``. The allowed
|
|
38
|
+
column names are now the same as those allowed in the
|
|
39
|
+
``init_params`` table. [#2072]
|
|
40
|
+
|
|
41
|
+
- Added a ``group_warning_threshold`` keyword to ``PSFPhotometry`` and
|
|
42
|
+
``IterativePSFPhotometry``. [#2081]
|
|
43
|
+
|
|
44
|
+
- The ``PSFPhotometry`` and ``IterativePSFPhotometry`` classes no
|
|
45
|
+
longer fail for invalid sources, defined as those that have no
|
|
46
|
+
overlap with the input data, are completely masked, or have too few
|
|
47
|
+
unmasked pixels for a fit. These classes have new flags (64, 128,
|
|
48
|
+
256, respectively) for these invalid conditions. [#2084, #2085]
|
|
49
|
+
|
|
50
|
+
- The ``PSFPhotometry`` and ``IterativePSFPhotometry`` classes have
|
|
51
|
+
new ``results_to_init_params`` and ``results_to_model_params``
|
|
52
|
+
methods for outputting fit results in different formats. [#2084]
|
|
53
|
+
|
|
54
|
+
- When using Astropy 7.0+, the ``PSFPhotometry`` and
|
|
55
|
+
``IterativePSFPhotometry`` ``fitter`` object now modifies the PSF
|
|
56
|
+
model in place instead of creating a copy, improving performance and
|
|
57
|
+
significantly reducing memory usage in some cases. [#2093]
|
|
58
|
+
|
|
59
|
+
- ``PSFPhotometry`` and ``IterativePSFPhotometry`` now return a
|
|
60
|
+
reduced chi-squared statistic (``reduced_chi2`` column in the
|
|
61
|
+
results table). [#2086]
|
|
62
|
+
|
|
63
|
+
- The PSF photometry classes now use a dynamically generated "flat"
|
|
64
|
+
model instead of a compound model for grouped sources. This
|
|
65
|
+
eliminates recursion limits and significantly reduces memory usage
|
|
66
|
+
for large groups. [#2100]
|
|
67
|
+
|
|
68
|
+
- ``photutils.segmentation``
|
|
69
|
+
|
|
70
|
+
- An optional ``array`` keyword was added to the ``SourceCatalog``
|
|
71
|
+
``make_cutouts`` method. [#2023]
|
|
72
|
+
|
|
73
|
+
- Added a ``group`` keyword to the ``SegmentationImage``
|
|
74
|
+
``to_regions`` method. [#2060, #2065]
|
|
75
|
+
|
|
76
|
+
- Added a ``decode_psf_flags`` utility function for decoding PSF
|
|
77
|
+
photometry bit flags. [#2090]
|
|
78
|
+
|
|
79
|
+
- Added a ``PSF_FLAGS`` object to hold all PSF photometry bit flags in
|
|
80
|
+
one place. PSF_FLAGS provides readable, named constants for each bit
|
|
81
|
+
flag and helper utilities for decoding bit flags. [#2091]
|
|
82
|
+
|
|
83
|
+
Bug Fixes
|
|
84
|
+
^^^^^^^^^
|
|
85
|
+
|
|
86
|
+
- ``photutils.centroids``
|
|
87
|
+
|
|
88
|
+
- Fixed an issue with the initial Gaussian theta units in
|
|
89
|
+
``centroid_2dg``. [#2013]
|
|
90
|
+
|
|
91
|
+
- Fixed a corner-case issue where zero-sum arrays with ndim > 2 input
|
|
92
|
+
to ``centroid_com`` would return only two np.nan coordinates instead
|
|
93
|
+
of matching the dimensionality of the input array. [#2045]
|
|
94
|
+
|
|
95
|
+
- ``photutils.datasets``
|
|
96
|
+
|
|
97
|
+
- Fixed a bug in ``make_model_image`` where the output image would not
|
|
98
|
+
have units in the case where the input params had units and none
|
|
99
|
+
of the models overlapped the image shape. [#2082]
|
|
100
|
+
|
|
101
|
+
- Fixed a bug in ``make_model_image`` where an error would be raised
|
|
102
|
+
if any row in the input parameters table contained non-finite model
|
|
103
|
+
parameters. Such sources are now silently ignored. [#2083]
|
|
104
|
+
|
|
105
|
+
- ``photutils.psf``
|
|
106
|
+
|
|
107
|
+
- Fixed a bug in ``fit_2dgaussian`` and ``fit_fwhm`` where the fit
|
|
108
|
+
would fail if there were NaN values in the input data. [#2030]
|
|
109
|
+
|
|
110
|
+
- Fixed the check in ``GriddedPSFModel`` for rectangular pixel grids.
|
|
111
|
+
[#2035]
|
|
112
|
+
|
|
113
|
+
- Fixed a bug in ``PSFPhotometry`` where the ``'group_id'`` column
|
|
114
|
+
would be ignored if included in the ``init_params`` table. [#2070]
|
|
115
|
+
|
|
116
|
+
- Fixed a bug in ``PSFPhotometry`` where the output ``flux_err``
|
|
117
|
+
column would not have units if the input data had units and the flux
|
|
118
|
+
model parameter was fixed in value. [#2072]
|
|
119
|
+
|
|
120
|
+
- Fixed a bug in ``PSFPhotometry`` and ``IterativePSFPhotometry``
|
|
121
|
+
where an error would be raised if the x or y columns in
|
|
122
|
+
``init_params`` had units. [#2079]
|
|
123
|
+
|
|
124
|
+
- Fixed a bug in ``PSFPhotometry`` and ``IterativePSFPhotometry`` for
|
|
125
|
+
the boundary conditions where flag=2 would be set. [#2080]
|
|
126
|
+
|
|
127
|
+
- Fixed a bug in ``EPSFBuilder`` where the output PSF would have the
|
|
128
|
+
wrong shape if the input ``stars`` were non-square cutouts. [#2089,
|
|
129
|
+
#2092]
|
|
130
|
+
|
|
131
|
+
- Fixed a bug in the calculation of the ``PSFPhotometry`` and
|
|
132
|
+
``IterativePSFPhotometry`` ``qfit`` and ``cfit`` to not include the
|
|
133
|
+
fit weights. [#2099]
|
|
134
|
+
|
|
135
|
+
- ``photutils.segmentation``
|
|
136
|
+
|
|
137
|
+
- Fixed an issue where a newly-defined extra property of a
|
|
138
|
+
``SourceCatalog`` with ``overwrite=True`` would not be added to
|
|
139
|
+
the ``extra_properties`` attribute. [#2039]
|
|
140
|
+
|
|
141
|
+
- Fixed an issue where the ``SegmentationImage`` ``segments``
|
|
142
|
+
attribute would fail if any source segment was non-contiguous.
|
|
143
|
+
[#2060]
|
|
144
|
+
|
|
145
|
+
API Changes
|
|
146
|
+
^^^^^^^^^^^
|
|
147
|
+
|
|
148
|
+
- ``photutils.background``
|
|
149
|
+
|
|
150
|
+
- An explicit ``ValueError`` is now raised if the input ``data`` to
|
|
151
|
+
``Background2D`` contains all non-finite values. [#2062]
|
|
152
|
+
|
|
153
|
+
- ``photutils.psf``
|
|
154
|
+
|
|
155
|
+
- The ``GriddedPSFModel`` ``data`` and ``grid_xypos`` attributes are
|
|
156
|
+
now read-only. [#2036]
|
|
157
|
+
|
|
158
|
+
- The ``PSFPhotometry`` ``fit_param`` attribute is now deprecated. Use
|
|
159
|
+
the new ``results_to_init_params`` method instead. [#2084]
|
|
160
|
+
|
|
161
|
+
- The deprecated ``PSFPhotometry`` ``fit_results`` attribute has been
|
|
162
|
+
removed. [#2084]
|
|
163
|
+
|
|
164
|
+
- ``photutils.segmentation``
|
|
165
|
+
|
|
166
|
+
- The ``SegmentationImage`` ``polygons`` list may now include either
|
|
167
|
+
Shapely ``Polygon`` or ``MultiPolygon`` (non-contiguous) objects.
|
|
168
|
+
[#2060]
|
|
169
|
+
|
|
170
|
+
- The ``SegmentationImage`` ``to_patches`` and ``plot_patches``
|
|
171
|
+
methods now return ``matplotlib.patches.PathPatch`` objects. [#2060]
|
|
172
|
+
|
|
173
|
+
- The ``SegmentationImage`` ``to_regions`` method now returns
|
|
174
|
+
``PolygonPixelRegion`` regions that have the segment label stored in
|
|
175
|
+
the object ``meta`` dictionary. [#2060]
|
|
176
|
+
|
|
177
|
+
|
|
1
178
|
2.2.0 (2025-02-18)
|
|
2
179
|
------------------
|
|
3
180
|
|
|
@@ -62,13 +239,13 @@ New Features
|
|
|
62
239
|
- ``photutils.datasets``
|
|
63
240
|
|
|
64
241
|
- A ``params_map`` keyword was added to ``make_model_image`` to allow
|
|
65
|
-
a custom mapping between model parameter names and
|
|
242
|
+
a custom mapping between model parameter names and column names in
|
|
66
243
|
the parameter table. [#1994]
|
|
67
244
|
|
|
68
245
|
- ``photutils.detection``
|
|
69
246
|
|
|
70
247
|
- The ``find_peaks`` ``border_width`` keyword can now accept two
|
|
71
|
-
values, indicating the border width along the
|
|
248
|
+
values, indicating the border width along the y and x edges,
|
|
72
249
|
respectively. [#1957]
|
|
73
250
|
|
|
74
251
|
- ``photutils.morphology``
|
|
@@ -95,7 +272,7 @@ Bug Fixes
|
|
|
95
272
|
- Fixed a bug to ensure that the dtype of the ``SegmentationImage``
|
|
96
273
|
``labels`` always matches the image dtype. [#1986]
|
|
97
274
|
|
|
98
|
-
- Fixed
|
|
275
|
+
- Fixed an issue with the source labels after source deblending when
|
|
99
276
|
using ``relabel=False``. [#1988]
|
|
100
277
|
|
|
101
278
|
API Changes
|
|
@@ -298,7 +475,7 @@ New Features
|
|
|
298
475
|
|
|
299
476
|
- Improved the accuracy of the progress bar in ``deblend_sources`` and
|
|
300
477
|
``SourceFinder`` when using multiprocessing. Also added the source
|
|
301
|
-
ID label number to the progress bar. [#1925, 1926]
|
|
478
|
+
ID label number to the progress bar. [#1925, #1926]
|
|
302
479
|
|
|
303
480
|
Bug Fixes
|
|
304
481
|
^^^^^^^^^
|
|
@@ -1,43 +1,13 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: photutils
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.3.0
|
|
4
4
|
Summary: An Astropy package for source detection and photometry
|
|
5
5
|
Author-email: Photutils Developers <astropy.team@gmail.com>
|
|
6
|
-
License:
|
|
7
|
-
All rights reserved.
|
|
8
|
-
|
|
9
|
-
Redistribution and use in source and binary forms, with or without
|
|
10
|
-
modification, are permitted provided that the following conditions are
|
|
11
|
-
met:
|
|
12
|
-
|
|
13
|
-
1. Redistributions of source code must retain the above copyright
|
|
14
|
-
notice, this list of conditions and the following disclaimer.
|
|
15
|
-
|
|
16
|
-
2. Redistributions in binary form must reproduce the above copyright
|
|
17
|
-
notice, this list of conditions and the following disclaimer in the
|
|
18
|
-
documentation and/or other materials provided with the distribution.
|
|
19
|
-
|
|
20
|
-
3. Neither the name of the copyright holder nor the names of its
|
|
21
|
-
contributors may be used to endorse or promote products derived from
|
|
22
|
-
this software without specific prior written permission.
|
|
23
|
-
|
|
24
|
-
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
25
|
-
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
26
|
-
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
|
27
|
-
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
|
28
|
-
HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
|
29
|
-
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
|
30
|
-
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
|
31
|
-
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
|
32
|
-
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
33
|
-
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
34
|
-
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
35
|
-
|
|
6
|
+
License-Expression: BSD-3-Clause
|
|
36
7
|
Project-URL: Homepage, https://github.com/astropy/photutils
|
|
37
8
|
Project-URL: Documentation, https://photutils.readthedocs.io/en/stable/
|
|
38
9
|
Keywords: astronomy,astrophysics,photometry,aperture,psf,source detection,background,segmentation,centroids,isophote,morphology,radial profiles
|
|
39
10
|
Classifier: Intended Audience :: Science/Research
|
|
40
|
-
Classifier: License :: OSI Approved :: BSD License
|
|
41
11
|
Classifier: Natural Language :: English
|
|
42
12
|
Classifier: Operating System :: OS Independent
|
|
43
13
|
Classifier: Programming Language :: Cython
|
|
@@ -47,26 +17,31 @@ Classifier: Topic :: Scientific/Engineering :: Astronomy
|
|
|
47
17
|
Requires-Python: >=3.11
|
|
48
18
|
Description-Content-Type: text/x-rst
|
|
49
19
|
License-File: LICENSE.rst
|
|
50
|
-
Requires-Dist: numpy>=1.
|
|
20
|
+
Requires-Dist: numpy>=1.25
|
|
51
21
|
Requires-Dist: astropy>=5.3
|
|
52
|
-
Requires-Dist: scipy>=1.
|
|
22
|
+
Requires-Dist: scipy>=1.11.1
|
|
53
23
|
Provides-Extra: all
|
|
54
|
-
Requires-Dist: matplotlib>=3.
|
|
24
|
+
Requires-Dist: matplotlib>=3.8; extra == "all"
|
|
55
25
|
Requires-Dist: regions>=0.9; extra == "all"
|
|
56
|
-
Requires-Dist: scikit-image>=0.
|
|
26
|
+
Requires-Dist: scikit-image>=0.21; extra == "all"
|
|
57
27
|
Requires-Dist: gwcs>=0.20; extra == "all"
|
|
58
|
-
Requires-Dist: bottleneck; extra == "all"
|
|
59
|
-
Requires-Dist: tqdm; extra == "all"
|
|
60
|
-
Requires-Dist: rasterio; extra == "all"
|
|
61
|
-
Requires-Dist: shapely; extra == "all"
|
|
28
|
+
Requires-Dist: bottleneck>=1.3.6; extra == "all"
|
|
29
|
+
Requires-Dist: tqdm>=4.65; extra == "all"
|
|
30
|
+
Requires-Dist: rasterio>=1.3.7; extra == "all"
|
|
31
|
+
Requires-Dist: shapely>=2.0.0; extra == "all"
|
|
62
32
|
Provides-Extra: test
|
|
63
33
|
Requires-Dist: pytest-astropy>=0.11; extra == "test"
|
|
64
34
|
Requires-Dist: pytest-xdist>=2.5.0; extra == "test"
|
|
35
|
+
Requires-Dist: tox>4.0; extra == "test"
|
|
65
36
|
Provides-Extra: docs
|
|
66
37
|
Requires-Dist: photutils[all]; extra == "docs"
|
|
67
38
|
Requires-Dist: sphinx; extra == "docs"
|
|
68
39
|
Requires-Dist: sphinx_design; extra == "docs"
|
|
69
40
|
Requires-Dist: sphinx-astropy[confv2]>=1.9.1; extra == "docs"
|
|
41
|
+
Provides-Extra: dev
|
|
42
|
+
Requires-Dist: photutils[docs,test]; extra == "dev"
|
|
43
|
+
Requires-Dist: pre-commit>4.0; extra == "dev"
|
|
44
|
+
Dynamic: license-file
|
|
70
45
|
|
|
71
46
|
=========
|
|
72
47
|
Photutils
|
|
@@ -81,7 +56,7 @@ and key functionality for detecting and performing photometry of
|
|
|
81
56
|
astronomical sources. Tools are provided for background estimation,
|
|
82
57
|
star finding, source detection and extraction, aperture photometry,
|
|
83
58
|
PSF photometry, image segmentation, centroids, radial profiles,
|
|
84
|
-
and elliptical isophote fitting. It is
|
|
59
|
+
and elliptical isophote fitting. It is a `coordinated package
|
|
85
60
|
<https://www.astropy.org/affiliated/index.html>`_ of `Astropy`_ and
|
|
86
61
|
integrates well with other Astropy packages, making it a powerful tool
|
|
87
62
|
for astronomical image analysis.
|
|
@@ -11,7 +11,7 @@ and key functionality for detecting and performing photometry of
|
|
|
11
11
|
astronomical sources. Tools are provided for background estimation,
|
|
12
12
|
star finding, source detection and extraction, aperture photometry,
|
|
13
13
|
PSF photometry, image segmentation, centroids, radial profiles,
|
|
14
|
-
and elliptical isophote fitting. It is
|
|
14
|
+
and elliptical isophote fitting. It is a `coordinated package
|
|
15
15
|
<https://www.astropy.org/affiliated/index.html>`_ of `Astropy`_ and
|
|
16
16
|
integrates well with other Astropy packages, making it a powerful tool
|
|
17
17
|
for astronomical image analysis.
|
|
@@ -100,18 +100,27 @@ dev = 'dev' in release
|
|
|
100
100
|
|
|
101
101
|
# -- Options for HTML output --------------------------------------------------
|
|
102
102
|
|
|
103
|
-
html_theme_options
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
}
|
|
114
|
-
|
|
103
|
+
html_theme_options = {
|
|
104
|
+
'header_links_before_dropdown': 6,
|
|
105
|
+
'collapse_navigation': True,
|
|
106
|
+
'navigation_depth': 2,
|
|
107
|
+
'show_nav_level': 2,
|
|
108
|
+
'navigation_with_keys': False,
|
|
109
|
+
'use_edit_page_button': False,
|
|
110
|
+
'logo': {
|
|
111
|
+
'image_light': 'photutils_logo_light_plain_path.svg',
|
|
112
|
+
'image_dark': 'photutils_logo_dark_plain_path.svg',
|
|
113
|
+
},
|
|
114
|
+
# alternate way to set the logo
|
|
115
|
+
# 'github_url': 'https://github.com/astropy/photutils',
|
|
116
|
+
'icon_links': [
|
|
117
|
+
{'name': 'GitHub',
|
|
118
|
+
'url': 'https://github.com/astropy/photutils',
|
|
119
|
+
'icon': 'fa-brands fa-github',
|
|
120
|
+
'type': 'fontawesome',
|
|
121
|
+
},
|
|
122
|
+
],
|
|
123
|
+
}
|
|
115
124
|
|
|
116
125
|
html_title = f'{project} {release}'
|
|
117
126
|
html_show_sourcelink = False
|