django-language-server/python/djls/scripts/django_setup.py

31 lines
857 B
Python

from __future__ import annotations
import json
def get_django_setup_info():
from django.conf import settings
from django.template.engine import Engine
return {
"installed_apps": list(settings.INSTALLED_APPS),
"templatetags": [
{
"name": tag_name,
"library": module_name.split(".")[-1],
"doc": tag_func.__doc__ if hasattr(tag_func, "__doc__") else None,
}
for module_name, library in (
[("", lib) for lib in Engine.get_default().template_builtins]
+ sorted(Engine.get_default().template_libraries.items())
)
for tag_name, tag_func in library.tags.items()
],
}
if __name__ == "__main__":
import django
django.setup()
print(json.dumps(get_django_setup_info()))