database: add close function, path: add copy and move
This commit is contained in:
parent
c4e5c9b6b4
commit
26156682c8
|
@ -21,12 +21,15 @@ class DataBase():
|
|||
self.engine_string = self.__engine_string(dbtype, kwargs)
|
||||
self.db = create_engine(self.engine_string)
|
||||
self.table = Tables(self, tables)
|
||||
self.cache = DotDict({table: LRUCache() for table in tables.keys()})
|
||||
self.table_names = tables.keys()
|
||||
self.classes = kwargs.get('row_classes', CustomRows())
|
||||
self.cache = None
|
||||
|
||||
session_class = kwargs.get('session_class', Session)
|
||||
self.session = lambda trans=True: session_class(self, trans)
|
||||
|
||||
self.SetupCache()
|
||||
|
||||
|
||||
def __engine_string(self, dbtype, kwargs):
|
||||
if not kwargs.get('database'):
|
||||
|
@ -63,6 +66,14 @@ class DataBase():
|
|||
return engine_string
|
||||
|
||||
|
||||
def close(self):
|
||||
self.SetupCache()
|
||||
|
||||
|
||||
def SetupCache(self):
|
||||
self.cache = DotDict({table: LRUCache() for table in self.table_names})
|
||||
|
||||
|
||||
def CreateDatabase(self):
|
||||
if self.engine_string.startswith('postgresql'):
|
||||
predb = create_engine(db.engine_string.replace(config.db.name, 'postgres', -1))
|
||||
|
|
|
@ -5,6 +5,7 @@ from os import environ as env
|
|||
from datetime import datetime
|
||||
from getpass import getpass
|
||||
from pathlib import Path as Pathlib
|
||||
from shutil import copyfile
|
||||
|
||||
from . import logging
|
||||
|
||||
|
@ -324,6 +325,10 @@ class LowerDotDict(DotDict):
|
|||
class Path(object):
|
||||
def __init__(self, path, exist=True, missing=True, parents=True):
|
||||
self.__path = Pathlib(str(path))
|
||||
|
||||
if str(path).startswith('~'):
|
||||
self.__path == self.__path.expanduser()
|
||||
|
||||
self.json = DotDict({})
|
||||
self.exist = exist
|
||||
self.missing = missing
|
||||
|
@ -382,14 +387,21 @@ class Path(object):
|
|||
return self
|
||||
|
||||
|
||||
def move(self, path):
|
||||
def copy(self, path, overwrite=False):
|
||||
target = Path(path)
|
||||
|
||||
self.__check_dir(path)
|
||||
|
||||
if target.exists() and not target.isdir():
|
||||
if target.exists() and overwrite:
|
||||
target.delete()
|
||||
|
||||
copyfile(self.str(), target.str())
|
||||
|
||||
|
||||
def move(self, path, overwrite=False):
|
||||
self.copy(path, overwrite=overwrite)
|
||||
self.delete()
|
||||
|
||||
|
||||
def join(self, path, new=True):
|
||||
new_path = self.__path.joinpath(path)
|
||||
|
@ -487,10 +499,10 @@ class Path(object):
|
|||
# This needs to be extended to handle dirs with files/sub-dirs
|
||||
def delete(self):
|
||||
if self.isdir():
|
||||
self.__path.rmdir(self.missing)
|
||||
self.__path.rmdir()
|
||||
|
||||
else:
|
||||
self.__path.unlink(self.missing)
|
||||
self.__path.unlink()
|
||||
|
||||
return not self.exists()
|
||||
|
||||
|
|
|
@ -100,7 +100,7 @@ class Template(Environment):
|
|||
self.filters.update(data)
|
||||
|
||||
|
||||
def render(self, tplfile, request=None, context={}, headers={}, cookies={}, pprint=False, **kwargs):
|
||||
def render(self, tplfile, context={}, headers={}, cookies={}, request=None, pprint=False, **kwargs):
|
||||
if not isinstance(context, dict):
|
||||
raise TypeError(f'context for {tplfile} not a dict: {type(context)} {context}')
|
||||
|
||||
|
|
Loading…
Reference in a new issue