Version 1.3.0
=================================

Changelog
---------

Documentation
-------------
* New User Guide page for Python 2 support timeline
* New User Guide page for working with private data elements
* example loading set of CT slices and plotting axial, sagittal
  and coronal (:pr:`789`)

Changes
.......
* Removed deprecated uid variables, config.image_handlers and DeferredDataElement (:pr:`760`)
* ``dataelem.isMultiValue`` is deprecated and will be removed in v1.4.
  Use ``dataelem.DataElement.VM`` instead.
* ``dataelem.isStringOrStringList`` and ``dataelem.isString`` functions are
  removed
* ``datadict.add_dict_entry`` and ``datadict.add_dict_entries`` now raise if
  trying to add a private tag
* ``dataset.Dataset.maxBytesToDisplay`` also limits display length for
  non-binary VRs (by number of items) (:issue:`666`)

Enhancements
............

* Added ``datadict.add_private_dict_entry`` and
  ``datadict.add_private_dict_entries`` to add custom private tags
  (:issue:`799`)
* Added possibility to write into zip file using gzip, by avoiding seek (:issue:`753`)
* Added RLE encoding (:pr:`730`)
* Added handling of incorrect transfer syntax (explicit vs implicit)
  (:issue:`820`)
* Added creation of Tag instances by DICOM keyword, e.g Tag("PatientName")
* Added possibility to get and add private tags without adding them to the
  private dictionary
* Added possibility to use a ``Dataset`` in a ``NumPy`` array
* Allow missing padding byte in Pixel Data, issue a warning in this case
  (:issue:`864`)
* Add in-memory image decoding with GDCM
* Check really used implicit/explicit VR before reading a
  data set (:issue:`819`, :issue:`820`)
* Added alpha conversion of Datasets to/from JSON format (Python 3 only)


Fixes
.....
* Correctly handle `Dataset.pop` and `Dataset.setdefault` for tuple and
  keyword arguments (:issue:`852`)
* Correctly handle encoding errors when any of the encodings are invalid
  (not just the first) (:issue:`850`)
* Do not raise while resolving an ambiguous VR dependent on
  `PixelRepresentation` if both `PixelRepresentation` and `PixelData` are
  not present (:issue:`838`)
* Raise exception with specific message if value is too large to be written
  in explicit transfer syntax (:issue:`757`)
* Make hash for `PersonName3` behave as expected, make `PersonName` objects
  immutable (:issue:`785`)
* Fixed `generate_uid()` returning non-conformant UIDs when `prefix=None`
  (:issue:`788`)
* Avoid exception if reading from empty file (:issue:`810`)
* An invalid encoding is now replaced by the default encoding, if
  ``config.enforce_valid_values`` is not set (:issue:`815`)
* Correctly handle elements with ambiguous VR in sequence items (:issue:`804`)
* Fix bug where new DicomDir objects always have is_implicit_VR
* Fix dataset equality for mixed raw vs converted data elements (:issue:`835`)
* Remove excess padding in Pixel Data 
* Fix wrong date format in anonymize example
* Fix unknown VR exception message when VR isn't ASCII (:issue:`791`)
* Fix jis-x-0201 characters encoding (:issue:`856`)

