diff --git a/platformio/package/manager/_symlink.py b/platformio/package/manager/_symlink.py index 2346ee96..8c5eae38 100644 --- a/platformio/package/manager/_symlink.py +++ b/platformio/package/manager/_symlink.py @@ -15,6 +15,7 @@ import json import os +from platformio import fs from platformio.package.exception import PackageException from platformio.package.meta import PackageItem, PackageSpec @@ -27,9 +28,7 @@ class PackageManagerSymlinkMixin(object): @classmethod def resolve_symlink(cls, path): assert cls.is_symlink(path) - data = None - with open(path, "r", encoding="utf-8") as fp: - data = json.load(fp) + data = fs.load_json(path) spec = PackageSpec(**data["spec"]) assert spec.symlink pkg_dir = spec.uri[10:] diff --git a/platformio/package/meta.py b/platformio/package/meta.py index cd0791de..20199527 100644 --- a/platformio/package/meta.py +++ b/platformio/package/meta.py @@ -21,6 +21,7 @@ from urllib.parse import urlparse import semantic_version +from platformio import fs from platformio.compat import get_object_members, hashlib_encode_data, string_types from platformio.package.manifest.parser import ManifestFileType from platformio.package.version import cast_version_to_semver @@ -415,15 +416,14 @@ class PackageMetaData(object): @staticmethod def load(path): - with open(path, encoding="utf8") as fp: - data = json.load(fp) - if data["spec"]: - # legacy support for Core<5.3 packages - if "url" in data["spec"]: - data["spec"]["uri"] = data["spec"]["url"] - del data["spec"]["url"] - data["spec"] = PackageSpec(**data["spec"]) - return PackageMetaData(**data) + data = fs.load_json(path) + if data["spec"]: + # legacy support for Core<5.3 packages + if "url" in data["spec"]: + data["spec"]["uri"] = data["spec"]["url"] + del data["spec"]["url"] + data["spec"] = PackageSpec(**data["spec"]) + return PackageMetaData(**data) class PackageItem(object): diff --git a/platformio/project/helpers.py b/platformio/project/helpers.py index 2aab20b7..647d7112 100644 --- a/platformio/project/helpers.py +++ b/platformio/project/helpers.py @@ -12,7 +12,6 @@ # See the License for the specific language governing permissions and # limitations under the License. -import json import os import subprocess from hashlib import sha1 @@ -162,6 +161,5 @@ def _load_cached_project_ide_data(project_dir, env_names): for name in env_names: if not os.path.isfile(os.path.join(build_dir, name, "idedata.json")): continue - with open(os.path.join(build_dir, name, "idedata.json"), encoding="utf8") as fp: - result[name] = json.load(fp) + result[name] = fs.load_json(os.path.join(build_dir, name, "idedata.json")) return result