{"id":24278,"library":"pwinput","title":"pwinput","description":"A cross-platform Python module that displays **** for password input. Works on Windows, unlike getpass. Formerly called stdiomask. Current version: 1.0.3, maintained by Al Sweigart, stable with low release cadence.","status":"active","version":"1.0.3","language":"python","source_language":"en","source_url":"https://github.com/asweigart/pwinput","tags":["password","input","masking","cross-platform","getpass replacement"],"install":[{"cmd":"pip install pwinput","lang":"bash","label":"Standard install"}],"dependencies":[],"imports":[{"note":"Direct import of the module; main function is pwinput.pwinput()","symbol":"pwinput","correct":"import pwinput"},{"note":"Library was renamed from stdiomask to pwinput; old imports will fail","wrong":"from stdiomask import getpass or import stdiomask","symbol":"pwinput function","correct":"pwinput.pwinput()"},{"note":"No getpass function; use pwinput()","wrong":"pwinput.getpass(prompt='Password: ')","symbol":"mask input","correct":"pwinput.pwinput(prompt='Password: ')"}],"quickstart":{"code":"import pwinput\npassword = pwinput.pwinput(prompt='Password: ')\nprint('You entered:', password)","lang":"python","description":"Simple password input with asterisks masking."},"warnings":[{"fix":"Update imports to import pwinput and use pwinput.pwinput() instead of stdiomask.maskinput() or getpass.","message":"Library renamed from stdiomask to pwinput. All old imports (import stdiomask) will break.","severity":"breaking","affected_versions":"<=0.1 (stdiomask) to >=1.0.0"},{"fix":"Use pwinput.pwinput(prompt='Enter your password: ') to customize.","message":"pwinput() returns the entered password as a string; it does not echo newline on some terminals? Actually it does print newline. But be aware that if you call pwinput() without prompt, prompt defaults to 'Password: '.","severity":"gotcha","affected_versions":"all"},{"fix":"Pass mask='•' to change character.","message":"On some systems, masking character may not be asterisk if locale or terminal doesn't support Unicode. It uses '*' by default.","severity":"gotcha","affected_versions":"all"}],"env_vars":null,"last_verified":"2026-05-01T00:00:00.000Z","next_check":"2026-07-30T00:00:00.000Z","problems":[{"fix":"pip install pwinput and change import to import pwinput.","cause":"Library was renamed from stdiomask to pwinput.","error":"ModuleNotFoundError: No module named 'stdiomask'"},{"fix":"Use pwinput.pwinput() instead.","cause":"pwinput() is the main function; there is no getpass function.","error":"AttributeError: module 'pwinput' has no attribute 'getpass'"},{"fix":"pwinput does not support stream; remove that argument.","cause":"Some users try to pass a stream argument similar to getpass.getpass.","error":"ValueError: The 'stream' argument is not supported by pwinput()."}],"ecosystem":"pypi","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}