or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

Files

docs

asset-management.mdindex.mdlineage-entities.mdnotifier-compatibility.mdopenlineage-integration.mdprovider-verification.mdsecurity-permissions.mdstandard-components.mdversion-compatibility.md

provider-verification.mddocs/

0

# Provider Verification

1

2

Decorators and utilities for enforcing minimum version requirements of provider packages and optional dependencies. These functions ensure that required provider versions are available before executing code that depends on them.

3

4

## Capabilities

5

6

### Provider Version Enforcement

7

8

Decorator that enforces minimum version requirements for Airflow provider packages.

9

10

```python { .api }

11

def require_provider_version(provider_name: str, provider_min_version: str):

12

"""

13

Decorator to enforce minimum provider version requirements.

14

15

Args:

16

provider_name (str): Full provider package name (e.g., "apache-airflow-providers-openlineage")

17

provider_min_version (str): Minimum version requirement (e.g., "1.0.1")

18

19

Returns:

20

Decorator function that checks version before execution

21

22

Raises:

23

ValueError: If provider_name or provider_min_version is invalid

24

TypeError: If arguments are not strings

25

AirflowOptionalProviderFeatureException: If provider version requirement not met

26

"""

27

```

28

29

### OpenLineage Version Enforcement

30

31

Specialized decorator for enforcing OpenLineage provider and client version requirements.

32

33

```python { .api }

34

def require_openlineage_version(

35

provider_min_version: str | None = None,

36

client_min_version: str | None = None

37

):

38

"""

39

Decorator to enforce minimum OpenLineage version requirements.

40

41

Args:

42

provider_min_version (str, optional): Minimum version for apache-airflow-providers-openlineage

43

client_min_version (str, optional): Minimum version for openlineage-python client

44

45

Returns:

46

Decorator function that checks versions before execution

47

48

Raises:

49

ValueError: If version strings are invalid

50

TypeError: If arguments are not strings or None

51

AirflowOptionalProviderFeatureException: If version requirements not met

52

"""

53

```

54

55

## Usage Examples

56

57

```python

58

from airflow.providers.common.compat.check import require_provider_version

59

from airflow.providers.common.compat.openlineage.check import require_openlineage_version

60

61

# Require specific provider version

62

@require_provider_version("apache-airflow-providers-postgres", "5.0.0")

63

def use_postgres_features():

64

from airflow.providers.postgres.operators.postgres import PostgresOperator

65

# Code that requires PostgreSQL provider v5.0.0+

66

return PostgresOperator(...)

67

68

# Require OpenLineage provider version

69

@require_openlineage_version(provider_min_version="1.2.0")

70

def use_openlineage_features():

71

from airflow.providers.openlineage.extractors import BaseExtractor

72

# Code that requires OpenLineage provider v1.2.0+

73

return BaseExtractor()

74

75

# Require both provider and client versions

76

@require_openlineage_version(

77

provider_min_version="1.2.0",

78

client_min_version="0.28.0"

79

)

80

def use_advanced_openlineage():

81

from openlineage.client import OpenLineageClient

82

from airflow.providers.openlineage.plugins.listener import OpenLineageListener

83

# Code requiring both provider and client versions

84

pass

85

86

# Use in operator classes

87

class MyCustomOperator(BaseOperator):

88

@require_provider_version("apache-airflow-providers-http", "4.0.0")

89

def execute(self, context):

90

from airflow.providers.http.operators.http import HttpOperator

91

# Implementation using HTTP provider features

92

pass

93

94

# Chain multiple version requirements

95

@require_provider_version("apache-airflow-providers-postgres", "5.0.0")

96

@require_openlineage_version(provider_min_version="1.0.0")

97

def complex_data_pipeline():

98

# Code that needs both providers

99

pass

100

```