Fix getpass on Windows (Fixes #2547)
This commit is contained in:
parent
17286a96f2
commit
e68301af21
2 changed files with 12 additions and 2 deletions
|
@ -56,7 +56,6 @@ __authors__ = (
|
||||||
__license__ = 'Public Domain'
|
__license__ = 'Public Domain'
|
||||||
|
|
||||||
import codecs
|
import codecs
|
||||||
import getpass
|
|
||||||
import io
|
import io
|
||||||
import locale
|
import locale
|
||||||
import optparse
|
import optparse
|
||||||
|
@ -68,6 +67,7 @@ import sys
|
||||||
|
|
||||||
|
|
||||||
from .utils import (
|
from .utils import (
|
||||||
|
compat_getpass,
|
||||||
compat_print,
|
compat_print,
|
||||||
DateRange,
|
DateRange,
|
||||||
decodeOption,
|
decodeOption,
|
||||||
|
@ -611,7 +611,7 @@ def _real_main(argv=None):
|
||||||
if opts.usetitle and opts.useid:
|
if opts.usetitle and opts.useid:
|
||||||
parser.error(u'using title conflicts with using video ID')
|
parser.error(u'using title conflicts with using video ID')
|
||||||
if opts.username is not None and opts.password is None:
|
if opts.username is not None and opts.password is None:
|
||||||
opts.password = getpass.getpass(u'Type account password and press return:')
|
opts.password = compat_getpass(u'Type account password and press [Return]: ')
|
||||||
if opts.ratelimit is not None:
|
if opts.ratelimit is not None:
|
||||||
numeric_limit = FileDownloader.parse_bytes(opts.ratelimit)
|
numeric_limit = FileDownloader.parse_bytes(opts.ratelimit)
|
||||||
if numeric_limit is None:
|
if numeric_limit is None:
|
||||||
|
|
|
@ -6,6 +6,7 @@ import ctypes
|
||||||
import datetime
|
import datetime
|
||||||
import email.utils
|
import email.utils
|
||||||
import errno
|
import errno
|
||||||
|
import getpass
|
||||||
import gzip
|
import gzip
|
||||||
import itertools
|
import itertools
|
||||||
import io
|
import io
|
||||||
|
@ -1279,3 +1280,12 @@ def parse_xml(s):
|
||||||
parser = xml.etree.ElementTree.XMLParser(target=TreeBuilder())
|
parser = xml.etree.ElementTree.XMLParser(target=TreeBuilder())
|
||||||
kwargs = {'parser': parser} if sys.version_info >= (2, 7) else {}
|
kwargs = {'parser': parser} if sys.version_info >= (2, 7) else {}
|
||||||
return xml.etree.ElementTree.XML(s.encode('utf-8'), **kwargs)
|
return xml.etree.ElementTree.XML(s.encode('utf-8'), **kwargs)
|
||||||
|
|
||||||
|
|
||||||
|
if sys.version_info < (3, 0) and sys.platform == 'win32':
|
||||||
|
def compat_getpass(prompt, *args, **kwargs):
|
||||||
|
if isinstance(prompt, compat_str):
|
||||||
|
prompt = prompt.encode(getpreferredencoding())
|
||||||
|
return getpass.getpass(prompt, *args, **kwargs)
|
||||||
|
else:
|
||||||
|
compat_getpass = getpass.getpass
|
||||||
|
|
Loading…
Reference in a new issue