Author: Armin Rigo <[email protected]>
Branch:
Changeset: r85738:9dc2375a6abf
Date: 2016-07-17 13:46 +0200
http://bitbucket.org/pypy/pypy/changeset/9dc2375a6abf/
Log: Expose the name of CDLL objects
diff --git a/pypy/module/_rawffi/interp_rawffi.py
b/pypy/module/_rawffi/interp_rawffi.py
--- a/pypy/module/_rawffi/interp_rawffi.py
+++ b/pypy/module/_rawffi/interp_rawffi.py
@@ -2,6 +2,7 @@
from pypy.interpreter.baseobjspace import W_Root
from pypy.interpreter.error import OperationError, oefmt, wrap_oserror
from pypy.interpreter.gateway import interp2app, unwrap_spec
+from pypy.interpreter.typedef import interp_attrproperty
from pypy.interpreter.typedef import TypeDef, GetSetProperty
from rpython.rlib.clibffi import *
@@ -237,6 +238,7 @@
__new__ = interp2app(descr_new_cdll),
ptr = interp2app(W_CDLL.ptr),
getaddressindll = interp2app(W_CDLL.getaddressindll),
+ name = interp_attrproperty('name', W_CDLL),
__doc__ = """ C Dynamically loaded library
use CDLL(libname) to create a handle to a C library (the argument is processed
the same way as dlopen processes it). On such a library you can call:
diff --git a/pypy/module/_rawffi/test/test__rawffi.py
b/pypy/module/_rawffi/test/test__rawffi.py
--- a/pypy/module/_rawffi/test/test__rawffi.py
+++ b/pypy/module/_rawffi/test/test__rawffi.py
@@ -1223,6 +1223,11 @@
assert z == 43
arg.free()
+ def test_cdll_name(self):
+ import _rawffi
+ lib = _rawffi.CDLL(self.lib_name)
+ assert lib.name == self.lib_name
+
class AppTestAutoFree:
spaceconfig = dict(usemodules=['_rawffi', 'struct'])
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit