Add some typing

This commit is contained in:
Ayaz Salikhov
2021-05-03 00:54:52 +03:00
parent 7d7bbba09f
commit 2172a9ab16
7 changed files with 40 additions and 30 deletions

View File

@@ -8,11 +8,11 @@ from .docker_runner import DockerRunner
logger = logging.getLogger(__name__)
def _get_program_version(container, program):
def _get_program_version(container, program: str) -> str:
return DockerRunner.run_simple_command(container, cmd=f"{program} --version")
def _get_env_variable(container, variable):
def _get_env_variable(container, variable: str) -> str:
env = DockerRunner.run_simple_command(
container,
cmd="env",
@@ -24,7 +24,7 @@ def _get_env_variable(container, variable):
raise KeyError(variable)
def _get_pip_package_version(container, package):
def _get_pip_package_version(container, package: str) -> str:
VERSION_PREFIX = "Version: "
package_info = DockerRunner.run_simple_command(
container,
@@ -39,19 +39,19 @@ def _get_pip_package_version(container, package):
class TaggerInterface:
"""Common interface for all taggers"""
@staticmethod
def tag_value(container):
def tag_value(container) -> str:
raise NotImplementedError
class SHATagger(TaggerInterface):
@staticmethod
def tag_value(container):
def tag_value(container) -> str:
return GitHelper.commit_hash_tag()
class UbuntuVersionTagger(TaggerInterface):
@staticmethod
def tag_value(container):
def tag_value(container) -> str:
os_release = DockerRunner.run_simple_command(container, "cat /etc/os-release").split("\n")
for line in os_release:
if line.startswith("VERSION_ID"):
@@ -60,59 +60,59 @@ class UbuntuVersionTagger(TaggerInterface):
class PythonVersionTagger(TaggerInterface):
@staticmethod
def tag_value(container):
def tag_value(container) -> str:
return "python-" + _get_program_version(container, "python").split()[1]
class JupyterNotebookVersionTagger(TaggerInterface):
@staticmethod
def tag_value(container):
def tag_value(container) -> str:
return "notebook-" + _get_program_version(container, "jupyter-notebook")
class JupyterLabVersionTagger(TaggerInterface):
@staticmethod
def tag_value(container):
def tag_value(container) -> str:
return "lab-" + _get_program_version(container, "jupyter-lab")
class JupyterHubVersionTagger(TaggerInterface):
@staticmethod
def tag_value(container):
def tag_value(container) -> str:
return "hub-" + _get_program_version(container, "jupyterhub")
class RVersionTagger(TaggerInterface):
@staticmethod
def tag_value(container):
def tag_value(container) -> str:
return "r-" + _get_program_version(container, "R").split()[2]
class TensorflowVersionTagger(TaggerInterface):
@staticmethod
def tag_value(container):
def tag_value(container) -> str:
return "tensorflow-" + _get_pip_package_version(container, "tensorflow")
class JuliaVersionTagger(TaggerInterface):
@staticmethod
def tag_value(container):
def tag_value(container) -> str:
return "julia-" + _get_program_version(container, "julia").split()[2]
class SparkVersionTagger(TaggerInterface):
@staticmethod
def tag_value(container):
def tag_value(container) -> str:
return "spark-" + _get_env_variable(container, "APACHE_SPARK_VERSION")
class HadoopVersionTagger(TaggerInterface):
@staticmethod
def tag_value(container):
def tag_value(container) -> str:
return "hadoop-" + _get_env_variable(container, "HADOOP_VERSION")
class JavaVersionTagger(TaggerInterface):
@staticmethod
def tag_value(container):
def tag_value(container) -> str:
return "java-" + _get_program_version(container, "java").split()[1]