Пример #1
0
    def _load(self) -> Dict[str, Dataset]:
        if "metadata" in self.channels:
            path = self.channels.pop("metadata")
            self.hyperparameters["freq"] = MetaData.parse_file(
                path / "metadata.json").freq

        file_dataset = partial(FileDataset, freq=self.hyperparameters["freq"])
        list_dataset = partial(ListDataset, freq=self.hyperparameters["freq"])

        datasets = map_dct_values(file_dataset, self.channels)
        if self._listify_dataset():
            datasets = map_dct_values(list_dataset, datasets)

        return datasets
Пример #2
0
def _load_inputdataconfig(
        inputdataconfig: Path) -> Optional[Dict[str, DataConfig]]:
    if inputdataconfig.exists():
        with inputdataconfig.open() as json_file:
            return map_dct_values(DataConfig.parse_obj, json.load(json_file))

    return None
Пример #3
0
def encode_sagemaker_parameters(decoded_params: dict) -> dict:
    """Encode a SageMaker parameters dictionary where all values are strings.

    Example:

    >>> encode_sagemaker_parameters({
    ...     "foo": [1, 2, 3],
    ...     "bar": "hello"
    ... })
    {'foo': '[1, 2, 3]', 'bar': 'hello'}
    """
    return map_dct_values(encode_sagemaker_parameter, decoded_params)
Пример #4
0
def detrim_and_decode_sagemaker_parameters(trimmed_params: dict) -> dict:
    """Decode a SageMaker parameters dictionary where all values are strings.

    Example:

    >>> detrim_and_decode_sagemaker_parameters({
    ...     '_0_foo': '[1, ',
    ...     '_1_foo': '2, 3',
    ...     '_2_foo': ']',
    ...     '_0_bar': 'hell',
    ...     '_1_bar': 'o'
    ... })
    {'foo': [1, 2, 3], 'bar': 'hello'}
    """
    encoded_params = detrim_sagemaker_parameters(trimmed_params)
    return map_dct_values(decode_sagemaker_parameter, encoded_params)
Пример #5
0
def encode_and_trim_sagemaker_parameters(decoded_params: dict,
                                         max_len: int = 256) -> dict:
    """Encode a SageMaker parameters dictionary where all values are strings then
    trim them to account for Sagemaker character size limit.

    >>> encode_and_trim_sagemaker_parameters({
    ...     "foo": [1, 2, 3],
    ...     "bar": "hello"
    ... }, max_len = 4)
    {'_0_foo': '[1, ',
     '_1_foo': '2, 3',
     '_2_foo': ']',
     '_0_bar': 'hell',
     '_1_bar': 'o'}
    """
    endoded_params = map_dct_values(encode_sagemaker_parameter, decoded_params)
    return trim_encoded_sagemaker_parameters(endoded_params, max_len)