From 3ddb1375eb5898d1f494e99ee5b2b86b804c91d9 Mon Sep 17 00:00:00 2001 From: Shuhei Kadowaki Date: Tue, 2 Jun 2020 19:25:34 +0900 Subject: [PATCH] yet another clean up: - remove weird dispatches - rm unused `result_no` field --- src/cache.jl | 1 - src/run.jl | 34 ++++++++++++---------------------- src/types.jl | 6 ------ 3 files changed, 12 insertions(+), 29 deletions(-) diff --git a/src/cache.jl b/src/cache.jl index 860552cd..3a4d1a2e 100644 --- a/src/cache.jl +++ b/src/cache.jl @@ -29,7 +29,6 @@ function restore_chunk(chunk::CodeChunk, cached) new_chunks = [] for c in chunks newc = CodeChunk(c.content, c.number, c.start_line, c.optionstring, c.options) - newc.result_no = c.result_no newc.figures = c.figures newc.result = c.result newc.output = c.output diff --git a/src/run.jl b/src/run.jl index 27ff3fe5..e24bbd50 100644 --- a/src/run.jl +++ b/src/run.jl @@ -182,28 +182,23 @@ function reset_report(report::Report) end function run_code(chunk::CodeChunk, report::Report, SandBox::Module) - expressions = parse_input(chunk.content) - N = length(expressions) - # @show expressions - result_no = 1 + exs = parse_input(chunk.content) + n = length(exs) results = ChunkOutput[] - - for (str_expr, expr) in expressions + for (i, (str_expr, expr)) in enumerate(exs) reset_report(report) - lastline = (result_no == N) - (obj, out) = capture_output( + obj, out = capture_output( expr, SandBox, chunk.options[:term], chunk.options[:display], - lastline, + i == n, report.throw_errors, ) figures = report.figures # Captured figures result = ChunkOutput(str_expr, out, report.cur_result, report.rich_output, figures) report.rich_output = "" push!(results, result) - result_no += 1 end return results end @@ -271,12 +266,12 @@ function eval_chunk(chunk::CodeChunk, report::Report, SandBox::Module) chunk = Base.invokelatest(hook, chunk) end - if chunk.options[:term] - chunks = collect_results(chunk, TermResult()) + chunks = if chunk.options[:term] + collect_term_results(chunk) elseif chunk.options[:hold] - chunks = collect_results(chunk, CollectResult()) + collect_hold_results(chunk) else - chunks = collect_results(chunk, ScriptResult()) + collect_results(chunk) end # else @@ -366,9 +361,8 @@ function set_rc_params(doc::WeaveDoc, fig_path, fig_ext) doc.chunk_defaults[:fig_path] = fig_path end -function collect_results(chunk::CodeChunk, fmt::ScriptResult) +function collect_results(chunk::CodeChunk) content = "" - result_no = 1 result_chunks = CodeChunk[] for r in chunk.result # Check if there is any output from chunk @@ -384,8 +378,6 @@ function collect_results(chunk::CodeChunk, fmt::ScriptResult) copy(chunk.options), ) content = "" - rchunk.result_no = result_no - result_no *= 1 rchunk.figures = r.figures rchunk.output = r.stdout * r.displayed rchunk.rich_output = r.rich_output @@ -407,10 +399,9 @@ function collect_results(chunk::CodeChunk, fmt::ScriptResult) return result_chunks end -function collect_results(chunk::CodeChunk, fmt::TermResult) +function collect_term_results(chunk::CodeChunk) output = "" prompt = chunk.options[:prompt] - result_no = 1 result_chunks = CodeChunk[] for r in chunk.result output *= prompt * r.code @@ -444,8 +435,7 @@ function collect_results(chunk::CodeChunk, fmt::TermResult) return result_chunks end -function collect_results(chunk::CodeChunk, fmt::CollectResult) - result_no = 1 +function collect_hold_results(chunk::CodeChunk) for r in chunk.result chunk.output *= r.stdout chunk.rich_output *= r.rich_output diff --git a/src/types.jl b/src/types.jl index 2775cef6..7c2c7ede 100644 --- a/src/types.jl +++ b/src/types.jl @@ -28,7 +28,6 @@ end mutable struct CodeChunk <: WeaveChunk content::String number::Int - result_no::Int start_line::Int optionstring::String options::Dict{Symbol,Any} @@ -42,7 +41,6 @@ function CodeChunk(content, number, start_line, optionstring, options) return CodeChunk( string(rstrip(content), '\n'), # normalize end of chunk) number, - 0, start_line, optionstring, options, @@ -73,7 +71,3 @@ mutable struct InlineCode <: Inline figures::Vector{String} end InlineCode(content, number, ctype) = InlineCode(content, number, ctype, "", "", String[]) - -struct TermResult end -struct ScriptResult end -struct CollectResult end