diff --git a/pydynamo/__init__.py b/pydynamo/__init__.py index b630547564d94a5ba381a488a671ee99738d8356..530db54fd92661d58cd242f6ba2d4ab8d7043b0d 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 d238fc60258f298202111f634d19baaa03ea4e02..f03918ca63e2d31c19ab81dd8569d50148ade994 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)