In _err.pyx
cython
if err_class == CE_Warning:
with gil:
warnings.warn(clean_error_message(err_msg), RuntimeWarning)
return
warnings surfaced by GDAL are bubbled up through the python warning system. Ideally this should probably get a stacklevel argument back to the read file call rather than showing a trace to pyogrio internals. I'm not sure why there isn't a stacklevel currently, perhaps this is a case where it's not easy to deduce what hte stack level should be as it depends on how it is reached.