Use relative imports when importing other modules in the same directory

We were using absolute imports under the assumption that the /scripts
directory is in the path. This worked in normal use because every one of our
Python scripts either were in the /scripts directory, or added the /scripts
directory to the module search path in order to reference mbedtls_dev.
However, this broke things like
```
python3 -m unittest scripts/mbedtls_dev/psa_storage.py
```

Fix this by using relative imports.

Relative imports are only supposed to be used inside a package (Python
doesn't complain, but Pylint does). So make /scripts/mbedtls_dev a proper
package by creating __init__.py.

Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
This commit is contained in:
Gilles Peskine 2022-09-16 22:35:18 +02:00
parent 4537d6d838
commit 15997bd389
5 changed files with 8 additions and 5 deletions

View File

@ -0,0 +1,3 @@
# This file needs to exist to make mbedtls_dev a package.
# Among other things, this allows modules in this directory to make
# relative impotrs.

View File

@ -22,7 +22,7 @@ import enum
import re import re
from typing import FrozenSet, Iterable, List, Optional, Tuple from typing import FrozenSet, Iterable, List, Optional, Tuple
from mbedtls_dev.asymmetric_key_data import ASYMMETRIC_KEY_DATA from .asymmetric_key_data import ASYMMETRIC_KEY_DATA
def short_expression(original: str, level: int = 0) -> str: def short_expression(original: str, level: int = 0) -> str:

View File

@ -26,7 +26,7 @@ import struct
from typing import Dict, List, Optional, Set, Union from typing import Dict, List, Optional, Set, Union
import unittest import unittest
from mbedtls_dev import c_build_helper from . import c_build_helper
class Expr: class Expr:

View File

@ -21,7 +21,7 @@ import os
import sys import sys
from typing import Iterable, List, Optional from typing import Iterable, List, Optional
from mbedtls_dev import typing_util from . import typing_util
def hex_string(data: bytes) -> str: def hex_string(data: bytes) -> str:
return '"' + binascii.hexlify(data).decode('ascii') + '"' return '"' + binascii.hexlify(data).decode('ascii') + '"'

View File

@ -29,8 +29,8 @@ import re
from abc import ABCMeta, abstractmethod from abc import ABCMeta, abstractmethod
from typing import Callable, Dict, Iterable, Iterator, List, Type, TypeVar from typing import Callable, Dict, Iterable, Iterator, List, Type, TypeVar
from mbedtls_dev import build_tree from . import build_tree
from mbedtls_dev import test_case from . import test_case
T = TypeVar('T') #pylint: disable=invalid-name T = TypeVar('T') #pylint: disable=invalid-name