From 3a6de0f515b55319cef29b8c4c72006bcd5d3376 Mon Sep 17 00:00:00 2001
From: abaucher <achille.baucher@inria.fr>
Date: Mon, 31 Jan 2022 15:47:21 +0100
Subject: [PATCH] Added funs for parsing and in init

---
 pydynamo/__init__.py          | 7 +++----
 pydynamo/core/parse_system.py | 9 +++++++++
 2 files changed, 12 insertions(+), 4 deletions(-)

diff --git a/pydynamo/__init__.py b/pydynamo/__init__.py
index b6305475..530db54f 100644
--- a/pydynamo/__init__.py
+++ b/pydynamo/__init__.py
@@ -2,8 +2,7 @@
 
 __version__ = "0.1"
 
-from pydynamo.core import parse_system
-from pydynamo.core.parse_system import new_cst_politic
+from pydynamo.core.parse_system import new_cst_politic, new_system, system_from_lines, system_from_fun, system_from_file
 # import pydynamo.core.system
 from pydynamo.core.plot_system import plot_system, show_pyvis, plot_tabhl
 # import pydynamo.core.dynamo_converter
@@ -13,12 +12,12 @@ from .world2 import w2_code, w2_defs, scales_w2
 
 
 def get_w3():
-    w3 = parse_system.system_from_lines(w3_code)
+    w3 = system_from_lines(w3_code)
     w3.add_comments(w3_defs)
     return w3
 
 def get_w2():
-    w2 = parse_system.system_from_lines(w2_code)
+    w2 = system_from_lines(w2_code)
     w2.add_comments(w2_defs)
     return w2
 
diff --git a/pydynamo/core/parse_system.py b/pydynamo/core/parse_system.py
index d238fc60..f03918ca 100644
--- a/pydynamo/core/parse_system.py
+++ b/pydynamo/core/parse_system.py
@@ -149,3 +149,12 @@ def change_var_to_cst(s, var):
     #         new_raw_line = re.sub(f'(?<!\w){var}(?!\w)', f'{var}.k', args['raw_line'])
     #         args['raw_line'] = new_raw_line
     #         args['line'] = new_line   
+
+def new_system(raw):
+    """returns a new System object from the data included in raw"""
+    if callable(raw):
+        return system_from_fun(raw)
+    elif isinstance(raw, list):
+        return system_from_lines(raw)
+    elif isinstance(raw, str):
+        return system_from_file(raw)
-- 
GitLab