rez.package_resources

class rez.package_resources.PackageFamilyResource(variables=None)[source]

Bases: rez.package_resources.PackageRepositoryResource

A package family.

A repository implementation’s package family resource(s) must derive from this class. It must satisfy the schema package_family_schema.

class rez.package_resources.PackageRepositoryResource(variables=None)[source]

Bases: rez.utils.resources.Resource

Base class for all package-related resources.

schema_error

Type of exception to throw on bad data.

Type

Exception

repository_type

Type of package repository associated with this resource type.

Type

str

property location
property name
classmethod normalize_variables(variables)[source]

Give subclasses a chance to standardize values for certain variables

repository_type = None
schema_error

alias of rez.exceptions.PackageMetadataError

uri

Simple property caching descriptor.

Example

>>> class Foo(object):
>>>     @cached_property
>>>     def bah(self):
>>>         print('bah')
>>>         return 1
>>>
>>> f = Foo()
>>> f.bah
bah
1
>>> f.bah
1
class rez.package_resources.PackageResource(variables=None)[source]

Bases: rez.package_resources.PackageRepositoryResource

A package.

A repository implementation’s package resource(s) must derive from this class. It must satisfy the schema package_schema.

classmethod normalize_variables(variables)[source]

Make sure version is treated consistently

version

Simple property caching descriptor.

Example

>>> class Foo(object):
>>>     @cached_property
>>>     def bah(self):
>>>         print('bah')
>>>         return 1
>>>
>>> f = Foo()
>>> f.bah
bah
1
>>> f.bah
1
class rez.package_resources.PackageResourceHelper(variables=None)[source]

Bases: rez.package_resources.PackageResource

PackageResource with some common functionality included.

commands

Simple property caching descriptor.

Example

>>> class Foo(object):
>>>     @cached_property
>>>     def bah(self):
>>>         print('bah')
>>>         return 1
>>>
>>> f = Foo()
>>> f.bah
bah
1
>>> f.bah
1
iter_variants()[source]
post_commands

Simple property caching descriptor.

Example

>>> class Foo(object):
>>>     @cached_property
>>>     def bah(self):
>>>         print('bah')
>>>         return 1
>>>
>>> f = Foo()
>>> f.bah
bah
1
>>> f.bah
1
pre_commands

Simple property caching descriptor.

Example

>>> class Foo(object):
>>>     @cached_property
>>>     def bah(self):
>>>         print('bah')
>>>         return 1
>>>
>>> f = Foo()
>>> f.bah
bah
1
>>> f.bah
1
variant_key = None
class rez.package_resources.VariantResource(variables=None)[source]

Bases: rez.package_resources.PackageResource

A package variant.

A repository implementation’s variant resource(s) must derive from this class. It must satisfy the schema variant_schema.

Even packages that do not have a ‘variants’ section contain a variant - in this case it is the ‘None’ variant (the value of index is None). This provides some internal consistency and simplifies the implementation.

property index
root

Simple property caching descriptor.

Example

>>> class Foo(object):
>>>     @cached_property
>>>     def bah(self):
>>>         print('bah')
>>>         return 1
>>>
>>> f = Foo()
>>> f.bah
bah
1
>>> f.bah
1
subpath

Simple property caching descriptor.

Example

>>> class Foo(object):
>>>     @cached_property
>>>     def bah(self):
>>>         print('bah')
>>>         return 1
>>>
>>> f = Foo()
>>> f.bah
bah
1
>>> f.bah
1
class rez.package_resources.VariantResourceHelper(variables=None)[source]

Bases: rez.package_resources.VariantResource

Helper class for implementing variants that inherit properties from their parent package.

Since a variant overlaps so much with a package, here we use the forwarding metaclass to forward our parent package’s attributes onto ourself (with some exceptions - eg ‘variants’, ‘requires’). This is a common enough pattern that it’s supplied here for other repository plugins to use.

