コード例 #1
0
    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)
コード例 #2
0
    def __init__(self, *args, **kwargs):
        # Run DictContainer init
        DictContainer.__init__(self, *args, **kwargs)

        super(OneToOneMappingContainer, self).__init__(*args, **kwargs)