1.0 (2015-02-18) ---------------- 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 ``RADESYSa``, 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 `_ 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 `_>=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] 0.4.4 (2015-01-21) ------------------ 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`` - 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] 0.4.3 (2015-01-15) ------------------ 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 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] 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]