ab_engine 0.2.4__tar.gz → 0.2.6__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.
Files changed (30) hide show
  1. {ab_engine-0.2.4 → ab_engine-0.2.6}/PKG-INFO +1 -1
  2. {ab_engine-0.2.4 → ab_engine-0.2.6}/ab_engine/db/driver.py +2 -1
  3. {ab_engine-0.2.4 → ab_engine-0.2.6}/ab_engine/env/config.py +6 -1
  4. {ab_engine-0.2.4 → ab_engine-0.2.6}/ab_engine/error.yaml +2 -0
  5. {ab_engine-0.2.4 → ab_engine-0.2.6}/ab_engine/rpc/json_rpc.py +7 -6
  6. {ab_engine-0.2.4 → ab_engine-0.2.6}/ab_engine/rpc/rpc.py +1 -1
  7. {ab_engine-0.2.4 → ab_engine-0.2.6}/ab_engine.egg-info/PKG-INFO +1 -1
  8. {ab_engine-0.2.4 → ab_engine-0.2.6}/pyproject.toml +1 -1
  9. {ab_engine-0.2.4 → ab_engine-0.2.6}/ab_engine/__init__.py +0 -0
  10. {ab_engine-0.2.4 → ab_engine-0.2.6}/ab_engine/class_tools.py +0 -0
  11. {ab_engine-0.2.4 → ab_engine-0.2.6}/ab_engine/db/__init__.py +0 -0
  12. {ab_engine-0.2.4 → ab_engine-0.2.6}/ab_engine/db/driver_mysql.py +0 -0
  13. {ab_engine-0.2.4 → ab_engine-0.2.6}/ab_engine/db/driver_postgresql.py +0 -0
  14. {ab_engine-0.2.4 → ab_engine-0.2.6}/ab_engine/db/driver_sqlite.py +0 -0
  15. {ab_engine-0.2.4 → ab_engine-0.2.6}/ab_engine/db/driver_valkey.py +0 -0
  16. {ab_engine-0.2.4 → ab_engine-0.2.6}/ab_engine/db/option.py +0 -0
  17. {ab_engine-0.2.4 → ab_engine-0.2.6}/ab_engine/db/processor.py +0 -0
  18. {ab_engine-0.2.4 → ab_engine-0.2.6}/ab_engine/db/table.py +0 -0
  19. {ab_engine-0.2.4 → ab_engine-0.2.6}/ab_engine/env/__init__.py +0 -0
  20. {ab_engine-0.2.4 → ab_engine-0.2.6}/ab_engine/env/db_context.py +0 -0
  21. {ab_engine-0.2.4 → ab_engine-0.2.6}/ab_engine/env/timer.py +0 -0
  22. {ab_engine-0.2.4 → ab_engine-0.2.6}/ab_engine/error.py +0 -0
  23. {ab_engine-0.2.4 → ab_engine-0.2.6}/ab_engine/rpc/__init__.py +0 -0
  24. {ab_engine-0.2.4 → ab_engine-0.2.6}/ab_engine/rpc/fnc.py +0 -0
  25. {ab_engine-0.2.4 → ab_engine-0.2.6}/ab_engine.egg-info/SOURCES.txt +0 -0
  26. {ab_engine-0.2.4 → ab_engine-0.2.6}/ab_engine.egg-info/dependency_links.txt +0 -0
  27. {ab_engine-0.2.4 → ab_engine-0.2.6}/ab_engine.egg-info/requires.txt +0 -0
  28. {ab_engine-0.2.4 → ab_engine-0.2.6}/ab_engine.egg-info/top_level.txt +0 -0
  29. {ab_engine-0.2.4 → ab_engine-0.2.6}/readme.md +0 -0
  30. {ab_engine-0.2.4 → ab_engine-0.2.6}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ab_engine
3
- Version: 0.2.4
3
+ Version: 0.2.6
4
4
  Summary: Library of standard modules
5
5
  Author-email: Andrew Bulatov <BulatovAndrew@gmail.com>
6
6
  License-Expression: MIT
@@ -165,7 +165,8 @@ class Driver(ABC):
165
165
  return reencode(var)
166
166
  else:
