پرونده محیط encoding/envfile
خواندن و نوشتن پروندههای .env با جایگذاری متغیرها.
واردسازی کدگذاری.پرونده محیط
پروندهی .env متغیرهای محیطی برنامه را، هر کدام در یک خط KEY=value، نگه میدارد. این بسته خطهای خالی و توضیحهای # را رد میکند، export پیش از کلید را میپذیرد، نقلقولها را برمیدارد و ترتیب کلیدها را حفظ میکند.
تجزیه ارجاعهایی مثل ${HOST} را با مقدار همان پرونده جایگذاری میکند؛ تجزیه خام آنها را دستنخورده نگه میدارد. متغیرهای محیطی سیستمعامل خوانده نمیشوند؛ برای آنها بستهی محیط را ببینید.
گونهها
سند Doc
ساختار سند| نام | انگلیسی | گونه | توضیح |
|---|---|---|---|
| m | m | collections.OrderedMap | کلیدها و مقدارها به ترتیب. |
| flags | flags | وکتور<صحیح> | برای هر کلید، آیا مقدارش جایگذاریپذیر است (نقلقول تکی جایگذاری را غیرفعال میکند). |
واردسازی کدگذاری.پرونده محیط
واردسازی کدگذاری.خطای کدگذاری
روال ریشه:
متن := "# تنظیمات\nHOST=localhost\nPORT=8080\nexport NAME=\"سلام دنیا\"\nURL=http://${HOST}:${PORT}/\n"
ناپایا س := پرونده محیط.تجزیه(متن)
سرچاپ پرونده محیط.طول(س)، پرونده محیط.کلیدها(س)
سرچاپ پرونده محیط.دریافت(س، "NAME")، پرونده محیط.دارد(س، "DEBUG")، پرونده محیط.دریافت با پیش فرض(س، "DEBUG"، "false")
سرچاپ پرونده محیط.کلید در(س، ۰)، پرونده محیط.مقدار در(س، ۱)
سرچاپ پرونده محیط.دریافت(س، "URL")
خام := پرونده محیط.تجزیه خام(متن)
سرچاپ پرونده محیط.دریافت(خام، "URL")، پرونده محیط.نامهای ارجاع(خام)
ناپایا پایه := پرونده محیط.جدید()
گسترده := پرونده محیط.گسترش سند(خام، پایه)
سرچاپ پرونده محیط.دریافت(گسترده، "URL")
سرچاپ پرونده محیط.گسترش("${HOST}/api"، س، پایه)، پرونده محیط.نامهای ارجاع در("$A و ${B}")
پرونده محیط.تنظیم(س، "DEBUG"، "true")
سرچاپ پرونده محیط.حذف(س، "URL")
سرچاپ پرونده محیط.قالب(س)
سرچاپ پرونده محیط.قالب صادراتی(پایه) == ""، پرونده محیط.نقل قول("a b")
ناپایا دیگر := پرونده محیط.تجزیه("PORT=9090\nMODE=prod\n")
پرونده محیط.ادغام در(س، دیگر)
سرچاپ پرونده محیط.دریافت(س، "PORT")، پرونده محیط.دریافت(س، "MODE")
ناپایا خ := خطای کدگذاری.بدون خطا()
_ := پرونده محیط.تجزیه سخت گیرانه("=بیکلید\n"، خ)
سرچاپ خطای کدگذاری.خطا است(خ)، پرونده محیط.معتبر("A=1\n")
سرچاپ پرونده محیط.تجزیه مقدار(`"a\tb"`)، پرونده محیط.تجزیه مقدار گسترده("x ; comment"، درست)
پرونده محیط.آزادسازی(س)
پرونده محیط.آزادسازی(خام)
پرونده محیط.آزادسازی(پایه)
پرونده محیط.آزادسازی(گسترده)
پرونده محیط.آزادسازی(دیگر)
پایانروالها
نقل قول Quote
روال نقل قول(v: رشته): رشتهنمونهی این مورد همراه با موارد بالاتر آمده است: encoding-envfile-Parse.salam
قالب Format
روال قالب(d &: سند): رشتهنمونهی این مورد همراه با موارد بالاتر آمده است: encoding-envfile-Parse.salam
قالب صادراتی FormatExport
روال قالب صادراتی(d &: سند): رشتهقالب، با export پیش از هر خط؛ برای پوسته.نمونهی این مورد همراه با موارد بالاتر آمده است: encoding-envfile-Parse.salam
جدید New
روال جدید(): سندنمونهی این مورد همراه با موارد بالاتر آمده است: encoding-envfile-Parse.salam
طول Len
روال طول(d &: سند): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: encoding-envfile-Parse.salam
دارد Has
روال دارد(d &: سند، key: رشته): منطقینمونهی این مورد همراه با موارد بالاتر آمده است: encoding-envfile-Parse.salam
دریافت Get
روال دریافت(d &: سند، key: رشته): رشتهنمونهی این مورد همراه با موارد بالاتر آمده است: encoding-envfile-Parse.salam
دریافت با پیش فرض GetOr
روال دریافت با پیش فرض(d &: سند، key: رشته، def: رشته): رشتهنمونهی این مورد همراه با موارد بالاتر آمده است: encoding-envfile-Parse.salam
تنظیم Set
روال تنظیم(d &: سند، key: رشته، val: رشته)نمونهی این مورد همراه با موارد بالاتر آمده است: encoding-envfile-Parse.salam
حذف Remove
روال حذف(d &: سند، key: رشته): منطقینمونهی این مورد همراه با موارد بالاتر آمده است: encoding-envfile-Parse.salam
کلید در KeyAt
روال کلید در(d &: سند، i: صحیح): رشتهi.نمونهی این مورد همراه با موارد بالاتر آمده است: encoding-envfile-Parse.salam
مقدار در ValueAt
روال مقدار در(d &: سند، i: صحیح): رشتهi.نمونهی این مورد همراه با موارد بالاتر آمده است: encoding-envfile-Parse.salam
کلیدها Keys
روال کلیدها(d &: سند): وکتور<رشته>نمونهی این مورد همراه با موارد بالاتر آمده است: encoding-envfile-Parse.salam
ادغام در MergeInto
روال ادغام در(dst &: سند، src &: سند)src را در dst میریزد؛ کلیدهای تکراری جایگزین میشوند.نمونهی این مورد همراه با موارد بالاتر آمده است: encoding-envfile-Parse.salam
آزادسازی Free
روال آزادسازی(d &: سند)نمونهی این مورد همراه با موارد بالاتر آمده است: encoding-envfile-Parse.salam
تجزیه خام ParseRaw
روال تجزیه خام(text: رشته): سندنمونهی این مورد همراه با موارد بالاتر آمده است: encoding-envfile-Parse.salam
تجزیه Parse
روال تجزیه(text: رشته): سندنمونهی این مورد همراه با موارد بالاتر آمده است: encoding-envfile-Parse.salam
تجزیه سخت گیرانه ParseStrict
روال تجزیه سخت گیرانه(text: رشته، err &: encerr.EncodingError): سندتجزیه، ولی خط نادرست خطا دارد و err پر میشود.نمونهی این مورد همراه با موارد بالاتر آمده است: encoding-envfile-Parse.salam
معتبر Valid
روال معتبر(text: رشته): منطقینمونهی این مورد همراه با موارد بالاتر آمده است: encoding-envfile-Parse.salam
تجزیه مقدار ParseScalar
روال تجزیه مقدار(raw: رشته): رشته= میخواند: نقلقول و اسکیپ را برمیدارد.نمونهی این مورد همراه با موارد بالاتر آمده است: encoding-envfile-Parse.salam
تجزیه مقدار گسترده ParseScalarEx
روال تجزیه مقدار گسترده(raw: رشته، semi: منطقی): رشتهتجزیه مقدار؛ اگر semi درست باشد، ; هم مثل # آغاز توضیح است.نمونهی این مورد همراه با موارد بالاتر آمده است: encoding-envfile-Parse.salam
گسترش سند ExpandDoc
روال گسترش سند(d &: سند، base &: سند): سندbase جستجو میشوند.نمونهی این مورد همراه با موارد بالاتر آمده است: encoding-envfile-Parse.salam
گسترش Expand
روال گسترش(raw: رشته، d &: سند، base &: سند): رشتهbase جایگذاری میکند.نمونهی این مورد همراه با موارد بالاتر آمده است: encoding-envfile-Parse.salam
نامهای ارجاع RefNames
روال نامهای ارجاع(d &: سند): وکتور<رشته>نمونهی این مورد همراه با موارد بالاتر آمده است: encoding-envfile-Parse.salam
نامهای ارجاع در RefNamesIn
روال نامهای ارجاع در(raw: رشته): وکتور<رشته>$A و ${A}.نمونهی این مورد همراه با موارد بالاتر آمده است: encoding-envfile-Parse.salam