ФорумПрограммированиеPythonDjango → django-configurations: Более гибкое хранение настроек (в классах)

django-configurations: Более гибкое хранение настроек (в классах)

  • adw0rd

    Сообщения: 22919 Репутация: N Группа: в ухо

    Spritz 27 июля 2012 г. 5:00, спустя 38 минут 58 секунд

    Вот видишь Борь, октан не доволен! Даже аргументировать отказался)
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • vasa_c

    Сообщения: 3129 Репутация: N Группа: в ухо

    Spritz 27 июля 2012 г. 5:30, спустя 29 минут 42 секунды

    Октан хуйни не скажет.
  • mathete

    Сообщения: 435 Репутация: N Группа: Джедаи

    Spritz 27 июля 2012 г. 5:40, спустя 9 минут 49 секунд


    Бред

    О! Можно проверить, что делает кнопка "ХУЕТА!"

    А по теме: я разнес некоторые контриб сеттинги по аппам. И сделал, чтобы при изменении INSTALLED_APPS в рантайме, перегружались settings.
    Тесты проходят.
    Чего дальше делать будем?
  • adw0rd

    Сообщения: 22919 Репутация: N Группа: в ухо

    Spritz 27 июля 2012 г. 5:45, спустя 5 минут 5 секунд

    Документацию надо писать и pull-request
    Спустя 30 сек.
    Либо сделай pull-request, тебе core-devs или просто контрибьютеры подскажут что надо еще сделать
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • mathete

    Сообщения: 435 Репутация: N Группа: Джедаи

    Spritz 27 июля 2012 г. 5:49, спустя 4 минуты 5 секунд

    Да вот не уверен… Я вообще запутался как теперь. Раньше были тикеты, группа и слали патчи в группу или к тикетам. Сейчас вроде и тикеты есть и пулл-реквесты на гитхабе. Пулл-реквест конечно удобнее, но может тикет надо запилить?

    Да и чего то я спиздел - не все тесты проходят…
  • adw0rd

    Сообщения: 22919 Репутация: N Группа: в ухо

    Spritz 27 июля 2012 г. 5:51, спустя 1 минуту 32 секунды

    Ну создай тикет тут https://code.djangoproject.com/newticket
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • Sinkler

    Сообщения: 7945 Репутация: N Группа: в ухо

    Spritz 27 июля 2012 г. 6:18, спустя 27 минут 15 секунд

    ну вы опенсорсеры
  • phpdude

    Сообщения: 26643 Репутация: N Группа: в ухо

    Spritz 27 июля 2012 г. 6:21, спустя 2 минуты 47 секунд

    заебись четко могете
    Сапожник без сапог
  • adw0rd

    Сообщения: 22919 Репутация: N Группа: в ухо

    Spritz 27 июля 2012 г. 6:28, спустя 7 минут 23 секунды


    хуясе вы опенсорсеры
    если используешь opensource, то будь добр и сам что-то сделать для него
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • Sinkler

    Сообщения: 7945 Репутация: N Группа: в ухо

    Spritz 27 июля 2012 г. 6:33, спустя 4 минуты 29 секунд


    ну вы опенсорсеры
    если используешь opensource, то будь добр и сам что-то сделать для него
    ok, а что надо делать? :D
  • adw0rd

    Сообщения: 22919 Репутация: N Группа: в ухо

    Spritz 27 июля 2012 г. 6:35, спустя 2 минуты

    Я знаю что надо пофиксить в django, ты наверное знаешь что в кейке или чем ты пользуешься сейчас? Открываешь их bug/issue-tracker и фиксишь, начни с этого)
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • adw0rd

    Сообщения: 22919 Репутация: N Группа: в ухо

    Spritz 27 июля 2012 г. 6:50, спустя 15 минут 11 секунд

    Например
    https://github.com/adw0rd/django-social-auth/ - хочу добавить виджет, который будет отобажать используемые бекенды
    https://github.com/adw0rd/django-ratings/ - делал там вес для пользовательского голоса (один пользователь может сильнее влиять на рейтинг, чем другой, сила кармы и т.п., но при этом сам рейтинг не хочется портить ). Теперь надо заняться оптимизацией и заменить текущие поля в модели на мои… времени пока нет, но там делать на 5-10 минут
    https://github.com/adw0rd/ipython - хочу добавить sqlcat для подсветки SQL
    https://github.com/adw0rd/django-debug-toolbar делаю новый профайлер, старый я пофиксил и патч приняли, еще надо добавить SQL-profiler
    https://github.com/adw0rd/django-sphinxsearch надо много чего делать, в другой теме писал про него, mathete обещал помочь, но пока тихо ) + добавить highlighter
    https://github.com/adw0rd/django - надо написать тесты, доку и тикет для MySQL псевдо-DISTINCT; Пофиксить inspectdb (глюки с SQL-VIEW, добавить ключик "inspectdb –ignore-views"); Для dbshell (при MySQL) сделать опциональное отключение "–no-auto-rehash"; Возможно добавить EnumField для Django
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • mathete

    Сообщения: 435 Репутация: N Группа: Джедаи

    Spritz 27 июля 2012 г. 7:37, спустя 47 минут 38 секунд

    так-то вроде всё круто.
    Да вот только юз-кейс, хоть и странный. Запустили, например шелл:


    from django.conf import settings
    settings.LOGIN_URL = '/my_login/'
    settings.INSTALLED_APPS = ('django.contrib.auth', 'app', 'app2')


    Сейчас, в моей версии, кастомный LOGIN_URL перезапишется из contrib.auth, или любого другого аппа, потому что как меняем INSTALLED_APPS, так перегружаем сеттинги.
    Не перегружать мы не можем. Вариант - отдельный контейнер держать под кастомные изменения и после перегрузки в самом конце аппдейтить из этого контейнера

    Или вот веселее:

    settings.INSTALLED_APPS + ('my_cool_app_with_settings',)

    Сейчас сеттинги из нового аппа не подгрузятся. Надо тогда под INSTALLED_APPS свою обертку делать с дескриптором, ну или что-то такое…

    Чего-то уже не восемь строчек….

  • Troy

    Сообщения: 2532 Репутация: N Группа: Джедаи

    Spritz 27 июля 2012 г. 15:39, спустя 8 часов 1 минуту 57 секунд


    ну вы опенсорсеры

    Вполне нормальная практика, сам тоже парочку расширений для Yii выкладывал и тп, всячески стараюсь помогать.
  • mathete

    Сообщения: 435 Репутация: N Группа: Джедаи

    Spritz 28 июля 2012 г. 5:20, спустя 13 часов 40 минут 16 секунд

    Не будет щастя.
    При попытке импорта settings из аппа с кодом в __init__.py (см. contrib.admin, contrib.comments) начинаются неприятные сайд-эффекты.
    У нас только вход в рантайм, только-только пытаемся собрать конфиг, а уже лавинно импортируется вся джанга…

    Видим две вещи:
    1. Ну уж надо внести в pep-8 правила по организации пекеджей. Джанго-аппы это явные контейнеры и чего делает код в __init__.py вообще не ясно. Ну admin, ещё ладно - он вроде как такой инкапсулирующий модуль.
    2. Всё-таки конфигурация описываемая в исполняемой среде, скорее НЕ удобна, нежели удобна…

    Вариант - ввести настройку SETTINGS_APPS, или сразу SETTINGS_MODULES. При загрузке settings проекта, будет браться эта настройка и уже импортироваться оттуда.
    Ну а там должны быть только "нормальные" аппы.

Пожалуйста, авторизуйтесь, чтобы написать комментарий!