aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorbnewbold <bnewbold@robocracy.org>2016-04-04 18:33:04 -0400
committerbnewbold <bnewbold@robocracy.org>2016-04-04 18:33:04 -0400
commit37d2c0d3749461ef86b0886f27128a88ddcc2f86 (patch)
tree245237f7f5b564ae26828313c70745474eeb4084
parent3a3feee057933c691e7184ef82c62ec705d4ce78 (diff)
downloadPyX.jl-37d2c0d3749461ef86b0886f27128a88ddcc2f86.tar.gz
PyX.jl-37d2c0d3749461ef86b0886f27128a88ddcc2f86.zip
Revert "pyrecwrap: skip some wrapping as an optimization"
Wasn't worth the complexity; hard to get unittest to work because results (eg, for "path") were being cached.
-rw-r--r--src/pyrecwrap.jl8
-rw-r--r--test/test_pyrecwrap.jl2
2 files changed, 3 insertions, 7 deletions
diff --git a/src/pyrecwrap.jl b/src/pyrecwrap.jl
index d2c2b9f..9cfc5e4 100644
--- a/src/pyrecwrap.jl
+++ b/src/pyrecwrap.jl
@@ -11,11 +11,8 @@
# PyCall.
_pyrecwrap_cache = Dict{PyObject,Module}()
-_pyx_module_skiplist = Set{ASCIIString}(["math", "os", "sys", "ast", "bytearray", "random", "errno",
- "shutil", "zlib", "copy", "base64", "array", "importlib", "glob", "email", "xml",
- "binascii", "encodings", "io", "tarfile", "threading", "itertools", "logging", "collections"])
-function pyrecwrap(o::PyObject, mname::Symbol=:__anon__; skiplist=_pyx_module_skiplist)
+function pyrecwrap(o::PyObject, mname::Symbol=:__anon__)
members = convert(Vector{Tuple{AbstractString,PyObject}},
pycall(PyCall.inspect["getmembers"], PyObject, o))
if PyCall.pyversion >= v"3"
@@ -28,7 +25,6 @@ function pyrecwrap(o::PyObject, mname::Symbol=:__anon__; skiplist=_pyx_module_sk
filter!(m -> !(m[1] == PyCall.inspect), members)
end
filter!(m -> !(m[1] in PyCall.reserved), members)
- filter!(m -> !(m[1] in skiplist), members)
m = Module(mname, false)
# Preload module cache with this (so far empty) module
_pyrecwrap_cache[o] = m
@@ -41,7 +37,7 @@ function pyrecwrap(o::PyObject, mname::Symbol=:__anon__; skiplist=_pyx_module_sk
end
# Before recursing, check if we've seen this python module before
if !haskey(_pyrecwrap_cache, mo)
- _pyrecwrap_cache[mo] = pyrecwrap(mo, skiplist=skiplist)
+ _pyrecwrap_cache[mo] = pyrecwrap(mo)
end
mm = _pyrecwrap_cache[mo]
push!(consts, Expr(:const, Expr(:(=), symbol(ms), mm)))
diff --git a/test/test_pyrecwrap.jl b/test/test_pyrecwrap.jl
index 6182779..cef3f08 100644
--- a/test/test_pyrecwrap.jl
+++ b/test/test_pyrecwrap.jl
@@ -1,4 +1,4 @@
-os_test = PyX.pyrecwrap(pyimport("os"), skiplist=["asdf"])
+os_test = PyX.pyrecwrap(pyimport("os"))
@test os_test.path.genericpath.os.path.genericpath.os.path.genericpath != nothing