=======
Changes
=======

Release 0.2.0
=============

* Fixed problems with deepcopying lazy arrays.
* Optimization - uses `x.min()` rather than `min(x)` where possible.
* Some fixes for when using boolean addressing.
* Setting shape on an larray now also sets it on all larrays within the operations list.
* Added `__eq__` method to larray.
* Replaced some assertions with more specific Exceptions.
* Added support for 'vectorized iterables', i.e. objects with a `next(n)` method so that you can return multiple values at once.
* Fixed some bugs when creating a lazy array from an existing lazy array.
* Added `dtype` attribute to `larray` class.


Release 0.2.1
=============

* Previous release didn't work with Python 3.


Release 0.2.2
=============

* Fixed behaviour of larray(VectorizedIterable) to match that of numpy array when indexing a single item.
* Pulled out `partial_shape()` and `full_address()` methods of `larray` as standalone functions.
* Better support for lists as masks.
* `larray`s are now callable, provided their `base_value` is callable and the argument is another `larray`.


Release 0.2.3
=============

* Support `numpy.int64` as indices.
* Better support for boolean indices.
* Handle the case of constant `larray`s of size 1.


Release 0.2.4
=============

* Fixed bugs related to indexing multiple axes at the same time (`#3`_, `#4`_)


Release 0.2.5
=============

* Fixed a bug where the base value was homogeneous but one or more operations involved inhomogeneous arrays.


Release 0.2.6
=============

* Fixed a bug with callable lazyarrays.

Release 0.2.7
=============

* When deepcopying, VectorizedIterable objects as base_value are no longer copied, rather we keep a reference to the original.

Release 0.2.8
=============

* Slices which go past the array limits are now correctly handled. (`#5`_)

Release 0.2.9
=============

* Support base values of type `numpy.float` (which have an empty `shape` attribute)

Release 0.2.10
==============

* We don't create a new instance if the base value is already of the required dtype

Release 0.3.0
=============

* Support SciPy sparse matrices as base values
* Support any object that implements a method `lazily_evaluate` as a base value
* Allow more flexibility in checking 'equality' of types, e.g. accept an array of dtype `numpy.float32` when the specified dtype is `float`

Release 0.3.1
=============

* Fix a packaging issue, update project homepage.

Release 0.3.2
=============

* Ensure SciPy is optional

Release 0.3.3
=============

* Do not raise a "shape mismatch" `ValueError` if the value shape is empty.


.. _`#3`: https://bitbucket.org/apdavison/lazyarray/issue/3/
.. _`#4`: https://bitbucket.org/apdavison/lazyarray/issue/4/
.. _`#5`: https://bitbucket.org/apdavison/lazyarray/issue/5/
