Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update fiona to 1.10.1 #503

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

pyup-bot
Copy link
Collaborator

This PR updates fiona from 1.8.6 to 1.10.1.

Changelog

1.10.1

-------------------

Bug fixes:

- Several typos were found and fixed (1448). One variable was renamed and one
the ContextVar in _vsipyopener.pyx was renamed.
- Logging in the CRS class no longer tries to print representations of objects
that may be NULL when searching for authority matches (1445).

1.10.0

-------------------

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

----------------------

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

-------------------

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

-------------------

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.

1.10b1

-------------------

Bug fixes:

- 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.

1.10a2

-------------------

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).

1.10a1

-------------------

Python version:

Fiona 1.10 will require Python version 3.9 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, 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).

1.9.6

------------------

- 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.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.

1.9.4.post1

------------------------

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

------------------

- 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

------------------

- Rasterio CRS objects are compatible with the Collection constructor and are
now accepted (1248).
- Enable append mode for fio-load (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

------------------

- Get command entry points using importlib.metadata (1220).
- 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

------------------

- 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).

1.9.0

------------------

- CITATION.txt has been replaced by a new CITATION.cff file and the credits
have been updated.
- In setup.py the distutils (deprecated) logger is no longer used.

1.9b2

------------------

- Add Feature.__geo_interface__ property (1181).
- Invalid creation options are filtered and ignored (1180).
- The readme doc has been shortened and freshened up, with a modern example for
version 1.9.0 (1174).
- The Geometry class now provides and looks for __geo_interface__ (1174).
- The top level fiona module now exports Feature, Geometry, and Properties
(1174).
- Functions that take Feature or Geometry objects will continue to take dicts
or objects that provide __geo_interface__ (1177). This reverses the
deprecation introduced in 1.9a2.
- Python ignores SIGPIPE by default. By never catching BrokenPipeError via
`except Exception` when, for example, piping the output of rio-shapes to
the Unix head program, we avoid getting an unhandled BrokenPipeError message
when the interpreter shuts down (2689).

1.9b1

------------------

New features:

* Add listdir and listlayers method to io.MemoryFile (resolving 754).
* Add support for TIN and triangle geometries (1163).
* Add an allow_unsupported_drivers option to fiona.open() (1126).
* Added support for the OGR StringList field type (1141).

Changes and bug fixes:

* Missing and unused imports have been added or removed.
* Make sure that errors aren't lost when a collection can't be saved properly
(1169).
* Ensure that ZipMemoryFile have the proper GDAL name after creation so that we
can use listdir() (1092).
* The fiona._loading module, which supports DLL loading on Windows,
has been moved into __init__.py and is no longer used anywhere else (1168).
* Move project metadata to pyproject.toml (1165).
* Update drvsupport.py to reflect new format capabilities in GDAL 3.6.0
(1122).
* Remove debug logging from env and _env modules.

1.9a3

------------------

Packaging:

* Builds now require Cython >= 0.29.29 because of
* https://github.com/cython/cython/issues/4609 (see #1143).
* PyPI wheels now include GDAL 3.5.2, PROJ 9.0.1, and GEOS 3.11.0.
* PyPI wheels are now available for Python 3.11.

1.9a2

------------------

Deprecations:

- Fiona's API methods will accept feature and geometry dicts in 1.9.0, but this
usage is deprecated. Instances of Feature and Geometry will be required in
2.0.
- The precision keyword argument of fiona.transform.transform_geom is
deprecated and will be removed in version 2.0.
- Deprecated usage has been eliminated in the project. Fiona's tests pass when
run with a -Werror::DeprecationWarning filter.

Changes:

- Fiona's FionaDeprecationWarning now sub-classes DeprecationWarning.
- Some test modules have been re-formatted using black.

New features:

- Fiona Collections now carry a context exit stack into which we can push fiona
Envs and MemoryFiles (1059).
- Fiona has a new CRS class, like rasterio's, which is compatible with the CRS
dicts of previous versions (714).

1.9a1

------------------

Deprecations:

