Fokko opened a new issue, #3318:
URL: https://github.com/apache/iceberg-python/issues/3318

   ### Feature Request / Improvement
   
   It seems that the updates of Ray fail because we set `None` to the working 
directory in the test fixtures: 
https://github.com/apache/iceberg-python/pull/3313
   
   ```
   ==================================== ERRORS 
====================================
   _____________ ERROR at setup of test_ray_nan[session_catalog_hive] 
_____________
   
       @pytest.fixture(scope="session")
       def ray_session() -> Generator[Any, None, None]:
           """Fixture to manage Ray initialization and shutdown for tests."""
           import ray
       
   >       ray.init(
               ignore_reinit_error=True,
               runtime_env={"working_dir": None},  # Prevent Ray from 
serializing the working directory to workers
           )
   
   tests/conftest.py:3037: 
   _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
_ _ 
   .venv/lib/python3.12/site-packages/ray/_private/client_mode_hook.py:107: in 
wrapper
       return func(*args, **kwargs)
              ^^^^^^^^^^^^^^^^^^^^^
   .venv/lib/python3.12/site-packages/ray/_private/worker.py:1798: in init
       runtime_env = _maybe_modify_runtime_env(runtime_env, _skip_env_hook)
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   .venv/lib/python3.12/site-packages/ray/_private/worker.py:1396: in 
_maybe_modify_runtime_env
       return hook(runtime_env)
              ^^^^^^^^^^^^^^^^^
   
.venv/lib/python3.12/site-packages/ray/_private/runtime_env/uv_runtime_env_hook.py:411:
 in hook
       if _is_path(working_dir):
          ^^^^^^^^^^^^^^^^^^^^^
   _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
_ _ 
   
   path_or_uri = None
   
       def _is_path(path_or_uri: str) -> bool:
           """Returns True if uri_or_path is a path and False otherwise.
       
           IMPORTANT: This is a duplicate of ray._private.path_utils.is_path().
       
           Why we can't import from path_utils:
           - This hook runs via `uv run --no-project uv_runtime_env_hook.py` in 
test scenarios
           - UV creates a minimal environment without dependencies installed yet
           - Importing from ray._private.path_utils triggers the full Ray 
import chain:
             ray._private.path_utils → ray/__init__.py → ray._private.worker →
             ray.widgets → ray.widgets.util → packaging.version
           - The 'packaging' module is not available in the minimal UV 
environment,
             causing: ModuleNotFoundError: No module named 'packaging.version'
       
           This duplicate implementation uses only stdlib (pathlib, 
urllib.parse)
           to avoid the dependency issue. If you modify this function, ensure 
you
           also update ray._private.path_utils.is_path() to keep them in sync.
           """
           if not isinstance(path_or_uri, str):
   >           raise TypeError(f"path_or_uri must be a string, got 
{type(path_or_uri)}.")
   E           TypeError: path_or_uri must be a string, got <class 'NoneType'>.
   ```
   
   I think it would be better to set it to a temporary directory, like `/tmp/` 
on unix based filesystems. We can leverage `tmp_path` here: 
https://docs.pytest.org/en/stable/how-to/tmp_path.html


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to