netrc --- پردازش پروندهی netrc¶
کد منبع: Lib/netrc.py
کلاس netrc قالب پرونده netrc را که برنامهی ftp در یونیکس و دیگر کلاینتهای FTP از آن استفاده میکنند، تجزیه و بستهبندی میکند.
- class netrc.netrc([file])¶
یک نمونه از
netrcیا نمونهی زیرکلاس آن، دادههای یک پرونده netrc را در بر میگیرد. آرگومان مقداردهی اولیه، در صورت وجود، پروندهای را که باید تجزیه شود مشخص میکند. اگر آرگومانی داده نشود، پرونده.netrcدر پوشهی خانگی کاربر -- همانطور کهos.path.expanduser()تعیین میکند -- خوانده خواهد شد. در غیر این صورت، استثنایFileNotFoundErrorپرتاب خواهد شد. خطاهای تجزیه،NetrcParseErrorرا همراه با اطلاعات عیبیابی شامل نام پرونده، شماره خط و توکن خاتمهدهنده پرتاب خواهند کرد.اگر در یک سیستم POSIX هیچ آرگومانی مشخص نشده باشد، وجود گذرواژهها در پرونده
.netrc، در صورتی که مالکیت یا مجوزهای پرونده ناامن باشند (پرونده متعلق به کاربری غیر از کاربری که فرآیند را اجرا میکند باشد، یا توسط هر کاربر دیگری قابل خواندن یا نوشتن باشد)، باعث پرتاب یکNetrcParseErrorخواهد شد. این، رفتار امنیتی معادل رفتار ftp و سایر برنامههایی که از.netrcاستفاده میکنند را پیادهسازی میکند. چنین بررسیهای امنیتی در پلتفرمهایی که ازos.getuid()پشتیبانی نمیکنند، در دسترس نیستند.تغییر یافته در نسخهی 3.4: بررسی مجوزهای POSIX افزوده شد.
تغییر یافته در نسخهی 3.7: هنگامی که file بهعنوان آرگومان ارسال نشده باشد، از
os.path.expanduser()برای یافتن محل پرونده.netrcاستفاده میشود.تغییر یافته در نسخهی 3.10:
netrcپیش از استفاده از کدگذاری خاصِ locale، کدگذاری UTF-8 را آزمایش میکند. ورودی پرونده netrc دیگر نیازی نیست شامل همه توکنها باشد. مقدار توکنهای ناموجود بهطور پیشفرض یک رشته خالی است. اکنون همه توکنها و مقادیرشان میتوانند شامل نویسههای دلخواه، مانند نویسههای فضای سفید و نویسههای غیر ASCII باشند. اگر نام کاربری anonymous باشد، بررسی امنیتی فعال نمیشود.
- exception netrc.NetrcParseError¶
استثنایی که هنگام مواجهه با خطاهای سینتکسی در متن منبع، توسط کلاس
netrcپرتاب میشود. نمونههای این استثنا سه ویژگی جالب ارائه میدهند:- msg¶
توضیح متنی خطا.
- filename¶
نام پرونده منبع.
- lineno¶
شمارهی سطری که خطا در آن یافت شد.
اشیاء netrc¶
نمونهای از netrc دارای متدهای زیر است:
- netrc.authenticators(host)¶
یک تاپل سهتایی
(login, account, password)از اعتبارسنجهای host برمیگرداند. اگر پرونده netrc حاوی ورودیای برای میزبان دادهشده نباشد، تاپل مرتبط با ورودی 'default' را برمیگرداند. اگر نه میزبان منطبق و نه ورودی 'default' در دسترس باشد،Noneرا برمیگرداند.
- netrc.__repr__()¶
دادههای کلاس را بهصورت رشتهای در قالب یک پرونده netrc برونریزی میکند. (این کار کامنتهارا را حذف میکند و ممکن است ترتیب ورودیها را تغییر دهد.)
نمونههای netrc دارای متغیرهای نمونه عمومی هستند:
- netrc.hosts¶
دیکشنری که نامهای میزبان را به تاپلهای
(login, account, password)نگاشت میکند. ورودی 'default'، در صورت وجود، بهعنوان شبهمیزبانی با همین نام نمایش داده میشود.
- netrc.macros¶
دیکشنری که نام ماکروها را به فهرستهایی از رشتهها نگاشت میکند.