- The fiona.drivers() function has been deprecated and will be removed in
version 2.0. It should be replaced by fiona.Env().
- The new fiona.meta module will be renamed to fiona.drivers in version 2.0.

Packaging:

- Source distributions contain no C source files and require Cython to create
them from .pyx files (1096).

Changes:

- Shims for various versions of GDAL have been removed and are replaced by
Cython compilation conditions (1093).
- Use of CURL_CA_BUNDLE environment variable is replaced by a more specific
GDAL/PROJ_CURL_CA_BUNDLE (1095).
- Fiona's feature accessors now return instances of fiona.model.Feature instead
of Python dicts (787). The Feature class is compatible with code that
expects GeoJSON-like dicts but also provides id, geometry, and properties
attributes. The last two of these are instances of fiona.model.Geometry and
fiona.model.Properties.
- GDAL 3.1.0 is the minimum GDAL version.
- Drop Python 2, and establish Python 3.7 as the minimum version (1079).
- Remove six and reduce footprint of fiona.compat (985).

New features:

- The appropriate format driver can be detected from filename in write mode (948).
- Driver metadata including dataset open and dataset and layer creations
options are now exposed through methods of the fiona.meta module (950).
- CRS WKT format support (979).
- Add 'where' SQL clause to set attribute filter (961, 1097).

Bug fixes:

- Env and Session classes have been updated for parity with rasterio and to
resolve a credential refresh bug (1055).

1.8.22

-------------------

Builds now require Cython >= 0.29.29 because of
https://github.com/cython/cython/issues/4609 (#1143).

1.8.21

-------------------

Changes:

- Driver mode support tests have been made more general and less susceptible to
driver quirks involving feature fields and coordinate values (1060).
- OSError is raised on attempts to open a dataset in a Python file object in
"a" mode (see 1027).
- Upgrade attrs, cython, etc to open up Python 3.10 support (1049).

Bug fixes:

- Allow FieldSkipLogFilter to handle exception messages as well as strings
(reported in 1035).
- Clean up VSI files left by MemoryFileBase, resolving 1041.
- Hard-coded "utf-8" collection encoding added in 423 has been removed
(1057).

1.8.20

-------------------

Packaging:

- Wheels include GDAL 3.3.0 and GEOS 3.9.1.

Bug fixes:

- Allow use with click 8 and higher (1015).

1.8.19

-------------------

Packaging:

- Wheels include GDAL 3.2.1 and PROJ 7.2.1.

Bug fixes:

- In fiona/env.py the GDAL data path is now configured using set_gdal_config
instead by setting the GDAL_DATA environment variable (1007).
- Spurious iterator reset warnings have been eliminatged (987).

1.8.18

-------------------

- The precision option of transform has been fixed for the case of
GeometryCollections (971, 972).
- Added missing --co (creation) option to fio-load (390).
- If the certifi package can be imported, its certificate store location will
be passed to GDAL during import of fiona._env unless CURL_CA_BUNDLE is
already set.
- Warn when feature fields named "" are found (955).

1.8.17

-------------------

- To fix issue 952 the fio-cat command no longer cuts feature geometries at
the anti-meridian by default. A --cut-at-antimeridian option has been added
to allow cutting of geometries in a geographic destination coordinate
reference system.

1.8.16

-------------------

- More OGR errors and warnings arising in calls to GDAL C API functions are
surfaced (946).
- A circular import introduced in some cases in 1.8.15 has been fixed (945).

1.8.15

-------------------

- Change shim functions to not return tuples (942) as a solution for the
packaging problem reported in 941.
- Raise a Python exception when VSIFOpenL fails (937).

1.8.14

-------------------

