ecoscape-utilities 0.0.37__py3-none-any.whl → 0.0.38__py3-none-any.whl

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.

Potentially problematic release.


This version of ecoscape-utilities might be problematic. Click here for more details.

@@ -11,6 +11,34 @@ from pyproj.crs import CRS
11
11
 
12
12
  from scgt import GeoTiff
13
13
 
14
+ def expand_sqlite_query(query, params):
15
+ """
16
+ Expands an SQLite query string with named parameters from a dictionary.
17
+
18
+ Args:
19
+ query (str): The SQL query string with :variable placeholders.
20
+ params (dict): A dictionary mapping variable names to their values.
21
+
22
+ Returns:
23
+ str: The expanded SQL query string.
24
+ """
25
+ expanded_query = query
26
+ for key, value in params.items():
27
+ placeholder = f":{key}"
28
+ if isinstance(value, str):
29
+ # Escape any single quotes within the string
30
+ formatted_value = f"'{value.replace("'", "''")}'"
31
+ elif value is None:
32
+ formatted_value = 'NULL'
33
+ else:
34
+ # For integers, floats, and other types
35
+ formatted_value = str(value)
36
+
37
+ expanded_query = expanded_query.replace(placeholder, formatted_value)
38
+
39
+ return expanded_query
40
+
41
+
14
42
  """
15
43
  A module for interaction with a sqlite database. Contains functions for query execution,
16
44
  and some common functionality we need to run on the DB
@@ -120,6 +148,7 @@ class EbirdObservations(Connection):
120
148
  query_string = " ".join(query_string)
121
149
  if verbose:
122
150
  print("Query:", query_string)
151
+ print("Expanded query:", expand_sqlite_query(query_string, d))
123
152
  squares_list = self.execute_query((query_string, d))
124
153
  return [sq[0] for sq in squares_list]
125
154
 
@@ -220,6 +249,7 @@ class EbirdObservations(Connection):
220
249
  query_string = " ".join(query_string)
221
250
  if verbose:
222
251
  print("Query:", query_string)
252
+ print("Expanded query:", expand_sqlite_query(query_string, d))
223
253
  r = self.execute_query((query_string, d))
224
254
  if r is None:
225
255
  num_birds = 0
@@ -324,6 +354,7 @@ class EbirdObservations(Connection):
324
354
  query_string = " ".join(query_string)
325
355
  if verbose:
326
356
  print("Query:", query_string)
357
+ print("Expanded query:", expand_sqlite_query(query_string, d))
327
358
  rows = self.execute_query((query_string, d))
328
359
  counts = defaultdict(int)
329
360
  for r in rows:
@@ -380,6 +411,7 @@ class EbirdObservations(Connection):
380
411
  query_string = " ".join(query_string)
381
412
  if verbose:
382
413
  print("Query:", query_string)
414
+ print("Expanded query:", expand_sqlite_query(query_string, d))
383
415
  r = self.execute_query((query_string, d))
384
416
  return [row[0] for row in r]
385
417
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ecoscape-utilities
3
- Version: 0.0.37
3
+ Version: 0.0.38
4
4
  Summary: A collection of EcoScape utilities.
5
5
  Author-email: Luca de Alfaro <luca@ucsc.edu>, Coen Adler <ctadler@ucsc.edu>, Artie Nazarov <anazarov@ucsc.edu>, Natalia Ocampo-Peñuela <nocampop@ucsc.edu>, Jasmine Tai <cjtai@ucsc.edu>, Natalie Valett <nvalett@ucsc.edu>
6
6
  Project-URL: Homepage, https://github.com/ecoscape-earth/ecoscape-utilities
@@ -0,0 +1,8 @@
1
+ ecoscape_utilities/__init__.py,sha256=LXt1rL9JVsjnCmsNZwZ2aoElphIK-koaEDdW6ffZsMQ,50
2
+ ecoscape_utilities/bird_runs.py,sha256=v43PfH_4ojpkTE-EFOJxr0oOW3M9suNm_1zMjZ9P-eI,5409
3
+ ecoscape_utilities/ebird_db.py,sha256=vMezw5AFIrd4RVITWbLpsZlDGBxig5CoVQMzT7XDeNk,28067
4
+ ecoscape_utilities-0.0.38.dist-info/licenses/LICENSE.md,sha256=3vh2mpA_XIR3FJot6a5F9DqktAoq45sEGIRkYjvAEeU,1304
5
+ ecoscape_utilities-0.0.38.dist-info/METADATA,sha256=E9tCnd-2Ipwy9tzDGz30uICoVmJ2mzuxrGUcuuZFGSs,1382
6
+ ecoscape_utilities-0.0.38.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
7
+ ecoscape_utilities-0.0.38.dist-info/top_level.txt,sha256=jLf7iMlySaJg0Vh8z4lbAaqOc5W5ruMgKFvp797CryQ,19
8
+ ecoscape_utilities-0.0.38.dist-info/RECORD,,
@@ -1,8 +0,0 @@
1
- ecoscape_utilities/__init__.py,sha256=LXt1rL9JVsjnCmsNZwZ2aoElphIK-koaEDdW6ffZsMQ,50
2
- ecoscape_utilities/bird_runs.py,sha256=v43PfH_4ojpkTE-EFOJxr0oOW3M9suNm_1zMjZ9P-eI,5409
3
- ecoscape_utilities/ebird_db.py,sha256=gFtsQQaK8SoYl2aFyA-sq0qGRMjs2R1vPc_nohA4S48,26864
4
- ecoscape_utilities-0.0.37.dist-info/licenses/LICENSE.md,sha256=3vh2mpA_XIR3FJot6a5F9DqktAoq45sEGIRkYjvAEeU,1304
5
- ecoscape_utilities-0.0.37.dist-info/METADATA,sha256=uq0uWLLS5_cRjwB6Z0bTe3cnXRRSZuo-JrIfgIi3rKo,1382
6
- ecoscape_utilities-0.0.37.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
7
- ecoscape_utilities-0.0.37.dist-info/top_level.txt,sha256=jLf7iMlySaJg0Vh8z4lbAaqOc5W5ruMgKFvp797CryQ,19
8
- ecoscape_utilities-0.0.37.dist-info/RECORD,,