- Update to 4.0.2
New Features
* astropy.utils
astropy.utils.data.download_file now supports FTPS/FTP over
TLS. [#9964]
astropy.utils.data now uses a lock-free mechanism for caching.
This new mechanism uses a new cache layout and so ignores
caches created using earlier mechanisms (which were causing
lockups on clusters). The two cache formats can coexist but do
not share any files. [#10437, #10683]
astropy.utils.data now ignores the config item
astropy.utils.data.conf.download_cache_lock_attempts since no
locking is done. [#10437, #10683]
astropy.utils.data.download_file and related functions now
interpret the parameter or config file setting timeout=0 to
mean they should make no attempt to download files. [#10437,
#10683]
astropy.utils.import_file_to_cache now accepts a keyword-only
argument replace, defaulting to True, to determine whether it
should replace existing files in the cache, in a way as close
to atomic as possible. [#10437, #10683]
astropy.utils.data.download_file and related functions now
treat http://example.com and http://example.com/ as equivalent.
[#10631]
* astropy.wcs
The new auxiliary WCS parameters added in WCSLIB 7.1 are now
exposed as the aux attribute of Wcsprm. [#10333]
Updated bundled version of WCSLIB to v7.3. [#10433]
Bug fixes
* astropy.config
Added an extra fallback to os.expanduser('~') when trying to
find the user home directory. [#10570]
* astropy.constants
Corrected definition of parsec to 648 000 / pi AU following IAU
2015 B2 [#10569]
* astropy.convolution
Fixed a bug where a float-typed integers in the argument
x_range of astropy.convolution.utils.discretize_oversample_1D
(and the 2D version as well) fails because it uses
numpy.linspace, which requires an int. [#10696]
* astropy.coordinates
Ensure that for size-1 array SkyCoord and coordinate frames the
attributes also properly become scalars when indexed with 0.
[#10113]
Fixed a bug where SkyCoord.separation() and
SkyCoord.separation_3d were not accepting a frame object.
[#10332]
Ensure that the lon values in SkyOffsetFrame are wrapped
correctly at 180 degree regardless of how the underlying data
is represented. [#10163]
Fixed an error in the obliquity of the ecliptic when
transforming to/from the *TrueEcliptic coordinate frames. The
error would primarily result in an inaccuracy in the ecliptic
latitude on the order of arcseconds. [#10129]
Fixed an error in the computation of the location of solar
system bodies where the Earth location of the observer was
ignored during the correction for light travel time. [#10292]
Ensure that coordinates with proper motion that are transformed
to other coordinate frames still can be represented properly.
[#10276]
Improve the error message given when trying to get a cartesian
representation for coordinates that have both proper motion and
radial velocity, but no distance. [#10276]
Fixed an error where SkyCoord.apply_space_motion would return
incorrect results when no distance is set and proper motion is
high. [#10296]
Make the parsing of angles thread-safe so that Angle can be
used in Python multithreading. [#10556]
Fixed reporting of EarthLocation.info which previously raised
an exception. [#10592]
* astropy.io.ascii
Fixed a bug with the C fast_reader not correctly parsing
newlines when delimiter was also set to \n or \r; ensured
consistent handling of input strings without newline
characters. [#9929]
* astropy.io.fits
Fix integer formats of TFORMn=Iw columns in ASCII tables to
correctly read values exceeding int32 - setting int16, int32 or
int64 according to w. [#9901]
Fix unclosed memory-mapped FITS files in FITSDiff when
difference found. [#10159]
Fix crash when reading an invalid table file. [#10171]
Fix duplication issue when setting a keyword ending with space.
[#10482]
Fix ResourceWarning with fits.writeto and pathlib.Path object.
[#10599]
Fix repr for commentary cards and strip spaces for commentary
keywords. [#10640]
Fix compilation of cfitsio with Xcode 12. [#10772]
Fix handling of 1-dimensional arrays with a single element in
BinTableHDU [#10768]
* astropy.io.misc
Fix id URL in baseframe-1.0.0 ASDF schema. [#10223]
Write keys to ASDF only if the value is present, to account for
a change in behavior in asdf 2.8. [#10674]
* astropy.io.registry
Fix Table.(read|write).help when reader or writer has no
docstring. [#10460]
* astropy.io.votable
Fixed parsing failure of VOTable with no fields. When detecting
a non-empty table with no fields, the following warning/
exception is issued: E25 "No FIELDs are defined; DATA section
will be ignored." [#10192]
* astropy.modeling
Fixed a problem with mapping input_units and return_units of a
CompoundModel to the units of the constituent models. [#10158]
Removed hard-coded names of inputs and outputs. [#10174]
Fixed a problem where slicing a CompoundModel by name will
crash if there fix_inputs operators are present. [#10224]
Removed a limitation of fitting of data with units with
compound models without units when the expression involves
operators other than addition and subtraction. [#10415]
Fixed a problem with fitting Linear1D and Planar2D in model
sets. [#10623]
Fixed reported module name of math_functions model classes.
[#10694]
Fixed reported module name of tabular model classes. [#10709]
Do not create new math_functions models for ufuncs that are
only aliases (divide and mod). [#10697]
Fix calculation of the Moffat2D derivative with respect to
gamma. [#10784]
* astropy.stats
Fixed an API regression where SigmaClip.__call__ would convert
masked elements to nan and upcast the dtype to float64 in its
output MaskedArray when using the axis parameter along with the
defaults masked=True and copy=True. [#10610]
Fixed an issue where fully masked MaskedArray input to
sigma_clipped_stats gave incorrect results. [#10099]
Fixed an issue where sigma_clip and SigmaClip.__call__ would
return a masked array instead of a ndarray when masked=False
and the input was a full-masked MaskedArray. [#10099]
Fixed bug with funcs.poisson_conf_interval where an integer for
N with interval='kraft-burrows-nousek' would throw an error
with mpmath backend. [#10427]
Fixed bug in funcs.poisson_conf_interval with interval='kraft-
burrows-nousek' where certain combinations of source and
background count numbers led to ValueError due to the choice of
starting value for numerical optimization. [#10618]
* astropy.table
Fixed a bug when writing a table with mixin columns to FITS,
ECSV or HDF5. If one of the data attributes of the mixin (e.g.
skycoord.ra) had the same name as one of the table column names
(ra), the column (ra) would be dropped when reading the table
back. [#10222]
Fixed a bug when sorting an indexed table on the indexed column
after first sorting on another column. [#10103]
Fixed a bug in table argsort when called with reverse=True for
an indexed table. [#10103]
Fixed a performance regression introduced in #9048 when
initializing a table from Python lists. Also fixed incorrect
behavior (for data types other than float) when those lists
contain np.ma.masked elements to indicate masked data. [#10636]
Avoid modifying .meta when serializing columns to FITS.
[#10485]
Avoid crash when reading a FITS table that contains mixin info
and PyYAML is missing. [#10485]
* astropy.time
Ensure that for size-1 array Time, the location also properly
becomes a scalar when indexed with 0. [#10113]
* astropy.units
Refined test_parallax to resolve difference between 2012 and
2015 definitions. [#10569]
* astropy.utils
The default IERS server has been updated to use the FTPS server
hosted by CDDIS. [#9964]
Fixed memory allocation on 64-bit systems within xml.iterparse
[#10076]
Fix case where None could be used in a numerical computation.
[#10126]
* astropy.visualization
Fixed a bug where the ImageNormalize clip keyword was ignored
when used with calling the object on data. [#10098]
Fixed a bug where axes.xlabel/axes.ylabel where not correctly
set nor returned on an EllipticalFrame class WCSAxes plot.
[#10446]
* astropy.wcs
Handled WCS 360 -> 0 deg crossover in fit_wcs_from_points
[#10155]
Do not issue DATREF warning when MJDREF has default value.
[#10440]
Fixed a bug due to which naxis argument was ignored if header
was supplied during the initialization of a WCS object.
[#10532]
Other Changes and Additions
* Improved the speed of sorting a large Table on a single column
by a factor of around 5. [#10103]
* Ensure that astropy can be used inside Application bundles
built with pyinstaller. [#8795]
* Updated the bundled CFITSIO library to 3.49. See cextern/
cfitsio/docs/changes.txt for additional information. [#10256,
#10665]
* extract_array raises a ValueError if the data type of the input
array is inconsistent with the fill_value. [#10602]
- Drop merged PR patches
* astropy-pr10433-wcslib73-tests.patch gh#astropy/astropy#10433
* astropy-pr10440-wcs-datfix.patch gh#astropy/astropy#10440
- Skip test_compound_fitting_with_units gh#astropy/astropy#10675
OBS-URL: https://build.opensuse.org/request/show/840965
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:numeric/python-astropy?expand=0&rev=34
189 lines
7.2 KiB
RPMSpec
189 lines
7.2 KiB
RPMSpec
#
|
|
# spec file for package python-astropy
|
|
#
|
|
# Copyright (c) 2020 SUSE LLC
|
|
#
|
|
# All modifications and additions to the file contributed by third parties
|
|
# remain the property of their copyright owners, unless otherwise agreed
|
|
# upon. The license for this file, and modifications and additions to the
|
|
# file, is the same license as for the pristine package itself (unless the
|
|
# license for the pristine package is not an Open Source License, in which
|
|
# case the license is the MIT License). An "Open Source License" is a
|
|
# license that conforms to the Open Source Definition (Version 1.9)
|
|
# published by the Open Source Initiative.
|
|
|
|
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
|
#
|
|
|
|
|
|
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
|
|
%global flavor @BUILD_FLAVOR@%{nil}
|
|
%if "%{flavor}" == "test"
|
|
%define psuffix -test
|
|
%bcond_without test
|
|
%else
|
|
%define psuffix %{nil}
|
|
%bcond_with test
|
|
%endif
|
|
%define binaries fitsdiff fitsheader fitscheck fitsinfo fits2bitmap samp_hub showtable volint wcslint
|
|
%define skip_python2 1
|
|
Name: python-astropy
|
|
Version: 4.0.2
|
|
Release: 0
|
|
Summary: Community-developed python astronomy tools
|
|
License: BSD-3-Clause
|
|
URL: https://astropy.org
|
|
Source: https://files.pythonhosted.org/packages/source/a/astropy/astropy-%{version}.tar.gz
|
|
# PATCH-FIX-UPSTREAM astropy-pr10545-remove-newline-3d_cd_hdr.patch gh#astropy/astropy#10545 -- clean up newlines after pytest output
|
|
Patch0: astropy-pr10545-remove-newline-3d_cd_hdr.patch
|
|
# Mark wcs headers as false positives for devel-file-in-non-devel-package
|
|
# These are used by the python files so they must be available.
|
|
Source100: python-astropy-rpmlintrc
|
|
BuildRequires: %{python_module Cython >= 0.21}
|
|
BuildRequires: %{python_module astropy-helpers}
|
|
BuildRequires: %{python_module devel}
|
|
BuildRequires: %{python_module numpy-devel >= 1.16}
|
|
BuildRequires: %{python_module ply}
|
|
BuildRequires: %{python_module setuptools}
|
|
BuildRequires: fdupes
|
|
BuildRequires: hdf5-devel
|
|
BuildRequires: libxml2-tools
|
|
BuildRequires: pkgconfig
|
|
BuildRequires: python-rpm-macros
|
|
BuildRequires: pkgconfig(cfitsio)
|
|
BuildRequires: pkgconfig(erfa) >= 1.7.0
|
|
BuildRequires: pkgconfig(expat)
|
|
BuildRequires: pkgconfig(wcslib)
|
|
Requires: hdf5
|
|
Requires: liberfa1 >= 1.7.0
|
|
Requires: python-dbm
|
|
Requires: python-matplotlib >= 2.1
|
|
Requires: python-numpy >= 1.7.0
|
|
Requires(post): update-alternatives
|
|
Requires(postun): update-alternatives
|
|
Recommends: libxml2-tools
|
|
Recommends: python-Bottleneck
|
|
Recommends: python-Jinja2
|
|
Recommends: python-PyYAML
|
|
Recommends: python-asdf >= 2.5
|
|
Recommends: python-beautifulsoup4
|
|
Recommends: python-bleach
|
|
Recommends: python-h5py
|
|
Recommends: python-ipython
|
|
Recommends: python-jplephem
|
|
Recommends: python-matplotlib >= 2.1
|
|
Recommends: python-pandas
|
|
Recommends: python-scikit-image
|
|
Recommends: python-scipy >= 0.18
|
|
Conflicts: perl-Data-ShowTable
|
|
%if %{with test}
|
|
# SECTION Optional requirements
|
|
BuildRequires: %{python_module Bottleneck}
|
|
BuildRequires: %{python_module Jinja2}
|
|
BuildRequires: %{python_module PyYAML}
|
|
BuildRequires: %{python_module asdf >= 2.5}
|
|
BuildRequires: %{python_module beautifulsoup4}
|
|
BuildRequires: %{python_module bleach}
|
|
BuildRequires: %{python_module h5py}
|
|
BuildRequires: %{python_module ipython}
|
|
BuildRequires: %{python_module jplephem}
|
|
BuildRequires: %{python_module matplotlib >= 2.1}
|
|
BuildRequires: %{python_module pandas}
|
|
BuildRequires: %{python_module scikit-image}
|
|
BuildRequires: %{python_module scipy >= 0.18}
|
|
# /SECTION
|
|
# SECTION test requirements
|
|
BuildRequires: %{python_module astropy = %{version}}
|
|
BuildRequires: %{python_module mpmath}
|
|
BuildRequires: %{python_module objgraph}
|
|
BuildRequires: %{python_module pytest >= 3.1}
|
|
BuildRequires: %{python_module pytest-astropy}
|
|
BuildRequires: %{python_module pytest-doctestplus >= 0.6}
|
|
BuildRequires: %{python_module pytest-mpl}
|
|
# /SECTION
|
|
%endif
|
|
%python_subpackages
|
|
|
|
%description
|
|
Astropy is a package intended to contain core functionality and some
|
|
common tools needed for performing astronomy and astrophysics research with
|
|
Python. It also provides an index for other astronomy packages and tools for
|
|
managing them.
|
|
|
|
%if !%{with test}
|
|
%prep
|
|
%setup -q -n astropy-%{version}
|
|
%autopatch -p1
|
|
|
|
# Disable test failure on DeprecationWarnings
|
|
sed -i "/enable_deprecations_as_exceptions(/,/)/ d" astropy/conftest.py
|
|
|
|
# Make sure bundled libs are not used
|
|
rm -rf cextern/expat
|
|
rm -rf cextern/erfa
|
|
rm -rf cextern/cfitsio
|
|
rm -rf cextern/wcslib
|
|
|
|
echo "[build]" >> setup.cfg
|
|
echo "use_system_libraries=1" >> setup.cfg
|
|
|
|
%build
|
|
%python_build --use-system-libraries --offline
|
|
|
|
%install
|
|
%python_install --use-system-libraries --offline
|
|
for b in %{binaries}; do
|
|
%python_clone -a %{buildroot}%{_bindir}/$b
|
|
done
|
|
chmod a-x %{buildroot}%{python_sitearch}/astropy/wcs/tests/data/header_with_time.fits
|
|
|
|
# Deduplicating files can generate a RPMLINT warning for pyc mtime
|
|
%{python_expand %fdupes %{buildroot}%{$python_sitearch}
|
|
rm -rf %{buildroot}%{$python_sitearch}/astropy/io/misc/tests/__pycache__/__init__.*.pyc
|
|
rm -rf %{buildroot}%{$python_sitearch}/astropy/io/votable/tests/__pycache__/*_test.*.pyc
|
|
rm -rf %{buildroot}%{$python_sitearch}/astropy/io/votable/tests/__pycache__/__init__.*.pyc
|
|
rm -rf %{buildroot}%{$python_sitearch}/astropy/wcs/tests/__pycache__/__init__.*.pyc
|
|
rm -rf %{buildroot}%{$python_sitearch}/astropy/wcs/tests/extension/__pycache__/__init__.*.pyc
|
|
$python -m compileall -d %{$python_sitearch} %{buildroot}%{$python_sitearch}/astropy/io/misc/tests/
|
|
$python -O -m compileall -d %{$python_sitearch} %{buildroot}%{$python_sitearch}/astropy/io/misc/tests/
|
|
$python -m compileall -d %{$python_sitearch} %{buildroot}%{$python_sitearch}/astropy/io/votable/tests/
|
|
$python -O -m compileall -d %{$python_sitearch} %{buildroot}%{$python_sitearch}/astropy/io/votable/tests/
|
|
$python -m compileall -d %{$python_sitearch} %{buildroot}%{$python_sitearch}/astropy/stats/bls/tests/
|
|
$python -O -m compileall -d %{$python_sitearch} %{buildroot}%{$python_sitearch}/astropy/stats/bls/tests/
|
|
$python -m compileall -d %{$python_sitearch} %{buildroot}%{$python_sitearch}/astropy/wcs/tests/
|
|
$python -O -m compileall -d %{$python_sitearch} %{buildroot}%{$python_sitearch}/astropy/wcs/tests/
|
|
%fdupes %{buildroot}%{$python_sitearch}
|
|
}
|
|
%endif
|
|
|
|
%if %{with test}
|
|
%check
|
|
# test matrix is ill-conditioned and fails occasionally
|
|
# https://github.com/astropy/astropy/issues/10675
|
|
donttest="compound_fitting_with_units"
|
|
%ifarch aarch64
|
|
# doctest failure because of precision errors
|
|
donttest+=" or bayesian_info_criterion_lsq"
|
|
%endif
|
|
# http://docs.astropy.org/en/latest/development/testguide.html#running-tests
|
|
# running pytest directly would require building the extensions inplace
|
|
%python_exec -B -c "import astropy, sys; sys.exit(astropy.test(args=\"-v -k \\\"not ($donttest)\\\"\"))"
|
|
%endif
|
|
|
|
%if !%{with test}
|
|
%post
|
|
%{expand:%(for b in %{binaries}; do echo "%%python_install_alternative $b"; done)}
|
|
|
|
%postun
|
|
%{expand:%(for b in %{binaries}; do echo "%%python_uninstall_alternative $b"; done)}
|
|
|
|
%files %{python_files}
|
|
%doc CHANGES.rst README.rst
|
|
%license licenses/*
|
|
%{expand:%(for b in %{binaries}; do echo "%%python_alternative %%{_bindir}/$b"; done)}
|
|
%{python_sitearch}/astropy/
|
|
%{python_sitearch}/astropy-%{version}-py*.egg-info
|
|
%endif
|
|
|
|
%changelog
|