Switch to FS JSON loader

This commit is contained in:
Ivan Kravets
2022-04-21 16:30:55 +03:00
parent 2f6a417168
commit 72fa6eebba
3 changed files with 12 additions and 15 deletions

View File

@ -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:]

View File

@ -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):

View File

@ -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