Replace setter and getter with simple attribute access

This commit is contained in:
Ricardo Garcia 2009-03-04 22:12:33 +01:00
parent 76800042fd
commit d0a9affb46

View file

@ -71,10 +71,10 @@ class FileDownloader(object):
File downloaders accept a lot of parameters. In order not to saturate File downloaders accept a lot of parameters. In order not to saturate
the object constructor with arguments, it receives a dictionary of the object constructor with arguments, it receives a dictionary of
options instead. These options are available through the get_params() options instead. These options are available through the params
method for the InfoExtractors to use. The FileDownloader also registers attribute for the InfoExtractors to use. The FileDownloader also
itself as the downloader in charge for the InfoExtractors that are registers itself as the downloader in charge for the InfoExtractors
added to it, so this is a "mutual registration". that are added to it, so this is a "mutual registration".
Available options: Available options:
@ -92,7 +92,7 @@ class FileDownloader(object):
nooverwrites: Prevent overwriting files. nooverwrites: Prevent overwriting files.
""" """
_params = None params = None
_ies = [] _ies = []
_pps = [] _pps = []
@ -100,7 +100,7 @@ class FileDownloader(object):
"""Create a FileDownloader object with the given options.""" """Create a FileDownloader object with the given options."""
self._ies = [] self._ies = []
self._pps = [] self._pps = []
self.set_params(params) self.params = params
@staticmethod @staticmethod
def pmkdir(filename): def pmkdir(filename):
@ -174,16 +174,6 @@ class FileDownloader(object):
multiplier = 1024.0 ** 'bkmgtpezy'.index(matchobj.group(2).lower()) multiplier = 1024.0 ** 'bkmgtpezy'.index(matchobj.group(2).lower())
return long(round(number * multiplier)) return long(round(number * multiplier))
def set_params(self, params):
"""Sets parameters."""
if type(params) != dict:
raise ValueError('params: dictionary expected')
self._params = params
def get_params(self):
"""Get parameters."""
return self._params
def add_info_extractor(self, ie): def add_info_extractor(self, ie):
"""Add an InfoExtractor object to the end of the list.""" """Add an InfoExtractor object to the end of the list."""
self._ies.append(ie) self._ies.append(ie)
@ -196,7 +186,7 @@ class FileDownloader(object):
def to_stdout(self, message, skip_eol=False): def to_stdout(self, message, skip_eol=False):
"""Print message to stdout if not in quiet mode.""" """Print message to stdout if not in quiet mode."""
if not self._params.get('quiet', False): if not self.params.get('quiet', False):
print u'%s%s' % (message, [u'\n', u''][skip_eol]), print u'%s%s' % (message, [u'\n', u''][skip_eol]),
sys.stdout.flush() sys.stdout.flush()
@ -206,7 +196,7 @@ class FileDownloader(object):
def fixed_template(self): def fixed_template(self):
"""Checks if the output template is fixed.""" """Checks if the output template is fixed."""
return (re.search(ur'(?u)%\(.+?\)s', self._params['outtmpl']) is None) return (re.search(ur'(?u)%\(.+?\)s', self.params['outtmpl']) is None)
def trouble(self, message=None): def trouble(self, message=None):
"""Determine action to take when a download problem appears. """Determine action to take when a download problem appears.
@ -219,13 +209,13 @@ class FileDownloader(object):
""" """
if message is not None: if message is not None:
self.to_stderr(message) self.to_stderr(message)
if not self._params.get('ignoreerrors', False): if not self.params.get('ignoreerrors', False):
raise DownloadError(message) raise DownloadError(message)
return 1 return 1
def slow_down(self, start_time, byte_counter): def slow_down(self, start_time, byte_counter):
"""Sleep if the download speed is over the rate limit.""" """Sleep if the download speed is over the rate limit."""
rate_limit = self._params.get('ratelimit', None) rate_limit = self.params.get('ratelimit', None)
if rate_limit is None or byte_counter == 0: if rate_limit is None or byte_counter == 0:
return return
now = time.time() now = time.time()
@ -253,7 +243,7 @@ class FileDownloader(object):
"""Download a given list of URLs.""" """Download a given list of URLs."""
retcode = 0 retcode = 0
if len(url_list) > 1 and self.fixed_template(): if len(url_list) > 1 and self.fixed_template():
raise SameFileError(self._params['outtmpl']) raise SameFileError(self.params['outtmpl'])
for url in url_list: for url in url_list:
suitable_found = False suitable_found = False
@ -268,26 +258,26 @@ class FileDownloader(object):
retcode = self.trouble() retcode = self.trouble()
if len(results) > 1 and self.fixed_template(): if len(results) > 1 and self.fixed_template():
raise SameFileError(self._params['outtmpl']) raise SameFileError(self.params['outtmpl'])
for result in results: for result in results:
# Forced printings # Forced printings
if self._params.get('forcetitle', False): if self.params.get('forcetitle', False):
print result['title'] print result['title']
if self._params.get('forceurl', False): if self.params.get('forceurl', False):
print result['url'] print result['url']
# Do nothing else if in simulate mode # Do nothing else if in simulate mode
if self._params.get('simulate', False): if self.params.get('simulate', False):
continue continue
try: try:
filename = self._params['outtmpl'] % result filename = self.params['outtmpl'] % result
self.report_destination(filename) self.report_destination(filename)
except (ValueError, KeyError), err: except (ValueError, KeyError), err:
retcode = self.trouble('ERROR: invalid output template or system charset: %s' % str(err)) retcode = self.trouble('ERROR: invalid output template or system charset: %s' % str(err))
continue continue
if self._params['nooverwrites'] and os.path.exists(filename): if self.params['nooverwrites'] and os.path.exists(filename):
self.to_stderr('WARNING: file exists: %s; skipping' % filename) self.to_stderr('WARNING: file exists: %s; skipping' % filename)
continue continue
try: try:
@ -417,7 +407,7 @@ class InfoExtractor(object):
def to_stdout(self, message): def to_stdout(self, message):
"""Print message to stdout if downloader is not in quiet mode.""" """Print message to stdout if downloader is not in quiet mode."""
if self._downloader is None or not self._downloader.get_params().get('quiet', False): if self._downloader is None or not self._downloader.params.get('quiet', False):
print message print message
def to_stderr(self, message): def to_stderr(self, message):
@ -475,7 +465,7 @@ class YoutubeIE(InfoExtractor):
username = None username = None
password = None password = None
downloader_params = self._downloader.get_params() downloader_params = self._downloader.params
# Attempt to use provided username and password or .netrc data # Attempt to use provided username and password or .netrc data
if downloader_params.get('username', None) is not None: if downloader_params.get('username', None) is not None:
@ -549,7 +539,7 @@ class YoutubeIE(InfoExtractor):
# Downloader parameters # Downloader parameters
format_param = None format_param = None
if self._downloader is not None: if self._downloader is not None:
params = self._downloader.get_params() params = self._downloader.params
format_param = params.get('format', None) format_param = params.get('format', None)
# Extension # Extension
@ -895,7 +885,7 @@ class PostProcessor(object):
def to_stdout(self, message): def to_stdout(self, message):
"""Print message to stdout if downloader is not in quiet mode.""" """Print message to stdout if downloader is not in quiet mode."""
if self._downloader is None or not self._downloader.get_params().get('quiet', False): if self._downloader is None or not self._downloader.params.get('quiet', False):
print message print message
def to_stderr(self, message): def to_stderr(self, message):