- When creating a new Collection in a MemoryFile with a default (random) name
Fiona will attempt to use a format driver-supported file extension (934).
When initializing a MemoryFile with bytes of data formatted for a vector
driver that requires a certain file name or extension, the user should
continue to pass an appropriate filename and/or extension.
- Read support for FlatGeobuf has been enabled in the drvsupport module.
- The MemoryFile implementation has been improved so that it can support multi-part
S3 downloads (906). This is largely a port of code from rasterio.
- Axis ordering for results of fiona.transform was wrong when CRS were passed
in the "EPSG:dddd" form (919). This has been fixed by (926).
- Allow implicit access to the only dataset in a ZipMemoryFile. The path
argument of ZipMemoryFile.open() is now optional (928).
- Improve support for datetime types: support milliseconds (744), timezones (914)
and improve warnings if type is not supported by driver (572).
- Fix "Failed to commit transaction" TransactionError for FileGDB driver.
- Load GDAL DLL dependencies on Python 3.8+ / Windows with add_dll_directory() (851).
- Do not require optional properties (848).
- Ensure that slice does not overflow available data (884).
- Resolve issue when "ERROR 4: Unable to open EPSG support file gcs.csv." is raised on
importing fiona (897).
- Resolve issue resulting in possible mixed up fields names (affecting only DXF, GPX,
GPSTrackMacker and DGN driver) (916).
- Ensure crs_wkt is passed when writing to MemoryFile (907).

1.8.13.post1

-------------------------

- This release is being made to improve binary wheel compatibility with shapely
1.7.0. There have been no changes to the fiona package code since 1.8.13.

1.8.13

-------------------

- The Python version specs for argparse and ordereddict in 1.8.12 were wrong
and have been corrected (843).

1.8.12

-------------------

- Specify Python versions for argparse, enum34, and ordereddict requirements
(842).

1.8.11

-------------------

- Fix an access violation on Windows (826).

1.8.10

-------------------

Deprecations:

- Use of vfs keyword argument with open or listlayers has been previously noted
as deprecated, but now triggers a deprecation warning.

Bug fixes:

- fiona.open() can now create new datasets using CRS URNs (823).
- listlayers() now accepts file and Path objects, like open() (825).
- Use new set_proj_search_path() function to set the PROJ data search path. For
GDAL versions before 3.0 this sets the PROJ_LIB environment variable. For
GDAL version 3.0 this calls OSRSetPROJSearchPaths(), which overrides
PROJ_LIB.
- Remove old and unused _drivers extension module.
- Check for header.dxf file instead of pcs.csv when looking for installed GDAL
data. The latter is gone with GDAL 3.0 but the former remains (818).

1.8.9.post2

------------------------

- The 1.8.9.post1 release introduced a bug affecting builds of the package from
a source distribution using GDAL 2.x. This bug has been fixed in commit
960568d.

1.8.9.post1

------------------------

- A change has been made to the package setup script so that the shim module
for GDAL 3 is used when building the package from a source distribution.
There are no other changes to the package.

1.8.9

------------------

- A shim module and support for GDAL 3.0 has been added. The package can now be
built and used with GDAL 3.0 and PROJ 6.1 or 6.2. Note that the 1.8.9 wheels
we will upload to PyPI will contain GDAL 2.4.2 and PROJ 4.9.3 as in the 1.8.8
wheels.

1.8.8

------------------

- The schema of geopackage files with a geometry type code of 3000 could not be
reported using Fiona 1.8.7. This bug is fixed.

1.8.7

------------------

Bug fixes:

- Regression in handling of polygons with M values noted under version 1.8.5
below was in fact not fixed then (see new report 789), but is fixed in
version 1.8.7.
- Windows filenames containing "!" are now parsed correctly, fixing issue 742.

Upcoming changes:

- In version 1.9.0, the objects yielded when a Collection is iterated will be
mutable mappings but will no longer be instances of Python's dict. Version
1.9 is intended to be backwards compatible with 1.8 except where user code
tests `isinstance(feature, dict)`. In version 2.0 the new Feature, Geometry,
and Properties classes will become immutable mappings. See
https://github.com/Toblerity/fiona-rfc/blob/main/rfc/0001-fiona-2-0-changes.md
for more discussion of the upcoming changes for version 2.0.
Links

@pyup-bot pyup-bot mentioned this pull request Sep 16, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant