Changes
=======

1.1.6 (2014-07-23)
------------------
- Implement Collection __getitem__() (#112).
- Leave GDAL finalization to the DLL's destructor (#113).
- Add Collection keys(), values(), items(), __contains__() (#114).
- CRS bug fix (#116).
- Add fio CLI program.
  
1.1.5 (2014-05-21)
------------------
- Addition of cpl_errs context manager (#108).
- Check for NULLs with '==' test instead of 'is' (#109).
- Open auxiliary files with encoding='utf-8' in setup for Python 3 (#110).

1.1.4 (2014-04-03)
------------------
- Convert 'long' in schemas to 'int' (#101).
- Carefully map Python schema to the possibly munged internal schema (#105).
- Allow writing of features with geometry: None (#71).

1.1.3 (2014-03-23)
------------------
- Always register all GDAL and OGR drivers when entering the DriverManager
  context (#80, #92).
- Skip unsupported field types with a warning (#91).
- Allow OGR config options to be passed to fiona.drivers() (#90, #93).
- Add a bounds() function (#100).
- Turn on GPX driver.

1.1.2 (2014-02-14)
------------------
- Remove collection slice left in dumpgj (#88).

1.1.1 (2014-02-02)
------------------
- Add an interactive file inspector like the one in rasterio.
- CRS to_string bug fix (#83).

1.1 (2014-01-22)
----------------
- Use a context manager to manage drivers (#78), a backwards compatible but
  big change. Fiona is now compatible with rasterio and plays better with the
  osgeo package.

1.0.3 (2014-01-21)
------------------
- Fix serialization of +init projections (#69).

1.0.2 (2013-09-09)
------------------
- Smarter, better test setup (#65, #66, #67).
- Add type='Feature' to records read from a Collection (#68).
- Skip geometry validation when using GeoJSON driver (#61).
- Dumpgj file description reports record properties as a list (as in
  dict.items()) instead of a dict.

1.0.1 (2013-08-16)
------------------
- Allow ordering of written fields and preservation of field order when
  reading (#57).

1.0 (2013-07-30)
-----------------
- Add prop_type() function.
- Allow UTF-8 encoded paths for Python 2 (#51). For Python 3, paths must
  always be str, never bytes.
- Remove encoding from collection.meta, it's a file creation option only.
- Support for linking GDAL frameworks (#54).

0.16.1 (2013-07-02)
-------------------
- Add listlayers, open, prop_width to __init__py:__all__.
- Reset reading of OGR layer whenever we ask for a collection iterator (#49).

0.16 (2013-06-24)
-----------------
- Add support for writing layers to multi-layer files.
- Add tests to reach 100% Python code coverage.

0.15 (2013-06-06)
-----------------
- Get and set numeric field widths (#42).
- Add support for multi-layer data sources (#17).
- Add support for zip and tar virtual filesystems (#45).
- Add listlayers() function.
- Add GeoJSON to list of supported formats (#47).
- Allow selection of layers by index or name.

0.14 (2013-05-04)
-----------------
- Add option to add JSON-LD in the dumpgj program.
- Compare values to six.string_types in Collection constructor.
- Add encoding to Collection.meta.
- Document dumpgj in README.

0.13 (2013-04-30)
-----------------
- Python 2/3 compatibility in a single package. Pythons 2.6, 2.7, 3.3 now supported.

0.12.1 (2013-04-16)
-------------------
- Fix messed up linking of README in sdist (#39).

0.12 (2013-04-15)
-----------------
- Fix broken installation of extension modules (#35).
- Log CPL errors at their matching Python log levels.
- Use upper case for encoding names within OGR, lower case in Python.

0.11 (2013-04-14)
-----------------
- Cythonize .pyx files (#34).
- Work with or around OGR's internal recoding of record data (#35).
- Fix bug in serialization of int/float PROJ.4 params.

0.10 (2013-03-23)
-----------------
- Add function to get the width of str type properties.
- Handle validation and schema representation of 3D geometry types (#29).
- Return {'geometry': None} in the case of a NULL geometry (#31).

0.9.1 (2013-03-07)
------------------
- Silence the logger in ogrext.so (can be overridden).
- Allow user specification of record field encoding (like 'Windows-1252' for
  Natural Earth shapefiles) to help when OGR can't detect it.

0.9 (2013-03-06)
----------------
- Accessing file metadata (crs, schema, bounds) on never inspected closed files
  returns None without exceptions.
- Add a dict of supported_drivers and their supported modes.
- Raise ValueError for unsupported drivers and modes.
- Remove asserts from ogrext.pyx.
- Add validate_record method to collections.
- Add helpful coordinate system functions to fiona.crs.
- Promote use of fiona.open over fiona.collection.
- Handle Shapefile's mix of LineString/Polygon and multis (#18).
- Allow users to specify width of shapefile text fields (#20).

0.8 (2012-02-21)
----------------
- Replaced .opened attribute with .closed (product of collection() is always
  opened). Also a __del__() which will close a Collection, but still not to be
  depended upon.
- Added writerecords method.
- Added a record buffer and better counting of records in a collection.
- Manage one iterator per collection/session.
- Added a read-only bounds property.

0.7 (2012-01-29)
----------------
- Initial timezone-naive support for date, time, and datetime fields. Don't use
  these field types if you can avoid them. RFC 3339 datetimes in a string field
  are much better.

0.6.2 (2012-01-10)
------------------
- Diagnose and set the driver property of collection in read mode.
- Fail if collection paths are not to files. Multi-collection workspaces are
  a (maybe) TODO.

0.6.1 (2012-01-06)
------------------
- Handle the case of undefined crs for disk collections.

0.6 (2012-01-05)
----------------
- Support for collection coordinate reference systems based on Proj4.
- Redirect OGR warnings and errors to the Fiona log.
- Assert that pointers returned from the ograpi functions are not NULL before
  using.

0.5 (2011-12-19)
----------------
- Support for reading and writing collections of any geometry type.
- Feature and Geometry classes replaced by mappings (dicts).
- Removal of Workspace class.

0.2 (2011-09-16)
----------------
- Rename WorldMill to Fiona.

0.1.1 (2008-12-04)
------------------
- Support for features with no geometry.

