velocity-python 0.0.70__tar.gz → 0.0.72__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.

Potentially problematic release.


This version of velocity-python might be problematic. Click here for more details.

Files changed (64) hide show
  1. {velocity_python-0.0.70 → velocity_python-0.0.72}/PKG-INFO +1 -1
  2. {velocity_python-0.0.70 → velocity_python-0.0.72}/pyproject.toml +1 -1
  3. {velocity_python-0.0.70 → velocity_python-0.0.72}/src/velocity/__init__.py +1 -1
  4. {velocity_python-0.0.70 → velocity_python-0.0.72}/src/velocity/aws/handlers/lambda_handler.py +1 -1
  5. {velocity_python-0.0.70 → velocity_python-0.0.72}/src/velocity/misc/format.py +32 -18
  6. {velocity_python-0.0.70 → velocity_python-0.0.72}/src/velocity_python.egg-info/PKG-INFO +1 -1
  7. {velocity_python-0.0.70 → velocity_python-0.0.72}/LICENSE +0 -0
  8. {velocity_python-0.0.70 → velocity_python-0.0.72}/README.md +0 -0
  9. {velocity_python-0.0.70 → velocity_python-0.0.72}/setup.cfg +0 -0
  10. {velocity_python-0.0.70 → velocity_python-0.0.72}/src/velocity/aws/__init__.py +0 -0
  11. {velocity_python-0.0.70 → velocity_python-0.0.72}/src/velocity/aws/handlers/__init__.py +0 -0
  12. {velocity_python-0.0.70 → velocity_python-0.0.72}/src/velocity/aws/handlers/context.py +0 -0
  13. {velocity_python-0.0.70 → velocity_python-0.0.72}/src/velocity/aws/handlers/response.py +0 -0
  14. {velocity_python-0.0.70 → velocity_python-0.0.72}/src/velocity/aws/handlers/sqs_handler.py +0 -0
  15. {velocity_python-0.0.70 → velocity_python-0.0.72}/src/velocity/db/__init__.py +0 -0
  16. {velocity_python-0.0.70 → velocity_python-0.0.72}/src/velocity/db/core/__init__.py +0 -0
  17. {velocity_python-0.0.70 → velocity_python-0.0.72}/src/velocity/db/core/column.py +0 -0
  18. {velocity_python-0.0.70 → velocity_python-0.0.72}/src/velocity/db/core/database.py +0 -0
  19. {velocity_python-0.0.70 → velocity_python-0.0.72}/src/velocity/db/core/decorators.py +0 -0
  20. {velocity_python-0.0.70 → velocity_python-0.0.72}/src/velocity/db/core/engine.py +0 -0
  21. {velocity_python-0.0.70 → velocity_python-0.0.72}/src/velocity/db/core/exceptions.py +0 -0
  22. {velocity_python-0.0.70 → velocity_python-0.0.72}/src/velocity/db/core/result.py +0 -0
  23. {velocity_python-0.0.70 → velocity_python-0.0.72}/src/velocity/db/core/row.py +0 -0
  24. {velocity_python-0.0.70 → velocity_python-0.0.72}/src/velocity/db/core/sequence.py +0 -0
  25. {velocity_python-0.0.70 → velocity_python-0.0.72}/src/velocity/db/core/table.py +0 -0
  26. {velocity_python-0.0.70 → velocity_python-0.0.72}/src/velocity/db/core/transaction.py +0 -0
  27. {velocity_python-0.0.70 → velocity_python-0.0.72}/src/velocity/db/servers/__init__.py +0 -0
  28. {velocity_python-0.0.70 → velocity_python-0.0.72}/src/velocity/db/servers/mysql.py +0 -0
  29. {velocity_python-0.0.70 → velocity_python-0.0.72}/src/velocity/db/servers/mysql_reserved.py +0 -0
  30. {velocity_python-0.0.70 → velocity_python-0.0.72}/src/velocity/db/servers/postgres/__init__.py +0 -0
  31. {velocity_python-0.0.70 → velocity_python-0.0.72}/src/velocity/db/servers/postgres/operators.py +0 -0
  32. {velocity_python-0.0.70 → velocity_python-0.0.72}/src/velocity/db/servers/postgres/reserved.py +0 -0
  33. {velocity_python-0.0.70 → velocity_python-0.0.72}/src/velocity/db/servers/postgres/sql.py +0 -0
  34. {velocity_python-0.0.70 → velocity_python-0.0.72}/src/velocity/db/servers/postgres/types.py +0 -0
  35. {velocity_python-0.0.70 → velocity_python-0.0.72}/src/velocity/db/servers/sqlite.py +0 -0
  36. {velocity_python-0.0.70 → velocity_python-0.0.72}/src/velocity/db/servers/sqlite_reserved.py +0 -0
  37. {velocity_python-0.0.70 → velocity_python-0.0.72}/src/velocity/db/servers/sqlserver.py +0 -0
  38. {velocity_python-0.0.70 → velocity_python-0.0.72}/src/velocity/db/servers/sqlserver_reserved.py +0 -0
  39. {velocity_python-0.0.70 → velocity_python-0.0.72}/src/velocity/db/servers/tablehelper.py +0 -0
  40. {velocity_python-0.0.70 → velocity_python-0.0.72}/src/velocity/misc/__init__.py +0 -0
  41. {velocity_python-0.0.70 → velocity_python-0.0.72}/src/velocity/misc/conv/__init__.py +0 -0
  42. {velocity_python-0.0.70 → velocity_python-0.0.72}/src/velocity/misc/conv/iconv.py +0 -0
  43. {velocity_python-0.0.70 → velocity_python-0.0.72}/src/velocity/misc/conv/oconv.py +0 -0
  44. {velocity_python-0.0.70 → velocity_python-0.0.72}/src/velocity/misc/db.py +0 -0
  45. {velocity_python-0.0.70 → velocity_python-0.0.72}/src/velocity/misc/export.py +0 -0
  46. {velocity_python-0.0.70 → velocity_python-0.0.72}/src/velocity/misc/mail.py +0 -0
  47. {velocity_python-0.0.70 → velocity_python-0.0.72}/src/velocity/misc/merge.py +0 -0
  48. {velocity_python-0.0.70 → velocity_python-0.0.72}/src/velocity/misc/timer.py +0 -0
  49. {velocity_python-0.0.70 → velocity_python-0.0.72}/src/velocity/misc/tools.py +0 -0
  50. {velocity_python-0.0.70 → velocity_python-0.0.72}/src/velocity_python.egg-info/SOURCES.txt +0 -0
  51. {velocity_python-0.0.70 → velocity_python-0.0.72}/src/velocity_python.egg-info/dependency_links.txt +0 -0
  52. {velocity_python-0.0.70 → velocity_python-0.0.72}/src/velocity_python.egg-info/requires.txt +0 -0
  53. {velocity_python-0.0.70 → velocity_python-0.0.72}/src/velocity_python.egg-info/top_level.txt +0 -0
  54. {velocity_python-0.0.70 → velocity_python-0.0.72}/tests/test_db.py +0 -0
  55. {velocity_python-0.0.70 → velocity_python-0.0.72}/tests/test_email_processing.py +0 -0
  56. {velocity_python-0.0.70 → velocity_python-0.0.72}/tests/test_format.py +0 -0
  57. {velocity_python-0.0.70 → velocity_python-0.0.72}/tests/test_iconv.py +0 -0
  58. {velocity_python-0.0.70 → velocity_python-0.0.72}/tests/test_merge.py +0 -0
  59. {velocity_python-0.0.70 → velocity_python-0.0.72}/tests/test_oconv.py +0 -0
  60. {velocity_python-0.0.70 → velocity_python-0.0.72}/tests/test_postgres.py +0 -0
  61. {velocity_python-0.0.70 → velocity_python-0.0.72}/tests/test_response.py +0 -0
  62. {velocity_python-0.0.70 → velocity_python-0.0.72}/tests/test_spreadsheet_functions.py +0 -0
  63. {velocity_python-0.0.70 → velocity_python-0.0.72}/tests/test_sql_builder.py +0 -0
  64. {velocity_python-0.0.70 → velocity_python-0.0.72}/tests/test_timer.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: velocity-python
