From 25753b292880176e51e057ce734bbe146c017941 Mon Sep 17 00:00:00 2001 From: Lyndon White <oxinabox@ucc.asn.au> Date: Thu, 24 May 2018 17:30:10 +0800 Subject: [PATCH] =Add ability to import names that are already used in Base --- src/generate_ops.jl | 4 +++- test/ops.jl | 8 ++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/generate_ops.jl b/src/generate_ops.jl index eb123ff9..d71df5c0 100644 --- a/src/generate_ops.jl +++ b/src/generate_ops.jl @@ -328,11 +328,13 @@ Returns a reference to a Julia function corresponding to the operation. function import_op(name) jl_name = opname_to_jlname(name) mod = TensorFlow.Ops - if !isdefined(mod, jl_name) + if jl_name ∉ names(mod, true) ops = Dict(get_all_op_list()) op = ops[name] op_desc = to_function(op) eval(Ops, op_desc.expr) + else + warn("Import Skipped: tried to import op $name as $(mod).$(jl_name), but that already exists.") end return getfield(Ops, jl_name) diff --git a/test/ops.jl b/test/ops.jl index be36590a..2a2dfd59 100644 --- a/test/ops.jl +++ b/test/ops.jl @@ -8,3 +8,11 @@ using Base.Test as_string = import_op("AsString") @test run(session, as_string(2)) == "2" end + + + +import_op("Atan2") #Must be outside testset as per https://github.com/JuliaLang/julia/issues/27244 +@testset "Importing a name that is used by Base" begin + session = Session(Graph()) + @test run(session, Ops.atan2(Tensor(1.0), Tensor(1.0))) > 0 +end