From 2e90d53335e20fcb4164b143cee82be43a93e1f0 Mon Sep 17 00:00:00 2001 From: Pablo Emilio Escobar Gaviria Date: Wed, 20 Jan 2021 01:49:12 +1000 Subject: [PATCH 1/2] Import stuff directly from mathics-scanner --- mathicsscript/__main__.py | 7 ++++--- mathicsscript/format.py | 2 +- mathicsscript/termshell.py | 13 +++++++++---- setup.py | 25 ++++++++++++++++--------- 4 files changed, 30 insertions(+), 17 deletions(-) diff --git a/mathicsscript/__main__.py b/mathicsscript/__main__.py index 42b35f6..adf3891 100755 --- a/mathicsscript/__main__.py +++ b/mathicsscript/__main__.py @@ -12,7 +12,6 @@ from mathicsscript.format import format_output -from mathics import replace_wl_with_unicode from mathics.core.parser import FileLineFeeder from mathics.core.definitions import Definitions from mathics.core.expression import Symbol, SymbolTrue, SymbolFalse @@ -21,6 +20,8 @@ from mathics import version_string, license_string from mathics import settings +from mathics_scanner.characters import replace_wl_with_plain_text + from pygments import highlight from pygments.lexers import MathematicaLexer @@ -327,7 +328,7 @@ def main( current_pos = GNU_readline.get_current_history_length() for pos in range(last_pos, current_pos - 1): GNU_readline.remove_history_item(pos) - wl_input = replace_wl_with_unicode(source_code.rstrip()) + wl_input = replace_wl_with_plain_text(source_code.rstrip(), use_unicode=unicode) GNU_readline.add_history(wl_input) if query is None: @@ -344,7 +345,7 @@ def main( query, timeout=settings.TIMEOUT, format="unformatted" ) if result is not None: - shell.print_result(result, output_style) + shell.print_result(result, output_style, use_unicode=unicode) except ShellEscapeException as e: source_code = e.line diff --git a/mathicsscript/format.py b/mathicsscript/format.py index 65281e3..53f64cc 100644 --- a/mathicsscript/format.py +++ b/mathicsscript/format.py @@ -12,7 +12,7 @@ def format_output(obj, expr, format=None): format = obj.format if isinstance(format, dict): - return dict((k, obj.format_output(expr, f)) for k, f in format.items()) + return {k: obj.format_output(expr, f) for k, f in format.items()} from mathics.core.expression import Expression, BoxError diff --git a/mathicsscript/termshell.py b/mathicsscript/termshell.py index ce8f257..f1cab14 100644 --- a/mathicsscript/termshell.py +++ b/mathicsscript/termshell.py @@ -9,11 +9,14 @@ import sys import re from columnize import columnize -from mathics import replace_unicode_with_wl from mathics.core.expression import Expression, String, Symbol from mathics.core.expression import strip_context, from_python from mathics.core.rules import Rule -from mathics.core.characters import named_characters +from mathics_scanner.characters import ( + named_characters, + replace_unicode_with_wl, + replace_wl_with_plain_text, +) from pygments import highlight, lex from mathicsscript.mmalexer import MathematicaLexer @@ -253,7 +256,7 @@ def read_line(self, prompt): raise ShellEscapeException(line) return replace_unicode_with_wl(line) - def print_result(self, result, output_style=""): + def print_result(self, result, output_style="", use_unicode=True): if result is None: # FIXME decide what to do here return @@ -267,7 +270,9 @@ def print_result(self, result, output_style=""): print(sys.exc_info()[1]) return - out_str = str(result.result) + out_str = replace_wl_with_plain_text(str(result.result), + use_unicode=use_unicode) + if eval_type == "System`Graph": out_str = "-Graph-" elif self.terminal_formatter: # pygmentize diff --git a/setup.py b/setup.py index 321ea29..e26d6ea 100644 --- a/setup.py +++ b/setup.py @@ -17,6 +17,20 @@ import os.path as osp from setuptools import find_packages +INSTALL_REQUIRES = [ + "Mathics-Scanner>=1.0.0dev", + "Mathics3 >= 2.0.0dev", + "click", + "colorama", + "columnize", + "networkx", + "pygments", + "term-background >= 1.0.1", +] + +DEPENDENCY_LINKS = [ + 'http://github.com/Mathics3/mathics-scanner/tarball/master#egg=Mathics-Scanner-1.0.0dev' +] def get_srcdir(): filename = osp.normcase(osp.dirname(osp.abspath(__file__))) @@ -66,15 +80,8 @@ def read(*rnames): package_data={ "": ["inputrc", "inputrc-no-unicode", "inputrc-unicode", "settings/settings.m"] }, - install_requires=[ - "Mathics3 >= 2.0.0dev", - "click", - "colorama", - "columnize", - "networkx", - "pygments", - "term-background >= 1.0.1", - ], + install_requires=INSTALL_REQUIRES, + dependency_link=DEPENDENCY_LINKS, entry_points={"console_scripts": ["mathicsscript = mathicsscript.__main__:main"]}, long_description=long_description, long_description_content_type="text/x-rst", From 80dd73f82e3510f95aaf2d75146b4846601336a2 Mon Sep 17 00:00:00 2001 From: Pablo Emilio Escobar Gaviria Date: Wed, 20 Jan 2021 01:59:29 +1000 Subject: [PATCH 2/2] Fixed typo --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index e26d6ea..7043208 100644 --- a/setup.py +++ b/setup.py @@ -81,7 +81,7 @@ def read(*rnames): "": ["inputrc", "inputrc-no-unicode", "inputrc-unicode", "settings/settings.m"] }, install_requires=INSTALL_REQUIRES, - dependency_link=DEPENDENCY_LINKS, + dependency_links=DEPENDENCY_LINKS, entry_points={"console_scripts": ["mathicsscript = mathicsscript.__main__:main"]}, long_description=long_description, long_description_content_type="text/x-rst",