From aced731e28798bb7340303b7fdef69198af67006 Mon Sep 17 00:00:00 2001 From: lkeitadk <34991293+lkeitadk@users.noreply.github.com> Date: Wed, 16 Jan 2019 10:28:01 -0700 Subject: [PATCH 1/5] Fist Try on Understanding the Python Code --- beta_process.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/beta_process.py b/beta_process.py index ed95db6..e5c181f 100644 --- a/beta_process.py +++ b/beta_process.py @@ -6,8 +6,13 @@ from .get_setting import get_setting from .initialize_pretext_vagrant import VagrantException -def to_vagrant(st): +#I am not sure I understand the use of the functions "to_vagrant" and "from vagrant". My guess was that they return a string +#that seems to be the path of the vagrant directory? + +def to_vagrant(st): vagrantroot = get_setting('vagrantroot', r"C:\\PreTeXt\\") + # I looked at the get_setting module, but I don't understand how line 13 gets executed. A better way to say it is that + # I don't really understand how the get-setting function works and what it does. result = re.sub(vagrantroot, '/vagrant/', st, flags=re.IGNORECASE) result = re.sub(r'\\', '/', result) return result @@ -16,7 +21,7 @@ def from_vagrant(st): vagrantroot = get_setting('vagrantroot', r"C:\\PreTeXt\\") return re.sub('/vagrant/', vagrantroot, st, flags=re.IGNORECASE) - +#Is this the equivalent of a hashtable? def retrieve(key, val, ddict, id='name'): """ Given a dict of dicts, return the value of id for the dict whose @@ -30,6 +35,7 @@ def retrieve(key, val, ddict, id='name'): except StopIteration: return None +# def get_pretext_project_setting(setting, default, proj_name): """Given a setting (string), returns the value associated to that key in the dictionary for proj_name.""" From 7963c4ae371150241ce9904db162361bb7bf4d85 Mon Sep 17 00:00:00 2001 From: lkeitadk <34991293+lkeitadk@users.noreply.github.com> Date: Tue, 22 Jan 2019 23:29:58 -0700 Subject: [PATCH 2/5] Changed acquire_Settings so that it uses a setting object --- beta_process.py | 55 +++++++++++++++++++++++++------------------------ 1 file changed, 28 insertions(+), 27 deletions(-) diff --git a/beta_process.py b/beta_process.py index e5c181f..8007a93 100644 --- a/beta_process.py +++ b/beta_process.py @@ -109,18 +109,18 @@ def doit(self, cmd, fmt): def acquire_settings(vu): - sett = {} + settings = sublime.Settings() #Cpnstruction of a settings object + + settings.set('project_name',get_pretext_project(vu)) - sett['project_name'] = get_pretext_project(vu) - - sett['pretext_stylesheets'] = get_pretext_project_setting( + settings.set('pretext_stylesheets',get_pretext_project_setting( 'pretext_stylesheets', { "html": to_vagrant(vagrantroot + "mathbook/xsl/mathbook-html.xsl"), "latex": to_vagrant(vagrantroot + "mathbook/xsl/mathbook-latex.xsl"), # "epub": to_vagrant(vagrantroot + "mathbook/xsl/mathbook-epub.xsl"), - }, sett['project_name']) + }, settings.get('project_name')) # if not pretext_stylesheets: # # print("Cannot find PreTeXt stylesheets, check settings :(") @@ -128,28 +128,29 @@ def acquire_settings(vu): # raise VagrantException # xinclude = get_setting('xinclude', True) - sett['xinclude'] = get_pretext_project_setting('xinclude', True, - sett['project_name']) + + settings.set('xinclude',get_pretext_project_setting('xinclude', True, + settings.get('project_name'))) # stringparam = get_setting('stringparam', {}) - sett['stringparam'] = get_pretext_project_setting('stringparam', {}, - sett['project_name']) - sett['root_file'] = get_pretext_project_setting('root_file', "", - sett['project_name']) + settings.set('stringparam',get_pretext_project_setting('stringparam', {}, + settings.get('project_name'))) + settings.set('stringparam',get_pretext_project_setting('root_file', "", + settings.get('project_name'))) # TODO: some attempt at intelligent root file detection assuming # sensible structure - if not sett['root_file']: + if settings.get('root_file') is None: sublime.message_dialog("Error 24: Couldn't find project " "root file") raise VagrantException - sett['path'] = get_pretext_project_setting('path', "", sett['project_name']) + settings.set('path', get_pretext_project_setting('path', "", settings.get('project_name'))) # if not path: # sublime.message_dialog("Error 34: Couldn't find project path") # raise VagrantException # Note: trailing slash is added later, no need for it here - sett['pretext_output'] = get_pretext_project_setting('pretext_output', - os.path.join(sett['path'], 'output'), sett['project_name']) - if not sett['pretext_output']: + settings.set('pretext_output',get_pretext_project_setting('pretext_output', + os.path.join(settings.get('path'), 'output'), settings.get('project_name'))) + if settings.get(pretext_output) is None: sublime.message_dialog("Error 36: something bad happened") raise VagrantException # pretext_output_list = filepath.split('/')[:-1] @@ -157,18 +158,18 @@ def acquire_settings(vu): # if cmd == "xsltproc": # pretext_output_list.append(fmt) # pretext_output = '/'.join(pretext_output_list) - sett['pretext_output_html'] = get_pretext_project_setting('pretext_output_html', - os.path.join(sett['pretext_output'], 'html'), sett['project_name']) - sett['pretext_output_latex'] = get_pretext_project_setting('pretext_output_latex', - os.path.join(sett['pretext_output'], 'latex'), sett['project_name']) + settings.set('pretext_output_html',get_pretext_project_setting('pretext_output_html', + os.path.join(settings.get('pretext_output', 'html'), settings.get('project_name'))) + settings.set('pretext_output_latex',get_pretext_project_setting('pretext_output_latex', + os.path.join(settings.get('pretext_output', 'latex'), settings.get('project_name'))) # pretext_output_epub = get_pretext_project_setting('pretext_output_epub', # os.path.join(pretext_output, 'epub'), project_name) - sett['pretext_images'] = get_pretext_project_setting('pretext_images', - os.path.join(sett['pretext_output'], 'images'), sett['project_name']) - sett['pretext_html_images'] = get_pretext_project_setting('pretext_html_images', - os.path.join(sett['pretext_output_html'], 'images'), sett['project_name']) - sett['pretext_latex_images'] = get_pretext_project_setting('pretext_latex_images', - os.path.join(sett['pretext_output_latex'], 'images'), sett['project_name']) + settings.set('pretext_images',get_pretext_project_setting('pretext_images', + os.path.join(settings.get('pretext_output', 'images'), settings.get('project_name'))) + settings.set('pretext_html_images',get_pretext_project_setting('pretext_html_images', + os.path.join(settings.get('pretext_output', 'images'), settings.get('project_name'))) + settings.set('pretext_latex_images',get_pretext_project_setting('pretext_latex_images', + os.path.join(settings.get('pretext_output', 'images'), settings.get('project_name'))) # pretext_epub_images = get_pretext_project_setting('pretext_epub_images', # os.path.join(pretext_output_epub, 'images'), project_name) # if not pretext_images: @@ -189,7 +190,7 @@ def acquire_settings(vu): # print("Need to set PreTeXt root file :(") # raise VagrantException - return sett + return settings if cmd == "update_pretext": #### FUNCTION EXITS FROM THIS BLOCK From 24e649853bb47f7a16d76149013643f86388f6ab Mon Sep 17 00:00:00 2001 From: lkeitadk <34991293+lkeitadk@users.noreply.github.com> Date: Wed, 23 Jan 2019 13:14:21 -0700 Subject: [PATCH 3/5] Fixed synthax errors on acquire_settings --- beta_process.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/beta_process.py b/beta_process.py index 8007a93..2787aaf 100644 --- a/beta_process.py +++ b/beta_process.py @@ -120,7 +120,7 @@ def acquire_settings(vu): "latex": to_vagrant(vagrantroot + "mathbook/xsl/mathbook-latex.xsl"), # "epub": to_vagrant(vagrantroot + "mathbook/xsl/mathbook-epub.xsl"), - }, settings.get('project_name')) + }, settings.get('project_name'))) # if not pretext_stylesheets: # # print("Cannot find PreTeXt stylesheets, check settings :(") @@ -159,17 +159,17 @@ def acquire_settings(vu): # pretext_output_list.append(fmt) # pretext_output = '/'.join(pretext_output_list) settings.set('pretext_output_html',get_pretext_project_setting('pretext_output_html', - os.path.join(settings.get('pretext_output', 'html'), settings.get('project_name'))) + os.path.join(settings.get('pretext_output', 'html'), settings.get('project_name')))) settings.set('pretext_output_latex',get_pretext_project_setting('pretext_output_latex', - os.path.join(settings.get('pretext_output', 'latex'), settings.get('project_name'))) + os.path.join(settings.get('pretext_output', 'latex'), settings.get('project_name')))) # pretext_output_epub = get_pretext_project_setting('pretext_output_epub', # os.path.join(pretext_output, 'epub'), project_name) settings.set('pretext_images',get_pretext_project_setting('pretext_images', - os.path.join(settings.get('pretext_output', 'images'), settings.get('project_name'))) + os.path.join(settings.get('pretext_output', 'images'), settings.get('project_name')))) settings.set('pretext_html_images',get_pretext_project_setting('pretext_html_images', - os.path.join(settings.get('pretext_output', 'images'), settings.get('project_name'))) + os.path.join(settings.get('pretext_output', 'images'), settings.get('project_name')))) settings.set('pretext_latex_images',get_pretext_project_setting('pretext_latex_images', - os.path.join(settings.get('pretext_output', 'images'), settings.get('project_name'))) + os.path.join(settings.get('pretext_output', 'images'), settings.get('project_name')))) # pretext_epub_images = get_pretext_project_setting('pretext_epub_images', # os.path.join(pretext_output_epub, 'images'), project_name) # if not pretext_images: From 14a9b0b44f1bb34b73fdaaf58017b0e14b6e61d7 Mon Sep 17 00:00:00 2001 From: lkeitadk <34991293+lkeitadk@users.noreply.github.com> Date: Thu, 24 Jan 2019 13:32:08 -0700 Subject: [PATCH 4/5] Added missing settings class constructor parameter --- beta_process.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/beta_process.py b/beta_process.py index 2787aaf..35a4269 100644 --- a/beta_process.py +++ b/beta_process.py @@ -109,7 +109,7 @@ def doit(self, cmd, fmt): def acquire_settings(vu): - settings = sublime.Settings() #Cpnstruction of a settings object + settings = sublime.Settings(vu.id()) #Cpnstruction of a settings object settings.set('project_name',get_pretext_project(vu)) From 61ce1b3a7e13f67eb2122ba1e23954ef2aaa9d44 Mon Sep 17 00:00:00 2001 From: lkeitadk <34991293+lkeitadk@users.noreply.github.com> Date: Thu, 24 Jan 2019 13:35:14 -0700 Subject: [PATCH 5/5] Debugging messages, prune this commit later --- beta_process.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/beta_process.py b/beta_process.py index 35a4269..093d22a 100644 --- a/beta_process.py +++ b/beta_process.py @@ -42,7 +42,7 @@ def get_pretext_project_setting(setting, default, proj_name): projects = get_setting('pretext_projects') if proj_name not in projects.keys(): - sublime.message_dialog("Error 32: invalid project") + sublime.message_dialog("Error 32: invalid project {}".format(proj_name)) raise VagrantException if setting in projects[proj_name].keys(): return projects[proj_name][setting] @@ -71,10 +71,14 @@ def get_pretext_project(vu): sublime.message_dialog("Error 30: couldn't find project") raise VagrantException fn = os.path.dirname(fn) - match = retrieve('path', fn, projects) + match = retrieve('path', fn, projects) # name of project is retained if match: + # print("Found {}".format(match)) return match + sublime.message_dialog("Error 102: Something bad happened") + raise VagrantException + class BetaCommand(sublime_plugin.WindowCommand): # def _verbose(msg): # """Write a message to the console on program progress"""