Mercurial > repos > shellac > sam_consensus_v3
comparison env/lib/python3.9/site-packages/galaxy/tool_util/deps/resolvers/homebrew.py @ 0:4f3585e2f14b draft default tip
"planemo upload commit 60cee0fc7c0cda8592644e1aad72851dec82c959"
author | shellac |
---|---|
date | Mon, 22 Mar 2021 18:12:50 +0000 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:4f3585e2f14b |
---|---|
1 """ | |
2 This file implements a brew resolver for Galaxy requirements. In order for Galaxy | |
3 to pick up on recursively defined and versioned brew dependencies recipes should | |
4 be installed using the experimental `brew-vinstall` external command. | |
5 | |
6 More information here: | |
7 | |
8 https://github.com/jmchilton/brew-tests | |
9 https://github.com/Homebrew/homebrew-science/issues/1191 | |
10 | |
11 This is still an experimental module and there will almost certainly be backward | |
12 incompatible changes coming. | |
13 """ | |
14 | |
15 from . import ( | |
16 DependencyResolver, | |
17 NullDependency | |
18 ) | |
19 from .resolver_mixins import UsesHomebrewMixin | |
20 | |
21 # TODO: Implement prefer version linked... | |
22 PREFER_VERSION_LINKED = 'linked' | |
23 PREFER_VERSION_LATEST = 'latest' | |
24 UNKNOWN_PREFER_VERSION_MESSAGE_TEMPLATE = "HomebrewDependencyResolver prefer_version must be %s" | |
25 UNKNOWN_PREFER_VERSION_MESSAGE = UNKNOWN_PREFER_VERSION_MESSAGE_TEMPLATE % (PREFER_VERSION_LATEST) | |
26 DEFAULT_PREFER_VERSION = PREFER_VERSION_LATEST | |
27 | |
28 | |
29 class HomebrewDependencyResolver(DependencyResolver, UsesHomebrewMixin): | |
30 resolver_type = "homebrew" | |
31 | |
32 def __init__(self, dependency_manager, **kwds): | |
33 self.versionless = _string_as_bool(kwds.get('versionless', 'false')) | |
34 self.prefer_version = kwds.get('prefer_version', None) | |
35 | |
36 if self.prefer_version is None: | |
37 self.prefer_version = DEFAULT_PREFER_VERSION | |
38 | |
39 if self.versionless and self.prefer_version not in [PREFER_VERSION_LATEST]: | |
40 raise Exception(UNKNOWN_PREFER_VERSION_MESSAGE) | |
41 | |
42 self._init_homebrew(**kwds) | |
43 | |
44 def resolve(self, requirement, **kwds): | |
45 name, version, type = requirement.name, requirement.version, requirement.type | |
46 | |
47 if type != "package": | |
48 return NullDependency(version=version, name=name) | |
49 | |
50 if version is None or self.versionless: | |
51 return self._find_dep_default(name, version) | |
52 else: | |
53 return self._find_dep_versioned(name, version) | |
54 | |
55 | |
56 def _string_as_bool(value): | |
57 return str(value).lower() == "true" | |
58 | |
59 | |
60 __all__ = ('HomebrewDependencyResolver', ) |