Release Notes for PyCIFRW-4.2 
=============================

Changes since 4.1.1
===================

* Up to two orders of magnitude improvement in reading speed
  for large files (several Mb). Note that PyCIFRW reads the
  entire file into memory, so you must have sufficient RAM.

* Continuous bugfixes and improvements to dREL system
  - Allow multiple dREL methods per definition
  - Detect and handle recursion in dREL methods

* Understands DDLm use of _import.get to merge dictionaries

* Experimental DDLm attributes for category construction

* Fixed bug in triple-quoted string interpretation

Incompatible changes (since 3.0 series)
=======================================

* Function "validate" has been renamed to Validate for consistency
* Nested loops (only allowed in STAR files) are no longer supported
* Merging of datablocks in 'overlay' mode has been removed. This is
  relevant only for dictionary merging.
* The package now installs in a separate Python site-packages directory. 
  called 'CifFile'. It should thus be imported using 'import CifFile' or 
  'from CifFile import CifFile'.  This may differ from earlier versions.
* A single-item loop can no longer be created using the form cf['_dataname'] = [1,2,3,4]
  To get the old behaviour, create the CifBlock with 'compat_mode = True'.
* The line folding protocol is always used when writing CIF files. This is
  only invoked if you have lines longer than 2048 characters (or your specified
  maximum length).
* The text prefix protocol introduced in CIF2.0 is always used when writing. 
  This is only invoked if a string contains the character sequence '\n;'
* The text prefix protocol and line folding protocol are detected and 
  transparently removed from text values when reading.

Deprecated methods
==================

* AddCifItem.  This unnecessarily convoluted and mind-bending way of
adding a whole loop all at once in a single tuple has been deprecated.
Just assign dataname values using the usual square brackets and then
call CreateLoop with the datanames that belong in a single loop.


