Use cargo read-manifest instead of metadata

The `read-manifest` json output is a subset of `metadata` for the
current `Cargo.toml` only, even tighter than `--no-deps` provides.
This commit is contained in:
Josh Stone 2017-05-17 15:19:52 -07:00
parent 8757161c11
commit 3fc7ade708

View file

@ -139,7 +139,7 @@ class Metadata(object):
def from_json(cls, metadata):
self = cls()
md = metadata["packages"][0]
md = metadata
self.name = md["name"]
self.license = md["license"]
self.license_file = md["license_file"]
@ -171,8 +171,7 @@ class Metadata(object):
@classmethod
def from_file(cls, path):
do_decode = sys.version_info < (3, 6)
# --no-deps is to disable recursive scanning of deps
metadata = subprocess.check_output(["cargo", "metadata", "--no-deps",
metadata = subprocess.check_output(["cargo", "read-manifest",
"--manifest-path={}".format(path)],
universal_newlines=do_decode)
return cls.from_json(json.loads(metadata))