Files
trainer/pkg/initializers/utils/utils.py
T
Tariq HasanandGitHub 9183dfd24f chore(scripts): add copyright boilerplate verification (#3359)
* chore(scripts): add copyright boilerplate verification system

Signed-off-by: tariq-hasan <[email protected]>

* chore(ci): add boilerplate verification to CI pipeline

Signed-off-by: tariq-hasan <[email protected]>

* chore: regenerate files with year-less copyright headers

Signed-off-by: tariq-hasan <[email protected]>

* refactor(boilerplate): simplify verification logic

Signed-off-by: tariq-hasan <[email protected]>

* chore(boilerplate): add missing copyright headers

Signed-off-by: tariq-hasan <[email protected]>

* ci(boilerplate): move verifier to code-quality workflow and run unit tests

Signed-off-by: tariq-hasan <[email protected]>

* feat(boilerplate): accept license headers with any year and remove year validation logic

Signed-off-by: tariq-hasan <[email protected]>

* feat(boilerplate): add copyright headers to generated Python API

Signed-off-by: tariq-hasan <[email protected]>

* refactor(boilerplate): use block-comment header for generated Go files

Signed-off-by: tariq-hasan <[email protected]>

* feat(boilerplate): verify copyright headers in Rust files

Signed-off-by: tariq-hasan <[email protected]>

---------

Signed-off-by: tariq-hasan <[email protected]>
2026-05-29 10:50:56 +00:00

74 lines
2.1 KiB
Python

# Copyright The Kubeflow Authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
import os
from abc import ABC, abstractmethod
from dataclasses import fields
from typing import Dict
STORAGE_URI_ENV = "STORAGE_URI"
HF_SCHEME = "hf"
CACHE_SCHEME = "cache"
S3_SCHEME = "s3"
# The default path to the users' workspace.
# TODO (andreyvelich): Discuss how to keep this path is sync with Kubeflow SDK constants.
WORKSPACE_PATH = "/workspace"
# The path where initializer downloads dataset.
DATASET_PATH = os.path.join(WORKSPACE_PATH, "dataset")
# The path where initializer downloads model.
MODEL_PATH = os.path.join(WORKSPACE_PATH, "model")
class ModelProvider(ABC):
@abstractmethod
def load_config(self):
raise NotImplementedError()
@abstractmethod
def download_model(self):
raise NotImplementedError()
class DatasetProvider(ABC):
@abstractmethod
def load_config(self):
raise NotImplementedError()
@abstractmethod
def download_dataset(self):
raise NotImplementedError()
# Get DataClass config from the environment variables.
# Env names must be equal to the DataClass parameters.
def get_config_from_env(config) -> Dict:
config_from_env = {}
for field in fields(config):
env_value = os.getenv(field.name.upper())
if field.name == "ignore_patterns":
config_from_env[field.name] = (
[item.strip() for item in env_value.split(",") if item.strip()]
if env_value
else None
)
else:
config_from_env[field.name] = env_value if env_value else None
return config_from_env