Releases: Toblerity/Fiona
1.10.1
1.10.0
This is 1.10.0. At last! The project has added 25 new contributors since 1.9.0, for a total of 73.
Fiona 1.10 will continue to support classic GIS programming work with a record-style data model. Rows, that is, not columns.
The changes since 1.9.6 are fully described in the changelog, split across pre-releases. Here is a high-level summary.
Deprecations
- Python-style filter expressions for CLI commands are being replaced by Lisp-like expressions.
- Some constants in the
fiona.schema
module will be removed in a future version. - The
fiona.path
module will be removed in a future version. This, and the previously mentioned constants, were not meant to be used by projects downstream.
New features
- Python openers can connect filesystems implemented in Python, like
fsspec
ortiledb.vfs
, to GDAL's own virtual filesystem machinery. In most cases, you should reply on GDAL's built-in virtual filesystem handlers. On the other hand, if you have unique or proprietary data access protocols, then fiona's new openers may be useful. - Fiona's CLI has three new commands,
filter
(strictly speaking, a new mode of this command),map
, andreduce
. These provide some great features for Unix-style data processing pipelines and are designed to work well withjq
and programs of that nature.
Other changes
This version is heavily refactored. If it's not paying off for you, let us know!
PyPI wheels
The binary wheels on PyPI include GDAL 3.9.2 (3.9.1 for Windows), GEOS 3.11.2, and PROJ 9.4.1.
GDAL and Python versions
Fiona 1.10.0 requires GDAL 3.4 and Python 3.8 or newer.
1.10.0rc1
This is the first release candidate for 1.10.0.
Changes
- Mutable item access to Feature, Geometry, and Properties instances has been restored (reported in #1430). This usage should be avoided as instances of these classes will be immutable in a future version.
- The setup.cfg duplicates project configuration in pyproject.toml and has been removed.
Packaging
- PyPI wheels include GDAL 3.9.2.
Please see the CHANGES file for a more detailed enumeration of changes since version 1.10b1. Unless showstopper bugs are found in this release, expect a final 1.10.0 release in two weeks.
1.10b3
Bug fixes
- The sketchy, semi-private Python opener interfaces of version 1.10b2 have been replaced by ABCs that are exported from fiona.abc (#1415). How to implement the interfaces and provide a custom opener is documented in
test_pyopener.py
and will be included in the documentation for version 1.10.0. - The truncate GDAL VSI plugin callback has been implemented (#1413).
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.10b2
This is the second beta release for Fiona 1.10. There are no new features, only bug fixes:
Bug fixes
- The Pyopener registry and VSI plugin have been rewritten to avoid filename conflicts and to be compatible with multithreading. Now, a new plugin handler is registered for each instance of using an opener (#1408). Before GDAL 3.9.0 plugin handlers cannot not be removed and so it may be observed that the size of the Pyopener registry grows during the execution of a program.
- A CSLConstList ctypedef has been added and is used where appropriate (#1404).
- Fiona model objects have a informative, printable representation again (#1380).
Packaging
- PyPI wheels include GDAL 3.9.1 and curl 8.8.0.
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.10b1
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
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 #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 #1332.
1.9.6
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
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 #1332.
1.9.5
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.