dmart 1.4.40.post21__py3-none-any.whl → 1.4.40.post22__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/__init__.py CHANGED
@@ -1,7 +0,0 @@
1
- import os
2
- import sys
3
-
4
-
5
- _pkg_dir = os.path.dirname(__file__)
6
- if _pkg_dir not in sys.path:
7
- sys.path.insert(0, _pkg_dir)
dmart/dmart.py CHANGED
@@ -14,6 +14,7 @@ import warnings
14
14
  import webbrowser
15
15
  import re
16
16
  from pathlib import Path
17
+ from multiprocessing import freeze_support
17
18
 
18
19
 
19
20
  script_dir = str(Path(__file__).resolve().parent)
@@ -261,9 +262,14 @@ def hypercorn_main(args_list: list[str]) -> int:
261
262
  config.workers = 1
262
263
  config.bind = ["localhost:8282"]
263
264
  # 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)
265
+ dmart_dir = os.path.dirname(os.path.abspath(__file__))
266
+ dmart_pkg_parent = os.path.dirname(dmart_dir)
267
+ if dmart_pkg_parent not in sys.path:
268
+ sys.path.insert(0, dmart_pkg_parent)
269
+
270
+ # Ensure dmart_dir itself is NOT in sys.path
271
+ if dmart_dir in sys.path:
272
+ sys.path.remove(dmart_dir)
267
273
  else:
268
274
  config = Config.from_toml(args.config)
269
275
 
@@ -422,6 +428,8 @@ def main():
422
428
 
423
429
  match command:
424
430
  case "hyper":
431
+ from multiprocessing import freeze_support
432
+ freeze_support()
425
433
  hypercorn_main(args_list)
426
434
  case "cli":
427
435
  config_file = None
@@ -761,7 +769,7 @@ def main():
761
769
 
762
770
  config.set('alembic', 'sqlalchemy.url', db_url)
763
771
  config.set('alembic', 'script_location', str(dmart_root / "alembic"))
764
- config.set('alembic', 'prepend_sys_path', str(dmart_root))
772
+ config.set('alembic', 'prepend_sys_path', os.path.dirname(dmart_root))
765
773
 
766
774
  temp_config_path = ""
767
775
  try:
@@ -824,10 +832,26 @@ def main():
824
832
  sys.exit(e.returncode)
825
833
 
826
834
  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__)))
835
+ freeze_support()
836
+ # If we are running as a script (e.g. during multiprocessing spawn),
837
+ # we need to ensure the parent of dmart package is in sys.path
838
+ # so that 'import dmart' works correctly.
839
+ # However, we must NOT add the directory containing dmart.py itself
840
+ # to sys.path, as that would make 'dmart' a module instead of a package.
841
+
842
+ # Path to this file: .../site-packages/dmart/dmart.py
843
+ # dmart_dir: .../site-packages/dmart
844
+ # dmart_pkg_parent: .../site-packages
845
+ dmart_dir = os.path.dirname(os.path.abspath(__file__))
846
+ dmart_pkg_parent = os.path.dirname(dmart_dir)
847
+
830
848
  if dmart_pkg_parent not in sys.path:
831
849
  sys.path.append(dmart_pkg_parent)
850
+
851
+ # Ensure dmart_dir itself is NOT in sys.path to avoid module/package conflict
852
+ if dmart_dir in sys.path:
853
+ sys.path.remove(dmart_dir)
854
+ if "" in sys.path:
855
+ sys.path.remove("")
832
856
 
833
857
  main()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dmart
3
- Version: 1.4.40.post21
3
+ Version: 1.4.40.post22
4
4
  Requires-Python: >=3.11
5
5
  Requires-Dist: fastapi
6
6
  Requires-Dist: pydantic
@@ -1,4 +1,4 @@
1
- dmart/__init__.py,sha256=xHodcATn-JYaoi3_TVDimR_UWG_ux9uLePUNQDzHhsY,122
1
+ dmart/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
2
  dmart/alembic.ini,sha256=wQweByyHQm-EI8BQkE0SHNRjULJ6Xn5jqgvv88IT5Sg,3738
3
3
  dmart/bundler.py,sha256=so8ZJResb1PcOH5vboa_mpFAdYr_T8u8DbbFXd570Lg,1704
4
4
  dmart/cli.py,sha256=TkZVc0bDT32nXJxNd_ZVqwKaq6pbMUOXxYRXfEaKYSI,41611
@@ -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=eaaggp05-3F0Z-rHgW01TZfFbuk7GhOSbNRtDIEtrWQ,32735
11
+ dmart/dmart.py,sha256=AF_9WBX0bJwD7jc4J_w8DykWFfto4CjRIJwINb2RLuY,33668
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.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,,
486
+ dmart-1.4.40.post22.dist-info/METADATA,sha256=9YYBfmV4--BLFQwl3BZAolOVISR06FWRqAfXzn43Qf4,839
487
+ dmart-1.4.40.post22.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
488
+ dmart-1.4.40.post22.dist-info/entry_points.txt,sha256=N832M4wG8d2GDw1xztKRVM3TnxpY2QDzvdFE8XaWaG8,43
489
+ dmart-1.4.40.post22.dist-info/top_level.txt,sha256=zJo4qk9fUW0BGIR9f4DCfpxaXbvQXH9izIOom6JsyAo,6
490
+ dmart-1.4.40.post22.dist-info/RECORD,,