PyMkDB 0.1.0__tar.gz → 0.1.2__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 (69) hide show
  1. {pymkdb-0.1.0 → pymkdb-0.1.2}/PKG-INFO +2 -2
  2. {pymkdb-0.1.0 → pymkdb-0.1.2}/PyMkDB.egg-info/PKG-INFO +2 -2
  3. pymkdb-0.1.2/PyMkDB.egg-info/SOURCES.txt +57 -0
  4. pymkdb-0.1.2/PyMkDB.egg-info/entry_points.txt +2 -0
  5. pymkdb-0.1.2/PyMkDB.egg-info/top_level.txt +1 -0
  6. {pymkdb-0.1.0 → pymkdb-0.1.2}/README.md +1 -1
  7. {pymkdb-0.1.0/pymkdb → pymkdb-0.1.2/mkdb}/cli.py +4 -4
  8. {pymkdb-0.1.0/src → pymkdb-0.1.2/mkdb}/config/db.py +3 -3
  9. {pymkdb-0.1.0/src → pymkdb-0.1.2/mkdb}/config/server.py +1 -1
  10. {pymkdb-0.1.0/src → pymkdb-0.1.2/mkdb}/db/__init__.py +12 -12
  11. {pymkdb-0.1.0/src → pymkdb-0.1.2/mkdb}/db/maintenance/task_scheduler.py +1 -1
  12. {pymkdb-0.1.0/src → pymkdb-0.1.2/mkdb}/db/objects/store.py +18 -18
  13. {pymkdb-0.1.0/src → pymkdb-0.1.2/mkdb}/db/parity/parity_manager.py +2 -2
  14. {pymkdb-0.1.0/src → pymkdb-0.1.2/mkdb}/db/query/full_text_index.py +1 -1
  15. {pymkdb-0.1.0/src → pymkdb-0.1.2/mkdb}/db/query/query_engine.py +5 -5
  16. {pymkdb-0.1.0/src → pymkdb-0.1.2/mkdb}/db/query_workers/__init__.py +2 -2
  17. {pymkdb-0.1.0/src → pymkdb-0.1.2/mkdb}/db/query_workers/dispatcher.py +2 -2
  18. {pymkdb-0.1.0/src → pymkdb-0.1.2/mkdb}/db/query_workers/worker.py +2 -2
  19. {pymkdb-0.1.0/src → pymkdb-0.1.2/mkdb}/runtime/__init__.py +2 -2
  20. {pymkdb-0.1.0/src → pymkdb-0.1.2/mkdb}/server/coms/actions.py +3 -3
  21. {pymkdb-0.1.0/src → pymkdb-0.1.2/mkdb}/server/coms/http_handlers.py +3 -3
  22. {pymkdb-0.1.0/src → pymkdb-0.1.2/mkdb}/server/coms/socket.py +3 -3
  23. {pymkdb-0.1.0/src → pymkdb-0.1.2/mkdb}/server/control/api/actions.py +27 -27
  24. pymkdb-0.1.2/mkdb/server/control/files/config.html +934 -0
  25. pymkdb-0.1.2/mkdb/server/control/files/home.html +1033 -0
  26. pymkdb-0.1.2/mkdb/server/control/files/login.html +319 -0
  27. pymkdb-0.1.2/mkdb/server/control/files/query.html +777 -0
  28. pymkdb-0.1.2/mkdb/server/control/files/security.html +1545 -0
  29. pymkdb-0.1.2/mkdb/server/control/files/store-config.html +1761 -0
  30. pymkdb-0.1.2/mkdb/server/control/files/stores.html +1126 -0
  31. {pymkdb-0.1.0/src → pymkdb-0.1.2/mkdb}/server/control/server.py +3 -3
  32. {pymkdb-0.1.0/src → pymkdb-0.1.2/mkdb}/server/event_log.py +1 -1
  33. {pymkdb-0.1.0 → pymkdb-0.1.2}/pyproject.toml +6 -3
  34. pymkdb-0.1.0/PyMkDB.egg-info/SOURCES.txt +0 -57
  35. pymkdb-0.1.0/PyMkDB.egg-info/entry_points.txt +0 -2
  36. pymkdb-0.1.0/PyMkDB.egg-info/top_level.txt +0 -3
  37. pymkdb-0.1.0/pymkdb/__init__.py +0 -6
  38. pymkdb-0.1.0/sdk/__init__.py +0 -1
  39. pymkdb-0.1.0/sdk/connection.py +0 -225
  40. pymkdb-0.1.0/sdk/delta.py +0 -19
  41. pymkdb-0.1.0/sdk/http_connection.py +0 -180
  42. pymkdb-0.1.0/sdk/mkdb_client.py +0 -226
  43. pymkdb-0.1.0/sdk/responses.py +0 -154
  44. {pymkdb-0.1.0 → pymkdb-0.1.2}/PyMkDB.egg-info/dependency_links.txt +0 -0
  45. {pymkdb-0.1.0 → pymkdb-0.1.2}/PyMkDB.egg-info/requires.txt +0 -0
  46. {pymkdb-0.1.0/src → pymkdb-0.1.2/mkdb}/__init__.py +0 -0
  47. {pymkdb-0.1.0/src → pymkdb-0.1.2/mkdb}/db/cache/__init__.py +0 -0
  48. {pymkdb-0.1.0/src → pymkdb-0.1.2/mkdb}/db/cache/ram_cache.py +0 -0
  49. {pymkdb-0.1.0/src → pymkdb-0.1.2/mkdb}/db/cache/write_queue.py +0 -0
  50. {pymkdb-0.1.0/src → pymkdb-0.1.2/mkdb}/db/maintenance/__init__.py +0 -0
  51. {pymkdb-0.1.0/src → pymkdb-0.1.2/mkdb}/db/maintenance/compactor.py +0 -0
  52. {pymkdb-0.1.0/src → pymkdb-0.1.2/mkdb}/db/parity/__init__.py +0 -0
  53. {pymkdb-0.1.0/src → pymkdb-0.1.2/mkdb}/db/query/__init__.py +0 -0
  54. {pymkdb-0.1.0/src → pymkdb-0.1.2/mkdb}/db/query/numeric_index.py +0 -0
  55. {pymkdb-0.1.0/src → pymkdb-0.1.2/mkdb}/db/query/tokenizer.py +0 -0
  56. {pymkdb-0.1.0/src → pymkdb-0.1.2/mkdb}/db/query_workers/task.py +0 -0
  57. {pymkdb-0.1.0/src → pymkdb-0.1.2/mkdb}/db/requesting/main.py +0 -0
  58. {pymkdb-0.1.0/src → pymkdb-0.1.2/mkdb}/db/storage/__init__.py +0 -0
  59. {pymkdb-0.1.0/src → pymkdb-0.1.2/mkdb}/db/storage/blob_store.py +0 -0
  60. {pymkdb-0.1.0/src → pymkdb-0.1.2/mkdb}/db/storage/index_manager.py +0 -0
  61. {pymkdb-0.1.0/src → pymkdb-0.1.2/mkdb}/db/storage/log_manager.py +0 -0
  62. {pymkdb-0.1.0/src → pymkdb-0.1.2/mkdb}/db/storage/serializer.py +0 -0
  63. {pymkdb-0.1.0/src → pymkdb-0.1.2/mkdb}/filing/__init__.py +0 -0
  64. {pymkdb-0.1.0/src → pymkdb-0.1.2/mkdb}/objects/__init__.py +0 -0
  65. {pymkdb-0.1.0/src → pymkdb-0.1.2/mkdb}/server/__init__.py +0 -0
  66. {pymkdb-0.1.0/src → pymkdb-0.1.2/mkdb}/server/coms/http.py +0 -0
  67. {pymkdb-0.1.0/src → pymkdb-0.1.2/mkdb}/server/coms/metrics.py +0 -0
  68. {pymkdb-0.1.0/src → pymkdb-0.1.2/mkdb}/server/coms/socket_protocol.py +0 -0
  69. {pymkdb-0.1.0 → pymkdb-0.1.2}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: PyMkDB
