# packages

pkgId: 7ab7ed8b023900ac39926d5b103dd443d0cb391349898130c404a2f2f85e102c
name: python-azure-storage-blob-changefeed
arch: src
version: 12.0.0b5
epoch: 0
release: 1
summary: Microsoft Azure Storage Blob ChangeFeed Client Library for Python
url: https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/storage/azure-storage-blob-changefeed
rpm_license: MIT License
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-azure-storage-blob-changefeed-12.0.0b5-1.src.rpm
checksum_type: sha256
description:
  This preview package for Python enables users to get blob change feed events. These events can be lazily generated, iterated by page, retrieved for a specific time interval, or iterated from a specific continuation token.


  [Source code](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/storage/azure-storage-blob-changefeed/azure/storage/blob/changefeed) | [Package (PyPi)](https://pypi.org/project/azure-storage-blob-changefeed/) | [API reference documentation](https://aka.ms/azsdk-python-storage-blob-changefeed-ref) | [Product documentation](https://docs.microsoft.com/azure/storage/) | [Samples](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/storage/azure-storage-blob-changefeed/samples)





  * Python 3.8 or later is required to use this package. For more details, please read our page on [Azure SDK for Python version support policy](https://github.com/Azure/azure-sdk-for-python/wiki/Azure-SDKs-Python-version-support-policy).
  * You must have an [Azure subscription](https://azure.microsoft.com/free/) and an
  [Azure storage account](https://docs.microsoft.com/azure/storage/blobs/data-lake-storage-quickstart-create-account) to use this package.


  Install the Azure Storage Blob ChangeFeed client library for Python with [pip](https://pypi.org/project/pip/):

  ```bash
  pip install azure-storage-blob-changefeed --pre
  ```


  If you wish to create a new storage account, you can use the
  [Azure Portal](https://docs.microsoft.com/azure/storage/common/storage-quickstart-create-account?tabs=azure-portal),
  [Azure PowerShell](https://docs.microsoft.com/azure/storage/common/storage-quickstart-create-account?tabs=azure-powershell),
  or [Azure CLI](https://docs.microsoft.com/azure/storage/common/storage-quickstart-create-account?tabs=azure-cli):

  ```bash


  az group create --name my-resource-group --location westus2


  az storage account create -n my-storage-account-name -g my-resource-group
  ```

  To enable changefeed you can use:
  [Azure Portal](https://docs.microsoft.com/azure/storage/blobs/storage-blob-change-feed?tabs=azure-portal#enable-and-disable-the-change-feed),
  [Azure PowerShell](https://docs.microsoft.com/azure/storage/blobs/storage-blob-change-feed?tabs=azure-powershell#enable-and-disable-the-change-feed)
  or [Template](https://docs.microsoft.com/azure/storage/blobs/storage-blob-change-feed?tabs=template#enable-and-disable-the-change-feed).



  Interaction with Blob ChangeFeed client starts with an instance of the ChangeFeedClient class. You need an existing storage account, its URL, and a credential to instantiate the client object.



  To authenticate the client you have a few options:
  1. Use a SAS token string
  2. Use an account shared access key
  3. Use a token credential from [azure.identity](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/identity/azure-identity)

  Alternatively, you can authenticate with a storage connection string using the `from_connection_string` method. See example: [Client creation with a connection string](#client-creation-with-a-connection-string).

  You can omit the credential if your account URL already has a SAS token.



  Once you have your account URL and credentials ready, you can create the ChangeFeedClient:

  ```python
  from azure.storage.blob.changefeed import ChangeFeedClient

  service = ChangeFeedClient(account_url="https://<my-storage-account-name>.blob.core.windows.net/", credential=credential)
  ```





  The Blob ChangeFeed SDK provides one client:
  * ChangeFeedClient: this client allows you to get change feed events by page, get all change feed events, get events in a time range, start listing events with a continuation token.



  The following sections provide several code snippets covering some of the most common Storage Blob ChangeFeed, including:

  * [Client creation with a connection string](#client-creation-with-a-connection-string)
  * [Enumerating Events Within a Time Range](#enumerating-events-within-a-time-range)
  * [Enumerating All Events](#enumerating-all-events)
  * [Enumerating Events by Page](#enumerating-events-by-page)



  Create the ChangeFeedClient using the connection string to your Azure Storage account.

  ```python
  from azure.storage.blob.changefeed import ChangeFeedClient

  service = ChangeFeedClient.from_connection_string(conn_str="my_connection_string")
  ```

  List all events within a time range.

  ```python
  from datetime import datetime
  from azure.storage.blob.changefeed import ChangeFeedClient

  cf_client = ChangeFeedClient("https://{}.blob.core.windows.net".format("YOUR_ACCOUNT_NAME"),
                               credential="Your_ACCOUNT_KEY")
  start_time = datetime(2020, 1, 6)
  end_time = datetime(2020, 3, 4)
  change_feed = cf_client.list_changes(start_time=start_time, end_time=end_time)


  for event in change_feed:
      print(event)
  ```


  List all events.

  ```python
  from azure.storage.blob.changefeed import ChangeFeedClient

  cf_client = ChangeFeedClient("https://{}.blob.core.windows.net".format("YOUR_ACCOUNT_NAME"),
                               credential="Your_ACCOUNT_KEY")
  change_feed = cf_client.list_changes()


  for event in change_feed:
      print(event)
  ```


  List events by page.

  ```python
  from azure.storage.blob.changefeed import ChangeFeedClient

  cf_client = ChangeFeedClient("https://{}.blob.core.windows.net".format("YOUR_ACCOUNT_NAME"),
                               credential="Your_ACCOUNT_KEY")

  change_feed = cf_client.list_changes().by_page()


  change_feed_page1 = next(change_feed)
  for event in change_feed_page1:
      print(event)
  ```




  This library uses the standard
  [logging](https://docs.python.org/3/library/logging.html) 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.storage.blob.changefeed import ChangeFeedClient


  logger = logging.getLogger('azure.storage')
  logger.setLevel(logging.DEBUG)


  handler = logging.StreamHandler(stream=sys.stdout)
  logger.addHandler(handler)


  service_client = ChangeFeedClient.from_connection_string("your_connection_string", logging_enable=True)
  ```





  Get started with our [Azure Blob ChangeFeed samples](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/storage/azure-storage-blob-changefeed/samples).

  Several Storage Blob ChangeFeed Python SDK samples are available to you in the SDK's GitHub repository. These samples provide example code for additional scenarios commonly encountered while working with Blob ChangeFeed:

  * [change_feed_samples.py](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/storage/azure-storage-blob-changefeed/samples/change_feed_samples.py) - Examples for authenticating and operating on the client:
      * list events by page
      * list all events
      * list events in a time range
      * list events starting from a continuation token



  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.


pkgId: ec39cfb059d1f6636c10137caddbcbc4985f3689477bffccd8f20d2e3603d2d8
name: python-azure-storage-common
arch: src
version: 2.1.0
epoch: 0
release: 1
summary: Microsoft Azure Storage Common Client Library for Python
url: https://github.com/Azure/azure-storage-python
rpm_license: MIT License
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-azure-storage-common-2.1.0-1.src.rpm
checksum_type: sha256
description:
  This project provides a client library in Python that makes it easy to
  consume Microsoft Azure Storage services. For documentation please see
  the Microsoft Azure `Python Developer Center`_ and our `API Reference`_ (also available on `readthedocs`_).
      If you are looking for the Service Bus or Azure Management
      libraries, please visit
      https://github.com/Azure/azure-sdk-for-python.


pkgId: 0d8777c864415657bb7d7753130d6a107d5e4413b341c8569f058caae56dc211
name: python-azure-storage-file-datalake
arch: src
version: 12.16.0
epoch: 0
release: 1
summary: Microsoft Azure File DataLake Storage Client Library for Python
url: https://github.com/Azure/azure-sdk-for-python
rpm_license: MIT License
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-azure-storage-file-datalake-12.16.0-1.src.rpm
checksum_type: sha256
description:
  Overview

  This preview package for Python includes ADLS Gen2 specific API support made available in Storage SDK. This includes:
  1. New directory level operations (Create, Rename, Delete) for hierarchical namespace enabled (HNS) storage account. For HNS enabled accounts, the rename/move operations are atomic.
  2. Permission related operations (Get/Set ACLs) for hierarchical namespace enabled (HNS) accounts.


  [Source code](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/storage/azure-storage-file-datalake/azure/storage/filedatalake)
  | [Package (PyPi)](https://pypi.org/project/azure-storage-file-datalake/)
  | [Package (Conda)](https://anaconda.org/microsoft/azure-storage/)
  | [API reference documentation](https://aka.ms/azsdk-python-storage-filedatalake-ref)
  | [Product documentation](https://docs.microsoft.com/azure/storage/)
  | [Samples](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/storage/azure-storage-file-datalake/samples)





  * Python 3.8 or later is required to use this package. For more details, please read our page on [Azure SDK for Python version support policy](https://github.com/Azure/azure-sdk-for-python/wiki/Azure-SDKs-Python-version-support-policy).
  * You must have an [Azure subscription](https://azure.microsoft.com/free/) and an
  [Azure storage account](https://docs.microsoft.com/azure/storage/blobs/data-lake-storage-quickstart-create-account) to use this package.


  Install the Azure DataLake Storage client library for Python with [pip](https://pypi.org/project/pip/):

  ```bash
  pip install azure-storage-file-datalake --pre
  ```


  If you wish to create a new storage account, you can use the
  [Azure Portal](https://docs.microsoft.com/azure/storage/blobs/data-lake-storage-quickstart-create-account#create-an-account-using-the-azure-portal),
  [Azure PowerShell](https://docs.microsoft.com/azure/storage/blobs/data-lake-storage-quickstart-create-account#create-an-account-using-powershell),
  or [Azure CLI](https://docs.microsoft.com/azure/storage/blobs/data-lake-storage-quickstart-create-account#create-an-account-using-azure-cli):

  ```bash


  az group create --name my-resource-group --location westus2


  az extension add --name storage-preview


  az storage account create --name my-storage-account-name --resource-group my-resource-group --sku Standard_LRS --kind StorageV2 --hierarchical-namespace true
  ```



  Interaction with DataLake Storage starts with an instance of the DataLakeServiceClient class. You need an existing storage account, its URL, and a credential to instantiate the client object.



  To authenticate the client you have a few options:
  1. Use a SAS token string
  2. Use an account shared access key
  3. Use a token credential from [azure.identity](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/identity/azure-identity)

  Alternatively, you can authenticate with a storage connection string using the `from_connection_string` method. See example: [Client creation with a connection string](#client-creation-with-a-connection-string).

  You can omit the credential if your account URL already has a SAS token.



  Once you have your account URL and credentials ready, you can create the DataLakeServiceClient:

  ```python
  from azure.storage.filedatalake import DataLakeServiceClient

  service = DataLakeServiceClient(account_url="https://<my-storage-account-name>.dfs.core.windows.net/", credential=credential)
  ```



  DataLake storage offers four types of resources:
  * The storage account
  * A file system in the storage account
  * A directory under the file system
  * A file in a the file system or under directory


  This library includes a complete async API supported on Python 3.5+. To use it, you must
  first install an async transport, such as [aiohttp](https://pypi.org/project/aiohttp/).
  See
  [azure-core documentation](https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/core/azure-core/CLIENT_LIBRARY_DEVELOPER.md#transport)
  for more information.

  Async clients and credentials should be closed when they're no longer needed. These
  objects are async context managers and define async `close` methods.



  The DataLake Storage SDK provides four different clients to interact with the DataLake Service:
  1. **DataLakeServiceClient** - this client interacts with the DataLake Service at the account level.
      It provides operations to retrieve and configure the account properties
      as well as list, create, and delete file systems within the account.
      For operations relating to a specific file system, directory or file, clients for those entities
      can also be retrieved using the `get_file_client`, `get_directory_client` or `get_file_system_client` functions.
  2. **FileSystemClient** - this client represents interaction with a specific
      file system, even if that file system does not exist yet. It provides operations to create, delete, or
      configure file systems and includes operations to list paths under file system, upload, and delete file or
      directory in the file system.
      For operations relating to a specific file, the client can also be retrieved using
      the `get_file_client` function.
      For operations relating to a specific directory, the client can be retrieved using
      the `get_directory_client` function.
  3. **DataLakeDirectoryClient** - this client represents interaction with a specific
      directory, even if that directory does not exist yet. It provides directory operations create, delete, rename,
      get properties and set properties operations.
  3. **DataLakeFileClient** - this client represents interaction with a specific
      file, even if that file does not exist yet. It provides file operations to append data, flush data, delete,
      create, and read file.
  4. **DataLakeLeaseClient** - this client represents lease interactions with a FileSystemClient, DataLakeDirectoryClient
      or DataLakeFileClient. It provides operations to acquire, renew, release, change, and break leases on the resources.



  The following sections provide several code snippets covering some of the most common Storage DataLake tasks, including:

  * [Client creation with a connection string](#client-creation-with-a-connection-string)
  * [Uploading a file](#uploading-a-file)
  * [Downloading a file](#downloading-a-file)
  * [Enumerating paths](#enumerating-paths)



  Create the DataLakeServiceClient using the connection string to your Azure Storage account.

  ```python
  from azure.storage.filedatalake import DataLakeServiceClient

  service = DataLakeServiceClient.from_connection_string(conn_str="my_connection_string")
  ```


  Upload a file to your file system.

  ```python
  from azure.storage.filedatalake import DataLakeFileClient

  data = b"abc"
  file = DataLakeFileClient.from_connection_string("my_connection_string",
                                                   file_system_name="myfilesystem", file_path="myfile")
  file.create_file ()
  file.append_data(data, offset=0, length=len(data))
  file.flush_data(len(data))
  ```


  Download a file from your file system.

  ```python
  from azure.storage.filedatalake import DataLakeFileClient

  file = DataLakeFileClient.from_connection_string("my_connection_string",
                                                   file_system_name="myfilesystem", file_path="myfile")

  with open("./BlockDestination.txt", "wb") as my_file:
      download = file.download_file()
      download.readinto(my_file)
  ```


  List the paths in your file system.

  ```python
  from azure.storage.filedatalake import FileSystemClient

  file_system = FileSystemClient.from_connection_string("my_connection_string", file_system_name="myfilesystem")

  paths = file_system.get_paths()
  for path in paths:
      print(path.name + '\n')
  ```



  Optional keyword arguments that can be passed in at the client and per-operation level.



  Use the following keyword arguments when instantiating a client to configure the retry policy:

  * __retry_total__ (int): Total number of retries to allow. Takes precedence over other counts.
  Pass in `retry_total=0` if you do not want to retry on requests. Defaults to 10.
  * __retry_connect__ (int): How many connection-related errors to retry on. Defaults to 3.
  * __retry_read__ (int): How many times to retry on read errors. Defaults to 3.
  * __retry_status__ (int): How many times to retry on bad status codes. Defaults to 3.
  * __retry_to_secondary__ (bool): Whether the request should be retried to secondary, if able.
  This should only be enabled of RA-GRS accounts are used and potentially stale data can be handled.
  Defaults to `False`.



  Other optional configuration keyword arguments that can be specified on the client or per-operation.

  **Client keyword arguments:**

  * __connection_timeout__ (int): The number of seconds the client will wait to establish a connection to the server.
  Defaults to 20 seconds.
  * __read_timeout__ (int): The number of seconds the client will wait, between consecutive read operations, for a
  response from the server. This is a socket level timeout and is not affected by overall data size. Client-side read
  timeouts will be automatically retried. Defaults to 60 seconds.
  * __transport__ (Any): User-provided transport to send the HTTP request.

  **Per-operation keyword arguments:**

  * __raw_response_hook__ (callable): The given callback uses the response returned from the service.
  * __raw_request_hook__ (callable): The given callback uses the request before being sent to service.
  * __client_request_id__ (str): Optional user specified identification of the request.
  * __user_agent__ (str): Appends the custom value to the user-agent header to be sent with the request.
  * __logging_enable__ (bool): Enables logging at the DEBUG level. Defaults to False. Can also be passed in at
  the client level to enable it for all requests.
  * __logging_body__ (bool): Enables logging the request and response body. Defaults to False. Can also be passed in at
  the client level to enable it for all requests.
  * __headers__ (dict): Pass in custom headers as key, value pairs. E.g. `headers={'CustomValue': value}`



  DataLake Storage clients raise exceptions defined in [Azure Core](https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/core/azure-core/README.md).

  This list can be used for reference to catch thrown exceptions. To get the specific error code of the exception, use the `error_code` attribute, i.e, `exception.error_code`.


  This library uses the standard
  [logging](https://docs.python.org/3/library/logging.html) 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.storage.filedatalake import DataLakeServiceClient


  logger = logging.getLogger('azure.storage')
  logger.setLevel(logging.DEBUG)


  handler = logging.StreamHandler(stream=sys.stdout)
  logger.addHandler(handler)


  service_client = DataLakeServiceClient.from_connection_string("your_connection_string", logging_enable=True)
  ```

  Similarly, `logging_enable` can enable detailed logging for a single operation,
  even when it isn't enabled for the client:
  ```python
  service_client.list_file_systems(logging_enable=True)
  ```





  Get started with our [Azure DataLake samples](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/storage/azure-storage-file-datalake/samples).

  Several DataLake Storage Python SDK samples are available to you in the SDK's GitHub repository. These samples provide example code for additional scenarios commonly encountered while working with DataLake Storage:

  * [`datalake_samples_access_control.py`](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/storage/azure-storage-file-datalake/samples/datalake_samples_access_control.py) - Examples for common DataLake Storage tasks:
      * Set up a file system
      * Create a directory
      * Set/Get access control for the directory
      * Create files under the directory
      * Set/Get access control for each file
      * Delete file system

  * [`datalake_samples_upload_download.py`](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/storage/azure-storage-file-datalake/samples/datalake_samples_upload_download.py) - Examples for common DataLake Storage tasks:
      * Set up a file system
      * Create file
      * Append data to the file
      * Flush data to the file
      * Download the uploaded data
      * Delete file system




  Table for [ADLS Gen1 to ADLS Gen2 API Mapping](https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/storage/azure-storage-file-datalake/GEN1_GEN2_MAPPING.md)
  For more extensive REST documentation on Data Lake Storage Gen2, see the [Data Lake Storage Gen2 documentation](https://docs.microsoft.com/rest/api/storageservices/datalakestoragegen2/filesystem) on docs.microsoft.com.



  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.


pkgId: cd43c1c5a9c6bd1f2213ea50bd478967d496a32adddf2fbfdd9351936aeb4f74
name: python-azure-storage-file-datalake
arch: src
version: 12.17.0
epoch: 0
release: 1
summary: Microsoft Azure File DataLake Storage Client Library for Python
url: https://github.com/Azure/azure-sdk-for-python
rpm_license: MIT License
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-azure-storage-file-datalake-12.17.0-1.src.rpm
checksum_type: sha256
description:
  Overview

  This preview package for Python includes ADLS Gen2 specific API support made available in Storage SDK. This includes:
  1. New directory level operations (Create, Rename, Delete) for hierarchical namespace enabled (HNS) storage account. For HNS enabled accounts, the rename/move operations are atomic.
  2. Permission related operations (Get/Set ACLs) for hierarchical namespace enabled (HNS) accounts.


  [Source code](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/storage/azure-storage-file-datalake/azure/storage/filedatalake)
  | [Package (PyPi)](https://pypi.org/project/azure-storage-file-datalake/)
  | [Package (Conda)](https://anaconda.org/microsoft/azure-storage/)
  | [API reference documentation](https://aka.ms/azsdk-python-storage-filedatalake-ref)
  | [Product documentation](https://docs.microsoft.com/azure/storage/)
  | [Samples](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/storage/azure-storage-file-datalake/samples)





  * Python 3.8 or later is required to use this package. For more details, please read our page on [Azure SDK for Python version support policy](https://github.com/Azure/azure-sdk-for-python/wiki/Azure-SDKs-Python-version-support-policy).
  * You must have an [Azure subscription](https://azure.microsoft.com/free/) and an
  [Azure storage account](https://docs.microsoft.com/azure/storage/blobs/data-lake-storage-quickstart-create-account) to use this package.


  Install the Azure DataLake Storage client library for Python with [pip](https://pypi.org/project/pip/):

  ```bash
  pip install azure-storage-file-datalake --pre
  ```


  If you wish to create a new storage account, you can use the
  [Azure Portal](https://docs.microsoft.com/azure/storage/blobs/data-lake-storage-quickstart-create-account#create-an-account-using-the-azure-portal),
  [Azure PowerShell](https://docs.microsoft.com/azure/storage/blobs/data-lake-storage-quickstart-create-account#create-an-account-using-powershell),
  or [Azure CLI](https://docs.microsoft.com/azure/storage/blobs/data-lake-storage-quickstart-create-account#create-an-account-using-azure-cli):

  ```bash


  az group create --name my-resource-group --location westus2


  az extension add --name storage-preview


  az storage account create --name my-storage-account-name --resource-group my-resource-group --sku Standard_LRS --kind StorageV2 --hierarchical-namespace true
  ```



  Interaction with DataLake Storage starts with an instance of the DataLakeServiceClient class. You need an existing storage account, its URL, and a credential to instantiate the client object.



  To authenticate the client you have a few options:
  1. Use a SAS token string
  2. Use an account shared access key
  3. Use a token credential from [azure.identity](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/identity/azure-identity)

  Alternatively, you can authenticate with a storage connection string using the `from_connection_string` method. See example: [Client creation with a connection string](#client-creation-with-a-connection-string).

  You can omit the credential if your account URL already has a SAS token.



  Once you have your account URL and credentials ready, you can create the DataLakeServiceClient:

  ```python
  from azure.storage.filedatalake import DataLakeServiceClient

  service = DataLakeServiceClient(account_url="https://<my-storage-account-name>.dfs.core.windows.net/", credential=credential)
  ```



  DataLake storage offers four types of resources:
  * The storage account
  * A file system in the storage account
  * A directory under the file system
  * A file in a the file system or under directory


  This library includes a complete async API supported on Python 3.5+. To use it, you must
  first install an async transport, such as [aiohttp](https://pypi.org/project/aiohttp/).
  See
  [azure-core documentation](https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/core/azure-core/CLIENT_LIBRARY_DEVELOPER.md#transport)
  for more information.

  Async clients and credentials should be closed when they're no longer needed. These
  objects are async context managers and define async `close` methods.



  The DataLake Storage SDK provides four different clients to interact with the DataLake Service:
  1. [DataLakeServiceClient](https://learn.microsoft.com/python/api/azure-storage-file-datalake/azure.storage.filedatalake.datalakeserviceclient?view=azure-python) -
      this client interacts with the DataLake Service at the account level.
      It provides operations to retrieve and configure the account properties
      as well as list, create, and delete file systems within the account.
      For operations relating to a specific file system, directory or file, clients for those entities
      can also be retrieved using the `get_file_client`, `get_directory_client` or `get_file_system_client` functions.
  2. [FileSystemClient](https://learn.microsoft.com/python/api/azure-storage-file-datalake/azure.storage.filedatalake.filesystemclient?view=azure-python) -
      this client represents interaction with a specific
      file system, even if that file system does not exist yet. It provides operations to create, delete, or
      configure file systems and includes operations to list paths under file system, upload, and delete file or
      directory in the file system.
      For operations relating to a specific file, the client can also be retrieved using
      the `get_file_client` function.
      For operations relating to a specific directory, the client can be retrieved using
      the `get_directory_client` function.
  3. [DatalakeDirectoryClient](https://learn.microsoft.com/python/api/azure-storage-file-datalake/azure.storage.filedatalake.datalakedirectoryclient?view=azure-python) -
      this client represents interaction with a specific
      directory, even if that directory does not exist yet. It provides directory operations create, delete, rename,
      get properties and set properties operations.
  4. [DatalakeFileClient](https://learn.microsoft.com/python/api/azure-storage-file-datalake/azure.storage.filedatalake.datalakefileclient?view=azure-python) -
      this client represents interaction with a specific
      file, even if that file does not exist yet. It provides file operations to append data, flush data, delete,
      create, and read file.
  5. [DatalakeLeaseClient](https://learn.microsoft.com/python/api/azure-storage-file-datalake/azure.storage.filedatalake.datalakeleaseclient?view=azure-python) -
      this client represents lease interactions with a FileSystemClient, DataLakeDirectoryClient
      or DataLakeFileClient. It provides operations to acquire, renew, release, change, and break leases on the resources.



  The following sections provide several code snippets covering some of the most common Storage DataLake tasks, including:

  * [Client creation with a connection string](#client-creation-with-a-connection-string)
  * [Uploading a file](#uploading-a-file)
  * [Downloading a file](#downloading-a-file)
  * [Enumerating paths](#enumerating-paths)



  Create the DataLakeServiceClient using the connection string to your Azure Storage account.

  ```python
  from azure.storage.filedatalake import DataLakeServiceClient

  service = DataLakeServiceClient.from_connection_string(conn_str="my_connection_string")
  ```


  Upload a file to your file system.

  ```python
  from azure.storage.filedatalake import DataLakeFileClient

  data = b"abc"
  file = DataLakeFileClient.from_connection_string("my_connection_string",
                                                   file_system_name="myfilesystem", file_path="myfile")
  file.create_file ()
  file.append_data(data, offset=0, length=len(data))
  file.flush_data(len(data))
  ```


  Download a file from your file system.

  ```python
  from azure.storage.filedatalake import DataLakeFileClient

  file = DataLakeFileClient.from_connection_string("my_connection_string",
                                                   file_system_name="myfilesystem", file_path="myfile")

  with open("./BlockDestination.txt", "wb") as my_file:
      download = file.download_file()
      download.readinto(my_file)
  ```


  List the paths in your file system.

  ```python
  from azure.storage.filedatalake import FileSystemClient

  file_system = FileSystemClient.from_connection_string("my_connection_string", file_system_name="myfilesystem")

  paths = file_system.get_paths()
  for path in paths:
      print(path.name + '\n')
  ```



  Optional keyword arguments that can be passed in at the client and per-operation level.



  Use the following keyword arguments when instantiating a client to configure the retry policy:

  * __retry_total__ (int): Total number of retries to allow. Takes precedence over other counts.
  Pass in `retry_total=0` if you do not want to retry on requests. Defaults to 10.
  * __retry_connect__ (int): How many connection-related errors to retry on. Defaults to 3.
  * __retry_read__ (int): How many times to retry on read errors. Defaults to 3.
  * __retry_status__ (int): How many times to retry on bad status codes. Defaults to 3.
  * __retry_to_secondary__ (bool): Whether the request should be retried to secondary, if able.
  This should only be enabled of RA-GRS accounts are used and potentially stale data can be handled.
  Defaults to `False`.



  Other optional configuration keyword arguments that can be specified on the client or per-operation.

  **Client keyword arguments:**

  * __connection_timeout__ (int): The number of seconds the client will wait to establish a connection to the server.
  Defaults to 20 seconds.
  * __read_timeout__ (int): The number of seconds the client will wait, between consecutive read operations, for a
  response from the server. This is a socket level timeout and is not affected by overall data size. Client-side read
  timeouts will be automatically retried. Defaults to 60 seconds.
  * __transport__ (Any): User-provided transport to send the HTTP request.

  **Per-operation keyword arguments:**

  * __raw_response_hook__ (callable): The given callback uses the response returned from the service.
  * __raw_request_hook__ (callable): The given callback uses the request before being sent to service.
  * __client_request_id__ (str): Optional user specified identification of the request.
  * __user_agent__ (str): Appends the custom value to the user-agent header to be sent with the request.
  * __logging_enable__ (bool): Enables logging at the DEBUG level. Defaults to False. Can also be passed in at
  the client level to enable it for all requests.
  * __logging_body__ (bool): Enables logging the request and response body. Defaults to False. Can also be passed in at
  the client level to enable it for all requests.
  * __headers__ (dict): Pass in custom headers as key, value pairs. E.g. `headers={'CustomValue': value}`



  DataLake Storage clients raise exceptions defined in [Azure Core](https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/core/azure-core/README.md).

  This list can be used for reference to catch thrown exceptions. To get the specific error code of the exception, use the `error_code` attribute, i.e, `exception.error_code`.


  This library uses the standard
  [logging](https://docs.python.org/3/library/logging.html) 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.storage.filedatalake import DataLakeServiceClient


  logger = logging.getLogger('azure.storage')
  logger.setLevel(logging.DEBUG)


  handler = logging.StreamHandler(stream=sys.stdout)
  logger.addHandler(handler)


  service_client = DataLakeServiceClient.from_connection_string("your_connection_string", logging_enable=True)
  ```

  Similarly, `logging_enable` can enable detailed logging for a single operation,
  even when it isn't enabled for the client:
  ```python
  service_client.list_file_systems(logging_enable=True)
  ```





  Get started with our [Azure DataLake samples](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/storage/azure-storage-file-datalake/samples).

  Several DataLake Storage Python SDK samples are available to you in the SDK's GitHub repository. These samples provide example code for additional scenarios commonly encountered while working with DataLake Storage:

  * [`datalake_samples_access_control.py`](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/storage/azure-storage-file-datalake/samples/datalake_samples_access_control.py) - Examples for common DataLake Storage tasks:
      * Set up a file system
      * Create a directory
      * Set/Get access control for the directory
      * Create files under the directory
      * Set/Get access control for each file
      * Delete file system

  * [`datalake_samples_upload_download.py`](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/storage/azure-storage-file-datalake/samples/datalake_samples_upload_download.py) - Examples for common DataLake Storage tasks:
      * Set up a file system
      * Create file
      * Append data to the file
      * Flush data to the file
      * Download the uploaded data
      * Delete file system




  Table for [ADLS Gen1 to ADLS Gen2 API Mapping](https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/storage/azure-storage-file-datalake/GEN1_GEN2_MAPPING.md)
  For more extensive REST documentation on Data Lake Storage Gen2, see the [Data Lake Storage Gen2 documentation](https://docs.microsoft.com/rest/api/storageservices/datalakestoragegen2/filesystem) on docs.microsoft.com.



  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.


pkgId: ffa4a355dbdb1de79f6cf743ae245c798b3539d558a557fe8fc124f1ce0d2004
name: python-azure-storage-file-share
arch: src
version: 12.17.0
epoch: 0
release: 1
summary: Microsoft Azure Azure File Share Storage Client Library for Python
url: https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/storage/azure-storage-file-share
rpm_license: MIT License
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-azure-storage-file-share-12.17.0-1.src.rpm
checksum_type: sha256
description:
  Azure File Share storage offers fully managed file shares in the cloud that are accessible via the industry standard [Server Message Block (SMB) protocol](https://docs.microsoft.com/windows/desktop/FileIO/microsoft-smb-protocol-and-cifs-protocol-overview). Azure file shares can be mounted concurrently by cloud or on-premises deployments of Windows, Linux, and macOS. Additionally, Azure file shares can be cached on Windows Servers with Azure File Sync for fast access near where the data is being used.

  Azure file shares can be used to:

  * Replace or supplement on-premises file servers
  * "Lift and shift" applications
  * Simplify cloud development with shared application settings, diagnostic share, and Dev/Test/Debug tools

  [Source code](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/storage/azure-storage-file-share/azure/storage/fileshare)
  | [Package (PyPI)](https://pypi.org/project/azure-storage-file-share/)
  | [Package (Conda)](https://anaconda.org/microsoft/azure-storage/)
  | [API reference documentation](https://aka.ms/azsdk-python-storage-fileshare-ref)
  | [Product documentation](https://docs.microsoft.com/azure/storage/)
  | [Samples](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/storage/azure-storage-file-share/samples)




  * Python 3.8 or later is required to use this package. For more details, please read our page on [Azure SDK for Python version support policy](https://github.com/Azure/azure-sdk-for-python/wiki/Azure-SDKs-Python-version-support-policy).
  * You must have an [Azure subscription](https://azure.microsoft.com/free/) and an
  [Azure storage account](https://docs.microsoft.com/azure/storage/common/storage-account-overview) to use this package.


  Install the Azure Storage File Share client library for Python with [pip](https://pypi.org/project/pip/):

  ```bash
  pip install azure-storage-file-share
  ```


  If you wish to create a new storage account, you can use the
  [Azure Portal](https://docs.microsoft.com/azure/storage/common/storage-quickstart-create-account?tabs=azure-portal),
  [Azure PowerShell](https://docs.microsoft.com/azure/storage/common/storage-quickstart-create-account?tabs=azure-powershell),
  or [Azure CLI](https://docs.microsoft.com/azure/storage/common/storage-quickstart-create-account?tabs=azure-cli):

  ```bash


  az group create --name my-resource-group --location westus2


  az storage account create -n my-storage-account-name -g my-resource-group
  ```


  The Azure Storage File Share client library for Python allows you to interact with four types of resources: the storage
  account itself, file shares, directories, and files. Interaction with these resources starts with an instance of a
  [client](#clients). To create a client object, you will need the storage account's file service URL and a
  credential that allows you to access the storage account:

  ```python
  from azure.storage.fileshare import ShareServiceClient

  service = ShareServiceClient(account_url="https://<my-storage-account-name>.file.core.windows.net/", credential=credential)
  ```


  You can find the storage account's file service URL using the
  [Azure Portal](https://docs.microsoft.com/azure/storage/common/storage-account-overview#storage-account-endpoints),
  [Azure PowerShell](https://docs.microsoft.com/powershell/module/az.storage/get-azstorageaccount),
  or [Azure CLI](https://docs.microsoft.com/cli/azure/storage/account?view=azure-cli-latest#az-storage-account-show):

  ```bash

  az storage account show -n my-storage-account-name -g my-resource-group --query "primaryEndpoints.file"
  ```


  The `credential` parameter may be provided in a number of different forms, depending on the type of
  [authorization](https://docs.microsoft.com/azure/storage/common/storage-auth) you wish to use:
  1. To use a [shared access signature (SAS) token](https://docs.microsoft.com/azure/storage/common/storage-sas-overview),
     provide the token as a string. If your account URL includes the SAS token, omit the credential parameter.
     You can generate a SAS token from the Azure Portal under "Shared access signature" or use one of the `generate_sas()`
     functions to create a sas token for the storage account, share, or file:

      ```python
      from datetime import datetime, timedelta
      from azure.storage.fileshare import ShareServiceClient, generate_account_sas, ResourceTypes, AccountSasPermissions

      sas_token = generate_account_sas(
          account_name="<storage-account-name>",
          account_key="<account-access-key>",
          resource_types=ResourceTypes(service=True),
          permission=AccountSasPermissions(read=True),
          expiry=datetime.utcnow() + timedelta(hours=1)
      )

      share_service_client = ShareServiceClient(account_url="https://<my_account_name>.file.core.windows.net", credential=sas_token)
      ```

  2. To use a storage account [shared key](https://docs.microsoft.com/rest/api/storageservices/authenticate-with-shared-key/)
     (aka account key or access key), provide the key as a string. This can be found in the Azure Portal under the "Access Keys"
     section or by running the following Azure CLI command:

      ```az storage account keys list -g MyResourceGroup -n MyStorageAccount```

      Use the key as the credential parameter to authenticate the client:
      ```python
      from azure.storage.fileshare import ShareServiceClient
      service = ShareServiceClient(account_url="https://<my_account_name>.file.core.windows.net", credential="<account_access_key>")
      ```


  Depending on your use case and authorization method, you may prefer to initialize a client instance with a storage
  connection string instead of providing the account URL and credential separately. To do this, pass the storage
  connection string to the client's `from_connection_string` class method:

  ```python
  from azure.storage.fileshare import ShareServiceClient

  connection_string = "DefaultEndpointsProtocol=https;AccountName=xxxx;AccountKey=xxxx;EndpointSuffix=core.windows.net"
  service = ShareServiceClient.from_connection_string(conn_str=connection_string)
  ```

  The connection string to your storage account can be found in the Azure Portal under the "Access Keys" section or by running the following CLI command:

  ```bash
  az storage account show-connection-string -g MyResourceGroup -n MyStorageAccount
  ```


  The following components make up the Azure File Share Service:
  * The storage account itself
  * A file share within the storage account
  * An optional hierarchy of directories within the file share
  * A file within the file share, which may be up to 1 TiB in size

  The Azure Storage File Share client library for Python allows you to interact with each of these components through the
  use of a dedicated client object.


  This library includes a complete async API supported on Python 3.5+. To use it, you must
  first install an async transport, such as [aiohttp](https://pypi.org/project/aiohttp/).
  See
  [azure-core documentation](https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/core/azure-core/CLIENT_LIBRARY_DEVELOPER.md#transport)
  for more information.

  Async clients and credentials should be closed when they're no longer needed. These
  objects are async context managers and define async `close` methods.


  Four different clients are provided to interact with the various components of the File Share Service:
  1. [ShareServiceClient](https://aka.ms/azsdk-python-storage-fileshare-shareserviceclient) -
      this client represents interaction with the Azure storage account itself, and allows you to acquire preconfigured
      client instances to access the file shares within. It provides operations to retrieve and configure the service
      properties as well as list, create, and delete shares within the account. To perform operations on a specific share,
      retrieve a client using the `get_share_client` method.
  2. [ShareClient](https://aka.ms/azsdk-python-storage-fileshare-shareclient) -
      this client represents interaction with a specific file share (which need not exist yet), and allows you to acquire
      preconfigured client instances to access the directories and files within. It provides operations to create, delete,
      configure, or create snapshots of a share and includes operations to create and enumerate the contents of
      directories within it. To perform operations on a specific directory or file, retrieve a client using the
      `get_directory_client` or `get_file_client` methods.
  3. [ShareDirectoryClient](https://aka.ms/azsdk-python-storage-fileshare-sharedirectoryclient) -
      this client represents interaction with a specific directory (which need not exist yet). It provides operations to
      create, delete, or enumerate the contents of an immediate or nested subdirectory, and includes operations to create
      and delete files within it. For operations relating to a specific subdirectory or file, a client for that entity can
      also be retrieved using the `get_subdirectory_client` and `get_file_client` functions.
  4. [ShareFileClient](https://aka.ms/azsdk-python-storage-fileshare-sharefileclient) -
      this client represents interaction with a specific file (which need not exist yet). It provides operations to
      upload, download, create, delete, and copy a file.

  For details on path naming restrictions, see [Naming and Referencing Shares, Directories, Files, and Metadata](https://docs.microsoft.com/rest/api/storageservices/naming-and-referencing-shares--directories--files--and-metadata).


  The following sections provide several code snippets covering some of the most common Storage File Share tasks, including:

  * [Creating a file share](#creating-a-file-share "Creating a file share")
  * [Uploading a file](#uploading-a-file "Uploading a file")
  * [Downloading a file](#downloading-a-file "Downloading a file")
  * [Listing contents of a directory](#listing-contents-of-a-directory "Listing contents of a directory")


  Create a file share to store your files

  ```python
  from azure.storage.fileshare import ShareClient

  share = ShareClient.from_connection_string(conn_str="<connection_string>", share_name="myshare")
  share.create_share()
  ```

  Use the async client to create a file share

  ```python
  from azure.storage.fileshare.aio import ShareClient

  share = ShareClient.from_connection_string(conn_str="<connection_string>", share_name="myshare")
  await share.create_share()
  ```


  Upload a file to the share

  ```python
  from azure.storage.fileshare import ShareFileClient

  file_client = ShareFileClient.from_connection_string(conn_str="<connection_string>", share_name="myshare", file_path="my_file")

  with open("./SampleSource.txt", "rb") as source_file:
      file_client.upload_file(source_file)
  ```

  Upload a file asynchronously

  ```python
  from azure.storage.fileshare.aio import ShareFileClient

  file_client = ShareFileClient.from_connection_string(conn_str="<connection_string>", share_name="myshare", file_path="my_file")

  with open("./SampleSource.txt", "rb") as source_file:
      await file_client.upload_file(source_file)
  ```


  Download a file from the share

  ```python
  from azure.storage.fileshare import ShareFileClient

  file_client = ShareFileClient.from_connection_string(conn_str="<connection_string>", share_name="myshare", file_path="my_file")

  with open("DEST_FILE", "wb") as file_handle:
      data = file_client.download_file()
      data.readinto(file_handle)
  ```

  Download a file asynchronously

  ```python
  from azure.storage.fileshare.aio import ShareFileClient

  file_client = ShareFileClient.from_connection_string(conn_str="<connection_string>", share_name="myshare", file_path="my_file")

  with open("DEST_FILE", "wb") as file_handle:
      data = await file_client.download_file()
      await data.readinto(file_handle)
  ```


  List all directories and files under a parent directory

  ```python
  from azure.storage.fileshare import ShareDirectoryClient

  parent_dir = ShareDirectoryClient.from_connection_string(conn_str="<connection_string>", share_name="myshare", directory_path="parent_dir")

  my_list = list(parent_dir.list_directories_and_files())
  print(my_list)
  ```

  List contents of a directory asynchronously

  ```python
  from azure.storage.fileshare.aio import ShareDirectoryClient

  parent_dir = ShareDirectoryClient.from_connection_string(conn_str="<connection_string>", share_name="myshare", directory_path="parent_dir")

  my_files = []
  async for item in parent_dir.list_directories_and_files():
      my_files.append(item)
  print(my_files)
  ```



  Optional keyword arguments that can be passed in at the client and per-operation level.



  Use the following keyword arguments when instantiating a client to configure the retry policy:

  * __retry_total__ (int): Total number of retries to allow. Takes precedence over other counts.
  Pass in `retry_total=0` if you do not want to retry on requests. Defaults to 10.
  * __retry_connect__ (int): How many connection-related errors to retry on. Defaults to 3.
  * __retry_read__ (int): How many times to retry on read errors. Defaults to 3.
  * __retry_status__ (int): How many times to retry on bad status codes. Defaults to 3.
  * __retry_to_secondary__ (bool): Whether the request should be retried to secondary, if able.
  This should only be enabled of RA-GRS accounts are used and potentially stale data can be handled.
  Defaults to `False`.



  Other optional configuration keyword arguments that can be specified on the client or per-operation.

  **Client keyword arguments:**

  * __connection_timeout__ (int): The number of seconds the client will wait to establish a connection to the server.
  Defaults to 20 seconds.
  * __read_timeout__ (int): The number of seconds the client will wait, between consecutive read operations, for a
  response from the server. This is a socket level timeout and is not affected by overall data size. Client-side read
  timeouts will be automatically retried. Defaults to 60 seconds.
  * __transport__ (Any): User-provided transport to send the HTTP request.

  **Per-operation keyword arguments:**

  * __raw_response_hook__ (callable): The given callback uses the response returned from the service.
  * __raw_request_hook__ (callable): The given callback uses the request before being sent to service.
  * __client_request_id__ (str): Optional user specified identification of the request.
  * __user_agent__ (str): Appends the custom value to the user-agent header to be sent with the request.
  * __logging_enable__ (bool): Enables logging at the DEBUG level. Defaults to False. Can also be passed in at
  the client level to enable it for all requests.
  * __logging_body__ (bool): Enables logging the request and response body. Defaults to False. Can also be passed in at
  the client level to enable it for all requests.
  * __headers__ (dict): Pass in custom headers as key, value pairs. E.g. `headers={'CustomValue': value}`




  Storage File clients raise exceptions defined in [Azure Core](https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/core/azure-core/README.md).

  This list can be used for reference to catch thrown exceptions. To get the specific error code of the exception, use the `error_code` attribute, i.e, `exception.error_code`.


  This library uses the standard
  [logging](https://docs.python.org/3/library/logging.html) 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.storage.fileshare import ShareServiceClient


  logger = logging.getLogger('azure.storage.fileshare')
  logger.setLevel(logging.DEBUG)


  handler = logging.StreamHandler(stream=sys.stdout)
  logger.addHandler(handler)


  service_client = ShareServiceClient.from_connection_string("your_connection_string", logging_enable=True)
  ```

  Similarly, `logging_enable` can enable detailed logging for a single operation,
  even when it isn't enabled for the client:
  ```python
  service_client.get_service_properties(logging_enable=True)
  ```





  Get started with our [File Share samples](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/storage/azure-storage-file-share/samples).

  Several Storage File Share Python SDK samples are available to you in the SDK's GitHub repository. These samples provide example code for additional scenarios commonly encountered while working with Storage File Share:

  * [file_samples_hello_world.py](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/storage/azure-storage-file-share/samples/file_samples_hello_world.py) ([async version](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/storage/azure-storage-file-share/samples/file_samples_hello_world_async.py)) - Examples found in this article:
      * Client creation
      * Create a file share
      * Upload a file

  * [file_samples_authentication.py](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/storage/azure-storage-file-share/samples/file_samples_authentication.py) ([async version](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/storage/azure-storage-file-share/samples/file_samples_authentication_async.py)) - Examples for authenticating and creating the client:
      * From a connection string
      * From a shared access key
      * From a shared access signature token

  * [file_samples_service.py](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/storage/azure-storage-file-share/samples/file_samples_service.py) ([async version](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/storage/azure-storage-file-share/samples/file_samples_service_async.py)) - Examples for interacting with the file service:
      * Get and set service properties
      * Create, list, and delete shares
      * Get a share client

  * [file_samples_share.py](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/storage/azure-storage-file-share/samples/file_samples_share.py) ([async version](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/storage/azure-storage-file-share/samples/file_samples_share_async.py)) - Examples for interacting with file shares:
      * Create a share snapshot
      * Set share quota and metadata
      * List directories and files
      * Get the directory or file client to interact with a specific entity

  * [file_samples_directory.py](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/storage/azure-storage-file-share/samples/file_samples_directory.py) ([async version](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/storage/azure-storage-file-share/samples/file_samples_directory_async.py)) - Examples for interacting with directories:
      * Create a directory and add files
      * Create and delete subdirectories
      * Get the subdirectory client

  * [file_samples_client.py](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/storage/azure-storage-file-share/samples/file_samples_client.py) ([async version](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/storage/azure-storage-file-share/samples/file_samples_client_async.py)) - Examples for interacting with files:
      * Create, upload, download, and delete files
      * Copy a file from a URL


  For more extensive documentation on Azure File Share storage, see the [Azure File Share storage documentation](https://docs.microsoft.com/azure/storage/files/) on docs.microsoft.com.


  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.







  - Stable release of features from 12.17.0b1




  - Added a more descriptive authorization error message when facing authorization errors.




  - Stable release of features from 12.16.0b1



  This version and all future versions will require Python 3.8+. Python 3.7 is no longer supported.


  - Added `exists` method to `ShareFileClient` to check if a file exists.
  - Added support for service version 2024-05-04.
  - The `services` parameter has been added to the `generate_account_sas` API, which enables the ability to generate SAS
  tokens to be used with multiple services. By default, the SAS token service scope will default to the current service.
  - Added `client_name` property to `Handle`.
  - Added support for `support_rename` to `get_ranges_diff()`


  - Fixed an issue where the `ShareDirectoryClient` returned by `get_subdirectory_client` with a `ShareDirectoryClient`
  pointing to the root of the file share would raise an `InvalidResourceName` on any operations.
  - Bumped dependency of `typing-extensions` to `>=4.6.0` to avoid potential `TypeError` with `typing.TypeVar` on
  Python 3.12.
  - Fixed an issue where authentication errors could raise `AttributeError` instead of `ClientAuthenticationError` when
  using async OAuth credentials.
  - Fixed an issue where parameter `delete_snapshots` to `delete_share` API did not support all possible enums. This change
  makes `delete_snapshots` now accept string literals 'include' and 'include-leased'.
  - Fixed an issue where specifying datetime objects with less than 7 digits of precision as input could incorrectly raise
  `InvalidHeaderValue` due to improper precision parsing.




  - Stable release of features from 12.15.0b1




  - Added support for service version 2023-11-03.
  - Added `audience` as an optional keyword that can be specified on APIs that have a `credential` parameter. This
  keyword only has an effect when the credential provided is of type `TokenCredential`.




  - Fixed an issue when an invalid type was provided for `credential` during client construction, the
  `__str__` of the object would be present in the exception message and therefore potentially logged.




  - Fixed breaking `KeyError: 'sdk_moniker'` in `create_configuration`.
  NOTE: This is not an exported method and therefore should not be imported/called directly.




  - Stable release of features from 12.14.0b1




  - Added support for service versions 2023-05-03 and 2023-08-03.




  - Stable release of features from 12.13.0b1




  - Added support for service version 2023-01-03.
  - Added `access_rights` property to `Handle`.




  - Stable release of features from 12.12.0b1




  - Added support for service version 2022-11-02.
  - Added support for `TokenCredential` to be used for authentication. A `TokenCredential` can be provided for the
  `credential` parameter to any client constructor. **Note:** When using a `TokenCredential`, the new keyword parameter
  `token_intent` is **required** and must be provided. Additionally, this form of authentication is only supported for
  certain operations in the Data Plane SDK.
  - Added support for `allow_trailing_dot` and `allow_source_trailing_dot` on client construction. When
  `allow_trailing_dot` is provided, the service will not silently remove any trailing `.` character from directory/file
  names for all operations made from that client. `allow_source_trailing_dot` will apply this same rule to source files
  when performing a rename or copy operation.




  - Fixed "duplicate type signatures" MyPy error.




  - Stable release of features from 12.11.0b1




  - Added support for service version 2021-12-02.
  - Added support for file and directory paths that contain invalid XML characters. When listing or fetching properties,
  the service will encode illegal characters and the SDK will now automatically decode them.
  - Added support for `AsyncIterable` as data type for async file upload.


  - Fixed an issue where keyword `name_starts_with` was not being passed to the service properly for the `list_shares` async API


  - Removed `msrest` dependency.
  - Added `typing-extensions>=4.0.1` as a dependency.
  - Added `isodate>=0.6.1` as a dependency.
  - Added extra dependency `aio` for installing optional async dependencies. Use `pip install azure-storage-file-share[aio]` to install.




  - Fixed possible `ValueError` for invalid content range that gets raised when downloading empty files through Azurite.




  - Stable release of features from 12.10.0b1.


  - Fixed an issue where calling `download_file` with an invalid base64-encoded account key would raise an
  `AttributeError` rather than the proper `AzureSigningError`.


  - Changed the default value for `read_timeout` to 60 seconds for all clients.



  This version and all future versions will require Python 3.7+. Python 3.6 is no longer supported.


  - Added support for `AzureNamedKeyCredential` as a valid `credential` type.




  - Stable release of features from 12.9.0b1.
  - Added support for progress tracking to `upload_file()` and `download_file()` via a new optional callback, `progress_hook`.




  - Added support for `file_change_time` to `start_copy_from_url` API




  - Stable release of features from 12.8.0b1.


  - Fixed a bug, introduced in the previous beta release, that caused Authentication errors when attempting to use
  an Account SAS with certain service level operations.




  - Added support for service version 2021-06-08.
  - Added support for missing parameters on `create_directory()` including `file_attributes`, `file_creation_time`,
  `file_last_write_time`, `file_permission` and `file_permission_key`.
  - Added support for setting `content_type` on `rename_file()`.
  - Added support for setting `file_change_time` on `create_directory()`, `set_http_headers()` (directory)
  `rename_directory()`, `create_file()`, `set_http_headers()` (file) and `rename_file()`.
  - Added support for setting `file_last_write_mode` on `upload_range()` and `upload_range_from_url()`
  with possible values of `Now` or `Preserve`.


  - Updated `create_share()` docstring to have the correct return-type of `None`



  This version and all future versions will require Python 3.6+. Python 2.7 is no longer supported.


  - Added support for service version 2021-02-12, 2021-04-10.
  - Added support for premium file share provisioned_bandwidth property.
  - Added support for checking if a directory exists using `exists()`.
  - Added support for `rename_directory()` and `rename_file()`.
  - Added support for `Create (c)` SAS permission for Share SAS.


  - Fixed a bug where `start_copy_from_url()` was not sending the `ignore_read_only` parameter correctly.



  This version and all future versions will require Python 3.6+. Python 2.7 is no longer supported.


  - Added support for service version 2021-04-10.
  - Added support for `rename_directory()` and `rename_file()`.
  - Added support for `Create (c)` SAS permission for Share SAS.


  - Update `azure-core` dependency to avoid inconsistent dependencies from being installed.
  - Fixed a bug, that was introduced in the previous beta release, where `generate_account_sas()`
  was not generating the proper SAS signature.




  - Added support for service version 2021-02-12.
  - Added support for premium file share provisioned_bandwidth property.
  - Added support for checking if a directory exists using `exists()`.


  **Stable release of preview features**
  - Added support for service version 2020-10-02 (STG78)
  - Added OAuth support for file copy source.


  **New features**
  - Added OAuth support for file copy source.

  **Fixes**
  - Ensured that download fails if file modified mid download


  **New features**
  - Added support for lease operation on a share, eg. acquire_lease


  **New features**
  - Added support for lease operation on a share, eg. acquire_lease


  **Fixes**
  - Make `AccountName`, `AccountKey` etc. in conn_str case insensitive
  - Fixed `downloader.chunks()` return chunks in different size (#9419, #15648)
  - Fixed unclosed `ThreadPoolExecutor` (#8955)


  **Fixes**
  - Fixed msrest dependency issue (#16250)


  **Stable release of preview features**
  - Added support for enabling root squash and share protocols for file share.
  - Added support for `AzureSasCredential` to allow SAS rotation in long living clients.


  **New features**
  - Added support for enabling root squash and share protocols for file share.



  **Stable release of preview features**
  - Preview feature enabling SMB Multichannel for the share service.
  - Preview feature `get_ranges` on ShareFileClient

  **New features**
  - Added `set_share_properties` which allows setting share tier.

  **Notes**
  - Updated dependency `azure-core` from  azure-core<2.0.0,>=1.2.2 to azure-core<2.0.0,>=1.9.0 to get continuation_token attr on AzureError.


  **New features**
  - Added support for enabling SMB Multichannel for the share service.
  - Added support for leasing a share.
  - Added support for getting the range diff between current file and a snapshot as well as getting the diff between two file snapshots.



  **Stable release of preview features**
  - Preview feature `undelete_share` on FileShareServiceClient.


  **New features**
  - Added `undelete_share` on FileShareServiceClient so that users can restore deleted share on share soft delete enabled account. Users can also list deleted shares when `list_shares` by specifying `include_deleted=True`.


  **Fixes**
  - Improve the performance of upload when using max_concurrency



  **Notes**
  - The `StorageUserAgentPolicy` is now replaced with the `UserAgentPolicy` from azure-core. With this, the custom user agents are now added as a prefix instead of being appended.



  **New features**
  - Added support for the 2019-07-07 service version, and added `api_version` parameter to clients.
  - `ShareLeaseClient` was introduced to both sync and async versions of the SDK, which allows users to perform operations on file leases.
  - `failed_handles_count` info was included in `close_handle` and `close_all_handles` result.
  - Added support for obtaining premium file properties in `list_shares` and `get_share_properties`.
  - Added support for additional `start_copy_from_url` parameters - `file_permission`, `permission_key`, `file_attributes`, `file_creation_time`, `file_last_write_time`, `ignore_read_only`, and `set_archive_attribute`.

  **Fixes and improvements**
  - Fixed a bug: `clear_range` API was not working.

  **Fixes**
  - Responses are always decoded as UTF8



  **New features**
  - Added `delete_directory` method to the `share_client`.
  - All the clients now have a `close()` method to close the sockets opened by the client when using without a context manager.

  **Fixes and improvements**
  - Fixes a bug where determining length breaks while uploading a file when provided with an invalid fileno.

  **Breaking changes**
  - `close_handle(handle)` and `close_all_handles()` no longer return int. These functions return a dictionary which has the number of handles closed and number of handles failed to be closed.



  **Important: This package was previously named azure-storage-file**

  Going forward, to use this SDK, please install `azure-storage-file-share`.
  Additionally:
  - The namespace within the package has also been renamed to `azure.storage.fileshare`.
  - `FileServiceClient` has been renamed to `ShareServiceClient`.
  - `DirectoryClient` has been renamed to `ShareDirectoryClient`.
  - `FileClient` has been renamed to `ShareFileClient`.

  **Additional Breaking changes**

  - `ShareClient` now accepts only `account_url` with mandatory a string param `share_name`.
  To use a share_url, the method `from_share_url` must be used.
  - `ShareDirectoryClient` now accepts only `account_url` with mandatory string params `share_name` and `directory_path`.
  To use a directory_url, the method `from_directory_url` must be used.
  - `ShareFileClient` now accepts only `account_url` with mandatory string params `share_name` and
  `file_path`. To use a file_url, the method `from_file_url` must be used.
  - `file_permission_key` parameter has been renamed to `permission_key`
  - `set_share_access_policy` has required parameter `signed_identifiers`.
  - `NoRetry` policy has been removed. Use keyword argument `retry_total=0` for no retries.
  - Removed types that were accidentally exposed from two modules. Only `ShareServiceClient`, `ShareClient`, `ShareDirectoryClient` and `ShareFileClient` should be imported from azure.storage.fileshare.aio
  - Some parameters have become keyword only, rather than positional. Some examples include:
    - `loop`
    - `max_concurrency`
    - `validate_content`
    - `timeout` etc.
  - Client and model files have been made internal. Users should import from the top level modules `azure.storage.fileshare` and `azure.storage.fileshare.aio` only.
  - The `generate_shared_access_signature` methods on each of `ShareServiceClient`, `ShareClient` and `ShareFileClient` have been replaced by module level functions `generate_account_sas`, `generate_share_sas` and `generate_file_sas`.
  - `start_range` and `end_range` params are now renamed to and behave like`offset` and `length` in
  the following APIs:
    - download_file
    - upload_range
    - upload_range_from_url
    - clear_range
    - get_ranges
  - `StorageStreamDownloader` is no longer iterable. To iterate over the file data stream, use `StorageStreamDownloader.chunks`.
  - The public attributes of `StorageStreamDownloader` have been limited to:
    - `name` (str): The name of the file.
    - `path` (str): The full path of the file.
    - `share` (str): The share the file will be downloaded from.
    - `properties` (`FileProperties`): The properties of the file.
    - `size` (int): The size of the download. Either the total file size, or the length of a subsection if specified. Previously called `download_size`.
  - `StorageStreamDownloader` now has new functions:
    - `readall()`: Reads the complete download stream, returning bytes. This replaces the functions `content_as_bytes` and `content_as_text` which have been deprecated.
    - `readinto(stream)`: Download the complete stream into the supplied writable stream, returning the number of bytes written. This replaces the function `download_to_stream` which has been deprecated.
  - `ShareFileClient.close_handles` and `ShareDirectoryClient.close_handles` have both been replaced by two functions each; `close_handle(handle)` and `close_all_handles()`. These functions are blocking and return integers (the number of closed handles) rather than polling objects.
  - `get_service_properties` now returns a dict with keys consistent to `set_service_properties`

  **New features**

  - `ResourceTypes`, `NTFSAttributes`, and `Services` now have method `from_string` which takes parameters as a string.




  **Breaking changes**

  - Permission models.
    - `AccountPermissions`, `SharePermissions` and `FilePermissions` have been renamed to
    `AccountSasPermissions`, `ShareSasPermissions` and `FileSasPermissions` respectively.
    - enum-like list parameters have been removed from all three of them.
    - `__add__` and `__or__` methods are removed.
  - `max_connections` is now renamed to `max_concurrency`.

  **New features**

  - `AccountSasPermissions`, `FileSasPermissions`, `ShareSasPermissions` now have method `from_string` which
  takes parameters as a string.



  **New features**
  - Added upload_range_from_url API to write the bytes from one Azure File endpoint into the specified range of another Azure File endpoint.
  - Added set_http_headers for directory_client, create_permission_for_share and get_permission_for_share APIs.
  - Added optional parameters for smb properties related parameters for create_file*, create_directory* related APIs and set_http_headers API.
  - Updated get_properties for directory and file so that the response has SMB properties.

  **Dependency updates**
  - Adopted [azure-core](https://pypi.org/project/azure-core/) 1.0.0b3
    - If you later want to revert to previous versions of azure-storage-file, or another Azure SDK
    library requiring azure-core 1.0.0b1 or azure-core 1.0.0b2, you must explicitly install
    the specific version of azure-core as well. For example:

    `pip install azure-core==1.0.0b2 azure-storage-file==12.0.0b2`

  **Fixes and improvements**
  - Fix where content-type was being added in the request when not mentioned explicitly.




  **Breaking changes**
  - Renamed `copy_file_from_url` to `start_copy_from_url` and changed behaviour to return a dictionary of copy properties rather than a polling object. Status of the copy operation can be retrieved with the `get_file_properties` operation.
  - Added `abort_copy` operation to the `FileClient` class. This replaces the previous abort operation on the copy status polling operation.
  - The behavior of listing operations has been modified:
      - The previous `marker` parameter has been removed.
      - The iterable response object now supports a `by_page` function that will return a secondary iterator of batches of results. This function supports a `continuation_token` parameter to replace the previous `marker` parameter.
  - The new listing behaviour is also adopted by the `receive_messages` operation:
      - The receive operation returns a message iterator as before.
      - The returned iterator supports a `by_page` operation to receive messages in batches.

  **New features**
  - Added async APIs to subnamespace `azure.storage.file.aio`.
  - Distributed tracing framework OpenCensus is now supported.

  **Dependency updates**
  - Adopted [azure-core](https://pypi.org/project/azure-core/) 1.0.0b2
    - If you later want to revert to azure-storage-file 12.0.0b1, or another Azure SDK
    library requiring azure-core 1.0.0b1, you must explicitly install azure-core
    1.0.0b1 as well. For example:

    `pip install azure-core==1.0.0b1 azure-storage-file==12.0.0b1`

  **Fixes and improvements**
  - Fix for closing file handles - continuation token was not being passed to subsequent calls.
  - General refactor of duplicate and shared code.




  Version 12.0.0b1 is the first preview of our efforts to create a user-friendly and Pythonic client library for Azure Storage Files. For more information about this, and preview releases of other Azure SDK libraries, please visit
  https://aka.ms/azure-sdk-preview1-python.

  **Breaking changes: New API design**
  - Operations are now scoped to a particular client:
      - `FileServiceClient`: This client handles account-level operations. This includes managing service properties and listing the shares within an account.
      - `ShareClient`: The client handles operations for a particular share. This includes creating or deleting that share, as well as listing the directories within that share, and managing properties and metadata.
      - `DirectoryClient`: The client handles operations for a particular directory. This includes creating or deleting that directory, as well as listing the files and subdirectories, and managing properties and metadata.
      - `FileClient`: The client handles operations for a particular file. This includes creating or deleting that file, as well as upload and download data and managing properties.

      These clients can be accessed by navigating down the client hierarchy, or instantiated directly using URLs to the resource (account, share, directory or file).
      For full details on the new API, please see the [reference documentation](https://azure.github.io/azure-sdk-for-python/storage.html#azure-storage-file-share).
  - The copy file operation now returns a polling object that can be used to check the status of the operation, as well as abort the operation.
  - The `close_handles` operation now return a polling object that can be used to check the status of the operation.
  - Download operations now return a streaming object that can download data in multiple ways:
      - Iteration: The streamer is an iterable object that will download and yield the content in chunks. Only supports single threaded download.
      - `content_as_bytes`: Return the entire file content as bytes. Blocking operation that supports multi-threaded download.
      - `content_as_text`: Return the entire file content as decoded text. Blocking operation that supports multi-threaded download.
      - `download_to_stream`: Download the entire content to an open stream handle (e.g. an open file). Supports multi-threaded download.
  - New underlying REST pipeline implementation, based on the new `azure.core` library.
  - Client and pipeline configuration is now available via keyword arguments at both the client level, and per-operation. See reference documentation for a full list of optional configuration arguments.
  - New error hierarchy:
      - All service errors will now use the base type: `azure.core.exceptions.HttpResponseError`
      - The are a couple of specific exception types derived from this base type for common error scenarios:
          - `ResourceNotFoundError`: The resource (e.g. queue, message) could not be found. Commonly a 404 status code.
          - `ResourceExistsError`: A resource conflict - commonly caused when attempting to create a resource that already exists.
          - `ResourceModifiedError`: The resource has been modified (e.g. overwritten) and therefore the current operation is in conflict. Alternatively this may be raised if a condition on the operation is not met.
          - `ClientAuthenticationError`: Authentication failed.
  - Operation `set_file_properties` has been renamed to `set_http_headers`.
  - Operations `get_file_to_<output>` have been replaced with `download_file`. See above for download output options.
  - Operations `create_file_from_<input>` have been replace with `upload_file`.
  - Operations `get_share_acl` and `set_share_acl` have been renamed to `get_share_access_policy` and `set_share_access_policy`.
  - Operation `set_share_properties` has been renamed to `set_share_quota`.
  - Operation `snapshot_share` has been renamed to `create_snapshot`.
  - Operation `copy_file` has been renamed to `copy_file_from_url`.
  - No longer have specific operations for `get_metadata` - use `get_properties` instead.
  - No longer have specific operations for `exists` - use `get_properties` instead.
  - Operation `update_range` has been renamed to `upload_range`.


  - Updated dependency on azure-storage-common.


  - Support for 2018-11-09 REST version. Please see our REST API documentation and blogs for information about the related added features.
  - Added an option to get share stats in bytes.
  - Added support for listing and closing file handles.



  - azure-storage-nspkg is not installed anymore on Python 3 (PEP420-based namespace package)



  - Fixed design flaw where get_file_to_* methods buffer entire file when max_connections is set to 1.



  - Support for 2018-03-28 REST version. Please see our REST API documentation and blog for information about the related added features.



  - Support for 2017-11-09 REST version. Please see our REST API documentation and blog for information about the related added features.



  - Support for 2017-07-29 REST version. Please see our REST API documentation and blogs for information about the related added features.
  - Error message now contains the ErrorCode from the x-ms-error-code header value.



  - The package has switched from Apache 2.0 to the MIT license.
  - Fixed bug where get_file_to_* cannot get a single byte when start_range and end_range are both equal to 0.
  - Metadata keys are now case-preserving when fetched from the service. Previously they were made lower-case by the library.


pkgId: 79c4aa6a4dbd0dab4e78f6516c213261db88ddb5fff21dbde11f00ba621ae2ed
name: python-azure-storage-file-share
arch: src
version: 12.18.0
epoch: 0
release: 1
summary: Microsoft Azure Azure File Share Storage Client Library for Python
url: https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/storage/azure-storage-file-share
rpm_license: MIT License
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-azure-storage-file-share-12.18.0-1.src.rpm
checksum_type: sha256
description:
  Azure File Share storage offers fully managed file shares in the cloud that are accessible via the industry standard [Server Message Block (SMB) protocol](https://docs.microsoft.com/windows/desktop/FileIO/microsoft-smb-protocol-and-cifs-protocol-overview). Azure file shares can be mounted concurrently by cloud or on-premises deployments of Windows, Linux, and macOS. Additionally, Azure file shares can be cached on Windows Servers with Azure File Sync for fast access near where the data is being used.

  Azure file shares can be used to:

  * Replace or supplement on-premises file servers
  * "Lift and shift" applications
  * Simplify cloud development with shared application settings, diagnostic share, and Dev/Test/Debug tools

  [Source code](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/storage/azure-storage-file-share/azure/storage/fileshare)
  | [Package (PyPI)](https://pypi.org/project/azure-storage-file-share/)
  | [Package (Conda)](https://anaconda.org/microsoft/azure-storage/)
  | [API reference documentation](https://aka.ms/azsdk-python-storage-fileshare-ref)
  | [Product documentation](https://docs.microsoft.com/azure/storage/)
  | [Samples](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/storage/azure-storage-file-share/samples)




  * Python 3.8 or later is required to use this package. For more details, please read our page on [Azure SDK for Python version support policy](https://github.com/Azure/azure-sdk-for-python/wiki/Azure-SDKs-Python-version-support-policy).
  * You must have an [Azure subscription](https://azure.microsoft.com/free/) and an
  [Azure storage account](https://docs.microsoft.com/azure/storage/common/storage-account-overview) to use this package.


  Install the Azure Storage File Share client library for Python with [pip](https://pypi.org/project/pip/):

  ```bash
  pip install azure-storage-file-share
  ```


  If you wish to create a new storage account, you can use the
  [Azure Portal](https://docs.microsoft.com/azure/storage/common/storage-quickstart-create-account?tabs=azure-portal),
  [Azure PowerShell](https://docs.microsoft.com/azure/storage/common/storage-quickstart-create-account?tabs=azure-powershell),
  or [Azure CLI](https://docs.microsoft.com/azure/storage/common/storage-quickstart-create-account?tabs=azure-cli):

  ```bash


  az group create --name my-resource-group --location westus2


  az storage account create -n my-storage-account-name -g my-resource-group
  ```


  The Azure Storage File Share client library for Python allows you to interact with four types of resources: the storage
  account itself, file shares, directories, and files. Interaction with these resources starts with an instance of a
  [client](#clients). To create a client object, you will need the storage account's file service URL and a
  credential that allows you to access the storage account:

  ```python
  from azure.storage.fileshare import ShareServiceClient

  service = ShareServiceClient(account_url="https://<my-storage-account-name>.file.core.windows.net/", credential=credential)
  ```


  You can find the storage account's file service URL using the
  [Azure Portal](https://docs.microsoft.com/azure/storage/common/storage-account-overview#storage-account-endpoints),
  [Azure PowerShell](https://docs.microsoft.com/powershell/module/az.storage/get-azstorageaccount),
  or [Azure CLI](https://docs.microsoft.com/cli/azure/storage/account?view=azure-cli-latest#az-storage-account-show):

  ```bash

  az storage account show -n my-storage-account-name -g my-resource-group --query "primaryEndpoints.file"
  ```


  The `credential` parameter may be provided in a number of different forms, depending on the type of
  [authorization](https://docs.microsoft.com/azure/storage/common/storage-auth) you wish to use:
  1. To use a [shared access signature (SAS) token](https://docs.microsoft.com/azure/storage/common/storage-sas-overview),
     provide the token as a string. If your account URL includes the SAS token, omit the credential parameter.
     You can generate a SAS token from the Azure Portal under "Shared access signature" or use one of the `generate_sas()`
     functions to create a sas token for the storage account, share, or file:

      ```python
      from datetime import datetime, timedelta
      from azure.storage.fileshare import ShareServiceClient, generate_account_sas, ResourceTypes, AccountSasPermissions

      sas_token = generate_account_sas(
          account_name="<storage-account-name>",
          account_key="<account-access-key>",
          resource_types=ResourceTypes(service=True),
          permission=AccountSasPermissions(read=True),
          expiry=datetime.utcnow() + timedelta(hours=1)
      )

      share_service_client = ShareServiceClient(account_url="https://<my_account_name>.file.core.windows.net", credential=sas_token)
      ```

  2. To use a storage account [shared key](https://docs.microsoft.com/rest/api/storageservices/authenticate-with-shared-key/)
     (aka account key or access key), provide the key as a string. This can be found in the Azure Portal under the "Access Keys"
     section or by running the following Azure CLI command:

      ```az storage account keys list -g MyResourceGroup -n MyStorageAccount```

      Use the key as the credential parameter to authenticate the client:
      ```python
      from azure.storage.fileshare import ShareServiceClient
      service = ShareServiceClient(account_url="https://<my_account_name>.file.core.windows.net", credential="<account_access_key>")
      ```


  Depending on your use case and authorization method, you may prefer to initialize a client instance with a storage
  connection string instead of providing the account URL and credential separately. To do this, pass the storage
  connection string to the client's `from_connection_string` class method:

  ```python
  from azure.storage.fileshare import ShareServiceClient

  connection_string = "DefaultEndpointsProtocol=https;AccountName=xxxx;AccountKey=xxxx;EndpointSuffix=core.windows.net"
  service = ShareServiceClient.from_connection_string(conn_str=connection_string)
  ```

  The connection string to your storage account can be found in the Azure Portal under the "Access Keys" section or by running the following CLI command:

  ```bash
  az storage account show-connection-string -g MyResourceGroup -n MyStorageAccount
  ```


  The following components make up the Azure File Share Service:
  * The storage account itself
  * A file share within the storage account
  * An optional hierarchy of directories within the file share
  * A file within the file share, which may be up to 1 TiB in size

  The Azure Storage File Share client library for Python allows you to interact with each of these components through the
  use of a dedicated client object.


  This library includes a complete async API supported on Python 3.5+. To use it, you must
  first install an async transport, such as [aiohttp](https://pypi.org/project/aiohttp/).
  See
  [azure-core documentation](https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/core/azure-core/CLIENT_LIBRARY_DEVELOPER.md#transport)
  for more information.

  Async clients and credentials should be closed when they're no longer needed. These
  objects are async context managers and define async `close` methods.


  Four different clients are provided to interact with the various components of the File Share Service:
  1. [ShareServiceClient](https://aka.ms/azsdk-python-storage-fileshare-shareserviceclient) -
      this client represents interaction with the Azure storage account itself, and allows you to acquire preconfigured
      client instances to access the file shares within. It provides operations to retrieve and configure the service
      properties as well as list, create, and delete shares within the account. To perform operations on a specific share,
      retrieve a client using the `get_share_client` method.
  2. [ShareClient](https://aka.ms/azsdk-python-storage-fileshare-shareclient) -
      this client represents interaction with a specific file share (which need not exist yet), and allows you to acquire
      preconfigured client instances to access the directories and files within. It provides operations to create, delete,
      configure, or create snapshots of a share and includes operations to create and enumerate the contents of
      directories within it. To perform operations on a specific directory or file, retrieve a client using the
      `get_directory_client` or `get_file_client` methods.
  3. [ShareDirectoryClient](https://aka.ms/azsdk-python-storage-fileshare-sharedirectoryclient) -
      this client represents interaction with a specific directory (which need not exist yet). It provides operations to
      create, delete, or enumerate the contents of an immediate or nested subdirectory, and includes operations to create
      and delete files within it. For operations relating to a specific subdirectory or file, a client for that entity can
      also be retrieved using the `get_subdirectory_client` and `get_file_client` functions.
  4. [ShareFileClient](https://aka.ms/azsdk-python-storage-fileshare-sharefileclient) -
      this client represents interaction with a specific file (which need not exist yet). It provides operations to
      upload, download, create, delete, and copy a file.

  For details on path naming restrictions, see [Naming and Referencing Shares, Directories, Files, and Metadata](https://docs.microsoft.com/rest/api/storageservices/naming-and-referencing-shares--directories--files--and-metadata).


  The following sections provide several code snippets covering some of the most common Storage File Share tasks, including:

  * [Creating a file share](#creating-a-file-share "Creating a file share")
  * [Uploading a file](#uploading-a-file "Uploading a file")
  * [Downloading a file](#downloading-a-file "Downloading a file")
  * [Listing contents of a directory](#listing-contents-of-a-directory "Listing contents of a directory")


  Create a file share to store your files

  ```python
  from azure.storage.fileshare import ShareClient

  share = ShareClient.from_connection_string(conn_str="<connection_string>", share_name="myshare")
  share.create_share()
  ```

  Use the async client to create a file share

  ```python
  from azure.storage.fileshare.aio import ShareClient

  share = ShareClient.from_connection_string(conn_str="<connection_string>", share_name="myshare")
  await share.create_share()
  ```


  Upload a file to the share

  ```python
  from azure.storage.fileshare import ShareFileClient

  file_client = ShareFileClient.from_connection_string(conn_str="<connection_string>", share_name="myshare", file_path="my_file")

  with open("./SampleSource.txt", "rb") as source_file:
      file_client.upload_file(source_file)
  ```

  Upload a file asynchronously

  ```python
  from azure.storage.fileshare.aio import ShareFileClient

  file_client = ShareFileClient.from_connection_string(conn_str="<connection_string>", share_name="myshare", file_path="my_file")

  with open("./SampleSource.txt", "rb") as source_file:
      await file_client.upload_file(source_file)
  ```


  Download a file from the share

  ```python
  from azure.storage.fileshare import ShareFileClient

  file_client = ShareFileClient.from_connection_string(conn_str="<connection_string>", share_name="myshare", file_path="my_file")

  with open("DEST_FILE", "wb") as file_handle:
      data = file_client.download_file()
      data.readinto(file_handle)
  ```

  Download a file asynchronously

  ```python
  from azure.storage.fileshare.aio import ShareFileClient

  file_client = ShareFileClient.from_connection_string(conn_str="<connection_string>", share_name="myshare", file_path="my_file")

  with open("DEST_FILE", "wb") as file_handle:
      data = await file_client.download_file()
      await data.readinto(file_handle)
  ```


  List all directories and files under a parent directory

  ```python
  from azure.storage.fileshare import ShareDirectoryClient

  parent_dir = ShareDirectoryClient.from_connection_string(conn_str="<connection_string>", share_name="myshare", directory_path="parent_dir")

  my_list = list(parent_dir.list_directories_and_files())
  print(my_list)
  ```

  List contents of a directory asynchronously

  ```python
  from azure.storage.fileshare.aio import ShareDirectoryClient

  parent_dir = ShareDirectoryClient.from_connection_string(conn_str="<connection_string>", share_name="myshare", directory_path="parent_dir")

  my_files = []
  async for item in parent_dir.list_directories_and_files():
      my_files.append(item)
  print(my_files)
  ```



  Optional keyword arguments that can be passed in at the client and per-operation level.



  Use the following keyword arguments when instantiating a client to configure the retry policy:

  * __retry_total__ (int): Total number of retries to allow. Takes precedence over other counts.
  Pass in `retry_total=0` if you do not want to retry on requests. Defaults to 10.
  * __retry_connect__ (int): How many connection-related errors to retry on. Defaults to 3.
  * __retry_read__ (int): How many times to retry on read errors. Defaults to 3.
  * __retry_status__ (int): How many times to retry on bad status codes. Defaults to 3.
  * __retry_to_secondary__ (bool): Whether the request should be retried to secondary, if able.
  This should only be enabled of RA-GRS accounts are used and potentially stale data can be handled.
  Defaults to `False`.



  Other optional configuration keyword arguments that can be specified on the client or per-operation.

  **Client keyword arguments:**

  * __connection_timeout__ (int): The number of seconds the client will wait to establish a connection to the server.
  Defaults to 20 seconds.
  * __read_timeout__ (int): The number of seconds the client will wait, between consecutive read operations, for a
  response from the server. This is a socket level timeout and is not affected by overall data size. Client-side read
  timeouts will be automatically retried. Defaults to 60 seconds.
  * __transport__ (Any): User-provided transport to send the HTTP request.

  **Per-operation keyword arguments:**

  * __raw_response_hook__ (callable): The given callback uses the response returned from the service.
  * __raw_request_hook__ (callable): The given callback uses the request before being sent to service.
  * __client_request_id__ (str): Optional user specified identification of the request.
  * __user_agent__ (str): Appends the custom value to the user-agent header to be sent with the request.
  * __logging_enable__ (bool): Enables logging at the DEBUG level. Defaults to False. Can also be passed in at
  the client level to enable it for all requests.
  * __logging_body__ (bool): Enables logging the request and response body. Defaults to False. Can also be passed in at
  the client level to enable it for all requests.
  * __headers__ (dict): Pass in custom headers as key, value pairs. E.g. `headers={'CustomValue': value}`




  Storage File clients raise exceptions defined in [Azure Core](https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/core/azure-core/README.md).

  This list can be used for reference to catch thrown exceptions. To get the specific error code of the exception, use the `error_code` attribute, i.e, `exception.error_code`.


  This library uses the standard
  [logging](https://docs.python.org/3/library/logging.html) 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.storage.fileshare import ShareServiceClient


  logger = logging.getLogger('azure.storage.fileshare')
  logger.setLevel(logging.DEBUG)


  handler = logging.StreamHandler(stream=sys.stdout)
  logger.addHandler(handler)


  service_client = ShareServiceClient.from_connection_string("your_connection_string", logging_enable=True)
  ```

  Similarly, `logging_enable` can enable detailed logging for a single operation,
  even when it isn't enabled for the client:
  ```python
  service_client.get_service_properties(logging_enable=True)
  ```





  Get started with our [File Share samples](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/storage/azure-storage-file-share/samples).

  Several Storage File Share Python SDK samples are available to you in the SDK's GitHub repository. These samples provide example code for additional scenarios commonly encountered while working with Storage File Share:

  * [file_samples_hello_world.py](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/storage/azure-storage-file-share/samples/file_samples_hello_world.py) ([async version](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/storage/azure-storage-file-share/samples/file_samples_hello_world_async.py)) - Examples found in this article:
      * Client creation
      * Create a file share
      * Upload a file

  * [file_samples_authentication.py](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/storage/azure-storage-file-share/samples/file_samples_authentication.py) ([async version](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/storage/azure-storage-file-share/samples/file_samples_authentication_async.py)) - Examples for authenticating and creating the client:
      * From a connection string
      * From a shared access key
      * From a shared access signature token

  * [file_samples_service.py](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/storage/azure-storage-file-share/samples/file_samples_service.py) ([async version](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/storage/azure-storage-file-share/samples/file_samples_service_async.py)) - Examples for interacting with the file service:
      * Get and set service properties
      * Create, list, and delete shares
      * Get a share client

  * [file_samples_share.py](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/storage/azure-storage-file-share/samples/file_samples_share.py) ([async version](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/storage/azure-storage-file-share/samples/file_samples_share_async.py)) - Examples for interacting with file shares:
      * Create a share snapshot
      * Set share quota and metadata
      * List directories and files
      * Get the directory or file client to interact with a specific entity

  * [file_samples_directory.py](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/storage/azure-storage-file-share/samples/file_samples_directory.py) ([async version](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/storage/azure-storage-file-share/samples/file_samples_directory_async.py)) - Examples for interacting with directories:
      * Create a directory and add files
      * Create and delete subdirectories
      * Get the subdirectory client

  * [file_samples_client.py](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/storage/azure-storage-file-share/samples/file_samples_client.py) ([async version](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/storage/azure-storage-file-share/samples/file_samples_client_async.py)) - Examples for interacting with files:
      * Create, upload, download, and delete files
      * Copy a file from a URL


  For more extensive documentation on Azure File Share storage, see the [Azure File Share storage documentation](https://docs.microsoft.com/azure/storage/files/) on docs.microsoft.com.


  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.







  - Stable release of features from 12.18.0b1




  - Added support for service version 2024-11-04.
  - Added support for Entra ID authentication for all data plane file operations that were previously not enabled.
  - Added support to set `paid_bursting_enabled`, `paid_bursting_bandwidth_mibps`, and `paid_bursting_iops` for Share's
  `create_share` and `set_share_properties` APIs, and also retrieve them on the `get_share_properties` API.
  - Added `file_permission_format` to specify permission format for Share's `create_permission_for_share` and
  `get_permission_for_share` APIs; File's `create_file`, `rename_file`, and `set_http_headers` APIs; and
  Directory's `rename_directory` and `set_http_headers` APIs.


  - Bumped minimum `azure-core` dependency to 1.30.0.




  - Stable release of features from 12.17.0b1




  - Added a more descriptive authorization error message when facing authorization errors.




  - Stable release of features from 12.16.0b1



  This version and all future versions will require Python 3.8+. Python 3.7 is no longer supported.


  - Added `exists` method to `ShareFileClient` to check if a file exists.
  - Added support for service version 2024-05-04.
  - The `services` parameter has been added to the `generate_account_sas` API, which enables the ability to generate SAS
  tokens to be used with multiple services. By default, the SAS token service scope will default to the current service.
  - Added `client_name` property to `Handle`.
  - Added support for `support_rename` to `get_ranges_diff()`


  - Fixed an issue where the `ShareDirectoryClient` returned by `get_subdirectory_client` with a `ShareDirectoryClient`
  pointing to the root of the file share would raise an `InvalidResourceName` on any operations.
  - Bumped dependency of `typing-extensions` to `>=4.6.0` to avoid potential `TypeError` with `typing.TypeVar` on
  Python 3.12.
  - Fixed an issue where authentication errors could raise `AttributeError` instead of `ClientAuthenticationError` when
  using async OAuth credentials.
  - Fixed an issue where parameter `delete_snapshots` to `delete_share` API did not support all possible enums. This change
  makes `delete_snapshots` now accept string literals 'include' and 'include-leased'.
  - Fixed an issue where specifying datetime objects with less than 7 digits of precision as input could incorrectly raise
  `InvalidHeaderValue` due to improper precision parsing.




  - Stable release of features from 12.15.0b1




  - Added support for service version 2023-11-03.
  - Added `audience` as an optional keyword that can be specified on APIs that have a `credential` parameter. This
  keyword only has an effect when the credential provided is of type `TokenCredential`.




  - Fixed an issue when an invalid type was provided for `credential` during client construction, the
  `__str__` of the object would be present in the exception message and therefore potentially logged.




  - Fixed breaking `KeyError: 'sdk_moniker'` in `create_configuration`.
  NOTE: This is not an exported method and therefore should not be imported/called directly.




  - Stable release of features from 12.14.0b1




  - Added support for service versions 2023-05-03 and 2023-08-03.




  - Stable release of features from 12.13.0b1




  - Added support for service version 2023-01-03.
  - Added `access_rights` property to `Handle`.




  - Stable release of features from 12.12.0b1




  - Added support for service version 2022-11-02.
  - Added support for `TokenCredential` to be used for authentication. A `TokenCredential` can be provided for the
  `credential` parameter to any client constructor. **Note:** When using a `TokenCredential`, the new keyword parameter
  `token_intent` is **required** and must be provided. Additionally, this form of authentication is only supported for
  certain operations in the Data Plane SDK.
  - Added support for `allow_trailing_dot` and `allow_source_trailing_dot` on client construction. When
  `allow_trailing_dot` is provided, the service will not silently remove any trailing `.` character from directory/file
  names for all operations made from that client. `allow_source_trailing_dot` will apply this same rule to source files
  when performing a rename or copy operation.




  - Fixed "duplicate type signatures" MyPy error.




  - Stable release of features from 12.11.0b1




  - Added support for service version 2021-12-02.
  - Added support for file and directory paths that contain invalid XML characters. When listing or fetching properties,
  the service will encode illegal characters and the SDK will now automatically decode them.
  - Added support for `AsyncIterable` as data type for async file upload.


  - Fixed an issue where keyword `name_starts_with` was not being passed to the service properly for the `list_shares` async API


  - Removed `msrest` dependency.
  - Added `typing-extensions>=4.0.1` as a dependency.
  - Added `isodate>=0.6.1` as a dependency.
  - Added extra dependency `aio` for installing optional async dependencies. Use `pip install azure-storage-file-share[aio]` to install.




  - Fixed possible `ValueError` for invalid content range that gets raised when downloading empty files through Azurite.




  - Stable release of features from 12.10.0b1.


  - Fixed an issue where calling `download_file` with an invalid base64-encoded account key would raise an
  `AttributeError` rather than the proper `AzureSigningError`.


  - Changed the default value for `read_timeout` to 60 seconds for all clients.



  This version and all future versions will require Python 3.7+. Python 3.6 is no longer supported.


  - Added support for `AzureNamedKeyCredential` as a valid `credential` type.




  - Stable release of features from 12.9.0b1.
  - Added support for progress tracking to `upload_file()` and `download_file()` via a new optional callback, `progress_hook`.




  - Added support for `file_change_time` to `start_copy_from_url` API




  - Stable release of features from 12.8.0b1.


  - Fixed a bug, introduced in the previous beta release, that caused Authentication errors when attempting to use
  an Account SAS with certain service level operations.




  - Added support for service version 2021-06-08.
  - Added support for missing parameters on `create_directory()` including `file_attributes`, `file_creation_time`,
  `file_last_write_time`, `file_permission` and `file_permission_key`.
  - Added support for setting `content_type` on `rename_file()`.
  - Added support for setting `file_change_time` on `create_directory()`, `set_http_headers()` (directory)
  `rename_directory()`, `create_file()`, `set_http_headers()` (file) and `rename_file()`.
  - Added support for setting `file_last_write_mode` on `upload_range()` and `upload_range_from_url()`
  with possible values of `Now` or `Preserve`.


  - Updated `create_share()` docstring to have the correct return-type of `None`



  This version and all future versions will require Python 3.6+. Python 2.7 is no longer supported.


  - Added support for service version 2021-02-12, 2021-04-10.
  - Added support for premium file share provisioned_bandwidth property.
  - Added support for checking if a directory exists using `exists()`.
  - Added support for `rename_directory()` and `rename_file()`.
  - Added support for `Create (c)` SAS permission for Share SAS.


  - Fixed a bug where `start_copy_from_url()` was not sending the `ignore_read_only` parameter correctly.



  This version and all future versions will require Python 3.6+. Python 2.7 is no longer supported.


  - Added support for service version 2021-04-10.
  - Added support for `rename_directory()` and `rename_file()`.
  - Added support for `Create (c)` SAS permission for Share SAS.


  - Update `azure-core` dependency to avoid inconsistent dependencies from being installed.
  - Fixed a bug, that was introduced in the previous beta release, where `generate_account_sas()`
  was not generating the proper SAS signature.




  - Added support for service version 2021-02-12.
  - Added support for premium file share provisioned_bandwidth property.
  - Added support for checking if a directory exists using `exists()`.


  **Stable release of preview features**
  - Added support for service version 2020-10-02 (STG78)
  - Added OAuth support for file copy source.


  **New features**
  - Added OAuth support for file copy source.

  **Fixes**
  - Ensured that download fails if file modified mid download


  **New features**
  - Added support for lease operation on a share, eg. acquire_lease


  **New features**
  - Added support for lease operation on a share, eg. acquire_lease


  **Fixes**
  - Make `AccountName`, `AccountKey` etc. in conn_str case insensitive
  - Fixed `downloader.chunks()` return chunks in different size (#9419, #15648)
  - Fixed unclosed `ThreadPoolExecutor` (#8955)


  **Fixes**
  - Fixed msrest dependency issue (#16250)


  **Stable release of preview features**
  - Added support for enabling root squash and share protocols for file share.
  - Added support for `AzureSasCredential` to allow SAS rotation in long living clients.


  **New features**
  - Added support for enabling root squash and share protocols for file share.



  **Stable release of preview features**
  - Preview feature enabling SMB Multichannel for the share service.
  - Preview feature `get_ranges` on ShareFileClient

  **New features**
  - Added `set_share_properties` which allows setting share tier.

  **Notes**
  - Updated dependency `azure-core` from  azure-core<2.0.0,>=1.2.2 to azure-core<2.0.0,>=1.9.0 to get continuation_token attr on AzureError.


  **New features**
  - Added support for enabling SMB Multichannel for the share service.
  - Added support for leasing a share.
  - Added support for getting the range diff between current file and a snapshot as well as getting the diff between two file snapshots.



  **Stable release of preview features**
  - Preview feature `undelete_share` on FileShareServiceClient.


  **New features**
  - Added `undelete_share` on FileShareServiceClient so that users can restore deleted share on share soft delete enabled account. Users can also list deleted shares when `list_shares` by specifying `include_deleted=True`.


  **Fixes**
  - Improve the performance of upload when using max_concurrency



  **Notes**
  - The `StorageUserAgentPolicy` is now replaced with the `UserAgentPolicy` from azure-core. With this, the custom user agents are now added as a prefix instead of being appended.



  **New features**
  - Added support for the 2019-07-07 service version, and added `api_version` parameter to clients.
  - `ShareLeaseClient` was introduced to both sync and async versions of the SDK, which allows users to perform operations on file leases.
  - `failed_handles_count` info was included in `close_handle` and `close_all_handles` result.
  - Added support for obtaining premium file properties in `list_shares` and `get_share_properties`.
  - Added support for additional `start_copy_from_url` parameters - `file_permission`, `permission_key`, `file_attributes`, `file_creation_time`, `file_last_write_time`, `ignore_read_only`, and `set_archive_attribute`.

  **Fixes and improvements**
  - Fixed a bug: `clear_range` API was not working.

  **Fixes**
  - Responses are always decoded as UTF8



  **New features**
  - Added `delete_directory` method to the `share_client`.
  - All the clients now have a `close()` method to close the sockets opened by the client when using without a context manager.

  **Fixes and improvements**
  - Fixes a bug where determining length breaks while uploading a file when provided with an invalid fileno.

  **Breaking changes**
  - `close_handle(handle)` and `close_all_handles()` no longer return int. These functions return a dictionary which has the number of handles closed and number of handles failed to be closed.



  **Important: This package was previously named azure-storage-file**

  Going forward, to use this SDK, please install `azure-storage-file-share`.
  Additionally:
  - The namespace within the package has also been renamed to `azure.storage.fileshare`.
  - `FileServiceClient` has been renamed to `ShareServiceClient`.
  - `DirectoryClient` has been renamed to `ShareDirectoryClient`.
  - `FileClient` has been renamed to `ShareFileClient`.

  **Additional Breaking changes**

  - `ShareClient` now accepts only `account_url` with mandatory a string param `share_name`.
  To use a share_url, the method `from_share_url` must be used.
  - `ShareDirectoryClient` now accepts only `account_url` with mandatory string params `share_name` and `directory_path`.
  To use a directory_url, the method `from_directory_url` must be used.
  - `ShareFileClient` now accepts only `account_url` with mandatory string params `share_name` and
  `file_path`. To use a file_url, the method `from_file_url` must be used.
  - `file_permission_key` parameter has been renamed to `permission_key`
  - `set_share_access_policy` has required parameter `signed_identifiers`.
  - `NoRetry` policy has been removed. Use keyword argument `retry_total=0` for no retries.
  - Removed types that were accidentally exposed from two modules. Only `ShareServiceClient`, `ShareClient`, `ShareDirectoryClient` and `ShareFileClient` should be imported from azure.storage.fileshare.aio
  - Some parameters have become keyword only, rather than positional. Some examples include:
    - `loop`
    - `max_concurrency`
    - `validate_content`
    - `timeout` etc.
  - Client and model files have been made internal. Users should import from the top level modules `azure.storage.fileshare` and `azure.storage.fileshare.aio` only.
  - The `generate_shared_access_signature` methods on each of `ShareServiceClient`, `ShareClient` and `ShareFileClient` have been replaced by module level functions `generate_account_sas`, `generate_share_sas` and `generate_file_sas`.
  - `start_range` and `end_range` params are now renamed to and behave like`offset` and `length` in
  the following APIs:
    - download_file
    - upload_range
    - upload_range_from_url
    - clear_range
    - get_ranges
  - `StorageStreamDownloader` is no longer iterable. To iterate over the file data stream, use `StorageStreamDownloader.chunks`.
  - The public attributes of `StorageStreamDownloader` have been limited to:
    - `name` (str): The name of the file.
    - `path` (str): The full path of the file.
    - `share` (str): The share the file will be downloaded from.
    - `properties` (`FileProperties`): The properties of the file.
    - `size` (int): The size of the download. Either the total file size, or the length of a subsection if specified. Previously called `download_size`.
  - `StorageStreamDownloader` now has new functions:
    - `readall()`: Reads the complete download stream, returning bytes. This replaces the functions `content_as_bytes` and `content_as_text` which have been deprecated.
    - `readinto(stream)`: Download the complete stream into the supplied writable stream, returning the number of bytes written. This replaces the function `download_to_stream` which has been deprecated.
  - `ShareFileClient.close_handles` and `ShareDirectoryClient.close_handles` have both been replaced by two functions each; `close_handle(handle)` and `close_all_handles()`. These functions are blocking and return integers (the number of closed handles) rather than polling objects.
  - `get_service_properties` now returns a dict with keys consistent to `set_service_properties`

  **New features**

  - `ResourceTypes`, `NTFSAttributes`, and `Services` now have method `from_string` which takes parameters as a string.




  **Breaking changes**

  - Permission models.
    - `AccountPermissions`, `SharePermissions` and `FilePermissions` have been renamed to
    `AccountSasPermissions`, `ShareSasPermissions` and `FileSasPermissions` respectively.
    - enum-like list parameters have been removed from all three of them.
    - `__add__` and `__or__` methods are removed.
  - `max_connections` is now renamed to `max_concurrency`.

  **New features**

  - `AccountSasPermissions`, `FileSasPermissions`, `ShareSasPermissions` now have method `from_string` which
  takes parameters as a string.



  **New features**
  - Added upload_range_from_url API to write the bytes from one Azure File endpoint into the specified range of another Azure File endpoint.
  - Added set_http_headers for directory_client, create_permission_for_share and get_permission_for_share APIs.
  - Added optional parameters for smb properties related parameters for create_file*, create_directory* related APIs and set_http_headers API.
  - Updated get_properties for directory and file so that the response has SMB properties.

  **Dependency updates**
  - Adopted [azure-core](https://pypi.org/project/azure-core/) 1.0.0b3
    - If you later want to revert to previous versions of azure-storage-file, or another Azure SDK
    library requiring azure-core 1.0.0b1 or azure-core 1.0.0b2, you must explicitly install
    the specific version of azure-core as well. For example:

    `pip install azure-core==1.0.0b2 azure-storage-file==12.0.0b2`

  **Fixes and improvements**
  - Fix where content-type was being added in the request when not mentioned explicitly.




  **Breaking changes**
  - Renamed `copy_file_from_url` to `start_copy_from_url` and changed behaviour to return a dictionary of copy properties rather than a polling object. Status of the copy operation can be retrieved with the `get_file_properties` operation.
  - Added `abort_copy` operation to the `FileClient` class. This replaces the previous abort operation on the copy status polling operation.
  - The behavior of listing operations has been modified:
      - The previous `marker` parameter has been removed.
      - The iterable response object now supports a `by_page` function that will return a secondary iterator of batches of results. This function supports a `continuation_token` parameter to replace the previous `marker` parameter.
  - The new listing behaviour is also adopted by the `receive_messages` operation:
      - The receive operation returns a message iterator as before.
      - The returned iterator supports a `by_page` operation to receive messages in batches.

  **New features**
  - Added async APIs to subnamespace `azure.storage.file.aio`.
  - Distributed tracing framework OpenCensus is now supported.

  **Dependency updates**
  - Adopted [azure-core](https://pypi.org/project/azure-core/) 1.0.0b2
    - If you later want to revert to azure-storage-file 12.0.0b1, or another Azure SDK
    library requiring azure-core 1.0.0b1, you must explicitly install azure-core
    1.0.0b1 as well. For example:

    `pip install azure-core==1.0.0b1 azure-storage-file==12.0.0b1`

  **Fixes and improvements**
  - Fix for closing file handles - continuation token was not being passed to subsequent calls.
  - General refactor of duplicate and shared code.




  Version 12.0.0b1 is the first preview of our efforts to create a user-friendly and Pythonic client library for Azure Storage Files. For more information about this, and preview releases of other Azure SDK libraries, please visit
  https://aka.ms/azure-sdk-preview1-python.

  **Breaking changes: New API design**
  - Operations are now scoped to a particular client:
      - `FileServiceClient`: This client handles account-level operations. This includes managing service properties and listing the shares within an account.
      - `ShareClient`: The client handles operations for a particular share. This includes creating or deleting that share, as well as listing the directories within that share, and managing properties and metadata.
      - `DirectoryClient`: The client handles operations for a particular directory. This includes creating or deleting that directory, as well as listing the files and subdirectories, and managing properties and metadata.
      - `FileClient`: The client handles operations for a particular file. This includes creating or deleting that file, as well as upload and download data and managing properties.

      These clients can be accessed by navigating down the client hierarchy, or instantiated directly using URLs to the resource (account, share, directory or file).
      For full details on the new API, please see the [reference documentation](https://azure.github.io/azure-sdk-for-python/storage.html#azure-storage-file-share).
  - The copy file operation now returns a polling object that can be used to check the status of the operation, as well as abort the operation.
  - The `close_handles` operation now return a polling object that can be used to check the status of the operation.
  - Download operations now return a streaming object that can download data in multiple ways:
      - Iteration: The streamer is an iterable object that will download and yield the content in chunks. Only supports single threaded download.
      - `content_as_bytes`: Return the entire file content as bytes. Blocking operation that supports multi-threaded download.
      - `content_as_text`: Return the entire file content as decoded text. Blocking operation that supports multi-threaded download.
      - `download_to_stream`: Download the entire content to an open stream handle (e.g. an open file). Supports multi-threaded download.
  - New underlying REST pipeline implementation, based on the new `azure.core` library.
  - Client and pipeline configuration is now available via keyword arguments at both the client level, and per-operation. See reference documentation for a full list of optional configuration arguments.
  - New error hierarchy:
      - All service errors will now use the base type: `azure.core.exceptions.HttpResponseError`
      - The are a couple of specific exception types derived from this base type for common error scenarios:
          - `ResourceNotFoundError`: The resource (e.g. queue, message) could not be found. Commonly a 404 status code.
          - `ResourceExistsError`: A resource conflict - commonly caused when attempting to create a resource that already exists.
          - `ResourceModifiedError`: The resource has been modified (e.g. overwritten) and therefore the current operation is in conflict. Alternatively this may be raised if a condition on the operation is not met.
          - `ClientAuthenticationError`: Authentication failed.
  - Operation `set_file_properties` has been renamed to `set_http_headers`.
  - Operations `get_file_to_<output>` have been replaced with `download_file`. See above for download output options.
  - Operations `create_file_from_<input>` have been replace with `upload_file`.
  - Operations `get_share_acl` and `set_share_acl` have been renamed to `get_share_access_policy` and `set_share_access_policy`.
  - Operation `set_share_properties` has been renamed to `set_share_quota`.
  - Operation `snapshot_share` has been renamed to `create_snapshot`.
  - Operation `copy_file` has been renamed to `copy_file_from_url`.
  - No longer have specific operations for `get_metadata` - use `get_properties` instead.
  - No longer have specific operations for `exists` - use `get_properties` instead.
  - Operation `update_range` has been renamed to `upload_range`.


  - Updated dependency on azure-storage-common.


  - Support for 2018-11-09 REST version. Please see our REST API documentation and blogs for information about the related added features.
  - Added an option to get share stats in bytes.
  - Added support for listing and closing file handles.



  - azure-storage-nspkg is not installed anymore on Python 3 (PEP420-based namespace package)



  - Fixed design flaw where get_file_to_* methods buffer entire file when max_connections is set to 1.



  - Support for 2018-03-28 REST version. Please see our REST API documentation and blog for information about the related added features.



  - Support for 2017-11-09 REST version. Please see our REST API documentation and blog for information about the related added features.



  - Support for 2017-07-29 REST version. Please see our REST API documentation and blogs for information about the related added features.
  - Error message now contains the ErrorCode from the x-ms-error-code header value.



  - The package has switched from Apache 2.0 to the MIT license.
  - Fixed bug where get_file_to_* cannot get a single byte when start_range and end_range are both equal to 0.
  - Metadata keys are now case-preserving when fetched from the service. Previously they were made lower-case by the library.


pkgId: 42ea6550128dd0e1946164413b22bf3d24a6bc403acd9d19ffe91ece97be990c
name: python-azure-storage-logging
arch: src
version: 0.5.1
epoch: 0
release: 1
summary: Logging handlers to send logs to Microsoft Azure Storage
url: https://github.com/michiya/azure-storage-logging
rpm_license: Apache License 2.0
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-azure-storage-logging-0.5.1-1.src.rpm
checksum_type: sha256
description:
  *azure-storage-logging* provides functionality to send output from
  the standard Python logging APIs to Microsoft Azure Storage.


pkgId: c7ae550ffb4d74bfcc09a99ed3cf581b760485c03cdd6b7a3f44a9b856ab00f9
name: python-azure-storage-nspkg
arch: src
version: 3.1.0
epoch: 0
release: 1
summary: Microsoft Azure Storage Namespace Package [Internal]
url: https://github.com/Azure/azure-storage-python
rpm_license: MIT License
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-azure-storage-nspkg-3.1.0-1.src.rpm
checksum_type: sha256
description:
  This is the Microsoft Azure Storage namespace package.
  This package is not intended to be installed directly by the end user.
  It provides the necessary files for other packages to extend the azure.storage namespace.
  If you are looking to install the Azure Storage libraries, see the
  `azure <https://pypi.python.org/pypi/azure>`__ bundle package.


pkgId: 496daa70842aaa090852bcad028de8f48ec8e328c943900416221fef17e3514b
name: python-azure-storage-queue
arch: src
version: 12.11.0
epoch: 0
release: 1
summary: Microsoft Azure Azure Queue Storage Client Library for Python
url: https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/storage/azure-storage-queue
rpm_license: MIT License
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-azure-storage-queue-12.11.0-1.src.rpm
checksum_type: sha256
description:
  Azure Queue storage is a service for storing large numbers of messages that can be accessed from anywhere in the world via authenticated calls using HTTP or HTTPS. A single queue message can be up to 64 KiB in size, and a queue can contain millions of messages, up to the total capacity limit of a storage account.

  Common uses of Queue storage include:

  * Creating a backlog of work to process asynchronously
  * Passing messages between different parts of a distributed application

  [Source code](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/storage/azure-storage-queue/azure/storage/queue)
  | [Package (PyPI)](https://pypi.org/project/azure-storage-queue/)
  | [Package (Conda)](https://anaconda.org/microsoft/azure-storage/)
  | [API reference documentation](https://aka.ms/azsdk-python-storage-queue-ref)
  | [Product documentation](https://docs.microsoft.com/azure/storage/)
  | [Samples](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/storage/azure-storage-queue/samples)




  * Python 3.8 or later is required to use this package. For more details, please read our page on [Azure SDK for Python version support policy](https://github.com/Azure/azure-sdk-for-python/wiki/Azure-SDKs-Python-version-support-policy).
  * You must have an [Azure subscription](https://azure.microsoft.com/free/) and an
  [Azure storage account](https://docs.microsoft.com/azure/storage/common/storage-account-overview) to use this package.


  Install the Azure Storage Queues client library for Python with [pip](https://pypi.org/project/pip/):

  ```bash
  pip install azure-storage-queue
  ```


  If you wish to create a new storage account, you can use the
  [Azure Portal](https://docs.microsoft.com/azure/storage/common/storage-quickstart-create-account?tabs=azure-portal),
  [Azure PowerShell](https://docs.microsoft.com/azure/storage/common/storage-quickstart-create-account?tabs=azure-powershell),
  or [Azure CLI](https://docs.microsoft.com/azure/storage/common/storage-quickstart-create-account?tabs=azure-cli):

  ```bash


  az group create --name my-resource-group --location westus2


  az storage account create -n my-storage-account-name -g my-resource-group
  ```


  The Azure Storage Queues client library for Python allows you to interact with three types of resources: the storage
  account itself, queues, and messages. Interaction with these resources starts with an instance of a [client](#clients).
  To create a client object, you will need the storage account's queue service endpoint URL and a credential that allows
  you to access the storage account:

  ```python
  from azure.storage.queue import QueueServiceClient

  service = QueueServiceClient(account_url="https://<my-storage-account-name>.queue.core.windows.net/", credential=credential)
  ```


  You can find the storage account's queue service URL using the
  [Azure Portal](https://docs.microsoft.com/azure/storage/common/storage-account-overview#storage-account-endpoints),
  [Azure PowerShell](https://docs.microsoft.com/powershell/module/az.storage/get-azstorageaccount),
  or [Azure CLI](https://docs.microsoft.com/cli/azure/storage/account?view=azure-cli-latest#az-storage-account-show):

  ```bash

  az storage account show -n my-storage-account-name -g my-resource-group --query "primaryEndpoints.queue"
  ```


  The `credential` parameter may be provided in a number of different forms, depending on the type of
  [authorization](https://docs.microsoft.com/azure/storage/common/storage-auth) you wish to use:
  1. To use a [shared access signature (SAS) token](https://docs.microsoft.com/azure/storage/common/storage-sas-overview),
     provide the token as a string. If your account URL includes the SAS token, omit the credential parameter.
     You can generate a SAS token from the Azure Portal under "Shared access signature" or use one of the `generate_sas()`
     functions to create a sas token for the storage account or queue:

      ```python
      from datetime import datetime, timedelta
      from azure.storage.queue import QueueServiceClient, generate_account_sas, ResourceTypes, AccountSasPermissions

      sas_token = generate_account_sas(
          account_name="<storage-account-name>",
          account_key="<account-access-key>",
          resource_types=ResourceTypes(service=True),
          permission=AccountSasPermissions(read=True),
          start=datetime.utcnow(),
          expiry=datetime.utcnow() + timedelta(hours=1)
      )

      queue_service_client = QueueServiceClient(account_url="https://<my_account_name>.queue.core.windows.net", credential=sas_token)
      ```

  2. To use a storage account [shared key](https://docs.microsoft.com/rest/api/storageservices/authenticate-with-shared-key/)
     (aka account key or access key), provide the key as a string. This can be found in the Azure Portal under the "Access Keys"
     section or by running the following Azure CLI command:

      ```az storage account keys list -g MyResourceGroup -n MyStorageAccount```

      Use the key as the credential parameter to authenticate the client:
      ```python
      from azure.storage.queue import QueueServiceClient
      service = QueueServiceClient(account_url="https://<my_account_name>.queue.core.windows.net", credential="<account_access_key>")
      ```

  3. To use an [Azure Active Directory (AAD) token credential](https://docs.microsoft.com/azure/storage/common/storage-auth-aad),
     provide an instance of the desired credential type obtained from the
     [azure-identity](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/identity/azure-identity#credentials) library.
     For example, [DefaultAzureCredential](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/identity/azure-identity#defaultazurecredential)
     can be used to authenticate the client.

     This requires some initial setup:
     * [Install azure-identity](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/identity/azure-identity#install-the-package)
     * [Register a new AAD application](https://docs.microsoft.com/azure/active-directory/develop/quickstart-register-app) and give permissions to access Azure Storage
     * [Grant access](https://docs.microsoft.com/azure/storage/common/storage-auth-aad-rbac-portal) to Azure Queue data with RBAC in the Azure Portal
     * Set the values of the client ID, tenant ID, and client secret of the AAD application as environment variables:
       AZURE_TENANT_ID, AZURE_CLIENT_ID, AZURE_CLIENT_SECRET

     Use the returned token credential to authenticate the client:
      ```python
          from azure.identity import DefaultAzureCredential
          from azure.storage.queue import QueueServiceClient
          token_credential = DefaultAzureCredential()

          queue_service_client = QueueServiceClient(
              account_url="https://<my_account_name>.queue.core.windows.net",
              credential=token_credential
          )
      ```


  Depending on your use case and authorization method, you may prefer to initialize a client instance with a storage
  connection string instead of providing the account URL and credential separately. To do this, pass the storage
  connection string to the client's `from_connection_string` class method:

  ```python
  from azure.storage.queue import QueueServiceClient

  connection_string = "DefaultEndpointsProtocol=https;AccountName=xxxx;AccountKey=xxxx;EndpointSuffix=core.windows.net"
  service = QueueServiceClient.from_connection_string(conn_str=connection_string)
  ```

  The connection string to your storage account can be found in the Azure Portal under the "Access Keys" section or by running the following CLI command:

  ```bash
  az storage account show-connection-string -g MyResourceGroup -n MyStorageAccount
  ```


  The following components make up the Azure Queue Service:
  * The storage account itself
  * A queue within the storage account, which contains a set of messages
  * A message within a queue, in any format, of up to 64 KiB

  The Azure Storage Queues client library for Python allows you to interact with each of these components through the
  use of a dedicated client object.


  This library includes a complete async API supported on Python 3.5+. To use it, you must
  first install an async transport, such as [aiohttp](https://pypi.org/project/aiohttp/).
  See
  [azure-core documentation](https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/core/azure-core/CLIENT_LIBRARY_DEVELOPER.md#transport)
  for more information.

  Async clients and credentials should be closed when they're no longer needed. These
  objects are async context managers and define async `close` methods.


  Two different clients are provided to interact with the various components of the Queue Service:
  1. [QueueServiceClient](https://aka.ms/azsdk-python-storage-queue-queueserviceclient) -
      this client represents interaction with the Azure storage account itself, and allows you to acquire preconfigured
      client instances to access the queues within. It provides operations to retrieve and configure the account
      properties as well as list, create, and delete queues within the account. To perform operations on a specific queue,
      retrieve a client using the `get_queue_client` method.
  2. [QueueClient](https://aka.ms/azsdk-python-storage-queue-queueclient) -
      this client represents interaction with a specific queue (which need not exist yet). It provides operations to
      create, delete, or configure a queue and includes operations to send, receive, peek, delete, and update messages
      within it.


  * **Send** - Adds a message to the queue and optionally sets a visibility timeout for the message.
  * **Receive** - Retrieves a message from the queue and makes it invisible to other consumers.
  * **Peek** - Retrieves a message from the front of the queue, without changing the message visibility.
  * **Update** - Updates the visibility timeout of a message and/or the message contents.
  * **Delete** - Deletes a specified message from the queue.
  * **Clear** - Clears all messages from the queue.




  The following sections provide several code snippets covering some of the most common Storage Queue tasks, including:

  * [Creating a queue](#creating-a-queue "Creating a queue")
  * [Sending messages](#sending-messages "Sending messages")
  * [Receiving messages](#receiving-messages "Receiving messages")


  Create a queue in your storage account

  ```python
  from azure.storage.queue import QueueClient

  queue = QueueClient.from_connection_string(conn_str="<connection_string>", queue_name="myqueue")
  queue.create_queue()
  ```

  Use the async client to create a queue
  ```python
  from azure.storage.queue.aio import QueueClient

  queue = QueueClient.from_connection_string(conn_str="<connection_string>", queue_name="myqueue")
  await queue.create_queue()
  ```


  Send messages to your queue

  ```python
  from azure.storage.queue import QueueClient

  queue = QueueClient.from_connection_string(conn_str="<connection_string>", queue_name="myqueue")
  queue.send_message("I'm using queues!")
  queue.send_message("This is my second message")
  ```

  Send messages asynchronously

  ```python
  import asyncio
  from azure.storage.queue.aio import QueueClient

  queue = QueueClient.from_connection_string(conn_str="<connection_string>", queue_name="myqueue")
  await asyncio.gather(
      queue.send_message("I'm using queues!"),
      queue.send_message("This is my second message")
  )
  ```


  Receive and process messages from your queue

  ```python
  from azure.storage.queue import QueueClient

  queue = QueueClient.from_connection_string(conn_str="<connection_string>", queue_name="myqueue")
  response = queue.receive_messages()

  for message in response:
      print(message.content)
      queue.delete_message(message)




  ```

  Receive and process messages in batches

  ```python
  from azure.storage.queue import QueueClient

  queue = QueueClient.from_connection_string(conn_str="<connection_string>", queue_name="myqueue")
  response = queue.receive_messages(messages_per_page=10)

  for message_batch in response.by_page():
      for message in message_batch:
          print(message.content)
          queue.delete_message(message)
  ```

  Receive and process messages asynchronously

  ```python
  from azure.storage.queue.aio import QueueClient

  queue = QueueClient.from_connection_string(conn_str="<connection_string>", queue_name="myqueue")
  response = queue.receive_messages()

  async for message in response:
      print(message.content)
      await queue.delete_message(message)
  ```



  Optional keyword arguments that can be passed in at the client and per-operation level.



  Use the following keyword arguments when instantiating a client to configure the retry policy:

  * __retry_total__ (int): Total number of retries to allow. Takes precedence over other counts.
  Pass in `retry_total=0` if you do not want to retry on requests. Defaults to 10.
  * __retry_connect__ (int): How many connection-related errors to retry on. Defaults to 3.
  * __retry_read__ (int): How many times to retry on read errors. Defaults to 3.
  * __retry_status__ (int): How many times to retry on bad status codes. Defaults to 3.
  * __retry_to_secondary__ (bool): Whether the request should be retried to secondary, if able.
  This should only be enabled of RA-GRS accounts are used and potentially stale data can be handled.
  Defaults to `False`.



  Other optional configuration keyword arguments that can be specified on the client or per-operation.

  **Client keyword arguments:**

  * __connection_timeout__ (int): The number of seconds the client will wait to establish a connection to the server.
  Defaults to 20 seconds.
  * __read_timeout__ (int): The number of seconds the client will wait, between consecutive read operations, for a
  response from the server. This is a socket level timeout and is not affected by overall data size. Client-side read
  timeouts will be automatically retried. Defaults to 60 seconds.
  * __transport__ (Any): User-provided transport to send the HTTP request.

  **Per-operation keyword arguments:**

  * __raw_response_hook__ (callable): The given callback uses the response returned from the service.
  * __raw_request_hook__ (callable): The given callback uses the request before being sent to service.
  * __client_request_id__ (str): Optional user specified identification of the request.
  * __user_agent__ (str): Appends the custom value to the user-agent header to be sent with the request.
  * __logging_enable__ (bool): Enables logging at the DEBUG level. Defaults to False. Can also be passed in at
  the client level to enable it for all requests.
  * __logging_body__ (bool): Enables logging the request and response body. Defaults to False. Can also be passed in at
  the client level to enable it for all requests.
  * __headers__ (dict): Pass in custom headers as key, value pairs. E.g. `headers={'CustomValue': value}`




  Storage Queue clients raise exceptions defined in [Azure Core](https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/core/azure-core/README.md).

  This list can be used for reference to catch thrown exceptions. To get the specific error code of the exception, use the `error_code` attribute, i.e, `exception.error_code`.


  This library uses the standard
  [logging](https://docs.python.org/3/library/logging.html) 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.storage.queue import QueueServiceClient


  logger = logging.getLogger('azure.storage.queue')
  logger.setLevel(logging.DEBUG)


  handler = logging.StreamHandler(stream=sys.stdout)
  logger.addHandler(handler)


  service_client = QueueServiceClient.from_connection_string("your_connection_string", logging_enable=True)
  ```

  Similarly, `logging_enable` can enable detailed logging for a single operation,
  even when it isn't enabled for the client:
  ```python
  service_client.get_service_stats(logging_enable=True)
  ```




  Get started with our [Queue samples](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/storage/azure-storage-queue/samples).

  Several Storage Queues Python SDK samples are available to you in the SDK's GitHub repository. These samples provide example code for additional scenarios commonly encountered while working with Storage Queues:

  * [queue_samples_hello_world.py](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/storage/azure-storage-queue/samples/queue_samples_hello_world.py) ([async version](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/storage/azure-storage-queue/samples/queue_samples_hello_world_async.py)) - Examples found in this article:
      * Client creation
      * Create a queue
      * Send messages
      * Receive messages

  * [queue_samples_authentication.py](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/storage/azure-storage-queue/samples/queue_samples_authentication.py) ([async version](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/storage/azure-storage-queue/samples/queue_samples_authentication_async.py)) - Examples for authenticating and creating the client:
      * From a connection string
      * From a shared access key
      * From a shared access signature token
      * From Azure Active Directory

  * [queue_samples_service.py](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/storage/azure-storage-queue/samples/queue_samples_service.py) ([async version](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/storage/azure-storage-queue/samples/queue_samples_service_async.py)) - Examples for interacting with the queue service:
      * Get and set service properties
      * List queues in a storage account
      * Create and delete a queue from the service
      * Get the QueueClient

  * [queue_samples_message.py](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/storage/azure-storage-queue/samples/queue_samples_message.py) ([async version](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/storage/azure-storage-queue/samples/queue_samples_message_async.py)) - Examples for working with queues and messages:
      * Set an access policy
      * Get and set queue metadata
      * Send and receive messages
      * Delete specified messages and clear all messages
      * Peek and update messages


  For more extensive documentation on Azure Queue storage, see the [Azure Queue storage documentation](https://docs.microsoft.com/azure/storage/queues/) on docs.microsoft.com.


  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.







  - Stable release of features from 12.11.0b1




  - Updated OAuth implementation to use the AAD scope returned in a Bearer challenge.
  - Fixed an issue where client specified service versions may be ignored.




  - Stable release of features from 12.10.0b1



  This version and all future versions will require Python 3.8+. Python 3.7 is no longer supported.


  - The `services` parameter has been added to the `generate_account_sas` API, which enables the ability to generate SAS
  tokens to be used with multiple services. By default, the SAS token service scope will default to the current service.


  - Bumped dependency of `typing-extensions` to `>=4.6.0` to avoid potential `TypeError` with `typing.TypeVar` on
  Python 3.12.
  - Fixed an issue where authentication errors could raise `AttributeError` instead of `ClientAuthenticationError` when
  using async OAuth credentials.




  - Updated type hints across the entire package and enabled MyPy to run during CI. Some public types may have been adjusted if they were previously erroneous or incomplete.




  - Stable release of features from 12.18.0b1




  - Added `audience` as an optional keyword that can be specified on APIs that have a `credential` parameter. This
  keyword only has an effect when the credential provided is of type `TokenCredential`.




  - Fixed an issue when an invalid type was provided for `credential` during client construction, the
  `__str__` of the object would be present in the exception message and therefore potentially logged.




  - Fixed an issue where `user_agent` was being ignored on `send_message`, `receive_message`, `receive_messages`,
  `update_message`, and `peek_messages` if client was configured for encryption.




  - Fixed breaking `KeyError: 'sdk_moniker'` in `create_configuration`.
  NOTE: This is not an exported method and therefore should not be imported/called directly.




  - Stable release of features from 12.7.0b1




  - Bumped `azure-core` minimum dependency to 1.28.0 and `typing-extensions` to 4.3.0.




  - Stable release of features from 12.6.0b1




  - Removed `msrest` dependency.
  - Added `typing-extensions>=4.0.1` as a dependency.
  - Added `isodate>=0.6.1` as a dependency.
  - Added extra dependency `aio` for installing optional async dependencies. Use `pip install azure-storage-queue[aio]` to install.




  - Stable release of features from 12.5.0b1.


  - Changed the default value for `read_timeout` to 60 seconds for all clients.



  This version and all future versions will require Python 3.7+. Python 3.6 is no longer supported.


  - Added support for `AzureNamedKeyCredential` as a valid `credential` type.




  - Stable release of features from 12.4.0b1.




  - Introduced version 2.0 of client-side encryption for Queue messages which utilizes AES-GCM-256 encryption.
  Version 1.0 is now deprecated and no longer considered secure. If you are using client-side encryption, it is
  **highly recommended** that you update to version 2.0.
  The encryption version can be specified on any client constructor via the `encryption_version`
  keyword (i.e. `encryption_version='2.0'`).




  - Stable release of features from 12.3.0b1.


  - Fixed a bug, introduced in the previous beta release, that caused Authentication errors when attempting to use
  an Account SAS with certain service level operations.




  - Added support for `max_messages` in `receive_messages()` to specify the maximum number of messages to receive from the queue.


  - Updated SAS token generation to use the latest supported service version by default. Moving to the latest version
  also included a change to how account SAS is generated to reflect a change made to the service in SAS generation for
  service version 2020-12-06.
  - Updated documentation for `receive_messages()` to explain iterator behavior and life-cycle.
  - Added a sample to `queue_samples_message.py` (and async-equivalent) showcasing the use of `max_messages` in `receive_messages()`.



  This version and all future versions will require Python 3.6+. Python 2.7 is no longer supported.


  - Update `azure-core` dependency to avoid inconsistent dependencies from being installed.


  **Fixes**
  - Make `AccountName`, `AccountKey` etc. in conn_str case insensitive
  - Fixed unclosed `ThreadPoolExecutor` (#8955)


  **New features**
  - Added support for `AzureSasCredential` to allow SAS rotation in long living clients.


  **New feature**
  - Added `receive_message` on QueueClient to support receiving one message from queue (#14844, #14762)

  **Notes**
  - Updated dependency `azure-core` from  azure-core<2.0.0,>=1.6.0 to azure-core<2.0.0,>=1.9.0 to get continuation_token attr on AzureError.



  **Fixes**
  - Fixed QueueClient type declaration (#11392).


  **Notes**
  - Updated dependency from azure-core<2.0.0,>=1.2.2 to azure-core<2.0.0,>=1.6.0



  **Fixes**
  - Responses are always decoded as UTF8

  **Notes**
  - The `StorageUserAgentPolicy` is now replaced with the `UserAgentPolicy` from azure-core. With this, the custom user agents are now added as a prefix instead of being appended.



   **New features**
  - All the clients now have a `close()` method to close the sockets opened by the client when using without a context manager.



  **Breaking changes**

  - `QueueClient` now accepts only `account_url` with mandatory a string param `queue_name`.
  To use a queue_url, the method `from_queue_url` must be used.
  - `set_queue_access_policy` has required parameter `signed_identifiers`.
  - `NoRetry` policy has been removed. Use keyword argument `retry_total=0` for no retries.
  - `NoEncodePolicy` and `NoDecodePolicy` have been removed. Use `message_encode_policy=None` and `message_decode_policy=None`.
  - Removed types that were accidentally exposed from two modules. Only `QueueServiceClient` and `QueueClient`
  should be imported from azure.storage.queue.aio
  - Some parameters have become keyword only, rather than positional. Some examples include:
    - `loop`
    - `max_concurrency`
    - `validate_content`
    - `timeout` etc.
  - `QueueMessage` has had its parameters renamed from `insertion_time`, `time_next_visible`, `expiration_time`
  to `inserted_on`, `next_visible_on`, `expires_on`, respectively.
  - `Logging` has been renamed to `QueueAnalyticsLogging`.
  - `enqueue_message` is now called `send_message`.
  - Client and model files have been made internal. Users should import from the top level modules `azure.storage.queue` and `azure.storage.queue.aio` only.
  - The `generate_shared_access_signature` methods on both `QueueServiceClient` and `QueueClient` have been replaced by module level functions `generate_account_sas` and `generate_queue_sas`.
  - `get_service_stats` now returns a dict
  - `get_service_properties` now returns a dict with keys consistent to `set_service_properties`

   **New features**

  - `ResourceTypes`, and `Services` now have method `from_string` which takes parameters as a string.

  **Fixes and improvements**

  - Fixed an issue where XML is being double encoded and double decoded.



  **Breaking changes**

  - Permission models.
    - `AccountPermissions`, `QueuePermissions` have been renamed to
    `AccountSasPermissions`, `QueueSasPermissions` respectively.
    - enum-like list parameters have been removed from both of them.
    - `__add__` and `__or__` methods are removed.
  - `max_connections` is now renamed to `max_concurrency`.

  **New features**

  - `AccountSasPermissions`, `QueueSasPermissions` now have method `from_string` which takes parameters as a string.



  **Dependency updates**
  - Adopted [azure-core](https://pypi.org/project/azure-core/) 1.0.0b3
    - If you later want to revert to previous versions of azure-storage-queue, or another Azure SDK
    library requiring azure-core 1.0.0b1 or azure-core 1.0.0b2, you must explicitly install
    the specific version of azure-core as well. For example:

    `pip install azure-core==1.0.0b2 azure-storage-queue==12.0.0b2`




  **Breaking changes**
  - The behavior of listing operations has been modified:
      - The previous `marker` parameter has been removed.
      - The iterable response object now supports a `by_page` function that will return a secondary iterator of batches of results. This function supports a `continuation_token` parameter to replace the previous `marker` parameter.
  - The new listing behaviour is also adopted by the `receive_messages` operation:
      - The receive operation returns a message iterator as before.
      - The returned iterator supports a `by_page` operation to receive messages in batches.

  **New features**
  - Added async APIs to subnamespace `azure.storage.queue.aio`.
  - Distributed tracing framework OpenCensus is now supported.

  **Dependency updates**
  - Adopted [azure-core](https://pypi.org/project/azure-core/) 1.0.0b2
    - If you later want to revert to azure-storage-queue 12.0.0b1, or another Azure SDK
    library requiring azure-core 1.0.0b1, you must explicitly install azure-core
    1.0.0b1 as well. For example:

    `pip install azure-core==1.0.0b1 azure-storage-queue==12.0.0b1`

  **Fixes and improvements**
  - General refactor of duplicate and shared code.




  Version 12.0.0b1 is the first preview of our efforts to create a user-friendly and Pythonic client library for Azure Storage Queues. For more information about this, and preview releases of other Azure SDK libraries, please visit
  https://aka.ms/azure-sdk-preview1-python.

  **Breaking changes: New API design**
  - Operations are now scoped to a particular client:
      - `QueueServiceClient`: This client handles account-level operations. This includes managing service properties and listing the queues within an account.
      - `QueueClient`: The client handles operations within a particular queue. This includes creating or deleting that queue, as well as enqueueing and dequeueing messages.

      These clients can be accessed by navigating down the client hierarchy, or instantiated directly using URLs to the resource (account or queue).
      For full details on the new API, please see the [reference documentation](https://azure.github.io/azure-sdk-for-python/storage.html#azure-storage-queue).
  - New message iterator, for receiving messages from a queue in a continuous stream.
  - New underlying REST pipeline implementation, based on the new `azure-core` library.
  - Client and pipeline configuration is now available via keyword arguments at both the client level, and per-operation. See reference documentation for a full list of optional configuration arguments.
  - Authentication using `azure-identity` credentials
    - see the
    [Azure Identity documentation](https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/identity/azure-identity/README.md)
    for more information
  - New error hierarchy:
      - All service errors will now use the base type: `azure.core.exceptions.HttpResponseError`
      - The are a couple of specific exception types derived from this base type for common error scenarios:
          - `ResourceNotFoundError`: The resource (e.g. queue, message) could not be found. Commonly a 404 status code.
          - `ResourceExistsError`: A resource conflict - commonly caused when attempting to create a resource that already exists.
          - `ResourceModifiedError`: The resource has been modified (e.g. overwritten) and therefore the current operation is in conflict. Alternatively this may be raised if a condition on the operation is not met.
          - `ClientAuthenticationError`: Authentication failed.
  - No longer have specific operations for `get_metadata` - use `get_properties` instead.
  - No longer have specific operations for `exists` - use `get_properties` instead.
  - Operations `get_queue_acl` and `set_queue_acl` have been renamed to `get_queue_access_policy` and `set_queue_access_policy`.
  - Operation `put_message` has been renamed to `enqueue_message`.
  - Operation `get_messages` has been renamed to `receive_messages`.


  - Updated dependency on azure-storage-common.


  - Support for 2018-11-09 REST version.


  - azure-storage-nspkg is not installed anymore on Python 3 (PEP420-based namespace package)


  - Support for 2018-03-28 REST version. Please see our REST API documentation and blog for information about the related added features.


  - Support for 2017-11-09 REST version. Please see our REST API documentation and blog for information about the related added features.
  - Added support for OAuth authentication for HTTPS requests(Please note that this feature is available in preview).


  - Support for 2017-07-29 REST version. Please see our REST API documentation and blogs for information about the related added features.
  - Queue messages can now have an arbitrarily large or infinite time to live.
  - Error message now contains the ErrorCode from the x-ms-error-code header value.


  - The package has switched from Apache 2.0 to the MIT license.


pkgId: 7a832b006d15e6dea8b4c53dbbe9971b9e5480b6f3ce2c00ba40a26b96eb5439
name: python-azure-storage-queue
arch: src
version: 12.12.0
epoch: 0
release: 1
summary: Microsoft Azure Azure Queue Storage Client Library for Python
url: https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/storage/azure-storage-queue
rpm_license: MIT License
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-azure-storage-queue-12.12.0-1.src.rpm
checksum_type: sha256
description:
  Azure Queue storage is a service for storing large numbers of messages that can be accessed from anywhere in the world via authenticated calls using HTTP or HTTPS. A single queue message can be up to 64 KiB in size, and a queue can contain millions of messages, up to the total capacity limit of a storage account.

  Common uses of Queue storage include:

  * Creating a backlog of work to process asynchronously
  * Passing messages between different parts of a distributed application

  [Source code](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/storage/azure-storage-queue/azure/storage/queue)
  | [Package (PyPI)](https://pypi.org/project/azure-storage-queue/)
  | [Package (Conda)](https://anaconda.org/microsoft/azure-storage/)
  | [API reference documentation](https://aka.ms/azsdk-python-storage-queue-ref)
  | [Product documentation](https://docs.microsoft.com/azure/storage/)
  | [Samples](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/storage/azure-storage-queue/samples)




  * Python 3.8 or later is required to use this package. For more details, please read our page on [Azure SDK for Python version support policy](https://github.com/Azure/azure-sdk-for-python/wiki/Azure-SDKs-Python-version-support-policy).
  * You must have an [Azure subscription](https://azure.microsoft.com/free/) and an
  [Azure storage account](https://docs.microsoft.com/azure/storage/common/storage-account-overview) to use this package.


  Install the Azure Storage Queues client library for Python with [pip](https://pypi.org/project/pip/):

  ```bash
  pip install azure-storage-queue
  ```


  If you wish to create a new storage account, you can use the
  [Azure Portal](https://docs.microsoft.com/azure/storage/common/storage-quickstart-create-account?tabs=azure-portal),
  [Azure PowerShell](https://docs.microsoft.com/azure/storage/common/storage-quickstart-create-account?tabs=azure-powershell),
  or [Azure CLI](https://docs.microsoft.com/azure/storage/common/storage-quickstart-create-account?tabs=azure-cli):

  ```bash


  az group create --name my-resource-group --location westus2


  az storage account create -n my-storage-account-name -g my-resource-group
  ```


  The Azure Storage Queues client library for Python allows you to interact with three types of resources: the storage
  account itself, queues, and messages. Interaction with these resources starts with an instance of a [client](#clients).
  To create a client object, you will need the storage account's queue service endpoint URL and a credential that allows
  you to access the storage account:

  ```python
  from azure.storage.queue import QueueServiceClient

  service = QueueServiceClient(account_url="https://<my-storage-account-name>.queue.core.windows.net/", credential=credential)
  ```


  You can find the storage account's queue service URL using the
  [Azure Portal](https://docs.microsoft.com/azure/storage/common/storage-account-overview#storage-account-endpoints),
  [Azure PowerShell](https://docs.microsoft.com/powershell/module/az.storage/get-azstorageaccount),
  or [Azure CLI](https://docs.microsoft.com/cli/azure/storage/account?view=azure-cli-latest#az-storage-account-show):

  ```bash

  az storage account show -n my-storage-account-name -g my-resource-group --query "primaryEndpoints.queue"
  ```


  The `credential` parameter may be provided in a number of different forms, depending on the type of
  [authorization](https://docs.microsoft.com/azure/storage/common/storage-auth) you wish to use:
  1. To use a [shared access signature (SAS) token](https://docs.microsoft.com/azure/storage/common/storage-sas-overview),
     provide the token as a string. If your account URL includes the SAS token, omit the credential parameter.
     You can generate a SAS token from the Azure Portal under "Shared access signature" or use one of the `generate_sas()`
     functions to create a sas token for the storage account or queue:

      ```python
      from datetime import datetime, timedelta
      from azure.storage.queue import QueueServiceClient, generate_account_sas, ResourceTypes, AccountSasPermissions

      sas_token = generate_account_sas(
          account_name="<storage-account-name>",
          account_key="<account-access-key>",
          resource_types=ResourceTypes(service=True),
          permission=AccountSasPermissions(read=True),
          start=datetime.utcnow(),
          expiry=datetime.utcnow() + timedelta(hours=1)
      )

      queue_service_client = QueueServiceClient(account_url="https://<my_account_name>.queue.core.windows.net", credential=sas_token)
      ```

  2. To use a storage account [shared key](https://docs.microsoft.com/rest/api/storageservices/authenticate-with-shared-key/)
     (aka account key or access key), provide the key as a string. This can be found in the Azure Portal under the "Access Keys"
     section or by running the following Azure CLI command:

      ```az storage account keys list -g MyResourceGroup -n MyStorageAccount```

      Use the key as the credential parameter to authenticate the client:
      ```python
      from azure.storage.queue import QueueServiceClient
      service = QueueServiceClient(account_url="https://<my_account_name>.queue.core.windows.net", credential="<account_access_key>")
      ```

  3. To use an [Azure Active Directory (AAD) token credential](https://docs.microsoft.com/azure/storage/common/storage-auth-aad),
     provide an instance of the desired credential type obtained from the
     [azure-identity](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/identity/azure-identity#credentials) library.
     For example, [DefaultAzureCredential](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/identity/azure-identity#defaultazurecredential)
     can be used to authenticate the client.

     This requires some initial setup:
     * [Install azure-identity](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/identity/azure-identity#install-the-package)
     * [Register a new AAD application](https://docs.microsoft.com/azure/active-directory/develop/quickstart-register-app) and give permissions to access Azure Storage
     * [Grant access](https://docs.microsoft.com/azure/storage/common/storage-auth-aad-rbac-portal) to Azure Queue data with RBAC in the Azure Portal
     * Set the values of the client ID, tenant ID, and client secret of the AAD application as environment variables:
       AZURE_TENANT_ID, AZURE_CLIENT_ID, AZURE_CLIENT_SECRET

     Use the returned token credential to authenticate the client:
      ```python
          from azure.identity import DefaultAzureCredential
          from azure.storage.queue import QueueServiceClient
          token_credential = DefaultAzureCredential()

          queue_service_client = QueueServiceClient(
              account_url="https://<my_account_name>.queue.core.windows.net",
              credential=token_credential
          )
      ```


  Depending on your use case and authorization method, you may prefer to initialize a client instance with a storage
  connection string instead of providing the account URL and credential separately. To do this, pass the storage
  connection string to the client's `from_connection_string` class method:

  ```python
  from azure.storage.queue import QueueServiceClient

  connection_string = "DefaultEndpointsProtocol=https;AccountName=xxxx;AccountKey=xxxx;EndpointSuffix=core.windows.net"
  service = QueueServiceClient.from_connection_string(conn_str=connection_string)
  ```

  The connection string to your storage account can be found in the Azure Portal under the "Access Keys" section or by running the following CLI command:

  ```bash
  az storage account show-connection-string -g MyResourceGroup -n MyStorageAccount
  ```


  The following components make up the Azure Queue Service:
  * The storage account itself
  * A queue within the storage account, which contains a set of messages
  * A message within a queue, in any format, of up to 64 KiB

  The Azure Storage Queues client library for Python allows you to interact with each of these components through the
  use of a dedicated client object.


  This library includes a complete async API supported on Python 3.5+. To use it, you must
  first install an async transport, such as [aiohttp](https://pypi.org/project/aiohttp/).
  See
  [azure-core documentation](https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/core/azure-core/CLIENT_LIBRARY_DEVELOPER.md#transport)
  for more information.

  Async clients and credentials should be closed when they're no longer needed. These
  objects are async context managers and define async `close` methods.


  Two different clients are provided to interact with the various components of the Queue Service:
  1. [QueueServiceClient](https://aka.ms/azsdk-python-storage-queue-queueserviceclient) -
      this client represents interaction with the Azure storage account itself, and allows you to acquire preconfigured
      client instances to access the queues within. It provides operations to retrieve and configure the account
      properties as well as list, create, and delete queues within the account. To perform operations on a specific queue,
      retrieve a client using the `get_queue_client` method.
  2. [QueueClient](https://aka.ms/azsdk-python-storage-queue-queueclient) -
      this client represents interaction with a specific queue (which need not exist yet). It provides operations to
      create, delete, or configure a queue and includes operations to send, receive, peek, delete, and update messages
      within it.


  * **Send** - Adds a message to the queue and optionally sets a visibility timeout for the message.
  * **Receive** - Retrieves a message from the queue and makes it invisible to other consumers.
  * **Peek** - Retrieves a message from the front of the queue, without changing the message visibility.
  * **Update** - Updates the visibility timeout of a message and/or the message contents.
  * **Delete** - Deletes a specified message from the queue.
  * **Clear** - Clears all messages from the queue.




  The following sections provide several code snippets covering some of the most common Storage Queue tasks, including:

  * [Creating a queue](#creating-a-queue "Creating a queue")
  * [Sending messages](#sending-messages "Sending messages")
  * [Receiving messages](#receiving-messages "Receiving messages")


  Create a queue in your storage account

  ```python
  from azure.storage.queue import QueueClient

  queue = QueueClient.from_connection_string(conn_str="<connection_string>", queue_name="myqueue")
  queue.create_queue()
  ```

  Use the async client to create a queue
  ```python
  from azure.storage.queue.aio import QueueClient

  queue = QueueClient.from_connection_string(conn_str="<connection_string>", queue_name="myqueue")
  await queue.create_queue()
  ```


  Send messages to your queue

  ```python
  from azure.storage.queue import QueueClient

  queue = QueueClient.from_connection_string(conn_str="<connection_string>", queue_name="myqueue")
  queue.send_message("I'm using queues!")
  queue.send_message("This is my second message")
  ```

  Send messages asynchronously

  ```python
  import asyncio
  from azure.storage.queue.aio import QueueClient

  queue = QueueClient.from_connection_string(conn_str="<connection_string>", queue_name="myqueue")
  await asyncio.gather(
      queue.send_message("I'm using queues!"),
      queue.send_message("This is my second message")
  )
  ```


  Receive and process messages from your queue

  ```python
  from azure.storage.queue import QueueClient

  queue = QueueClient.from_connection_string(conn_str="<connection_string>", queue_name="myqueue")
  response = queue.receive_messages()

  for message in response:
      print(message.content)
      queue.delete_message(message)




  ```

  Receive and process messages in batches

  ```python
  from azure.storage.queue import QueueClient

  queue = QueueClient.from_connection_string(conn_str="<connection_string>", queue_name="myqueue")
  response = queue.receive_messages(messages_per_page=10)

  for message_batch in response.by_page():
      for message in message_batch:
          print(message.content)
          queue.delete_message(message)
  ```

  Receive and process messages asynchronously

  ```python
  from azure.storage.queue.aio import QueueClient

  queue = QueueClient.from_connection_string(conn_str="<connection_string>", queue_name="myqueue")
  response = queue.receive_messages()

  async for message in response:
      print(message.content)
      await queue.delete_message(message)
  ```



  Optional keyword arguments that can be passed in at the client and per-operation level.



  Use the following keyword arguments when instantiating a client to configure the retry policy:

  * __retry_total__ (int): Total number of retries to allow. Takes precedence over other counts.
  Pass in `retry_total=0` if you do not want to retry on requests. Defaults to 10.
  * __retry_connect__ (int): How many connection-related errors to retry on. Defaults to 3.
  * __retry_read__ (int): How many times to retry on read errors. Defaults to 3.
  * __retry_status__ (int): How many times to retry on bad status codes. Defaults to 3.
  * __retry_to_secondary__ (bool): Whether the request should be retried to secondary, if able.
  This should only be enabled of RA-GRS accounts are used and potentially stale data can be handled.
  Defaults to `False`.



  Other optional configuration keyword arguments that can be specified on the client or per-operation.

  **Client keyword arguments:**

  * __connection_timeout__ (int): The number of seconds the client will wait to establish a connection to the server.
  Defaults to 20 seconds.
  * __read_timeout__ (int): The number of seconds the client will wait, between consecutive read operations, for a
  response from the server. This is a socket level timeout and is not affected by overall data size. Client-side read
  timeouts will be automatically retried. Defaults to 60 seconds.
  * __transport__ (Any): User-provided transport to send the HTTP request.

  **Per-operation keyword arguments:**

  * __raw_response_hook__ (callable): The given callback uses the response returned from the service.
  * __raw_request_hook__ (callable): The given callback uses the request before being sent to service.
  * __client_request_id__ (str): Optional user specified identification of the request.
  * __user_agent__ (str): Appends the custom value to the user-agent header to be sent with the request.
  * __logging_enable__ (bool): Enables logging at the DEBUG level. Defaults to False. Can also be passed in at
  the client level to enable it for all requests.
  * __logging_body__ (bool): Enables logging the request and response body. Defaults to False. Can also be passed in at
  the client level to enable it for all requests.
  * __headers__ (dict): Pass in custom headers as key, value pairs. E.g. `headers={'CustomValue': value}`




  Storage Queue clients raise exceptions defined in [Azure Core](https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/core/azure-core/README.md).

  This list can be used for reference to catch thrown exceptions. To get the specific error code of the exception, use the `error_code` attribute, i.e, `exception.error_code`.


  This library uses the standard
  [logging](https://docs.python.org/3/library/logging.html) 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.storage.queue import QueueServiceClient


  logger = logging.getLogger('azure.storage.queue')
  logger.setLevel(logging.DEBUG)


  handler = logging.StreamHandler(stream=sys.stdout)
  logger.addHandler(handler)


  service_client = QueueServiceClient.from_connection_string("your_connection_string", logging_enable=True)
  ```

  Similarly, `logging_enable` can enable detailed logging for a single operation,
  even when it isn't enabled for the client:
  ```python
  service_client.get_service_stats(logging_enable=True)
  ```




  Get started with our [Queue samples](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/storage/azure-storage-queue/samples).

  Several Storage Queues Python SDK samples are available to you in the SDK's GitHub repository. These samples provide example code for additional scenarios commonly encountered while working with Storage Queues:

  * [queue_samples_hello_world.py](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/storage/azure-storage-queue/samples/queue_samples_hello_world.py) ([async version](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/storage/azure-storage-queue/samples/queue_samples_hello_world_async.py)) - Examples found in this article:
      * Client creation
      * Create a queue
      * Send messages
      * Receive messages

  * [queue_samples_authentication.py](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/storage/azure-storage-queue/samples/queue_samples_authentication.py) ([async version](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/storage/azure-storage-queue/samples/queue_samples_authentication_async.py)) - Examples for authenticating and creating the client:
      * From a connection string
      * From a shared access key
      * From a shared access signature token
      * From Azure Active Directory

  * [queue_samples_service.py](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/storage/azure-storage-queue/samples/queue_samples_service.py) ([async version](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/storage/azure-storage-queue/samples/queue_samples_service_async.py)) - Examples for interacting with the queue service:
      * Get and set service properties
      * List queues in a storage account
      * Create and delete a queue from the service
      * Get the QueueClient

  * [queue_samples_message.py](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/storage/azure-storage-queue/samples/queue_samples_message.py) ([async version](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/storage/azure-storage-queue/samples/queue_samples_message_async.py)) - Examples for working with queues and messages:
      * Set an access policy
      * Get and set queue metadata
      * Send and receive messages
      * Delete specified messages and clear all messages
      * Peek and update messages


  For more extensive documentation on Azure Queue storage, see the [Azure Queue storage documentation](https://docs.microsoft.com/azure/storage/queues/) on docs.microsoft.com.


  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.







  - Stable release of features from 12.12.0b1




  - Added support for service version 2024-11-04.


  - Bumped minimum `azure-core` dependency to 1.30.0.




  - Stable release of features from 12.11.0b1




  - Updated OAuth implementation to use the AAD scope returned in a Bearer challenge.
  - Fixed an issue where client specified service versions may be ignored.




  - Stable release of features from 12.10.0b1



  This version and all future versions will require Python 3.8+. Python 3.7 is no longer supported.


  - The `services` parameter has been added to the `generate_account_sas` API, which enables the ability to generate SAS
  tokens to be used with multiple services. By default, the SAS token service scope will default to the current service.


  - Bumped dependency of `typing-extensions` to `>=4.6.0` to avoid potential `TypeError` with `typing.TypeVar` on
  Python 3.12.
  - Fixed an issue where authentication errors could raise `AttributeError` instead of `ClientAuthenticationError` when
  using async OAuth credentials.




  - Updated type hints across the entire package and enabled MyPy to run during CI. Some public types may have been adjusted if they were previously erroneous or incomplete.




  - Stable release of features from 12.18.0b1




  - Added `audience` as an optional keyword that can be specified on APIs that have a `credential` parameter. This
  keyword only has an effect when the credential provided is of type `TokenCredential`.




  - Fixed an issue when an invalid type was provided for `credential` during client construction, the
  `__str__` of the object would be present in the exception message and therefore potentially logged.




  - Fixed an issue where `user_agent` was being ignored on `send_message`, `receive_message`, `receive_messages`,
  `update_message`, and `peek_messages` if client was configured for encryption.




  - Fixed breaking `KeyError: 'sdk_moniker'` in `create_configuration`.
  NOTE: This is not an exported method and therefore should not be imported/called directly.




  - Stable release of features from 12.7.0b1




  - Bumped `azure-core` minimum dependency to 1.28.0 and `typing-extensions` to 4.3.0.




  - Stable release of features from 12.6.0b1




  - Removed `msrest` dependency.
  - Added `typing-extensions>=4.0.1` as a dependency.
  - Added `isodate>=0.6.1` as a dependency.
  - Added extra dependency `aio` for installing optional async dependencies. Use `pip install azure-storage-queue[aio]` to install.




  - Stable release of features from 12.5.0b1.


  - Changed the default value for `read_timeout` to 60 seconds for all clients.



  This version and all future versions will require Python 3.7+. Python 3.6 is no longer supported.


  - Added support for `AzureNamedKeyCredential` as a valid `credential` type.




  - Stable release of features from 12.4.0b1.




  - Introduced version 2.0 of client-side encryption for Queue messages which utilizes AES-GCM-256 encryption.
  Version 1.0 is now deprecated and no longer considered secure. If you are using client-side encryption, it is
  **highly recommended** that you update to version 2.0.
  The encryption version can be specified on any client constructor via the `encryption_version`
  keyword (i.e. `encryption_version='2.0'`).




  - Stable release of features from 12.3.0b1.


  - Fixed a bug, introduced in the previous beta release, that caused Authentication errors when attempting to use
  an Account SAS with certain service level operations.




  - Added support for `max_messages` in `receive_messages()` to specify the maximum number of messages to receive from the queue.


  - Updated SAS token generation to use the latest supported service version by default. Moving to the latest version
  also included a change to how account SAS is generated to reflect a change made to the service in SAS generation for
  service version 2020-12-06.
  - Updated documentation for `receive_messages()` to explain iterator behavior and life-cycle.
  - Added a sample to `queue_samples_message.py` (and async-equivalent) showcasing the use of `max_messages` in `receive_messages()`.



  This version and all future versions will require Python 3.6+. Python 2.7 is no longer supported.


  - Update `azure-core` dependency to avoid inconsistent dependencies from being installed.


  **Fixes**
  - Make `AccountName`, `AccountKey` etc. in conn_str case insensitive
  - Fixed unclosed `ThreadPoolExecutor` (#8955)


  **New features**
  - Added support for `AzureSasCredential` to allow SAS rotation in long living clients.


  **New feature**
  - Added `receive_message` on QueueClient to support receiving one message from queue (#14844, #14762)

  **Notes**
  - Updated dependency `azure-core` from  azure-core<2.0.0,>=1.6.0 to azure-core<2.0.0,>=1.9.0 to get continuation_token attr on AzureError.



  **Fixes**
  - Fixed QueueClient type declaration (#11392).


  **Notes**
  - Updated dependency from azure-core<2.0.0,>=1.2.2 to azure-core<2.0.0,>=1.6.0



  **Fixes**
  - Responses are always decoded as UTF8

  **Notes**
  - The `StorageUserAgentPolicy` is now replaced with the `UserAgentPolicy` from azure-core. With this, the custom user agents are now added as a prefix instead of being appended.



   **New features**
  - All the clients now have a `close()` method to close the sockets opened by the client when using without a context manager.



  **Breaking changes**

  - `QueueClient` now accepts only `account_url` with mandatory a string param `queue_name`.
  To use a queue_url, the method `from_queue_url` must be used.
  - `set_queue_access_policy` has required parameter `signed_identifiers`.
  - `NoRetry` policy has been removed. Use keyword argument `retry_total=0` for no retries.
  - `NoEncodePolicy` and `NoDecodePolicy` have been removed. Use `message_encode_policy=None` and `message_decode_policy=None`.
  - Removed types that were accidentally exposed from two modules. Only `QueueServiceClient` and `QueueClient`
  should be imported from azure.storage.queue.aio
  - Some parameters have become keyword only, rather than positional. Some examples include:
    - `loop`
    - `max_concurrency`
    - `validate_content`
    - `timeout` etc.
  - `QueueMessage` has had its parameters renamed from `insertion_time`, `time_next_visible`, `expiration_time`
  to `inserted_on`, `next_visible_on`, `expires_on`, respectively.
  - `Logging` has been renamed to `QueueAnalyticsLogging`.
  - `enqueue_message` is now called `send_message`.
  - Client and model files have been made internal. Users should import from the top level modules `azure.storage.queue` and `azure.storage.queue.aio` only.
  - The `generate_shared_access_signature` methods on both `QueueServiceClient` and `QueueClient` have been replaced by module level functions `generate_account_sas` and `generate_queue_sas`.
  - `get_service_stats` now returns a dict
  - `get_service_properties` now returns a dict with keys consistent to `set_service_properties`

   **New features**

  - `ResourceTypes`, and `Services` now have method `from_string` which takes parameters as a string.

  **Fixes and improvements**

  - Fixed an issue where XML is being double encoded and double decoded.



  **Breaking changes**

  - Permission models.
    - `AccountPermissions`, `QueuePermissions` have been renamed to
    `AccountSasPermissions`, `QueueSasPermissions` respectively.
    - enum-like list parameters have been removed from both of them.
    - `__add__` and `__or__` methods are removed.
  - `max_connections` is now renamed to `max_concurrency`.

  **New features**

  - `AccountSasPermissions`, `QueueSasPermissions` now have method `from_string` which takes parameters as a string.



  **Dependency updates**
  - Adopted [azure-core](https://pypi.org/project/azure-core/) 1.0.0b3
    - If you later want to revert to previous versions of azure-storage-queue, or another Azure SDK
    library requiring azure-core 1.0.0b1 or azure-core 1.0.0b2, you must explicitly install
    the specific version of azure-core as well. For example:

    `pip install azure-core==1.0.0b2 azure-storage-queue==12.0.0b2`




  **Breaking changes**
  - The behavior of listing operations has been modified:
      - The previous `marker` parameter has been removed.
      - The iterable response object now supports a `by_page` function that will return a secondary iterator of batches of results. This function supports a `continuation_token` parameter to replace the previous `marker` parameter.
  - The new listing behaviour is also adopted by the `receive_messages` operation:
      - The receive operation returns a message iterator as before.
      - The returned iterator supports a `by_page` operation to receive messages in batches.

  **New features**
  - Added async APIs to subnamespace `azure.storage.queue.aio`.
  - Distributed tracing framework OpenCensus is now supported.

  **Dependency updates**
  - Adopted [azure-core](https://pypi.org/project/azure-core/) 1.0.0b2
    - If you later want to revert to azure-storage-queue 12.0.0b1, or another Azure SDK
    library requiring azure-core 1.0.0b1, you must explicitly install azure-core
    1.0.0b1 as well. For example:

    `pip install azure-core==1.0.0b1 azure-storage-queue==12.0.0b1`

  **Fixes and improvements**
  - General refactor of duplicate and shared code.




  Version 12.0.0b1 is the first preview of our efforts to create a user-friendly and Pythonic client library for Azure Storage Queues. For more information about this, and preview releases of other Azure SDK libraries, please visit
  https://aka.ms/azure-sdk-preview1-python.

  **Breaking changes: New API design**
  - Operations are now scoped to a particular client:
      - `QueueServiceClient`: This client handles account-level operations. This includes managing service properties and listing the queues within an account.
      - `QueueClient`: The client handles operations within a particular queue. This includes creating or deleting that queue, as well as enqueueing and dequeueing messages.

      These clients can be accessed by navigating down the client hierarchy, or instantiated directly using URLs to the resource (account or queue).
      For full details on the new API, please see the [reference documentation](https://azure.github.io/azure-sdk-for-python/storage.html#azure-storage-queue).
  - New message iterator, for receiving messages from a queue in a continuous stream.
  - New underlying REST pipeline implementation, based on the new `azure-core` library.
  - Client and pipeline configuration is now available via keyword arguments at both the client level, and per-operation. See reference documentation for a full list of optional configuration arguments.
  - Authentication using `azure-identity` credentials
    - see the
    [Azure Identity documentation](https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/identity/azure-identity/README.md)
    for more information
  - New error hierarchy:
      - All service errors will now use the base type: `azure.core.exceptions.HttpResponseError`
      - The are a couple of specific exception types derived from this base type for common error scenarios:
          - `ResourceNotFoundError`: The resource (e.g. queue, message) could not be found. Commonly a 404 status code.
          - `ResourceExistsError`: A resource conflict - commonly caused when attempting to create a resource that already exists.
          - `ResourceModifiedError`: The resource has been modified (e.g. overwritten) and therefore the current operation is in conflict. Alternatively this may be raised if a condition on the operation is not met.
          - `ClientAuthenticationError`: Authentication failed.
  - No longer have specific operations for `get_metadata` - use `get_properties` instead.
  - No longer have specific operations for `exists` - use `get_properties` instead.
  - Operations `get_queue_acl` and `set_queue_acl` have been renamed to `get_queue_access_policy` and `set_queue_access_policy`.
  - Operation `put_message` has been renamed to `enqueue_message`.
  - Operation `get_messages` has been renamed to `receive_messages`.


  - Updated dependency on azure-storage-common.


  - Support for 2018-11-09 REST version.


  - azure-storage-nspkg is not installed anymore on Python 3 (PEP420-based namespace package)


  - Support for 2018-03-28 REST version. Please see our REST API documentation and blog for information about the related added features.


  - Support for 2017-11-09 REST version. Please see our REST API documentation and blog for information about the related added features.
  - Added support for OAuth authentication for HTTPS requests(Please note that this feature is available in preview).


  - Support for 2017-07-29 REST version. Please see our REST API documentation and blogs for information about the related added features.
  - Queue messages can now have an arbitrarily large or infinite time to live.
  - Error message now contains the ErrorCode from the x-ms-error-code header value.


  - The package has switched from Apache 2.0 to the MIT license.


pkgId: 9b2cd5274de0f8581a4c887b0593d6dd47718e1fa6f7b4942b53500a080f1a11
name: python-azure-synapse
arch: src
version: 0.1.1
epoch: 0
release: 1
summary: Microsoft Azure Synapse Client Library for Python
url: https://github.com/Azure/azure-sdk-for-python
rpm_license: MIT License
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-azure-synapse-0.1.1-1.src.rpm
checksum_type: sha256
description:
  This package was the Microsoft Azure Synapse bundle.

  It is deprecated. Please install the service specific packages prefixed by azure-synapse needed for your application.

  The complete list of available packages can be found at: https://aka.ms/azsdk/python/all

  Here's a non-exhaustive list of common packages:

  * [azure-synapse-accesscontrol](https://pypi.org/project/azure-synapse-accesscontrol/)
  * [azure-synapse-artifacts](https://pypi.org/project/azure-synapse-artifacts/)
  * [azure-synapse-spark](https://pypi.org/project/azure-synapse-spark/)
  * [azure-synapse-managedprivateendpoints](https://pypi.org/project/azure-synapse-managedprivateendpoints/)
  * [azure-synapse-monitoring](https://pypi.org/project/azure-synapse-monitoring/)





  * Deprecate azure-synapse



  * Initial Release


pkgId: c29a23198efd2b0f6ef8d2ca18d5245c604b50daec3dbec3cc9a1dcd28f1ef86
name: python-azure-synapse
arch: src
version: 0.1.2
epoch: 0
release: 1
summary: Microsoft Azure Synapse Client Library for Python
url: https://github.com/Azure/azure-sdk-for-python
rpm_license: MIT License
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-azure-synapse-0.1.2-1.src.rpm
checksum_type: sha256
description:
  This package has been officially deprecated and will no longer be maintained after 2020-04-13. This package will only receive security fixes until 2020-04-13. Please install the service specific packages prefixed by azure-synapse needed for your application.

  The complete list of available packages can be found at: https://aka.ms/azsdk/python/all

  Here's a non-exhaustive list of common packages:

  * [azure-synapse-accesscontrol](https://pypi.org/project/azure-synapse-accesscontrol/)
  * [azure-synapse-artifacts](https://pypi.org/project/azure-synapse-artifacts/)
  * [azure-synapse-spark](https://pypi.org/project/azure-synapse-spark/)
  * [azure-synapse-managedprivateendpoints](https://pypi.org/project/azure-synapse-managedprivateendpoints/)
  * [azure-synapse-monitoring](https://pypi.org/project/azure-synapse-monitoring/)







  - This package has been officially deprecated and will no longer be maintained after 2020-04-13. This package will only receive security fixes until 2020-04-13. Please install the service specific packages prefixed by azure-synapse needed for your application. The complete list of available packages can be found at: https://aka.ms/azsdk/python/all



  * Deprecate azure-synapse



  * Initial Release


pkgId: 1b5152508c0eae97962f4952f056058e87fee4391c3453c6f1d3b1edab45023d
name: python-azure-synapse-accesscontrol
arch: src
version: 0.7.0
epoch: 0
release: 1
summary: Microsoft Azure Synapse AccessControl Client Library for Python
url: https://github.com/Azure/azure-sdk-for-python
rpm_license: MIT License
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-azure-synapse-accesscontrol-0.7.0-1.src.rpm
checksum_type: sha256
description:
  This is the Microsoft Azure Synapse AccessControl Client Library.
  This package has been tested with Python 2.7, 3.6, 3.7, 3.8 and 3.9.
  For a more complete view of Azure libraries, see the [azure sdk python release](https://aka.ms/azsdk/python/all).







  For code examples, see [Synapse AccessControl](https://docs.microsoft.com/python/api/overview/azure/) on docs.microsoft.com.




  If you encounter any bugs or have suggestions, please file an issue in the
  [Issues](https://github.com/Azure/azure-sdk-for-python/issues)
  section of the project.


  ![Impressions](https://azure-sdk-impressions.azurewebsites.net/api/impressions/azure-sdk-for-python%2Fazure-synapse-accesscontrol%2FREADME.png)






  - Updated API version to "2020-12-01"



  - Internal bugfixes (re-generated with latest generator)
  - Stop Python 3.5 support



  - Update to API version 2020-08-01



  - Internal bugfixes (re-generated with latest generator)



  - Internal bugfixes (re-generated with latest generator)



  - Initial Release


pkgId: 8b2f3d8f5fe6117b993ad766a115edb8f42d518cf38b6cb4a22fb8887d18a1d2
name: python-azure-synapse-artifacts
arch: src
version: 0.19.0
epoch: 0
release: 1
summary: Microsoft Azure Synapse Artifacts Client Library for Python
url: https://github.com/Azure/azure-sdk-for-python
rpm_license: MIT License
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-azure-synapse-artifacts-0.19.0-1.src.rpm
checksum_type: sha256
description:
  This is the Microsoft Azure Synapse Artifacts Client Library.
  This package has been tested with Python 3.7+.
  For a more complete view of Azure libraries, see the [azure sdk python release](https://aka.ms/azsdk/python/all).



  _Azure SDK Python packages support for Python 2.7 has ended 01 January 2022. For more information and questions, please refer to https://github.com/Azure/azure-sdk-for-python/issues/20691_





  - Python 3.7+ is required to use this package.
  - [Azure subscription](https://azure.microsoft.com/free/)



  ```bash
  pip install azure-synapse-artifacts
  pip install azure-identity
  ```



  By default, [Azure Active Directory](https://aka.ms/awps/aad) token authentication depends on correct configure of following environment variables.

  - `AZURE_CLIENT_ID` for Azure client ID.
  - `AZURE_TENANT_ID` for Azure tenant ID.
  - `AZURE_CLIENT_SECRET` for Azure client secret.

  With above configuration, client can be authenticated by following code:

  ```python
  import os
  from azure.identity import DefaultAzureCredential
  from azure.synapse.artifacts import ArtifactsClient

  endpoint = os.environ["SYNAPSE_ARTIFACTS_ENDPOINT"]
  client = ArtifactsClient(endpoint=endpoint, credential=DefaultAzureCredential())
  ```



  Code samples for this package can be found at:
  - [Search Synapse Artifacts](https://docs.microsoft.com/samples/browse/?languages=python&term=Getting%20started%20-%20Managing&terms=Getting%20started%20-%20Managing) on docs.microsoft.com








  If you encounter any bugs or have suggestions, please file an issue in the
  [Issues](https://github.com/Azure/azure-sdk-for-python/issues)
  section of the project.


  ![Impressions](https://azure-sdk-impressions.azurewebsites.net/api/impressions/azure-sdk-for-python%2Fazure-synapse-artifacts%2FREADME.png)








    - Model Dataset has a new parameter LakeHouseLocation
    - Model Dataset has a new parameter GoogleBigQueryV2ObjectDataset
    - Model Dataset has a new parameter PostgreSqlV2TableDataset
    - Model Dataset has a new parameter SalesforceServiceCloudV2ObjectDataset
    - Model Dataset has a new parameter SalesforceV2ObjectDataset
    - Model Dataset has a new parameter ServiceNowV2ObjectDataset
    - Model Dataset has a new parameter SnowflakeV2Dataset
    - Model Dataset has a new parameter WarehouseTableDataset
    - Model Pipeline has a new parameter ExpressionV2
    - Model Pipeline has a new parameter GoogleBigQueryV2Source
    - Model Pipeline has a new parameter LakeHouseTableSink
    - Model Pipeline has a new parameter LakeHouseTableSource
    - Model Pipeline has a new parameter LakeHouseWriteSettings
    - Model Pipeline has a new parameter LakeHouseReadSettings
    - Model Pipeline has a new parameter Metadata
    - Model Pipeline has a new parameter MetadataItem
    - Model Pipeline has a new parameter ParquetReadSettingsstate
    - Model Pipeline has a new parameter PostgreSqlV2Source
    - Model Pipeline has a new parameter SalesforceServiceCloudV2Sink
    - Model Pipeline has a new parameter SalesforceServiceCloudV2Source
    - Model Pipeline has a new parameter SalesforceV2Sink
    - Model Pipeline has a new parameter SalesforceV2SourceReadBehavior
    - Model Pipeline has a new parameter SalesforceV2Source
    - Model Pipeline has a new parameter ServiceNowV2Source
    - Model Pipeline has a new parameter SnowflakeV2Sink
    - Model Pipeline has a new parameter SnowflakeV2Source
    - Model Pipeline has a new parameter WarehouseSink
    - Model Pipeline has a new parameter WarehouseSource
    - Model LinkedService add supports GoogleAds
    - Model LinkedService has a new parameter GoogleBigQueryV2LinkedService
    - Model LinkedService has a new parameter LakeHouseLinkedService
    - Model LinkedService has a new parameter PostgreSqlV2LinkedService
    - Model LinkedService has a new parameter SalesforceServiceCloudV2LinkedService
    - Model LinkedService has a new parameter SalesforceV2LinkedService
    - Model LinkedService has a new parameter SalesforceV2LinkedService
    - Model LinkedService has a new parameter SnowflakeV2LinkedService
    - Model LinkedService has a new parameter WarehouseLinkedService
    - Model LinkedService has a new parameter WarehouseLinkedService



    - Model LinkedService parameter MariaDBLinkedService update new properties
    - Model LinkedService parameter MySqlLinkedService update new properties
    - Model LinkedService parameter ServiceNowV2LinkedService update properties
    - Model Pipeline parameter ExecuteDataFlowActivity update new properties computeType
    - Model Pipeline parameter ScriptActivityScriptBlock update properties type





    - Fix runNotebook sessionId from int to string #25210
    - Fix placeholder links causing 404s #26143



    - Sync expression Support From DataFactory To Synapse #25054





    - Added operation group RunNotebookOperations
    - Model Activity has a new parameter on_inactive_mark_as
    - Model Activity has a new parameter state
    - Model AmazonRdsForSqlServerLinkedService has a new parameter always_encrypted_settings
    - Model AmazonRdsForSqlServerSource has a new parameter isolation_level
    - Model AppendVariableActivity has a new parameter on_inactive_mark_as
    - Model AppendVariableActivity has a new parameter state
    - Model AzureBatchLinkedService has a new parameter credential
    - Model AzureBlobFSLinkedService has a new parameter credential
    - Model AzureBlobStorageLinkedService has a new parameter credential
    - Model AzureDataExplorerCommandActivity has a new parameter on_inactive_mark_as
    - Model AzureDataExplorerCommandActivity has a new parameter state
    - Model AzureDataExplorerLinkedService has a new parameter credential
    - Model AzureDataLakeStoreLinkedService has a new parameter credential
    - Model AzureDatabricksDeltaLakeLinkedService has a new parameter credential
    - Model AzureDatabricksLinkedService has a new parameter credential
    - Model AzureFunctionActivity has a new parameter on_inactive_mark_as
    - Model AzureFunctionActivity has a new parameter state
    - Model AzureFunctionLinkedService has a new parameter authentication
    - Model AzureFunctionLinkedService has a new parameter credential
    - Model AzureFunctionLinkedService has a new parameter resource_id
    - Model AzureKeyVaultLinkedService has a new parameter credential
    - Model AzureMLBatchExecutionActivity has a new parameter on_inactive_mark_as
    - Model AzureMLBatchExecutionActivity has a new parameter state
    - Model AzureMLExecutePipelineActivity has a new parameter on_inactive_mark_as
    - Model AzureMLExecutePipelineActivity has a new parameter state
    - Model AzureMLLinkedService has a new parameter authentication
    - Model AzureMLServiceLinkedService has a new parameter authentication
    - Model AzureMLUpdateResourceActivity has a new parameter on_inactive_mark_as
    - Model AzureMLUpdateResourceActivity has a new parameter state
    - Model AzureSqlDWLinkedService has a new parameter credential
    - Model AzureSqlDatabaseLinkedService has a new parameter always_encrypted_settings
    - Model AzureSqlDatabaseLinkedService has a new parameter credential
    - Model AzureSqlMILinkedService has a new parameter always_encrypted_settings
    - Model AzureSqlMILinkedService has a new parameter credential
    - Model AzureSqlSource has a new parameter isolation_level
    - Model ControlActivity has a new parameter on_inactive_mark_as
    - Model ControlActivity has a new parameter state
    - Model CopyActivity has a new parameter on_inactive_mark_as
    - Model CopyActivity has a new parameter state
    - Model CosmosDbLinkedService has a new parameter credential
    - Model CustomActivity has a new parameter on_inactive_mark_as
    - Model CustomActivity has a new parameter state
    - Model DataLakeAnalyticsUSQLActivity has a new parameter on_inactive_mark_as
    - Model DataLakeAnalyticsUSQLActivity has a new parameter state
    - Model DatabricksNotebookActivity has a new parameter on_inactive_mark_as
    - Model DatabricksNotebookActivity has a new parameter state
    - Model DatabricksSparkJarActivity has a new parameter on_inactive_mark_as
    - Model DatabricksSparkJarActivity has a new parameter state
    - Model DatabricksSparkPythonActivity has a new parameter on_inactive_mark_as
    - Model DatabricksSparkPythonActivity has a new parameter state
    - Model DeleteActivity has a new parameter on_inactive_mark_as
    - Model DeleteActivity has a new parameter state
    - Model DynamicsLinkedService has a new parameter credential
    - Model ExecuteDataFlowActivity has a new parameter on_inactive_mark_as
    - Model ExecuteDataFlowActivity has a new parameter state
    - Model ExecutePipelineActivity has a new parameter on_inactive_mark_as
    - Model ExecutePipelineActivity has a new parameter state
    - Model ExecuteSSISPackageActivity has a new parameter on_inactive_mark_as
    - Model ExecuteSSISPackageActivity has a new parameter state
    - Model ExecutionActivity has a new parameter on_inactive_mark_as
    - Model ExecutionActivity has a new parameter state
    - Model FailActivity has a new parameter on_inactive_mark_as
    - Model FailActivity has a new parameter state
    - Model FilterActivity has a new parameter on_inactive_mark_as
    - Model FilterActivity has a new parameter state
    - Model ForEachActivity has a new parameter on_inactive_mark_as
    - Model ForEachActivity has a new parameter state
    - Model GetMetadataActivity has a new parameter on_inactive_mark_as
    - Model GetMetadataActivity has a new parameter state
    - Model HDInsightHiveActivity has a new parameter on_inactive_mark_as
    - Model HDInsightHiveActivity has a new parameter state
    - Model HDInsightMapReduceActivity has a new parameter on_inactive_mark_as
    - Model HDInsightMapReduceActivity has a new parameter state
    - Model HDInsightOnDemandLinkedService has a new parameter credential
    - Model HDInsightPigActivity has a new parameter on_inactive_mark_as
    - Model HDInsightPigActivity has a new parameter state
    - Model HDInsightSparkActivity has a new parameter on_inactive_mark_as
    - Model HDInsightSparkActivity has a new parameter state
    - Model HDInsightStreamingActivity has a new parameter on_inactive_mark_as
    - Model HDInsightStreamingActivity has a new parameter state
    - Model IfConditionActivity has a new parameter on_inactive_mark_as
    - Model IfConditionActivity has a new parameter state
    - Model LinkConnectionTargetDatabaseTypeProperties has a new parameter action_on_existing_target_table
    - Model LookupActivity has a new parameter on_inactive_mark_as
    - Model LookupActivity has a new parameter state
    - Model MongoDbAtlasLinkedService has a new parameter driver_version
    - Model RestServiceLinkedService has a new parameter credential
    - Model ScriptActivity has a new parameter on_inactive_mark_as
    - Model ScriptActivity has a new parameter state
    - Model SetVariableActivity has a new parameter on_inactive_mark_as
    - Model SetVariableActivity has a new parameter policy
    - Model SetVariableActivity has a new parameter state
    - Model SqlDWSource has a new parameter isolation_level
    - Model SqlMISource has a new parameter isolation_level
    - Model SqlPoolStoredProcedureActivity has a new parameter on_inactive_mark_as
    - Model SqlPoolStoredProcedureActivity has a new parameter state
    - Model SqlServerLinkedService has a new parameter always_encrypted_settings
    - Model SqlServerSource has a new parameter isolation_level
    - Model SqlServerStoredProcedureActivity has a new parameter on_inactive_mark_as
    - Model SqlServerStoredProcedureActivity has a new parameter state
    - Model SwitchActivity has a new parameter on_inactive_mark_as
    - Model SwitchActivity has a new parameter state
    - Model SynapseNotebookActivity has a new parameter configuration_type
    - Model SynapseNotebookActivity has a new parameter on_inactive_mark_as
    - Model SynapseNotebookActivity has a new parameter spark_config
    - Model SynapseNotebookActivity has a new parameter state
    - Model SynapseNotebookActivity has a new parameter target_spark_configuration
    - Model SynapseSparkJobDefinitionActivity has a new parameter on_inactive_mark_as
    - Model SynapseSparkJobDefinitionActivity has a new parameter state
    - Model UntilActivity has a new parameter on_inactive_mark_as
    - Model UntilActivity has a new parameter state
    - Model ValidationActivity has a new parameter on_inactive_mark_as
    - Model ValidationActivity has a new parameter state
    - Model WaitActivity has a new parameter on_inactive_mark_as
    - Model WaitActivity has a new parameter state
    - Model WebActivity has a new parameter on_inactive_mark_as
    - Model WebActivity has a new parameter state
    - Model WebActivityAuthentication has a new parameter credential
    - Model WebActivityAuthentication has a new parameter user_tenant
    - Model WebHookActivity has a new parameter on_inactive_mark_as
    - Model WebHookActivity has a new parameter state





    - Fix to support IO input  #29615





    - Model AzureSynapseArtifactsLinkedService has a new parameter workspace_resource_id
    - Model RestServiceLinkedService has a new parameter auth_headers
    - Model SynapseSparkJobDefinitionActivity has a new parameter configuration_type
    - Model SynapseSparkJobDefinitionActivity has a new parameter files_v2
    - Model SynapseSparkJobDefinitionActivity has a new parameter python_code_reference
    - Model SynapseSparkJobDefinitionActivity has a new parameter scan_folder
    - Model SynapseSparkJobDefinitionActivity has a new parameter spark_config
    - Model SynapseSparkJobDefinitionActivity has a new parameter target_spark_configuration



    - Parameter export_settings of model SnowflakeSource is now required
    - Renamed operation LinkConnectionOperations.create_or_update_link_connection to LinkConnectionOperations.create_or_update
    - Renamed operation LinkConnectionOperations.delete_link_connection to LinkConnectionOperations.delete
    - Renamed operation LinkConnectionOperations.get_link_connection to LinkConnectionOperations.get
    - Renamed operation LinkConnectionOperations.list_link_connections_by_workspace to LinkConnectionOperations.list_by_workspace





    - Upgraded api-version for some operation group



    - Drop support for python3.6





    - Added operation group LinkConnectionOperations





  - re-generated based on tag package-artifacts-composite-v3





  - Added `MetastoreOperations`



  - Python 2.7 and 3.6 are no longer supported. Please use Python version 3.7 or later.





  - Internal bugfixes (re-generated with latest generator)





  - re-generated based on tag package-artifacts-composite-v1



  - Updated API version to "2020-12-01" which is the default API version
  - Added `NotebookOperationResultOperations`, `OperationResultOperations`, `OperationStatusOperations`
  - Added API version "2021-06-01-preview" support





  - Enable poller when starting a long running operation    #18184





  - Add ADF support





  - Add library operations
  - Change create_or_update_sql_script, delete_sql_script, rename_sql_script to long running operations



  - Stop Python 3.5 support





  - Add Workspace git repo management operations
  - Add rename method for data flow, dataset, linked service, notebook, pipeline, spark job definition, sql script operations





  - Add Workspace operations
  - Add SqlPools operations
  - Add BigDataPools operations
  - Add IntegrationRuntimes operations



  - Migrated most long running operation to polling mechanism (operation now starts with `begin`)



  * Initial Release


pkgId: 1bbec138a456023b81722b31f29f28052bf3aedcaec4de1613378c751df82d8b
name: python-azure-synapse-nspkg
arch: src
version: 1.0.0
epoch: 0
release: 1
summary: Microsoft Azure Synapse Namespace Package [Internal]
url: https://github.com/Azure/azure-sdk-for-python/
rpm_license: MIT License
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-azure-synapse-nspkg-1.0.0-1.src.rpm
checksum_type: sha256
description:
  This is the Microsoft Azure Synapse namespace package.

  This package is not intended to be installed directly by the end user.

  It provides the necessary files for other packages to extend the
  azure.synapse namespace.

  The complete list of available packages can be found at:
  https://aka.ms/azsdk/python/all


pkgId: 0fb015a0de3603db7aa6464b1ffc62376347efed3ace5076298c27ae7a26b879
name: python-azure-synapse-spark
arch: src
version: 0.7.0
epoch: 0
release: 1
summary: Microsoft Azure Synapse Spark Client Library for Python
url: https://github.com/Azure/azure-sdk-for-python
rpm_license: MIT License
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-azure-synapse-spark-0.7.0-1.src.rpm
checksum_type: sha256
description:
  This is the Microsoft Azure Synapse Spark Client Library.
  This package has been tested with Python 2.7, 3.6, 3.7, 3.8 and 3.9.
  For a more complete view of Azure libraries, see the [azure sdk python release](https://aka.ms/azsdk/python/all).



  _Azure SDK Python packages support for Python 2.7 is ending 01 January 2022. For more information and questions, please refer to https://github.com/Azure/azure-sdk-for-python/issues/20691_



  For code examples, see [Synapse Spark](https://docs.microsoft.com/python/api/overview/azure/) on docs.microsoft.com.



  If you encounter any bugs or have suggestions, please file an issue in the
  [Issues](https://github.com/Azure/azure-sdk-for-python/issues)
  section of the project.

  ![Impressions](https://azure-sdk-impressions.azurewebsites.net/api/impressions/azure-sdk-for-python%2Fazure-synapse-spark%2FREADME.png)








  - Added `LivyStatementStates` and `LivyStates`



  - Updated API version to "2020-12-01"



  - Internal bugfixes (re-generated with latest generator)
  - Stop Python 3.5 support



  - Internal bugfixes (re-generated with latest generator)



  - Internal bugfixes (re-generated with latest generator)



  - Initial Release


pkgId: 02f4fcfff486fe67f9ded3a267ec0a3b9098bb4d2bae2e26a88d97f7df4a6423
name: python-azure-template
arch: src
version: 0.1.0b4167612
epoch: 0
release: 1
summary: Microsoft Azure Template Package Client Library for Python
url: https://github.com/Azure/azure-sdk-for-python
rpm_license: MIT License
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-azure-template-0.1.0b4167612-1.src.rpm
checksum_type: sha256
description:
  [![Build Status](https://dev.azure.com/azure-sdk/public/_apis/build/status/472?branchName=main)](https://dev.azure.com/azure-sdk/public/_build/latest?definitionId=472)



  This template package matches necessary patterns that the development team has established to create a unified SDK. The packages contained herein can be installed singly or as part of the `azure` namespace. Any other introductory text should go here.

  This package has been tested with Python 3.7+.

  For a more complete set of Azure libraries, see https://aka.ms/azsdk/python/all.



  For a rich example of a well formatted readme, please check [here.](https://github.com/Azure/azure-sdk/blob/main/docs/policies/README-TEMPLATE.md) In addition, this is an [example readme](https://github.com/Azure/azure-sdk/blob/main/docs/policies/README-EXAMPLE.md) that should be emulated. Note that the top-level sections in this template align with that of the [template.](https://github.com/Azure/azure-sdk/blob/main/docs/policies/README-TEMPLATE.md)



  Bullet point list of your library's main concepts.



  Examples of some of the key concepts for your library.



  Running into issues? This section should contain details as to what to do there.



  More sample code should go here, along with links out to the appropriate example tests.



  If you encounter any bugs or have suggestions, please file an issue in the [Issues](<https://github.com/Azure/azure-sdk-for-python/issues>) section of the project.

  ![Impressions](https://azure-sdk-impressions.azurewebsites.net/api/impressions/azure-sdk-for-python%2Fsdk%2Ftemplate%2Fazure-template%2FREADME.png)


pkgId: 3a660ff3455b5ead42cc270caf0c4da9139e1490ca714cf68202d3e3e6f0b1b8
name: python-azure-tools
arch: src
version: 0.1.3
epoch: 0
release: 1
summary: Convenience CLI tools to work with Microsoft Azure.
url: https://github.com/fepegar/azure-tools
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-azure-tools-0.1.3-1.src.rpm
checksum_type: sha256
description:
  ```shell
  uv tool install git+https://github.com/fepegar/azure-tools
  uvx aml download
  uvx aml snapshot
  ```





  ```shell
  run_id="khaki_jelly_s70lr4lk7b"
  config_path="workspace_properties.json"


  logs_dir="user_logs"

  uv tool install --python "<3.13" --prerelease=allow --with pip azure-cli
  uvx az extension remove --name ml
  uvx az extension add --name ml

  config_query='{resource_group: .resource_group, workspace_name: .name, subscription_id: (.id | split("/")[2])}'
  uvx az ml workspace show | uvx jq --raw-output $config_query > $config_path
  cat $config_path





  uvx --python "<3.13" --from azure-tools \
      aml download \
          --config $config_path \
          --run-id $run_id \
          --source-aml-path $logs_dir \
          --convert-logs

  uvx --from toolong tl $run_id/$logs_dir/*.log
  ```


pkgId: 507eb9e648f2543b0d7685df0783e412aade0871c0ac170bc3e8f7255fcc6202
name: python-azure-transcribe
arch: src
version: 0.4
epoch: 0
release: 1
summary: A Python library for interacting with Azure Transcription API
url: https://github.com/DCDie/azure-transcribe
rpm_license: Apache Software License
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-azure-transcribe-0.4-1.src.rpm
checksum_type: sha256
description:
  Azure-Transcribe is a service that transcribes speech from audio files to text using Microsoft Azure Cognitive Services.



  * Python (3.6 or higher)
  * azure-storage-blob


  Install using pip

  `pip install azure-transcribe`



  If you find bugs, need help, or want to talk to the developers, please write an issue on [GitHub](https://github.com/DCDie/azure-transcribe/issues).


pkgId: b961d497defd359fa28ba19a6cbe0762e003393711909a24c94473a09b097e61
name: python-azure_cis_scanner
arch: src
version: 0.3.5
epoch: 0
release: 1
summary: Azure CIS Scanner for security
url: https://github.com/praetorian-inc/azure_cis_scanner
rpm_license: GNU General Public License v2 (GPLv2)
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-azure_cis_scanner-0.3.5-1.src.rpm
checksum_type: sha256
description:
  Security Compliance Scanning tool for CIS Azure Benchmark 1.0
  The purpose of this scanner is to assist organizations in locking down their Azure environments following best practices in the Center for Internet Security Benchmark release Feb 20, 2018.  This repo was inspired by a similar scanner for AWS called Scout2.
  This project is not yet production ready and should only be run from a local machine not exposed to untrusted networks.


pkgId: 22e002b9381212b973472ed37ceea6d045f78937f9dec5813b867925b8fe1f5f
name: python-azurebatchload
arch: src
version: 0.6.3
epoch: 0
release: 1
summary: Download and upload files in batches from Azure Blob Storage Containers
url: https://github.com/zypp-io/azure-batch-load
rpm_license: MIT License
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-azurebatchload-0.6.3-1.src.rpm
checksum_type: sha256
description:
  <p align="center">
    <img alt="logo" src="https://www.zypp.io/static/assets/img/logos/zypp/white/500px.png"  width="200"/>
  </p>

  [![Downloads](https://pepy.tech/badge/azurebatchload)](https://pepy.tech/project/azurebatchload)
  [![PyPi](https://img.shields.io/pypi/v/azurebatchload.svg)](https://pypi.python.org/pypi/azurebatchload)
  [![Open Source](https://badges.frapsoft.com/os/v1/open-source.svg?v=103)](https://opensource.org/)
  [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)


  High level Python wrapper for the [Azure CLI](https://docs.microsoft.com/en-us/cli/azure/) to download or upload files in batches from or to Azure Blob Storage Containers.
  This project aims to be the [missing functionality](https://github.com/Azure/azure-storage-python/issues/554)
  in the Python SDK of Azure Storage since there is no possibility to download or upload batches of files from or to containers.
  The only option in the Azure Storage Python SDK is downloading file by file, which takes a lot of time.

  Besides doing loads in batches, since version `0.0.5` it's possible to set method to `single` which will use the
  [Azure Python SDK](https://github.com/Azure/azure-sdk-for-python/tree/master/sdk/storage/azure-storage-blob) to process files one by one.




  ```commandline
  pip install azurebatchload
  ```

  See [PyPi](https://pypi.org/project/azurebatchload/) for package index.

  **Note**: For batch uploads (`method="batch"`) Azure CLI has to be [installed](https://docs.microsoft.com/en-us/cli/azure/install-azure-cli)
  and [configured](https://docs.microsoft.com/en-us/cli/azure/get-started-with-azure-cli).
  Check if Azure CLI is installed through terminal:

  ```commandline
  az --version
  ```



  Azure Storage connection string has to be set as environment variable `AZURE_STORAGE_CONNECTION_STRING` or
  the seperate environment variables `AZURE_STORAGE_KEY` and `AZURE_STORAGE_NAME` which will be used to create the connection string.






  Azure-batch-load automatically checks for environment variables: `AZURE_STORAGE_CONNECTION_STRING`,
     `AZURE_STORAGE_KEY`and `AZURE_STORAGE_ACCOUNT`.
  So if the connection_string or storage_key + storage_account are set as environment variables,
     we can leave the argument `connection_string`, `account_key` and `account_name` empty:

  ```python
  from azurebatchload import Download

  Download(
     destination='../pdfs',
     source='blobcontainername',
     extension='.pdf'
  ).download()
  ```



  We can make skip the usage of the `Azure CLI` and just make use Python SDK by setting the `method="single"`:

  ```python
  from azurebatchload import Download

  Download(
     destination='../pdfs',
     source='blobcontainername',
     extension='.pdf',
     method='single'
  ).download()
  ```



  We can download a folder by setting the `folder` argument. This works both for `single` and `batch`.

  ```python
  from azurebatchload import Download

  Download(
     destination='../pdfs',
     source='blobcontainername',
     folder='uploads/invoices/',
     extension='.pdf',
     method='single'
  ).download()
  ```



  We can give a list of files to download with the `list_files` argument.
  Note, this only works with `method='single'`.

  ```python
  from azurebatchload import Download

  Download(
     destination='../pdfs',
     source='blobcontainername',
     folder='uploads/invoices/',
     list_files=["invoice1.pdf", "invoice2.pdf"],
     method='single'
  ).download()
  ```





  ```python
  from azurebatchload import Upload

  Upload(
     destination='blobcontainername',
     source='../pdf',
     extension='*.pdf'
  ).upload()
  ```



  ```python
  from azurebatchload import Upload

  Upload(
     destination='blobcontainername',
     source='../pdf',
     extension='*.pdf',
     method="single"
  ).upload()
  ```



  ```python
  from azurebatchload import Upload

  Upload(
     destination='blobcontainername',
     source='../pdf',
     list_files=["invoice1.pdf", "invoice2.pdf"],
     method="single"
  ).upload()
  ```



  With the `Utils.list_blobs` method we can do advanced listing of blobs in a container or specific folder in a container.
  We have several argument we can use to define our scope of information:

  - `name_starts_with`: This can be used to filter files with certain prefix, or to select certain folders: `name_starts_with=folder1/subfolder/lastfolder/`
  - `dataframe`: Define if you want a pandas dataframe object returned for your information.
  - `extended_info`: Get just the blob names or more extended information like size, creation date, modified date.


  ```python
  from azurebatchload import Utils

  list_blobs = Utils(container='containername').list_blobs()
  ```


  ```python
  from azurebatchload import Utils

  df_blobs = Utils(
     container='containername',
     dataframe=True
  ).list_blobs()
  ```


  ```python
  from azurebatchload import Utils

  list_blobs = Utils(
     container='containername',
     name_starts_with="foldername/"
  ).list_blobs()
  ```


  ```python
  from azurebatchload import Utils

  dict_blobs = Utils(
     container='containername',
     name_starts_with="foldername/",
     extended_info=True
  ).list_blobs()
  ```


  ```python
  from azurebatchload import Utils

  df_blobs = Utils(
     container='containername',
     name_starts_with="foldername/",
     extended_info=True,
     dataframe=True
  ).list_blobs()
  ```


pkgId: 6658166413a0f6b7ea4c29de3cc996438b1b50771ee7d0640a7d4bea299f7129
name: python-azurefunctions-extensions-base
arch: src
version: 1.0.0b2
epoch: 0
release: 1
summary: Base Python worker extension for Azure Functions.
url: https://pypi.org/project/azurefunctions-extensions-base/
rpm_license: MIT License
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-azurefunctions-extensions-base-1.0.0b2-1.src.rpm
checksum_type: sha256
description:
  This is the base library for allowing Python Function Apps to recognize and bind to SDk-types and HttpV2-types. It is not to be used directly.
  Instead, please reference one of the extending packages:
  * azurefunctions-extensions-bindings-blob
  * azurefunctions-extensions-http-fastapi


pkgId: ebeb5ea9444caadce6ac0f4f454b1ac104a78b037dd302a9f1de4e4df434e7ec
name: python-azurefunctions-extensions-bindings-blob
arch: src
version: 1.0.0b2
epoch: 0
release: 1
summary: Blob Python worker extension for Azure Functions.
url: https://pypi.org/project/azurefunctions-extensions-bindings-blob/
rpm_license: MIT License
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-azurefunctions-extensions-bindings-blob-1.0.0b2-1.src.rpm
checksum_type: sha256
description:
  This library allows Blob Trigger and Blob Input bindings in Python Function Apps to recognize and bind to client types from the
  Azure Storage Blob sdk.

  Blob client types can be generated from:

  * Blob Triggers
  * Blob Input

  [Source code](https://github.com/Azure/azure-functions-python-extensions/tree/main/azurefunctions-extensions-bindings-blob)
  [Package (PyPi)](https://pypi.org/project/azurefunctions-extensions-bindings-blob/)
  | API reference documentation
  | Product documentation
  | [Samples](hhttps://github.com/Azure/azure-functions-python-extensions/tree/main/azurefunctions-extensions-bindings-blob/samples)





  * Python 3.9 or later is required to use this package. For more details, please read our page on [Python Functions version support policy](https://learn.microsoft.com/en-us/azure/azure-functions/functions-versions?tabs=isolated-process%2Cv4&pivots=programming-language-python#languages).

  * You must have an [Azure subscription](https://azure.microsoft.com/free/) and an
  [Azure storage account](https://docs.microsoft.com/azure/storage/common/storage-account-overview) to use this package.


  Install the Azure Functions Extensions Bindings Blob library for Python with pip:

  ```bash
  pip install azurefunctions-extensions-bindings-blob
  ```


  If you wish to create a new storage account, you can use the
  [Azure Portal](https://docs.microsoft.com/azure/storage/common/storage-quickstart-create-account?tabs=azure-portal),
  [Azure PowerShell](https://docs.microsoft.com/azure/storage/common/storage-quickstart-create-account?tabs=azure-powershell),
  or [Azure CLI](https://docs.microsoft.com/azure/storage/common/storage-quickstart-create-account?tabs=azure-cli):

  ```bash


  az group create --name my-resource-group --location westus2


  az storage account create -n my-storage-account-name -g my-resource-group
  ```


  The Azure Functions Extensions Bindings Blob library for Python allows you to create a function app with a Blob Trigger or
  Blob Input and define the type as a BlobClient, ContainerClient, or StorageStreamDownloader. Instead of receiving
  an InputStream, when the function is executed, the type returned will be the defined SDK-type and have all of the
  properties and methods available as seen in the Azure Storage Blob library for Python.


  ```python
  import logging
  import azure.functions as func
  import azurefunctions.extensions.bindings.blob as blob

  @app.blob_trigger(arg_name="client",
                    path="PATH/TO/BLOB",
                    connection="AzureWebJobsStorage")
  def blob_trigger(client: blob.BlobClient):
      logging.info(f"Python blob trigger function processed blob \n"
                   f"Properties: {client.get_blob_properties()}\n"
                   f"Blob content head: {client.download_blob(encoding="utf-8").read(size=1)}")


  @app.route(route="file")
  @app.blob_input(arg_name="client",
                  path="PATH/TO/BLOB",
                  connection="AzureWebJobsStorage")
  def blob_input(req: func.HttpRequest, client: blob.BlobClient):
      logging.info(f"Python blob input function processed blob \n"
                   f"Properties: {client.get_blob_properties()}\n"
                   f"Blob content head: {client.download_blob(encoding="utf-8").read(size=1)}")
  ```



  The SDK-types raise exceptions defined in [Azure Core](https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/core/azure-core/README.md).

  This list can be used for reference to catch thrown exceptions. To get the specific error code of the exception, use the `error_code` attribute, i.e, `exception.error_code`.





  Get started with our [Blob samples](hhttps://github.com/Azure/azure-functions-python-extensions/tree/main/azurefunctions-extensions-bindings-blob/samples).

  Several samples are available in this GitHub repository. These samples provide example code for additional scenarios commonly encountered while working with Storage Blobs:

  * [blob_samples_blobclient](https://github.com/Azure/azure-functions-python-extensions/tree/main/azurefunctions-extensions-bindings-blob/samples/blob_samples_blobclient)  - Examples for using the BlobClient type:
      * From BlobTrigger
      * From BlobInput

  * [blob_samples_containerclient](https://github.com/Azure/azure-functions-python-extensions/tree/main/azurefunctions-extensions-bindings-blob/samples/blob_samples_containerclient) - Examples for using the ContainerClient type:
      * From BlobTrigger
      * From BlobInput

  * [blob_samples_storagestreamdownloader](https://github.com/Azure/azure-functions-python-extensions/tree/main/azurefunctions-extensions-bindings-blob/samples/blob_samples_storagestreamdownloader) - Examples for using the StorageStreamDownloader type:
      * From BlobTrigger
      * From BlobInput


  For more information on the Azure Storage Blob SDK, see the [Azure Blob storage documentation](https://docs.microsoft.com/azure/storage/blobs/) on docs.microsoft.com
  and the [Azure Storage Blobs README](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/storage/azure-storage-blob).


  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.


pkgId: 58e608e1cb865673437c5eb9913a42a025e799af229105908f95466008274cd4
name: python-azurefunctions-extensions-http-fastapi
arch: src
version: 1.0.0b1
epoch: 0
release: 1
summary: FastApi Python worker extension for Azure Functions.
url: https://pypi.org/project/azurefunctions-extensions-http-fastapi/
rpm_license: MIT License
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-azurefunctions-extensions-http-fastapi-1.0.0b1-1.src.rpm
checksum_type: sha256
description:
  This library contains HttpV2 extensions for FastApi Request/Response types to use in your function app code.

  [Source code](https://github.com/Azure/azure-functions-python-extensions/tree/main/azurefunctions-extensions-http-fastapi)
  | [Package (PyPi)](https://pypi.org/project/azurefunctions-extensions-http-fastapi/)
  | API reference documentation
  | Product documentation
  | [Samples](hhttps://github.com/Azure/azure-functions-python-extensions/tree/main/azurefunctions-extensions-http-fastapi/samples)





  * Python 3.8 or later is required to use this package. For more details, please read our page on [Python Functions version support policy](https://learn.microsoft.com/en-us/azure/azure-functions/functions-versions?tabs=isolated-process%2Cv4&pivots=programming-language-python#languages).



  1. Follow the guide to [create an app](https://learn.microsoft.com/en-us/azure/azure-functions/create-first-function-cli-python?tabs=windows%2Cbash%2Cazure-cli%2Cbrowser).
  2. Ensure your app is using programming model v2 and contains a http trigger function.
  3. Add ```azurefunctions-extensions-http-fastapi``` to your requirements.txt
  4. Import Request and different types of responses from ```azurefunctions.extensions.http.fastapi``` in your HttpTrigger functions.
  5. Change the request and response types to ones imported from ```azurefunctions.extensions.http.fastapi```.
  6. Run your function app and try it out!


  The Azure Functions Extensions Http FastApi library for Python allows you to create a function app with FastApi Request or Response types. When your function runs, you will receive the request of FastApi Request type and you can return a FastApi response type instance. FastApi is one of top popular python web framework which provides elegant and powerful request/response types and functionalities to users. With this integration, you are empowered to use request/response the same way as using them in native FastApi. A good example is you can do http streaming upload and streaming download now! Feel free to check out [Fastapi doc](https://fastapi.tiangolo.com/reference/responses/?h=custom) for further reference.


  ```python




  import azure.functions as func
  from azurefunctions.extensions.http.fastapi import Request, JSONResponse

  app = func.FunctionApp(http_auth_level=func.AuthLevel.ANONYMOUS)

  @app.route(route="streaming_upload", methods=[func.HttpMethod.POST])
  async def streaming_upload(req: Request) -> JSONResponse:
      """Handle streaming upload requests."""
      
      async for chunk in req.stream():
          process_data_chunk(chunk)

      
      return JSONResponse({"status": "Data uploaded and processed successfully"})

  def process_data_chunk(chunk: bytes):
      """Process each data chunk."""
      
      pass
  ```





  Get started with our [FastApi samples](hhttps://github.com/Azure/azure-functions-python-extensions/tree/main/azurefunctions-extensions-http-fastapi/samples).

  Several samples are available in this GitHub repository. These samples provide example code for additional scenarios commonly encountered while working with FastApi:

  * [fastapi_samples_streaming_upload](https://github.com/Azure/azure-functions-python-extensions/tree/main/azurefunctions-extensions-http-fastapi/samples/fastapi_samples_streaming_upload) - An example on how to send and receiving a streaming request within your function.

  * [fastapi_samples_streaming_download](https://github.com/Azure/azure-functions-python-extensions/tree/main/azurefunctions-extensions-http-fastapi/samples/fastapi_samples_streaming_download) - An example on how  to send your http response via streaming to the caller.t


  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.


pkgId: 367fb7b937f407be1625e9a12dd92cc195393ce4ebd4b09d11603ad8f56e2d61
name: python-azureml-ai-monitoring
arch: src
version: 1.0.0
epoch: 0
release: 1
summary: Microsoft Azure Machine Learning Python SDK v2 for collecting model data during operationalization
url: https://pypi.org/project/azureml-ai-monitoring/
rpm_license: MIT License
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-azureml-ai-monitoring-1.0.0-1.src.rpm
checksum_type: sha256
description:
  The `azureml-ai-monitoring` package provides an SDK to enable Model Data Collector (MDC) for custom logging allows customers to collect data at arbitrary points in their data pre-processing pipeline. Customers can leverage SDK in `score.py` to log data to desired sink before, during, and after any data transformations.



  Start by importing the `azureml-ai-monitoring` package in `score.py`

  ```
  import pandas as pd
  import json
  from azureml.ai.monitoring import Collector

  def init():
    global inputs_collector, outputs_collector

    
    inputs_collector = Collector(name='model_inputs')
    outputs_collector = Collector(name='model_outputs')

  def run(data):
    
    pdf_data = preprocess(json.loads(data))

    
    input_df = pd.DataFrame(pdf_data)

    
    context = inputs_collector.collect(input_df)

    
    output_df = predict(input_df)

    
    outputs_collector.collect(output_df, context)

    return output_df.to_dict()

  def preprocess(json_data):
    
    return json_data["data"]

  def predict(input_df):
    
    ...

    return output_df
  ```

  Create environment with base image `mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04` and conda dependencies, then build the environment.

  ```
  channels:
    - conda-forge
  dependencies:
    - python=3.8
    - pip=22.3.1
    - pip:
        - azureml-defaults==1.38.0
        - azureml-ai-monitoring
  name: model-env
  ```

  Create deployment with custom logging enabled (model_inputs and model_outputs are enabled) and the environment you just built, please update the yaml according to your scenario.

  ```

  $schema: http://azureml/sdk-2-0/OnlineDeployment.json

  endpoint_name: my_endpoint #unchanged
  name: blue #unchanged
  model: azureml:my-model-m1:1 #azureml:models/<name>:<version> #unchanged
  environment: azureml:custom-logging-env@latest #unchanged
  data_collector:
    collections:
      model_inputs:
        enabled: 'True'
      model_outputs:
        enabled: 'True'
  ```



  By default, we'll raise the exception when there is unexpected behavior (like custom logging is not enabled, collection is not enabled, not supported data type), if you want a configurable on_error, you can do it with

  ```
  collector = Collector(name="inputs", on_error=lambda e: logging.info("ex:{}".format(e)))
  ```





  **Announcement**

  - Publish official version v1.0.0.



  **Improvements**

  - improve error msg when queue is full.
  - Increase msg queue to handle more requests.



  **Improvements**

  - fix install_requires
  - fix classifiers
  - fix README



  **New Features**

  - Support local capture



  **New Features**

  - Support model data collection for pandas Dataframe.


pkgId: 81ca2b1e5232a3a2e2456e3cbe539e42c271021d91dca027cf75adef05f21c75
name: python-azurerm
arch: src
version: 0.10.0
epoch: 0
release: 1
summary: Azure Resource Manager REST wrappers
url: http://github.com/gbowerman/azurerm
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-azurerm-0.10.0-1.src.rpm
checksum_type: sha256
description:
  Easy to use Python library for Azure Resource Manager.

  The azurerm library provides wrapper functions for the Azure REST api. It doesn't include every option for every API call but it is easy to extend. The goal is to make it easy to call the API from Python using the latest API versions (in some cases before the official SDKs are available).

  Note: This is not an official Microsoft library, just some REST wrappers to make it easier to call the Azure REST API. For the official Microsoft Azure library for Python please go here: <a href="https://github.com/Azure/azure-sdk-for-python">https://github.com/Azure/azure-sdk-for-python</a>.


  For what's new in the most recent version refer to the [Changelog](https://github.com/gbowerman/azurerm/blob/master/changelog.md).

  For occasional azurerm code samples and announcements see the [azurerm blog](https://msftstack.wordpress.com/?s=azurerm).


  1. pip install azurerm
  2. To call these functions you need an authentication token. One way to get this is by creating a Service Principal, another is to get a bearer token using CLI.


  For a semi-permanent/hardcoded way to authenticate, you can create a "Service Principal" for your application (an application equivalent of a user). Once you've done this you'll have 3 pieces of information: A tenant ID, an application ID, and an application secret. You will use these to create an authentication token. For more information on how to get this information go here: [Authenticating a service principal with Azure Resource Manager](https://azure.microsoft.com/en-us/documentation/articles/resource-group-authenticate-service-principal/). See also: [Azure Resource Manager REST calls from Python](https://msftstack.wordpress.com/2016/01/05/azure-resource-manager-authentication-with-python/). Make sure you create a service principal with sufficient access rights, like "Contributor", not "Reader".


  When you run a CLI command, it caches an authentication token which you can use with azurerm calls. Recent versions of CLI have a command which returns an authentication token: _az account get-access-token_. Azurerm has added a new function to get the Azure authentication token from CLI's local cache:
  ```
  azurerm.get_access_token_from_cli()
  ```
  This saves you from having to create a Service Princial at all. Note: This function will fail unless you have an unexpired authentication token in your local CLI cache. I.e. you have run _az login_ on the same machine recently.

  Example authenticating using the Azure Portal Cloud Shell:
  ```
  me@Azure:-$ pip install --user --upgrade azurerm
  me@azure:-$ python
  >>> import azurerm
  >>> token = azurerm.get_access_token_from_cli()
  >>> azurerm.list_subscriptions(token)
  ```


  See below for some simple examples. A detailed set of **azurerm** programming examples can be found here: [azurerm Python library programming examples](https://github.com/gbowerman/azurerm/blob/master/examples.md). For more examples look at the [azurerm examples library](https://github.com/gbowerman/azurerm/tree/master/examples).

  For full documentation see [azurerm reference manual](https://github.com/gbowerman/azurerm/tree/master/docs).

  See also the unit test suite which covers the main storage, network, compute functions - the goal is to expand it to test every function in the library: [test](https://github.com/gbowerman/azurerm/tree/master/test)


  To use this library with national or isolated clouds, set environment variables to override the public default endpoints.

  E.g. bash shell example for China..
  ```
    export AZURE_RM_ENDPOINT='https://management.chinacloudapi.cn'
    export AZURE_AUTH_ENDPOINT='https://login.chinacloudapi.cn/'
    export AZURE_RESOURCE_ENDPOINT='https://management.core.chinacloudapi.cn/'
  ```


  ```
  import azurerm



  tenant_id = 'your-tenant-id'
  application_id = 'your-application-id'
  application_secret = 'your-application-secret'

  access_token = azurerm.get_access_token(tenant_id, application_id, application_secret)


  subscriptions = azurerm.list_subscriptions(access_token)
  for sub in subscriptions['value']:
      print(sub['displayName'] + ': ' + sub['subscriptionId'])


  subscription_id = subscriptions['value'][0]['subscriptionId']


  print('Enter Resource group name to create.')
  rgname = input()
  location = 'southeastasia'
  rgreturn = azurerm.create_resource_group(access_token, subscription_id, rgname, location)
  print('Create RG return code: ' + str(rgreturn.status_code)


  resource_groups = azurerm.list_resource_groups(access_token, subscription_id)
  for rg in resource_groups['value']:
      print(rg["name"] + ', ' + rg['location'] + ', ' + rg['properties']['provisioningState'])
  ```


  See [create_vm.py](https://github.com/gbowerman/azurerm/tree/master/examples/create_vm.py).

  See also an example to create a VM Scale Set [create_vmss.py](https://github.com/gbowerman/azurerm/tree/master/examples/create_vmss.py).


  See [createmediaserviceaccountinrg.py](https://github.com/gbowerman/azurerm/tree/master/examples/createmediaserviceaccountinrg.py)


  A basic set of infrastructure create, list, query functions are implemented. If you want to add something please send me a PR (don't forget to update this readme too).

  See the [Function reference](https://github.com/gbowerman/azurerm/tree/master/docs) for full documentation.


pkgId: 765a432631bd84250cd26457afb1b90a302c19e7968ebb9eb88103e07da66ce1
name: python-azurpaint
arch: src
version: 1.0.1
epoch: 0
release: 1
summary: Azur Lane painting reconstructor/extractor.
url: https://github.com/Fernando2603/azurpaint
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-azurpaint-1.0.1-1.src.rpm
checksum_type: sha256
description:
  [![PyPI supported Python versions](https://img.shields.io/pypi/pyversions/azurpaint.svg)](https://pypi.python.org/pypi/azurpaint)
  [![MIT](https://img.shields.io/github/license/Fernando2603/azurpaint)](https://github.com/Fernando2603/azurpaint/blob/main/LICENSE)


  Azur Lane painting reconstructor/extractor.


  **Python 3.9.0 or higher is required**
  ```cmd
  pip install azurpaint
  ```



  Simple example to extract painting

  - create new folder
  - get and extract `/Android/obb/com.YoStarEN.AzurLane/*.obb` to new folder
  - copy `AssetBundles` from `/Android/data/com.YoStarEN.AzurLane/files/AssetBundles`

  > [!NOTE]
  > only `painting`, `paintings` and `paintingface` folder are required from `AssetBundles`.


  ```Python
  from pathlib import Path
  from azurpaint import Azurpaint
  from azurpaint.exception import PrefabNotFound


  def extract(asset_bundle_path, prefab_path):
    try:
      azurpaint = Azurpaint(asset_bundle_path, prefab_path)

      
      
      
      
      
      azurpaint.load_dependencies()

      
      return azurpaint.create()
    except PrefabNotFound:
      print(f"{prefab_path} is not an prefab.")



  def extract_all_face(asset_bundle_path, prefab_path, output_dir):
    try:
      azurpaint = Azurpaint(asset_bundle_path, prefab_path)
      azurpaint.load_dependencies()

      Path(output_dir).mkdir(parents=True, exist_ok=True)
      azurpaint.create().save(Path(output_dir, f"{azurpaint.prefab.name}-default.png"))

      for face in azurpaint.face_list:
        azurpaint.change_face(face)
        azurpaint.create().save(Path(output_dir, f"{azurpaint.prefab.name}-{face}.png"))

    except PrefabNotFound:
      print(f"{prefab_path} is not an prefab.")


  if __name__ == '__main__':
    
    
    extract('path_to/AssetBundles', 'painting/tashigan')
  ```

rpm_license:
  MIT License  Copyright (c) 2024 Fernando  Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:  The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.


pkgId: 4db6bca49a7f8b1663ad33aa067c8a38b71c2691237361911ec340aaa9ec3cee
name: python-b-aws-cdk-parallel
arch: src
version: 3.3.0
epoch: 0
release: 1
summary: Package that enables deployment of AWS CDK stacks in parallel.
url: https://github.com/biomapas/B.AwsCdkParallel.git
rpm_license: Apache License 2.0
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-b-aws-cdk-parallel-3.3.0-1.src.rpm
checksum_type: sha256
description:
  » Stack1: []
  × Stack2: [Stack1]
  × Stack3: [Stack1]
  × Stack4: [Stack1, Stack2, Stack3]
  × Stack5: [Stack1, Stack4]
  » Stack8: []
  × Stack7: [Stack1, Stack2, Stack3, Stack4, Stack5]
  × Stack6: [Stack1, Stack7]
  × Stack10: [Stack1, Stack6, Stack7]
  × Stack9: [Stack1, Stack8]
  » B-Aws-Cdk-Parallel-MainStack-3: []
  [Stack2]  Doing stuff...
  [Stack2]  Doing stuff...
  [Stack4]  Doing stuff...
  [Stack3]  Doing stuff...
  ```

  The library also exposes CLI access.
  To get usage help, simply run:
  ```
  acdk -h
  ```
  To deploy infrastructure, run:
  ```
  acdk deploy --path /project/app/
  ```
  To destroy infrastructure, run:
  ```
  acdk destroy --path /project/app/
  ```

  This project has integration tests based on pytest. To run tests, simply run:
  ```
  pytest b_aws_cdk_parallel_test/integration/tests
  ```

  Found a bug? Want to add or suggest a new feature?<br>
  Contributions of any kind are gladly welcome. You may contact us
  directly, create a pull-request or an issue in github platform.
  Lets modernize the world together.


  * Add `--max-parallel-deployments` CLI flag to allow control of number the of stack deployments
    that run at the same time. For larger projects this can significantly reduce the amount of
    memory used when deploying a highly parallel stack.

  * Remove `aws-cdk.core` dependency as it is probably not needed (if the project is developed
    with AWS CDK anyways it will have `core` module installed). By removing this dependency both
    `V1` and `V2` versions of AWS CDK should work.

  * Fix dependencies.
  * Remove unnecessary dependencies.

  * cdk v2 compatibility.
  * Use the stack displayName when calling the cdk deploy command.

  * Improve parallel stack deployments by introducing `--exclusively` flag.
  * Make dependencies graph beautiful.
  * Output beautiful stack names (not aws cdk generated names).
  * Fix --path CLI bug.

  * Support "--parameters".
  * Support "--context".
  * Support specifying stacks.
  * Add a lot more tests.

  * Expose CLI command `acdk` to enable deployment/destruction through CLI.

  * Major bug fixes for resolving stack dependencies. The algorithm for parallel stack destruction has fundamentally changed.
  * Added integration tests to test against an actual AWS environment.
  * More improvements will come for 2.1.0.

  * Do not rebuild assets on destroy.

  * Do not rebuild assets on deployment.

  * Add ability to control maximum parallel deployments.

  * Complete rework of the project. Build a dependency tree to determine what to deploy.

  * Raise exception in case of a failed deployment.

  * Cdk list command should also receive path and environment.

  * Add ability to specify CDK path and environment variables for processes.

  * Add ability to retry main deployment too.

  * Refactor project to make it more debug-friendly.

  * Upgrade dependencies.

  * Initial build.


pkgId: 047431a9a63cfcc7088e8a6d3fd81af5c7f170da4521a35114b715cb0a4eb572
name: python-b-aws-testing-framework
arch: src
version: 1.0.1
epoch: 0
release: 1
summary: AWS infrastructure testing framework that supports multiple IAC tools.
url: https://github.com/biomapas/B.AwsTestingFramework.git
rpm_license: Apache License 2.0
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-b-aws-testing-framework-1.0.1-1.src.rpm
checksum_type: sha256
description:
  A python based AWS infrastructure testing micro-framework.<br>
  It supports multiple IAC tools like AWS CDK and AWS CloudFormation.



  Creating infrastructure in AWS is quite hard. There are many nuances,
  pitfalls and "gotchas" that sometimes are awfully frustrating. Often some
  IAC code changes might result in some unexpected infrastructure changes.
  That is why the created infrastructure should have automated integration tests.
  This python based framework provides you basic functionality to help you
  write unit ant integration tests to test AWS infrastructure created
  via UI or via tools like AWS CDK.

  The framework is based on pytest - a python based testing library. With that
  said, all pytest functionality and configs can be applied on this framework too.

  The framework is easy to use with explicit examples for each IAC tool. Go to
  examples section and find which example suits you the most.



  [Biomapas](https://biomapas.com) aims to modernise life-science
  industry by sharing its IT knowledge with other companies and
  the community. This is an open source library intended to be used
  by anyone. Improvements and pull requests are welcome.



  - Python 3
  - Pytest
  - AWS CDK
  - AWS CloudFormation



  The project assumes the following:

  - You have basic-good knowledge in python programming.
  - You have basic-good knowledge in AWS.
  - You have basic knowledge in testing.



  - Read more about pytest:<br>
  https://docs.pytest.org/en/latest/



  The project is built and uploaded to PyPi. Install it by using pip.

  ```
  pip install b_aws_testing_framework
  ```

  Or directly install it through source.

  ```
  pip install .
  ```



  The framework uses flexible credentials management. You can either
  set credentials in the constructor:
  ```python
  from b_aws_testing_framework.credentials import Credentials
  Credentials(
      aws_access_key_id='key',
      aws_secret_access_key='secret',
      region_name='region'
  )
  ```

  Or you can set the environment:
  ```
  set AWS_ACCESS_KEY_ID=key
  set AWS_SECRET_ACCESS_KEY=key
  set AWS_DEFAULT_REGION=region
  ```

  And then in your python program:
  ```python
  from b_aws_testing_framework.credentials import Credentials
  Credentials()
  ```

  After setting the credentials you can set a `global prefix`. Global prefix
  is a globally accessible peace of string that can be used when naming AWS
  resources. This is extremely useful when running tests in CI/CD pipelines
  where we can have more than one parallel pipeline running. To access and
  manage a global prefix, import your testing manager and use these commands:
  ```python

  TestingManager.set_global_prefix()


  CdkStack(
      scope=scope,
      id=f'{TestingManager.get_global_prefix()}TestingStackId',
      stack_name=f'{TestingManager.get_global_prefix()}TestingStackName'
  )
  ```

  See the specific examples for specific tools:

  - [Testing AWS CDK based projects](https://github.com/Biomapas/B.AwsTestingFramework/blob/master/documentation/example-cdk.md)
  - [Testing CloudFormation based projects](https://github.com/Biomapas/B.AwsTestingFramework/blob/master/documentation/example-cf.md)



  The project has tests that can be run.
  Note, that tests are integration tests inherently because they
  test how resources are created in AWS environment. Since resources
  are created and tested in AWS you are subject for all the applicable
  charges while tests are being run.



  Before running tests set environment variables:
  - AWS_ACCESS_KEY_ID
  - AWS_SECRET_ACCESS_KEY
  - AWS_DEFAULT_REGION

  Or:
  - AWS_PROFILE
  - AWS_DEFAULT_REGION



  Then run tests from a root directory with `pytest` python testing library.

  Testing *CloudFormation* functionality:
  ```
  pytest b_aws_testing_framework_test/tools/testing_with_cf
  ```

  Testing *Cloud Development Kit* functionality:
  ```
  pytest b_aws_testing_framework_test/tools/testing_with_cdk
  ```

  Note that integration tests usually take a while to complete (from 5 to 30
  minutes on average).



  Found a bug? Want to add or suggest a new feature?<br>
  Contributions of any kind are gladly welcome. You may contact us
  directly, create a pull-request or an issue in github platform.
  Lets modernize the world together.





  * Update pipelines to fix "unclosed SSLSocket" warnings.


  * Upgrade CDK support from v1 to v2.
  * Upgrade GitHub pipelines checkout version from v2 to v3.
  * Upgrade biomapas/cicd-full image version to 5.0.0.


  * Too many bugs. Revert.


  * Warn if not cdk tool was found.


  * Make sure to exit after successful cdk execution.


  * Use "." instead of "source".


  * Execute cdk command in the same shell to preserve environment.


  * Allow running cdk command even though it might be now defined globally.


  * Pass config object to custom actions.


  * Fix version retrieval.


  * For the default SSM parameter name use "name" instead of "global prefix".


  * Make sure default SSM parameter is unique.


  * Add default SSM parameter for package version.


  * Fix logging issues.
  * Run prehooks on session-start and session-finish.
  * Add more logging.


  * Fix warnings.


  * Bug fixes.


  * Add ability to specify custom deployment command in AWS CDK flow (destroy action).


  * Add ability to specify custom deployment command in AWS CDK flow (deploy action).


  * Allow to override the TestingStack's name.


  * Update boto version requirement.


  * Prettify example CDK project.


  * Add prefixes for CF outputs too.
  * Prettify CDK testing.


  * Add ability to specify session token.


  * Remove root path from cdk config in the documentation.


  * Make sure that Python path is propagated to the process.


  * Expose global prefix in the Testing stack.
  * Update example project.
  * Add ability to specify root project to fix import errors.
  * Updated tests.
  * Update documentation.


  * Improve documentation with better cdk project examples.
  * Add an example cdk project.
  * Remove test coverage.


  * Add testing stack for more convenient CF outputs management.
  * Update documentation.
  * Add docstrings.
  * Updates tests and conftest configuration files.
  * Version bump.


  * Add a flag to specify whether the infrastructure should be destroyed
  before creating a new one.


  * Add documentation about global prefix in readme.


  * Create a global prefix for unique resources.


  * Create github pipelines.
  * Update code.


  * Make sure CDK deploy works both on linux based systems and windows based systems.


  * Bug fix related to environment.


  * Update pytest dependency version.


  * Rethink how this framework should be used.


  * Fix imports.
  * Update examples.


  * Rename project.
  * Update gitignore and ignore idea files.
  * Update MANIFEST.
  * Move examples to a documentation folder.


  * Add hyperlinks for examples.


  * Initial build.


pkgId: 55dca07f002cb4d6348d58227bbec4f23fd88420a953f2515fc3576538d07362
name: python-b-cfn-api-v2
arch: src
version: 5.0.0
epoch: 0
release: 1
summary: Convenient wrapper around CfnApi.
url: https://github.com/biomapas/B.CfnApiV2.git
rpm_license: Apache License 2.0
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-b-cfn-api-v2-5.0.0-1.src.rpm
checksum_type: sha256
description:
  ![Pipeline](https://github.com/Biomapas/B.CfnApiV2/workflows/Pipeline/badge.svg?branch=master)

  An API Gateway resource that adds convenient functionality over traditional `CfnApi` resource.
  It lets you easily enable authorization, stages, and CDNs.



  Essentially this resource is a wrapper resource for `aws_apigatewayv2` module's `CfnApi`. Meaning,
  that you can easily swap `CfnApi` and this `Api` resource with no major impact. But why would you
  want to switch a traditional `CfnApi` to this one. Mainly these convenient features:
  - Easy to add `CloudFront` distribution on top of the API (enabling CDN).
  - Easy to enable `Stage` and attached to the api.
  - Easy to add authorization with `UserPoolAuthorizer` & `ApiKeyAuthorizer`.



  [Biomapas](https://www.biomapas.com/) aims to modernise life-science industry by sharing its IT knowledge with other companies and the community.
  This is an open source library intended to be used by anyone.
  Improvements and pull requests are welcome.



  - Python3
  - AWS CDK
  - AWS Lambda
  - AWS API Gateway
  - AWS CloudFront
  - AWS User Pool authorization



  This project assumes you know what Lambda functions are and how code is being shared between them
  (Lambda layers).

  - Excellent knowledge in IaaC (Infrastructure as a Code) principles.
  - Excellent knowledge in Lambda functions and API Gateway service.
  - Good experience in AWS CDK and AWS CloudFormation.



  - AWS CDK:<br>https://docs.aws.amazon.com/cdk/api/latest/docs/aws-construct-library.html
  - AWS CloudFormation:<br>https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html
  - AWS API Gateway:<br>https://docs.aws.amazon.com/apigateway/latest/developerguide/welcome.html
  - AWS API Gateway V2:<br>https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html
  - Custom User Pool Authorizer:<br>https://github.com/Biomapas/B.CfnCustomUserPoolAuthorizer
  - Custom api key authorizer:<br>https://github.com/Biomapas/B.CfnCustomApiKeyAuthorizer
  - Custom user pool authorizer:<br>https://github.com/Biomapas/B.CfnCustomUserPoolAuthorizer



  Before installing this library, ensure you have these tools setup:

  - Python / Pip
  - AWS CDK

  To install this project from source run:

  ```
  pip install .
  ```


  Or you can install it from a PyPi repository:

  ```
  pip install b-cfn-api-v2
  ```




  The traditional way of creating an API looks something like this:

  ```python
  from aws_cdk.aws_apigatewayv2 import CfnApi

  CfnApi(
      scope=Stack(),
      id='Api',
      name='Api',
      description='Sample description.',
      protocol_type='HTTP',
      cors_configuration=CfnApi.CorsProperty(
          allow_methods=['GET', 'PUT', 'POST', 'OPTIONS', 'DELETE'],
          allow_origins=['*'],
          allow_headers=[
              'Content-Type',
              'Authorization'
          ],
          max_age=300
      )
  )
  ```

  To create our resource `Api` is exactly the same:<br>
  (It works since `Api` is a pure wrapper of `CfnApi` resource.)

  ```python
  from b_cfn_api_v2.api import Api

  Api(
      scope=Stack(),
      id='Api',
      name='Api',
      description='Sample description.',
      protocol_type='HTTP',
      cors_configuration=Api.CorsProperty(
          allow_methods=['GET', 'PUT', 'POST', 'OPTIONS', 'DELETE'],
          allow_origins=['*'],
          allow_headers=[
              'Content-Type',
              'Authorization'
          ],
          max_age=300
      )
  )
  ```

  Three main advantages of this `Api` resource:

  - **Easy to enable default stage.**

  ```python
  from b_cfn_api_v2.api import Api

  api = Api(...)
  api.enable_default_stage('dev')
  ```

  - **Easy to enable authorization.**

  ```python
  from b_cfn_api_v2.api import Api
  from b_cfn_custom_userpool_authorizer.config.user_pool_config import UserPoolConfig

  api = Api(...)





  api.enable_user_pool_authorizer(UserPoolConfig(
      user_pool_id='id',
      user_pool_region='region',
      user_pool_client_id='client'
  ))





  api.enable_api_key_authorizer()
  ```

  - **Easy to enable CDN.**

  ```python
  from b_cfn_api_v2.api import Api
  from aws_cdk.aws_cloudfront import CachePolicy

  api = Api(...)
  api.enable_cdn(default_behavior_cache_policy=CachePolicy.CACHING_OPTIMIZED)
  ```



  This package has integration tests based on **pytest**.
  To run tests simply run:

  ```
  pytest b_cfn_api_v2_test/integration/tests
  ```



  Found a bug? Want to add or suggest a new feature?
  Contributions of any kind are gladly welcome.
  You may contact us directly, create a pull-request or an issue in github platform.
  Lets modernize the world together.





  * Upgrade CDK support from v1 to v2.
  * Upgrade GitHub pipelines checkout version from v2 to v3.
  * Set GitHub pipelines node version 18.
  * Set GitHub pipelines python version 3.10.


  * Fix origin paths between pure api or its cloudfront distribution.
    Both should require stage name to be entered as a part of a URL.
    This is a breaking change.


  * Enable easy stage logging.


  * Upgrade breaking dependencies.


  * Make dependencies range more loose with maximum version not reaching `2.0.0`.


  * Use the newest `2.0.0` custom api keys authorizer which now hashes
  api secrets and is no longer compatible with previous versions.


  * Update readme.


  * Implement api keys custom authorizer (https://github.com/Biomapas/B.CfnCustomApiKeyAuthorizer).


  * Fully documented, tested, and working version release.


  * Initial build.


pkgId: dec342f7c4f206a377648bf9b2dacb38698c0bece6f84dd9d8ac244953fe2276
name: python-b-cfn-custom-api-key-authorizer
arch: src
version: 3.0.0
epoch: 0
release: 1
summary: Enables ApiKey functionality (like in ApiGateway V1) for ApiGateway V2.
url: https://github.com/biomapas/B.CfnCustomApiKeyAuthorizer.git
rpm_license: Apache License 2.0
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-b-cfn-custom-api-key-authorizer-3.0.0-1.src.rpm
checksum_type: sha256
description:
  ![Pipeline](https://github.com/Biomapas/B.CfnCustomApiKeyAuthorizer/workflows/Pipeline/badge.svg?branch=master)

  An AWS CDK resource that enables protection of your public APIs by
  using Api Keys (ApiKey and Secret).



  This custom authorizer enables Api Key functionality
  (something similar to ApiGateway V1 version: https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-setup-api-key-with-console.html)

  APIs created via ApiGateway V2 do not have Api Key authorization functionality out-of-the-box.
  If you want to protect your V2 API by generating a secret key and giving only for the
  intended clients - this library is just for you. This library allows you to protect you
  ApiGatewayV2-based endpoints with a combination of ApiKey and ApiSecret. Refer to usages & examples
  to understand how to use this library.

  The authorizer library exposes these lambda functions that can be called directly:
  - `authorizer` - _ApiKeysAuthorizerFunction_ - used by a custom (this) authorizer that is attached to your API.
  - `deleter` - _ApiKeysDeleterFunction_ - allows revoking access to your API i.e. deletes api keys.
  - `exists` - _ApiKeysExistsFunction_ - allows you to check whether a given API key exists in the database.
  - `generator` - _ApiKeysGeneratorFunction_ - generates api key and api secret pair and saves in an internal database.
  - `validator` - _ApiKeysValidatorFunction_ - validates given api key and api secret against the ones in the database.



  [Biomapas](https://www.biomapas.com/) aims to modernise life-science industry by sharing its IT knowledge with other
  companies and the community. This is an open source library intended to be used by anyone. Improvements and pull
  requests are welcome.



  - Python3
  - AWS CDK
  - AWS CloudFormation
  - AWS API Gateway
  - AWS API Gateway Authorizer
  - AWS Lambda



  This project assumes you are an expert in infrastructure-as-code via AWS CloudFormation and AWS CDK. You must clearly
  understand how AWS API Gateway endpoints are protected with Authorizers / Custom Authorizers and how it is managed via
  CloudFormation or CDK.

  - Excellent knowledge in IaaC (Infrastructure as a Code) principles.
  - Excellent knowledge in API Gateway, Authorizers.
  - Good experience in AWS CDK and AWS CloudFormation.
  - Good Python skills and basics of OOP.



  - AWS CDK:<br>https://docs.aws.amazon.com/cdk/api/latest/docs/aws-construct-library.html
  - AWS CloudFormation:<br>https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html
  - API Gateway with
    CloudFormation:<br>https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html
  - AWS Custom
    Authorizers:<br>https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-use-lambda-authorizer.html



  Before installing this library, ensure you have these tools setup:

  - Python / Pip
  - AWS CDK

  To install this project from source run:

  ```
  pip install .
  ```

  Or you can install it from a PyPi repository:

  ```
  pip install b-cfn-custom-api-key-authorizer
  ```



  Firstly, create an api and stage:

  ```python
  from aws_cdk.aws_apigatewayv2 import CfnApi, CfnStage

  api = CfnApi(...)
  api_stage = CfnStage(...)
  ```

  Create api key custom authorizer:

  ```python
  from b_cfn_custom_api_key_authorizer.custom_authorizer import ApiKeyCustomAuthorizer
  from b_cfn_custom_api_key_authorizer.authorization_type import AuthorizationType

  authorizer = ApiKeyCustomAuthorizer(
      scope=Stack(...),
      resource_name_prefix='MyCool',
      api=api,
      
      
      
      
  )
  ```

  Use that authorizer to protect your routes (endpoints):

  ```python
  from aws_cdk.aws_apigatewayv2 import CfnRoute

  route = CfnRoute(
      scope=Stack(...),
      id='DummyRoute',
      api_id=api.ref,
      route_key='GET /dummy/endpoint',
      authorization_type='CUSTOM',
      target=f'integrations/{integration.ref}',
      authorizer_id=authorizer.ref
  )
  ```

  Once your infrastructure is deployed, try calling your api endpoint. You will get "Unauthorized" error.

  ```python
  import urllib3

  response = urllib3.PoolManager().request(
      method='GET',
      url='https://your-api-url/dummy/endpoint',
      headers={},
  )

  >>> response.status
  >>> 401
  ```

  Create `ApiKey` and `ApiSecret` by invoking a dedicated api keys generator lambda function:

  ```python

  resource_name_prefix = 'MyCool'

  function_name = 'ApiKeysGeneratorFunction'

  function_name = resource_name_prefix + function_name

  response = boto3.client('lambda').invoke(
      FunctionName=function_name,
      InvocationType='RequestResponse',
  )

  response = json.loads(response['Payload'].read())
  api_key = response['ApiKey']
  api_secret = response['ApiSecret']
  ```

  Now try calling the same api with api keys:

  ```python
  import urllib3

  response = urllib3.PoolManager().request(
      method='GET',
      url='https://your-api-url/dummy/endpoint',
      headers={
          'ApiKey': api_key,
          'ApiSecret': api_secret
      },
  )

  >>> response.status
  >>> 200
  ```



  The authorizer exposes these lambda functions that can be called directly:
  - `authorizer` - ApiKeysAuthorizerFunction

  ```python
  response = boto3.client('lambda').invoke(
      FunctionName=prefix + 'ApiKeysAuthorizerFunction',
      InvocationType='RequestResponse',
      Payload=json.dumps({
          'ApiKey': '123',
          'ApiSecret': '123'
      }).encode()
  )

  response = json.loads(response['Payload'].read())



  print(response)
  ```

  - `deleter` - ApiKeysDeleterFunction

  ```python

  boto3.client('lambda').invoke(
      FunctionName=prefix + 'ApiKeysDeleterFunction',
      InvocationType='RequestResponse',
      Payload=json.dumps({
          'ApiKey': '123',
      }).encode()
  )
  ```

  - `exists` - ApiKeysExistsFunction

  ```python
  response = boto3.client('lambda').invoke(
      FunctionName=prefix + 'ApiKeysExistsFunction',
      InvocationType='RequestResponse',
      Payload=json.dumps({
          'ApiKey': '123',
      }).encode()
  )

  response = json.loads(response['Payload'].read())


  assert response['Exists'] is True
  ```

  - `generator` - ApiKeysGeneratorFunction

  ```python
  response = boto3.client('lambda').invoke(
      FunctionName=prefix + 'ApiKeysGeneratorFunction',
      InvocationType='RequestResponse',
  )

  response = json.loads(response['Payload'].read())

  api_key = response['ApiKey']
  api_secret = response['ApiSecret']
  ```

  - `validator` - ApiKeysValidatorFunction

  ```python
  response = boto3.client('lambda').invoke(
      FunctionName=prefix + 'ApiKeysValidatorFunction',
      InvocationType='RequestResponse',
      Payload=json.dumps({
          'ApiKey': '123',
          'ApiSecret': '123',
      }).encode()
  )

  response = json.loads(response['Payload'].read())


  assert response['Valid'] is True
  ```



  This package has integration tests based on **pytest**. To run tests simply run:

  ```

  pytest b_cfn_custom_api_key_authorizer_test/integration/tests

  ```



  Found a bug? Want to add or suggest a new feature? Contributions of any kind are gladly welcome. You may contact us
  directly, create a pull-request or an issue in github platform. Lets modernize the world together.






  * Upgrade CDK support from v1 to v2.
  * Upgrade GitHub pipelines checkout version from v2 to v3.
  * Set GitHub pipelines node version 18.
  * Set GitHub pipelines python version 3.10.



  * Update of `authorizer` function. Removing of sensitive information form lambda event implemented.



  * Remove unnecessary dependencies.



  * Add more integration tests.
  * Update README documentation.



  * Add ability to specify what type of authentication strategy to use.
    Support for both `ApiKey` / `ApiSecret` and `Authorization` headers.



  * Dollar sign excluded from API secret.



  * Restructured project.
  * All lambda functions are under `functions` directory.
  * Add `deleter` function to revoke api keys.
  * Add `exists` function to check whether given api key exists.
  * Add `validator` function to validate api key and api secret.
  * Increase the length of api key (15) and api secret (30).
  * Move authentication checking logic to a lambda layer.
  * Add more lambda-level logging.
  * Add more integrations tests (total 11 as of now).
  * **Very important security improvement** - api secrets are now hashed, to avoid
    leaks if the database is pawned. This is a standard password-level storage security.
  * Greatly improve documentation.



  * Create a dedicated lambda function to generate
    api keys. You should not interact with the database directly.



  * Prod-ready version.
  * Added documentation.
  * Added more tests.
  * Some code improvements.



  * Initial testing done. Authorizer works.
  * Need more tests and edge case handling before promoting to 1.0.0.



  * Initial build.


pkgId: 699dbe93d1ff369a642f7d8a373be1e3696a2c55a66760af2f9374c90fed4e85
name: python-b-cfn-lambda-integration
arch: src
version: 1.0.0
epoch: 0
release: 1
summary: AWS CDK based api gateway integration resource that creates a lambda integration as cfn resource.
url: https://github.com/biomapas/B.CfnLambdaIntegration.git
rpm_license: Apache License 2.0
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-b-cfn-lambda-integration-1.0.0-1.src.rpm
checksum_type: sha256
description:
  * Upgrade CDK support from v1 to v2.
  * Upgrade GitHub pipelines checkout version.
  * Upgrade biomapas/cicd-full image version to 5.0.0.


  * Expose lambda function.


  * Add tests to the pipeline.


  * Add ability to get a consistent hash from the integration class.


  * Add CI/CD pipelines.
  * Update History file.


  * Set default to 'POST' because we set default 'AWS_PROXY' and:
  HttpMethod must be POST for AWS_PROXY IntegrationType (Service: AmazonApiGatewayV2;).


  * Add payload version.


  * Generalize.


  * Initial build.


pkgId: a7904125aafc412a754d14415d4bfb5fda2b183da149a3b2548ef86dd671194c
name: python-b-stage-deployment
arch: src
version: 1.0.1
epoch: 0
release: 1
summary: AWS CDK resource that creates a stage deployment. Original one has too many bugs.
url: https://github.com/biomapas/B.StageDeployment.git
rpm_license: Apache License 2.0
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-b-stage-deployment-1.0.1-1.src.rpm
checksum_type: sha256
description:
  * Remove biomapas/cicd-full image from pipelines.


  * Upgrade CDK support from v1 to v2.
  * Upgrade GitHub pipelines checkout version from v2 to v3.
  * Set GitHub pipelines node version 18.
  * Set GitHub pipelines python version 3.10.


  * Increase the function timeout.


  * Update boto3 requirement.


  * Add more docstrings.


  * Initial build.


pkgId: 88632d89921aa479c695698a4360bccec1c2a5575ab14aacbd1e0d1ba63a6863
name: python-b2-plotter
arch: src
version: 4.0.5
epoch: 0
release: 1
url: https://github.com/psgebeline/b2_plotter
rpm_license: MIT License
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-b2-plotter-4.0.5-1.src.rpm
checksum_type: sha256
summary:
  A simple Python package for use by Belle II analysts to make various plots out of pandas dataframes and numpy arrays.

description:
  The `b2_plotter` package consists of the class Plotter(), whereby several plots based on numpy arrays and pandas dataframes can be created easily from interpretation of Belle II ROOT mDST files.




  - Bugfix getSigEff calculation with scale parameter


  - Add scale/bgscale functionality to plotFom, plotStep, getPurity, getSigEff (latter 2 renamed for consistency)


  - Use numpy's std instead of mean and add parenthesis to cut f string


  - Shift the data sidebands (when blinding is enabled) by +/- 3 sigma


  - Remove the actual duplicate data label..


  - Remove duplicate data label in plotData()


  - Again bugfix data plotting


  - Bugfix data plotting


  - Add signalregion and massvar to constructor call and remove it as a parameter from plotFom, getpurity, getsigeff
  - Split up plot into two functions, plotMC and plotData
      - Add blinding functionality to plotData function


  - Add blinding to invariant mass distributions through introduction of addBlinding parameter to initialization


  - Update example.ipynb


  - Bugfix missing call to colors parameter


  - Make colors() for plot an argument with default for all MC types, so that
  it can be overridden if needed


  - Bugfix additional root_pandas call



  - Remove deprecated root_pandas library, replace with uproot
  - Update main() with a working example usage for xi03pi
  - Add unit tests


  - 2.0.8 bugfix (missing comma)


  - Remove scaled signal feature -- will work on this on a later release
  - Specify the colors of plot() histograms since the signal was defaulting to grey


  - Bugfix to version 2.0.6, where scaled signal was not properly showing


  - Change functions to return plots instead of displaying them, and remove interactive feature
  - Add a scaled signal histogram to the plot function
  - Update dynamic range calculation in plotFom for isGreaterThan = False cuts to prevent division by zero errors


  - Add `cuts` argument to `plotFom`


  - Last push didnt include changes, so include bugfix
  - Add dist/, .pytest_cache, and .ipynb_checkpoints to git ignore


  - Bugfix call to numpy.histogram() (was called np.histogram)


  - Implement unit tests for constructor TypeError raises


  - Implement data plotting in plot()
  - Implement unit tests for functions in non-interactive mode


  - Set myrange = () in plotFom to enable the dynamic range calculation from v.1.0.5 if the user does not provide a range.


  - Implement dynamic range calculation in plotStep
  - Bugfix labels not showing up on plotFom for myrange = () (default)
  - Bugfix get_sigeff (missing period)


  - Bugfix (remove () from numpy.size, as size is a property, not a method)


  - Remove deprecated var total_bkg from plotFom()


  - Create example files for interactive session
  - Change massvar name to be consistent (massVar in get_purity but massvar in FOM, etc)
  - Implement dynamic range calculation in plotFom


  - Bugfix main and implement a for loop to plot multiple variables
  - Create usage details in README.md


  - Change readme such that recent versions are at the top
  - Remove `plotBias` function, as it is very niche
  - Remove unused parameter `myrange` in get_sigeff and get_purity
  - Add main() function
  - Add interactivity boolean in constructor call to decide whether or not to save plots to a .png or show them directly


  - Edit README.md
  - Remove tests/ directory (unit tests are not particularly useful for this package)
  - Rename directories so imports are more intuitive


  - Add unit tests
  - Switch backend to hatchling
  - Move metadeta to pyproject.toml and clean it up
  - Remove brackets from LICENSE.txt
  - Create tests/ directory


  Initial launch.


pkgId: 16b46d6b894e59b054b92ba15e8b374e8be66cffddd35193d2bfe751d3dc4580
name: python-b2-utils
arch: src
version: 0.2.10
epoch: 0
release: 1
summary: A useful package provided by B2BIT
url: https://gitlab.com/b2bit.felipesena/b2-utils
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-b2-utils-0.2.10-1.src.rpm
checksum_type: sha256
description:
  - Em caso de ser sua primeira vez publicando a lib no pipy é necessario um arquivo de configuração no home do seu computador com o nome .pypirc, para mais dethes consulte o topico no clickup (b2-utils-pypi).
  - Antes de rodar o script para publicar a lib no pip é necessario subir a versão dela no pyproject.toml.

  ```toml
  [project]
  name = "b2-utils"
  version = "0.X.XX"
  ```

  - Logo apos é necessario o rodar o script que compila as dependencias ./compile.sh
  - Por fim só publicar ser feliz.


pkgId: d1daa05b77b23052d8db152d1ec80fc2e5e0feef9e09c1dd237f9cffd0224496
name: python-b22ao
arch: src
version: 0.1.0
epoch: 0
release: 1
summary: API for b22 adaptive optics operations.
url: https://pypi.org/project/b22ao/
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-b22ao-0.1.0-1.src.rpm
checksum_type: sha256
description:
  This package provides the basic API for Adaptive Optics scripts running at beamline B22 in Diamond Light Source.

  Adaptive Optics operations must implement b22ao.base.BaseOperation, which provides methods for deforming mirrors and
  capturing images. The implementation is run by the AO manager which will inject any given JSON configuration file.

  Example:
  ```python
  from b22ao.base import BaseOperation
  import numpy

  class MyAO(BaseOperation):
      def start(self):
          max_iter = self.config['max_iter']

          self.select_dm(self.config['mirror'])

          self.stopping = False
          for iter in range(max_iter):
              if self.stopping:
                  self.stopping = False
                  break
              self.deform(numpy.zeros(97))
              self.capture()

          print("Finished!")

      def stop(self):
          self.stopping = True
  ```
  And the configuration file:
  ```json
  {
    "max_iter": 300,
    "mirror": 2
  }
  ```

rpm_license:
  MIT License  Copyright (c) 2020 Diamond Light Source Ltd.  Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:  The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.


pkgId: dcf2a6c80f4707922395e507e92045d7a5c24e6db1eabff12be2ef51d2c5200e
name: python-b2btest
arch: src
version: 1.4.0
epoch: 0
release: 1
summary: Light framework to setup back-to-back test
url: https://github.com/vokimon/back2back
rpm_license: GNU General Public License v3 or later (GPLv3+)
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-b2btest-1.4.0-1.src.rpm
checksum_type: sha256
description:
  [![CI](https://github.com/vokimon/back2back/actions/workflows/main.yml/badge.svg)](https://github.com/vokimon/back2back/actions/workflows/main.yml)
  [![Coverage Status](https://coveralls.io/repos/github/vokimon/back2back/badge.svg?branch=master)](https://coveralls.io/github/vokimon/back2back?branch=master)
  [![PyPI - Downloads](https://img.shields.io/pypi/dm/b2btest)](https://pypi.org/b2btest)
  [![PyPI - Version](https://img.shields.io/pypi/v/b2btest)](https://pypi.org/b2btest)
  ![B2BLogo](icon_b2btest.png)
  This package is helpfull to prepare and manage
  back-to-back tests to get control over software
  you don't have proper tests yet.
  On one side, it includes `back2back`, a comand line tool
  that performs back-to-back tests on any software
  that can be called by command line and produces
  some output files you want to get warned when they get different.
  You can define the set of commands and the outputs to watch in a simple
  YAML file.
  On the other side, it includes comparision functions
  and python-unittests like asserts you can use within
  your test suites that perform similar workflows, keeping
  the reference outputs in a folder and named by the testname.
  Both the command line tool and the python libraries,
  are extendable with plugins to get informative diff for several
  file formats: audio, xml, text, pdf...


pkgId: c5c19a09762bb0b9c10532e220bded833e7612951e9a099e4644403961fadc22
name: python-b2luigi
arch: src
version: 1.0.2
epoch: 0
release: 1
summary: Task scheduling and batch running for basf2 jobs made simple
url: https://github.com/belle2/b2luigi
rpm_license: GNU General Public License v3 or later (GPLv3+)
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-b2luigi-1.0.2-1.src.rpm
checksum_type: sha256
description:
  ``b2luigi`` is a helper package constructed around ``luigi`` that helps you schedule working packages (so-called tasks)
  locally or on a batch system.
  Apart from the very powerful dependency management system by ``luigi``, ``b2luigi`` extends the user interface
  and has a built-in support for the queue systems, e.g. LSF and HTCondor.
  You can find more information in the `documentation <https://b2luigi.belle2.org/>`_.
  Please note that most of the core features are handled by ``luigi``, which is described in the
  separate `luigi documentation <https://luigi.readthedocs.io/en/latest/>`_,
  where you can find a lot of useful information.
  If you find any bugs or want to add a feature or improve the documentation, please send me a pull request!
  Check the `development documentation <https://b2luigi.belle2.org/advanced/development.html>`_
  on information how to contribute.
  Contributors are listed `here <https://b2luigi.belle2.org/index.html#the-team>`_.
  This project is in still beta. Please be extra cautious when using in production mode.
  To get notified about new features, (potentially breaking) changes, bugs and
  their fixes, I recommend using the ``Watch`` button on GitHub to get
  notifications for new releases and/or issues or to subscribe the `releases feed
  <https://github.com/belle2/b2luigi/releases.atom>`_ (requires no GitHub
  account, just a feed reader).


pkgId: 27f2edb0aebbf03ccc0949eb819d20dc7d3ce39550e1443c6a5e8e8203b50eb5
name: python-b3cotahist
arch: src
version: 0.1.6
epoch: 0
release: 1
url: https://pypi.org/project/b3cotahist/
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-b3cotahist-0.1.6-1.src.rpm
checksum_type: sha256
summary:
  Biblioteca Python para leitura e fetch do arquivo COTAHIST da B3. Suporta tanto pandas quanto polars como engines.

description:
  Biblioteca Python para leitura e fetch do arquivo COTAHIST da B3. Suporta tanto pandas quanto polars como engines.



  ```bash
  pip install b3cotahist
  ```





  ```python
  import datetime
  import b3cotahist


  df = b3cotahist.get(
      date=datetime.date(2024, 3, 1),
      engine='pandas'  # ou 'polars'
  )


  df = b3cotahist.get(
      date=datetime.date(2024, 3, 1),
      raise_ssl_error=True
  )
  ```



  ```python
  df = b3cotahist.read_zip(path='COTAHIST_D20240301.ZIP')

  df = b3cotahist.read_txt(path='COTAHIST_D20240301.TXT')


  df = b3cotahist.read_zip(path='COTAHIST_D20240301.ZIP', engine='polars')
  ```



  ```python

  with open('COTAHIST_D20240301.TXT', 'rb') as f:
      dados = f.read()
  df = b3cotahist.read_bytes(dados)


  import io
  bytes_io = io.BytesIO(dados)
  df = b3cotahist.read_bytes(bytes_io)
  ```


pkgId: ae6dc76033663e3e4cb409c6eb323345632920c486fa7d606d9f975ab67e6454
name: python-b3cotahist
arch: src
version: 0.1.8
epoch: 0
release: 1
url: https://pypi.org/project/b3cotahist/
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-b3cotahist-0.1.8-1.src.rpm
checksum_type: sha256
summary:
  Biblioteca Python para leitura e fetch do arquivo COTAHIST da B3. Suporta tanto pandas quanto polars como engines.

description:
  Biblioteca Python para leitura e fetch do arquivo COTAHIST da B3.



  ```bash
  pip install b3cotahist
  ```





  ```python
  import datetime
  import b3cotahist



  date = datetime.date(2024, 3, 1)

  df = b3cotahist.get(date)


  df = b3cotahist.get(date, raise_ssl_error=False)
  ```



  ```python
  df = b3cotahist.read_zip(path='COTAHIST_D20240301.ZIP')

  df = b3cotahist.read_txt(path='COTAHIST_D20240301.TXT')
  ```



  ```python

  with open('COTAHIST_D20240301.TXT', 'rb') as f:
      dados = f.read()
  df = b3cotahist.read_bytes(dados)


  import io
  bytes_io = io.BytesIO(dados)
  df = b3cotahist.read_bytes(bytes_io)
  ```


pkgId: a4addd2412ac201923e5a0cf06fa0a40b06cdbc39a37aabfef1e9f8a5c91570b
name: python-b3o-fedlearn
arch: src
version: 1.0.0
epoch: 0
release: 1
summary: a project for federated learning using AWS
url: https://github.com/ACS-High-School
rpm_license: MIT License
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-b3o-fedlearn-1.0.0-1.src.rpm
checksum_type: sha256
description:
  AWS를 활용한 연합학습을 진행하기 위한 패키지 입니다.



  패키지를 설치하기 위해서는 다음과 같은 pip 명령어를 사용합니다:
  ```python
  pip install b3o-fedlearn
  ```




  패키지를 사용하는 방법에 대한 간단한 예제입니다:

  ```python

  from b3o_fedlearn import client_setup
  client_setup.setup()


  from b3o_fedlearn import data_processing
  data_processing.input_fn(file_path, target_col)


  from b3o_fedlearn import fedlearner
  fedlearner.FL_start(member_ID,
                      config_client,
                      x_train_client,
                      y_train_client,
                      x_test_client,
                      y_test_client)
  ```



  여러분의 기여를 환영합니다. 이슈를 등록하거나 풀 리퀘스트를 보내주세요.


  MIT License 라이센스 하에 제공됩니다. 자세한 내용은 LICENSE 파일을 참조해주세요.


pkgId: 738e24ba91de3f90284b174eab1f0fe9dba57a396eb6847f252cd52f863853c3
name: python-b3p
arch: src
version: 0.0.3
epoch: 0
release: 1
summary: Command line tools for preprocessing of wind turbine blade models
url: https://pypi.org/project/b3p/
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-b3p-0.0.3-1.src.rpm
checksum_type: sha256
description:
  [![Deploy](https://github.com/wr1/b3p/actions/workflows/publish.yml/badge.svg)](https://github.com/wr1/b3p/actions/workflows/publish.yml)[![Test](https://github.com/wr1/b3p/actions/workflows/test.yml/badge.svg)](https://github.com/wr1/b3p/actions/workflows/test.yml)![PyPI](https://img.shields.io/pypi/v/b3p)


  Command line tools to create models for composite (wind turbine) blades.


  - Building 3D models of wind turbine blades
  - Creating a quad mesh for the blade
  - Assigning scalable *slab based* laminate plans to the structure
  - Assembling a shell mesh with laminate properties
  - Writing mesh information to VTK files


  From pypi
  ```sh
  pip install b3p
  ```
  From source
  ```sh
  git clone https://github.com/wr1/b3p.git
  cd b3p
  pip install -e .
  ```

  ```sh
  Usage: b3p COMMAND

  ╭─ Commands ──────────────────────────────────────────────────╮
  │ 2d         Create 2d meshes for calculation of 6x6 matrices │
  │ build      Build the blade model, geometry, mesh, drape     │
  │ ccx        Run the ccx analysis                             │
  │ clean      Clean the working directory.                     │
  │ shell      Start an interactive shell.                      │
  │ --help,-h  Display this message and exit.                   │
  │ --version  Display application version.                     │
  ╰─────────────────────────────────────────────────────────────╯
  ```
  In a cloned repository:
  ```sh
  cd examples

  b3p build blade_test.yml

  b3p ccx blade_test.yml
  ```


  Plot of geometric input parameters for the example blade
  ![test_blade](https://user-images.githubusercontent.com/8971152/148471383-7f652a84-447a-4db0-81e2-2e27b1785745.png)

  Visualisation of the number of plies on the mesh using [Paraview](https://paraview.org)
  ![3dblade_nplies](https://user-images.githubusercontent.com/8971152/148471469-61fb3efb-1789-4667-97b4-11b9e36d2e73.png)

  Visualisation of a 2d cross section mesh
  ![mesh2d](https://user-images.githubusercontent.com/8971152/148645980-51c36e1a-89e1-469d-aeea-49bf5adf4070.png)

  [CalculiX](http://www.dhondt.de/) results (very coarse mesh)
  ![zstrain](https://user-images.githubusercontent.com/8971152/151350188-0a6f31bf-5f0e-457b-b6cb-438bb10b4c91.png)


pkgId: fd9853ad18acde91b81563714f9c213180ca6c12cb457e6b61a5ede53b43d3c3
name: python-b4
arch: src
version: 0.14.2
epoch: 0
release: 1
summary: A tool to work with public-inbox and patch archives
url: https://git.kernel.org/pub/scm/utils/b4/b4.git/
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-b4-0.14.2-1.src.rpm
checksum_type: sha256
description:
  This is a helper utility to work with patches made available via a
  public-inbox archive like lore.kernel.org. It is written to make it
  easier to participate in a patch-based workflows, like those used in
  the Linux kernel development.
  The name "b4" was chosen for ease of typing and because B-4 was the
  precursor to Lore and Data in the Star Trek universe.
  See https://b4.docs.kernel.org/ for online documentation.

rpm_license:
  GNU GENERAL PUBLIC LICENSE Version 2, June 1991  Copyright (C) 1989, 1991 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.  Preamble  The licenses for most software are designed to take away your freedom to share and change it.  By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users.  This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it.  (Some other Free Software Foundation software is covered by the GNU Lesser General Public License instead.)  You can apply it to your programs, too.  When we speak of free software, we are referring to freedom, not price.  Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things.  To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it.  For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have.  You must make sure that they, too, receive or can get the source code.  And you must show them these terms so they know their rights.  We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software.  Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software.  If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations.  Finally, any free program is threatened constantly by software patents.  We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary.  To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all.  The precise terms and conditions for copying, distribution and modification follow.  GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION  0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License.  The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language.  (Hereinafter, translation is included without limitation in the term "modification".)  Each licensee is addressed as "you".  Activities other than copying, distribution and modification are not covered by this License; they are outside its scope.  The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does.  1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program.  You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee.  2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions:  a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change.  b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License.  c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License.  (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.)  These requirements apply to the modified work as a whole.  If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works.  But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it.  Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program.  In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License.  3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following:  a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,  b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,  c) Accompany it with the information you received as to the offer to distribute corresponding source code.  (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.)  The source code for a work means the preferred form of the work for making modifications to it.  For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable.  However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable.  If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code.  4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License.  Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance.  5. You are not required to accept this License, since you have not signed it.  However, nothing else grants you permission to modify or distribute the Program or its derivative works.  These actions are prohibited by law if you do not accept this License.  Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it.  6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions.  You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License.  7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License.  If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all.  For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program.  If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances.  It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices.  Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice.  This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License.  8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded.  In such case, this License incorporates the limitation as if written in the body of this License.  9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time.  Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns.  Each version is given a distinguishing version number.  If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation.  If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation.  10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission.  For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this.  Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally.  NO WARRANTY  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.  END OF TERMS AND CONDITIONS  How to Apply These Terms to Your New Programs  If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms.  To do so, attach the following notices to the program.  It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found.  <one line to give the program's name and a brief idea of what it does.> Copyright (C) <year>  <name of author>  This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.  This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more details.  You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.  Also add information on how to contact you by electronic and paper mail.  If the program is interactive, make it output a short notice like this when it starts in an interactive mode:  Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details.  The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License.  Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program.  You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary.  Here is a sample; alter the names:  Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker.  <signature of Ty Coon>, 1 April 1989 Ty Coon, President of Vice  This General Public License does not permit incorporating your program into proprietary programs.  If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library.  If this is what you want to do, use the GNU Lesser General Public License instead of this License.


pkgId: f9fd2356d6f157d02d48e96afce3d1448ed89c697370a694ab9fdd84b3d1947f
name: python-b4tf
arch: src
version: 1.1.2
epoch: 0
release: 1
summary: Bayian Neural Network for TensorFlow
url: https://gitlab.com/ymd_h/b4tf
rpm_license: MIT License
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-b4tf-1.1.2-1.src.rpm
checksum_type: sha256
description:
  ![img](https://img.shields.io/gitlab/pipeline/ymd_h/b4tf.svg)
  ![img](https://img.shields.io/pypi/v/b4tf.svg)
  ![img](https://img.shields.io/pypi/l/b4tf.svg)
  ![img](https://img.shields.io/pypi/status/b4tf.svg)
  [![img](https://gitlab.com/ymd_h/b4tf/badges/master/coverage.svg)](https://ymd_h.gitlab.io/b4tf/coverage/)

  ![img](./site/static/images/logo.png)




  b4tf is a Python module providing a set of bayesian neural network on
  [TensorFlow](https://www.tensorflow.org/).




  b4tf requires following softwares before installation

  -   [TensorFlow 2.x](https://www.tensorflow.org/)
  -   [TnesorFlow Probability](https://www.tensorflow.org/probability)
  -   Python 3.x




  The following command installs b4tf together with other dependancies.

      pip install b4tf

  Depending on your environment, you might need `sudo` or `--user` flag
  for installation.




  First, download source code manually or clone the repository;

      git clone https://gitlab.com/ymd_h/b4tf.git

  Then you can install same way;

      cd b4tf
      pip install .




  Currently, b4tf implements following algorithms. We will implement
  more.

  -   Probabilistic Backpropagation (PBP) ([Paper](https://arxiv.org/abs/1502.05336), [Doc](https://ymd_h.gitlab.io/b4tf/algorithms/pbp), [API](https://ymd_h.gitlab.io/b4tf/api/b4tf.models.pbp.html#b4tf.models.pbp.PBP))
  -   Monte Carlo Batch Normalization (MCBN) ([Paper](https://arxiv.org/abs/1802.06455), [Doc](https://ymd_h.gitlab.io/b4tf/algorithms/mcbn/), [API](https://ymd_h.gitlab.io/b4tf/api/b4tf.models.mcbn.html#b4tf.models.mcbn.MCBN))




  Any contribution are very welcome!




  Bigger commumity makes development more active and improve b4tf.

  -   Star [this GitLab repository](https://gitlab.com/ymd_h/b4tf) (and/or [GitHub Mirror](https://github.com/ymd-h/b4tf))
  -   Publish your code using b4tf
  -   Share this repository to your friend and/or followers.




  When you have any problems or requests, you can check [issues on GitLab.com](https://gitlab.com/ymd_h/b4tf/issues).
  If you still cannot find any information, you can open your own issue.




  b4tf follows local rules:

  -   Branch Name
      -   "HotFix<sub>\*</sub>\*\*" for bug fix
      -   "Feature<sub>\*</sub>\*\*" for new feature implementation
  -   docstring
      -   Must for external API
      -   [Numpy Style](https://numpydoc.readthedocs.io/en/latest/format.html)
  -   Unit Test
      -   Put test code under "test/" directory
      -   Can test by `python -m unittest <Your Test Code>` command
      -   Continuous Integration on GitLab CI configured by `.gitlab-ci.yaml`
  -   Open an issue and associate it to Merge Request

  Step by step instruction for beginners is described at [here](https://ymd_h.gitlab.io/b4tf/contributing/merge_request).







  -   [Project Site](https://ymd_h.gitlab.io/b4tf/)
      -   [Class Reference](https://ymd_h.gitlab.io/b4tf/api/)
      -   [Unit Test Coverage](https://ymd_h.gitlab.io/b4tf/coverage/)
  -   [Main Repository](https://gitlab.com/ymd_h/b4tf)
  -   [GitHub Mirror](https://github.com/ymd-h/b4tf)
  -   [b4tf on PyPI](https://pypi.org/project/b4tf/)




  b4tf is available under MIT lisence.

      MIT License

      Copyright (c) 2020 Yamada Hiroyuki

      Permission is hereby granted, free of charge, to any person obtaining a copy
      of this software and associated documentation files (the "Software"), to deal
      in the Software without restriction, including without limitation the rights
      to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
      copies of the Software, and to permit persons to whom the Software is
      furnished to do so, subject to the following conditions:

      The above copyright notice and this permission notice shall be included in all
      copies or substantial portions of the Software.

      THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
      IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
      FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
      AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
      LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
      OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
      SOFTWARE.


pkgId: e3cb1cee96a6d61fa079acc8e790a7924a0f8fcd9afb8214358d184696b2e597
name: python-b5
arch: src
version: 1.4.1
epoch: 0
release: 1
summary: b5 - simple and sane task runner
url: https://github.com/team23/b5
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-b5-1.4.1-1.src.rpm
checksum_type: sha256
description:
  ![b5 ready](assets/badges/b5_ready.png)



  b5 is the central task runner for all projects of our agency (TEAM23 - www.team23.de). It tries to be as simple
  as possible while empowering you to write your own tasks, extend existing ones and use b5 for all of the everyday
  project jobs.



  `b5 {taskname}` will look for a file called [`Taskfile`](docs/02_Taskfile_format.md) found under build/ in your project
  root. It will then execute the function named `task:{taskname}` inside the Taskfile (which is a normal bash script).
  This means you may call `b5 install` to have the function `task:install` run.

  The basic idea of b5 is to allow you to easily put your daily shell jobs into the Taskfile and provide a
  common schema for running these tasks. So `b5 css` for example will always build the CSS files for your
  project regardless of the CSS preprocessor used in this particular project (could be: less, sass, …). As b5
  uses bash scripting as the Taskfile format it is easy to understand and enhance.

  b5 in addition provides some modules to ease the usage of some common tools used in web development (like
  [npm](docs/modules/npm.md), [composer](docs/modules/composer.md), [pipenv](docs/modules/pipenv.md),
  [docker](docs/modules/docker.md), …). In addition it defines some
  [common task names](docs/03_common_tasks.md) to introduce a good convention for your task naming schema. This
  will allow new developers to get on board faster - not need to care too much about the
  project setup itself.

  You may pass parameters to your tasks like `b5 some_task some_parameter` and use normal bash parameter handling
  to use these parameters (`$1`, or better `${1}`). Please note that b5 will abort when accessing a non existent
  parameter, use bash default values when necessary (`${1:-default}`).

  **Hint:** You may add a file called Taskfile.local (`build/Taskfile.local`) for all your personal tasks. Make
  sure to never add this file to git. Please be sure to add this file to your .gitignore. Otherwise you might
  interfere with the local Taskfile of your colleges.



  Install b5 using `pipx install b5` or `pip install b5` (For Mac OS X you may use `brew install b5` after
  adding our tap). See [detailed installation instructions](docs/00_install.md).

  **Note for my TEAM23 colleagues:** Please make sure to install the
  [additional dependencies](docs/00_install.md#additional-dependencies).



  ```bash
  b5-init example-project
  cd example-project

  ```

  **Note:** You may use `b5-init -s $SKELETON example` to initialize the project using an skeleton. By default
  b5 will use the "basic" skeleton. See [project initialization](docs/06_project_init.md) for more details.



  b5 initialized your project with an example Taskfile (see `build/Taskfile`). For adding new tasks just
  write bash functions prefixed with `task:`, like:

  ```bash



  task:make_it_happen() {
      echo "Yeah, it happened"
  }
  ```



  Now you can use `b5 make_it_happen` and your code inside the function will run. As this code is a simple
  bash script you may use your normal command line tools. Feel free to use gulp, grunt, fabric, … for more
  complex task excution - and call these using your Taskfile.

  **Note:** The Taskfile is always executed inside the "run-path", which defaults to `build/`. Make
  sure to switch path, when neccessary. I recommend using a subshell (see
  ["( … )" subshell syntax](http://www.gnu.org/software/bash/manual/html_node/Command-Grouping.html)) when
  doing so.



  Now you set up a simple example project including an example Taskfile. The Taskfile is the central part of
  the b5 task runner which will include the calls to all of the provided tasks. Most of the tasks will
  call external tools like, gulp or fabric. This is the intended behavior.

  See [detailed installation instruction](docs/00_install.md) for some more details the installation of b5.

  See [core concepts](docs/01_concepts.md) for some more details about the b5 concepts.

  See [Taskfile format](docs/02_Taskfile_format.md) for more details on how to write your Taskfile.

  See [common tasks](docs/03_common_tasks.md) for information about which tasks your Taskfile needs
  to provide and what these tasks should do.

  See [Configuration](docs/04_config.md) for about how to add configuration to the build process and how
  to handle local configuration.

  See [modules](docs/05_modules.md) for looking further into modules b5 already provides for a healthy
  project setup.

  See [project initialization](docs/06_project_init.md) for more information about how to `b5-init` a project.



  You may use the b5 logo when referring to b5:
  ![b5 Logo](assets/logo_small.png)
  (see [assets/](assets/) for other formats)

  Also feel free to add a b5 badge to your project after you made it "b5 ready":
  ![b5 ready](assets/badges/b5_ready.png)
  (see [assets/badges/](assets/badges/) for other formats)


pkgId: f31256a151ba222a9351e7d2999d653725258eeb7ff16a81cbcc4bffce6d2f0f
name: python-b64uuid
arch: src
version: 0.1
epoch: 0
release: 1
url: https://github.com/tanbro/b64uuid
rpm_license: AGPLv3+
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-b64uuid-0.1-1.src.rpm
checksum_type: sha256
summary:
  A small library and tool to encode/decode a python UUID object to/from a 22 characters shorter URL safe base64 string.


pkgId: 307f83b7f65f77c5b191a260eba33b8aa7fb7f907eda813491f9d19460ccdd7f
name: python-bCNC
arch: src
version: 0.9.15
epoch: 0
release: 1
summary: Swiss army knife for all your CNC/g-code needs
url: https://github.com/vlachoudis/bCNC
rpm_license: GPLv2
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-bCNC-0.9.15-1.src.rpm
checksum_type: sha256
description:
  GrblHAL (formerly GRBL) CNC command sender, autoleveler, g-code editor, digitizer, CAM
  and swiss army knife for all your CNC needs.
  An advanced fully featured g-code sender for grblHAL (formerly GRBL). bCNC is a cross platform program (Windows, Linux, Mac) written in python. The sender is robust and fast able to work nicely with old or slow hardware like [Raspberry Pi](http://www.openbuilds.com/threads/bcnc-and-the-raspberry-pi.3038/) (As it was validated by the GRBL maintainer on heavy testing).

  [![Build Status](https://travis-ci.com/vlachoudis/bCNC.svg?branch=master)](https://travis-ci.com/vlachoudis/bCNC)
  [![CodeFactor](https://www.codefactor.io/repository/github/vlachoudis/bcnc/badge)](https://www.codefactor.io/repository/github/vlachoudis/bcnc)
  Please note that all pull requests should pass the Travis-CI build in order to get merged.
  Most pull requests should also pass CodeFactor checks if there is not good reason for failure.
  Before making pull request, please test your code on both python2 and python3.
  ![bCNC screenshot](https://raw.githubusercontent.com/vlachoudis/bCNC/doc/Screenshots/bCNC.png)

  This is a short overview of the installation process, for more details see the ![bCNC installation](https://github.com/vlachoudis/bCNC/wiki/Installation) wiki page.
  This is how you install (or upgrade) bCNC along with all required packages.
  You can use any of these commands (you need only one):
      pip install --upgrade bCNC
      pip install --upgrade git+https://github.com/vlachoudis/bCNC
      pip install . #in git directory
      python -m pip install --upgrade bCNC
  This is how you launch bCNC:
      python -m bCNC
  Only problem with this approach is that it might not install Tkinter in some cases.
  So please keep that in mind and make sure it's installed in case of problems.
  If you run the `python -m bCNC` command in root directory of this git repository it will launch the git version.
  Every developer should always use this to launch bCNC to ensure that his/her code will work after packaging.
  Note that on Windows XP you have to use `pyserial==3.0.1` or older as newer version do not work on XP.
  PyPI project: https://pypi.org/project/bCNC/

  You will need the following packages to run bCNC
  - tkinter the graphical toolkit for python
    Depending your python/OS it can either be already installed,
    or under the names tkinter, python3-tkinter, python-tk
  - pyserial or under the name python-serial, python-pyserial
  - numpy
  - Optionally:
  - python-imaging-tk: the PIL libraries for autolevel height map
  - python-opencv: for webcam streaming on web pendant
  - scipy: for 100 times faster 3D mesh slicing
  Expand the directory or download it from github
  and run the bCNC command

  - Copy `bCNC` subdirectory of this repo to `/usr/lib/python3.x/site-packages/`
  - Launch using `python -m bCNC` or install bCNC.sh to /usr/bin
  - Alternatively you can fetch the bCNC Python package using pip when building Linux package
    - refer to your distro, eg.: https://wiki.archlinux.org/index.php/Python_package_guidelines
    - Py2deb to build Debian package from Python package: https://pypi.org/project/py2deb/

  Note that you might probably find some precompiled .exe files on github "releases" page:
  https://github.com/vlachoudis/bCNC/releases
  But they might not be up to date.
  This is basic example of how to compile bCNC to .exe file.
  (given that you have working bCNC in the first place, eg. using `pip install bCNC`).
  Go to the directory where is your bCNC installed and do the following:
      pip install pyinstaller
      pyinstaller --onefile --distpath . --hidden-import tkinter --paths lib;plugins;controllers --icon bCNC.ico --name bCNC __main__.py
  This will take a minute or two. But in the end it should create `bCNC.exe`.
  Also note that there is `make-exe.bat` file which will do just that for you.
  This will also create rather large "build" subdirectory.
  That is solely for caching purposes and you should delete it before redistributing!
  If you are going to report bugs in .exe version of bCNC,
  please check first if that bug occurs even when running directly in python (without .exe build).

  - We strongly recommend you to use 32b microcontroller with grblHAL firmware for the new machine builds. https://github.com/grblHAL (Original GRBL firmware is still supported, but it is currently reaching the end-of-life due to limitations of 8b microcontrollers)
  - GRBL should be configured to use **MPos** rather than **Wpos**. This means that `$10=` should be set to odd number. As of GRBL 1.1 we recommend setting `$10=3`. If you have troubles communicating with your machine, you can try to set failsafe value `$10=1`.
  - CADs, bCNC and GRBL all work in millimeters by default. Make sure that `$13=0` is set in GRBL, if you experience strange behavior. (unless you've configured your CAD and bCNC to use inches)
  - Before filing bug please make sure you use latest stable official release of GRBL. Older and unofficial releases might work, but we frequently see cases where they don't. So please upgrade firmware in your Arduinos to reasonably recent version if you can.
  - Also read about all possible GRBL settings and make sure your setup is correct: https://github.com/gnea/grbl/wiki/Grbl-v1.1-Configuration
  - GrblHAL also has "Compatibility level" settings which have to be correctly configured during firmware compilation: https://github.com/grblHAL/core/wiki/Compatibility-level

  You can modify most of the parameters from the "CAM -> Config/Controller" page.
  You can also enable (up to) 6-axis mode in Config section,
  but bCNC restart is required for changes to take place.
  Only the changes/differences from the default configuration
  file will be saved in your home directory ${HOME}/.bCNC  or ~/.bCNC
  The default configuration is stored on bCNC.ini in the
  installation directory.
  *PLEASE DO NOT CHANGE THIS FILE, IT'S GOING TO BE OVERWRITTEN ON EACH UPGRADE OF BCNC*

  - simple and intuitive interface for small screens
  - 3-axis and 6-axis GUI modes
  - import/export **g-code**, **dxf** and **svg** files
  - 3D mesh slicing **stl** and **ply** files
  - fast g-code sender (works nicely on RPi and old hardware)
  - workspace configuration (G54..G59 commands)
  - user configurable buttons
  - g-code **function evaluation** with run time expansion
  - feed override during the running for fine tuning
  - Easy probing:
    - simple probing
    - center finder with a probing ring
    - **auto leveling**, Z-probing and auto leveling by altering the g-code during
      sending (or permanently autoleveling the g-code file).
    - height color map display
    - create g-code by jogging and recording points (can even use camera for this)
    - **manual tool change** expansion and automatic tool length probing
    - **canned cycles** expansion
  - Various Tools:
    - user configurable database of materials, endmills, stock
    - properties database of materials, stock, end mills etc..
    - basic **CAM** features (profiling, pocketing, drilling, flat/helical/ramp cutting, thread milling, cutout tabs, drag knife)
    - User g-code plugins:
      - bowl generator
      - finger joint box generator
      - simple spur gear generator
      - spirograph generator
      - surface flatten
      - play melody from MIDI file using stepper motor frequency
      - ...
  - G-Code editor and display
      - graphical display of the g-code, and workspace
      - graphically moving and editing g-code
      - reordering code and **rapid motion optimization**
      - moving, rotating, mirroring the g-code
  - Web pendant to be used via smart phones

  You can log serial communication by changing the port to something like:
      spy:///dev/ttyUSB0?file=serial_log.txt&raw
      spy://COM1?file=serial_log.txt&raw
  If a file isn't specified, the log is written to stderr.
  The 'raw' option outputs the data directly, instead of creating a hex dump.
  Further documentation is available at: https://pyserial.readthedocs.io/en/latest/url_handlers.html#spy

    The software is made available "AS IS". It seems quite stable, but it is in
    an early stage of development.  Hence there should be plenty of bugs not yet
    spotted. Please use/try it with care, I don't want to be liable if it causes
    any damage :)


pkgId: 37394fb9d20cb4a8788c9cddb5e5df324d65c04c8c5470178288efb48e98deea
name: python-baa
arch: src
version: 0.2.0
epoch: 0
release: 1
summary: Command line utility to automate attendance registration in Arlo
url: https://github.com/kish-an/basic-arlo-assistant
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-baa-0.2.0-1.src.rpm
checksum_type: sha256
description:
  ```
                ██████████████████
              ██                  ██
            ██                      ██
          ██                          ██      ████████      ██████▓▓██
          ██  ░░██████████████          ██████        ██████          ████
        ██    ██░░░░░░░░░░░░░░██                                          ██
      ████  ██░░░░░░░░░░░░░░░░░░██    ██                                    ██
    ██░░░░██░░░░░░██░░░░██░░░░░░██  ██░░██▒▒                                  ██
      ██████░░░░░░██░░░░██░░░░░░██  ██░░░░▒▒██                                  ██
          ██░░░░░░░░░░░░░░░░░░░░██    ████▓▓                                      ██
        ██  ░░░░░░░░░░░░░░░░░░░░██                                                ██
        ██░░░░░░░░░░░░░░░░░░░░░░██                                                ██
      ██░░░░░░░░░░░░░░░░░░░░░░██                                                  ██
      ██░░▓▓▓▓▓▓▓▓░░░░░░░░░░██                                                    ██
      ██░░░░▓▓▓▓░░░░░░░░░░██      ░░                              ░░              ██
        ██░░░░░░░░▒▒░░▒▒██░░░░  ░░    ░░  ░░░░      ░░        ░░  ░░              ██
        ██░░░░░░░░▒▒░░▒▒██  ░░  ░░        ░░    ░░░░░░  ░░        ░░░░            ██
          ██████████▓▓▓▓░░░░░░  ░░    ░░  ░░      ░░░░  ░░        ░░░░            ██
                    ██▓▓░░                                                        ██
                    ██▓▓░░                                                        ██
                        ██░░                                                    ░░██
                        ██░░                            ░░                    ░░██
                      ░░██░░░░                                            ░░░░░░██
                          ██░░░░░░░░░░░░░░░░░░    ░░░░░░░░░░░░        ░░░░██████
                            ██░░██░░░░░░██▓▓░░░░░░██████████░░░░░░░░██████░░██
                              ██▒▒██████░░▒▒██████          ██████▓▓██  ██░░██
                              ██░░██  ██░░░░██                ██▒▒▒▒██  ██░░██
                              ██░░██  ██░░▒▒██                ██░░▒▒██  ██░░██
                              ██░░██  ██░░░░██                ██░░▒▒██  ██░░██
                              ██░░██  ██░░░░██                ██░░▒▒██  ██░░██
                              ██████  ████████                ████▓▓██  ██████
                              ██▒▒██  ██▒▒▒▒██                ██▒▒▒▒██  ██▒▒██
  ```
  Automate attendance registration in [Arlo](https://www.arlo.co/) with attendance reports from virtual meeting platforms.



  > [!IMPORTANT]
  > This tool is in early development and may introduce breaking changes with new releases. Although the tool has been tested, there may be edge cases that have not been accounted for. Please exercise due diligence when using this tool for attendance registration.


  - Python 3.10+
  - Arlo [API role](https://support.arlo.co/hc/en-gb/articles/360018341612-Manage-your-users-access#:~:text=API%20role)



  Installation with [pipx](https://pipx.pypa.io/stable/) is strongly recommended, this provides an isolated environment for baa and it's depdendencies. See the [Python Packaging User Guide](https://packaging.python.org/en/latest/guides/installing-stand-alone-command-line-tools/) for more information on installing command line tools with pipx.

  ```sh
  pipx install baa
  ```

  Alternatively, baa can be installed with pip.

  > [!TIP]
  > Use `pip install --user` if you do not have administrative privileges, or want to avoid affecting other users on your system. This will install packages for the current user, rather than the default system-wide directory.

  ```sh
  pip install baa
  ```



  View the available options that baa supports

  ```sh
  baa -h
  ```

  The attendance report (see [supported platforms](#supported-platforms)) must be provided. By default, baa will try to find a match for each attendee in Arlo and mark them as attended. All other registrations for the session will be marked as did not attend.

  ```sh
  baa path/to/attendance-report.csv
  ```



  - [Butter](https://www.butter.us/):  The attendance report can be downloaded by opening the recap for the session. Under the **Engagement** tab, select **People** and then **Download list**. This will require the Collaborator role on the Butter room.



  Contributions are welcome! If you encounter any issues or have suggestions for improvements, please open an issue or submit a pull request.


pkgId: ecae4a598e3a473e16b135034e9ebf370ad4dbe9fd4e1b5518252c2029a58b95
name: python-baal
arch: src
version: 2.0.0
epoch: 0
release: 1
summary: Library to enable Bayesian active learning in your research or labeling work.
url: https://github.com/ElementAI/baal/
rpm_license: Apache-2.0
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-baal-2.0.0-1.src.rpm
checksum_type: sha256
description:
  <p align="center">
    <img height=15% width=25% src="https://i.imgur.com/Zdzb2QZ.png" style="max-width: 100%;border-radius: 25%;">
    <h1 align="center">Bayesian Active Learning (Baal)
     <br>
    <a href="https://github.com/baal-org/baal/actions/workflows/pythonci.yml">
      <img alt="Python CI" src="https://github.com/baal-org/baal/actions/workflows/pythonci.yml/badge.svg"/>
    </a>
    <a href="https://baal.readthedocs.io/en/latest/?badge=latest">
      <img alt="Documentation Status" src="https://readthedocs.org/projects/baal/badge/?version=latest"/>
    </a>
    <a href="https://join.slack.com/t/baal-world/shared_invite/zt-z0izhn4y-Jt6Zu5dZaV2rsAS9sdISfg">
      <img alt="Slack" src="https://img.shields.io/badge/slack-chat-green.svg?logo=slack"/>
    </a>
    <a href="https://github.com/Elementai/baal/blob/master/LICENSE">
      <img alt="Licence" src="https://img.shields.io/badge/License-Apache%202.0-blue.svg"/>
    </a>
    <a href="https://calendly.com/baal-org/30min">
      <img alt="Office hours" src="https://img.shields.io/badge/Office hours-Calendly-blue.svg"/>
    </a>
    <a href="https://pepy.tech/project/baal">
      <img alt="Downloads" src="https://static.pepy.tech/badge/baal"/>
    </a>

    </h1>
  </p>

  Baal is an active learning library that supports both industrial applications and research usecases.

  Read the documentation at https://baal.readthedocs.io.

  Our paper can be read on [arXiv](https://arxiv.org/abs/2006.09916). It includes tips and tricks to make active learning
  usable in production.

  For a quick introduction to Baal and Bayesian active learning, please see these links:

  - [Seminar with Label Studio](https://www.youtube.com/watch?v=HG7imRQN3-k)
  - [User guide](https://baal.readthedocs.io/en/latest/user_guide/index.html)
  - [Bayesian active learning presentation](https://drive.google.com/file/d/13UUDsS1rvqDnXza7L0j4bnqyhOT5TDSt/view?usp=sharing)

  *Baal was initially developed at [ElementAI](https://www.elementai.com/) (acquired by ServiceNow in 2021), but is now independant.*




  Baal requires `Python>=3.8`.

  To install Baal using pip: `pip install baal`

  We use [Poetry](https://python-poetry.org/) as our package manager.
  To install Baal from source: `poetry install`



  - [Bayesian active learning for production, a systematic study and a reusable library
    ](https://arxiv.org/abs/2006.09916) (Atighehchian et al. 2020)
  - [Synbols: Probing Learning Algorithms with Synthetic Datasets
    ](https://nips.cc/virtual/2020/public/poster_0169cf885f882efd795951253db5cdfb.html) (Lacoste et al. 2020)
  - [Can Active Learning Preemptively Mitigate Fairness Issues?
    ](https://arxiv.org/pdf/2104.06879.pdf) (Branchaud-Charron et al. 2021)
  - [Active learning with MaskAL reduces annotation effort for training Mask R-CNN](https://arxiv.org/abs/2112.06586) (
    Blok et al. 2021)
  - [Stochastic Batch Acquisition for Deep Active Learning](https://arxiv.org/abs/2106.12059) (Kirsch et al. 2022)



  Active learning is a special case of machine learning in which a learning algorithm is able to interactively query the
  user (or some other information source) to obtain the desired outputs at new data points
  (to understand the concept in more depth, refer to our [tutorial](https://baal.readthedocs.io/en/latest/)).



  At the moment Baal supports the following methods to perform active learning.

  - Monte-Carlo Dropout (Gal et al. 2015)
  - MCDropConnect (Mobiny et al. 2019)
  - Deep ensembles
  - Semi-supervised learning

  If you want to propose new methods, please submit an issue.

  The **Monte-Carlo Dropout** method is a known approximation for Bayesian neural networks. In this method, the Dropout
  layer is used both in training and test time. By running the model multiple times whilst randomly dropping weights, we
  calculate the uncertainty of the prediction using one of the uncertainty measurements
  in [heuristics.py](baal/active/heuristics/heuristics.py).

  The framework consists of four main parts, as demonstrated in the flowchart below:

  - ActiveLearningDataset
  - Heuristics
  - ModelWrapper
  - ActiveLearningLoop

  <p align="center">
    <img src="docs/learn/literature/images/Baalscheme.svg">
  </p>

  To get started, wrap your dataset in our _[**ActiveLearningDataset**](baal/active/dataset.py)_ class. This will ensure
  that the dataset is split into
  `training` and `pool` sets. The `pool` set represents the portion of the training set which is yet to be labelled.

  We provide a lightweight object _[**ModelWrapper**](baal/modelwrapper.py)_ similar to `keras.Model` to make it easier to
  train and test the model. If your model is not ready for active learning, we provide Modules to prepare them.

  For example, the _[**MCDropoutModule**](baal/bayesian/dropout.py)_ wrapper changes the existing dropout layer to be used
  in both training and inference time and the `ModelWrapper` makes the specifies the number of iterations to run at
  training and inference.

  Finally, _[**ActiveLearningLoop**](baal/active/active_loop.py)_ automatically computes the uncertainty and label the most
  uncertain items in the pool.

  In conclusion, your script should be similar to this:

  ```python
  dataset = ActiveLearningDataset(your_dataset)
  dataset.label_randomly(INITIAL_POOL)  # label some data
  model = MCDropoutModule(your_model)
  wrapper = ModelWrapper(model, args=TrainingArgs(...))
  experiment = ActiveLearningExperiment(
      trainer=wrapper, # Huggingface or ModelWrapper to train
      al_dataset=dataset, # Active learning dataset
      eval_dataset=test_dataset, # Evaluation Dataset
      heuristic=BALD(), # Uncertainty heuristic to use
      query_size=100, # How many items to label per round.
      iterations=20, # How many MC sampling to perform per item.
      pool_size=None, # Optionally limit the size of the unlabelled pool.
      criterion=None # Stopping criterion for the experiment.
  )

  metrics = experiment.start()
  ```

  For a complete experiment, see _[experiments/vgg_mcdropout_cifar10.py](experiments/vgg_mcdropout_cifar10.py)_ .



  ```bash
  docker build [--target base_baal] -t baal .
  docker run --rm baal --gpus all python3 experiments/vgg_mcdropout_cifar10.py
  ```



  Simply clone the repo, and create your own experiment script similar to the example
  at _[experiments/vgg_mcdropout_cifar10.py](experiments/vgg_mcdropout_cifar10.py)_. Make sure to use the four main parts of Baal
  framework. _Happy running experiments_



  To contribute, see [CONTRIBUTING.md](./CONTRIBUTING.md).



  "There is passion, yet peace; serenity, yet emotion; chaos, yet order."

  The Baal team tests and implements the most recent papers on uncertainty estimation and active learning.

  Current maintainers:

  - [Parmida Atighehchian](mailto:patighehchian@twitter.com)
  - [Frédéric Branchaud-Charron](mailto:frederic.branchaud-charron@gmail.com)
  - [George Pearse](georgehwp26@gmail.com)



  If you used Baal in one of your project, we would greatly appreciate if you cite this library using this Bibtex:

  ```
  @misc{atighehchian2019baal,
    title={Baal, a bayesian active learning library},
    author={Atighehchian, Parmida and Branchaud-Charron, Frederic and Freyberg, Jan and Pardinas, Rafael and Schell, Lorne
            and Pearse, George},
    year={2022},
    howpublished={\url{https://github.com/baal-org/baal/}},
  }
  ```



  To get information on licence of this API please read [LICENCE](./LICENSE)


pkgId: 817c6230dd46da3b3f2041d4bac761c98fc31faf3febcc4ecf49998476cb8d08
name: python-babachi
arch: src
version: 2.0.26
epoch: 0
release: 1
summary: please add a summary manually as the author left a blank one
url: https://github.com/autosome-ru/BABACHI
rpm_license: UNKNOWN
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-babachi-2.0.26-1.src.rpm
checksum_type: sha256
description:
  [![DOI](https://zenodo.org/badge/255952669.svg)](https://zenodo.org/badge/latestdoi/255952669) <br>
  BABACHI is a tool for estimation of relative Background Allelic Dosage (BAD) from
  non-phased heterozygous SNVs. It estimates BAD directly from enriched sequencing data, where
  the precise estimation of allelic copy numbers is not possible.

  BAD corresponds to the ratio of Major allele copy number to Minor allele copy number. More details and algorithm description are available [here](https://www.nature.com/articles/s41467-021-23007-0)


  BABACHI accepts either a BED file with heterozygous SNVs or a standard VCF file sorted by genomic positions (ascending).
  - a BED file should begin with the following 8 columns; additional columns are permitted and ignored:
  ```chromosome, start, end, ID, reference base, alterntive base, reference read count, alternative read count, sample_id```.<br>
  Lines starting with # are ignored.

  - a VCF file should have GT and AD fields.

  (!) We suggest to use only <b>common SNPs</b> for BAD estimation. User is expected to filter common variants prior to BABACHI usage. See [here](https://www.nature.com/articles/s41467-021-23007-0) for more details.

  The output is a BED file with BAD annotations. The file format is described in the [Demo](#demo) section


  `BABACHI` package requires only a standard computer with enough RAM to support in-memory operations.



  The package can be installed on GNU/Linux and OS X platforms from Python Package Index (PyPI) and GitHub.
  The package has been tested on the following systems:
  + MacOS Monterey v12.5
  + Linux: Ubuntu 18.04

  `BABACHI` mainly depends on the following Python 3 packages:
  ```
  docopt>=0.6.2
  numpy>=1.18.0
  schema>=0.7.2
  contextlib2>=0.5.5
  pandas>=1.0.4
  matplotlib>=3.2.1
  seaborn>=0.10.1
  numba>=0.53.1
  ```


  ```
  pip3 install babachi
  ```

  ```
  git clone https://github.com/autosome-ru/BABACHI
  cd BABACHI
  python3 setup.py install

  ```
  or
  ```
  pip3 install 'babachi @ git+https://github.com/autosome-ru/BABACHI.git'
  ```
  - `sudo`, if required.
  The package should take less than 1 minute to install.


  ```
  python >= 3.6
  ```


  ```
  babachi <options>...
  ```
  To get full usage description one can execute:
  ```
  babachi --help
  ```
  This will produce the following message:
  ```
  Usage:
      babachi (<file> | --test) [options]
      babachi visualize <file> (-b <badmap>| --badmap <badmap>) [options]
      babachi filter <file> [options]

  Arguments:
      <file>            Path to input VCF file. Expected to be sorted by (chr, pos)

      <path>            Path to the file
      <int>             Non negative integer
      <float>           Non negative number
      <states-string>   String of states separated with "," (to provide fraction use "/", e.g. 4/3).
                        Each state must be >= 1
      <samples-string>  Comma-separated sample names or indices
      <prior-string>    Either "uniform" or "geometric"
      <file-or-link>    Path to existing file or link


  Arguments:
      -h, --help                              Show help
      --version                               Show version

      -O <path>, --output <path>              Output directory or file path. [default: ./]
      --test                                  Run segmentation on test file

      -v, --verbose                           Write debug messages
      --sample-list <samples-string>          Comma-separated sample names or integer indices to use from input VCF
      --snp-strategy <snp-strategy>           Strategy for the SNPs at the same genomic position (from different samples).
                                              Either add read counts 'ADD' or treat as separate events 'SEP'. [default: SEP]

      -n, --no-filter                         Skip filtering of input file
      --filter-no-rs                          Filter variants without assigned ID in VCF file.
      -f, --force-sort                        Chromosomes in output file will be sorted in numerical order
      -j <int>, --jobs <int>                  Number of jobs to use, parallel by chromosomes [default: 1]
      --chrom-sizes <file-or-link>            File with chromosome sizes (can be a link), default is hg38
      -a <int>, --allele-reads-tr <int>       Allelic reads threshold. Input SNPs will be filtered by ref_read_count >= x and
                                              alt_read_count >= x. Required for correct estimations in underlying statistical model [default: 5]
      -p <string>, --prior <prior-string>     Prior to use. Can be either uniform or geometric [default: uniform]
      -g <float>, --geometric-prior <float>   Coefficient for geometric prior [default: 0.98]
      -s <string>, --states <states-string>   States string [default: 1,2,3,4,5,6]

      -B <float>, --boundary-penalty <float>  Boundary penalty coefficient [default: 4]
      -Z <int>, --min-seg-snps <int>          Only allow segments containing Z or more unique SNPs (IDs/positions) [default: 3]
      -R <int>, --min-seg-bp <int>            Only allow segments containing R or more base pairs [default: 1000]
      -P <int>, --post-segment-filter <int>   Remove segments with less than P unique SNPs (IDs/positions) from output [default: 0]
      -A <int>, --atomic-region-size <int>    Atomic region size in # of SNPs [default: 600]
      -C <int>, --chr-min-snps <int>          Minimum number of SNPs at a chromosome to start segmentation [default: 100]
      -S <int>, --subchr-filter <int>         Exclude subchromosomes with less than C unique SNPs  [default: 3]

  Visualization:
      -b <path>, --badmap <path>              BADmap file created with BABACHI
      --visualize                             Perform visualization of SNP-wise AD and BAD for each chromosome.
                                              Will create a directory in output path for the <ext> visualizations
      -z, --zip                               Zip visualizations directory
      -e <ext>, --ext <ext>                   Extension to save visualizations with [default: svg]
  ```


  To perform a test run:
  ```
  babachi --test
  ```
  The test run takes approximately 2 minutes on a standard computer.
  <br>
  The result is a file named `test.bed` that will be created in the working directory (if `-O` option was not provided).
  The contents of the `test.bed` file should have the following format:
  ```

  chr1	1	125183196	2	-63.47825919524621	-24.598710473939718	-8.145646624117944	-2.000888343900442e-11	-30.773041699645546	-78.80480783186977	-189.88685134708248	-299.82657588596703	-401.6012195141575	1325	17280
  ```
  Each row represents a single segment with a constant estimated BAD. The most important columns are:
  - \#chr:  chromosome
  - start: segment start position
  - end: segment end position
  - BAD: estimated BAD score

  Additional columns:
  - SNP_count: number of SNPs in the segment
  - SNP_ID_count: number of unique SNPs in the segment
  - sum_cover: the total read coverage of all SNPs of the segment
  - Q<b>X</b>: the logarithmic likelihood of the segment to have BAD = <b>X</b>

  The BABACHI tool is maintained by Sergey Abramov and Alexandr Boytsov.


pkgId: f0844023debe00e4457239908d4ebd14a4fa8560b20255648d66a9eb37169bc4
name: python-babbage
arch: src
version: 0.4.0
epoch: 0
release: 1
summary: A light-weight analytical engine for OLAP processing
url: http://github.com/openspending/babbage
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-babbage-0.4.0-1.src.rpm
checksum_type: sha256
description:
  [![Gitter](https://img.shields.io/gitter/room/openspending/chat.svg)](https://gitter.im/openspending/chat)
  [![Build Status](https://travis-ci.org/openspending/babbage.svg?branch=master)](https://travis-ci.org/openspending/babbage)
  [![Coverage Status](https://coveralls.io/repos/openspending/babbage/badge.svg?branch=master&service=github)](https://coveralls.io/github/openspending/babbage?branch=master)

  ``babbage`` is a lightweight implementation of an OLAP-style database
  query tool for PostgreSQL. Given a database schema and a logical model
  of the data, it can be used to perform analytical queries against that
  data - programmatically or via a web API.

  It is heavily inspired by [Cubes](http://cubes.databrewery.org/) but
  has less ambitious goals, i.e. no pre-computation of aggregates, or
  multiple storage backends.

  ``babbage`` is not specific to government finances, and could easily be used e.g. for ReGENESIS, a project that makes German national statistics available via an API. The API functions by interpreting modelling metadata generated by the user (measures and dimensions).



  ``babbage`` will normally included as a PyPI dependency, or installed via
  ``pip``:

  ```bash
  $ pip install babbage
  ```

  People interested in contributing to the package should instead check out the
  source repository and then use the provided ``Makefile`` to install the
  library (this requires ``virtualenv`` to be installed):

  ```bash
  $ git clone https://github.com/openspending/babbage.git
  $ cd babbage
  $ make install
  $ pip install tox
  $ export BABBAGE_TEST_DB=postgresql://postgres@localhost:5432/postgres
  $ make test
  ```



  ``babbage`` is used to query a set of existing database tables, using an
  abstract, logical model to query them. A sample of a logical model can be
  found in ``tests/fixtures/models/cra.json``, and a JSON schema specifying
  the model is available in ``babbage/schema/model.json``.

  The central unit of ``babbage`` is a ``Cube``, i.e. a [OLAP cube](https://en.wikipedia.org/wiki/OLAP_cube) that uses the provided model metadata to construct queries
  against a database table. Additionally, the application supports managing
  multiple cubes at the same time via a ``CubeManager``, which can be
  subclassed to enable application-specific ways of defining cubes and where
  their metadata is stored.

  Futher, ``babbage`` includes a Flask Blueprint that can be used to expose
  a standard API via HTTP. This API is consumed by the JavaScript ``babbage.ui``
  package and it is very closely modelled on the Cubes and OpenSpending HTTP
  APIs.



  Let's assume you have an existing database table of procurement data and
  want to query it using ``babbage`` in a Python shell. A session might look
  like this:

  ```python
  import json
  from sqlalchemy import create_engine
  from babbage.cube import Cube
  from babbage.model import Measure

  engine = create_engine('postgresql://localhost/procurement')
  model = json.load(open('procurement_model.json', 'r'))

  cube = Cube(engine, 'procurement', model)
  facts = cube.facts(page_size=5)


  assert facts['total_fact_count'] == 17201


  assert 'total_value' in facts['fields']


  concept = cube.model['total_value']
  assert isinstance(concept, Measure)
  assert concept.label == 'Total Value'


  assert len(facts['data']) == 5
  fact_0 = facts['data'][0]
  assert 'total_value' in fact_0


  members = cube.members('supplier', cut='year:2015', page_size=500)
  assert len(members['data']) <= 500
  assert members['total_member_count']


  aggregate = cube.aggregate(aggregates='total_value.sum',
                             drilldowns='supplier|authority'
                             cut='year:2015|authority.country:GB',
                             page_size=500)






  assert aggregate['total_cell_count']
  assert len(aggregate['cells']) <= 500
  aggregate_0 = aggregate['cells'][0]
  assert 'total_value.sum' in aggregate_0



  assert 'supplier.code' in aggregate_0
  assert 'supplier.label' in aggregate_0
  assert 'authority.code' in aggregate_0
  assert 'authority.label' in aggregate_0
  ```



  The HTTP API for ``babbage`` is a simple Flask [Blueprint](http://flask.pocoo.org/docs/latest/blueprints/) used to expose a small set of calls that correspond to
  the cube functions listed above. To include it into an existing Flask
  application, you would need to create a ``CubeManager`` and then
  configure the API like this:

  ```python
  from flask import Flask
  from sqlalchemy import create_engine
  from babbage.manager import JSONCubeManager
  from babbage.api import configure_api

  app = Flask('demo')
  engine =
  models_directory = 'models/'
  manager = JSONCubeManager(engine, models_directory)
  blueprint = configure_api(app, manager)
  app.register_blueprint(blueprint, url_prefix='/api/babbage')

  app.run()
  ```

  Of course, you can define your own ``CubeManager``, for example if
  you wish to retrieve model metadata from a database.

  When enabled, the API will expose a number of JSON(P) endpoints
  relative to the given ``url_prefix``:

  * ``/``, returns the system status and version.
  * ``/cubes``, returns a list of the available cubes (name only).
  * ``/cubes/<name>/model``, returns full metadata for a given
    cube (i.e. measures, dimensions, aggregates etc.)
  * ``/cubes/<name>/facts`` is used to return individual entries from
    the cube in a non-aggregated form. Supports filters (``cut``), a
    set of ``fields`` to return and a ``sort`` (``field_name:direction``),
    as well as ``page`` and ``page_size``.
  * ``/cubes/<name>/members`` is used to return the distinct set of
    values for a given dimension, e.g. all the suppliers mentioned in
    a procurement dataset. Supports filters (``cut``), a and a ``sort``
    (``field_name:direction``), as well as ``page`` and ``page_size``.
  * ``/cubes/<name>/aggregate`` is the main endpoint for generating
    aggregate views of the data. Supports specifying the ``aggregates``
    to include, the ``drilldowns`` to aggregate by, a set of filters
    (``cut``), a and a ``sort`` (``field_name:direction``), as well
    as ``page`` and ``page_size``.


pkgId: fa8c423ab727508047844724c5dcbb00b3d2ed90d6a15e8a00e581633903ef60
name: python-babe
arch: src
version: 0.0.7
epoch: 0
release: 1
summary: Data access and analysis of baby names statistics
url: https://github.com/thorwhalen/babe
rpm_license: mit
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-babe-0.0.7-1.src.rpm
checksum_type: sha256
description:
  Note that the first time you import name, you need to have access to the Internet, and it will take a few seconds (depending on bandwidth) to download the required data.

  But this data is automatically saved in a local file so things are faster the next time around.

  To install:

  ```pip install babe```

  Then in a python console or notebook...


  ```python
  from babe import UsNames

  d = UsNames()
  ```



  The fundamental data provides a popularity score (number of babies recorded) associated to a `(state, gender, name, year)` tuple (that has data -- for names of babies born in the US between 1910 and 2019).


  ```python
  d.data
  ```


  <table border="1" class="dataframe">
    <thead>
      <tr style="text-align: right;">
        <th></th>
        <th>state</th>
        <th>gender</th>
        <th>year</th>
        <th>name</th>
        <th>popularity</th>
        <th>name_g</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <th>0</th>
        <td>AK</td>
        <td>F</td>
        <td>1910</td>
        <td>Mary</td>
        <td>14</td>
        <td>Mary_F</td>
      </tr>
      <tr>
        <th>1</th>
        <td>AK</td>
        <td>F</td>
        <td>1910</td>
        <td>Annie</td>
        <td>12</td>
        <td>Annie_F</td>
      </tr>
      <tr>
        <th>2</th>
        <td>AK</td>
        <td>F</td>
        <td>1910</td>
        <td>Anna</td>
        <td>10</td>
        <td>Anna_F</td>
      </tr>
      <tr>
        <th>3</th>
        <td>AK</td>
        <td>F</td>
        <td>1910</td>
        <td>Margaret</td>
        <td>8</td>
        <td>Margaret_F</td>
      </tr>
      <tr>
        <th>4</th>
        <td>AK</td>
        <td>F</td>
        <td>1910</td>
        <td>Helen</td>
        <td>7</td>
        <td>Helen_F</td>
      </tr>
      <tr>
        <th>...</th>
        <td>...</td>
        <td>...</td>
        <td>...</td>
        <td>...</td>
        <td>...</td>
        <td>...</td>
      </tr>
      <tr>
        <th>28277</th>
        <td>WY</td>
        <td>M</td>
        <td>2019</td>
        <td>Theo</td>
        <td>5</td>
        <td>Theo_M</td>
      </tr>
      <tr>
        <th>28278</th>
        <td>WY</td>
        <td>M</td>
        <td>2019</td>
        <td>Tristan</td>
        <td>5</td>
        <td>Tristan_M</td>
      </tr>
      <tr>
        <th>28279</th>
        <td>WY</td>
        <td>M</td>
        <td>2019</td>
        <td>Vincent</td>
        <td>5</td>
        <td>Vincent_M</td>
      </tr>
      <tr>
        <th>28280</th>
        <td>WY</td>
        <td>M</td>
        <td>2019</td>
        <td>Warren</td>
        <td>5</td>
        <td>Warren_M</td>
      </tr>
      <tr>
        <th>28281</th>
        <td>WY</td>
        <td>M</td>
        <td>2019</td>
        <td>Waylon</td>
        <td>5</td>
        <td>Waylon_M</td>
      </tr>
    </tbody>
  </table>
  <p>6122890 rows × 6 columns</p>
  </div>




  ```python
  print(f"{len(d.names)} unique names")
  ```

      31862 unique names


  But some names can be used for both genders, so most of the internals will use `name_g`, the name concatenated with the gender (`_F` or `_M`):


  ```python
  print(f"{len(d.name_gs)} unique names_g (gendered names)")
  ```

      34952 unique names_g (gendered names)


  You can use `resolve_name_g` to get the `name_g` corresponding to a name as long as the name isn't used for more than one gender.


  ```python
  d.resolve_name_g('Cora')
  ```




      'Cora_F'




  ```python
  try:
      d.resolve_name_g('Vanessa')
  except AssertionError as e:
      print(e)
  ```

      The Vanessa can be used for both genders. Specify Vanessa_F or Vanessa_M




  In some cases, it's more convenient to have a view indexed by `(state, name_g, year)`.
  The `by_state` attribute provides that.


  ```python
  d.by_state
  ```




      state  name_g      year
      AK     Mary_F      1910    14
             Annie_F     1910    12
             Anna_F      1910    10
             Margaret_F  1910     8
             Helen_F     1910     7
                                 ..
      WY     Theo_M      2019     5
             Tristan_M   2019     5
             Vincent_M   2019     5
             Warren_M    2019     5
             Waylon_M    2019     5
      Name: popularity, Length: 6122890, dtype: int64



  This allows one to do things like getting the data for a given state only:


  ```python
  d.by_state['CA']
  ```




      name_g      year
      Mary_F      1910    295
      Helen_F     1910    239
      Dorothy_F   1910    220
      Margaret_F  1910    163
      Frances_F   1910    134
                         ...
      Zayvion_M   2019      5
      Zeek_M      2019      5
      Zhaire_M    2019      5
      Zian_M      2019      5
      Ziyad_M     2019      5
      Name: popularity, Length: 387781, dtype: int64



  ... within a state, getting the 'by year popularity' for a given name:


  ```python
  d.by_state['CA']['Cora_F']  # or d.by_state['CA', 'Cora_F']
  ```




      year
      1911      8
      1912      9
      1913     15
      1914     15
      1915     17
             ...
      2015    269
      2016    244
      2017    284
      2018    282
      2019    256
      Name: popularity, Length: 109, dtype: int64



  ... if you wanted to get the data for a given name (really `name_g`), for all states, you can do it using "slicing".

  For example, if you're wondering how many little boys were called "Vanessa", and more specifically, when and where?...


  ```python
  d.by_state[:, 'Vanessa_M']
  ```




      state  year
      AZ     1988     8
      CA     1980     7
             1981     5
             1982    20
             1983    19
             1984    14
             1985    12
             1986    13
             1987    13
             1988    26
             1989    17
             1990    16
             1991    18
             1992    17
             1993    17
             1994    10
             1995     9
             1996    10
             1997    11
             1998     7
      DC     1989    11
      NY     1982     5
             1983     9
             1986     6
             1988     6
             1989     6
      TX     1981     5
             1982     7
             1983    12
             1984     9
             1985    10
             1986     8
             1987     9
             1988     8
             1989     5
             1990     6
             1991     5
             1992     5
             1994     5
      Name: popularity, dtype: int64





  A national aggregation is available through the `national` attribute


  ```python
  d.national
  ```




      name_g      year
      Aaban_M     2013     6
                  2014     6
      Aadam_M     2019     6
      Aadan_M     2008    12
                  2009     6
                          ..
      Zyriah_F    2013     7
                  2014     6
                  2016     5
      Zyron_M     2015     5
      Zyshonne_M  1998     5
      Name: popularity, Length: 633239, dtype: int64



  The interface is as with the `by_state` attribute, but without the state specification.


  ```python
  d.national.loc['Vanessa_F']
  ```




      year
      1935       5
      1947      24
      1948      32
      1949      16
      1950      41
              ...
      2015    1687
      2016    1633
      2017    1486
      2018    1345
      2019    1188
      Name: popularity, Length: 74, dtype: int64






  ```python
  d.plot_popularity('Cora');
  ```



  ![png](img/output_29_0.png)




  ```python
  d.plot_popularity('Cora', 'GA');
  ```



  ![png](img/output_30_0.png)




  ```python
  d.plot_popularity(['Cora', 'Vanessa_F']);
  ```



  ![png](img/output_31_0.png)




  ```python
  d.plot_popularity('Cora', ['CA', 'GA']);
  ```



  ![png](img/output_32_0.png)




  ```python
  d.plot_popularity(['Cora', 'Vanessa_F'], ['CA', 'GA']);
  ```



  ![png](img/output_33_0.png)







  We'll call the "femininity" of a name be the proportion of times it was used (all states, all time) to name a girl,
  and the "masculinity" of a name be defined accordingly.


  ```python
  d.femininity_of_name.iloc[12000:12010]
  ```




      Lemmie      0.161290
      Kashmere    0.161290
      Clary       0.162162
      Sung        0.162393
      Kyrie       0.163527
      Cedar       0.163686
      Masyn       0.163895
      Naveen      0.165605
      Chai        0.166667
      Atlee       0.167382
      dtype: float64




  ```python
  d.femininity_of_name.plot(figsize=(17, 5), ylabel='femininity');
  ```



  ![png](img/output_38_0.png)




  ```python
  d.masculinity_of_name.iloc[19000:19010]
  ```




      Berkley     0.108889
      Dasani      0.110092
      Sharone     0.111111
      Ifeoluwa    0.111111
      Rama        0.111111
      Scout       0.111486
      Brownie     0.111732
      Lashon      0.113158
      Indigo      0.113364
      Argie       0.113636
      dtype: float64




  ```python
  d.masculinity_of_name.plot(figsize=(17, 5), ylabel='masculinity');
  ```



  ![png](img/output_40_0.png)



  The (gender-)"ambiguity" of a name can thus be defined as twice the minimum of it's femininity and masculinity.

  By defining the ambiguity thusly, we have a score that is between 0 and 1. It is maximal (1) when an equal proportion of boys and girls were named with the name. It is minimal (0) when only one gender was named with it.

  Note that this score is raw (or "un-smoothed"). It's computed with the raw counts, so the extreme scores will usually be for names with very low counts.


  ```python
  d.ambiguity_of_name
  ```




      Munachiso    1.0
      Addis        1.0
      Deshone      1.0
      Gal          1.0
      Rajdeep      1.0
                  ...
      Sharelle     0.0
      Analy        0.0
      Sharayah     0.0
      Sharaya      0.0
      Aaban        0.0
      Length: 31862, dtype: float64




  ```python
  t = d.ambiguity_of_name
  print(f"There are {len(t[t > 0])} (gender-)ambiguous names")
  ```

      There are 3090 (gender-)ambiguous names



  ```python
  t = d.ambiguity_of_name
  t[t > 0].plot(figsize=(17, 5), ylabel='gender-ambiguity');
  ```



  ![png](img/output_44_0.png)




  ```python
  t = list(d.ambiguous_names)
  print(f"{len(t)} (gender-)ambiguous names:")
  print(*t[:9], '...', sep=', ')
  ```

      3090 (gender-)ambiguous names:
      Nolie, Tyrese, Linn, Savannah, Bryn, Rei, Abby, Shilo, Tracy, ...



  ```python

  ```


pkgId: dc16a40af8bceb06cf01952459a4116b61bc2ea7c43c6cd5c9d8cac6c0f880ca
name: python-babel-vue-extractor
arch: src
version: 1.4.3
epoch: 0
release: 1
summary: A plugin for babel to work with vue.js templates
url: https://github.com/nonamenix/babel-vue-extractor
rpm_license: Apache Software License
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-babel-vue-extractor-1.4.3-1.src.rpm
checksum_type: sha256
description:
  |Build Status| |Coverage Status|
  Babel messages extractor for vue.js templates.
  *vue.js* — Reactive Components for Modern Web Interfaces. Site:
  http://vuejs.org/.
  *Babel* — Internationalization library for Python. Site:
  http://babel.pocoo.org/.


pkgId: 2a0839290aab3aeb5249308bc0a146dd62b0f0926b7a3b4fb404edd997e20c1d
name: python-babelfish
arch: src
version: 0.6.1
epoch: 0
release: 1
summary: A module to work with countries and languages
url: https://github.com/Diaoul/babelfish
rpm_license: BSD-3-Clause
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-babelfish-0.6.1-1.src.rpm
checksum_type: sha256
description:
  BabelFish is a Python library to work with countries and languages.

  [![tests](https://github.com/Diaoul/babelfish/actions/workflows/test.yml/badge.svg)](https://github.com/Diaoul/babelfish/actions/workflows/test.yml)


  BabelFish provides scripts, countries and languages from their respective ISO
  standards and a handy way to manipulate them with converters.


  Script representation from 4-letter code (ISO-15924):
  ```python
  >>> import babelfish
  >>> script = babelfish.Script('Hira')
  >>> script
  <Script [Hira]>
  ```


  Country representation from 2-letter code (ISO-3166):
  ```python
  >>> country = babelfish.Country('GB')
  >>> country
  <Country [GB]>
  ```

  Built-in country converters (name):
  ```python
  >>> country = babelfish.Country.fromname('United Kingdom')
  >>> country
  <Country [GB]>
  ```


  Language representation from 3-letter code (ISO-639-3):
  ```python
  >>> language = babelfish.Language("eng")
  >>> language
  <Language [en]>
  ```

  Country-specific language:
  ```python
  >>> language = babelfish.Language('por', 'BR')
  >>> language
  <Language [pt-BR]>
  ```

  Language with specific script:
  ```python
  >>> language = babelfish.Language.fromalpha2('sr')
  >>> language.script = babelfish.Script('Cyrl')
  >>> language
  <Language [sr-Cyrl]>
  ```

  Built-in language converters (alpha2, alpha3b, alpha3t, name, scope, type and opensubtitles):
  ```python
  >>> language = babelfish.Language('por', 'BR')
  >>> language.alpha2
  'pt'
  >>> language.name
  'Portuguese'
  >>> language.scope
  'individual'
  >>> language.type
  'living'
  >>> language.opensubtitles
  'pob'
  >>> babelfish.Language.fromalpha3b('fre')
  <Language [fr]>
  ```


  BabelFish is licensed under the [3-clause BSD license](http://opensource.org/licenses/BSD-3-Clause>)

  Copyright (c) 2013, the BabelFish authors and contributors.


pkgId: c526fad7bd93d3123f8541b9fa0767e23f708f8529e6665479a7f0d25a4ba0b4
name: python-babelfont
arch: src
version: 3.0.5
epoch: 0
release: 1
summary: Load, examine and save fonts in a variety of formats
url: https://pypi.org/project/babelfont/
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-babelfont-3.0.5-1.src.rpm
checksum_type: sha256
description:
  *This describes Babelfont >3.0, which is a complete rewrite from the previous version.*

  Babelfont is a utility for loading fonts and examining fonts in a variety
  of formats. It can also be used to *write* fonts in some of these formats,
  making it possible to convert between font formats.

  Here are the formats which are currently supported:

  | Format          | Read    | Write |
  |-----------------|---------|-------|
  | Glyphs 2        | partial |       |
  | Glyphs 3        | *       | *     |
  | .glyphspackage  | *       |       |
  | UFO             | *       |       |
  | Designspace     | *       |       |
  | Fontlab VFJ     | partial |       |
  | Fontlab VFB     | partial |       |
  | TTF             | partial | *     |
  | OTF             | partial |       |
  | Fontforge SFD   | partial | *     |
  | Fontforge SFDir | partial | *     |
  | Babelfont       | *       | *     |

  Babelfont converts all of the above font formats into a intermediary
  set of objects, whose object hierarchy can be seen [here](https://simoncozens.github.io/babelfont). The allows
  the developer to examine any font (single master or variable), without
  needing to worry about the details of each font format.

  For example:

  ```python
  from babelfont import load

  font = load("Myfont.glyphs") # Or .designspace, or whatever
  default_a = font.default_master.get_glyph_layer("A")
  top_anchor = default_a.anchors_dict["top"].x
  print("Top anchor = (%i,%i)" % (top_anchor.x, top_anchor.y))
  print("LSB, RSB = (%i,%i)" % (default_a.lsb, default_a.rsb))
  font.save("Myfont.ttf")
  ```


pkgId: e6e021591bb22d2516076fb1477784e2ba83f43f2ea6812418c1d7063d12c63e
name: python-babi
arch: src
version: 1.6.0
epoch: 0
release: 1
summary: a text editor
url: https://github.com/asottile/babi
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-babi-1.6.0-1.src.rpm
checksum_type: sha256
description:
  a text editor, eventually...

  ```bash
  pip install babi
  ```
  babi works best in a virtualenv

  I used to use the text editor `nano`, frequently I typo this.  on a qwerty
  keyboard, when the right hand is shifted left by one, `nano` becomes `babi`.

  here is a youtube video where I discuss the motivation for creating and using
  `babi` instead of `nano`:
  [![youtube video about babi](https://img.youtube.com/vi/WyR1hAGmR3g/mqdefault.jpg)](https://youtu.be/WyR1hAGmR3g)

  currently you can quit `babi` by using <kbd>^X</kbd> (or via <kbd>esc</kbd> +
  <kbd>:q</kbd>).

  these are all of the current key bindings in babi
  - <kbd>^S</kbd>: save
  - <kbd>^O</kbd>: save as
  - <kbd>^X</kbd>: quit
  - <kbd>^P</kbd>: open file
  - arrow keys: movement
  - <kbd>^A</kbd> / <kbd>home</kbd>: move to beginning of line
  - <kbd>^E</kbd> / <kbd>end</kbd>: move to end of line
  - <kbd>^Y</kbd> / <kbd>pageup</kbd>: move up one page
  - <kbd>^V</kbd> / <kbd>pagedown</kbd>: move down one page
  - <kbd>^-left</kbd> / <kbd>^-right</kbd>: jump by word
  - <kbd>^-home</kbd> / <kbd>^-end</kbd>: jump to beginning / end of file
  - <kbd>M-Up</kbd> / <kbd>M-Down</kbd>: jump to previous / next paragraph
  - <kbd>^_</kbd>: jump to line number
  - selection: <kbd>shift</kbd> + ...: extend the current selection
      - arrow keys
      - <kbd>home</kbd> / <kbd>end</kdb>
      - <kbd>pageup</kbd> / <kbd>pagedown</kbd>
      - <kbd>^-left</kbd> / <kbd>^-right</kbd>
      - <kbd>^-end</kbd> / <kbd>^-home</kbd>
  - <kbd>tab</kbd> / <kbd>shift-tab</kbd>: indent or dedent current line (or
    selection)
  - <kbd>^K</kbd> / <kbd>^U</kbd>: cut and uncut the current line (or selection)
  - <kbd>M-u</kbd> / <kbd>M-U</kbd> or <kbd>M-e</kbd>: undo / redo
  - <kbd>^W</kbd>: search
  - <kbd>^\\</kbd>: search and replace
  - <kbd>^C</kbd>: show the current position in the file
  - <kbd>^-up</kbd> / <kbd>^-down</kbd>: scroll screen by a single line
  - <kbd>M-left</kbd> / <kbd>M-right</kbd>: go to previous / next file
  - <kbd>^Z</kbd>: background
  - <kbd>^T</kbd>: run linter
      - by default, runs `pre-commit run --files <filename>`
      - outside of a git repo will run `flake8 <filename>` for python files
      - <kbd>^-S-Up</kbd>, <kbd>^-S-Down</kbd>: navigate to previous / next error
      - <kbd>M-t</kbd> focus the linting panel
      - <kbd>^C</kbd>, <kbd>^X</kbd>: clear and close the linting panel
      - <kbd>Esc</kbd>, <kbd>M-t</kdb>: unfocus the linting panel
      - arrow keys: movement inside the linting panel
  - <kbd>esc</kbd>: open the command mode
      - <kbd>:q</kbd>: quit
      - <kbd>:w</kbd>: write the file
      - <kbd>:wq</kbd>: write the file and quit
      - <kbd>:qall</kbd>: quit every open file
      - <kbd>:comment</kbd>: comment out the current line / selection
      - <kbd>:reload</kbd>: reload the file contents
      - <kbd>:sort</kbd>: sort the file (or selection)
      - <kbd>:tabsize X</kbd>: set the tabsize
  in prompts (search, search replace, command):
  - <kbd>^C</kbd>: cancel
  - <kbd>^K</kbd>: cut to end
  - <kbd>^R</kbd>: reverse search

  syntax highlighting should work out of the box!
  if you want a custom theme find a visual studio code theme, convert it to
  json (if it is not already  json) and put it at `~/.config/babi/theme.json`.
  a helper script is provided to make this easier: `./bin/download-theme NAME URL`

  to get the most out of babi's built in keyboard shortcuts, a few settings must
  be changed on macos with Terminal.app:
  - in **System Preferences**: **Keyboard** > **Shortcuts** >
    **Mission Control**: disable or rebind "Move left a space" and
    "Move right a space" (the defaults `⌃ →` and `⌃ ←` conflict)
  - in **Terminal.app**: **Terminal** > **Preferences** > **Profiles** >
    **Keyboard**:
      - check **Use Option as Meta key**
      - ensure the following keys are enabled:
          - `⌃ →`: `\033[1;5C`
          - `⌃ ←`: `\033[1;5D`
          - `⇧ ↑`: `\033[1;2A`
          - `⇧ ↓`: `\033[1;2B`
          - `⇧ →`: `\033[1;2C`
          - `⇧ ←`: `\033[1;2D`

  most things work!  here's a few screenshots

  this opens the file, displays it, and can be edited and can save! unknown keys
  are displayed as errors in the status bar.  babi will scroll if the cursor
  goes off screen either from resize events or from movement.  babi can edit
  multiple files.  babi has a command mode (so you can quit it like vim
  <kbd>:q</kbd>!).  babi also supports syntax highlighting
  ![](https://i.fluffy.cc/5WFZBJ4mWs7wtThD9strQnGlJqw4Z9KS.png)
  ![](https://i.fluffy.cc/qrNhgCK34qKQ6tw4GHLSGs4984Qqnqh7.png)
  ![](https://i.fluffy.cc/DKlkjnZ4tgfnxH7cxjnLcB7GkBVdW35v.png)
  ![](https://i.fluffy.cc/VqHWHfWNW73sppZlHv0C4lw63TVczZfZ.png)
  ![](https://i.fluffy.cc/p8lv61TCql1MJfpBDqbNPWPf27lmGWFN.png)
  ![](https://i.fluffy.cc/ZH5sswB4FSbpW8FfcXL1KZWdJnjxRkbW.png)
  ![](https://i.fluffy.cc/Rw8nZKFC3R36mNrV01fL2gk4rfwWn7wX.png)
  ![](https://i.fluffy.cc/FSD92ZVN4xcMFPv1V7gc0Xzk8TCQTgdg.png)


pkgId: 4ec4da85cad92bc589d65d8c102759451dde37229b826d4780bd6969358debc9
name: python-baby-seg
arch: src
version: 0.30.6
epoch: 0
release: 1
summary: Birth Annotator for Budding Yeast
url: https://github.com/julianpietsch/baby
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-baby-seg-0.30.6-1.src.rpm
checksum_type: sha256
description:
  An image processing pipeline for accurate single-cell growth estimation of
  budding cells from bright-field stacks. The Birth Annotator for Budding Yeast
  (BABY) features:

  - segmentation of overlapping cells, e.g., where small buds overlap with their mothers/sisters,
  - automated assignment of buds to mothers, and
  - estimation of the time of birth (cytokinesis) from growth rate.

  The algorithm is described in:

  [Julian MJ Pietsch, Alán F Muñoz, Diane-Yayra A Adjavon, Iseabail Farquhar,
  Ivan BN Clark, Peter S Swain. (2023). Determining growth rates from
  bright-field images of budding cells through identifying overlaps. eLife.
  12:e79812.](https://doi.org/10.7554/eLife.79812)




  We recommend installing BABY and all its requirements in a virtual environment
  (e.g., `conda create` if you are using Anaconda, or `python3 -m venv` otherwise).

  NB: If you want to install with GPU support see below.

  Otherwise, if you simply wish to use install with the latest compatible versions
  of all packages, then simply run the following in your virtual environment:

  ```bash
  > pip install baby-seg
  ```

  NB: You can update by running: `pip install -U baby-seg`.



  BABY requires Python 3 and [TensorFlow](https://www.tensorflow.org).
  Different versions of TensorFlow have different Python version requirements.
  You can find a table of matching versions
  [here](https://www.tensorflow.org/install/source#tested_build_configurations).

  Our models were trained with TensorFlow version 2.8, but have been tested up
  to version 2.14.

  By default, BABY will trigger installation of the highest compatible version
  of TensorFlow. If you want to use an earlier version, then first install that
  version in your virtual environment by running:

  ```bash
  > pip install tensorflow==2.8
  ```

  and then follow the instructions for installing BABY as above.



  To make use of a GPU you should follow the [TensorFlow set up
  instructions](https://www.tensorflow.org/install/gpu) before installing BABY.

  BABY can make use of Metal on M1/M2 Macs by following the instructions
  [here](https://developer.apple.com/metal/tensorflow-plugin/).




  You may prefer to install an editable version by first obtaining this repo and
  then pip installing the cloned directory:

  ```bash
  > git clone https://git.ecdf.ed.ac.uk/swain-lab/baby.git
  > cd baby
  > pip install -e .
  ```



  The BABY algorithm makes use of several machine learning models that are
  defined as a model set. Various model sets are available, and each has been
  optimised for a particular species, microfluidics device, pixel size, channel
  and number of input Z sections.

  You can get a list of available model sets and the types of input they were
  trained for using the `meta` function in the `modelsets` module:

  ```python
  >>> from baby import modelsets
  >>> modelsets.meta()
  ```

  You then load your favourite model set as a `BabyBrain` object, which
  coordinates all the models and parameters in the set to produce tracked and
  segmented outlines from input images. You can get a `BabyBrain` for a given
  model set using the `get` function in the `modelsets` module:

  ```python
  >>> brain = modelsets.get('yeast-alcatras-brightfield-EMCCD-60x-5z')
  ```

  For each time course you want to process, instantiate a new `BabyCrawler`. The
  crawler keeps track of cells between time steps.

  ```python
  >>> from baby import BabyCrawler
  >>> crawler = BabyCrawler(brain)
  ```

  Load an image time series (from the `tests` subdirectory in this repository).
  The image should have shape (x, y, z).

  ```python
  >>> from baby.io import load_tiled_image
  >>> image_series = [load_tiled_image(
  ...     'tests/images/evolve_testG_tp{:d}_Brightfield.png'.format(t))
  ...     for t in range(1,6)]
  ```

  Send images to the crawler in time-order (here a batch of size 1). We
  additionally request that outlines are optimised to edge predictions, and that
  lineage assignments, binary edge-masks and volume estimates (using the conical
  method) should be output at each time point.

  ```python
  >>> segmented_series = [crawler.step(
  ...     img[None, ...], refine_outlines=True, assign_mothers=True,
  ...     with_edgemasks=True, with_volumes=True)
  ...     for img, _ in image_series]
  ```

  Finally, save the segmentation outlines, labels, volumes and lineage assignments
  as an annotated tiled png:

  ```python
  >>> from baby.io import save_tiled_image
  >>> for t, s in enumerate(segmented_series):
  ...     save_tiled_image(255 * s[0]['edgemasks'].astype('uint8').transpose((1, 2, 0)),
  ...     '../segout_tp{:d}.png'.format(t + 1),
  ...     {k: s[0][k] for k in ('cell_label', 'mother_assign', 'volumes')})
  ```



  More extensive examples for using BABY can be found in the `python/notebooks`
  folder. To maintain the repository in a clean state, it's probably best to
  copy these to another directory for routine use. If you want to share a
  notebook, you can then specifically add it back to the repository at a useful
  checkpoint.

  The notebooks include:

  1. a [complete example](python/notebooks/example-baby-analysis-fig1.ipynb) for
     reproducing Figure 1e in the associated paper.
  2. the [basic training
     workflow](python/notebooks/basic-training-workflow.ipynb) demonstrating how
     to train the BABY algorithm from scratch. This notebook can be adapted to
     train BABY for new cell types or imaging modes.



  Once installed, you should be able to start a server to accept segmentation
  requests using:

  ```bash
  > baby-phone
  ```

  Server runs by default on [http://0.0.0.0:5101](). HTTP requests need to be
  sent to the correct URL endpoint, but the HTTP API is currently undocumented.
  The primary client implementation is the [BABY
  GUI](https://github.com/julianpietsch/baby-gui) available for Matlab.


pkgId: 7e37944bb9e312cffe4829e63ee1c33ef5e5956f16c4fd5efe9b429f9d531287
name: python-baby-steps
arch: src
version: 1.3.1
epoch: 0
release: 1
summary: Readability Matters
url: https://github.com/tsv1/baby-steps
rpm_license: Apache-2.0
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-baby-steps-1.3.1-1.src.rpm
checksum_type: sha256
description:
  [![PyPI](https://img.shields.io/pypi/v/baby-steps.svg?style=flat-square)](https://pypi.python.org/pypi/baby-steps/)
  [![PyPI - Downloads](https://img.shields.io/pypi/dm/baby-steps?style=flat-square)](https://pypi.python.org/pypi/baby-steps/)
  [![Python Version](https://img.shields.io/pypi/pyversions/baby-steps.svg?style=flat-square)](https://pypi.python.org/pypi/baby-steps/)

  BDD steps for test markup. Just for readability.



  ```sh
  pip3 install baby-steps
  ```



  ```python
  import httpx
  from baby_steps import given, when, then

  def test_status_code():
      with given:
          code = 200

      with when:
          resp = httpx.get(f"https://httpbin.org/status/{code}")

      with then:
          assert resp.status_code == code
  ```



  ```python
  import httpx
  from baby_steps import given, when, then

  def test_status_code():
      with given("status code"):
          code = 200

      with when("user requests a resource"):
          resp = httpx.get(f"https://httpbin.org/status/{code}")

      with then("it should return expected status code"):
          assert resp.status_code == code
  ```



  ```python
  from baby_steps import given, then, when
  from baby_steps.hooks import add_hook

  def test():
      with given("status code"):
          pass

      with when("user requests a resource"):
          pass

      with then("it should return expected status code"):
          pass


  def hook(step, name):
      print(step, name)

  add_hook(hook)
  test()




  ```



  ```python
  from baby_steps import when
  from baby_steps.hooks import add_hook

  def test():
      with when:
          print("when")


  def hook(step, name):
      print("before", step)
      yield
      print("after", step)

  add_hook(hook)
  test()




  ```



  ```python
  from baby_steps import Step

  class AndThen(Step):
      pass

  and_then = AndThen()

  with and_then("smth"):
      pass
  ```


pkgId: 13c28556b472b0436239c1011bc84c4924e910e707eea3acf2c94a1e2aa51de2
name: python-babyplots
arch: src
version: 1.7.0
epoch: 0
release: 1
summary: Python package that allows the use of babyplots visualizations in jupyter notebooks
url: https://github.com/derpylz/babyplots_py
rpm_license: Apache Software License
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-babyplots-1.7.0-1.src.rpm
checksum_type: sha256
description:
  Babyplots is an easy to use library for creating interactive 3d graphs for exploring and presenting data. This is the python API that allows you to create babyplots visualizations in Jupyter notebooks.

  **Find the full documentation [here](https://bp.bleb.li/documentation/python).**




  You can install the babyplots package using pip:

  ```sh
  pip install babyplots
  ```



  Once imported, you can create a babyplots visualization using the Babyplot class and adding plots to it. To display your visualization, simply call the object:

  ```python
  from babyplots import Babyplot

  bp = Babyplot()

  bp.add_plot(coordinates, "pointCloud", "categories", clusters, {"colorScale": "Paired"})

  bp
  ```

  Below is a minimal example using the Iris data set:

  ```python
  import numpy as np
  from sklearn import decomposition
  from sklearn import datasets
  from babyplots import Babyplot
  np.random.seed(5)

  iris = datasets.load_iris()
  X = iris.data
  y = iris.target

  iris = datasets.load_iris()
  X = iris.data
  y = iris.target

  bp_iris = Babyplot(background_color="#262626ff")

  bp_iris.add_plot(X, "shapeCloud", "categories", y, {"shape": "sphere", "colorScale": "Set2", "showAxes": [True, True, True], "axisLabels": ["PC 1", "PC 2", "PC 3"]})

  bp_iris
  ```

  You can see this example (and a few more) in a demo notebook [here](https://derpylz.github.io/babyplots_py/).



  For the complete documentation of babyplots and its python API, please visit [https://bp.bleb.li/documentation/python](https://bp.bleb.li/documentation/python).



  Join our [Discord server](https://discord.gg/bbWxP8q)!



  Using babyplots will always be free for everybody. But if you really like it and want to show your appreciation, you may buy us a coffee :)

  [![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/D1D45DB4K)



  * [babyplots_lib](https://github.com/derpylz/babyplots), the underlying javascript library
  * Babyplots as an [R package](https://bitbucket.org/derpylz/babyplots)

  Libraries used in babyplots:

  * [Babylon.js](https://www.babylonjs.com/), the rendering engine
  * [Chroma.js](https://gka.github.io/chroma.js/), the color conversion library
  * [CCapture.js](https://github.com/spite/ccapture.js/), for capturing gifs



  Babyplots was created by [Nils Trost](https://github.com/derpylz)



  Released under the [Apache 2.0 License](LICENSE).

  Find the licenses of the included libraries [here](babyplots/js/babyplots.js.LICENSE.txt). Make sure to include this file if you use babyplots in your project.


