def test_backtrace_param(): lisp = cl4py.Lisp(backtrace=True) assert lisp.eval(Symbol("*BACKTRACE*", "CL4PY")) assert lisp.backtrace lisp = cl4py.Lisp(backtrace=False) assert not lisp.eval(Symbol("*BACKTRACE*", "CL4PY")) assert not lisp.backtrace
def test_produce_backtrace_type_error(stock_lisp, backtrace_lisp): with pytest.raises(RuntimeError): load_sample_program(stock_lisp) stock_lisp.find_package("COMMON-LISP-USER").make_type_error() lisp = cl4py.Lisp(backtrace=True, quicklisp=True) load_sample_program(lisp) try: lisp.find_package("COMMON-LISP-USER").make_type_error() except RuntimeError as e: msg = e.args[0] backtrace_re = re.compile('Backtrace', re.MULTILINE) assert re.search(backtrace_re, msg) else: pytest.fail("Should have seen a RuntimeError")
def lisp(): return cl4py.Lisp()
def backtrace_lisp(): return cl4py.Lisp(backtrace=True)
def stock_lisp(): return cl4py.Lisp()
import cl4py lisp = cl4py.Lisp([ "/Users/meister/Development/cando-dev/build/boehm/icando-boehm", "-N", "--load" ]) cl = lisp.find_package('CL') chem = lisp.find_package('CHEM') leap = lisp.find_package('LEAP') tirun = lisp.find_package("TIRUN") cando = lisp.find_package("CANDO") cu = lisp.find_package('CANDO-USER') cu.setup_default_paths() cu.load_atom_type_rules("ATOMTYPE_GFF.DEF") leap.source("leaprc.ff14SB.redq") leap.source("leaprc.gaff") tiruns = tirun.make_tirun() sk = leap.load_sketch("ligands.cdxml") tirun.setup_ligands(tiruns, sk) tests_list = cl.read_from_string( """(list (cons :c1 (lambda (a) (eq (chem:get-name a) :c1))) (cons :c3 (lambda (a) (eq (chem:get-name a) :c3))) (cons :c5 (lambda (a) (eq (chem:get-name a) :c5))))""" ) tests = cl.eval(cl.first(tests_list)) pick = chem.compile_smarts("[C:6]1~[C<c1>:1]~[C:2]~[C<c3>:3]~[C:4]~[C<c5>:5]1", tests=tests) lysozyme = cu.load_pdb("181L_mod.pdb") cando.build_unbuilt_hydrogens(cl.first(lysozyme)) cu.simple_build_unbuilt_atoms(cl.first(lysozyme)) tirun.add_receptor(tiruns, cl.first(lysozyme)) cu.load_off("phen.lib") cu.load_off("benz.lib") ligs = cu.load_pdb("bnz_phn.pdb")
import glob import random import sys import unittest import atheris import cl4py import os import emoji from speac_library.speac.speac_settings import SpeacSettings from speac_library.speac.top_level import get_the_levels lisp = cl4py.Lisp() cl = lisp.function("find-package")("CL") def load_files(): path = os.path.join(os.path.dirname(__file__), "lisp_files/*.lisp") for file_name in glob.glob(path): file_name = file_name.replace("\\", "/") lisp.eval(("load", '"' + file_name + '"')) def cl4py_elements_to_python(cl4py_element): if isinstance(cl4py_element, cl4py.Symbol): return str(cl4py_element.name).lower() elif isinstance(cl4py_element, cl4py.Cons):