9464798068
Path.rename() uses os.rename() internally. Per the Python docs: The operation may fail on some Unix flavors if src and dst are on different filesystems. Since 'src_adjusted' is in a temporary directory, on my flavor of Unix, that's in /tmp, which is indeed on a different filesystem than 'dst', a destination in the doc build directory on my root filesystem. This is causing the following error when I build the docs: Handler <function sync_contents at 0x7f9b8fca9c10> for event 'builder-inited' threw an exception (exception: [Errno 18] Invalid cross-device link: '/tmp/tmpfscfo20o/index.rst' -> '/home/mbolivar/zp/zephyr/doc/_build/src/reference/drivers/index.rst') Fix this by using shutil.move() instead of Path.rename(). The shutil function handles cross-filesystem moves correctly. It did not take a path-like object for both its src and dst arguments until Python 3.9, though, so we need to convert to strings for portability on earlier but still supported versions. Signed-off-by: Martí Bolívar <marti.bolivar@nordicsemi.no> |
||
---|---|---|
.. | ||
only | ||
zephyr | ||
local_util.py |