Skip to content

Commit 821fe56

Browse files
author
Christopher Doris
committed
merges duplicate packages
1 parent 6288f2e commit 821fe56

File tree

1 file changed

+22
-3
lines changed

1 file changed

+22
-3
lines changed

juliacall/deps.py

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
import semantic_version as semver
33
import sys
44

5-
from collections import namedtuple
65
from time import time
76

87
from . import CONFIG, __version__
@@ -160,8 +159,28 @@ def required_packages():
160159
p = ans[name]
161160
if p.uuid != kw["uuid"]:
162161
raise Exception("found multiple UUIDs for package '{}'".format(name))
163-
# todo: dev, compat, path, url, rev, version
164-
raise NotImplementedError("need to merge repeated dependency '{}'")
162+
if "dev" in kw:
163+
p.dev |= kw["dev"]
164+
if "compat" in kw:
165+
if p.compat is not None and p.compat != kw["compat"]:
166+
raise NotImplementedError("found multiple 'compat' entries for package '{}'".format(name))
167+
p.compat = kw["compat"]
168+
if "path" in kw:
169+
if p.path is not None and p.path != kw["path"]:
170+
raise Exception("found multiple 'path' entries for package '{}'".format(name))
171+
p.path = kw["path"]
172+
if "url" in kw:
173+
if p.url is not None and p.url != kw["url"]:
174+
raise Exception("found multiple 'url' entries for package '{}'".format(name))
175+
p.url = kw["url"]
176+
if "rev" in kw:
177+
if p.rev is not None and p.rev != kw["rev"]:
178+
raise Exception("found multiple 'rev' entries for package '{}'".format(name))
179+
p.rev = kw["rev"]
180+
if "version" in kw:
181+
if p.version is not None and p.version != kw["version"]:
182+
raise NotImplementedError("found multiple 'version' entries for package '{}'".format(name))
183+
p.version = kw["version"]
165184
else:
166185
p = PackageSpec(name=name, **kw)
167186
ans[p.name] = p

0 commit comments

Comments
 (0)