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:
netrctry UTF-8 encoding before using locale specific encoding. The entry in the netrc file no longer needs to contain all tokens. The missing tokens' value default to an empty string. All the tokens and their values now can contain arbitrary characters, like whitespace and non-ASCII characters. If the login name is anonymous, it won't trigger the security check.
- 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¶
دیکشنری که نام ماکروها را به فهرستهایی از رشتهها نگاشت میکند.