# Version 1.3.0

## 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 (#789)

## Changes

- Removed deprecated uid variables, config.image_handlers and DeferredDataElement (#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) (#666)

## Enhancements

- Added `datadict.add_private_dict_entry` and `datadict.add_private_dict_entries` to add custom private tags (#799)

- Added possibility to write into zip file using gzip, by avoiding seek (#753)

- Added RLE encoding (#730)

- Added handling of incorrect transfer syntax (explicit vs implicit) (#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 (#864)

- Add in-memory image decoding with GDCM

- Check really used implicit/explicit VR before reading a data set (#819, #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 (#852)

- Correctly handle encoding errors when any of the encodings are invalid (not just the first) (#850)

- Do not raise while resolving an ambiguous VR dependent on PixelRepresentation if both PixelRepresentation and PixelData are not present (#838)

- Raise exception with specific message if value is too large to be written in explicit transfer syntax (#757)

- Make hash for PersonName3 behave as expected, make PersonName objects immutable (#785)

- Fixed generate_uid() returning non-conformant UIDs when prefix=None (#788)

- Avoid exception if reading from empty file (#810)

- An invalid encoding is now replaced by the default encoding, if `config.enforce_valid_values` is not set (#815)

- Correctly handle elements with ambiguous VR in sequence items (#804)

- Fix bug where new DicomDir objects always have is_implicit_VR

- Fix dataset equality for mixed raw vs converted data elements (#835)

- Remove excess padding in Pixel Data

- Fix wrong date format in anonymize example

- Fix unknown VR exception message when VR isn’t ASCII (#791)

- Fix jis-x-0201 characters encoding (#856)