sunpy 7.0.2__tar.gz → 7.0.4__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.
- {sunpy-7.0.2 → sunpy-7.0.4}/.cruft.json +2 -2
- {sunpy-7.0.2 → sunpy-7.0.4}/CHANGELOG.rst +28 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/PKG-INFO +12 -31
- {sunpy-7.0.2 → sunpy-7.0.4}/_typos.toml +2 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/docs/conf.py +2 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/docs/tutorial/maps.rst +2 -1
- {sunpy-7.0.2 → sunpy-7.0.4}/docs/whatsnew/6.0.rst +1 -2
- {sunpy-7.0.2 → sunpy-7.0.4}/pyproject.toml +10 -6
- {sunpy-7.0.2 → sunpy-7.0.4}/pytest.ini +1 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/_version.py +3 -3
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/coordinates/tests/test_spice.py +2 -1
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/test/__init__.py +19 -8
- sunpy-7.0.4/sunpy/data/test/camera.npy +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/image/tests/test_transform.py +13 -6
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/image/transform.py +4 -4
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/io/ana.py +23 -34
- sunpy-7.0.4/sunpy/io/special/asdf/tests/__init__.py +3 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/io/tests/test_fits.py +15 -3
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/map/mapbase.py +2 -6
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/map/mapsequence.py +3 -3
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/map/sources/gong.py +3 -3
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/map/sources/tests/test_gong_magnetogram_source.py +10 -4
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/map/tests/test_map_factory.py +13 -8
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/map/tests/test_mapbase.py +2 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/map/tests/test_mapsequence.py +7 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/net/dataretriever/sources/adapt.py +45 -3
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/net/dataretriever/sources/lyra.py +6 -6
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/net/dataretriever/sources/tests/test_adapt.py +40 -10
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/net/dataretriever/sources/tests/test_aia_synopsis.py +4 -3
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/net/jsoc/attrs.py +30 -5
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/net/jsoc/tests/test_attr.py +29 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/net/tests/test_attr.py +1 -1
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/net/tests/test_fido.py +1 -1
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/net/vso/tests/test_vso.py +1 -1
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/physics/tests/test_differential_rotation.py +10 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/tests/figure_hashes_mpl_382_ft_261_astropy_702_animators_121.json +1 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/tests/figure_hashes_mpl_dev_ft_261_astropy_dev_animators_dev.json +2 -1
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/tests/helpers.py +15 -2
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/tests/self_test.py +1 -2
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/timeseries/tests/test_timeseriesbase.py +6 -6
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/util/tests/test_metadata.py +4 -4
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/util/tests/test_sysinfo.py +33 -35
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy.egg-info/PKG-INFO +12 -31
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy.egg-info/SOURCES.txt +1 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy.egg-info/requires.txt +7 -3
- sunpy-7.0.2/sunpy/visualization/tests/__init__.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/.coveragerc +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/.flake8 +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/.isort.cfg +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/.ruff.toml +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/CITATION.rst +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/LICENSE.rst +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/MANIFEST.in +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/README.rst +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/docs/Makefile +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/docs/citation.rst +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/docs/dev_guide/contents/backports.rst +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/docs/dev_guide/contents/ci_jobs.rst +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/docs/dev_guide/contents/code_standards.rst +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/docs/dev_guide/contents/conda_for_dependencies.rst +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/docs/dev_guide/contents/dependencies.rst +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/docs/dev_guide/contents/documentation.rst +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/docs/dev_guide/contents/example_gallery.rst +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/docs/dev_guide/contents/funding.rst +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/docs/dev_guide/contents/images/actions_check_pr.png +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/docs/dev_guide/contents/images/actions_summary_check.png +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/docs/dev_guide/contents/images/checks.png +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/docs/dev_guide/contents/images/checks_pr.png +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/docs/dev_guide/contents/logger.rst +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/docs/dev_guide/contents/maintainer_workflow.rst +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/docs/dev_guide/contents/newcomers.rst +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/docs/dev_guide/contents/pr_checklist.rst +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/docs/dev_guide/contents/pr_review_procedure.rst +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/docs/dev_guide/contents/public_api.rst +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/docs/dev_guide/contents/remote_data_manager.rst +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/docs/dev_guide/contents/tests.rst +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/docs/dev_guide/contents/units_quantities.rst +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/docs/dev_guide/index.rst +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/docs/how_to/coord_components.rst +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/docs/how_to/create_a_map.rst +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/docs/how_to/create_coords.rst +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/docs/how_to/create_custom_map.rst +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/docs/how_to/create_custom_timeseries.rst +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/docs/how_to/create_rectangle_on_map.rst +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/docs/how_to/fix_map_metadata.rst +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/docs/how_to/index.rst +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/docs/how_to/manipulate_grid_lines.rst +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/docs/how_to/observer_by_coordinate.rst +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/docs/how_to/parse_time.rst +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/docs/how_to/read_asdf_file.rst +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/docs/how_to/remote_data_manager.rst +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/docs/how_to/search_multiple_wavelengths.rst +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/docs/how_to/search_vso.rst +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/docs/how_to/transform_coords.rst +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/docs/index.rst +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/docs/make.bat +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/docs/nitpick-exceptions +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/docs/reference/bibliography.rst +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/docs/reference/coordinates/index.rst +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/docs/reference/customization.rst +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/docs/reference/data.rst +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/docs/reference/image.rst +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/docs/reference/index.rst +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/docs/reference/internal_api.rst +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/docs/reference/io.rst +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/docs/reference/known_issues.rst +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/docs/reference/map.rst +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/docs/reference/net.rst +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/docs/reference/physics.rst +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/docs/reference/ssw.rst +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/docs/reference/stability.rst +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/docs/reference/sun.rst +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/docs/reference/sunpy.rst +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/docs/reference/sunpy_stability.yaml +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/docs/reference/time.rst +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/docs/reference/timeseries.rst +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/docs/reference/troubleshooting.rst +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/docs/reference/util.rst +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/docs/reference/visualization.rst +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/docs/references.bib +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/docs/robots.txt +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/docs/topic_guide/coordinates/carrington.rst +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/docs/topic_guide/coordinates/index.rst +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/docs/topic_guide/coordinates/rotatedsunframe.rst +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/docs/topic_guide/coordinates/rsun.rst +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/docs/topic_guide/coordinates/velocities.rst +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/docs/topic_guide/coordinates/wcs.rst +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/docs/topic_guide/custom_map_rotate.rst +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/docs/topic_guide/deprecation.rst +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/docs/topic_guide/extending_fido.rst +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/docs/topic_guide/history_comments.rst +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/docs/topic_guide/index.rst +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/docs/topic_guide/installation.rst +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/docs/topic_guide/logger.rst +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/docs/topic_guide/new_map_class.rst +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/docs/topic_guide/rsun.rst +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/docs/topic_guide/scraper_migration.rst +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/docs/topic_guide/timeseries_metadata.rst +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/docs/tutorial/acquiring_data/hek.rst +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/docs/tutorial/acquiring_data/index.rst +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/docs/tutorial/acquiring_data/jsoc.rst +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/docs/tutorial/coordinates.rst +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/docs/tutorial/index.rst +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/docs/tutorial/installation.rst +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/docs/tutorial/time.rst +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/docs/tutorial/timeseries.rst +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/docs/tutorial/units.rst +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/docs/whatsnew/0.8.rst +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/docs/whatsnew/0.9.rst +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/docs/whatsnew/1.0.rst +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/docs/whatsnew/1.1-wispr.png +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/docs/whatsnew/1.1.rst +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/docs/whatsnew/2.0.rst +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/docs/whatsnew/2.1.rst +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/docs/whatsnew/3.0.rst +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/docs/whatsnew/3.1.rst +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/docs/whatsnew/4.0.rst +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/docs/whatsnew/4.1.rst +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/docs/whatsnew/5.0.rst +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/docs/whatsnew/5.1.rst +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/docs/whatsnew/6.1.rst +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/docs/whatsnew/7.0-punch.png +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/docs/whatsnew/7.0-suit.png +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/docs/whatsnew/7.0.rst +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/docs/whatsnew/changelog.rst +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/docs/whatsnew/index.rst +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/examples/README.txt +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/examples/acquiring_data/README.txt +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/examples/acquiring_data/downloading_cutouts.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/examples/acquiring_data/fido_metadata_queries.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/examples/acquiring_data/querying_and_loading_SHARP_data.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/examples/acquiring_data/querying_the_GOES_event_list.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/examples/acquiring_data/search_cdaweb.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/examples/computer_vision_techniques/README.txt +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/examples/computer_vision_techniques/finding_masking_bright_pixels.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/examples/computer_vision_techniques/loop_edge_enhance.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/examples/computer_vision_techniques/mask_disk.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/examples/computer_vision_techniques/off_limb_enhance.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/examples/differential_rotation/README.txt +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/examples/differential_rotation/comparing_rotation_models.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/examples/differential_rotation/differentially_rotated_coordinate.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/examples/differential_rotation/differentially_rotated_gridlines.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/examples/differential_rotation/reprojected_map.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/examples/map/README.txt +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/examples/map/brightness_pixel_location.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/examples/map/compare_rotation_results.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/examples/map/composite_map_AIA_HMI.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/examples/map/difference_images.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/examples/map/hmi_contours_wcsaxes.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/examples/map/image_bright_regions_gallery_example.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/examples/map/lasco_mask.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/examples/map/map_contouring.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/examples/map/map_data_histogram.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/examples/map/map_from_numpy_array.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/examples/map/map_metadata_modification.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/examples/map/map_resampling_and_superpixels.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/examples/map/map_rotation.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/examples/map/map_segment.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/examples/map/masking_hmi.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/examples/map/plot_frameless_image.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/examples/map/submaps_and_cropping.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/examples/map/track_active_region.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/examples/map_transformations/README.txt +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/examples/map_transformations/autoalign_aia_hmi.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/examples/map_transformations/projection_custom_origin.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/examples/map_transformations/reprojection_aia_euvi_mosaic.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/examples/map_transformations/reprojection_align_aia_hmi.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/examples/map_transformations/reprojection_auto_extent.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/examples/map_transformations/reprojection_carrington.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/examples/map_transformations/reprojection_different_observers.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/examples/map_transformations/reprojection_helioprojective_radial.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/examples/map_transformations/reprojection_spherical_screen.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/examples/map_transformations/upside_down_hmi.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/examples/plotting/AIA_HMI_composite.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/examples/plotting/README.txt +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/examples/plotting/adding_earth.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/examples/plotting/aia_example.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/examples/plotting/draw_wcs_extent.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/examples/plotting/fading_between_maps.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/examples/plotting/finding_local_peaks_in_solar_data.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/examples/plotting/finegrained_plot.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/examples/plotting/great_arc_example.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/examples/plotting/grid_plotting.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/examples/plotting/hmi_synoptic_maps.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/examples/plotting/lasco_overlay.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/examples/plotting/lat_lon_lines.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/examples/plotting/limb_plotting.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/examples/plotting/magnetogram_active_regions.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/examples/plotting/map_editcolormap.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/examples/plotting/masked_composite_plot.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/examples/plotting/offdisk_contours.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/examples/plotting/overplot_hek_polygon.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/examples/plotting/plot_equator_prime_meridian.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/examples/plotting/plot_rotated_rectangle.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/examples/plotting/plotting_blank_map.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/examples/plotting/quadrangle.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/examples/plotting/screen_blend_mode.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/examples/plotting/simple_differential_rotation.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/examples/plotting/solar_cycle_example.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/examples/plotting/sunpy_matplotlib_colormap.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/examples/plotting/three_map_composite.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/examples/plotting/wcsaxes_map_example.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/examples/plotting/wcsaxes_plotting_example.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/examples/plotting/xy_lims.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/examples/saving_and_loading_data/README.txt +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/examples/saving_and_loading_data/coordinates_in_asdf.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/examples/saving_and_loading_data/genericmap_in_asdf.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/examples/saving_and_loading_data/genericmap_in_fits.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/examples/saving_and_loading_data/load_adapt_fits_into_map.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/examples/showcase/README.txt +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/examples/showcase/eclipse_amount.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/examples/showcase/hmi_cutout.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/examples/showcase/los_simulation_box_intersection.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/examples/showcase/stereoscopic_3d.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/examples/showcase/where_is_stereo.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/examples/time_series/README.txt +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/examples/time_series/goes_hek_m25.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/examples/time_series/goes_xrs_example.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/examples/time_series/goes_xrs_nrt_data.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/examples/time_series/power_spectra_example.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/examples/time_series/timeseries_convolution_filter.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/examples/time_series/timeseries_example.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/examples/time_series/timeseries_peak_finding.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/examples/time_series/timeseriesmetadata_example.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/examples/units_and_coordinates/AIA_limb_STEREO.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/examples/units_and_coordinates/AltAz_Coordinate_transform.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/examples/units_and_coordinates/ParkerSolarProbe_trajectory.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/examples/units_and_coordinates/README.txt +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/examples/units_and_coordinates/SDO_to_STEREO_Coordinate_Conversion.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/examples/units_and_coordinates/STEREO_SECCHI_starfield.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/examples/units_and_coordinates/getting_lasco_observer_location.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/examples/units_and_coordinates/getting_observer_location.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/examples/units_and_coordinates/map_slit_extraction.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/examples/units_and_coordinates/north_offset_frame.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/examples/units_and_coordinates/planet_locations.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/examples/units_and_coordinates/radec_to_hpc_map.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/examples/units_and_coordinates/spice.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/examples/units_and_coordinates/venus_transit.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/licenses/ASTROPY.rst +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/licenses/GLUE.rst +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/licenses/README.rst +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/licenses/TOWNCRIER.rst +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/setup.cfg +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/setup.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/CITATION.rst +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/__init__.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/conftest.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/coordinates/__init__.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/coordinates/_transformations.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/coordinates/data/igrf13coeffs.txt +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/coordinates/ephemeris.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/coordinates/frameattributes.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/coordinates/frames.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/coordinates/metaframes.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/coordinates/offset_frame.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/coordinates/screens.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/coordinates/spice.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/coordinates/sun.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/coordinates/tests/__init__.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/coordinates/tests/conftest.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/coordinates/tests/helpers.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/coordinates/tests/strategies.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/coordinates/tests/test_ephemeris.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/coordinates/tests/test_frameattributes.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/coordinates/tests/test_frames.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/coordinates/tests/test_metaframes.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/coordinates/tests/test_offset_frame.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/coordinates/tests/test_sun.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/coordinates/tests/test_transformations.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/coordinates/tests/test_utils.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/coordinates/tests/test_wcs_utils.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/coordinates/transformations.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/coordinates/utils.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/coordinates/wcs_utils.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/README.rst +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/The_Blue_Marble_150px.png +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/__init__.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/_sample.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/data_manager/__init__.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/data_manager/cache.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/data_manager/downloader.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/data_manager/manager.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/data_manager/storage.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/data_manager/tests/__init__.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/data_manager/tests/conftest.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/data_manager/tests/db_testdata.csv +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/data_manager/tests/mocks.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/data_manager/tests/test_cache.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/data_manager/tests/test_downloader.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/data_manager/tests/test_manager.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/data_manager/tests/test_storage.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/sample.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/sunpyrc +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/test/2013_05_13__16_54_06_137__SOHO_LASCO_C3_white-light.jp2 +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/test/2013_06_24__17_31_30_84__SDO_AIA_AIA_193.jp2 +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/test/20181209_180305_kcor_l2.header +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/test/2022_04_01__00_00_45__SOLO-EUI-FSI_EUI_FSI_174.jp2 +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/test/2023_01_31__03_39_23_200__SDO_HMI_HMI_continuum.jp2 +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/test/EIT/efz20040301.000010_s.fits +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/test/EIT/efz20040301.010016_s.fits +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/test/EIT_header/SOHO_EIT_171_20070601T120013_L1.header +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/test/EIT_header/SOHO_EIT_195_20070601T121346_L1.header +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/test/EIT_header/SOHO_EIT_284_20070601T120607_L1.header +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/test/EIT_header/SOHO_EIT_304_20070601T121937_L1.header +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/test/EIT_header/efz20040301.000010_s.header +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/test/EIT_header/efz20040301.010016_s.header +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/test/EIT_header/efz20040301.020010_s.header +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/test/EIT_header/efz20040301.030011_s.header +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/test/EIT_header/efz20040301.040010_s.header +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/test/EIT_header/efz20040301.050010_s.header +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/test/EIT_header/efz20040301.060010_s.header +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/test/EIT_header/efz20040301.070014_s.header +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/test/EIT_header/efz20040301.080010_s.header +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/test/EIT_header/efz20040301.090010_s.header +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/test/EIT_header/efz20040301.100010_s.header +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/test/EIT_header/efz20040301.110010_s.header +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/test/EIT_header/efz20040301.120010_s.header +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/test/EVE_L0CS_DIODES_1m_truncated.txt +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/test/FGMG4_20110214_030443.7.header +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/test/HinodeSOT.header +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/test/HinodeXRT.header +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/test/SRS/19960106SRS.txt +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/test/SRS/19960430SRS.txt +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/test/SRS/19960513SRS.txt +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/test/SRS/20000922SRS.txt +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/test/SRS/20000927SRS.txt +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/test/SRS/20001001SRS.txt +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/test/SRS/20020624SRS.txt +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/test/SRS/20020628SRS.txt +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/test/SRS/20100621SRS.txt +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/test/SRS/20150101SRS.txt +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/test/SRS/20150306SRS.txt +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/test/SRS/20150906SRS.txt +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/test/SUT_T24_0847_000444_Lev1.0_2024-06-28T18.21.33.178_0971NB03.header +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/test/SWAP/resampled0_swap.header +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/test/SWAP/resampled1_swap.header +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/test/SWAP/resampled2_swap.header +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/test/SWAP/resampled3_swap.header +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/test/YohkohSXT.header +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/test/_generate_asdf_test.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/test/adapt.header +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/test/aia_171_level1.fits +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/test/aiamap_genericmap_1.0.0.asdf +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/test/aiamap_shift_genericmap_1.0.0.asdf +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/test/annotation_ppt.db +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/test/cor1_20090615_000500_s4c1A.header +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/test/dr_suvi-l2-ci195_g16_s20190403T093200Z_e20190403T093600Z_v1-0-0_rebinned.header +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/test/euvi_20090615_000900_n4euA_s.header +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/test/eve/eve_01.txt +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/test/eve/eve_02.txt +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/test/eve/eve_03.txt +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/test/eve/eve_04.txt +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/test/eve/eve_05.txt +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/test/eve_l1_esp_2011046_00_truncated.fits +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/test/gbm.fits +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/test/generated_sample.genx +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/test/go1520110607.fits +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/test/go1520120601.fits.gz +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/test/goes_13_leap_second.nc +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/test/gong_halpha.header +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/test/gong_magnetogram.header +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/test/gong_synoptic.header +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/test/gzip_fits_test.file +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/test/gzip_test.fit.gz +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/test/gzip_test.fits.gz +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/test/gzip_test.fts.gz +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/test/heliographic_phase_map.fits.gz +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/test/hi_20110910_114721_s7h2A.header +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/test/hmi_bharp_vlos_mag.header +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/test/hmi_cea_sharp_magnetogram.header +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/test/hmi_sharp_magnetogram.header +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/test/hmi_synoptic.header +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/test/hsi_image_20101016_191218.fits +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/test/hsi_obssumm_20120601_018_truncated.fits.gz +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/test/iris_l2_20130801_074720_4040000014_SJI_1400_t000.header +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/test/lasco_c2_25299383_s.header +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/test/lasco_c3.header +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/test/lyra_20150101-000000_lev3_std_truncated.fits.gz +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/test/mdi.fd_Ic.20101015_230100_TAI.data.header +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/test/mdi.fd_M_96m_lev182.20101015_191200_TAI.data.header +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/test/mdi_synoptic.header +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/test/not_actually_fits.fits +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/test/observed-solar-cycle-indices-truncated.json +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/test/predicted-solar-cycle-truncated.json +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/test/psp_fld_l2_mag_rtn_1min_20200104_v02.cdf +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/test/punch.header +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/test/resampled_hmi.fits +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/test/sci_gxrs-l2-irrad_g13_d20170901_truncated.nc +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/test/sci_gxrs-l2-irrad_g15_d20131028_truncated.nc +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/test/sci_xrsf-l2-avg1m_g15_d20190102_truncated.nc +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/test/sci_xrsf-l2-avg1m_g16_d20210101_truncated.nc +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/test/sci_xrsf-l2-flx1s_g17_d20201016_truncated.nc +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/test/seit_00171_fd_19961211_1900.header +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/test/solo_L1_eui-fsi304-image_20201021T145510206_V03.header +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/test/solo_L1_swa-pas-mom_20200706_V01.cdf +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/test/solo_L2_epd-ept-north-hcad_20200713_V02.cdf +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/test/swap_lv1_20140606_000113.header +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/test/tca110810_truncated +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/test/test_ana.fz +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/test/tsi20010130_025823_a2.header +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/test/waveunit/__init__.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/test/waveunit/medn_halph_fl_20050501_074655.header +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/test/waveunit/mq130812.084253.header +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/test/waveunit/na120701.091058.header +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/test/waveunit/svsm_e3100_S2_20110625_1856.header +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/tests/__init__.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/data/tests/test_sample.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/extern/README.rst +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/extern/__init__.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/extern/appdirs.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/extern/appdirs_license.txt +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/extern/distro.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/extern/distro_license.rst +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/extern/inflect.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/extern/inflect_license.txt +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/extern/parse.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/extern/parse_license.txt +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/image/__init__.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/image/resample.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/image/tests/__init__.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/image/tests/test_resample.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/io/__init__.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/io/_cdf.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/io/_file_tools.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/io/_fits.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/io/_header.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/io/_jp2.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/io/setup_package.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/io/special/__init__.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/io/special/asdf/__init__.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/io/special/asdf/converters/__init__.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/io/special/asdf/converters/frames.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/io/special/asdf/converters/generic_map.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/io/special/asdf/entry_points.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/io/special/asdf/resources/__init__.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/io/special/asdf/resources/manifests/sunpy-1.0.0.yaml +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/io/special/asdf/resources/manifests/sunpy-1.1.0.yaml +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/io/special/asdf/resources/manifests/sunpy-1.1.1.yaml +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/io/special/asdf/resources/manifests/sunpy-1.1.2.yaml +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/io/special/asdf/resources/manifests/sunpy-1.2.0.yaml +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/io/special/asdf/resources/manifests/sunpy-1.2.1.yaml +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/io/special/asdf/resources/schemas/generic_map-1.0.0.yaml +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/io/special/asdf/resources/schemas/generic_map-1.1.0.yaml +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/io/special/asdf/resources/schemas/generic_map-1.1.1.yaml +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/io/special/asdf/resources/schemas/generic_map-1.2.0.yaml +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/io/special/asdf/resources/schemas/geocentricearthequatorial-1.0.0.yaml +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/io/special/asdf/resources/schemas/geocentricearthequatorial-1.1.0.yaml +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/io/special/asdf/resources/schemas/geocentricsolarecliptic-1.0.0.yaml +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/io/special/asdf/resources/schemas/geocentricsolarecliptic-1.1.0.yaml +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/io/special/asdf/resources/schemas/geocentricsolarmagnetospheric-1.0.0.yaml +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/io/special/asdf/resources/schemas/geocentricsolarmagnetospheric-1.1.0.yaml +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/io/special/asdf/resources/schemas/geomagnetic-1.0.0.yaml +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/io/special/asdf/resources/schemas/geomagnetic-1.1.0.yaml +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/io/special/asdf/resources/schemas/heliocentric-1.0.0.yaml +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/io/special/asdf/resources/schemas/heliocentric-1.1.0.yaml +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/io/special/asdf/resources/schemas/heliocentricearthecliptic-1.0.0.yaml +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/io/special/asdf/resources/schemas/heliocentricearthecliptic-1.1.0.yaml +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/io/special/asdf/resources/schemas/heliocentricinertial-1.0.0.yaml +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/io/special/asdf/resources/schemas/heliocentricinertial-1.1.0.yaml +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/io/special/asdf/resources/schemas/heliographic_carrington-1.0.0.yaml +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/io/special/asdf/resources/schemas/heliographic_carrington-1.1.0.yaml +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/io/special/asdf/resources/schemas/heliographic_carrington-1.2.0.yaml +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/io/special/asdf/resources/schemas/heliographic_carrington-1.3.0.yaml +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/io/special/asdf/resources/schemas/heliographic_stonyhurst-1.0.0.yaml +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/io/special/asdf/resources/schemas/heliographic_stonyhurst-1.1.0.yaml +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/io/special/asdf/resources/schemas/heliographic_stonyhurst-1.2.0.yaml +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/io/special/asdf/resources/schemas/helioprojective-1.0.0.yaml +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/io/special/asdf/resources/schemas/helioprojective-1.1.0.yaml +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/io/special/asdf/resources/schemas/helioprojectiveradial-1.0.0.yaml +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/io/special/asdf/resources/schemas/helioprojectiveradial-1.1.0.yaml +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/io/special/asdf/resources/schemas/solarmagnetic-1.0.0.yaml +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/io/special/asdf/resources/schemas/solarmagnetic-1.1.0.yaml +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/io/special/asdf/tests/hgc_100.asdf +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/io/special/asdf/tests/test_coordinate_frames.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/io/special/asdf/tests/test_genericmap.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/io/special/asdf/tests/test_time.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/io/special/genx.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/io/special/srs.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/io/src/ana/_pyana.c +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/io/src/ana/anacompress.c +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/io/src/ana/anacompress.h +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/io/src/ana/anadecompress.c +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/io/src/ana/anadecompress.h +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/io/src/ana/anarw.c +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/io/src/ana/anarw.h +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/io/src/ana/types.h +0 -0
- {sunpy-7.0.2/sunpy/io/special/asdf → sunpy-7.0.4/sunpy/io}/tests/__init__.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/io/tests/generate_genx.pro +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/io/tests/test_ana.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/io/tests/test_cdf.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/io/tests/test_filetools.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/io/tests/test_genx.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/io/tests/test_jp2.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/io/tests/test_srs.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/map/__init__.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/map/compositemap.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/map/header_helper.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/map/map_factory.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/map/maputils.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/map/sources/__init__.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/map/sources/adapt.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/map/sources/hinode.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/map/sources/iris.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/map/sources/mlso.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/map/sources/proba2.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/map/sources/psp.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/map/sources/punch.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/map/sources/rhessi.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/map/sources/sdo.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/map/sources/soho.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/map/sources/solo.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/map/sources/source_type.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/map/sources/stereo.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/map/sources/suit.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/map/sources/suvi.py +0 -0
- {sunpy-7.0.2/sunpy/io → sunpy-7.0.4/sunpy/map/sources}/tests/__init__.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/map/sources/tests/helpers.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/map/sources/tests/test_adapt_source.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/map/sources/tests/test_aia_source.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/map/sources/tests/test_cor_source.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/map/sources/tests/test_eit_l1_source.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/map/sources/tests/test_eit_source.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/map/sources/tests/test_eui_source.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/map/sources/tests/test_euvi_source.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/map/sources/tests/test_gong_halpha_source.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/map/sources/tests/test_gong_synoptic_source.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/map/sources/tests/test_hi_source.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/map/sources/tests/test_hmi_source.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/map/sources/tests/test_hmi_synoptic_source.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/map/sources/tests/test_iris_source.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/map/sources/tests/test_kcor_source.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/map/sources/tests/test_lasco_source.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/map/sources/tests/test_mdi_source.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/map/sources/tests/test_punch_source.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/map/sources/tests/test_rhessi_source.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/map/sources/tests/test_sot_source.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/map/sources/tests/test_source_type.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/map/sources/tests/test_suit_source.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/map/sources/tests/test_suvi_source.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/map/sources/tests/test_swap_source.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/map/sources/tests/test_sxt_source.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/map/sources/tests/test_trace_source.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/map/sources/tests/test_wispr_source.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/map/sources/tests/test_xrt_source.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/map/sources/trace.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/map/sources/yohkoh.py +0 -0
- {sunpy-7.0.2/sunpy/map/sources → sunpy-7.0.4/sunpy/map}/tests/__init__.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/map/tests/conftest.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/map/tests/strategies.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/map/tests/test_compositemap.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/map/tests/test_header.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/map/tests/test_header_helper.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/map/tests/test_mapbase_dask.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/map/tests/test_maputils.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/map/tests/test_plotting.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/map/tests/test_reproject_to.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/net/__init__.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/net/_attrs.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/net/attr.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/net/attrs.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/net/base_client.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/net/cdaweb/__init__.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/net/cdaweb/attrs.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/net/cdaweb/cdaweb.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/net/cdaweb/data/attrs.json +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/net/cdaweb/helpers.py +0 -0
- {sunpy-7.0.2/sunpy/map/tests → sunpy-7.0.4/sunpy/net/cdaweb/test}/__init__.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/net/cdaweb/test/test_cdaweb.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/net/cdaweb/walker.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/net/dataretriever/__init__.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/net/dataretriever/attrs/__init__.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/net/dataretriever/attrs/adapt.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/net/dataretriever/attrs/goes.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/net/dataretriever/client.py +0 -0
- {sunpy-7.0.2/sunpy/net/cdaweb/test → sunpy-7.0.4/sunpy/net/dataretriever/sources}/__init__.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/net/dataretriever/sources/aia_synopsis.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/net/dataretriever/sources/eve.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/net/dataretriever/sources/fermi_gbm.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/net/dataretriever/sources/goes.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/net/dataretriever/sources/gong.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/net/dataretriever/sources/noaa.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/net/dataretriever/sources/norh.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/net/dataretriever/sources/rhessi.py +0 -0
- {sunpy-7.0.2/sunpy/net/dataretriever/sources → sunpy-7.0.4/sunpy/net/dataretriever/sources/tests}/__init__.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/net/dataretriever/sources/tests/test_eve.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/net/dataretriever/sources/tests/test_fermi_gbm.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/net/dataretriever/sources/tests/test_goes_suvi.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/net/dataretriever/sources/tests/test_goes_ud.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/net/dataretriever/sources/tests/test_gong_synoptic.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/net/dataretriever/sources/tests/test_lyra_ud.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/net/dataretriever/sources/tests/test_noaa.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/net/dataretriever/sources/tests/test_norh.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/net/dataretriever/sources/tests/test_rhessi.py +0 -0
- {sunpy-7.0.2/sunpy/net/dataretriever/sources → sunpy-7.0.4/sunpy/net/dataretriever}/tests/__init__.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/net/dataretriever/tests/test_client.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/net/fido_factory.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/net/hek/__init__.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/net/hek/attrs.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/net/hek/data/coord_properties.json +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/net/hek/data/unit_properties.json +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/net/hek/hek.py +0 -0
- {sunpy-7.0.2/sunpy/net/dataretriever → sunpy-7.0.4/sunpy/net/hek}/tests/__init__.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/net/hek/tests/test_hek.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/net/hek/tests/test_utils.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/net/hek/utils.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/net/hek2vso/__init__.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/net/hek2vso/hek2vso.py +0 -0
- {sunpy-7.0.2/sunpy/net/hek → sunpy-7.0.4/sunpy/net/hek2vso}/tests/__init__.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/net/hek2vso/tests/test_hek2vso.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/net/helio/__init__.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/net/helio/attrs.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/net/helio/chaincode.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/net/helio/hec.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/net/helio/parser.py +0 -0
- {sunpy-7.0.2/sunpy/net/hek2vso → sunpy-7.0.4/sunpy/net/helio}/tests/__init__.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/net/helio/tests/test_chaincode.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/net/helio/tests/test_helio.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/net/jsoc/__init__.py +0 -0
- {sunpy-7.0.2/sunpy/net/helio/tests → sunpy-7.0.4/sunpy/net/jsoc/data}/__init__.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/net/jsoc/data/attrs.json +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/net/jsoc/jsoc.py +0 -0
- {sunpy-7.0.2/sunpy/net/jsoc/data → sunpy-7.0.4/sunpy/net/jsoc/tests}/__init__.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/net/jsoc/tests/test_jsoc.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/net/scraper.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/net/scraper_utils.py +0 -0
- {sunpy-7.0.2/sunpy/net/jsoc → sunpy-7.0.4/sunpy/net}/tests/__init__.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/net/tests/strategies.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/net/tests/test_attr_walker.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/net/tests/test_attrs.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/net/tests/test_baseclient.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/net/tests/test_scraper.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/net/tests/test_scraper_utils.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/net/vso/__init__.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/net/vso/attrs.py +0 -0
- {sunpy-7.0.2/sunpy/net/tests → sunpy-7.0.4/sunpy/net/vso/data}/__init__.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/net/vso/data/attrs.json +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/net/vso/exceptions.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/net/vso/legacy_response.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/net/vso/table_response.py +0 -0
- {sunpy-7.0.2/sunpy/net/vso/data → sunpy-7.0.4/sunpy/net/vso/tests}/__init__.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/net/vso/tests/conftest.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/net/vso/tests/test_attrs.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/net/vso/vso.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/net/vso/zeep_plugins.py +0 -0
- {sunpy-7.0.2/sunpy/net/vso/tests → sunpy-7.0.4/sunpy/physics}/__init__.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/physics/differential_rotation.py +0 -0
- {sunpy-7.0.2/sunpy/physics → sunpy-7.0.4/sunpy/physics/tests}/__init__.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/physics/tests/reference/test_differential_rotation.txt +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/sun/__init__.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/sun/_constants.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/sun/constants.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/sun/models.py +0 -0
- {sunpy-7.0.2/sunpy/physics → sunpy-7.0.4/sunpy/sun}/tests/__init__.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/sun/tests/test_constants.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/sun/tests/test_models.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/tests/__init__.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/tests/mocks.py +0 -0
- {sunpy-7.0.2/sunpy/sun → sunpy-7.0.4/sunpy/tests}/tests/__init__.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/tests/tests/test_mocks.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/tests/tests/test_self_test.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/tests/tests/test_sunpy_data_filenames.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/time/__init__.py +0 -0
- {sunpy-7.0.2/sunpy/tests → sunpy-7.0.4/sunpy/time}/tests/__init__.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/time/tests/test_taiseconds.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/time/tests/test_time.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/time/tests/test_timerange.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/time/tests/test_utime.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/time/time.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/time/timeformats.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/time/timerange.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/timeseries/__init__.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/timeseries/conftest.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/timeseries/metadata.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/timeseries/sources/__init__.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/timeseries/sources/eve.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/timeseries/sources/fermi_gbm.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/timeseries/sources/goes.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/timeseries/sources/lyra.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/timeseries/sources/noaa.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/timeseries/sources/norh.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/timeseries/sources/rhessi.py +0 -0
- {sunpy-7.0.2/sunpy/time → sunpy-7.0.4/sunpy/timeseries/sources}/tests/__init__.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/timeseries/sources/tests/test_eve.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/timeseries/sources/tests/test_fermi_gbm.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/timeseries/sources/tests/test_goes.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/timeseries/sources/tests/test_lyra.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/timeseries/sources/tests/test_noaa.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/timeseries/sources/tests/test_norh.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/timeseries/sources/tests/test_rhessi.py +0 -0
- {sunpy-7.0.2/sunpy/timeseries/sources → sunpy-7.0.4/sunpy/timeseries}/tests/__init__.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/timeseries/tests/test_timeseries_factory.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/timeseries/tests/test_timeseriesmetadata.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/timeseries/timeseries_factory.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/timeseries/timeseriesbase.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/util/__init__.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/util/config.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/util/datatype_factory_base.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/util/decorators.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/util/exceptions.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/util/functools.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/util/io.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/util/logger.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/util/metadata.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/util/net.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/util/parfive_helpers.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/util/sphinx/__init__.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/util/sphinx/doctest.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/util/sphinx/generate.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/util/sysinfo.py +0 -0
- {sunpy-7.0.2/sunpy/timeseries → sunpy-7.0.4/sunpy/util}/tests/__init__.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/util/tests/test_config.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/util/tests/test_datatype_factory_base.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/util/tests/test_decorators.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/util/tests/test_functools.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/util/tests/test_logger.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/util/tests/test_net.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/util/tests/test_util.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/util/tests/test_xml.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/util/util.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/util/xml.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/version.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/visualization/__init__.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/visualization/animator/__init__.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/visualization/animator/mapsequenceanimator.py +0 -0
- {sunpy-7.0.2/sunpy/util → sunpy-7.0.4/sunpy/visualization/animator}/tests/__init__.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/visualization/animator/tests/test_mapsequenceanimator.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/visualization/colormaps/__init__.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/visualization/colormaps/cm.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/visualization/colormaps/color_tables.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/visualization/colormaps/data/README.rst +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/visualization/colormaps/data/eit_dark_blue.csv +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/visualization/colormaps/data/eit_dark_green.csv +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/visualization/colormaps/data/eit_dark_red.csv +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/visualization/colormaps/data/eit_yellow.csv +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/visualization/colormaps/data/euvi_171.csv +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/visualization/colormaps/data/euvi_195.csv +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/visualization/colormaps/data/euvi_284.csv +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/visualization/colormaps/data/euvi_304.csv +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/visualization/colormaps/data/grayscale.csv +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/visualization/colormaps/data/hi1.csv +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/visualization/colormaps/data/hi2.csv +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/visualization/colormaps/data/hmi_mag.csv +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/visualization/colormaps/data/idl_3.csv +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/visualization/colormaps/data/lasco_c2.csv +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/visualization/colormaps/data/lasco_c3.csv +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/visualization/colormaps/data/punch.csv +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/visualization/colormaps/data/rhessi.csv +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/visualization/colormaps/data/std_gamma_2.csv +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/visualization/colormaps/data/stereo_cor1.csv +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/visualization/colormaps/data/stereo_cor2.csv +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/visualization/colormaps/data/suit_bb01.csv +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/visualization/colormaps/data/suit_bb02.csv +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/visualization/colormaps/data/suit_bb03.csv +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/visualization/colormaps/data/suit_nb01.csv +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/visualization/colormaps/data/suit_nb02.csv +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/visualization/colormaps/data/suit_nb03.csv +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/visualization/colormaps/data/suit_nb04.csv +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/visualization/colormaps/data/suit_nb05.csv +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/visualization/colormaps/data/suit_nb06.csv +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/visualization/colormaps/data/suit_nb07.csv +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/visualization/colormaps/data/suit_nb08.csv +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/visualization/colormaps/data/trace_1216.csv +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/visualization/colormaps/data/trace_1550.csv +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/visualization/colormaps/data/trace_1600.csv +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/visualization/colormaps/data/trace_1700.csv +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/visualization/colormaps/data/trace_171.csv +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/visualization/colormaps/data/trace_195.csv +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/visualization/colormaps/data/trace_284.csv +0 -0
- {sunpy-7.0.2/sunpy/visualization/animator → sunpy-7.0.4/sunpy/visualization/colormaps}/tests/__init__.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/visualization/colormaps/tests/test_cm.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/visualization/drawing.py +0 -0
- {sunpy-7.0.2/sunpy/visualization/colormaps → sunpy-7.0.4/sunpy/visualization}/tests/__init__.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/visualization/tests/test_drawing.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/visualization/tests/test_visualization.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/visualization/visualization.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy/visualization/wcsaxes_compat.py +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy.egg-info/dependency_links.txt +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy.egg-info/entry_points.txt +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy.egg-info/not-zip-safe +0 -0
- {sunpy-7.0.2 → sunpy-7.0.4}/sunpy.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"template": "https://github.com/sunpy/package-template",
|
|
3
|
-
"commit": "
|
|
3
|
+
"commit": "7958151d0246956f1e95889e8e3fa5abc4a3a129",
|
|
4
4
|
"checkout": null,
|
|
5
5
|
"context": {
|
|
6
6
|
"cookiecutter": {
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
".github/workflows/sub_package_update.yml"
|
|
33
33
|
],
|
|
34
34
|
"_template": "https://github.com/sunpy/package-template",
|
|
35
|
-
"_commit": "
|
|
35
|
+
"_commit": "7958151d0246956f1e95889e8e3fa5abc4a3a129"
|
|
36
36
|
}
|
|
37
37
|
},
|
|
38
38
|
"directory": null
|
|
@@ -1,3 +1,31 @@
|
|
|
1
|
+
7.0.4 (2025-12-04)
|
|
2
|
+
==================
|
|
3
|
+
|
|
4
|
+
Bug Fixes
|
|
5
|
+
---------
|
|
6
|
+
|
|
7
|
+
- Fix `~sunpy.net.dataretriever.ADAPTClient` returning no results for ADAPT maps after October 2024.
|
|
8
|
+
The filename convention was changed on the NSO server. (`#8388 <https://github.com/sunpy/sunpy/pull/8388>`__)
|
|
9
|
+
- Fix unintended dependency of ``net`` module on ``map`` module due to `~sunpy.net.jsoc.attrs.Cutout`. (`#8442 <https://github.com/sunpy/sunpy/pull/8442>`__)
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
Internal Changes
|
|
13
|
+
----------------
|
|
14
|
+
|
|
15
|
+
- Stop using deprecated ``set_bad`` method on a matplotlib colormap. (`#8446 <https://github.com/sunpy/sunpy/pull/8446>`__)
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
7.0.3 (2025-10-17)
|
|
19
|
+
==================
|
|
20
|
+
|
|
21
|
+
Bug Fixes
|
|
22
|
+
---------
|
|
23
|
+
|
|
24
|
+
- Fixed a bug where the `~sunpy.net.jsoc.attrs.Cutout` class for requesting JSOC cutouts did not require the supplied coordinate to be in the `~sunpy.coordinates.Helioprojective` coordinate frame. (`#8346 <https://github.com/sunpy/sunpy/pull/8346>`__)
|
|
25
|
+
- For the `~sunpy.net.jsoc.attrs.Cutout` class for requesting JSOC cutouts, added protection to require the center of the cutout to be on the solar disk when tracking is enabled, due to confusing output from JSOC. (`#8346 <https://github.com/sunpy/sunpy/pull/8346>`__)
|
|
26
|
+
- Fix ``GONGMagnetogramMap`` for headers which have standard ``DATE-OBS`` keys vs ones which have split ``DATE-OBS`` & ``TIME-OBS``. (`#8347 <https://github.com/sunpy/sunpy/pull/8347>`__)
|
|
27
|
+
|
|
28
|
+
|
|
1
29
|
7.0.2 (2025-09-19)
|
|
2
30
|
==================
|
|
3
31
|
|
|
@@ -1,34 +1,9 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: sunpy
|
|
3
|
-
Version: 7.0.
|
|
3
|
+
Version: 7.0.4
|
|
4
4
|
Summary: SunPy core package: Python for Solar Physics
|
|
5
5
|
Author-email: The SunPy Community <sunpy@googlegroups.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
|
-
* Redistributions of source code must retain the above copyright
|
|
14
|
-
notice, this list of conditions and the following disclaimer.
|
|
15
|
-
|
|
16
|
-
* 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
|
-
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
21
|
-
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
22
|
-
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
|
23
|
-
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
|
24
|
-
HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
|
25
|
-
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
|
26
|
-
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
|
27
|
-
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
|
28
|
-
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
29
|
-
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
30
|
-
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
31
|
-
|
|
6
|
+
License-Expression: BSD-3-Clause
|
|
32
7
|
Project-URL: Homepage, https://sunpy.org
|
|
33
8
|
Project-URL: Source Code, https://github.com/sunpy/sunpy
|
|
34
9
|
Project-URL: Download, https://pypi.org/project/sunpy
|
|
@@ -39,7 +14,6 @@ Keywords: solar physics,solar,science,sun,wcs,coordinates
|
|
|
39
14
|
Platform: any
|
|
40
15
|
Classifier: Development Status :: 5 - Production/Stable
|
|
41
16
|
Classifier: Intended Audience :: Science/Research
|
|
42
|
-
Classifier: License :: OSI Approved :: BSD License
|
|
43
17
|
Classifier: Natural Language :: English
|
|
44
18
|
Classifier: Operating System :: OS Independent
|
|
45
19
|
Classifier: Programming Language :: Python
|
|
@@ -52,6 +26,10 @@ Provides: sunpy
|
|
|
52
26
|
Requires-Python: >=3.11
|
|
53
27
|
Description-Content-Type: text/x-rst
|
|
54
28
|
License-File: LICENSE.rst
|
|
29
|
+
License-File: licenses/ASTROPY.rst
|
|
30
|
+
License-File: licenses/GLUE.rst
|
|
31
|
+
License-File: licenses/README.rst
|
|
32
|
+
License-File: licenses/TOWNCRIER.rst
|
|
55
33
|
Requires-Dist: astropy>=6.1.0
|
|
56
34
|
Requires-Dist: numpy>=1.25.0
|
|
57
35
|
Requires-Dist: packaging>=23.2
|
|
@@ -107,16 +85,18 @@ Provides-Extra: tests-only
|
|
|
107
85
|
Requires-Dist: hvpy>=1.1.0; extra == "tests-only"
|
|
108
86
|
Requires-Dist: jplephem>=2.19; extra == "tests-only"
|
|
109
87
|
Requires-Dist: pytest-astropy>=0.11.0; extra == "tests-only"
|
|
110
|
-
Requires-Dist: pytest-asdf-plugin>=0.1.1; extra == "tests-only"
|
|
111
88
|
Requires-Dist: pytest-mpl>=0.17.0; extra == "tests-only"
|
|
112
89
|
Requires-Dist: pytest>=7.4.0; extra == "tests-only"
|
|
90
|
+
Provides-Extra: asdf-tests
|
|
91
|
+
Requires-Dist: sunpy[asdf]; extra == "asdf-tests"
|
|
92
|
+
Requires-Dist: pytest-asdf-plugin>=0.1.1; extra == "asdf-tests"
|
|
113
93
|
Provides-Extra: tests
|
|
114
|
-
Requires-Dist: sunpy[all,s3,tests-only]; extra == "tests"
|
|
94
|
+
Requires-Dist: sunpy[all,asdf-tests,s3,tests-only]; extra == "tests"
|
|
115
95
|
Provides-Extra: docs
|
|
96
|
+
Requires-Dist: sunpy[all]; extra == "docs"
|
|
116
97
|
Requires-Dist: sphinx>=7.1.0; extra == "docs"
|
|
117
98
|
Requires-Dist: sphinx-automodapi>=0.16.0; extra == "docs"
|
|
118
99
|
Requires-Dist: packaging>=23.2; extra == "docs"
|
|
119
|
-
Requires-Dist: sunpy[all]; extra == "docs"
|
|
120
100
|
Requires-Dist: hvpy>=1.1.0; extra == "docs"
|
|
121
101
|
Requires-Dist: ruamel.yaml>=0.18.0; extra == "docs"
|
|
122
102
|
Requires-Dist: sphinx-changelog>=1.5.0; extra == "docs"
|
|
@@ -130,6 +110,7 @@ Provides-Extra: docs-gallery
|
|
|
130
110
|
Requires-Dist: sunpy[docs]; extra == "docs-gallery"
|
|
131
111
|
Requires-Dist: astroquery>=0.4.6; extra == "docs-gallery"
|
|
132
112
|
Requires-Dist: jplephem>=2.19; extra == "docs-gallery"
|
|
113
|
+
Requires-Dist: pillow; extra == "docs-gallery"
|
|
133
114
|
Provides-Extra: dev
|
|
134
115
|
Requires-Dist: sunpy[docs,tests]; extra == "dev"
|
|
135
116
|
Dynamic: license-file
|
|
@@ -107,6 +107,8 @@ linkcheck_ignore = [
|
|
|
107
107
|
r"https://punch\.space\.swri\.edu",
|
|
108
108
|
# This is super slow to check
|
|
109
109
|
r"https://mathesaurus\.sourceforge\.net/idl-numpy\.html",
|
|
110
|
+
# You have to be logged into GitHub in order to project wide issue searches
|
|
111
|
+
r"https://github.com/issues?.*"
|
|
110
112
|
]
|
|
111
113
|
linkcheck_anchors = False
|
|
112
114
|
linkcheck_timeout = 120
|
|
@@ -215,13 +215,14 @@ But what if we wanted to know what pixel these physical coordinates correspond t
|
|
|
215
215
|
Each Map has an associated World Coordinate System, or WCS, which is derived from the underlying metadata and expressed as an `astropy.wcs.WCS` object.
|
|
216
216
|
The WCS is accessible as an attribute:
|
|
217
217
|
|
|
218
|
-
..
|
|
218
|
+
.. doctest-requires:: astropy>=7.2
|
|
219
219
|
|
|
220
220
|
>>> my_map.wcs # doctest: +REMOTE_DATA
|
|
221
221
|
WCS Keywords
|
|
222
222
|
<BLANKLINE>
|
|
223
223
|
Number of WCS axes: 2
|
|
224
224
|
CTYPE : 'HPLN-TAN' 'HPLT-TAN'
|
|
225
|
+
CUNIT : 'deg' 'deg'
|
|
225
226
|
CRVAL : 0.00089530541880571 0.00038493926472939
|
|
226
227
|
CRPIX : 512.5 512.5
|
|
227
228
|
PC1_1 PC1_2 : 0.99999706448085 0.0024230207763071
|
|
@@ -141,11 +141,10 @@ Method to compute the rotation matrix between two SPICE frames
|
|
|
141
141
|
|
|
142
142
|
A new function `~sunpy.coordinates.spice.get_rotation_matrix` has been implemented to compute the rotation matrix between two SPICE frames.
|
|
143
143
|
|
|
144
|
-
..
|
|
144
|
+
.. doctest-requires:: spiceypy
|
|
145
145
|
|
|
146
146
|
>>> from sunpy.coordinates.spice import get_rotation_matrix
|
|
147
147
|
>>> import astropy.units as u
|
|
148
|
-
|
|
149
148
|
>>> source_frame = "J2000"
|
|
150
149
|
>>> target_frame = "Galactic"
|
|
151
150
|
>>> from_time = '2001-01-01T00:00:00'
|
|
@@ -23,7 +23,8 @@ name = "sunpy"
|
|
|
23
23
|
description = "SunPy core package: Python for Solar Physics"
|
|
24
24
|
requires-python = ">=3.11"
|
|
25
25
|
readme = { file = "README.rst", content-type = "text/x-rst" }
|
|
26
|
-
license =
|
|
26
|
+
license-files = ["LICENSE.rst", "licenses/*.rst"]
|
|
27
|
+
license = "BSD-3-Clause"
|
|
27
28
|
authors = [
|
|
28
29
|
{ name = "The SunPy Community", email = "sunpy@googlegroups.com" },
|
|
29
30
|
]
|
|
@@ -41,7 +42,6 @@ keywords = ["solar physics", "solar", "science", "sun", "wcs", "coordinates"]
|
|
|
41
42
|
classifiers = [
|
|
42
43
|
"Development Status :: 5 - Production/Stable",
|
|
43
44
|
"Intended Audience :: Science/Research",
|
|
44
|
-
"License :: OSI Approved :: BSD License",
|
|
45
45
|
"Natural Language :: English",
|
|
46
46
|
"Operating System :: OS Independent",
|
|
47
47
|
"Programming Language :: Python",
|
|
@@ -113,18 +113,22 @@ tests-only = [
|
|
|
113
113
|
"hvpy>=1.1.0",
|
|
114
114
|
"jplephem>=2.19",
|
|
115
115
|
"pytest-astropy>=0.11.0",
|
|
116
|
-
"pytest-asdf-plugin>=0.1.1",
|
|
117
116
|
"pytest-mpl>=0.17.0",
|
|
118
117
|
"pytest>=7.4.0",
|
|
119
118
|
]
|
|
119
|
+
asdf-tests = [
|
|
120
|
+
"sunpy[asdf]",
|
|
121
|
+
# We can only install this plugin when we have the asdf extra installed
|
|
122
|
+
"pytest-asdf-plugin>=0.1.1",
|
|
123
|
+
]
|
|
120
124
|
tests = [
|
|
121
|
-
"sunpy[all,s3,tests-only]",
|
|
125
|
+
"sunpy[all,s3,tests-only,asdf-tests]",
|
|
122
126
|
]
|
|
123
127
|
docs = [
|
|
128
|
+
"sunpy[all]",
|
|
124
129
|
"sphinx>=7.1.0",
|
|
125
130
|
"sphinx-automodapi>=0.16.0",
|
|
126
131
|
"packaging>=23.2",
|
|
127
|
-
"sunpy[all]",
|
|
128
132
|
"hvpy>=1.1.0",
|
|
129
133
|
"ruamel.yaml>=0.18.0",
|
|
130
134
|
"sphinx-changelog>=1.5.0",
|
|
@@ -139,6 +143,7 @@ docs-gallery = [
|
|
|
139
143
|
"sunpy[docs]",
|
|
140
144
|
"astroquery>=0.4.6",
|
|
141
145
|
"jplephem>=2.19",
|
|
146
|
+
"pillow",
|
|
142
147
|
]
|
|
143
148
|
dev = ["sunpy[docs,tests]"]
|
|
144
149
|
|
|
@@ -155,7 +160,6 @@ zip-safe = false
|
|
|
155
160
|
include-package-data = true
|
|
156
161
|
platforms = ["any"]
|
|
157
162
|
provides = ["sunpy"]
|
|
158
|
-
license-files = ["LICENSE.rst"]
|
|
159
163
|
|
|
160
164
|
[tool.setuptools.packages.find]
|
|
161
165
|
include = ["sunpy*"]
|
|
@@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE
|
|
|
28
28
|
commit_id: COMMIT_ID
|
|
29
29
|
__commit_id__: COMMIT_ID
|
|
30
30
|
|
|
31
|
-
__version__ = version = '7.0.
|
|
32
|
-
__version_tuple__ = version_tuple = (7, 0,
|
|
31
|
+
__version__ = version = '7.0.4'
|
|
32
|
+
__version_tuple__ = version_tuple = (7, 0, 4)
|
|
33
33
|
|
|
34
|
-
__commit_id__ = commit_id = '
|
|
34
|
+
__commit_id__ = commit_id = 'gfaddbfccb'
|
|
@@ -104,17 +104,15 @@ def write_image_file_from_header_file(header_file, fits_directory):
|
|
|
104
104
|
return fits_file
|
|
105
105
|
|
|
106
106
|
|
|
107
|
-
def
|
|
107
|
+
def get_header_from_file(filename, package="sunpy.data.test"):
|
|
108
108
|
"""
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
The "image" will be random numbers with the correct shape
|
|
112
|
-
as specified by the header.
|
|
109
|
+
Return a Header from the test file.
|
|
113
110
|
"""
|
|
114
|
-
import sunpy.map
|
|
115
|
-
|
|
116
111
|
filepath = get_test_filepath(filename, package=package)
|
|
117
|
-
|
|
112
|
+
return _fits.format_comments_and_history(astropy.io.fits.Header.fromtextfile(filepath))
|
|
113
|
+
|
|
114
|
+
|
|
115
|
+
def get_dummy_map_from_header_obj(header):
|
|
118
116
|
data = np.random.rand(header['NAXIS2'], header['NAXIS1'])
|
|
119
117
|
if 'BITPIX' in header:
|
|
120
118
|
data = data.astype(astropy.io.fits.BITPIX2DTYPE[header['BITPIX']])
|
|
@@ -125,6 +123,19 @@ def get_dummy_map_from_header(filename, package="sunpy.data.test"):
|
|
|
125
123
|
return sunpy.map.Map(data, header)
|
|
126
124
|
|
|
127
125
|
|
|
126
|
+
def get_dummy_map_from_header(filename, package="sunpy.data.test"):
|
|
127
|
+
"""
|
|
128
|
+
Generate a dummy `~sunpy.map.Map` from header-only test data.
|
|
129
|
+
|
|
130
|
+
The "image" will be random numbers with the correct shape
|
|
131
|
+
as specified by the header.
|
|
132
|
+
"""
|
|
133
|
+
import sunpy.map
|
|
134
|
+
|
|
135
|
+
header = get_header_from_file(filename, package)
|
|
136
|
+
return get_dummy_map_from_header_obj(header)
|
|
137
|
+
|
|
138
|
+
|
|
128
139
|
def write_header_file_from_image_file(image_path, header_path, hdu=0, **kwargs):
|
|
129
140
|
"""
|
|
130
141
|
Convert a FITS file containing an image and a header
|
|
Binary file
|
|
@@ -1,23 +1,25 @@
|
|
|
1
1
|
import numpy as np
|
|
2
2
|
import pytest
|
|
3
|
-
import skimage.data as images
|
|
4
3
|
from matplotlib.figure import Figure
|
|
5
|
-
from skimage import transform as tf
|
|
6
4
|
|
|
7
5
|
from astropy.coordinates.matrix_utilities import rotation_matrix
|
|
8
6
|
|
|
7
|
+
from sunpy.data.test import get_test_filepath
|
|
9
8
|
from sunpy.image.transform import _rotation_registry, affine_transform
|
|
10
|
-
from sunpy.tests.helpers import figure_test, skip_windows
|
|
9
|
+
from sunpy.tests.helpers import figure_test, skip_opencv, skip_skimage, skip_windows
|
|
11
10
|
from sunpy.util import SunpyUserWarning
|
|
12
11
|
|
|
12
|
+
_methods_to_marks = {"scikit-image": skip_skimage, "opencv": skip_opencv}
|
|
13
|
+
_rotation_registry_params = [pytest.param(meth, marks=_methods_to_marks.get(meth, [])) for meth in _rotation_registry]
|
|
14
|
+
|
|
13
15
|
# Tolerance for tests
|
|
14
16
|
RTOL = 1.0e-10
|
|
15
17
|
|
|
16
18
|
|
|
17
19
|
@pytest.fixture
|
|
18
20
|
def original():
|
|
19
|
-
|
|
20
|
-
return
|
|
21
|
+
filepath = get_test_filepath("camera.npy")
|
|
22
|
+
return np.load(filepath).astype('float')
|
|
21
23
|
|
|
22
24
|
|
|
23
25
|
@pytest.fixture
|
|
@@ -85,6 +87,7 @@ def test_rotation(original, angle, k):
|
|
|
85
87
|
@pytest.mark.parametrize(('angle', 'k'), [(90.0, 1), (-90.0, -1), (-270.0, 1),
|
|
86
88
|
(-90.0, 3), (360.0, 0), (-360.0, 0)])
|
|
87
89
|
def test_skimage_rotation(original, angle, k):
|
|
90
|
+
pytest.importorskip("skimage")
|
|
88
91
|
# Test rotation against expected outcome
|
|
89
92
|
angle = np.radians(angle)
|
|
90
93
|
c = np.round(np.cos(angle))
|
|
@@ -133,6 +136,7 @@ def test_shift(original, dx, dy):
|
|
|
133
136
|
|
|
134
137
|
@pytest.mark.parametrize("scale_factor", [0.25, 0.5, 0.75, 1.0, 1.25, 1.5])
|
|
135
138
|
def test_scale(original, scale_factor):
|
|
139
|
+
tf = pytest.importorskip("skimage.transform")
|
|
136
140
|
# No rotation for all scaling tests.
|
|
137
141
|
rmatrix = np.array([[1.0, 0.0], [0.0, 1.0]])
|
|
138
142
|
|
|
@@ -163,6 +167,7 @@ def test_all(original, angle, dx, dy, scale_factor):
|
|
|
163
167
|
Tests to make sure that combinations of scaling, shifting and rotation
|
|
164
168
|
produce the expected output.
|
|
165
169
|
"""
|
|
170
|
+
tf = pytest.importorskip("skimage.transform")
|
|
166
171
|
k = int(angle / 90)
|
|
167
172
|
angle = np.radians(angle)
|
|
168
173
|
image_center = np.array(original.shape) / 2.0 - 0.5
|
|
@@ -216,6 +221,7 @@ def test_flat(identity):
|
|
|
216
221
|
|
|
217
222
|
|
|
218
223
|
def test_nan_skimage(identity):
|
|
224
|
+
pytest.importorskip("skimage")
|
|
219
225
|
# Test preservation of NaN values for scikit-image rotation
|
|
220
226
|
in_arr = np.array([[np.nan, 0]])
|
|
221
227
|
out_arr = affine_transform(in_arr, rmatrix=identity, order=0, method='scikit-image')
|
|
@@ -230,6 +236,7 @@ def test_nan_scipy(identity):
|
|
|
230
236
|
|
|
231
237
|
|
|
232
238
|
def test_int(identity):
|
|
239
|
+
pytest.importorskip("skimage")
|
|
233
240
|
# Test casting of integer array to float array
|
|
234
241
|
in_arr = np.array([[100]], dtype=int)
|
|
235
242
|
with pytest.warns(SunpyUserWarning, match='Integer input data has been cast to float64'):
|
|
@@ -331,7 +338,7 @@ def test_nans(rot30):
|
|
|
331
338
|
|
|
332
339
|
|
|
333
340
|
@pytest.mark.filterwarnings("ignore:.*bug in the implementation of scikit-image")
|
|
334
|
-
@pytest.mark.parametrize('method',
|
|
341
|
+
@pytest.mark.parametrize('method', _rotation_registry_params)
|
|
335
342
|
@pytest.mark.parametrize('order', range(6))
|
|
336
343
|
def test_endian(method, order, rot30):
|
|
337
344
|
if order not in _rotation_registry[method].allowed_orders:
|
|
@@ -322,8 +322,8 @@ def _rotation_skimage(image, matrix, shift, order, missing, clip):
|
|
|
322
322
|
"""
|
|
323
323
|
try:
|
|
324
324
|
import skimage.transform
|
|
325
|
-
except ImportError:
|
|
326
|
-
raise ImportError("The scikit-image package is required to use this rotation method.")
|
|
325
|
+
except ImportError as e:
|
|
326
|
+
raise ImportError("The scikit-image package is required to use this rotation method.") from e
|
|
327
327
|
|
|
328
328
|
# Make the rotation matrix 3x3 to include translation of the image
|
|
329
329
|
skmatrix = np.zeros((3, 3))
|
|
@@ -384,8 +384,8 @@ def _rotation_cv2(image, matrix, shift, order, missing, clip):
|
|
|
384
384
|
"""
|
|
385
385
|
try:
|
|
386
386
|
import cv2
|
|
387
|
-
except ImportError:
|
|
388
|
-
raise ImportError("The opencv-python package is required to use this rotation method.")
|
|
387
|
+
except ImportError as e:
|
|
388
|
+
raise ImportError("The opencv-python package is required to use this rotation method.") from e
|
|
389
389
|
|
|
390
390
|
_CV_ORDER_FLAGS = {
|
|
391
391
|
0: cv2.INTER_NEAREST,
|
|
@@ -11,6 +11,7 @@ This is a modified version of `pyana <https://github.com/tvwerkhoven/pyana>`__.
|
|
|
11
11
|
See the installation guide for more info.
|
|
12
12
|
"""
|
|
13
13
|
import os
|
|
14
|
+
from functools import wraps
|
|
14
15
|
|
|
15
16
|
from sunpy.io._header import FileHeader
|
|
16
17
|
from sunpy.util.decorators import deprecated
|
|
@@ -21,11 +22,6 @@ try:
|
|
|
21
22
|
except ImportError:
|
|
22
23
|
_pyana = None
|
|
23
24
|
|
|
24
|
-
ANA_NOT_INSTALLED = (
|
|
25
|
-
"C extension for ANA is missing. For more details see: "
|
|
26
|
-
"https://docs.sunpy.org/en/stable/installation.html#installing-without-conda"
|
|
27
|
-
)
|
|
28
|
-
|
|
29
25
|
ANA_DEPRECATION_MESSAGE = (
|
|
30
26
|
"The ANA reader may be removed in a future version of sunpy, "
|
|
31
27
|
"please comment here if you are using this code: "
|
|
@@ -35,7 +31,22 @@ ANA_DEPRECATION_MESSAGE = (
|
|
|
35
31
|
__all__ = ['read', 'get_header', 'write']
|
|
36
32
|
|
|
37
33
|
|
|
34
|
+
def check_ana_installed(func):
|
|
35
|
+
ana_not_installed = (
|
|
36
|
+
"C extension for ANA is missing. For more details see: "
|
|
37
|
+
"https://docs.sunpy.org/en/stable/installation.html#installing-without-conda"
|
|
38
|
+
)
|
|
39
|
+
@wraps(func)
|
|
40
|
+
def ana_installed_wrapper(*args, **kwargs):
|
|
41
|
+
if _pyana is None:
|
|
42
|
+
raise ImportError(ana_not_installed)
|
|
43
|
+
return func(*args, **kwargs)
|
|
44
|
+
|
|
45
|
+
return ana_installed_wrapper
|
|
46
|
+
|
|
47
|
+
|
|
38
48
|
@deprecated(since="6.0", message=ANA_DEPRECATION_MESSAGE)
|
|
49
|
+
@check_ana_installed
|
|
39
50
|
def read(filename, debug=False, **kwargs):
|
|
40
51
|
"""
|
|
41
52
|
Loads an ANA file and returns the data and a header in a list of (data,
|
|
@@ -48,28 +59,21 @@ def read(filename, debug=False, **kwargs):
|
|
|
48
59
|
debug : `bool`, optional
|
|
49
60
|
Prints verbose debug information.
|
|
50
61
|
**kwargs : `dict`
|
|
51
|
-
Unused.
|
|
62
|
+
Unused, provided for compatibility with the unified IO layer.
|
|
52
63
|
|
|
53
64
|
Returns
|
|
54
65
|
-------
|
|
55
66
|
`list`
|
|
56
67
|
A list of (data, header) tuples
|
|
57
|
-
|
|
58
|
-
Examples
|
|
59
|
-
--------
|
|
60
|
-
>>> data = sunpy.io.ana.read(filename) # doctest: +SKIP
|
|
61
68
|
"""
|
|
62
69
|
if not os.path.isfile(filename):
|
|
63
|
-
raise OSError("File does not exist!")
|
|
64
|
-
|
|
65
|
-
if _pyana is None:
|
|
66
|
-
raise ImportError(ANA_NOT_INSTALLED)
|
|
67
|
-
|
|
70
|
+
raise OSError(f"File {filename} does not exist!")
|
|
68
71
|
data = _pyana.fzread(filename, debug)
|
|
69
72
|
return [HDPair(data['data'], FileHeader(data['header']))]
|
|
70
73
|
|
|
71
74
|
|
|
72
75
|
@deprecated(since="6.0", message=ANA_DEPRECATION_MESSAGE)
|
|
76
|
+
@check_ana_installed
|
|
73
77
|
def get_header(filename, debug=False):
|
|
74
78
|
"""
|
|
75
79
|
Loads an ANA file and only return the header consisting of the dimensions,
|
|
@@ -87,20 +91,14 @@ def get_header(filename, debug=False):
|
|
|
87
91
|
-------
|
|
88
92
|
`list`
|
|
89
93
|
A list of `~sunpy.io._header.FileHeader` headers.
|
|
90
|
-
|
|
91
|
-
Examples
|
|
92
|
-
--------
|
|
93
|
-
>>> header = sunpy.io.ana.get_header(filename) # doctest: +SKIP
|
|
94
94
|
"""
|
|
95
|
-
if _pyana is None:
|
|
96
|
-
raise ImportError(ANA_NOT_INSTALLED)
|
|
97
|
-
|
|
98
95
|
data = _pyana.fzread(filename, debug)
|
|
99
96
|
return [FileHeader(data['header'])]
|
|
100
97
|
|
|
101
98
|
|
|
102
99
|
@deprecated(since="6.0", message=ANA_DEPRECATION_MESSAGE)
|
|
103
|
-
|
|
100
|
+
@check_ana_installed
|
|
101
|
+
def write(filename, data, comments=None, compress=True, debug=False):
|
|
104
102
|
"""
|
|
105
103
|
Saves a 2D `numpy.array` as an ANA file and returns the bytes written or
|
|
106
104
|
``NULL``.
|
|
@@ -122,15 +120,6 @@ def write(filename, data, comments=False, compress=True, debug=False):
|
|
|
122
120
|
-------
|
|
123
121
|
`str`
|
|
124
122
|
A new ANA compressed archive containing the data and header.
|
|
125
|
-
|
|
126
|
-
Examples
|
|
127
|
-
--------
|
|
128
|
-
>>> written = sunpy.io.ana.write(filename, data, comments=False, compress=True) # doctest: +SKIP
|
|
129
123
|
"""
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
if comments:
|
|
134
|
-
return _pyana.fzwrite(filename, data, int(compress), comments, debug)
|
|
135
|
-
else:
|
|
136
|
-
return _pyana.fzwrite(filename, data, int(compress), '', debug)
|
|
124
|
+
comments = comments or ""
|
|
125
|
+
return _pyana.fzwrite(filename, data, int(compress), comments, debug)
|
|
@@ -178,12 +178,24 @@ def test_warn_longkey():
|
|
|
178
178
|
|
|
179
179
|
|
|
180
180
|
def test_read_memmap():
|
|
181
|
+
# This function is a work around for astropy 7.1 vs 7.2
|
|
182
|
+
# In 7.2 there's an extra view on the array returned
|
|
183
|
+
def get_bottom_base(arr):
|
|
184
|
+
if hasattr(arr.base, "base"):
|
|
185
|
+
return get_bottom_base(arr.base)
|
|
186
|
+
return arr.base
|
|
187
|
+
|
|
181
188
|
data, _ = _fits.read(TEST_AIA_IMAGE, memmap=True)[0]
|
|
182
|
-
|
|
183
|
-
|
|
189
|
+
base = get_bottom_base(data)
|
|
190
|
+
|
|
191
|
+
# When we are astropy 7.2+ this should be data.base.base
|
|
192
|
+
assert base is not None
|
|
193
|
+
assert isinstance(base, mmap.mmap)
|
|
184
194
|
|
|
185
195
|
data, _ = _fits.read(TEST_AIA_IMAGE, memmap=False)[0]
|
|
186
|
-
|
|
196
|
+
base = get_bottom_base(data)
|
|
197
|
+
# When we are astropy 7.2+ this should be data.base.base
|
|
198
|
+
assert base is None
|
|
187
199
|
|
|
188
200
|
|
|
189
201
|
def test_merge_multiple_comment_history_entries():
|
|
@@ -383,11 +383,7 @@ class GenericMap(NDData):
|
|
|
383
383
|
text_list.append(f"{count_inf} infinite")
|
|
384
384
|
bad_pixel_text += ", ".join(text_list)
|
|
385
385
|
|
|
386
|
-
|
|
387
|
-
# Make a copy of the colormap to avoid modifying the matplotlib instance when
|
|
388
|
-
# doing set_bad() (copy not needed when min mpl is 3.5, as already a copy)
|
|
389
|
-
cmap = copy.copy(matplotlib.colormaps['gray'])
|
|
390
|
-
cmap.set_bad(color='red')
|
|
386
|
+
cmap = matplotlib.colormaps['gray'].with_extremes(bad='red')
|
|
391
387
|
norm = ImageNormalize(stretch=HistEqStretch(finite_data))
|
|
392
388
|
|
|
393
389
|
# Plot the image in pixel space
|
|
@@ -994,7 +990,7 @@ class GenericMap(NDData):
|
|
|
994
990
|
|
|
995
991
|
This time is the "canonical" way to refer to an observation, which is commonly
|
|
996
992
|
the start of the observation, but can be a different time. In comparison, the
|
|
997
|
-
`.GenericMap.date_start` property is
|
|
993
|
+
`.GenericMap.date_start` property is unambiguously the start of the observation.
|
|
998
994
|
|
|
999
995
|
The observation time is determined using this order of preference:
|
|
1000
996
|
|
|
@@ -343,8 +343,8 @@ class MapSequence:
|
|
|
343
343
|
removes = []
|
|
344
344
|
|
|
345
345
|
# Normal plot
|
|
346
|
-
def annotate_frame(i):
|
|
347
|
-
axes.set_title(f"{self[i].name}")
|
|
346
|
+
def annotate_frame(i, title=None):
|
|
347
|
+
axes.set_title(f"{self[i].name}" if title is None else title)
|
|
348
348
|
axes.set_xlabel(axis_labels_from_ctype(self[i].coordinate_system[0],
|
|
349
349
|
self[i].spatial_units[0]))
|
|
350
350
|
axes.set_ylabel(axis_labels_from_ctype(self[i].coordinate_system[1],
|
|
@@ -381,7 +381,7 @@ class MapSequence:
|
|
|
381
381
|
wcsaxes_compat.default_wcs_grid(axes)
|
|
382
382
|
|
|
383
383
|
if annotate:
|
|
384
|
-
annotate_frame(i)
|
|
384
|
+
annotate_frame(i, title=kwargs.get('title'))
|
|
385
385
|
removes += list(plot_function(fig, axes, ani_data[i]))
|
|
386
386
|
|
|
387
387
|
ani = matplotlib.animation.FuncAnimation(fig, updatefig,
|
|
@@ -185,14 +185,14 @@ class GONGMagnetogramMap(GenericMap):
|
|
|
185
185
|
# Time in header is GPS and there no GPS scale in astropy so parse as TAI and add offset
|
|
186
186
|
# https://gssc.esa.int/navipedia/index.php/Transformations_between_Time_Systems#GNSS_–_TAI
|
|
187
187
|
date_obs = (parse_time(date_obs_str, scale='tai') + 19 *u.s).utc
|
|
188
|
-
return date_obs or super().date
|
|
188
|
+
return parse_time(date_obs) or super().date
|
|
189
189
|
|
|
190
190
|
def _set_date(self, date):
|
|
191
|
-
date = parse_time(date).tai - 19*u.s
|
|
192
191
|
if 'time-obs' in self.meta:
|
|
192
|
+
date = parse_time(date).tai - 19*u.s
|
|
193
193
|
self.meta['date-obs'], self.meta['time-obs'] = date.isot.split('T')
|
|
194
194
|
else:
|
|
195
|
-
|
|
195
|
+
super()._set_date(date)
|
|
196
196
|
|
|
197
197
|
@property
|
|
198
198
|
def reference_date(self):
|
|
@@ -2,14 +2,20 @@ import pytest
|
|
|
2
2
|
|
|
3
3
|
import astropy.units as u
|
|
4
4
|
|
|
5
|
-
from sunpy.data.test import
|
|
5
|
+
from sunpy.data.test import get_dummy_map_from_header_obj, get_header_from_file, get_test_filepath
|
|
6
6
|
from sunpy.map.sources.gong import GONGMagnetogramMap
|
|
7
|
+
from sunpy.time import parse_time
|
|
7
8
|
from .helpers import _test_private_date_setters
|
|
8
9
|
|
|
9
10
|
|
|
10
|
-
@pytest.fixture
|
|
11
|
-
def gong_magnetogram():
|
|
12
|
-
|
|
11
|
+
@pytest.fixture(params=["full-date-obs", "with-time-obs"])
|
|
12
|
+
def gong_magnetogram(request):
|
|
13
|
+
header = get_header_from_file(get_test_filepath('gong_magnetogram.header'))
|
|
14
|
+
if request.param == "full-date-obs":
|
|
15
|
+
time_obs = header.pop("TIME-OBS")
|
|
16
|
+
date_obs = (parse_time(f"{header['DATE-OBS']} {time_obs}", scale='tai') + 19 *u.s).utc
|
|
17
|
+
header["DATE-OBS"] = date_obs
|
|
18
|
+
return get_dummy_map_from_header_obj(header)
|
|
13
19
|
|
|
14
20
|
|
|
15
21
|
def test_fitstoGONGSynoptic(gong_magnetogram):
|