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 or tiledb.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, and reduce. These provide some great features for Unix-style data processing pipelines and are designed to work well with jq 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).
The package version, credits, and citation file have been updated. There have
been no other changes since 1.10.0rc1. Fiona is the work of 73 contributors,
including 25 new contributors since 1.9.0.
1.10.0rc1 (2024-08-21)
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.
1.10b3 (2024-07-29)
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).
The truncate VSI plugin callback has been implemented (#1413).
1.10b2 (2024-07-10)
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).
You can trigger a rebase of this PR by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/mysociety/local-intelligence-hub/network/alerts).
Note
Automatic rebases have been disabled on this pull request as it has been open for over 30 days.
Bumps fiona from 1.9.6 to 1.10.0.
Release notes
Sourced from fiona's releases.
... (truncated)
Changelog
Sourced from fiona's changelog.
... (truncated)
Commits
cc16f66
This is 1.10.009ffe32
Update 1.10.0rc1 release datee7acafe
Remove experimental wheel build infra6bf2bf7
Restore mutable item access to Properties103c11f
Add custom triplets7946354
Add vcpkg.json6e4a6d1
Move testsdce31ea
cd before running tests14cac4f
Run tests from right locationbbd9842
Provide GDAL versionYou can trigger a rebase of this PR by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show