3
- Version: 0.1.0
3
+ Version: 0.1.2
4
4
  Summary: A log-structured, partitioned NoSQL database engine with full-text search, numeric indexes, and dual TCP/HTTP protocols.
5
5
  Author: MNG
6
6
  License: MIT
@@ -53,7 +53,7 @@ MkDB is a Custom Log-Structured Merge & Partitioned Redundant Storage Engine bui
53
53
  ### Starting the Server
54
54
  MkDB operates as a CLI tool. Launch the engine by pointing it to your desired database directory (which must contain a `config.json` file configuring your stores and network bindings):
55
55
  ```bash
56
- mkdb /path/to/your/db
56
+ python mkdb.py /path/to/your/db
57
57
  ```
58
58
  Once running, the database will host both TCP socket and HTTP interfaces as specified in your `config.json`. The web control panel is accessible via your browser (check server output for the bound port, normally `http://localhost:<port>`).
59
59
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: PyMkDB
3
- Version: 0.1.0
3
+ Version: 0.1.2
4
4
  Summary: A log-structured, partitioned NoSQL database engine with full-text search, numeric indexes, and dual TCP/HTTP protocols.
5
5
  Author: MNG
6
6
  License: MIT
@@ -53,7 +53,7 @@ MkDB is a Custom Log-Structured Merge & Partitioned Redundant Storage Engine bui
53
53
  ### Starting the Server
