def test_insert(): with test_csv.bayesdb_csv_stream(test_csv.csv_data) as (bdb, f): bayeslite.bayesdb_read_csv(bdb, 't', f, header=True, create=True) guess.bayesdb_guess_generator(bdb, 't_cc', 't', 'crosscat') bdb.execute('initialize 2 models for t_cc') bdb.execute('analyze t_cc for 1 iteration wait') generator_id = core.bayesdb_get_generator(bdb, 't_cc') row = (41, 'F', 96000, 73, 'data science', 2) bqlfn.bayesdb_insert(bdb, generator_id, row)
def test_insert(): with test_csv.bayesdb_csv_stream(test_csv.csv_data) as (bdb, f): bayeslite.bayesdb_read_csv(bdb, "t", f, header=True, create=True) guess.bayesdb_guess_generator(bdb, "t_cc", "t", "crosscat") bdb.execute("initialize 2 models for t_cc") bdb.execute("analyze t_cc for 1 iteration wait") generator_id = core.bayesdb_get_generator(bdb, "t_cc") row = (41, "F", 96000, 73, "data science", 2) bqlfn.bayesdb_insert(bdb, generator_id, row)
def dot_guess(self, line): """guess data generator <generator> <table> Create a generator named <generator> for the table <table>, guessing the statistical types of the columns in <table>. """ # XXX Lousy, lousy tokenizer. tokens = line.split() if len(tokens) != 2: self.stdout.write("Usage: .guess <generator> <table>\n") return generator = tokens[0] table = tokens[1] try: guess.bayesdb_guess_generator(self._bdb, generator, table, self._metamodel) except Exception: self.stdout.write(traceback.format_exc())
def dot_guess(self, line): '''guess data generator <generator> <table> Create a generator named <generator> for the table <table>, guessing the statistical types of the columns in <table>. ''' # XXX Lousy, lousy tokenizer. tokens = line.split() if len(tokens) != 2: self.stdout.write('Usage: .guess <generator> <table>\n') return generator = tokens[0] table = tokens[1] try: guess.bayesdb_guess_generator(self._bdb, generator, table, self._metamodel) except Exception: self.stdout.write(traceback.format_exc())
def test_guess_generator(): bdb = bayeslite.bayesdb_open(builtin_metamodels=False) bdb.sql_execute('CREATE TABLE t(x NUMERIC, y NUMERIC, z NUMERIC)') a_z = range(ord('a'), ord('z') + 1) aa_zz = ((c, d) for c in a_z for d in a_z) data = ((chr(c) + chr(d), (c + d) % 2, math.sqrt(c + d)) for c, d in aa_zz) for row in data: bdb.sql_execute('INSERT INTO t (x, y, z) VALUES (?, ?, ?)', row) cc = crosscat.LocalEngine.LocalEngine(seed=0) metamodel = CrosscatMetamodel(cc) bayeslite.bayesdb_register_metamodel(bdb, metamodel) with pytest.raises(ValueError): # No modelled columns. (x is key.) bayesdb_guess_generator(bdb, 't_cc', 't', 'crosscat', overrides=[('y', 'ignore'), ('z', 'ignore')]) bayesdb_guess_generator(bdb, 't_cc', 't', 'crosscat') with pytest.raises(ValueError): # Generator already exists. bayesdb_guess_generator(bdb, 't_cc', 't', 'crosscat') assert bdb.sql_execute('SELECT *' ' FROM bayesdb_generator_column').fetchall() == [ (1, 1, 'categorical'), (1, 2, 'numerical'), ]