From 51c7f1bfa465ac87ce6ab8e15bfd44040458582b Mon Sep 17 00:00:00 2001 From: LeMagnesium Date: Mon, 11 Apr 2016 18:04:36 +0200 Subject: [PATCH] Add a method to create map databases - Add `libminetest.map.MapVessel.create` to initialize an empty map database, and even create the file if it doesn't exist - For #12 --- .gitignore | 1 + libminetest/map.py | 13 ++++++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 30e0afe..91cfd67 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ __pycache__/ *.sqlite *.mts env/ +libminetest.egg* diff --git a/libminetest/map.py b/libminetest/map.py index 78450ce..b8dd49f 100644 --- a/libminetest/map.py +++ b/libminetest/map.py @@ -442,6 +442,17 @@ class MapVessel: def __str__(self): return "mapfile vessel for {0}".format(self.mapfile) + @classmethod + def create(cls, path): + k = cls(path) + try: + k.cur.execute("CREATE TABLE IF NOT EXISTS `blocks` (\n`pos` INT PRIMARY KEY,\n`data` BLOB\n);\n") + + except _sql.OperationalError as err: + raise MapError("Couln't create database : {}".format(err)) + + return k + def get_all_mapblock_ids(self): try: self.cur.execute("SELECT \"pos\" from \"blocks\"") @@ -452,7 +463,7 @@ class MapVessel: def open(self, mapfile, backend = "sqlite3"): try: - self.conn = _sql.connect(mapfile) + self.conn = _sql.connect(mapfile)#, 10) self.cur = self.conn.cursor() except _sql.OperationalError as err: raise MapError("Error opening database : {0}".format(err))