Changelog History
Page 8
-
v1.0.5 Changes
October 05, 2015๐ Bug Fixes
astropy.constants
- ๐ Rename units -> unit and error -> uncertainty in the
repr
andstr
of constants to match attribute names. [#4147]
astropy.coordinates
๐ Fix string representation of
SkyCoord
objects transformed into theAltAz
frame [#4055, #4057]Fix the
search_around_sky
function to allowstorekdtree
to beFalse
as was intended. [#4082, #4212]
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 anHDUList
. Eachmmap
used up a single file descriptor, causing problems with system resource limits for some users. Now only a singlemmap
is opened, and shared for the data of all HDUs. Note: The problem still persists with using the "convenience" functions. For example usingfits.getdata
will create onemmap
per HDU read this way (as opposed to opening the file withfits.open
and accessing the HDUs through theHDUList
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 setsflags
as expected and no longer fails whenuncertainty
is set [#4129]. Initializing anNDData
subclass from a parent instance (eg.NDDataArray
fromNDData
) now sets the attributes other thandata
as it should [#4130, #4137].
astropy.table ^
๐ 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 causessys.modules
to be cluttered with additional copies of modules under a package imported likeresolve_name('numpy')
. [#4084]โก๏ธ
console
was updated to support IPython 4.x and Jupyter 1.x. This should suppress 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 determinesvmin
/vmax
(via theautoscale_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]
- ๐ Rename units -> unit and error -> uncertainty in the
-
v1.0.4 Changes
August 11, 2015๐ 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, #4039]
astropy.visualization
- The
astropy_mpl_style
no longer setsinteractive
toTrue
, 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, #4039]๐ Fixed bug where some scalar coordinates were incorrectly being changed to length-1 array coordinates after transforming through certain frames. [#3920, #4039]
๐ Fixed bug causing the
separation
methods ofSkyCoord
and frame classes to fail due to infinite recursion [#4033, #4039]Made it so that passing in a list of
SkyCoord
objects that are in UnitSphericalRepresentation to theSkyCoord
constructor appropriately yields a new object in UnitSphericalRepresentation [#3938, #4039]
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()
. [#3798]๐ Better handling of the
BLANK
keyword when auto-scaling scaled image data. TheBLANK
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 thescale_back=True
argument. Invalid usage of theBLANK
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 ^
๐ Improved support for pickling of compound models, including both compound model instances, and new compound model classes. [#3867]
โ Added missing default values for
Ellipse2D
parameters. [#3903]
astropy.time ^
- ๐ Fixed iteration of scalar
Time
objects so thatiter()
correctly raises aTypeError
on them (while still allowingTime
arrays to be iterated). [#4048]
astropy.units ^
โ Added frequency-equivalency check when declaring doppler equivalencies [#3728]
Define
floor_divide
(//
) forQuantity
to be consistentdivmod
, 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 theassigned
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]
-
v1.0.3 Changes
June 05, 2015๐ New Features
astropy.table ^
- ๐จ Greatly improved the speed of printing a large table to the screen when only a few rows are being displayed. [#3796]
astropy.time ^
- โ Add support for the 2015-Jun-30 leap second. [#3794]
API Changes
astropy.io.ascii ^
- 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
- ๐ Fix issue with repeated normalizations of
Kernels
. [#3747]
astropy.coordinates
๐ Fixed
get_sun
to yield frames with theobstime
set to what's passed into the function (previously it incorrectly always had J2000). [#3750]๐ Fixed
get_sun
to account for aberration of light. [#3750]๐ Fixed error in the GCRS->ICRS transformation that gave incorrect distances. [#3750]
astropy.io.ascii ^
- โ 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 ^
- ๐ Fixes to support the upcoming Numpy 1.10. [#3419]
astropy.modeling ^
Polynomials are now scaled when used in a compound model. [#3702]
๐ Fixed the
Ellipse2D
model to be consistent withDisk2D
in how pixels are included. [#3736]๐ Fixed crash when evaluating a model that accepts no inputs. [#3772]
โ astropy.testing ^
- โ The Astropy py.test plugins that disable unintentional internet access in tests were also blocking use of local UNIX sockets in tests, which prevented testing some multiprocessing code--fixed. [#3713]
astropy.units ^
๐ Supported full SI prefixes for the barn unit ("picobarn", "femtobarn", etc.) [#3753]
๐ 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 of1.2000000000000002
. After this change, the exact rational number ofFraction(6, 5)
is maintained. [#3790]๐ 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 theUnitsError
exception used previously, so existing code that catchesUnitsError
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 leapsecond updates. [#3802]
-
v1.0.2 Changes
April 16, 2015๐ New Features
astropy.modeling ^
- โ Added support for polynomials with degree 0 or degree greater than 15. [#3574, 3589]
๐ Bug Fixes
astropy.config ^
- ๐ง The pre-astropy-0.4 configuration API has been fixed. It was inadvertently broken in 1.0.1. [#3627]
astropy.io.fits ^
๐ Fixed a severe memory leak that occurred when reading tile compressed images. [#3680]
๐ 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]
The
ColDefs.change_attrib
,ColDefs.change_name
, andColDefs.change_unit
methods now work as advertised. It is also possible (and preferable) to update attributes directly onColumn
objects (for example settingcolumn.name
), and the change will be accurately reflected in any associated table data and its FITS header. [#3283, #1539, #2618]๐ Fixes an issue with the
FITS_rec
interface to FITS table data, where aFITS_rec
created by copying an existing FITS table but adding new rows could not be sliced or masked correctly. [#3641]๐ Fixed handling of BINTABLE with TDIMn of size 1. [#3580]
astropy.io.votable
- Loading a
TABLE
element without anyDATA
now correctly creates a 0-row array. [#3636]
astropy.modeling ^
โ 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]
๐ Fixed instantiation of polynomial models with constraints for parameters (constraints could still be assigned after instantiation, but not during). [#3606]
๐ Fixed fitting of 2D polynomial models with the
LeVMarLSQFitter
. [#3606]
astropy.table ^
Ensure
QTable
can be pickled [#3590]Some corner cases when instantiating an
astropy.table.Table
with a Numpy array are handled [#3637]. Notably:a zero-length array is the same as passing
None
a scalar raises a
ValueError
a one-dimensional array is treated as a single row of a table.
Ensure a
Column
without units is treated as anarray
, not as an dimensionlessQuantity
. [#3648]
astropy.units ^
Ensure equivalencies that do more than just scale a
Quantity
are properly handled also inufunc
evaluations. [#2496, #3586]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 ^
- Using HTTPS/SSL for communication between SAMP hubs now works correctly on all supported versions of Python [#3613]
astropy.wcs ^
- When no
relax
argument is passed toWCS.to_header()
and the result omits non-standard WCS keywords, a warning is emitted. [#3652]
Other Changes and Additions
astropy.vo ^
The number of retries for connections in
astropy.vo.samp
can now be configured by an_retries
configuration option. [#3612]โ Testing
โ Running
astropy.test()
from within the IPython prompt has been provisionally re-enabled. [#3184]
-
v1.0.1 Changes
March 06, 2015๐ 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 evaluate to
True
, except when empty. [#3530]
Miscellaneous
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].
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]
- Ensure constants can be turned into
-
v1.0 Changes
February 18, 2015General
- Astropy now requires 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 aget_sun
function that gives the coordinates of the Sun at a specified time. [#3217]SkyCoord
now hasto_pixel
andfrom_pixel
methods that convert between celestial coordinates asSkyCoord
objects and pixel coordinates given anastropy.wcs.WCS
object. [#3002]SkyCoord
now hassearch_around_sky
andsearch_around_3d
convenience methods that allow searching for all coordinates within a certain distance of anotherSkyCoord
. [#2953]SkyCoord
can now accept a frame instance for theframe=
keyword argument. [#3063]SkyCoord
now has aguess_from_table
method that can be used to quickly createSkyCoord
objects from anastropy.table.Table
object. [#2951]astropy.coordinates
now has aGalactocentric
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 hasra
anddec
attributes. [#2920]SkyCoord
can now accept lists ofSkyCoord
objects, frame objects, or representation objects and will combine them into a single object. [#3285]Frames and
SkyCoord
instances now have a methodis_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 isc * 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
inread
andfast_writer
inwrite
. [#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]
astropy.io.fits ^
0๏ธโฃ 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 byastropy.table
. [#2555, #2588]๐
Section
now supports all advanced indexing featuresndarray
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 adatatype_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 toModel
classes that can work within the Astropy modeling framework. This replaces the oldcustom_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
andFitter
classes have.registry
attributes which provide sets of all loadedModel
andFitter
classes (this is useful for building UIs for models and fitting). [#2725]A dict-like
meta
member was added toModel
. it is to be used to store any optional information which is relevant to a project and is not in the standardModel
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, andNDIOMixin
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
andgaussian_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 andto
method were added toTable
columns that allow the column values to be easily converted toastropy.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 aQuantity
object. This is similar to thenumpy.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 forunits.au
. [#3303]
astropy.utils ^
โ Added a new decorator
astropy.utils.wraps
which acts as a replacement for the standard library'sfunctools.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 newernumpy
versions. The first addition is a version ofbroadcast_arrays
that can be used withQuantity
and otherndarray
subclasses (using thesubok=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 scriptfits2bitmap
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:0๏ธโฃ
equinox
andradesys
will now be given default values conforming with the WCS specification ifEQUINOXa
andRADESYSa
, 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 atolerance
keyword argument to allow for approximate comparison of floating-point values. [#2503]added
pixel_scale_matrix
,celestial
,is_celestial
, andhas_celestial
convenience attributes. Addedproj_plane_pixel_scales
,proj_plane_pixel_area
, andnon_celestial_pixel_scales
utility functions for retrieving WCS pixel scale and area information [#2832, #3304]Added two functions
pixel_to_skycoord
andskycoord_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 theWCSAxes
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 customrepr
should be aware of the format expected inSkyCoord.__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 theastropy.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
andget_current
(deprecated in v0.4) have now been removed. [#2990]
astropy.io.ascii ^
โ Added a new argument to
htmldict
in the HTML reader namedparser
, 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 likeprint my_table
to be read automatically. Discussed in #3025 and #3099 [#3109]
astropy.io.fits ^
- A new optional argument
cache
has been added toastropy.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
andoutputs
class attributes instead of the oldn_inputs
andn_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 inModel
subclasses if all they do is wrap the super-method in order to provide a nice call signature to the docs. Theinputs
class attribute is now used to generate a nice call signature, so these methods should only be overridden byModel
subclasses in order to provide new functionality. [#2835]0๏ธโฃ 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 accessingmodel.inverse
on a model returns a new model that implements that model's inverse, and callingmodel.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 newcustom_model
(see "New Features" above). [#1763]๐ The
Model.param_dim
property (deprecated in v0.4) has now been removed. [#2990]The
Beta1D
andBeta2D
models have been renamed toMoffat1D
andMoffat2D
. [#3029]
astropy.nddata ^
๐
flags
,shape
,size
,dtype
andndim
properties removed fromastropy.nddata.NDData
. [#2905]Arithmetic operations, uncertainty propagation, slicing and automatic conversion to a numpy array removed from
astropy.nddata.NDData
. The classastropy.nddata.NDDataArray
is functionally equivalent to the oldNDData
. [#2905]
astropy.table ^
๐ The
Column.units
property (deprecated in v0.3) has now been removed. [#2990]๐ The
Row.data
andTable._data
attributes have been deprecated related to the change in Table implementation. They are replaced byRow.as_void()
andTable.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 numpyMaskedArray
. 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
andTime.vals
properties (deprecated in v0.3) and theTime.lon
, andTime.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 forQuantity
objects. [#3456]
astropy.utils ^
๐ Some members of
astropy.utils.misc
were moved into new submodules. Specifically:๐
deprecated
,deprecated_attribute
, andlazyproperty
->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 ofastropy.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 aninteractive
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 aUnrecognizedUnit
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
andSphericalRepresentation
[#3354, #3366]๐ Fixed latex display of array angles in IPython notebook. [#3480]
astropy.io.ascii ^
0๏ธโฃ In the
CommentedHeader
thedata_start
parameter now defaults to0
, 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
infits.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 themaxiter
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
andtable.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]Converted representation of progress bar units without suffix from float to int in console.human_file_size. [#2201, #2202, #2721, #3299]
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]
โก๏ธ Updated
astropy.extern.configobj
to Version 5. Version 5 usessix
and the same code covers both Python 2 and Python 3. [#3149]
astropy.coordinates
- The
repr
ofSkyCoord
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 catchesOSError
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 ofsix
. [#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]
-
v0.4.6 Changes
May 29, 2015๐ Bug Fixes
astropy.time ^
- ๐ Fixed ERFA code to handle the 2015-Jun-30 leap second. [#3795]
-
v0.4.5 Changes
February 16, 2015๐ Bug Fixes
- ๐ Fixed unnecessary attempt to run
git
when importing astropy. In particular, fixed a crash in Python 3 that could result from this when importing Astropy when the the current working directory is an empty git repository. [#3475]
Other Changes and Additions
- โก๏ธ Updated bundled copy of astropy-helpers to v0.4.6. [#3508]
- ๐ Fixed unnecessary attempt to run
-
v0.4.4 Changes
January 21, 2015๐ Bug Fixes
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]
API Changes
astropy.vo.samp ^
- 0๏ธโฃ 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]
- ๐
-
v0.4.3 Changes
January 15, 2015๐ Bug Fixes
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. [#2843]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 anHDUList
(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
andprepare_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 thendarray
method to give aNotImplementedError
(by renaming the previouslist
method). [#3050]Quantity.round
now always returns aQuantity
(previously it returned anndarray
fordecimals>0
). [#3062]Ensured
np.squeeze
always returns aQuantity
(it only worked if no dimensions were removed). [#3045]Input to
Quantity
with aunit
attribute no longer can get mangled withcopy=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 invokesuper()
in their__init__
method. [#3004]๐ Fixed a bug which caused the
metadata_conflicts
parameter to be ignored in theastropy.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 asnan
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
forastropy/extern/bundled/six.py
that could occur sometimes after using Astropy in Python 3.4. [#3156]
Other Changes and Additions
astropy.coordinates
- ๐ Improved the agreement of the FK5 <-> Galactic conversion with other codes, and with the FK5 <-> FK4 <-> Galactic route. [#3107]