# Component database test script
#
#

import _mysql

def dump_csv(file, data):
	print data
	for d in data[:-1]:
		file.write("%s," % d)
	file.write("\"%s\"\n" % data[-1])


def gen_dict(result):
	d = {}
	for i in result:
		k = int(i[0])
		d[k] = i[1:]

	return d


# Configure this for your local database access:

#                    host        user   password      database
db = _mysql.connect("localhost", "com", "kicadrocks", "components")

# Read packages table
db.query("""SELECT id, name, mount_type FROM packages ORDER BY id""")
res = db.store_result()
rows = res.fetch_row(maxrows=0)

g_packages = gen_dict(rows)

# Read class table:
db.query("""SELECT id, name FROM component_classes ORDER BY id""")
res = db.store_result()
rows = res.fetch_row(maxrows=0)

g_classes = gen_dict(rows)

db.query("""SELECT name, class, pkg_list FROM units ORDER BY name""")
res = db.store_result()
rows = res.fetch_row(maxrows=0)

print g_classes

format = "%16s   %16s     %s"

print format % ("Name", "Class", "Packages")
for i in rows:
	pkgs = i[2]
	k = int(i[1])
	print 72 * "-"
	if pkgs:
		p = ""
		indices = eval("[" + pkgs + "]")
		for j in indices:
			p += g_packages[j][0] + ","
	else:
		p = "<any>"
	print format % (i[0], g_classes[k][0], p)

