From 8b43bbe5e7d6220c507286736af5136348cad247 Mon Sep 17 00:00:00 2001 From: Anurag Bhat <90216905+faze-geek@users.noreply.github.com> Date: Mon, 18 Nov 2024 16:44:02 +0530 Subject: [PATCH 1/8] Add test for file command --- test/test_interpreter.cpp | 61 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 60 insertions(+), 1 deletion(-) diff --git a/test/test_interpreter.cpp b/test/test_interpreter.cpp index 0b785ec4..a4fe3bb1 100644 --- a/test/test_interpreter.cpp +++ b/test/test_interpreter.cpp @@ -1026,4 +1026,63 @@ TEST_SUITE("xassist"){ std::remove("ollama_model.txt"); } -} \ No newline at end of file +} + + +TEST_SUITE("file") { + TEST_CASE("Write") { + xcpp::writefile wf; + std::string line = "%%file testfile.txt"; + std::string cell = "Hello, World!"; + + wf(line, cell); + + std::ifstream infile("testfile.txt"); + std::string content; + std::getline(infile, content); + + REQUIRE(content == "Hello, World!"); + infile.close(); + } + TEST_CASE("Overwrite") { + xcpp::writefile wf; + std::string line = "%%file testfile.txt"; + std::string cell = "Hello, World!"; + + wf(line, cell); + + std::string overwrite_cell = "Overwrite test"; + + wf(line, overwrite_cell); + + std::ifstream infile("testfile.txt"); + std::string content; + std::getline(infile, content); + + REQUIRE(content == overwrite_cell); + infile.close(); + } + TEST_CASE("Append") { + xcpp::writefile wf; + std::string line = "%%file testfile.txt"; + std::string cell = "Hello, World!"; + + wf(line, cell); + + std::string append_line = "%%file -a testfile.txt"; + std::string append_cell = "Hello, again!"; + + wf(append_line, append_cell); + + std::ifstream infile("testfile.txt"); + std::vector lines; + std::string content; + while(std::getline(infile, content)) { + lines.push_back(content); + } + + REQUIRE(lines[0] == "Hello, World!"); + REQUIRE(lines[1] == "Hello, again!"); + infile.close(); + } +} From 36ca7c47ca1e658c5a668023cb2503f1a2eca6ac Mon Sep 17 00:00:00 2001 From: Anurag Bhat <90216905+faze-geek@users.noreply.github.com> Date: Mon, 18 Nov 2024 16:45:25 +0530 Subject: [PATCH 2/8] Uncomment writefile to enable file xmagic --- src/xinterpreter.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/xinterpreter.cpp b/src/xinterpreter.cpp index 2205ff5c..844d99d9 100644 --- a/src/xinterpreter.cpp +++ b/src/xinterpreter.cpp @@ -372,11 +372,11 @@ __get_cxx_version () void interpreter::init_magic() { // preamble_manager["magics"].get_cast().register_magic("executable", executable(m_interpreter)); - // preamble_manager["magics"].get_cast().register_magic("file", writefile()); // preamble_manager["magics"].get_cast().register_magic("timeit", timeit(&m_interpreter)); // preamble_manager["magics"].get_cast().register_magic("python", pythonexec()); #ifndef EMSCRIPTEN preamble_manager["magics"].get_cast().register_magic("xassist", xassist()); + preamble_manager["magics"].get_cast().register_magic("file", writefile()); #endif } } From 62fe85844a5bb6affaf5156023fe30f22b919797 Mon Sep 17 00:00:00 2001 From: Anurag Bhat <90216905+faze-geek@users.noreply.github.com> Date: Mon, 18 Nov 2024 18:28:51 +0530 Subject: [PATCH 3/8] Move oss header & source to the not emscripten case --- CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 0f958cc6..f26944a8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -169,14 +169,12 @@ set(XEUS_CPP_HEADERS #src/xinspect.hpp #src/xsystem.hpp #src/xparser.hpp - #src/xmagics/os.hpp ) set(XEUS_CPP_SRC src/xholder.cpp src/xinput.cpp src/xinterpreter.cpp - src/xmagics/os.cpp src/xoptions.cpp src/xparser.cpp src/xutils.cpp @@ -186,6 +184,8 @@ if(NOT EMSCRIPTEN) list(APPEND XEUS_CPP_SRC src/xmagics/xassist.hpp src/xmagics/xassist.cpp + src/xmagics/os.hpp + src/xmagics/os.cpp ) endif() From 8507b6d78f154799791d0848d69433b00f91aa43 Mon Sep 17 00:00:00 2001 From: Anurag Bhat <90216905+faze-geek@users.noreply.github.com> Date: Mon, 18 Nov 2024 18:29:37 +0530 Subject: [PATCH 4/8] Update xinterpreter.cpp --- src/xinterpreter.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/xinterpreter.cpp b/src/xinterpreter.cpp index 844d99d9..b7bf2534 100644 --- a/src/xinterpreter.cpp +++ b/src/xinterpreter.cpp @@ -19,6 +19,7 @@ #include "xinspect.hpp" #include "xmagics/os.hpp" #ifndef EMSCRIPTEN +#include "xmagics/os.hpp" #include "xmagics/xassist.hpp" #endif #include "xparser.hpp" From 766446b9570a16e6943cb4a99b2e0431af2e38fc Mon Sep 17 00:00:00 2001 From: Anutosh Bhat Date: Mon, 18 Nov 2024 18:37:30 +0530 Subject: [PATCH 5/8] Update xinterpreter.cpp --- src/xinterpreter.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/src/xinterpreter.cpp b/src/xinterpreter.cpp index b7bf2534..a0b6f699 100644 --- a/src/xinterpreter.cpp +++ b/src/xinterpreter.cpp @@ -17,7 +17,6 @@ #include "xinput.hpp" #include "xinspect.hpp" -#include "xmagics/os.hpp" #ifndef EMSCRIPTEN #include "xmagics/os.hpp" #include "xmagics/xassist.hpp" From e83ade28c4c6b4bcf49458b8b29c7a6a3f9106c1 Mon Sep 17 00:00:00 2001 From: Anutosh Bhat Date: Tue, 19 Nov 2024 16:37:58 +0530 Subject: [PATCH 6/8] Update CMakeLists.txt --- CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index f26944a8..811575eb 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -182,9 +182,9 @@ set(XEUS_CPP_SRC if(NOT EMSCRIPTEN) list(APPEND XEUS_CPP_SRC - src/xmagics/xassist.hpp + #src/xmagics/xassist.hpp src/xmagics/xassist.cpp - src/xmagics/os.hpp + #src/xmagics/os.hpp src/xmagics/os.cpp ) endif() From ecc7341b6f5c8b7d00c5a13924f033c7e79f0a0d Mon Sep 17 00:00:00 2001 From: Anutosh Bhat Date: Tue, 19 Nov 2024 20:30:52 +0530 Subject: [PATCH 7/8] Update CMakeLists.txt --- CMakeLists.txt | 2 -- 1 file changed, 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 811575eb..be5d3928 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -182,9 +182,7 @@ set(XEUS_CPP_SRC if(NOT EMSCRIPTEN) list(APPEND XEUS_CPP_SRC - #src/xmagics/xassist.hpp src/xmagics/xassist.cpp - #src/xmagics/os.hpp src/xmagics/os.cpp ) endif() From 41b13d8ea1e5e00a730b0361cd82525d1435296d Mon Sep 17 00:00:00 2001 From: Anurag Bhat <90216905+faze-geek@users.noreply.github.com> Date: Thu, 21 Nov 2024 16:41:00 +0530 Subject: [PATCH 8/8] Changes suggested by clang-format --- src/xinterpreter.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/xinterpreter.cpp b/src/xinterpreter.cpp index a0b6f699..f099b688 100644 --- a/src/xinterpreter.cpp +++ b/src/xinterpreter.cpp @@ -371,8 +371,10 @@ __get_cxx_version () void interpreter::init_magic() { - // preamble_manager["magics"].get_cast().register_magic("executable", executable(m_interpreter)); - // preamble_manager["magics"].get_cast().register_magic("timeit", timeit(&m_interpreter)); + // preamble_manager["magics"].get_cast().register_magic("executable", + // executable(m_interpreter)); + // preamble_manager["magics"].get_cast().register_magic("timeit", + // timeit(&m_interpreter)); // preamble_manager["magics"].get_cast().register_magic("python", pythonexec()); #ifndef EMSCRIPTEN preamble_manager["magics"].get_cast().register_magic("xassist", xassist());