velocity-python 0.0.152__tar.gz → 0.0.154__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.
- {velocity_python-0.0.152 → velocity_python-0.0.154}/PKG-INFO +1 -1
- {velocity_python-0.0.152 → velocity_python-0.0.154}/pyproject.toml +1 -1
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/__init__.py +1 -1
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/db/core/table.py +68 -33
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/db/core/transaction.py +15 -3
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity_python.egg-info/PKG-INFO +1 -1
- {velocity_python-0.0.152 → velocity_python-0.0.154}/LICENSE +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/README.md +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/setup.cfg +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/app/__init__.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/app/invoices.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/app/orders.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/app/payments.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/app/purchase_orders.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/app/tests/__init__.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/app/tests/test_email_processing.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/app/tests/test_payment_profile_sorting.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/app/tests/test_spreadsheet_functions.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/aws/__init__.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/aws/amplify.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/aws/handlers/__init__.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/aws/handlers/base_handler.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/aws/handlers/context.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/aws/handlers/exceptions.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/aws/handlers/lambda_handler.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/aws/handlers/mixins/__init__.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/aws/handlers/mixins/activity_tracker.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/aws/handlers/mixins/aws_session_mixin.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/aws/handlers/mixins/error_handler.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/aws/handlers/mixins/legacy_mixin.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/aws/handlers/mixins/standard_mixin.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/aws/handlers/response.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/aws/handlers/sqs_handler.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/aws/tests/__init__.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/aws/tests/test_lambda_handler_json_serialization.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/aws/tests/test_response.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/db/__init__.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/db/core/__init__.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/db/core/column.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/db/core/database.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/db/core/decorators.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/db/core/engine.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/db/core/result.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/db/core/row.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/db/core/sequence.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/db/exceptions.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/db/servers/__init__.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/db/servers/base/__init__.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/db/servers/base/initializer.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/db/servers/base/operators.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/db/servers/base/sql.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/db/servers/base/types.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/db/servers/mysql/__init__.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/db/servers/mysql/operators.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/db/servers/mysql/reserved.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/db/servers/mysql/sql.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/db/servers/mysql/types.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/db/servers/postgres/__init__.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/db/servers/postgres/operators.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/db/servers/postgres/reserved.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/db/servers/postgres/sql.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/db/servers/postgres/types.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/db/servers/sqlite/__init__.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/db/servers/sqlite/operators.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/db/servers/sqlite/reserved.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/db/servers/sqlite/sql.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/db/servers/sqlite/types.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/db/servers/sqlserver/__init__.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/db/servers/sqlserver/operators.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/db/servers/sqlserver/reserved.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/db/servers/sqlserver/sql.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/db/servers/sqlserver/types.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/db/servers/tablehelper.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/db/tests/__init__.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/db/tests/common_db_test.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/db/tests/postgres/__init__.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/db/tests/postgres/common.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/db/tests/postgres/test_column.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/db/tests/postgres/test_connections.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/db/tests/postgres/test_database.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/db/tests/postgres/test_engine.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/db/tests/postgres/test_general_usage.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/db/tests/postgres/test_imports.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/db/tests/postgres/test_result.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/db/tests/postgres/test_row.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/db/tests/postgres/test_row_comprehensive.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/db/tests/postgres/test_schema_locking.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/db/tests/postgres/test_schema_locking_unit.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/db/tests/postgres/test_sequence.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/db/tests/postgres/test_sql_comprehensive.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/db/tests/postgres/test_table.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/db/tests/postgres/test_table_comprehensive.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/db/tests/postgres/test_transaction.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/db/tests/sql/__init__.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/db/tests/sql/common.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/db/tests/sql/test_postgres_select_advanced.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/db/tests/sql/test_postgres_select_variances.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/db/tests/test_cursor_rowcount_fix.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/db/tests/test_db_utils.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/db/tests/test_postgres.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/db/tests/test_postgres_unchanged.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/db/tests/test_process_error_robustness.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/db/tests/test_result_caching.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/db/tests/test_result_sql_aware.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/db/tests/test_row_get_missing_column.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/db/tests/test_schema_locking_initializers.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/db/tests/test_schema_locking_simple.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/db/tests/test_sql_builder.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/db/tests/test_tablehelper.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/db/utils.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/misc/__init__.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/misc/conv/__init__.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/misc/conv/iconv.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/misc/conv/oconv.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/misc/db.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/misc/export.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/misc/format.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/misc/mail.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/misc/merge.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/misc/tests/__init__.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/misc/tests/test_db.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/misc/tests/test_fix.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/misc/tests/test_format.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/misc/tests/test_iconv.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/misc/tests/test_merge.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/misc/tests/test_oconv.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/misc/tests/test_original_error.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/misc/tests/test_timer.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/misc/timer.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/misc/tools.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity_python.egg-info/SOURCES.txt +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity_python.egg-info/dependency_links.txt +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity_python.egg-info/requires.txt +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity_python.egg-info/top_level.txt +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/tests/test_sys_modified_count_postgres_demo.py +0 -0
- {velocity_python-0.0.152 → velocity_python-0.0.154}/tests/test_where_clause_validation.py +0 -0
|
@@ -321,51 +321,88 @@ class Table:
|
|
|
321
321
|
sys_id = self.tx.execute(sql, vals).scalar()
|
|
322
322
|
return self.row(sys_id, lock=lock)
|
|
323
323
|
|
|
324
|
+
def _normalize_lookup_where(self, where):
|
|
325
|
+
if where is None:
|
|
326
|
+
raise Exception("None is not allowed as a primary key.")
|
|
327
|
+
if isinstance(where, Row):
|
|
328
|
+
return dict(where.pk)
|
|
329
|
+
if isinstance(where, int):
|
|
330
|
+
return {"sys_id": where}
|
|
331
|
+
if not isinstance(where, Mapping):
|
|
332
|
+
raise TypeError(
|
|
333
|
+
"Lookup criteria must be an int, Row, or mapping of column -> value."
|
|
334
|
+
)
|
|
335
|
+
return dict(where)
|
|
336
|
+
|
|
337
|
+
def _select_sys_ids(
|
|
338
|
+
self,
|
|
339
|
+
where,
|
|
340
|
+
*,
|
|
341
|
+
lock=None,
|
|
342
|
+
orderby=None,
|
|
343
|
+
skip_locked=None,
|
|
344
|
+
limit=2,
|
|
345
|
+
):
|
|
346
|
+
select_kwargs = {
|
|
347
|
+
"where": where,
|
|
348
|
+
"lock": lock,
|
|
349
|
+
"orderby": orderby,
|
|
350
|
+
"skip_locked": skip_locked,
|
|
351
|
+
}
|
|
352
|
+
if limit is not None:
|
|
353
|
+
select_kwargs["qty"] = limit
|
|
354
|
+
return self.select("sys_id", **select_kwargs).all()
|
|
355
|
+
|
|
356
|
+
def _clean_where_for_insert(self, where):
|
|
357
|
+
clean = {}
|
|
358
|
+
for key, val in where.items():
|
|
359
|
+
if not isinstance(key, str):
|
|
360
|
+
continue
|
|
361
|
+
if set("<>!=%").intersection(key):
|
|
362
|
+
continue
|
|
363
|
+
clean.setdefault(key, val)
|
|
364
|
+
return clean
|
|
365
|
+
|
|
324
366
|
def get(self, where, lock=None, use_where=False):
|
|
325
367
|
"""
|
|
326
368
|
Gets or creates a row matching `where`. If multiple rows match, raises DuplicateRowsFoundError.
|
|
327
369
|
If none match, a new row is created with the non-operator aspects of `where`.
|
|
328
370
|
"""
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
if isinstance(where, int):
|
|
332
|
-
where = {"sys_id": where}
|
|
333
|
-
result = self.select("sys_id", where=where, lock=lock).all()
|
|
371
|
+
lookup = self._normalize_lookup_where(where)
|
|
372
|
+
result = self._select_sys_ids(lookup, lock=lock, limit=2)
|
|
334
373
|
if len(result) > 1:
|
|
335
|
-
sql = self.select("sys_id", sql_only=True, where=
|
|
374
|
+
sql = self.select("sys_id", sql_only=True, where=lookup, lock=lock)
|
|
336
375
|
raise exceptions.DuplicateRowsFoundError(
|
|
337
376
|
f"More than one entry found. {sql}"
|
|
338
377
|
)
|
|
339
378
|
if not result:
|
|
340
|
-
new_data =
|
|
341
|
-
for k in list(new_data.keys()):
|
|
342
|
-
if set("<>!=%").intersection(k):
|
|
343
|
-
new_data.pop(k)
|
|
379
|
+
new_data = self._clean_where_for_insert(lookup)
|
|
344
380
|
return self.new(new_data, lock=lock)
|
|
345
381
|
if use_where:
|
|
346
|
-
return Row(self,
|
|
382
|
+
return Row(self, lookup, lock=lock)
|
|
347
383
|
return Row(self, result[0]["sys_id"], lock=lock)
|
|
348
384
|
|
|
349
385
|
@return_default(None)
|
|
350
|
-
def find(self, where, lock=None, use_where=False):
|
|
386
|
+
def find(self, where, lock=None, use_where=False, raise_if_missing=False):
|
|
351
387
|
"""
|
|
352
|
-
Finds a single row matching `where`, or returns None if none found
|
|
353
|
-
Raises DuplicateRowsFoundError if multiple rows match.
|
|
388
|
+
Finds a single row matching `where`, or returns None if none found unless
|
|
389
|
+
``raise_if_missing`` is True. Raises DuplicateRowsFoundError if multiple rows match.
|
|
354
390
|
"""
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
if isinstance(where, int):
|
|
358
|
-
where = {"sys_id": where}
|
|
359
|
-
result = self.select("sys_id", where=where, lock=lock).all()
|
|
391
|
+
lookup = self._normalize_lookup_where(where)
|
|
392
|
+
result = self._select_sys_ids(lookup, lock=lock, limit=2)
|
|
360
393
|
if not result:
|
|
394
|
+
if raise_if_missing:
|
|
395
|
+
raise LookupError(
|
|
396
|
+
f"No rows found in `{self.name}` for criteria: {lookup!r}"
|
|
397
|
+
)
|
|
361
398
|
return None
|
|
362
399
|
if len(result) > 1:
|
|
363
|
-
sql = self.select("sys_id", sql_only=True, where=
|
|
400
|
+
sql = self.select("sys_id", sql_only=True, where=lookup, lock=lock)
|
|
364
401
|
raise exceptions.DuplicateRowsFoundError(
|
|
365
402
|
f"More than one entry found. {sql}"
|
|
366
403
|
)
|
|
367
404
|
if use_where:
|
|
368
|
-
return Row(self,
|
|
405
|
+
return Row(self, lookup, lock=lock)
|
|
369
406
|
return Row(self, result[0]["sys_id"], lock=lock)
|
|
370
407
|
|
|
371
408
|
one = find
|
|
@@ -383,23 +420,21 @@ class Table:
|
|
|
383
420
|
"""
|
|
384
421
|
Finds the first matching row (by `orderby`) or creates one if `create_new=True` and none found.
|
|
385
422
|
"""
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
423
|
+
lookup = self._normalize_lookup_where(where)
|
|
424
|
+
results = self._select_sys_ids(
|
|
425
|
+
lookup,
|
|
426
|
+
lock=lock,
|
|
427
|
+
orderby=orderby,
|
|
428
|
+
skip_locked=skip_locked,
|
|
429
|
+
limit=1,
|
|
430
|
+
)
|
|
393
431
|
if not results:
|
|
394
432
|
if create_new:
|
|
395
|
-
new_data =
|
|
396
|
-
for k in list(new_data.keys()):
|
|
397
|
-
if set("<>!=%").intersection(k):
|
|
398
|
-
new_data.pop(k)
|
|
433
|
+
new_data = self._clean_where_for_insert(lookup)
|
|
399
434
|
return self.new(new_data, lock=lock)
|
|
400
435
|
return None
|
|
401
436
|
if use_where:
|
|
402
|
-
return Row(self,
|
|
437
|
+
return Row(self, lookup, lock=lock)
|
|
403
438
|
return Row(self, results[0]["sys_id"], lock=lock)
|
|
404
439
|
|
|
405
440
|
def primary_keys(self):
|
|
@@ -168,9 +168,21 @@ class Transaction:
|
|
|
168
168
|
"""Shortcut to table.get() with optional ``use_where`` passthrough."""
|
|
169
169
|
return self.table(tablename).get(where, lock=lock, use_where=use_where)
|
|
170
170
|
|
|
171
|
-
def find(
|
|
172
|
-
|
|
173
|
-
|
|
171
|
+
def find(
|
|
172
|
+
self,
|
|
173
|
+
tablename,
|
|
174
|
+
where,
|
|
175
|
+
lock=None,
|
|
176
|
+
use_where=False,
|
|
177
|
+
raise_if_missing=False,
|
|
178
|
+
):
|
|
179
|
+
"""Shortcut to table.find() with ``use_where``/``raise_if_missing`` passthrough."""
|
|
180
|
+
return self.table(tablename).find(
|
|
181
|
+
where,
|
|
182
|
+
lock=lock,
|
|
183
|
+
use_where=use_where,
|
|
184
|
+
raise_if_missing=raise_if_missing,
|
|
185
|
+
)
|
|
174
186
|
|
|
175
187
|
def column(self, tablename, colname):
|
|
176
188
|
"""
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/app/tests/test_email_processing.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/aws/handlers/base_handler.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/aws/handlers/lambda_handler.py
RENAMED
|
File without changes
|
{velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/aws/handlers/mixins/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/aws/handlers/mixins/legacy_mixin.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/aws/handlers/sqs_handler.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/db/servers/base/__init__.py
RENAMED
|
File without changes
|
{velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/db/servers/base/initializer.py
RENAMED
|
File without changes
|
{velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/db/servers/base/operators.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/db/servers/mysql/__init__.py
RENAMED
|
File without changes
|
{velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/db/servers/mysql/operators.py
RENAMED
|
File without changes
|
{velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/db/servers/mysql/reserved.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/db/servers/postgres/__init__.py
RENAMED
|
File without changes
|
{velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/db/servers/postgres/operators.py
RENAMED
|
File without changes
|
{velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/db/servers/postgres/reserved.py
RENAMED
|
File without changes
|
|
File without changes
|
{velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/db/servers/postgres/types.py
RENAMED
|
File without changes
|
{velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/db/servers/sqlite/__init__.py
RENAMED
|
File without changes
|
{velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/db/servers/sqlite/operators.py
RENAMED
|
File without changes
|
{velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/db/servers/sqlite/reserved.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/db/servers/sqlserver/__init__.py
RENAMED
|
File without changes
|
{velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/db/servers/sqlserver/operators.py
RENAMED
|
File without changes
|
{velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/db/servers/sqlserver/reserved.py
RENAMED
|
File without changes
|
{velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/db/servers/sqlserver/sql.py
RENAMED
|
File without changes
|
{velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/db/servers/sqlserver/types.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/db/tests/postgres/__init__.py
RENAMED
|
File without changes
|
{velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/db/tests/postgres/common.py
RENAMED
|
File without changes
|
{velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/db/tests/postgres/test_column.py
RENAMED
|
File without changes
|
|
File without changes
|
{velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/db/tests/postgres/test_database.py
RENAMED
|
File without changes
|
{velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/db/tests/postgres/test_engine.py
RENAMED
|
File without changes
|
|
File without changes
|
{velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/db/tests/postgres/test_imports.py
RENAMED
|
File without changes
|
{velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/db/tests/postgres/test_result.py
RENAMED
|
File without changes
|
{velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/db/tests/postgres/test_row.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/db/tests/postgres/test_sequence.py
RENAMED
|
File without changes
|
|
File without changes
|
{velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/db/tests/postgres/test_table.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/db/tests/test_postgres_unchanged.py
RENAMED
|
File without changes
|
|
File without changes
|
{velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/db/tests/test_result_caching.py
RENAMED
|
File without changes
|
{velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/db/tests/test_result_sql_aware.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/db/tests/test_sql_builder.py
RENAMED
|
File without changes
|
{velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/db/tests/test_tablehelper.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity/misc/tests/test_original_error.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity_python.egg-info/SOURCES.txt
RENAMED
|
File without changes
|
|
File without changes
|
{velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity_python.egg-info/requires.txt
RENAMED
|
File without changes
|
{velocity_python-0.0.152 → velocity_python-0.0.154}/src/velocity_python.egg-info/top_level.txt
RENAMED
|
File without changes
|
{velocity_python-0.0.152 → velocity_python-0.0.154}/tests/test_sys_modified_count_postgres_demo.py
RENAMED
|
File without changes
|
|
File without changes
|