54
54
  MkDB operates as a CLI tool. Launch the engine by pointing it to your desired database directory (which must contain a `config.json` file configuring your stores and network bindings):
55
55
  ```bash
56
- mkdb /path/to/your/db
56
+ python mkdb.py /path/to/your/db
57
57
  ```
58
58
  Once running, the database will host both TCP socket and HTTP interfaces as specified in your `config.json`. The web control panel is accessible via your browser (check server output for the bound port, normally `http://localhost:<port>`).
59
59
 
@@ -0,0 +1,57 @@
1
+ README.md
2
+ pyproject.toml
3
+ PyMkDB.egg-info/PKG-INFO
4
+ PyMkDB.egg-info/SOURCES.txt
5
+ PyMkDB.egg-info/dependency_links.txt
6
+ PyMkDB.egg-info/entry_points.txt
7
+ PyMkDB.egg-info/requires.txt
8
+ PyMkDB.egg-info/top_level.txt
9
+ mkdb/__init__.py
10
+ mkdb/cli.py
11
+ mkdb/config/db.py
12
+ mkdb/config/server.py
13
+ mkdb/db/__init__.py
14
+ mkdb/db/cache/__init__.py
15
+ mkdb/db/cache/ram_cache.py
16
+ mkdb/db/cache/write_queue.py
17
+ mkdb/db/maintenance/__init__.py
18
+ mkdb/db/maintenance/compactor.py
19
+ mkdb/db/maintenance/task_scheduler.py
20
+ mkdb/db/objects/store.py
21
+ mkdb/db/parity/__init__.py
22
+ mkdb/db/parity/parity_manager.py
23
+ mkdb/db/query/__init__.py
24
+ mkdb/db/query/full_text_index.py
25
+ mkdb/db/query/numeric_index.py
26
+ mkdb/db/query/query_engine.py
27
+ mkdb/db/query/tokenizer.py
28
+ mkdb/db/query_workers/__init__.py
29
+ mkdb/db/query_workers/dispatcher.py
30
+ mkdb/db/query_workers/task.py
31
+ mkdb/db/query_workers/worker.py
32
+ mkdb/db/requesting/main.py
33
+ mkdb/db/storage/__init__.py
34
+ mkdb/db/storage/blob_store.py
35
+ mkdb/db/storage/index_manager.py
36
+ mkdb/db/storage/log_manager.py
37
+ mkdb/db/storage/serializer.py
38
+ mkdb/filing/__init__.py
39
+ mkdb/objects/__init__.py
40
+ mkdb/runtime/__init__.py
41
+ mkdb/server/__init__.py
42
+ mkdb/server/event_log.py
43
+ mkdb/server/coms/actions.py
44
+ mkdb/server/coms/http.py
45
+ mkdb/server/coms/http_handlers.py
46
+ mkdb/server/coms/metrics.py
47
+ mkdb/server/coms/socket.py
48
+ mkdb/server/coms/socket_protocol.py
49
+ mkdb/server/control/server.py
50
+ mkdb/server/control/api/actions.py
51
+ mkdb/server/control/files/config.html
52
+ mkdb/server/control/files/home.html
53
+ mkdb/server/control/files/login.html
54
+ mkdb/server/control/files/query.html
55
+ mkdb/server/control/files/security.html
56
+ mkdb/server/control/files/store-config.html
57
+ mkdb/server/control/files/stores.html
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ mkdb = mkdb.cli:main
@@ -0,0 +1 @@
1
+ mkdb
@@ -30,7 +30,7 @@ MkDB is a Custom Log-Structured Merge & Partitioned Redundant Storage Engine bui
30
30
  ### Starting the Server
