Glossary Entity Added - Ingestion fix (#2794)

* Added Glossary

* Modified Glossary: Mixin and suffix

* Glossary Mixin Methods

* Sample Data and Mixin for Glossary

* Modified comments

* Glossary Mixin Updated

* Added Glossary import

* Import issues fixed, removed upper limit for jinja2 as it conflicted

* Removed Glossary Import
This commit is contained in:
Ayush Shah 2022-02-18 12:50:55 +05:30 committed by GitHub
parent f304d290b4
commit 959d441661
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 31 additions and 2 deletions

View File

@ -42,7 +42,7 @@ base_requirements = {
"sql-metadata~=2.0.0",
"requests~=2.26",
"cryptography",
"Jinja2>=2.11.3, <3.0",
"Jinja2>=2.11.3",
"PyYAML",
"jsonschema",
"parsimonious==0.8.1",

View File

@ -0,0 +1,24 @@
"""
Mixin class containing Glossaries specific methods
To be used be OpenMetadata
"""
import logging
from typing import Type, TypeVar
from pydantic import BaseModel
T = TypeVar("T", bound=BaseModel) # pylint: disable=invalid-name
logger = logging.getLogger(__name__)
class GlossaryMixin:
def create_glossaries_category(self, entity: Type[T], glossaries_body):
"""Method to create new Glossary category
Args:
glossaries_body (Glossary): body of the request
"""
resp = self.client.put(
path=self.get_suffix(entity), data=glossaries_body.json()
)
logger.info(f"Created a Glossary: {resp}")

View File

@ -25,6 +25,7 @@ from metadata.generated.schema.api.lineage.addLineage import AddLineageRequest
from metadata.generated.schema.entity.data.chart import Chart
from metadata.generated.schema.entity.data.dashboard import Dashboard
from metadata.generated.schema.entity.data.database import Database
from metadata.generated.schema.entity.data.glossary import Glossary
from metadata.generated.schema.entity.data.location import Location
from metadata.generated.schema.entity.data.metrics import Metrics
from metadata.generated.schema.entity.data.mlmodel import MlModel
@ -47,6 +48,7 @@ from metadata.generated.schema.type.entityHistory import EntityVersionHistory
from metadata.generated.schema.type.entityReference import EntityReference
from metadata.ingestion.ometa.auth_provider import AuthenticationProvider
from metadata.ingestion.ometa.client import REST, APIError, ClientConfig
from metadata.ingestion.ometa.mixins.glossary_mixin import GlossaryMixin
from metadata.ingestion.ometa.mixins.mlmodel_mixin import OMetaMlModelMixin
from metadata.ingestion.ometa.mixins.pipeline_mixin import OMetaPipelineMixin
from metadata.ingestion.ometa.mixins.table_mixin import OMetaTableMixin
@ -63,7 +65,6 @@ from metadata.ingestion.ometa.utils import get_entity_type, uuid_to_str
logger = logging.getLogger(__name__)
# The naming convention is T for Entity Types and C for Create Types
T = TypeVar("T", bound=BaseModel)
C = TypeVar("C", bound=BaseModel)
@ -103,6 +104,7 @@ class OpenMetadata(
OMetaTableMixin,
OMetaVersionMixin,
OMetaTagMixin,
GlossaryMixin,
Generic[T, C],
):
"""
@ -221,6 +223,9 @@ class OpenMetadata(
if issubclass(entity, (Tag, TagCategory)):
return "/tags"
if issubclass(entity, Glossary):
return "/glossaries"
if issubclass(entity, get_args(Union[Role, self.get_create_entity_type(Role)])):
return "/roles"