summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2023-04-11 00:38:19 +0000
committerCoprDistGit <infra@openeuler.org>2023-04-11 00:38:19 +0000
commit36ea70373ee818b5c78cd0f7148dbab44a45e4da (patch)
tree0ea60e95f75b324d0ae17310908045fe7a60f453
parent8fa1fead2d41d3ead81002949cf8560d445103d4 (diff)
automatic import of python-azure-schemaregistry
-rw-r--r--.gitignore1
-rw-r--r--python-azure-schemaregistry.spec1136
-rw-r--r--sources1
3 files changed, 1138 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..3e413f1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/azure-schemaregistry-1.2.0.zip
diff --git a/python-azure-schemaregistry.spec b/python-azure-schemaregistry.spec
new file mode 100644
index 0000000..0c9f13f
--- /dev/null
+++ b/python-azure-schemaregistry.spec
@@ -0,0 +1,1136 @@
+%global _empty_manifest_terminate_build 0
+Name: python-azure-schemaregistry
+Version: 1.2.0
+Release: 1
+Summary: Microsoft Azure Schema Registry Client Library for Python
+License: MIT License
+URL: https://github.com/Azure/azure-sdk-for-python
+Source0: https://mirrors.nju.edu.cn/pypi/web/packages/21/ac/69d234a343a1303f2acfdaa4ab6885cc0c5974034c813d2a5756409019d2/azure-schemaregistry-1.2.0.zip
+BuildArch: noarch
+
+Requires: python3-msrest
+Requires: python3-azure-core
+
+%description
+# Azure Schema Registry client library for Python
+
+Azure Schema Registry is a schema repository service hosted by Azure Event Hubs, providing schema storage, versioning,
+and management. The registry is leveraged by serializers to reduce payload size while describing payload structure with
+schema identifiers rather than full schemas.
+
+[Source code][source_code] | [Package (PyPi)][pypi] | [API reference documentation][api_reference] | [Samples][sr_samples] | [Changelog][change_log]
+
+## _Disclaimer_
+
+_Azure SDK Python packages support for Python 2.7 has ended on 01 January 2022. For more information and questions, please refer to https://github.com/Azure/azure-sdk-for-python/issues/20691_
+
+## Getting started
+
+### Install the package
+
+Install the Azure Schema Registry client library for Python with [pip][pip]:
+
+```Bash
+pip install azure-schemaregistry
+```
+
+### Prerequisites:
+To use this package, you must have:
+* Azure subscription - [Create a free account][azure_sub]
+* [Azure Schema Registry][schemaregistry_service] - [Here is the quickstart guide][quickstart_guide] to create a Schema Registry group using the Azure portal.
+* Python 3.7 or later - [Install Python][python]
+
+### Authenticate the client
+
+Interaction with Schema Registry starts with an instance of SchemaRegistryClient class. The client constructor takes the fully qualified namespace and an Azure Active Directory credential:
+
+* The fully qualified namespace of the Schema Registry instance should follow the format: `<yournamespace>.servicebus.windows.net`.
+
+* An AAD credential that implements the [TokenCredential][token_credential_interface] protocol should be passed to the constructor. There are implementations of the `TokenCredential` protocol available in the
+[azure-identity package][pypi_azure_identity]. To use the credential types provided by `azure-identity`, please install the Azure Identity client library for Python with [pip][pip]:
+
+```Bash
+pip install azure-identity
+```
+
+* Additionally, to use the async API, you must first install an async transport, such as [aiohttp](https://pypi.org/project/aiohttp/):
+
+```Bash
+pip install aiohttp
+```
+
+**Create client using the azure-identity library:**
+
+```python
+from azure.schemaregistry import SchemaRegistryClient
+from azure.identity import DefaultAzureCredential
+
+credential = DefaultAzureCredential()
+# Namespace should be similar to: '<your-eventhub-namespace>.servicebus.windows.net/'
+fully_qualified_namespace = '<< FULLY QUALIFIED NAMESPACE OF THE SCHEMA REGISTRY >>'
+schema_registry_client = SchemaRegistryClient(fully_qualified_namespace, credential)
+```
+
+## Key concepts
+
+- Schema: Schema is the organization or structure for data. More detailed information can be found [here][schemas].
+
+- Schema Group: A logical group of similar schemas based on business criteria, which can hold multiple versions of a schema. More detailed information can be found [here][schema_groups].
+
+- SchemaRegistryClient: `SchemaRegistryClient` provides the API for storing and retrieving schemas in schema registry.
+
+## Examples
+
+The following sections provide several code snippets covering some of the most common Schema Registry tasks, including:
+
+- [Register a schema](#register-a-schema)
+- [Get the schema by id](#get-the-schema-by-id)
+- [Get the schema by version](#get-the-schema-by-version)
+- [Get the id of a schema](#get-the-id-of-a-schema)
+
+### Register a schema
+
+Use `SchemaRegistryClient.register_schema` method to register a schema.
+
+```python
+import os
+
+from azure.identity import DefaultAzureCredential
+from azure.schemaregistry import SchemaRegistryClient
+
+token_credential = DefaultAzureCredential()
+fully_qualified_namespace = os.environ['SCHEMA_REGISTRY_FULLY_QUALIFIED_NAMESPACE']
+group_name = os.environ['SCHEMA_REGISTRY_GROUP']
+name = "your-schema-name"
+format = "Avro"
+definition = """
+{"namespace": "example.avro",
+ "type": "record",
+ "name": "User",
+ "fields": [
+ {"name": "name", "type": "string"},
+ {"name": "favorite_number", "type": ["int", "null"]},
+ {"name": "favorite_color", "type": ["string", "null"]}
+ ]
+}
+"""
+
+schema_registry_client = SchemaRegistryClient(fully_qualified_namespace=fully_qualified_namespace, credential=token_credential)
+with schema_registry_client:
+ schema_properties = schema_registry_client.register_schema(group_name, name, definition, format)
+ id = schema_properties.id
+```
+
+### Get the schema by id
+
+Get the schema definition and its properties by schema id.
+
+```python
+import os
+
+from azure.identity import DefaultAzureCredential
+from azure.schemaregistry import SchemaRegistryClient
+
+token_credential = DefaultAzureCredential()
+fully_qualified_namespace = os.environ['SCHEMA_REGISTRY_FULLY_QUALIFIED_NAMESPACE']
+schema_id = 'your-schema-id'
+
+schema_registry_client = SchemaRegistryClient(fully_qualified_namespace=fully_qualified_namespace, credential=token_credential)
+with schema_registry_client:
+ schema = schema_registry_client.get_schema(schema_id)
+ definition = schema.definition
+ properties = schema.properties
+```
+
+### Get the schema by version
+
+Get the schema definition and its properties by schema version.
+
+```python
+import os
+
+from azure.identity import DefaultAzureCredential
+from azure.schemaregistry import SchemaRegistryClient
+
+token_credential = DefaultAzureCredential()
+fully_qualified_namespace = os.environ['SCHEMA_REGISTRY_FULLY_QUALIFIED_NAMESPACE']
+group_name = os.environ["SCHEMAREGISTRY_GROUP"]
+name = "your-schema-name"
+version = int("<your schema version>")
+
+schema_registry_client = SchemaRegistryClient(fully_qualified_namespace=fully_qualified_namespace, credential=token_credential)
+with schema_registry_client:
+ schema = schema_registry_client.get_schema(group_name=group_name, name=name, version=version)
+ definition = schema.definition
+ properties = schema.properties
+```
+
+### Get the id of a schema
+
+Get the schema id of a schema by schema definition and its properties.
+
+```python
+import os
+
+from azure.identity import DefaultAzureCredential
+from azure.schemaregistry import SchemaRegistryClient
+
+token_credential = DefaultAzureCredential()
+fully_qualified_namespace = os.environ['SCHEMA_REGISTRY_FULLY_QUALIFIED_NAMESPACE']
+group_name = os.environ['SCHEMA_REGISTRY_GROUP']
+name = "your-schema-name"
+format = "Avro"
+definition = """
+{"namespace": "example.avro",
+ "type": "record",
+ "name": "User",
+ "fields": [
+ {"name": "name", "type": "string"},
+ {"name": "favorite_number", "type": ["int", "null"]},
+ {"name": "favorite_color", "type": ["string", "null"]}
+ ]
+}
+"""
+
+schema_registry_client = SchemaRegistryClient(fully_qualified_namespace=fully_qualified_namespace, credential=token_credential)
+with schema_registry_client:
+ schema_properties = schema_registry_client.register_schema(group_name, name, definition, format)
+ id = schema_properties.id
+```
+
+## Troubleshooting
+
+### General
+
+Schema Registry clients raise exceptions defined in [Azure Core][azure_core].
+
+### Logging
+This library uses the standard
+[logging][python_logging] library for logging.
+Basic information about HTTP sessions (URLs, headers, etc.) is logged at INFO
+level.
+
+Detailed DEBUG level logging, including request/response bodies and unredacted
+headers, can be enabled on a client with the `logging_enable` argument:
+```python
+import sys
+import logging
+from azure.schemaregistry import SchemaRegistryClient
+from azure.identity import DefaultAzureCredential
+
+# Create a logger for the SDK
+logger = logging.getLogger('azure.schemaregistry')
+logger.setLevel(logging.DEBUG)
+
+# Configure a console output
+handler = logging.StreamHandler(stream=sys.stdout)
+logger.addHandler(handler)
+
+credential = DefaultAzureCredential()
+# This client will log detailed information about its HTTP sessions, at DEBUG level
+schema_registry_client = SchemaRegistryClient("your_fully_qualified_namespace", credential, logging_enable=True)
+```
+
+Similarly, `logging_enable` can enable detailed logging for a single operation,
+even when it isn't enabled for the client:
+```py
+schema_registry_client.get_schema(schema_id, logging_enable=True)
+```
+
+## Next steps
+
+### More sample code
+
+Please take a look at the [samples][sr_samples] directory for detailed examples of how to use this library to register and retrieve schema to/from Schema Registry.
+
+## Contributing
+
+This project welcomes contributions and suggestions. Most contributions require you to agree to a
+Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us
+the rights to use your contribution. For details, visit https://cla.microsoft.com.
+
+When you submit a pull request, a CLA-bot will automatically determine whether you need to provide
+a CLA and decorate the PR appropriately (e.g., label, comment). Simply follow the instructions
+provided by the bot. You will only need to do this once across all repos using our CLA.
+
+This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/).
+For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or
+contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.
+
+<!-- LINKS -->
+[pip]: https://pypi.org/project/pip/
+[pypi]: https://pypi.org/project/azure-schemaregistry
+[python]: https://www.python.org/downloads/
+[azure_core]: https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/core/azure-core/README.md
+[azure_sub]: https://azure.microsoft.com/free/
+[python_logging]: https://docs.python.org/3/library/logging.html
+[sr_samples]: https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/schemaregistry/azure-schemaregistry/samples
+[api_reference]: https://docs.microsoft.com/python/api/overview/azure/schemaregistry-readme
+[source_code]: https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/schemaregistry/azure-schemaregistry
+[change_log]: https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/schemaregistry/azure-schemaregistry/CHANGELOG.md
+[schemas]: https://docs.microsoft.com/azure/event-hubs/schema-registry-overview#schemas
+[schema_groups]: https://docs.microsoft.com/azure/event-hubs/schema-registry-overview#schema-groups
+[schemaregistry_service]: https://aka.ms/schemaregistry
+[schemaregistry_avroserializer_pypi]: https://pypi.org/project/azure-schemaregistry-avroserializer/
+[token_credential_interface]: https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/core/azure-core/azure/core/credentials.py
+[pypi_azure_identity]: https://pypi.org/project/azure-identity/
+[quickstart_guide]: https://docs.microsoft.com/azure/event-hubs/create-schema-registry
+
+# Release History
+
+## 1.2.0 (2022-10-10)
+
+This version and all future versions will require Python 3.7+, Python 3.6 is no longer supported.
+
+### Features Added
+
+- `group_name`, `name`, and `version` have been added as optional parameters to the `get_schema` method on the sync and async `SchemaRegistryClient`.
+- `version` has been added to `SchemaProperties`.
+
+### Other Changes
+
+- Updated azure-core minimum dependency to 1.24.0.
+- Added distributed tracing support for sync and async `SchemaRegistryClient`.
+
+## 1.1.0 (2022-05-10)
+
+This version and all future versions will require Python 3.6+. Python 2.7 is no longer supported.
+
+### Features Added
+
+- `group_name` and `name` have been added as instance variables to `SchemaProperties`.
+
+### Other Changes
+
+- Updated azure-core minimum dependency to 1.23.0.
+
+## 1.0.0 (2021-11-10)
+
+**Note:** This is the first stable release of our efforts to create a user-friendly and Pythonic client library for Azure Schema Registry.
+
+### Features Added
+
+- `SchemaRegistryClient` is the top-level client class interacting with the Azure Schema Registry Service. It provides three methods:
+ - `register_schema`: Store schema in the service by providing schema group name, schema name, schema definition, and schema format.
+ - `get_schema`: Get schema definition and its properties by schema id.
+ - `get_schema_properties`: Get schema properties by providing schema group name, schema name, schema definition, and schema format.
+- `SchemaProperties` has the following instance variables: `id` and `format`:
+ - The type of `format` has been changed from `str` to `SchemaFormat`.
+- `Schema` has the following properties: `properties` and `definition`.
+- `SchemaFormat` provides the schema format to be stored by the service. Currently, the only supported format is `Avro`.
+- `api_version` has been added as a keyword arg to the sync and async `SchemaRegistryClient` constructors.
+
+### Breaking Changes
+
+- `version` instance variable in `SchemaProperties` has been removed.
+- `schema_definition` instance variable in `Schema` has been renamed `definition`.
+- `id` parameter in `get_schema` method on sync and async `SchemaRegistryClient` has been renamed `schema_id`.
+- `schema_definition` parameter in `register_schema` and `get_schema_properties` methods on sync and async `SchemaRegistryClient` has been renamed `definition`.
+- `serializer` namespace has been removed from `azure.schemaregistry`.
+
+## 1.0.0b3 (2021-10-05)
+
+### Breaking Changes
+
+- `get_schema_id` method on sync and async `SchemaRegistryClient` has been renamed `get_schema_properties`.
+- `schema_id` parameter in `get_schema` method on sync and async `SchemaRegistryClient` has been renamed `id`.
+- `register_schema` and `get_schema_properties` methods on sync and async `SchemaRegistryClient` now take in the following parameters in the given order:
+ - `group_name`, which has been renamed from `schema_group`
+ - `name`, which has been renamed from `schema_name`
+ - `schema_definition`, which has been renamed from `schema_content`
+ - `format`, which has been renamed from `serialization_type`
+- `endpoint` parameter in `SchemaRegistryClient` constructor has been renamed `fully_qualified_namespace`
+- `location` instance variable in `SchemaProperties` has been removed.
+- `Schema` and `SchemaProperties` no longer have positional parameters, as they will not be constructed by the user.
+
+### Other Changes
+
+- Updated azure-core dependency to 1.19.0.
+- Removed caching support of registered schemas so requests are sent to the service to register schemas, get schema properties, and get schemas.
+
+## 1.0.0b2 (2021-08-17)
+
+This version and all future versions will require Python 2.7 or Python 3.6+, Python 3.5 is no longer supported.
+
+### Features Added
+
+- Support caching of registered schemas and send requests to the service only if the cache does not have the looked-up schema/schema ID.
+
+## 1.0.0b1 (2020-09-09)
+
+Version 1.0.0b1 is the first preview of our efforts to create a user-friendly and Pythonic client library for Azure Schema Registry.
+
+**New features**
+
+- `SchemaRegistryClient` is the top-level client class interacting with the Azure Schema Registry Service. It provides three methods:
+ - `register_schema`: Store schema into the service.
+ - `get_schema`: Get schema content and its properties by schema id.
+ - `get_schema_id`: Get schema id and its properties by schema group, schema name, serialization type and schema content.
+
+
+%package -n python3-azure-schemaregistry
+Summary: Microsoft Azure Schema Registry Client Library for Python
+Provides: python-azure-schemaregistry
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-azure-schemaregistry
+# Azure Schema Registry client library for Python
+
+Azure Schema Registry is a schema repository service hosted by Azure Event Hubs, providing schema storage, versioning,
+and management. The registry is leveraged by serializers to reduce payload size while describing payload structure with
+schema identifiers rather than full schemas.
+
+[Source code][source_code] | [Package (PyPi)][pypi] | [API reference documentation][api_reference] | [Samples][sr_samples] | [Changelog][change_log]
+
+## _Disclaimer_
+
+_Azure SDK Python packages support for Python 2.7 has ended on 01 January 2022. For more information and questions, please refer to https://github.com/Azure/azure-sdk-for-python/issues/20691_
+
+## Getting started
+
+### Install the package
+
+Install the Azure Schema Registry client library for Python with [pip][pip]:
+
+```Bash
+pip install azure-schemaregistry
+```
+
+### Prerequisites:
+To use this package, you must have:
+* Azure subscription - [Create a free account][azure_sub]
+* [Azure Schema Registry][schemaregistry_service] - [Here is the quickstart guide][quickstart_guide] to create a Schema Registry group using the Azure portal.
+* Python 3.7 or later - [Install Python][python]
+
+### Authenticate the client
+
+Interaction with Schema Registry starts with an instance of SchemaRegistryClient class. The client constructor takes the fully qualified namespace and an Azure Active Directory credential:
+
+* The fully qualified namespace of the Schema Registry instance should follow the format: `<yournamespace>.servicebus.windows.net`.
+
+* An AAD credential that implements the [TokenCredential][token_credential_interface] protocol should be passed to the constructor. There are implementations of the `TokenCredential` protocol available in the
+[azure-identity package][pypi_azure_identity]. To use the credential types provided by `azure-identity`, please install the Azure Identity client library for Python with [pip][pip]:
+
+```Bash
+pip install azure-identity
+```
+
+* Additionally, to use the async API, you must first install an async transport, such as [aiohttp](https://pypi.org/project/aiohttp/):
+
+```Bash
+pip install aiohttp
+```
+
+**Create client using the azure-identity library:**
+
+```python
+from azure.schemaregistry import SchemaRegistryClient
+from azure.identity import DefaultAzureCredential
+
+credential = DefaultAzureCredential()
+# Namespace should be similar to: '<your-eventhub-namespace>.servicebus.windows.net/'
+fully_qualified_namespace = '<< FULLY QUALIFIED NAMESPACE OF THE SCHEMA REGISTRY >>'
+schema_registry_client = SchemaRegistryClient(fully_qualified_namespace, credential)
+```
+
+## Key concepts
+
+- Schema: Schema is the organization or structure for data. More detailed information can be found [here][schemas].
+
+- Schema Group: A logical group of similar schemas based on business criteria, which can hold multiple versions of a schema. More detailed information can be found [here][schema_groups].
+
+- SchemaRegistryClient: `SchemaRegistryClient` provides the API for storing and retrieving schemas in schema registry.
+
+## Examples
+
+The following sections provide several code snippets covering some of the most common Schema Registry tasks, including:
+
+- [Register a schema](#register-a-schema)
+- [Get the schema by id](#get-the-schema-by-id)
+- [Get the schema by version](#get-the-schema-by-version)
+- [Get the id of a schema](#get-the-id-of-a-schema)
+
+### Register a schema
+
+Use `SchemaRegistryClient.register_schema` method to register a schema.
+
+```python
+import os
+
+from azure.identity import DefaultAzureCredential
+from azure.schemaregistry import SchemaRegistryClient
+
+token_credential = DefaultAzureCredential()
+fully_qualified_namespace = os.environ['SCHEMA_REGISTRY_FULLY_QUALIFIED_NAMESPACE']
+group_name = os.environ['SCHEMA_REGISTRY_GROUP']
+name = "your-schema-name"
+format = "Avro"
+definition = """
+{"namespace": "example.avro",
+ "type": "record",
+ "name": "User",
+ "fields": [
+ {"name": "name", "type": "string"},
+ {"name": "favorite_number", "type": ["int", "null"]},
+ {"name": "favorite_color", "type": ["string", "null"]}
+ ]
+}
+"""
+
+schema_registry_client = SchemaRegistryClient(fully_qualified_namespace=fully_qualified_namespace, credential=token_credential)
+with schema_registry_client:
+ schema_properties = schema_registry_client.register_schema(group_name, name, definition, format)
+ id = schema_properties.id
+```
+
+### Get the schema by id
+
+Get the schema definition and its properties by schema id.
+
+```python
+import os
+
+from azure.identity import DefaultAzureCredential
+from azure.schemaregistry import SchemaRegistryClient
+
+token_credential = DefaultAzureCredential()
+fully_qualified_namespace = os.environ['SCHEMA_REGISTRY_FULLY_QUALIFIED_NAMESPACE']
+schema_id = 'your-schema-id'
+
+schema_registry_client = SchemaRegistryClient(fully_qualified_namespace=fully_qualified_namespace, credential=token_credential)
+with schema_registry_client:
+ schema = schema_registry_client.get_schema(schema_id)
+ definition = schema.definition
+ properties = schema.properties
+```
+
+### Get the schema by version
+
+Get the schema definition and its properties by schema version.
+
+```python
+import os
+
+from azure.identity import DefaultAzureCredential
+from azure.schemaregistry import SchemaRegistryClient
+
+token_credential = DefaultAzureCredential()
+fully_qualified_namespace = os.environ['SCHEMA_REGISTRY_FULLY_QUALIFIED_NAMESPACE']
+group_name = os.environ["SCHEMAREGISTRY_GROUP"]
+name = "your-schema-name"
+version = int("<your schema version>")
+
+schema_registry_client = SchemaRegistryClient(fully_qualified_namespace=fully_qualified_namespace, credential=token_credential)
+with schema_registry_client:
+ schema = schema_registry_client.get_schema(group_name=group_name, name=name, version=version)
+ definition = schema.definition
+ properties = schema.properties
+```
+
+### Get the id of a schema
+
+Get the schema id of a schema by schema definition and its properties.
+
+```python
+import os
+
+from azure.identity import DefaultAzureCredential
+from azure.schemaregistry import SchemaRegistryClient
+
+token_credential = DefaultAzureCredential()
+fully_qualified_namespace = os.environ['SCHEMA_REGISTRY_FULLY_QUALIFIED_NAMESPACE']
+group_name = os.environ['SCHEMA_REGISTRY_GROUP']
+name = "your-schema-name"
+format = "Avro"
+definition = """
+{"namespace": "example.avro",
+ "type": "record",
+ "name": "User",
+ "fields": [
+ {"name": "name", "type": "string"},
+ {"name": "favorite_number", "type": ["int", "null"]},
+ {"name": "favorite_color", "type": ["string", "null"]}
+ ]
+}
+"""
+
+schema_registry_client = SchemaRegistryClient(fully_qualified_namespace=fully_qualified_namespace, credential=token_credential)
+with schema_registry_client:
+ schema_properties = schema_registry_client.register_schema(group_name, name, definition, format)
+ id = schema_properties.id
+```
+
+## Troubleshooting
+
+### General
+
+Schema Registry clients raise exceptions defined in [Azure Core][azure_core].
+
+### Logging
+This library uses the standard
+[logging][python_logging] library for logging.
+Basic information about HTTP sessions (URLs, headers, etc.) is logged at INFO
+level.
+
+Detailed DEBUG level logging, including request/response bodies and unredacted
+headers, can be enabled on a client with the `logging_enable` argument:
+```python
+import sys
+import logging
+from azure.schemaregistry import SchemaRegistryClient
+from azure.identity import DefaultAzureCredential
+
+# Create a logger for the SDK
+logger = logging.getLogger('azure.schemaregistry')
+logger.setLevel(logging.DEBUG)
+
+# Configure a console output
+handler = logging.StreamHandler(stream=sys.stdout)
+logger.addHandler(handler)
+
+credential = DefaultAzureCredential()
+# This client will log detailed information about its HTTP sessions, at DEBUG level
+schema_registry_client = SchemaRegistryClient("your_fully_qualified_namespace", credential, logging_enable=True)
+```
+
+Similarly, `logging_enable` can enable detailed logging for a single operation,
+even when it isn't enabled for the client:
+```py
+schema_registry_client.get_schema(schema_id, logging_enable=True)
+```
+
+## Next steps
+
+### More sample code
+
+Please take a look at the [samples][sr_samples] directory for detailed examples of how to use this library to register and retrieve schema to/from Schema Registry.
+
+## Contributing
+
+This project welcomes contributions and suggestions. Most contributions require you to agree to a
+Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us
+the rights to use your contribution. For details, visit https://cla.microsoft.com.
+
+When you submit a pull request, a CLA-bot will automatically determine whether you need to provide
+a CLA and decorate the PR appropriately (e.g., label, comment). Simply follow the instructions
+provided by the bot. You will only need to do this once across all repos using our CLA.
+
+This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/).
+For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or
+contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.
+
+<!-- LINKS -->
+[pip]: https://pypi.org/project/pip/
+[pypi]: https://pypi.org/project/azure-schemaregistry
+[python]: https://www.python.org/downloads/
+[azure_core]: https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/core/azure-core/README.md
+[azure_sub]: https://azure.microsoft.com/free/
+[python_logging]: https://docs.python.org/3/library/logging.html
+[sr_samples]: https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/schemaregistry/azure-schemaregistry/samples
+[api_reference]: https://docs.microsoft.com/python/api/overview/azure/schemaregistry-readme
+[source_code]: https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/schemaregistry/azure-schemaregistry
+[change_log]: https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/schemaregistry/azure-schemaregistry/CHANGELOG.md
+[schemas]: https://docs.microsoft.com/azure/event-hubs/schema-registry-overview#schemas
+[schema_groups]: https://docs.microsoft.com/azure/event-hubs/schema-registry-overview#schema-groups
+[schemaregistry_service]: https://aka.ms/schemaregistry
+[schemaregistry_avroserializer_pypi]: https://pypi.org/project/azure-schemaregistry-avroserializer/
+[token_credential_interface]: https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/core/azure-core/azure/core/credentials.py
+[pypi_azure_identity]: https://pypi.org/project/azure-identity/
+[quickstart_guide]: https://docs.microsoft.com/azure/event-hubs/create-schema-registry
+
+# Release History
+
+## 1.2.0 (2022-10-10)
+
+This version and all future versions will require Python 3.7+, Python 3.6 is no longer supported.
+
+### Features Added
+
+- `group_name`, `name`, and `version` have been added as optional parameters to the `get_schema` method on the sync and async `SchemaRegistryClient`.
+- `version` has been added to `SchemaProperties`.
+
+### Other Changes
+
+- Updated azure-core minimum dependency to 1.24.0.
+- Added distributed tracing support for sync and async `SchemaRegistryClient`.
+
+## 1.1.0 (2022-05-10)
+
+This version and all future versions will require Python 3.6+. Python 2.7 is no longer supported.
+
+### Features Added
+
+- `group_name` and `name` have been added as instance variables to `SchemaProperties`.
+
+### Other Changes
+
+- Updated azure-core minimum dependency to 1.23.0.
+
+## 1.0.0 (2021-11-10)
+
+**Note:** This is the first stable release of our efforts to create a user-friendly and Pythonic client library for Azure Schema Registry.
+
+### Features Added
+
+- `SchemaRegistryClient` is the top-level client class interacting with the Azure Schema Registry Service. It provides three methods:
+ - `register_schema`: Store schema in the service by providing schema group name, schema name, schema definition, and schema format.
+ - `get_schema`: Get schema definition and its properties by schema id.
+ - `get_schema_properties`: Get schema properties by providing schema group name, schema name, schema definition, and schema format.
+- `SchemaProperties` has the following instance variables: `id` and `format`:
+ - The type of `format` has been changed from `str` to `SchemaFormat`.
+- `Schema` has the following properties: `properties` and `definition`.
+- `SchemaFormat` provides the schema format to be stored by the service. Currently, the only supported format is `Avro`.
+- `api_version` has been added as a keyword arg to the sync and async `SchemaRegistryClient` constructors.
+
+### Breaking Changes
+
+- `version` instance variable in `SchemaProperties` has been removed.
+- `schema_definition` instance variable in `Schema` has been renamed `definition`.
+- `id` parameter in `get_schema` method on sync and async `SchemaRegistryClient` has been renamed `schema_id`.
+- `schema_definition` parameter in `register_schema` and `get_schema_properties` methods on sync and async `SchemaRegistryClient` has been renamed `definition`.
+- `serializer` namespace has been removed from `azure.schemaregistry`.
+
+## 1.0.0b3 (2021-10-05)
+
+### Breaking Changes
+
+- `get_schema_id` method on sync and async `SchemaRegistryClient` has been renamed `get_schema_properties`.
+- `schema_id` parameter in `get_schema` method on sync and async `SchemaRegistryClient` has been renamed `id`.
+- `register_schema` and `get_schema_properties` methods on sync and async `SchemaRegistryClient` now take in the following parameters in the given order:
+ - `group_name`, which has been renamed from `schema_group`
+ - `name`, which has been renamed from `schema_name`
+ - `schema_definition`, which has been renamed from `schema_content`
+ - `format`, which has been renamed from `serialization_type`
+- `endpoint` parameter in `SchemaRegistryClient` constructor has been renamed `fully_qualified_namespace`
+- `location` instance variable in `SchemaProperties` has been removed.
+- `Schema` and `SchemaProperties` no longer have positional parameters, as they will not be constructed by the user.
+
+### Other Changes
+
+- Updated azure-core dependency to 1.19.0.
+- Removed caching support of registered schemas so requests are sent to the service to register schemas, get schema properties, and get schemas.
+
+## 1.0.0b2 (2021-08-17)
+
+This version and all future versions will require Python 2.7 or Python 3.6+, Python 3.5 is no longer supported.
+
+### Features Added
+
+- Support caching of registered schemas and send requests to the service only if the cache does not have the looked-up schema/schema ID.
+
+## 1.0.0b1 (2020-09-09)
+
+Version 1.0.0b1 is the first preview of our efforts to create a user-friendly and Pythonic client library for Azure Schema Registry.
+
+**New features**
+
+- `SchemaRegistryClient` is the top-level client class interacting with the Azure Schema Registry Service. It provides three methods:
+ - `register_schema`: Store schema into the service.
+ - `get_schema`: Get schema content and its properties by schema id.
+ - `get_schema_id`: Get schema id and its properties by schema group, schema name, serialization type and schema content.
+
+
+%package help
+Summary: Development documents and examples for azure-schemaregistry
+Provides: python3-azure-schemaregistry-doc
+%description help
+# Azure Schema Registry client library for Python
+
+Azure Schema Registry is a schema repository service hosted by Azure Event Hubs, providing schema storage, versioning,
+and management. The registry is leveraged by serializers to reduce payload size while describing payload structure with
+schema identifiers rather than full schemas.
+
+[Source code][source_code] | [Package (PyPi)][pypi] | [API reference documentation][api_reference] | [Samples][sr_samples] | [Changelog][change_log]
+
+## _Disclaimer_
+
+_Azure SDK Python packages support for Python 2.7 has ended on 01 January 2022. For more information and questions, please refer to https://github.com/Azure/azure-sdk-for-python/issues/20691_
+
+## Getting started
+
+### Install the package
+
+Install the Azure Schema Registry client library for Python with [pip][pip]:
+
+```Bash
+pip install azure-schemaregistry
+```
+
+### Prerequisites:
+To use this package, you must have:
+* Azure subscription - [Create a free account][azure_sub]
+* [Azure Schema Registry][schemaregistry_service] - [Here is the quickstart guide][quickstart_guide] to create a Schema Registry group using the Azure portal.
+* Python 3.7 or later - [Install Python][python]
+
+### Authenticate the client
+
+Interaction with Schema Registry starts with an instance of SchemaRegistryClient class. The client constructor takes the fully qualified namespace and an Azure Active Directory credential:
+
+* The fully qualified namespace of the Schema Registry instance should follow the format: `<yournamespace>.servicebus.windows.net`.
+
+* An AAD credential that implements the [TokenCredential][token_credential_interface] protocol should be passed to the constructor. There are implementations of the `TokenCredential` protocol available in the
+[azure-identity package][pypi_azure_identity]. To use the credential types provided by `azure-identity`, please install the Azure Identity client library for Python with [pip][pip]:
+
+```Bash
+pip install azure-identity
+```
+
+* Additionally, to use the async API, you must first install an async transport, such as [aiohttp](https://pypi.org/project/aiohttp/):
+
+```Bash
+pip install aiohttp
+```
+
+**Create client using the azure-identity library:**
+
+```python
+from azure.schemaregistry import SchemaRegistryClient
+from azure.identity import DefaultAzureCredential
+
+credential = DefaultAzureCredential()
+# Namespace should be similar to: '<your-eventhub-namespace>.servicebus.windows.net/'
+fully_qualified_namespace = '<< FULLY QUALIFIED NAMESPACE OF THE SCHEMA REGISTRY >>'
+schema_registry_client = SchemaRegistryClient(fully_qualified_namespace, credential)
+```
+
+## Key concepts
+
+- Schema: Schema is the organization or structure for data. More detailed information can be found [here][schemas].
+
+- Schema Group: A logical group of similar schemas based on business criteria, which can hold multiple versions of a schema. More detailed information can be found [here][schema_groups].
+
+- SchemaRegistryClient: `SchemaRegistryClient` provides the API for storing and retrieving schemas in schema registry.
+
+## Examples
+
+The following sections provide several code snippets covering some of the most common Schema Registry tasks, including:
+
+- [Register a schema](#register-a-schema)
+- [Get the schema by id](#get-the-schema-by-id)
+- [Get the schema by version](#get-the-schema-by-version)
+- [Get the id of a schema](#get-the-id-of-a-schema)
+
+### Register a schema
+
+Use `SchemaRegistryClient.register_schema` method to register a schema.
+
+```python
+import os
+
+from azure.identity import DefaultAzureCredential
+from azure.schemaregistry import SchemaRegistryClient
+
+token_credential = DefaultAzureCredential()
+fully_qualified_namespace = os.environ['SCHEMA_REGISTRY_FULLY_QUALIFIED_NAMESPACE']
+group_name = os.environ['SCHEMA_REGISTRY_GROUP']
+name = "your-schema-name"
+format = "Avro"
+definition = """
+{"namespace": "example.avro",
+ "type": "record",
+ "name": "User",
+ "fields": [
+ {"name": "name", "type": "string"},
+ {"name": "favorite_number", "type": ["int", "null"]},
+ {"name": "favorite_color", "type": ["string", "null"]}
+ ]
+}
+"""
+
+schema_registry_client = SchemaRegistryClient(fully_qualified_namespace=fully_qualified_namespace, credential=token_credential)
+with schema_registry_client:
+ schema_properties = schema_registry_client.register_schema(group_name, name, definition, format)
+ id = schema_properties.id
+```
+
+### Get the schema by id
+
+Get the schema definition and its properties by schema id.
+
+```python
+import os
+
+from azure.identity import DefaultAzureCredential
+from azure.schemaregistry import SchemaRegistryClient
+
+token_credential = DefaultAzureCredential()
+fully_qualified_namespace = os.environ['SCHEMA_REGISTRY_FULLY_QUALIFIED_NAMESPACE']
+schema_id = 'your-schema-id'
+
+schema_registry_client = SchemaRegistryClient(fully_qualified_namespace=fully_qualified_namespace, credential=token_credential)
+with schema_registry_client:
+ schema = schema_registry_client.get_schema(schema_id)
+ definition = schema.definition
+ properties = schema.properties
+```
+
+### Get the schema by version
+
+Get the schema definition and its properties by schema version.
+
+```python
+import os
+
+from azure.identity import DefaultAzureCredential
+from azure.schemaregistry import SchemaRegistryClient
+
+token_credential = DefaultAzureCredential()
+fully_qualified_namespace = os.environ['SCHEMA_REGISTRY_FULLY_QUALIFIED_NAMESPACE']
+group_name = os.environ["SCHEMAREGISTRY_GROUP"]
+name = "your-schema-name"
+version = int("<your schema version>")
+
+schema_registry_client = SchemaRegistryClient(fully_qualified_namespace=fully_qualified_namespace, credential=token_credential)
+with schema_registry_client:
+ schema = schema_registry_client.get_schema(group_name=group_name, name=name, version=version)
+ definition = schema.definition
+ properties = schema.properties
+```
+
+### Get the id of a schema
+
+Get the schema id of a schema by schema definition and its properties.
+
+```python
+import os
+
+from azure.identity import DefaultAzureCredential
+from azure.schemaregistry import SchemaRegistryClient
+
+token_credential = DefaultAzureCredential()
+fully_qualified_namespace = os.environ['SCHEMA_REGISTRY_FULLY_QUALIFIED_NAMESPACE']
+group_name = os.environ['SCHEMA_REGISTRY_GROUP']
+name = "your-schema-name"
+format = "Avro"
+definition = """
+{"namespace": "example.avro",
+ "type": "record",
+ "name": "User",
+ "fields": [
+ {"name": "name", "type": "string"},
+ {"name": "favorite_number", "type": ["int", "null"]},
+ {"name": "favorite_color", "type": ["string", "null"]}
+ ]
+}
+"""
+
+schema_registry_client = SchemaRegistryClient(fully_qualified_namespace=fully_qualified_namespace, credential=token_credential)
+with schema_registry_client:
+ schema_properties = schema_registry_client.register_schema(group_name, name, definition, format)
+ id = schema_properties.id
+```
+
+## Troubleshooting
+
+### General
+
+Schema Registry clients raise exceptions defined in [Azure Core][azure_core].
+
+### Logging
+This library uses the standard
+[logging][python_logging] library for logging.
+Basic information about HTTP sessions (URLs, headers, etc.) is logged at INFO
+level.
+
+Detailed DEBUG level logging, including request/response bodies and unredacted
+headers, can be enabled on a client with the `logging_enable` argument:
+```python
+import sys
+import logging
+from azure.schemaregistry import SchemaRegistryClient
+from azure.identity import DefaultAzureCredential
+
+# Create a logger for the SDK
+logger = logging.getLogger('azure.schemaregistry')
+logger.setLevel(logging.DEBUG)
+
+# Configure a console output
+handler = logging.StreamHandler(stream=sys.stdout)
+logger.addHandler(handler)
+
+credential = DefaultAzureCredential()
+# This client will log detailed information about its HTTP sessions, at DEBUG level
+schema_registry_client = SchemaRegistryClient("your_fully_qualified_namespace", credential, logging_enable=True)
+```
+
+Similarly, `logging_enable` can enable detailed logging for a single operation,
+even when it isn't enabled for the client:
+```py
+schema_registry_client.get_schema(schema_id, logging_enable=True)
+```
+
+## Next steps
+
+### More sample code
+
+Please take a look at the [samples][sr_samples] directory for detailed examples of how to use this library to register and retrieve schema to/from Schema Registry.
+
+## Contributing
+
+This project welcomes contributions and suggestions. Most contributions require you to agree to a
+Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us
+the rights to use your contribution. For details, visit https://cla.microsoft.com.
+
+When you submit a pull request, a CLA-bot will automatically determine whether you need to provide
+a CLA and decorate the PR appropriately (e.g., label, comment). Simply follow the instructions
+provided by the bot. You will only need to do this once across all repos using our CLA.
+
+This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/).
+For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or
+contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.
+
+<!-- LINKS -->
+[pip]: https://pypi.org/project/pip/
+[pypi]: https://pypi.org/project/azure-schemaregistry
+[python]: https://www.python.org/downloads/
+[azure_core]: https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/core/azure-core/README.md
+[azure_sub]: https://azure.microsoft.com/free/
+[python_logging]: https://docs.python.org/3/library/logging.html
+[sr_samples]: https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/schemaregistry/azure-schemaregistry/samples
+[api_reference]: https://docs.microsoft.com/python/api/overview/azure/schemaregistry-readme
+[source_code]: https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/schemaregistry/azure-schemaregistry
+[change_log]: https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/schemaregistry/azure-schemaregistry/CHANGELOG.md
+[schemas]: https://docs.microsoft.com/azure/event-hubs/schema-registry-overview#schemas
+[schema_groups]: https://docs.microsoft.com/azure/event-hubs/schema-registry-overview#schema-groups
+[schemaregistry_service]: https://aka.ms/schemaregistry
+[schemaregistry_avroserializer_pypi]: https://pypi.org/project/azure-schemaregistry-avroserializer/
+[token_credential_interface]: https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/core/azure-core/azure/core/credentials.py
+[pypi_azure_identity]: https://pypi.org/project/azure-identity/
+[quickstart_guide]: https://docs.microsoft.com/azure/event-hubs/create-schema-registry
+
+# Release History
+
+## 1.2.0 (2022-10-10)
+
+This version and all future versions will require Python 3.7+, Python 3.6 is no longer supported.
+
+### Features Added
+
+- `group_name`, `name`, and `version` have been added as optional parameters to the `get_schema` method on the sync and async `SchemaRegistryClient`.
+- `version` has been added to `SchemaProperties`.
+
+### Other Changes
+
+- Updated azure-core minimum dependency to 1.24.0.
+- Added distributed tracing support for sync and async `SchemaRegistryClient`.
+
+## 1.1.0 (2022-05-10)
+
+This version and all future versions will require Python 3.6+. Python 2.7 is no longer supported.
+
+### Features Added
+
+- `group_name` and `name` have been added as instance variables to `SchemaProperties`.
+
+### Other Changes
+
+- Updated azure-core minimum dependency to 1.23.0.
+
+## 1.0.0 (2021-11-10)
+
+**Note:** This is the first stable release of our efforts to create a user-friendly and Pythonic client library for Azure Schema Registry.
+
+### Features Added
+
+- `SchemaRegistryClient` is the top-level client class interacting with the Azure Schema Registry Service. It provides three methods:
+ - `register_schema`: Store schema in the service by providing schema group name, schema name, schema definition, and schema format.
+ - `get_schema`: Get schema definition and its properties by schema id.
+ - `get_schema_properties`: Get schema properties by providing schema group name, schema name, schema definition, and schema format.
+- `SchemaProperties` has the following instance variables: `id` and `format`:
+ - The type of `format` has been changed from `str` to `SchemaFormat`.
+- `Schema` has the following properties: `properties` and `definition`.
+- `SchemaFormat` provides the schema format to be stored by the service. Currently, the only supported format is `Avro`.
+- `api_version` has been added as a keyword arg to the sync and async `SchemaRegistryClient` constructors.
+
+### Breaking Changes
+
+- `version` instance variable in `SchemaProperties` has been removed.
+- `schema_definition` instance variable in `Schema` has been renamed `definition`.
+- `id` parameter in `get_schema` method on sync and async `SchemaRegistryClient` has been renamed `schema_id`.
+- `schema_definition` parameter in `register_schema` and `get_schema_properties` methods on sync and async `SchemaRegistryClient` has been renamed `definition`.
+- `serializer` namespace has been removed from `azure.schemaregistry`.
+
+## 1.0.0b3 (2021-10-05)
+
+### Breaking Changes
+
+- `get_schema_id` method on sync and async `SchemaRegistryClient` has been renamed `get_schema_properties`.
+- `schema_id` parameter in `get_schema` method on sync and async `SchemaRegistryClient` has been renamed `id`.
+- `register_schema` and `get_schema_properties` methods on sync and async `SchemaRegistryClient` now take in the following parameters in the given order:
+ - `group_name`, which has been renamed from `schema_group`
+ - `name`, which has been renamed from `schema_name`
+ - `schema_definition`, which has been renamed from `schema_content`
+ - `format`, which has been renamed from `serialization_type`
+- `endpoint` parameter in `SchemaRegistryClient` constructor has been renamed `fully_qualified_namespace`
+- `location` instance variable in `SchemaProperties` has been removed.
+- `Schema` and `SchemaProperties` no longer have positional parameters, as they will not be constructed by the user.
+
+### Other Changes
+
+- Updated azure-core dependency to 1.19.0.
+- Removed caching support of registered schemas so requests are sent to the service to register schemas, get schema properties, and get schemas.
+
+## 1.0.0b2 (2021-08-17)
+
+This version and all future versions will require Python 2.7 or Python 3.6+, Python 3.5 is no longer supported.
+
+### Features Added
+
+- Support caching of registered schemas and send requests to the service only if the cache does not have the looked-up schema/schema ID.
+
+## 1.0.0b1 (2020-09-09)
+
+Version 1.0.0b1 is the first preview of our efforts to create a user-friendly and Pythonic client library for Azure Schema Registry.
+
+**New features**
+
+- `SchemaRegistryClient` is the top-level client class interacting with the Azure Schema Registry Service. It provides three methods:
+ - `register_schema`: Store schema into the service.
+ - `get_schema`: Get schema content and its properties by schema id.
+ - `get_schema_id`: Get schema id and its properties by schema group, schema name, serialization type and schema content.
+
+
+%prep
+%autosetup -n azure-schemaregistry-1.2.0
+
+%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-azure-schemaregistry -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Tue Apr 11 2023 Python_Bot <Python_Bot@openeuler.org> - 1.2.0-1
+- Package Spec generated
diff --git a/sources b/sources
new file mode 100644
index 0000000..c355b63
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+187fc6579f2c238f9a97f35a5f88b98f azure-schemaregistry-1.2.0.zip