summaryrefslogtreecommitdiff
path: root/python-apache-atlas.spec
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2023-04-11 16:46:54 +0000
committerCoprDistGit <infra@openeuler.org>2023-04-11 16:46:54 +0000
commitdde5bac89dfeba61a8582e80bdb365087b6b665b (patch)
treed2a935b5cd0f02d6e4634a6c071ba98b2ad5adec /python-apache-atlas.spec
parentf3f04ff53c00e053a9a52ba956d36f65bee2aca7 (diff)
automatic import of python-apache-atlas
Diffstat (limited to 'python-apache-atlas.spec')
-rw-r--r--python-apache-atlas.spec376
1 files changed, 376 insertions, 0 deletions
diff --git a/python-apache-atlas.spec b/python-apache-atlas.spec
new file mode 100644
index 0000000..66e8d98
--- /dev/null
+++ b/python-apache-atlas.spec
@@ -0,0 +1,376 @@
+%global _empty_manifest_terminate_build 0
+Name: python-apache-atlas
+Version: 0.0.13
+Release: 1
+Summary: Apache Atlas Python Client
+License: Apache LICENSE 2.0
+URL: https://github.com/apache/atlas/tree/master/intg/src/main/python
+Source0: https://mirrors.nju.edu.cn/pypi/web/packages/63/d7/33deb35b9104141325617b62ac36a9a157cbe27711b212213fc58e0070b8/apache-atlas-0.0.13.tar.gz
+BuildArch: noarch
+
+Requires: python3-requests
+
+%description
+apache-atlas 0.0.13
+```
+## Usage
+```python atlas_example.py```
+```python
+# atlas_example.py
+import time
+from apache_atlas.client.base_client import AtlasClient
+from apache_atlas.model.instance import AtlasEntity, AtlasEntityWithExtInfo, AtlasEntitiesWithExtInfo, AtlasRelatedObjectId
+from apache_atlas.model.enums import EntityOperation
+## Step 1: create a client to connect to Apache Atlas server
+client = AtlasClient('http://localhost:21000', ('admin', 'atlasR0cks!'))
+# For Kerberos authentication, use HTTPKerberosAuth as shown below
+#
+# from requests_kerberos import HTTPKerberosAuth
+#
+# client = AtlasClient('http://localhost:21000', HTTPKerberosAuth())
+# to disable SSL certificate validation (not recommended for production use!)
+#
+# client.session.verify = False
+## Step 2: Let's create a database entity
+test_db = AtlasEntity({ 'typeName': 'hive_db' })
+test_db.attributes = { 'name': 'test_db', 'clusterName': 'prod', 'qualifiedName': 'test_db@prod' }
+entity_info = AtlasEntityWithExtInfo()
+entity_info.entity = test_db
+print('Creating test_db')
+resp = client.entity.create_entity(entity_info)
+guid_db = resp.get_assigned_guid(test_db.guid)
+print(' created test_db: guid=' + guid_db)
+## Step 3: Let's create a table entity, and two column entities - in one call
+test_tbl = AtlasEntity({ 'typeName': 'hive_table' })
+test_tbl.attributes = { 'name': 'test_tbl', 'qualifiedName': 'test_db.test_tbl@prod' }
+test_tbl.relationshipAttributes = { 'db': AtlasRelatedObjectId({ 'guid': guid_db }) }
+test_col1 = AtlasEntity({ 'typeName': 'hive_column' })
+test_col1.attributes = { 'name': 'test_col1', 'type': 'string', 'qualifiedName': 'test_db.test_tbl.test_col1@prod' }
+test_col1.relationshipAttributes = { 'table': AtlasRelatedObjectId({ 'guid': test_tbl.guid }) }
+test_col2 = AtlasEntity({ 'typeName': 'hive_column' })
+test_col2.attributes = { 'name': 'test_col2', 'type': 'string', 'qualifiedName': 'test_db.test_tbl.test_col2@prod' }
+test_col2.relationshipAttributes = { 'table': AtlasRelatedObjectId({ 'guid': test_tbl.guid }) }
+entities_info = AtlasEntitiesWithExtInfo()
+entities_info.entities = [ test_tbl, test_col1, test_col2 ]
+print('Creating test_tbl')
+resp = client.entity.create_entities(entities_info)
+guid_tbl = resp.get_assigned_guid(test_tbl.guid)
+guid_col1 = resp.get_assigned_guid(test_col1.guid)
+guid_col2 = resp.get_assigned_guid(test_col2.guid)
+print(' created test_tbl: guid=' + guid_tbl)
+print(' created test_tbl.test_col1: guid=' + guid_col1)
+print(' created test_tbl.test_col2: guid=' + guid_col2)
+## Step 4: Let's create a view entity that feeds from the table created earlier
+# Also create a lineage between the table and the view, and lineages between their columns as well
+test_view = AtlasEntity({ 'typeName': 'hive_table' })
+test_view.attributes = { 'name': 'test_view', 'qualifiedName': 'test_db.test_view@prod' }
+test_view.relationshipAttributes = { 'db': AtlasRelatedObjectId({ 'guid': guid_db }) }
+test_view_col1 = AtlasEntity({ 'typeName': 'hive_column' })
+test_view_col1.attributes = { 'name': 'test_col1', 'type': 'string', 'qualifiedName': 'test_db.test_view.test_col1@prod' }
+test_view_col1.relationshipAttributes = { 'table': AtlasRelatedObjectId({ 'guid': test_view.guid }) }
+test_view_col2 = AtlasEntity({ 'typeName': 'hive_column' })
+test_view_col2.attributes = { 'name': 'test_col2', 'type': 'string', 'qualifiedName': 'test_db.test_view.test_col2@prod' }
+test_view_col2.relationshipAttributes = { 'table': AtlasRelatedObjectId({ 'guid': test_view.guid }) }
+test_process = AtlasEntity({ 'typeName': 'hive_process' })
+test_process.attributes = { 'name': 'create_test_view', 'userName': 'admin', 'operationType': 'CREATE', 'qualifiedName': 'create_test_view@prod' }
+test_process.attributes['queryText'] = 'create view test_view as select * from test_tbl'
+test_process.attributes['queryPlan'] = '<queryPlan>'
+test_process.attributes['queryId'] = '<queryId>'
+test_process.attributes['startTime'] = int(time.time() * 1000)
+test_process.attributes['endTime'] = int(time.time() * 1000)
+test_process.relationshipAttributes = { 'inputs': [ AtlasRelatedObjectId({ 'guid': guid_tbl }) ], 'outputs': [ AtlasRelatedObjectId({ 'guid': test_view.guid }) ] }
+test_col1_lineage = AtlasEntity({ 'typeName': 'hive_column_lineage' })
+test_col1_lineage.attributes = { 'name': 'test_view.test_col1 lineage', 'depenendencyType': 'read', 'qualifiedName': 'test_db.test_view.test_col1@prod' }
+test_col1_lineage.attributes['query'] = { 'guid': test_process.guid }
+test_col1_lineage.relationshipAttributes = { 'inputs': [ AtlasRelatedObjectId({ 'guid': guid_col1 }) ], 'outputs': [ AtlasRelatedObjectId({ 'guid': test_view_col1.guid }) ] }
+test_col2_lineage = AtlasEntity({ 'typeName': 'hive_column_lineage' })
+test_col2_lineage.attributes = { 'name': 'test_view.test_col2 lineage', 'depenendencyType': 'read', 'qualifiedName': 'test_db.test_view.test_col2@prod' }
+test_col2_lineage.attributes['query'] = { 'guid': test_process.guid }
+test_col2_lineage.relationshipAttributes = { 'inputs': [ AtlasRelatedObjectId({ 'guid': guid_col2 }) ], 'outputs': [ AtlasRelatedObjectId({ 'guid': test_view_col2.guid }) ] }
+entities_info = AtlasEntitiesWithExtInfo()
+entities_info.entities = [ test_process, test_col1_lineage, test_col2_lineage ]
+entities_info.add_referenced_entity(test_view)
+entities_info.add_referenced_entity(test_view_col1)
+entities_info.add_referenced_entity(test_view_col2)
+print('Creating test_view')
+resp = client.entity.create_entities(entities_info)
+guid_view = resp.get_assigned_guid(test_view.guid)
+guid_view_col1 = resp.get_assigned_guid(test_view_col1.guid)
+guid_view_col2 = resp.get_assigned_guid(test_view_col2.guid)
+guid_process = resp.get_assigned_guid(test_process.guid)
+guid_col1_lineage = resp.get_assigned_guid(test_col1_lineage.guid)
+guid_col2_lineage = resp.get_assigned_guid(test_col2_lineage.guid)
+print(' created test_view: guid=' + guid_view)
+print(' created test_view.test_col1: guid=' + guid_view_col1)
+print(' created test_view.test_col2: guid=' + guid_view_col1)
+print(' created test_view lineage: guid=' + guid_process)
+print(' created test_col1 lineage: guid=' + guid_col1_lineage)
+print(' created test_col2 lineage: guid=' + guid_col2_lineage)
+## Step 5: Finally, cleanup by deleting entities created above
+print('Deleting entities')
+resp = client.entity.delete_entities_by_guids([ guid_col1_lineage, guid_col2_lineage, guid_process, guid_view, guid_tbl, guid_db ])
+deleted_count = len(resp.mutatedEntities[EntityOperation.DELETE.name]) if resp and resp.mutatedEntities and EntityOperation.DELETE.name in resp.mutatedEntities else 0
+print(' ' + str(deleted_count) + ' entities deleted')
+```
+For more examples, checkout `sample-app` python project in [atlas-examples](https://github.com/apache/atlas/blob/master/atlas-examples/sample-app/src/main/python/sample_client.py) module.
+
+%package -n python3-apache-atlas
+Summary: Apache Atlas Python Client
+Provides: python-apache-atlas
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-apache-atlas
+apache-atlas 0.0.13
+```
+## Usage
+```python atlas_example.py```
+```python
+# atlas_example.py
+import time
+from apache_atlas.client.base_client import AtlasClient
+from apache_atlas.model.instance import AtlasEntity, AtlasEntityWithExtInfo, AtlasEntitiesWithExtInfo, AtlasRelatedObjectId
+from apache_atlas.model.enums import EntityOperation
+## Step 1: create a client to connect to Apache Atlas server
+client = AtlasClient('http://localhost:21000', ('admin', 'atlasR0cks!'))
+# For Kerberos authentication, use HTTPKerberosAuth as shown below
+#
+# from requests_kerberos import HTTPKerberosAuth
+#
+# client = AtlasClient('http://localhost:21000', HTTPKerberosAuth())
+# to disable SSL certificate validation (not recommended for production use!)
+#
+# client.session.verify = False
+## Step 2: Let's create a database entity
+test_db = AtlasEntity({ 'typeName': 'hive_db' })
+test_db.attributes = { 'name': 'test_db', 'clusterName': 'prod', 'qualifiedName': 'test_db@prod' }
+entity_info = AtlasEntityWithExtInfo()
+entity_info.entity = test_db
+print('Creating test_db')
+resp = client.entity.create_entity(entity_info)
+guid_db = resp.get_assigned_guid(test_db.guid)
+print(' created test_db: guid=' + guid_db)
+## Step 3: Let's create a table entity, and two column entities - in one call
+test_tbl = AtlasEntity({ 'typeName': 'hive_table' })
+test_tbl.attributes = { 'name': 'test_tbl', 'qualifiedName': 'test_db.test_tbl@prod' }
+test_tbl.relationshipAttributes = { 'db': AtlasRelatedObjectId({ 'guid': guid_db }) }
+test_col1 = AtlasEntity({ 'typeName': 'hive_column' })
+test_col1.attributes = { 'name': 'test_col1', 'type': 'string', 'qualifiedName': 'test_db.test_tbl.test_col1@prod' }
+test_col1.relationshipAttributes = { 'table': AtlasRelatedObjectId({ 'guid': test_tbl.guid }) }
+test_col2 = AtlasEntity({ 'typeName': 'hive_column' })
+test_col2.attributes = { 'name': 'test_col2', 'type': 'string', 'qualifiedName': 'test_db.test_tbl.test_col2@prod' }
+test_col2.relationshipAttributes = { 'table': AtlasRelatedObjectId({ 'guid': test_tbl.guid }) }
+entities_info = AtlasEntitiesWithExtInfo()
+entities_info.entities = [ test_tbl, test_col1, test_col2 ]
+print('Creating test_tbl')
+resp = client.entity.create_entities(entities_info)
+guid_tbl = resp.get_assigned_guid(test_tbl.guid)
+guid_col1 = resp.get_assigned_guid(test_col1.guid)
+guid_col2 = resp.get_assigned_guid(test_col2.guid)
+print(' created test_tbl: guid=' + guid_tbl)
+print(' created test_tbl.test_col1: guid=' + guid_col1)
+print(' created test_tbl.test_col2: guid=' + guid_col2)
+## Step 4: Let's create a view entity that feeds from the table created earlier
+# Also create a lineage between the table and the view, and lineages between their columns as well
+test_view = AtlasEntity({ 'typeName': 'hive_table' })
+test_view.attributes = { 'name': 'test_view', 'qualifiedName': 'test_db.test_view@prod' }
+test_view.relationshipAttributes = { 'db': AtlasRelatedObjectId({ 'guid': guid_db }) }
+test_view_col1 = AtlasEntity({ 'typeName': 'hive_column' })
+test_view_col1.attributes = { 'name': 'test_col1', 'type': 'string', 'qualifiedName': 'test_db.test_view.test_col1@prod' }
+test_view_col1.relationshipAttributes = { 'table': AtlasRelatedObjectId({ 'guid': test_view.guid }) }
+test_view_col2 = AtlasEntity({ 'typeName': 'hive_column' })
+test_view_col2.attributes = { 'name': 'test_col2', 'type': 'string', 'qualifiedName': 'test_db.test_view.test_col2@prod' }
+test_view_col2.relationshipAttributes = { 'table': AtlasRelatedObjectId({ 'guid': test_view.guid }) }
+test_process = AtlasEntity({ 'typeName': 'hive_process' })
+test_process.attributes = { 'name': 'create_test_view', 'userName': 'admin', 'operationType': 'CREATE', 'qualifiedName': 'create_test_view@prod' }
+test_process.attributes['queryText'] = 'create view test_view as select * from test_tbl'
+test_process.attributes['queryPlan'] = '<queryPlan>'
+test_process.attributes['queryId'] = '<queryId>'
+test_process.attributes['startTime'] = int(time.time() * 1000)
+test_process.attributes['endTime'] = int(time.time() * 1000)
+test_process.relationshipAttributes = { 'inputs': [ AtlasRelatedObjectId({ 'guid': guid_tbl }) ], 'outputs': [ AtlasRelatedObjectId({ 'guid': test_view.guid }) ] }
+test_col1_lineage = AtlasEntity({ 'typeName': 'hive_column_lineage' })
+test_col1_lineage.attributes = { 'name': 'test_view.test_col1 lineage', 'depenendencyType': 'read', 'qualifiedName': 'test_db.test_view.test_col1@prod' }
+test_col1_lineage.attributes['query'] = { 'guid': test_process.guid }
+test_col1_lineage.relationshipAttributes = { 'inputs': [ AtlasRelatedObjectId({ 'guid': guid_col1 }) ], 'outputs': [ AtlasRelatedObjectId({ 'guid': test_view_col1.guid }) ] }
+test_col2_lineage = AtlasEntity({ 'typeName': 'hive_column_lineage' })
+test_col2_lineage.attributes = { 'name': 'test_view.test_col2 lineage', 'depenendencyType': 'read', 'qualifiedName': 'test_db.test_view.test_col2@prod' }
+test_col2_lineage.attributes['query'] = { 'guid': test_process.guid }
+test_col2_lineage.relationshipAttributes = { 'inputs': [ AtlasRelatedObjectId({ 'guid': guid_col2 }) ], 'outputs': [ AtlasRelatedObjectId({ 'guid': test_view_col2.guid }) ] }
+entities_info = AtlasEntitiesWithExtInfo()
+entities_info.entities = [ test_process, test_col1_lineage, test_col2_lineage ]
+entities_info.add_referenced_entity(test_view)
+entities_info.add_referenced_entity(test_view_col1)
+entities_info.add_referenced_entity(test_view_col2)
+print('Creating test_view')
+resp = client.entity.create_entities(entities_info)
+guid_view = resp.get_assigned_guid(test_view.guid)
+guid_view_col1 = resp.get_assigned_guid(test_view_col1.guid)
+guid_view_col2 = resp.get_assigned_guid(test_view_col2.guid)
+guid_process = resp.get_assigned_guid(test_process.guid)
+guid_col1_lineage = resp.get_assigned_guid(test_col1_lineage.guid)
+guid_col2_lineage = resp.get_assigned_guid(test_col2_lineage.guid)
+print(' created test_view: guid=' + guid_view)
+print(' created test_view.test_col1: guid=' + guid_view_col1)
+print(' created test_view.test_col2: guid=' + guid_view_col1)
+print(' created test_view lineage: guid=' + guid_process)
+print(' created test_col1 lineage: guid=' + guid_col1_lineage)
+print(' created test_col2 lineage: guid=' + guid_col2_lineage)
+## Step 5: Finally, cleanup by deleting entities created above
+print('Deleting entities')
+resp = client.entity.delete_entities_by_guids([ guid_col1_lineage, guid_col2_lineage, guid_process, guid_view, guid_tbl, guid_db ])
+deleted_count = len(resp.mutatedEntities[EntityOperation.DELETE.name]) if resp and resp.mutatedEntities and EntityOperation.DELETE.name in resp.mutatedEntities else 0
+print(' ' + str(deleted_count) + ' entities deleted')
+```
+For more examples, checkout `sample-app` python project in [atlas-examples](https://github.com/apache/atlas/blob/master/atlas-examples/sample-app/src/main/python/sample_client.py) module.
+
+%package help
+Summary: Development documents and examples for apache-atlas
+Provides: python3-apache-atlas-doc
+%description help
+apache-atlas 0.0.13
+```
+## Usage
+```python atlas_example.py```
+```python
+# atlas_example.py
+import time
+from apache_atlas.client.base_client import AtlasClient
+from apache_atlas.model.instance import AtlasEntity, AtlasEntityWithExtInfo, AtlasEntitiesWithExtInfo, AtlasRelatedObjectId
+from apache_atlas.model.enums import EntityOperation
+## Step 1: create a client to connect to Apache Atlas server
+client = AtlasClient('http://localhost:21000', ('admin', 'atlasR0cks!'))
+# For Kerberos authentication, use HTTPKerberosAuth as shown below
+#
+# from requests_kerberos import HTTPKerberosAuth
+#
+# client = AtlasClient('http://localhost:21000', HTTPKerberosAuth())
+# to disable SSL certificate validation (not recommended for production use!)
+#
+# client.session.verify = False
+## Step 2: Let's create a database entity
+test_db = AtlasEntity({ 'typeName': 'hive_db' })
+test_db.attributes = { 'name': 'test_db', 'clusterName': 'prod', 'qualifiedName': 'test_db@prod' }
+entity_info = AtlasEntityWithExtInfo()
+entity_info.entity = test_db
+print('Creating test_db')
+resp = client.entity.create_entity(entity_info)
+guid_db = resp.get_assigned_guid(test_db.guid)
+print(' created test_db: guid=' + guid_db)
+## Step 3: Let's create a table entity, and two column entities - in one call
+test_tbl = AtlasEntity({ 'typeName': 'hive_table' })
+test_tbl.attributes = { 'name': 'test_tbl', 'qualifiedName': 'test_db.test_tbl@prod' }
+test_tbl.relationshipAttributes = { 'db': AtlasRelatedObjectId({ 'guid': guid_db }) }
+test_col1 = AtlasEntity({ 'typeName': 'hive_column' })
+test_col1.attributes = { 'name': 'test_col1', 'type': 'string', 'qualifiedName': 'test_db.test_tbl.test_col1@prod' }
+test_col1.relationshipAttributes = { 'table': AtlasRelatedObjectId({ 'guid': test_tbl.guid }) }
+test_col2 = AtlasEntity({ 'typeName': 'hive_column' })
+test_col2.attributes = { 'name': 'test_col2', 'type': 'string', 'qualifiedName': 'test_db.test_tbl.test_col2@prod' }
+test_col2.relationshipAttributes = { 'table': AtlasRelatedObjectId({ 'guid': test_tbl.guid }) }
+entities_info = AtlasEntitiesWithExtInfo()
+entities_info.entities = [ test_tbl, test_col1, test_col2 ]
+print('Creating test_tbl')
+resp = client.entity.create_entities(entities_info)
+guid_tbl = resp.get_assigned_guid(test_tbl.guid)
+guid_col1 = resp.get_assigned_guid(test_col1.guid)
+guid_col2 = resp.get_assigned_guid(test_col2.guid)
+print(' created test_tbl: guid=' + guid_tbl)
+print(' created test_tbl.test_col1: guid=' + guid_col1)
+print(' created test_tbl.test_col2: guid=' + guid_col2)
+## Step 4: Let's create a view entity that feeds from the table created earlier
+# Also create a lineage between the table and the view, and lineages between their columns as well
+test_view = AtlasEntity({ 'typeName': 'hive_table' })
+test_view.attributes = { 'name': 'test_view', 'qualifiedName': 'test_db.test_view@prod' }
+test_view.relationshipAttributes = { 'db': AtlasRelatedObjectId({ 'guid': guid_db }) }
+test_view_col1 = AtlasEntity({ 'typeName': 'hive_column' })
+test_view_col1.attributes = { 'name': 'test_col1', 'type': 'string', 'qualifiedName': 'test_db.test_view.test_col1@prod' }
+test_view_col1.relationshipAttributes = { 'table': AtlasRelatedObjectId({ 'guid': test_view.guid }) }
+test_view_col2 = AtlasEntity({ 'typeName': 'hive_column' })
+test_view_col2.attributes = { 'name': 'test_col2', 'type': 'string', 'qualifiedName': 'test_db.test_view.test_col2@prod' }
+test_view_col2.relationshipAttributes = { 'table': AtlasRelatedObjectId({ 'guid': test_view.guid }) }
+test_process = AtlasEntity({ 'typeName': 'hive_process' })
+test_process.attributes = { 'name': 'create_test_view', 'userName': 'admin', 'operationType': 'CREATE', 'qualifiedName': 'create_test_view@prod' }
+test_process.attributes['queryText'] = 'create view test_view as select * from test_tbl'
+test_process.attributes['queryPlan'] = '<queryPlan>'
+test_process.attributes['queryId'] = '<queryId>'
+test_process.attributes['startTime'] = int(time.time() * 1000)
+test_process.attributes['endTime'] = int(time.time() * 1000)
+test_process.relationshipAttributes = { 'inputs': [ AtlasRelatedObjectId({ 'guid': guid_tbl }) ], 'outputs': [ AtlasRelatedObjectId({ 'guid': test_view.guid }) ] }
+test_col1_lineage = AtlasEntity({ 'typeName': 'hive_column_lineage' })
+test_col1_lineage.attributes = { 'name': 'test_view.test_col1 lineage', 'depenendencyType': 'read', 'qualifiedName': 'test_db.test_view.test_col1@prod' }
+test_col1_lineage.attributes['query'] = { 'guid': test_process.guid }
+test_col1_lineage.relationshipAttributes = { 'inputs': [ AtlasRelatedObjectId({ 'guid': guid_col1 }) ], 'outputs': [ AtlasRelatedObjectId({ 'guid': test_view_col1.guid }) ] }
+test_col2_lineage = AtlasEntity({ 'typeName': 'hive_column_lineage' })
+test_col2_lineage.attributes = { 'name': 'test_view.test_col2 lineage', 'depenendencyType': 'read', 'qualifiedName': 'test_db.test_view.test_col2@prod' }
+test_col2_lineage.attributes['query'] = { 'guid': test_process.guid }
+test_col2_lineage.relationshipAttributes = { 'inputs': [ AtlasRelatedObjectId({ 'guid': guid_col2 }) ], 'outputs': [ AtlasRelatedObjectId({ 'guid': test_view_col2.guid }) ] }
+entities_info = AtlasEntitiesWithExtInfo()
+entities_info.entities = [ test_process, test_col1_lineage, test_col2_lineage ]
+entities_info.add_referenced_entity(test_view)
+entities_info.add_referenced_entity(test_view_col1)
+entities_info.add_referenced_entity(test_view_col2)
+print('Creating test_view')
+resp = client.entity.create_entities(entities_info)
+guid_view = resp.get_assigned_guid(test_view.guid)
+guid_view_col1 = resp.get_assigned_guid(test_view_col1.guid)
+guid_view_col2 = resp.get_assigned_guid(test_view_col2.guid)
+guid_process = resp.get_assigned_guid(test_process.guid)
+guid_col1_lineage = resp.get_assigned_guid(test_col1_lineage.guid)
+guid_col2_lineage = resp.get_assigned_guid(test_col2_lineage.guid)
+print(' created test_view: guid=' + guid_view)
+print(' created test_view.test_col1: guid=' + guid_view_col1)
+print(' created test_view.test_col2: guid=' + guid_view_col1)
+print(' created test_view lineage: guid=' + guid_process)
+print(' created test_col1 lineage: guid=' + guid_col1_lineage)
+print(' created test_col2 lineage: guid=' + guid_col2_lineage)
+## Step 5: Finally, cleanup by deleting entities created above
+print('Deleting entities')
+resp = client.entity.delete_entities_by_guids([ guid_col1_lineage, guid_col2_lineage, guid_process, guid_view, guid_tbl, guid_db ])
+deleted_count = len(resp.mutatedEntities[EntityOperation.DELETE.name]) if resp and resp.mutatedEntities and EntityOperation.DELETE.name in resp.mutatedEntities else 0
+print(' ' + str(deleted_count) + ' entities deleted')
+```
+For more examples, checkout `sample-app` python project in [atlas-examples](https://github.com/apache/atlas/blob/master/atlas-examples/sample-app/src/main/python/sample_client.py) module.
+
+%prep
+%autosetup -n apache-atlas-0.0.13
+
+%build
+%py3_build
+
+%install
+%py3_install
+install -d -m755 %{buildroot}/%{_pkgdocdir}
+if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi
+if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi
+if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi
+if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi
+pushd %{buildroot}
+if [ -d usr/lib ]; then
+ find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/lib64 ]; then
+ find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/bin ]; then
+ find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/sbin ]; then
+ find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+touch doclist.lst
+if [ -d usr/share/man ]; then
+ find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst
+fi
+popd
+mv %{buildroot}/filelist.lst .
+mv %{buildroot}/doclist.lst .
+
+%files -n python3-apache-atlas -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Tue Apr 11 2023 Python_Bot <Python_Bot@openeuler.org> - 0.0.13-1
+- Package Spec generated