property authors
property base
property build_requires
property cachable
property changelog
property commands
property config
property description
property has_plugins
property hashed_variants
property help
keys = {'authors', 'base', 'build_requires', 'cachable', 'changelog', 'commands', 'config', 'description', 'has_plugins', 'hashed_variants', 'help', 'name', 'plugin_for', 'post_commands', 'pre_build_commands', 'pre_commands', 'pre_test_commands', 'previous_revision', 'previous_version', 'private_build_requires', 'release_message', 'relocatable', 'requires', 'revision', 'tests', 'timestamp', 'tools', 'uuid', 'vcs', 'version'}
property plugin_for
property post_commands
property pre_build_commands
property pre_commands
property pre_test_commands
property previous_revision
property previous_version
property private_build_requires
property release_message
property relocatable
property requires
property revision
schema = Schema({Schema('name'): <class 'str'>, Optional('base'): <class 'str'>, Optional('version'): <class 'rez.vendor.version.version.Version'>, Optional('description'): <class 'str'>, Optional('authors'): [<class 'str'>], Optional('requires'): Or(<class 'rez.utils.sourcecode.SourceCode'>, [<class 'rez.utils.formatting.PackageRequest'>]), Optional('build_requires'): Or(<class 'rez.utils.sourcecode.SourceCode'>, [<class 'rez.utils.formatting.PackageRequest'>]), Optional('private_build_requires'): Or(<class 'rez.utils.sourcecode.SourceCode'>, [<class 'rez.utils.formatting.PackageRequest'>]), Optional('has_plugins'): Or(<class 'rez.utils.sourcecode.SourceCode'>, <class 'bool'>), Optional('plugin_for'): Or(<class 'rez.utils.sourcecode.SourceCode'>, [<class 'str'>]), Optional('uuid'): <class 'str'>, Optional('config'): <class 'rez.config.Config'>, Optional('tools'): Or(<class 'rez.utils.sourcecode.SourceCode'>, [<class 'str'>]), Optional('help'): Or(<class 'rez.utils.sourcecode.SourceCode'>, Or(<class 'str'>, [[<class 'str'>]])), Optional('hashed_variants'): <class 'bool'>, Optional('relocatable'): Or(<class 'rez.utils.sourcecode.SourceCode'>, Or(None, <class 'bool'>)), Optional('cachable'): Or(<class 'rez.utils.sourcecode.SourceCode'>, Or(None, <class 'bool'>)), Optional('tests'): Or(<class 'rez.utils.sourcecode.SourceCode'>, Schema({Optional(<class 'str'>): Or(Or(<class 'str'>, [<class 'str'>]), {Optional(<class 'str'>): <class 'object'>, 'command': Or(<class 'str'>, [<class 'str'>]), Optional('requires'): [Or(<class 'rez.utils.formatting.PackageRequest'>, And(<class 'str'>, Use(<class 'rez.utils.formatting.PackageRequest'>)))], Optional('run_on'): Or(<class 'str'>, [<class 'str'>]), Optional('on_variants'): Or(<class 'bool'>, {'type': 'requires', 'value': [Or(<class 'rez.utils.formatting.PackageRequest'>, And(<class 'str'>, Use(<class 'rez.utils.formatting.PackageRequest'>)))]})})})), Optional('pre_commands'): <class 'rez.utils.sourcecode.SourceCode'>, Optional('commands'): <class 'rez.utils.sourcecode.SourceCode'>, Optional('post_commands'): <class 'rez.utils.sourcecode.SourceCode'>, Optional('pre_build_commands'): <class 'rez.utils.sourcecode.SourceCode'>, Optional('pre_test_commands'): <class 'rez.utils.sourcecode.SourceCode'>, Optional('timestamp'): <class 'int'>, Optional('revision'): <class 'object'>, Optional('changelog'): <class 'str'>, Optional('release_message'): Or(None, <class 'str'>), Optional('previous_version'): <class 'rez.vendor.version.version.Version'>, Optional('previous_revision'): <class 'object'>, Optional('vcs'): <class 'str'>, Optional(<class 'str'>): Or(<class 'rez.utils.sourcecode.SourceCode'>, <class 'object'>)})
property tests
property timestamp
property tools
property uuid
validate_data()
validated_data()
variant_requires

Simple property caching descriptor.

Example

>>> class Foo(object):
>>>     @cached_property
>>>     def bah(self):
>>>         print('bah')
>>>         return 1
>>>
>>> f = Foo()
>>> f.bah
bah
1
>>> f.bah
1
property vcs
property wrapped
rez.package_resources.late_bound(schema)[source]