Запуск Джанго в Хи

Я пишу веб-сервер Django, используя Hy, диалект Lisp, который компилируется в Python ast. Я был в состоянии написать все на Hy, кроме конкретных .py файлы, которые Django ищет автоматически.

  • myproject/settings.py
  • myproject/urls.py
  • app/management/commands/my_management_command.py

Я хотел бы написать вышеупомянутые файлы также на Hy вместо Python.

Я могу обойти это ограничение, используя эти .py файлы для импорта .hy файлы, но я бы предпочел более элегантное решение. Есть ли способ заставить Джанго искать .hy файлы вместо этих .py файлы?

Редактировать: исправлено "байт-код" до "АСТ".

1 ответ

Решение

Я обычно рекомендую использовать .py файлы для импорта .hy файлы для такого рода вещей. Но Django имеет открытый исходный код, поэтому, при необходимости, можно будет исправить вашу локальную установку.

Джанго находит settings.py с использованием DJANGO_SETTINGS_MODULE переменная окружения, а затем импортирует его через importlib, Теоретически, это будет работать с модулями Hy, при условии, что Hy импортируется первым. Таким образом, трюк будет поставить import hy заявление где-то, прежде чем это произойдет. Есть несколько способов запуска Django, например: django-admin, manage.py, python -m django, import hy оператор должен произойти до того, как какой-либо из них попытается импортировать модуль Hy. Если вы просто положите его в manage.pyЯ думаю, что другие все еще не будут работать.

Вы могли бы, вероятно, создать сценарий Hy командной строки, который импортирует Hy, а затем импортирует manage.pyили что-то еще, и запускает его со своим argv,

Другие вопросы по тегам