예제 #1
0
def pytest_runtest_teardown(item):
    for registry in primary_registries:
        # Clear Registry to have a stable reference for indexed suffixes of default names
        clear_registry(registry)

    from psyneulink.core import llvm as pnlvm
    pnlvm.cleanup()
예제 #2
0
def clear_registry():
    # Clear Registry to have a stable reference for indexed suffixes of default names
    from psyneulink.components.component import DeferredInitRegistry
    from psyneulink.components.system import SystemRegistry
    from psyneulink.components.process import ProcessRegistry
    from psyneulink.components.mechanisms.mechanism import MechanismRegistry
    from psyneulink.components.projections.projection import ProjectionRegistry
    pnl.clear_registry(DeferredInitRegistry)
    pnl.clear_registry(SystemRegistry)
    pnl.clear_registry(ProcessRegistry)
    pnl.clear_registry(MechanismRegistry)
    pnl.clear_registry(ProjectionRegistry)
예제 #3
0
def main():
    reconstructed_identifer = "reconstructed"

    for example in glob.glob(os.path.join(os.path.dirname(__file__), "*.py")):
        if reconstructed_identifer in example or example == __file__:
            continue

        pnl.clear_registry()
        border = "=" * len(example)
        print(f"{border}\n{example}\n{border}")
        base_fname = example.replace(".py", "")
        script_globals = runpy.run_path(example)

        compositions = list(
            filter(lambda v: isinstance(v, pnl.Composition),
                   script_globals.values()))
        nonnested_comps = []

        for x in compositions:
            for y in compositions:
                if x in y.nodes:
                    break
            else:
                nonnested_comps.append(x)

        try:
            comp = nonnested_comps[0]
        except IndexError:
            continue

        json_summary = pnl.generate_json(comp)

        with open(f"{base_fname}.json", "w") as outfi:
            outfi.write(json_summary)
            outfi.write("\n")

        reconstructed_fname = f"{base_fname}.{reconstructed_identifer}.py"
        with open(reconstructed_fname, "w") as outfi:
            outfi.write(pnl.generate_script_from_json(json_summary))
            outfi.write("\n")
        subprocess.run(["black", reconstructed_fname])
        subprocess.run(["python", reconstructed_fname])
예제 #4
0
 def test_actual_scripts(self, filepath):
     src_str = open(filepath, 'r').read()
     dg = ast_parse.DependencyGraph(src_str, psyneulink)
     namespace = {}
     dg.execute_ast(namespace)
     psyneulink.clear_registry(psyneulink.MechanismRegistry)
     psyneulink.clear_registry(psyneulink.CompositionRegistry)
     psyneulink.clear_registry(psyneulink.FunctionRegistry)
     fresh_namespace = {}
     exec(dg.src_executed, fresh_namespace)
     for cat in psyneulink.CompositionRegistry:
         for comp_name in psyneulink.CompositionRegistry[cat][1]:
             psyneulink.CompositionRegistry[cat][1][comp_name].show_graph(output_fmt='gv')
예제 #5
0
def pytest_runtest_teardown(item):
    for registry in primary_registries:
        # Clear Registry to have a stable reference for indexed suffixes of default names
        clear_registry(registry)

    pnlvm.cleanup()
예제 #6
0
def pytest_runtest_teardown(item):
    from psyneulink import clear_registry
    from psyneulink.components.functions.function import FunctionRegistry
    from psyneulink.components.mechanisms.adaptive.control.controlmechanism import ControlMechanismRegistry
    from psyneulink.components.mechanisms.adaptive.gating.gatingmechanism import GatingMechanismRegistry
    from psyneulink.components.mechanisms.mechanism import MechanismRegistry
    from psyneulink.components.projections.projection import ProjectionRegistry
    from psyneulink.components.states.state import StateRegistry
    from psyneulink.components.system import SystemRegistry
    from psyneulink.components.component import DeferredInitRegistry
    from psyneulink.components.process import ProcessRegistry
    from psyneulink.globals.preferences.preferenceset import PreferenceSetRegistry

    # Clear Registry to have a stable reference for indexed suffixes of default names
    clear_registry(FunctionRegistry)
    clear_registry(ControlMechanismRegistry)
    clear_registry(GatingMechanismRegistry)
    clear_registry(MechanismRegistry)
    clear_registry(ProjectionRegistry)
    clear_registry(StateRegistry)
    clear_registry(SystemRegistry)
    clear_registry(DeferredInitRegistry)
    clear_registry(ProcessRegistry)
    clear_registry(PreferenceSetRegistry)