Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def canonical_name(self):
for multiname, channels in iteritems(context.custom_multichannels):
for channel in channels:
if self.name == channel.name:
return multiname
for that_name in context.custom_channels:
if self.name and tokenized_startswith(self.name.split('/'), that_name.split('/')):
return self.name
if any(c.location == self.location
for c in concatv((context.channel_alias,), context.migrated_channel_aliases)):
return self.name
# fall back to the equivalent of self.base_url
# re-defining here because base_url for MultiChannel is None
if self.scheme:
return "%s://%s" % (self.scheme, join_url(self.location, self.name))
else:
return join_url(self.location, self.name).lstrip('/')
def execute(self):
if not self._prepared:
self.prepare()
assert not context.dry_run
with signal_handler(conda_signal_handler), time_recorder("fetch_extract_execute"):
for action in concatv(self.cache_actions, self.extract_actions):
self._execute_action(action)
Args:
ctx (Context): the context object
name (str): the name of prefix to find
Returns:
str: the location of the prefix found, or CondaValueError will raise if not found
Raises:
CondaValueError: when no prefix is found
"""
if name == ROOT_ENV_NAME:
return ctx.root_dir
# look for a directory named `name` in all envs_dirs AND in CWD
for envs_dir in concatv(ctx.envs_dirs, (os.getcwd(),)):
prefix = join(envs_dir, name)
if isdir(prefix):
return prefix
raise CondaEnvironmentNotFoundError(name)
match.valueflags(parameter_obj))
if flag is marker) if match else ()
top_lines = concat(get_marked_lines(m, ParameterFlag.top, self) for m, _ in
relevant_matches_and_values)
# also get lines that were marked as bottom, but reverse the match order so that lines
# coming earlier will ultimately be last
bottom_lines = concat(get_marked_lines(m, ParameterFlag.bottom, self) for m, _ in
reversed(relevant_matches_and_values))
# now, concat all lines, while reversing the matches
# reverse because elements closer to the end of search path take precedence
all_lines = concat(v for _, v in reversed(relevant_matches_and_values))
# stack top_lines + all_lines, then de-dupe
top_deduped = tuple(unique(concatv(top_lines, all_lines)))
# take the top-deduped lines, reverse them, and concat with reversed bottom_lines
# this gives us the reverse of the order we want, but almost there
# NOTE: for a line value marked both top and bottom, the bottom marker will win out
# for the top marker to win out, we'd need one additional de-dupe step
bottom_deduped = unique(concatv(reversed(tuple(bottom_lines)), reversed(top_deduped)))
# just reverse, and we're good to go
return tuple(reversed(tuple(bottom_deduped)))
# Always link/unlink menuinst first/last on windows in case a subsequent
# package tries to import it to create/remove a shortcut
# unlink
menuinst_idx = next((q for q, d in enumerate(unlink_dists) if d.name == 'menuinst'), None)
if menuinst_idx is not None:
unlink_dists = tuple(concatv(
unlink_dists[:menuinst_idx],
unlink_dists[menuinst_idx+1:],
unlink_dists[menuinst_idx:menuinst_idx+1],
))
# link
menuinst_idx = next((q for q, d in enumerate(link_dists) if d.name == 'menuinst'), None)
if menuinst_idx is not None:
link_dists = tuple(concatv(
link_dists[menuinst_idx:menuinst_idx+1],
link_dists[:menuinst_idx],
link_dists[menuinst_idx+1:],
))
return unlink_dists, link_dists
"""Find pinned specs from file and return a tuple of MatchSpec."""
pinfile = join(prefix, 'conda-meta', 'pinned')
if exists(pinfile):
with open(pinfile) as f:
from_file = (i for i in f.read().strip().splitlines()
if i and not i.strip().startswith('#'))
else:
from_file = ()
from .cli.common import spec_from_line
def munge_spec(s):
return s if ' ' in s else spec_from_line(s)
return tuple(MatchSpec(munge_spec(s), optional=True) for s in
concatv(context.pinned_packages, from_file))
"""
Get environment object from prefix
Args:
name: The name of environment
prefix: The path of prefix
no_builds: Whether has build requirement
ignore_channels: whether ignore_channels
Returns: Environment object
"""
# requested_specs_map = History(prefix).get_requested_specs_map()
pd = PrefixData(prefix, pip_interop_enabled=True)
precs = tuple(PrefixGraph(pd.iter_records()).graph)
grouped_precs = groupby(lambda x: x.package_type, precs)
conda_precs = sorted(concatv(
grouped_precs.get(None, ()),
grouped_precs.get(PackageType.NOARCH_GENERIC, ()),
grouped_precs.get(PackageType.NOARCH_PYTHON, ()),
), key=lambda x: x.name)
pip_precs = sorted(concatv(
grouped_precs.get(PackageType.VIRTUAL_PYTHON_WHEEL, ()),
grouped_precs.get(PackageType.VIRTUAL_PYTHON_EGG_MANAGEABLE, ()),
grouped_precs.get(PackageType.VIRTUAL_PYTHON_EGG_UNMANAGEABLE, ()),
# grouped_precs.get(PackageType.SHADOW_PYTHON_EGG_LINK, ()),
), key=lambda x: x.name)
if no_builds:
dependencies = ['='.join((a.name, a.version)) for a in conda_precs]
else:
dependencies = ['='.join((a.name, a.version, a.build)) for a in conda_precs]
"topn={} is invalid; "
"must be an int or a float between 0.0 and 1.0".format(topn)
)
# bookkeeping
stop_words = set()
seen_candidates = set()
seen_terms = set()
def _is_upper_cased(tok):
return tok.is_upper or (tok.is_title and not tok.is_sent_start)
# get key values for each individual occurrence of a word
word_vals = collections.defaultdict(lambda: collections.defaultdict(list))
for sent_idx, sent in enumerate(doc.sents):
padding = [None] * window_size
sent_padded = itertoolz.concatv(padding, sent, padding)
for window in itertoolz.sliding_window(1 + (2 * window_size), sent_padded):
lwords, word, rwords = window[:window_size], window[window_size], window[window_size + 1:]
wid = word.lower
if word.is_stop:
stop_words.add(wid)
word_vals[wid]["is_upper_cased"].append(_is_upper_cased(word))
word_vals[wid]["sent_idx"].append(sent_idx)
word_vals[wid]["left_context"].extend(
w.lower for w in lwords
if not (w is None or w.is_punct or w.is_space)
)
word_vals[wid]["right_context"].extend(
w.lower for w in rwords
if not (w is None or w.is_punct or w.is_space)
)