def __init__(self, filename=None, content_type=None, local_md5=None, remote_file=None, remote_md5=None, remote_bytes=None, **kwargs): """Constructor Parameters ---------- filename : str Local filename. content_type : str or list of str Content type, valid labels ['code', 'documentation', 'meta', 'audio', 'features']. local_md5 : str Checksum of local file (MD5). remote_file : str URL to remote filename. remote_md5 : str Checksum of remote file (MD5). remote_bytes : int Remote file size in bytes """ self.socket_timeout = 120 # Local self.filename = filename self.content_type = content_type self._local_md5 = local_md5 self._local_bytes = None self._local_modified = None # Remote self._remote_file = None self.remote_file = remote_file self.remote_md5 = remote_md5 self._remote_bytes = remote_bytes self._remote_status = None self._remote_modified = None # Run DictContainer init DictContainer.__init__(self, **kwargs) # Check remote url if self.remote_file is not None and validators.url(self.remote_file) is not True: message = '{name}: Remote file URL not valid [{url}]'.format( name=self.__class__.__name__, url=self.remote_file, ) self.logger.exception(message) raise ValueError(message) # Check local filename if self.filename is None: message = '{name}: Local file not set.'.format( name=self.__class__.__name__) self.logger.exception(message) raise ValueError(message) # Check content types if self.content_type is not None: # Validate content type if isinstance(self.content_type, str): self.content_type = [self.content_type] if isinstance(self.content_type, list): for content_type in self.content_type: if content_type not in self.valid_content_types: message = '{name}: Invalid content type given for file [{filename}], type [{content_type}]'.format( name=self.__class__.__name__, content_type=content_type, filename=self.remote_file ) self.logger.exception(message) raise ValueError(message)
def __init__(self, *args, **kwargs): # Run DictContainer init DictContainer.__init__(self, *args, **kwargs) super(OneToOneMappingContainer, self).__init__(*args, **kwargs)