Fiona Versions Save

Fiona reads and writes geographic data files

1.10b1

3 weeks ago

This is the first beta release for Fiona 1.10. There are no new features, only one bug fix:

  • Fiona can again set fields with values that are instances of classes derived from date, time, and datetime (#1377). This was broken by changes in 1.10a2.

Please see the CHANGES file for a more detailed enumeration of changes since version 1.9.6. Unless showstopper bugs are found in this release, expect a release candidate in two weeks.

1.10a2

1 month ago

This is the second 1.10 pre-release. The changes since 1.10a1 are enumerated below.

Deprecations

  • The FIELD_TYPES, FIELD_TYPES_MAP, and FIELD_TYPES_MAP_REV attributes of fiona.schema are no longer used by the project and will be removed in version 2.0 (#1366).
  • The Python style of rio-filter expressions introduced in version 1.0 are deprecated. Only the parenthesized list type of expression will be supported by version 2.0.

New features

  • All supported Fiona field types are now represented by classes in fiona.schema. These classes are mapped in FIELD_TYPES_MAP2 and FIELD_TYPES_MAP2_REV to OGR field type and field subtype pairs (#1366).
  • The filter, map, and reduce CLI commands from the public domain version 1.1.0 of fio-planet have been incorporated into Fiona's core set of commands (#1362). These commands are only available if pyparsing and shapely (each of these are declared in the "calc" set of extra requirements) are installed.

Bug fixes

  • Fiona's python opener VSI plugin prefix has been changed to "vsifiopener" to not conflict with Rasterio (#1368).
  • Add a 16-bit integer type "int16" based on OGR's OSFTInt16 integer sub-type (#1358).
  • Allow a GeoJSON collection's layer name to be set on opening in write mode (#1352).
  • The legacy crs.py module which was shadowed by the new crs.pyx module has been deleted (#1344).
  • Python 3.8 has been added back to the list of supported versions and a dependency on Numpy added in 1.10a1 has been removed.
  • An implementation of the VSI flush callback has been added to _vsiopener.pyx.
  • Openers are now registered only by urlpath. The mode is no longer considered as OGR drivers may use a mix of modes when creating a new dataset.

Other changes

  • Feature builder and field getter/setter instances are reused when reading and writing features (#1366).

Packaging

Aftermath of the "xz hackdoor" incident (see https://github.com/Toblerity/Fiona/discussions/1367) is preventing us from building Windows wheels for this release. You may expect them for the first 1.10 release candidate, if not sooner, and for the final 1.10.0 release.

Future 1.10 pre-releases will be announced at https://github.com/Toblerity/Fiona/issues/1332.

1.9.6

2 months ago

This is very likely the last 1.9.x release and fixes several bugs that can't wait until 1.10.0.

Bug fixes

  • Ensure that geometry types in a schema are translated to a linear type, as geometry instances are (#1313).
  • Fix broken stable API documentation on Read The Docs.
  • Remove install requirement of setuptools, a regression introduced in 1.9.5.

1.10a1

2 months ago

This is the first 1.10 pre-release.

Python version

Fiona 1.10 will require Python version 3.8 or higher.

Deprecations

The fiona.path module will be removed in version 2.0 and a deprecation warning is issued when the module is imported (#1334). Additionally, members of that module are no longer exported from the top level module.

New features

Python openers can now support discovery of auxiliary "sidecar" files like .aux.xml, .msk, and .tfw files for GeoTIFFs (#1331). Additionally, filesystem objects, such as those from fsspec and tiledb, can be used as openers. This will become the recommended usage, supplanting the use of single file openers.

Bug fixes

  • Use of pkg_resources in test_rio_info.py has been eliminated.
  • gzip, tar, and zip archive URIs containing drive letters were not always parsed properly on Windows, but are now (#1334).

Packaging

  • PyPI wheels include GDAL 3.8.4, PROJ 9.3.1, and GEOS 3.11.2.

Future 1.10 pre-releases will be announced at https://github.com/Toblerity/Fiona/issues/1332.

1.9.5

6 months ago

Bug fixes

  • Expand keys in schema mismatch exception, resolving #1278.
  • Preserve the null properties and geometry of a Feature when serializing (#1276).

Packaging

  • The distribution name is now officially "fiona", not "Fiona". The import name remains fiona.
  • Builds now require Cython >= 3.0.2 (#1276).
  • PyPI wheels include GDAL 3.6.4, PROJ 9.0.1, and GEOS 3.11.2.
  • PyPI wheels include curl 8.4.0, addressing CVE-2023-38545 and CVE-38546.
  • PyPI wheels are now available for Python 3.12.

1.9.4.post1

11 months ago

Extraneous files were unintentionally packaged in the 1.9.4 wheels. This post1 release excludes them so that wheel contents are as in version 1.9.3.

1.9.4

11 months ago

Version 1.9.4 has important bug fixes and improvements and, in the PyPI wheels, updates GDAL to 3.6.4.

  • The performance of Feature.from_dict() has been improved (#1267).
  • Several sources of meaningless log messages from fiona._geometry about NULL geometries are avoided (#1264).
  • The Parquet driver has been added to the list of supported drivers and will be available if your system's GDAL library links libarrow. Note that fiona wheels on PyPI do not include libarrow as it is rather large.
  • Ensure that fiona._vendor modules are found and included.
  • Bytes type feature properties are now hex encoded when serializing to GeoJSON (#1263).
  • Docstrings for listdir and listlayers have been clarified and harmonized.
  • Nose style test cases have been converted to unittest.TestCase (#1256).
  • The munch package used by fio-filter and fio-calc is now vendored and patched to remove usage of the deprecated pkg_resources module (#1255).

1.9.3

1 year ago

Version 1.9.3 has a handful of important bug fixes and, in the PyPI wheels, upgrades GEOS to 3.11.2.

  • Rasterio CRS objects are compatible with the Collection constructor and are now accepted (#1248).
  • Append mode for fio-load has been enabled (#1237).
  • Reading a GeoJSON with an empty array property can result in a segmentation fault since version 1.9.0. This has been fixed (#1228).

1.9.2

1 year ago

Version 1.9.2 has a handful of important bug fixes.

  • The fio CLI now gets its command entry points using importlib.metadata (#1220). The project has no more runtime dependency on setuptools.
  • Instead of warning, transform_geom() raises an exception when some points can't be reprojected unless the caller opts in to partial reprojection. This restores the behavior of version 1.8.22.
  • Add support for open options to all CLI commands that call fiona.open (#1215).
  • Fix a memory leak that can occur when iterating over a dataset using strides (#1205).
  • ZipMemoryFile now supports zipped GDB data (#1203).

1.9.1

1 year ago

The 1.9.0 release revealed a few bugs. Here are the ones we felt should be squished immediately.

  • Log a warning message when identically named fields are encountered (#1201).
  • Avoid dependence on listdir order in tests (#1193).
  • Prevent empty geometries arrays from appearing in __geo_interface__ (#1197).
  • setuptools added to pyproject.toml. Its pkg_resources module is used by the CLI (#1191).

Wheels on PyPI include the same versions of GEOS, GDAL, and PROJ as in 1.9.0 but also patch GDAL 3.5.3 (https://github.com/OSGeo/gdal/pull/7171).