rez.package_search
Default algorithms for searching for packages based on some criteria. Package repository plugins may implement these algorithms instead, because they may be able to search packages much faster - for example, in a database-based package repository. The algorithms here serve as backup for those package repositories that do not provide an implementation.
- class rez.package_search.ResourceSearchResult(resource, resource_type, validation_error=None)[source]
Bases:
objectItems from a search.
Will contain either a package, variant, or name of a package family (str).
- class rez.package_search.ResourceSearchResultFormatter(output_format=None, suppress_newlines=False)[source]
Bases:
objectFormats search results.
- fields = ('pre_commands', 'tools', 'uuid', 'build_requires', 'version', 'timestamp', 'release_message', 'private_build_requires', 'revision', 'description', 'base', 'authors', 'variants', 'commands', 'name', 'changelog', 'post_commands', 'requires', 'root', 'index', 'uri', 'num_variants', 'qualified_name')
- class rez.package_search.ResourceSearcher(package_paths=None, resource_type=None, no_local=False, latest=False, after_time=None, before_time=None, validate=False)[source]
Bases:
objectSearch for resources (packages, variants or package families).
- iter_resources(resources_request=None)[source]
Iterate over matching resources.
- Parameters
resources_request (str) – Resource to search, glob-style patterns are supported. If None, returns all matching resource types.
- Returns
str: resource type (family, package, variant);
Iterator of ResourceSearchResult: Matching resources. Will be in alphabetical order if families, and version ascending for packages or variants.
- Return type
2-tuple
- search(resources_request=None)[source]
Search for resources.
- Parameters
resources_request (str) – Resource to search, glob-style patterns are supported. If None, returns all matching resource types.
- Returns
str: resource type (family, package, variant);
List of ResourceSearchResult: Matching resources. Will be in alphabetical order if families, and version ascending for packages or variants.
- Return type
2-tuple
- rez.package_search.get_plugins(package_name, paths=None)[source]
Find packages that are plugins of the given package.
- Parameters
package_name (str) – Name of the package.
paths (list of str) – Paths to search for packages, defaults to config.packages_path.
- Returns
The packages that are plugins of the given package.
- Return type
list of str
- rez.package_search.get_reverse_dependency_tree(package_name, depth=None, paths=None, build_requires=False, private_build_requires=False)[source]
Find packages that depend on the given package.
This is a reverse dependency lookup. A tree is constructed, showing what packages depend on the given package, with an optional depth limit. A resolve does not occur. Only the latest version of each package is used, and requirements from all variants of that package are used.
- Parameters
package_name (str) – Name of the package depended on.
depth (int) – Tree depth limit, unlimited if None.
paths (list of str) – paths to search for packages, defaults to config.packages_path.
build_requires (bool) – If True, includes packages’ build_requires.
private_build_requires (bool) – If True, include package_name’s private_build_requires.
- Returns
(list of list of str): Lists of package names, where each list is a single depth in the tree. The first list is always [package_name].
pygraph.digraph object, where nodes are package names, and package_name is always the leaf node.
- Return type
A 2-tuple