Skip to content

Commit 44bb564

Browse files
committed
Add type hints to relenv/common.py and relenv/runtime.py
1 parent 6144fb5 commit 44bb564

File tree

14 files changed

+2495
-290
lines changed

14 files changed

+2495
-290
lines changed

relenv/__init__.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
11
# Copyright 2025 Broadcom.
22
# SPDX-License-Identifier: Apache-2
3+
import sys
4+
5+
if sys.version_info < (3, 10):
6+
raise RuntimeError("Relenv requires Python 3.10 or newer.")
7+
38
from relenv.common import __version__

relenv/__main__.py

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,17 @@
44
The entrypoint into relenv.
55
"""
66

7+
from __future__ import annotations
8+
9+
import argparse
710
from argparse import ArgumentParser
11+
from types import ModuleType
812

913
from . import build, buildenv, check, create, fetch, pyversions, toolchain
1014
from .common import __version__
1115

1216

13-
def setup_cli():
17+
def setup_cli() -> ArgumentParser:
1418
"""
1519
Build the argparser with its subparsers.
1620
@@ -25,9 +29,11 @@ def setup_cli():
2529
description="Relenv",
2630
)
2731
argparser.add_argument("--version", action="version", version=__version__)
28-
subparsers = argparser.add_subparsers()
32+
subparsers: argparse._SubParsersAction[
33+
argparse.ArgumentParser
34+
] = argparser.add_subparsers()
2935

30-
modules_to_setup = [
36+
modules_to_setup: list[ModuleType] = [
3137
build,
3238
toolchain,
3339
create,
@@ -42,7 +48,7 @@ def setup_cli():
4248
return argparser
4349

4450

45-
def main():
51+
def main() -> None:
4652
"""
4753
Run the relenv cli and disbatch to subcommands.
4854
"""

relenv/buildenv.py

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,12 @@
33
"""
44
Helper for building libraries to install into a relenv environment.
55
"""
6+
from __future__ import annotations
7+
8+
import argparse
69
import json
710
import logging
11+
import os
812
import sys
913

1014
from .common import (
@@ -17,7 +21,9 @@
1721
log = logging.getLogger()
1822

1923

20-
def setup_parser(subparsers):
24+
def setup_parser(
25+
subparsers: argparse._SubParsersAction[argparse.ArgumentParser],
26+
) -> None:
2127
"""
2228
Setup the subparser for the ``relenv buildenv`` command.
2329
@@ -36,14 +42,16 @@ def setup_parser(subparsers):
3642
)
3743

3844

39-
def is_relenv():
45+
def is_relenv() -> bool:
4046
"""
4147
True when we are in a relenv environment.
4248
"""
4349
return hasattr(sys, "RELENV")
4450

4551

46-
def buildenv(relenv_path=None):
52+
def buildenv(
53+
relenv_path: str | os.PathLike[str] | None = None,
54+
) -> dict[str, str]:
4755
"""
4856
Relenv build environment variable mapping.
4957
"""
@@ -90,7 +98,7 @@ def buildenv(relenv_path=None):
9098
return env
9199

92100

93-
def main(args):
101+
def main(args: argparse.Namespace) -> None:
94102
"""
95103
The entrypoint into the ``relenv buildenv`` command.
96104

relenv/check.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,9 @@
33
"""
44
Check the integrety of a relenv environment.
55
"""
6+
from __future__ import annotations
7+
8+
import argparse
69
import logging
710
import pathlib
811
import sys
@@ -12,7 +15,9 @@
1215
log = logging.getLogger()
1316

1417

15-
def setup_parser(subparsers):
18+
def setup_parser(
19+
subparsers: argparse._SubParsersAction[argparse.ArgumentParser],
20+
) -> None:
1621
"""
1722
Setup the subparser for the ``relenv check`` command.
1823
@@ -23,7 +28,7 @@ def setup_parser(subparsers):
2328
subparser.set_defaults(func=main)
2429

2530

26-
def main(args):
31+
def main(args: argparse.Namespace) -> None:
2732
"""
2833
The entrypoint into the ``relenv check`` command.
2934

0 commit comments

Comments
 (0)