* Failing test with a .msk sidecar
* POC of sidecar support for Python openers
Towards resolving #3027
* Register opener for the parent directory/folder of the given URL
Handling the error cases properly gets all our tests passing again.
* Add opener adapter classes and a factory
Still a lot of redundant code here, needs refactoring.
* Remove unused import
* Don't raise exceptions when files aren't found
Just return 1 or NULL
* Add two tests of using fsspec filesystem objs and fix a bug.
* Allow testing with tiledb.VFS
* More tests of fsspec http filesystem and .msk sidecar
* Module clean up
* Add mtime to stats, docstrings to abstract class
* Expand documentation
* Reassign name_list in loop
* Return -1 on stat failure, remove useless except clauses
* Don't set an error when OpenFile doesn't resolve
* Add eof callback
* Rough draft of a new VSI plugin
Resolves#2888 maybe
* Getting closer
* Working implementation!
The missing piece was keeping a reference to opened files.
* Add more tests
* Add more documentation about opener
* Improvements based on feedback from @rouault
* Update docstrings
* Update the VSI topic in docs
* Don't accept fsspec OpenFile instances as opener
Instead, we'll make a way for rasterio.open to accept them as the
"fp" positional argument
* Store contexts of vsipyopener file objects
Eliminates the fsspec OpenFile special case
* Strip file mode for the zipfile case
* Update rasterio/_vsiopener.pyx
Co-authored-by: Alan D. Snow <alansnow21@gmail.com>
---------
Co-authored-by: Sean Gillies <seangillies@Seans-MacBook-Air.local>
Co-authored-by: Alan D. Snow <alansnow21@gmail.com>
* Use GDAL_PAM_ENABLED=False in combo with FilePath
Resolves#2826
* Turn down logging level in Python File VSI plugin callback
* Rename test, add missing details to FilePath docstring
* Note fix for 2826
* Initial proof of concept for Python file-like VSI handler
* Add GDAL VSI Plugin definitions to gdal.pxi [skip ci]
* Add proof of concept pyvsi with GDAL Plugin API [skip ci]
* Add global filesystem state to PyVSI plugin
* Add close function handler to pyvsi plugin
* Move cython language definition to cython module
* Switch _pyvsi extension to use cpp compile options
* Add pyvsi_ prefix to GDAL callback functions to avoid collisions
* Add basic information to _pyvsi module docstring
* Remove ability to open PyVSIFile as writable
* Remove unnecessary code from PythonVSIFile
* Match new code style used in MemoryFile
* Fix PythonVSIFile argument passing to __init__
* Update memoryfile tests to use pytest fixtures instead of hardcoded paths
* Add read method to PythonVSIFile
* Add PythonVSIFile tests
* Fix xfail reason on pyvsi test
* Add concurrent pyvsi test
* Add flexible PythonVSIFile plugin importing for GDAL<3.0
* Remove legacy 'ext' keyword argument for PythonVSIFile interface
* Rename "PyVSI" to "FilePath" and remove unnecessary methods
* Rename other instances of pyvsi to filepath
* Rename other instances of pyvsi to filepath