Pseudonym prescription pipeline unit¶
Declaring pipeline units of type pseudonym.
Note
The pipeline unit is registered based on should_include
directive - see documentation for more info.
The following example shows all the configuration options that can be applied for a pseudonym pipeline unit type. See respective sections described below for more info:
name: PseudonymUnit
type: pseudonym
should_include:
# See should_include section for more info.
match: # Criteria to trigger run of this pipeline unit.
package_version:
name: flask # Mandatory, name of the package for which pseudonym should be registered.
version: '>1.0,<=1.1.0' # Version specifier for which the pseudonym should be run. If not provided, defaults to any version.
index_url: 'https://pypi.org/simple' # Package source index for which the pseudonym should be run. If not provided, defaults to any index. Can be negated using "not".
develop: false # If specified, match development or not development dependencies.
run:
log: # Optional text printed to logs when the unit gets called.
message: Some text printed to log on pipeline unit run
type: WARNING
stack_info: # Information printed to the recommended stack report.
- type: WARNING
message: Hello, world!
link: 'https://thoth-station.ninja' # A link to justifications or a link to a web page.
yield:
# Pseudonym that should be registered.
yield_matched_version: true # If set to true, use version that was matched instead of the one provided in the locked_version part.
package_version:
name: flask # Mandatory, name of the pseudonym package.
locked_version: '==1.2.0' # Version of the pseudonym in a locked form.
index_url: 'https://pypi.org/simple' # Package source index where the pseudonym is hosted.
The pseudonym is registered for the specified criteria. The unit derived out of this declarative prescription will make sure the package yielded is known to the resolver.
Note
For a complete schema check the schema.py file in adviser’s implementation.
Pseudonym run.log
¶
Print the given message to logs if the pipeline unit is included and run.
See boot’s log that has shared semantics.
Pseudonym run.stack_info
¶
See boot’s pipeline unit stack info which semantics is shared with this unit.
Pseudonym match.package_version
¶
Package described in package_version
field that should be matched by three
entries:
name
- mandatory, name of the package for which the pseudonym should be providedversion
- optional, version in a form of version specifier for which the pseudonym should be providedindex_url
- optional, Python package index URL for which the pseudonym should be provided; can be additionally negated using “not”develop
- optional, if provided it additionally specifies if the dependency should or should not be a development dependency
It is also possibly to match the given pseudonym pipeline unit for multiple packages
by providing a match listing. In that case, multiple pipeline units with
different match
configuration (but same run
section) will be registered to
the resolution pipeline:
Note
Example:
name: PseudonymUnit type: pseudonym should_include: times: 1 adviser_pipeline: true match: - package_version: name: tensorflow # From any Python package index. - package_version: name: tensorflow-cpu index_url: "https://pypi.org/simple" develop: false # Only if not development dependency. run: stack_info: - message: Considering also intel-tensorflow as an alternative to tensorflow and tensorflow-cpu type: INFO link: "https://pypi.org/project/intel-tensorflow" yield: yield_matched_version: true package_version: name: intel-tensorflow index_url: "https://pypi.org/simple"
Pseudonym run.yield
¶
Description of a package that should be yielded. Made out of two entries:
yield_matched_version
- yields version that was matched based on version specifier in thematch
section, defaults tofalse
package_version
- description of a package that should be yieldedname
- mandatory, name of the package that should be yieldedlocked_version
- optional, disjoint withyield_matched_version
; describes locked version of the package that should be yieldedindex_url
- optional, Python package index to be used to provide pseudonyms
If no version provided or no index explicitly set, all packages found in the Thoth database are yielded (solved by Thoth’s solver).
Note
An example pipeline unit that suggests intel-tensorflow
coming from PyPI
as an alternative to tensorflow
:
name: PseudonymUnit
type: pseudonym
should_include:
times: 1
adviser_pipeline: true
match:
package_version:
name: tensorflow
index_url: "https://pypi.org/simple"
run:
stack_info:
- message: Considering also intel-tensorflow as an alternative to tensorflow
type: INFO
link: "https://pypi.org/project/intel-tensorflow"
yield:
yield_matched_version: true
package_version:
name: intel-tensorflow
index_url: "https://pypi.org/simple"