Pythonアプリケーションで構成を自動的にセットアップする方法を考えていました。
私は通常、次のタイプのアプローチを使用します。
'''config.py'''
class Config(object):
MAGIC_NUMBER = 44
DEBUG = True
class Development(Config):
LOG_LEVEL = 'DEBUG'
class Production(Config):
DEBUG = False
REPORT_EMAIL_TO = ["ceo@example.com", "chief_ass_kicker@example.com"]
通常、さまざまな方法でアプリを実行している場合、次のようなことができます。
from config import Development, Production
do_something():
if self.conf.DEBUG:
pass
def __init__(self, config='Development'):
if config == "production":
self.conf = Production
else:
self.conf = Development
理にかなっているので、このように作業するのが好きですが、どういうわけかこれをgitワークフローに統合できるかどうか疑問に思っています。
私のアプリケーションの多くは、個別のスクリプト、または単独で実行できるモジュールを備えているため、ルートの場所から構成を継承するモノリシックアプリケーションが常に存在するとは限りません。
これらのスクリプトと個別のモジュールの多くが、現在チェックアウトされているブランチをチェックし、それに基づいてデフォルトの構成決定を行うことができれば、たとえば、config.py
現在の名前と同じ名前を共有するクラスを探すことができれば便利です。ブランチをチェックアウトしました。
それは可能ですか、そしてそれを達成するための最もクリーンな方法は何ですか?
それは良い/悪い考えですか?