From df3a13fc617e8bcb1afcac64f8cf17cb685d6bf7 Mon Sep 17 00:00:00 2001 From: Ivan Kravets Date: Tue, 19 Apr 2022 11:32:36 +0300 Subject: [PATCH] Move MISSING to the compat --- platformio/builder/tools/pioproject.py | 3 ++- platformio/compat.py | 4 ++-- platformio/platform/board.py | 5 +++-- platformio/project/config.py | 5 +---- 4 files changed, 8 insertions(+), 9 deletions(-) diff --git a/platformio/builder/tools/pioproject.py b/platformio/builder/tools/pioproject.py index 4bf848d9..425d6758 100644 --- a/platformio/builder/tools/pioproject.py +++ b/platformio/builder/tools/pioproject.py @@ -14,7 +14,8 @@ from __future__ import absolute_import -from platformio.project.config import MISSING, ProjectConfig, ProjectOptions +from platformio.compat import MISSING +from platformio.project.config import ProjectConfig, ProjectOptions def GetProjectConfig(env): diff --git a/platformio/compat.py b/platformio/compat.py index dc2ad9a1..43eb98dd 100644 --- a/platformio/compat.py +++ b/platformio/compat.py @@ -14,6 +14,7 @@ # pylint: disable=unused-import,no-name-in-module +import importlib.util import inspect import locale import sys @@ -32,6 +33,7 @@ PY2 = sys.version_info[0] == 2 # DO NOT REMOVE IT. ESP8266/ESP32 depend on it IS_CYGWIN = sys.platform.startswith("cygwin") IS_WINDOWS = WINDOWS = sys.platform.startswith("win") IS_MACOS = sys.platform.startswith("darwin") +MISSING = object() string_types = (str,) @@ -56,8 +58,6 @@ def hashlib_encode_data(data): def load_python_module(name, pathname): - import importlib.util # pylint: disable=import-outside-toplevel - spec = importlib.util.spec_from_file_location(name, pathname) module = importlib.util.module_from_spec(spec) spec.loader.exec_module(module) diff --git a/platformio/platform/board.py b/platformio/platform/board.py index 65940962..2e998ac0 100644 --- a/platformio/platform/board.py +++ b/platformio/platform/board.py @@ -15,6 +15,7 @@ import os from platformio import fs, telemetry, util +from platformio.compat import MISSING from platformio.debug.exception import DebugInvalidOptionsError, DebugSupportError from platformio.exception import UserSideException from platformio.platform.exception import InvalidBoardManifest @@ -34,14 +35,14 @@ class PlatformBoardConfig(object): "Please specify name, url and vendor fields for " + manifest_path ) - def get(self, path, default=None): + def get(self, path, default=MISSING): try: value = self._manifest for k in path.split("."): value = value[k] return value except KeyError: - if default is not None: + if default != MISSING: return default raise KeyError("Invalid board option '%s'" % path) diff --git a/platformio/project/config.py b/platformio/project/config.py index 2746899c..bc622317 100644 --- a/platformio/project/config.py +++ b/platformio/project/config.py @@ -21,7 +21,7 @@ import re import click from platformio import fs -from platformio.compat import string_types +from platformio.compat import MISSING, string_types from platformio.project import exception from platformio.project.options import ProjectOptions @@ -38,9 +38,6 @@ CONFIG_HEADER = """ """ -MISSING = object() - - class ProjectConfigBase(object): INLINE_COMMENT_RE = re.compile(r"\s+;.*$")