31
31
  MkDB operates as a CLI tool. Launch the engine by pointing it to your desired database directory (which must contain a `config.json` file configuring your stores and network bindings):
32
32
  ```bash
33
- mkdb /path/to/your/db
33
+ python mkdb.py /path/to/your/db
34
34
  ```
35
35
  Once running, the database will host both TCP socket and HTTP interfaces as specified in your `config.json`. The web control panel is accessible via your browser (check server output for the bound port, normally `http://localhost:<port>`).
36
36
 
@@ -12,10 +12,10 @@ import sys
12
12
 
13
13
  def main():
14
14
  from colorama import Fore
15
- from src.db import mkdb
16
- from src.config.db import mkdb_config
17
- from src.filing import read_json, write_json
18
- from src.runtime import runtime_settings
15
+ from mkdb.db import mkdb
16
+ from mkdb.config.db import mkdb_config
17
+ from mkdb.filing import read_json, write_json
18
+ from mkdb.runtime import runtime_settings
19
19
 
20
20
  print(f"""{Fore.CYAN}
21
21
  ╔═══════════════════════════════════════╗
@@ -1,8 +1,8 @@
1
1
  import os
2
2
 
3
- from src.filing import write_json
4
- from src.config.server import control_server, socket_server, http_server
5
- from src.objects import base_object
3
+ from mkdb.filing import write_json
4
+ from mkdb.config.server import control_server, socket_server, http_server
5
+ from mkdb.objects import base_object
6
6
 
7
7
  class query_worker_config(base_object):
8
8
  def __init__(self, data:dict={}):
@@ -1,4 +1,4 @@
1
- from src.objects import base_object
1
+ from mkdb.objects import base_object
2
2
 
3
3
  class server_address_config(base_object):
4
4
  def __init__(self, data:dict={}):
@@ -3,13 +3,13 @@ import time
3
3
  from typing import Union
4
4
 
5
5
  from colorama import Fore
6
- from src.config.db import mkdb_config
7
- from src.server.coms.http import HTTPServer
6
+ from mkdb.config.db import mkdb_config
7
+ from mkdb.server.coms.http import HTTPServer
8
8
 
9
9
 
10
10
  class mkdb:
11
11
  def __init__(self, config:Union[dict, mkdb_config]):
12
- from src.db.objects.store import store
12
+ from mkdb.db.objects.store import store
13
13
 
14
14
  if type(config) == dict:
15
15
  config = mkdb_config(config)
@@ -56,7 +56,7 @@ class mkdb:
56
56
 
57
57
  os.makedirs(os.path.join(self.file_path, "stores"), exist_ok=True)
58
58
  for store_name, store_config in self.config.stores.items():
59
- from src.db.objects.store import store
59
+ from mkdb.db.objects.store import store
60
60
  if store_name not in self.stores:
61
61
  s = store(self, store_config)
62
62
  self.stores[store_name] = s
@@ -71,8 +71,8 @@ class mkdb:
71
71
  print("Starting servers...")
72
72
  self._started_at = time.time()
73
73
  if self.config.servers.http_server.enabled:
74
- from src.server.coms.http import HTTPServer
75
- from src.server.coms.http_handlers import HTTPDataHandler
74
+ from mkdb.server.coms.http import HTTPServer
75
+ from mkdb.server.coms.http_handlers import HTTPDataHandler
76
76
  HTTPDataHandler.database = self
77
77
  self._servers["http"] = HTTPServer(
78
78
  name="Communication-HTTP",
@@ -82,7 +82,7 @@ class mkdb:
82
82
  )
83
83
 
84
84
  if self.config.servers.socket_server.enabled:
85
- from src.server.coms.socket import SocketServer
85
+ from mkdb.server.coms.socket import SocketServer
86
86
  _sock_srv = SocketServer(
87
87
  host=self.config.servers.socket_server.address.host,
88
88
  port=self.config.servers.socket_server.address.port,
@@ -95,7 +95,7 @@ class mkdb:
95
95
  self._servers["socket"] = _sock_srv
96
96
 
97
97
  if self.config.servers.control_server.enabled:
98
- from src.server.control.server import start_control_server
98
+ from mkdb.server.control.server import start_control_server
99
99
  self._servers["control"] = start_control_server(
100
100
  host=self.config.servers.control_server.address.host,
101
101
  port=self.config.servers.control_server.address.port,
@@ -143,8 +143,8 @@ class mkdb:
143
143
  if name == "http":
144
144
  if not cfg.http_server.enabled:
145
145
  return
146
- from src.server.coms.http import HTTPServer
147
- from src.server.coms.http_handlers import HTTPDataHandler
146
+ from mkdb.server.coms.http import HTTPServer
147
+ from mkdb.server.coms.http_handlers import HTTPDataHandler
148
148
  HTTPDataHandler.database = self
149
149
  self._servers["http"] = HTTPServer(
150
150
  name="Communication-HTTP",
@@ -155,7 +155,7 @@ class mkdb:
155
155
  elif name == "socket":
156
156
  if not cfg.socket_server.enabled:
157
157
  return
158
- from src.server.coms.socket import SocketServer
158
+ from mkdb.server.coms.socket import SocketServer
159
159
  srv = SocketServer(
160
160
  host=cfg.socket_server.address.host,
161
161
  port=cfg.socket_server.address.port,
@@ -169,7 +169,7 @@ class mkdb:
169
169
  elif name == "control":
170
170
  if not cfg.control_server.enabled:
171
171
  return
172
- from src.server.control.server import start_control_server
172
+ from mkdb.server.control.server import start_control_server
173
173
  self._servers["control"] = start_control_server(
174
174
  host=cfg.control_server.address.host,
175
175
  port=cfg.control_server.address.port,
@@ -49,7 +49,7 @@ class TaskScheduler:
49
49
  store = self._store
50
50
  if store.log_manager is None or store._write_queue is None:
51
51
  return
52
- from src.db.maintenance.compactor import Compactor
52
+ from mkdb.db.maintenance.compactor import Compactor
53
53
  compactor = Compactor(store)
54
54
 
55
55
  segments = store.log_manager.list_segments()
@@ -1,18 +1,18 @@
1
1
  import os
2
2
 
3
- from src.db import mkdb
4
- from src.config.db import store_config as _store_config
5
- from src.db.query_workers import QueryDispatcher
6
- from src.db.storage.log_manager import LogManager
7
- from src.db.storage.index_manager import IndexManager
8
- from src.db.storage import blob_store
9
- from src.db.storage import serializer as _serializer
10
- from src.db.cache.ram_cache import RamCache
11
- from src.db.cache.write_queue import WriteQueue
12
- from src.db.query.query_engine import QueryEngine, QuerySyntaxError
13
- from src.db.maintenance.compactor import Compactor
14
- from src.db.maintenance.task_scheduler import TaskScheduler
15
- from src.db.parity.parity_manager import ParityManager
3
+ from mkdb.db import mkdb
4
+ from mkdb.config.db import store_config as _store_config
5
+ from mkdb.db.query_workers import QueryDispatcher
6
+ from mkdb.db.storage.log_manager import LogManager
7
+ from mkdb.db.storage.index_manager import IndexManager
8
+ from mkdb.db.storage import blob_store
9
+ from mkdb.db.storage import serializer as _serializer
10
+ from mkdb.db.cache.ram_cache import RamCache
11
+ from mkdb.db.cache.write_queue import WriteQueue
12
+ from mkdb.db.query.query_engine import QueryEngine, QuerySyntaxError
13
+ from mkdb.db.maintenance.compactor import Compactor
14
+ from mkdb.db.maintenance.task_scheduler import TaskScheduler
15
+ from mkdb.db.parity.parity_manager import ParityManager
16
16
 
17
17
 
18
18
  class store:
@@ -60,7 +60,7 @@ class store:
60
60
  service=self.config.name,
61
61
  )
62
62
  print(f"Store '{self.config.name}' initialized at {self.store_path}")
63
- from src.server.event_log import emit as _emit
63
+ from mkdb.server.event_log import emit as _emit
64
64
  _emit("info", f"store:{self.config.name}", f"Store loaded from {self.store_path}")
65
65
 
66
66
  # Parity manager — boot verification runs at startup
@@ -218,8 +218,8 @@ class store:
218
218
  if self.log_manager is None or self.index_manager is None:
219
219
  raise RuntimeError("Store is not set up. Call setup() first.")
220
220
  blob_threshold = getattr(self.config.file_config, "blob_threshold", 5 * 1024 * 1024)
221
- from src.db.storage import serializer as _serializer
222
- from src.db.storage import blob_store
221
+ from mkdb.db.storage import serializer as _serializer
222
+ from mkdb.db.storage import blob_store
223
223
  line_str = _serializer.serialize_record(record_id, flat_dict)
224
224
  if len(line_str.encode("utf-8")) > blob_threshold:
225
225
  seg, offset, size = blob_store.write_blob(self.store_path, record_id, line_str)
@@ -241,7 +241,7 @@ class store:
241
241
  seg, offset, size = entry
242
242
  if self.log_manager is None:
243
243
  raise RuntimeError("Store is not set up. Call setup() first.")
244
- from src.db.storage import serializer as _serializer
244
+ from mkdb.db.storage import serializer as _serializer
245
245
  line_str = self.log_manager.read(seg, offset, size)
246
246
  _, flat_dict = _serializer.deserialize_record(line_str)
247
247
  if self._ram_cache is not None:
@@ -264,7 +264,7 @@ class store:
264
264
 
265
265
  def teardown(self) -> None:
266
266
  """Flush and close storage handles. Called during server shutdown."""
267
- from src.server.event_log import emit as _emit
267
+ from mkdb.server.event_log import emit as _emit
268
268
  _emit("info", f"store:{self.config.name}", "Store shutting down — flushing writes")
269
269
  if self._task_scheduler is not None:
270
270
  self._task_scheduler.stop()
@@ -142,7 +142,7 @@ class ParityManager:
142
142
  "verify_and_repair: segment %03d had corruption — repaired and rewritten",
143
143
  seq_int,
144
144
  )
145
- from src.server.event_log import emit as _emit
145
+ from mkdb.server.event_log import emit as _emit
146
146
  _emit("recovery", f"store:{self.service}",
147
147
  f"Segment {self.service}_{seq_int:03d}.log had corruption — repaired via Reed-Solomon")
148
148
  tmp_path = log_path + ".tmp"
@@ -160,7 +160,7 @@ class ParityManager:
160
160
  because it is still being appended to — its parity is always regenerated
161
161
  fresh instead so subsequent rollover-based parity generation is correct.
162
162
  """
163
- from src.server.event_log import emit as _emit
163
+ from mkdb.server.event_log import emit as _emit
164
164
  all_segs = log_manager.list_segments()
165
165
  active = log_manager.active_segment
166
166
  for seq_int in all_segs:
@@ -12,7 +12,7 @@ to disk before each query and at each explicit save() call.
12
12
  """
13
13
 
14
14
  import os
15
- from src.db.query.tokenizer import tokenize
15
+ from mkdb.db.query.tokenizer import tokenize
16
16
 
17
17
 
18
18
  class FullTextIndex:
@@ -53,8 +53,8 @@ class QueryEngine:
53
53
  kept on disk only — queries read from the file; mutations are buffered
54
54
  and flushed before each query.
55
55
  """
56
- from src.db.query.full_text_index import FullTextIndex
57
- from src.db.query.numeric_index import NumericIndex
56
+ from mkdb.db.query.full_text_index import FullTextIndex
57
+ from mkdb.db.query.numeric_index import NumericIndex
58
58
 
59
59
  schema = getattr(self._store.config, "schema_config", None)
60
60
  if schema is None:
@@ -142,9 +142,9 @@ class QueryEngine:
142
142
  Backfill the index for a single field by scanning all log segments.
143
143
  Safe to call from a background thread — reads only, no writes to log.
144
144
  """
145
- from src.db.query.full_text_index import FullTextIndex
146
- from src.db.query.numeric_index import NumericIndex
147
- from src.db.storage import serializer as _ser
145
+ from mkdb.db.query.full_text_index import FullTextIndex
146
+ from mkdb.db.query.numeric_index import NumericIndex
147
+ from mkdb.db.storage import serializer as _ser
148
148
 
149
149
  store = self._store
150
150
  if store.log_manager is None or store.index_manager is None:
@@ -10,7 +10,7 @@ QueryTask — the picklable unit of work; mostly internal
10
10
  OPERATIONS — frozenset of valid operation strings
11
11
  """
12
12
 
13
- from src.db.query_workers.dispatcher import QueryDispatcher
14
- from src.db.query_workers.task import QueryTask, OPERATIONS
13
+ from mkdb.db.query_workers.dispatcher import QueryDispatcher
14
+ from mkdb.db.query_workers.task import QueryTask, OPERATIONS
15
15
 
16
16
  __all__ = ["QueryDispatcher", "QueryTask", "OPERATIONS"]
@@ -32,8 +32,8 @@ import threading
32
32
  import uuid
33
33
  from typing import Any
34
34
 
35
- from src.db.query_workers.task import QueryTask
36
- from src.db.query_workers.worker import (
35
+ from mkdb.db.query_workers.task import QueryTask
36
+ from mkdb.db.query_workers.worker import (
37
37
  WORKER_SENTINEL,
38
38
  worker_process_main,
39
39
  worker_thread_main,
@@ -139,8 +139,8 @@ def _read(store_name: str, params: dict, cache: _WorkerCache, base_path: str) ->
139
139
  return cached
140
140
 
141
141
  # TODO(WS-1): seek by byte offset from IndexManager / LogManager
142
- # from src.db.storage.index_manager import IndexManager
143
- # from src.db.storage.log_manager import LogManager
142
+ # from mkdb.db.storage.index_manager import IndexManager
143
+ # from mkdb.db.storage.log_manager import LogManager
144
144
  # idx = IndexManager(base_path, store_name); idx.load()
145
145
  # lmgr = LogManager(base_path, store_name)
146
146
  # seg, offset, size = idx.get(record_id)
@@ -1,5 +1,5 @@
1
- from src.objects import runtime_options as __runtime_options__
2
- from src.objects import base_object
1
+ from mkdb.objects import runtime_options as __runtime_options__
2
+ from mkdb.objects import base_object
3
3
 
4
4
  class runtime_args(base_object):
5
5
  def __init__(self, data: dict = {}):
@@ -6,7 +6,7 @@ read / write / delete / query logic so nothing is duplicated.
6
6
 
7
7
  Usage
8
8
  -----
9
- from src.server.coms.actions import execute, ActionResult
9
+ from mkdb.server.coms.actions import execute, ActionResult
10
10
 
11
11
  result = execute(database, "read", store_name, {"record_id": rid},
12
12
  client_key="alice", transport="http")
@@ -22,7 +22,7 @@ import time
22
22
  from dataclasses import dataclass
23
23
  from typing import Any, Callable, Optional
24
24
 
25
- from src.server.coms import metrics as _metrics
25
+ from mkdb.server.coms import metrics as _metrics
26
26
 
27
27
  logger = logging.getLogger(__name__)
28
28
 
@@ -196,7 +196,7 @@ def _do_query(store_obj, store_name: str, params: dict, client_key: str, transpo
196
196
  result.get("count", 0), client_key, transport,
197
197
  )
198
198
  try:
199
- from src.server.event_log import emit as _emit
199
+ from mkdb.server.event_log import emit as _emit
200
200
  _emit(
201
201
  "warning", f"store:{store_name}",
202
202
  f"Slow query ({duration_ms:.1f} ms ≥ {threshold_ms:.0f} ms threshold): "
@@ -20,8 +20,8 @@ import time
20
20
  from http.server import BaseHTTPRequestHandler
21
21
  from urllib.parse import urlparse
22
22
 
23
- from src.server.coms import metrics as _metrics
24
- from src.server.coms.actions import execute as _execute
23
+ from mkdb.server.coms import metrics as _metrics
24
+ from mkdb.server.coms.actions import execute as _execute
25
25
 
26
26
  logger = logging.getLogger(__name__)
27
27
 
@@ -240,7 +240,7 @@ class HTTPDataHandler(BaseHTTPRequestHandler):
240
240
  self._json(401, {"status": "error", "message": "Invalid credentials format", "code": 401})
241
241
  return True
242
242
 
243
- from src.server.control.server import verify_password
243
+ from mkdb.server.control.server import verify_password
244
244
  user = db.config.users.get(username)
245
245
  if user is None or not verify_password(password, user.password_hash):
246
246
  self._json(403, {"status": "error", "message": "Invalid username or password", "code": 403})
@@ -39,8 +39,8 @@ import uuid
39
39
  from dataclasses import dataclass
40
40
  from typing import Optional
41
41
 
42
- from src.server.coms.socket_protocol import read_frame, write_frame
43
- from src.server.coms.actions import execute as _execute
42
+ from mkdb.server.coms.socket_protocol import read_frame, write_frame
43
+ from mkdb.server.coms.actions import execute as _execute
44
44
 
45
45
  logger = logging.getLogger(__name__)
46
46
 
@@ -246,7 +246,7 @@ class SocketServer:
246
246
  password = str(auth_msg.get("password", ""))
247
247
 
248
248
  if has_users:
249
- from src.server.control.server import verify_password
249
+ from mkdb.server.control.server import verify_password
250
250
  user = db.config.users.get(username)
251
251
  if user is None or not verify_password(password, user.password_hash):
252
252
  write_frame(conn, {"type": "error", "error": "Invalid credentials"})