Update universal-pathlib to >=0.3.8 and use upath.extensions.ProxyUPath#60519
Update universal-pathlib to >=0.3.8 and use upath.extensions.ProxyUPath#60519potiuk merged 9 commits intoapache:mainfrom
>=0.3.8 and use upath.extensions.ProxyUPath#60519Conversation
779bf73 to
10dbeb3
Compare
|
LGTM. Rebased and run it for all versions/full tests to see if all tests still pass. |
|
Thanks @potiuk! Feel free to tag me in case errors regarding ObjectStoragePath get reported. And I'm still interested in finding a way of running the airflow test suite with a new universal-pathlib version before I make a new release. Cheers, |
…Path (apache#60519) * pyproject.toml: update universal-pathlib version boundaries * task_sdk.io.path: fix test regarding relative_to * tests: adjust the lazy_load test to reflect caching is done via STORE_CACHE * tests: update tests to register fake remote filesystem in fsspec * airflow.sdk.io.path: implement ObjectStoragePath via ProxyUPath * airflow.sdk.io.path: provide a basic implementation for copy_into and move_into * airflow.sdk.io.path: fix __str__ method * airflow.sdk.io.path: docstring fixes * update spelling_wordlist.txt
…Path (apache#60519) * pyproject.toml: update universal-pathlib version boundaries * task_sdk.io.path: fix test regarding relative_to * tests: adjust the lazy_load test to reflect caching is done via STORE_CACHE * tests: update tests to register fake remote filesystem in fsspec * airflow.sdk.io.path: implement ObjectStoragePath via ProxyUPath * airflow.sdk.io.path: provide a basic implementation for copy_into and move_into * airflow.sdk.io.path: fix __str__ method * airflow.sdk.io.path: docstring fixes * update spelling_wordlist.txt
…Path (apache#60519) * pyproject.toml: update universal-pathlib version boundaries * task_sdk.io.path: fix test regarding relative_to * tests: adjust the lazy_load test to reflect caching is done via STORE_CACHE * tests: update tests to register fake remote filesystem in fsspec * airflow.sdk.io.path: implement ObjectStoragePath via ProxyUPath * airflow.sdk.io.path: provide a basic implementation for copy_into and move_into * airflow.sdk.io.path: fix __str__ method * airflow.sdk.io.path: docstring fixes * update spelling_wordlist.txt
Only committers can be added :(
This should be rather easy - make an rc release and make a PR to airflow with |
…Path (apache#60519) * pyproject.toml: update universal-pathlib version boundaries * task_sdk.io.path: fix test regarding relative_to * tests: adjust the lazy_load test to reflect caching is done via STORE_CACHE * tests: update tests to register fake remote filesystem in fsspec * airflow.sdk.io.path: implement ObjectStoragePath via ProxyUPath * airflow.sdk.io.path: provide a basic implementation for copy_into and move_into * airflow.sdk.io.path: fix __str__ method * airflow.sdk.io.path: docstring fixes * update spelling_wordlist.txt
…Path (apache#60519) * pyproject.toml: update universal-pathlib version boundaries * task_sdk.io.path: fix test regarding relative_to * tests: adjust the lazy_load test to reflect caching is done via STORE_CACHE * tests: update tests to register fake remote filesystem in fsspec * airflow.sdk.io.path: implement ObjectStoragePath via ProxyUPath * airflow.sdk.io.path: provide a basic implementation for copy_into and move_into * airflow.sdk.io.path: fix __str__ method * airflow.sdk.io.path: docstring fixes * update spelling_wordlist.txt
…Path (apache#60519) * pyproject.toml: update universal-pathlib version boundaries * task_sdk.io.path: fix test regarding relative_to * tests: adjust the lazy_load test to reflect caching is done via STORE_CACHE * tests: update tests to register fake remote filesystem in fsspec * airflow.sdk.io.path: implement ObjectStoragePath via ProxyUPath * airflow.sdk.io.path: provide a basic implementation for copy_into and move_into * airflow.sdk.io.path: fix __str__ method * airflow.sdk.io.path: docstring fixes * update spelling_wordlist.txt
…Path (apache#60519) * pyproject.toml: update universal-pathlib version boundaries * task_sdk.io.path: fix test regarding relative_to * tests: adjust the lazy_load test to reflect caching is done via STORE_CACHE * tests: update tests to register fake remote filesystem in fsspec * airflow.sdk.io.path: implement ObjectStoragePath via ProxyUPath * airflow.sdk.io.path: provide a basic implementation for copy_into and move_into * airflow.sdk.io.path: fix __str__ method * airflow.sdk.io.path: docstring fixes * update spelling_wordlist.txt
Closes #56369
This PR updates airflow's
ObjectStoragePathclass to be compatible with universal-pathlib>=0.3.8. It now usesupath.extensions.ProxyUPathas a base class, to avoid using the now deprecated_protocol_dispatch = Falsemechanism for class API extensions.Also
pathlib.Pathadded.copy,.copy_into,.move, and.move_intomethods in 3.14, which means the ObjectStoragePath behavior for these is now different from standard pathlib, which defaults to recursive copies for directories and returns the target path.Cheers,☺️
Andreas