From 45d350b9dc97ac73ea72d7b28ae57c2c01a89e90 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Thu, 10 Dec 2020 23:11:59 +0100 Subject: [PATCH] Allow tests/scripts/foo.py to import from scripts Allow Python scripts in tests/scripts to import modules located in the scripts directory. To do this, use ``` import scripts_path # pylint: disable=unused-import ``` Declare the scripts directory to pylint and to mypy. Signed-off-by: Gilles Peskine --- .mypy.ini | 3 +++ .pylintrc | 3 +++ tests/scripts/scripts_path.py | 28 ++++++++++++++++++++++++++++ 3 files changed, 34 insertions(+) create mode 100644 .mypy.ini create mode 100644 tests/scripts/scripts_path.py diff --git a/.mypy.ini b/.mypy.ini new file mode 100644 index 000000000..31d92ccd2 --- /dev/null +++ b/.mypy.ini @@ -0,0 +1,3 @@ +[mypy] +mypy_path = scripts +warn_unused_configs = True diff --git a/.pylintrc b/.pylintrc index ad25a7ca1..5f3d2b235 100644 --- a/.pylintrc +++ b/.pylintrc @@ -1,3 +1,6 @@ +[MASTER] +init-hook='import sys; sys.path.append("scripts")' + [BASIC] # We're ok with short funtion argument names. # [invalid-name] diff --git a/tests/scripts/scripts_path.py b/tests/scripts/scripts_path.py new file mode 100644 index 000000000..10bf6f852 --- /dev/null +++ b/tests/scripts/scripts_path.py @@ -0,0 +1,28 @@ +"""Add our Python library directory to the module search path. + +Usage: + + import scripts_path # pylint: disable=unused-import +""" + +# Copyright The Mbed TLS Contributors +# SPDX-License-Identifier: Apache-2.0 +# +# 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 +import sys + +sys.path.append(os.path.join(os.path.dirname(__file__), + os.path.pardir, os.path.pardir, + 'scripts'))