Author: Ronan Lamy <ronan.l...@gmail.com>
Branch: follow_symlinks
Changeset: r83686:33cd62260a0c
Date: 2016-04-15 16:25 +0100
http://bitbucket.org/pypy/pypy/changeset/33cd62260a0c/

Log:    Allow fd in os.pathconf()

diff --git a/pypy/module/posix/interp_posix.py 
b/pypy/module/posix/interp_posix.py
--- a/pypy/module/posix/interp_posix.py
+++ b/pypy/module/posix/interp_posix.py
@@ -1853,13 +1853,19 @@
         raise wrap_oserror(space, e)
     return space.wrap(res)
 
-@unwrap_spec(path='str0')
+@unwrap_spec(path=path_or_fd(allow_fd=hasattr(os, 'fpathconf')))
 def pathconf(space, path, w_name):
     num = confname_w(space, w_name, os.pathconf_names)
-    try:
-        res = os.pathconf(path, num)
-    except OSError, e:
-        raise wrap_oserror(space, e)
+    if path.as_fd != -1:
+        try:
+            res = os.fpathconf(path.as_fd, num)
+        except OSError, e:
+            raise wrap_oserror(space, e)
+    else:
+        try:
+            res = os.pathconf(path.as_bytes, num)
+        except OSError, e:
+            raise wrap_oserror2(space, e, path.w_path)
     return space.wrap(res)
 
 def confstr(space, w_name):
_______________________________________________
pypy-commit mailing list
pypy-commit@python.org
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to