def __init__ (self, db_url, dbs) : engine = dbs.create_engine \ ( TFL.Url (db_url.scheme_auth + "/postgres") , isolation_level = dbs.ISOLATION_AUTO_COMMIT ) self.engine = engine self.conn = engine.connect ()
def Url(cls, value, ANS, default_path=None): result = TFL.Url(value, fs_path=True) if not result.path and default_path is not None: result = TFL.Url.new(result, path=default_path, fs_path=True) result.scheme_auth = "://".join((result.scheme, result.authority)) if result.query: result.scheme_auth = "?".join((result.scheme_auth, result.query)) result.create = False return result
def create_database (cls, db_url, manager, encoding = "utf8") : try : engine = cls.create_engine (TFL.Url (db_url.scheme_auth)) engine.execute \ ( """CREATE DATABASE IF NOT EXISTS "%s" """ "DEFAULT CHARACTER SET %s " "DEFAULT COLLATE %s_bin" % (str (db_url.path), encoding, encoding) ) except SA.Exception.OperationalError as exc : pass
def origin (self) : result = self.environ.get ("HTTP_ORIGIN") if result is None : referrer = self.referrer if referrer : url = TFL.Url (referrer) parts = [] if url.scheme : parts.extend ((url.scheme, "://")) parts.append (url.authority) result = "".join (parts) return result
def _response_body (self, resource, request, response) : req_data = request.req_data cmd = req_data.get ("cmd") complete = req_data.get ("complete") console = resource.console if cmd or complete : response.renderer = GTW.RST.Mime_Type.JSON (self, resource) if complete : input, cands = TFL.complete_command \ (complete, console.globals, console.locals) cands = cands.strip ().split (",") completed = False if len (cands) == 1 : if len (input) >= len (complete) : completed = True else : input = complete elif ( (resource.completion_cutoff is not None) and (len (cands) > resource.completion_cutoff) ) : cands = \ [ TFL.I18N._T ("There are %s possible completions" % (len (cands))) ] return dict \ ( input = input , cands = ", ".join (cands) , completed = completed ) elif cmd : console.update_locals \ ( request = request , response = response ) return dict \ ( html = console (cmd) , more = console.more ) else : top = resource.top referer = request.referrer if top and referer : url = TFL.Url (referer) lp = top.resource_from_href (url.path) console.update_locals \ ( last_page = lp._effective if lp else lp , last_request = request , last_response = response , referrer = url , request = request , response = response ) return self.__super._response_body (resource, request, response)
def _drop_database(cls, db_url, manager): engine = cls.create_engine(TFL.Url(db_url.scheme_auth)) ### This is necessary to avoid a nasty Warning that the database does ### not exist (even using the IF EXISTS clause) try: engine.execute("use %s" % (str(db_url.path), )) except SA.Exception.OperationalError as exc: if ('(1049, "Unknown database \'%s\'")' % (db_url.path, ) not in exc.message): raise else: engine.execute \ ("DROP DATABASE IF EXISTS %s" % (str (db_url.path), ))