Uh oh!
There was an error while loading. Please reload this page.
Update universal-pathlib to >=0.3.8 and use upath.extensions.ProxyUPath - #60519
Conversation
Uh oh!
There was an error while loading. Please reload this page.
kaxil
commented
Jan 15, 2026
779bf73 to
10dbeb3Comparepotiuk
commented
Jan 29, 2026
LGTM. Rebased and run it for all versions/full tests to see if all tests still pass. |
Uh oh!
There was an error while loading. Please reload this page.
ap--
commented
Jan 29, 2026
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
potiuk
commented
Feb 3, 2026
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