VersionConstraint#

class pybmd.version_info.VersionConstraint(added_in: Version | None = None, removed_in: Version | None = None, deprecated_in: Version | None = None, moved_to: str | None = None, notes: str | None = None)[source]

Bases: object

Defines version constraints for an API.

Parameters:
  • added_in (Version | None)

  • removed_in (Version | None)

  • deprecated_in (Version | None)

  • moved_to (str | None)

  • notes (str | None)

added_in

First version where API exists

Type:

pybmd.version_info.Version | None

removed_in

Version where API was removed

Type:

pybmd.version_info.Version | None

deprecated_in

Version where API was deprecated

Type:

pybmd.version_info.Version | None

moved_to

Where API was moved (if applicable)

Type:

str | None

notes

Additional information

Type:

str | None

Example

>>> constraint = VersionConstraint(
...     added_in=Version(20, 0, 0),
...     deprecated_in=Version(20, 2, 0),
...     moved_to="Graph.set_lut"
... )
>>> current = Version(20, 1, 0)
>>> constraint.is_compatible(current)
True

Methods

__init__([added_in, removed_in, ...])

get_status(current_version)

Get detailed status of API compatibility.

is_compatible(current_version)

Check if current version is compatible with this API.

Attributes

is_compatible(current_version: Version) bool[source]

Check if current version is compatible with this API.

Parameters:

current_version (Version) – The current DaVinci Resolve version

Returns:

True if API is compatible, False otherwise

Return type:

bool

Example

>>> constraint = VersionConstraint(added_in=Version(20, 0, 0))
>>> constraint.is_compatible(Version(20, 1, 0))
True
>>> constraint.is_compatible(Version(19, 0, 0))
False
get_status(current_version: Version) Tuple[bool, APIStatus, str][source]

Get detailed status of API compatibility.

Parameters:

current_version (Version) – The current DaVinci Resolve version

Returns:

Tuple of (is_compatible, status, message)

Return type:

Tuple[bool, APIStatus, str]

Example

>>> constraint = VersionConstraint(
...     added_in=Version(20, 0, 0),
...     removed_in=Version(21, 0, 0),
...     moved_to="Graph.method"
... )
>>> is_ok, status, msg = constraint.get_status(Version(19, 0, 0))
>>> is_ok
False
>>> status
<APIStatus.ADDED: 'added'>