getpass --- ورودی قابل‌حمل گذرواژه

کد منبع: Lib/getpass.py


دسترس‌پذیری: not WASI.

این ماژول روی WebAssembly کار نمی‌کند یا در دسترس نیست. برای اطلاعات بیشتر سکوهای WebAssembly را ببینید.

ماژول getpass دو تابع ارائه می‌دهد:

getpass.getpass(prompt='Password: ', stream=None, *, echo_char=None)

از کاربر درخواست می‌شود گذرواژه‌ای را بدون بازتاب وارد کند. از کاربر با استفاده از رشته‌ی prompt درخواست می‌شود، که مقدار پیش‌فرض آن 'Password: ' است. در یونیکس، پیام درخواست در صورت نیاز با استفاده از هندلر خطای replace به شیء شبه‌پرونده stream نوشته می‌شود. مقدار پیش‌فرض stream پایانه‌ی مدیر (/dev/tty) است یا اگر آن در دسترس نباشد، sys.stderr است (این آرگومان در ویندوز نادیده گرفته می‌شود).

آرگومان echo_char نحوه‌ی نمایش ورودی کاربر هنگام تایپ را کنترل می‌کند. اگر echo_char برابر None (پیش‌فرض) باشد، ورودی مخفی می‌ماند. در غیر این صورت، echo_char باید یک نویسه‌ی ASCII قابل‌چاپ واحد باشد و هر نویسه‌ی تایپ‌شده با آن جایگزین می‌شود. برای مثال، echo_char='*' به‌جای ورودی واقعی، ستاره‌ها را نمایش می‌دهد.

اگر ورودی بدون بازتاب در دسترس نباشد، getpass() به چاپ یک پیام هشدار در stream، خواندن از sys.stdin و صدور یک GetPassWarning متوسل می‌شود.

توجه

اگر getpass را از درون IDLE فراخوانی کنید، ممکن است ورودی به‌جای خود پنجره IDLE، در پایانه‌ای که IDLE را از آن راه‌اندازی کرده‌اید انجام شود.

توجه

در سیستم‌های یونیکسی، هنگامی که echo_char تنظیم شده باشد، پایانه به‌گونه‌ای پیکربندی می‌شود که در حالت غیرکانونیکال (noncanonical mode) عمل کند. به‌ویژه، این بدان معناست که میان‌برهای ویرایش خط مانند Ctrl+U کار نخواهند کرد و ممکن است نویسه‌های غیرمنتظره را در ورودی درج کنند.

تغییر یافته در نسخه‌ی 3.14: پارامتر echo_char برای بازخورد صفحه‌کلید افزوده شد.

exception getpass.GetPassWarning

یک زیرکلاس از UserWarning که زمانی صادر می‌شود که ممکن است ورودی گذرواژه بازتاب داده شود.

getpass.getuser()

«نام ورود» کاربر را برمی‌گرداند.

این تابع متغیرهای محیطی LOGNAME، USER، LNAME و USERNAME را به ترتیب بررسی می‌کند و مقدار اولین متغیری را که به یک رشته غیرخالی تنظیم شده باشد برمی‌گرداند. اگر هیچ‌کدام تنظیم نشده باشند، در سیستم‌هایی که از ماژول pwd پشتیبانی می‌کنند، نام ورود از پایگاه داده‌ی گذرواژه برگردانده می‌شود؛ در غیر این صورت، یک OSError پرتاب می‌شود.

به‌طور کلی، این تابع باید به os.getlogin() ترجیح داده شود.

تغییر یافته در نسخه‌ی 3.13: پیش‌تر، استثناهای مختلفی علاوه بر OSError نیز پرتاب می‌شدند.