velocity-python 0.0.34__py3-none-any.whl → 0.0.64__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 velocity-python might be problematic. Click here for more details.

Files changed (33) hide show
  1. velocity/__init__.py +1 -1
  2. velocity/db/core/column.py +25 -105
  3. velocity/db/core/database.py +79 -23
  4. velocity/db/core/decorators.py +84 -47
  5. velocity/db/core/engine.py +179 -184
  6. velocity/db/core/result.py +94 -49
  7. velocity/db/core/row.py +81 -46
  8. velocity/db/core/sequence.py +112 -22
  9. velocity/db/core/table.py +660 -243
  10. velocity/db/core/transaction.py +75 -77
  11. velocity/db/servers/mysql.py +5 -237
  12. velocity/db/servers/mysql_reserved.py +237 -0
  13. velocity/db/servers/postgres/__init__.py +19 -0
  14. velocity/db/servers/postgres/operators.py +23 -0
  15. velocity/db/servers/postgres/reserved.py +254 -0
  16. velocity/db/servers/postgres/sql.py +1041 -0
  17. velocity/db/servers/postgres/types.py +109 -0
  18. velocity/db/servers/sqlite.py +1 -210
  19. velocity/db/servers/sqlite_reserved.py +208 -0
  20. velocity/db/servers/sqlserver.py +1 -316
  21. velocity/db/servers/sqlserver_reserved.py +314 -0
  22. velocity/db/servers/tablehelper.py +277 -0
  23. velocity/misc/conv/iconv.py +277 -91
  24. velocity/misc/conv/oconv.py +5 -4
  25. velocity/misc/db.py +2 -2
  26. velocity/misc/format.py +2 -2
  27. {velocity_python-0.0.34.dist-info → velocity_python-0.0.64.dist-info}/METADATA +6 -6
  28. velocity_python-0.0.64.dist-info/RECORD +47 -0
  29. {velocity_python-0.0.34.dist-info → velocity_python-0.0.64.dist-info}/WHEEL +1 -1
  30. velocity/db/servers/postgres.py +0 -1396
  31. velocity_python-0.0.34.dist-info/RECORD +0 -39
  32. {velocity_python-0.0.34.dist-info → velocity_python-0.0.64.dist-info}/LICENSE +0 -0
  33. {velocity_python-0.0.34.dist-info → velocity_python-0.0.64.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,109 @@
1
+ import decimal
2
+ import datetime
3
+
4
+
5
+ class TYPES:
6
+ """
7
+ A simple mapping of Python types <-> SQL types (for PostgreSQL).
8
+ """
9
+
10
+ TEXT = "TEXT"
11
+ INTEGER = "INTEGER"
12
+ NUMERIC = "NUMERIC"
13
+ DATETIME_TZ = "TIMESTAMP WITH TIME ZONE"
14
+ TIMESTAMP_TZ = "TIMESTAMP WITH TIME ZONE"
15
+ DATETIME = "TIMESTAMP WITHOUT TIME ZONE"
16
+ TIMESTAMP = "TIMESTAMP WITHOUT TIME ZONE"
17
+ DATE = "DATE"
18
+ TIME_TZ = "TIME WITH TIME ZONE"
19
+ TIME = "TIME WITHOUT TIME ZONE"
20
+ BIGINT = "BIGINT"
21
+ SMALLINT = "SMALLINT"
22
+ BOOLEAN = "BOOLEAN"
23
+ BINARY = "BYTEA"
24
+ INTERVAL = "INTERVAL"
25
+
26
+ @classmethod
27
+ def get_type(cls, v):
28
+ """
29
+ Returns a suitable SQL type string for a Python value/object.
30
+ """
31
+ if isinstance(v, str) and v.startswith("@@"):
32
+ # e.g. @@CURRENT_TIMESTAMP => special usage
33
+ return v[2:] or cls.TEXT
34
+ if isinstance(v, str) or v is str:
35
+ return cls.TEXT
36
+ if isinstance(v, bool) or v is bool:
37
+ return cls.BOOLEAN
38
+ if isinstance(v, int) or v is int:
39
+ return cls.BIGINT
40
+ if isinstance(v, float) or v is float:
41
+ return f"{cls.NUMERIC}(19, 6)"
42
+ if isinstance(v, decimal.Decimal) or v is decimal.Decimal:
43
+ return f"{cls.NUMERIC}(19, 6)"
44
+ if isinstance(v, datetime.datetime) or v is datetime.datetime:
45
+ return cls.DATETIME
46
+ if isinstance(v, datetime.date) or v is datetime.date:
47
+ return cls.DATE
48
+ if isinstance(v, datetime.time) or v is datetime.time:
49
+ return cls.TIME
50
+ if isinstance(v, datetime.timedelta) or v is datetime.timedelta:
51
+ return cls.INTERVAL
52
+ if isinstance(v, bytes) or v is bytes:
53
+ return cls.BINARY
54
+ return cls.TEXT
55
+
56
+ @classmethod
57
+ def get_conv(cls, v):
58
+ """
59
+ Returns a base SQL type for expression usage (e.g. CAST).
60
+ """
61
+ if isinstance(v, str) and v.startswith("@@"):
62
+ return v[2:] or cls.TEXT
63
+ if isinstance(v, str) or v is str:
64
+ return cls.TEXT
65
+ if isinstance(v, bool) or v is bool:
66
+ return cls.BOOLEAN
67
+ if isinstance(v, int) or v is int:
68
+ return cls.BIGINT
69
+ if isinstance(v, float) or v is float:
70
+ return cls.NUMERIC
71
+ if isinstance(v, decimal.Decimal) or v is decimal.Decimal:
72
+ return cls.NUMERIC
73
+ if isinstance(v, datetime.datetime) or v is datetime.datetime:
74
+ return cls.DATETIME
75
+ if isinstance(v, datetime.date) or v is datetime.date:
76
+ return cls.DATE
77
+ if isinstance(v, datetime.time) or v is datetime.time:
78
+ return cls.TIME
79
+ if isinstance(v, datetime.timedelta) or v is datetime.timedelta:
80
+ return cls.INTERVAL
81
+ if isinstance(v, bytes) or v is bytes:
82
+ return cls.BINARY
83
+ return cls.TEXT
84
+
85
+ @classmethod
86
+ def py_type(cls, v):
87
+ """
88
+ Returns the Python type that corresponds to an SQL type string.
89
+ """
90
+ v = str(v).upper()
91
+ if v == cls.INTEGER or v == cls.SMALLINT or v == cls.BIGINT:
92
+ return int
93
+ if v == cls.NUMERIC:
94
+ return decimal.Decimal
95
+ if v == cls.TEXT:
96
+ return str
97
+ if v == cls.BOOLEAN:
98
+ return bool
99
+ if v == cls.DATE:
100
+ return datetime.date
101
+ if v == cls.TIME or v == cls.TIME_TZ:
102
+ return datetime.time
103
+ if v == cls.DATETIME or v == cls.TIMESTAMP:
104
+ return datetime.datetime
105
+ if v == cls.INTERVAL:
106
+ return datetime.timedelta
107
+ if v == cls.DATETIME_TZ or v == cls.TIMESTAMP_TZ:
108
+ return datetime.datetime
109
+ raise Exception(f"Unmapped type {v}")
@@ -4,6 +4,7 @@ import decimal
4
4
  import datetime
5
5
 
6
6
  from velocity.db import exceptions
7
+ from .sqlite_reserved import reserved_words
7
8
 
8
9
 
9
10
  def initialize(config):
@@ -965,213 +966,3 @@ class SQL(object):
965
966
  BOOLEAN = "BOOLEAN"
966
967
  BINARY = "BLOB"
967
968
  INTERVAL = "INTERVAL"
968
-
969
-
970
- reserved_words = [
971
- "ADMIN",
972
- "ALIAS",
973
- "ALL",
974
- "ALLOCATE",
975
- "ANALYSE",
976
- "ANALYZE",
977
- "AND",
978
- "ANY",
979
- "ARE",
980
- "ARRAY",
981
- "AS",
982
- "ASC",
983
- "AUTHORIZATION",
984
- "BETWEEN",
985
- "BINARY",
986
- "BLOB",
987
- "BOTH",
988
- "BREADTH",
989
- "CALL",
990
- "CASCADED",
991
- "CASE",
992
- "CAST",
993
- "CATALOG",
994
- "CHECK",
995
- "CLOB",
996
- "COLLATE",
997
- "COLLATION",
998
- "COLUMN",
999
- "COMPLETION",
1000
- "CONNECT",
1001
- "CONNECTION",
1002
- "CONSTRAINT",
1003
- "CONSTRUCTOR",
1004
- "CONTINUE",
1005
- "CORRESPONDING",
1006
- "CREATE",
1007
- "CROSS",
1008
- "CUBE",
1009
- "CURRENT",
1010
- "CURRENT_DATE",
1011
- "CURRENT_PATH",
1012
- "CURRENT_ROLE",
1013
- "CURRENT_TIME",
1014
- "CURRENT_TIMESTAMP",
1015
- "CURRENT_USER",
1016
- "DATA",
1017
- "DATE",
1018
- "DEFAULT",
1019
- "DEFERRABLE",
1020
- "DEPTH",
1021
- "DEREF",
1022
- "DESC",
1023
- "DESCRIBE",
1024
- "DESCRIPTOR",
1025
- "DESTROY",
1026
- "DESTRUCTOR",
1027
- "DETERMINISTIC",
1028
- "DIAGNOSTICS",
1029
- "DICTIONARY",
1030
- "DISCONNECT",
1031
- "DISTINCT",
1032
- "DO",
1033
- "DYNAMIC",
1034
- "ELSE",
1035
- "END",
1036
- "END-EXEC",
1037
- "EQUALS",
1038
- "EVERY",
1039
- "EXCEPT",
1040
- "EXCEPTION",
1041
- "EXEC",
1042
- "FALSE",
1043
- "FIRST",
1044
- "FOR",
1045
- "FOREIGN",
1046
- "FOUND",
1047
- "FREE",
1048
- "FREEZE",
1049
- "FROM",
1050
- "FULL",
1051
- "GENERAL",
1052
- "GO",
1053
- "GOTO",
1054
- "GRANT",
1055
- "GROUP",
1056
- "GROUPING",
1057
- "HAVING",
1058
- "HOST",
1059
- "IDENTITY",
1060
- "IGNORE",
1061
- "ILIKE",
1062
- "IN",
1063
- "INDICATOR",
1064
- "INITIALIZE",
1065
- "INITIALLY",
1066
- "INNER",
1067
- "INTERSECT",
1068
- "INTO",
1069
- "IS",
1070
- "ISNULL",
1071
- "ITERATE",
1072
- "JOIN",
1073
- "LARGE",
1074
- "LAST",
1075
- "LATERAL",
1076
- "LEADING",
1077
- "LEFT",
1078
- "LESS",
1079
- "LIKE",
1080
- "LIMIT",
1081
- "LOCALTIME",
1082
- "LOCALTIMESTAMP",
1083
- "LOCATOR",
1084
- "MAP",
1085
- "MODIFIES",
1086
- "MODIFY",
1087
- "MODULE",
1088
- "NAME",
1089
- "NATURAL",
1090
- "NCLOB",
1091
- "NEW",
1092
- "NOT",
1093
- "NOTNULL",
1094
- "NULL",
1095
- "OBJECT",
1096
- "OFF",
1097
- "OFFSET",
1098
- "OLD",
1099
- "ON",
1100
- "ONLY",
1101
- "OPEN",
1102
- "OPERATION",
1103
- "OR",
1104
- "ORDER",
1105
- "ORDINALITY",
1106
- "OUTER",
1107
- "OUTPUT",
1108
- "OVERLAPS",
1109
- "PAD",
1110
- "PARAMETER",
1111
- "PARAMETERS",
1112
- "PLACING",
1113
- "POSTFIX",
1114
- "PREFIX",
1115
- "PREORDER",
1116
- "PRESERVE",
1117
- "PRIMARY",
1118
- "PUBLIC",
1119
- "READS",
1120
- "RECURSIVE",
1121
- "REF",
1122
- "REFERENCES",
1123
- "REFERENCING",
1124
- "RESULT",
1125
- "RETURN",
1126
- "RIGHT",
1127
- "ROLE",
1128
- "ROLLUP",
1129
- "ROUTINE",
1130
- "ROWS",
1131
- "SAVEPOINT",
1132
- "SCOPE",
1133
- "SEARCH",
1134
- "SECTION",
1135
- "SELECT",
1136
- "SESSION_USER",
1137
- "SETS",
1138
- "SIMILAR",
1139
- "SIZE",
1140
- "SOME",
1141
- "SPACE",
1142
- "SPECIFIC",
1143
- "SPECIFICTYPE",
1144
- "SQL",
1145
- "SQLCODE",
1146
- "SQLERROR",
1147
- "SQLEXCEPTION",
1148
- "SQLSTATE",
1149
- "SQLWARNING",
1150
- "STATE",
1151
- "STATIC",
1152
- "STRUCTURE",
1153
- "SYSTEM_USER",
1154
- "TABLE",
1155
- "TERMINATE",
1156
- "THAN",
1157
- "THEN",
1158
- "TIMESTAMP",
1159
- "TIMEZONE_HOUR",
1160
- "TIMEZONE_MINUTE",
1161
- "TO",
1162
- "TRAILING",
1163
- "TRANSLATION",
1164
- "TRUE",
1165
- "UNDER",
1166
- "UNION",
1167
- "UNIQUE",
1168
- "UNNEST",
1169
- "USER",
1170
- "USING",
1171
- "VALUE",
1172
- "VARIABLE",
1173
- "VERBOSE",
1174
- "WHEN",
1175
- "WHENEVER",
1176
- "WHERE",
1177
- ]
@@ -0,0 +1,208 @@
1
+ reserved_words = [
2
+ "ADMIN",
3
+ "ALIAS",
4
+ "ALL",
5
+ "ALLOCATE",
6
+ "ANALYSE",
7
+ "ANALYZE",
8
+ "AND",
9
+ "ANY",
10
+ "ARE",
11
+ "ARRAY",
12
+ "AS",
13
+ "ASC",
14
+ "AUTHORIZATION",
15
+ "BETWEEN",
16
+ "BINARY",
17
+ "BLOB",
18
+ "BOTH",
19
+ "BREADTH",
20
+ "CALL",
21
+ "CASCADED",
22
+ "CASE",
23
+ "CAST",
24
+ "CATALOG",
25
+ "CHECK",
26
+ "CLOB",
27
+ "COLLATE",
28
+ "COLLATION",
29
+ "COLUMN",
30
+ "COMPLETION",
31
+ "CONNECT",
32
+ "CONNECTION",
33
+ "CONSTRAINT",
34
+ "CONSTRUCTOR",
35
+ "CONTINUE",
36
+ "CORRESPONDING",
37
+ "CREATE",
38
+ "CROSS",
39
+ "CUBE",
40
+ "CURRENT",
41
+ "CURRENT_DATE",
42
+ "CURRENT_PATH",
43
+ "CURRENT_ROLE",
44
+ "CURRENT_TIME",
45
+ "CURRENT_TIMESTAMP",
46
+ "CURRENT_USER",
47
+ "DATA",
48
+ "DATE",
49
+ "DEFAULT",
50
+ "DEFERRABLE",
51
+ "DEPTH",
52
+ "DEREF",
53
+ "DESC",
54
+ "DESCRIBE",
55
+ "DESCRIPTOR",
56
+ "DESTROY",
57
+ "DESTRUCTOR",
58
+ "DETERMINISTIC",
59
+ "DIAGNOSTICS",
60
+ "DICTIONARY",
61
+ "DISCONNECT",
62
+ "DISTINCT",
63
+ "DO",
64
+ "DYNAMIC",
65
+ "ELSE",
66
+ "END",
67
+ "END-EXEC",
68
+ "EQUALS",
69
+ "EVERY",
70
+ "EXCEPT",
71
+ "EXCEPTION",
72
+ "EXEC",
73
+ "FALSE",
74
+ "FIRST",
75
+ "FOR",
76
+ "FOREIGN",
77
+ "FOUND",
78
+ "FREE",
79
+ "FREEZE",
80
+ "FROM",
81
+ "FULL",
82
+ "GENERAL",
83
+ "GO",
84
+ "GOTO",
85
+ "GRANT",
86
+ "GROUP",
87
+ "GROUPING",
88
+ "HAVING",
89
+ "HOST",
90
+ "IDENTITY",
91
+ "IGNORE",
92
+ "ILIKE",
93
+ "IN",
94
+ "INDICATOR",
95
+ "INITIALIZE",
96
+ "INITIALLY",
97
+ "INNER",
98
+ "INTERSECT",
99
+ "INTO",
100
+ "IS",
101
+ "ISNULL",
102
+ "ITERATE",
103
+ "JOIN",
104
+ "LARGE",
105
+ "LAST",
106
+ "LATERAL",
107
+ "LEADING",
108
+ "LEFT",
109
+ "LESS",
110
+ "LIKE",
111
+ "LIMIT",
112
+ "LOCALTIME",
113
+ "LOCALTIMESTAMP",
114
+ "LOCATOR",
115
+ "MAP",
116
+ "MODIFIES",
117
+ "MODIFY",
118
+ "MODULE",
119
+ "NAME",
120
+ "NATURAL",
121
+ "NCLOB",
122
+ "NEW",
123
+ "NOT",
124
+ "NOTNULL",
125
+ "NULL",
126
+ "OBJECT",
127
+ "OFF",
128
+ "OFFSET",
129
+ "OLD",
130
+ "ON",
131
+ "ONLY",
132
+ "OPEN",
133
+ "OPERATION",
134
+ "OR",
135
+ "ORDER",
136
+ "ORDINALITY",
137
+ "OUTER",
138
+ "OUTPUT",
139
+ "OVERLAPS",
140
+ "PAD",
141
+ "PARAMETER",
142
+ "PARAMETERS",
143
+ "PLACING",
144
+ "POSTFIX",
145
+ "PREFIX",
146
+ "PREORDER",
147
+ "PRESERVE",
148
+ "PRIMARY",
149
+ "PUBLIC",
150
+ "READS",
151
+ "RECURSIVE",
152
+ "REF",
153
+ "REFERENCES",
154
+ "REFERENCING",
155
+ "RESULT",
156
+ "RETURN",
157
+ "RIGHT",
158
+ "ROLE",
159
+ "ROLLUP",
160
+ "ROUTINE",
161
+ "ROWS",
162
+ "SAVEPOINT",
163
+ "SCOPE",
164
+ "SEARCH",
165
+ "SECTION",
166
+ "SELECT",
167
+ "SESSION_USER",
168
+ "SETS",
169
+ "SIMILAR",
170
+ "SIZE",
171
+ "SOME",
172
+ "SPACE",
173
+ "SPECIFIC",
174
+ "SPECIFICTYPE",
175
+ "SQL",
176
+ "SQLCODE",
177
+ "SQLERROR",
178
+ "SQLEXCEPTION",
179
+ "SQLSTATE",
180
+ "SQLWARNING",
181
+ "STATE",
182
+ "STATIC",
183
+ "STRUCTURE",
184
+ "SYSTEM_USER",
185
+ "TABLE",
186
+ "TERMINATE",
187
+ "THAN",
188
+ "THEN",
189
+ "TIMESTAMP",
190
+ "TIMEZONE_HOUR",
191
+ "TIMEZONE_MINUTE",
192
+ "TO",
193
+ "TRAILING",
194
+ "TRANSLATION",
195
+ "TRUE",
196
+ "UNDER",
197
+ "UNION",
198
+ "UNIQUE",
199
+ "UNNEST",
200
+ "USER",
201
+ "USING",
202
+ "VALUE",
203
+ "VARIABLE",
204
+ "VERBOSE",
205
+ "WHEN",
206
+ "WHENEVER",
207
+ "WHERE",
208
+ ]