def __init__(self, config): self.config = config self._buffer = '' self.no_response = object() self.prompt = '>> ' if HAS_READLINE and config['terms_history_file'] and int(config['terms_history_length']): readline.set_history_length(int(config['terms_history_length'])) fn = os.path.expanduser(config['terms_history_file']) try: if not os.path.exists(fn): with open(fn, 'w') as f: f.write('# terms history\n') readline.read_history_file(fn) except Exception: pass address = '%s/%s' % (config['dbms'], config['dbname']) engine = create_engine(address) Session = sessionmaker(bind=engine) if config['dbname'] == ':memory:': from terms.core.terms import Base Base.metadata.create_all(engine) from terms.core.network import Network Network.initialize(Session()) self.compiler = Compiler(Session(), config) register_exec_global(Runtime(self.compiler), name='runtime')
def get_sasession(config): address = '%s/%s' % (config['dbms'], config['dbname']) engine = create_engine(address) Session = sessionmaker(bind=engine) if config['dbname'] == ':memory:': session = Session() Base.metadata.create_all(engine) Network.initialize(session) session.close() return Session
def init_terms(): config = get_config() address = '%s/%s' % (config['dbms'], config['dbname']) engine = create_engine(address) Base.metadata.create_all(engine) Session = sessionmaker(bind=engine) session = Session() Network.initialize(session) session.commit() session.close() sys.exit(0)
def test_terms(): # test generator # read contents of tests/ # feed each test to run_npl d = os.path.dirname(sys.modules['terms.core'].__file__) d = os.path.join(d, 'tests') files = os.listdir(d) config = ConfigParser() config.read_string(CONFIG) config = config['test'] for f in files: if f.endswith('.test'): address = '%s/%s' % (config['dbms'], config['dbname']) engine = create_engine(address) Session = sessionmaker(bind=engine) session = Session() Base.metadata.create_all(engine) Network.initialize(session) kb = KnowledgeBase(session, config, lex_optimize=False, yacc_optimize=False, yacc_debug=True) yield run_terms, kb, os.path.join(d, f) kb.session.close() Base.metadata.drop_all(engine)