1010 from queries import QueryData
1111 from queries import get_installed_templatetags
1212 from queries import get_python_environment_info
13+ from queries import get_template_dirs
1314 from queries import initialize_django
1415except ImportError :
1516 # Fall back to relative import (when running with python -m)
1617 from .queries import Query
1718 from .queries import QueryData
1819 from .queries import get_installed_templatetags
1920 from .queries import get_python_environment_info
21+ from .queries import get_template_dirs
2022 from .queries import initialize_django
2123
2224
@@ -40,11 +42,19 @@ def to_dict(self) -> dict[str, Any]:
4042 data_dict = asdict (self .data )
4143 # Convert Path objects to strings
4244 for key , value in data_dict .items ():
43- if key in ["sys_base_prefix" , "sys_executable" , "sys_prefix" ]:
44- if value :
45- data_dict [key ] = str (value )
46- elif key == "sys_path" :
45+ # Handle single Path objects
46+ if hasattr (value , "__fspath__" ): # Path-like object
47+ data_dict [key ] = str (value )
48+ # Handle lists of Path objects
49+ elif (
50+ isinstance (value , list )
51+ and value
52+ and hasattr (value [0 ], "__fspath__" )
53+ ):
4754 data_dict [key ] = [str (p ) for p in value ]
55+ # Handle optional Path objects (could be None)
56+ elif value is None :
57+ pass # Keep None as is
4858 d ["data" ] = data_dict
4959 return d
5060
@@ -62,16 +72,19 @@ def handle_request(request: dict[str, Any]) -> DjlsResponse:
6272
6373 args = request .get ("args" )
6474
65- if query == Query .PYTHON_ENV :
75+ if query == Query .DJANGO_INIT :
76+ success , error = initialize_django ()
77+ return DjlsResponse (ok = success , data = None , error = error )
78+
79+ elif query == Query .PYTHON_ENV :
6680 return DjlsResponse (ok = True , data = get_python_environment_info ())
6781
82+ elif query == Query .TEMPLATE_DIRS :
83+ return DjlsResponse (ok = True , data = get_template_dirs ())
84+
6885 elif query == Query .TEMPLATETAGS :
6986 return DjlsResponse (ok = True , data = get_installed_templatetags ())
7087
71- elif query == Query .DJANGO_INIT :
72- success , error = initialize_django ()
73- return DjlsResponse (ok = success , data = None , error = error )
74-
7588 return DjlsResponse (ok = False , error = f"Unhandled query type: { query } " )
7689
7790 except Exception as e :
0 commit comments