Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
devel:languages:python:backports
python-astropy
python-astropy.changes
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File python-astropy.changes of Package python-astropy
------------------------------------------------------------------- Fri Aug 30 15:11:17 UTC 2024 - Ben Greiner <code@bnavigator.de> - Update to 6.1.3 ## Bug Fixes ### astropy.io.fits * Fix reading zero-width columns such as 0A fields. [#16894] * Ensure that QTable, like Table, can read zero-length string columns, and not convert them to length 1 strings. In the process, avoid a needless copy of all the data for QTable. [#16898] ### astropy.io.votable * Fix KeyError when parsing certain VOTables. [#16830] ### astropy.modeling * Fixed the fit_deriv calculations in the Lorentz1D model. [#16794] ### astropy.table * Pretty-printing of Tables now also works in the presence of zero-length string columns (which sometimes are present in FITS tables). [#16898] ### astropy.utils * Fix the return type for np.broadcast_arrays on a single Masked instance: it now correctly returns a 1-element sequence instead of a single array, just like would be the case with a regular array. [#16842] ### astropy.wcs * Fix a bug where wcs_info_str’s results would look different in numpy 2 VS numpy 1. [#16586] ## Other Changes and Additions * The minimum required version of PyArrow is now v7.0.0. [#16785] ------------------------------------------------------------------- Fri Aug 16 09:27:21 UTC 2024 - Benjamin Greiner <code@bnavigator.de> - Don't require numpy 2. ------------------------------------------------------------------- Fri Aug 9 06:55:41 UTC 2024 - Dirk Müller <dmueller@suse.com> - update to 6.1.2: * When reading CDS and MRT files, only interpret a line as a section delimiter if it contains exclusively dashes or equal signs. This enables rows starting with dashes. * Fix a spurious exception when reading integer compressed images with blanks. * Fixed a crash that occurred for files opened via fits.open(..., mode='update'), on Windows, and with numpy 2.0 installed. A warning is now emitted in cases most likely to escalate into undefined behavior (e.g., segfaults), i.e., when a closed memory map object is still referenced by external code. Please report any regression found. * Fixed a bug that caused models returned by non-linear fitters to have sync_constraints set to False, which caused constraints accessed through, e.g., Model.fixed to not be in sync with the fixed attribute of the parameters. * Fixed a bug that caused CompoundModel.without_units_for_data to return an incorrectly constructed model when the compound model contained a * or / operation, and which also caused fitting to not work correctly with compound models that contained * or / operations. * The OGIP parser is now less restrictive with strings that represent a unit that includes the sqrt function. For example, u.Unit("sqrt(m)**3", format="ogip") no longer causes a ValueError. * Fixed an edge-case bug in overlap_slices where the function could return an empty slice for non-overlapping slices. * Fixed a WCSAxes bug when overlaying a frame with default units that are not degrees. ------------------------------------------------------------------- Thu Jul 11 07:42:10 UTC 2024 - Ben Greiner <code@bnavigator.de> - Revert numpy restriction. ------------------------------------------------------------------- Thu Jul 11 05:35:22 UTC 2024 - Steve Kowalik <steven.kowalik@suse.com> - Restrict numpy to < 2. ------------------------------------------------------------------- Tue Jun 25 06:14:33 UTC 2024 - Steve Kowalik <steven.kowalik@suse.com> - Update to 6.1.1: * Let fitsdiff compare files with lower case HIERARCH keywords * Fix writing a ``HDUList`` to file when numpy 2 is installed and at least some of the data is represented as dask arrays. * Fix display of diff reports with numpy 2. * Ensure that also zero-length tables preserve whether integer data are signed or unsigned. * Fix YAML table serialization compatibility with numpy 2. * Fix bugs in io.votable related to numpy 2's representation of scalars. * Ensure that return types from ``sigma_clip`` ``cenfunc`` and ``stdfunc`` are np.float64 for scalar values. * Ensure structured ``MaskedColumn`` are serialized correctly, including the mask. * Fix problems converting Pandas Series to ``Table`` with numpy >=2.0. * Ensure Time in ymdhms format can also be serialized to files as part of a table if it is masked. * Ensure Masked versions of ``np.recarray`` will show the correct class name of ``MaskedRecarray`` in their ``repr``, and that they will be serialized correctly if part of a table. * Fix bugs with how masked structured arrays were represented with numpy 2. * ``MaskedQuantity`` now works properly with ``np.block``. * Fix a bug where ``WCSAxes`` could be missing negative signs on axis labels when using matplotlib's ``usetex`` mode. * Fix compilation with gcc 14, avoid implicit pointer conversions. - Drop patch 16450.patch, included upstream. - Remove upper bound on pytest, no longer required. ------------------------------------------------------------------- Mon May 27 09:49:39 UTC 2024 - John Paul Adrian Glaubitz <adrian.glaubitz@suse.com> - Cherry-pick upstream patch to fix build with GCC 14 * https://github.com/astropy/astropy/pull/16450.patch ------------------------------------------------------------------- Sun May 5 09:45:35 UTC 2024 - Ben Greiner <code@bnavigator.de> - Update to 6.1.0 ## Highlights * Updated minimum Python version to 3.10 * Order-dependent angular separations now come with warnings * io.ascii uses 64-integers by default for integer columns * Changes to semantics of copy= keyword arguments * Cosmology is now a dataclass() ## New Features ### astropy.coordinates * BaseCoordinateFrame now has a position_angle() method, which is the same as the position_angle method of SkyCoord instances. [#15737] * By default the SkyCoord and BaseCoordinateFrame separation() methods now emit a warning if they have to perform a coordinate transformation that is not a pure rotation to inform the user that the angular separation can depend on the direction of the transformation. It is possible to modify this behaviour with the new optional keyword-only origin_mismatch argument. Specifying origin_mismatch="ignore" allows any transformation to succeed without warning, which has been the behaviour so far. origin_mismatch="error" forbids all transformations that are not pure rotations. [#16246] ### astropy.io.ascii * Clearer error message in reading ASCII tables when there is a mismatch between converter type and column type. [#15991] ### astropy.io.registry * The module astropy.io.typing has been added to provide type annotations for I/O-related functionality. [#15916] ### astropy.samp * SAMP web profile CORS HTTP server implements Private Network Access proposal. [#16193] ### astropy.table * Table now has a setdefault() method, analogous to dict.setdefault(). [#16188] ### astropy.units * Added a new module astropy.units.typing that provides support for type annotations related to astropy.units. [#15860] * Added a new CGS unit Oersted. [#15962] * Added “surface brightness”, “surface brightness wav”, “photon surface brightness”, and “photon surface brightness wav” to recognized physical types. [#16032] * Added magnetic helicity as a physical type. [#16101] ### astropy.utils * For gufuncs on Masked instances, add support for the axes argument. [#16121] * Masked instances now support the various numpy array set operations, such as np.unique and np.isin. [#16224] ### astropy.wcs * Added support for slicing WCS objects containing cpdis or det2im distortions, which previously were ignored. [#16163] ## API Changes ### astropy.coordinates * The astropy.coordinates.transformations module has been refactored into a module. There should be no user-visible changes, but if you notice any, please open an Issue. [#15895] * Changed the default value of the copy argument in astropy.coordinates.representation.CylindricalDifferential.__init__ from False to True, which is the intended behaviour for all subclasses of astropy.coordinates.representation.BaseDifferential. [#16198] ### astropy.cosmology * Cosmology and its subclasses are now frozen dataclass objects. [#15484] * The argument verbose in the function z_at_value is now keyword-only. [#15855] ### astropy.io.ascii * The io.ascii Python and C table readers were updated to use a 64-bit integer field by default when reading a column of integer numeric data. This changes the default behavior on Windows and potentially 32-bit architectures. Previously on those platforms, table columns with any long integers which overflowed the 32-bit integer would be returned as string columns. The new default behavior is consistent with numpy v2 and pandas. [#16005] * The parallel fast-reader parser for reading ASCII files has been removed. Since astropy v4.0.4 requesting this option has issued a warning that this option is broken and that the serial parser will be used. The parallel key in the fast_reader argument for reading ASCII tables is no longer available. [#16103] ### astropy.table * show_in_notebook is deprecated and it is recommended to use dedicated tools in the Jupyter ecosystem to create interactive plots in notebooks. [#15905] * A warning is now emitted when Quantity values are inserted into empty Column objects via Table.insert_row or Table.add_row. [#16038] * show_in_browser is deprecated (pending feedback from the community). Please use astropy/astropy#16067 if you are actively using the function. [#16068] * TableColumns.setdefault() and TableColumns.update() methods (which would typically be called as Table.columns.setdefault() and Table.columns.update()) have been deprecated because they can easily corrupt the Table instance the TableColumns instance is attached to. The Table.setdefault() and Table.update() methods are safe. [#16154] ### astropy.time * TIME_FORMATS and TIME_DELTA_FORMATS in astropy.time.formats are changed from OrderedDict to Python dict. [#15491] * A FutureWarning is now emitted when mutating Time.location post-initialization. [#16063] * Following the removal of np.ndarray.ptp in Numpy v2, Time.ptp is now deprecated in favor of np.ptp. [#16212] ### astropy.units * If any iterable such as a list of tuple was input to Quantity, a check was done to see if they contained only quantities, and, if so, the quantities were concatenated. This makes sense for list and tuple, but is not necessarily logical for all iterables and indeed was broken for those that do not have a length (such as array_api array instances). Hence, the check will now be done only for values where it makes sense, i.e., instances of list and tuple. [#15752] * Units now exposes get_converter which returns a function that will convert a scalar or array from one unit to another. This can be useful to speed up code that converts many quantities with the same unit to another one, especially if the quantity has not many elements, so that the overhead of creating a conversion function is relatively large. [#16139] ### astropy.utils * Deprecate importing ErfaError and ErfaWarning from astropy.utils.exceptions. They should be imported directly from erfa instead. [#15777] * introspection.isinstancemethod() and introspection.find_mod_objs() are deprecated. [#15934] * astropy.utils.console.terminal_size is now deprecated in favour of shutil.get_terminal_size from the standard library. [#16045] * indent() is deprecated. Use textwrap.indent() from Python standard library instead. [#16223] * Unmasked Masked scalar instances are now considered hashable, to match the implicit behaviour of regular arrays, where if an operation leads to a scalar, a hashable array scalar is returned. [#16224] ### astropy.visualization * Renamed the min_cut and max_cut keywords in simple_norm and fits2bitmap to vmin and vmax. The old names are deprecated. [#15621] * If vmin == vmax, the ImageNormalize class now maps the input data to 0. If vmin > vmax, the ImageNormalize class now raises a ValueError. [#15622] ## Bug Fixes ### astropy.convolution * Avoid a segfault when calling astropy.convolution.convolve on an empty array. An exception is now raised instead. [#15840] ### astropy.coordinates * Previously passing a SkyCoord instance to the BaseCoordinateFrame separation() or separation_3d() methods could produce wrong results, depending on what additional frame attributes were defined on the SkyCoord, but now SkyCoord input can be used safely. [#15659] * Distance now accepts as parallax any angle-like value. This includes types like Column which have a unit but are not Quantity subclasses. [#15712] * The new default for the class method SkyCoord.from_name() is to look for coordinates first in SIMBAD, then in NED, and then in VizieR, instead of having no specific order. [#16046] * Fix Angle.to_string() for angles in degrees represented in ‘hms’ and angles in hours represented in ‘dms’. [#16085] * Fix a bug where SkyCoord.spherical_offsets_by would crash when a wrap was needed. [#16241] * search_around_3d() now always raises a UnitConversionError if the units of the distances in coord1 and coord2 and the unit of distlimit do not agree. Previously the error was not raised if at least one of the coordinates was empty. [#16280] ### astropy.cosmology * Fixed a bug where the attribute ParametersAttribute.attr_name could be None instead of a string. [#15882] ### astropy.io.ascii * Reading of CDS header files with multi-line descriptions where the continued line started with a number was broken. This is now fixed. [#15617] * Ensure that the names of mixin columns are properly propagated as labels for the MRT format. [#15848] * Fixed reading IPAC tables for long column type on some platforms, e.g., Windows. [#16005] ### astropy.io.fits * Avoid WinError 1455 in opening some large files with memory mapping on windows. [#15388] * Fix TDISP parsing for floating numbers. [#16007] * Fix a crash when calling FITS writeto methods with stdout as the output stream. [#16008] * Fix TDISP parsing for floating numbers in formats ES / EN. [#16015] * Fix conversion of Table to BinTableHDU with character_as_bytes=True. [#16358] * Improved error message when instantiating a fits table with an ill-formed array. [#16363] ### astropy.io.misc * Reading an empty table stored in parquet format now creates an empty table instead of raising an unexpected error. [#16237] ### astropy.io.votable * When reading a VOTable, if some user-requested columns were not present then the resulting error message previously listed all the requested column names. Now only columns that are actually missing are shown. [#15956] ### astropy.stats * Fix a spurious warning when calling sigma_clipped_stats on a MaskedColumn. [#15844] ### astropy.table * Fix a Table bug when setting items (via slice or index list) in a bytes type MaskedColumn would cause the column mask to be set to all False. A common way to trigger this bug was reading a FITS file with masked string data and then sorting the table. [#15669] * Fix slicing logic for Row. Previously, slicing a astropy.table.row.Row object would incorrectly return a column, now it correctly returns a list of values from that row. [#15733] * Fix a ValueError raised by table.join when fed with large tables. This would typically happen in situations when the result joined table would be too large to fit in memory. In those situations, the error message is now much more clearly about the necessary memory size. [#15734] * Fix an unintended exception being raised when attempting to compare two unequal Table instances. [#15845] * Ensure that if a Column is initialized with a Quantity it will use by default a possible name defined on the quantity’s .info. [#15848] * Fix a bug where columns with dtype=object wouldn’t be properly deep-copied using copy.deepcopy. [#15871] * Fix hasattr(Table, "iloc") raising an exception, preventing use of tables e.g. with scikit-learn. [#15913] * Calling Table.group_by on an empty table no longer raises an exception. [#16093] * The unit conversion convert_unit_to with MaskedColumn was broken as it was storing the old unit in a dictionary attached to underlying np.ma.MaskedArray. This fixes it by overwriting the old unit after unit conversion. [#16118] * astropy.table.vstack will no longer modify the input list even when it contains non-Table objects like astropy.table.Row. [#16130] * Update old dataTables.js version. This should not affect the end user. [#16315] ### astropy.time * Fix comparing NaN Quantity with TimeDelta object. [#15830] * Scalar Time instances are now hashable if they are not masked, also if one uses Masked internally, matching the behaviour prior to astropy 6.0 (and the current behaviour when masking using np.ma.MaskedArray). [#16224] ### astropy.units * Fix rare signature incompatibilities between helper and helped array functions. Most involve cases where the corresponding numpy function has had its arguments renamed between numpy versions. Since all those generally changed the first arguments, which are typically passed as positional arguments, this should not affect user code. Affected functions: - numpy.array_str - numpy.choose - numpy.convolve - numpy.correlate - numpy.histogram - numpy.histogramdd - numpy.histogram2d - numpy.isin - numpy.inner - numpy.nanmedian - numpy.unique - numpy.matrix_rank - numpy.unwrap - numpy.vdot - numpy.lib.recfunctions.unstructured_to_structured [#15710] * Fix an issue with unicode string representations of units shown as superscripts (like degree) when raised to some power. Like for LaTeX representations, now the superscript unicode character is replaced by the literal short name before adding the power. [#15755] * Fix a missing Sun unit in the list of VOUnits simple_units. [#15832] * Fix an unhelpful TypeError when attempting truediv, lshift (<<) or mul (*) or truediv (/) with a Unit for right operand and a numpy array with non-numerical dtype for left operand. [#15883] * Fix write/read roundtrips with empty Table dumped to ECSV. [#15885] * Fix a bug where LaTeX formatter would return empty strings for unity (1) input. [#15923] * Fix extraneous space in LaTeX repr for Quantity objects with superscript units (e.g. angles or temperatures in degree Celsius). [#16043] * Ensure powers of units are consistently as simple as possible. So, an integer if possible, otherwise a float, or a fraction if the float is really close to that. This also ensures the hash of a unit is unique for any given unit (previously, the same power could be represented as float, int or fraction, which made the hash different). [#16058] * Ensure that find_equivalent_units only returns actual units, not units that raised to some power match the requested one. With this fix, (u.m**-3).find_equivalent_units() properly finds nothing, rather than all units of length. [#16127] * Using a dimensionless Quantity as an exponent works anew. In astropy 6.0.1 an exception was erroneously raised. [#16261] ### astropy.utils * Fix rare signature incompatibilities between helper and helped array functions. These typically cover corner cases and should not affect user code. Some arguments weren’t being re-exposed correctly or at all, depending on numpy’s version. Affected functions: - numpy.broadcast_arrays - numpy.median - numpy.quantile - numpy.empty_like - numpy.ones_like - numpy.zeros_like - numpy.full_like [#16025] * Fix a bug where astropy.utils.console.Spinner would leak newlines for messages longer than terminal width. [#16040] * Update report_diff_values so the diff no longer depends on the console terminal size. [#16065] * Fix support in Masked for generalized ufuncs with more than a single core dimension (such as erfa.rxp). [#16120] * Masked array instances now deal more properly with structured dtypes, combining field masks to get element masks for generalized ufuncs, and allowing .view() any time the mask can be viewed as well. This allows a larger number of erfa routines to work with masked data. [#16125] ### astropy.visualization * WCSAxes will correctly set certain defaults when wcs.world_axis_physical_types contains custom: prefixes. [#15626] * Fix an edge case where quantity_support would produce duplicate tick labels for small data ranges. [#15841] * Fix a bug where AngleFormatterLocator and ScalarFormatterLocator wouldn’t respect matplotlib.rc’s axes.unicode_minus parameter. [#15902] * Fixed a bug in CoordinateHelper.grid method to properly handle draw_grid=False and draw_grid=None, ensuring grid lines are controlled correctly even when not explicitly called. [#15985] ### astropy.wcs * Updated bundled WCSLIB version to 8.2.2. This update fixes character buffer overflows in the comment string for the longitude and latitude axes triggered by some projections in wcshdo(), and also the formatting for generic coordinate systems. For a full list of changes - see http://www.atnf.csiro.au/people/mcalabre/WCS/CHANGES or astropy/cextern/wcslib/CHANGES [#15795] * Fixed a bug in fit_wcs_from_points that does not set the default value of the cdelt of the returned WCS object. [#16027] * Fixed a bug in DistortionLookupTable (which implements cpdis and det2im projection corrections to a WCS) in which image pixels received an incorrect distortion value, from a location in the lookup table incorrectly offset by about 1 table pixel. [#16163] ## Other Changes and Additions * Update minimum supported Python version to 3.10 [#15603] * The minimum required NumPy version is now 1.23 and the minimum required SciPy version is 1.8. [#15706] * Fix loading parser tabs on pyc-only installations. * Fix a bug in the wrappers for the lex and yacc wrappers that are used for parsing Astropy units so that they work on pyc-only installations. * According to the Python module loading flow chart, when evaluating import foo and foo.py is not found, Python then reads foo.pyc. * One can take advantage of this fact to strip source files and leave only Python bytecode files for deployment inspace-constrained execution environments such as AWS Lambda. Astropy is now compatible with pyc-only deployments. [#16159] * Change the default value of copy arguments in public APIs from False to None if Numpy 2.0 or newer is installed. For details, see the “Copy semantics” section on the What’s New page for Astropy 6.1 . [#16181] ------------------------------------------------------------------- Fri Mar 29 16:51:14 UTC 2024 - Ben Greiner <code@bnavigator.de> - Update to 6.0.1 ## Bug Fixes ### astropy.coordinates * Previously passing a SkyCoord instance to the BaseCoordinateFrame separation() or separation_3d() methods could produce wrong results, depending on what additional frame attributes were defined on the SkyCoord, but now SkyCoord input can be used safely. [#15659] * Distance now accepts as parallax any angle-like value. This includes types like Column which have a unit but are not Quantity subclasses. [#15712] * The new default for the class method SkyCoord.from_name() is to look for coordinates first in SIMBAD, then in NED, and then in VizieR, instead of having no specific order. [#16046] ### astropy.io.ascii * Reading of CDS header files with multi-line descriptions where the continued line started with a number was broken. This is now fixed. [#15617] * Ensure that the names of mixin columns are properly propagated as labels for the MRT format. [#15848] * Fixed reading IPAC tables for long column type on some platforms, e.g., Windows. [#15992] ### astropy.io.fits * Fix TDISP parsing for floating numbers. [#16007] * Fix a crash when calling FITS writeto methods with stdout as the output stream. [#16008] * Fix TDISP parsing for floating numbers in formats ES / EN. [#16015] ### astropy.stats * Fix a spurious warning when calling sigma_clipped_stats on a MaskedColumn. [#15844] ### astropy.table * Fix a Table bug when setting items (via slice or index list) in a bytes type MaskedColumn would cause the column mask to be set to all False. A common way to trigger this bug was reading a FITS file with masked string data and then sorting the table. [#15669] * Fix slicing logic for Row. Previously, slicing a astropy.table.row.Row object would incorrectly return a column, now it correctly returns a list of values from that row. [#15733] * Fix a ValueError raised by table.join when fed with large tables. This would typically happen in situations when the result joined table would be too large to fit in memory. In those situations, the error message is now much more clearly about the necessary memory size. [#15734] * Fix an unintended exception being raised when attempting to compare two unequal Table instances. [#15845] * Ensure that if a Column is initialized with a Quantity it will use by default a possible name defined on the quantity’s .info. [#15848] * The unit conversion convert_unit_to with MaskedColumn was broken as it was storing the old unit in a dictionary attached to underlying np.ma.MaskedArray. This fixes it by overwriting the old unit after unit conversion. [#16118] * astropy.table.vstack will no longer modify the input list even when it contains non-Table objects like astropy.table.Row. [#16130] ### astropy.units * Fix an issue with unicode string representations of units shown as superscripts (like degree) when raised to some power. Like for LaTeX representations, now the superscript unicode character is replaced by the literal short name before adding the power. [#15755] * Fix a missing Sun unit in the list of VOUnits simple_units. [#15832] * Fix write/read roundtrips with empty Table dumped to ECSV. [#15885] * Fix a bug where LaTeX formatter would return empty strings for unity (1) input. [#15923] * Ensure powers of units are consistently as simple as possible. So, an integer if possible, otherwise a float, or a fraction if the float is really close to that. This also ensures the hash of a unit is unique for any given unit (previously, the same power could be represented as float, int or fraction, which made the hash different). [#16058] * Ensure that find_equivalent_units only returns actual units, not units that raised to some power match the requested one. With this fix, (u.m**-3).find_equivalent_units() properly finds nothing, rather than all units of length. [#16127] ### astropy.utils * Fix a bug where astropy.utils.console.Spinner would leak newlines for messages longer than terminal width. [#16040] * Update report_diff_values so the diff no longer depends on the console terminal size. [#16065] * Fix support in Masked for generalized ufuncs with more than a single core dimension (such as erfa.rxp). [#16120] ### astropy.visualization * Fix an edge case where quantity_support would produce duplicate tick labels for small data ranges. [#15841] ### astropy.wcs * Updated bundled WCSLIB version to 8.2.2. This update fixes character buffer overflows in the comment string for the longitude and latitude axes triggered by some projections in wcshdo(), and also the formatting for generic coordinate systems. For a full list of changes - see http://www.atnf.csiro.au/people/mcalabre/WCS/CHANGES or astropy/cextern/wcslib/CHANGES [#15795] * Fixed a bug in fit_wcs_from_points that does not set the default value of the cdelt of the returned WCS object. [#16027] ## Other Changes and Additions * Given the potential breaking changes with the upcoming Numpy 2.0 release, this release pins Numpy<2.0 and support for Numpy 2.0 will be added in the v6.1.0 release. ------------------------------------------------------------------- Tue Mar 19 10:51:28 UTC 2024 - Ben Greiner <code@bnavigator.de> - Enable SLE15 python module for python311 * Old version <=5.3.2 would be vulnerable boo#1221661 CVE-2023-41334 ------------------------------------------------------------------- Thu Mar 7 10:42:18 UTC 2024 - Ben Greiner <code@bnavigator.de> - Don't test with python39-ipython: not available anymore ------------------------------------------------------------------- Sat Dec 9 18:08:42 UTC 2023 - Ben Greiner <code@bnavigator.de> - Update to 6.0.0 ## New Features ### astropy.config * The new ConfigNamespace.help() method provides a convenient way to get information about configuration items. [#13499] ### astropy.coordinates * Support has been added to create geodetic representations not just for existing ellipsoids from ERFA, but also with explicitly provided values, by defining a subclass of BaseGeodeticRepresentation with the equatorial radius and flattening assigned to _equatorial_radius and _flattening attributes. [#14763] * Add BaseBodycentricRepresentation, a new spheroidal representation for bodycentric latitudes and longitudes. [#14851] * Support Numpy broadcasting over frame data and attributes. [#15121] ### astropy.cosmology * Registered a latex writer for exporting a Cosmology object to a LaTex table. [#14701] * Added argument rename to Cosmology’s I/O, allowing for input and output symbols to be renamed. [#14780] * All non-abstract Cosmology subclasses are now automatically registered to work with Astropy’s YAML serialization. [#14979] * Cosmology I/O now auto-identifies the ‘.tex’ suffix with the ‘ascii.latex’ format. [#15088] * The Cosmology class now has a new property to access the parameters of the cosmology: .parameters. This property return a read-only dictionary of all the non-derived parameter values on the cosmology object. When accessed from the class (not an instance) the dictionary contains Parameter instances, not the values. [#15168] * The field default has been added to Parameter. This can be used to introspect the default value of a parameter on a cosmology class e.g. LambdaCDM.H0.default. [#15400] ### astropy.io.fits * Add new option decompress_in_memory to fits.open, to decompress the whole file in memory at once, instead of decompressing the file progressively as data is needed. Default behavior is better for memory usage but sometimes slow, especially for files with many small HDUs. [#15501] ### astropy.io.votable * Add support for Parquet serialization of VOTables. Writing of this serialization is available with using the new 'votable.parquet' format. [#15281] * Added MIVOT feature through the MivotBlock class that allows model annotations reading and writing in VOTable. [#15390] ### astropy.modeling * Added a GeneralSersic2D model that can have “boxy” or “disky” isophotes. [#15545] ### astropy.nddata * A more flexible and/or compact string representation is now available for NDData objects which visually indicates masked entries, and provides for better for dask array support. [#14438] ### astropy.table * The new Row.get() method, analogous to dict.get(), returns the value of the specified column from the row if the column present, otherwise it returns a fallback value, which by default is None. [#14878] ### astropy.time * Masked Time instances now use astropy’s own Masked class internally. This means that Masked input is now properly recognized, and that masks get propagated also to Quantity output (such as from a TimeDelta converted to a unit of time), creating MaskedQuantity instances. [#15231] * Added a TimeDelta format quantity_str that represents the time delta as a string with one or more Quantity components. This format provides a human-readable multi-scale string representation of a time delta. The default output sub-format is not considered stable in this release, please see astropy/astropy#15485 for more information. [#15264] ### astropy.uncertainty * Uncertainty Distribution now support structured data types, and as a result it now works also with EarthLocation. [#15304] * Uncertainty Distribution can now be used inside representations, which also allows basic support in SkyCoord. While most calculations work, there are remaining issues. For instance, the repr does not show that the coordinates are distributions. [#15395] ### astropy.units * Add support for gc2gde and gd2gce erfa functions to allow geodetic representations using equatorial radius and flattening. [#14729] ### astropy.utils * The astropy.utils.metadata.MetaData default dictionary can now be set with the default_factory keyword argument. [#15265] * astropy.utils.decorators.deprecated now adds the __deprecated__ attribute to the objects it wraps, following the practice in https://peps.python.org/pep-0702/. [#15310] ### astropy.visualization * Add WCSAxes.text_coord method to print text using SkyCoord objects parallel to plotting data points with WCSAxes.plot_coord. [#14661] ### astropy.wcs * Support WCS descriptions of basic planetary coordinate frames. [#14820] * Updated bundled WCSLIB version to 8.1. This update adds support planetary keywords A_RADIUS, B_RADIUS, C_RADIUS, BLON_OBS, BLAT_OBS, and BDIS_OBS in auxprm and adds wcsprm::time to the wcsprm struct to record the TIME axis. This update also includes several bug fixes. For a full list of changes - see http://www.atnf.csiro.au/people/mcalabre/WCS/CHANGES [#15035] ## API Changes ### astropy.config * Removed deprecated ConfigurationMissingWarning class and update_default_config function; There are no replacements as they should no be used anymore. [#15466] ### astropy.convolution * Invalid kernel arithmetic operations now raise a KernelArithmeticError instead of a bare Exception. [#14728] * Added base KernelError error class and removed DiscretizationError error class (a ValueError will be raised instead). [#14732] * discretize_model will now raise a ValueError if mode='oversample' and factor does not have an integer value. [#14794] ### astropy.coordinates * Removed deprecated angle parsing and formatting utilities from angle_utilities. Use the functions from angle_formats instead. [#14675] * The deprecated functionality of initializing Angle or Longitude from a tuple is no longer supported. [#15205] * Angle-related classes and functions have been moved within astropy.coordinates. There is no change to public API as everything moved should still be imported from astropy.coordinates, not a sub-module. If you are using private API, try importing from astropy.coordinates instead. If you need something that has been moved and is not available in astropy.coordinates, please open an issue on the Astropy issue tracker. [#15220] * It is no longer possible to pass frame classes to the transform_to() method of a low-level coordinate-frame class. It is still possible to pass frame instances. The transform_to() method of the high-level SkyCoord class is unaffected. [#15500] ### astropy.cosmology * Removed support of importing private constants and functions from astropy.cosmology.flrw. [#14672] * Removed deprecated Cosmology Parameter argument fmt. [#14673] * Removed deprecated vectorize_if_needed and inf_like from cosmology.utils. [#14677] * Removed deprecated import paths from astropy.cosmology.core. [#14782] * Cosmology Parameter is now a dataclass, and can work with all of Python’s dataclasses machinery, like field introspection and type conversion. [#14874] * A new property – scale_factor0 – has been added to Cosmology objects. This is the scale factor at redshift 0, and is defined to be 1.0. [#14931] * Added registration label ascii.latex to Cosmology IO. [#14938] * The private module astropy.cosmology.utils has been deprecated. [#14980] * Removed deprecated get_cosmology_from_string class method in default_cosmology; use get instead. [#15467] ### astropy.io.ascii * Several arguments in functions within astropy.io.ascii have been deprecated and are either renamed or scheduled to be removed. * read(): - Reader will be removed. Instead supply the equivalent format argument. - Inputter has been renamed to inputter_cls. - Outputter has been renamed to outputter_cls. * get_reader(): - Reader has been renamed to reader_cls. - Inputter has been renamed to inputter_cls. - Outputter has been renamed to outputter_cls. * write(): - Writer will be removed. Instead supply the equivalent format argument. * get_writer(): - Writer has been renamed to writer_cls. [#14914] * Removed deprecated astropy.io.ascii.tests.common.raises test helper; use pytest.raises instead. [#15470] ### astropy.io.fits * Deprecate _ExtensionHDU and _NonstandardExtHDU (use ExtensionHDU or NonstandardExtHDU instead). [#15396] * Remove special handling of TCTYP TCUNI TCRPX TCRVL TCDLT TRPOS (#7157). [#15396] * Rename and deprecate TableHDU.update to TableHDU.update_header, for consistency with ImageHDU. [#15396] ### astropy.io.misc * Removed deprecated astropy.io.misc.asdf subpackage. Use asdf-astropy package instead. [#14668] * fnunpickle and fnpickle are deprecated because they are not used anywhere within astropy. If you must, use the module from Python standard library but be advised that pickle is insecure so you should only unpickle data that you trust. [#15418] ### astropy.io.votable * Removed deprecated pedantic option from the astropy.io.votable.table.parse() function and the corresponding configuration setting. Use the verify option instead. [#14669] * Class astropy.io.votable.tree.Table has been renamed to TableElement to avoid sharing the name with astropy.table.Table. [#15372] * Fully removed support for version = ‘1.0’ on VOTableFile__init__() and changed its tests to check correctly. It was raising a DeprecationWarning and now is raising a ValueError. [#15490] ### astropy.modeling * Removed the AliasDict class from modeling.utils. [#12943] * Creating a model instance with parameters that have incompatible shapes will now raise a ValueError rather than an IncompatibleShapeError. [#15209] * Removal of deprecated code _model_to_fit_params and _fitter_to_model_params from fitting.py. [#15461] ### astropy.stats * The BoxLeastSquares, BoxLeastSquaresResults and LombScargle classes are not available from astropy.stats anymore, they are now available only from astropy.timeseries. [#15530] ### astropy.tests * Removed deprecated deprecation, warning, and exception handling functionality provided by astropy.tests.helper. [#14670] * astropy.tests.command.FixRemoteDataOption and astropy.tests.command.AstropyTest are deprecated. They are no longer necessary after sunsetting astropy-helpers. [#15204] ### astropy.time * Time has switched to use Masked arrays internally, instead of indicating masked values using NaN in the internal jd2 attribute. As a result, any output from instances, such as one gets with, say, the .isot format, will also use Masked by default. * For backwards compatibility, a new configuration item, astropy.time.conf.masked_array_type is introduced which is set to “astropy” by default (which indicates one wants to use Masked), but can also be set to “numpy”, in which case numpy.ma.MaskedArray will be used where possible (essentially, for all but Quantity). [#15231] * Changed the TimeDelta init signature to be consistent with that of Time. Previously the argument order was val, val2, format, scale, copy. Now the order is val, val2, format, scale, *, precision, in_subfmt, out_subfmt, copy, where the arguments after the * must be specified by keyword. [#15264] ### astropy.timeseries * Removed deprecated midpoint_epoch in fold function; use epoch_time instead. [#15462] ### astropy.uncertainty * The .dtype attribute exposed by Distribution is now that of the samples, rather than one that has a “samples” entry. This makes quantities with structured data types and units easier to support, and generally makes the Distribution appear more similar to regular arrays. It should have little effect on code. For instance, distribution["samples"] still will return the actual distribution. * As a consequence of this refactoring, most arrays that are not C-contiguous can now be viewed and will thus not be copied on input any more. The only exceptions are arrays for which the strides are negative. * Note that the true data type is considered an implementation detail. But for reference, it now is a structured data type with a single field, “samples”, which itself is an array of “sample” fields, which contain the actual data. [#15304] ### astropy.units * Like np.ndarray, under numpy 2.0 Quantity and all its subclasses (Angle, Masked, etc.) will no longer support the .ptp() method. Use np.ptp(...) instead. * Similarly, support for the much less frequently used .newbyteorder() and .itemset() methods has been removed. [#15378] * The following deprecated functionality has been removed: - littleh unit and with_H0 equivalency. They are still available from cosmology.units. - brightness_temperature equivalency no longer automatically swaps the order of its arguments if it does not match the expectation. - PhysicalType no longer supports str methods and attributes. [#15514] ### astropy.utils * Removed deprecated OrderedDescriptor, OrderedDescriptorContainer, and set_locale in astropy.utils.misc. [#14679] * is_path_hidden() and walk_skip_hidden() are deprecated. [#14759] * The structure of utils.metadata has been refactored, but all the available functions and classes are still present and should be imported as before. [#15166] * The astropy.utils.metadata.MetaData class, which is used throughout astropy to carry metadata on tables, columns, etc., can now also be used on dataclasses. * When accessing the meta attribute on a class astropy.utils.metadata.MetaData now returns None instead of itself. [#15237] * The astropy.utils.metadata.MetaData class, which is used throughout astropy to carry metadata on tables, columns, etc., can now also be used on frozen dataclasses. [#15404] * Removed deprecated version_path in minversion function; it is no longer used. [#15468] ### astropy.visualization * The bboxes, ticklabels_bbox, and tick_out_size arguments to astropy.visualization.wcaxes.ticklabels.TickLabels.draw() now have no effect and are deprecated. This is to allow rasterized ticks to be drawn correctly on WCSAxes. [#14760] * It is now not possible to pass any keyword arguments to astropy.visualization.wcsaxes.WCSAxes.draw(). Previously passing any keyword arguments would have errored anyway, as matplotlib.axes.Axes.draw() does not accept keyword arguments. [#14772] * Deprecated the exp attribute in the LogStretch, InvertedLogStretch, PowerDistStretch, and InvertedPowerDistStretch stretch classes, and the power attribute in the PowerStretch. Instead, use the a attribute, which matches the input keyword. [#15538] * Removed the maximum value of the a parameter in the AsinhStretch and SinhStretch stretch classes. [#15539] ### astropy.wcs * Removed deprecated accuracy from all_world2pix method in WCS; use tolerance instead. [#15464] * NoConvergence no longer accepts arbitrary keyword arguments. [#15504] ## Bug Fixes ### astropy.coordinates * Fixed minor bug when getting solar system positions of objects from Type 3 SPICE kernel files. [#15612] ### astropy.cosmology * The exponent in w0wzCDM.de_density_scale has been corrected to 3, from -3. This correction has also been made to the scalar inv_efunc cpython functions. [#14991] * pandas.Series are now uniformly converted to their underlying data type when given as an argument to a Cosmology method. [#15600] ### astropy.io.fits * Reading a table from FITS now respects the TNULL property of a column, passing it into the column’s fill_value. [#14723] * Fix crash when a PrimaryHDU has a GROUPS keyword with a non-boolean value (i.e. not a random-groups HDU). [#14998] * Fixed a bug that caused Cutout2D to not work correctly with CompImageHDU.section [#14999] * Fixed a bug that caused compressed images with TFORM missing the optional ‘1’ prefix to not be readable. [#15001] * Ensure that tables written to FITS with both masked and unmasked columns roundtrip properly (previously, all integer columns would become masked if any column was masked). [#15473] * Fix segfault with error report in tile decompression. [#15489] ### astropy.io.votable * Output of repr for VOTable instance now clearly shows it is a VOTable and not generic astropy Table. [#14702] ### astropy.modeling * All models can be pickled now. [#14902] ### astropy.nddata * Restore bitmask propagation behavior in NDData.mask, plus a fix for arithmetic between masked and unmasked NDData objects. [#14995] ### astropy.table * Table.as_array now respects the fill_value property of masked columns. [#14723] * Fix a bug where table indexes were not using a stable sort order. This was causing the order of rows within groups to not match the original table order when an indexed table was grouped. [#14907] * Fixed issue #14964 that when grouping a Table on a mixin column such as Quantity or Time, the grouped table keys did not reflect the original column values. For Quantity this meant that the key values were pure float values without the unit, while for Time the key values were the pair of jd1 and jd2 float values. [#14966] ### astropy.time * Ensure that the Time caches of formats and scales do not get out of sync with the actual data, even if another instance, holding a view of the data is written to. E.g., if one does t01 = t[:2], and sets t[0] after, it is now guaranteed that t01.value will correctly reflect that change in value. [#15453] ### astropy.units * In VOunits, “pix”, “au”, “a”, and “ct” are removed from the list of deprecated units. [#14885] ### astropy.utils * Ufuncs with more than 2 operands (such as erfa.dtf2d) now work also if all inputs are scalars and more than two inputs have masks. [#15450] * Ensured that str(masked_array) looks like str(unmasked_array) also for array scalars. Thus, like regular array scalars, the precision is ignored for float, and strings do not include extra quoting. [#15451] ### astropy.visualization * The location of ticklabels on a WCSAxes is now correctly calculated when the figure is rasterized. [#14760] * Fixed a bug where a ValueError would be raised in the AsinhStretch and SinhStretch classes for valid a parameter values. [#15539] ### astropy.wcs * wcs.validate(filename) now properly closes the file handler. [#15054] * Fix a regression in custom WCS mapping due to the recent introduction of Solar System frames. [#15630] ## Other Changes and Additions * The minimum supported version of NumPy is now 1.22. [#15006] * Moved International Earth Rotation and Reference Systems (IERS) and Leap Second files out into standalone astropy-iers-data package, maintaining full backward-compatibility in the astropy.utils.iers API. Deprecation warnings may be issued when certain files are accessed directly. [#14819] * Switch from using setup.cfg for project configuration to using pyproject.toml. [#15247] * Update bundled expat to 2.5.0. [#15585] - Drop astropy-pr15479-pvstar.patch ------------------------------------------------------------------- Wed Nov 8 01:37:46 UTC 2023 - Ben Greiner <code@bnavigator.de> - Add astropy-pr15479-pvstar.patch * PR gh#astropy/astropy#15479 backports gh#astropy/astropy#15476 * Issue at gh#astropy/astropy#15537 ------------------------------------------------------------------- Fri Oct 6 08:19:42 UTC 2023 - Ben Greiner <code@bnavigator.de> - Update to 5.3.4 ## Bug Fixes ### astropy.io.misc * Updated ``astropy.io.misc.yaml`` so ``dump()` with a numpy object array or ``load()`` with YAML representing a Numpy object array both raise ``TypeError``. This prevents problems like a segmentation fault. [#15373] ### astropy.io.votable * Fixed a bug in ``convert_to_writable_filelike`` where ``GzipFile`` was not closed properly. [#15359] ### astropy.units * In VOUnit, the spaces around the slash were removed in the formatting of fractions, and fractional powers now also use the "**" operator. [#15282] * We now ensure that the unit ``u.cgs.cm`` is just an alias of ``u.si.cm``, instead of a redefinition. This ensures that ``u.Unit("cm") / u.cm`` will reliably cancel to dimensionless (instead of some "cm / cm"). [#15368] ### astropy.utils * For ``Masked``, ``np.ptp`` and the ``.ptp()`` method now properly account for the mask, ensuring the result is identical to subtracting the maximum and minimum (with the same arguments). [#15380] ## Other Changes and Additions * Compatibility with Python 3.12. [#14784] * Replaced the URL of ``IETF_LEAP_SECOND_URL`` because the original is now defunct and IETF now defers to IANA for such look-up. [#15421] ------------------------------------------------------------------- Thu Sep 14 08:30:11 UTC 2023 - Ben Greiner <code@bnavigator.de> - Update to 5.3.3 ## Bug Fixes ### astropy.coordinates * TransformGraph.to_dot_graph() now throws an exception for invalid savelayout. ### astropy.cosmology * The exponent of w0wzCDM functions in inv_efunc has been corrected to 3, from -3. [#15224] ### astropy.modeling * Astropy modeling can filter non-finite data values using the filter_non_finite keyword argument in a fitter call. Now when filter_non_finite is True, non-finite weights will also be filtered to prevent crashes in LevMarLSQFitter. [#15215] ### astropy.units * Fixed astropy.units.Quantity’s implementation of numpy.nanmedian(), where for Numpy >= 1.25 an exception was raised for some array shapes and axis combinations. [#15228] ## Other Changes and Additions * v5.3.x will not support NumPy 2.0 or later. [#15234] - Restrain to Cython < 3 -- gh#astropy/astropy#15315 ------------------------------------------------------------------- Tue Aug 22 17:19:38 UTC 2023 - Ben Greiner <code@bnavigator.de> - Update to 5.3.2 ### astropy.coordinates * Fixed import when called with Python -OO flag. [#15037] ### astropy.nddata * Fix for collapse operations on NDData without masks or units. [#15082] ### astropy.units * Modified the implementation of np.power() for instances of Quantity to allow any array as the second operand if all its elements have the same value. [#15101] ------------------------------------------------------------------- Sun Jul 16 11:41:17 UTC 2023 - Dirk Müller <dmueller@suse.com> - update to 5.3.1: * The exponent in ``wowzCDM.de_density_scale`` has been corrected to 3, from -3. * Fix crash when a PrimaryHDU has a GROUPS keyword with a non- boolean value (i.e. not a random-groups HDU). * Fixed a bug that caused ``Cutout2D`` to not work correctly with ``CompImageHDU.section`` * Fixed a bug that caused compressed images with TFORM missing the optional '1' prefix to not be readable. [#15001] * Restore bitmask propagation behavior in ``NDData.mask``, plus a fix for arithmetic between masked and unmasked ``NDData`` objects. * Fix a bug where table indexes were not using a stable sort order. This was causing the order of rows within groups to not match the original table order when an indexed table was grouped. [#14907] * In VOunits, "pix", "au", "a", and "ct" are removed from the list of deprecated units. [#14885] ------------------------------------------------------------------- Sat Jul 1 14:04:02 UTC 2023 - Ben Greiner <code@bnavigator.de> - Update to 5.3 * New flat astropy.cosmology classes * New union operators for Table * Efficient data access for compressed FITS files * Added support for NOCOMPRESS for compressed FITS files * New fraction option for representing units as strings * Change in order in unit string representations * Support for collapse operations on arbitrary axes in nddata * Refresh cached observatory site registry for EarthLocation methods * Support for collapse operations on arbitrary axes in nddata * New LombScargleMultiband class for multiband datasets - Remove unbundling of cfitsio -- gh#astropy/astropy#14311 ------------------------------------------------------------------- Wed Apr 26 09:56:37 UTC 2023 - Ben Greiner <code@bnavigator.de> - Update to 5.2.2 ## Bug Fixes ### astropy.io.ascii * CDS and MRT tables with units that contain with multiple divisions, such as km/s/Mpc now parse correctly as being equal to km/(s.Mpc). [#14369] ### astropy.io.fits * Fix FITSDiff when table contains a VLA column with the Q type. [#14539] ### astropy.table * Fix a bug when creating a QTable when a Quantity input column is present and the units argument modifies the unit of that column. This now works as expected where previously this caused an exception. [#14357] ### astropy.units * CDS units with multiple divisions, such as km/s/Mpc now parse correctly as being equal to km/(s.Mpc). [#14369] ### astropy.wcs * Fixed a bug that caused subclasses of BaseHighLevelWCS and HighLevelWCSMixin to not work correctly under certain conditions if they did not have world_n_dim and pixel_n_dim defined on them. [#14495] ------------------------------------------------------------------- Sun Feb 19 20:49:30 UTC 2023 - Ben Greiner <code@bnavigator.de> - Don't test with skyfield on python311: gh#brandon-rhodes/assay#15 ------------------------------------------------------------------- Fri Jan 13 16:19:31 UTC 2023 - Ben Greiner <code@bnavigator.de> - Update to 5.2.1 ## Bug Fixes ### astropy.coordinates * Fix to ITRS frame earth_location attribute to give the correct result for a topocentric frame. [#14180] ### astropy.cosmology * Bounds are no longer passed to the scipy minimizer for methods Brent and Golden. The scipy minimizer never used the bounds but silently accepted them. In scipy v1.11.0.dev0+ an error is raised, so we now pass None as the bounds to the minimizer. Users should not be affected by this change. [#14232] ### astropy.io.fits * Tables with multidimensional variable length array can now be properly read and written. [#13417] ### astropy.units * Modified the behavior of numpy.histogram(), numpy.histogram_bin_edges(), numpy.histogram2d(), and numpy.histogramdd() so that the range argument must a compatible instance of astropy.units.Quantity if the other arguments are instances of astropy.units.Quantity. [#14213] ### astropy.visualization * Improved the performance of drawing WCSAxes grids by skipping some unnecessary computations. [#14164] * Fixed WCSAxes sometimes triggering a NumPy RuntimeWarning when determining the coordinate range of the axes. [#14211] ## Other Changes and Additions * Fix compatibility with Numpy 1.24. [#14193] - Drop astropy-pr14194-numpy1.24.patch ------------------------------------------------------------------- Wed Dec 21 22:56:59 UTC 2022 - Ben Greiner <code@bnavigator.de> - Update to 5.2 * Astropy 5.2 is a major release that adds significant new functionality since the 5.1 release. * In particular, this release includes: * Quantity data types * Updates to astropy.cosmology * Topocentric ITRS Frame * Enhanced Fixed Width ASCII Tables * Accessing cloud-hosted FITS files * Drawing the instrument beam and a physical scale bar on celestial images * Interior ticks and tick labels * Support for tilde-prefixed paths * CCDData PSF Image representation * In addition to these major changes, Astropy 5.2 includes a large number of smaller improvements and bug fixes. - Move to PEP517 build - Revert rpmlintrc: the whitelist error category has been removed from rpmlint - Add astropy-pr14194-numpy1.24.patch gh#astropy/astropy#14194 ------------------------------------------------------------------- Mon Nov 21 11:03:53 UTC 2022 - Ben Greiner <code@bnavigator.de> - Whitelist stupid rpmlint error * https://docs.astropy.org/en/latest/development/testguide.html#astropy-test * gh#rpm-software-management/rpmlint#965 ------------------------------------------------------------------- Sun Oct 23 10:46:04 UTC 2022 - Ben Greiner <code@bnavigator.de> - Update to 5.1.1 # API Changes ## astropy.wcs * The pixel argument to astropy.visualization.wcsaxes.ticklabels.TickLabels.add no longer does anything, is deprecated, and will be removed in a future astropy version. It has been replaced by a new required data argument, which should be used to specify the data coordinates of the tick label being added. * This changes has been made because it is (in general) not possible to correctly calculate pixel coordinates before Matplotlib is drawing a figure. [#12630] # Bug Fixes ## astropy.coordinates * Fixed a bug that prevented SkyOffsetFrame instances to be pickled by adding a custom __reduce__ method to the class (see issue #9249). [#13305] * Fixed the check for invalid Latitude values for float32 values. Latitude now accepts the float32 value of pi/2, which was rejected before because a comparison was made using the slightly smaller float64 representation. See issue #13708. [#13745] ## astropy.io.ascii * Fixed confusing chained exception messages of read() function when it fails. [#13170] * When writing out a :class:`~astropy.table.Table` to HTML format, the formats keyword argument to the :meth:`~astropy.table.Table.write` method will now be applied. [#13453] ## astropy.io.fits * heapsize is now checked for VLA tables. An error is thrown whether P format is used but the heap size is bigger than what can be indexed with a 32 bit signed int. [#13429] * Fix parsing of ascii TFORM when precision is missing. [#13520] * A compressed image HDU created from the header of a PRIMARY HDU, now correctly updates 'XTENSION' and 'SIMPLE' keywords. [#13557] * Empty variable-length arrays are now properly handled when pathological combinations of heapoffset and heapsize are encountered. [#13621] * PCOUNT and GCOUNT keywords are now removed from an uncompressed Primary header, for compliancy with fitsverify behavior. [#13753] ## astropy.modeling * Bugfix for using MagUnit units on model parameters. [#13158] * Fix bug in using non-linear fitters to fit 0-degree polynomials using weights. [#13628] ## astropy.table * Fix a problem where accessing one field of a structured column returned a Column with the same info as the original column. This resulted in unintuitive behavior in general and an exception if the format for the column was set. [#13269] * Tables with columns with structured data can now be properly stacked and joined. [#13306] * Update jQuery to 3.6.0, to pick up security fixes. [#13438] * Fix a Python 3.11 compatibility issue. Ensure that when removing a table column that the pprint_include_names or pprint_exclude_names attributes get updated correctly. [#13639] * When using add_columns with same indexes in indexes option or without specifying the option, the order of the new columns will now be kept. [#13783] * Fix a bug when printing or getting the representation of a multidimensional table column that has a zero dimension. [#13838] * Ensure that mixin columns and their info are not shared between tables even when their underlying data is shared with copy=False. [#13842] ## astropy.time * Fix Time.insert() on times which have their out_subfmt set. [#12732] * Prevent Time() from being initialized with an invalid precision leading to incorrect results when representing the time as a string. [#13068] * Fix a bug in Time where a date string like "2022-08-01.123" was being parsed as an ISO-format time "2022-08-01 00:00:00.123". The fractional part at the end of the string was being taken as seconds. Now this raises an exception because the string is not in ISO format. [#13731] ## astropy.units * Significantly improved the performance of parsing composite units with the FITS format, by ensuring the detailed_exception argument is properly passed on and thus used. [#12699] * Ensure that np.concatenate on quantities can take a dtype argument (added in numpy 1.20). [#13323] * Ensure that the units of any initial argument to reductions such as np.add.reduce (which underlies np.sum) are properly taken into account. [#13340] ## astropy.utils * Ensure that np.concatenate on masked data can take a dtype argument (added in numpy 1.20). [#13323] * Fix error when suppressing download progress bar while using non-default sys.stdout stream. [#13352] * Ensure str and repr work properly for Masked versions of structured subarrays. [#13404] * If an attribute is created using deprecated_attribute() with the alternative argument then getting or setting the value of the deprecated attribute now accesses its replacement. [#13824] ## astropy.visualization * Fixed calling .tight_layout() on a WCSAxes. [#12418] ## astropy.wcs * WCS.pixel_to_world now creates an EarthLocation object using MJD-AVG if present before falling back to the old behaviour of using MJD-OBS. [#12598] * The locations of WCSAxes ticks and tick-labels are now correctly calculated when the DPI of a figure changes between a WCSAxes being created and the figure being drawn, or when a rasterized artist is added to the WCSAxes. [#12630] * Fix a bug where SlicedLowLevelWCS.world_to_pixel_values would break when the result of the transform is dependent on the coordinate of a sliced out pixel. [#13579] * Updated bundled WCSLIB version to 7.12. This update includes bug fixes to wcssub() in how it handles temporal axes with -TAB and fixes handling of status returns from linp2x() and linx2p() relating to distortion functions, in particular affecting TPV distortions - see #13509. For a full list of changes - see http://www.atnf.csiro.au/people/mcalabre/WCS/CHANGES or astropy/cextern/wcslib/CHANGES. [#13635] * Fixed WCS validation not working properly if HDUList is needed for multi-extension FITS file. [#13668] ------------------------------------------------------------------- Mon Jun 20 09:55:12 UTC 2022 - Ben Greiner <code@bnavigator.de> - Skip two tests because of hypothesis -- gh#astropy/astropy#13275 ------------------------------------------------------------------- Tue May 31 20:51:59 UTC 2022 - Ben Greiner <code@bnavigator.de> - Skip two test categories segfaulting: gh#astropy/astropy#13286 ------------------------------------------------------------------- Thu May 26 15:46:09 UTC 2022 - Ben Greiner <code@bnavigator.de> - Update to 5.1 * Astropy 5.1 is a major release that adds significant new functionality since the 5.0 LTS release. * In particular, this release includes: - Updates to cosmology - doppler_redshift() equivalency - Specifying data types when reading ASCII tables - Structured Columns - New model fitters have been added - Allow time conversions without predictive Earth rotation data (IERS-A) - Uncertainty classes can be transformed into each other - Schechter1D Model * In addition to these major changes, Astropy v5.1 includes a large number of smaller improvements and bug fixes, which are described in the Full Changelog. ------------------------------------------------------------------- Sat Apr 23 19:27:14 UTC 2022 - Ben Greiner <code@bnavigator.de> - Enable tests requiring Pytest 7 ------------------------------------------------------------------- Fri Apr 1 17:57:36 UTC 2022 - Ben Greiner <code@bnavigator.de> - Update to 5.0.4 # Bug Fixes ## astropy.modeling * Fixed the Gaussian2D bounding_box when theta is an angular Quantity. [#13021] ## astropy.utils * Reverted astropy.utils.iers.iers.IERS_A_URL to maia.usno.navy.mil domain instead of NASA FTP to work around server issues. [#13004] # Other Changes and Additions * Updated bundled WCSLIB to version 7.9 with several bugfixes and added support for time coordinate axes in wcsset() and wcssub(). The four-digit type code for the time axis will have the first digit set to 4, i.e., four digit code will be 4xxx where x is a digit 0-9. For a full list of bug fixes see https://www.atnf.csiro.au/people/mcalabre/WCS/CHANGES [#12994] (when building --without system_wcslib) - Release 5.0.3 # Bug Fixes ## astropy.convolution * Bugfix in astropy.convolution.utils.discretize_model which allows the function to handle a CompoundModel. Before this fix, discretize_model was confusing CompoundModel with a callable function. [#12959] ## astropy.io.fits * Fix write and read FITS tables with multidimensional items, using from_columns without previousely defined ColDefs structure. [#12863] ## astropy.io.votable * Fix VOTable linting to avoid use of shell option. [#12985] astropy.utils * Fix XML linting to avoid use of shell option. [#12985] # Other Changes and Additions * Updated the bundled CFITSIO library to 4.1.0. [#12967] (when building --without system_cfitsio) ------------------------------------------------------------------- Sun Mar 13 08:10:02 UTC 2022 - Ben Greiner <code@bnavigator.de> - Update to 5.0.2 astropy.io.ascii * Bugfix to add backwards compatibility for reading ECSV version 0.9 files with non-standard column datatypes (such as `object`, `str`, `datetime64`, etc.), which would raise a ValueError in ECSV version 1.0. [#12880] * astropy.io.misc * Bugfix for `units_mapping` schema's property name conflicts. Changes: - `inputs` to `unit_inputs` - `outputs` to `unit_outputs` [#12800] astropy.io.votable * Fixed a bug where `astropy.io.votable.validate` was printing output to `sys.stdout` when the `output` paramter was set to `None`. `validate` now returns a string when `output` is set to `None`, as documented. [#12604] astropy.modeling * Fix handling of units on `scale` parameter in BlackBody model. [#12318] * Indexing on models can now be used with all types of integers (like `numpy.int64`) instead of just `int`. [#12561] * Fix computation of the separability of a `CompoundModel` where another `CompoundModel` is on the right hand side of the `&` operator. [#12907] * Provide a hook (`Model._calculate_separability_matrix`) to allow subclasses of `Model` to define how to compute their separability matrix. [#12900] astropy.stats * Fixed a bug in which running `kuiper_false_positive_probability(D,N)` on distributions with many data points could produce NaN values for the false positive probability of the Kuiper statistic. [#12896] astropy.wcs * Fixed a bug due to which `naxis`, `pixel_shape`, and `pixel_bounds` attributes of `astropy.wcs.WCS` were not restored when an `astropy.wcs.WCS` object was unpickled. This fix also eliminates `FITSFixedWarning` warning issued during unpiclikng of the WCS objects related to the number of axes. This fix also eliminates errors when unpickling WCS objects originally created using non-default values for `key`, `colsel`, and `keysel` parameters. [#12844] ------------------------------------------------------------------- Fri Jan 28 19:27:20 UTC 2022 - Ben Greiner <code@bnavigator.de> - Update to 5.0.1 astropy.coordinates * Trying to create an instance of astropy.coordinates.Distance by providing both z and parallax now raises the expected ValueError. [#12531] * Fixed a bug where changing the wrap angle of the longitude component of a representation could raise a warning or error in certain situations. [#12556] * astropy.coordinates.Distance constructor no longer ignores the unit keyword when parallax is provided. [#12569] astropy.cosmology * astropy.cosmology.utils.aszarr can now convert Column objects. [#12525] * Reading a cosmology from an ECSV will load redshift and Hubble parameter units from the cosmology units module. [#12636] astropy.io.fits * Fix formatting issue in _dump_coldefs and add tests for tabledump and tableload convenience functions. [#12526] astropy.io.misc * YAML can now also represent quantities and arrays with structured dtype, as well as structured scalars based on np.void. [#12509] astropy.modeling * Fixes error when fitting multiplication or division based compound models where the sub-models have different output units. [#12475] * Bugfix for incorrectly initialized and filled parameters data for Spline1D model. [#12523] * Bugfix for keyerror thrown by Model.input_units_equivalencies when used on fix_inputs models which have no set unit equivalencies. [#12597] astropy.table * astropy.table.Table.keep_columns() and astropy.table.Table.remove_columns() now work with generators of column names. [#12529] * Avoid duplicate storage of info in serialized columns if the column used to serialize already can hold that information. [#12607] astropy.timeseries * Fixed edge case bugs which emerged when using aggregate_downsample with custom bins. [#12527] astropy.units * Structured units can be serialized to/from yaml. [#12492] * Fix bad typing problems by removing interaction with NDArray.__class_getitem__. [#12511] * Ensure that Quantity.to_string(format='latex') properly typesets exponents also when u.quantity.conf.latex_array_threshold = -1 (i.e., when the threshold is taken from numpy). [#12573] * Structured units can now be copied with copy.copy and copy.deepcopy and also pickled and unpicked also for protocol >= 2. This does not work for big-endian architecture with older numpy<1.21.1. [#12583] astropy.utils * Ensure that a Masked instance can be used to initialize (or viewed as) a numpy.ma.Maskedarray. [#12482] * Ensure Masked also works with numpy >=1.22, which has a keyword argument name change for np.quantile. [#12511] * astropy.utils.iers.LeapSeconds.auto_open() no longer emits unnecessary warnings when astropy.utils.iers.conf.auto_max_age is set to None. [#12713] ------------------------------------------------------------------- Tue Dec 28 20:00:07 UTC 2021 - Ben Greiner <code@bnavigator.de> - Skip flaky test_color_print3 ------------------------------------------------------------------- Tue Dec 28 12:53:13 UTC 2021 - Ben Greiner <code@bnavigator.de> - Update to version 5.0 * https://docs.astropy.org/en/stable/whatsnew/5.0.html * Astropy 5.0 is a major release that adds significant new functionality since the 4.3.x series of releases. In addition, it is a long-term support release (LTS) which will be supported with bug fixes for two years. In particular, this release includes: * Support for reading, writing, and converting Cosmology * Cosmology units module * New Models * Added support for dask arrays in tables * Added support for registering array-like objects as mixin columns * Support for reading and writing tables to Parquet format * Support for reading and writing tables to MRT format * Support for masked quantity columns, including masked FITS columns with units * Converting SkyCoord to QTable * New Unified I/O architecture * In addition to these major changes, Astropy v5.0 includes a large number of smaller improvements and bug fixes, which are described in the Full Changelog. https://docs.astropy.org/en/stable/changelog.html#changelog - Drop patches fixed upstream * astropy-pr12006-cfitsio4.patch * astropy-pr12159-py310.patch ------------------------------------------------------------------- Mon Dec 27 17:29:17 UTC 2021 - Ben Greiner <code@bnavigator.de> - Add astropy-pr12159-py310.patch -- gh#astropy/astropy#12159 ------------------------------------------------------------------- Thu Oct 28 20:50:43 UTC 2021 - Ben Greiner <code@bnavigator.de> - Skip test_no_numpy_warnings[contours] due to wrong MPL version check -- gh#astropy/astropy#12050 ------------------------------------------------------------------- Fri Aug 27 10:02:29 UTC 2021 - Ben Greiner <code@bnavigator.de> - Suppress hypothesis health check for slow OBS episodes ------------------------------------------------------------------- Wed Aug 18 11:19:36 UTC 2021 - Ben Greiner <code@bnavigator.de> - Update to version 4.3.1 Bug Fixes astropy.io.fits * In fits.io.getdata do not fall back to first non-primary extension when user explicitly specifies an extension. [#11860] * Ensure multidimensional masked columns round-trip properly to FITS. [#11911] * Ensure masked times round-trip to FITS, even if multi-dimensional. [#11913] * Raise ValueError if an np.float32 NaN/Inf value is assigned to a header keyword. [#11922] astropy.modeling * Fixed bug in fix_inputs handling of bounding boxes. [#11908] astropy.table * Fix an error when converting to pandas any Table subclass that automatically adds a table index when the table is created. An example is a binned TimeSeries table. [#12018] astropy.units * Ensure that unpickling quantities and units in new sessions does not change hashes and thus cause problems with (de) composition such as getting different answers from the .si attribute. [#11879] * Fixed cannot import name imperial from astropy.units namespace. [#11977] astropy.utils * Ensure any .info on Masked instances is propagated correctly when viewing or slicing. As a consequence, MaskedQuantity can now be correctly written to, e.g., ECSV format with serialize_method='data_mask'. [#11910] ------------------------------------------------------------------- Thu Aug 5 23:57:51 UTC 2021 - Ben Greiner <code@bnavigator.de> - Add astropy-pr12006-cfitsio4.patch for cfitsio 4 gh#astropy/astropy#12006 - Revert the use of bundled cfitsio for non x86 architectures. Those just had cfitsio earlier in the repositories than x86. ------------------------------------------------------------------- Thu Aug 5 14:04:16 UTC 2021 - Ben Greiner <code@bnavigator.de> - Update to version 4.3.post1 Astropy 4.3 is a major release that adds significant new functionality since the 4.2.x series of releases. * Transformations to AltAz are now much more precise (and faster) * Improvements in making Astropy thread-safe * Performance improvements to sigma clipping * Changes in the Time and IERS leap second handling * Support for multidimensional and object columns in ECSV * Support for reading and writing tables to QDP format * Append table to existing FITS file * General masked class for Quantity and other ndarray subclasses * Configuration file improvements * Support for different solvers and bracket option in z_at_value * Full changelog: https://docs.astropy.org/en/stable/changelog.html - Drop patch and files merged upstream: * astropy-pr11260+pr11549-wcs76.patch * dss.14.29.56-62.41.05.fits.gz * tab-time-last-axis.fits - Use bundled cfitsio for s390x, Power and ARM - Increase Hypothesis test deadline to 5s ------------------------------------------------------------------- Sun Jul 4 13:26:14 UTC 2021 - Ben Greiner <code@bnavigator.de> - Replace astropy-pr11260-wcsfailures.patch with astropy-pr11260+pr11549-wcs76.patch * fixes test failures because of the recent Tumbleweed update to wcslib 7.6 * include binary test file tab-time-last-axis.fits from gh#astropy/astropy#11549, which does not fit into the patchfile ------------------------------------------------------------------- Sat Apr 17 15:30:57 UTC 2021 - Ben Greiner <code@bnavigator.de> - Fix python_expand for test call ------------------------------------------------------------------- Thu Apr 8 16:46:35 UTC 2021 - Ben Greiner <code@bnavigator.de> - Update to version 4.2.1 astropy.cosmology * Fixed an issue where specializations of the comoving distance calculation for certain cosmologies could not handle redshift arrays. [#10980] astropy.io.fits * Fix bug where manual fixes to invalid header cards were not preserved when saving a FITS file. [#11108] astropy.io.votable * NumericArray converter now properly broadcasts scalar mask to array. [#11157] astropy.table * Fix bug when initializing a Table subclass that uses TableAttribute's. If the data were an instance of the table then attributes provided in the table initialization call could be ignored. [#11217] astropy.time * Change epoch of TimeUnixTAI ("unix_tai") from 1970-01-01T00:00:00 UTC to 1970-01-01T00:00:00 TAI to match the intended and documented behaviour. This essentially changes the resulting times by 8.000082 seconds, the initial offset between TAI and UTC. [#11249] astropy.units * Fixed a bug with the quantity_input decorator where allowing dimensionless inputs for an argument inadvertently disabled any checking of compatible units for that argument. [#11283] astropy.utils * Fix a bug so that np.shape, np.ndim and np.size again work on classes that use ShapedLikeNDArray, like representations, frames, sky coordinates, and times. [#11133] astropy.wcs * Fix error when a user defined proj_point parameter is passed to fit_wcs_from_points. [#11139] ------------------------------------------------------------------- Mon Mar 8 12:07:01 UTC 2021 - Ben Greiner <code@bnavigator.de> - Fix test failures with updated wcslib -- gh#astropy/astropy#11260 * Add astropy-pr11260-wcsfailures.patch * Add dss.14.29.56-62.41.05.fits.gz ------------------------------------------------------------------- Fri Jan 15 18:01:11 UTC 2021 - Benjamin Greiner <code@bnavigator.de> - Make sure that the python >= 3.7 requirement is checked on build time and let rpm do the rest. - Use bundled libraries on Leap 15.X ------------------------------------------------------------------- Fri Jan 1 19:03:47 UTC 2021 - Benjamin Greiner <code@bnavigator.de> - Increase the hypothesis test deadline ------------------------------------------------------------------- Tue Dec 8 22:41:32 UTC 2020 - Benjamin Greiner <code@bnavigator.de> - OBS thinks the test flavor creates a build-cycle. Reintroduce the pseudo package suffix. ------------------------------------------------------------------- Sat Nov 28 21:28:47 UTC 2020 - Benjamin Greiner <code@bnavigator.de> - Update to Version 4.2 Astropy 4.2 is a major release that adds new funcionality since the 4.1 release. In particular, this release includes: * Planck 2018 is accepted and now the default cosmology * Time performance improvements * Removed ERFA module In addition to these major changes, Astropy v4.2 includes smaller improvements and bug fixes and significant cleanup, which are described in the Full Changelog. By the numbers: * 183 issues have been closed since v4.1 * 105 pull requests have been merged since v4.1 * 63 distinct people have contributed code - Bump requirements versions - Drop astropy-pr10329-unbundle-erfa_4.1.patch merged upstream ------------------------------------------------------------------- Thu Oct 22 09:36:36 UTC 2020 - Benjamin Greiner <code@bnavigator.de> - Update to 4.1 Astropy 4.1 is a major release that contains bug fixes and new features since the 4.0.x series of releases. In particular, this release includes: * A new SpectralCoord class for representing and transforming spectral quantities * Support for writing Dask arrays to FITS files * Added True Equator Mean Equinox (TEME) frame for satellite two- line ephemeris data * Support for in-place setting of array-valued SkyCoord and frame objects * Change in the definition of equality comparison for coordinate classes * Support use of SkyCoord in table vstack, dstack, and insert_row * Support for table cross-match join with SkyCoord or N-d columns * Support for custom attributes in Table subclasses * Added a new Time subformat unix_tai * Added support for the -TAB convention in FITS WCS * Support for replacing submodels in CompoundModel * Support for units on otherwise unitless models via the Model.coerce_units method. * Support for ASDF serialization of models In addition to these major changes, Astropy v4.0 includes a large number of smaller improvements and bug fixes, which are described in the Full Changelog. By the numbers: * 381 issues have been closed since v4.0 * 511 pull requests have been merged since v4.0 * 66 distinct people have contributed code to this release, 23 of which are first time contributors to Astropy - Drop astropy-pr10545-remove-newline-3d_cd_hdr.patch * merged upstream * gh#astropy/astropy#10545 - Add astropy-pr10329-unbundle-erfa_4.1.patch * Remove bundled _erfa but use system package pyerfa instead * gh#astropy/astropy#10329 - enable optional pytest-xdist ------------------------------------------------------------------- Thu Oct 15 12:22:54 UTC 2020 - Benjamin Greiner <code@bnavigator.de> - Update to 4.0.3 * astropy.table Fixed a small bug where initializing an empty `Column` with a structured dtype with a length and a shape failed to give the requested dtype. [#10819] * Fixed installation of the source distribution with pip<19. [#10837, #10852] ------------------------------------------------------------------- Sat Oct 10 20:46:40 UTC 2020 - Benjamin Greiner <code@bnavigator.de> - 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 ------------------------------------------------------------------- Fri Jul 17 11:42:19 UTC 2020 - Benjamin Greiner <code@bnavigator.de> - actually detect unit test failures with sys.exit(astropy.tests()) - do not fail on DeprecationWarnings - support updated system lib wcslib 7.3 with astropy-pr10433-wcslib73-tests.patch gh#astropy/astropy#10433 astropy-pr10440-wcs-datfix.patch gh#astropy/astropy#10440 - clean up blank lines after pytest report and prevent possible failure of tests depending on test order astropy-pr10545-remove-newline-3d_cd_hdr.patch gh#astropy/astropy#10545 ------------------------------------------------------------------- Thu Jul 9 23:14:09 UTC 2020 - Benjamin Greiner <code@bnavigator.de> - Switch from pytest macro back to astropy.test() This avoids compiling a second time inplace and obsoletes the necessary deprecation warningsfilters. New deprecation warnings from numpy 1.19 started to fail the test multibuild again. Can now drop astropy-openSUSE-ignore-warnings.patch - Fix update-alternatives warnings by expanding the loop early ------------------------------------------------------------------- Sun Jul 5 12:24:49 UTC 2020 - Benjamin Greiner <code@bnavigator.de> - Fix conftest collection error: import local source dir for tests - Remove ignore pytest deprecation fixed by pytest-doctestplus >= 0.6 - Ignore leap second expiry and dubious year warnings for reproducible builds: gh#astropy/astropy#10228 astropy-openSUSE-ignore-warnings.patch ------------------------------------------------------------------- Wed Jun 3 07:42:45 UTC 2020 - Tomáš Chvátal <tchvatal@suse.com> - Switch to multibuild to avoid cycle with python-asdf package ------------------------------------------------------------------- Wed May 27 09:36:06 UTC 2020 - Petr Gajdos <pgajdos@suse.com> - %python3_only -> %python_alternative ------------------------------------------------------------------- Sun Apr 19 10:53:30 UTC 2020 - Benjamin Greiner <code@bnavigator.de> - Update to 4.0.1.post1 * astropy.config [gh#astropy/astropy#9975] Fixed a bug where importing a development version of a package that uses ``astropy`` configuration system can result in a ``~/.astropy/config/package..cfg`` file. * astropy.coordinates [gh#astropy/astropy#9815] Fixed a bug where a vestigal trace of a frame class could persist in the transformation graph even after the removal of all transformations involving that frame class. [gh#astropy/astropy#9815] Fixed a bug with ``TransformGraph.remove_transform()`` when the "from" and "to" frame classes are not explicitly specified. [gh#astropy/astropy#9900] Read-only longitudes can now be passed in to ``EarthLocation`` even if they include angles outside of the range of -180 to 180 degrees. [gh#astropy/astropy#9980] ```SkyCoord.radial_velocity_correction``` no longer raises an Exception when space motion information is present on the SkyCoord. * astropy.io [gh#astropy/astropy#9866] Fixed a bug that prevented the unified I/O infrastructure from working with datasets that are represented by directories rather than files. * astropy.io.ascii [gh#astropy/astropy#9918] Fixed a bug in the ``fast_reader`` C parsers incorrectly returning entries of isolated positive/negative signs as ``float`` instead of ``str``. [gh#astropy/astropy#9923] Fixed a segmentation fault in the ``fast_reader`` C parsers when parsing an invalid file with ``guess=True`` and the file contains inconsistent column numbers in combination with a quoted field; e.g., ``"1 2\n 3 4 '5'"``. [gh#astropy/astropy#9933] Magnitude, decibel, and dex can now be stored in ``ecsv`` files. * astropy.io.misc [gh#astropy/astropy#9933] Magnitude, decibel, and dex can now be stored in ``hdf5`` files. [gh#astropy/astropy#9956, gh#astropy/astropy#9961] Fixed serialization of polynomial models to include non default values of domain and window values. [gh#astropy/astropy#9950] Fixed a bug which affected overwriting tables within ``hdf5`` files. Overwriting an existing path with associated column meta data now also overwrites the meta data associated with the table. [gh#astropy/astropy#9983] Fixed serialization of Time objects with location under time-1.0.0 ASDF schema. * astropy.io.fits [gh#astropy/astropy#9711, gh#astropy/astropy#9934] Fix regression with ``GroupsHDU`` which needs to modify the header to handle invalid headers, and fix accesing ``.data`` for empty HDU. [gh#astropy/astropy#9711] Fix ``fitsdiff`` when its arguments are directories that contain other directories. [gh#astropy/astropy#9958] Fix writing noncontiguous data to a compressed HDU. [gh#astropy/astropy#9978] Added verification of ``disp`` (``TDISP``) keyword to ``fits.Column`` and extended tests for ``TFORM`` and ``TDISP`` validation. [gh#astropy/astropy#10012] Fix checksum verification to process all HDUs instead of only the first one because of the lazy loading feature. [gh#astropy/astropy#10030] Allow passing ``output_verify`` to ``.close`` when using the context manager. [gh#astropy/astropy#10041] Prevent instantiation of ``PrimaryHDU`` and ``ImageHDU`` with a scalar. [gh#astropy/astropy#10069] Fix column access by attribute with FITS_rec: columns with scaling or columns from ASCII tables where not properly converted when accessed by attribute name. * astropy.io.misc [gh#astropy/astropy#9933] Magnitude, decibel, and dex can now be stored in ``hdf5`` files. [gh#astropy/astropy#9956, gh#astropy/astropy#9961] Fixed serialization of polynomial models to include non default values of domain and window values. [gh#astropy/astropy#9950] Fixed a bug which affected overwriting tables within ``hdf5`` files. Overwriting an existing path with associated column meta data now also overwrites the meta data associated with the table. [gh#astropy/astropy#9983] Fixed serialization of Time objects with location under time-1.0.0 ASDF schema. * astropy.modeling [gh#astropy/astropy#9987] Fixed a bug in setting default values of parameters of orthonormal polynomials when constructing a model set. * astropy.table [gh#astropy/astropy#9839] Fixed bug in ``Table.reverse`` for tables that contain non-mutable mixin columns (like ``SkyCoord``) for which in-place item update is not allowed. [gh#astropy/astropy#9933] Tables containing Magnitude, decibel, and dex columns can now be saved to ``ecsv`` files. [gh#astropy/astropy#10027] Fixed bug where adding or inserting a row fails on a table with an index defined on a column that is not the first one. [gh#astropy/astropy#10068] Ensured that ``table.show_in_browser`` also worked for mixin columns like ``Time`` and ``SkyCoord``. * astropy.time [gh#astropy/astropy#9679] Fix inaccuracy when converting between TimeDelta and datetime.timedelta. [gh#astropy/astropy#9812] Fixed exception when changing ``format`` in the case when ``out_subfmt`` is defined and is incompatible with the new format. [gh#astropy/astropy#9812] Fixed exceptions in ``Time.to_value()``: when supplying any ``subfmt`` argument for string-based formats like 'iso', and for ``subfmt='long'`` for the formats 'byear', 'jyear', and 'decimalyear'. [gh#astropy/astropy#9969] Fixed bug where the location attribute was lost when creating a new ``Time`` object from an existing ``Time`` or list of ``Time`` objects. [gh#astropy/astropy#10034] Fixed a bug where an exception occurred when creating a ``Time`` object if the ``val1`` argument was a regular double and the ``val2`` argument was a ``longdouble``. * astropy.timeseries [gh#astropy/astropy#10013] Fixed issue with reference time for the ``transit_time`` parameter returned by the ``BoxLeastSquares`` periodogram. Now, the ``transit_time`` will be within the range of the input data and arbitrary time offsets/zero points no longer affect results. * astropy.units [gh#astropy/astropy#9948] Fix for ``quantity_input`` annotation raising an exception on iterable types that don't define a general ``__contains__`` for checking if ``None`` is contained (e.g. Enum as of python3.8), by instead checking for instance of Sequence. [gh#astropy/astropy#10066] Fix for ``u.Quantity`` not taking into account ``ndmin`` if constructed from another ``u.Quantity`` instance with different but convertible unit * astropy.utils [gh#astropy/astropy#9981] Fixed ``deprecated_renamed_argument`` not passing in user value to deprecated keyword when the keyword has no new name. [gh#astropy/astropy#9985] Fixed ``deprecated_renamed_argument`` not issuing a deprecation warning when deprecated keyword without new name is passed in as positional argument. [gh#astropy/astropy#10007] Fixed detection of read-only filesystems in the caching code. * astropy.visualization [gh#astropy/astropy#9848] Fixed bug from matplotlib >=3.1 where an empty Quantity array is sent for unit conversion as an empty list. [gh#astropy/astropy#9913] Fix bug in ``ZScaleInterval`` to return the array minimum and maximum when there are less then ``min_npixels`` in the input array. [gh#astropy/astropy#8004, gh#astropy/astropy#9991] Fix a bug in simplifying axis labels that affected non-rectangular frames. * Increase minimum asdf version to 2.5.2. [gh#astropy/astropy#9996, gh#astropy/astropy#9819] * Updated wcslib to v7.2. [gh#astropy/astropy#10021] - updated test requirements and recommends - run pytest directly ------------------------------------------------------------------- Tue Jan 7 10:19:19 UTC 2020 - Sebastian Wagner <sebix+novell.com@sebix.at> - Require erfa >= 1.7 because of https://github.com/astropy/astropy/issues/9654 ------------------------------------------------------------------- Mon Jan 6 17:59:53 UTC 2020 - Todd R <toddrme2178@gmail.com> - Update to 4.0 + New Features > astropy.config * The config and cache directories and the name of the config file are now customizable. This allows affiliated packages to put their configuration files in locations other than ``CONFIG_DIR/.astropy/``. > astropy.constants * The version of constants can be specified via ScienceState in a way that ``constants`` and ``units`` will be consistent. * Default constants now use CODATA 2018 and IAU 2015 definitions. * Constants can be pickled and unpickled. > astropy.convolution * Fixed a bug where having a kernel defined using unitless astropy quantity objects would result in a crash > astropy.coordinates * Changed ``coordinates.solar_system_ephemeris`` to also accept local files as input. The ephemeris can now be selected by either keyword (e.g. 'jpl', 'de430'), URL or file path. * Added a ``cylindrical`` property to ``SkyCoord`` for shorthand access to a ``CylindricalRepresentation`` of the coordinate, as is already available for other common representations. * The default parameters for the ``Galactocentric`` frame are now controlled by a ``ScienceState`` subclass, ``galactocentric_frame_defaults``. New parameter sets will be added to this object periodically to keep up with ever-improved measurements of the solar position and motion. * Coordinate frame classes can now have multiple aliases by assigning a list of aliases to the class variable ``name``. Any of the aliases can be used for attribute-style access or as the target of ``tranform_to()`` calls. * Passing a NaN to ``Distance`` no longer raises a warning. > astropy.cosmology * The pre-publication Planck 2018 cosmological parameters are included as the ``Planck2018_arXiv_v2`` object. Please note that the values are preliminary, and when the paper is accepted a final version will be included as ``Planck18``. > astropy.io.ascii * Removed incorrect warnings on ``Overflow`` when reading in ``FloatType`` 0.0 with ``use_fast_converter``; synchronised ``IntType`` ``Overflow`` warning messages. > astropy.io.misc * Eliminate deprecated compatibility mode when writing ``Table`` metadata to HDF5 format. * Add support for orthogonal polynomial models to ASDF. > astropy.io.fits * Changed the ``fitscheck`` and ``fitsdiff`` script to use the ``argparse`` module instead of ``optparse``. * Allow writing of ``Table`` objects with ``Time`` columns that are also table indices to FITS files. > astropy.io.votable * Support VOTable version 1.4. The main addition is the new element, TIMESYS, which allows defining of metadata for temporal coordinates much like COOSYS defines metadata for celestial coordinates. > astropy.logger * Added a configuration option to specify the text encoding of the log file, with the default behavior being the platform-preferred encoding. > astropy.modeling * Major rework of modeling internals. `See modeling documentation for details. <https://docs.astropy.org/en/v4.0.x/modeling/changes_for_4.html>`_ . * Add ``Tabular1D.inverse``. * ``Model.rename`` was changed to add the ability to rename ``Model.inputs`` and ``Model.outputs``. * New function ``fix_inputs`` to generate new models from others by fixing specific inputs variable values to constants. * ``inputs`` and ``outputs`` are now model instance attributes, and ``n_inputs`` and ``n_outputs`` are class attributes. Backwards compatible default values of ``inputs`` and ``outputs`` are generated. ``Model.inputs`` and ``Model.outputs`` are now settable which allows renaming them on per user case. * Add a new model representing a sequence of rotations in 3D around an arbitrary number of axes. * Add many of the numpy ufunc functions as models. * Add ``BlackBody`` model. * Add ``Drude1D`` model. * Added analytical King model (KingProjectedAnalytic1D). * Added Exponential1D and Logarithmic1D models. > astropy.nddata * Add a way for technically invalid but unambiguous units in a fits header to be parsed by ``CCDData``. * ``NDData`` now only accepts WCS objects which implement either the high, or low level APE 14 WCS API. All WCS objects are converted to a high level WCS object, so ``NDData.wcs`` now always returns a high level APE 14 object. Not all array slices are valid for wcs objects, so some slicing operations which used to work may now fail. > astropy.stats * The ``biweight_location``, ``biweight_scale``, and ``biweight_midvariance`` functions now allow for the ``axis`` keyword to be a tuple of integers. * Added an ``ignore_nan`` option to the ``biweight_location``, ``biweight_scale``, and ``biweight_midvariance`` functions. * A numpy ``MaskedArray`` can now be input to the ``biweight_location``, ``biweight_scale``, and ``biweight_midvariance`` functions. * Removed the warning related to p0 in the Bayesian blocks algorithm. The caveat related to p0 is described in the docstring for ``Events``. > astropy.table * Improved the implementation of ``Table.replace_column()`` to provide a speed-up of 5 to 10 times for wide tables. The method can now accept any input which convertible to a column of the correct length, not just ``Column`` subclasses. * Improved the implementation of ``Table.add_column()`` to provide a speed-up of 2 to 10 (or more) when adding a column to tables, with increasing benefit as the number of columns increases. The method can now accept any input which is convertible to a column of the correct length, not just ``Column`` subclasses. * Changed the implementation of ``Table.add_columns()`` to use the new ``Table.add_column()`` method. In most cases the performance is similar or slightly faster to the previous implemenation. * ``MaskedColumn.data`` will now return a plain ``MaskedArray`` rather than the previous (unintended) ``masked_BaseColumn``. * Added depth-wise stacking ``dstack()`` in higher level table operation. It help will in stacking table column depth-wise. * Added a new table equality method ``values_equal()`` which allows comparison table values to another table, list, or value, and returns an element-by-element equality table. * Added new ``join_type='cartesian'`` option to the ``join`` operation. * Allow adding a table column as a list of mixin-type objects, for instance ``t['q'] = [1 * u.m, 2 * u.m]``. * Allow table ``join()`` using any sortable key column (e.g. Time), not just ndarray subclasses. A column is considered sortable if there is a ``<column>.info.get_sortable_arrays()`` method that is implemented. * Added ``Table.iterrows()`` for making row-wise iteration faster. * Allow table to be initialized with a list of dict where the dict keys are not the same in every row. The table column names are the set of all keys found in the input data, and any missing key/value pairs are turned into missing data in the table. * Prevent unnecessary ERFA warnings when indexing by ``Time`` columns. * Added support for sorting tables which contain non-mutable mixin columns (like ``SkyCoord``) for which in-place item update is not allowed. * Ensured that inserting ``np.ma.masked`` (or any other value with a mask) into a ``MaskedColumn`` causes a masked entry to be inserted. * Fixed a bug that caused an exception when initializing a ``MaskedColumn`` from another ``MaskedColumn`` that has a structured dtype. > astropy.tests * The plugin that handles the custom header in the test output has been moved to the ``pytest-astropy-header plugin`` package. `See the README at <https://github.com/astropy/pytest-astropy-header>`__ for information about using this new plugin. > astropy.time * Added a new time format ``ymdhms`` for representing times via year, month, day, hour, minute, and second attributes. * ``TimeDelta`` gained a ``to_value`` method, so that it becomes easier to use it wherever a ``Quantity`` with units of time could be used. * Made scalar ``Time`` and ``TimeDelta`` objects hashable based on JD, time scale, and location attributes. * Improved error message when bad input is used to initialize a ``Time`` or ``TimeDelta`` object and the format is specified. * Allow numeric time formats to be initialized with numpy ``longdouble``, ``Decimal`` instances, and strings. One can select just one of these using ``in_subfmt``. The output can be similarly set using ``out_subfmt``. * Introduce a new ``.to_value()`` method for ``Time`` (and adjusted the existing method for ``TimeDelta``) so that one can get values in a given ``format`` and possible ``subfmt`` (e.g., ``to_value('mjd', 'str')``. * Prevent unecessary ERFA warnings when sorting ``Time`` objects. > astropy.timeseries * Addig ``epoch_phase``, ``wrap_phase`` and ``normalize_phase`` keywords to ``TimeSeries.fold()`` to control the phase of the epoch and to return normalized phase rather than time for the folded TimeSeries. > astropy.uncertainty * ``Distribution`` was rewritten such that it deals better with subclasses. As a result, Quantity distributions now behave correctly with ``to`` methods yielding new distributions of the kind expected for the starting distribution, and ``to_value`` yielding ``NdarrayDistribution`` instances. * The ``pdf_*`` properties that were used to calculate statistical properties of ``Distrubution`` instances were changed into methods. This allows one to pass parameters such as ``ddof`` to ``pdf_std`` and ``pdf_var`` (which generally should equal 1 instead of the default 0), and reflects that these are fairly involved calcuations, not just "properties". > astropy.units * Support for unicode parsing. Currently supported superscripts are Ohm, Ångström, and the micro-sign. * Accept non-unit type annotations in @quantity_input. * For numpy 1.17 and later, the new ``__array_function__`` protocol is used to ensure that all top-level numpy functions interact properly with ``Quantity``, preserving units also in operations like ``np.concatenate``. * Add equivalencies for surface brightness units to spectral_density. > astropy.utils * ``astropy.utils.data.download_file`` and ``astropy.utils.data.get_readable_fileobj`` now provides an ``http_headers`` keyword to pass in specific request headers for the download. It also now defaults to providing ``User-Agent: Astropy`` and ``Accept: */*`` headers. The default ``User-Agent`` value can be set with a new ``astropy.data.conf.default_http_user_agent`` configuration item. * Added a new ``astropy.utils.misc.unbroadcast`` function which can be used to return the smallest array that can be broadcasted back to the initial array. * The specific IERS Earth rotation parameter table used for time and coordinate transformations can now be set, either in a context or per session, using ``astropy.utils.iers.earth_rotation_table``. * Added ``export_cache`` and ``import_cache`` to permit transporting downloaded data to machines with no Internet connection. Several new functions are available to investigate the cache contents; e.g., ``check_download_cache`` can be used to confirm that the persistent cache has not become damaged. * A new ``astropy.utils.iers.LeapSeconds`` class has been added to track leap seconds. > astropy.visualization * Added a new ``time_support`` context manager/function for making it easy to plot and format ``Time`` objects in Matplotlib. * Added support for plotting any WCS compliant with the generalized (APE 14) WCS API with WCSAxes. * Improved display of information when inspecting ``WCSAxes.coords``. * Improved error checking for the ``slices=`` argument to ``WCSAxes``. * Added support for more solar frames in WCSAxes. * Add support for one dimensional plots to ``WCSAxes``. * Add a ``get_format_unit`` to ``wcsaxes.CoordinateHelper``. * ``WCSAxes`` now, by default, sets a default label for plot axes which is the WCS physical type (and unit) for that axis. This can be disabled using the ``coords[i].set_auto_axislabel(False)`` or by explicitly setting an axis label. * Fixed the display of tick labels when plotting all sky images that have a coord_wrap less than 360. > astropy.wcs * Added a ``astropy.wcs.wcsapi.pixel_to_pixel`` function that can be used to transform pixel coordinates in one dataset with a WCS to pixel coordinates in another dataset with a different WCS. This function is designed to be efficient when the input arrays are broadcasted views of smaller arrays. * Added a ``local_partial_pixel_derivatives`` function that can be used to determine a matrix of partial derivatives of each world coordinate with respect to each pixel coordinate. * Updated wcslib to v6.4. * Improved the ``SlicedLowLevelWCS`` class in ``astropy.wcs.wcsapi`` to avoid storing chains of nested ``SlicedLowLevelWCS`` objects when applying multiple slicing operations in turn. * Added a ``wcs_info_str`` function to ``astropy.wcs.wcsapi`` to show a summary of an APE-14-compliant WCS as a string. * Added two new optional attributes to the APE 14 low-level WCS: ``pixel_axis_names`` and ``world_axis_names``. * Updated the WCS class to now correctly take and return ``Time`` objects in the high-level APE 14 API (e.g. ``pixel_to_world``. * ``SlicedLowLevelWCS`` now raises ``IndexError`` rather than ``ValueError`` on an invalid slice. * Added ``fit_wcs_from_points`` function to ``astropy.wcs.utils``. Fits a WCS object to set of matched detector/sky coordinates. * Fix various bugs in ``SlicedLowLevelWCS`` when the WCS being sliced was one dimensional. + API Changes > astropy.constants * Deprecated ``set_enabled_constants`` context manager. Use ``astropy.physical_constants`` and ``astropy.astronomical_constants``. > astropy.convolution * Removed the deprecated keyword argument ``interpolate_nan`` from ``convolve_fft``. * Removed the deprecated keyword argument ``stddev`` from ``Gaussian2DKernel``. * Deprecated and renamed ``MexicanHat1DKernel`` and ``MexicanHat2DKernel`` to ``RickerWavelet1DKernel`` and ``RickerWavelet2DKernel``. > astropy.coordinates * Removed the ``recommended_units`` attribute from Representations; it was deprecated since 3.0. * Removed the deprecated frame attribute classes, ``FrameAttribute``, ``TimeFrameAttribute``, ``QuantityFrameAttribute``, ``CartesianRepresentationFrameAttribute``; deprecated since 3.0. * Removed ``longitude`` and ``latitude`` attributes from ``EarthLocation``; deprecated since 2.0. * The ``DifferentialAttribute`` for frame classes now passes through any input to the ``allowed_classes`` if only one allowed class is specified, i.e. this now allows passing a quantity in for frame attributes that use ``DifferentialAttribute``. * Removed the deprecated ``galcen_ra`` and ``galcen_dec`` attributes from the ``Galactocentric`` frame. > astropy.extern * Remove the bundled ``six`` module. > astropy.io.ascii * Masked column handling has changed, see ``astropy.table`` entry below. > astropy.io.misc * Masked column handling has changed, see ``astropy.table`` entry below. * Removed deprecated ``usecPickle`` kwarg from ``fnunpickle`` and ``fnpickle``. > astropy.io.fits * Masked column handling has changed, see ``astropy.table`` entry below. * ``io.fits.Header`` has been made safe for subclasses for copying and slicing. As a result of this change, the private subclass ``CompImageHeader`` now always should be passed an explicit ``image_header``. * Removed the deprecated ``tolerance`` option in ``fitsdiff`` and ``io.fits.diff`` classes. * Removed deprecated keyword arguments for ``CompImageHDU``: ``compressionType``, ``tileSize``, ``hcompScale``, ``hcompSmooth``, ``quantizeLevel``. > astropy.io.votable * Changed ``pedantic`` argument to ``verify`` and change it to have three string-based options (``ignore``, ``warn``, and ``exception``) instead of just being a boolean. In addition, changed default to ``ignore``, which means that warnings will not be shown by default when loading VO tables. > astropy.modeling * Eliminates support for compound classes (but not compound instances!) * Slicing compound models more restrictive. * Shape of parameters now includes n_models as dimension. * Parameter instances now hold values instead of models. * Compound model parameters now share instance and value with constituent models. * No longer possible to assign slices of parameter values to model parameters attribute (it is possible to replace it with a complete array). * Many private attributes and methods have changed (see documentation). * Deprecated ``BlackBody1D`` model and ``blackbody_nu`` and ``blackbody_lambda`` functions. * The deprecated ``rotations.rotation_matrix_from_angle`` was removed. * Deprecated and renamed ``MexicanHat1D`` and ``MexicanHat2D`` to ``RickerWavelet1D`` and ``RickerWavelet2D``. * Deprecated ``modeling.utils.ExpressionTree``. > astropy.stats * Removed the ``iters`` keyword from sigma clipping stats functions. * Renamed the ``a`` parameter to ``data`` in biweight stat functions. * Renamed the ``a`` parameter to ``data`` in ``median_absolute_deviation``. * Renamed the ``conflevel`` keyword to ``confidence_level`` in ``poisson_conf_interval``. Usage of ``conflevel`` now issues ``AstropyDeprecationWarning``. * Renamed the ``conf`` keyword to ``confidence_level`` in ``binom_conf_interval`` and ``binned_binom_proportion``. Usage of ``conf`` now issues ``AstropyDeprecationWarning``. * Renamed the ``conf_lvl`` keyword to ``confidence_level`` in ``jackknife_stats``. Usage of ``conf_lvl`` now issues ``AstropyDeprecationWarning``. > astropy.table * The handling of masked columns in the ``Table`` class has changed in a way that may impact program behavior. Now a ``Table`` with ``masked=False`` may contain both ``Column`` and ``MaskedColumn`` objects, and adding a masked column or row to a table no longer "upgrades" the table and columns to masked. This means that tables with masked data which are read via ``Table.read()`` will now always have ``masked=False``, though specific columns will be masked as needed. Two new table properties ``has_masked_columns`` and ``has_masked_values`` were added. See the `Masking change in astropy 4.0 section within <https://docs.astropy.org/en/v4.0.x/table/masking.html>`_ for details. * Table operation functions such as ``join``, ``vstack``, ``hstack``, etc now always return a table with ``masked=False``, though the individual columns may be masked as necessary. * Changed implementation of ``Table.add_column()`` and ``Table.add_columns()`` methods. Now it is possible add any object(s) which can be converted or broadcasted to a valid column for the table. ``Table.__setitem__`` now just calls ``add_column``. * Changed default table configuration setting ``replace_warnings`` from ``['slice']`` to ``[]``. This removes the default warning when replacing a table column that is a slice of another column. * Removed the non-public method ``astropy.table.np_utils.recarray_fromrecords``. > astropy.tests * In addition to ``DeprecationWarning``, now ``FutureWarning`` and ``ImportWarning`` would also be turned into exceptions. * ``warnings_to_ignore_by_pyver`` option in ``enable_deprecations_as_exceptions()`` has changed. Please refer to API documentation. * Default settings for ``warnings_to_ignore_by_pyver`` are updated to remove very old warnings that are no longer relevant and to add a new warning caused by ``pytest-doctestplus``. > astropy.time * ``Time.get_ut1_utc`` now uses the auto-updated ``IERS_Auto`` by default, instead of the bundled ``IERS_B`` file. * Time formats that do not use ``val2`` now raise ValueError instead of silently ignoring a provided value. * Custom time formats can now accept floating-point types with extended precision. Existing time formats raise exceptions rather than discarding extended precision through conversion to ordinary floating-point. * Time formats (implemented in subclasses of ``TimeFormat``) now have their input and output routines more thoroughly validated, making it more difficult to create damaged ``Time`` objects. * The ``TimeDelta.to_value()`` method now can also take the ``format`` name as its argument, in which case the value will be calculated using the ``TimeFormat`` machinery. For this case, one can also pass a ``subfmt`` argument to retrieve the value in another form than ``float``. > astropy.timeseries * Keyword ``midpoint_epoch`` is renamed to ``epoch_time``. > astropy.uncertainty * ``Distribution`` was rewritten such that it deals better with subclasses. As a result, Quantity distributions now behave correctly with ``to`` methods yielding new distributions of the kind expected for the starting distribution, and ``to_value`` yielding ``NdarrayDistribution`` instances. > astropy.units * For consistency with ``ndarray``, scalar ``Quantity.value`` will now return a numpy scalar rather than a python one. This should help keep track of precision better, but may lead to unexpected results for the rare cases where numpy scalars behave differently than python ones (e.g., taking the square root of a negative number). * Removed the ``magnitude_zero_points`` module, which was deprecated in favour of ``astropy.units.photometric`` since 3.1. * ``EquivalentUnitsList`` now has a ``_repr_html_`` method to output a HTML table on a call to ``find_equivalent_units`` in Jupyter notebooks. > astropy.utils * ``download_file`` and related functions now accept a list of fallback sources, and they are able to update the cache at the user's request. * Allow ``astropy.utils.console.ProgressBarOrSpinner.map`` and ``.map_unordered`` to take an argument ``multiprocessing_start_method`` to control how subprocesses are started; the different methods (``fork``, ``spawn``, and ``forkserver``) have different implications in terms of security, efficiency, and behavioural anomalies. The option is useful in particular for cross-platform testing because Windows supports only ``spawn`` while Linux defaults to ``fork``. * All operations that act on the astropy download cache now take an argument ``pkgname`` that allows one to specify which package's cache to use. * Removed deprecated ``funcsigs`` and ``futures`` from ``astropy.utils.compat``. * Removed the deprecated ``astropy.utils.compat.numpy`` module. * Deprecated ``InheritDocstrings`` as it is natively supported by Sphinx 1.7 or higher. * Deprecated ``astropy.utils.timer`` module, which has been moved to ``astroquery.utils.timer`` and will be part of ``astroquery`` 0.4.0. * Deprecated ``astropy.utils.misc.set_locale`` function, as it is meant for internal use only. * The implementation of ``data_info.DataInfo`` has changed (for a considerable performance boost). Generally, this should not affect simple subclasses, but because the class now uses ``__slots__`` any attributes on the class have to be explicitly given a slot. * ``IERS`` tables now use ``nan`` to mark missing values (rather than ``1e20``). > astropy.visualization * The default ``clip`` value is now ``False`` in ``ImageNormalize``. * The default ``clip`` value is now ``False`` in ``simple_norm``. * Infinite values are now excluded when calculating limits in ``ManualInterval`` and ``MinMaxInterval``. They were already excluded in all other interval classes. + Bug Fixes > astropy.coordinates * The ``QuantityAttribute`` class now supports a None default value if a unit is specified. * When ``Representation`` classes with the same name are defined, this no longer leads to a ``ValueError``, but instead to a warning and the removal of both from the name registry (i.e., one either has to use the class itself to set, e.g., ``representation_type``, or refer to the class by its fully qualified name). > astropy.io.fits * Implemented skip (after warning) of header cards with reserved keywords in ``table_to_hdu``. * Add ``AstropyDeprecationWarning`` to ``read_table_fits`` when ``hdu=`` is selected, but does not match single present table HDU. > astropy.io.votable * Ignore BINARY2 null mask bits for string values on parsing a VOTable. In this way, the reader should never create masked values for string types. * Corrected a spurious warning issued for the ``value`` attribute of the ``<OPTION>`` element in VOTable, as well as a test that erroneously treated the warning as acceptable. > astropy.nddata * ``Cutout2D`` will now get the WCS from its first argument if that argument has with WCS property. * ``overlap_slices`` will now raise a ``ValueError`` if the input position contains any non-finite values (e.g. NaN or inf). > astropy.stats * Fixed a bug where ``bayesian_blocks`` returned a single edge. * Fixed input data type validation for ``bayesian_blocks`` to work int arrays. > astropy.table * Fix bug where adding a column consisting of a list of masked arrays was dropping the masks. * ``Quantity`` columns with custom units can now round-trip via FITS tables, as long as the custom unit is enabled during reading (otherwise, the unit will become an ``UnrecognizedUnit``). * Fix bug where string values could be truncated when inserting into a ``Column`` or ``MaskedColumn``, or when adding or inserting a row containing string values. > astropy.time * Fix bug when ``Time`` object is created with only masked elements. * Fix inaccuracy when converting between TimeDelta and datetime.timedelta. > astropy.units * Ensure that output from test functions of and comparisons between quantities can be stored into pre-allocated output arrays (using ``out=array``) > astropy.utils * For the default ``IERS_Auto`` table, which combines IERS A and B values, the IERS nutation parameters "dX_2000A" and "dY_2000A" are now also taken from the actual IERS B file rather than from the B values stored in the IERS A file. Any differences should be negligible for any practical application, but this may help exactly reproducing results. > astropy.visualization * Calling ``WCSAxes.set_axis_off()`` now correctly turns off drawing the Axes. * Fix incorrect transformation behavior in ``WCSAxes.plot_coord`` and correctly handle when input coordinates are not already in spherical representations. * Fixed ``ImageNormalize`` so that when it is intialized without ``data`` it will still use the input ``interval`` class. * Fixed ``ImageNormalize`` to handle input data with non-finite values. > astropy.wcs * Fix incorrect value returned by ``wcsapi.HighLevelWCSWrapper.axis_correlation_matrix``. * Fix NaN-masking of world coordinates when some but not all of the coordinates were flagged as invalid by WCSLIB. This occurred for example with WCS with >2 dimensions where two of the dimensions were celestial coordinates and pixel coordinates ouside of the 'sky' were converted to world coordinates - previously all world coordinates were masked even if uncorrelated with the celestial axes, but this is no longer the case. * The default WCS to celestial frame mapping for world coordinate systems that specify ``TLON`` and ``TLAT`` coordinates will now return an ITRS frame with the representation class set to ``SphericalRepresentation``. This fixes a bug that caused ``WCS.pixel_to_world`` to raise an error for such world coordinate systems. * ``FITSWCSAPIMixin`` now returns tuples not lists from ``pixel_to_world`` and ``world_to_pixel``. + Other Changes and Additions * Versions of Python <3.6 are no longer supported. * Matplotlib 2.1 and later is now required. * Versions of Numpy <1.16 are no longer supported. * Updated the bundled CFITSIO library to 3.470. See ``cextern/cfitsio/docs/changes.txt`` for additional information. * The bundled ERFA was updated to version 1.7.0. This is based on SOFA 20190722. This includes a fix to avoid precision loss for negative JDs, and also includes additional routines to allow updates to the leap-second table. * The default server for the IERS data files has been updated to reflect long-term downtime of the canonical USNO server. ------------------------------------------------------------------- Wed Nov 20 20:08:31 UTC 2019 - Todd R <toddrme2178@gmail.com> - Update to 3.2.3 + Other Changes and Additions * Updated IERS A URLs due to USNO prolonged maintenance - Update to 3.2.2 + Bug fixes * astropy.convolution > Fixed a bug in ``discretize_oversample_1D/2D()`` from ``astropy.convolution.utils``, which might occasionally introduce unexpected oversampling grid dimensions due to a numerical precision issue. > Fixed a bug where having a kernel defined using unitless astropy quantity objects would result in a crash * astropy.coordinates > Fix concatenation of representations for cases where the units were different. > Check for NaN values in catalog and match coordinates before building and querying the ``KDTree`` for coordinate matching. > Fix sky coordinate matching when a dimensionless distance is provided. > Raise a faster and more meaningful error message when differential data units are not compatible with a containing representation's units. > Changed the timescale in ICRS to CIRS from 'tdb' to 'tt' conversion and vice-versa, as the erfa function that gets called in the process, pnm06a accepts time in TT. * astropy.io.ascii > Fixed the fast reader when used in parallel and with the multiprocessing 'spawn' method (which is the default on MacOS X with Python 3.8 and later), and enable parallel fast reader on Windows. * astropy.io.fits > Fixes bug where an invalid TRPOS<n> keyword was being generated for FITS time column when no location was available. > Fixed a wrong exception when converting a Table with a unit that is not FITS compliant and not convertible to a string using ``format='fits'``. > Fixed an issue with A3DTABLE extension that could not be read. > Fixed the update of the header when creating GroupsHDU from data. * astropy.nddata > Fix to ``add_array``, which now accepts ``array_small`` having dimensions equal to ``array_large``, instead of only allowing smaller sizes of arrays. * astropy.stats > Fixed ``median_absolute_deviation`` for the case where ``ignore_nan=True`` and an input masked array contained both NaNs and infs. * astropy.table > Comparisons between ``Column`` instances and ``Quantity`` will now correctly take into account the unit (as was already the case for regular operations such as addition). * astropy.time > Allow ``Time`` to be initialized with an empty value for all formats. > Fixed a troubling bug in which ``Time`` could loose precision, with deviations of 300 ns. * astropy.timeseries > Fixed handling of ``Quantity`` input data for all methods of ``LombScarge.false_alarm_probabilty``. * astropy.units > Allow conversion of ``Column`` with logarithmic units to a suitable ``Quantity`` subclass if ``subok=True``. > Ensured that we simplify powers to smaller denominators if that is consistent within rounding precision. > Ensured that the powers shown in a unit's repr are always correct, not oversimplified. * astropy.utils > Fixed ``find_api_page`` access by using custom request headers and HTTPS when version is specified. > Make ``download_file`` (and by extension ``get_readable_fileobj`` and others) check the size of downloaded files against the size claimed by the server. > Fix ``find_current_module`` so that it works properly if astropy is being used inside a bundle such as that produced by PyInstaller. > Fix path to renamed classes, which previously included duplicate path/module information under certain circumstances. * astropy.visualization > Silence numpy runtime warnings in ``WCSAxes`` when drawing grids. * astropy.wcs > Fixed equality test between ``cunit`` where the first element was equal but the following elements differed. > Fixed a crash while loading a WCS from headers containing duplicate SIP keywords. > Fixed a possible buffer overflow when using too large negative indices for ``cunit`` or ``ctype`` > Fixed reference counting in ``WCSBase.__init__`` > Fix ``SlicedLowLevelWCS`` ``world_to_pixel_values`` and ``pixel_to_world_values`` when inputs need broadcasting to the same shape. (i.e. when one input is sliced out) > Fixed a bug that caused ``WCS.array_shape``, ``WCS.pixel_shape`` and ``WCS.pixel_bounds`` to be incorrect after using ``WCS.sub``. + Other Changes and Additions * Fixed a bug that caused files outside of the astropy module directory to be included as package data, resulting in some cases in errors when doing repeated builds. ------------------------------------------------------------------- Mon Jul 29 17:01:26 UTC 2019 - Todd R <toddrme2178@gmail.com> - Add conflicts with perl-Data-ShowTable ------------------------------------------------------------------- Tue Jul 23 01:55:47 UTC 2019 - Todd R <toddrme2178@gmail.com> - Update to 3.2.1 + Bug fixes * astropy.io.fits > Avoid reporting a warning with ``BinTableHDU.from_columns`` with keywords that are not provided by the user. > Fix ``Header.fromfile`` to work on FITS files. > Fix reading of empty ``BinTableHDU`` when stored in a gzip-compressed file. * astropy.table > Fix a problem where mask was dropped when creating a ``MaskedColumn`` from a list of ``MaskedArray`` objects. * astropy.wcs > Added ``None`` to be displayed as a ``world_axis_physical_types`` in the ``WCS`` repr, as ``None`` values are now supported in ``APE14``. - Update to 3.2 + New Features * astropy.constants > Add CODATA 2018 constants but not make them default because the redefinition of SI units that will follow has not been implemented yet. * astropy.coordinates > New ``BarycentricMeanEcliptic``, ``HeliocentricTrueEcliptic`` and ``GeocentricTrueEcliptic`` frames. The ecliptic frames are no longer considered experimental. > The default time scale for epochs like 'J2000' or 'B1975' is now "tt", which is the correct one for 'J2000' and avoids leap-second warnings for epochs in the far future or past. * astropy.extern > Bundled ``six`` now emits ``AstropyDeprecationWarning``. It will be removed in 4.0. * astropy.io.ascii > IPAC tables now output data types of ``float`` instead of ``double``, or ``int`` instead of ``long``, based on the column ``dtype.itemsize``. > Update handling of MaskedColumn columns when using the 'data_mask' serialization method. This can make writing ECSV significantly faster if the data do not actually have any masked values. > Fixed a bug that caused newlines to be incorrect when writing out ASCII tables on Windows (they were ``\r\r\n`` instead of ``\r\n``). * astropy.io.misc > Implement serialization of ``TimeDelta`` in ASDF. > Implement serialization of ``EarthLocation`` in ASDF. > Implement serialization of ``SkyCoord`` in ASDF. > Support serialization of Astropy tables with mixin columns in ASDF. > No warnings when reading HDF5 files with only one table and no ``path=`` argument > The HDF5 writer will now create a default table instead of raising an exception when ``path=`` is not specified and when writing to empty/new HDF5 files. * astropy.io.fits > Optimize parsing of cards within the ``Header`` class. > Optimize the parsing of headers to get the structural keywords that are needed to find extensions. Thanks to this, getting a random HDU from a file with many extensions is much faster than before, in particular when the extension headers contain many keywords. > Change behavior of FITS undefined value in ``Header`` such that ``None`` is used in Python to represent FITS undefined when using dict interface. ``Undefined`` can also be assigned and is translated to ``None``. Previously setting a header card value to ``None`` resulted in an empty string field rather than a FITS undefined value. > Allow ``Header.fromstring`` and ``Card.fromstring`` to accept ``bytes``. * astropy.io.registry > Implement ``Table`` reader and writer for ``ASDF``. > Implement ``Table`` reader and writer methods to wrap ``pandas`` I/O methods for CSV, Fixed width format, HTML, and JSON. > Add ``help()`` and ``list_formats()`` methods to unified I/O ``read`` and ``write`` methods. For example ``Table.read.help()`` gives help on available ``Table`` read formats and ``Table.read.help('fits')`` gives detailed help on the arguments for reading FITS table file. * astropy.table > Initializing a table with ``Table(rows=...)``, if the first item is an ``OrderedDict``, now uses the column order of the first row. > Added new pprint_all() and pformat_all() methods to Table. These two new methods print the entire table by default. > Removed restriction of initializing a Table from a dict with copy=False. > Improved speed of table row access by a factor of about 2-3. Improved speed of Table len() by a factor of around 3-10 (depending on the number of columns). > Improved the Table - pandas ``DataFrame`` interface (``to_pandas()`` and ``from_pandas()``). Mixin columns like ``Time`` and ``Quantity`` can now be converted to pandas by flattening the columns as necessary to plain columns. ``Time`` and ``TimeDelta`` columns get converted to corresponding pandas date or time delta types. The ``DataFrame`` index is now handled in the conversion methods. > Added ``rename_columns`` method to rename multiple columns in one call. > Improved Table performance by reducing unnecessary calls to copy and deepcopy, especially as related to the table and column ``meta`` attributes. Changed the behavior when slicing a table (either in rows or with a list of column names) so now the sliced output gets a light (key-only) copy of ``meta`` instead of a deepcopy. Changed the ``Table.meta`` class-level descriptor so that assigning directly to ``meta``, e.g. ``tbl.meta = new_meta`` no longer does a deepcopy and instead just directly assigns the ``new_meta`` object reference. Changed Table initialization so that input ``meta`` is copied only if ``copy=True``. > Improved Table slicing performance with internal implementation changes related to column attribute access and certain input validation. > Added ``reverse`` argument to the ``sort`` and ``argsort`` methods to allow sorting in reverse order. > Improved ``Table.sort()`` performance by removing ``self[keys]`` from code which is creating deep copies of ``meta`` attribute and adding a new keyword ``names`` in ``get_index()`` to get index by using a list or tuple containing names of columns. > Expose ``represent_mixins_as_columns`` as a public function in the ``astropy.table`` subpackage. This previously-private function in the ``table.serialize`` module is used to represent mixin columns in a Table as one or more plain Column objects. * astropy.timeseries > Added a new astropy.timeseries sub-package to represent and manipulate sampled and binned time series. > The ``BoxLeastSquares`` and ``LombScargle`` classes have been moved to ``astropy.timeseries.periodograms`` from ``astropy.stats``. > Added the ability to provide absolute ``Time`` objects to the ``BoxLeastSquares`` and ``LombScargle`` periodogram classes. > Added model inspection methods (``model_parameters()``, ``design_matrix()``, and ``offset()``) to ``astropy.timeseries.LombScargle`` class . * astropy.units > ``Quantity`` overrides of ``ndarray`` methods such as ``sum``, ``min``, ``max``, which are implemented via reductions, have been removed since they are dealt with in ``Quantity.__array_ufunc__``. This should not affect subclasses, but they may consider doing similarly. Note that this does not include methods that use more complicated python code such as ``mean``, ``std`` and ``var``. * astropy.visualization > Added ``CompositeStretch``, which inherits from ``CompositeTransform`` and also ``BaseStretch`` so that it can be used with ``ImageNormalize``. > Added a ``log_a`` argument to the ``simple_norm`` method. Similar to the exposing of the ``asinh_a`` argument for ``AsinhStretch``, the new ``log_a`` argument is now exposed for ``LogStretch``. * astropy.wcs > WCSLIB was updated to v 6.2. This adds support for time-related WCS keywords (WCS Paper VII). FITS headers containing ``Time`` axis are parsed and the axis is included in the WCS object. > The ``OBSGEO`` attribute as expanded to 6 members - ``XYZLBH``. > Added a new class ``SlicedLowLevelWCS`` in ``astropy.wcs.wcsapi`` that can be used to slice any WCS that conforms to the ``BaseLowLevelWCS`` API. > Updated implementation of ``WCS.__getitem__`` and ``WCS.slice`` to now return a ``SlicedLowLevelWCS`` rather than raising an error when reducing the dimensionality of the WCS. + API Changes * astropy.coordinates > ``QuantityAttribute`` no longer has a default value for ``default``. The previous value of None was misleading as it always was an error. > The default J2000 has been changed to use be January 1, 2000 12:00 TT instead of UTC. This is more in line with convention. * astropy.io.ascii > IPAC tables now output data types of ``float`` instead of ``double``, or ``int`` instead of ``long``, based on the column ``dtype.itemsize``. * astropy.io.misc > Unit equivalencies can now be serialized to ASDF. * astropy.modeling > Composition of model classes is deprecated and will be removed in 4.0. Composition of model instances remain unaffected. * astropy.stats > The ``BoxLeastSquares`` and ``LombScargle`` classes have been moved to the ``astropy.timeseries.periodograms`` module and will now emit a deprecation warning when imported from ``astropy.stats``. * astropy.table > Converting an empty table to an array using ``as_array`` method now returns an empty array instead of ``None``. > Changed the behavior when slicing a table (either in rows or with a list of column names) so now the sliced output gets a light (key-only) copy of ``meta`` instead of a deepcopy. Changed the ``Table.meta`` class-level descriptor so that assigning directly to ``meta``, e.g. ``tbl.meta = new_meta`` no longer does a deepcopy and instead just directly assigns the ``new_meta`` object reference. Changed Table initialization so that input ``meta`` is copied only if ``copy=True``. > Added a keyword ``names`` in ``Table.as_array()``. If provided this specifies a list of column names to include for the returned structured array. * astropy.tests > Removed ``pytest_plugins`` as they are completely broken for ``pytest>=4``. > Removed the ``astropy.tests.plugins.config`` plugin and removed the ``--astropy-config-dir`` and ``--astropy-cache-dir`` options from testing. Please use caching functionality that is natively in ``pytest``. * astropy.time > The default time scale for epochs like 'J2000' or 'B1975' is now "tt", which is the correct one for 'J2000' and avoids leap-second warnings for epochs in the far future or past. * astropy.units > Unit equivalencies can now be introspected. * astropy.wcs > The ``world_to_pixel``, ``world_to_array_index*``, ``pixel_to_world*`` and ``array_index_to_world*`` methods now all consistently return scalars, arrays, or objects not wrapped in a one-element tuple/list when only one scalar, array, or object (as was previously already the case for ``WCS.pixel_to_world`` and ``WCS.array_index_to_world``). * astropy.utils > It is now possible to control the number of cores used by ``ProgressBar.map`` by passing a positive integer as the ``multiprocess`` keyword argument. Use ``True`` to use all cores. + Bug Fixes * astropy.coordinates > ``BarycentricTrueEcliptic``, ``HeliocentricTrueEcliptic`` and ``GeocentricTrueEcliptic`` now use the correct transformation (including nutation), whereas the new ``*MeanEcliptic`` classes use the nutation-free transformation. > Representations with ``float32`` coordinates can now be transformed, although the output will always be ``float64``. > Fixed bug that prevented using differentials with HCRS<->ICRS transformations. * astropy.io.ascii > Fixed a bug where an exception was raised when writing a table which includes mixin columns (e.g. a Quantity column) and the output format was specified using the ``formats`` keyword. * astropy.io.misc > Fixed bug in ASDF tag that inadvertently introduced dependency on ``pytest``. * astropy.modeling > Fixed slowness for certain compound models consisting of large numbers of multi-input models > Fixed bugs in fitting of compound models with units. * astropy.nddata > Fixed bug in reading multi-extension FITS files written by earlier versions of ``CCDData``. > Fixed two errors in the way ``CCDData`` handles FITS files with WCS in the header. Some of the WCS keywords that should have been removed from the header were not, potentially leading to FITS files with inconsistent WCS. * astropy.table > Fixed a bug when initializing from an empty list: ``Table([])`` no longer results in a crash. > Fixed a bug when initializing from an existing ``Table``. In this case the input ``meta`` argument was being ignored. Now the input ``meta``, if supplied, will be used as the ``meta`` for the new ``Table``. > Fix the conversion of bytes values to Python ``str`` with ``Table.tolist``. * astropy.time > Fixed a number of issues to ensure a consistent output type resulting from multiplication or division involving a ``TimeDelta`` instance. The output is now always a ``TimeDelta`` if the result is a time unit (like u.s or u.d), otherwise it will be a ``Quantity``. > Multiplication between two ``TimeDelta`` instances is now possible, resulting in a ``Quantity`` with units of time squared (division already correctly resulted in a dimensionless ``Quantity``). > Like for comparisons, addition, and subtraction of ``Time`` instances with with non-time instances, multiplication and division of ``TimeDelta`` instances with incompatible other instances no longer immediately raise an ``UnitsError`` or ``TypeError`` (depending on the other instance), but rather go through the regular Python mechanism of ``TimeDelta`` returning ``NotImplemented`` (which will lead to a regular ``TypeError`` unless the other instance can handle ``TimeDelta``). > Corrected small rounding errors that could cause the ``jd2`` values in ``Time`` to fall outside the range of -0.5 to 0.5. * astropy.units > Added a ``Quantity.to_string`` method to add flexibility to the string formatting of quantities. It produces unadorned or LaTeX strings, and accepts two different sets of delimiters in the latter case: ``inline`` and ``display``. > Ensure classes that mimic quantities by having a ``unit`` attribute and/or ``to`` and ``to_value`` methods can be properly used to initialize ``Quantity`` or set ``Quantity`` instance items. > Add support for ``<<`` to create logarithmic units. > Add support for the ``clip`` ufunc, which in numpy 1.17 is used to implement ``np.clip``. As part of that, remove the ``Quantity.clip`` method under numpy 1.17. > Fix parsing of numerical powers in FITS-compatible units. * astropy.wcs > Added a ``PyUnitListProxy_richcmp`` method in ``UnitListProxy`` class to enable ``WCS.wcs.cunit`` equality testing. It helps to check whether the two instances of ``WCS.wcs.cunit`` are equal or not by comparing the data members of ``UnitListProxy`` class > Fixed ``SlicedLowLevelWCS`` when ``array_shape`` is ``None``. > Do not attempt to delete repeated distortion keywords multiple times when loading distortions with ``_read_distortion_kw`` and ``_read_det2im_kw``. + Other Changes and Additions > Update bundled expat to 2.2.6. > Added instructions for uploading releases to Zenodo. > The bug fixes to the behaviour of ``TimeDelta`` for multiplcation and division, which ensure that the output is now always a ``TimeDelta`` if the result is a time unit (like u.s or u.d) and otherwise a ``Quantity``, imply that sometimes the output type will be different than it was before. > For types unrecognized by ``TimeDelta``, multiplication and division now will consistently return a ``TypeError`` if the other instance cannot handle ``TimeDelta`` (rather than ``UnitsError`` or ``TypeError`` depending on presumed abilities of the other instance). > Multiplication between two ``TimeDelta`` instances will no longer result in an ``OperandTypeError``, but rather result in a ``Quantity`` with units of time squared (division already correctly resulted in a dimensionless ``Quantity``). > Made running the tests insensitive to local user configuration when running the tests in parallel mode or directly with pytest. > Added a narrative style guide to the documentation for contributor reference. > Ensure we call numpy equality functions in a way that reduces the number of ``DeprecationWarning``. + Installation > We now require setuptools 30.3.0 or later to install the core astropy package. > We now define groups of dependencies that can be installed with pip, e.g. ``pip install astropy[all]`` (to install all optional dependencies). ------------------------------------------------------------------- Wed Mar 20 16:59:23 CET 2019 - Matej Cepl <mcepl@suse.com> - Update to 3.1.2, bug fixes - astropy.coordinates Convert the default of QuantityAttribute, thereby catching the error case case of it being set to None at attribute creation, and giving a more useful error message in the process. [#8300] - astropy.cosmology Fix elliptic analytical solution for comoving distance. Only relevant for non-flat cosmologies without radiation and Om0 > Ode0. [#8391] - astropy.modeling Fixed slowness for certain compound models consisting of large numbers of multi-input models [#8338, #8349] - astropy.visualization.wcsaxes Fix a bug that caused an error when passing an array with all values the same to contour or contourf. [#8321] Fix a bug that caused contour and contourf to return None instead of the contour set. [#8321] ------------------------------------------------------------------- Mon Jan 7 18:41:58 UTC 2019 - Todd R <toddrme2178@gmail.com> - Use pytest-astropy since it is in Factory now. ------------------------------------------------------------------- Fri Jan 4 17:31:38 UTC 2019 - Todd R <toddrme2178@gmail.com> - Update to version 3.1 + New Features > astropy.convolution * ``convolve`` now accepts any array-like input, not just ``numpy.ndarray`` or lists. [#7303] * ``convolve`` Now raises AstropyUserWarning if nan_treatment='interpolate' and preserve_nan=False and NaN values are present post convolution. [#8088] > astropy.coordinates * The ``SkyCoord.from_name`` constructor now has the ability to create coordinate objects by parsing object catalogue names that have embedded J-coordinates. [#7830] * The new function ``make_transform_graph_docs`` can be used to create a docstring graph from a custom ``TransformGraph`` object. [#7135] * ``KDTree`` for catalog matching is now built with sliding midpoint rule rather than standard. In code, this means setting ``compact_nodes=False`` and ``balanced_tree=False`` in ``cKDTree``. The sliding midpoint rule is much more suitable for catalog matching, and results in 1000x speedup in some cases. [#7324] * Additional information about a site loaded from the Astropy sites registry is now available in ``EarthLocation.info.meta``. [#7857] * Added a ``concatenate_representations`` function to combine coordinate representation data and any associated differentials. [#7922] * ``BaseCoordinateFrame`` will now check for a method named ``_astropy_repr_in_frame`` when constructing the string forms of attributes. Allowing any class to control how ``BaseCoordinateFrame`` represents it when it is an attribute of a frame. [#7745] * Some rarely-changed attributes of frame classes are now cached, resulting in speedups (up to 50% in some cases) when creating new scalar frame or ``SkyCoord`` objects. [#7949, #5952] * Added a ``directional_offset_by`` method to ``SkyCoord`` that computes a new coordinate given a coordinate, position angle, and angular separation [#5727] > astropy.cosmology * The default cosmology has been changed from ``WMAP9`` to ``Planck15``. [#8123] * Distance calculations with ``LambaCDM`` with no radiation (T_CMB0=0) are now 20x faster by using elliptic integrals for non-flat cases. [#7155] * Distance calculations with ``FlatLambaCDM`` with no radiation (T_CMB0=0) are now 20x faster by using the hypergeometric function solution for this special case. [#7087] * Age calculations with ``FlatLambdaCDM`` with no radiation (Tcmb0=0) are now 1000x faster by using analytic solutions instead of integrating. [#7117] > astropy.io.ascii * Latex reader now ignores ``\toprule``, ``\midrule``, and ``\bottomrule`` commands. [#7349] * Added the RST (Restructured-text) table format and the fast version of the RDB reader to the set of formats that are guessed by default. [#5578] * The read trace (used primarily for debugging) now includes guess argument sets that were skipped entirely e.g. for not supporting user-supplied kwargs. All guesses thus removed from ``filtered_guess_kwargs`` are now listed as "Disabled" at the beginning of the trace. [#5578] * Emit a warning when reading an ECSV file without specifying the ``format`` and without PyYAML installed. Previously this silently fell through to parsing as a basic format file and the file metadata was lost. [#7580] * Optionally allow writing masked columns to ECSV with the mask explicitly specified as a separate column instead of marking masked elements with "" (empty string). This allows handling the case of a masked string column with "" data rows. [#7481] > astropy.io.misc * Added support for saving all representation classes and many coordinate frames to the asdf format. [#7079] * Added support for saving models with units to the asdf format. [#7237] * Added a new ``character_as_bytes`` keyword to the HDF5 Table reading function to control whether byte string columns in the HDF5 file are left as bytes or converted to unicode. The default is to read as bytes (``character_as_bytes=True``). [#7024, #8017] > astropy.io.fits * ``HDUList.pop()`` now accepts string and tuple extension name specifications. [#7236] * Add an ``ignore_hdus`` keyword to ``FITSDiff`` to allow ignoring HDUs by NAME when diffing two FITS files [#7538] * Optionally allow writing masked columns to FITS with the mask explicitly specified as a separate column instead of using the FITS standard of certain embedded null values (``NaN`` for float, ``TNULL`` for integers). This can be used to work around limitations in the FITS standard. [#7481] * All time coordinates can now be written to and read from FITS binary tables, including those with vectorized locations. [#7430] * The ``fitsheader`` command line tool now supports a ``dfits+fitsort`` mode, and the dotted notation for keywords (e.g. ``ESO.INS.ID``). [#7240] * Fall back to reading arrays using mode='denywrite' if mode='readonly' fails when using memory-mapping. This solves cases on some platforms when the available address space was less than the file size (even when using memory mapping). [#7926] > astropy.modeling * Add a ``Multiply`` model which preserves unit through evaluate, unlike ``Scale`` which is dimensionless. [#7210] * Add a ``uses_quantity`` property to ``Model`` which allows introspection of if the ``Model`` can accept ``Quantity`` objects. [#7417] * Add a ``separability_matrix`` function which returns the correlation matrix of inputs and outputs. [#7803] * Fixed compatibility of ``JointFitter`` with the latest version of Numpy. [#7984] * Add ``prior`` and ``posterior`` constraints to modeling parameters. These are not used by any current fitters, but are provided to allow user code to experiment with Bayesian fitters. [#7558] > astropy.nddata * ``NDUncertainty`` objects now have a ``quantity`` attribute for simple conversion to quantities. [#7704] * Add a ``bitmask`` module that provides functions for manipulating bitmasks and data quality (DQ) arrays. [#7944] > astropy.stats * Add an ``astropy.stats.bls`` module with an implementation of the "box least squares" periodogram that is commonly used for discovering transiting exoplanets and eclipsing binaries. [#7391] > astropy.table * Added support for full use of ``Time`` mixin column for join, hstack, and vstack table operations. [#6888] * Added a new table index engine, ``SCEngine``, based on the Sorted Containers package. [#7574] * Add a new keyword argument ``serialize_method`` to ``Table.write`` to control how ``Time`` and ``MaskedColumn`` columns are written. [#7481] * Allow mixin columns to be used in table ``group`` and ``unique`` functions. This applies to both the key columns and the other data columns. [#7712] * Added support for stacking ``Column``, mixin column (e.g. ``Quantity``, ``Time``) or column-like objects. [#7674] * Added support for inserting a row into a Table that has ``Time`` or ``TimeDelta`` column(s). [#7897] > astropy.tests * Added an option ``--readonly`` to the test command to change the permissions on the temporary installation location to read-only. [#7598] > astropy.time * Allow array-valued ``Time`` object to be modified in place. [#6028] * Added support for missing values (masking) to the ``Time`` class. [#6028] * Added supper for a 'local' time scale (for free-running clocks, etc.), and round-tripping to the corresponding FITS time scale. [#7122] * Added `datetime.timedelta` format class for ``TimeDelta``. [#7441] * Added ``strftime`` and ``strptime`` methods to ``Time`` class. These methods are similar to those in the Python standard library `time` package and provide flexible input and output formatting. [#7323] * Added ``datetime64`` format to the ``Time`` class to support working with ``numpy.datetime64`` dtype arrays. [#7361] * Add fractional second support for ``strftime`` and ``strptime`` methods of ``Time`` class. [#7705] * Added an ``insert`` method to allow inserting one or more values into a ``Time`` or ``TimeDelta`` object. [#7897] * Remove timescale from string version of FITS format time string. The timescale is not part of the FITS standard and should not be included. This change may cause some compatibility issues for code that relies on round-tripping a FITS format string with a timescale. Strings generated from previous versions of this package are still understood but a DeprecationWarning will be issued. [#7870] > astropy.uncertainty * This sub-package was added as a "preview" (i.e. API unstable), containing the ``Distribution`` class and associated convenience functions. [#6945] > astropy.units * Add complex numbers support for ``Quantity._repr_latex_``. [#7676] * Add ``thermodynamic_temperature`` equivalency to convert between Jy/beam and "thermodynamic temperature" for cosmology. [#7054] * Add millibar unit. [#7863] * Add maggy and nanomaggy unit, as well as associated ``zero_point_flux`` equivalency. [#7891] * ``AB`` and ``ST`` are now enabled by default, and have alternate names ``ABflux`` and ``STflux``. [#7891] * Added ``littleh`` unit and associated ``with_H0`` equivalency. [#7970] > astropy.visualization * Added ``imshow_norm`` function, which combines imshow and creation of a ``ImageNormalize`` object. [#7785] > astropy.visualization.wcsaxes * Add support for setting ``set_separator(None)`` in WCSAxes to use default separators. [#7570] * Added two keyword argument options to ``CoordinateHelper.set_format_unit``: ``decimal`` can be used to specify whether to use decimal formatting for the labels (by default this is False for degrees and hours and True otherwise), and ``show_decimal_unit`` can be used to determine whether the units should be shown for decimal labels. [#7318] * Added documentation for ``transform=`` and ``coord_meta=``. [#7698] * Allow ``coord_meta=`` to optionally include ``format_unit=``. [#7848] * Add support for more rcParams related to the grid, ticks, and labels, and should work with most built-in Matplotlib styles. [#7961] * Improved rendering of outward-facing ticks. [#7961] * Add support for ``tick_params`` (which is a standard Matplotlib function/method) on both the ``WCSAxes`` class and the individual ``CoordinateHelper`` classes. Note that this is provided for compatibility with Matplotlib syntax users may be familiar with, but it is not the preferred way to change settings. Instead, methods such as ``set_ticks`` should be preferred. [#7969] * Moved the argument ``exclude_overlapping`` from ``set_ticks`` to ``set_ticklabel``. [#7969] * Added a ``pad=`` argument to ``set_ticklabel`` to provide a way to control the padding between ticks and tick labels. [#7969] * Added support for setting the tick direction in ``set_ticks`` using the ``direction=`` keyword argument. [#7969] > astropy.wcs * Map ITRS frames to terrestrial WCS coordinates. This will make it possible to use WCSAxes to make figures that combine both celestial and terrestrial features. An example is plotting the coordinates of an astronomical transient over an all- sky satellite image to illustrate the position relative to the Earth at the time of the event. The ITRS frame is identified with WCSs that use the ``TLON-`` and ``TLAT-`` coordinate types. There are several examples of WCSs where this syntax is used to describe terrestrial coordinate systems: Section 7.4.1 of `WCS in FITS "Paper II" <http://adsabs.harvard.edu/abs/2002A%26A...395.1077C>`_ and the `WCSTools documentation <http://tdc-www.harvard.edu/software/wcstools/wcstools.multiwcs.html>`_. [#6990] * Added the abstract base class for the low-level WCS API described in APE 14 (https://doi.org/10.5281/zenodo.1188875). [#7325] * Add ``WCS.contains()`` function to check if the WCS footprint contains a given sky coordinate. [#7273] * Added the abstract base class for the high-level WCS API described in APE 14 (https://doi.org/10.5281/zenodo.1188875). [#7325] * Added the high-level wrapper class for low-level WCS objects as described in APE 14 (https://doi.org/10.5281/zenodo.1188875). [#7326] * Added a new property ``WCS.has_distortion``. [#7326] * Deprecated ``_naxis1`` and ``_naxis2`` in favor of ``pixel_shape``. [#7973] * Added compatibility to wcslib version 6. [#8093] + API Changes > astropy.convolution * ``kernel`` can now be a tuple. [#7561] * Not technically an API changes, however, the docstring indicated that ``boundary=None`` was the default when actually it is ``boundary='fill'``. The docstring has been corrected, however, someone may interpret this as an API change not realizing that nothing has actually changed. [#7293] * ``interpolate_replace_nans()`` can no longer accept the keyword argument ``preserve_nan``. It is explicitly set to ``False``. [#8088] > astropy.coordinates * Fixed ``astropy.coordinates.concatenate`` to include velocity data in the concatenation. [#7922] * Changed the name of the single argument to ``Frame.realize_frame()`` from the (incorrect) ``representation_type`` to ``data``. [#7923] * Negative parallaxes passed to ``Distance()`` now raise an error by default (``allow_negative=False``), or are converted to NaN values with a warning (``allow_negative=True``). [#7988] * Negating a ``SphericalRepresentation`` object now changes the angular coordinates (by rotating 180º) instead of negating the distance. [#7988] * Creation of new frames now generally creates copies of frame attributes, rather than inconsistently either copying or making references. [#8204] * The frame class method ``is_equivalent_frame`` now checks for equality of components to determine if a frame is the same when it has frame attributes that are representations, rather than checking if they are the same object. [#8218] > astropy.io.ascii * If a fast reader is explicitly selected (e.g. ``fast_reader='force'``) and options which are incompatible with the fast reader are provided (e.g. ``quotechar='##'``) then now a ``ParameterError`` exception will be raised. [#5578] * The fast readers will now raise ``InconsistentTableError`` instead of ``CParserError`` if the number of data and header columns do not match. [#5578] * Changed a number of ``ValueError`` exceptions to ``InconsistentTableError`` in places where the exception is related to parsing a table which is inconsistent with the specified table format. Note that ``InconsistentTableError`` inherits from ``ValueError`` so no user code changes are required. [#7425] > astropy.io.fits * The ``fits.table_to_hdu()`` function will translate any column ``format`` attributes to a TDISPn format string, if possible, and store it as a TDISPn keyword in the ``HDU`` header. [#7226] > astropy.modeling * Change the order of the return values from ``FittingWithOutlierRemoval``, such that ``fitted_model`` comes first, for consistency with other fitters. For the second value, return only a boolean outlier ``mask``, instead of the previous ``MaskedArray`` (which included a copy of the input data that was both redundant and inadvertently corrupted at masked points). Return a consistent type for the second value when ``niter=0``. [#7407] * Set the minimum value for the ``bolometric_flux`` parameter of the ``BlackBody1D`` model to zero. [#7045] > astropy.nddata * Add two new uncertainty classes, ``astropy.nddata.VarianceUncertainty`` and ``astropy.nddata.InverseVariance``. [#6971] > astropy.stats * String values can now be used for the ``cenfunc`` and ``stdfunc`` keywords in the ``SigmaClip`` class and ``sigma_clip`` and ``sigma_clipped_stats`` functions. [#7478] * The ``SigmaClip`` class and ``sigma_clip`` and ``sigma_clipped_stats`` functions now have a ``masked`` keyword, which can be used to return either a masked array (default) or an ndarray with the min/max values. [#7478] * The ``iters`` keyword has been renamed (and deprecated) to ``maxiters`` in the ``SigmaClip`` class and ``sigma_clip`` and ``sigma_clipped_stats`` functions. [#7478] > astropy.table * ``Table.read()`` on a FITS binary table file will convert any TDISPn header keywords to a Python formatting string when possible, and store it in the column ``format`` attribute. [#7226] * No values provided to stack will now raise ``ValueError`` rather than ``TypeError``. [#7674] > astropy.tests * ``from astropy.tests.helper import *`` no longer includes ``quantity_allclose``. However, ``from astropy.tests.helper import quantity_allclose`` would still work. [#7381] * ``warnings_to_ignore_by_pyver`` option in ``enable_deprecations_as_exceptions()`` now takes ``None`` as key. Any deprecation message that is mapped to ``None`` will be ignored regardless of the Python version. [#7790] > astropy.time * Added the ability to use ``local`` as time scale in ``Time`` and ``TimeDelta``. [#6487] * Comparisons, addition, and subtraction of ``Time`` instances with non-time instances will now return ``NotImplemented`` rather than raise the ``Time``-specific ``OperandTypeError``. This will generally lead to a regular ``TypeError``. As a result, ``OperandTypeError`` now only occurs if the operation is between ``Time`` instances of incompatible type or scale. [#7584] > astropy.units * In ``UnitBase.compose()``, if a sequence (list|tuple) is passed in to ``units``, the default for ``include_prefix_units`` is set to `True`, so that no units get ignored. [#6957] * Negative parallaxes are now converted to NaN values when using the ``parallax`` equivalency. [#7988] > astropy.utils * ``InheritDocstrings`` now also works on class properties. [#7166] * ``diff_values()``, ``report_diff_values()``, and ``where_not_allclose()`` utility functions are moved from ``astropy.io.fits.diff``. [#7444] * ``invalidate_caches()`` has been removed from the ``astropy.utils.compat`` namespace, use it directly from ``importlib``. [#7872] > astropy.visualization * In ``ImageNormalize``, the default for ``clip`` is set to ``True``. [#7800] * Changed ``AsymmetricPercentileInterval`` and ``MinMaxInterval`` to ignore NaN values in arrays. [#7360] * Automatically default to using ``grid_type='contours'`` in WCSAxes when using a custom ``Transform`` object if the transform has no inverse. [#7847] + Performance Improvements * Reduced import time by more cautious use of the standard library. [#7647] > astropy.convolution * Major performance overhaul to ``convolve()``. [#7293] * ``convolve()``: Boundaries ``fill``, ``extend``, and ``wrap`` now use a single implementation that pads the image with the correct boundary values before convolving. The runtimes of these three were significantly skewed. They now have equivalent runtimes that are also faster than before due to performant contiguous memory access. However, this does increase the memory footprint as an entire new image array is required plus that needed for the padded region.[#7293] * ``convolve()``: Core computation ported from Cython to C. Several optimization techniques have been implemented to achieve performance gains, e.g. compiler hoisting, and vectorization, etc. Compiler optimization level ``-O2`` required for hoisting and ``-O3`` for vectorization. [#7293] * ``convolve()``: ``nan_treatment=‘interpolate’`` was slow to compute irrespective of whether any NaN values exist within the array. The input array is now checked for NaN values and interpolation is disabled if non are found. This is a significant performance boost for arrays without NaN values. [#7293] > astropy.coordinates * Sped up creating SkyCoord objects by a factor of ~2 in some cases. [#7615] * Sped up getting xyz vectors from ``CartesianRepresentation`` (which is used a lot internally). [#7638] * Sped up transformations and some representation methods by replacing python code with (compiled) ``erfa`` ufuncs. [#7639] * Sped up adding differential (velocity) data to representations by a factor of ~20, which improves the speed of frame and SkyCoord initialization. [#7924] * Refactored ``SkyCoord`` initializer to improve performance and code clarity. [#7958] * Sped up initialization of ``Longitude`` by ~40%. [#7616] > astropy.stats * The ``SigmaClip`` class and ``sigma_clip`` and ``sigma_clipped_stats`` functions are now significantly faster. [#7478] * A Cython implementation for `astropy.stats.kuiper_two` and a vectorized implementation for `astropy.stats.kuiper_false_positive_probability` have been added, speeding up both functions. [#8104] > astropy.units * Sped up creating new composite units, and raising units to some power [#7549, #7649] * Sped up Unit.to when target unit is the same as the original unit. [#7643] * Lazy-load ``scipy.special`` to shorten ``astropy.units`` import time. [#7636] > astropy.visualization * Significantly sped up drawing of contours in WCSAxes. [#7568] + Bug Fixes > astropy.convolution * Fixed bug in ``convolve_fft`` where masked input was copied with ``numpy.asarray`` instead of ``numpy.asanyarray``. ``numpy.asarray`` removes the mask subclass causing ``numpy.ma.ismasked(input)`` to fail, causing ``convolve_fft`` to ignore all masked input. [#8137] * Remove function side-effects of input data from ``convolve_fft``. It was possible for input data to remain modified if particular exceptions were raised. [#8152] > astropy.coordinates * ``EarthLocation.of_address`` now uses the OpenStreetMap geocoding API by default to retrieve coordinates, with the Google API (which now requires an API key) as an option. [#7918] * Fixed a bug that caused frame objects with NaN distances to have NaN sky positions, even if valid sky coordinates were specified. [#7988] * Fixed ``represent_as()`` to not round-trip through cartesian if the same representation class as the instance is passed in. [#7988] > astropy.io.ascii * Fixed a problem when ``guess=True`` that ``fast_reader`` options could be dropped after the first fast reader class was tried. [#5578] * Units in CDS-formatted tables are now parsed correctly by the units module. [#7348] > astropy.io.misc * Fixed bug when writing a table with masked columns to HDF5. Previously the mask was being silently dropped. If the ``serialize_meta`` option is enabled the data mask will now be written as an additional column and the masked columns will round-trip correctly. [#7481] * Fixed a bug where writing to HDF5 failed for for tables with columns of unicode strings. Now those columns are first encoded to UTF-8 and written as byte strings. [#7024, #8017] * Fixed a bug with serializing the bounding_box of models initialized with ``Quantities`` . [#8052] > astropy.io.fits * Added support for ``copy.copy`` and ``copy.deepcopy`` for ``HDUList``. [#7218] * Override ``HDUList.copy()`` to return a shallow HDUList instance. [#7218] > astropy.modeling * Fix behaviour of certain models with units, by making certain unit-related attributes readonly. [#7210] * Fixed an issue with validating a ``bounding_box`` whose items are ``Quantities``. [#8052] * Fix ``Moffat1D`` and ``Moffat2D`` derivatives. [#8108] > astropy.nddata * Fixed rounding behavior in ``overlap_slices`` for even-sized small arrays. [#7859] * Added support for pickling ``NDData`` instances that have an uncertainty. [#7383] > astropy.stats * Fix errors in ``kuiper_false_positive_probability``. [#7975] > astropy.tests * Fixing bug that prevented to run the doctests on only a single rst documentation file rather than all of them. [#8055] > astropy.time * Fix a bug when setting a ``TimeDelta`` array item with plain float value(s). This was always interpreted as a JD (day) value regardless of the ``TimeDelta`` format. [#7990] > astropy.units * To simplify fast creation of ``Quantity`` instances from arrays, one can now write ``array << unit`` (equivalent to ``Quantity(array, unit, copy=False)``). If ``array`` is already a ``Quantity``, this will convert the quantity to the requested units; in-place conversion can be done with ``quantity <<= unit``. [#7734] > astropy.utils * Fixed a bug due to which ``report_diff_values()`` was reporting incorrect number of differences when comparing two ``numpy.ndarray``. [#7470] * The download progress bar is now only displayed in terminals, to avoid polluting piped output. [#7577] * Ignore URL mirror caching when there is no internet. [#8163] > astropy.visualization * Right ascension coordinates are now shown in hours by default, and the ``set_format_unit`` method on ``CoordinateHelper`` now works correctly with angle coordinates. [#7215] + Other Changes and Additions * The documentation build now uses the Sphinx configuration from sphinx-astropy rather than from astropy-helpers. [#7139] * Versions of Numpy <1.13 are no longer supported. [#7058] * Running tests now suppresses the output of the installation stage by default, to allow easier viewing of the test results. To re-enable the output as before, use ``python setup.py test --verbose-install``. [#7512] * The ERFA functions are now wrapped in ufuncs instead of custom C code, leading to some speed improvements, and setting the stage for allowing overrides with ``__array_ufunc__``. [#7502] * Updated the bundled CFITSIO library to 3.450. See ``cextern/cfitsio/docs/changes.txt`` for additional information. [#8014] * The ``representation`` keywords in coordinate frames are now deprecated in favor of the ``representation_type`` keywords (which are less ambiguously named). [#8119] ------------------------------------------------------------------- Wed Dec 5 18:30:30 CET 2018 - mcepl@suse.com - Update to 3.0.5 * Update to 3.* is a large step, which contains these main improvements: - Full support for velocities in astropy.coordinates - Support for position updates based on source motion for SkyCoord objects - Context managers for versioned constants - Support for quantities in scipy special functions - showtable command line script - Lossless writing and reading mixin columns to HDF5 and FITS - Support for FITS time standard - FITS table performance enhancements - False alarm probabilities in astropy.stats.LombScargle - Reading large ASCII files in chunks - Astropy now only supports Python 3 - pytest plugins moved to external packages Full changelog is available at http://docs.astropy.org/en/stable/changelog.html ------------------------------------------------------------------- Fri Jan 5 09:01:00 UTC 2018 - alarrosa@suse.com - Update to astropy 2.0.3 * Bugfixes: * astropy.coordinates - Ecliptic frame classes now support attributes v_x, v_y, v_z when using with a Cartesian representation. - Added a nicer error message when accidentally calling frame.representation instead of frame.data in the context of methods that use ._apply(). - Creating a new SkyCoord from a list of multiple SkyCoord objects now yield the correct type of frame, and works at all for non-equatorial frames. - Improved accuracy of velocity calculation in EarthLocation.get_gcrs_posvel. - Improved accuracy of radial velocity corrections in SkyCoord.radial_velocity_correction`. - The precision of ecliptic frames is now much better, after removing the nutation from the rotation and fixing the computation of the position of the Sun. * astropy.extern - Version 0.2.1 of pytest-astropy is included as an external package. * astropy.io.fits - Fix writing the result of fitsdiff to file with --output-file. - Fix a minor bug where FITS_rec instances can not be indexed with tuples and other sequences that end up with a scalar. * astropy.io.misc - Fix ImportError when hdf5 is imported first in a fresh Python interpreter in Python 3. * astropy.nddata - Suppress errors during WCS creation in CCDData.read(). - Fixed a problem with CCDData.read when the extension wasn't given and the primary HDU contained no data but another HDU did. In that case the header were not correctly combined. * astropy.stats - Fixed an issue where the biweight statistics functions would sometimes cause runtime underflow/overflow errors for float32 input arrays. * astropy.table - Fixed a problem when printing a table when a column is deleted and garbage-collected, and the format function caching mechanism happens to re-use the same cache key. - Fixed a problem when comparing a unicode masked column (on left side) to a bytes masked column (on right side). - Fixed a problem in comparing masked columns in bytes and unicode when the unicode had masked entries. * astropy.tests - Fixed a bug that causes tests for rst files to not be run on certain platforms. - Fixed a bug that caused the doctestplus plugin to not work nicely with the hypothesis package. - Fixed a bug that meant that the data.astropy.org mirror could not be used when using --remote-data=astropy. - Support compatibility with new pytest-astropy plugins. - When testing, astropy (or the package being tested) is now installed to a temporary directory instead of copying the build. This allows entry points to work correctly. * astropy.time - Initialization of Time instances now is consistent for all formats to ensure that -0.5 <= jd2 < 0.5. * astropy.units - Ensure that Quantity slices can be set with objects that have a unit attribute (such as Column). * astropy.utils - download_files_in_parallel now respects the given timeout value. - Fixed bugs in remote data handling and also in IERS unit test related to path URL, and URI normalization on Windows. - Fixed a bug that caused get_pkg_data_fileobj to not work correctly when used with non-local data from inside packages. - Make sure get_pkg_data_fileobj fails if the URL can not be read, and correctly falls back on the mirror if necessary. - Fix the finddiff option in find_current_module to properly deal with submodules. - Fixed pyreadline import in utils.console.isatty for older IPython versions on Windows. * astropy.visualization - Fixed the vertical orientation of the fits2bitmap output bitmap image to match that of the FITS image. - Added a workaround for a bug in matplotlib so that the fits2bitmap script generates the correct output file type. * Other Changes and Additions * No longer require LaTeX to build the documentation locally and use mathjax instead. * Fixed broken links in the documentation. * Ensured that all tests use the Astropy data mirror if needed. ------------------------------------------------------------------- Thu Dec 14 09:47:18 UTC 2017 - alarrosa@suse.com - Remove test bcond since it wasn't really used at all ------------------------------------------------------------------- Mon Dec 11 15:34:36 UTC 2017 - alarrosa@suse.com - Update to astropy 2.0.2 . Astropy 2.0 is a major release that adds significant new functionality since the 1.3.x series of releases: * New unit support for most models * New image class CCDData added * Experimental velocity support in astropy.coordinates * New functionality in astropy.stats * Easier use of efficient bytestring Table columns in Python 3 * New way to instantiate a BinTableHDU directly from a Table * New printdiff convenience function for FITS * New molar_mass_amu unit equivalency * Store astropy core object types in ASCII ECSV table file * Improvements to astropy.convolution * No relativistic species by default in cosmological models * Renamed/removed functionality The full changelog can be read at http://docs.astropy.org/en/stable/changelog.html . ------------------------------------------------------------------- Fri Jun 23 12:26:54 UTC 2017 - alarrosa@suse.com - The latest astropy version requires liberfa 1.3.0 even if it builds fine with 1.2.0 since it requires the eraEceq06 symbol. ------------------------------------------------------------------- Thu May 25 11:16:57 UTC 2017 - toddrme2178@gmail.com - Implement single-spec version - Fix source URL - Update to version 1.3.2 * Lots of changes (see CHANGES.rst for details). ------------------------------------------------------------------- Fri Nov 18 21:38:50 UTC 2016 - asterios.dramis@gmail.com - Replace cfitsio-devel, liberfa-devel, libexpat-devel and libwcs-devel build requirements with pkgconfig() ones. ------------------------------------------------------------------- Sat Jul 16 22:45:37 UTC 2016 - asterios.dramis@gmail.com - Update to version 1.2.1: * Lots of changes (see CHANGES.rst for details). - Added new build requirements python-Jinja2, python-PyYAML, python-bleach, python-jupyter_ipython, python-mpmath, python-psutil and python-scikit-image. - Updated python-numpy-devel build requirement and python-numpy runtime requirement to version >= 1.7.0. - Updated python-six build and runtime requirement to version >= 1.7.3. - Removed not needed build requirements python-astropy-helpers and python-numpy (indirect dependency). - Removed not needed runtime requirements python-astropy-helpers. - Added new Recommend entries python-PyYAML and python-scikit-image. ------------------------------------------------------------------- Tue Feb 2 19:09:54 UTC 2016 - toddrme2178@gmail.com - Add python-astropy-helpers and python-pandas dependencies. ------------------------------------------------------------------- Thu Jan 28 13:14:55 UTC 2016 - toddrme2178@gmail.com - update to version 1.1.1 + New Features - ``astropy.io.registry`` * Allow ``pathlib.Path`` objects (available in Python 3.4 and later) for specifying the file name in registry read / write functions. [#4405] - ``astropy.utils`` * ``console.human_file_size`` now accepts quantities with byte-equivalent units [#4373] + Bug Fixes - ``astropy.analytic_functions`` * Fixed the blackbody functions' handling of overflows on some platforms (Windows with MSVC, older Linux versions) with a buggy ``expm1`` function. [#4393] - ``astropy.io.fits`` * Fixed an bug where updates to string columns in FITS tables were not saved on Python 3. [#4452] + Other Changes and Additions - Updated bundled astropy-helpers to v1.1.1. [#4413] - update to version 1.1 + New Features - ``astropy.config`` - Added new tools ``set_temp_config`` and ``set_temp_cache`` which can be used either as function decorators or context managers to temporarily use alternative directories in which to read/write the Astropy config files and download caches respectively. This is especially useful for testing, though ``set_temp_cache`` may also be used as a way to provide an alternative (application specific) download cache for large data files, rather than relying on the default cache location in users' home directories. [#3975] - ``astropy.constants`` - Added the Thomson scattering cross-section. [#3839] - ``astropy.convolution`` - Added Moffat2DKernel. [#3965] - ``astropy.coordinates`` - Added ``get_constellation`` function and ``SkyCoord.get_constellation`` convenience method to determine the constellation that a coordinate is in. [#3758] - Added ``PrecessedGeocentric`` frame, which is based on GCRS, but precessed to a specific requested mean equinox. [#3758] - Added ``Supergalactic`` frame to support de Vaucouleurs supergalactic coordinates. [#3892] - ``SphericalRepresentation`` now has a ``._unit_representation`` class attribute to specify an equivalent UnitSphericalRepresentation. This allows subclasses of representations to pair up correctly. [#3757] - Added functionality to support getting the locations of observatories by name. See ``astropy.coordinates.EarthLocation.of_site``. [#4042] - Added ecliptic coordinates, including ``GeocentricTrueEcliptic``, ``BarycentricTrueEcliptic``, and ``HeliocentricTrueEcliptic``. [#3749] - ``astropy.cosmology`` - Add Planck 2015 cosmology [#3476] - Distance calculations now > 20-40x faster for the supplied cosmologies due to implementing Cython scalar versions of ``FLRW.inv_efunc``.[#4127] - ``astropy.io.ascii`` - Automatically use ``guess=False`` when reading if the file ``format`` is provided and the format parameters are uniquely specified. This update also removes duplicate format guesses to improve performance. [#3418] - Calls to ascii.read() for fixed-width tables may now omit one of the keyword arguments ``col_starts`` or ``col_ends``. Columns will be assumed to begin and end immediately adjacent to each other. [#3657] - Add a function ``get_read_trace()`` that returns a traceback of the attempted read formats for the last call to ``astropy.io.ascii.read``. [#3688] - Supports LZMA decompression via ``get_readable_fileobj`` [#3667] - Allow ``-`` character is Sextractor format column names. [#4168] - Improve DAOphot reader to read multi-aperture files [#3535, #4207] - ``astropy.io.fits`` - Support reading and writing from bzip2 compressed files. i.e. ``.fits.bz2`` files. [#3789] - Included a new command-line script called ``fitsinfo`` to display a summary of the HDUs in one or more FITS files. [#3677] - ``astropy.io.misc`` - Support saving all meta information, description and units of tables and columns in HDF5 files [#4103] - ``astropy.io.votable`` - A new method was added to ``astropy.io.votable.VOTable``, ``get_info_by_id`` to conveniently find an ``INFO`` element by its ``ID`` attribute. [#3633] - Instances in the votable tree now have better ``__repr__`` methods. [#3639] - ``astropy.logger.py`` - Added log levels (e.g., DEBUG, INFO, CRITICAL) to ``astropy.log`` [#3947] - ``astropy.modeling`` - Added a new ``Parameter.validator`` interface for setting a validation method on individual model parameters. See the ``Parameter`` documentation for more details. [#3910] - The projection classes that are named based on the 3-letter FITS WCS projections (e.g. ``Pix2Sky_TAN``) now have aliases using longer, more descriptive names (e.g. ``Pix2Sky_Gnomonic``). [#3583] - All of the standard FITS WCS projection types have been implemented in ``astropy.modeling.projections`` (by wrapping WCSLIB). [#3906] - Added ``Sersic1D`` and ``Sersic2D`` model classes. [#3889] - Added the Voigt profile to existing models. [#3901] - Added ``bounding_box`` property and ``render_model`` function [#3909] - ``astropy.nddata`` - Added ``block_reduce`` and ``block_replicate`` functions. [#3453] - ``extract_array`` now offers different options to deal with array boundaries [#3727] - Added a new ``Cutout2D`` class to create postage stamp image cutouts with optional WCS propagation. [#3823] - ``astropy.stats`` - Added ``sigma_lower`` and ``sigma_upper`` keywords to ``sigma_clip`` to allow for unsymmetric clipping. [#3595] - Added ``cenfunc``, ``stdfunc``, and ``axis`` keywords to ``sigma_clipped_stats``. [#3792] - ``sigma_clip`` automatically masks invalid input values (NaNs, Infs) before performing the clipping [#4051] - Added the ``histogram`` routine, which is similar to ``np.histogram`` but includes several additional options for automatic determination of optimal histogram bins. Associated helper routines include ``bayesian_blocks``, ``friedman_bin_width``, ``scott_bin_width``, and ``knuth_bin_width``. This functionality was ported from the astroML_ library. [#3756] - Added the ``bayesian_blocks`` routine, which implements a dynamic algorithm for locating change-points in various time series. [#3756] - A new function ``poisson_conf_interval()`` was added to allow easy calculation of several standard formulae for the error bars on the mean of a Poisson variable estimated from a single sample. - ``astropy.table`` - ``add_column()`` and ``add_columns()`` now have ``rename_duplicate`` option to rename new column(s) rather than raise exception when its name already exists. [#3592] - Added ``Table.to_pandas`` and ``Table.from_pandas`` for converting to/from pandas dataframes. [#3504] - Initializing a ``Table`` with ``Column`` objects no longer requires that the column ``name`` attribute be defined. [#3781] - Added an ``info`` property to ``Table`` objects which provides configurable summary information about the table and its columns. [#3731] - Added an ``info`` property to column classes (``Column`` or mixins). This serves a dual function of providing configurable summary information about the column, and acting as a manager of column attributes such as name, format, or description. [#3731] - Updated table and column representation to use the ``dtype_info_name`` function for the dtype value. Removed the default "masked=False" from the table representation. [#3868, #3869] - Updated row representation to be consistent with the corresponding table representation for that row. Added HTML representation so a row displays nicely in IPython notebook. - Added a new table indexing engine allowing for the creation of indices on one or more columns of a table using ``add_index``. These indices enable new functionality such as searching for rows by value using ``loc`` and ``iloc``, as well as increased performance for certain operations. [#3915] - Added capability to include a structured array or recarray in a table as a mixin column. This allows for an approximation of nested tables. [#3925] - Added ``keep_byteorder`` option to ``Table.as_array()``. See the "API Changes" section below. [#4080] - Added a new method ``Table.replace_column()`` to replace an existing column with a new data column. [#4090] - Added a ``tableclass`` option to ``Table.pformat()`` to allow specifying a list of CSS classes added to the HTML table. [#4131] - New CSS for jsviewer table [#2917, #2982, #4174] - Added a new ``Table.show_in_notebook`` method that shows an interactive view of a Table (similar to ``Table.show_in_browser(jsviewer=True)``) in an Python/Jupyter notebook. [#4197] - ``astropy.tests`` - Added new test config options, ``config_dir`` and ``cache_dir`` (these can be edited in ``setup.cfg`` or as extra command-line options to py.test) for setting the locations to use for the Astropy config files and download caches (see also the related ``set_temp_config/cache`` features added in ``astropy.config``). [#3975] - ``astropy.time`` - Add support for FITS standard time strings. [#3547] - Allow the ``format`` attribute to be updated in place to change the default representation of a ``Time`` object. [#3673] - Add support for shape manipulation (reshape, ravel, etc.). [#3224] - Add argmin, argmax, argsort, min, max, ptp, sort methods. [#3581] - Add ``Time.to_datetime`` method for converting ``Time`` objects to timezone-aware datetimes. [#4119] - ``astropy.units`` - Added furlong to imperial units. [#3529] - Added mil to imperial units. [#3716] - Added stone to imperial units. [#4192] - Added Earth Mass (``M_earth``) and Jupiter mass (``M_jup``) to units [#3907] - Added support for functional units, in particular the logarithmic ones ``Magnitude``, ``Decibel``, and ``Dex``. [#1894] - Quantities now work with the unit support in matplotlib. See :ref:`plotting-quantities`. [#3981] - ``astropy.utils`` - Added new ``OrderedDescriptor`` and ``OrderedDescriptorContainer`` utility classes that make it easier to implement classes with declarative APIs, wherein class-level attributes have an inherit "ordering" to them that is specified by the order in which those attributes are defined in the class declaration (by defining them using special descriptors that have ``OrderedDescriptor`` as a base class). See the API documentation for these classes for more details. Coordinate frames and models now use this interface. [#3679] - The ``get_pkg_data_*`` functions now take an optional ``package`` argument which allows specifying any package to read package data filenames or content out of, as opposed to only being able to use data from the package that the function is called from. [#4079] - Added function ``dtype_info_name`` to the ``data_info`` module to provide the name of a ``dtype`` for human-readable informational purposes. [#3868] - Added ``classproperty`` decorator--this is to ``property`` as ``classmethod`` is to normal instance methods. [#3982] - ``iers.open`` now handles network URLs, as well as local paths. [#3850] - The ``astropy.utils.wraps`` decorator now takes an optional ``exclude_args`` argument not shared by the standard library ``wraps`` decorator (as it is unique to the Astropy version's ability of copying the wrapped function's argument signature). ``exclude_args`` allows certain arguments on the wrapped function to be excluded from the signature of the wrapper function. This is particularly useful when wrapping an instance method as a function (to exclude the ``self`` argument). [#4017] - ``get_readable_fileobj`` can automatically decompress LZMA ('.xz') files using the ``lzma`` module of Python 3.3+ or, when available, the ``backports.lzma`` package on earlier versions. [#3667] - The ``resolve_name`` utility now accepts any number of additional positional arguments that are automatically dotted together with the first ``name`` argument. [#4083] - Added ``is_url_in_cache`` for resolving paths to cached files via URLS and checking if files exist. [#4095] - Added a ``step`` argument to the ``ProgressBar.map`` method to give users control over the update frequency of the progress bar. [#4191] - ``astropy.visualization`` - Added a function / context manager ``quantity_support`` for enabling seamless ploting of ``Quantity`` instances in matplotlib. [#3981] - Added the ``hist`` function, which is similar to ``plt.hist`` but includes several additional options for automatic determination of optimal histogram bins. This functionality was ported from the astroML_ library. [#3756] - ``astropy.wcs`` - The included version of wcslib has been upgraded to 5.10. [#4239] The minimum required version of wcslib in the 4.x series remains 4.24. The minimum required version of wcslib in the 5.x series is 5.8. Building astropy against a wcslib 5.x prior to 5.8 will raise an ``ImportError`` when ``astropy.wcs`` is imported. The wcslib changes relevant to astropy are: - The FITS headers returned by ``astropy.wcs.WCS.to_header`` and ``astropy.wcs.WCS.to_header_string`` now include values with more precision. This will result in numerical differences in your results if you convert ``astropy.wcs.WCS`` objects to FITS headers and use the results. - ``astropy.wcs.WCS`` now recognises the ``TPV``, ``TPD``, ``TPU``, ``DSS``, ``TNX`` and ``ZPX`` polynomial distortions. - Added relaxation flags to allow ``PC0i_0ja``, ``PV0j_0ma``, and ``PS0j_0ma`` (i.e. with leading zeroes on the index). - Tidied up error reporting, particularly relating to translating status returns from lower-level functions. - Changed output formatting of floating point values in ``to_header``. - Enhanced text representation of ``WCS`` objects. [#3604] - The ``astropy.tests.helper`` module is now part of the public API (and has a documentation page). This module was in previous releases of astropy, but was not considered part of the public API until now. [#3890] - There is a new function ``astropy.online_help`` to search the astropy documentation and display the result in a web browser. [#3642] + API changes - ``astropy.cosmology`` - ``FLRW._tfunc`` and ``FLRW._xfunc`` are marked as deprecated. Users should use the new public interfaces ``FLRW.lookback_time_integrand`` and ``FLRW.abs_distance_integrand`` instead. [#3767] - ``astropy.io.ascii`` - The default header line processing was made to be consistent with data line processing in that it now ignores blank lines that may have whitespace characters. Any code that explicitly specifies a ``header_start`` value for parsing a file with blank lines in the header containing whitespace will need to be updated. [#2654] - ``astropy.io.fits`` - The ``uint`` argument to ``fits.open`` is now True by default; that is, arrays using the FITS unsigned integer convention will be detected, and read as unsigned integers by default. A new config option for ``io.fits``, ``enable_uint``, can be changed to False to revert to the original behavior of ignoring the ``uint`` convention unless it is explicitly requested with ``uint=True``. [#3916] - The ``ImageHDU.NumCode`` and ``ImageHDU.ImgCode`` attributes (and same for other classes derived from ``_ImageBaseHDU``) are deprecated. Instead, the ``astropy.io.fits`` module-level constants ``BITPIX2DTYPE`` and ``DTYPE2BITPIX`` can be used. [#3916] - ``astropy.modeling`` - Note: Comparisons of model parameters with array-like values now yields a Numpy boolean array as one would get with normal Numpy array comparison. Previously this returned a scalar True or False, with True only if the comparison was true for all elements compared, which could lead to confusing circumstances. [#3912] - Using ``model.inverse = None`` to reset a model's inverse to its default is deprecated. In the future this syntax will explicitly make a model not have an inverse (even if it has a default). Instead, use ``del model.inverse`` to reset a model's inverse to its default (if it has a default, otherwise this just deletes any custom inverse that has been assigned to the model and is still equivalent to setting ``model.inverse = None``). [#4236] - Adds a ``model.has_user_inverse`` attribute which indicates whether or not a user has assigned a custom inverse to ``model.inverse``. This is just for informational purposes, for example, for software that introspects model objects. [#4236] - Renamed the parameters of ``RotateNative2Celestial`` and ``RotateCelestial2Native`` from ``phi``, ``theta``, ``psi`` to ``lon``, ``lat`` and ``lon_pole``. [#3578] - Deprecated the ``Pix2Sky_AZP.check_mu`` and ``Sky2Pix_AZP.check_mu`` methods (these were obscure "accidentally public" methods that were probably not used by anyone). [#3910] - Added a phase parameter to the Sine1D model. [#3807] - ``astropy.stats`` - Renamed the ``sigma_clip`` ``sig`` keyword as ``sigma``. [#3595] - Changed the ``sigma_clip`` ``varfunc`` keyword to ``stdfunc``. [#3595] - Renamed the ``sigma_clipped_stats`` ``mask_val`` keyword to ``mask_value``. [#3595] - Changed the default ``iters`` keyword value to 5 in both the ``sigma_clip`` and ``sigma_clipped_stats`` functions. [#4067] - ``astropy.table`` - ``Table.as_array()`` always returns a structured array with each column in the system's native byte order. The optional ``keep_byteorder=True`` option will keep each column's data in its original byteorder. [#4080] - ``Table.simple_table()`` now creates tables with int64 and float64 types instead of int32 and float64. [#4114] - ``astropy.time`` - The ``astropy_time`` attribute and time format has been removed from the public interface. Existing code that instantiates a new time object using ``format='astropy_time'`` can simply omit the ``format`` specification. [#3857] - ``astropy.units`` - Single-item ``Quantity`` instances with record ``dtype`` will now have their ``isscalar`` property return ``True``, consistent with behaviour for numpy arrays, where ``np.void`` records are considered scalar. [#3899] - Three changes relating to the FITS unit format [#3993]: - The FITS unit format will no longer parse an arbitrary number as a scale value. It must be a power of 10 of the form ``10^^k``, ``10^k``, ``10+k``, ``10-k`` and ``10(k)``. [#3993] - Scales that are powers of 10 can be written out. Previously, any non-1.0 scale was rejected. - The ``*`` character is accepted as a separator between the scale and the units. - Unit formatter classes now require the ``parse`` and ``to_string`` methods are now required to be classmethods (and the formatter classes themselves are assumed to be singletons that are not instantiated). As unit formatters are mostly an internal implementation detail this is not likely to affect any users. [#4001] - CGS E&M units are now defined separately from SI E&M units, and have distinct physical types. [#4255] - ``astropy.utils`` - All of the ``get_pkg_data_*`` functions take an optional ``package`` argument as their second positional argument. So any code that previously passed other arguments to these functions as positional arguments might break. Use keyword argument passing instead to mitigate this. [#4079] - ``astropy.utils.iers`` now uses a ``QTable`` internally, which means that the numerical columns are stored as ``Quantity``, with full support for units. Furthermore, the ``ut1_utc`` method now returns a ``Quantity`` instead of a float or an array (as did ``pm_xy`` already). [#3223] - ``astropy.utils.iers`` now throws an ``IERSRangeError``, a subclass of ``IndexError``, rather than a raw ``IndexError``. This allows more fine-grained catching of situations where a ``Time`` is beyond the range of the loaded IERS tables. [#4302] - ``astropy.wcs`` - When compiled with wcslib 5.9 or later, the FITS headers returned by ``astropy.wcs.WCS.to_header`` and ``astropy.wcs.WCS.to_header_string`` now include values with more precision. This will result in numerical differences in your results if you convert ``astropy.wcs.WCS`` objects to FITS headers and use the results. - If NAXIS1 or NAXIS2 is not passed with the header object to WCS.calc_footprint, a ValueError is raised. [#3557] + Bug fixes - ``astropy.constants`` - The constants ``Ry`` and ``u`` are now properly used inside the corresponding units. The latter have changed slightly as a result. [#4229] - ``astropy.coordinates`` - Internally, ``coordinates`` now consistently uses the appropriate time scales for using ERFA functions. [#4302] - ``astropy.io.ascii`` - Fix a segfault in the fast C parser when one of the column headers is empty [#3545]. - Fix several bugs that prevented the fast readers from being used when guessing the file format. Also improved the read trace information to better understand format guessing. [#4115] - Fix an underlying problem that resulted in an uncaught TypeError exception when reading a CDS-format file with guessing enabled. [#4120] - ``astropy.modeling`` - ``Simplex`` fitter now correctly passes additional keywords arguments to the scipy solver. [#3966] - The keyword ``acc`` (for accuracy) is now correctly accepted by ``Simplex``. [#3966] - ``astropy.units`` - The units ``Ryd`` and ``u`` are no longer hard-coded numbers, but depend on the appropriate values in the ``constants`` module. As a result, these units now imply slightly different conversions. [#4229] + Other Changes and Additions - The ``./setup.py test`` command is now implemented in the ``astropy.tests`` module again (previously its implementation had been moved into astropy-helpers). However, that made it difficult to synchronize changes to the Astropy test runner with changes to the ``./setup.py test`` UI. astropy-helpers v1.1 and above will detect this implementation of the ``test`` command, when present, and use it instead of the old version that was included in astropy-helpers (most users will not notice any difference as a result of this change). [#4020] - The repr for ``Table`` no longer displays ``masked=False`` since tables are not masked by default anyway. [#3869] - The version of ``PLY`` that ships with astropy has been updated to 3.6. - WCSAxes is now required for doc builds. [#4074] - Updated ``astropy.tests`` test runner code to work with Coverage v4.0 when generating test coverage reports. [#4176] - The migration guide from pre-v0.4 coordinates has been removed to avoid cluttering the ``astropy.coordinates`` documentation with increasingly irrelevant material. To see the migration guide, we recommend you simply look to the archived documentation for previous versions, e.g. http://docs.astropy.org/en/v1.0/coordinates/index.html#migrating-from-pre-v0-4-coordinates [#4203] - In ``astropy.coordinates``, the transformations between GCRS, CIRS, and ITRS have been adjusted to more logically reflect the order in which they actually apply. This should not affect most coordinate transformations, but may affect code that is especially sensitive to machine precision effects that change when the order in which transformations occur is changed. [#4255] - update to version 1.0.8 (2016-01-08) + Bug Fixes - ``astropy.io.fits`` - Fixed an bug where updates to string columns in FITS tables were not saved on Python 3. [#4452] - ``astropy.units`` - In-place peak-to-peak calculations now work on ``Quantity``. [#4442] - ``astropy.utils`` - Fixed ``find_api_page`` to work correctly on python 3.x [#4378] - update to version 1.0.7: * New Features + astropy.time Fix incorrect value attribute for epoch formats like "unix" when scale is different from the class epoch_scale. [#4313] * Bug Fixes + astropy.coordinates Pickling of EarthLocation instances now also works on Python 2. [#4304] + astropy.io.fits o Fixed a regression that could cause writes of large FITS files to be truncated. [#4307] o Astropy v1.0.6 included a fix (#4228) for an obscure case where the TDIM of a table column is smaller than the repeat count of its data format. This updates that fix in such a way that it works with Numpy 1.10 as well. [#4266] o Fix fast writer so bytestring column output is not prefixed by 'b' in Python 3. [#4350] + astropy.table o Fix a bug when pickling a Table with mixin columns (e.g. Time). [#4098] + astropy.utils o Fixed an issue where if ipython is installed but ipykernel is not installed then importing astropy from the ipython console gave an IPython.kernel deprecation warning. [#4279] o Fixed crash that could occur in ProgressBar when astropy is imported in an IPython startup script. [#4274] - update to version 1.0.6: * astropy.analytic_functions + Fixed blackbody analytic functions to properly support arrays of temperatures. [#4251] * astropy.coordinates + Fixed errors in transformations for objects within a few AU of the Earth. Included substansive changes to transformation machinery that may change distances at levels ~machine precision for other objects. [#4254] * astropy.io.fits + fitsdiff and related functions now do a better job reporting differences between values that are different types but have the same representation (ex: the string '0' versus the number 0). [#4122] + Miscellaneous fixes for supporting Numpy 1.10. [#4228] + Fixed an issue where writing a column of unicode strings to a FITS table resulted in a quadrupling of size of the column (i.e. the format of the FITS column was 4 characters for every one in the original strings). [#4228] + Added support for an obscure case (but nonetheless allowed by the FITS standard) where a column has some TDIMn keyword, but a repeat count in the TFORMn column greater than the number of elements implied by the TDIMn. For example TFORMn = 100I, but TDIMn = '(5,5)'. In this case the TDIMn implies 5x5 arrays in the column, but the TFORMn implies a 100 element 1-D array in the column. In this case the TDIM takes precedence, and the remaining bytes in the column are ignored. [#4228] * astropy.io.votable + Fixed crash with Python compiler optimization level = 2. [#4231] * astropy.vo + Fixed check_conesearch_sites with parallel=True on Python >= 3.3 and on Windows (it was broken in both those cases for separate reasons). [#2970] * All tests now pass against Numpy v1.10.x. This implies nominal support for Numpy 1.10.x moving forward (but there may still be unknown issues). For example, there is already a known performance issue with tables containing large multi-dimensional columns--for example, tables that contain entire images in one or more of their columns. This is a known upstream issue in Numpy. [#4259] - Update to 1.0.5 + Bug Fixes * ``astropy.constants`` > Rename units -> unit and error -> uncertainty in the ``repr`` and ``str`` of constants to match attribute names. [#4147] * ``astropy.coordinates`` > Fix string representation of ``SkyCoord`` objects transformed into the ``AltAz`` frame [#4055] > Fix the ``search_around_sky`` function to allow ``storekdtree`` to be ``False`` as was intended. [#4082] * ``astropy.io.fits`` > Fix bug when extending one header (without comments) with another (with comments). [#3967] > Somewhat improved resource usage for FITS data--previously a new ``mmap`` was opened for each HDU of a FITS file accessed through an ``HDUList``. Each ``mmap`` used up a single file descriptor, causing problems with system resource limits for some users. Now only a single ``mmap`` is opened, and shared for the data of all HDUs. Note: The problem still persists with using the "convenience" functions. For example using ``fits.getdata`` will create one ``mmap`` per HDU read this way (as opposed to opening the file with ``fits.open`` and accessing the HDUs through the ``HDUList`` object). [#4097] > Fix bug where reading a file without a newline failed with an unrelated / unhelpful exception. [#4160] * ``astropy.modeling`` > Cleaned up ``repr`` of models that have no parameters. [#4076] * ``astropy.nddata`` > Initializing ``NDDataArray`` from another instance now sets ``flags`` as expected and no longer fails when ``uncertainty`` is set [#4129]. Initializing an ``NDData`` subclass from a parent instance (eg. ``NDDataArray`` from ``NDData``) now sets the attributes other than ``data`` as it should [#4137]. * ``astropy.table`` > Fix bug when doing outer join on multi-dimensional columns. [#4060] > Fix an issue with setting fill value when column dtype is changed. [#4088] > Fix bug when unpickling a bare Column where the _parent_table attribute was not set. This impacted the Column representation. [#4099] > Fix issue with the web browser opening with an empty page, and ensure that the url is correctly formatted for Windows. [#4132] > Fix NameError in table stack exception message. [#4213] * ``astropy.utils`` > ``resolve_name`` no longer causes ``sys.modules`` to be cluttered with additional copies of modules under a package imported like ``resolve_name('numpy')``. [#4084] > ``console`` was updated to support IPython 4.x and Jupyter 1.x. This should supress a ShimWarning that was appearing at import of astropy with IPython 4.0 or later. [#4078] > Temporary downloaded files created by ``get_readable_fileobj`` when passed a URL are now deleted immediately after the file is closed. [#4198] * ``astropy.visualization`` > The color for axes labels was set to white. Since white labels on white background are hard to read, the label color has been changed to black. [#4143] > ``ImageNormalize`` now automatically determines ``vmin``/``vmax`` (via the ``autoscale_None`` method) when they have not been set explicitly. [#4117] * ``astropy.vo`` > Cone Search validation no longer crashes when the provider gives an incomplete test query. It also ensures search radius for a test query is not too large to avoid timeout. [#4158, #4159] + Other Changes and Additions - Astropy now supports Python 3.5. [#4027] - Updated bundled version of astropy-helpers to 1.0.5. [#4215] - Updated tests to support py.test 2.7, and upgraded the bundled copy of py.test to v2.7.3. [#4027] - Update to 1.0.4 + New Features * ``astropy.convolution`` > Modified Cython functions to release the GIL. This enables convolution to be parallelized effectively and gives large speedups when used with multithreaded task schedulers such as Dask. [#3949] + API Changes * ``astropy.coordinates`` > Some transformations for an input coordinate that's a scalar now correctly return a scalar. This was always the intended behavior, but it may break code that has been written to work-around this bug, so it may be viewed as an unplanned API change [#3920] * ``astropy.visualization`` > The ``astropy_mpl_style`` no longer sets ``interactive`` to ``True``, but instead leaves it at the user preference. This makes using the style compatible with building docs with Sphinx, and other non-interactive contexts. [#4030] + Bug Fixes * ``astropy.coordinates`` > Fix bug where coordinate representation setting gets reset to default value when coordinate array is indexed or sliced. [#3824] > Fixed confusing warning message shown when using dates outside current IERS data. [#3844] > ``get_sun`` now yields a scalar when the input time is a scalar (this was a regression in v1.0.3 from v1.0.2) [#3998] > Fixed bug where some scalar coordinates were incorrectly being changed to length-1 array coordinates after transforming through certain frames. [#3920] > Fixed bug causing the ``separation`` methods of ``SkyCoord`` and frame classes to fail due to infinite recursion [#4033] > Made it so that passing in a list of ``SkyCoord`` objects that are in UnitSphericalRepresentation to the ``SkyCoord`` constructor appropriately yields a new object in UnitSphericalRepresentation [#3938] * ``astropy.cosmology`` > Fixed wCDM to not ignore the Ob0 parameter on initialization. [#3934] * ``astropy.io.fits`` > Fixed crash when updating data in a random groups HDU opened in update mode. [#3730] > Fixed incorrect checksum / datasum being written when re-writing a scaled HDU (i.e. non-trivial BSCALE and/or BZERO) with ``do_not_scale_image_data=False``. [#3883] > Fixed stray deprecation warning in ``BinTableHDU.copy()``. [#3789] > Better handling of the ``BLANK`` keyword when auto-scaling scaled image data. The ``BLANK`` keyword is now removed from the header after auto-scaling is applied, and it is restored properly (with floating point NaNs replaced by the filler value) when updating a file opened with the ``scale_back=True`` argument. Invalid usage of the ``BLANK`` keyword is also better warned about during validation. [#3865] > Reading memmaped scaled images won't fail when ``do_not_scale_image_data=True`` (that is, since we're just reading the raw / physical data there is no reason mmap can't be used). [#3766] > Fixed a reference cycle that could sometimes cause FITS table-related objects (``BinTableHDU``, ``ColDefs``, etc.) to hang around in memory longer than expected. [#4012] * ``astropy.modeling`` > Added missing default values for ``Ellipse2D`` parameters. [#3903] > Improved support for pickling of compound models, including both compound model instances, and new compound model classes. [#3867] * ``astropy.table`` > Added missing default values for ``Ellipse2D`` parameters. [#3903] * ``astropy.time`` > Fixed iteration of scalar ``Time`` objects so that ``iter()`` correctly raises a ``TypeError`` on them (while still allowing ``Time`` arrays to be iterated). [#4048] * ``astropy.units`` > Added frequency-equivalency check when declaring doppler equivalencies [#3728] > Define ``floor_divide`` (``//``) for ``Quantity`` to be consistent ``divmod``, such that it only works where the quotient is dimensionless. This guarantees that ``(q1 // q2) * q2 + (q1 % q2) == q1``. [#3817] > Fixed the documentation of supported units to correctly report support for SI prefixes. Previously the table of supported units incorrectly showed several derived unit as not supporting prefixes, when in fact they do. [#3835] > Fix a crash when calling ``astropy.units.cds.enable()``. This will now "set" rather than "add" units to the active set to avoid the namespace clash with the default units. [#3873] > Ensure in-place operations on ``float32`` quantities work. [#4007] * ``astropy.utils`` > The ``deprecated`` decorator did not correctly wrap classes that have a custom metaclass--the metaclass could be dropped from the deprecated version of the class. [#3997] > The ``wraps`` decorator would copy the wrapped function's name to the wrapper function even when ``'__name__'`` is excluded from the ``assigned`` argument. [#4016] * Misc > ``fitscheck`` no longer causes scaled image data to be rescaled when adding checksums to existing files. [#3884] > Fixed an issue where running ``import astropy`` from within the source tree did not automatically build the extension modules if the source is from a source distribution (as opposed to a git repository). [#3932] > Fixed multiple instances of a bug that prevented Astropy from being used when compiled with the ``python -OO`` flag, due to it causing all docstrings to be stripped out. [#3923] > Removed source code template files that were being installed accidentally alongside installed Python modules. [#4014] > Fixed a bug in the exception logging that caused a crash in the exception handler itself on Python 3 when exceptions do not include a message. [#4056] - update to version 1.0.3: * New Features + astropy.table o Greatly improved the speed of printing a large table to the screen when only a few rows are being displayed. [#3796] + astropy.time o Add support for the 2015-Jun-30 leap second. [#3794] * API Changes + astropy.io.ascii o Note that HTML formatted tables will not always be found with guess mode unless it passes certain heuristics that strongly suggest the presence of HTML in the input. Code that expects to read tables from HTML should specify format='html' explicitly. See bug fixes below for more details. [#3693] * Bug Fixes + astropy.convolution o Fix issue with repeated normalizations of Kernels. [#3747] + astropy.coordinates o Fixed get_sun to yield frames with the obstime set to what's passed into the function (previously it incorrectly always had J2000). [#3750] o Fixed get_sun to account for aberration of light. [#3750] o Fixed error in the GCRS->ICRS transformation that gave incorrect distances. [#3750] + astropy.io.ascii o Remove HTML from the list of automatically-guessed formats when reading if the file does not appear to be HTML. This was necessary to avoid a commonly-encountered segmentation fault occurring in the libxml parser on MacOSX. [#3693] + astropy.io.fits o Fixes to support the upcoming Numpy 1.10. [#3419] + astropy.modeling o Polynomials are now scaled when used in a compound model. [#3702] o Fixed the Ellipse2D model to be consistent with Disk2D in how pixels are included. [#3736] o Fixed crash when evaluating a model that accepts no inputs. [#3772] + astropy.testing o The Astropy py.test plugins that disable unintential internet access in tests were also blocking use of local UNIX sockets in tests, which prevented testing some multiprocessing code--fixed. [#3713] + astropy.units o Supported full SI prefixes for the barn unit ("picobarn", "femtobarn", etc.) [#3753] o Fix loss of precision when multiplying non-whole-numbered powers of units together. For example, before this change, (u.m ** 1.5) ** Fraction(4, 5) resulted in an inaccurate floating-point power of 1.2000000000000002. After this change, the exact rational number of Fraction(6, 5) is maintained. [#3790] o Fixed printing of object ndarrays containing multiple Quantity objects with differing / incompatible units. Note: Unit conversion errors now cause a UnitConversionError exception to be raised. However, this is a subclass of the UnitsError exception used previously, so existing code that catches UnitsError should still work. [#3778] * Other Changes and Additions - Added a new astropy.__bibtex__ attribute which gives a citation for Astropy in bibtex format. [#3697] - The bundled version of ERFA was updated to v1.2.0 to address leapscond updates. [#3802] ------------------------------------------------------------------- Mon Jul 27 15:10:56 UTC 2015 - toddrme2178@gmail.com - Fix hdf5 version requirement ------------------------------------------------------------------- Thu May 21 14:08:38 UTC 2015 - toddrme2178@gmail.com - update to version 1.0.2: * New Features + "astropy.modeling" o Added support for polynomials with degree 0 or degree greater than 15. [#3574, 3589] * Bug Fixes + "astropy.config" o The pre-astropy-0.4 configuration API has been fixed. It was inadvertently broken in 1.0.1. [#3627] + "astropy.io.fits" o Fixed handling of BINTABLE with TDIMn of size 1. [#3580] o Fixed a severe memory leak that occurred when reading tile compressed images. [#3680] o Fixed bug where column data could be unintentionally byte-swapped when copying data from an existing FITS file to a new FITS table with a TDIMn keyword for that column. [#3561] o The "ColDefs.change_attrib", "ColDefs.change_name", and "ColDefs.change_unit" methods now work as advertised. It is also possible (and preferable) to update attributes directly on "Column" objects (for example setting "column.name"), and the change will be accurately reflected in any associated table data and its FITS header. [#3283, #1539, #2618] o Fixes an issue with the "FITS_rec" interface to FITS table data, where a "FITS_rec" created by copying an existing FITS table but adding new rows could not be sliced or masked correctly. [#3641] + "astropy.io.votable" o Loading a "TABLE" element without any "DATA" now correctly creates a 0-row array. [#3636] + "astropy.modeling" o Added workaround to support inverses on compound models when one of the sub-models is itself a compound model with a manually-assigned custom inverse. [#3542] o Fixed instantiation of polynomial models with constraints for parameters (constraints could still be assigned after instantiation, but not during). [#3606] o Fixed fitting of 2D polynomial models with the "LeVMarLSQFitter". [#3606] + "astropy.table" o Ensure "QTable" can be pickled [#3590] o Some corner cases when instantiating an "astropy.table.Table" with a Numpy array are handled [#3637]. Notably: o a zero-length array is the same as passing "None" o a scalar raises a "ValueError" o a one-dimensional array is treated as a single row of a table. + "astropy.time" o Ensure a "Column" without units is treated as an "array", not as an o Ensure a "Column" without units is treated as an "array", not as an dimensionless "Quantity". [#3648] + "astropy.units" o Ensure equivalencies that do more than just scale a "Quantity" are properly handled also in "ufunc" evaluations. [#2496, #3586] o The LaTeX representation of the Angstrom unit has changed from "\overset{\circ}{A}" to "\mathring{A}", which should have better support across regular LaTeX, MathJax and matplotlib (as of version 1.5) [#3617] + "astropy.vo" o Using HTTPS/SSL for communication between SAMP hubs now works correctly on all supported versions of Python [#3613] + "astropy.wcs" o When no "relax" argument is passed to "WCS.to_header()" and the result omits non-standard WCS keywords, a warning is emitted. [#3652] * Other Changes and Additions + Nothing changed yet. + "astropy.units" o Clarified imperial mass measurements and added pound force (lbf), kilopound (kip), and pound per square inch (psi). [#3409] + "astropy.vo" o The number of retries for connections in "astropy.vo.samp" can now be configured by a "n_retries" configuration option. [#3612] + Testing o Running "astropy.test()" from within the IPython prompt has been provisionally re-enabled. [#3184] - update to version 1.0.1: * Bug Fixes - astropy.constants + Ensure constants can be turned into Quantity safely. [#3537, #3538] - astropy.io.ascii + Fix a segfault in the fast C parser when one of the column headers is empty [#3545]. + Fixed support for reading inf and nan values with the fast reader in Windows. Also fixed in the case of using use_fast_converter=True with the fast reader. [#3525] + Fixed use of mmap in the fast reader on Windows. [#3525] + Fixed issue where commented header would treat comments defining the table (i.e. column headers) as purely information comments, leading to problems when trying to round-trip the table. [#3562] - astropy.modeling + Fixed propagation of parameter constraints ('fixed', 'bounds', 'tied') between compound models and their components. There is may still be some difficulty defining 'tied' constraints properly for use with compound models, however. [#3481] - astropy.nddata + Restore several properties to the compatibility class NDDataArray that were inadvertently omitted [#3466]. - astropy.time + Time objects now always evalutate to True, except when empty. [#3530] * Other Changes and Additions - Updated bundled astropy-helpers version to v1.0.1 to address installation issues with some packages that depend on Astropy. [#3541] * Miscellaneous - astropy._erfa + The ERFA wrappers are now written directly in the Python/C API rather than using Cython, for greater performance. [#3521] - Improve import time of astropy [#3488]. - specfile: added fits2bitmap binary - update to version 1.0: * General - Astropy now requires a Numpy 1.6.0 or later. * New Features - astropy.analytic_functions + The astropy.analytic_functions was added to contain analytic functions useful for astronomy [#3077]. - astropy.coordinates + astropy.coordinates now has a full stack of frames allowing transformations from ICRS or other celestial systems down to Alt/Az coordinates. [#3217] + astropy.coordinates now has a get_sun function that gives the coordinates of the Sun at a specified time. [#3217] + SkyCoord now has to_pixel and from_pixel methods that convert between celestial coordinates as SkyCoord objects and pixel coordinates given an astropy.wcs.WCS object. [#3002] + SkyCoord now has search_around_sky and search_around_3d convenience methods that allow searching for all coordinates within a certain distance of another SkyCoord. [#2953] + SkyCoord can now accept a frame instance for the frame= keyword argument. [#3063] + SkyCoord now has a guess_from_table method that can be used to quickly create SkyCoord objects from an astropy.table.Table object. [#2951] + astropy.coordinates now has a Galactocentric frame, a coordinate frame centered on a (user specified) center of the Milky Way. [#2761, #3286] + SkyCoord now accepts more formats of the coordinate string when the representation has ra and dec attributes. [#2920] + SkyCoord can now accept lists of SkyCoord objects, frame objects, or representation objects and will combine them into a single object. [#3285] + Frames and SkyCoord instances now have a method is_equivalent_frame that can be used to check that two frames are equivalent (ignoring the data). [#3330] + The __repr__ of coordinate objects now shows scalar coordinates in the same format as vector coordinates. [#3350, 3448] - astropy.cosmology + Added lookback_distance, which is c * lookback_time. [#3145] + Add baryonic matter density and dark matter only density parameters to cosmology objects [#2757]. + Add a clone method to cosmology objects to allow copies of cosmological objects to be created with the specified variables modified [#2592]. + Increase default numerical precision of z_at_value following the accurate by default, fast by explicit request model [#3074]. + Cosmology functions that take a single (redshift) input now broadcast like numpy ufuncs. So, passing an arbitrarily shaped array of inputs will produce an output of the same shape. [#3178, #3194] - astropy.io.ascii + Simplify the way new Reader classes are defined, allowing custom behavior entirely by overriding inherited class attributes instead of setting instance attributes in the Reader __init__ method. [#2812] + There is now a faster C/Cython engine available for reading and writing simple ASCII formats like CSV. Both are enabled by default, and fast reading will fall back on an ordinary reader in case of a parsing failure. Their behavior can be altered with the parameter fast_reader in read and fast_writer in write. [#2716] + Make Latex/AASTex tables use unit attribute of Column for output. [#3064] + Store comment lines encountered during reading in metadata of the output table via meta['comment_lines']. [#3222] + Write comment lines in Table metadata during output for all basic formats, IPAC, and fast writers. This functionality can be disabled with comment=False. [#3255] + Add reader / writer for the Enhanced CSV format which stores table and column meta data, in particular data type and unit. [#2319] + Automatically use guess=False when reading if the file format is provided and the format parameters are uniquely specified. This update also removes duplicate format guesses to improve performance. [#3418] - astropy.io.fits + The fitsdiff script ignores some things by default when comparing fits files (e.g. empty header lines). This adds a --exact option where nothing is ignored. [#2782, #3110] + The fitsheader script now takes a --keyword option to extract a specific keyword from the header of a FITS file, and a --table option to export headers into any of the data formats supported by astropy.table. [#2555, #2588] + Section now supports all advanced indexing features ndarray does (slices with any steps, integer arrays, boolean arrays, None, Ellipsis). It also properly returns scalars when this is appropriate. [#3148] - astropy.io.votable + astropy.io.votable.parse now takes a datatype_mapping keyword argument to map invalid datatype names to valid ones in order to support non-compliant files. [#2675] - astropy.modeling + Added the capability of creating new "compound" models by combining existing models using arithmetic operators. See the "What's New in 1.0" page in the Astropy documentation for more details. [#3231] + A new custom_model decorator/factory function has been added for converting normal functions to Model classes that can work within the Astropy modeling framework. This replaces the old custom_model_1d function which is now deprecated. The new function works the same as the old one but is less limited in the types of models it can be used to created. [#1763] + The Model and Fitter classes have .registry attributes which provide sets of all loaded Model and Fitter classes (this is useful for building UIs for models and fitting). [#2725] + A dict-like meta member was added to Model. it is to be used to store any optional information which is relevant to a project and is not in the standard Model class. [#2189] + Added Ellipse2D model. [#3124] - astropy.nddata + New array-related utility functions in astropy.nddata.utils for adding and removing arrays from other arrays with different sizes/shapes. [#3201] + New metaclass NDDataBase for enforcing the nddata interface in subclasses without restricting implementation of the data storage. [#2905] + New mixin classes NDSlicingMixin for slicing, NDArithmeticMixin for arithmetic operations, and NDIOMixin for input/ouput in NDData. [#2905] + Added a decorator support_nddata that can be used to write functions that can either take separate arguments or NDData objects. [#2855] - astropy.stats + Added mad_std() function. [#3208] + Added gaussian_fwhm_to_sigma and gaussian_sigma_to_fwhm constants. [#3208] + New function sigma_clipped_stats which can be used to quickly get common statistics for an array, using sigma clipping at the same time. [#3201] - astropy.table + Changed the internal implementation of the Table class changed so that it no longer uses numpy structured arrays as the core table data container. [#2790, #3179] + Tables can now be written to an html file that includes interactive browsing capabilities. To write out to this format, use Table.write('filename.html', format='jsviewer'). [#2875] + A quantity property and to method were added to Table columns that allow the column values to be easily converted to astropy.units.Quantity objects. [#2950] + Add unique convenience method to table. [#3185] - astropy.tests + Added a new Quantity-aware assert_quantity_allclose. [#3273] - astropy.time + Time can now handle arbitrary array dimensions, with operations following standard numpy broadcasting rules. [#3138] - astropy.units + Support for VOUnit has been updated to be compliant with version 1.0 of the standard. [#2901] + Added an insert method to insert values into a Quantity object. This is similar to the numpy.insert function. [#3049] + When viewed in IPython, Quantity objects with array values now render using LaTeX and scientific notation. [#2271] + Added units.quantity_input decorator to validate quantity inputs to a function for unit compatibility. [#3072] + Added units.astronomical_unit as a long form for units.au. [#3303] - astropy.utils + Added a new decorator astropy.utils.wraps which acts as a replacement for the standard library's functools.wraps, the only difference being that the decorated function also preserves the wrapped function's call signature. [#2849] + astropy.utils.compat.numpy has been revised such that it can include patched versions of routines from newer numpy versions. The first addition is a version of broadcast_arrays that can be used with Quantity and other ndarray subclasses (using the subok=True flag). [#2327] + Added astropy.utils.resolve_name which returns a member of a module or class given the fully qualified dotted name of that object as a string. [#3389] + Added astropy.utils.minversion which can be used to check minimum version requirements of Python modules (to test for specific features and/ or bugs and the like). [#3389] - astropy.visualization + Created astropy.visualization module and added functionality relating to image normalization (i.e. stretching and scaling) as well as a new script fits2bitmap that can produce a bitmap image from a FITS file. [#3201] + Added dictionary astropy.visualization.mpl_style.astropy_mpl_style which can be used to set a uniform plotstyle specifically for tutorials that is improved compared to matplotlib defaults. [#2719, #2787, #3200] - astropy.wcs + wcslib has been upgraded to version 4.25. This brings a single new feature: + equinox and radesys will now be given default values conforming with the WCS specification if EQUINOXa and RADESYa, respectively, are not present in the header. + The minimum required version of wcslib is now 4.24. [#2503] + Added a new function wcs_to_celestial_frame that can be used to find the astropy.coordinates celestial frame corresponding to a particular WCS. [#2730] + astropy.wcs.WCS.compare now supports a tolerance keyword argument to allow for approximate comparison of floating-point values. [#2503] + added pixel_scale_matrix, celestial, is_celestial, and has_celestial convenience attributes. Added proj_plane_pixel_scales, proj_plane_pixel_area, and non_celestial_pixel_scales utility functions for retrieving WCS pixel scale and area information [#2832, #3304] + Added two functions pixel_to_skycoord and skycoord_to_pixel that make it easy to convert between SkyCoord objects and pixel coordinates. [#2885] + all_world2pix now uses a much more sophisticated and complete algorithm to iteratively compute the inverse WCS transform. [#2816] + Add ability to use WCS object to define projections in Matplotlib, using the WCSAxes package. [#3183] + Added is_proj_plane_distorted for testing if pixels are distorted. [#3329] - Misc + astropy._erfa was added as a new subpackage wrapping the functionality of the ERFA library in python. This is primarily of use for other astropy subpackages, but the API may be made more public in the future. [#2992] * API Changes - astropy.coordinates + Subclasses of BaseCoordinateFrame which define a custom repr should be aware of the format expected in SkyCoord.__repr__(), which changed in this release. [#2704, #2882] + The CartesianPoints class (deprecated in v0.4) has now been removed. [#2990] + The previous astropy.coordinates.builtin_frames module is now a subpackage. Everything that was in the astropy.coordinates.builtin_frames module is still accessible from the new package, but the classes are now in separate modules. This should have no direct impact at the user level. [#3120] + Support for passing a frame as a positional argument in the SkyCoord class has now been deprecated, except in the case where a frame with data is passed as the sole positional argument. [#3152] + Improved __repr__ of coordinate objects representing a single coordinate point for the sake of easier copy/pasting. [#3350] - astropy.cosmology + The functional interface to the cosmological routines as well as set_current and get_current (deprecated in v0.4) have now been removed. [#2990] - astropy.io.ascii + Added a new argument to htmldict in the HTML reader named parser, which allows the user to specify which parser BeautifulSoup should use as a backend. [#2815] + Add FixedWidthTwoLine reader to guessing. This will allows to read tables that a copied from screen output like print my_table to be read automatically. Discussed in #3025 and #3099 [#3109] - astropy.io.fits + A new optional argument cache has been added to astropy.io.fits.open(). When opening a FITS file from a URL, cache is a boolean value specifying whether or not to save the file locally in Astropy's download cache (True by default). [#3041] - astropy.modeling + Model classes should now specify inputs and outputs class attributes instead of the old n_inputs and n_outputs. These should be tuples providing human-readable *labels* for all inputs and outputs of the model. The length of the tuple indicates the numbers of inputs and outputs. See "What's New in Astropy 1.0" for more details. [#2835] + It is no longer necessary to include __init__ or __call__ definitions in Model subclasses if all they do is wrap the super-method in order to provide a nice call signature to the docs. The inputs class attribute is now used to generate a nice call signature, so these methods should only be overridden by Model subclasses in order to provide new functionality. [#2835] + Most models included in Astropy now have sensible default values for most or all of their parameters. Call help(ModelClass) on any model to check what those defaults are. Most of them time they should be overridden, but some of them are useful (for example spatial offsets are always set at the origin by default). Another rule of thumb is that, where possible, default parameters are set so that the model is a no-op, or close to it, by default. [#2932] + The Model.inverse method has been changed to a *property*, so that now accessing model.inverse on a model returns a new model that implements that model's inverse, and *calling* model.inverse(...)` on some independent variable computes the value of the inverse (similar to what the old Model.invert() method was meant to do). [#3024] + The Model.invert() method has been removed entirely (it was never implemented and there should not be any existing code that relies on it). [#3024] + custom_model_1d is deprecated in favor of the new custom_model (see "New Features" above). [#1763] + The Model.param_dim property (deprecated in v0.4) has now been removed. [#2990] + The Beta1D and Beta2D models have been renamed to Moffat1D and Moffat2D. [#3029] - astropy.nddata + flags, shape, size, dtype and ndim properties removed from astropy.nddata.NDData. [#2905] + Arithmetic operations, uncertainty propagation, slicing and automatic conversion to a numpy array removed from astropy.nddata.NDData. The class astropy.nddata.NDDataArray is functionally equivalent to the old NDData. [#2905] - astropy.table + The Column.units property (deprecated in v0.3) has now been removed. [#2990] + The Row.data and Table._data attributes have been deprecated related to the change in Table implementation. They are replaced by Row.as_void() and Table.as_array() methods, respectively. [#2790] + The Table.create_mask method has been removed. This undocumented method was a development orphan and would cause corruption of the table if called. [#2790] + The return type for integer item access to a Column (e.g. col[12] or t['a'][12]) is now always a numpy scalar, numpy ndarray, or numpy MaskedArray. Previously if the column was multidimensional then a Column object would be returned. [#3095] + The representation of Table and Column objects has been changed to be formatted similar to the print output. [#3239] - astropy.time + The Time.val and Time.vals properties (deprecated in v0.3) and the Time.lon, and Time.lat properties (deprecated in v0.4) have now been removed. [#2990] + Add decimalyear format that represents time as a decimal year. [#3265] - astropy.units + Support for VOUnit has been updated to be compliant with version 1.0 of the standard. This means that some VOUnit strings that were rejected before are now acceptable. [#2901] Notably: - SI prefixes are supported on most units - Binary prefixes are supported on "bits" and "bytes" - Custom units can be defined "inline" by placing them between single quotes. + Unit.get_converter has been deprecated. It is not strictly necessary for end users, and it was confusing due to lack of support for Quantity objects. [#3456] - astropy.utils + Some members of astropy.utils.misc were moved into new submodules. Specifically: - deprecated, deprecated_attribute, and lazyproperty -> astropy.utils.decorators - find_current_module, find_mod_objs -> astropy.utils.introspection All of these functions can be imported directly from astropy.utils which should be preferred over referencing individual submodules of astropy.utils. [#2857] + The ProgressBar.iterate class method (deprecated in v0.3) has now been removed. [#2990] + Updated astropy/utils/console.py ProgressBar() module to display output to IPython notebook with the addition of an interactive kwarg. [#2658] [#2789] - astropy.wcs + The WCS.calcFootprint method (deprecated in v0.4) has now been removed. [#2990] + An invalid unit in a CUNITn keyword now displays a warning and returns a UnrecognizedUnit instance rather than raising an exception [#3190] * Bug Fixes - astropy.convolution + astropy.convolution.discretize_model now handles arbitrary callables correctly [#2274]. - astropy.coordinates + Angle.to_string now outputs unicode arrays instead of object arrays. [#2981] + SkyCoord.to_string no longer gives an error when used with an array coordinate with more than one dimension. [#3340] + Fixed support for subclasses of UnitSphericalRepresentation and SphericalRepresentation [#3354, #3366] + Fixed latex display of array angles in IPython notebook. [#3480] - astropy.io.ascii + In the CommentedHeader the data_start parameter now defaults to 0, which is the first uncommented line. Discussed in #2692. [#3054] + Position lines in FixedWidthTwoLine reader could consist of many characters. Now, only one character in addition to the delimiter is allowed. This bug was discovered as part of [#3109] + The IPAC table writer now consistently uses the fill_values keyword to specify the output null values. Previously the behavior was inconsistent or incorrect. [#3259] + The IPAC table reader now correctly interprets abbreviated column types. [#3279] + Tables that look almost, but not quite like DAOPhot tables could cause guessing to fail. [#3342] - astropy.io.fits + Fixed the problem in fits.open of some filenames with colon (:) in the name being recognized as URLs instead of file names. [#3122] + Setting memmap=True in fits.open and related functions now raises a ValueError if opening a file in memory-mapped mode is impossible. [#2298] + CONTINUE cards no longer end the value of the final card in the series with an ampersand, per the specification of the CONTINUE card convention. [#3282] + Fixed a crash that occurred when reading an ASCII table containing zero-precision floating point fields. [#3422] + When a float field for an ASCII table has zero-precision a decimal point (with no digits following it) is still written to the field as long as there is space for it, as recommended by the FITS standard. This makes it less ambiguous that these columns should be interpreted as floats. [#3422] - astropy.logger + Fix a bug that occurred when displaying warnings that produced an error message dictionary changed size during iteration. [#3353] - astropy.modeling + Fixed a bug in SLSQPLSQFitter where the maxiter argument was not passed correctly to the optimizer. [#3339] - astropy.table + Fix a problem where table.hstack fails to stack multiple references to the same table, e.g. table.hstack([t, t]). [#2995] + Fixed a problem where table.vstack and table.hstack failed to stack a single table, e.g. table.vstack([t]). [#3313] + Fix a problem when doing nested iterators on a single table. [#3358] + Fix an error when an empty list, tuple, or ndarray is used for item access within a table. This now returns the table with no rows. [#3442] - astropy.time + When creating a Time object from a datetime object the time zone info is now correctly used. [#3160] + For Time objects, it is now checked that numerical input is finite. [#3396] - astropy.units + Added a latex_inline unit format that returns the units in LaTeX math notation with negative exponents instead of fractions [#2622]. + When using a unit that is deprecated in a given unit format, non-deprecated alternatives will be suggested. [#2806] For example:: >>> import astropy.units as u >>> u.Unit('Angstrom', format='fits') WARNING: UnitsWarning: The unit 'Angstrom' has been deprecated in the FITS standard. Suggested: nm (with data multiplied by 0.1). [astropy.units.format.utils] - astropy.utils + treat_deprecations_as_exceptions has been fixed to recognize Astropy deprecation warnings. [#3015] - astropy.wcs + astropy.wcs.WCS.sub now accepts unicode strings as input on Python 2.x [#3356] - Misc + Some modules and tests that would crash upon import when using a non-final release of Numpy (e.g. 1.9.0rc1). [#3471] * Other Changes and Additions - The bundled copy of astropy-helpers has been updated to v1.0. [#3515] - The bundled copy of astropy-helpers has been updated to v1.0. [#3513] - Updated astropy.extern.configobj to Version 5. Version 5 uses six and the same code covers both Python 2 and Python 3. [#3149] - astropy.coordinates + The repr of SkyCoord and coordinate frame classes now separate frame attributes and coordinate information. [#2704, #2882] - astropy.io.fits + Overwriting an existing file using the clobber=True option no longer displays a warning message. [#1963] + fits.open no longer catches OSError exceptions on missing or unreadable files-- instead it raises the standard Python exceptions in such cases. [#2756, #2785] - astropy.table + Sped up setting of Column slices by an order of magnitude. [#2994, #3020] - Updated the bundled six module to version 1.7.3 and made 1.7.3 the minimum acceptable version of six. [#2814] - The version of ERFA included with Astropy is now v1.1.1 [#2971] - The code base is now fully Python 2 and 3 compatible and no longer requires 2to3. [#2033] - `funcsigs <https://pypi.python.org/pypi/funcsigs>`_ is included in utils.compat, but defaults to the inspect module components where available (3.3+) [#3151]. - The list of modules displayed in the pytest header can now be customized. [#3157] - `jinja2 <http://jinja.pocoo.org/docs/dev/>`_>=2.7 is now required to build the source code from the git repository, in order to allow the ERFA wrappers to be generated. [#3166] - update to version 0.4.4: * astropy.vo.samp + astropy.vo.samp is now usable on Python builds that do not support the SSLv3 protocol (which depends both on the version of Python and the version of OpenSSL or LibreSSL that it is built against.) [#3308] + The default SSL protocol used is now determined from the default used in the Python ssl standard library. This default may be different depending on the exact version of Python you are using. [#3308] * astropy.wcs + WCS allows slices of the form slice(None, x, y), which previously resulted in an unsliced copy being returned (note: this was previously incorrectly reported as fixed in v0.4.3) [#2909] - changes from version 0.4.3: * astropy.coordinates + The Distance class has been fixed to no longer rely on the deprecated cosmology functions. [#2991] + Ensure float32 values can be used in coordinate representations. [#2983] + Fix frame attribute inheritance in SkyCoord.transform_to() method so that the default attribute value (e.g. equinox) for the destination frame gets used if no corresponding value was explicitly specified. [#3106] + Angle accepts hours:mins or deg:mins initializers (without seconds). In these cases float minutes are also accepted. + astropy.coordinates.SkyCoord objects are now copyable. [#2888 ] + astropy.coordinates.SkyCoord object attributes are now immutable. It is still technically possible to change the internal data for an array-valued coordinate object but this leads to inconsistencies [#2889] and should not be done. [#2888] * astropy.cosmology + The ztol keyword argument to z_at_value now works correctly [#2993]. * astropy.io.ascii + Fix a bug in Python 3 when guessing file format using a file object as input. Also improve performance in same situation for Python 2. [#3132] + Fix a problem where URL was being downloaded for each guess. [#2001] * astropy.io.fits + The in operator now works correctly for checking if an extension is in an HDUList (as given via EXTNAME, (EXTNAME, EXTVER) tuples, etc.) [#3060] + Added workaround for bug in MacOS X <= 10.8 that caused np.fromfile to fail. [#3078] + Added support for the RICE_ONE compression type synonym. [#3115] * astropy.modeling + Fixed a test failure on Debian/PowerPC and Debian/s390x. [#2708] + Fixed crash in evaluating models that have more outputs than inputs--this case may not be handled as desired for all conceivable models of this format (some may have to implement custom prepare_inputs and prepare_outputs methods). But as long as all outputs can be assumed to have a shape determined from the broadcast of all inputs with all parameters then this can be used safely. [#3250] * astropy.table + Fix a bug that caused join to fail for multi-dimensional columns. [#2984] + Fix a bug where MaskedColumn attributes which had been changed since the object was created were not being carried through when slicing. [#3023] + Fix a bug that prevented initializing a table from a structured array with multi-dimensional columns with copy=True. [#3034] + Fixed unnecessarily large unicode columns when instantiating a table from row data on Python 3. [#3052] + Improved the warning message when unable to aggregate non-numeric columns. [#2700] * astropy.units + Operations on quantities with incompatible types now raises a much more informative TypeError. [#2934] + Quantity.tolist now overrides the ndarray method to give a NotImplementedError (by renaming the previous list method). [#3050] + Quantity.round now always returns a Quantity (previously it returned an ndarray for decimals>0). [#3062] + Ensured np.squeeze always returns a Quantity (it only worked if no dimensions were removed). [#3045] + Input to Quantity with a unit attribute no longer can get mangled with copy=False. [#3051] + Remove trailing space in __format__ calls for dimensionless quantities. [#3097] + Comparisons between units and non-unit-like objects now works correctly. [#3108] + Units with fractional powers are now correctly multiplied together by using rational arithmetic. [#3121] + Removed a few entries from spectral density equivalencies which did not make sense. [#3153] * astropy.utils + Fixed an issue with the deprecated decorator on classes that invoke super() in their __init__ method. [#3004] + Fixed a bug which caused the metadata_conflicts parameter to be ignored in the astropy.utils.metadata.merge function. [#3294] * astropy.vo + Fixed an issue with reconnecting to a SAMP Hub. [#2674 ] * astropy.wcs + Invalid or out of range values passed to wcs_world2pix will now be correctly identified and returned as nan values. [#2965] + Fixed an issue which meant that Python thought WCS objects were iterable. [#3066] * Misc + Astropy will now work if your Python interpreter does not have the bz2 module installed. [#3104] + Fixed ResourceWarning for astropy/extern/bundled/six.py that could occur sometimes after using Astropy in Python 3.4. [#3156] * astropy.coordinates + Improved the agreement of the FK5 <-> Galactic conversion with other codes, and with the FK5 <-> FK4 <-> Galactic route. [#3107] - specfile: * update copyright year * added libhdf5 requirement - update to version 0.4.2: * astropy.coordinates - Angle accepts hours:mins or deg:mins initializers (without seconds). In these cases float minutes are also accepted. - The repr for coordinate frames now displays the frame attributes (ex: ra, dec) in a consistent order. It should be noted that as part of this fix, the BaseCoordinateFrame.get_frame_attr_names() method now returns an OrderedDict instead of just a dict. [#2845] * astropy.io.fits - Fixed a crash when reading scaled float data out of a FITS file that was loaded from a string (using HDUList.fromfile) rather than from a file. [#2710] - Fixed a crash when reading data from an HDU whose header contained in invalid value for the BLANK keyword (e.g., a string value instead of an integer as required by the FITS Standard). Invalid BLANK keywords are now warned about, but are otherwise ignored. [#2711] - Fixed a crash when reading the header of a tile-compressed HDU if that header contained invalid duplicate keywords resulting in a KeyError [#2750] - Fixed crash when reading gzip-compressed FITS tables through the Astropy Table interface. [#2783] - Fixed corruption when writing new FITS files through to gzipped files. [#2794] - Fixed crash when writing HDUs made with non-contiguous data arrays to file-like objects. [#2794] - It is now possible to create astropy.io.fits.BinTableHDU objects with a table with zero rows. [#2916] * astropy.io.misc - Fixed a bug that prevented h5py Dataset objects from being automatically recognized by Table.read. [#2831] * astropy.modeling - Make LevMarLSQFitter work with weights keyword. [#2900] * astropy.table - Fixed reference cycle in tables that could prevent Table objects from being freed from memory. [#2879] - Fixed an issue where Table.pprint() did not print the header to stdout when stdout is redirected (say, to a file). [#2878] - Fixed printing of masked values when a format is specified. [#1026] - Ensured that numpy ufuncs that return booleans return plain ndarray instances, just like the comparison operators. [#2963] * astropy.time - Ensure bigendian input to Time works on a little-endian machine (and vice versa). [#2942] * astropy.units - Ensure unit is kept when adding 0 to quantities. [#2968] * astropy.utils - Fixed color printing on Windows with IPython 2.0. [#2878] * astropy.vo - Improved error message on Cone Search time out. [#2687] * Fixed a couple issues with files being inappropriately included and/or excluded from the source archive distributions of Astropy. [#2843, #2854] * As part of fixing the fact that masked elements of table columns could not be printed when a format was specified, the column format string options were expanded to allow simple specifiers such as '5.2f'. [#2898] * Ensure numpy 1.9 is supported. [#2917] * Ensure numpy master is supported, by making np.cbrt work with quantities. [#2937] ------------------------------------------------------------------- Thu Sep 11 09:53:01 UTC 2014 - toddrme2178@gmail.com - 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. - Update to 0.4.1 (2014-08-08) * Bug Fixes - ``astropy.config`` - Fixed a bug where an unedited configuration file from astropy 0.3.2 would not be correctly identified as unedited. [#2772] This resulted in the warning:: WARNING: ConfigurationChangedWarning: The configuration options in astropy 0.4 may have changed, your configuration file was not updated in order to preserve local changes. A new configuration template has been saved to '~/.astropy/config/astropy.0.4.cfg'. [astropy.config.configuration] - Fixed the error message that is displayed when an old configuration item has moved. Before, the destination section was wrong. [#2772] - Added configuration settings for ``io.fits``, ``io.votable`` and ``table.jsviewer`` that were missing from the configuration file template. [#2772] - The configuration template is no longer rewritten on every import of astropy, causing race conditions. [#2805] - ``astropy.convolution`` - Fixed the multiplication of ``Kernel`` with numpy floats. [#2174] - ``astropy.coordinates`` - ``Distance`` can now take a list of quantities. [#2261] - For in-place operations for ``Angle`` instances in which the result unit is not an angle, an exception is raised before the instance is corrupted. [#2718] - ``CartesianPoints`` are now deprecated in favor of ``CartesianRepresentation``. [#2727] - ``astropy.io.misc`` - An existing table within an HDF5 file can be overwritten without affecting other datasets in the same HDF5 file by simultaneously using ``overwrite=True`` and ``append=True`` arguments to the ``Table.write`` method. [#2624] - ``astropy.logger`` - Fixed a crash that could occur in rare cases when (such as in bundled apps) where submodules of the ``email`` package are not importable. [#2671] - ``astropy.nddata`` - ``astropy.nddata.NDData()`` no longer raises a ``ValueError`` when passed a numpy masked array which has no masked entries. [#2784] - ``astropy.table`` - When saving a table to a FITS file containing a unit that is not supported by the FITS standard, a warning rather than an exception is raised. [#2797] - ``astropy.units`` - By default, ``Quantity`` and its subclasses will now convert to float also numerical types such as ``decimal.Decimal``, which are stored as objects by numpy. [#1419] - The units ``count``, ``pixel``, ``voxel`` and ``dbyte`` now output to FITS, OGIP and VOUnit formats correctly. [#2798] - ``astropy.utils`` - Restored missing information from deprecation warning messages from the ``deprecated`` decorator. [#2811] - Fixed support for ``staticmethod`` deprecation in the ``deprecated`` decorator. [#2811] - ``astropy.wcs`` - Fixed a memory leak when ``astropy.wcs.WCS`` objects are copied [#2754] - Fixed a crash when passing ``ra_dec_order=True`` to any of the ``*2world`` methods. [#2791] * Other Changes and Additions - Bundled copy of astropy-helpers upgraded to v0.4.1. [#2825] - General improvements to documentation and docstrings [#2722, #2728, #2742] - Made it easier for third-party packagers to have Astropy use their own version of the ``six`` module (so long as it meets the minimum version requirement) and remove the copy bundled with Astropy. See the astropy/extern/README file in the source tree. [#2623] - Update to 0.4 (2014-07-16) * New Features - ``astropy.constants`` - Added ``b_wien`` to represent Wien wavelength displacement law constant. [#2194] - ``astropy.convolution`` - Changed the input parameter in ``Gaussian1DKernel`` and ``Gaussian2DKernel`` from ``width`` to ``stddev`` [#2085]. - ``astropy.coordinates`` - The coordinates package has undergone major changes to implement `APE5 <https://github.com/astropy/astropy-APEs/blob/master/APE5.rst>`_ . These include backwards-incompatible changes, as the underlying framework has changed substantially. See the APE5 text and the package documentation for more details. [#2422] - A ``position_angle`` method has been added to the new ``SkyCoord``. [#2487] - Updated ``Angle.dms`` and ``Angle.hms`` to return ``namedtuple`` -s instead of regular tuples, and added ``Angle.signed_dms`` attribute that gives the absolute value of the ``d``, ``m``, and ``s`` along with the sign. [#1988] - By default, ``Distance`` objects are now required to be positive. To allow negative values, set ``allow_negative=True`` in the ``Distance`` constructor when creating a ``Distance`` instance. - ``Longitude`` (resp. ``Latitude``) objects cannot be used any more to initialize or set ``Latitude`` (resp. ``Longitude``) objects. An explicit conversion to ``Angle`` is now required. [#2461] - The deprecated functions for pre-0.3 coordinate object names like ``ICRSCoordinates`` have been removed. [#2422] - The ``rotation_matrix`` and ``angle_axis`` functions in ``astropy.coordinates.angles`` were made more numerically consistent and are now tested explicitly [#2619] - ``astropy.cosmology`` - Added ``z_at_value`` function to find the redshift at which a cosmology function matches a desired value. [#1909] - Added ``FLRW.differential_comoving_volume`` method to give the differential comoving volume at redshift z. [#2103] - The functional interface is now deprecated in favor of the more-explicit use of methods on cosmology objects. [#2343] - Updated documentation to reflect the removal of the functional interface. [#2507] - ``astropy.io.ascii`` - The ``astropy.io.ascii`` output formats ``latex`` and ``aastex`` accept a dictionary called ``latex_dict`` to specify options for LaTeX output. It is now possible to specify the table alignment within the text via the ``tablealign`` keyword. [#1838] - If ``header_start`` is specified in a call to ``ascii.get_reader`` or any method that calls ``get_reader`` (e.g. ``ascii.read``) but ``data_start`` is not specified at the same time, then ``data_start`` is calculated so that the data starts after the header. Before this, the default was that the header line was read again as the first data line [#855 and #1844]. - A new ``csv`` format was added as a convenience for handling CSV (comma- separated values) data. [#1935] This format also recognises rows with an inconsistent number of elements. [#1562] - An option was added to guess the start of data for CDS format files when they do not strictly conform to the format standard. [#2241] - Added an HTML reader and writer to the ``astropy.io.ascii`` package. Parsing requires the installation of BeautifulSoup and is therefore an optional feature. [#2160] - Added support for inputting column descriptions and column units with the ``io.ascii.SExtractor`` reader. [#2372] - Allow the use of non-local ReadMe files in the CDS reader. [#2329] - Provide a mechanism to select how masked values are printed. [#2424] - Added support for reading multi-aperture daophot file. [#2656] - ``astropy.io.fits`` - Included a new command-line script called ``fitsheader`` to display the header(s) of a FITS file from the command line. [#2092] - Added new verification options ``fix+ignore``, ``fix+warn``, ``fix+exception``, ``silentfix+ignore``, ``silentfix+warn``, and ``silentfix+exception`` which give more control over how to report fixable errors as opposed to unfixable errors. - ``astropy.modeling`` - Prototype implementation of fitters that treat optimization algorithms separately from fit statistics, allowing new fitters to be created by mixing and matching optimizers and statistic functions. [#1914] - Slight overhaul to how inputs to and outputs from models are handled with respect to array-valued parameters and variables, as well as sets of multiple models. See the associated PR and the modeling section of the v0.4 documentation for more details. [#2634] - Added a new ``SimplexLSQFitter`` which uses a downhill simplex optimizer with a least squares statistic. [#1914] - Changed ``Gaussian2D`` model such that ``theta`` now increases counterclockwise. [#2199] - Replaced the ``MatrixRotation2D`` model with a new model called simply ``Rotation2D`` which requires only an angle to specify the rotation. The new ``Rotation2D`` rotates in a counter-clockwise sense whereas the old ``MatrixRotation2D`` increased the angle clockwise. [#2266, #2269] - Added a new ``AffineTransformation2D`` model which serves as a replacement for the capability of ``MatrixRotation2D`` to accept an arbitrary matrix, while also adding a translation capability. [#2269] - Added ``GaussianAbsorption1D`` model. [#2215] - New ``Redshift`` model [#2176]. - ``astropy.nddata`` - Allow initialization ``NDData`` or ``StdDevUncertainty`` with a ``Quantity``. [#2380] - ``astropy.stats`` - Added flat prior to binom_conf_interval and binned_binom_proportion - Change default in ``sigma_clip`` from ``np.median`` to ``np.ma.median``. [#2582] - ``astropy.sphinx`` - Note, the following new features are included in astropy-helpers as well: - The ``automodapi`` and ``automodsumm`` extensions now include sphinx configuration options to write out what ``automodapi`` and ``automodsumm`` generate, mainly for debugging purposes. [#1975, #2022] - Reference documentation now shows functions/class docstrings at the inteded user-facing API location rather than the actual file where the implementation is found. [#1826] - The ``automodsumm`` extension configuration was changed to generate documentation of class ``__call__`` member functions. [#1817, #2135] - ``automodapi`` and ``automodsumm`` now have an ``:allowed-package-names:`` option that make it possible to document functions and classes that are in a different namespace. [#2370] - ``astropy.table`` - Improved grouped table aggregation by using the numpy ``reduceat()`` method when possible. This can speed up the operation by a factor of at least 10 to 100 for large unmasked tables and columns with relatively small group sizes. [#2625] - Allow row-oriented data input using a new ``rows`` keyword argument. [#850] - Allow subclassing of ``Table`` and the component classes ``Row``, ``Column``, ``MaskedColumn``, ``TableColumns``, and ``TableFormatter``. [#2287] - Fix to allow numpy integer types as valid indices into tables in Python 3.x [#2477] - Remove transition code related to the order change in ``Column`` and ``MaskedColumn`` arguments ``name`` and ``data`` from Astropy 0.2 to 0.3. [#2511] - Change HTML table representation in IPython notebook to show all table columns instead of restricting to 80 column width. [#2651] - ``astropy.time`` - Mean and apparent sidereal time can now be calculated using the ``sidereal_time`` method [#1418]. - The time scale now defaults to UTC if no scale is provided. [#2091] - ``TimeDelta`` objects can have all scales but UTC, as well as, for consistency with time-like quantities, undefined scale (where the scale is taken from the object one adds to or subtracts from). This allows, e.g., to work consistently in TDB. [#1932] - ``Time`` now supports ISO format strings that end in "Z". [#2211, #2203] - ``astropy.units`` - Support for the unit format `Office of Guest Investigator Programs (OGIP) FITS files <http://heasarc.gsfc.nasa.gov/docs/heasarc/ofwg/docs/general/ogip_93_001/>`__ has been added. [#377] - The ``spectral`` equivalency can now handle angular wave number. [#1306 and #1899] - Added ``one`` as a shorthand for ``dimensionless_unscaled``. [#1980] - Added ``dex`` and ``dB`` units. [#1628] - Added ``temperature()`` equivalencies to support conversion between Kelvin, Celsius, and Fahrenheit. [#2209] - Added ``temperature_energy()`` equivalencies to support conversion between electron-volt and Kelvin. [#2637] - The runtime of ``astropy.units.Unit.compose`` is greatly improved (by a factor of 2 in most cases) [#2544] - Added ``electron`` unit. [#2599] - ``astropy.utils`` - ``timer.RunTimePredictor`` now uses ``astropy.modeling`` in its ``do_fit()`` method. [#1896] - ``astropy.vo`` - A new sub-package, ``astropy.vo.samp``, is now available (this was previously the SAMPy package, which has been refactored for use in Astropy). [#1907] - Enhanced functionalities for ``VOSCatalog`` and ``VOSDatabase``. [#1206] - ``astropy.wcs`` - astropy now requires wcslib version 4.23 or later. The version of wcslib included with astropy has been updated to version 4.23. - Bounds checking is now performed on native spherical coordinates. Any out-of-bounds values will be returned as ``NaN``, and marked in the ``stat`` array, if using the low-level ``wcslib`` interface such as ``astropy.wcs.Wcsprm.p2s``. [#2107] - A new method, ``astropy.wcs.WCS.compare()``, compares two wcsprm structs for equality with varying degrees of strictness. [#2361] - New ``astropy.wcs.utils`` module, with a handful of tools for manipulating WCS objects, including dropping, swapping, and adding axes. - Misc - Includes the new astropy-helpers package which separates some of Astropy's build, installation, and documentation infrastructure out into an independent package, making it easier for Affiliated Packages to depend on these features. astropy-helpers replaces/deprecates some of the submodules in the ``astropy`` package (see API Changes below). See also `APE 4 <https://github.com/astropy/astropy-APEs/blob/master/APE4.rst>`_ for more details on the motivation behind and implementation of astropy-helpers. [#1563] * API Changes - ``astropy.config`` - The configuration system received a major overhaul, as part of APE3. It is no longer possible to save configuration items from Python, but instead users must edit the configuration file directly. The locations of configuration items have moved, and some have been changed to science state values. The old locations should continue to work until astropy 0.5, but deprecation warnings will be displayed. See the `Configuration transition <http://astropy.readthedocs.org/en/v0.4/config/config_0_4_transition.html>`_ docs for a detailed description of the changes and how to update existing code. [#2094] - ``astropy.io.fits`` - The ``astropy.io.fits.new_table`` function is now fully deprecated (though will not be removed for a long time, considering how widely it is used). Instead please use the more explicit ``BinTableHDU.from_columns`` to create a new binary table HDU, and the similar ``TableHDU.from_columns`` to create a new ASCII table. These otherwise accept the same arguments as ``new_table`` which is now just a wrapper for these. - The ``.fromstring`` classmethod of each HDU type has been simplified such that, true to its namesake, it only initializes an HDU from a string containing its header *and* data. - Fixed an issue where header wildcard matching (for example ``header['DATE*']``) can be used to match *any* characters that might appear in a keyword. Previously this only matched keywords containing characters in the set ``[0-9A-Za-z_]``. Now this can also match a hyphen ``-`` and any other characters, as some conventions like ``HIERARCH`` and record-valued keyword cards allow a wider range of valid characters than standard FITS keywords. - This will be the *last* release to support the following APIs that have been marked deprecated since Astropy v0.1/PyFITS v3.1: - The ``CardList`` class, which was part of the old header implementation. - The ``Card.key`` attribute. Use ``Card.keyword`` instead. - The ``Card.cardimage`` and ``Card.ascardimage`` attributes. Use simply ``Card.image`` or ``str(card)`` instead. - The ``create_card`` factory function. Simply use the normal ``Card`` constructor instead. - The ``create_card_from_string`` factory function. Use ``Card.fromstring`` instead. - The ``upper_key`` function. Use ``Card.normalize_keyword`` method instead (this is not unlikely to be used outside of PyFITS itself, but it was technically public API). - The usage of ``Header.update`` with ``Header.update(keyword, value, comment)`` arguments. ``Header.update`` should only be used analogously to ``dict.update``. Use ``Header.set`` instead. - The ``Header.ascard`` attribute. Use ``Header.cards`` instead for a list of all the ``Card`` objects in the header. - The ``Header.rename_key`` method. Use ``Header.rename_keyword`` instead. - The ``Header.get_history`` method. Use ``header['HISTORY']`` instead (normal keyword lookup). - The ``Header.get_comment`` method. Use ``header['COMMENT']`` instead. - The ``Header.toTxtFile`` method. Use ``header.totextfile`` instead. - The ``Header.fromTxtFile`` method. Use ``Header.fromtextfile`` instead. - The ``tdump`` and ``tcreate`` functions. Use ``tabledump`` and ``tableload`` respectively. - The ``BinTableHDU.tdump`` and ``tcreate`` methods. Use ``BinTableHDU.dump`` and ``BinTableHDU.load`` respectively. - The ``txtfile`` argument to the ``Header`` constructor. Use ``Header.fromfile`` instead. - The ``startColumn`` and ``endColumn`` arguments to the ``FITS_record`` constructor. These are unlikely to be used by any user code. These deprecated interfaces will be removed from the development version of Astropy following the v0.4 release (they will still be available in any v0.4.x bugfix releases, however). - ``astropy.modeling`` - The method computing the derivative of the model with respect to parameters was renamed from ``deriv`` to ``fit_deriv``. [#1739] - ``ParametricModel`` and the associated ``Parametric1DModel`` and ``Parametric2DModel`` classes have been renamed ``FittableModel``, ``Fittable1DModel``, and ``Fittable2DModel`` respectively. The base ``Model`` class has subsumed the functionality of the old ``ParametricModel`` class so that all models support parameter constraints. The only distinction of ``FittableModel`` is that anything which subclasses it is assumed "safe" to use with Astropy fitters. [#2276] - ``NonLinearLSQFitter`` has been renamed ``LevMarLSQFitter`` to emphasise that it uses the Levenberg-Marquardt optimization algorithm with a least squares statistic function. [#1914] - The ``SLSQPFitter`` class has been renamed ``SLSQPLSQFitter`` to emphasize that it uses the Sequential Least Squares Programming optimization algorithm with a least squares statistic function. [#1914] - The ``Fitter.errorfunc`` method has been renamed to the more general ``Fitter.objective_function``. [#1914] - ``astropy.nddata`` - Issue warning if unit is changed from a non-trivial value by directly setting ``NDData.unit``. [#2411] - The ``mask`` and ``flag`` attributes of ``astropy.nddata.NDData`` can now be set with any array-like object instead of requiring that they be set with a ``numpy.ndarray``. [#2419] - ``astropy.sphinx`` - Use of the ``astropy.sphinx`` module is deprecated; all new development of this module is in ``astropy_helpers.sphinx`` which should be used instead (therefore documentation builds that made use of any of the utilities in ``astropy.sphinx`` now have ``astropy_helpers`` as a documentation dependency). - ``astropy.table`` - The default table printing function now shows a table header row for units if any columns have the unit attribute set. [#1282] - Before, an unmasked ``Table`` was automatically converted to a masked table if generated from a masked Table or a ``MaskedColumn``. Now, this conversion is only done if explicitly requested or if any of the input values is actually masked. [#1185] - The repr() function of ``astropy.table.Table`` now shows the units if any columns have the unit attribute set. [#2180] - The semantics of the config options ``table.max_lines`` and ``table.max_width`` has changed slightly. If these values are not set in the config file, astropy will try to determine the size automatically from the terminal. [#2683] - ``astropy.time`` - Correct use of UT in TDB calculation [#1938, #1939]. - ``TimeDelta`` objects can have scales other than TAI [#1932]. - Location information should now be passed on via an ``EarthLocation`` instance or anything that initialises it, e.g., a tuple containing either geocentric or geodetic coordinates. [#1928] - ``astropy.units`` - ``Quantity`` now converts input to float by default, as this is physically most sensible for nearly all units [#1776]. - ``Quantity`` comparisons with ``==`` or ``!=`` now always return ``True`` or ``False``, even if units do not match (for which case a ``UnitsError`` used to be raised). [#2328] - Applying ``float`` or ``int`` to a ``Quantity`` now works for all dimensionless quantities; they are automatically converted to unscaled dimensionless. [#2249] - The exception ``astropy.units.UnitException``, which was deprecated in astropy 0.2, has been removed. Use ``astropy.units.UnitError`` instead [#2386] - Initializing a ``Quantity`` with a valid number/array with a ``unit`` attribute now interprets that attribute as the units of the input value. This makes it possible to initialize a ``Quantity`` from an Astropy ``Table`` column and have it correctly pick up the units from the column. [#2486] - ``astropy.wcs`` - ``calcFootprint`` was deprecated. It is replaced by ``calc_footprint``. An optional boolean keyword ``center`` was added to ``calc_footprint``. It controls whether the centers or the corners of the pixels are used in the computation. [#2384] - ``astropy.wcs.WCS.sip_pix2foc`` and ``astropy.wcs.WCS.sip_foc2pix`` formerly did not conform to the ``SIP`` standard: ``CRPIX`` was added to the ``foc`` result so that it could be used as input to "core FITS WCS". As of astropy 0.4, ``CRPIX`` is no longer added to the result, so the ``foc`` space is correct as defined in the `SIP convention <http://adsabs.harvard.edu/abs/2005ASPC..347..491S>`__. [#2360] - ``astropy.wcs.UnitConverter``, which was deprecated in astropy 0.2, has been removed. Use the ``astropy.units`` module instead. [#2386] - The following methods on ``astropy.wcs.WCS``, which were deprecated in astropy 0.1, have been removed [#2386]: - ``all_pix2sky`` -> ``all_pix2world`` - ``wcs_pix2sky`` -> ``wcs_pix2world`` - ``wcs_sky2pix`` -> ``wcs_world2pix`` - The ``naxis1`` and ``naxis2`` attributes and the ``get_naxis`` method of ``astropy.wcs.WCS``, which were deprecated in astropy 0.2, have been removed. Use the shape of the underlying FITS data array instead. [#2386] - Misc - The ``astropy.setup_helpers`` and ``astropy.version_helpers`` modules are deprecated; any non-critical fixes and development to those modules should be in ``astropy_helpers`` instead. Packages that use these modules in their ``setup.py`` should depend on ``astropy_helpers`` following the same pattern as in the Astropy package template. * Bug Fixes - ``astropy.constants`` - ``astropy.constants.Contant`` objects can now be deep copied. [#2601] - ``astropy.cosmology`` - The distance modulus function in ``astropy.cosmology`` can now handle negative distances, which can occur in certain closed cosmologies. [#2008] - Removed accidental imports of some extraneous variables in ``astropy.cosmology`` [#2025] - ``astropy.io.ascii`` - ``astropy.io.ascii.read`` would fail to read lists of strings where some of the strings consisted of just a newline ("\n"). [#2648] - ``astropy.io.fits`` - Use NaN for missing values in FITS when using Table.write for float columns. Earlier the default fill value was close to 1e20.[#2186] - Fixes for checksums on 32-bit platforms. Results may be different if writing or checking checksums in "nonstandard" mode. [#2484] - Additional minor bug fixes ported from PyFITS. [#2575] - ``astropy.io.votable`` - It is now possible to save an ``astropy.table.Table`` object as a VOTable with any of the supported data formats, ``tabledata``, ``binary`` and ``binary2``, by using the ``tabledata_format`` kwarg. [#2138] - Fixed a crash writing out variable length arrays. [#2577] - ``astropy.nddata`` - Indexing ``NDData`` in a way that results in a single element returns that element. [#2170] - Change construction of result of arithmetic and unit conversion to allow subclasses to require the presence of attribute like unit. [#2300] - Scale uncertainties to correct units in arithmetic operations and unit conversion. [#2393] - Ensure uncertainty and mask members are copied in arithmetic and convert_unit_to. [#2394] - Mask result of arithmetic if either of the operands is masked. [#2403] - Copy all attributes of input object if ``astropy.nddata.NDData`` is initialized with an ``NDData`` object. [#2406] - Copy ``flags`` to new object in ``convert_unit_to``. [#2409] - Result of ``NDData`` arithmetic makes a copy of any WCS instead of using a reference. [#2410] - Fix unit handling for multiplication/division and use ``astropy.units.Quantity`` for units arithmetic. [#2413] - A masked ``NDData`` is now converted to a masked array when used in an operation or ufunc with a numpy array. [#2414] - An unmasked ``NDData`` now uses an internal representation of its mask state that ``numpy.ma`` expects so that an ``NDData`` behaves as an unmasked array. [#2417] - ``astropy.sphinx`` - Fix crash in smart resolver when the resolution doesn't work. [#2591] - ``astropy.table`` - The ``astropy.table.Column`` object can now use both functions and callable objects as formats. [#2313] - Fixed a problem on 64 bit windows that caused errors "expected 'DTYPE_t' but got 'long long'" [#2490] - Fix initialisation of ``TableColumns`` with lists or tuples. [#2647] - Fix removal of single column using ``remove_columns``. [#2699] - Fix a problem that setting a row element within a masked table did not update the corresponding table element. [#2734] - ``astropy.time`` - Correct UT1->UTC->UT1 round-trip being off by 1 second if UT1 is on a leap second. [#2077] - ``astropy.units`` - ``Quantity.copy`` now behaves identically to ``ndarray.copy``, and thus supports the ``order`` argument (for numpy >=1.6). [#2284] - Composing base units into identical composite units now works. [#2382] - Creating and composing/decomposing units is now substantially faster [#2544] - ``Quantity`` objects now are able to be assigned NaN [#2695] - ``astropy.wcs`` - Astropy now requires wcslib version 4.23 or later. The version of wcslib included with astropy has been updated to version 4.23. - Bug fixes in the projection routines: in ``hpxx2s`` [the cartesian-to-spherical operation of the ``HPX`` projection] relating to bounds checking, bug introduced at wcslib 4.20; in ``parx2s`` and molx2s`` [the cartesion-to-spherical operation of the ``PAR`` and ``MOL`` projections respectively] relating to setting the stat vector; in ``hpxx2s`` relating to implementation of the vector API; and in ``xphx2s`` relating to setting an out-of-bounds value of *phi*. - In the ``PCO`` projection, use alternative projection equations for greater numerical precision near theta == 0. In the ``COP`` projection, return an exact result for theta at the poles. Relaxed the tolerance for bounds checking a little in ``SFL`` projection. - Fix a bug allocating insufficient memory in ``astropy.wcs.WCS.sub`` [#2468] - A new method, ``Wcsprm.bounds_check`` (corresponding to wcslib's ``wcsbchk``) has been added to control what bounds checking is performed by wcslib. - ``WCS.to_header`` will now raise a more meaningful exception when the WCS information is invalid or inconsistent in some way. [#1854] - In ``WCS.to_header``, ``RESTFRQ`` and ``RESTWAV`` are no longer rewritten if zero. [#2468] - In ``WCS.to_header``, floating point values will now always be written with an exponent or fractional part, i.e. ``.0`` being appended if necessary to acheive this. [#2468] - If the C extension for ``astropy.wcs`` was not built or fails to import for any reason, ``import astropy.wcs`` will result in an ``ImportError``, rather than getting obscure errors once the ``astropy.wcs`` is used. [#2061] - When the C extension for ``astropy.wcs`` is built using a version of ``wscslib`` already present in the system, the package does not try to install ``wcslib`` headers under ``astropy/wcs/include``. [#2536] - Fixes an unresolved external symbol error in the `astropy.wcs._wcs` C extension on Microsoft Windows when built with a Microsoft compiler. [#2478] - Misc - Running the test suite with ``python setup.py test`` now works if the path to the source contains spaces. [#2488] - The version of ERFA included with Astropy is now v1.1.0 [#2497] - Removed deprecated option from travis configuration and force use of wheels rather than allowing build from source. [#2576] - The short option ``-n`` to run tests in parallel was broken (conflicts with the distutils built-in option of "dry-run"). Changed to ``-j``. [#2566] * Other Changes and Additions - ``python setup.py test --coverage`` will now give more accurate results, because the coverage analysis will include early imports of astropy. There doesn't seem to be a way to get this to work when doing ``import astropy; astropy.test()``, so the ``coverage`` keyword to ``astropy.test`` has been removed. Coverage testing now depends only on `coverage.py <http://nedbatchelder.com/code/coverage/>`__, not ``pytest-cov``. [#2112] - The included version of py.test has been upgraded to 2.5.1. [#1970] - The included version of six.py has been upgraded to 1.5.2. [#2006] - Where appropriate, tests are now run both with and without the ``unicode_literals`` option to ensure that we support both cases. [#1962] - Running the Astropy test suite from within the IPython REPL is disabled for now due to bad interaction between the test runner and IPython's logging and I/O handler. For now, run the Astropy tests should be run in the basic Python interpreter. [#2684] - Added support for numerical comparison of floating point values appearing in the output of doctests using a ``+FLOAT_CMP`` doctest flag. [#2087] - A monkey patch is performed to fix a bug in Numpy version 1.7 and earlier where unicode fill values on masked arrays are not supported. This may cause unintended side effects if your application also monkey patches ``numpy.ma`` or relies on the broken behavior. If unicode support of masked arrays is important to your application, upgrade to Numpy 1.8 or later for best results. [#2059] - The developer documentation has been extensively rearranged and rewritten. [#1712] - The ``human_time`` function in ``astropy.utils`` now returns strings without zero padding. [#2420] - The ``bdist_dmg`` command for ``setup.py`` has now been removed. [#2553] - Many broken API links have been fixed in the documentation, and the ``nitpick`` Sphinx option is now used to avoid broken links in future. [#1221, #2019, #2109, #2161, #2162, #2192, #2200, #2296, #2448, #2456, #2460, #2467, #2476, #2508, #2509] - Update to 0.3.2 (2014-05-13) * Bug Fixes - ``astropy.coordinates`` - if ``sep`` argument is specified to be a single character in ``sexagisimal_to_string``, it now includes seperators only between items [#2183] - Ensure comparisons involving ``Distance`` objects do not raise exceptions; also ensure operations that lead to units other than length return ``Quantity``. [#2206, #2250] - Multiplication and division of ``Angle`` objects is now supported. [#2273] - Fixed ``Angle.to_string`` functionality so that negative angles have the correct amount of padding when ``pad=True``. [#2337] - Mixing strings and quantities in the ``Angle`` constructor now works. For example: ``Angle(['1d', 1. * u.d])``. [#2398] - If ``Longitude`` is given a ``Longitude`` as input, use its ``wrap_angle`` by default [#2705] - ``astropy.cosmology`` - Fixed ``format()`` compatibility with Python 2.6. [#2129] - Be more careful about converting to floating point internally [#1815, #1818] - ``astropy.io.ascii`` - The CDS reader in ``astropy.io.ascii`` can now handle multiple description lines in ReadMe files. [#2225] - When reading a table with values that generate an overflow error during type conversion (e.g. overflowing the native C long type), fall through to using string. Previously this generated an exception [#2234]. - Some CDS files mark missing values with ``"---"``, others with ``"--"``. Recognize any string with one to four dashes as null value. [#1335] - ``astropy.io.fits`` - Allow pickling of ``FITS_rec`` objects. [#1597] - Improved behavior when writing large compressed images on OSX by removing an unncessary check for platform architecture. [#2345] - Fixed an issue where Astropy ``Table`` objects containing boolean columns were not correctly written out to FITS files. [#1953] - Several other bug fixes ported from PyFITS v3.2.3 [#2368] - Fixed a crash on Python 2.x when writing a FITS file directly to a ``StringIO.StringIO`` object. [#2463] - ``astropy.io.registry`` - Allow readers/writers with the same name to be attached to different classes. [#2312] - ``astropy.io.votable`` - By default, floating point values are now written out using ``repr`` rather than ``str`` to preserve precision [#2137] - ``astropy.modeling`` - Fixed the ``SIP`` and ``InverseSIP`` models both so that they work in the first place, and so that they return results consistent with the SIP functions in ``astropy.wcs``. [#2177] - ``astropy.stats`` - Ensure the ``axis`` keyword in ``astropy.stats.funcs`` can now be used for all axes. [#2173] - ``astropy.table`` - Ensure nameless columns can be printed, using 'None' for the header. [#2213] - ``astropy.time`` - Fixed pickling of ``Time`` objects. [#2123] - ``astropy.units`` - ``Quantity._repr_latex_()`` returns ``NotImplementedError`` for quantity arrays instead of an uninformative formatting exception. [#2258] - Ensure ``Quantity.flat`` always returns ``Quantity``. [#2251] - Angstrom unit renders better in MathJax [#2286] - ``astropy.utils`` - Progress bars will now be displayed inside the IPython qtconsole. [#2230] - ``data.download_file()`` now evaluates ``REMOTE_TIMEOUT()`` at runtime rather than import time. Previously, setting ``REMOTE_TIMEOUT`` after import had no effect on the function's behavior. [#2302] - Progressbar will be limited to 100% so that the bar does not exceed the terminal width. The numerical display can still exceed 100%, however. - ``astropy.vo`` - Fixed ``format()`` compatibility with Python 2.6. [#2129] - Cone Search validation no longer raises ``ConeSearchError`` for positive RA. [#2240, #2242] - ``astropy.wcs`` - Fixed a bug where calling ``astropy.wcs.Wcsprm.sub`` with ``WCSSUB_CELESTIAL`` may cause memory corruption due to underallocation of a temporary buffer. [#2350] - Fixed a memory allocation bug in ``astropy.wcs.Wcsprm.sub`` and ``astropy.wcs.Wcsprm.copy``. [#2439] - Misc - Fixes for compatibility with Python 3.4. [#1945] - ``import astropy; astropy.test()`` now correctly uses the same test configuration as ``python setup.py test`` [#1811] - Update to 0.3.1 (2014-03-04) * Bug Fixes - ``astropy.config`` - Fixed a bug where ``ConfigurationItem.set_temp()`` does not reset to default value when exception is raised within ``with`` block. [#2117] - ``astropy.convolution`` - Fixed a bug where ``_truncation`` was left undefined for ``CustomKernel``. [#2016] - Fixed a bug with ``_normalization`` when ``CustomKernel`` input array sums to zero. [#2016] - ``astropy.coordinates`` - Fixed a bug where using ``==`` on two array coordinates wouldn't work. [#1832] - Fixed bug which caused ``len()`` not to work for coordinate objects and added a ``.shape`` property to get appropriately array-like behavior. [#1761, #2014] - Fixed a bug where sexagesimal notation would sometimes include exponential notation in the last field. [#1908, #1913] - ``CompositeStaticMatrixTransform`` no longer attempts to reference the undefined variable ``self.matrix`` during instantiation. [#1944] - Fixed pickling of ``Longitude``, ensuring ``wrap_angle`` is preserved [#1961] - Allow ``sep`` argument in ``Angle.to_string`` to be empty (resulting in no separators) [#1989] - ``astropy.io.ascii`` - Allow passing unicode delimiters when reading or writing tables. The delimiter must be convertible to pure ASCII. [#1949] - Fix a problem when reading a table and renaming the columns to names that already exist. [#1991] - ``astropy.io.fits`` - Ported all bug fixes from PyFITS 3.2.1. See the PyFITS changelog at http://pyfits.readthedocs.org/en/v3.2.1/ [#2056] - ``astropy.io.misc`` - Fixed issues in the HDF5 Table reader/writer functions that occurred on Windows. [#2099] - ``astropy.io.votable`` - The ``write_null_values`` kwarg to ``VOTable.to_xml``, when set to `False` (the default) would produce non-standard VOTable files. Therefore, this functionality has been replaced by a better understanding that knows which fields in a VOTable may be left empty (only ``char``, ``float`` and ``double`` in VOTable 1.1 and 1.2, and all fields in VOTable 1.3). The kwarg is still accepted but it will be ignored, and a warning is emitted. [#1809] - Printing out a ``astropy.io.votable.tree.Table`` object using `repr` or `str` now uses the pretty formatting in ``astropy.table``, so it's possible to easily preview the contents of a ``VOTable``. [#1766] - ``astropy.modeling`` - Fixed bug in computation of model derivatives in ``LinearLSQFitter``. [#1903] - Raise a ``NotImplementedError`` when fitting composite models. [#1915] - Fixed bug in the computation of the ``Gaussian2D`` model. [#2038] - Fixed bug in the computation of the ``AiryDisk2D`` model. [#2093] - ``astropy.sphinx`` - Added slightly more useful debug info for AstropyAutosummary. [#2024] - ``astropy.table`` - The column string representation for n-dimensional cells with only one element has been fixed. [#1522] - Fix a problem that caused ``MaskedColumn.__getitem__`` to not preserve column metadata. [#1471, #1872] - With Numpy prior to version 1.6.2, tables with Unicode columns now sort correctly. [#1867] - ``astropy.table`` can now print out tables with Unicode columns containing non-ascii characters. [#1864] - Columns can now be named with Unicode strings, as long as they contain only ascii characters. This makes using ``astropy.table`` easier on Python 2 when ``from __future__ import unicode_literals`` is used. [#1864] - Allow pickling of ``Table``, ``Column``, and ``MaskedColumn`` objects. [#792] - Fix a problem where it was not possible to rename columns after sorting or adding a row. [#2039] - ``astropy.time`` - Fix a problem where scale conversion problem in TimeFromEpoch was not showing a useful error [#2046] - Fix a problem when converting to one of the formats ``unix``, ``cxcsec``, ``gps`` or ``plot_date`` when the time scale is ``UT1``, ``TDB`` or ``TCB`` [#1732] - Ensure that ``delta_ut1_utc`` gets calculated when accessed directly, instead of failing and giving a rather obscure error message [#1925] - Fix a bug when computing the TDB to TT offset. The transform routine was using meters instead of kilometers for the Earth vector. [#1929] - Increase ``__array_priority__`` so that ``TimeDelta`` can convert itself to a ``Quantity`` also in reverse operations [#1940] - Correct hop list from TCG to TDB to ensure that conversion is possible [#2074] - ``astropy.units`` - ``Quantity`` initialisation rewritten for speed [#1775] - Fixed minor string formatting issue for dimensionless quantities. [#1772] - Fix error for inplace operations on non-contiguous quantities [#1834]. - The definition of the unit ``bar`` has been corrected to "1e5 Pascal" from "100 Pascal" [#1910] - For units that are close to known units, but not quite, for example due to differences in case, the exception will now include recommendations. [#1870] - The generic and FITS unit parsers now accept multiple slashes in the unit string. There are multiple ways to interpret them, but the approach taken here is to convert "m/s/kg" to "m s-1 kg-1". Multiple slashes are accepted, but discouraged, by the FITS standard, due to the ambiguity of parsing, so a warning is raised when it is encountered. [#1911] - The use of "angstrom" (with a lower case "a") is now accepted in FITS unit strings, since it is in common usage. However, since it is not officially part of the FITS standard, a warning will be issued when it is encountered. [#1911] - Pickling unrecognized units will not raise a ``AttributeError``. [#2047] - ``astropy.units`` now correctly preserves the precision of fractional powers. [#2070] - If a ``Unit`` or ``Quantity`` is raised to a floating point power that is very close to a rational number with a denominator less than or equal to 10, it is converted to a ``Fraction`` object to preserve its precision through complex unit conversion operations. [#2070] - ``astropy.utils`` - Fixed crash in ``timer.RunTimePredictor.do_fit``. [#1905] - Fixed ``astropy.utils.compat.argparse`` for Python 3.1. [#2017] - ``astropy.wcs`` - ``astropy.wcs.WCS``, ``astropy.wcs.WCS.fix`` and ``astropy.wcs.find_all_wcs`` now have a ``translate_units`` keyword argument that is passed down to ``astropy.wcs.Wcsprm.fix``. This can be used to specify any unsafe translations of units from rarely used ones to more commonly used ones. Although ``"S"`` is commonly used to represent seconds, its translation to ``"s"`` is potentially unsafe since the standard recognizes ``"S"`` formally as Siemens, however rarely that may be used. The same applies to ``"H"`` for hours (Henry), and ``"D"`` for days (Debye). When these sorts of changes are performed, a warning is emitted. [#1854] - When a unit is "fixed" by ``astropy.wcs.WCS.fix`` or ``astropy.wcs.Wcsprm.unitfix``, it now correctly reports the ``CUNIT`` field that was changed. [#1854] - ``astropy.wcs.Wcs.printwcs`` will no longer warn that ``cdelt`` is being ignored when none was present in the FITS file. [#1845] - ``astropy.wcs.Wcsprm.set`` is called from within the ``astropy.wcs.WCS`` constructor, therefore any invalid information in the keywords will be raised from the constructor, rather than on a subsequent call to a transformation method. [#1918] - Fix a memory corruption bug when using ``astropy.wcs.Wcs.sub`` with ``astropy.wcs.WCSSUB_CELESTIAL``. [#1960] - Fixed the ``AttributeError`` exception that was raised when using ``astropy.wcs.WCS.footprint_to_file``. [#1912] - Fixed a ``NameError`` exception that was raised when using ``astropy.wcs.validate`` or the ``wcslint`` script. [#2053] - Fixed a bug where named WCSes may be erroneously reported as ``' '`` when using ``astropy.wcs.validate`` or the ``wcslint`` script. [#2053] - Fixed a bug where error messages about incorrect header keywords may not be propagated correctly, resulting in a "NULL error object in wcslib" message. [#2106] - Misc - There are a number of improvements to make Astropy work better on big endian platforms, such as MIPS, PPC, s390x and SPARC. [#1849] - The test suite will now raise exceptions when a deprecated feature of Python or Numpy is used. [#1948] * Other Changes and Additions - A new function, ``astropy.wcs.get_include``, has been added to get the location of the ``astropy.wcs`` C header files. [#1755] - The doctests in the ``.rst`` files in the ``docs`` folder are now tested along with the other unit tests. This is in addition to the testing of doctests in docstrings that was already being performed. See ``docs/development/testguide.rst`` for more information. [#1771] - Fix a problem where import fails on Python 3 if setup.py exists in current directory. [#1877] ------------------------------------------------------------------- Tue Feb 4 13:29:08 UTC 2014 - toddrme2178@gmail.com - Initial version (0.3)
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor