Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def get_top_level_dependencies(self):
"""Yield the path, repository, and hash of top-level dependencies."""
if not os.path.exists(self.location_path):
return
shell.cd(self.location_path)
common.newline()
common.indent()
for source in self.sources:
yield os.path.join(self.location_path, source.name)
shell.cd(self.location_path, _show=False)
common.dedent()
sources = self._get_sources()
sources_filter = self._get_sources_filter(*names, sources=sources)
shell.cd(self.location_path)
common.newline()
common.indent()
count = 0
for source in sources:
if source.name in sources_filter:
source.run_scripts(force=force)
count += 1
config = load_config(search=False)
if config:
common.indent()
count += config.run_scripts(
depth=None if depth is None else max(0, depth - 1), force=force
)
common.dedent()
shell.cd(self.location_path, _show=False)
common.dedent()
return count
continue
source.update_files(
force=force,
force_interactive=force_interactive,
fetch=fetch,
clean=clean,
skip_changes=skip_changes,
)
source.create_link(self.root, force=force)
common.newline()
count += 1
config = load_config(search=False)
if config:
common.indent()
count += config.install_dependencies(
depth=None if depth is None else max(0, depth - 1),
update=update and recurse,
recurse=recurse,
force=force,
fetch=fetch,
clean=clean,
skip_changes=skip_changes,
)
common.dedent()
shell.cd(self.location_path, _show=False)
common.dedent()
if sources_filter:
log.error("No such dependency: %s", ' '.join(sources_filter))
def get_dependencies(self, depth=None, allow_dirty=True):
"""Yield the path, repository, and hash of each dependency."""
if not os.path.exists(self.location_path):
return
shell.cd(self.location_path)
common.newline()
common.indent()
for source in self.sources:
if depth == 0:
log.info("Skipped dependency: %s", source.name)
continue
yield source.identify(allow_dirty=allow_dirty)
config = load_config(search=False)
if config:
common.indent()
yield from config.get_dependencies(
depth=None if depth is None else max(0, depth - 1),
allow_dirty=allow_dirty,
)
def lock_dependencies(self, *names, obey_existing=True, skip_changes=False):
"""Lock down the immediate dependency versions."""
sources = self._get_sources(use_locked=obey_existing).copy()
sources_filter = self._get_sources_filter(*names, sources=sources)
shell.cd(self.location_path)
common.newline()
common.indent()
count = 0
for source in sources:
if source.name not in sources_filter:
log.info("Skipped dependency: %s", source.name)
continue
source_locked = source.lock(skip_changes=skip_changes)
if source_locked is not None:
try:
index = self.sources_locked.index(source)
except ValueError:
self.sources_locked.append(source_locked)
else:
self.sources_locked[index] = source_locked
shell.cd(self.location_path)
common.newline()
common.indent()
for source in self.sources:
if depth == 0:
log.info("Skipped dependency: %s", source.name)
continue
yield source.identify(allow_dirty=allow_dirty)
config = load_config(search=False)
if config:
common.indent()
yield from config.get_dependencies(
depth=None if depth is None else max(0, depth - 1),
allow_dirty=allow_dirty,
)
common.dedent()
shell.cd(self.location_path, _show=False)
common.dedent()