pyuvdata 3.2.4__tar.gz → 3.2.6__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.
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/.circleci/config.yml +31 -19
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/.github/workflows/macosx_windows_ci.yaml +1 -1
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/.github/workflows/numba_test.yaml +2 -8
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/.github/workflows/publish-to-test-pypi.yaml +7 -3
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/.github/workflows/warning_test.yaml +17 -9
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/.pre-commit-config.yaml +2 -2
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/CHANGELOG.md +35 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/PKG-INFO +3 -2
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/ci/azure-piplines.yml +20 -13
- pyuvdata-3.2.6/docs/Images/hera_efield_phase.png +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/pyproject.toml +3 -1
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/src/pyuvdata/analytic_beam.py +7 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/src/pyuvdata/parameter.py +1 -1
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/src/pyuvdata/utils/array_collapse.py +15 -1
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/src/pyuvdata/utils/coordinates.c +8571 -8809
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/src/pyuvdata/utils/phasing.c +8310 -8396
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/src/pyuvdata/utils/plotting.py +281 -125
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/src/pyuvdata/utils/pol.py +1 -1
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/src/pyuvdata/utils/uvcalibrate.py +75 -54
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/src/pyuvdata/uvbeam/beamfits.py +29 -8
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/src/pyuvdata/uvbeam/uvbeam.c +8321 -8411
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/src/pyuvdata/uvbeam/uvbeam.py +9 -2
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/src/pyuvdata/uvcal/ms_cal.py +3 -1
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/src/pyuvdata/uvdata/corr_fits.c +8614 -8792
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/src/pyuvdata/uvdata/mir_meta_data.py +2 -2
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/src/pyuvdata/uvdata/mir_parser.py +13 -4
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/src/pyuvdata/uvdata/miriad.py +5 -5
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/src/pyuvdata/uvdata/ms.py +3 -1
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/src/pyuvdata/uvdata/mwa_corr_fits.py +47 -5
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/src/pyuvdata/uvdata/src/miriad_wrap.cpp +7536 -7693
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/src/pyuvdata/uvdata/uvdata.py +31 -12
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/src/pyuvdata/uvdata/uvfits.py +132 -100
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/src/pyuvdata.egg-info/PKG-INFO +3 -2
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/src/pyuvdata.egg-info/SOURCES.txt +1 -1
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/src/pyuvdata.egg-info/requires.txt +6 -1
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/tests/conftest.py +1 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/tests/test_analytic_beam.py +26 -7
- pyuvdata-3.2.6/tests/utils/test_plotting.py +82 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/tests/utils/test_uvcalibrate.py +80 -33
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/tests/uvbeam/test_beamfits.py +53 -2
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/tests/uvbeam/test_uvbeam.py +27 -9
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/tests/uvcal/test_ms_cal.py +38 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/tests/uvdata/test_miriad.py +1 -11
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/tests/uvdata/test_ms.py +34 -2
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/tests/uvdata/test_mwa_corr_fits.py +51 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/tests/uvdata/test_uvdata.py +4 -1
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/tests/uvdata/test_uvh5.py +1 -1
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/tests/uvflag/test_uvflag.py +9 -1
- pyuvdata-3.2.4/ci/_activate_current_env.sh +0 -11
- pyuvdata-3.2.4/docs/Images/hera_efield_phase.png +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/.codecov.yml +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/.coveragerc +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/.github/CITATION.cff +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/.github/CONTRIBUTING.md +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/.gitignore +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/.readthedocs.yml +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/CODE_OF_CONDUCT.md +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/LICENSE +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/README.md +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/ci/pyuvdata_min_deps_tests.yml +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/ci/pyuvdata_min_versions_tests.yml +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/ci/pyuvdata_tests.yml +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/ci/pyuvdata_tests_mac_arm.yml +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/ci/pyuvdata_tests_windows.yml +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/ci/test_requirements.txt +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/docs/Images/abs_gains.png +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/docs/Images/airy_beam_100MHz.png +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/docs/Images/airy_beam_200MHz.png +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/docs/Images/amplitude_waterfall.png +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/docs/Images/amplitude_waterfall_spw0.png +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/docs/Images/beam_coordinate_figure.png +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/docs/Images/dipole_mwa_power.png +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/docs/Images/efield_power_beam_cut.png +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/docs/Images/hera_efield.png +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/docs/Images/hera_efield_zoom.png +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/docs/Images/hera_power_healpix_zoom.png +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/docs/Images/hera_power_zoom.png +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/docs/Images/hera_pstokes.png +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/docs/Images/mwa_off_zenith_power.png +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/docs/Images/mwa_zenith_cross_power.png +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/docs/Images/mwa_zenith_efield.png +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/docs/Images/mwa_zenith_efield_abs.png +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/docs/Images/mwa_zenith_power.png +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/docs/Images/select_beam_cut.png +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/docs/Images/short_dipole_beam.png +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/docs/Makefile +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/docs/_templates/breadcrumbs.html +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/docs/analytic_beam_tutorial.rst +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/docs/analytic_beams.rst +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/docs/beam_interface.rst +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/docs/beam_interface_tutorial.rst +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/docs/conf.py +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/docs/conftest.py +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/docs/conventions.rst +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/docs/cst_settings_yaml.rst +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/docs/developer_docs.rst +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/docs/fast_calh5_meta.rst +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/docs/fast_uvh5_meta.rst +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/docs/make_index.py +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/docs/make_telescope.py +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/docs/make_uvbeam.py +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/docs/make_uvcal.py +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/docs/make_uvdata.py +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/docs/make_uvflag.py +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/docs/references/AIPSMEM117.PDF +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/docs/references/Far_field_spherical_FEKO_draft2.pdf +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/docs/references/GPS.G1-X-00006_Datum_Transformations.pdf +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/docs/references/aasjournal.bst +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/docs/references/app_icrs_frame_comp.png +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/docs/references/beamfits_memo.pdf +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/docs/references/beamfits_memo.tex +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/docs/references/calfits_memo.pdf +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/docs/references/calfits_memo.tex +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/docs/references/calh5.pdf +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/docs/references/calh5.tex +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/docs/references/making_release.md +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/docs/references/miriad-uvvars.pdf +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/docs/references/ncp_icrs_app.png +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/docs/references/phasing.bib +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/docs/references/phasing.pdf +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/docs/references/phasing.tex +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/docs/references/simple_interferometer.png +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/docs/references/uvh5_diagram.pdf +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/docs/references/uvh5_memo.pdf +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/docs/references/uvh5_memo.tex +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/docs/requirements.txt +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/docs/tutorial.rst +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/docs/tutorial_data_note.rst +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/docs/utility_functions.rst +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/docs/uvbeam_tutorial.rst +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/docs/uvcal_tutorial.rst +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/docs/uvdata_tutorial.rst +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/environment.yaml +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/paper.bib +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/paper.md +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/scripts/check_uvfits_equal.py +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/scripts/convert_to_uvfits.py +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/scripts/fhd_batch_convert.py +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/scripts/make_bad_fhd_files.pro +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/scripts/pyuvdata_inspect.py +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/scripts/readwrite_uvfits.py +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/scripts/renumber_ants.py +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/scripts/test_cover_noinstall.sh +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/scripts/test_coverage.sh +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/scripts/truncate_fhd_files.pro +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/scripts/uvfits_memtest.py +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/setup.cfg +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/setup.py +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/src/pyuvdata/__init__.py +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/src/pyuvdata/beam_interface.py +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/src/pyuvdata/data/README.md +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/src/pyuvdata/data/__init__.py +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/src/pyuvdata/data/hera_ant_pos.csv +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/src/pyuvdata/data/jpl_major_bodies.json +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/src/pyuvdata/data/mwa128_ant_layouts.npz +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/src/pyuvdata/data/mwa_ant_pos.csv +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/src/pyuvdata/data/mwa_config_data/Chebychev_coeff.h5 +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/src/pyuvdata/data/mwa_config_data/MWA_rev_cb_10khz_doubles.h5 +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/src/pyuvdata/data/mwa_config_data/MWA_rev_cb_10khz_doubles.txt +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/src/pyuvdata/data/mwa_config_data/mwax_pfb_bandpass_40kHz.h5 +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/src/pyuvdata/data/mwa_config_data/mwax_pfb_bandpass_80kHz.h5 +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/src/pyuvdata/data/mwa_config_data/sigma1.h5 +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/src/pyuvdata/data/test_analytic_beam.py +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/src/pyuvdata/data/test_data.yaml +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/src/pyuvdata/data/test_data_registry.txt +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/src/pyuvdata/datasets.py +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/src/pyuvdata/docstrings.py +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/src/pyuvdata/telescopes.py +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/src/pyuvdata/testing/__init__.py +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/src/pyuvdata/testing/warning_check.py +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/src/pyuvdata/utils/__init__.py +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/src/pyuvdata/utils/antenna.py +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/src/pyuvdata/utils/apply_uvflag.py +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/src/pyuvdata/utils/bls.py +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/src/pyuvdata/utils/bls_numba.py +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/src/pyuvdata/utils/bltaxis.py +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/src/pyuvdata/utils/coordinates.py +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/src/pyuvdata/utils/coordinates.pyx +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/src/pyuvdata/utils/frequency.py +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/src/pyuvdata/utils/history.py +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/src/pyuvdata/utils/io/__init__.py +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/src/pyuvdata/utils/io/antpos.py +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/src/pyuvdata/utils/io/fhd.py +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/src/pyuvdata/utils/io/fits.py +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/src/pyuvdata/utils/io/hdf5.py +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/src/pyuvdata/utils/io/ms.py +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/src/pyuvdata/utils/phase_center_catalog.py +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/src/pyuvdata/utils/phasing.py +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/src/pyuvdata/utils/phasing.pyx +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/src/pyuvdata/utils/redundancy.py +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/src/pyuvdata/utils/times.py +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/src/pyuvdata/utils/tools.py +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/src/pyuvdata/utils/types.py +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/src/pyuvdata/uvbase.py +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/src/pyuvdata/uvbeam/__init__.py +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/src/pyuvdata/uvbeam/cst_beam.py +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/src/pyuvdata/uvbeam/feko_beam.py +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/src/pyuvdata/uvbeam/initializers.py +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/src/pyuvdata/uvbeam/mwa_beam.py +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/src/pyuvdata/uvbeam/uvbeam.pyx +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/src/pyuvdata/uvcal/__init__.py +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/src/pyuvdata/uvcal/calfits.py +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/src/pyuvdata/uvcal/calh5.py +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/src/pyuvdata/uvcal/fhd_cal.py +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/src/pyuvdata/uvcal/initializers.py +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/src/pyuvdata/uvcal/uvcal.py +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/src/pyuvdata/uvdata/__init__.py +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/src/pyuvdata/uvdata/aipy_extracts.py +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/src/pyuvdata/uvdata/corr_fits.pyx +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/src/pyuvdata/uvdata/fhd.py +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/src/pyuvdata/uvdata/initializers.py +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/src/pyuvdata/uvdata/mir.py +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/src/pyuvdata/uvdata/src/aipy_compat.h +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/src/pyuvdata/uvdata/src/bug.c +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/src/pyuvdata/uvdata/src/dio.c +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/src/pyuvdata/uvdata/src/headio.c +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/src/pyuvdata/uvdata/src/hio.c +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/src/pyuvdata/uvdata/src/hio.h +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/src/pyuvdata/uvdata/src/io.h +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/src/pyuvdata/uvdata/src/maskio.c +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/src/pyuvdata/uvdata/src/maxdimc.h +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/src/pyuvdata/uvdata/src/miriad.h +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/src/pyuvdata/uvdata/src/miriad_wrap.h +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/src/pyuvdata/uvdata/src/miriad_wrap.pyx +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/src/pyuvdata/uvdata/src/pack.c +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/src/pyuvdata/uvdata/src/sysdep.h +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/src/pyuvdata/uvdata/src/uvio.c +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/src/pyuvdata/uvdata/uvh5.py +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/src/pyuvdata/uvflag/__init__.py +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/src/pyuvdata/uvflag/uvflag.py +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/src/pyuvdata.egg-info/dependency_links.txt +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/src/pyuvdata.egg-info/top_level.txt +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/tests/__init__.py +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/tests/test_beam_interface.py +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/tests/test_docstrings.py +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/tests/test_parameter.py +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/tests/test_telescopes.py +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/tests/test_uvbase.py +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/tests/test_warning_check.py +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/tests/utils/__init__.py +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/tests/utils/conftest.py +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/tests/utils/io/__init__.py +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/tests/utils/io/test_hdf5.py +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/tests/utils/io/test_ms.py +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/tests/utils/test_apply_uvflag.py +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/tests/utils/test_array_collapse.py +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/tests/utils/test_bls.py +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/tests/utils/test_bls_numba.py +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/tests/utils/test_bltaxis.py +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/tests/utils/test_coordinates.py +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/tests/utils/test_phase_center_catalog.py +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/tests/utils/test_phasing.py +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/tests/utils/test_pol.py +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/tests/utils/test_redundancy.py +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/tests/utils/test_times.py +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/tests/utils/test_tools.py +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/tests/uvbeam/__init__.py +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/tests/uvbeam/conftest.py +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/tests/uvbeam/test_cst_beam.py +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/tests/uvbeam/test_feko_beam.py +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/tests/uvbeam/test_initializers.py +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/tests/uvbeam/test_mwa_beam.py +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/tests/uvcal/__init__.py +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/tests/uvcal/conftest.py +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/tests/uvcal/test_calfits.py +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/tests/uvcal/test_calh5.py +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/tests/uvcal/test_fhd_cal.py +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/tests/uvcal/test_initializers.py +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/tests/uvcal/test_uvcal.py +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/tests/uvdata/__init__.py +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/tests/uvdata/conftest.py +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/tests/uvdata/test_aipy_extracts.py +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/tests/uvdata/test_fhd.py +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/tests/uvdata/test_import_errors.py +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/tests/uvdata/test_initializers.py +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/tests/uvdata/test_mir.py +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/tests/uvdata/test_mir_meta_data.py +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/tests/uvdata/test_mir_parser.py +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/tests/uvdata/test_uvfits.py +0 -0
- {pyuvdata-3.2.4 → pyuvdata-3.2.6}/tests/uvflag/__init__.py +0 -0
|
@@ -25,19 +25,23 @@ jobs:
|
|
|
25
25
|
- restore_cache:
|
|
26
26
|
key: deps-{{ .Branch }}-{{ checksum "ci/pyuvdata_tests.yml" }}
|
|
27
27
|
- run:
|
|
28
|
-
name: Install
|
|
29
|
-
command:
|
|
28
|
+
name: Install Conda from Miniforge
|
|
29
|
+
command: |
|
|
30
|
+
wget -O Miniforge3.sh "https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-$(uname)-$(uname -m).sh"
|
|
31
|
+
bash Miniforge3.sh -b -p "${HOME}/conda"
|
|
32
|
+
${HOME}/conda/bin/conda init
|
|
30
33
|
- run:
|
|
31
34
|
name: configure conda environment
|
|
32
35
|
command: |
|
|
33
|
-
micromamba info
|
|
34
36
|
# need these to add gxx and gcc to build novas and cython
|
|
35
|
-
|
|
37
|
+
conda create --name=${ENV_NAME} python=$PYTHON gxx gcc -yq
|
|
38
|
+
conda env update --name=${ENV_NAME} -f ci/${ENV_NAME}.yml
|
|
36
39
|
- run:
|
|
37
|
-
name: Verify
|
|
40
|
+
name: Verify Conda Config
|
|
38
41
|
command: |
|
|
39
|
-
|
|
40
|
-
|
|
42
|
+
conda activate ${ENV_NAME}
|
|
43
|
+
conda info
|
|
44
|
+
conda list
|
|
41
45
|
# check that the python version matches the desired one; exit immediately if not
|
|
42
46
|
PYVER=`python -c "import sys; print('{:d}.{:d}'.format(sys.version_info.major, sys.version_info.minor))"`
|
|
43
47
|
if [[ $PYVER != $PYTHON ]]; then
|
|
@@ -46,12 +50,12 @@ jobs:
|
|
|
46
50
|
- run:
|
|
47
51
|
name: install
|
|
48
52
|
command: |
|
|
49
|
-
|
|
53
|
+
conda activate ${ENV_NAME}
|
|
50
54
|
CFLAGS="-DCYTHON_TRACE=1 -DCYTHON_TRACE_NOGIL=1" pip install --no-deps .
|
|
51
55
|
- run:
|
|
52
56
|
name: run pyuvdata tests
|
|
53
57
|
command: |
|
|
54
|
-
|
|
58
|
+
conda activate ${ENV_NAME}
|
|
55
59
|
mkdir test-reports
|
|
56
60
|
python -m pytest -n auto --dist=loadfile --cov=pyuvdata --cov-config=".coveragerc" --cov-report xml:"./coverage.xml" --junitxml="test-reports/xunit.xml"
|
|
57
61
|
- save_cache:
|
|
@@ -83,19 +87,23 @@ jobs:
|
|
|
83
87
|
- restore_cache:
|
|
84
88
|
key: deps-{{ .Branch }}-{{ checksum "ci/pyuvdata_tests.yml" }}
|
|
85
89
|
- run:
|
|
86
|
-
name: Install
|
|
87
|
-
command:
|
|
90
|
+
name: Install Conda from Miniforge
|
|
91
|
+
command: |
|
|
92
|
+
wget -O Miniforge3.sh "https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-$(uname)-$(uname -m).sh"
|
|
93
|
+
bash Miniforge3.sh -b -p "${HOME}/conda"
|
|
94
|
+
${HOME}/conda/bin/conda init
|
|
88
95
|
- run:
|
|
89
96
|
name: configure conda environment
|
|
90
97
|
command: |
|
|
91
|
-
micromamba info
|
|
92
98
|
# need these to add gxx and gcc to build novas and cython
|
|
93
|
-
|
|
99
|
+
conda create --name=${ENV_NAME} python=$PYTHON gxx gcc -yq
|
|
100
|
+
conda env update --name=${ENV_NAME} -f ci/${ENV_NAME}.yml
|
|
94
101
|
- run:
|
|
95
|
-
name: Verify
|
|
102
|
+
name: Verify Conda Config
|
|
96
103
|
command: |
|
|
97
|
-
|
|
98
|
-
|
|
104
|
+
conda activate ${ENV_NAME}
|
|
105
|
+
conda info
|
|
106
|
+
conda list
|
|
99
107
|
# check that the python version matches the desired one; exit immediately if not
|
|
100
108
|
PYVER=`python -c "import sys; print('{:d}.{:d}'.format(sys.version_info.major, sys.version_info.minor))"`
|
|
101
109
|
if [[ $PYVER != $PYTHON ]]; then
|
|
@@ -104,12 +112,12 @@ jobs:
|
|
|
104
112
|
- run:
|
|
105
113
|
name: install
|
|
106
114
|
command: |
|
|
107
|
-
|
|
115
|
+
conda activate ${ENV_NAME}
|
|
108
116
|
pip install --no-deps -e .
|
|
109
117
|
- run:
|
|
110
118
|
name: run tutorial tests
|
|
111
119
|
command: |
|
|
112
|
-
|
|
120
|
+
conda activate ${ENV_NAME}
|
|
113
121
|
cd docs
|
|
114
122
|
python -m pytest -n auto --doctest-glob="*.rst" -W "error::DeprecationWarning"
|
|
115
123
|
cd ..
|
|
@@ -134,9 +142,13 @@ workflows:
|
|
|
134
142
|
name: pyuvdata_3.13
|
|
135
143
|
python_version: "3.13"
|
|
136
144
|
env_name: "pyuvdata_tests"
|
|
145
|
+
- pyuvdata:
|
|
146
|
+
name: pyuvdata_3.14
|
|
147
|
+
python_version: "3.14"
|
|
148
|
+
env_name: "pyuvdata_tests"
|
|
137
149
|
- pyuvdata:
|
|
138
150
|
name: pyuvdata_min_deps
|
|
139
|
-
python_version: "3.
|
|
151
|
+
python_version: "3.14"
|
|
140
152
|
env_name: "pyuvdata_min_deps_tests"
|
|
141
153
|
- pyuvdata:
|
|
142
154
|
name: pyuvdata_min_versions
|
|
@@ -14,8 +14,6 @@ concurrency:
|
|
|
14
14
|
|
|
15
15
|
jobs:
|
|
16
16
|
numba_test:
|
|
17
|
-
env:
|
|
18
|
-
PYTHON: 3.13
|
|
19
17
|
name: Numba Utils Tests
|
|
20
18
|
runs-on: ubuntu-latest
|
|
21
19
|
steps:
|
|
@@ -26,20 +24,16 @@ jobs:
|
|
|
26
24
|
- name: Setup Python
|
|
27
25
|
uses: actions/setup-python@v5
|
|
28
26
|
with:
|
|
29
|
-
python-version:
|
|
27
|
+
python-version-file: pyproject.toml
|
|
30
28
|
|
|
31
29
|
- name: Install
|
|
32
30
|
run: |
|
|
33
|
-
CFLAGS="-DCYTHON_TRACE=1 -DCYTHON_TRACE_NOGIL=1" pip install -e .[
|
|
31
|
+
CFLAGS="-DCYTHON_TRACE=1 -DCYTHON_TRACE_NOGIL=1" pip install -e .[test]
|
|
34
32
|
pip install pytest-xdist
|
|
35
33
|
|
|
36
34
|
- name: Environment Info
|
|
37
35
|
run: |
|
|
38
36
|
pip list
|
|
39
|
-
PYVER=`python -c "import sys; print('{:d}.{:d}'.format(sys.version_info.major, sys.version_info.minor))"`
|
|
40
|
-
if [[ $PYVER != ${{ env.PYTHON }} ]]; then
|
|
41
|
-
exit 1;
|
|
42
|
-
fi
|
|
43
37
|
|
|
44
38
|
- name: Run Tests
|
|
45
39
|
run: |
|
|
@@ -19,17 +19,21 @@ jobs:
|
|
|
19
19
|
matrix:
|
|
20
20
|
buildplat:
|
|
21
21
|
- [ubuntu-latest, manylinux, x86_64]
|
|
22
|
-
- [macos-
|
|
22
|
+
- [macos-15-intel, macosx, x86_64]
|
|
23
23
|
- [macos-latest, macosx, arm64]
|
|
24
24
|
- [windows-latest, win, AMD64]
|
|
25
|
-
python: ["cp311", "cp312", "cp313"]
|
|
25
|
+
python: ["cp311", "cp312", "cp313", "cp314"]
|
|
26
|
+
exclude:
|
|
27
|
+
# exclude intel macs on python 3.14 because there's no compatible numba wheel
|
|
28
|
+
- buildplat: [macos-15-intel, macosx, x86_64]
|
|
29
|
+
python: "cp314"
|
|
26
30
|
steps:
|
|
27
31
|
- uses: actions/checkout@main
|
|
28
32
|
with:
|
|
29
33
|
fetch-depth: 0
|
|
30
34
|
|
|
31
35
|
- name: Build wheels
|
|
32
|
-
uses: pypa/cibuildwheel@
|
|
36
|
+
uses: pypa/cibuildwheel@v3.3
|
|
33
37
|
env:
|
|
34
38
|
CIBW_BUILD: ${{ matrix.python }}-${{ matrix.buildplat[1] }}*
|
|
35
39
|
CIBW_ARCHS: ${{ matrix.buildplat[2] }}
|
|
@@ -14,10 +14,22 @@ concurrency:
|
|
|
14
14
|
|
|
15
15
|
jobs:
|
|
16
16
|
warning_test:
|
|
17
|
-
env:
|
|
18
|
-
PYTHON: 3.12
|
|
19
17
|
name: Warning Test
|
|
18
|
+
env:
|
|
19
|
+
PYTEST_OPTIONS: ${{ case(matrix.coverage == true, '--cov=pyuvdata --cov-config=.coveragerc --cov-report xml:coverage.xml', '') }}
|
|
20
20
|
runs-on: ubuntu-latest
|
|
21
|
+
strategy:
|
|
22
|
+
fail-fast: false
|
|
23
|
+
matrix:
|
|
24
|
+
include:
|
|
25
|
+
- python-version: 3.13
|
|
26
|
+
pip-options: "dev"
|
|
27
|
+
coverage: true
|
|
28
|
+
# currently (April 2026), python-casacore does not build properly from pypi on python 3.14
|
|
29
|
+
# also, cython's coverage plugin causes errors when building from pypi on python 3.14
|
|
30
|
+
- python-version: 3.14
|
|
31
|
+
pip-options: "test"
|
|
32
|
+
coverage: false
|
|
21
33
|
steps:
|
|
22
34
|
- uses: actions/checkout@main
|
|
23
35
|
with:
|
|
@@ -26,24 +38,20 @@ jobs:
|
|
|
26
38
|
- name: Setup Python
|
|
27
39
|
uses: actions/setup-python@v5
|
|
28
40
|
with:
|
|
29
|
-
python-version: ${{
|
|
41
|
+
python-version: ${{ matrix.python-version }}
|
|
30
42
|
|
|
31
43
|
- name: Install
|
|
32
44
|
run: |
|
|
33
|
-
CFLAGS="-DCYTHON_TRACE=1 -DCYTHON_TRACE_NOGIL=1" pip install -e .[
|
|
45
|
+
CFLAGS="-DCYTHON_TRACE=1 -DCYTHON_TRACE_NOGIL=1" pip install -e .[${{ matrix.pip-options }}]
|
|
34
46
|
pip install pytest-xdist
|
|
35
47
|
|
|
36
48
|
- name: Environment Info
|
|
37
49
|
run: |
|
|
38
50
|
pip list
|
|
39
|
-
PYVER=`python -c "import sys; print('{:d}.{:d}'.format(sys.version_info.major, sys.version_info.minor))"`
|
|
40
|
-
if [[ $PYVER != ${{ env.PYTHON }} ]]; then
|
|
41
|
-
exit 1;
|
|
42
|
-
fi
|
|
43
51
|
|
|
44
52
|
- name: Run Tests
|
|
45
53
|
run: |
|
|
46
|
-
pytest -W error -n auto
|
|
54
|
+
pytest -W error -n auto ${{ env.PYTEST_OPTIONS }}
|
|
47
55
|
|
|
48
56
|
- uses: codecov/codecov-action@v5
|
|
49
57
|
if: success()
|
|
@@ -17,13 +17,13 @@ repos:
|
|
|
17
17
|
args: ['--fix=no']
|
|
18
18
|
|
|
19
19
|
- repo: https://github.com/astral-sh/ruff-pre-commit
|
|
20
|
-
rev: v0.
|
|
20
|
+
rev: v0.15.9
|
|
21
21
|
hooks:
|
|
22
22
|
- id: ruff
|
|
23
23
|
- id: ruff-format
|
|
24
24
|
|
|
25
25
|
- repo: https://github.com/PyCQA/bandit
|
|
26
|
-
rev: 1.
|
|
26
|
+
rev: 1.9.4
|
|
27
27
|
hooks:
|
|
28
28
|
- id: bandit
|
|
29
29
|
args: ["-c", "pyproject.toml", "--recursive"]
|
|
@@ -3,6 +3,41 @@ All notable changes to this project will be documented in this file.
|
|
|
3
3
|
|
|
4
4
|
## [Unreleased]
|
|
5
5
|
|
|
6
|
+
## [3.2.6] - 2025-03-13
|
|
7
|
+
|
|
8
|
+
### Added
|
|
9
|
+
- Support for python 3.14.
|
|
10
|
+
|
|
11
|
+
### Changed
|
|
12
|
+
- Added improved handling of a few warning messages from h5py and numpy.
|
|
13
|
+
|
|
14
|
+
### Fixed
|
|
15
|
+
- A bug with reading ms caltables with multiple closely-spaced times.
|
|
16
|
+
- Significant reduction in memory when reading UVFITS files, particularly when
|
|
17
|
+
reading the entire file (no selection on read).
|
|
18
|
+
|
|
19
|
+
## [3.2.5] - 2025-12-11
|
|
20
|
+
|
|
21
|
+
### Changed
|
|
22
|
+
- Added a `UVData.flip_conjugation` method and more detail to the uvw check warning
|
|
23
|
+
message to inform users when a conjugation flip might be needed.
|
|
24
|
+
- When reading MWAX correlator files , `remove_coarse_band` now defaults to
|
|
25
|
+
`False` if DERIPPLE is on. Otherwise it defaults to `True`.
|
|
26
|
+
- If the user has set `remove_coarse_band=True` when DERIPPLE is on, a warning is
|
|
27
|
+
raised, and no pfb shape is removed.
|
|
28
|
+
|
|
29
|
+
### Added
|
|
30
|
+
- Support for wide-band `UVCal` gain objects with `uvcalibrate`.
|
|
31
|
+
- A colormap option to the UVBeam and AnalyticBeam `plot` methods, along with
|
|
32
|
+
better default colormaps for phase.
|
|
33
|
+
- A NotImplementedError to `mwa_corr_fits.py` that is thrown when trying to read
|
|
34
|
+
fringe-stopped data.
|
|
35
|
+
|
|
36
|
+
### Fixed
|
|
37
|
+
- A backwards compatibiilty issue with feed arrays in old beamfits files which
|
|
38
|
+
could specify feeds as "e" or "n".
|
|
39
|
+
- Compatiblity with numpy>=2.3
|
|
40
|
+
|
|
6
41
|
## [3.2.4] - 2025-09-15
|
|
7
42
|
|
|
8
43
|
### Added
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pyuvdata
|
|
3
|
-
Version: 3.2.
|
|
3
|
+
Version: 3.2.6
|
|
4
4
|
Summary: A pythonic interface for radio astronomy interferometry data
|
|
5
5
|
Author-email: Bryna Hazelton <brynah@phys.washington.edu>, Adam Beardsley <adam.beardsley@winona.edu>, Daniel Jacobs <daniel.c.jacobs@gmail.com>, Garrett Keating <garrett.keating@cfa.harvard.edu>, Nicholas Kern <nkern@mit.edu>, Matthew Kolopanis <matthew.kolopanis@gmail.com>, Adam Lanman <alanman@mit.edu>, Paul La Plante <paul.laplante@unlv.edu>, Steven Murray <murray.steveng@gmail.com>, Jonathan Pober <jonathan_pober@brown.edu>, Pyxie Star <pyxiestar@gmail.com>
|
|
6
6
|
Maintainer-email: Bryna Hazelton <brynah@phys.washington.edu>, Matthew Kolopanis <matthew.kolopanis@gmail.com>, Garrett Keating <garrett.keating@cfa.harvard.edu>, Steven Murray <murray.steveng@gmail.com>
|
|
@@ -20,7 +20,8 @@ License-File: LICENSE
|
|
|
20
20
|
Requires-Dist: astropy>=6.0
|
|
21
21
|
Requires-Dist: docstring-parser>=0.15
|
|
22
22
|
Requires-Dist: h5py>=3.7
|
|
23
|
-
Requires-Dist: numba
|
|
23
|
+
Requires-Dist: numba<0.63,>=0.57.0; python_version < "3.14"
|
|
24
|
+
Requires-Dist: numba>=0.63; python_version >= "3.14"
|
|
24
25
|
Requires-Dist: numpy>=1.23
|
|
25
26
|
Requires-Dist: pyerfa>=2.0.1.1
|
|
26
27
|
Requires-Dist: pyyaml>=5.4.1
|
|
@@ -89,41 +89,48 @@ jobs:
|
|
|
89
89
|
cd s
|
|
90
90
|
displayName: clone $(NAME)
|
|
91
91
|
|
|
92
|
-
- bash:
|
|
93
|
-
|
|
92
|
+
- bash: |
|
|
93
|
+
wget -O Miniforge3.sh "https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-$(uname)-$(uname -m).sh"
|
|
94
|
+
bash Miniforge3.sh -b -p "${HOME}/conda"
|
|
95
|
+
displayName: Install Conda from Miniforge
|
|
94
96
|
|
|
95
97
|
- bash: |
|
|
96
|
-
|
|
97
|
-
# need to add gxx and gcc to build novas and cython
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
98
|
+
# point to this conda install, not the default conda on Azure pipelines hosts
|
|
99
|
+
# need these to add gxx and gcc to build novas and cython
|
|
100
|
+
source "${HOME}/conda/etc/profile.d/conda.sh"
|
|
101
|
+
conda create --name=${ENV_NAME} python=$PYTHON gxx gcc -yq
|
|
102
|
+
conda env update --name=${ENV_NAME} -f ../$(NAME)/ci/${ENV_NAME}.yaml
|
|
101
103
|
displayName: configure conda environment
|
|
102
104
|
|
|
103
105
|
- bash: |
|
|
104
|
-
source
|
|
105
|
-
|
|
106
|
+
source "${HOME}/conda/etc/profile.d/conda.sh"
|
|
107
|
+
conda activate ${ENV_NAME}
|
|
108
|
+
conda info
|
|
109
|
+
conda list
|
|
106
110
|
# check that the python version matches the desired one; exit immediately if not
|
|
107
111
|
PYVER=`python -c "import sys; print('{:d}.{:d}'.format(sys.version_info.major, sys.version_info.minor))"`
|
|
108
112
|
if [[ $PYVER != $PYTHON ]]; then
|
|
109
113
|
exit 1;
|
|
110
114
|
fi
|
|
111
|
-
displayName: Verify
|
|
115
|
+
displayName: Verify Conda Config
|
|
112
116
|
|
|
113
117
|
# install this version of pyuvdata
|
|
114
118
|
- bash: |
|
|
115
|
-
source
|
|
119
|
+
source "${HOME}/conda/etc/profile.d/conda.sh"
|
|
120
|
+
conda activate ${ENV_NAME}
|
|
116
121
|
pip install --no-deps .
|
|
117
122
|
displayName: install pyuvdata
|
|
118
123
|
|
|
119
124
|
- bash: |
|
|
120
|
-
source
|
|
125
|
+
source "${HOME}/conda/etc/profile.d/conda.sh"
|
|
126
|
+
conda activate ${ENV_NAME}
|
|
121
127
|
cd ../$(NAME)
|
|
122
128
|
pip install --no-deps .
|
|
123
129
|
displayName: install $(NAME)
|
|
124
130
|
|
|
125
131
|
- bash: |
|
|
126
|
-
source
|
|
132
|
+
source "${HOME}/conda/etc/profile.d/conda.sh"
|
|
133
|
+
conda activate ${ENV_NAME}
|
|
127
134
|
cd ../$(NAME)
|
|
128
135
|
pytest ${PYTEST_ARGS}
|
|
129
136
|
displayName: run $(NAME) tests
|
|
Binary file
|
|
@@ -34,7 +34,9 @@ dependencies = [
|
|
|
34
34
|
"astropy>=6.0",
|
|
35
35
|
"docstring-parser>=0.15",
|
|
36
36
|
"h5py>=3.7",
|
|
37
|
-
|
|
37
|
+
# numba above 0.63 has no wheels for intel macs but is required for python 3.14
|
|
38
|
+
"numba>=0.57.0,<0.63; python_version < '3.14'",
|
|
39
|
+
"numba>=0.63; python_version >= '3.14'",
|
|
38
40
|
"numpy>=1.23",
|
|
39
41
|
"pyerfa>=2.0.1.1",
|
|
40
42
|
"pyyaml>=5.4.1",
|
|
@@ -646,6 +646,7 @@ class AnalyticBeam:
|
|
|
646
646
|
beam_type: str,
|
|
647
647
|
freq: float,
|
|
648
648
|
complex_type: str = "real",
|
|
649
|
+
colormap: str | None = None,
|
|
649
650
|
logcolor: bool | None = None,
|
|
650
651
|
plt_kwargs: dict | None = None,
|
|
651
652
|
norm_kwargs: dict | None = None,
|
|
@@ -666,6 +667,11 @@ class AnalyticBeam:
|
|
|
666
667
|
What to plot for complex beams, options are: [real, imag, abs, phase].
|
|
667
668
|
Defaults to "real" for complex beams. Ignored for real beams
|
|
668
669
|
(i.e. power beams, same feed).
|
|
670
|
+
colormap : str, optional
|
|
671
|
+
Matplotlib colormap to use. Defaults to "twlight" if complex_type="phase"
|
|
672
|
+
and logcolor=False, otherwise it defaults to "viridis" if the data to be
|
|
673
|
+
plotted is positive definite (e.g. if complex_type="abs") and "PRGn"
|
|
674
|
+
otherwise.
|
|
669
675
|
logcolor : bool, optional
|
|
670
676
|
Option to use log scaling for the color. Defaults to True for power
|
|
671
677
|
beams and False for E-field beams. Results in using
|
|
@@ -690,6 +696,7 @@ class AnalyticBeam:
|
|
|
690
696
|
beam_type=beam_type,
|
|
691
697
|
freq=freq,
|
|
692
698
|
complex_type=complex_type,
|
|
699
|
+
colormap=colormap,
|
|
693
700
|
logcolor=logcolor,
|
|
694
701
|
plt_kwargs=plt_kwargs,
|
|
695
702
|
norm_kwargs=norm_kwargs,
|
|
@@ -1183,7 +1183,7 @@ class LocationParameter(UVParameter):
|
|
|
1183
1183
|
"""Detect if this location is on the moon."""
|
|
1184
1184
|
# figure out if this is on the moon. Doing it this way limits
|
|
1185
1185
|
# attempted imports of lunarsky
|
|
1186
|
-
if isinstance(self.value, EarthLocation):
|
|
1186
|
+
if self.value is None or isinstance(self.value, EarthLocation):
|
|
1187
1187
|
return False
|
|
1188
1188
|
else:
|
|
1189
1189
|
try:
|
|
@@ -14,6 +14,8 @@ def mean_collapse(
|
|
|
14
14
|
"""
|
|
15
15
|
Collapse by averaging data.
|
|
16
16
|
|
|
17
|
+
Bools are cast to integers prior to calculations.
|
|
18
|
+
|
|
17
19
|
This is similar to np.average, except it handles infs (by giving them
|
|
18
20
|
zero weight) and zero weight axes (by forcing result to be inf with zero
|
|
19
21
|
output weight).
|
|
@@ -34,6 +36,8 @@ def mean_collapse(
|
|
|
34
36
|
|
|
35
37
|
"""
|
|
36
38
|
arr = deepcopy(arr) # avoid changing outside
|
|
39
|
+
if isinstance(arr.item(0), bool):
|
|
40
|
+
arr = arr.astype(int)
|
|
37
41
|
if weights is None:
|
|
38
42
|
weights = np.ones_like(arr)
|
|
39
43
|
else:
|
|
@@ -46,7 +50,7 @@ def mean_collapse(
|
|
|
46
50
|
weights_square_out = np.sum(weights_square, axis=axis)
|
|
47
51
|
out = np.sum(weights * arr, axis=axis)
|
|
48
52
|
where = weight_out > 1e-10
|
|
49
|
-
out = np.true_divide(out, weight_out, where=where)
|
|
53
|
+
out = np.true_divide(out, weight_out, where=where, out=None)
|
|
50
54
|
out = np.where(where, out, np.inf)
|
|
51
55
|
if return_weights and return_weights_square:
|
|
52
56
|
return out, weight_out, weights_square_out
|
|
@@ -64,6 +68,8 @@ def absmean_collapse(
|
|
|
64
68
|
"""
|
|
65
69
|
Collapse by averaging absolute value of data.
|
|
66
70
|
|
|
71
|
+
Bools are cast to integers prior to calculations.
|
|
72
|
+
|
|
67
73
|
Parameters
|
|
68
74
|
----------
|
|
69
75
|
arr : array
|
|
@@ -79,6 +85,9 @@ def absmean_collapse(
|
|
|
79
85
|
whether to return the sum of the squares of the weights. Default is False.
|
|
80
86
|
|
|
81
87
|
"""
|
|
88
|
+
arr = deepcopy(arr) # avoid changing outside
|
|
89
|
+
if isinstance(arr.item(0), bool):
|
|
90
|
+
arr = arr.astype(int)
|
|
82
91
|
return mean_collapse(
|
|
83
92
|
np.abs(arr),
|
|
84
93
|
weights=weights,
|
|
@@ -94,6 +103,8 @@ def quadmean_collapse(
|
|
|
94
103
|
"""
|
|
95
104
|
Collapse by averaging in quadrature.
|
|
96
105
|
|
|
106
|
+
Bools are cast to integers prior to calculations.
|
|
107
|
+
|
|
97
108
|
Parameters
|
|
98
109
|
----------
|
|
99
110
|
arr : array
|
|
@@ -109,6 +120,9 @@ def quadmean_collapse(
|
|
|
109
120
|
whether to return the sum of the squares of the weights. Default is False.
|
|
110
121
|
|
|
111
122
|
"""
|
|
123
|
+
arr = deepcopy(arr) # avoid changing outside
|
|
124
|
+
if isinstance(arr.item(0), bool):
|
|
125
|
+
arr = arr.astype(int)
|
|
112
126
|
out = mean_collapse(
|
|
113
127
|
np.abs(arr) ** 2,
|
|
114
128
|
weights=weights,
|