11from __future__ import annotations
22
33from typing import TypedDict , Literal
4- import json
54import os
65import sys
76from platformdirs import user_data_dir
@@ -79,10 +78,10 @@ class ModelSpec(TypedDict):
7978}
8079
8180TIER_MODELS : dict [str , list [str ]] = {
82- "nano" : ["yolo_nano" , "yolo_nano_face" ],
83- "small" : ["yolo_small" , "yolo_small_face" ],
81+ "nano" : ["yolo_nano" , "yolo_nano_face" ],
82+ "small" : ["yolo_small" , "yolo_small_face" ],
8483 "medium" : ["yolo_medium" , "yolo_medium_face" ],
85- "required" : ["facenet" ], # Required model; not user-selectable
84+ "required" : ["facenet" ], # Required model; not user-selectable
8685}
8786
8887USER_DATA_MODELS = os .path .join (user_data_dir ("PictoPy" ), "models" )
@@ -91,7 +90,7 @@ class ModelSpec(TypedDict):
9190
9291def ensure_model_exports_directory () -> None :
9392 """Create the active model exports directory if it does not exist."""
94- if getattr (sys , ' frozen' , False ):
93+ if getattr (sys , " frozen" , False ):
9594 os .makedirs (USER_DATA_MODELS , exist_ok = True )
9695 else :
9796 os .makedirs (LOCAL_ONNX_EXPORTS , exist_ok = True )
@@ -100,11 +99,11 @@ def ensure_model_exports_directory() -> None:
10099def get_model_path (key : str ) -> str :
101100 filename = MODEL_REGISTRY [key ]["filename" ]
102101 ensure_model_exports_directory ()
103-
102+
104103 # In production (compiled by PyInstaller), use the platform-appropriate user data directory.
105- if getattr (sys , ' frozen' , False ):
104+ if getattr (sys , " frozen" , False ):
106105 return os .path .normpath (os .path .join (USER_DATA_MODELS , filename ))
107-
106+
108107 # In development, strictly use the local repo folder
109108 return os .path .normpath (os .path .join (LOCAL_ONNX_EXPORTS , filename ))
110109
@@ -115,4 +114,3 @@ def get_model_key_from_path(model_path: str) -> str | None:
115114 if spec ["filename" ].lower () == target_filename :
116115 return key
117116 return None
118-
0 commit comments