コード例 #1
0
ファイル: args.py プロジェクト: holycrepe/anknotes
 def __get_args_and_kwargs(self, func_args=None, func_kwargs=None, name=None, allow_cls_override=True):
     if not func_args and not func_kwargs:
         return self.args or [], self.kwargs or DictCaseInsensitive()
     func_args = func_args or allow_cls_override and self.args or []
     func_kwargs = func_kwargs or allow_cls_override and self.kwargs or DictCaseInsensitive()
     if is_seq_type(func_kwargs) and is_dict_type(func_args):
         func_args, func_kwargs = func_kwargs, func_args
     func_args = self.__args_to_list(func_args)
     if isinstance(func_kwargs, dict):
         func_kwargs = DictCaseInsensitive(func_kwargs, key=name, parent_key='kwargs')
     if not isinstance(func_args, list):
         func_args = []
     if not isinstance(func_kwargs, DictCaseInsensitive):
         func_kwargs = DictCaseInsensitive(key=name)
     return func_args, func_kwargs
コード例 #2
0
ファイル: db.py プロジェクト: holycrepe/anknotes
 def execute(self, sql, a=None, kw=None, auto=None, **kwargs):
     if is_dict_type(a):
         kw, a = a, kw
     if not is_seq_type(a):
         a = item_to_list(a)
     if is_dict_type(sql):
         auto = sql
         sql = ' AND '.join(["`{0}` = :{0}".format(key) for key in auto.keys()])
     if kw is None:
         kw = {}
     kwargs.update(kw)
     sql = self._create_query_(sql, **kwargs)
     if auto:
         kw = auto
     log_sql(sql, a, kw, self=self)
     self.ankdb_lastquery = sql
     if self._is_stmt_(sql):
         self.mod = True
     t = time.time()
     try:
         if a:
             # execute("...where id = ?", 5)
             res = self._db.execute(sql, a)
         elif kw:
             # execute("...where id = :id", id=5)
             res = self._db.execute(sql, kw)
         else:
             res = self._db.execute(sql)
     except (sqlite.OperationalError, sqlite.ProgrammingError, sqlite.Error, Exception) as e:
         log_sql(sql, a, kw, self=self, filter_disabled=False)
         import traceback
         log_error('Error with ankDB().execute(): %s\n Query: %s\n Trace: %s' %
                   (str(e), sql, traceback.format_exc()))
         raise
     if self.echo:
         # print a, ka
         print sql, "%0.3fms" % ((time.time() - t) * 1000)
         if self.echo == "2":
             print a, kw
     return res