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

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

0 голосов
/ 24 мая 2018

Я пишу веб-сервер 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 файлы, но я бы предпочел более элегантное решение.Есть ли способ заставить Django искать .hy файлы вместо этих .py файлов?

Редактировать: исправлено "bytecode" в "ast".

1 Ответ

0 голосов
/ 24 мая 2018

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

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.

...