diff --git a/.github/workflows/py-tests-3_10.yml b/.github/workflows/py-tests-3_10.yml index 5abde2fe294..07b517e01c7 100644 --- a/.github/workflows/py-tests-3_10.yml +++ b/.github/workflows/py-tests-3_10.yml @@ -46,7 +46,7 @@ jobs: - name: Install Ubuntu dependencies run: | sudo apt-get install -y unixodbc-dev python3-venv librdkafka-dev gcc libsasl2-dev build-essential libssl-dev libffi-dev \ - librdkafka-dev unixodbc-dev libevent-dev + unixodbc-dev libevent-dev python3-dev - name: Install open-metadata dependencies run: | diff --git a/ingestion/setup.py b/ingestion/setup.py index ba39e16b0bf..5180621faa7 100644 --- a/ingestion/setup.py +++ b/ingestion/setup.py @@ -25,7 +25,7 @@ def get_long_description(): base_requirements = { "commonregex", "idna<3,>=2.5", - "click>=7.1.1,<8", + "click>=7.1.1", "typing_extensions>=3.7.4", "mypy_extensions>=0.4.3", "typing-inspect", @@ -45,6 +45,9 @@ base_requirements = { "PyYAML", "jsonschema", "sqllineage==1.3.3", + # compatibility requirements for 3.7 + "typing-compat~=0.1.0", + "importlib-metadata~=4.11.3", } report_requirements = { @@ -138,9 +141,9 @@ plugins: Dict[str, Set[str]] = { dev = { "boto3==1.20.14", "botocore==1.23.14", - "datamodel-code-generator==0.11.14", - "black==21.12b0", # required for datamodel-code-generator==0.11.14 - "pycln", + "datamodel-code-generator==0.12.0", + "black==22.3.0", + "pycln==1.3.2", "docker", "google-cloud-storage==1.43.0", "twine", diff --git a/ingestion/src/metadata/ingestion/ometa/mixins/server_mixin.py b/ingestion/src/metadata/ingestion/ometa/mixins/server_mixin.py index 521ae92b17d..74f109a4cf4 100755 --- a/ingestion/src/metadata/ingestion/ometa/mixins/server_mixin.py +++ b/ingestion/src/metadata/ingestion/ometa/mixins/server_mixin.py @@ -14,7 +14,11 @@ Mixin class containing Server and client specific methods To be used by OpenMetadata class """ import re -from importlib.metadata import version + +try: + from importlib.metadata import version +except ImportError: + from importlib_metadata import version from metadata.ingestion.ometa.client import REST from metadata.utils.logger import ometa_logger diff --git a/ingestion/src/metadata/ingestion/ometa/ometa_api.py b/ingestion/src/metadata/ingestion/ometa/ometa_api.py index 67ab084681a..bf94fcb072e 100644 --- a/ingestion/src/metadata/ingestion/ometa/ometa_api.py +++ b/ingestion/src/metadata/ingestion/ometa/ometa_api.py @@ -16,7 +16,12 @@ working with OpenMetadata entities. """ import urllib -from typing import Dict, Generic, List, Optional, Type, TypeVar, Union, get_args +from typing import Dict, Generic, List, Optional, Type, TypeVar, Union + +try: + from typing import get_args +except ImportError as err: + from typing_compat import get_args from pydantic import BaseModel diff --git a/ingestion/src/metadata/utils/filters.py b/ingestion/src/metadata/utils/filters.py index 0ee050db82d..3c5e7a103b1 100644 --- a/ingestion/src/metadata/utils/filters.py +++ b/ingestion/src/metadata/utils/filters.py @@ -57,9 +57,9 @@ def _filter(filter_pattern: Optional[FilterPattern], name: str) -> bool: validate_regex(filter_pattern.includes) return not any( [ - matched + name for regex in filter_pattern.includes - if (matched := re.match(regex, name, re.IGNORECASE)) + if (re.match(regex, name, re.IGNORECASE)) ] ) @@ -67,9 +67,9 @@ def _filter(filter_pattern: Optional[FilterPattern], name: str) -> bool: validate_regex(filter_pattern.excludes) return any( [ - matched + name for regex in filter_pattern.excludes - if (matched := re.match(regex, name, re.IGNORECASE)) + if (re.match(regex, name, re.IGNORECASE)) ] )