# Version 2.3.0

## Changes

- `DataElement.description` is deprecated and will be removed in v3.0, use `DataElement.name` instead

- Updated the private dictionary

- `enforce_valid_values` is deprecated in favor of `reading_validation_mode`

- Added download parameter to `get_testdata_file()` to allow skipping downloading the file if missed locally (#1617)

## Enhancements

- Values are now validated for valid length, allowed character set and format on reading and writing. Depending on the value of `reading_validation_mode` and `writing_validation_mode` a warning is logged, an exception is raised, or the validation is skipped.

- Added `VR` enum (#1500)

- UIDs for all Storage SOP Classes have been added to the `uid` module (#1498)

- Use rle_handler as last resort handler for decoding RLE encoded data as it is the slowest handler (#1487)

- Added, enhanced, or removed a number of Mitra private dictionary entries (#1588)

- Added support for unpacking bit-packed data without using NumPy to `unpack_bits`(:pr:`1594()`)

- Added `expand_ybr422()` for expanding uncompressed `YBR_FULL_422` data to `YBR_FULL` (#1593)

- Replacement of `UN` VR with `SQ` VR for undefined length data elements (introduced in 2.2.2), can now be configured via `infer_sq_for_un_vr`

- Updated dictionaries to DICOM 2022a

## Fixes

- Fixed odd-length OB values not being padded during write (#1511)

- Fixed Hologic private dictionary entry (0019xx43)

- Fixed Mitra global patient ID private dictionary entry (#1588)

- Fixed `compress()` not setting the correct encoding for the rest of the dataset (#1565)

- Fixed AttributeError on deep copy of `FileDataset` (#1571)

- Fixed an exception during pixel decoding if using GDCM < 2.8.8 on Windows (#1581)

- Fixed crashes on Windows and MacOS when using the GDCM plugin to compress into RLE Lossless (#1581)

- Fixed `dir(Dataset())` not returning class attributes (#1599)

- Fixed bad DICOMDIR offsets when using `FileSet.write()` with a Directory Record Sequence using undefined length items (#1596)

- Assigning a list of length one as tag value is now correctly handled as assigning the single value (#1606)

- Fixed an exception with multiple deferred reads with file-like objects (#1609)