# Version 1.0.0

This is a major release, with major changes, including backwards-incompatible changes.

## Changelog

### Major changes

- full Python 3 compatibility - one code base for both Python 2 and Python 3
- package name and import name now match – use `import pydicom` rather than `import dicom`.
- added handlers for converting (7fe0,0010) Pixel Data to a numpy.ndarray
  - optional GDCM support for reading files with compressed pixel data (#18)
  - optional Pillow and jpeg_ls support for reading some compressed pixel data files
  - support for decompressing a compressed dataset in-place
- DICOM dictionary updated to 2017c
- cleaned up DICOM dictionary code, old non-DICOM-keyword code removed

### Other enhancements

- added `util/fixer.py` callbacks available to fix non DICOM-compliant values before exceptions thrown
- added context management methods to `Dataset`
- added `misc.is_dicom()` function to check for DICOM file format
- added date/time converters (#143)
- added option to attempt other VRs if translate fails (#197)
- added heuristics to read files that have no preamble or file meta information
- support for multi-valued DA, DT, TM data elements (#212)
- `DataElement`: added `keyword` and `is_retired` properties
- `datadict`: added `dictionary_is_retired()`
- `datadict`: added ability to add custom DICOM dictionary items via `add_dict_entry()` and `add_dict_entries()`
- added some support for pickle
- added support for VRs `OD`, `OL` and `UC`
- added support for Thai, Japanese and Chinese encodings (#346, #353)
- added support for slicing to Dataset
- add/update TransferSyntaxUID when writing standard
- renamed `UID` package to `uid` (conforms to Python standard)
- added property `uid.is_private`
- added definitions for storage SOP Class UIDs (#172)
- added possibility to read only specific tags (#95)
- added missing meta elements when writing DICOM file
- added `encaps` generator functions to access compressed frames
- `read_file` changed to `dcmread`, `write_file` to `dcmwrite` for greater clarity. Previous names still available for backwards compatibility.

### Infrastructure

- added TravisCI and AppVeyor builds for automatic tests under Linux and Windows
- added automatic code coverage builds and PEP-8 checks
- added automatic documentation builds on GitHub Pages for development and release builds
- added PyPy support
- removed support for Python 2.6, added support for Python 3.6

### Fixes

- correctly handle PlanarConfiguration==0 (#151)
- updated uid generation to ensure uniqueness (#125)
- handle missing patient data in `show_dicomdir`
- assume default transfer syntax if none in file meta (#258)
- fixed reading/writing of empty tags and tags with bad VR
- fixed reading AE elements with leading or trailing spaces
- fixed handling of ambiguous VR elements
- fixed handling for several error conditions
- fixed Latin5 (Turkish) character set handling
- a lot of other small fixes…