3
- Version: 0.0.70
3
+ Version: 0.0.72
4
4
  Summary: A rapid application development library for interfacing with data storage
5
5
  Author-email: Paul Perez <pperez@codeclubs.org>
6
6
  Project-URL: Homepage, https://codeclubs.org/projects/velocity
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "velocity-python"
3
- version = "0.0.70"
3
+ version = "0.0.72"
4
4
  authors = [
5
5
  { name="Paul Perez", email="pperez@codeclubs.org" },
6
6
  ]
@@ -1,4 +1,4 @@
1
- __version__ = version = "0.0.70"
1
+ __version__ = version = "0.0.72"
2
2
 
3
3
  from . import aws
4
4
  from . import db
@@ -156,7 +156,7 @@ class LambdaHandler:
156
156
  tx.table(helpers.get_tracking_table(user or self.session)).insert(data)
157
157
 
158
158
  def OnActionDefault(self, tx, context):
159
- return {"event": self.aws_event, "postdata": context.postdata}
159
+ return {"event": self.aws_event, "postdata": context.postdata()}
160
160
 
161
161
  def OnActionTracking(self, tx, context):
162
162
  self.track(tx, context.payload().get("data", {}))
@@ -55,25 +55,39 @@ def human_delta(tdelta: timedelta) -> str:
55
55
  return fmt.format(**d)
