dbobj3 0.4.0__tar.gz → 0.5.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: dbobj3
3
- Version: 0.4.0
3
+ Version: 0.5.0
4
4
  Summary: High-level MySQL/MSSQL/Oracle access module
5
5
  Requires-Python: >=3.6
6
6
  Requires-Dist: pymysql
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "dbobj3"
7
- version = "0.4.0"
7
+ version = "0.5.0"
8
8
  description = "High-level MySQL/MSSQL/Oracle access module"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.6"
@@ -16,7 +16,7 @@ dependencies = [
16
16
  packages = ["src/dbobj3.py"]
17
17
 
18
18
  [tool.bumpversion]
19
- current_version = "0.4.0"
19
+ current_version = "0.5.0"
20
20
  commit = true
21
21
  tag = true
22
22
  parse = "(?P<major>\\d+)\\.(?P<minor>\\d+)"
@@ -21,7 +21,7 @@ Example:
21
21
  rsServices.next()
22
22
 
23
23
  """
24
- __version__ = "0.4.0"
24
+ __version__ = "0.5.0"
25
25
 
26
26
  from sys import version as sys_version, exit
27
27
  pyversion = sys_version[0:sys_version.find(' ')]
@@ -685,6 +685,7 @@ class dbObjConnection:
685
685
  if(self.dbType in ("API")):
686
686
  return self.apiExecute(prmSql)
687
687
 
688
+
688
689
  def fetchall(self, prmSql, *args):
689
690
  """Returns result set as a list of dictionaries"""
690
691
  rset = []
@@ -694,18 +695,36 @@ class dbObjConnection:
694
695
  crsr.next()
695
696
  return rset
696
697
 
698
+
697
699
  def fetchone(self, prmSql, *args):
698
700
  """Returns a single row as a dictionary"""
699
701
  crsr = self.execute( prmSql, *args )
700
702
  dictRow = {} if crsr.EOF else crsr.fields
701
703
  return dictRow
702
704
 
705
+
703
706
  def fetchval(self, prmSql, *args):
704
707
  """Returns a single value"""
705
708
  dictRow = self.fetchone( prmSql, *args )
706
709
  listVals = list(dictRow.values())
707
710
  return None if not listVals else listVals[0]
708
711
 
712
+
713
+ def fetchlistvals(self, prmSql, *args):
714
+ """Returns a list of vals; if more than one key/column, returns a list of value tuples"""
715
+ listvals = []
716
+ rset = self.fetchall(prmSql, *args)
717
+ if not rset:
718
+ return []
719
+ keys = list(rset[0].keys())
720
+ for dictRow in rset:
721
+ if len(keys) == 1:
722
+ listvals.append( dictRow.get(keys[0]) )
723
+ else:
724
+ listvals.append( tuple( dictRow.get(k) for k in keys ) )
725
+ return listvals
726
+
727
+
709
728
  def insert(self, table, prmDict, update_on_duplicate=False):
710
729
  if update_on_duplicate:
711
730
  keystr = ','.join(prmDict.keys())
@@ -937,7 +956,6 @@ class dbObjConnection:
937
956
  try:
938
957
  # convert sqls to url safe version
939
958
  #sqls = requests.compat.quote_plus( prmSql )
940
- #r = requests.post(self.apiBaseUrl + "/execute", data = {self.apiKeyName: self.apiKey, "sql": sqls})
941
959
  sqls = prmSql
942
960
  headers = {'Content-type':'application/json'}
943
961
  payload = {self.apiKeyName: self.apiKey, "sql": sqls}
File without changes