پیکربندی config
خواندن و نوشتن پروندههای تنظیمات INI، env و YAML با کلیدهای نقطهدار.
واردسازی پیکربندی
بستهی پیکربندی تنظیمات را به شکل فهرستی مرتب از کلید و مقدار نگه میدارد. کلیدهای بخشها نقطهدارند: کلید host در بخش [db] پروندهی INI، یا در YAML زیر db:، میشود db.host.
الگوی رایج این است: تنظیمات پیشفرض را بخوانید، تنظیمات محیط فعلی را روی آن ادغام کنید و بعد مقدارها را با گونهی درست بگیرید.
گونهها
پیکربندی Config
ساختار پیکربندی| نام | انگلیسی | گونه | توضیح |
|---|---|---|---|
| m | m | collections.OrderedMap | نگاشت مرتبی که کلیدها و مقدارها را به ترتیب نگه میدارد. |
واردسازی پیکربندی
روال ریشه:
ناپایا پ := پیکربندی.جدید()
دیرکن پیکربندی.آزادسازی(پ)
پیکربندی.تنظیم(پ، "name"، "سلام")
پیکربندی.تنظیم(پ، "port"، "8080")
پیکربندی.تنظیم(پ، "debug"، "yes")
پیکربندی.تنظیم(پ، "ratio"، "0.5")
سرچاپ پیکربندی.طول(پ)، پیکربندی.دارد(پ، "port")، پیکربندی.دریافت(پ، "name")
سرچاپ پیکربندی.دریافت صحیح(پ، "port"، ۸۰)، پیکربندی.دریافت اعشاری(پ، "ratio"، ۱.۰)، پیکربندی.دریافت منطقی(پ، "debug"، نادرست)
سرچاپ پیکربندی.دریافت با پیش فرض(پ، "host"، "localhost")
سرچاپ پیکربندی.حذف(پ، "ratio")، پیکربندی.کلیدها(پ)
پایانروالها
جدید New
روال جدید(): پیکربندینمونهی این مورد همراه با موارد بالاتر آمده است: config-Get.salam
طول Len
روال طول(c &: پیکربندی): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: config-Get.salam
دارد Has
روال دارد(c &: پیکربندی، key: رشته): منطقینمونهی این مورد همراه با موارد بالاتر آمده است: config-Get.salam
تنظیم Set
روال تنظیم(c &: پیکربندی، key: رشته، val: رشته)نمونهی این مورد همراه با موارد بالاتر آمده است: config-Get.salam
دریافت Get
روال دریافت(c &: پیکربندی، key: رشته): رشتهنمونهی این مورد همراه با موارد بالاتر آمده است: config-Get.salam
دریافت با پیش فرض GetOr
روال دریافت با پیش فرض(c &: پیکربندی، key: رشته، def: رشته): رشتهنمونهی این مورد همراه با موارد بالاتر آمده است: config-Get.salam
دریافت صحیح GetInt
روال دریافت صحیح(c &: پیکربندی، key: رشته، def: صحیح۶۴): صحیح۶۴نمونهی این مورد همراه با موارد بالاتر آمده است: config-Get.salam
دریافت اعشاری GetFloat
روال دریافت اعشاری(c &: پیکربندی، key: رشته، def: اعشار۶۴): اعشار۶۴نمونهی این مورد همراه با موارد بالاتر آمده است: config-Get.salam
دریافت منطقی GetBool
روال دریافت منطقی(c &: پیکربندی، key: رشته، def: منطقی): منطقیtrue، 1 و yes درستاند.نمونهی این مورد همراه با موارد بالاتر آمده است: config-Get.salam
حذف Remove
روال حذف(c &: پیکربندی، key: رشته): منطقینمونهی این مورد همراه با موارد بالاتر آمده است: config-Get.salam
کلیدها Keys
روال کلیدها(c &: پیکربندی): وکتور<رشته>نمونهی این مورد همراه با موارد بالاتر آمده است: config-Get.salam
بخش Section
روال بخش(c &: پیکربندی، name: رشته): پیکربندیواردسازی پیکربندی
واردسازی ورودی خروجی
روال ریشه:
متن := "name = سلام\n\n[db]\nhost = localhost\nport = 5432\n"
ناپایا پ := پیکربندی.تجزیه آی ان آی(متن)
دیرکن پیکربندی.آزادسازی(پ)
سرچاپ پیکربندی.کلیدها(پ)
ناپایا ب := پیکربندی.بخش(پ، "db")
دیرکن پیکربندی.آزادسازی(ب)
سرچاپ پیکربندی.دریافت(ب، "port")
چاپ پیکربندی.قالب آی ان آی(ب)
ورودی خروجی.نوشتن پرونده("app.ini"، متن)
ناپایا خوانده := پیکربندی.بارگذاری آی ان آی("app.ini")
دیرکن پیکربندی.آزادسازی(خوانده)
سرچاپ پیکربندی.دریافت(خوانده، "db.host")
پایانادغام Merge
روال ادغام(base &: پیکربندی، override &: پیکربندی): پیکربندیoverride روی base نشستهاند.واردسازی پیکربندی
واردسازی ورودی خروجی
روال ریشه:
ناپایا پایه := پیکربندی.تجزیه محیط("MODE=dev\nPORT=3000\n")
ناپایا رو := پیکربندی.تجزیه محیط("PORT=80\nLOG=info\n")
دیرکن پیکربندی.آزادسازی(پایه)
دیرکن پیکربندی.آزادسازی(رو)
ناپایا ادغام := پیکربندی.ادغام(پایه، رو)
دیرکن پیکربندی.آزادسازی(ادغام)
چاپ پیکربندی.قالب محیط(ادغام)
چاپ پیکربندی.قالب محیط صادراتی(رو)
ورودی خروجی.نوشتن پرونده(".env"، "TOKEN=abc\n")
ناپایا ف := پیکربندی.بارگذاری محیط(".env")
دیرکن پیکربندی.آزادسازی(ف)
سرچاپ پیکربندی.دریافت(ف، "TOKEN")
پایانآزادسازی Free
روال آزادسازی(c &: پیکربندی)نمونهی این مورد همراه با موارد بالاتر آمده است: config-Get.salam
تجزیه آی ان آی ParseINI
روال تجزیه آی ان آی(text: رشته): پیکربندینمونهی این مورد همراه با موارد بالاتر آمده است: config-ParseINI.salam
تجزیه محیط ParseEnv
روال تجزیه محیط(text: رشته): پیکربندیKEY=VALUE را میخواند.نمونهی این مورد همراه با موارد بالاتر آمده است: config-ParseEnv.salam
تجزیه یامل ParseYAML
روال تجزیه یامل(text: رشته): پیکربندیواردسازی پیکربندی
واردسازی ورودی خروجی
روال ریشه:
متن := "app:\n name: salam\n port: 8080\nlog: info\n"
ناپایا پ := پیکربندی.تجزیه یامل(متن)
دیرکن پیکربندی.آزادسازی(پ)
سرچاپ پیکربندی.کلیدها(پ)، پیکربندی.دریافت صحیح(پ، "app.port"، ۰)
ورودی خروجی.نوشتن پرونده("app.yaml"، متن)
ناپایا ف := پیکربندی.بارگذاری یامل("app.yaml")
دیرکن پیکربندی.آزادسازی(ف)
سرچاپ پیکربندی.دریافت(ف، "log")
پایانبارگذاری آی ان آی LoadINI
روال بارگذاری آی ان آی(path: رشته): پیکربندینمونهی این مورد همراه با موارد بالاتر آمده است: config-ParseINI.salam
بارگذاری محیط LoadEnv
روال بارگذاری محیط(path: رشته): پیکربندینمونهی این مورد همراه با موارد بالاتر آمده است: config-ParseEnv.salam
بارگذاری یامل LoadYAML
روال بارگذاری یامل(path: رشته): پیکربندینمونهی این مورد همراه با موارد بالاتر آمده است: config-ParseYAML.salam
قالب آی ان آی FormatINI
روال قالب آی ان آی(c &: پیکربندی): رشتهنمونهی این مورد همراه با موارد بالاتر آمده است: config-ParseINI.salam
قالب محیط FormatEnv
روال قالب محیط(c &: پیکربندی): رشتهKEY=VALUE درمیآورد.نمونهی این مورد همراه با موارد بالاتر آمده است: config-ParseEnv.salam
قالب محیط صادراتی FormatEnvExport
روال قالب محیط صادراتی(c &: پیکربندی): رشتهexport پیش از هر خط؛ برای اجرا در پوسته.نمونهی این مورد همراه با موارد بالاتر آمده است: config-ParseEnv.salam