56
56
 
57
57
 
58
+ import json
59
+ import decimal
60
+ from datetime import datetime, date, time, timedelta
61
+ from types import FunctionType, MethodType
62
+
63
+
58
64
  def to_json(o, datefmt: str = "%Y-%m-%d", timefmt: str = "%H:%M:%S") -> str:
59
- """Serializes an object to JSON, handling special types like Decimal and datetime."""
65
+ """Serializes an object to JSON, handling special types and reporting any unserializable values."""
60
66
 
61
67
  class JsonEncoder(json.JSONEncoder):
62
68
  def default(self, obj):
63
- if hasattr(obj, "to_json"):
64
- return obj.to_json()
65
- elif obj is None:
66
- return None
67
- elif isinstance(obj, decimal.Decimal):
68
- return float(obj)
69
- elif isinstance(obj, datetime):
70
- return obj.strftime(f"{datefmt} {timefmt}")
71
- elif isinstance(obj, date):
72
- return obj.strftime(datefmt)
73
- elif isinstance(obj, time):
74
- return obj.strftime(timefmt)
75
- elif isinstance(obj, timedelta):
76
- return human_delta(obj)
77
- return super().default(obj)
78
-
79
- return json.dumps(o, cls=JsonEncoder)
69
+ try:
70
+ if hasattr(obj, "to_json"):
71
+ return obj.to_json()
72
+ elif isinstance(obj, decimal.Decimal):
73
+ return float(obj)
74
+ elif isinstance(obj, datetime):
75
+ return obj.strftime(f"{datefmt} {timefmt}")
76
+ elif isinstance(obj, date):
77
+ return obj.strftime(datefmt)
78
+ elif isinstance(obj, time):
79
+ return obj.strftime(timefmt)
80
+ elif isinstance(obj, timedelta):
81
+ return str(obj) # Or use `human_delta(obj)` if defined
82
+ elif isinstance(obj, (FunctionType, MethodType)):
83
+ return f"WARNING: unserializable: method {obj.__name__}"
84
+ else:
85
+ return f"WARNING: unserializable: {type(obj).__name__}" + (
86
+ f" ({getattr(obj, '__name__', '')})"
87
+ if hasattr(obj, "__name__")
88
+ else ""
89
+ )
90
+ except Exception as e:
91
+ return f"WARNING: unserializable: {type(obj).__name__} (error: {e})"
92
+
93
+ return json.dumps(o, cls=JsonEncoder, indent=2)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: velocity-python
3
- Version: 0.0.70
3
+ Version: 0.0.72
4
4
  Summary: A rapid application development library for interfacing with data storage
5
5
  Author-email: Paul Perez <pperez@codeclubs.org>
6
6
  Project-URL: Homepage, https://codeclubs.org/projects/velocity