dmart 1.4.40.post20__py3-none-any.whl → 1.4.40.post21__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.
dmart/dmart.py CHANGED
@@ -17,12 +17,10 @@ from pathlib import Path
17
17
 
18
18
 
19
19
  script_dir = str(Path(__file__).resolve().parent)
20
- if script_dir not in sys.path:
21
- sys.path.insert(0, script_dir)
22
20
 
23
21
  from hypercorn.config import Config
24
22
  from hypercorn.run import run
25
- from utils.settings import settings
23
+ from dmart.utils.settings import settings
26
24
 
27
25
 
28
26
  commands = """
@@ -49,6 +47,7 @@ sentinel = object()
49
47
 
50
48
 
51
49
  def hypercorn_main(args_list: list[str]) -> int:
50
+ from dmart.utils.settings import settings
52
51
  parser = argparse.ArgumentParser()
53
52
  parser.add_argument(
54
53
  "application",
@@ -261,6 +260,10 @@ def hypercorn_main(args_list: list[str]) -> int:
261
260
  config.backlog = 2000
262
261
  config.workers = 1
263
262
  config.bind = ["localhost:8282"]
263
+ # Allow child processes to find the application
264
+ script_dir = os.path.dirname(os.path.abspath(__file__))
265
+ if script_dir not in sys.path:
266
+ sys.path.insert(0, script_dir)
264
267
  else:
265
268
  config = Config.from_toml(args.config)
266
269
 
@@ -485,10 +488,7 @@ def main():
485
488
 
486
489
  last_import_error = None
487
490
  try:
488
- dmart_dir = Path(__file__).resolve().parent
489
- if str(dmart_dir) not in sys.path:
490
- sys.path.append(str(dmart_dir))
491
- import cli # type: ignore
491
+ from dmart import cli # type: ignore
492
492
  cli.main()
493
493
  return
494
494
  except ImportError as e:
@@ -522,6 +522,8 @@ def main():
522
522
  print("Error: cli.py not found.")
523
523
  sys.exit(1)
524
524
  case "serve":
525
+ from dmart.utils.settings import settings
526
+ from dmart.main import main as server
525
527
  open_cxb = False
526
528
  if "--open-cxb" in args_list:
527
529
  open_cxb = True
@@ -546,10 +548,9 @@ def main():
546
548
  import threading
547
549
  threading.Thread(target=open_browser, daemon=True).start()
548
550
 
549
- from main import main as server
550
551
  asyncio.run(server())
551
552
  case "health-check":
552
- from data_adapters.file.health_check import main as health_check
553
+ from dmart.data_adapters.file.health_check import main as health_check
553
554
  parser = argparse.ArgumentParser(
554
555
  description="This created for doing health check functionality",
555
556
  formatter_class=argparse.ArgumentDefaultsHelpFormatter,
@@ -563,7 +564,7 @@ def main():
563
564
  asyncio.run(health_check(args.type, args.space, args.schemas))
564
565
  print(f'total time: {"{:.2f}".format(time.time() - before_time)} sec')
565
566
  case "create-index":
566
- from data_adapters.file.create_index import main as create_index
567
+ from dmart.data_adapters.file.create_index import main as create_index
567
568
  parser = argparse.ArgumentParser(
568
569
  description="Recreate Redis indices based on the available schema definitions",
569
570
  formatter_class=argparse.ArgumentDefaultsHelpFormatter,
@@ -583,7 +584,7 @@ def main():
583
584
 
584
585
  asyncio.run(create_index(args.space, args.schemas, args.subpaths, args.flushall))
585
586
  case "export":
586
- from utils.exporter import main as exporter, exit_with_error, OUTPUT_FOLDER_NAME, validate_config, extract
587
+ from dmart.utils.exporter import main as exporter, exit_with_error, OUTPUT_FOLDER_NAME, validate_config, extract
587
588
  parser = argparse.ArgumentParser()
588
589
  parser.add_argument(
589
590
  "--config", required=True, help="Json config relative path from the script"
@@ -636,11 +637,12 @@ def main():
636
637
  f"Output path: {os.path.abspath(os.path.join(output_path, OUTPUT_FOLDER_NAME))}"
637
638
  )
638
639
  case "settings":
640
+ from dmart.utils.settings import settings
639
641
  print_formatted(settings.model_dump_json())
640
642
  case "set_password":
641
- import set_admin_passwd # noqa: F401
643
+ from dmart import set_admin_passwd # noqa: F401
642
644
  case "archive":
643
- from data_adapters.file.archive import archive
645
+ from dmart.data_adapters.file.archive import archive
644
646
  parser = argparse.ArgumentParser(
645
647
  description="Script for archiving records from different spaces and subpaths."
646
648
  )
@@ -667,10 +669,10 @@ def main():
667
669
  asyncio.run(archive(space, subpath, schema, olderthan))
668
670
  print("Done.")
669
671
  case "json_to_db":
670
- from data_adapters.sql.json_to_db_migration import main as json_to_db_migration
672
+ from dmart.data_adapters.sql.json_to_db_migration import main as json_to_db_migration
671
673
  asyncio.run(json_to_db_migration())
672
674
  case "db_to_json":
673
- from data_adapters.sql.db_to_json_migration import main as db_to_json_migration
675
+ from dmart.data_adapters.sql.db_to_json_migration import main as db_to_json_migration
674
676
  db_to_json_migration()
675
677
  case "help":
676
678
  print("Available commands:")
@@ -741,6 +743,7 @@ def main():
741
743
  import configparser
742
744
  import tempfile
743
745
 
746
+ from dmart.utils.settings import settings
744
747
  dmart_root = Path(__file__).resolve().parent
745
748
  alembic_ini_path = dmart_root / "alembic.ini"
746
749
 
@@ -821,4 +824,10 @@ def main():
821
824
  sys.exit(e.returncode)
822
825
 
823
826
  if __name__ == "__main__":
827
+ # If installed as a package, we need to ensure the parent of dmart package
828
+ # is in sys.path for child processes to find 'dmart.dmart'
829
+ dmart_pkg_parent = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
830
+ if dmart_pkg_parent not in sys.path:
831
+ sys.path.append(dmart_pkg_parent)
832
+
824
833
  main()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dmart
3
- Version: 1.4.40.post20
3
+ Version: 1.4.40.post21
4
4
  Requires-Python: >=3.11
5
5
  Requires-Dist: fastapi
6
6
  Requires-Dist: pydantic
@@ -8,7 +8,7 @@ dmart/conftest.py,sha256=0ry_zeCmdBNLbm5q115b-pkOrUFYxdsOUXbIMkr7E5Y,362
8
8
  dmart/curl.pypi.sh,sha256=KQ-kgV3_d5mwqoLd4XOwz5s2wRQ7LDVX3z-kvjvp9hA,15631
9
9
  dmart/curl.sh,sha256=lmHSFVr5ft-lc5Aq9LfvKyWfntrfYbnirhzx1EGjp_A,15743
10
10
  dmart/data_generator.py,sha256=CnE-VHEeX7-lAXtqCgbRqR9WHjTuOgeiZcviYrHAmho,2287
11
- dmart/dmart.py,sha256=kXo4X_2owhksqi8AyIy-VnjTil0Ub59kHUEil_h4P-c,32175
11
+ dmart/dmart.py,sha256=eaaggp05-3F0Z-rHgW01TZfFbuk7GhOSbNRtDIEtrWQ,32735
12
12
  dmart/get_settings.py,sha256=Sbe2WCoiK398E7HY4SNLfDN_GmE8knR4M-YJWF31jcg,153
13
13
  dmart/hypercorn_config.toml,sha256=-eryppEG8HBOM_KbFc4dTQePnpyfoW9ZG5aUATU_6yM,50
14
14
  dmart/info.json,sha256=6Kb7MXzVS0PzDZOUXtBoAA3zpxvtRBR0PJnedjBE-v4,123
@@ -483,8 +483,8 @@ dmart/utils/ticket_sys_utils.py,sha256=9QAlW2iiy8KyxQRBDj_WmzS5kKb0aYJmGwd4qzmGV
483
483
  dmart/utils/web_notifier.py,sha256=QM87VVid2grC5lK3NdS1yzz0z1wXljr4GChJOeK86W4,843
484
484
  dmart/utils/templates/activation.html.j2,sha256=XAMKCdoqONoc4ZQucD0yV-Pg5DlHHASZrTVItNS-iBE,640
485
485
  dmart/utils/templates/reminder.html.j2,sha256=aoS8bTs56q4hjAZKsb0jV9c-PIURBELuBOpT_qPZNVU,639
486
- dmart-1.4.40.post20.dist-info/METADATA,sha256=TGrQyNh7QshaAyxcYzXln6xc5wuTDi_v8XtatAy2bak,839
487
- dmart-1.4.40.post20.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
488
- dmart-1.4.40.post20.dist-info/entry_points.txt,sha256=N832M4wG8d2GDw1xztKRVM3TnxpY2QDzvdFE8XaWaG8,43
489
- dmart-1.4.40.post20.dist-info/top_level.txt,sha256=zJo4qk9fUW0BGIR9f4DCfpxaXbvQXH9izIOom6JsyAo,6
490
- dmart-1.4.40.post20.dist-info/RECORD,,
486
+ dmart-1.4.40.post21.dist-info/METADATA,sha256=tDXPuJEXMjftV_fpEETDfHb9kgcYvG_WoPOtBb1_k1M,839
487
+ dmart-1.4.40.post21.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
488
+ dmart-1.4.40.post21.dist-info/entry_points.txt,sha256=N832M4wG8d2GDw1xztKRVM3TnxpY2QDzvdFE8XaWaG8,43
489
+ dmart-1.4.40.post21.dist-info/top_level.txt,sha256=zJo4qk9fUW0BGIR9f4DCfpxaXbvQXH9izIOom6JsyAo,6
490
+ dmart-1.4.40.post21.dist-info/RECORD,,