167
167
  var = ','.join(['NULL' if x is None else in_arr_str(x) for x in var])
168
- return reencode(f"{{{var.replace("'", "''")}}}")
168
+ var = var.replace("'", "''")
169
+ return reencode(f"{{{var}}}")
169
170
  elif isinstance(var, set):
170
171
  var = ','.join('NULL' if x is None else in_arr_str(x) for x in var)
171
172
  return reencode(f"{{{var}}}")
@@ -3,7 +3,10 @@ from datetime import datetime
3
3
  from json import dumps, loads
4
4
  from json5 import loads as json5_load
5
5
  from yaml import safe_load as yaml_load
6
- from tomllib import loads as toml_load
6
+ try:
7
+ from tomllib import loads as toml_load
8
+ except:
9
+ toml_load = None
7
10
  from pathlib import Path
8
11
  from os import environ as ENV
9
12
  import logging as LOG
@@ -123,6 +126,8 @@ class Config:
123
126
  case ".yaml" | ".yml":
124
127
  return yaml_load(data)
125
128
  case ".toml":
129
+ if toml_load is None:
130
+ raise error("BAD_FORMAT", format_name=fn)
126
131
  return toml_load(data)
127
132
  case _:
128
133
  raise error("BAD_FORMAT", format_name=fn)
@@ -39,6 +39,8 @@
39
39
  class: RuntimeError
40
40
  msg: ключ не может содержать знаков операций, открывающих круглых скобок и пробелов {key}
41
41
  ### Ошибки JsonRPC
42
+ - code: -32000
43
+ msg: Ошибка сервера # Server error -32000 to -32099 Reserved for implementation-defined server-errors.
42
44
  - code: -32700
43
45
  msg: Ошибка разбора сообщения # "Parse error"
44
46
  - code: -32600
@@ -11,12 +11,11 @@ class JSON_RPC:
11
11
 
12
12
  @staticmethod
13
13
  def rpc_error(code, data=None, header=None):
14
-
14
+ if not isinstance(code, int) or code > -32000 or code < -32099:
15
+ code = -32000
15
16
  err = error_msg(code)
16
17
  if err.message is None:
17
- err.message = "Server error (UNKNOWN!!)"
18
- if not isinstance(code, int) or code > -32000 or code < -32099:
19
- code = -32000
18
+ err.message = "Server error"
20
19
  err.code = code
21
20
  code = {
22
21
  "code": err.code,
@@ -74,8 +73,10 @@ class JSON_RPC:
74
73
  if "id" in message:
75
74
  res["id"] = message["id"]
76
75
  except Exception as e:
77
- Config().log_level
78
- res = self.rpc_error(-32000, data=e, header=message)
76
+ if Config().log_level.value > LogLevel.DEBUG.value:
77
+ res = self.rpc_error(-32000, header=message)
78
+ else:
79
+ res = self.rpc_error(-32000, data=e, header=message)
79
80
  if res.get("error") is not None:
80
81
  self.log(f"{f}: ERROR:\n{res['error']}!!")
81
82
  if env.in_transaction:
@@ -250,7 +250,7 @@ def register_list(defs:list | dict, self=None)->None:
250
250
  else:
251
251
  match fnc.get("type", "db"):
252
252
  case "db":
253
- SqlFnc(x, f"{r'\JSON'} {fnc['function']}(JSONB)", help=fnc.get('help'))
253
+ SqlFnc(x, f"\\JSON {fnc['function']}(JSONB)", help=fnc.get('help'))
254
254
  case "self":
255
255
  fn = getattr(self, fnc['function'])
256
256
  PythonFnc(x, fn, help = fnc.get('help') )
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ab_engine
3
- Version: 0.2.4
3
+ Version: 0.2.6
4
4
  Summary: Library of standard modules
5
5
  Author-email: Andrew Bulatov <BulatovAndrew@gmail.com>
6
6
  License-Expression: MIT
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "ab_engine"
3
- version = "0.2.4"
3
+ version = "0.2.6"
4
4
  description = "Library of standard modules"
5
5
  authors = [{name = "Andrew Bulatov", email = "BulatovAndrew@gmail.com"}]
6
6
  license = "MIT"
File without changes
File without changes
File without changes