Changes
=======

All issue numbers are relative to https://github.com/Toblerity/Fiona/issues.

1.6.3 (2015-09-22)
------------------
- Daytime has been decreasing in the Northern Hemisphere, but is now
  increasing again as it should.
- Non-UTF strings were being passed into OGR functions in some situations
  and on Windows this would sometimes crash a Python process (#303). Fiona
  now raises errors derived from UnicodeError when field names or field
  values can't be encoded.

1.6.2 (2015-09-22)
------------------
- Providing only PROJ4 representations in the dataset meta property resulted in
  loss of CRS information when using the `fiona.open(..., **src.meta) as dst`
  pattern (#265). This bug has been addressed by adding a crs_wkt item to the
  meta property and extending the `fiona.open()` and the collection constructor
  to look for and prioritize this keyword argument.

1.6.1 (2015-08-12)
------------------
- Bug fix: Fiona now deserializes JSON-encoded string properties provided by
  the OGR GeoJSON driver (#244, #245, #246).
- Bug fix: proj4 data was not copied properly into binary distributions due to
  a typo (#254).

Special thanks to WFMU DJ Liz Berg for the awesome playlist that's fueling my
release sprint. Check it out at http://wfmu.org/playlists/shows/62083. You
can't unhear Love Coffin.

1.6.0 (2015-07-21)
------------------
- Upgrade Cython requirement to 0.22 (#214).
- New BytesCollection class (#215).
- Add GDAL's OpenFileGDB driver to registered drivers (#221).
- Implement CLI commands as plugins (#228).
- Raise click.abort instead of calling sys.exit, preventing suprising exits
  (#236).

1.5.1 (2015-03-19)
------------------
- Restore test data to sdists by fixing MANIFEST.in (#216).

1.5.0 (2015-02-02)
------------------
- Finalize GeoJSON feature sequence options (#174).
- Fix for reading of datasets that don't support feature counting (#190).
- New test dataset (#188).
- Fix for encoding error (#191).
- Remove confusing warning (#195).
- Add data files for binary wheels (#196).
- Add control over drivers enabled when reading datasets (#203).
- Use cligj for CLI options involving GeoJSON (#204).
- Fix fio-info --bounds help (#206).

1.4.8 (2014-11-02)
------------------
- Add missing crs_wkt property as in Rasterio (#182).

1.4.7 (2014-10-28)
------------------
- Fix setting of CRS from EPSG codes (#149).

1.4.6 (2014-10-21)
------------------
- Handle 3D coordinates in bounds() #178.

1.4.5 (2014-10-18)
------------------
- Add --bbox option to fio-cat (#163).
- Skip geopackage tests if run from an sdist (#167).
- Add fio-bounds and fio-distrib.
- Restore fio-dump to working order.

1.4.4 (2014-10-13)
------------------
- Fix accidental requirement on GDAL 1.11 introduced in 1.4.3 (#164).

1.4.3 (2014-10-10)
------------------
- Add support for geopackage format (#160).
- Add -f and --format aliases for --driver in CLI (#162).
- Add --version option and env command to CLI.

1.4.2 (2014-10-03)
------------------
- --dst-crs and --src-crs options for fio cat and collect (#159).

1.4.1 (2014-09-30)
------------------
- Fix encoding bug in collection's __getitem__ (#153).

1.4.0 (2014-09-22)
------------------
- Add fio cat and fio collect commands (#150).
- Return of Python 2.6 compatibility (#148).
- Improved CRS support (#149).

1.3.0 (2014-09-17)
------------------
- Add single metadata item accessors to fio inf (#142).
- Move fio to setuptools entry point (#142).
- Add fio dump and load commands (#143).
- Remove fio translate command.

1.2.0 (2014-09-02)
------------------
- Always show property width and precision in schema (#123).
- Write datetime properties of features (#125).
- Reset spatial filtering in filter() (#129).
- Accept datetime.date objects as feature properties (#130).
- Add slicing to collection iterators (#132).
- Add geometry object masks to collection iterators (#136).
- Change source layout to match Shapely and Rasterio (#138).

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.

