Skip to content

Commit

Permalink
no user/channel repr without _ (conan-io#5817)
Browse files Browse the repository at this point in the history
* no user/channel repr without _

* minor fixes

* fix tests
  • Loading branch information
memsharded authored and czoido committed Sep 27, 2019
1 parent b15c05e commit 09a2ce5
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 13 deletions.
3 changes: 3 additions & 0 deletions conans/client/graph/range_resolver.py
Original file line number Diff line number Diff line change
Expand Up @@ -140,6 +140,9 @@ def resolve(self, require, base_conanref, update, remotes):

def _resolve_local(self, search_ref, version_range):
local_found = search_recipes(self._cache, search_ref)
local_found = [ref for ref in local_found
if ref.user == search_ref.user and
ref.channel == search_ref.channel]
if local_found:
return self._resolve_version(version_range, local_found)

Expand Down
4 changes: 2 additions & 2 deletions conans/model/ref.py
Original file line number Diff line number Diff line change
Expand Up @@ -210,8 +210,8 @@ def __str__(self):

def __repr__(self):
str_rev = "#%s" % self.revision if self.revision else ""
return "%s/%s@%s/%s%s" % (self.name, self.version, self.user or "_", self.channel or "_",
str_rev)
user_channel = "@%s/%s" % (self.user, self.channel) if self.user or self.channel else ""
return "%s/%s%s%s" % (self.name, self.version, user_channel, str_rev)

def full_str(self):
str_rev = "#%s" % self.revision if self.revision else ""
Expand Down
17 changes: 6 additions & 11 deletions conans/search/search.py
Original file line number Diff line number Diff line change
Expand Up @@ -76,21 +76,17 @@ def _evaluate(prop_name, prop_value, conan_vars_info):
conan_vars_info.serialize_min()
"""

def compatible_prop(setting_value, prop_value):
return (prop_value == setting_value) or (prop_value == "None" and setting_value is None)
def compatible_prop(setting_value, _prop_value):
return (_prop_value == setting_value) or (_prop_value == "None" and setting_value is None)

info_settings = conan_vars_info.get("settings", [])
info_options = conan_vars_info.get("options", [])
properties = ["os", "os_build", "compiler", "arch", "arch_build", "build_type"]

def starts_with_common_settings(prop_name):
for setting in properties:
if prop_name.startswith(setting + '.'):
return True
return False
def starts_with_common_settings(_prop_name):
return any(_prop_name.startswith(setting + '.') for setting in properties)

if (prop_name in properties or
starts_with_common_settings(prop_name)):
if prop_name in properties or starts_with_common_settings(prop_name):
return compatible_prop(info_settings.get(prop_name, None), prop_value)
else:
return compatible_prop(info_options.get(prop_name, None), prop_value)
Expand All @@ -104,8 +100,7 @@ def search_recipes(cache, pattern=None, ignorecase=True):
pattern = translate(pattern)
pattern = re.compile(pattern, re.IGNORECASE) if ignorecase else re.compile(pattern)

subdirs = list_folder_subdirs(basedir=cache.store, level=4)
refs = [ConanFileReference.load_dir_repr(folder) for folder in subdirs]
refs = cache.all_refs()
refs.extend(cache.editable_packages.edited_refs.keys())
if pattern:
refs = [r for r in refs if _partial_match(pattern, repr(r))]
Expand Down

0 comments on commit 09a2ce5

Please sign in to comment.