# packages

pkgId: f461a37d247005d71c60f38598e1f849e7d2f0065379adc137ccfa7ed63f5eca
name: python-azure-monitor-opentelemetry-exporter-help
arch: noarch
version: 1.0.0b12
epoch: 0
release: 1
summary: Development documents and examples for azure-monitor-opentelemetry-exporter
rpm_license: MIT License
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-5d9b69ef-f9d1-4278-9611-e078499518a5
rpm_sourcerpm: python-azure-monitor-opentelemetry-exporter-1.0.0b12-1.src.rpm
checksum_type: sha256
description:
  The exporter for Azure Monitor allows you to export data utilizing the OpenTelemetry SDK and send telemetry data to Azure Monitor for applications written in Python.

  [Source code](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/monitor/azure-monitor-opentelemetry-exporter) | [Package (PyPi)][pypi] | [API reference documentation][api_docs] | [Product documentation][product_docs] | [Samples](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/monitor/azure-monitor-opentelemetry-exporter/samples) | [Changelog](https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/monitor/azure-monitor-opentelemetry-exporter/CHANGELOG.md)





  Install the Microsoft OpenTelemetry exporter for Azure Monitor with [pip][pip]:

  ```Bash
  pip install azure-monitor-opentelemetry-exporter --pre
  ```



  To use this package, you must have:

  * Azure subscription - [Create a free account][azure_sub]
  * Azure Monitor - [How to use application insights][application_insights_namespace]
  * OpenTelemetry SDK - [OpenTelemetry SDK for Python][ot_sdk_python]
  * Python 3.7 or later - [Install Python][python]



  Interaction with Azure monitor exporter starts with an instance of the `AzureMonitorTraceExporter` class for distributed tracing, `AzureMonitorLogExporter` for logging and `AzureMonitorMetricExporter` for metrics. You will need a **connection_string** to instantiate the object.
  Please find the samples linked below for demonstration as to how to construct the exporter using a connection string.



  NOTE: The logging signal for the `AzureMonitorLogExporter` is currently in an EXPERIMENTAL state. Possible breaking changes may ensue in the future.

  ```Python
  from azure.monitor.opentelemetry.exporter import AzureMonitorLogExporter
  exporter = AzureMonitorLogExporter(
      connection_string=os.environ["APPLICATIONINSIGHTS_CONNECTION_STRING"]
  )
  ```



  ```Python
  from azure.monitor.opentelemetry.exporter import AzureMonitorMetricExporter
  exporter = AzureMonitorMetricExporter(
      connection_string=os.environ["APPLICATIONINSIGHTS_CONNECTION_STRING"]
  )
  ```



  ```Python
  from azure.monitor.opentelemetry.exporter import AzureMonitorTraceExporter
  exporter = AzureMonitorTraceExporter(
      connection_string=os.environ["APPLICATIONINSIGHTS_CONNECTION_STRING"]
  )
  ```

  You can also instantiate the exporter directly via the constructor. In this case, the connection string will be automatically populated from the `APPLICATIONINSIGHTS_CONNECTION_STRING` environment variable.

  ```python
  from azure.monitor.opentelemetry.exporter import AzureMonitorLogExporter
  exporter = AzureMonitorLogExporter()
  ```

  ```python
  from azure.monitor.opentelemetry.exporter import AzureMonitorMetricExporter
  exporter = AzureMonitorMetricExporter()
  ```

  ```python
  from azure.monitor.opentelemetry.exporter import AzureMonitorTraceExporter
  exporter = AzureMonitorTraceExporter()
  ```



  Some of the key concepts for the Azure monitor exporter include:

  * [OpenTelemetry][opentelemetry_spec]: OpenTelemetry is a set of libraries used to collect and export telemetry data (metrics, logs, and traces) for analysis in order to understand your software's performance and behavior.

  * [Instrumentation][instrumentation_library]: The ability to call the OpenTelemetry API directly by any application is facilitated by instrumentation. A library that enables OpenTelemetry observability for another library is called an instrumentation Library.

  * [Log][log_concept]: Log refers to capturing of logging, exception and events.

  * [LogRecord][log_record]: Represents a log record emitted from a supported logging library.

  * [Logger][logger]: Converts a `LogRecord` into a readable `LogData`, and will be pushed through the SDK to be exported.

  * [Logger Provider][logger_provider]: Provides a `Logger` for the given instrumentation library.

  * [LogRecordProcessor][log_record_processor]: Interface to hook the log record emitting action.

  * [LoggingHandler][logging_handler]: A handler class which writes logging records in OpenTelemetry format from the standard Python `logging` library.

  * [AzureMonitorLogExporter][log_reference]: This is the class that is initialized to send logging related telemetry to Azure Monitor.

  * [Metric][metric_concept]: `Metric` refers to recording raw measurements with predefined aggregation and sets of attributes for a period in time.

  * [Measurement][measurement]: Represents a data point recorded at a point in time.

  * [Instrument][instrument]: Instruments are used to report `Measurement`s.

  * [Meter][meter]: The `Meter` is responsible for creating `Instruments`.

  * [Meter Provider][meter_provider]: Provides a `Meter` for the given instrumentation library.

  * [Metric Reader][metric_reader]: An SDK implementation object that provides the common configurable aspects of the OpenTelemetry Metrics SDK such as collection, flushing and shutdown.

  * [AzureMonitorMetricExporter][metric_reference]: This is the class that is initialized to send metric related telemetry to Azure Monitor.

  * [Trace][trace_concept]: Trace refers to distributed tracing. A distributed trace is a set of events, triggered as a result of a single logical operation, consolidated across various components of an application. In particular, a Trace can be thought of as a directed acyclic graph (DAG) of Spans, where the edges between Spans are defined as parent/child relationship.

  * [Span][span]: Represents a single operation within a `Trace`. Can be nested to form a trace tree. Each trace contains a root span, which typically describes the entire operation and, optionally, one ore more sub-spans for its sub-operations.

  * [Tracer][tracer]: Responsible for creating `Span`s.

  * [Tracer Provider][tracer_provider]: Provides a `Tracer` for use by the given instrumentation library.

  * [Span Processor][span_processor]: A span processor allows hooks for SDK's `Span` start and end method invocations. Follow the link for more information.

  * [AzureMonitorTraceExporter][trace_reference]: This is the class that is initialized to send tracing related telemetry to Azure Monitor.

  * [Sampling][sampler_ref]: Sampling is a mechanism to control the noise and overhead introduced by OpenTelemetry by reducing the number of samples of traces collected and sent to the backend.

  * ApplicationInsightsSampler: Application Insights specific sampler used for consistent sampling across Application Insights SDKs and OpenTelemetry-based SDKs sending data to Application Insights. This sampler MUST be used whenever `AzureMonitorTraceExporter` is used.

  For more information about these resources, see [What is Azure Monitor?][product_docs].



  All configuration options can be passed through the constructors of exporters through `kwargs`. Below is a list of configurable options.

  * `connection_string`: The connection string used for your Application Insights resource.
  * `disable_offline_storage`: Boolean value to determine whether to disable storing failed telemetry records for retry. Defaults to `False`.
  * `storage_directory`: Storage directory in which to store retry files. Defaults to `<tempfile.gettempdir()>/Microsoft/AzureMonitor/opentelemetry-python-<your-instrumentation-key>`.





  NOTE: The logging signal for the `AzureMonitorLogExporter` is currently in an EXPERIMENTAL state. Possible breaking changes may ensue in the future.

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

  * [Exporting a log record](#export-hello-world-log)
  * [Exporting correlated log record](#export-correlated-log)
  * [Exporting log record with custom properties](#export-custom-properties-log)
  * [Exporting an exceptions log record](#export-exceptions-log)

  Review the [OpenTelemetry Logging SDK][ot_logging_sdk] to learn how to use OpenTelemetry components to collect logs.



  ```Python
  """
  An example to show an application using Opentelemetry logging sdk. Logging calls to the standard Python
  logging library are tracked and telemetry is exported to application insights with the AzureMonitorLogExporter.
  """
  import os
  import logging

  from opentelemetry.sdk._logs import (
      LoggerProvider,
      LoggingHandler,
      set_logger_provider,
  )
  from opentelemetry.sdk._logs.export import BatchLogRecordProcessor

  from azure.monitor.opentelemetry.exporter import AzureMonitorLogExporter

  logger_provider = LoggerProvider()
  set_logger_provider(logger_provider)

  exporter = AzureMonitorLogExporter(
      connection_string=os.environ["APPLICATIONINSIGHTS_CONNECTION_STRING"]
  )

  logger_provider.add_log_record_processor(BatchLogRecordProcessor(exporter))
  handler = LoggingHandler()


  logging.getLogger().addHandler(handler)
  logging.getLogger().setLevel(logging.NOTSET)

  logger = logging.getLogger(__name__)

  logger.warning("Hello World!")
  ```



  ```Python
  """
  An example showing how to include context correlation information in logging telemetry.
  """
  import os
  import logging

  from opentelemetry import trace
  from opentelemetry.sdk._logs import (
      LoggerProvider,
      LoggingHandler,
      set_logger_provider,
  )
  from opentelemetry.sdk._logs.export import BatchLogRecordProcessor
  from opentelemetry.sdk.trace import TracerProvider

  from azure.monitor.opentelemetry.exporter import AzureMonitorLogExporter

  trace.set_tracer_provider(TracerProvider())
  tracer = trace.get_tracer(__name__)
  logger_provider = LoggerProvider()
  set_logger_provider(logger_provider)

  exporter = AzureMonitorLogExporter(
      connection_string=os.environ["APPLICATIONINSIGHTS_CONNECTION_STRING"]
  )

  logger_provider.add_log_record_processor(BatchLogRecordProcessor(exporter))
  handler = LoggingHandler()


  logging.getLogger().addHandler(handler)
  logging.getLogger().setLevel(logging.NOTSET)

  logger = logging.getLogger(__name__)

  logger.info("INFO: Outside of span")
  with tracer.start_as_current_span("foo"):
      logger.warning("WARNING: Inside of span")
  logger.error("ERROR: After span")
  ```



  ```Python
  """
  An example showing how to add custom properties to logging telemetry.
  """
  import os
  import logging

  from opentelemetry.sdk._logs import (
      LoggerProvider,
      LoggingHandler,
      set_logger_provider,
  )
  from opentelemetry.sdk._logs.export import BatchLogRecordProcessor

  from azure.monitor.opentelemetry.exporter import AzureMonitorLogExporter

  logger_provider = LoggerProvider()
  set_logger_provider(logger_provider)

  exporter = AzureMonitorLogExporter(
      connection_string=os.environ["APPLICATIONINSIGHTS_CONNECTION_STRING"]
  )

  logger_provider.add_log_record_processor(BatchLogRecordProcessor(exporter))
  handler = LoggingHandler()


  logging.getLogger().addHandler(handler)
  logging.getLogger().setLevel(logging.NOTSET)

  logger = logging.getLogger(__name__)


  logger.debug("DEBUG: Debug with properties", extra={"debug": "true"})
  ```



  ```Python
  """
  An example showing how to export exception telemetry using the AzureMonitorLogExporter.
  """
  import os
  import logging

  from opentelemetry._logs import (
      get_logger_provider,
      set_logger_provider,
  )
  from opentelemetry.sdk._logs import (
      LoggerProvider,
      LoggingHandler,
  )
  from opentelemetry.sdk._logs.export import BatchLogRecordProcessor

  from azure.monitor.opentelemetry.exporter import AzureMonitorLogExporter

  set_logger_provider(LoggerProvider())
  exporter = AzureMonitorLogExporter(
      connection_string=os.environ["APPLICATIONINSIGHTS_CONNECTION_STRING"]
  )
  get_logger_provider().add_log_record_processor(BatchLogRecordProcessor(exporter))


  handler = LoggingHandler()
  logger = logging.getLogger(__name__)
  logger.addHandler(handler)
  logger.setLevel(logging.NOTSET)



  try:
      val = 1 / 0
      print(val)
  except ZeroDivisionError:
      logger.exception("Error: Division by zero")

  try:
      val = 1 / 0
      print(val)
  except ZeroDivisionError:
      logger.error("Error: Division by zero", stack_info=True, exc_info=True)
  ```



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

  * [Using different metric instruments](#metric-instrument-usage)
  * [Customizing outputted metrics with views](#metric-custom-views)
  * [Recording instruments with attributes](#metric-record-attributes)

  Review the [OpenTelemetry Metrics SDK][ot_metrics_sdk] to learn how to use OpenTelemetry components to collect metrics.



  ```python
  """
  An example to show an application using all instruments in the OpenTelemetry SDK. Metrics created
  and recorded using the sdk are tracked and telemetry is exported to application insights with the
  AzureMonitorMetricsExporter.
  """
  import os
  from typing import Iterable

  from opentelemetry import metrics
  from opentelemetry.metrics import CallbackOptions, Observation
  from opentelemetry.sdk.metrics import MeterProvider
  from opentelemetry.sdk.metrics.export import PeriodicExportingMetricReader

  from azure.monitor.opentelemetry.exporter import AzureMonitorMetricExporter

  exporter = AzureMonitorMetricExporter(
      connection_string=os.environ["APPLICATIONINSIGHTS_CONNECTION_STRING"]
  )
  reader = PeriodicExportingMetricReader(exporter, export_interval_millis=5000)
  metrics.set_meter_provider(MeterProvider(metric_readers=[reader]))


  meter = metrics.get_meter_provider().get_meter("sample")


  def observable_counter_func(options: CallbackOptions) -> Iterable[Observation]:
      yield Observation(1, {})


  def observable_up_down_counter_func(
      options: CallbackOptions,
  ) -> Iterable[Observation]:
      yield Observation(-10, {})


  def observable_gauge_func(options: CallbackOptions) -> Iterable[Observation]:
      yield Observation(9, {})


  counter = meter.create_counter("counter")
  counter.add(1)


  observable_counter = meter.create_observable_counter(
      "observable_counter", [observable_counter_func]
  )


  up_down_counter = meter.create_up_down_counter("up_down_counter")
  up_down_counter.add(1)
  up_down_counter.add(-5)


  observable_up_down_counter = meter.create_observable_up_down_counter(
      "observable_up_down_counter", [observable_up_down_counter_func]
  )


  histogram = meter.create_histogram("histogram")
  histogram.record(99.9)


  gauge = meter.create_observable_gauge("gauge", [observable_gauge_func])

  ```



  ```python
  """
  This example shows how to customize the metrics that are output by the SDK using Views. Metrics created
  and recorded using the sdk are tracked and telemetry is exported to application insights with the
  AzureMonitorMetricsExporter.
  """
  import os

  from opentelemetry import metrics
  from opentelemetry.sdk.metrics import Counter, MeterProvider
  from opentelemetry.sdk.metrics.export import PeriodicExportingMetricReader
  from opentelemetry.sdk.metrics.view import View

  from azure.monitor.opentelemetry.exporter import AzureMonitorMetricExporter

  exporter = AzureMonitorMetricExporter.from_connection_string(
      os.environ["APPLICATIONINSIGHTS_CONNECTION_STRING"]
  )


  change_metric_name_view = View(
      instrument_type=Counter,
      instrument_name="my.counter",
      name="my.counter.total",
  )

  reader = PeriodicExportingMetricReader(exporter, export_interval_millis=5000)
  provider = MeterProvider(
      metric_readers=[
          reader,
      ],
      views=[
          change_metric_name_view,
      ],
  )
  metrics.set_meter_provider(provider)

  meter = metrics.get_meter_provider().get_meter("view-name-change")
  my_counter = meter.create_counter("my.counter")
  my_counter.add(100)

  ```

  More examples with the metrics `Views` SDK can be found [here](https://github.com/open-telemetry/opentelemetry-python/tree/main/docs/examples/metrics/views).



  ```python
  """
  An example to show an application using different attributes with instruments in the OpenTelemetry SDK.
  Metrics created and recorded using the sdk are tracked and telemetry is exported to application insights
  with the AzureMonitorMetricsExporter.
  """
  import os

  from opentelemetry import metrics
  from opentelemetry.sdk.metrics import MeterProvider
  from opentelemetry.sdk.metrics.export import PeriodicExportingMetricReader

  from azure.monitor.opentelemetry.exporter import AzureMonitorMetricExporter

  exporter = AzureMonitorMetricExporter.from_connection_string(
      os.environ["APPLICATIONINSIGHTS_CONNECTION_STRING"]
  )
  reader = PeriodicExportingMetricReader(exporter, export_interval_millis=5000)
  metrics.set_meter_provider(MeterProvider(metric_readers=[reader]))

  attribute_set1 = {
      "key1": "val1"
  }
  attribute_set2 = {
      "key2": "val2"
  }
  large_attribute_set = {}
  for i in range(20):
      key = "key{}".format(i)
      val = "val{}".format(i)
      large_attribute_set[key] = val

  meter = metrics.get_meter_provider().get_meter("sample")


  counter = meter.create_counter("attr1_counter")
  counter.add(1, attribute_set1)


  counter2 = meter.create_counter("attr2_counter")
  counter2.add(10, attribute_set1)
  counter2.add(30, attribute_set2)


  counter3 = meter.create_counter("large_attr_counter")
  counter3.add(100, attribute_set1)
  counter3.add(200, large_attribute_set)

  ```



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

  * [Exporting a custom span](#export-hello-world-trace)
  * [Using an instrumentation to track a library](#instrumentation-with-requests-library)
  * [Enabling sampling to limit the amount of telemetry sent](#enabling-sampling)

  Review the [OpenTelemetry Tracing SDK][ot_tracing_sdk] to learn how to use OpenTelemetry components to collect logs.



  ```Python
  """
  An example to show an application using Opentelemetry tracing api and sdk. Custom dependencies are
  tracked via spans and telemetry is exported to application insights with the AzureMonitorTraceExporter.
  """
  import os
  from opentelemetry import trace
  from opentelemetry.sdk.trace import TracerProvider
  from opentelemetry.sdk.trace.export import BatchSpanProcessor
  from azure.monitor.opentelemetry.exporter import AzureMonitorTraceExporter

  trace.set_tracer_provider(TracerProvider())
  tracer = trace.get_tracer(__name__)

  exporter = AzureMonitorTraceExporter(
      connection_string=os.environ["APPLICATIONINSIGHTS_CONNECTION_STRING"]
  )
  span_processor = BatchSpanProcessor(exporter)
  trace.get_tracer_provider().add_span_processor(span_processor)

  with tracer.start_as_current_span("hello"):
      print("Hello, World!")
  ```



  OpenTelemetry also supports several instrumentations which allows to instrument with third party libraries.

  For a list of instrumentations available in OpenTelemetry, visit the contrib [documentation](https://opentelemetry-python-contrib.readthedocs.io/en/latest/).

  This example shows how to instrument with the [requests](https://pypi.org/project/requests/) library.

  * Install the requests instrumentation package using pip install opentelemetry-instrumentation-requests.

  ```Python
  """
  An example to show an application instrumented with the OpenTelemetry requests instrumentation.
  Calls made with the requests library will be automatically tracked and telemetry is exported to
  application insights with the AzureMonitorTraceExporter.
  See more info on the requests instrumentation here:
  https://github.com/open-telemetry/opentelemetry-python-contrib/tree/main/instrumentation/opentelemetry-instrumentation-requests
  """
  import os
  import requests
  from opentelemetry import trace
  from opentelemetry.instrumentation.requests import RequestsInstrumentor
  from opentelemetry.sdk.trace import TracerProvider
  from opentelemetry.sdk.trace.export import BatchSpanProcessor
  from azure.monitor.opentelemetry.exporter import AzureMonitorTraceExporter


  RequestsInstrumentor().instrument()

  trace.set_tracer_provider(TracerProvider())
  tracer = trace.get_tracer(__name__)
  exporter = AzureMonitorTraceExporter(
      connection_string=os.environ["APPLICATIONINSIGHTS_CONNECTION_STRING"]
  )
  span_processor = BatchSpanProcessor(exporter)
  trace.get_tracer_provider().add_span_processor(span_processor)


  response = requests.get(url="https://azure.microsoft.com/")
  ```



  You can enable sampling to limit the amount of telemetry records you receive. In order to enable correct sampling in Application Insights, use the `ApplicationInsightsSampler` as shown below.

  ```Python
  """
  An example to show an application using the ApplicationInsightsSampler to enable sampling for your telemetry.
  Specify a sampling rate for the sampler to limit the amount of telemetry records you receive. Custom dependencies
   are tracked via spans and telemetry is exported to application insights with the AzureMonitorTraceExporter.
  """
  import os
  from opentelemetry import trace
  from opentelemetry.sdk.trace import TracerProvider
  from opentelemetry.sdk.trace.export import BatchSpanProcessor
  from azure.monitor.opentelemetry.exporter import (
      ApplicationInsightsSampler,
      AzureMonitorTraceExporter,
  )



  sampler = ApplicationInsightsSampler(0.75)
  trace.set_tracer_provider(TracerProvider(sampler=sampler))
  tracer = trace.get_tracer(__name__)
  exporter = AzureMonitorTraceExporter(
      connection_string=os.environ["APPLICATIONINSIGHTS_CONNECTION_STRING"]
  )
  span_processor = BatchSpanProcessor(exporter)
  trace.get_tracer_provider().add_span_processor(span_processor)

  for i in range(100):
      
      with tracer.start_as_current_span("hello"):
          print("Hello, World!")
  ```



  The exporter raises exceptions defined in [Azure Core](https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/core/azure-core/README.md#azure-core-library-exceptions).





  Please find further examples in the [samples](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/monitor/azure-monitor-opentelemetry-exporter/samples) directory demonstrating common scenarios.



  For more extensive documentation on the Azure Monitor service, see the [Azure Monitor documentation][product_docs] on docs.microsoft.com.

  For detailed overview of OpenTelemetry, visit their [overview](https://github.com/open-telemetry/opentelemetry-specification/blob/master/specification/overview.md) page.

  For the official OpenTelemetry Python documentation and how to enable other telemetry scenarios, visit the official OpenTelemetry [website](https://opentelemetry.io/docs/instrumentation/python/).

  For more information on the Azure Monitor OpenTelemetry Distro, which is a bundle of useful, pre-assembled components (one of them being this current package) that enable telemetry scenarios with Azure Monitor, visit the [README](https://github.com/microsoft/ApplicationInsights-Python/tree/main/azure-monitor-opentelemetry-distro).



  This project welcomes contributions and suggestions.  Most contributions require you to agree to a
  Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us
  the rights to use your contribution. For details, visit https://cla.microsoft.com.

  When you submit a pull request, a CLA-bot will automatically determine whether you need to provide
  a CLA and decorate the PR appropriately (e.g., label, comment). Simply follow the instructions
  provided by the bot. You will only need to do this once across all repos using our CLA.

  This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/).
  For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or
  contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.

  <!-- LINKS -->
  [api_docs]: https://azuresdkdocs.blob.core.windows.net/$web/python/azure-opentelemetry-exporter-azuremonitor/1.0.0b2/index.html
  [product_docs]: https://docs.microsoft.com/azure/azure-monitor/overview
  [azure_sub]: https://azure.microsoft.com/free/
  [pip]: https://pypi.org/project/pip/
  [pypi]: https://pypi.org/project/azure-monitor-opentelemetry-exporter/
  [python]: https://www.python.org/downloads/
  [ot_sdk_python]: https://github.com/open-telemetry/opentelemetry-python
  [application_insights_namespace]: https://docs.microsoft.com/azure/azure-monitor/app/app-insights-overview#how-do-i-use-application-insights
  [opentelemetry_spec]: https://opentelemetry.io/
  [instrumentation_library]: https://github.com/open-telemetry/opentelemetry-specification/blob/master/specification/overview.md#instrumentation-libraries
  [log_concept]: https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/overview.md#log-signal
  [log_record]: https://opentelemetry-python.readthedocs.io/en/stable/sdk/logs.html#opentelemetry.sdk._logs.LogRecord
  [logger]: https://opentelemetry-python.readthedocs.io/en/stable/sdk/logs.html#opentelemetry.sdk._logs.Logger
  [logger_provider]: https://opentelemetry-python.readthedocs.io/en/stable/sdk/logs.html#opentelemetry.sdk._logs.LoggerProvider
  [log_record_processor]: https://opentelemetry-python.readthedocs.io/en/stable/sdk/logs.html#opentelemetry.sdk._logs.LogRecordProcessor
  [logging_handler]: https://opentelemetry-python.readthedocs.io/en/stable/sdk/logs.html#opentelemetry.sdk._logs.LoggingHandler
  [log_reference]: https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/monitor/azure-monitor-opentelemetry-exporter/azure/monitor/opentelemetry/exporter/export/logs/_exporter.py
  [ot_logging_sdk]: https://opentelemetry-python.readthedocs.io/en/stable/sdk/logs.html
  [metric_concept]: https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/overview.md#metric-signal
  [measurement]: https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/api.md#measurement
  [instrument]: https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/api.md#instrument
  [meter]: https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/api.md#meter
  [meter_provider]: https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/api.md#meterprovider
  [metric_reader]:https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/sdk.md#metricreader
  [metric_reference]: https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/monitor/azure-monitor-opentelemetry-exporter/azure/monitor/opentelemetry/exporter/export/metrics/_exporter.py
  [ot_metrics_sdk]: https://opentelemetry-python.readthedocs.io/en/stable/sdk/metrics.html
  [trace_concept]: https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/overview.md#tracing-signal
  [span]: https://opentelemetry-python.readthedocs.io/en/stable/api/trace.html?highlight=TracerProvider#opentelemetry.trace.Span
  [tracer]: https://opentelemetry-python.readthedocs.io/en/stable/api/trace.html?highlight=TracerProvider#opentelemetry.trace.Tracer
  [tracer_provider]: https://opentelemetry-python.readthedocs.io/en/stable/api/trace.html?highlight=TracerProvider#opentelemetry.trace.TracerProvider
  [span_processor]: https://opentelemetry-python.readthedocs.io/en/stable/_modules/opentelemetry/sdk/trace.html?highlight=SpanProcessor#
  [trace_reference]: https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/monitor/azure-monitor-opentelemetry-exporter/azure/monitor/opentelemetry/exporter/export/trace/_exporter.py
  [ot_tracing_sdk]: https://opentelemetry-python.readthedocs.io/en/stable/sdk/trace.html
  [sampler_ref]: https://github.com/open-telemetry/opentelemetry-specification/blob/master/specification/trace/sdk.md#sampling

url:
  https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/monitor/azure-monitor-opentelemetry-exporter

location_href:
  00013964-python-azure-monitor-opentelemetry-exporter/python-azure-monitor-opentelemetry-exporter-help-1.0.0b12-1.noarch.rpm


pkgId: 7eea683fc89afde1638e123db2b6a473cade0099d84b2db929a14342dbb9be45
name: python-azure-multiapi-storage
arch: src
version: 1.0.0
epoch: 0
release: 1
summary: Microsoft Azure Storage Client Library for Python with multi API version support.
url: https://github.com/Azure/azure-multiapi-storage-python
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-a3975374-cbc8-4da5-bef1-f867602f3a70
location_href: 00010091-python-azure-multiapi-storage/python-azure-multiapi-storage-1.0.0-1.src.rpm
checksum_type: sha256
description:
  Handles multi-API versions of Azure Storage Data Plane originally from https://github.com/Azure/azure-storage-python.
  **NOTE:**
  - This is not an official Azure Storage SDK.
  - It is used by https://github.com/Azure/azure-cli to support multiple API versions.
  - The official Azure Storage SDK is at https://github.com/Azure/azure-storage-python.
  - The official Azure CosmosDB Table SDK is at https://github.com/Azure/azure-cosmosdb-python/tree/master/azure-cosmosdb-table.
  - **Please file issues at the appropriate repository above.**


pkgId: 9cc1726fcaef684ce2544ec7157adb10f46fd6b39cb039b4eec4277b2f027b1d
name: python-azure-nspkg
arch: src
version: 3.0.2
epoch: 0
release: 1
summary: Microsoft Azure Namespace Package [Internal]
url: https://github.com/Azure/azure-sdk-for-python
rpm_license: MIT License
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-6fb41b1d-f634-4a29-a39f-403d89174da9
location_href: 00009101-python-azure-nspkg/python-azure-nspkg-3.0.2-1.src.rpm
checksum_type: sha256
description:
  This is the Microsoft Azure namespace package.
  This package is not intended to be installed directly by the end user.
  Since version 3.0, this is Python 2 package only, Python 3.x SDKs will use `PEP420 <https://www.python.org/dev/peps/pep-0420/>`__ as namespace package strategy.
  To avoid issues with package servers that does not support `python_requires`, a Python 3 package is installed but is empty.
  It provides the necessary files for other packages to extend the azure namespace.
  If you are looking to install the Azure client libraries, see the
  `azure <https://pypi.python.org/pypi/azure>`__ bundle package.


pkgId: c07bab0f208f6b223b7686973e86e8b17f2dce36ff79469ab610b4adb5375948
name: python-azure-servicemanagement-legacy
arch: src
version: 0.20.7
epoch: 0
release: 1
summary: Microsoft Azure Legacy Service Management Client Library for Python
url: https://github.com/Azure/azure-sdk-for-python
rpm_license: Apache License 2.0
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-d0d70b76-fc89-4d75-a944-c134aad7e211
checksum_type: sha256
description:
  This is the Microsoft Azure Service Management Legacy Client Library.

  All packages in this bundle have been tested with Python 2.7, 3.3, 3.4 and 3.5.

  For the newer Azure Resource Management (ARM) libraries, see [azure-mgmt](https://pypi.python.org/pypi/azure-mgmt).

  For a more complete set of Azure libraries, see the [azure](https://pypi.python.org/pypi/azure) bundle package.




  **IMPORTANT**: If you have an earlier version of the azure package
  (version < 1.0), you should uninstall it before installing this package.

  You can check the version using pip:

  ```shell
  pip freeze
  ```

  If you see azure==0.11.0 (or any version below 1.0), uninstall it first:

  ```shell
  pip uninstall azure
  ```



  -  Cloud Service management (Virtual Machines, VM Images, OS Images)
  -  Storage accounts management
  -  Scheduler management
  -  Service Bus management
  -  Affinity Group management
  -  Management certificate management
  -  Web Apps (Website) management






  To install via the Python Package Index (PyPI), type:

  ```shell
  pip install azure-servicemanagement-legacy
  ```




  To get the source code of the SDK via **git** type:

  ```shell
  git clone https://github.com/Azure/azure-sdk-for-python.git
  cd azure-sdk-for-python
  cd azure-servicemanagement-legacy
  python setup.py install
  ```








  You will need two certificates, one for the server (a .cer file) and one for
  the client (a .pem file).



  You can download your Azure publish settings file and use the certificate that
  is embedded in that file to create the client certificate. The server
  certificate already exists, so you won't need to upload one.

  To do this, download your [publish settings](http://go.microsoft.com/fwlink/?LinkID=301775)
  then use this code to create the .pem file.

  ```python
  from azure.servicemanagement import get_certificate_from_publish_settings

  subscription_id = get_certificate_from_publish_settings(
      publish_settings_path='MyAccount.PublishSettings',
      path_to_write_certificate='mycert.pem',
      subscription_id='00000000-0000-0000-0000-000000000000',
  )
  ```

  The subscription id parameter is optional. If there are more than one
  subscription in the publish settings, the first one will be used.



  To create the .pem file using [OpenSSL](http://www.openssl.org), execute this:

  ```shell
  openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout mycert.pem -out mycert.pem
  ```
  To create the .cer certificate, execute this:

  ```shell
  openssl x509 -inform pem -in mycert.pem -outform der -out mycert.cer
  ```

  After you have created the certificate, you will need to upload the .cer
  file to Microsoft Azure via the "Upload" action of the "Settings" tab of
  the [management portal](http://manage.windowsazure.com).






  To initialize the management service, pass in your subscription id and
  the path to the .pem file.

  ```python
  from azure.servicemanagement import ServiceManagementService
  subscription_id = '00000000-0000-0000-0000-000000000000'
  cert_file = 'mycert.pem'
  sms = ServiceManagementService(subscription_id, cert_file)
  ```



  ```python
  locations = sms.list_locations()
  for location in locations:
      print(location.name)
  ```



  To create a storage service, you need a name for the service (between 3
  and 24 lowercase characters and unique within Microsoft Azure), a label
  (up to 100 characters, automatically encoded to base-64), and either a
  location or an affinity group.

  ```python
  name = "mystorageservice"
  desc = name
  label = name
  location = 'West US'

  result = sms.create_storage_account(name, desc, label, location=location)
  sms.wait_for_operation_status(result.request_id, timeout=30)
  ```



  A cloud service is also known as a hosted service (from earlier versions
  of Microsoft Azure). The **create\_hosted\_service** method allows you
  to create a new hosted service by providing a hosted service name (which
  must be unique in Microsoft Azure), a label (automatically encoded to
  base-64), and the location *or* the affinity group for your service.

  ```python
  name = "myhostedservice"
  desc = name
  label = name
  location = 'West US'

  result = sms.create_hosted_service(name, label, desc, location=location)
  sms.wait_for_operation_status(result.request_id, timeout=30)
  ```



  To create a virtual machine, you first need to create a cloud service.
  Then create the virtual machine deployment using the
  create_virtual_machine_deployment method.

  ```python
  from azure.servicemanagement import LinuxConfigurationSet, OSVirtualHardDisk

  name = "myhostedservice"


  image_name = 'OpenLogic__OpenLogic-CentOS-62-20120531-en-us-30GB.vhd'



  media_link = 'url_to_target_storage_blob_for_vm_hd'



  linux_config = LinuxConfigurationSet(
      'myhostname',
      'myuser',
      'mypassword',
      disable_ssh_password_authentication=True,
  )

  os_hd = OSVirtualHardDisk(image_name, media_link)

  result = sms.create_virtual_machine_deployment(
      service_name=name,
      deployment_name=name,
      deployment_slot='production',
      label=name,
      role_name=name,
      system_config=linux_config,
      os_virtual_hard_disk=os_hd,
      role_size='Small',
  )
  sms.wait_for_operation_status(result.request_id, timeout=600)
  ```




  Be sure to check out the Microsoft Azure [Developer Forums on Stack
  Overflow](http://go.microsoft.com/fwlink/?LinkId=234489) if you have
  trouble with the provided code.




  If you would like to become an active contributor to this project please
  follow the instructions provided in [Microsoft Azure Projects
  Contribution
  Guidelines](http://azure.github.io/guidelines.html).

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




  [Microsoft Azure Python Developer
  Center](http://azure.microsoft.com/en-us/develop/python/)


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

location_href:
  00009433-python-azure-servicemanagement-legacy/python-azure-servicemanagement-legacy-0.20.7-1.src.rpm


pkgId: 788cfa210201d8d7dfc157d68e1897be12d2a223d34e550fe9320830a90c8e52
name: python-azure-servicemanagement-legacy-help
arch: noarch
version: 0.20.7
epoch: 0
release: 1
summary: Development documents and examples for azure-servicemanagement-legacy
url: https://github.com/Azure/azure-sdk-for-python
rpm_license: Apache License 2.0
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-d0d70b76-fc89-4d75-a944-c134aad7e211
rpm_sourcerpm: python-azure-servicemanagement-legacy-0.20.7-1.src.rpm
checksum_type: sha256
description:
  This is the Microsoft Azure Service Management Legacy Client Library.

  All packages in this bundle have been tested with Python 2.7, 3.3, 3.4 and 3.5.

  For the newer Azure Resource Management (ARM) libraries, see [azure-mgmt](https://pypi.python.org/pypi/azure-mgmt).

  For a more complete set of Azure libraries, see the [azure](https://pypi.python.org/pypi/azure) bundle package.




  **IMPORTANT**: If you have an earlier version of the azure package
  (version < 1.0), you should uninstall it before installing this package.

  You can check the version using pip:

  ```shell
  pip freeze
  ```

  If you see azure==0.11.0 (or any version below 1.0), uninstall it first:

  ```shell
  pip uninstall azure
  ```



  -  Cloud Service management (Virtual Machines, VM Images, OS Images)
  -  Storage accounts management
  -  Scheduler management
  -  Service Bus management
  -  Affinity Group management
  -  Management certificate management
  -  Web Apps (Website) management






  To install via the Python Package Index (PyPI), type:

  ```shell
  pip install azure-servicemanagement-legacy
  ```




  To get the source code of the SDK via **git** type:

  ```shell
  git clone https://github.com/Azure/azure-sdk-for-python.git
  cd azure-sdk-for-python
  cd azure-servicemanagement-legacy
  python setup.py install
  ```








  You will need two certificates, one for the server (a .cer file) and one for
  the client (a .pem file).



  You can download your Azure publish settings file and use the certificate that
  is embedded in that file to create the client certificate. The server
  certificate already exists, so you won't need to upload one.

  To do this, download your [publish settings](http://go.microsoft.com/fwlink/?LinkID=301775)
  then use this code to create the .pem file.

  ```python
  from azure.servicemanagement import get_certificate_from_publish_settings

  subscription_id = get_certificate_from_publish_settings(
      publish_settings_path='MyAccount.PublishSettings',
      path_to_write_certificate='mycert.pem',
      subscription_id='00000000-0000-0000-0000-000000000000',
  )
  ```

  The subscription id parameter is optional. If there are more than one
  subscription in the publish settings, the first one will be used.



  To create the .pem file using [OpenSSL](http://www.openssl.org), execute this:

  ```shell
  openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout mycert.pem -out mycert.pem
  ```
  To create the .cer certificate, execute this:

  ```shell
  openssl x509 -inform pem -in mycert.pem -outform der -out mycert.cer
  ```

  After you have created the certificate, you will need to upload the .cer
  file to Microsoft Azure via the "Upload" action of the "Settings" tab of
  the [management portal](http://manage.windowsazure.com).






  To initialize the management service, pass in your subscription id and
  the path to the .pem file.

  ```python
  from azure.servicemanagement import ServiceManagementService
  subscription_id = '00000000-0000-0000-0000-000000000000'
  cert_file = 'mycert.pem'
  sms = ServiceManagementService(subscription_id, cert_file)
  ```



  ```python
  locations = sms.list_locations()
  for location in locations:
      print(location.name)
  ```



  To create a storage service, you need a name for the service (between 3
  and 24 lowercase characters and unique within Microsoft Azure), a label
  (up to 100 characters, automatically encoded to base-64), and either a
  location or an affinity group.

  ```python
  name = "mystorageservice"
  desc = name
  label = name
  location = 'West US'

  result = sms.create_storage_account(name, desc, label, location=location)
  sms.wait_for_operation_status(result.request_id, timeout=30)
  ```



  A cloud service is also known as a hosted service (from earlier versions
  of Microsoft Azure). The **create\_hosted\_service** method allows you
  to create a new hosted service by providing a hosted service name (which
  must be unique in Microsoft Azure), a label (automatically encoded to
  base-64), and the location *or* the affinity group for your service.

  ```python
  name = "myhostedservice"
  desc = name
  label = name
  location = 'West US'

  result = sms.create_hosted_service(name, label, desc, location=location)
  sms.wait_for_operation_status(result.request_id, timeout=30)
  ```



  To create a virtual machine, you first need to create a cloud service.
  Then create the virtual machine deployment using the
  create_virtual_machine_deployment method.

  ```python
  from azure.servicemanagement import LinuxConfigurationSet, OSVirtualHardDisk

  name = "myhostedservice"


  image_name = 'OpenLogic__OpenLogic-CentOS-62-20120531-en-us-30GB.vhd'



  media_link = 'url_to_target_storage_blob_for_vm_hd'



  linux_config = LinuxConfigurationSet(
      'myhostname',
      'myuser',
      'mypassword',
      disable_ssh_password_authentication=True,
  )

  os_hd = OSVirtualHardDisk(image_name, media_link)

  result = sms.create_virtual_machine_deployment(
      service_name=name,
      deployment_name=name,
      deployment_slot='production',
      label=name,
      role_name=name,
      system_config=linux_config,
      os_virtual_hard_disk=os_hd,
      role_size='Small',
  )
  sms.wait_for_operation_status(result.request_id, timeout=600)
  ```




  Be sure to check out the Microsoft Azure [Developer Forums on Stack
  Overflow](http://go.microsoft.com/fwlink/?LinkId=234489) if you have
  trouble with the provided code.




  If you would like to become an active contributor to this project please
  follow the instructions provided in [Microsoft Azure Projects
  Contribution
  Guidelines](http://azure.github.io/guidelines.html).

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




  [Microsoft Azure Python Developer
  Center](http://azure.microsoft.com/en-us/develop/python/)


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

location_href:
  00009433-python-azure-servicemanagement-legacy/python-azure-servicemanagement-legacy-help-0.20.7-1.noarch.rpm


pkgId: bc74140dc86ca27ab627d0828532598aeb4f149ecb6c8344a7721f002229893f
name: python-azure-storage-blob
arch: src
version: 12.15.0
epoch: 0
release: 1
summary: Microsoft Azure Blob Storage Client Library for Python
url: https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/storage/azure-storage-blob
rpm_license: MIT License
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-8d45e645-567f-44f9-ac4c-e1f01764f88a
location_href: 00008940-python-azure-storage-blob/python-azure-storage-blob-12.15.0-1.src.rpm
checksum_type: sha256
description:
  Azure Blob storage is Microsoft's object storage solution for the cloud. Blob storage is optimized for storing massive amounts of unstructured data, such as text or binary data.

  Blob storage is ideal for:

  * Serving images or documents directly to a browser
  * Storing files for distributed access
  * Streaming video and audio
  * Storing data for backup and restore, disaster recovery, and archiving
  * Storing data for analysis by an on-premises or Azure-hosted service

  [Source code](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/storage/azure-storage-blob/azure/storage/blob) | [Package (PyPI)](https://pypi.org/project/azure-storage-blob/) | [API reference documentation](https://aka.ms/azsdk-python-storage-blob-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/samples)





  * Python 3.7 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 Blobs client library for Python with [pip](https://pypi.org/project/pip/):

  ```bash
  pip install azure-storage-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 Storage Blobs client library for Python allows you to interact with three types of resources: the storage
  account itself, blob storage containers, and blobs. Interaction with these resources starts with an instance of a
  [client](#clients). To create a client object, you will need the storage account's blob service account URL and a
  credential that allows you to access the storage account:

  ```python
  from azure.storage.blob import BlobServiceClient

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


  You can find the storage account's blob 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.blob"
  ```


  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 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 Blob 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.blob import BlobServiceClient
          token_credential = DefaultAzureCredential()

          blob_service_client = BlobServiceClient(
              account_url="https://<my_account_name>.blob.core.windows.net",
              credential=token_credential
          )
      ```

  2. 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, container, or blob:

      ```python
      from datetime import datetime, timedelta
      from azure.storage.blob import BlobServiceClient, 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)
      )

      blob_service_client = BlobServiceClient(account_url="https://<my_account_name>.blob.core.windows.net", credential=sas_token)
      ```

  3. 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.blob import BlobServiceClient
      service = BlobServiceClient(account_url="https://<my_account_name>.blob.core.windows.net", credential="<account_access_key>")
      ```

      If you are using **customized url** (which means the url is not in this format `<my_account_name>.blob.core.windows.net`),
      please instantiate the client using the credential below:
      ```python
      from azure.storage.blob import BlobServiceClient
      service = BlobServiceClient(account_url="https://<my_account_name>.blob.core.windows.net",
         credential={"account_name": "<your_account_name>", "account_key":"<account_access_key>"})
      ```

  4. To use [anonymous public read access](https://docs.microsoft.com/azure/storage/blobs/storage-manage-access-to-resources),
     simply omit the credential parameter.


  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.blob import BlobServiceClient

  connection_string = "DefaultEndpointsProtocol=https;AccountName=xxxx;AccountKey=xxxx;EndpointSuffix=core.windows.net"
  service = BlobServiceClient.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 Blob Service:
  * The storage account itself
  * A container within the storage account
  * A blob within a container

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


  Four different clients are provided to interact with the various components of the Blob Service:
  1. [BlobServiceClient](https://aka.ms/azsdk-python-storage-blob-blobserviceclient) -
      this client represents interaction with the Azure storage account itself, and allows you to acquire preconfigured
      client instances to access the containers and blobs within. It provides operations to retrieve and configure the
      account properties as well as list, create, and delete containers within the account. To perform operations on a
      specific container or blob, retrieve a client using the `get_container_client` or `get_blob_client` methods.
  2. [ContainerClient](https://aka.ms/azsdk-python-storage-blob-containerclient) -
      this client represents interaction with a specific container (which need not exist yet), and allows you to acquire
      preconfigured client instances to access the blobs within. It provides operations to create, delete, or configure a
      container and includes operations to list, upload, and delete the blobs within it. To perform operations on a
      specific blob within the container, retrieve a client using the `get_blob_client` method.
  3. [BlobClient](https://aka.ms/azsdk-python-storage-blob-blobclient) -
      this client represents interaction with a specific blob (which need not exist yet). It provides operations to
      upload, download, delete, and create snapshots of a blob, as well as specific operations per blob type.
  4. [BlobLeaseClient](https://aka.ms/azsdk-python-storage-blob-blobleaseclient) -
      this client represents lease interactions with a `ContainerClient` or `BlobClient`. It provides operations to
      acquire, renew, release, change, and break a lease on a specified resource.


  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.


  Once you've initialized a Client, you can choose from the different types of blobs:
  * [Block blobs](https://docs.microsoft.com/rest/api/storageservices/understanding-block-blobs--append-blobs--and-page-blobs#about-block-blobs)
    store text and binary data, up to approximately 4.75 TiB. Block blobs are made up of blocks of data that can be
    managed individually
  * [Append blobs](https://docs.microsoft.com/rest/api/storageservices/understanding-block-blobs--append-blobs--and-page-blobs#about-append-blobs)
    are made up of blocks like block blobs, but are optimized for append operations. Append blobs are ideal for scenarios
    such as logging data from virtual machines
  * [Page blobs](https://docs.microsoft.com/rest/api/storageservices/understanding-block-blobs--append-blobs--and-page-blobs#about-page-blobs)
    store random access files up to 8 TiB in size. Page blobs store virtual hard drive (VHD) files and serve as disks for
    Azure virtual machines


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

  * [Create a container](#create-a-container "Create a container")
  * [Uploading a blob](#uploading-a-blob "Uploading a blob")
  * [Downloading a blob](#downloading-a-blob "Downloading a blob")
  * [Enumerating blobs](#enumerating-blobs "Enumerating blobs")

  Note that a container must be created before to upload or download a blob.



  Create a container from where you can upload or download blobs.
  ```python
  from azure.storage.blob import ContainerClient

  container_client = ContainerClient.from_connection_string(conn_str="<connection_string>", container_name="my_container")

  container_client.create_container()
  ```

  Use the async client to upload a blob

  ```python
  from azure.storage.blob.aio import ContainerClient

  container_client = ContainerClient.from_connection_string(conn_str="<connection_string>", container_name="my_container")

  await container_client.create_container()
  ```


  Upload a blob to your container

  ```python
  from azure.storage.blob import BlobClient

  blob = BlobClient.from_connection_string(conn_str="<connection_string>", container_name="my_container", blob_name="my_blob")

  with open("./SampleSource.txt", "rb") as data:
      blob.upload_blob(data)
  ```

  Use the async client to upload a blob

  ```python
  from azure.storage.blob.aio import BlobClient

  blob = BlobClient.from_connection_string(conn_str="<connection_string>", container_name="my_container", blob_name="my_blob")

  with open("./SampleSource.txt", "rb") as data:
      await blob.upload_blob(data)
  ```


  Download a blob from your container

  ```python
  from azure.storage.blob import BlobClient

  blob = BlobClient.from_connection_string(conn_str="my_connection_string", container_name="my_container", blob_name="my_blob")

  with open("./BlockDestination.txt", "wb") as my_blob:
      blob_data = blob.download_blob()
      blob_data.readinto(my_blob)
  ```

  Download a blob asynchronously

  ```python
  from azure.storage.blob.aio import BlobClient

  blob = BlobClient.from_connection_string(conn_str="my_connection_string", container_name="my_container", blob_name="my_blob")

  with open("./BlockDestination.txt", "wb") as my_blob:
      stream = await blob.download_blob()
      data = await stream.readall()
      my_blob.write(data)
  ```


  List the blobs in your container

  ```python
  from azure.storage.blob import ContainerClient

  container = ContainerClient.from_connection_string(conn_str="my_connection_string", container_name="my_container")

  blob_list = container.list_blobs()
  for blob in blob_list:
      print(blob.name + '\n')
  ```

  List the blobs asynchronously

  ```python
  from azure.storage.blob.aio import ContainerClient

  container = ContainerClient.from_connection_string(conn_str="my_connection_string", container_name="my_container")

  blob_list = []
  async for blob in container.list_blobs():
      blob_list.append(blob)
  print(blob_list)
  ```



  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`.



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

  * __require_encryption__ (bool): If set to True, will enforce that objects are encrypted and decrypt them.
  * __encryption_version__ (str): Specifies the version of encryption to use. Current options are `'2.0'` or `'1.0'` and
  the default value is `'1.0'`. Version 1.0 is deprecated, and it is **highly recommended** to use version 2.0.
  * __key_encryption_key__ (object): The user-provided key-encryption-key. The instance must implement the following methods:
      - `wrap_key(key)`--wraps the specified key using an algorithm of the user's choice.
      - `get_key_wrap_algorithm()`--returns the algorithm used to wrap the specified symmetric key.
      - `get_kid()`--returns a string key id for this key-encryption-key.
  * __key_resolver_function__ (callable): The user-provided key resolver. Uses the kid string to return a key-encryption-key
  implementing the interface defined above.



  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 Blob 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.blob import BlobServiceClient


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


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


  service_client = BlobServiceClient.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:
  ```py
  service_client.get_service_stats(logging_enable=True)
  ```





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

  Several Storage Blobs 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 Blobs:

  * [blob_samples_container_access_policy.py](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/storage/azure-storage-blob/samples/blob_samples_container_access_policy.py) ([async version](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/storage/azure-storage-blob/samples/blob_samples_container_access_policy_async.py)) - Examples to set Access policies:
      * Set up Access Policy for container

  * [blob_samples_hello_world.py](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/storage/azure-storage-blob/samples/blob_samples_hello_world.py) ([async version](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/storage/azure-storage-blob/samples/blob_samples_hello_world_async.py)) - Examples for common Storage Blob tasks:
      * Set up a container
      * Create a block, page, or append blob
      * Upload blobs
      * Download blobs
      * Delete blobs

  * [blob_samples_authentication.py](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/storage/azure-storage-blob/samples/blob_samples_authentication.py) ([async version](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/storage/azure-storage-blob/samples/blob_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 active directory

  * [blob_samples_service.py](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/storage/azure-storage-blob/samples/blob_samples_service.py) ([async version](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/storage/azure-storage-blob/samples/blob_samples_service_async.py)) - Examples for interacting with the blob service:
      * Get account information
      * Get and set service properties
      * Get service statistics
      * Create, list, and delete containers
      * Get the Blob or Container client

  * [blob_samples_containers.py](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/storage/azure-storage-blob/samples/blob_samples_containers.py) ([async version](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/storage/azure-storage-blob/samples/blob_samples_containers_async.py)) - Examples for interacting with containers:
      * Create a container and delete containers
      * Set metadata on containers
      * Get container properties
      * Acquire a lease on container
      * Set an access policy on a container
      * Upload, list, delete blobs in container
      * Get the blob client to interact with a specific blob

  * [blob_samples_common.py](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/storage/azure-storage-blob/samples/blob_samples_common.py) ([async version](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/storage/azure-storage-blob/samples/blob_samples_common_async.py)) - Examples common to all types of blobs:
      * Create a snapshot
      * Delete a blob snapshot
      * Soft delete a blob
      * Undelete a blob
      * Acquire a lease on a blob
      * Copy a blob from a URL

  * [blob_samples_directory_interface.py](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/storage/azure-storage-blob/samples/blob_samples_directory_interface.py) - Examples for interfacing with Blob storage as if it were a directory on a filesystem:
      * Copy (upload or download) a single file or directory
      * List files or directories at a single level or recursively
      * Delete a single file or recursively delete a directory


  For more extensive documentation on Azure Blob storage, see the [Azure Blob storage documentation](https://docs.microsoft.com/azure/storage/blobs/) 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: 0aa40e7134c49052e36cde556a95232868ef1f2075d3722c0f9e2d05d18397a0
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_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-51b17069-de11-4b21-9c2f-cf62526ba8a7
location_href: 00009054-python-azure-storage-common/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: e01381c47506668f232f3a36760be5810a07e4c5138b3c33ca417c4617f912b1
name: python-azure-storage-file-datalake
arch: src
version: 12.10.1
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_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-c24f5fda-3e26-4f86-9e9c-4a75e94be14e
location_href: 00009171-python-azure-storage-file-datalake/python-azure-storage-file-datalake-12.10.1-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/) | [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.7 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:
  ```py
  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: a047b8fc6b025816b9920cbfbcaf5abb6c24af3c98a32b7804dab5952cfd87df
name: python-azure-storage-file-datalake-help
arch: noarch
version: 12.10.1
epoch: 0
release: 1
summary: Development documents and examples for azure-storage-file-datalake
url: https://github.com/Azure/azure-sdk-for-python
rpm_license: MIT License
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-c24f5fda-3e26-4f86-9e9c-4a75e94be14e
rpm_sourcerpm: python-azure-storage-file-datalake-12.10.1-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/) | [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.7 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:
  ```py
  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.

location_href:
  00009171-python-azure-storage-file-datalake/python-azure-storage-file-datalake-help-12.10.1-1.noarch.rpm


pkgId: 7771fc276bdeffb76978e2ca366e422b84a4101222707b499b8ff1ad7041ef85
name: python-azure-storage-file-share
arch: src
version: 12.11.1
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_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-67ed2aa6-e9ef-4ed3-8d93-b88e29401418
location_href: 00009932-python-azure-storage-file-share/python-azure-storage-file-share-12.11.1-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/) | [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.7 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="my_share")
  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="my_share")
  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="my_share", 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="my_share", 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="my_share", 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="my_share", 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="my_share", 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="my_share", 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:
  ```py
  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.







  - 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: c57b1e910aeb8c7c7eb3a4aa96e6d64b6ee7a018f1180e1bccc6ec5644118313
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_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-141cb3cd-8bf5-47fe-b75f-7ef095f71651
location_href: 00011183-python-azure-storage-logging/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: b03fa21d7a0fa511bf567f33c03d6a8a2eccf9a9bd1f3c458c5709d1bf9d8113
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_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-093ca2d2-7c0e-41ce-be6e-b1618ff69fc6
location_href: 00009539-python-azure-storage-nspkg/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: 05f1964c32a5b2499c34f1f093b12a117bc977d15df64a1df175bd77c19e712f
name: python-azure-storage-queue
arch: src
version: 12.6.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_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-f8dd42eb-15a9-4b63-8061-322f87c94b1c
location_href: 00009123-python-azure-storage-queue/python-azure-storage-queue-12.6.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/) | [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.7 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="my_queue")
  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="my_queue")
  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="my_queue")
  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="my_queue")
  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="my_queue")
  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="my_queue")
  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="my_queue")
  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:
  ```py
  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.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: 6283a314ffad456d24d77fda3fa6b4e16756c683b28415828c04c2bb39a0a4a1
name: python-azure-synapse-artifacts
arch: src
version: 0.15.0
epoch: 0
release: 1
summary: Microsoft Synapse Artifacts Client Library for Python
url: https://github.com/Azure/azure-sdk-for-python/tree/main/sdk
rpm_license: MIT License
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-ad88356f-e362-4075-b2a4-6a6e9d5967eb
location_href: 00010243-python-azure-synapse-artifacts/python-azure-synapse-artifacts-0.15.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_



  For code examples, see [Synapse Artifacts](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-artifacts%2FREADME.png)


pkgId: 780d29580a4493391975c9e3d21820cb7b2aa434b111e9f24768bc428fef80e2
name: python-b2sdk
arch: src
version: 1.19.0
epoch: 0
release: 1
summary: Backblaze B2 SDK
url: https://github.com/Backblaze/b2-sdk-python
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-eb69a810-9c72-4e90-be1f-4007d918af60
location_href: 00003088-python-b2sdk/python-b2sdk-1.19.0-1.src.rpm
checksum_type: sha256
description:
  &nbsp;[![Continuous Integration](https://github.com/Backblaze/b2-sdk-python/workflows/Continuous%20Integration/badge.svg)](https://github.com/Backblaze/b2-sdk-python/actions?query=workflow%3A%22Continuous+Integration%22)&nbsp;[![License](https://img.shields.io/pypi/l/b2sdk.svg?label=License)](https://pypi.python.org/pypi/b2)&nbsp;[![python versions](https://img.shields.io/pypi/pyversions/b2sdk.svg?label=python%20versions)](https://pypi.python.org/pypi/b2sdk)&nbsp;[![PyPI version](https://img.shields.io/pypi/v/b2sdk.svg?label=PyPI%20version)](https://pypi.python.org/pypi/b2sdk)&nbsp;[![Docs](https://readthedocs.org/projects/b2-sdk-python/badge/?version=master)](https://b2-sdk-python.readthedocs.io/en/master/)



  This repository contains a client library and a few handy utilities for easy access to all of the capabilities of B2 Cloud Storage.

  [B2 command-line tool](https://github.com/Backblaze/B2_Command_Line_Tool) is an example of how it can be used to provide command-line access to the B2 service, but there are many possible applications (including FUSE filesystems, storage backend drivers for backup applications etc).



  The latest documentation is available on [Read the Docs](https://b2-sdk-python.readthedocs.io).



  The sdk can be installed with:

      pip install b2sdk



  b2sdk follows [Semantic Versioning](https://semver.org/) policy, so in essence the version number is MAJOR.MINOR.PATCH (for example 1.2.3) and:
  - we increase MAJOR version when we make incompatible API changes
  - we increase MINOR version when we add functionality in a backwards-compatible manner, and
  - we increase PATCH version when we make backwards-compatible bug fixes (unless someone relies on the undocumented behavior of a fixed bug)

  Therefore when setting up b2sdk as a dependency, please make sure to match the version appropriately, for example you could put this in your `requirements.txt` to make sure your code is compatible with the `b2sdk` version your user will get from pypi:

  ```
  b2sdk>=0.0.0,<1.0.0
  ```



  Please refer to the [changelog](CHANGELOG.md).



  Please see our [contributing guidelines](CONTRIBUTING.md).


pkgId: db058fbfd691383ca1758bde469195d2fc967703087f88fa7053591ca03d69a7
name: python-babelfish
arch: src
version: 0.6.0
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_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-c13e5fa7-9e0f-4b00-bb8b-4d910ef9dd2d
location_href: 00003089-python-babelfish/python-babelfish-0.6.0-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('GB')
  >>> 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.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: 9184d6dfe0997e5f285e6281585f892a5166b03b6edecee00e687028faa59101
name: python-backoff
arch: src
version: 2.2.1
epoch: 0
release: 1
summary: Function decoration for backoff and retry
url: https://github.com/litl/backoff
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-fd3618aa-02f2-47eb-92fa-7afe1981412b
location_href: 00003090-python-backoff/python-backoff-2.2.1-1.src.rpm
checksum_type: sha256
description:
  **Function decoration for backoff and retry**
  This module provides function decorators which can be used to wrap a
  function such that it will be retried until some condition is met. It
  is meant to be of use when accessing unreliable resources with the
  potential for intermittent failures i.e. network resources and external
  APIs. Somewhat more generally, it may also be of use for dynamically
  polling resources for externally generated content.
  Decorators support both regular functions for synchronous code and
  `asyncio <https://docs.python.org/3/library/asyncio.html>`__'s coroutines
  for asynchronous code.


pkgId: 88d72931b6e6141ba1c7d6986a913c64918dc6b723dc5d22e43213bef028ce1f
name: python-backports.shutil_get_terminal_size
arch: src
version: 1.0.0
epoch: 0
release: 1
summary: A backport of the get_terminal_size function from Python 3.3's shutil.
url: https://github.com/chrippa/backports.shutil_get_terminal_size
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-07a919c8-ce96-4f82-83c6-e01dae0719a7
checksum_type: sha256
description:
  A backport of the `get_terminal_size`_ function from Python 3.3's shutil.
  Unlike the original version it is written in pure Python rather than C,
  so it might be a tiny bit slower.

location_href:
  00009756-python-backports-shutil-get-terminal-size/python-backports.shutil_get_terminal_size-1.0.0-1.src.rpm


pkgId: fc2732ec6ba6f68a211541178d750d617fb8e89ccd93dfc4115341c92206fa98
name: python-backports.shutil_get_terminal_size-help
arch: noarch
version: 1.0.0
epoch: 0
release: 1
summary: Development documents and examples for backports.shutil_get_terminal_size
url: https://github.com/chrippa/backports.shutil_get_terminal_size
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-07a919c8-ce96-4f82-83c6-e01dae0719a7
rpm_sourcerpm: python-backports.shutil_get_terminal_size-1.0.0-1.src.rpm
checksum_type: sha256
description:
  A backport of the `get_terminal_size`_ function from Python 3.3's shutil.
  Unlike the original version it is written in pure Python rather than C,
  so it might be a tiny bit slower.

location_href:
  00009756-python-backports-shutil-get-terminal-size/python-backports.shutil_get_terminal_size-help-1.0.0-1.noarch.rpm


pkgId: 6ba8d5a0a12d165bbf484e2f1dd1cd546346137fef07eca9683c8d94d18bcebb
name: python-backports.shutil_which
arch: src
version: 3.5.2
epoch: 0
release: 1
summary: Backport of shutil.which from Python 3.3
url: https://github.com/minrk/backports.shutil_which
rpm_license: Python Software Foundation License
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-9c5505f3-571f-4976-a03a-d46ad2a4bac6
location_href: 00013137-python-backports-shutil-which/python-backports.shutil_which-3.5.2-1.src.rpm
checksum_type: sha256
description:
  Use Python 3 shutil.which on Python 2::

      try:
          from shutil import which
      except ImportError:
          from backports.shutil_which import which


pkgId: fc4218ca77a78fbd8ab8b268592b6e8ca8b5ed00fa5d20409faa0a6ccc183df7
name: python-backports.ssl_match_hostname
arch: src
version: 3.7.0.1
epoch: 0
release: 1
summary: The ssl.match_hostname() function from Python 3.5
url: http://bitbucket.org/brandon/backports.ssl_match_hostname
rpm_license: Python Software Foundation License
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-747e2d7f-3d9d-4d9d-b076-14d99cfc9604
location_href: 00009562-python-backports-ssl-match-hostname/python-backports.ssl_match_hostname-3.7.0.1-1.src.rpm
checksum_type: sha256
description:
  The Secure Sockets Layer is only actually *secure*
  if you check the hostname in the certificate returned
  by the server to which you are connecting,
  and verify that it matches to hostname
  that you are trying to reach.
  But the matching logic, defined in `RFC2818`_,
  can be a bit tricky to implement on your own.
  So the ``ssl`` package in the Standard Library of Python 3.2
  and greater now includes a ``match_hostname()`` function
  for performing this check instead of requiring every application
  to implement the check separately.
  This backport brings ``match_hostname()`` to users
  of earlier versions of Python.
  Simply make this distribution a dependency of your package,
  and then use it like this::
      from backports.ssl_match_hostname import match_hostname, CertificateError
      [...]
      sslsock = ssl.wrap_socket(sock, ssl_version=ssl.PROTOCOL_SSLv23,
                                cert_reqs=ssl.CERT_REQUIRED, ca_certs=...)
      try:
          match_hostname(sslsock.getpeercert(), hostname)
      except CertificateError, ce:
  Brandon Craig Rhodes is merely the packager of this distribution;
  the actual code inside comes from Python 3.7 with small changes for
  portability.


pkgId: 534e71579dcf6874800857d00e5cd88e6af8b874daec88d539f936b375e8f2c5
name: python-backports.ssl_match_hostname-help
arch: noarch
version: 3.7.0.1
epoch: 0
release: 1
summary: Development documents and examples for backports.ssl_match_hostname
url: http://bitbucket.org/brandon/backports.ssl_match_hostname
rpm_license: Python Software Foundation License
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-747e2d7f-3d9d-4d9d-b076-14d99cfc9604
rpm_sourcerpm: python-backports.ssl_match_hostname-3.7.0.1-1.src.rpm
checksum_type: sha256
description:
  The Secure Sockets Layer is only actually *secure*
  if you check the hostname in the certificate returned
  by the server to which you are connecting,
  and verify that it matches to hostname
  that you are trying to reach.
  But the matching logic, defined in `RFC2818`_,
  can be a bit tricky to implement on your own.
  So the ``ssl`` package in the Standard Library of Python 3.2
  and greater now includes a ``match_hostname()`` function
  for performing this check instead of requiring every application
  to implement the check separately.
  This backport brings ``match_hostname()`` to users
  of earlier versions of Python.
  Simply make this distribution a dependency of your package,
  and then use it like this::
      from backports.ssl_match_hostname import match_hostname, CertificateError
      [...]
      sslsock = ssl.wrap_socket(sock, ssl_version=ssl.PROTOCOL_SSLv23,
                                cert_reqs=ssl.CERT_REQUIRED, ca_certs=...)
      try:
          match_hostname(sslsock.getpeercert(), hostname)
      except CertificateError, ce:
  Brandon Craig Rhodes is merely the packager of this distribution;
  the actual code inside comes from Python 3.7 with small changes for
  portability.

location_href:
  00009562-python-backports-ssl-match-hostname/python-backports.ssl_match_hostname-help-3.7.0.1-1.noarch.rpm


pkgId: d4f71a424adbbca9d9cbdbf1447e49cf0b12103854e0a342d75473d2e53b8efc
name: python-backports.zoneinfo
arch: src
version: 0.2.1
epoch: 0
release: 1
summary: Backport of the standard library zoneinfo module
url: https://github.com/pganssle/zoneinfo
rpm_license: Apache-2.0
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-b1c016de-e737-4682-9d77-1d347dbb77ed
location_href: 00009098-python-backports-zoneinfo/python-backports.zoneinfo-0.2.1-1.src.rpm
checksum_type: sha256
description:
  This package was originally the reference implementation for [PEP 615](https://www.python.org/dev/peps/pep-0615/), which proposes support for the IANA time zone database in the standard library, and now serves as a backport to Python 3.6+ (including PyPy).

  This exposes the `backports.zoneinfo` module, which is a backport of the [`zoneinfo`](https://docs.python.org/3.9/library/zoneinfo.html#module-zoneinfo) module. The backport's documentation can be found [on readthedocs](https://zoneinfo.readthedocs.io/en/latest/).

  The module uses the system time zone data if available, and falls back to the [`tzdata`](https://tzdata.readthedocs.io/en/latest/) package (available [on PyPI](https://pypi.org/project/tzdata/)) if installed.



  This module is called [`backports.zoneinfo`](https://pypi.org/project/backports.zoneinfo) on PyPI. To install it in your local environment, use:

  ```
  pip install backports.zoneinfo
  ```

  Or (particularly on Windows), you can also use the `tzdata` extra (which basically just declares a dependency on `tzdata`, so this doesn't actually save you any typing 😅):

  ```
  pip install backports.zoneinfo[tzdata]
  ```

  If you want to use this in your application, it is best to use [PEP 508 environment markers](https://www.python.org/dev/peps/pep-0508/#environment-markers) to declare a dependency *conditional on the Python version*:

  ```
  backports.zoneinfo;python_version<"3.9"
  ```

  Support for `backports.zoneinfo` in Python 3.9+ is currently minimal, since it is expected that you would use the standard library `zoneinfo` module instead.



  The `backports.zoneinfo` module should be a drop-in replacement for the Python 3.9 standard library module `zoneinfo`. If you do not support anything earlier than Python 3.9, **you do not need this library**; if you are supporting Python 3.6+, you may want to use this idiom to "fall back" to ``backports.zoneinfo``:

  ```python
  try:
      import zoneinfo
  except ImportError:
      from backports import zoneinfo
  ```

  To get access to time zones with this module, construct a `ZoneInfo` object and attach it to your datetime:

  ```python
  >>> from backports.zoneinfo import ZoneInfo
  >>> from datetime import datetime, timedelta, timezone
  >>> dt = datetime(1992, 3, 1, tzinfo=ZoneInfo("Europe/Minsk"))
  >>> print(dt)
  1992-03-01 00:00:00+02:00
  >>> print(dt.utcoffset())
  2:00:00
  >>> print(dt.tzname())
  EET
  ```

  Arithmetic works as expected without the need for a "normalization" step:

  ```python
  >>> dt += timedelta(days=90)
  >>> print(dt)
  1992-05-30 00:00:00+03:00
  >>> dt.utcoffset()
  datetime.timedelta(seconds=10800)
  >>> dt.tzname()
  'EEST'
  ```

  Ambiguous and imaginary times are handled using the `fold` attribute added in [PEP 495](https://www.python.org/dev/peps/pep-0495/):

  ```python
  >>> dt = datetime(2020, 11, 1, 1, tzinfo=ZoneInfo("America/Chicago"))
  >>> print(dt)
  2020-11-01 01:00:00-05:00
  >>> print(dt.replace(fold=1))
  2020-11-01 01:00:00-06:00

  >>> UTC = timezone.utc
  >>> print(dt.astimezone(UTC))
  2020-11-01 06:00:00+00:00
  >>> print(dt.replace(fold=1).astimezone(UTC))
  2020-11-01 07:00:00+00:00
  ```



  Currently we are not accepting contributions to this repository because we have not put the CLA in place and we would like to avoid complicating the process of adoption into the standard library. Contributions to [CPython](https://github.com/python/cpython) will eventually be backported to this repository — see [the Python developer's guide](https://devguide.python.org/) for more information on how to contribute to CPython.


pkgId: 3da1172f5e62ac4482516da3f7433a0a0dec002f4f47c2d218710fe3897bc878
name: python-backports.zoneinfo-debuginfo
arch: x86_64
version: 0.2.1
epoch: 0
release: 1
summary: Debug information for package python-backports.zoneinfo
url: https://github.com/pganssle/zoneinfo
rpm_license: Apache-2.0
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Development/Debug
rpm_buildhost: resalloc-b1c016de-e737-4682-9d77-1d347dbb77ed
rpm_sourcerpm: python-backports.zoneinfo-0.2.1-1.src.rpm
location_href: 00009098-python-backports-zoneinfo/python-backports.zoneinfo-debuginfo-0.2.1-1.x86_64.rpm
checksum_type: sha256
description:
  This package provides debug information for package python-backports.zoneinfo.
  Debug information is useful when developing applications that use this
  package or when debugging this package.


pkgId: 66e46c49b14c67d3bc4590a8a76bfaadc93466976ba0b8bf0a254abfea6dc15b
name: python-backports.zoneinfo-debugsource
arch: x86_64
version: 0.2.1
epoch: 0
release: 1
summary: Debug sources for package python-backports.zoneinfo
url: https://github.com/pganssle/zoneinfo
rpm_license: Apache-2.0
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Development/Debug
rpm_buildhost: resalloc-b1c016de-e737-4682-9d77-1d347dbb77ed
rpm_sourcerpm: python-backports.zoneinfo-0.2.1-1.src.rpm
location_href: 00009098-python-backports-zoneinfo/python-backports.zoneinfo-debugsource-0.2.1-1.x86_64.rpm
checksum_type: sha256
description:
  This package provides debug sources for package python-backports.zoneinfo.
  Debug sources are useful when developing applications that use this
  package or when debugging this package.


pkgId: 042027db51efc600c35bfe04dcf4261c1e41f6374c7fb4e967c12c6413c6c803
name: python-bandit
arch: src
version: 1.7.5
epoch: 0
release: 1
summary: Security oriented static analyser for python code.
url: https://bandit.readthedocs.io/
rpm_license: Apache-2.0 license
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-689ec024-546f-443d-9791-958504acc921
location_href: 00009371-python-bandit/python-bandit-1.7.5-1.src.rpm
checksum_type: sha256
description:
  A security linter from PyCQA
  * Free software: Apache license
  * Documentation: https://bandit.readthedocs.io/en/latest/
  * Source: https://github.com/PyCQA/bandit
  * Bugs: https://github.com/PyCQA/bandit/issues
  * Contributing: https://github.com/PyCQA/bandit/blob/main/CONTRIBUTING.md


pkgId: a18a4fbd20aeae5f436a8a04b3c598d2de9042527c773ba17645dc5f006a5a74
name: python-bapy
arch: src
version: 1.0.43
epoch: 0
release: 1
summary: Bapy Package.
url: https://pypi.org/project/bapy/
rpm_license: GNU General Public License v3 or later (GPLv3+)
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-3f18f42d-66c8-40db-8ecd-5ff1ff039b25
location_href: 00011434-python-bapy/python-bapy-1.0.43-1.src.rpm
checksum_type: sha256
description:
  ```bash
  docker pull kalilinux/kali:latest
  ```

  ```bash
  apt update -y; apt full-upgrade -y; apt install -y kali-linux-everything
  sudo python3 -m pip install --upgrade bapy
  ```




  ```bash
  sudo apt update -y; apt install python3.8 python3-pip -y
  sudo python3 -m pip install --upgrade bapy

  ```


  ```bash
  sudo python3 -m pip install --upgrade bapy
  ```



  ```bash
  python3 -m pip install --upgrade bapy
  ```



  ```bash
  rebashrc
  ```





  Update the repository and:

  ```bash
  rc secrets  # secrets-push.sh
  rebash
  ```


  ```bash
  rc secrets  #secrets-pull.sh
  rebash
  ```





  Perform any tests and:

  ```bash
  rc up  # project-upload.sh <path> <major|minor> <j5pu|jose-nferx|pypi>
  ```



  ```bash
  upgrade.sh name
  ```


pkgId: c0a5b9dce963c4c2abb1ddecc7fd959c98b6d82017bb710ee7bf09268502c2e4
name: python-barman
arch: src
version: 3.4.0
epoch: 0
release: 1
summary: Backup and Recovery Manager for PostgreSQL
url: https://www.pgbarman.org/
rpm_license: GPL-3.0
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-159dd1c6-6323-4f45-86f9-cf8aa7ef3d99
location_href: 00003093-python-barman/python-barman-3.4.0-1.src.rpm
checksum_type: sha256
description:
  Barman (Backup and Recovery Manager) is an open-source administration
  tool for disaster recovery of PostgreSQL servers written in Python.
  It allows your organisation to perform remote backups of multiple
  servers in business critical environments to reduce risk and help DBAs
  during the recovery phase.

  Barman is distributed under GNU GPL 3 and maintained by EnterpriseDB.


pkgId: 3018e21d0d2f0880d2fd2aa6381362c8e46ea005191ca206f94829ff69488fcf
name: python-baron
arch: src
version: 0.10.1
epoch: 0
release: 1
summary: Full Syntax Tree for python to make writing refactoring code a realist task
url: https://github.com/PyCQA/baron
rpm_license: lgplv3+
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-65dbe117-48eb-41af-82c7-584656a8f3df
location_href: 00013858-python-baron/python-baron-0.10.1-1.src.rpm
checksum_type: sha256
description:
  Baron is a Full Syntax Tree (FST) library for Python. By opposition to an [AST](https://en.wikipedia.org/wiki/Abstract_syntax_tree) which
  drops some syntax information in the process of its creation (like empty lines,
  comments, formatting), a FST keeps everything and guarantees the operation
  <code>fst\_to\_code(code\_to\_fst(source\_code)) == source\_code</code>.


pkgId: 767bd29801e7fe24886ec402cfd2265fbf71f94979c6aeefa9f52354650c20ca
name: python-base58
arch: src
version: 2.1.1
epoch: 0
release: 1
summary: Base58 and Base58Check implementation.
url: https://github.com/keis/base58
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-072f758e-96ff-4308-a70b-6e51bd13153d
location_href: 00009589-python-base58/python-base58-2.1.1-1.src.rpm
checksum_type: sha256
description:
  [![PyPI Version][pypi-image]](https://pypi.python.org/pypi?name=base58&:action=display)
  [![PyPI Downloads][pypi-downloads-image]](https://pypi.python.org/pypi?name=base58&:action=display)
  [![Build Status][travis-image]](https://travis-ci.org/keis/base58)
  [![Coverage Status][coveralls-image]](https://coveralls.io/r/keis/base58?branch=master)

  Base58 and Base58Check implementation compatible with what is used by the
  bitcoin network. Any other alternative alphabet (like the XRP one) can be used.

  Starting from version 2.0.0 **python2 is no longer supported** the 1.x series
  will remain supported but no new features will be added.




      $ printf "hello world" | base58
      StV1DL6CwTryKyV

      $ printf "hello world" | base58 -c
      3vQB7B6MrGQZaxCuFg4oh

      $ printf "3vQB7B6MrGQZaxCuFg4oh" | base58 -dc
      hello world

      $ printf "4vQB7B6MrGQZaxCuFg4oh" | base58 -dc
      Invalid checksum




      >>> import base58
      >>> base58.b58encode(b'hello world')
      b'StV1DL6CwTryKyV'
      >>> base58.b58decode(b'StV1DL6CwTryKyV')
      b'hello world'
      >>> base58.b58encode_check(b'hello world')
      b'3vQB7B6MrGQZaxCuFg4oh'
      >>> base58.b58decode_check(b'3vQB7B6MrGQZaxCuFg4oh')
      b'hello world'
      >>> base58.b58decode_check(b'4vQB7B6MrGQZaxCuFg4oh')
      Traceback (most recent call last):
        File "<stdin>", line 1, in <module>
        File "base58.py", line 89, in b58decode_check
          raise ValueError("Invalid checksum")
      ValueError: Invalid checksum
      
      
      
      >>> base58.b58encode(b'hello world', alphabet=base58.XRP_ALPHABET)
      b'StVrDLaUATiyKyV'
      >>> base58.b58decode(b'StVrDLaUATiyKyV', alphabet=base58.XRP_ALPHABET)
      b'hello world'


  [pypi-image]: https://img.shields.io/pypi/v/base58.svg?style=flat
  [pypi-downloads-image]: https://img.shields.io/pypi/dm/base58.svg?style=flat
  [travis-image]: https://img.shields.io/travis/keis/base58.svg?style=flat
  [coveralls-image]: https://img.shields.io/coveralls/keis/base58.svg?style=flat


pkgId: 795139b180893bab5a88c054a23c71ef76e053a6c678d1de63b94f1b77cae063
name: python-basemap
arch: src
version: 1.3.6
epoch: 0
release: 1
summary: Plot data on map projections with matplotlib
url: https://matplotlib.org/basemap
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-6fc19f54-d892-4830-9973-5dd3f4826a1a
location_href: 00003094-python-basemap/python-basemap-1.3.6-1.src.rpm
checksum_type: sha256
description:
  Plot on map projections (with coastlines and political boundaries) using
  [`matplotlib`].

  This package depends on the support package [`basemap-data`] with the
  basic [`basemap`] data assets, and optionally on the support package
  [`basemap-data-hires`] with high-resolution data assets.



  Precompiled binary wheels for Windows and GNU/Linux are available in
  PyPI (architectures x86 and x64, Python 2.7 and 3.5+) and can be
  installed with [`pip`]:
  ```sh
  python -m pip install basemap
  ```

  If you need to install from source, please visit the
  [GitHub repository](https://github.com/matplotlib/basemap) for a
  step-by-step description.



  The library is licensed under the terms of the [MIT] license (see
  [`LICENSE`]). The GEOS dynamic library bundled with the package wheels
  is provided under the terms of the [LGPLv2.1] license as given in
  [`LICENSE.geos`].


  [`matplotlib`]:
  https://matplotlib.org/
  [`basemap`]:
  https://matplotlib.org/basemap/
  [`basemap-data`]:
  https://pypi.org/project/basemap-data
  [`basemap-data-hires`]:
  https://pypi.org/project/basemap-data-hires
  [`pip`]:
  https://pip.pypa.io/

  [LGPLv2.1]:
  https://spdx.org/licenses/LGPL-2.1-only.html
  [MIT]:
  https://spdx.org/licenses/MIT.html

  [`LICENSE`]:
  https://github.com/matplotlib/basemap/blob/v1.3.3/packages/basemap/LICENSE
  [`LICENSE.geos`]:
  https://github.com/matplotlib/basemap/blob/v1.3.3/packages/basemap/LICENSE.geos


pkgId: 1e6690caeedeb88e388091c14278d00c3d09ae2f2ccd80c7d62253e4896ddbf1
name: python-bashlex
arch: src
version: 0.18
epoch: 0
release: 1
summary: Python parser for bash
url: https://github.com/idank/bashlex.git
rpm_license: GPLv3+
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-cc7d3289-d4b1-4cb4-a3ef-2d5ec80ad3af
location_href: 00010279-python-bashlex/python-bashlex-0.18-1.src.rpm
checksum_type: sha256
description:
  bashlex is a Python port of the parser used internally by GNU bash.

  For the most part it's transliterated from C, the major differences are:

  1. it does not execute anything
  2. it is reentrant
  3. it generates a complete AST

  See https://github.com/idank/bashlex/blob/master/README.md for more info.


pkgId: 2a60b8aaba915d8b3d45079b0b39d02a84d4ea2278f170feae34f653ff3503d2
name: python-batinfo
arch: src
version: 0.4.2
epoch: 0
release: 1
summary: A simple Python module to retrieve battery information
url: https://github.com/nicolargo/batinfo
rpm_license: LGPLv3
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-aa845b2e-31db-4b8e-ac31-5a2e7a6a49e0
location_href: 00003096-python-batinfo/python-batinfo-0.4.2-1.src.rpm
checksum_type: sha256
description:
  A simple Python module to retrieve battery information on Linux-based operating system.
  No ACPI or external software is needed.
  Only the Linux kernel and its `/sys/class/power_supply` folder.
  A simple example says more than thousand words:
      In [1]: import batinfo
      In [2]: bat = batinfo.Batteries()
      In [3]: bat
      Out[3]: <batinfo.Battery.Batteries at 0x31c87d0>
      In [4]: bat.stat
      Out[4]: [{"status": "Full", "capacity": 50, "name": "CMB1", "uevent": "POWER_SUPPLY_NAME=CMB1\nPOWER_SUPPLY_STATUS=Full\nPOWER_SUPPLY_PRESENT=1\nPOWER_SUPPLY_TECHNOLOGY=Li-ion\nPOWER_SUPPLY_CYCLE_COUNT=0\nPOWER_SUPPLY_VOLTAGE_MIN_DESIGN=10800000\nPOWER_SUPPLY_VOLTAGE_NOW=12496000\nPOWER_SUPPLY_CURRENT_NOW=0\nPOWER_SUPPLY_CHARGE_FULL_DESIGN=5800000\nPOWER_SUPPLY_CHARGE_FULL=5800000\nPOWER_SUPPLY_CHARGE_NOW=3900000\nPOWER_SUPPLY_CAPACITY=100\nPOWER_SUPPLY_MODEL_NAME=CP293550-01\nPOWER_SUPPLY_MANUFACTURER=Fujitsu\nPOWER_SUPPLY_SERIAL_NUMBER=01A-Z100320001158Z", "alarm": 0, "charge_full": 5800000, "voltage_now": 12496000, "serial_number": "01A-Z100320001158Z", "cycle_count": 0, "current_now": 0, "charge_now": 3900000, "voltage_min_design": 10800000, "path": "/sys/class/power_supply/CMB1", "technology": "Li-ion", "manufacturer": "Fujitsu", "type": "Battery", "model_name": "CP293550-01", "present": 1, "charge_full_design": 5800000}]
      In [6]: bat.stat[0]
      Out[6]: {"status": "Full", "capacity": 100, "name": "CMB1", "uevent": "POWER_SUPPLY_NAME=CMB1\nPOWER_SUPPLY_STATUS=Full\nPOWER_SUPPLY_PRESENT=1\nPOWER_SUPPLY_TECHNOLOGY=Li-ion\nPOWER_SUPPLY_CYCLE_COUNT=0\nPOWER_SUPPLY_VOLTAGE_MIN_DESIGN=10800000\nPOWER_SUPPLY_VOLTAGE_NOW=12496000\nPOWER_SUPPLY_CURRENT_NOW=0\nPOWER_SUPPLY_CHARGE_FULL_DESIGN=5800000\nPOWER_SUPPLY_CHARGE_FULL=5800000\nPOWER_SUPPLY_CHARGE_NOW=3900000\nPOWER_SUPPLY_CAPACITY=100\nPOWER_SUPPLY_MODEL_NAME=CP293550-01\nPOWER_SUPPLY_MANUFACTURER=Fujitsu\nPOWER_SUPPLY_SERIAL_NUMBER=01A-Z100320001158Z", "alarm": 0, "charge_full": 5800000, "voltage_now": 12496000, "serial_number": "01A-Z100320001158Z", "cycle_count": 0, "current_now": 0, "charge_now": 3900000, "voltage_min_design": 10800000, "path": "/sys/class/power_supply/CMB1", "technology": "Li-ion", "manufacturer": "Fujitsu", "type": "Battery", "model_name": "CP293550-01", "present": 1, "charge_full_design": 5800000}
      In [7]: bat.stat[0].capacity
      Out[7]: 50
      In [8]: print bat.stat[0]
      100
      In [9]: bat.stat[0].manufacturer
      Out[9]: 'Fujitsu'
      In [9]: bat.stat[0].technology
      Out[9]: 'Li-ion'
      In [11]: bat.stat[0].charge_full
      Out[11]: 5800000
      In [12]: bat.stat[0].charge_now
      Out[12]: 3900000
      In [12]: bat.update()
      > Refresh the stats
  Have fun...


pkgId: 05d4bf4182baa6315b86c113b06a55e32d9022d3fe4864524a96de96f97dcd5e
name: python-bc-python-hcl2
arch: src
version: 0.3.51
epoch: 0
release: 1
summary: A parser for HCL2
url: https://github.com/bridgecrewio/python-hcl2
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-1b7711f0-cc3c-4b7f-98eb-dbc44e563a9e
location_href: 00011077-python-bc-python-hcl2/python-bc-python-hcl2-0.3.51-1.src.rpm
checksum_type: sha256
description:
  [![Build Status](https://github.com/bridgecrewio/python-hcl2/workflows/build/badge.svg)](https://github.com/bridgecrewio/python-hcl2/actions)
  [![License](https://img.shields.io/badge/license-MIT-blue.svg)](https://raw.githubusercontent.com/amplify-education/python-hcl2/master/LICENSE)
  [![PyPI](https://img.shields.io/pypi/v/bc-python-hcl2.svg)](https://pypi.org/project/bc-python-hcl2/)
  [![Python Versions](https://img.shields.io/pypi/pyversions/bc-python-hcl2.svg)](https://pypi.python.org/pypi/bc-python-hcl2)
  [![Downloads](https://img.shields.io/badge/dynamic/json.svg?label=downloads&url=https%3A%2F%2Fpypistats.org%2Fapi%2Fpackages%2Fbc-python-hcl2%2Frecent&query=data.last_month&colorB=brightgreen&suffix=%2FMonth)](https://pypistats.org/packages/bc-python-hcl2)



  This is a fork of the [Python HCL2](https://github.com/amplify-education/python-hcl2) repo by Amplify and is
  officially supported by Bridgecrew. We contributed as much as possible to the upstream project, but the two projects
  are now deviating in a way that pushing new changes upstream doesn't make sense anymore.



  A parser for [HCL2](https://github.com/hashicorp/hcl/blob/hcl2/hclsyntax/spec.md) written in Python using
  [Lark](https://github.com/lark-parser/lark). This parser only supports HCL2 and isn't backwards compatible
  with HCL v1. It can be used to parse any HCL2 config file such as Terraform.



  Amplify builds innovative and compelling digital educational products that empower teachers and students across the
  country. We have a long history as the leading innovator in K-12 education - and have been described as the best tech
  company in education and the best education company in tech. While others try to shrink the learning experience into
  the technology, we use technology to expand what is possible in real classrooms with real students and teachers.

  Learn more at <https://www.amplify.com>




  python-hcl2 requires Python 3.6.0 or higher to run.



  This package can be installed using `pip`

  ```sh
  pip3 install python-hcl2
  ```


  ```python
  import hcl2
  with open('foo.tf', 'r') as file:
      dict = hcl2.load(file)
  ```



  For development, `tox>=2.9.1` is recommended.



  python-hcl2 uses `tox`. You will need to install tox with `pip install tox`.
  Running `tox` will automatically execute linters as well as the unit tests.

  You can also run them individually with the `-e` argument.

  For example, `tox -e py37-unit` will run the unit tests for python 3.7

  To see all the available options, run `tox -l`.


  If you have any security issue to report, contact project maintainers privately.
  You can reach us at <mailto:github@amplify.com>


  We welcome pull requests! For your pull request to be accepted smoothly, we suggest that you:
   1. For any sizable change, first open a GitHub issue to discuss your idea.
   2. Create a pull request.  Explain why you want to make the change and what it’s for.

  We’ll try to answer any PR’s promptly.


pkgId: 866570c18aa920a3c253e94730a34e3c6af6d1b3cbcc09d903a77f3681968d96
name: python-bcj-cffi-debuginfo
arch: x86_64
version: 0.5.1
epoch: 0
release: 1
summary: Debug information for package python-bcj-cffi
url: http://github.com/miurahr/bcj-cffi
rpm_license: LGPL-2.1+
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Development/Debug
rpm_buildhost: resalloc-cac24c77-697c-4e98-9f38-202bb61fc113
rpm_sourcerpm: python-bcj-cffi-0.5.1-1.src.rpm
location_href: 00012064-python-bcj-cffi/python-bcj-cffi-debuginfo-0.5.1-1.x86_64.rpm
checksum_type: sha256
description:
  This package provides debug information for package python-bcj-cffi.
  Debug information is useful when developing applications that use this
  package or when debugging this package.


pkgId: 88f6b06ed03014c0742416a17fe16c7a1a8fdb30d97184d80d71786438cb29e4
name: python-bcj-cffi-debugsource
arch: x86_64
version: 0.5.1
epoch: 0
release: 1
summary: Debug sources for package python-bcj-cffi
url: http://github.com/miurahr/bcj-cffi
rpm_license: LGPL-2.1+
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Development/Debug
rpm_buildhost: resalloc-cac24c77-697c-4e98-9f38-202bb61fc113
rpm_sourcerpm: python-bcj-cffi-0.5.1-1.src.rpm
location_href: 00012064-python-bcj-cffi/python-bcj-cffi-debugsource-0.5.1-1.x86_64.rpm
checksum_type: sha256
description:
  This package provides debug sources for package python-bcj-cffi.
  Debug sources are useful when developing applications that use this
  package or when debugging this package.


pkgId: 63d5faa2d37c94e6e1cba3fc8edcd3aef45e5dece640b559b933873b86cf6eb1
name: python-bcpy
arch: src
version: 0.1.8
epoch: 0
release: 1
summary: Microsoft SQL Server bcp (Bulk Copy) wrapper
url: https://github.com/titan550/bcpy
rpm_license: MIT License
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-cd7cded5-9c26-4109-a0b3-adf3babce6be
location_href: 00012698-python-bcpy/python-bcpy-0.1.8-1.src.rpm
checksum_type: sha256
description:
  <table>
  <tr>
    <td>Latest Release</td>
    <td>
      <a href="https://pypi.org/project/bcpy/">
      <img src="https://img.shields.io/pypi/v/bcpy.svg" alt="latest release" />
      </a>
    </td>
  </tr>
  <tr>
    <td>License</td>
    <td>
      <a href="https://github.com/titan550/bcpy/blob/master/LICENSE">
      <img src="https://img.shields.io/pypi/l/bcpy.svg" alt="license" />
      </a>
  </td>
  </tr>
  <tr>
    <td>Build Status (master)</td>
    <td>
      <a href="https://travis-ci.org/titan550/bcpy">
      <img src="https://api.travis-ci.org/titan550/bcpy.svg?branch=master" alt="travis build status" />
      </a>
    </td>
  </tr>
  </table>



  This package is a wrapper for Microsoft's SQL Server bcp utility. Current database drivers available in Python are not fast enough for transferring millions of records (yes, I have tried [pyodbc fast_execute_many](https://github.com/mkleehammer/pyodbc/wiki/Features-beyond-the-DB-API#fast_executemany)). Despite the IO hits, the fastest option by far is saving the data to a CSV file in file system (preferably /dev/shm tmpfs) and using the bcp utility to transfer the CSV file to SQL Server.



  1. Make sure your computeer has the [requirements](#requirements).
  1. You can download and install this package from PyPI repository by running the command below.

  ```bash
  pip install bcpy
  ```



  Following examples show you how to load (1) flat files and (2) DataFrame objects to SQL Server using this package.



  Following example assumes that you have a comma separated file with no qualifier in path 'tests/data1.csv'. The code below sends the the file to SQL Server.

  ```python
  import bcpy


  sql_config = {
      'server': 'sql_server_hostname',
      'database': 'database_name',
      'username': 'test_user',
      'password': 'test_user_password1234'
  }
  sql_table_name = 'test_data1'
  csv_file_path = 'tests/data1.csv'
  flat_file = bcpy.FlatFile(qualifier='', path=csv_file_path)
  sql_table = bcpy.SqlTable(sql_config, table=sql_table_name)
  flat_file.to_sql(sql_table)
  ```



  The following example creates a DataFrame with 100 rows and 4 columns populated with random data and then it sends it to SQL Server.

  ```python
  import bcpy
  import numpy as np
  import pandas as pd


  sql_config = {
      'server': 'sql_server_hostname',
      'database': 'database_name',
      'username': 'test_user',
      'password': 'test_user_password1234'
  }
  table_name = 'test_dataframe'
  df = pd.DataFrame(np.random.randint(-100, 100, size=(100, 4)),
                    columns=list('ABCD'))
  bdf = bcpy.DataFrame(df)
  sql_table = bcpy.SqlTable(sql_config, table=table_name)
  bdf.to_sql(sql_table)
  ```



  You need a working version of Microsoft bcp installed in your system. Your PATH environment variable should contain the directory of the bcp utility. Following are the installation tutorials for different operating systems.

  - [Dockerfile (Ubuntu 18.04)](./bcp.Dockerfile)
  - [Linux](https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-setup-tools)
  - [Mac](https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-setup-tools?view=sql-server-2017#macos)
  - [Windows](https://docs.microsoft.com/en-us/sql/tools/bcp-utility)


pkgId: 51dbe5494b669fa48b6b415c98242d3cbb0d6b3f2da1788ffd722ade91249908
name: python-beanbag
arch: src
version: 1.9.2
epoch: 0
release: 1
summary: A helper module for accessing REST APIs
url: https://github.com/ajtowns/beanbag
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-77039b51-7bbd-4866-bd4c-70bce6277a7f
location_href: 00003098-python-beanbag/python-beanbag-1.9.2-1.src.rpm
checksum_type: sha256
description:
  BeanBag is a simple module that lets you access REST APIs in an easy
  way. For example:
     >>> import beanbag
     >>> github = beanbag.BeanBag("https://api.github.com")
     >>> watchers = github.repos.ajtowns.beanbag.watchers()
     >>> for w in watchers:
  See `http://beanbag.readthedocs.org/` for more information.


pkgId: 88e7d4dcdc0c1fa441ea457924ce3a0dab13825839f33a39f767be2e04ba4446
name: python-beniget
arch: src
version: 0.4.1
epoch: 0
release: 1
summary: Extract semantic information about static Python code
url: https://github.com/serge-sans-paille/beniget/
rpm_license: BSD 3-Clause
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-0880ce92-f21e-4ba0-be48-88c78b2b0da3
location_href: 00003100-python-beniget/python-beniget-0.4.1-1.src.rpm
checksum_type: sha256
description:
  A static analyzer for Python2 and Python3 code.

  Beniget provides a static over-approximation of the global and
  local definitions inside Python Module/Class/Function.
  It can also compute def-use chains from each definition.


pkgId: bd777bf8958d95a40b4972f083d3437bb5add85ed19a668c3948fdabbe926bc6
name: python-betamax
arch: src
version: 0.8.1
epoch: 0
release: 1
summary: A VCR imitation for python-requests
url: https://github.com/sigmavirus24/betamax
rpm_license: Apache 2.0
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-a9194688-e6d6-4c41-b287-765442f4c7f4
location_href: 00003101-python-betamax/python-betamax-0.8.1-1.src.rpm
checksum_type: sha256
description:
  Betamax is a VCR_ imitation for requests. This will make mocking out requests
  much easier. It is tested on `Travis CI`_.
  Put in a more humorous way: "Betamax records your HTTP interactions so the NSA
  does not have to."


pkgId: b6ae4735fb35273e9e7fc4cc8c5ef6eb823d5075a9c6b5a269713ceb2850daf2
name: python-betamax-matchers
arch: src
version: 0.4.0
epoch: 0
release: 1
summary: A VCR imitation for python-requests
url: https://github.com/sigmavirus24/betamax_matchers
rpm_license: Copyright 2014 Ian Cordasco
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-d8d78b1b-d3f3-4cb6-94e7-58f7fd116295
location_href: 00003102-python-betamax-matchers/python-betamax-matchers-0.4.0-1.src.rpm
checksum_type: sha256
description:
          Experimental set of Matchers for `Betamax
          <https://github.com/sigmavirus24/betamax>`_ that may possibly end up in the
          main package.


pkgId: ff2b82089c2974bb21708e0d21378b215553168da96e38fced988d028a303dbf
name: python-betamax-serializers
arch: src
version: 0.2.1
epoch: 0
release: 1
summary: A set of third-party serializers for Betamax
url: https://gitlab.com/betamax/serializers
rpm_license: Apache 2.0
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-d84c1cba-6e06-4419-803b-b30dae562f8c
location_href: 00003103-python-betamax-serializers/python-betamax-serializers-0.2.1-1.src.rpm
checksum_type: sha256
description:
  Experimental set of Serializers for `Betamax
  <https://github.com/sigmavirus24/betamax>`_ that may possibly end up in the
  main package.


pkgId: 135b685f84602abf88578c0a21d8eacad258c2b169b251db6baa3320239ab31f
name: python-better-boto
arch: src
version: 0.43.0
epoch: 0
release: 1
summary: Helpers to make using boto3 more enjoyable
url: https://github.com/eamonnfaherty/better-boto
rpm_license: MIT License
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-235b6e31-8fe7-4ca0-841f-cb0ec0daf263
location_href: 00013710-python-better-boto/python-better-boto-0.43.0-1.src.rpm
checksum_type: sha256
description:
  Better Boto aims to reduce the burden of using AWS Boto3.  AWS Boto3 is a low level SDK for interacting with AWS Services
  and sometimes it feels too low level or too crud like.

  Better Boto is a collection of helper functions to make using AWS Boto easier.  For example, it added a create_or_update
  method to the AWS CloudFormation client.  It also provides some helpers for dealing with pagination operations and some
  help using AWS Organizations.  Check out the [docs](https://better-boto.readthedocs.io/en/latest/) for the full set of examples.




  [![Codacy Badge](https://api.codacy.com/project/badge/Grade/186212a8957b42a594ec8aa5f8d8a70c)](https://www.codacy.com/app/eamonnfaherty/better-boto?utm_source=github.com&amp;utm_medium=referral&amp;utm_content=eamonnfaherty/better-boto&amp;utm_campaign=Badge_Grade)

  [![Build Status](https://travis-ci.org/eamonnfaherty/better-boto.svg?branch=master)](https://travis-ci.org/eamonnfaherty/better-boto)

  [![Docs Status](https://readthedocs.org/projects/better-boto/badge/?version=latest)](https://better-boto.readthedocs.io/en/latest/)


pkgId: ad234637770074862d0d9c4047ad4306f47daa5327961168914a1b7cc792338c
name: python-bibtexparser
arch: src
version: 1.4.0
epoch: 0
release: 1
summary: Bibtex parser for python 3
url: https://github.com/sciunto-org/python-bibtexparser
rpm_license: LGPLv3 or BSD
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-70acb39c-3fba-40ec-a5b7-c687105fc23f
location_href: 00003104-python-bibtexparser/python-bibtexparser-1.4.0-1.src.rpm
checksum_type: sha256
description:
  Python library to parse `bibtex <https://en.wikipedia.org/wiki/BibTeX>`_ files.
  Bibtexparser relies on `pyparsing <https://pypi.python.org/pypi/pyparsing>`_ and is compatible with Python 3.3 or newer.


pkgId: 368e31e69ee0a6ac57f27975b606f41d06ca49dde9c03f4a68c750039c0bc0b1
name: python-bids-validator
arch: src
version: 1.10.0
epoch: 0
release: 1
summary: Validator for the Brain Imaging Data Structure
url: https://github.com/bids-standard/bids-validator
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-9cb96862-3230-43b5-a47b-d253b4dd77e2
location_href: 00003106-python-bids-validator/python-bids-validator-1.10.0-1.src.rpm
checksum_type: sha256
description:
  [![Node Tests](https://github.com/bids-standard/bids-validator/actions/workflows/node_tests.yml/badge.svg)](https://github.com/bids-standard/bids-validator/actions/workflows/node_tests.yml)
  [![Python tests](https://github.com/bids-standard/bids-validator/actions/workflows/python_tests.yml/badge.svg)](https://github.com/bids-standard/bids-validator/actions/workflows/python_tests.yml)
  [![bids-examples tests](https://github.com/bids-standard/bids-validator/actions/workflows/test-bids-examples.yml/badge.svg)](https://github.com/bids-standard/bids-validator/actions/workflows/test-bids-examples.yml)
  [![CircleCI](https://circleci.com/gh/bids-standard/bids-validator.svg?style=shield&circle-token=:circle-token)](https://circleci.com/gh/bids-standard/bids-validator)
  [![Codecov](https://codecov.io/gh/bids-standard/bids-validator/branch/master/graph/badge.svg)](https://codecov.io/gh/bids-standard/bids-validator)
  [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.3688707.svg)](https://doi.org/10.5281/zenodo.3688707)



  - [BIDS-Validator](#bids-validator)
    - [Quickstart](#quickstart)
    - [Support](#support)
    - [Maintainers and Contributors](#maintainers-and-contributors)
    - [Use](#use)
      - [API](#api)
      - [.bidsignore](#bidsignore)
      - [Configuration](#configuration)
      - [In the Browser](#in-the-browser)
      - [On the Server](#on-the-server)
      - [Through Command Line](#through-command-line)
    - [Docker image](#docker-image)
    - [Python Library](#python-library)
      - [Example](#example)
    - [Development](#development)
      - [Running Locally in a Browser](#running-locally-in-a-browser)
      - [Testing](#testing)
      - [Publishing](#publishing)
    - [Acknowledgments](#acknowledgments)



  1. Web version:
     1. Open [Google Chrome](https://www.google.com/chrome/) or
        [Mozilla Firefox](https://mozilla.org/firefox) (currently the only
        supported browsers)
     1. Go to https://bids-standard.github.io/bids-validator/ and select a folder
        with your BIDS dataset. If the validator seems to be working longer than
        couple of minutes please open [developer tools ](https://developer.chrome.com/devtools)
        and report the error at [https://github.com/bids-standard/bids-validator/issues](https://github.com/bids-standard/bids-validator/issues).
  1. Command line version:
     1. Install [Node.js](https://nodejs.org) (at least version 12.12.0)
     1. Update `npm` to be at least version 7 (`npm install --global npm@^7`)
     1. From a terminal run `npm install -g bids-validator`
     1. Run `bids-validator` to start validating datasets.
  1. Docker
     1. Install Docker
     1. From a terminal run `docker run -ti --rm -v /path/to/data:/data:ro bids/validator /data`
        but replace the `/path/to/data` part of the command with your own path on your machine.
  1. Python Library:
     1. Install [Python](https://www.python.org/)
     1. Install [Pip](https://pip.pypa.io/en/stable/installing/) package manager for Python, if
        not already installed.
     1. From a terminal run `pip install bids_validator` to acquire the
        [BIDS Validator PyPI package](https://pypi.org/project/bids-validator/)
        or `conda install bids-validator` for the
        [Conda package](https://anaconda.org/conda-forge/bids-validator).
     1. Open a Python terminal and type: `python`
     1. Import the BIDS Validator package `from bids_validator import BIDSValidator`
     1. Check if a file is BIDS compatible `BIDSValidator().is_bids('path/to/a/bids/file')`



  The BIDS Validator is designed to work in both the browser and in Node.js. We
  target support for the latest long term stable (LTS) release of Node.js and the
  latest version of Chrome.

  There is also a library of helper functions written in Python, for use with BIDS
  compliant applications written in this language.

  Please report any issues you experience while using these support targets via
  the [GitHub issue tracker](https://github.com/bids-standard/bids-validator/issues).
  If you experience issues outside of these supported environments and believe we
  should extend our targeted support feel free to open a new issue describing the
  issue, your support target and why you require extended support and we will
  address these issues on a case by case basis.



  <!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->

  [![All Contributors](https://img.shields.io/badge/all_contributors-43-orange.svg?style=flat-square)](#contributors-)

  <!-- ALL-CONTRIBUTORS-BADGE:END -->

  This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification.
  Contributions of any kind are welcome!

  The project is maintained by [@rwblair](https://github.com/rwblair/) with the help of many contributors listed below.
  (The [emoji key](https://allcontributors.org/docs/en/emoji-key) is indicating the kind of contribution)

  Please also see [Acknowledgments](#acknowledgments).

  <!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
  <!-- prettier-ignore-start -->
  <!-- markdownlint-disable -->
  <table>
    <tr>
      <td align="center"><a href="https://adam2392.github.io/"><img src="https://avatars.githubusercontent.com/u/3460267?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Adam Li</b></sub></a><br /><a href="https://github.com/bids-standard/bids-validator/commits?author=adam2392" title="Code">💻</a> <a href="https://github.com/bids-standard/bids-validator/commits?author=adam2392" title="Tests">⚠️</a> <a href="#userTesting-adam2392" title="User Testing">📓</a> <a href="https://github.com/bids-standard/bids-validator/issues?q=author%3Aadam2392" title="Bug reports">🐛</a></td>
      <td align="center"><a href="https://github.com/agt24"><img src="https://avatars.githubusercontent.com/u/7869017?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Adam Thomas</b></sub></a><br /><a href="https://github.com/bids-standard/bids-validator/commits?author=agt24" title="Documentation">📖</a></td>
      <td align="center"><a href="http://happy5214.freedynamicdns.org/"><img src="https://avatars.githubusercontent.com/u/2992751?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Alexander Jones</b></sub></a><br /><a href="https://github.com/bids-standard/bids-validator/commits?author=happy5214" title="Code">💻</a> <a href="https://github.com/bids-standard/bids-validator/commits?author=happy5214" title="Tests">⚠️</a> <a href="#ideas-happy5214" title="Ideas, Planning, & Feedback">🤔</a></td>
      <td align="center"><a href="https://github.com/musicinmybrain"><img src="https://avatars.githubusercontent.com/u/6898909?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Ben Beasley</b></sub></a><br /><a href="#platform-musicinmybrain" title="Packaging/porting to new platform">📦</a></td>
      <td align="center"><a href="http://chrisgorgolewski.org"><img src="https://avatars.githubusercontent.com/u/238759?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Chris Gorgolewski</b></sub></a><br /><a href="https://github.com/bids-standard/bids-validator/issues?q=author%3Achrisgorgo" title="Bug reports">🐛</a> <a href="https://github.com/bids-standard/bids-validator/commits?author=chrisgorgo" title="Code">💻</a> <a href="#data-chrisgorgo" title="Data">🔣</a> <a href="https://github.com/bids-standard/bids-validator/commits?author=chrisgorgo" title="Documentation">📖</a> <a href="#example-chrisgorgo" title="Examples">💡</a> <a href="#ideas-chrisgorgo" title="Ideas, Planning, & Feedback">🤔</a> <a href="#infra-chrisgorgo" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a> <a href="#maintenance-chrisgorgo" title="Maintenance">🚧</a> <a href="#mentoring-chrisgorgo" title="Mentoring">🧑‍🏫</a> <a href="#question-chrisgorgo" title="Answering Questions">💬</a> <a href="https://github.com/bids-standard/bids-validator/pulls?q=is%3Apr+reviewed-by%3Achrisgorgo" title="Reviewed Pull Requests">👀</a> <a href="https://github.com/bids-standard/bids-validator/commits?author=chrisgorgo" title="Tests">⚠️</a> <a href="#tutorial-chrisgorgo" title="Tutorials">✅</a> <a href="#talk-chrisgorgo" title="Talks">📢</a> <a href="#userTesting-chrisgorgo" title="User Testing">📓</a></td>
      <td align="center"><a href="https://github.com/choldgraf"><img src="https://avatars.githubusercontent.com/u/1839645?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Chris Holdgraf</b></sub></a><br /><a href="https://github.com/bids-standard/bids-validator/commits?author=choldgraf" title="Code">💻</a></td>
      <td align="center"><a href="https://github.com/effigies"><img src="https://avatars.githubusercontent.com/u/83442?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Chris Markiewicz</b></sub></a><br /><a href="https://github.com/bids-standard/bids-validator/commits?author=effigies" title="Code">💻</a> <a href="https://github.com/bids-standard/bids-validator/commits?author=effigies" title="Tests">⚠️</a> <a href="#ideas-effigies" title="Ideas, Planning, & Feedback">🤔</a> <a href="https://github.com/bids-standard/bids-validator/issues?q=author%3Aeffigies" title="Bug reports">🐛</a> <a href="#question-effigies" title="Answering Questions">💬</a> <a href="#tool-effigies" title="Tools">🔧</a> <a href="#maintenance-effigies" title="Maintenance">🚧</a></td>
    </tr>
    <tr>
      <td align="center"><a href="https://github.com/david-nishi"><img src="https://avatars.githubusercontent.com/u/28666458?v=4?s=50" width="50px;" alt=""/><br /><sub><b>David Nishikawa</b></sub></a><br /><a href="https://github.com/bids-standard/bids-validator/commits?author=david-nishi" title="Code">💻</a> <a href="https://github.com/bids-standard/bids-validator/commits?author=david-nishi" title="Tests">⚠️</a></td>
      <td align="center"><a href="https://github.com/DimitriPapadopoulos"><img src="https://avatars.githubusercontent.com/u/3234522?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Dimitri Papadopoulos Orfanos</b></sub></a><br /><a href="https://github.com/bids-standard/bids-validator/commits?author=DimitriPapadopoulos" title="Code">💻</a></td>
      <td align="center"><a href="https://duncanmmacleod.github.io/"><img src="https://avatars.githubusercontent.com/u/1618530?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Duncan Macleod</b></sub></a><br /><a href="#infra-duncanmmacleod" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a></td>
      <td align="center"><a href="https://github.com/franklin-feingold"><img src="https://avatars.githubusercontent.com/u/35307458?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Franklin Feingold</b></sub></a><br /><a href="https://github.com/bids-standard/bids-validator/commits?author=franklin-feingold" title="Documentation">📖</a></td>
      <td align="center"><a href="https://github.com/thinknoack"><img src="https://avatars.githubusercontent.com/u/3342083?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Gregory noack</b></sub></a><br /><a href="https://github.com/bids-standard/bids-validator/commits?author=thinknoack" title="Code">💻</a> <a href="https://github.com/bids-standard/bids-validator/commits?author=thinknoack" title="Tests">⚠️</a></td>
      <td align="center"><a href="http://chymera.eu/"><img src="https://avatars.githubusercontent.com/u/950524?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Horea Christian</b></sub></a><br /><a href="https://github.com/bids-standard/bids-validator/commits?author=TheChymera" title="Code">💻</a></td>
      <td align="center"><a href="https://kaczmarj.github.io/"><img src="https://avatars.githubusercontent.com/u/17690870?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Jakub Kaczmarzyk</b></sub></a><br /><a href="#infra-kaczmarj" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a></td>
    </tr>
    <tr>
      <td align="center"><a href="https://github.com/jokedurnez"><img src="https://avatars.githubusercontent.com/u/7630327?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Joke Durnez</b></sub></a><br /><a href="https://github.com/bids-standard/bids-validator/commits?author=jokedurnez" title="Code">💻</a></td>
      <td align="center"><a href="http://jasmainak.github.io/"><img src="https://avatars.githubusercontent.com/u/15852194?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Mainak Jas</b></sub></a><br /><a href="https://github.com/bids-standard/bids-validator/commits?author=jasmainak" title="Code">💻</a> <a href="https://github.com/bids-standard/bids-validator/commits?author=jasmainak" title="Tests">⚠️</a> <a href="#ideas-jasmainak" title="Ideas, Planning, & Feedback">🤔</a> <a href="https://github.com/bids-standard/bids-validator/pulls?q=is%3Apr+reviewed-by%3Ajasmainak" title="Reviewed Pull Requests">👀</a> <a href="#userTesting-jasmainak" title="User Testing">📓</a></td>
      <td align="center"><a href="http://fair.dei.unipd.it/marco-castellaro"><img src="https://avatars.githubusercontent.com/u/5088923?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Marco Castellaro</b></sub></a><br /><a href="https://github.com/bids-standard/bids-validator/commits?author=marcocastellaro" title="Code">💻</a> <a href="https://github.com/bids-standard/bids-validator/commits?author=marcocastellaro" title="Tests">⚠️</a></td>
      <td align="center"><a href="https://github.com/MaxvandenBoom"><img src="https://avatars.githubusercontent.com/u/43676624?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Max</b></sub></a><br /><a href="https://github.com/bids-standard/bids-validator/commits?author=MaxvandenBoom" title="Code">💻</a> <a href="https://github.com/bids-standard/bids-validator/issues?q=author%3AMaxvandenBoom" title="Bug reports">🐛</a></td>
      <td align="center"><a href="http://psychoinformatics.de/"><img src="https://avatars.githubusercontent.com/u/136479?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Michael Hanke</b></sub></a><br /><a href="https://github.com/bids-standard/bids-validator/commits?author=mih" title="Documentation">📖</a></td>
      <td align="center"><a href="https://github.com/naveau"><img src="https://avatars.githubusercontent.com/u/1488318?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Mikael Naveau</b></sub></a><br /><a href="https://github.com/bids-standard/bids-validator/commits?author=naveau" title="Code">💻</a></td>
      <td align="center"><a href="https://github.com/nellh"><img src="https://avatars.githubusercontent.com/u/11369795?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Nell Hardcastle</b></sub></a><br /><a href="https://github.com/bids-standard/bids-validator/commits?author=nellh" title="Code">💻</a> <a href="#ideas-nellh" title="Ideas, Planning, & Feedback">🤔</a> <a href="#infra-nellh" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a> <a href="#question-nellh" title="Answering Questions">💬</a> <a href="https://github.com/bids-standard/bids-validator/pulls?q=is%3Apr+reviewed-by%3Anellh" title="Reviewed Pull Requests">👀</a></td>
    </tr>
    <tr>
      <td align="center"><a href="https://github.com/ntraut"><img src="https://avatars.githubusercontent.com/u/22977927?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Nicolas Traut</b></sub></a><br /><a href="https://github.com/bids-standard/bids-validator/commits?author=ntraut" title="Code">💻</a></td>
      <td align="center"><a href="https://www.linkedin.com/in/parul-sethi"><img src="https://avatars.githubusercontent.com/u/11822050?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Parul Sethi</b></sub></a><br /><a href="https://github.com/bids-standard/bids-validator/commits?author=parulsethi" title="Code">💻</a> <a href="https://github.com/bids-standard/bids-validator/commits?author=parulsethi" title="Tests">⚠️</a></td>
      <td align="center"><a href="https://github.com/patsycle"><img src="https://avatars.githubusercontent.com/u/41481345?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Patricia Clement</b></sub></a><br /><a href="https://github.com/bids-standard/bids-validator/commits?author=patsycle" title="Code">💻</a></td>
      <td align="center"><a href="https://remi-gau.github.io/"><img src="https://avatars.githubusercontent.com/u/6961185?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Remi Gau</b></sub></a><br /><a href="https://github.com/bids-standard/bids-validator/commits?author=Remi-Gau" title="Code">💻</a> <a href="https://github.com/bids-standard/bids-validator/commits?author=Remi-Gau" title="Documentation">📖</a> <a href="#userTesting-Remi-Gau" title="User Testing">📓</a></td>
      <td align="center"><a href="https://hoechenberger.net/"><img src="https://avatars.githubusercontent.com/u/2046265?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Richard Höchenberger</b></sub></a><br /><a href="https://github.com/bids-standard/bids-validator/commits?author=hoechenberger" title="Code">💻</a> <a href="#userTesting-hoechenberger" title="User Testing">📓</a> <a href="https://github.com/bids-standard/bids-validator/commits?author=hoechenberger" title="Tests">⚠️</a> <a href="https://github.com/bids-standard/bids-validator/issues?q=author%3Ahoechenberger" title="Bug reports">🐛</a></td>
      <td align="center"><a href="https://github.com/robertoostenveld"><img src="https://avatars.githubusercontent.com/u/899043?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Robert Oostenveld</b></sub></a><br /><a href="https://github.com/bids-standard/bids-validator/commits?author=robertoostenveld" title="Code">💻</a> <a href="#ideas-robertoostenveld" title="Ideas, Planning, & Feedback">🤔</a> <a href="https://github.com/bids-standard/bids-validator/issues?q=author%3Arobertoostenveld" title="Bug reports">🐛</a> <a href="https://github.com/bids-standard/bids-validator/commits?author=robertoostenveld" title="Tests">⚠️</a></td>
      <td align="center"><a href="https://github.com/SetCodesToFire"><img src="https://avatars.githubusercontent.com/u/25459509?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Rohan Goyal</b></sub></a><br /><a href="https://github.com/bids-standard/bids-validator/commits?author=SetCodesToFire" title="Code">💻</a></td>
    </tr>
    <tr>
      <td align="center"><a href="https://github.com/rwblair"><img src="https://avatars2.githubusercontent.com/u/14927911?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Ross Blair</b></sub></a><br /><a href="#maintenance-rwblair" title="Maintenance">🚧</a> <a href="#ideas-rwblair" title="Ideas, Planning, & Feedback">🤔</a> <a href="https://github.com/bids-standard/bids-validator/commits?author=rwblair" title="Code">💻</a> <a href="https://github.com/bids-standard/bids-validator/issues?q=author%3Arwblair" title="Bug reports">🐛</a> <a href="#infra-rwblair" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a> <a href="#projectManagement-rwblair" title="Project Management">📆</a> <a href="#question-rwblair" title="Answering Questions">💬</a> <a href="https://github.com/bids-standard/bids-validator/pulls?q=is%3Apr+reviewed-by%3Arwblair" title="Reviewed Pull Requests">👀</a> <a href="#tool-rwblair" title="Tools">🔧</a> <a href="https://github.com/bids-standard/bids-validator/commits?author=rwblair" title="Tests">⚠️</a></td>
      <td align="center"><a href="http://www.poldracklab.org/"><img src="https://avatars.githubusercontent.com/u/871056?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Russ Poldrack</b></sub></a><br /><a href="https://github.com/bids-standard/bids-validator/commits?author=poldrack" title="Code">💻</a> <a href="#financial-poldrack" title="Financial">💵</a> <a href="#fundingFinding-poldrack" title="Funding Finding">🔍</a></td>
      <td align="center"><a href="http://soichi.us/"><img src="https://avatars.githubusercontent.com/u/923896?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Soichi Hayashi</b></sub></a><br /><a href="https://github.com/bids-standard/bids-validator/issues?q=author%3Asoichih" title="Bug reports">🐛</a></td>
      <td align="center"><a href="https://www.stefanappelhoff.com"><img src="https://avatars.githubusercontent.com/u/9084751?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Stefan Appelhoff</b></sub></a><br /><a href="https://github.com/bids-standard/bids-validator/issues?q=author%3Asappelhoff" title="Bug reports">🐛</a> <a href="https://github.com/bids-standard/bids-validator/commits?author=sappelhoff" title="Code">💻</a> <a href="#data-sappelhoff" title="Data">🔣</a> <a href="https://github.com/bids-standard/bids-validator/commits?author=sappelhoff" title="Documentation">📖</a> <a href="#example-sappelhoff" title="Examples">💡</a> <a href="#ideas-sappelhoff" title="Ideas, Planning, & Feedback">🤔</a> <a href="#infra-sappelhoff" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a> <a href="#maintenance-sappelhoff" title="Maintenance">🚧</a> <a href="#mentoring-sappelhoff" title="Mentoring">🧑‍🏫</a> <a href="#question-sappelhoff" title="Answering Questions">💬</a> <a href="https://github.com/bids-standard/bids-validator/pulls?q=is%3Apr+reviewed-by%3Asappelhoff" title="Reviewed Pull Requests">👀</a> <a href="https://github.com/bids-standard/bids-validator/commits?author=sappelhoff" title="Tests">⚠️</a> <a href="#tutorial-sappelhoff" title="Tutorials">✅</a> <a href="#talk-sappelhoff" title="Talks">📢</a> <a href="#userTesting-sappelhoff" title="User Testing">📓</a></td>
      <td align="center"><a href="https://github.com/suyashdb"><img src="https://avatars.githubusercontent.com/u/11152799?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Suyash </b></sub></a><br /><a href="https://github.com/bids-standard/bids-validator/commits?author=suyashdb" title="Code">💻</a></td>
      <td align="center"><a href="https://github.com/tsalo"><img src="https://avatars.githubusercontent.com/u/8228902?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Taylor Salo</b></sub></a><br /><a href="https://github.com/bids-standard/bids-validator/commits?author=tsalo" title="Code">💻</a></td>
      <td align="center"><a href="https://github.com/olgn"><img src="https://avatars.githubusercontent.com/u/8853289?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Teal Hobson-Lowther</b></sub></a><br /><a href="https://github.com/bids-standard/bids-validator/commits?author=olgn" title="Code">💻</a> <a href="https://github.com/bids-standard/bids-validator/commits?author=olgn" title="Tests">⚠️</a></td>
    </tr>
    <tr>
      <td align="center"><a href="https://github.com/riddlet"><img src="https://avatars.githubusercontent.com/u/4789331?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Travis Riddle</b></sub></a><br /><a href="https://github.com/bids-standard/bids-validator/issues?q=author%3Ariddlet" title="Bug reports">🐛</a></td>
      <td align="center"><a href="https://github.com/VisLab"><img src="https://avatars.githubusercontent.com/u/1189050?v=4?s=50" width="50px;" alt=""/><br /><sub><b>VisLab</b></sub></a><br /><a href="#ideas-VisLab" title="Ideas, Planning, & Feedback">🤔</a> <a href="https://github.com/bids-standard/bids-validator/commits?author=VisLab" title="Code">💻</a></td>
      <td align="center"><a href="https://github.com/wazeerzulfikar"><img src="https://avatars.githubusercontent.com/u/15856554?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Wazeer Zulfikar</b></sub></a><br /><a href="https://github.com/bids-standard/bids-validator/commits?author=wazeerzulfikar" title="Documentation">📖</a></td>
      <td align="center"><a href="https://github.com/yarikoptic"><img src="https://avatars.githubusercontent.com/u/39889?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Yaroslav Halchenko</b></sub></a><br /><a href="#ideas-yarikoptic" title="Ideas, Planning, & Feedback">🤔</a> <a href="https://github.com/bids-standard/bids-validator/commits?author=yarikoptic" title="Code">💻</a> <a href="https://github.com/bids-standard/bids-validator/commits?author=yarikoptic" title="Documentation">📖</a> <a href="#userTesting-yarikoptic" title="User Testing">📓</a></td>
      <td align="center"><a href="https://github.com/constellates"><img src="https://avatars.githubusercontent.com/u/4325905?v=4?s=50" width="50px;" alt=""/><br /><sub><b>constellates</b></sub></a><br /><a href="https://github.com/bids-standard/bids-validator/commits?author=constellates" title="Code">💻</a> <a href="https://github.com/bids-standard/bids-validator/commits?author=constellates" title="Tests">⚠️</a></td>
      <td align="center"><a href="https://github.com/dewarrn1"><img src="https://avatars.githubusercontent.com/u/1322751?v=4?s=50" width="50px;" alt=""/><br /><sub><b>dewarrn1</b></sub></a><br /><a href="https://github.com/bids-standard/bids-validator/commits?author=dewarrn1" title="Code">💻</a></td>
      <td align="center"><a href="https://github.com/dkp"><img src="https://avatars.githubusercontent.com/u/965184?v=4?s=50" width="50px;" alt=""/><br /><sub><b>dkp</b></sub></a><br /><a href="https://github.com/bids-standard/bids-validator/commits?author=dkp" title="Code">💻</a></td>
    </tr>
    <tr>
      <td align="center"><a href="https://github.com/MatthewZito"><img src="https://avatars.githubusercontent.com/u/47864657?v=4?s=50" width="50px;" alt=""/><br /><sub><b>goldmund</b></sub></a><br /><a href="https://github.com/bids-standard/bids-validator/commits?author=MatthewZito" title="Code">💻</a> <a href="https://github.com/bids-standard/bids-validator/commits?author=MatthewZito" title="Tests">⚠️</a></td>
    </tr>
  </table>

  <!-- markdownlint-restore -->
  <!-- prettier-ignore-end -->

  <!-- ALL-CONTRIBUTORS-LIST:END -->





  The BIDS Validator has one primary method that takes a directory as either a
  path to the directory (node) or the object given by selecting a directory with a
  file input (browser), an options object, and a callback.

  Available options include:

  - ignoreWarnings - (boolean - defaults to false)
  - ignoreNiftiHeaders - (boolean - defaults to false)

  For example:

  `validate.BIDS(directory, {ignoreWarnings: true}, function (issues, summary) {console.log(issues.errors, issues.warnings);});`

  If you would like to test individual files you can use the file specific checks
  that we expose.

  - validate.BIDS()
  - validate.JSON()
  - validate.TSV()
  - validate.NIFTI()

  Additionally you can reformat stored errors against a new config using `validate.reformat()`



  Optionally one can include a `.bidsignore` file in the root of the dataset. This
  file lists patterns (compatible with the [.gitignore syntax](https://git-scm.com/docs/gitignore))
  defining files that should be ignored by the validator. This option is useful
  when the validated dataset includes file types not yet supported by BIDS
  specification.

  ```Text
  *_not_bids.txt
  extra_data/
  ```



  You can configure the severity of errors by passing a json configuration file
  with a `-c` or `--config` flag to the command line interface or by defining a
  config object on the options object passed during javascript usage.

  If no path is specified a default path of `.bids-validator-config.json` will be used. You can add this file to your dataset to share dataset specific validation configuration. To disable this behavior use `--no-config` and the default configuration will be used.

  The basic configuration format is outlined below. All configuration is optional.

  ```JSON
  {
  	"ignore": [],
  	"warn": [],
  	"error": [],
  	"ignoredFiles": []
  }
  ```

  `ignoredFiles` takes a list of file paths or glob patterns you'd like to ignore.
  Lets say we want to ignore all files and sub-directory under `/derivatives/`.
  **This is not the same syntax as used in the .bidsignore file**

  ```JSON
  {
  	"ignoredFiles": ["/derivatives/**"]
  }
  ```

  Note that adding two stars `**` in path makes validator recognize all files and
  sub-dir to be ignored.

  `ignore`, `warn`, and `error` take lists of issue codes or issue keys and change
  the severity of those issues so they are either ignored or reported as warnings
  or errors. You can find a list of all available issues at
  [utils/issues/list](https://github.com/bids-standard/bids-validator/blob/master/bids-validator/utils/issues/list.js).

  Some issues may be ignored by default, but can be elevated to warnings or errors.
  These provide a way to check for common things that are more specific than BIDS
  compatibility. An example is a check for the presence of a T1w modality. The
  following would raise an error if no T1W image was found in a dataset.

  ```JSON
  {
  	"error": ["NO_T1W"]
  }
  ```

  In addition to issue codes and keys these lists can also contain objects with
  and "and" or "or" properties set to arrays of codes or keys. These allow some
  level of conditional logic when configuring issues. For example:

  ```JSON
  {
  	"ignore": [
  		{
  			"and": [
  				"ECHO_TIME_GREATER_THAN",
  				"ECHO_TIME_NOT_DEFINED"
  			]
  		}
  	]
  }
  ```

  In the above example the two issues will only be ignored if both of them are
  triggered during validation.

  ```JSON
  {
  	"ignore": [
  		{
  			"and": [
  				"ECHO_TIME_GREATER_THAN",
  				"ECHO_TIME_NOT_DEFINED"
  				{
  					"or": [
  						"ECHO_TIME1-2_NOT_DEFINED",
  						"ECHO_TIME_MUST_DEFINE"
  					]
  				}
  			]
  		}
  	]
  }
  ```

  And in this example the listed issues will only be ignored if
  `ECHO_TIME_GREATER_THAN`, `ECHO_TIME_NOT_DEFINED` and either
  `ECHO_TIME1-2_NOT_DEFINED` or `ECHO_TIME_MUST_DEFINE` are triggered during
  validation.

  "or" arrays are not supported at the lowest level because it wouldn't add any
  functionality. For example the following is not supported.

  ```JSON
  {
  	"ignore": [
  		{
  			"or": [
  				"ECHO_TIME_GREATER_THAN",
  				"ECHO_TIME_NOT_DEFINED"
  			]
  		}
  	]
  }
  ```

  because it would be functionally the same as this:

  ```JSON
  {
  	"ignore": [
  		"ECHO_TIME_GREATER_THAN",
  		"ECHO_TIME_NOT_DEFINED"
  	]
  }
  ```

  For passing a configuration while using the bids-validator on the command line,
  you can use the following style to for example ignore empty
  file errors (99) and files that cannot be read (44):

  ```
  bids-validator --config.ignore=99 --config.ignore=44 path/to/bids/dir
  ```

  This style of use puts limits on what configuration you can require, so for
  complex scenarios, we advise users to create a dedicated configuration file with
  contents as described above.



  The BIDS Validator currently works in the browser with [browserify](https://browserify.org/)
  or [webpack](https://webpack.js.org/). You can add it to a project by cloning
  the validator and requiring it with browserify syntax
  `const validate = require('bids-validator');` or an ES2015 webpack import
  `import validate from 'bids-validator'`.



  The BIDS validator works like most npm packages. You can install it by running
  `npm install bids-validator`.



  If you install the bids validator globally by using `npm install -g bids-validator`
  you will be able to use it as a command line tool. Once installed you should be
  able to run `bids-validator /path/to/your/bids/directory` and see any validation
  issues logged to the terminal. Run `bids-validator` without a directory path to
  see available options.



  [![Docker Image Version (latest by date)](https://img.shields.io/docker/v/bids/validator?label=docker)](https://hub.docker.com/r/bids/validator)

  To use bids validator with [docker](https://www.docker.com/), you simply need to
  [install docker](https://docs.docker.com/install/) on your system.

  And then from a terminal run:

  - `docker run -ti --rm bids/validator --version` to print the version of the
    docker image
  - `docker run -ti --rm bids/validator --help` to print the help
  - `docker run -ti --rm -v /path/to/data:/data:ro bids/validator /data`
    to validate the dataset `/path/to/data` on your host machine

  See here for a brief explanation of the commands:

  - `docker run` is the command to tell docker to run a certain docker image,
    usually taking the form `docker run <IMAGENAME> <COMMAND>`
  - the `-ti` flag means the inputs are accepted and outputs are printed to the
    terminal
  - the `--rm` flag means that the state of the docker container is not saved
    after it has run
  - the `-v` flag is adding your local data to the docker container
    ([bind-mounts](https://docs.docker.com/storage/bind-mounts/)). Importantly,
    the input after the `-v` flag consists of three fields separated colons: `:`
    - the first field is the path to the directory on the host machine:
      `/path/to/data`
    - the second field is the path where the directory is mounted in the
      container
    - the third field is optional. In our case, we use `ro` to specify that the
      mounted data is _read only_



  [![PyPI version](https://badge.fury.io/py/bids-validator.svg)](https://badge.fury.io/py/bids-validator)
  [![Conda version](https://img.shields.io/conda/vn/conda-forge/bids-validator)](https://anaconda.org/conda-forge/bids-validator)

  There are is a limited library of helper functions written in Python. The main function
  determines if a file extension is compliant with the BIDS specification. You can find
  the available functions in the library, as well as their descriptions,
  [here](https://github.com/bids-standard/bids-validator/blob/master/bids-validator/bids_validator/bids_validator.py).
  To install, run `pip install -U bids_validator` (requires python and pip) or
  `conda install bids-validator` (requires a Conda environment).



  ```Python
  from bids_validator import BIDSValidator
  validator = BIDSValidator()
  filepaths = ["/sub-01/anat/sub-01_rec-CSD_T1w.nii.gz", "/sub-01/anat/sub-01_acq-23_rec-CSD_T1w.exe"]
  for filepath in filepaths:
      print(validator.is_bids(filepath))  # will print True, and then False
  ```



  To develop locally, clone the project and run `npm install` from the project
  root. This will install external dependencies. If you wish to install
  `bids-validator` globally (so that you can run it in other folders), use the
  following command to install it globally: `cd bids-validator && npm install -g` (for windows users, if in a different drive add /d, e.g. `cd /d F:\bids-validator && npm install -g`)

  Please see the [CONTRIBUTING.md](../CONTRIBUTING.md)
  for additional details.



  bids-validator is bundled with esbuild. While developing, the script `bids-validator/bin/bids-validator` will automatically bundle the project each time it is run. To test a build without publishing it `npm -w bids-validator run build`. This will generate a bids-validator/dist directory containing the local build and `bids-validator/bin/bids-validator` will use this build. To return to automatic bundling on each run, remove the dist directory.



  A note about OS X, the dependencies for the browser require a npm package called
  node-gyp which needs xcode to be installed in order to be compiled.

  1. The browser version of `bids-validator` lives in the repo subdirectory
     `/bids-validator-web`. It is a [React.js](https://reactjs.org/) application
     that uses the [next.js](https://nextjs.org/) framework.
  2. To develop `bids-validator` and see how it will act in the browser, simply run
     `npm run web-dev` in the project root and navigate to `localhost:3000`.
  3. In development mode, changes to the codebase will trigger rebuilds of the application
     automatically.
  4. Changes to the `/bids-validator` in the codebase will also be reflected in the
     web application.
  5. Tests use the [Jest](https://jestjs.io/index.html) testing library and should be developed in `/bids-validator-web/tests`.
     We can always use more tests, so please feel free to contribute a test that reduces the chance
     of any bugs you fix!
  6. To ensure that the web application compiles successfully in production, run `npm run web-export`



  If it's your first time running tests, first use the command `git submodule update --init --depth 1` to pull the test example data. This repo contains the [bids-examples github repository](https://github.com/bids-standard/bids-examples) as a [submodule](https://git-scm.com/book/en/v2/Git-Tools-Submodules).

  To start the test suite run `npm run test` from the project root. `npm run test -- --watch`
  is useful to run tests while making changes. A coverage report is available with
  `npm run coverage`.

  To run the linter which checks code conventions run `npm run lint`.



  Global installs are not recommended for development because of the possibility of package conflicts with other Node.js projects. If you do need to test with a global install from a development tree, follow these steps to generate the NPM package without publishing it and install the package locally.

  1. `npm -w bids-validator run build`
  2. `npm -w bids-validator pack`
  3. `npm install -g bids-validator-*.tgz`



  Publishing is done with [Lerna](https://github.com/lerna/lerna). Use the command `npx lerna publish` and follow instructions to set a new version.

  Using lerna publish will create a git commit with updated version information and create a version number tag for it, push the tag to GitHub, then publish to NPM and PyPI. The GitHub release is manual following that.



  Many contributions to the `bids-validator` were done by members of the
  BIDS community. See the
  [list of contributors](https://bids-specification.readthedocs.io/en/stable/99-appendices/01-contributors.html).

  A large part of the development of `bids-validator` is currently done by
  [Squishymedia](https://squishymedia.com/), who are in turn financed through
  different grants offered for the general development of BIDS. See the list
  below.

  Development and contributions were supported through the following federally
  funded projects/grants:

  - [BIDS Derivatives (NIMH: R24MH114705, PI: Poldrack)](https://grantome.com/grant/NIH/R24-MH114705-01)
  - [OpenNeuro (NIMH: R24MH117179, PI: Poldrack)](https://grantome.com/grant/NIH/R24-MH117179-01)
  - [Spokes: MEDIUM: WEST (NSF: 1760950, PI: Poldrack & Gorgolewski)](https://grantome.com/grant/NSF/IIS-1760950)
  - [ReproNim](http://repronim.org) [(NIH-NIBIB P41 EB019936, PI: Kennedy)](https://projectreporter.nih.gov/project_info_description.cfm?aid=8999833)


pkgId: d8d9990610f90062d4380a6afc457ec34400be4bccfdda67c148d947265ed6c6
name: python-bigquery-schema-generator
arch: src
version: 1.5.1
epoch: 0
release: 1
summary: BigQuery schema generator from JSON or CSV data
url: https://github.com/bxparks/bigquery-schema-generator
rpm_license: Apache 2.0
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-244baea6-457c-45b3-aa99-ec0f94e1a413
location_href: 00012151-python-bigquery-schema-generator/python-bigquery-schema-generator-1.5.1-1.src.rpm
checksum_type: sha256
description:
  [![BigQuery Schema Generator CI](https://github.com/bxparks/bigquery-schema-generator/actions/workflows/pythonpackage.yml/badge.svg)](https://github.com/bxparks/bigquery-schema-generator/actions/workflows/pythonpackage.yml)

  This script generates the BigQuery schema from the newline-delimited data
  records on the STDIN. The records can be in JSON format or CSV format. The
  BigQuery data importer (`bq load`) uses only the
  [first 500 records](https://cloud.google.com/bigquery/docs/schema-detect)
  when the schema auto-detection feature is enabled. In contrast, this script uses
  all data records to generate the schema.

  Usage:
  ```
  $ generate-schema < file.data.json > file.schema.json
  $ generate-schema --input_format csv < file.data.csv > file.schema.json
  ```

  **Version**: 1.5.1 (2022-12-04)

  **Changelog**: [CHANGELOG.md](CHANGELOG.md)



  * [Background](#Background)
  * [Installation](#Installation)
      * [Ubuntu Linux](#UbuntuLinux)
      * [MacOS](#MacOS)
          * [MacOS 11 (Big Sur)](#MacOS11)
          * [MacOS 10.14 (Mojave)](#MacOS1014)
  * [Usage](#Usage)
      * [Command Line](#CommandLine)
      * [Schema Output](#SchemaOutput)
      * [Command Line Flag Options](#FlagOptions)
          * [Help (`--help`)](#Help)
          * [Input Format (`--input_format`)](#InputFormat)
          * [Keep Nulls (`--keep_nulls`)](#KeepNulls)
          * [Quoted Values Are Strings(`--quoted_values_are_strings`)](#QuotedValuesAreStrings)
          * [Infer Mode (`--infer_mode`)](#InferMode)
          * [Debugging Interval (`--debugging_interval`)](#DebuggingInterval)
          * [Debugging Map (`--debugging_map`)](#DebuggingMap)
          * [Sanitize Names (`--sanitize_names`)](#SanitizedNames)
          * [Ignore Invalid Lines (`--ignore_invalid_lines`)](#IgnoreInvalidLines)
          * [Existing Schema Path (`--existing_schema_path`)](#ExistingSchemaPath)
          * [Preserve Input Sort Order
            (`--preserve_input_sort_order`)](#PreserveInputSortOrder)
      * [Using as a Library](#UsingAsLibrary)
          * [`SchemaGenerator.run()`](#SchemaGeneratorRun)
          * [`SchemaGenerator.deduce_schema()` with File](#SchemaGeneratorDeduceSchemaFromFile)
          * [`SchemaGenerator.deduce_schema()` with Dict](#SchemaGeneratorDeduceSchemaFromDict)
  * [Schema Types](#SchemaTypes)
      * [Supported Types](#SupportedTypes)
      * [Type Inference](#TypeInference)
  * [Examples](#Examples)
  * [Benchmarks](#Benchmarks)
  * [System Requirements](#SystemRequirements)
  * [License](#License)
  * [Feedback and Support](#Feedback)
  * [Authors](#Authors)

  <a name="Background"></a>


  Data can be imported into [BigQuery](https://cloud.google.com/bigquery/) using
  the [bq](https://cloud.google.com/bigquery/bq-command-line-tool) command line
  tool. It accepts a number of data formats including CSV or newline-delimited
  JSON. The data can be loaded into an existing table or a new table can be
  created during the loading process. The structure of the table is defined by
  its [schema](https://cloud.google.com/bigquery/docs/schemas). The table's
  schema can be defined manually or the schema can be
  [auto-detected](https://cloud.google.com/bigquery/docs/schema-detect#auto-detect).

  When the auto-detect feature is used, the BigQuery data importer examines only
  the [first 500 records](https://cloud.google.com/bigquery/docs/schema-detect)
  of the input data. In many cases, this is sufficient
  because the data records were dumped from another database and the exact schema
  of the source table was known. However, for data extracted from a service
  (e.g. using a REST API) the record fields could have been organically added
  at later dates. In this case, the first 100 records do not contain fields which
  are present in later records. The **bq load** auto-detection fails and the data
  fails to load.

  The **bq load** tool does not support the ability to process the entire dataset
  to determine a more accurate schema. This script fills in that gap. It
  processes the entire dataset given in the STDIN and outputs the BigQuery schema
  in JSON format on the STDOUT. This schema file can be fed back into the **bq
  load** tool to create a table that is more compatible with the data fields in
  the input dataset.

  <a name="Installation"></a>


  **Prerequisite**: You need have Python 3.6 or higher.

  Install from [PyPI](https://pypi.python.org/pypi) repository using `pip3`. There
  are too many ways to install packages in Python. The following are in order
  highest to lowest recommendation:

  1) If you are using a virtual environment (such as
  [venv](https://docs.python.org/3/library/venv.html)), then use:
  ```
  $ pip3 install bigquery_schema_generator
  ```

  2) If you aren't using a virtual environment you can install into
  your local Python directory:

  ```
  $ pip3 install --user bigquery_schema_generator
  ```

  3) If you want to install the package for your entire system globally, use
  ```
  $ sudo -H pip3 install bigquery_schema_generator
  ```
  but realize that you will be running code from PyPI as `root` so this has
  security implications.

  Sometimes, your Python environment gets into a complete mess and the `pip3`
  command won't work. Try typing `python3 -m pip` instead.

  A successful install should print out something like the following (the version
  number may be different):
  ```
  Collecting bigquery-schema-generator
  Installing collected packages: bigquery-schema-generator
  Successfully installed bigquery-schema-generator-1.1
  ```

  The shell script `generate-schema` will be installed somewhere in your system,
  depending on how your Python environment is configured. See below for
  some notes for Ubuntu Linux and MacOS.

  <a name="UbuntuLinux"></a>


  After running `pip3 install bigquery_schema_generator`, the `generate-schema`
  script may be installed in one the following locations:

  * `/usr/bin/generate-schema`
  * `/usr/local/bin/generate-schema`
  * `$HOME/.local/bin/generate-schema`
  * `$HOME/.virtualenvs/{your_virtual_env}/bin/generate-schema`

  <a name="MacOS"></a>


  I don't have any Macs which are able to run the latest macOS, and I don't use
  them much for software development these days, but here are some notes if they
  help.

  <a name="MacOS11"></a>


  I believe Big Sur comes preinstalled with Python 3.8. If you install
  `bigquery_schema_generator` using:

  ```
  $ pip3 install --user bigquery_schema_generator
  ```

  then the `generate-schema` wrapper script will be installed at:

  ```
  /User/{your-login}/Library/Python/3.8/bin/generate-schema
  ```

  <a name="MacOS1014"></a>


  This MacOS version comes with Python 2.7 only. To install Python 3, you can
  install using:

  1)) Downloading the [macos installer directly from
     Python.org](https://www.python.org/downloads/macos/).

  The python3 binary will be located at `/usr/local/bin/python3`, and the
  `/usr/local/bin/pip3` is a symlink to
  `/Library/Frameworks/Python.framework/Versions/3.6/bin/pip3`.

  So running

  ```
  $ pip3 install --user bigquery_schema_generator
  ```

  will install `generate-schema` at
  `/Library/Frameworks/Python.framework/Versions/3.6/bin/generate-schema`.

  The Python installer updates `$HOME/.bash_profile` to add
  `/Library/Frameworks/Python.framework/Versions/3.6/bin` to the `$PATH`
  environment variable. So you should be able to run the `generate-schema`
  command without typing in the full path.

  2)) Using [Homebrew](https://docs.brew.sh/Homebrew-and-Python).

  In this environment, the `generate-schema` script will probably be installed in
  `/usr/local/bin` but I'm not completely certain.

  <a name="Usage"></a>


  <a name="CommandLine"></a>


  The `generate_schema.py` script accepts a newline-delimited JSON or
  CSV data file on the STDIN. JSON input format has been tested extensively.
  CSV input format was added more recently (in v0.4) using the `--input_format
  csv` flag. The support is not as robust as JSON file. For example, CSV format
  supports only the comma-separator, and does not support the pipe (`|`) or tab
  (`\t`) character.

  Unlike `bq load`, the `generate_schema.py` script reads every record in the
  input data file to deduce the table's schema. It prints the JSON formatted
  schema file on the STDOUT.

  There are at least 3 ways to run this script:

  **1) Shell script**

  If you installed using `pip3`, then it should have installed a small helper
  script named `generate-schema` in your local `./bin` directory of your current
  environment (depending on whether you are using a virtual environment).

  ```
  $ generate-schema < file.data.json > file.schema.json
  ```

  **2) Python module**

  You can invoke the module directly using:
  ```
  $ python3 -m bigquery_schema_generator.generate_schema < file.data.json > file.schema.json
  ```
  This is essentially what the `generate-schema` command does.

  **3) Python script**

  If you retrieved this code from its
  [GitHub repository](https://github.com/bxparks/bigquery-schema-generator),
  then you can invoke the Python script directly:
  ```
  $ ./generate_schema.py < file.data.json > file.schema.json
  ```

  <a name="SchemaOutput"></a>


  The resulting schema file can be given to the **bq load** command using the
  `--schema` flag:
  ```

  $ bq load --source_format NEWLINE_DELIMITED_JSON \
      --ignore_unknown_values \
      --schema file.schema.json \
      mydataset.mytable \
      file.data.json
  ```
  where `mydataset.mytable` is the target table in BigQuery.

  For debugging purposes, here is the equivalent `bq load` command using schema
  autodetection:

  ```
  $ bq load --source_format NEWLINE_DELIMITED_JSON \
      --autodetect \
      mydataset.mytable \
      file.data.json
  ```

  If the input file is in CSV format, the first line will be the header line which
  enumerates the names of the columns. But this header line must be skipped when
  importing the file into the BigQuery table. We accomplish this using
  `--skip_leading_rows` flag:
  ```
  $ bq load --source_format CSV \
      --schema file.schema.json \
      --skip_leading_rows 1 \
      mydataset.mytable \
      file.data.csv
  ```

  Here is the equivalent `bq load` command for CSV files using autodetection:
  ```
  $ bq load --source_format CSV \
      --autodetect \
      mydataset.mytable \
      file.data.csv
  ```

  A useful flag for `bq load`, particularly for JSON files,  is
  `--ignore_unknown_values`, which causes `bq load` to ignore fields in the input
  data which are not defined in the schema. When `generate_schema.py` detects an
  inconsistency in the definition of a particular field in the input data, it
  removes the field from the schema definition. Without the
  `--ignore_unknown_values`, the `bq load` fails when the inconsistent data record
  is read.

  Another useful flag during development and debugging is `--replace` which
  replaces any existing BigQuery table.

  After the BigQuery table is loaded, the schema can be retrieved using:

  ```
  $ bq show --schema mydataset.mytable | python3 -m json.tool
  ```

  (The `python -m json.tool` command will pretty-print the JSON formatted schema
  file. An alternative is the [jq command](https://stedolan.github.io/jq/).)
  The resulting schema file should be identical to `file.schema.json`.

  <a name="FlagOptions"></a>


  The `generate_schema.py` script supports a handful of command line flags
  as shown by the `--help` flag below.

  <a name="Help"></a>


  Print the built-in help strings:

  ```bash
  $ generate-schema --help
  usage: generate-schema [-h] [--input_format INPUT_FORMAT] [--keep_nulls]
                         [--quoted_values_are_strings] [--infer_mode]
                         [--debugging_interval DEBUGGING_INTERVAL]
                         [--debugging_map] [--sanitize_names]
                         [--ignore_invalid_lines]
                         [--existing_schema_path EXISTING_SCHEMA_PATH]
                         [--preserve_input_sort_order]

  Generate BigQuery schema from JSON or CSV file.

  optional arguments:
    -h, --help            show this help message and exit
    --input_format INPUT_FORMAT
                          Specify an alternative input format ('csv', 'json',
                          'dict')
    --keep_nulls          Print the schema for null values, empty arrays or
                          empty records
    --quoted_values_are_strings
                          Quoted values should be interpreted as strings
    --infer_mode          Determine if mode can be 'NULLABLE' or 'REQUIRED'
    --debugging_interval DEBUGGING_INTERVAL
                          Number of lines between heartbeat debugging messages
    --debugging_map       Print the metadata schema_map instead of the schema
    --sanitize_names      Forces schema name to comply with BigQuery naming
                          standard
    --ignore_invalid_lines
                          Ignore lines that cannot be parsed instead of stopping
    --existing_schema_path EXISTING_SCHEMA_PATH
                          File that contains the existing BigQuery schema for a
                          table. This can be fetched with: `bq show --schema
                          <project_id>:<dataset>:<table_name>
    --preserve_input_sort_order
                          Preserve the original ordering of columns from input
                          instead of sorting alphabetically. This only impacts
                          `input_format` of json or dict

  ```

  <a name="InputFormat"></a>


  Specifies the format of the input file as a string. It must be one of `json`
  (default), `csv`, or `dict`:

  * `json`
      * a "file-like" object containing newline-delimited JSON
  * `csv`
      * a "file-like" object containing newline-delimited CSV
  * `dict`
      * a `list` of Python `dict` objects corresponding to list of
        newline-delimited JSON, in other words `List[Dict[str, Any]]`
      * applies only if `SchemaGenerator` is used as a library through the
        `run()` or `deduce_schema()` method
      * useful if the input data (usually JSON) has already been read into memory
        and parsed from newline-delimited JSON into native Python dict objects.

  If `csv` file is specified, the `--keep_nulls` flag is automatically activated.
  This is required because CSV columns are defined positionally, so the schema
  file must contain all the columns specified by the CSV file, in the same
  order, even if the column contains an empty value for every record.

  See [Issue #26](https://github.com/bxparks/bigquery-schema-generator/issues/26)
  for implementation details.

  <a name="KeepNulls"></a>


  Normally when the input data file contains a field which has a null, empty
  array or empty record as its value, the field is suppressed in the schema file.
  This flag enables this field to be included in the schema file.

  In other words, using a data file containing just nulls and empty values:
  ```bash
  $ generate_schema
  { "s": null, "a": [], "m": {} }
  ^D
  INFO:root:Processed 1 lines
  []
  ```

  With the `keep_nulls` flag, we get:
  ```bash
  $ generate-schema --keep_nulls
  { "s": null, "a": [], "m": {} }
  ^D
  INFO:root:Processed 1 lines
  [
    {
      "mode": "REPEATED",
      "type": "STRING",
      "name": "a"
    },
    {
      "mode": "NULLABLE",
      "fields": [
        {
          "mode": "NULLABLE",
          "type": "STRING",
          "name": "__unknown__"
        }
      ],
      "type": "RECORD",
      "name": "d"
    },
    {
      "mode": "NULLABLE",
      "type": "STRING",
      "name": "s"
    }
  ]
  ```

  <a name="QuotedValuesAreStrings"></a>


  By default, quoted values are inspected to determine if they can be interpreted
  as `DATE`, `TIME`, `TIMESTAMP`, `BOOLEAN`, `INTEGER` or `FLOAT`. This is
  consistent with the algorithm used by `bq load`. However, for the `BOOLEAN`,
  `INTEGER`, or `FLOAT` types, it is sometimes more useful to interpret those as
  normal strings instead. This flag disables type inference for `BOOLEAN`,
  `INTEGER` and `FLOAT` types inside quoted strings.

  ```bash
  $ generate-schema
  { "name": "1" }
  ^D
  [
    {
      "mode": "NULLABLE",
      "name": "name",
      "type": "INTEGER"
    }
  ]

  $ generate-schema --quoted_values_are_strings
  { "name": "1" }
  ^D
  [
    {
      "mode": "NULLABLE",
      "name": "name",
      "type": "STRING"
    }
  ]
  ```

  <a name="InferMode"></a>


  Set the schema `mode` of a field to `REQUIRED` instead of the default
  `NULLABLE` if the field contains a non-null or non-empty value for every data
  record in the input file. This option is available only for CSV
  (`--input_format csv`) files. It is theoretically possible to implement this
  feature for JSON files, but too difficult to implement in practice because
  fields are often completely missing from a given JSON record (instead of
  explicitly being defined to be `null`).

  In addition to the above, this option, when used in conjunction with
  `--existing_schema_map`, will allow fields to be relaxed from REQUIRED to
  NULLABLE if they were REQUIRED in the existing schema and NULL rows are found in
  the new data we are inferring a schema from. In this case it can be used with
  either input_format, CSV or JSON.

  See [Issue #28](https://github.com/bxparks/bigquery-schema-generator/issues/28)
  for implementation details.

  <a name="DebuggingInterval"></a>


  By default, the `generate_schema.py` script prints a short progress message
  every 1000 lines of input data. This interval can be changed using the
  `--debugging_interval` flag.

  ```bash
  $ generate-schema --debugging_interval 50 < file.data.json > file.schema.json
  ```

  <a name="DebuggingMap"></a>


  Instead of printing out the BigQuery schema, the `--debugging_map` prints out
  the bookkeeping metadata map which is used internally to keep track of the
  various fields and their types that were inferred using the data file. This
  flag is intended to be used for debugging.

  ```bash
  $ generate-schema --debugging_map < file.data.json > file.schema.json
  ```

  <a name="SanitizedNames"></a>


  BigQuery column names are [restricted to certain characters and
  length](https://cloud.google.com/bigquery/docs/schemas#column_names):
  * it must contain only letters (a-z, A-Z), numbers (0-9), or underscores
  * it must start with a letter or underscore
  * the maximum length is 128 characters
  * column names are case-insensitive

  For CSV files, the `bq load` command seems to automatically convert invalid
  column names into valid column names. This flag attempts to perform some of the
  same transformations, to avoid having to scan through the input data twice to
  generate the schema file. The transformations are:

  * any character outside of ASCII letters, numbers and underscore
    (`[a-zA-Z0-9_]`) are converted to an underscore. For example `go&2#there!` is
    converted to `go_2_there_`;
  * names longer than 128 characters are truncated to 128.

  My recollection is that the `bq load` command does *not* normalize the JSON key
  names. Instead it prints an error message. So the `--sanitize_names` flag is
  useful mostly for CSV files. For JSON files, you'll have to do a second pass
  through the data files to cleanup the column names anyway. See
  [Issue #14](https://github.com/bxparks/bigquery-schema-generator/issues/14) and
  [Issue #33](https://github.com/bxparks/bigquery-schema-generator/issues/33).

  <a name="IgnoreInvalidLines"></a>


  By default, if an error is encountered on a particular line, processing stops
  immediately with an exception. This flag causes invalid lines to be ignored and
  processing continues. A list of all errors and their line numbers will be
  printed on the STDERR after processing the entire file.

  This flag is currently most useful for JSON files, to ignore lines which do not
  parse correctly as a JSON object.

  This flag is probably not useful for CSV files. CSV files are processed by the
  `DictReader` class which performs its own line processing internally, including
  extracting the column names from the first line of the file. If the `DictReader`
  does throw an exception on a given line, we would not be able to catch it and
  continue processing. Fortunately, CSV files are fairly robust, and the schema
  deduction logic will handle any missing or extra columns gracefully.

  Fixes
  [Issue #49](https://github.com/bxparks/bigquery-schema-generator/issues/49).

  <a name="ExistingSchemaPath"></a>


  There are cases where we would like to start from an existing BigQuery table
  schema rather than starting from scratch with a new batch of data we would like
  to load. In this case we can specify the path to a local file on disk that is
  our existing bigquery table schema. This can be generated via the following `bq
  show --schema` command:
  ```bash
  bq show --schema <PROJECT_ID>:<DATASET_NAME>.<TABLE_NAME> > existing_table_schema.json
  ```

  We can then run generate-schema with the additional option
  ```bash
  --existing_schema_path existing_table_schema.json
  ```

  There is some subtle interaction between the `--existing_schema_path` and fields
  which are marked with a `mode` of `REQUIRED` in the existing schema. If the new
  data contains a `null` value (either in a CSV or JSON data file), it is not
  clear if the schema should be changed to `mode=NULLABLE` or whether the new data
  should be ignored and the schema should remain `mode=REQUIRED`. The choice is
  determined by overloading the `--infer_mode` flag:

  * If `--infer_mode` is given, the new schema will be allowed to revert back to
    `NULLABLE`.
  * If `--infer_mode` is not given, the offending new record will be ignored
    and the new schema will remain `REQUIRED`.

  See discussion in
  [PR #57](https://github.com/bxparks/bigquery-schema-generator/pull/57) for
  more details.

  <a name="PreserveInputSortOrder"></a>


  By default, the order of columns in the BQ schema file is sorted
  lexicographically, which matched the original behavior of `bq load
  --autodetect`. If the `--preserve_input_sort_order` flag is given, the columns
  in the resulting schema file is not sorted, but preserves the order of
  appearance in the input JSON data. For example, the following JSON data with
  the `--preserve_input_sort_order` flag will produce:

  ```bash
  $ generate-schema --preserve_input_sort_order
  { "s": "string", "i": 3, "x": 3.2, "b": true }
  ^D
  [
    {
      "mode": "NULLABLE",
      "name": "s",
      "type": "STRING"
    },
    {
      "mode": "NULLABLE",
      "name": "i",
      "type": "INTEGER"
    },
    {
      "mode": "NULLABLE",
      "name": "x",
      "type": "FLOAT"
    },
    {
      "mode": "NULLABLE",
      "name": "b",
      "type": "BOOLEAN"
    }
  ]
  ```

  It is possible that each JSON record line contains only a partial subset of the
  total possible columns in the data set. The order of the columns in the BQ
  schema will then be the order that each column was first *seen* by the
  script:

  ```bash
  $ generate-schema --preserve_input_sort_order
  { "s": "string", "i": 3 }
  { "x": 3.2, "s": "string", "i": 3 }
  { "b": true, "x": 3.2, "s": "string", "i": 3 }
  ^D
  [
    {
      "mode": "NULLABLE",
      "name": "s",
      "type": "STRING"
    },
    {
      "mode": "NULLABLE",
      "name": "i",
      "type": "INTEGER"
    },
    {
      "mode": "NULLABLE",
      "name": "x",
      "type": "FLOAT"
    },
    {
      "mode": "NULLABLE",
      "name": "b",
      "type": "BOOLEAN"
    }
  ]
  ```

  **Note**: In Python 3.6 (the earliest version of Python supported by this
  project), the order of keys in a `dict` was the insertion-order, but this
  ordering was an implementation detail, and not guaranteed. In Python 3.7, that
  ordering was made permanent. So the `--preserve_input_sort_order` flag
  **should** work in Python 3.6 but is not guaranteed.

  See discussion in
  [PR #75](https://github.com/bxparks/bigquery-schema-generator/pull/75) for
  more details.

  <a name="UsingAsLibrary"></a>


  The `SchemaGenerator` class can be used programmatically as a library from a
  larger Python application.

  <a name="SchemaGeneratorRun"></a>


  The `bigquery_schema_generator` module can be used as a library by an external
  Python client code by creating an instance of `SchemaGenerator` and calling the
  `run(input, output)` method:

  ```python
  from bigquery_schema_generator.generate_schema import SchemaGenerator

  generator = SchemaGenerator(
      input_format=input_format,
      infer_mode=infer_mode,
      keep_nulls=keep_nulls,
      quoted_values_are_strings=quoted_values_are_strings,
      debugging_interval=debugging_interval,
      debugging_map=debugging_map,
      sanitize_names=sanitize_names,
      ignore_invalid_lines=ignore_invalid_lines,
      preserve_input_sort_order=preserve_input_sort_order,
  )

  FILENAME = "..."

  with open(FILENAME) as input_file:
      generator.run(input_file=input_file, output_file=output_file)
  ```

  The `input_format` is one of `json`, `csv`, and `dict` as described in the
  [Input Format](#InputFormat) section above. The `input_file` must match the
  format given by this parameter.

  See [generatorrun.py](examples/generatorrun.py) for an example.

  <a name="SchemaGeneratorDeduceSchemaFromFile"></a>


  If you need to process the generated schema programmatically, use the
  `deduce_schema()` method and process the resulting `schema_map` and `error_log`
  data structures like this:

  ```python
  import json
  import logging
  import sys
  from bigquery_schema_generator.generate_schema import SchemaGenerator

  FILENAME = "jsonfile.json"

  generator = SchemaGenerator(
      input_format='json',
      quoted_values_are_strings=True,
  )

  with open(FILENAME) as file:
      schema_map, errors = generator.deduce_schema(file)

  schema_map, error_logs = generator.deduce_schema(input_data=input_data)

  for error in error_logs:
      logging.info("Problem on line %s: %s", error['line_number'], error['msg'])

  schema = generator.flatten_schema(schema_map)
  json.dump(schema, sys.stdout, indent=2)
  print()
  ```

  See [csvreader.py](examples/csvreader.py) and
  [jsoneader.py](examples/jsoneader.py) for 2 examples.

  The `deduce_schema()` also supports starting from an existing `schema_map`
  instead of starting from scratch. This is the internal version of the
  `--existing_schema_path` functionality.

  ```python
  schema_map1, error_logs = generator.deduce_schema(input_data=data1)
  schema_map2, error_logs = generator.deduce_schema(
      input_data=data1, schema_map=schema_map1
  )
  ```

  The `input_data` must match the `input_format` given in the constructor. The
  format is described in the [Input Format](#InputFormat) section above.

  <a name="SchemaGeneratorDeduceSchemaFromDict"></a>


  If the JSON data set has already been read into memory into a Python `dict`
  object, the `SchemaGenerator` can process that too like this:

  ```Python
  import json
  import logging
  import sys
  from bigquery_schema_generator.generate_schema import SchemaGenerator

  generator = SchemaGenerator(input_format='dict')
  input_data = [
      {
          's': 'string',
          'b': True,
      },
      {
          'd': '2021-08-18',
          'x': 3.1
      },
  ]
  schema_map, error_logs = generator.deduce_schema(input_data)
  schema = generator.flatten_schema(schema_map)
  json.dump(schema, sys.stdout, indent=2)
  print()
  ```

  See [dictreader.py](examples/dictreader.py) for an example.

  <a name="SchemaTypes"></a>


  <a name="SupportedTypes"></a>


  The `bq show --schema` command produces a JSON schema file that uses the
  older [Legacy SQL date types](https://cloud.google.com/bigquery/data-types).
  For compatibility, **generate-schema** script will also generate a schema file
  using the legacy data types.

  The supported types are:

  * `BOOLEAN`
  * `INTEGER`
  * `FLOAT`
  * `STRING`
  * `TIMESTAMP`
  * `DATE`
  * `TIME`
  * `RECORD`

  The `generate-schema` script supports both `NULLABLE` and `REPEATED` modes of
  all of the above types.

  The supported format of `TIMESTAMP` is as close as practical to the
  [bq load format](https://cloud.google.com/bigquery/docs/reference/standard-sql/data-types#timestamp-type):
  ```
  YYYY-[M]M-[D]D[( |T)[H]H:[M]M:[S]S[.DDDDDD]][time zone]
  ```
  which appears to be an extension of the
  [ISO 8601 format](https://en.wikipedia.org/wiki/ISO_8601).
  The difference from `bq load` is that the `[time zone]` component can be only
  * `Z`
  * `UTC` (same as `Z`)
  * `(+|-)H[H][:M[M]]`

  Note that BigQuery supports up to 6 decimal places after the integer 'second'
  component. `generate-schema` follows the same restriction for compatibility. If
  your input file contains more than 6 decimal places, you need to write a data
  cleansing filter to fix this.

  The suffix `UTC` is not standard ISO 8601 nor
  [documented by Google](https://cloud.google.com/bigquery/docs/reference/standard-sql/data-types#time-zones)
  but the `UTC` suffix is used by `bq extract` and the web interface. (See
  [Issue 19](https://github.com/bxparks/bigquery-schema-generator/issues/19).)

  Timezone names from the [tz database](http://www.iana.org/time-zones) (e.g.
  "America/Los_Angeles") are _not_ supported by `generate-schema`.

  The following types are _not_ supported at all:

  * `BYTES`
  * `DATETIME` (unable to distinguish from `TIMESTAMP`)

  <a name="TypeInference"></a>


  The `generate-schema` script attempts to emulate the various type conversion and
  compatibility rules implemented by **bq load**:

  * `INTEGER` can upgrade to `FLOAT`
      * if a field in an early record is an `INTEGER`, but a subsequent record
        shows this field to have a `FLOAT` value, the type of the field will be
        upgraded to a `FLOAT`
      * the reverse does not happen, once a field is a `FLOAT`, it will remain a
        `FLOAT`
  * conflicting `TIME`, `DATE`, `TIMESTAMP` types upgrades to `STRING`
      * if a field is determined to have one type of "time" in one record, then
        subsequently a different "time" type, then the field will be assigned a
        `STRING` type
  * `NULLABLE RECORD` can upgrade to a `REPEATED RECORD`
      * a field may be defined as `RECORD` (aka "Struct") type with `{ ... }`
      * if the field is subsequently read as an array with a `[{ ... }]`, the
        field is upgraded to a `REPEATED RECORD`
  * a primitive type (`FLOAT`, `INTEGER`, `STRING`) cannot upgrade to a `REPEATED`
    primitive type
      * there's no technical reason why this cannot be allowed, but **bq load**
        does not support it, so we follow its behavior
  * a `DATETIME` field is always inferred to be a `TIMESTAMP`
      * the format of these two fields is identical (in the absence of timezone)
      * we follow the same logic as **bq load** and always infer these as
        `TIMESTAMP`
  * `BOOLEAN`, `INTEGER`, and `FLOAT` can appear inside quoted strings
      * In other words, `"true"` (or `"True"` or `"false"`, etc) is considered a
        BOOLEAN type, `"1"` is considered an INTEGER type, and `"2.1"` is
        considered a FLOAT type. Luigi Mori (jtschichold@) added additional logic
        to replicate the type conversion logic used by `bq load` for these
        strings.
      * This type inference inside quoted strings can be disabled using the
        `--quoted_values_are_strings` flag
      * (See [Issue #22](https://github.com/bxparks/bigquery-schema-generator/issues/22) for more details.)
  * `INTEGER` values overflowing a 64-bit signed integer upgrade to `FLOAT`
      * integers greater than `2^63-1` (9223372036854775807)
      * integers less than `-2^63` (-9223372036854775808)
      * (See [Issue #18](https://github.com/bxparks/bigquery-schema-generator/issues/18) for more details)

  <a name="Examples"></a>


  Here is an example of a single JSON data record on the STDIN (the `^D` below
  means typing Control-D, which indicates "end of file" under Linux and MacOS):

  ```bash
  $ generate-schema
  { "s": "string", "b": true, "i": 1, "x": 3.1, "t": "2017-05-22T17:10:00-07:00" }
  ^D
  INFO:root:Processed 1 lines
  [
    {
      "mode": "NULLABLE",
      "name": "b",
      "type": "BOOLEAN"
    },
    {
      "mode": "NULLABLE",
      "name": "i",
      "type": "INTEGER"
    },
    {
      "mode": "NULLABLE",
      "name": "s",
      "type": "STRING"
    },
    {
      "mode": "NULLABLE",
      "name": "t",
      "type": "TIMESTAMP"
    },
    {
      "mode": "NULLABLE",
      "name": "x",
      "type": "FLOAT"
    }
  ]
  ```

  In most cases, the data file will be stored in a file:
  ```bash
  $ cat > file.data.json
  { "a": [1, 2] }
  { "i": 3 }
  ^D

  $ generate-schema < file.data.json > file.schema.json
  INFO:root:Processed 2 lines

  $ cat file.schema.json
  [
    {
      "mode": "REPEATED",
      "name": "a",
      "type": "INTEGER"
    },
    {
      "mode": "NULLABLE",
      "name": "i",
      "type": "INTEGER"
    }
  ]
  ```

  Here is the schema generated from a CSV input file. The first line is the header
  containing the names of the columns, and the schema lists the columns in the
  same order as the header:
  ```bash
  $ generate-schema --input_format csv
  e,b,c,d,a
  1,x,true,,2.0
  2,x,,,4
  3,,,,
  ^D
  INFO:root:Processed 3 lines
  [
    {
      "mode": "NULLABLE",
      "name": "e",
      "type": "INTEGER"
    },
    {
      "mode": "NULLABLE",
      "name": "b",
      "type": "STRING"
    },
    {
      "mode": "NULLABLE",
      "name": "c",
      "type": "BOOLEAN"
    },
    {
      "mode": "NULLABLE",
      "name": "d",
      "type": "STRING"
    },
    {
      "mode": "NULLABLE",
      "name": "a",
      "type": "FLOAT"
    }
  ]
  ```

  Here is an example of the schema generated with the `--infer_mode` flag:
  ```bash
  $ generate-schema --input_format csv --infer_mode
  name,surname,age
  John
  Michael,,
  Maria,Smith,30
  Joanna,Anders,21
  ^D
  INFO:root:Processed 4 lines
  [
    {
      "mode": "REQUIRED",
      "name": "name",
      "type": "STRING"
    },
    {
      "mode": "NULLABLE",
      "name": "surname",
      "type": "STRING"
    },
    {
      "mode": "NULLABLE",
      "name": "age",
      "type": "INTEGER"
    }
  ]
  ```

  <a name="Benchmarks"></a>


  I wrote the `bigquery_schema_generator/anonymize.py` script to create an
  anonymized data file `tests/testdata/anon1.data.json.gz`:
  ```bash
  $ ./bigquery_schema_generator/anonymize.py < original.data.json \
      > anon1.data.json
  $ gzip anon1.data.json
  ```
  This data file is 290MB (5.6MB compressed) with 103080 data records.

  Generating the schema using
  ```bash
  $ bigquery_schema_generator/generate_schema.py < anon1.data.json \
      > anon1.schema.json
  ```
  took 67s on a Dell Precision M4700 laptop with an Intel Core i7-3840QM CPU @
  2.80GHz, 32GB of RAM, Ubuntu Linux 18.04, Python 3.6.7.

  <a name="SystemRequirements"></a>


  This project was initially developed on Ubuntu 17.04 using Python 3.5.3, but it
  now requires Python 3.6 or higher, I think mostly due to the use of f-strings.

  I have tested it on:

  * Ubuntu 22.04, Python 3.10.6
  * Ubuntu 20.04, Python 3.8.5
  * Ubuntu 18.04, Python 3.7.7
  * Ubuntu 18.04, Python 3.6.7
  * Ubuntu 17.10, Python 3.6.3
  * MacOS 11.7.1 (Big Sur), Python 3.8.9
  * MacOS 10.14.2 (Mojave), Python 3.6.4
  * MacOS 10.13.2 (High Sierra), Python 3.6.4

  The GitHub Actions continuous integration pipeline validates on Python 3.6, 3.7
  and 3.8.

  The unit tests are invoked with `$ make tests` target, and depends only on the
  built-in Python `unittest` package.

  The coding style check is invoked using `$ make flake8` and depends on the
  `flake8` package. It can be installed using `$ pip3 install --user flake8`.

  <a name="License"></a>


  Apache License 2.0

  <a name="Feedback"></a>


  If you have any questions, comments, or feature requests for this library,
  please use the [GitHub
  Discussions](https://github.com/bxparks/bigquery-schema-generator/discussions)
  for this project. If you have bug reports, please file a ticket in [GitHub
  Issues](https://github.com/bxparks/bigquery-schema-generator/issues). Feature
  requests should go into Discussions first because they often have alternative
  solutions which are useful to remain visible, instead of disappearing from the
  default view of the Issue tracker after the ticket is closed.

  Please refrain from emailing me directly unless the content is sensitive. The
  problem with email is that I cannot reference the email conversation when other
  people ask similar questions later.

  <a name="Authors"></a>


  * Created by Brian T. Park (brian@xparks.net).
  * Type inference inside quoted strings by Luigi Mori (jtschichold@).
  * Flag to disable type inference inside quoted strings by Daniel Ecer
    (de-code@).
  * Support for CSV files and detection of `REQUIRED` fields by Sandor Korotkevics
    (korotkevics@).
  * Better support for using `bigquery_schema_generator` as a library from an
    external Python code by StefanoG_ITA (StefanoGITA@).
  * Sanitizing of column names to valid BigQuery characters and length by Jon
    Warghed (jonwarghed@).
  * Bug fix in `--sanitize_names` by Riccardo M. Cefala (riccardomc@).
  * Print full path of nested JSON elements in error messages, by Austin Brogle
    (abroglesc@).
  * Allow an existing schema file to be specified using `--existing_schema_path`,
    by Austin Brogle (abroglesc@) and Bozo Dragojevic (bozzzzo@).
  * Allow `SchemaGenerator.deduce_schema()` to accept a list of native Python
    `dict` objects, by Zigfrid Zvezdin (ZiggerZZ@).
  * Make the column order in the BQ schema file match the order of appearance in
    the JSON data file using the `--preserve_input_sort_order` flag. By Kevin
    Deggelman (kdeggelman@).


pkgId: 6f84de6affc52622ceb642abb0ffbba071b6a3dbd145f32a9419405597778d42
name: python-bindep
arch: src
version: 2.11.0
epoch: 0
release: 1
summary: Binary dependency utility
url: https://docs.opendev.org/opendev/bindep
rpm_license: Apache License, Version 2.0
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-446099cf-0810-4b06-8266-93e0090645bf
location_href: 00012442-python-bindep/python-bindep-2.11.0-1.src.rpm
checksum_type: sha256
description:
  Bindep is a tool for checking the presence of binary packages needed to
  use an application / library. It started life as a way to make it easier to set
  up a development environment for OpenStack projects. While OpenStack depends
  heavily on `pip` for installation of Python dependencies, some dependencies are
  not Python based, and particularly for testing, some dependencies have to be
  installed before `pip` can be used - such as `virtualenv` and `pip` itself.


pkgId: cd19a002f10c5099d948f147f4ce6fffb5dc16e9ff2543c403a47d584875f0c1
name: python-biplist
arch: src
version: 1.0.3
epoch: 0
release: 1
summary: biplist is a library for reading/writing binary plists.
url: https://bitbucket.org/wooster/biplist
rpm_license: BSD
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-7a171c33-fd95-436b-8fbf-3debc1343404
location_href: 00010694-python-biplist/python-biplist-1.0.3-1.src.rpm
checksum_type: sha256
description:
  `biplist` is a binary plist parser/generator for Python.

  Binary Property List (plist) files provide a faster and smaller serialization
  format for property lists on OS X. This is a library for generating binary
  plists which can be read by OS X, iOS, or other clients.

  This module requires Python 2.6 or higher or Python 3.4 or higher.


pkgId: fcaf8569ace3b883a4aaa3946e20be94fae4e3a88e6a5a7adb16e81d26f86b2b
name: python-biscuits
arch: src
version: 0.3.0
epoch: 0
release: 1
summary: Fast and tasty cookies handling.
url: https://github.com/pyrates/biscuits
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-0abb0c7c-6d8f-41a0-80c0-277d9b67ad8c
location_href: 00003113-python-biscuits/python-biscuits-0.3.0-1.src.rpm
checksum_type: sha256
description:
  Low level API for handling cookies server side.




      pip install biscuits




      
      from biscuits import parse
      parse('some=value; and=more')
      > {'some': 'value', 'and': 'more'}

      
      from biscuits import Cookie
      cookie = Cookie(name='foo', value='bar', domain='www.example.org')
      str(cookie)
      > "foo=bar; Domain=www.example.org; Path=/"




      pip install cython
      make compile
      python setup.py develop



      make test



  ![benchmark](benchmark.png)

  See [Benchmark](https://github.com/pyrates/biscuits/wiki/Benchmark) for more
  details.






  - unescape antislash when parsing to be consistent with quoting (cf #3)
  - unescape octal ascii when parsing to be consistent with quoting (cf #4)



  - add support for the SameSite attribute (cf #8)


pkgId: 0cad2bbbcc8543e30c602404e7894dc6dc39eddeb093a8391201e9870a957590
name: python-bitarray
arch: src
version: 2.7.3
epoch: 0
release: 1
summary: efficient arrays of booleans -- C extension
url: https://github.com/ilanschnell/bitarray
rpm_license: PSF
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-4a6292a5-2209-41f2-a80d-dcc1f0ac699f
location_href: 00003114-python-bitarray/python-bitarray-2.7.3-1.src.rpm
checksum_type: sha256
description:
  This library provides an object type which efficiently represents an array
  of booleans.  Bitarrays are sequence types and behave very much like usual
  lists.  Eight bits are represented by one byte in a contiguous block of
  memory.  The user can select between two representations: little-endian
  and big-endian.  All functionality is implemented in C.
  Methods for accessing the machine representation are provided, including the
  ability to import and export buffers.  This allows creating bitarrays that
  are mapped to other objects, including memory-mapped files.


pkgId: 7002e705309fe21f355addb397743eb9dfc22ed03c5195cef4ec8b08e9e2e613
name: python-bitarray-debuginfo
arch: x86_64
version: 2.7.3
epoch: 0
release: 1
summary: Debug information for package python-bitarray
url: https://github.com/ilanschnell/bitarray
rpm_license: PSF
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Development/Debug
rpm_buildhost: resalloc-4a6292a5-2209-41f2-a80d-dcc1f0ac699f
rpm_sourcerpm: python-bitarray-2.7.3-1.src.rpm
location_href: 00003114-python-bitarray/python-bitarray-debuginfo-2.7.3-1.x86_64.rpm
checksum_type: sha256
description:
  This package provides debug information for package python-bitarray.
  Debug information is useful when developing applications that use this
  package or when debugging this package.


pkgId: c15314a0fd0595dff7c9c089b9dd7662b7eb7f5512f91a4519731f1c1d6a56da
name: python-bitarray-debugsource
arch: x86_64
version: 2.7.3
epoch: 0
release: 1
summary: Debug sources for package python-bitarray
url: https://github.com/ilanschnell/bitarray
rpm_license: PSF
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Development/Debug
rpm_buildhost: resalloc-4a6292a5-2209-41f2-a80d-dcc1f0ac699f
rpm_sourcerpm: python-bitarray-2.7.3-1.src.rpm
location_href: 00003114-python-bitarray/python-bitarray-debugsource-2.7.3-1.x86_64.rpm
checksum_type: sha256
description:
  This package provides debug sources for package python-bitarray.
  Debug sources are useful when developing applications that use this
  package or when debugging this package.


pkgId: 248d3920cc2f497969365b23011cc673db99e687c25b1fc777de09a516f823f5
name: python-bitcoinlib
arch: src
version: 0.6.7
epoch: 0
release: 1
summary: Bitcoin and Other cryptocurrency Library
url: http://github.com/1200wd/bitcoinlib
rpm_license: GNU3
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-408c4346-205d-402a-897b-5ddf3a6c46ce
location_href: 00003115-python-bitcoinlib/python-bitcoinlib-0.6.7-1.src.rpm
checksum_type: sha256
description:
  Bitcoin, Litecoin and Dash Crypto Currency Library for Python.
  Includes a fully functional wallet with multi-signature, multi-currency and multiple accounts.
  You this library at a high level and create and manage wallets for the command line or at a low level
  and create your own custom made transactions, keys or wallets.
  The BitcoinLib connects to various service providers automatically to update wallets, transactions and
  blockchain information. It does currently not parse the blockchain itself.


pkgId: 16f8450831ad218222fcfa8cc6303c1a67dd5119480dd5a0bac00fcd23761ef2
name: python-bitmath
arch: src
version: 1.3.3.1
epoch: 0
release: 1
url: https://github.com/tbielawa/bitmath
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-0d3bd87a-a4f7-4c16-ab8b-7aa4082fb57e
location_href: 00003116-python-bitmath/python-bitmath-1.3.3.1-1.src.rpm
checksum_type: sha256
summary:
  Pythonic module for representing and manipulating file sizes with different prefix notations (file size unit conversion)

description:
  `bitmath <http://bitmath.readthedocs.org/en/latest/>`_ simplifies many
  facets of interacting with file sizes in various units. Originally
  focusing on file size unit conversion, functionality now includes:
  * Converting between **SI** and **NIST** prefix units (``kB`` to ``GiB``)
  * Converting between units of the same type (SI to SI, or NIST to NIST)
  * Automatic human-readable prefix selection (like in `hurry.filesize <https://pypi.python.org/pypi/hurry.filesize>`_)
  * Basic arithmetic operations (subtracting 42KiB from 50GiB)
  * Rich comparison operations (``1024 Bytes == 1KiB``)
  * bitwise operations (``<<``, ``>>``, ``&``, ``|``, ``^``)
  * Reading a device's storage capacity (Linux/OS X support only)
  * `argparse <https://docs.python.org/2/library/argparse.html>`_
    integration as a custom type
  * `progressbar <https://code.google.com/p/python-progressbar/>`_
    integration as a better file transfer speed widget
  * String parsing
  * Sorting
  In addition to the conversion and math operations, `bitmath` provides
  human readable representations of values which are suitable for use in
  interactive shells as well as larger scripts and applications. The
  format produced for these representations is customizable via the
  functionality included in stdlibs `string.format
  <https://docs.python.org/2/library/string.html>`_.
  In discussion we will refer to the NIST units primarily. I.e., instead
  of "megabyte" we will refer to "mebibyte". The former is ``10^3 =
  1,000,000`` bytes, whereas the second is ``2^20 = 1,048,576``
  bytes. When you see file sizes or transfer rates in your web browser,
  most of the time what you're really seeing are the base-2 sizes/rates.
  **Don't Forget!** The source for bitmath `is available on GitHub
  <https://github.com/tbielawa/bitmath>`_.
  And did we mention there's almost 200 unittests? `Check them out for
  yourself <https://github.com/tbielawa/bitmath/tree/master/tests>`_.


pkgId: e45a49a75dfdbc2d5accccb19a19b4f6f31f6fdd73800837ea9d35c3781368f1
name: python-bitstring
arch: src
version: 4.0.1
epoch: 0
release: 1
summary: Simple construction, analysis and modification of binary data.
url: https://pypi.org/project/bitstring/
rpm_license: MIT License
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-a816f51a-7d21-4f5f-a808-8d490a63097f
location_href: 00003117-python-bitstring/python-bitstring-4.0.1-1.src.rpm
checksum_type: sha256
description:
  * New Python 3.7 minimum requirement. The code has been updated with type hints and legacy code removed.
  * Shorter and more versative properties are available.
        >>> a = BitArray('u8=20')
        >>> a += '0b0011, f16=5.52'
        >>> a[12:].f16
        5.51953125
  * A useful new pretty printing method. Gives a formatted view of a singe or two interpretations of the
    binary data.
        >>> a = Bits(bytes=b'hello world!!')
        >>> a.pp('bin, hex', width=40)
          0: 01101000 01100101   68 65
         16: 01101100 01101100   6c 6c
         32: 01101111 00100000   6f 20
         48: 01110111 01101111   77 6f
         64: 01110010 01101100   72 6c
         80: 01100100 00100001   64 21
         96: 00100001            21
  * LSB0 option (beta). This indexes the bits with the least significant bit being bit zero. This is the
    opposite way to the standard Python containers but is usual in some relevant fields.
        >>> bitstring.lsb0 = True
        >>> s = BitArray('0b00000')
        >>> s[0] = 1
        >>> s.bin
        '00001'
    This feature is still considered a beta as there may be issues with edge cases, especially around the
    interaction with the 'stream' features of the `BitStream` and `ConstBitStream` classes. For most usage
    cases it should be solid though, so please report any bugs in the issue tracker.
  * Command line usage. Useful for quick interpretations of binary data.
          $ python -m bitstring int:16=-400
          0xfe70
  * Support for 16 bit floating point types (both IEEE and bfloat).


pkgId: 10f442d55f23d9d812c66a6f12d1525e541cdf911046d08b358401c4ba85b6de
name: python-bitstruct
arch: src
version: 8.17.0
epoch: 0
release: 1
url: https://github.com/eerimoq/bitstruct
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-9a9bd016-d16a-4898-b2b4-dc90208f2986
location_href: 00003118-python-bitstruct/python-bitstruct-8.17.0-1.src.rpm
checksum_type: sha256
summary:
  This module performs conversions between Python values and C bit field structs represented as Python byte strings.

description:
  This module is intended to have a similar interface as the python
  struct module, but working on bits instead of primitive data types
  (char, int, ...).
  Project homepage: https://github.com/eerimoq/bitstruct
  Documentation: https://bitstruct.readthedocs.io


pkgId: c76c1564124886c2cb0740013d0f540bd196eaca83e9c25f031ec556a7f7f2ea
name: python-blackduck
arch: src
version: 1.1.0
epoch: 0
release: 1
summary: Package for using the Synopsys Black Duck Hub REST API.
url: https://github.com/blackducksoftware/hub-rest-api-python
rpm_license: Apache
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-97d2e60c-04fc-498b-9549-de9a4f1a1947
location_href: 00010207-python-blackduck/python-blackduck-1.1.0-1.src.rpm
checksum_type: sha256
description:
  The hub-rest-api-python provides Python bindings for Hub REST API.



  In v2022.2 of Black Duck the REST API introduced a max page size to protect system resource usage. See the Black Duck [release notes on Synopsys Community](https://community.synopsys.com/s/article/Black-Duck-Release-Notes) for the details of which API endpoints are affected. Users of the the python bindings here should leverage the Client interface which provides automatic paging support to make best use of these endpoints.

  **The old HubInstance interface and many of the examples using it do not perform paging and will break as a result of the changes in v2022.2**.

  Any issues related to the HubInstance Interface will be closed as *Won't Fix*

  Any PRs with new or modified example scripts/utilities **must** use the client interface.



  Introducing the new Client class.

  In order to provide a more robust long-term connection, faster performance, and an overall better experience a new
  Client class has been designed.

  It is backed by a [Requests session](https://docs.python-requests.org/en/master/user/advanced/#session-objects) object. The user specifies a base URL, timeout, retries, proxies, and TLS verification upon initialization and these attributes are persisted across all requests.

  At the REST API level, the Client class provides a consistent way to discover and traverse public resources, uses a
  [generator](https://wiki.python.org/moin/Generators) to fetch all items using pagination, and automatically renews the bearer token.

  See [Client versus HubInstance Comparison](https://github.com/blackducksoftware/hub-rest-api-python/wiki/Client-versus-HubInstance-Comparison) and also read the [Client User Guide](https://github.com/blackducksoftware/hub-rest-api-python/wiki/Client-User-Guide) on the [Hub REST API Python Wiki](https://github.com/blackducksoftware/hub-rest-api-python/wiki).


  The old HubInstance (in HubRestApi.py) keeps its existing functionality for backwards compatibility and therefore does **not** currently leverage any of the new features in the Client class.

  We believe that the new features are compelling enough to strongly encourage users to consider moving from HubInstance to Client.
  See [Client versus HubInstance Comparison](https://github.com/blackducksoftware/hub-rest-api-python/wiki/Client-versus-HubInstance-Comparison).


  Please give it a try and let us know what you think!



  ```
  pip3 install blackduck
  ```

  ```python
  from blackduck import Client
  import logging
  import os

  logging.basicConfig(
      level=logging.INFO,
      format="[s] {s:d} s - s"
  )

  bd = Client(
      token=os.environ.get('blackduck_token'),
      base_url="https://your.blackduck.url",
      
  )

  for project in bd.get_resource(name='projects'):
      print(project.get('name'))
  ```



  Example code showing how to work with the new Client can be found in the *examples/client* folder.

  **Examples which use the old HubInstance interface -which is not maintained- are not guaranteed to work. Use at your own risk.**



  Including a version history on a go-forward basis.



  Retries will be attempted for all HTTP verbs, not just GET.



  Using [pytest](https://pytest.readthedocs.io/en/latest/contents.html)

  ```bash
  git clone https://github.com/blackducksoftware/hub-rest-api-python.git
  cd hub-rest-api-python



  pip3 install -r requirements.txt
  pip3 install .
  cd test
  pytest
  ```



  Do this when testing a new version.

  ```
  git clone https://github.com/blackducksoftware/hub-rest-api-python.git
  cd hub-rest-api-python
  pip3 install -r requirements.txt
  pip3 install .
  ```

  To uninstall:

  ```
  pip3 uninstall blackduck
  ```


  This package is available on PyPi:

  `pip3 install blackduck`


  Documentation for hub-rest-api-python can be found on the base project:
  [Hub REST API Python Wiki](https://github.com/blackducksoftware/hub-rest-api-python/wiki)


pkgId: b3a1050101ee14c183f524c692f1446a74be5d2f38b23108b5865391654889f3
name: python-blindspin
arch: src
version: 2.0.1
epoch: 0
release: 1
summary: Braille Spinner for Click
url: https://github.com/kennethreitz/blindspin
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-ea6e11db-472a-4f4e-ad42-1122127b7b0c
location_href: 00003123-python-blindspin/python-blindspin-2.0.1-1.src.rpm
checksum_type: sha256
description:
  Sometimes you would just like to show the user some progress,
  but a progress bar is not suitable because you don’t know how much longer it would take.
  In these cases you might want to display a simple spinner using the `spinner()` function.
  Example usage::
      with blindspin.spinner():
          do_something()
          do_something_else()
  It looks like this:
  Spinner class based on on a [gist by @cevaris](https://gist.github.com/cevaris/79700649f0543584009e).


pkgId: 2a698d091f98a040c68c9dcf0e96baf48651f067bb34bec518d4c122acab0f42
name: python-blockdiag
arch: src
version: 3.0.0
epoch: 0
release: 1
summary: blockdiag generates block-diagram image from text
url: http://blockdiag.com/
rpm_license: Apache License 2.0
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-7de6d004-3fa2-4af6-85e6-f272d1a7a98e
location_href: 00003124-python-blockdiag/python-blockdiag-3.0.0-1.src.rpm
checksum_type: sha256
description:
  * Generate block-diagram from dot like text (basic feature).
  * Multilingualization for node-label (utf-8 only).
  You can get some examples and generated images on
  `blockdiag.com <http://blockdiag.com/en/blockdiag/examples.html>`_ .


pkgId: 751be6227307d5a0a3129a5557b4b91760837c3bb75e112ecfac64c073c03870
name: python-bloom
arch: src
version: 0.11.2
epoch: 0
release: 1
summary: Bloom is a release automation tool.
url: http://www.ros.org/wiki/bloom
rpm_license: BSD
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-4c9156d3-9e59-4158-99d1-8d3012a1cead
location_href: 00003125-python-bloom/python-bloom-0.11.2-1.src.rpm
checksum_type: sha256
description:
  Bloom provides tools for releasing software on top of a git repository and leverages tools and patterns from git-buildpackage. Additionally, bloom leverages meta and build information from catkin (https://github.com/ros/catkin) to automate release branching and the generation of platform specific source packages, like debian's src-debs.


pkgId: b2c73e2b7c00bdfe9ff382833e91f6479736ae68115970cfa31f5e9190acbf4e
name: python-blowfish
arch: src
version: 0.6.1
epoch: 0
release: 1
summary: Fast, efficient Blowfish cipher implementation in pure Python (3.4+).
url: https://github.com/jashandeep-sohi/python-blowfish
rpm_license: GPLv3
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-90f65eac-de07-427d-b050-4f3986257053
location_href: 00003127-python-blowfish/python-blowfish-0.6.1-1.src.rpm
checksum_type: sha256
description:
  This module implements the Blowfish cipher using only Python (3.4+).
  Blowfish is a block cipher that can be used for symmetric-key encryption. It
  has a 8-byte block size and supports a variable-length key, from 4 to 56 bytes.
  It's fast, free and has been analyzed considerably. It was designed by Bruce
  Schneier and more details about it can be found at
  <https://www.schneier.com/blowfish.html>.


pkgId: 496952a0d3bf5d2788024ff4d72ae25edb0dc4a49e06614b70378edc5edc171c
name: python-bna
arch: src
version: 5.1.0
epoch: 0
release: 1
summary: Blizzard Authenticator and OTP library in Python
url: https://github.com/jleclanche/python-bna
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-417d5138-5db9-4d50-9b11-cda3e02f7299
location_href: 00003132-python-bna/python-bna-5.1.0-1.src.rpm
checksum_type: sha256
description:
  - Python 3.6+




  bna is a command line interface to the python-bna library. It can store
  and manage multiple authenticators, as well as create new ones.


  Remember: Using an authenticator on the same device as the one you log in with
  is less secure than keeping the devices separate. Use this at your own risk.

  Configuration is stored in `~/.config/bna/bna.conf`. You can pass a
  different config path with `bna --config=~/.bna.conf` for example.




      $ bna new

  If you do not already have an authenticator, it will be set as default.
  You can pass `--set-default` otherwise.




      $ bna
      01234567
      $ bna EU-1234-1234-1234
      76543210




      $ bna show-restore-code
      Z45Q9CVXRR
      $ bna restore EU-1234-1234-1234 ABCDE98765
      Restored EU-1234-1234-1234




  To display the OTPAuth URL (used for setup QR Codes):

      $ bna show-url
      otpauth://totp/Blizzard:EU123412341234:?secret=ASFAS75ASDF75889G9AD7S69AS7697AS&issuer=Blizzard&digits=8

  Now paste this to your OTP app, or convert to QRCode and scan, or
  manually enter the secret.

  This is compatible with standard TOTP clients and password managers such as:
  - [andOTP](https://play.google.com/store/apps/details?id=org.shadowice.flocke.andotp) (Android),
  - [KeepassXC](https://keepassxc.org/) (Cross-platform)
  - [1Password](https://1password.com/) (Cross-platform)




  To encode to a QRCode on your local system install \'qrencode\'

  For a PNG file saved to disk :

      $ bna show-url | qrencode -o ~/BNA-qrcode.png
      
      $ rm ~/BNA-qrcode.png

  Or to attempt ot display QRCode in terminal as text output :

      $ bna --otpauth-url | qrencode -t ANSI






  ```py
  import bna
  try:
      
      
      serial, secret = bna.request_new_serial("US")
  except bna.HTTPError as e:
      print("Could not connect:", e)
  ```



  ```py
      
      from pyotp import TOTP
      totp = TOTP(secret, digits=8)
      print(totp.now())
  ```


pkgId: 52469b68e8c76eac2a63e1b58d75ae9b0bd9141b3c31e808d0442918f79ba9f5
name: python-boa-str
arch: src
version: 1.1.0
epoch: 0
release: 1
summary: Convert strings to snakecase
url: https://github.com/astronomerio/boa
rpm_license: MIT License
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-6e9ebd65-1a24-4b6e-91e6-abea3da917a7
location_href: 00011847-python-boa-str/python-boa-str-1.1.0-1.src.rpm
checksum_type: sha256
description:
  Boa is a Python package for normalizing and converting strings to snakecase.
  For example, it translates the user-defined event ``'User Buys Item'`` to ``'user_buys_item'`` which can then be used in a file path in S3, or as the name of a schema or table in Redshift.
  It also handles the more complex cases such as stripping punctuation and converting words from camelCase or PascalCase to snake_case (see examples below).


pkgId: 74ebd1945241cad87b56af58952462e02aa1e8c2ae29e69792188d956bedf2dd
name: python-bokeh
arch: src
version: 3.0.3
epoch: 0
release: 1
summary: Interactive plots and applications in the browser from Python
url: https://pypi.org/project/bokeh/
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-2a1ca55f-4e15-48a4-9c38-6ef3f6a5b4c9
location_href: 00003136-python-bokeh/python-bokeh-3.0.3-1.src.rpm
checksum_type: sha256
description:
  [Bokeh](https://bokeh.org) is an interactive visualization library for modern web browsers. It provides elegant, concise construction of versatile graphics and affords high-performance interactivity across large or streaming datasets. Bokeh can help anyone who wants to create interactive plots, dashboards, and data applications quickly and easily.
  <table>
  <tr>
    <td>Package</td>
    <td>
      <img src="https://img.shields.io/pypi/v/bokeh?label=Version&color=ECD078&style=for-the-badge"
           alt="Latest package version" />
    </td>
    <td>
      <a href="https://docs.bokeh.org/en/latest/docs/first_steps/installation.html">
      <img src="https://img.shields.io/pypi/pyversions/bokeh?color=ECD078&style=for-the-badge"
           alt="Supported Python versions" />
      </a>
    </td>
    <td>
      <a href="https://github.com/bokeh/bokeh/blob/main/LICENSE.txt">
      <img src="https://img.shields.io/github/license/bokeh/bokeh.svg?color=ECD078&style=for-the-badge"
           alt="Bokeh license (BSD 3-clause)" />
      </a>
    </td>
  </tr>
  <tr>
    <td>Project</td>
    <td>
      <img src="https://img.shields.io/github/contributors-anon/bokeh/bokeh?color=ECD078&style=for-the-badge"
           alt="Github contributors" />
    </td>
    <td>
      <a href="https://numfocus.org">
      <img src="https://img.shields.io/badge/sponsor-numfocus-ECD078?style=for-the-badge"
           alt="Link to NumFOCUS" />
      </a>
    </td>
    <td>
      <a href="https://docs.bokeh.org/en/latest/">
      <img src="https://img.shields.io/badge/documentation-latest-ECD078?style=for-the-badge"
           alt="Link to documentation" />
      </a>
    </td>
  </tr>
  <tr>
    <td>Downloads</td>
    <td>
      <a href="https://docs.bokeh.org/en/latest/docs/first_steps/installation.html">
      <img src="https://img.shields.io/pypi/dm/bokeh?color=D98B43&label=pypi&logo=python&logoColor=yellow&style=for-the-badge"
           alt="PyPI downloads per month" />
      </a>
    </td>
    <td>
      <a href="https://docs.bokeh.org/en/latest/docs/first_steps/installation.html">
      <img src="https://raw.githubusercontent.com/bokeh/badges/main/cache/bokeh-conda-monthly.svg"
           alt="Conda downloads per month" />
      </a>
    </td>
  </tr>
  <tr>
    <td>Build</td>
    <td>
      <a href="https://github.com/bokeh/bokeh/actions">
      <img src="https://img.shields.io/github/workflow/status/bokeh/bokeh/Bokeh-CI/branch-3.0?label=Bokeh-CI&logo=github&style=for-the-badge"
           alt="Current Bokeh-CI github actions build status" />
      </a>
    </td>
    <td>
      <a href="https://github.com/bokeh/bokeh/actions">
      <img src="https://img.shields.io/github/workflow/status/bokeh/bokeh/BokehJS-CI/branch-3.0?label=BokehJS-CI&logo=github&style=for-the-badge"
           alt="Current BokehJS-CI github actions build status" />
      </a>
    </td>
    <td>
      <a href="https://codecov.io/gh/bokeh/bokeh" >
      <img src="https://img.shields.io/codecov/c/github/bokeh/bokeh?logo=codecov&style=for-the-badge&token=bhEzGkDUaw"
           alt="Codecov coverage percentage" />
      </a>
    </td>
  </tr>
  <tr>
    <td>Community</td>
    <td>
      <a href="https://discourse.bokeh.org">
      <img src="https://img.shields.io/discourse/https/discourse.bokeh.org/posts.svg?color=blue&logo=discourse&style=for-the-badge"
           alt="Community support on discourse.bokeh.org" />
      </a>
    </td>
    <td>
      <a href="https://stackoverflow.com/questions/tagged/bokeh">
      <img src="https://raw.githubusercontent.com/bokeh/badges/main/cache/bokeh-stackoverflow-total.svg"
           alt="Bokeh-tagged questions on Stack Overflow" />
       </a>
    </td>
    <td>
      <a href="https://twitter.com/bokeh">
      <img src="https://img.shields.io/twitter/follow/bokeh?color=blue&logo=twitter&style=for-the-badge"
           alt="Follow Bokeh on Twitter" />
      </a>
    </td>
  </tr>
  </table>
  *Consider [making a donation](https://opencollective.com/bokeh) if you enjoy using Bokeh and want to support its development.*
  ![4x9 image grid of Bokeh plots](https://user-images.githubusercontent.com/1078448/190840954-dc243c99-9295-44de-88e9-fafd0f4f7f8a.jpg)

  To install Bokeh and its required dependencies using `pip`, enter the following command at a Bash or Windows command prompt:
  ```
  pip install bokeh
  ```
  To install `conda`, enter the following command at a Bash or Windows command prompt:
  ```
  conda install bokeh
  ```
  Refer to the [installation documentation](https://docs.bokeh.org/en/latest/docs/first_steps/installation.html) for more details.

  Once Bokeh is installed, check out the [first steps guides](https://docs.bokeh.org/en/latest/docs/first_steps.html#first-steps-guides).
  Visit the [full documentation site](https://docs.bokeh.org) to view the [User's Guide](https://docs.bokeh.org/en/latest/docs/user_guide.html) or [launch the Bokeh tutorial](https://mybinder.org/v2/gh/bokeh/bokeh-notebooks/HEAD?labpath=index.ipynb) to learn about Bokeh in live Jupyter Notebooks.
  Community support is available on the [Project Discourse](https://discourse.bokeh.org).
  If you would like to contribute to Bokeh, please review the [Contributor Guide](https://docs.bokeh.org/en/latest/docs/dev_guide.html) and [request an invitation to the Bokeh Dev Slack workspace](https://slack-invite.bokeh.org/).
  *Note: Everyone who engages in the Bokeh project's discussion forums, codebases, and issue trackers is expected to follow the [Code of Conduct](https://github.com/bokeh/bokeh/blob/branch-3.0/docs/CODE_OF_CONDUCT.md).*

  Follow us on Twitter [@bokeh](https://twitter.com/bokeh)


  The Bokeh project is grateful for [individual contributions](https://opencollective.com/bokeh), as well as for monetary support from the organizations and companies listed below:
  <table align="center">
  <tr>
    <td>
      <a href="https://www.numfocus.org/">
      <img src="https://static.bokeh.org/sponsor/numfocus.svg"
           alt="NumFocus Logo" width="200"/>
      </a>
    </td>
    <td>
      <a href="https://chanzuckerberg.com/">
      <img src="https://static.bokeh.org/sponsor/czi.svg"
           alt="CZI Logo" width="200"/>
      </a>
    </td>
    <td colspan="2">
      <a href="https://www.blackstone.com/the-firm/">
      <img src="https://static.bokeh.org/sponsor/blackstone.png"
           alt="Blackstone Logo" width="400"/>
      </a>
    </td>
   </tr>
   <tr>
    <td>
      <a href="https://tidelift.com/">
      <img src="https://static.bokeh.org/sponsor/tidelift.svg"
           alt="TideLift Logo" width="200"/>
      </a>
    </td>
    <td>
      <a href="https://www.anaconda.com/">
      <img src="https://static.bokeh.org/sponsor/anaconda.png"
           alt="Anaconda Logo" width="200"/>
      </a>
    </td>
    <td>
      <a href="https://www.nvidia.com">
      <img src="https://static.bokeh.org/sponsor/nvidia.png"
           alt="NVidia Logo" width="200"/>
      </a>
    </td>
    <td>
      <a href="https://developer.nvidia.com/rapids">
      <img src="https://static.bokeh.org/sponsor/rapids.png"
           alt="Rapids Logo" width="200"/>
      </a>
    </td>
  </tr>
  </table>
  If your company uses Bokeh and is able to sponsor the project, please contact <a href="info@bokeh.org">info@bokeh.org</a>
  *Bokeh is a Sponsored Project of NumFOCUS, a 501(c)(3) nonprofit charity in the United States. NumFOCUS provides Bokeh with fiscal, legal, and administrative support to help ensure the health and sustainability of the project. Visit [numfocus.org](https://numfocus.org) for more information.*
  *Donations to Bokeh are managed by NumFOCUS. For donors in the United States, your gift is tax-deductible to the extent provided by law. As with any donation, you should consult with your tax adviser about your particular tax situation.*

  Non-monetary support can help with development, collaboration, infrastructure, security, and vulnerability management. The Bokeh project is grateful to the following companies for their donation of services:
  * [Amazon Web Services](https://aws.amazon.com/)
  * [GitGuardian](https://gitguardian.com/)
  * [GitHub](https://github.com/)
  * [makepath](https://makepath.com/)
  * [Pentest Tools](https://pentest-tools.com)
  * [Pingdom](https://www.pingdom.com/website-monitoring)
  * [Slack](https://slack.com)
  * [QuestionScout](https://www.questionscout.com/)
  * [1Password](https://1password.com/)

rpm_license:
  Copyright (c) 2012 - 2022, Anaconda, Inc., and Bokeh Contributors All rights reserved.  Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:  Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.  Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.  Neither the name of Anaconda nor the names of any contributors may be used to endorse or promote products derived from this software without specific prior written permission.  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.


pkgId: 46d767df19b87e0c85b9ed7d108f65478b5aec383f6b969344076b5c7457b962
name: python-boltons
arch: src
version: 23.0.0
epoch: 0
release: 1
summary: When they're not builtins, they're boltons.
url: https://github.com/mahmoud/boltons
rpm_license: BSD
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-c86603af-7dad-4663-b31a-11d811850508
location_href: 00009564-python-boltons/python-boltons-23.0.0-1.src.rpm
checksum_type: sha256
description:
  Functionality that should be in the standard library. Like
  builtins, but Boltons.

  Otherwise known as, "everyone's util.py," but cleaned up and
  tested.

  Contains over 250 BSD-licensed utility types and functions that can be
  used as a package or independently. `Extensively documented on Read
  the Docs <http://boltons.readthedocs.org>`_.


pkgId: c0111023792e7dda04ff8e4b032228e14a710f8b14e84bf86a0ce66a2c93534f
name: python-boolean.py
arch: src
version: 4.0
epoch: 0
release: 1
summary: Define boolean algebras, create and parse boolean expressions and create custom boolean DSL.
url: https://github.com/bastikr/boolean.py
rpm_license: BSD-2-Clause
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-1dbd4a9b-a93c-49ed-99f2-fb370f2ba58a
location_href: 00011548-python-boolean-py/python-boolean.py-4.0-1.src.rpm
checksum_type: sha256
description:
  This library helps you deal with boolean expressions and algebra with variables
  and the boolean functions AND, OR, NOT.

  You can parse expressions from strings and simplify and compare expressions.
  You can also easily create your custom algreba and mini DSL and create custom
  tokenizers to handle custom expressions.

  For extensive documentation look either into the docs directory or view it online, at
  https://booleanpy.readthedocs.org/en/latest/

  https://github.com/bastikr/boolean.py

  Copyright (c) 2009-2020 Sebastian Kraemer, basti.kr@gmail.com and others
  SPDX-License-Identifier: BSD-2-Clause


pkgId: 40851b229f1f8ff46f1e2e313257f8814d977d6ba662ca3a350b7dbb0034dbf5
name: python-booleanOperations
arch: src
version: 0.9.0
epoch: 0
release: 1
summary: Boolean operations on paths.
url: https://github.com/typemytype/booleanOperations
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-d1d5cc0a-ba67-4c78-abbb-3a862b0c6a99
location_href: 00003138-python-booleanoperations/python-booleanOperations-0.9.0-1.src.rpm
checksum_type: sha256
description:
  Boolean operations on paths which uses a super fast `polygon clipper
  library by Angus Johnson <http://www.angusj.com/delphi/clipper.php>`__.
  You can download the latest version from PyPI:
  https://pypi.org/project/booleanOperations.


pkgId: ea118409fec10e1892bfc0388455a405811d657670b33cc3147116ae09d16798
name: python-boto
arch: src
version: 2.49.0
epoch: 0
release: 1
summary: Amazon Web Services Library
url: https://github.com/boto/boto/
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-472a83aa-4f87-4376-9f9a-86227e757594
location_href: 00003141-python-boto/python-boto-2.49.0-1.src.rpm
checksum_type: sha256
description:
  boto

  boto 2.49.0

  Released: 11-July-2018

  .. image:: https://travis-ci.org/boto/boto.svg?branch=develop
          :target: https://travis-ci.org/boto/boto

  .. image:: https://pypip.in/d/boto/badge.svg
          :target: https://pypi.python.org/pypi/boto/

  ******
  Boto 3
  ******

  `Boto3 <https://github.com/boto/boto3>`__, the next version of Boto, is now
  stable and recommended for general use.  It can be used side-by-side with Boto
  in the same project, so it is easy to start using Boto3 in your existing
  projects as well as new projects. Going forward, API updates and all new
  feature work will be focused on Boto3.

  To assist users who still depend on Boto and cannot immediately switch over, we
  will be triaging and addressing critical issues and PRs in Boto in the short
  term. As more users make the switch to Boto3, we expect to reduce our
  maintenance involvement over time. If we decide on a cutoff date or any
  significant changes to our maintenance plan, we will make pre-announcements
  well ahead of schedule to allow ample time for our users to adapt/migrate.


  ************
  Introduction
  ************

  Boto is a Python package that provides interfaces to Amazon Web Services.
  Currently, all features work with Python 2.6 and 2.7. Work is under way to
  support Python 3.3+ in the same codebase. Modules are being ported one at
  a time with the help of the open source community, so please check below
  for compatibility with Python 3.3+.

  To port a module to Python 3.3+, please view our `Contributing Guidelines`_
  and the `Porting Guide`_. If you would like, you can open an issue to let
  others know about your work in progress. Tests **must** pass on Python
  2.6, 2.7, 3.3, and 3.4 for pull requests to be accepted.


  ********
  Services
  ********

  At the moment, boto supports:

  * Compute

    * Amazon Elastic Compute Cloud (EC2) (Python 3)
    * Amazon Elastic Map Reduce (EMR) (Python 3)
    * AutoScaling (Python 3)
    * Amazon Kinesis (Python 3)
    * AWS Lambda (Python 3)
    * Amazon EC2 Container Service (Python 3)

  * Content Delivery

    * Amazon CloudFront (Python 3)

  * Database

    * Amazon Relational Data Service (RDS)
    * Amazon DynamoDB (Python 3)
    * Amazon SimpleDB (Python 3)
    * Amazon ElastiCache (Python 3)
    * Amazon Redshift (Python 3)

  * Deployment and Management

    * AWS Elastic Beanstalk (Python 3)
    * AWS CloudFormation (Python 3)
    * AWS Data Pipeline (Python 3)
    * AWS Opsworks (Python 3)
    * AWS CloudTrail (Python 3)
    * AWS CodeDeploy (Python 3)

  * Administration & Security

    * AWS Identity and Access Management (IAM) (Python 3)
    * AWS Key Management Service (KMS) (Python 3)
    * AWS Config (Python 3)
    * AWS CloudHSM (Python 3)

  * Application Services

    * Amazon CloudSearch (Python 3)
    * Amazon CloudSearch Domain (Python 3)
    * Amazon Elastic Transcoder (Python 3)
    * Amazon Simple Workflow Service (SWF) (Python 3)
    * Amazon Simple Queue Service (SQS) (Python 3)
    * Amazon Simple Notification Server (SNS) (Python 3)
    * Amazon Simple Email Service (SES) (Python 3)
    * Amazon Cognito Identity (Python 3)
    * Amazon Cognito Sync (Python 3)
    * Amazon Machine Learning (Python 3)

  * Monitoring

    * Amazon CloudWatch (EC2 Only) (Python 3)
    * Amazon CloudWatch Logs (Python 3)

  * Networking

    * Amazon Route53 (Python 3)
    * Amazon Route 53 Domains (Python 3)
    * Amazon Virtual Private Cloud (VPC) (Python 3)
    * Elastic Load Balancing (ELB) (Python 3)
    * AWS Direct Connect (Python 3)

  * Payments and Billing

    * Amazon Flexible Payment Service (FPS)

  * Storage

    * Amazon Simple Storage Service (S3) (Python 3)
    * Amazon Glacier (Python 3)
    * Amazon Elastic Block Store (EBS)
    * Google Cloud Storage

  * Workforce

    * Amazon Mechanical Turk

  * Other

    * Marketplace Web Services (Python 3)
    * AWS Support (Python 3)

  The goal of boto is to support the full breadth and depth of Amazon
  Web Services.  In addition, boto provides support for other public
  services such as Google Storage in addition to private cloud systems
  like Eucalyptus, OpenStack and Open Nebula.

  Boto is developed mainly using Python 2.6.6 and Python 2.7.3 on Mac OSX
  and Ubuntu Maverick.  It is known to work on other Linux distributions
  and on Windows.  Most of Boto requires no additional libraries or packages
  other than those that are distributed with Python.  Efforts are made
  to keep boto compatible with Python 2.5.x but no guarantees are made.

  ************
  Installation
  ************

  Install via `pip`_:

  ::

      $ pip install boto

  Install from source:

  ::

      $ git clone git://github.com/boto/boto.git
      $ cd boto
      $ python setup.py install

  **********
  ChangeLogs
  **********

  To see what has changed over time in boto, you can check out the
  release notes at `http://docs.pythonboto.org/en/latest/#release-notes`

  ***************************
  Finding Out More About Boto
  ***************************

  The main source code repository for boto can be found on `github.com`_.
  The boto project uses the `gitflow`_ model for branching.

  `Online documentation`_ is also available. The online documentation includes
  full API documentation as well as Getting Started Guides for many of the boto
  modules.

  Boto releases can be found on the `Python Cheese Shop`_.

  Join our IRC channel `#boto` on FreeNode.
  Webchat IRC channel: http://webchat.freenode.net/?channels=boto

  Join the `boto-users Google Group`_.

  *************************
  Getting Started with Boto
  *************************

  Your credentials can be passed into the methods that create
  connections.  Alternatively, boto will check for the existence of the
  following environment variables to ascertain your credentials:

  **AWS_ACCESS_KEY_ID** - Your AWS Access Key ID

  **AWS_SECRET_ACCESS_KEY** - Your AWS Secret Access Key

  Credentials and other boto-related settings can also be stored in a
  boto config file.  See `this`_ for details.

  .. _Contributing Guidelines: https://github.com/boto/boto/blob/develop/CONTRIBUTING
  .. _Porting Guide: http://boto.readthedocs.org/en/latest/porting_guide.html
  .. _pip: http://www.pip-installer.org/
  .. _release notes: https://github.com/boto/boto/wiki
  .. _github.com: http://github.com/boto/boto
  .. _Online documentation: http://docs.pythonboto.org
  .. _Python Cheese Shop: http://pypi.python.org/pypi/boto
  .. _this: http://docs.pythonboto.org/en/latest/boto_config_tut.html
  .. _gitflow: http://nvie.com/posts/a-successful-git-branching-model/
  .. _neo: https://github.com/boto/boto/tree/neo
  .. _boto-users Google Group: https://groups.google.com/forum/?fromgroups#!forum/boto-users


pkgId: a8c25be8dba5fb3c6b760a7d3ce76ba7e0052031aff470fb01d9ab93040a7a9c
name: python-boto3-stubs
arch: src
version: 1.26.109
epoch: 0
release: 1
summary: Type annotations for boto3 1.26.109 generated with mypy-boto3-builder 7.14.5
url: https://github.com/youtype/mypy_boto3_builder
rpm_license: MIT License
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-cf8f8f82-bfa2-4290-8b9b-b922736cd45b
location_href: 00009720-python-boto3-stubs/python-boto3-stubs-1.26.109-1.src.rpm
checksum_type: sha256
description:
  <a id="boto3-stubs"></a>



  [![PyPI - boto3-stubs](https://img.shields.io/pypi/v/boto3-stubs.svg?color=blue)](https://pypi.org/project/boto3-stubs)
  [![PyPI - Python Version](https://img.shields.io/pypi/pyversions/boto3-stubs.svg?color=blue)](https://pypi.org/project/boto3-stubs)
  [![Docs](https://img.shields.io/readthedocs/boto3-stubs.svg?color=blue)](https://youtype.github.io/boto3_stubs_docs/)
  [![PyPI - Downloads](https://img.shields.io/pypi/dm/boto3-stubs?color=blue)](https://pypistats.org/packages/boto3-stubs)

  ![boto3.typed](https://github.com/youtype/mypy_boto3_builder/raw/main/logo.png)

  Type annotations for
  [boto3 1.26.109](https://boto3.amazonaws.com/v1/documentation/api/1.26.109/index.html)
  compatible with [VSCode](https://code.visualstudio.com/),
  [PyCharm](https://www.jetbrains.com/pycharm/),
  [Emacs](https://www.gnu.org/software/emacs/),
  [Sublime Text](https://www.sublimetext.com/),
  [mypy](https://github.com/python/mypy),
  [pyright](https://github.com/microsoft/pyright) and other tools.

  Generated by
  [mypy-boto3-builder 7.14.5](https://github.com/youtype/mypy_boto3_builder).

  More information can be found in
  [boto3-stubs docs](https://youtype.github.io/boto3_stubs_docs/).

  See how it helps to find and fix potential bugs:

  ![boto3-stubs demo](https://github.com/youtype/mypy_boto3_builder/raw/main/demo.gif)

  - [boto3-stubs](#boto3-stubs)
    - [How to install](#how-to-install)
      - [VSCode extension](#vscode-extension)
      - [From PyPI with pip](#from-pypi-with-pip)
      - [From conda-forge](#from-conda-forge)
    - [How to uninstall](#how-to-uninstall)
    - [Usage](#usage)
      - [VSCode](#vscode)
      - [PyCharm](#pycharm)
      - [Emacs](#emacs)
      - [Sublime Text](#sublime-text)
      - [Other IDEs](#other-ides)
      - [mypy](#mypy)
      - [pyright](#pyright)
      - [Explicit type annotations](#explicit-type-annotations)
      - [Pylint compatibility](#pylint-compatibility)
    - [How it works](#how-it-works)
    - [What's new](#what's-new)
      - [Implemented features](#implemented-features)
      - [Latest changes](#latest-changes)
    - [Versioning](#versioning)
    - [Thank you](#thank-you)
    - [Documentation](#documentation)
    - [Support and contributing](#support-and-contributing)
    - [Submodules](#submodules)

  <a id="how-to-install"></a>



  <a id="vscode-extension"></a>



  Add
  [AWS Boto3](https://marketplace.visualstudio.com/items?itemName=Boto3typed.boto3-ide)
  extension to your VSCode and run `AWS boto3: Quick Start` command.

  Click `Auto-discover services` and select services you use in the current
  project.

  <a id="from-pypi-with-pip"></a>



  Install `boto3-stubs` to add type annotations for `boto3` package.

  ```bash

  python -m pip install boto3-stubs



  python -m pip install 'boto3-stubs[essential]'


  python -m pip install 'boto3-stubs[acm,apigateway]'


  python -m pip install 'boto3-stubs[boto3]'




  python -m pip install 'boto3-stubs-lite[essential]'

  ```

  <a id="from-conda-forge"></a>



  Add `conda-forge` to your channels with:

  ```bash
  conda config --add channels conda-forge
  conda config --set channel_priority strict
  ```

  Once the `conda-forge` channel has been enabled, `boto3-stubs` and
  `boto3-stubs-essential` can be installed with:

  ```bash
  conda install boto3-stubs boto3-stubs-essential
  ```

  It is possible to list all of the versions of `boto3-stubs` available on your
  platform with:

  ```bash
  conda search boto3-stubs --channel conda-forge
  ```

  <a id="how-to-uninstall"></a>



  ```bash

  python -m pip uninstall -y boto3-stubs
  ```

  <a id="usage"></a>



  <a id="vscode"></a>



  - Install
    [Python extension](https://marketplace.visualstudio.com/items?itemName=ms-python.python)
  - Install
    [Pylance extension](https://marketplace.visualstudio.com/items?itemName=ms-python.vscode-pylance)
  - Set `Pylance` as your Python Language Server
  - Install `boto3-stubs[essential]` in your environment:

  ```bash
  python -m pip install 'boto3-stubs[essential]'
  ```

  Both type checking and code completion should now work. No explicit type
  annotations required, write your `boto3` code as usual.

  <a id="pycharm"></a>



  Install `boto3-stubs-lite[essential]` in your environment:

  ```bash
  python -m pip install 'boto3-stubs-lite[essential]'`
  ```

  Both type checking and code completion should now work. Explicit type
  annotations **are required**.

  Use `boto3-stubs` package instead for implicit type discovery.

  <a id="emacs"></a>



  - Install `boto3-stubs` with services you use in your environment:

  ```bash
  python -m pip install 'boto3-stubs[essential]'
  ```

  - Install [use-package](https://github.com/jwiegley/use-package),
    [lsp](https://github.com/emacs-lsp/lsp-mode/),
    [company](https://github.com/company-mode/company-mode) and
    [flycheck](https://github.com/flycheck/flycheck) packages
  - Install [lsp-pyright](https://github.com/emacs-lsp/lsp-pyright) package

  ```elisp
  (use-package lsp-pyright
    :ensure t
    :hook (python-mode . (lambda ()
                            (require 'lsp-pyright)
                            (lsp)))  ; or lsp-deferred
    :init (when (executable-find "python3")
            (setq lsp-pyright-python-executable-cmd "python3"))
    )
  ```

  - Make sure emacs uses the environment where you have installed `boto3-stubs`

  Type checking should now work. No explicit type annotations required, write
  your `boto3` code as usual.

  <a id="sublime-text"></a>



  - Install `boto3-stubs[essential]` with services you use in your environment:

  ```bash
  python -m pip install 'boto3-stubs[essential]'
  ```

  - Install [LSP-pyright](https://github.com/sublimelsp/LSP-pyright) package

  Type checking should now work. No explicit type annotations required, write
  your `boto3` code as usual.

  <a id="other-ides"></a>



  Not tested, but as long as your IDE supports `mypy` or `pyright`, everything
  should work.

  <a id="mypy"></a>



  - Install `mypy`: `python -m pip install mypy`
  - Install `boto3-stubs[essential]` in your environment:

  ```bash
  python -m pip install 'boto3-stubs[essential]'`
  ```

  Type checking should now work. No explicit type annotations required, write
  your `boto3` code as usual.

  <a id="pyright"></a>



  - Install `pyright`: `npm i -g pyright`
  - Install `boto3-stubs[essential]` in your environment:

  ```bash
  python -m pip install 'boto3-stubs[essential]'
  ```

  Optionally, you can install `boto3-stubs` to `typings` folder.

  Type checking should now work. No explicit type annotations required, write
  your `boto3` code as usual.

  <a id="explicit-type-annotations"></a>



  To speed up type checking and code completion, you can set types explicitly.

  ```python
  import boto3
  from boto3.session import Session

  from mypy_boto3_ec2.client import EC2Client
  from mypy_boto3_ec2.service_resource import EC2ServiceResource
  from mypy_boto3_ec2.waiter import BundleTaskCompleteWaiter
  from mypy_boto3_ec2.paginator import DescribeVolumesPaginator

  session = Session(region_name="us-west-1")

  ec2_client: EC2Client = boto3.client("ec2", region_name="us-west-1")
  ec2_resource: EC2ServiceResource = session.resource("ec2")

  bundle_task_complete_waiter: BundleTaskCompleteWaiter = ec2_client.get_waiter(
      "bundle_task_complete"
  )
  describe_volumes_paginator: DescribeVolumesPaginator = ec2_client.get_paginator("describe_volumes")
  ```

  <a id="pylint-compatibility"></a>



  It is totally safe to use `TYPE_CHECKING` flag in order to avoid `boto3-stubs`
  dependency in production. However, there is an issue in `pylint` that it
  complains about undefined variables. To fix it, set all types to `object` in
  non-`TYPE_CHECKING` mode.

  ```python
  import boto3
  from typing import TYPE_CHECKING

  if TYPE_CHECKING:
      from mypy_boto3_ec2 import EC2Client, EC2ServiceResource
      from mypy_boto3_ec2.waiters import BundleTaskCompleteWaiter
      from mypy_boto3_ec2.paginators import DescribeVolumesPaginator
  else:
      EC2Client = object
      EC2ServiceResource = object
      BundleTaskCompleteWaiter = object
      DescribeVolumesPaginator = object

  ...
  ```

  <a id="how-it-works"></a>



  Fully automated
  [mypy-boto3-builder](https://github.com/youtype/mypy_boto3_builder) carefully
  generates type annotations for each service, patiently waiting for `boto3`
  updates. It delivers drop-in type annotations for you and makes sure that:

  - All available `boto3` services are covered.
  - Each public class and method of every `boto3` service gets valid type
    annotations extracted from `botocore` schemas.
  - Type annotations include up-to-date documentation.
  - Link to documentation is provided for every method.
  - Code is processed by [black](https://github.com/psf/black) and
    [isort](https://github.com/PyCQA/isort) for readability.

  <a id="what's-new"></a>



  <a id="implemented-features"></a>



  - Fully type annotated `boto3`, `botocore`, `aiobotocore` and `aioboto3`
    libraries
  - `mypy`, `pyright`, `VSCode`, `PyCharm`, `Sublime Text` and `Emacs`
    compatibility
  - `Client`, `ServiceResource`, `Resource`, `Waiter` `Paginator` type
    annotations for each service
  - Generated `TypeDefs` for each service
  - Generated `Literals` for each service
  - Auto discovery of types for `boto3.client` and `boto3.resource` calls
  - Auto discovery of types for `session.client` and `session.resource` calls
  - Auto discovery of types for `client.get_waiter` and `client.get_paginator`
    calls
  - Auto discovery of types for `ServiceResource` and `Resource` collections
  - Auto discovery of types for `aiobotocore.Session.create_client` calls

  <a id="latest-changes"></a>



  Builder changelog can be found in
  [Releases](https://github.com/youtype/mypy_boto3_builder/releases).

  <a id="versioning"></a>



  `boto3-stubs` version is the same as related `boto3` version and follows
  [PEP 440](https://www.python.org/dev/peps/pep-0440/) format.

  <a id="thank-you"></a>



  - [Allie Fitter](https://github.com/alliefitter) for
    [boto3-type-annotations](https://pypi.org/project/boto3-type-annotations/),
    this package is based on top of his work
  - [black](https://github.com/psf/black) developers for an awesome formatting
    tool
  - [Timothy Edmund Crosley](https://github.com/timothycrosley) for
    [isort](https://github.com/PyCQA/isort) and how flexible it is
  - [mypy](https://github.com/python/mypy) developers for doing all dirty work
    for us
  - [pyright](https://github.com/microsoft/pyright) team for the new era of typed
    Python

  <a id="documentation"></a>



  All services type annotations can be found in
  [boto3 docs](https://youtype.github.io/boto3_stubs_docs/)

  <a id="support-and-contributing"></a>



  This package is auto-generated. Please reports any bugs or request new features
  in [mypy-boto3-builder](https://github.com/youtype/mypy_boto3_builder/issues/)
  repository.

  <a id="submodules"></a>



  - `boto3-stubs[all]` - Type annotations for all 343 services.
  - `boto3-stubs[essential]` - Type annotations for
    [CloudFormation](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_cloudformation/),
    [DynamoDB](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_dynamodb/),
    [EC2](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_ec2/),
    [Lambda](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_lambda/),
    [RDS](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_rds/),
    [S3](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_s3/) and
    [SQS](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_sqs/) services.
  - `boto3-stubs[boto3]` - Install annotations in sync with `boto3` version.
  - `boto3-stubs[accessanalyzer]` - Type annotations for
    [AccessAnalyzer](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_accessanalyzer/)
    service.
  - `boto3-stubs[account]` - Type annotations for
    [Account](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_account/)
    service.
  - `boto3-stubs[acm]` - Type annotations for
    [ACM](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_acm/) service.
  - `boto3-stubs[acm-pca]` - Type annotations for
    [ACMPCA](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_acm_pca/)
    service.
  - `boto3-stubs[alexaforbusiness]` - Type annotations for
    [AlexaForBusiness](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_alexaforbusiness/)
    service.
  - `boto3-stubs[amp]` - Type annotations for
    [PrometheusService](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_amp/)
    service.
  - `boto3-stubs[amplify]` - Type annotations for
    [Amplify](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_amplify/)
    service.
  - `boto3-stubs[amplifybackend]` - Type annotations for
    [AmplifyBackend](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_amplifybackend/)
    service.
  - `boto3-stubs[amplifyuibuilder]` - Type annotations for
    [AmplifyUIBuilder](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_amplifyuibuilder/)
    service.
  - `boto3-stubs[apigateway]` - Type annotations for
    [APIGateway](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_apigateway/)
    service.
  - `boto3-stubs[apigatewaymanagementapi]` - Type annotations for
    [ApiGatewayManagementApi](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_apigatewaymanagementapi/)
    service.
  - `boto3-stubs[apigatewayv2]` - Type annotations for
    [ApiGatewayV2](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_apigatewayv2/)
    service.
  - `boto3-stubs[appconfig]` - Type annotations for
    [AppConfig](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_appconfig/)
    service.
  - `boto3-stubs[appconfigdata]` - Type annotations for
    [AppConfigData](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_appconfigdata/)
    service.
  - `boto3-stubs[appflow]` - Type annotations for
    [Appflow](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_appflow/)
    service.
  - `boto3-stubs[appintegrations]` - Type annotations for
    [AppIntegrationsService](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_appintegrations/)
    service.
  - `boto3-stubs[application-autoscaling]` - Type annotations for
    [ApplicationAutoScaling](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_application_autoscaling/)
    service.
  - `boto3-stubs[application-insights]` - Type annotations for
    [ApplicationInsights](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_application_insights/)
    service.
  - `boto3-stubs[applicationcostprofiler]` - Type annotations for
    [ApplicationCostProfiler](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_applicationcostprofiler/)
    service.
  - `boto3-stubs[appmesh]` - Type annotations for
    [AppMesh](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_appmesh/)
    service.
  - `boto3-stubs[apprunner]` - Type annotations for
    [AppRunner](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_apprunner/)
    service.
  - `boto3-stubs[appstream]` - Type annotations for
    [AppStream](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_appstream/)
    service.
  - `boto3-stubs[appsync]` - Type annotations for
    [AppSync](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_appsync/)
    service.
  - `boto3-stubs[arc-zonal-shift]` - Type annotations for
    [ARCZonalShift](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_arc_zonal_shift/)
    service.
  - `boto3-stubs[athena]` - Type annotations for
    [Athena](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_athena/)
    service.
  - `boto3-stubs[auditmanager]` - Type annotations for
    [AuditManager](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_auditmanager/)
    service.
  - `boto3-stubs[autoscaling]` - Type annotations for
    [AutoScaling](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_autoscaling/)
    service.
  - `boto3-stubs[autoscaling-plans]` - Type annotations for
    [AutoScalingPlans](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_autoscaling_plans/)
    service.
  - `boto3-stubs[backup]` - Type annotations for
    [Backup](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_backup/)
    service.
  - `boto3-stubs[backup-gateway]` - Type annotations for
    [BackupGateway](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_backup_gateway/)
    service.
  - `boto3-stubs[backupstorage]` - Type annotations for
    [BackupStorage](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_backupstorage/)
    service.
  - `boto3-stubs[batch]` - Type annotations for
    [Batch](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_batch/)
    service.
  - `boto3-stubs[billingconductor]` - Type annotations for
    [BillingConductor](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_billingconductor/)
    service.
  - `boto3-stubs[braket]` - Type annotations for
    [Braket](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_braket/)
    service.
  - `boto3-stubs[budgets]` - Type annotations for
    [Budgets](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_budgets/)
    service.
  - `boto3-stubs[ce]` - Type annotations for
    [CostExplorer](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_ce/)
    service.
  - `boto3-stubs[chime]` - Type annotations for
    [Chime](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_chime/)
    service.
  - `boto3-stubs[chime-sdk-identity]` - Type annotations for
    [ChimeSDKIdentity](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_chime_sdk_identity/)
    service.
  - `boto3-stubs[chime-sdk-media-pipelines]` - Type annotations for
    [ChimeSDKMediaPipelines](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_chime_sdk_media_pipelines/)
    service.
  - `boto3-stubs[chime-sdk-meetings]` - Type annotations for
    [ChimeSDKMeetings](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_chime_sdk_meetings/)
    service.
  - `boto3-stubs[chime-sdk-messaging]` - Type annotations for
    [ChimeSDKMessaging](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_chime_sdk_messaging/)
    service.
  - `boto3-stubs[chime-sdk-voice]` - Type annotations for
    [ChimeSDKVoice](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_chime_sdk_voice/)
    service.
  - `boto3-stubs[cleanrooms]` - Type annotations for
    [CleanRoomsService](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_cleanrooms/)
    service.
  - `boto3-stubs[cloud9]` - Type annotations for
    [Cloud9](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_cloud9/)
    service.
  - `boto3-stubs[cloudcontrol]` - Type annotations for
    [CloudControlApi](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_cloudcontrol/)
    service.
  - `boto3-stubs[clouddirectory]` - Type annotations for
    [CloudDirectory](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_clouddirectory/)
    service.
  - `boto3-stubs[cloudformation]` - Type annotations for
    [CloudFormation](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_cloudformation/)
    service.
  - `boto3-stubs[cloudfront]` - Type annotations for
    [CloudFront](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_cloudfront/)
    service.
  - `boto3-stubs[cloudhsm]` - Type annotations for
    [CloudHSM](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_cloudhsm/)
    service.
  - `boto3-stubs[cloudhsmv2]` - Type annotations for
    [CloudHSMV2](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_cloudhsmv2/)
    service.
  - `boto3-stubs[cloudsearch]` - Type annotations for
    [CloudSearch](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_cloudsearch/)
    service.
  - `boto3-stubs[cloudsearchdomain]` - Type annotations for
    [CloudSearchDomain](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_cloudsearchdomain/)
    service.
  - `boto3-stubs[cloudtrail]` - Type annotations for
    [CloudTrail](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_cloudtrail/)
    service.
  - `boto3-stubs[cloudtrail-data]` - Type annotations for
    [CloudTrailDataService](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_cloudtrail_data/)
    service.
  - `boto3-stubs[cloudwatch]` - Type annotations for
    [CloudWatch](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_cloudwatch/)
    service.
  - `boto3-stubs[codeartifact]` - Type annotations for
    [CodeArtifact](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_codeartifact/)
    service.
  - `boto3-stubs[codebuild]` - Type annotations for
    [CodeBuild](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_codebuild/)
    service.
  - `boto3-stubs[codecatalyst]` - Type annotations for
    [CodeCatalyst](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_codecatalyst/)
    service.
  - `boto3-stubs[codecommit]` - Type annotations for
    [CodeCommit](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_codecommit/)
    service.
  - `boto3-stubs[codedeploy]` - Type annotations for
    [CodeDeploy](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_codedeploy/)
    service.
  - `boto3-stubs[codeguru-reviewer]` - Type annotations for
    [CodeGuruReviewer](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_codeguru_reviewer/)
    service.
  - `boto3-stubs[codeguruprofiler]` - Type annotations for
    [CodeGuruProfiler](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_codeguruprofiler/)
    service.
  - `boto3-stubs[codepipeline]` - Type annotations for
    [CodePipeline](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_codepipeline/)
    service.
  - `boto3-stubs[codestar]` - Type annotations for
    [CodeStar](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_codestar/)
    service.
  - `boto3-stubs[codestar-connections]` - Type annotations for
    [CodeStarconnections](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_codestar_connections/)
    service.
  - `boto3-stubs[codestar-notifications]` - Type annotations for
    [CodeStarNotifications](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_codestar_notifications/)
    service.
  - `boto3-stubs[cognito-identity]` - Type annotations for
    [CognitoIdentity](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_cognito_identity/)
    service.
  - `boto3-stubs[cognito-idp]` - Type annotations for
    [CognitoIdentityProvider](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_cognito_idp/)
    service.
  - `boto3-stubs[cognito-sync]` - Type annotations for
    [CognitoSync](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_cognito_sync/)
    service.
  - `boto3-stubs[comprehend]` - Type annotations for
    [Comprehend](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_comprehend/)
    service.
  - `boto3-stubs[comprehendmedical]` - Type annotations for
    [ComprehendMedical](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_comprehendmedical/)
    service.
  - `boto3-stubs[compute-optimizer]` - Type annotations for
    [ComputeOptimizer](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_compute_optimizer/)
    service.
  - `boto3-stubs[config]` - Type annotations for
    [ConfigService](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_config/)
    service.
  - `boto3-stubs[connect]` - Type annotations for
    [Connect](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_connect/)
    service.
  - `boto3-stubs[connect-contact-lens]` - Type annotations for
    [ConnectContactLens](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_connect_contact_lens/)
    service.
  - `boto3-stubs[connectcampaigns]` - Type annotations for
    [ConnectCampaignService](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_connectcampaigns/)
    service.
  - `boto3-stubs[connectcases]` - Type annotations for
    [ConnectCases](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_connectcases/)
    service.
  - `boto3-stubs[connectparticipant]` - Type annotations for
    [ConnectParticipant](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_connectparticipant/)
    service.
  - `boto3-stubs[controltower]` - Type annotations for
    [ControlTower](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_controltower/)
    service.
  - `boto3-stubs[cur]` - Type annotations for
    [CostandUsageReportService](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_cur/)
    service.
  - `boto3-stubs[customer-profiles]` - Type annotations for
    [CustomerProfiles](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_customer_profiles/)
    service.
  - `boto3-stubs[databrew]` - Type annotations for
    [GlueDataBrew](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_databrew/)
    service.
  - `boto3-stubs[dataexchange]` - Type annotations for
    [DataExchange](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_dataexchange/)
    service.
  - `boto3-stubs[datapipeline]` - Type annotations for
    [DataPipeline](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_datapipeline/)
    service.
  - `boto3-stubs[datasync]` - Type annotations for
    [DataSync](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_datasync/)
    service.
  - `boto3-stubs[dax]` - Type annotations for
    [DAX](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_dax/) service.
  - `boto3-stubs[detective]` - Type annotations for
    [Detective](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_detective/)
    service.
  - `boto3-stubs[devicefarm]` - Type annotations for
    [DeviceFarm](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_devicefarm/)
    service.
  - `boto3-stubs[devops-guru]` - Type annotations for
    [DevOpsGuru](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_devops_guru/)
    service.
  - `boto3-stubs[directconnect]` - Type annotations for
    [DirectConnect](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_directconnect/)
    service.
  - `boto3-stubs[discovery]` - Type annotations for
    [ApplicationDiscoveryService](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_discovery/)
    service.
  - `boto3-stubs[dlm]` - Type annotations for
    [DLM](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_dlm/) service.
  - `boto3-stubs[dms]` - Type annotations for
    [DatabaseMigrationService](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_dms/)
    service.
  - `boto3-stubs[docdb]` - Type annotations for
    [DocDB](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_docdb/)
    service.
  - `boto3-stubs[docdb-elastic]` - Type annotations for
    [DocDBElastic](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_docdb_elastic/)
    service.
  - `boto3-stubs[drs]` - Type annotations for
    [drs](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_drs/) service.
  - `boto3-stubs[ds]` - Type annotations for
    [DirectoryService](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_ds/)
    service.
  - `boto3-stubs[dynamodb]` - Type annotations for
    [DynamoDB](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_dynamodb/)
    service.
  - `boto3-stubs[dynamodbstreams]` - Type annotations for
    [DynamoDBStreams](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_dynamodbstreams/)
    service.
  - `boto3-stubs[ebs]` - Type annotations for
    [EBS](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_ebs/) service.
  - `boto3-stubs[ec2]` - Type annotations for
    [EC2](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_ec2/) service.
  - `boto3-stubs[ec2-instance-connect]` - Type annotations for
    [EC2InstanceConnect](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_ec2_instance_connect/)
    service.
  - `boto3-stubs[ecr]` - Type annotations for
    [ECR](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_ecr/) service.
  - `boto3-stubs[ecr-public]` - Type annotations for
    [ECRPublic](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_ecr_public/)
    service.
  - `boto3-stubs[ecs]` - Type annotations for
    [ECS](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_ecs/) service.
  - `boto3-stubs[efs]` - Type annotations for
    [EFS](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_efs/) service.
  - `boto3-stubs[eks]` - Type annotations for
    [EKS](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_eks/) service.
  - `boto3-stubs[elastic-inference]` - Type annotations for
    [ElasticInference](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_elastic_inference/)
    service.
  - `boto3-stubs[elasticache]` - Type annotations for
    [ElastiCache](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_elasticache/)
    service.
  - `boto3-stubs[elasticbeanstalk]` - Type annotations for
    [ElasticBeanstalk](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_elasticbeanstalk/)
    service.
  - `boto3-stubs[elastictranscoder]` - Type annotations for
    [ElasticTranscoder](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_elastictranscoder/)
    service.
  - `boto3-stubs[elb]` - Type annotations for
    [ElasticLoadBalancing](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_elb/)
    service.
  - `boto3-stubs[elbv2]` - Type annotations for
    [ElasticLoadBalancingv2](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_elbv2/)
    service.
  - `boto3-stubs[emr]` - Type annotations for
    [EMR](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_emr/) service.
  - `boto3-stubs[emr-containers]` - Type annotations for
    [EMRContainers](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_emr_containers/)
    service.
  - `boto3-stubs[emr-serverless]` - Type annotations for
    [EMRServerless](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_emr_serverless/)
    service.
  - `boto3-stubs[es]` - Type annotations for
    [ElasticsearchService](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_es/)
    service.
  - `boto3-stubs[events]` - Type annotations for
    [EventBridge](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_events/)
    service.
  - `boto3-stubs[evidently]` - Type annotations for
    [CloudWatchEvidently](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_evidently/)
    service.
  - `boto3-stubs[finspace]` - Type annotations for
    [finspace](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_finspace/)
    service.
  - `boto3-stubs[finspace-data]` - Type annotations for
    [FinSpaceData](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_finspace_data/)
    service.
  - `boto3-stubs[firehose]` - Type annotations for
    [Firehose](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_firehose/)
    service.
  - `boto3-stubs[fis]` - Type annotations for
    [FIS](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_fis/) service.
  - `boto3-stubs[fms]` - Type annotations for
    [FMS](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_fms/) service.
  - `boto3-stubs[forecast]` - Type annotations for
    [ForecastService](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_forecast/)
    service.
  - `boto3-stubs[forecastquery]` - Type annotations for
    [ForecastQueryService](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_forecastquery/)
    service.
  - `boto3-stubs[frauddetector]` - Type annotations for
    [FraudDetector](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_frauddetector/)
    service.
  - `boto3-stubs[fsx]` - Type annotations for
    [FSx](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_fsx/) service.
  - `boto3-stubs[gamelift]` - Type annotations for
    [GameLift](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_gamelift/)
    service.
  - `boto3-stubs[gamesparks]` - Type annotations for
    [GameSparks](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_gamesparks/)
    service.
  - `boto3-stubs[glacier]` - Type annotations for
    [Glacier](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_glacier/)
    service.
  - `boto3-stubs[globalaccelerator]` - Type annotations for
    [GlobalAccelerator](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_globalaccelerator/)
    service.
  - `boto3-stubs[glue]` - Type annotations for
    [Glue](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_glue/) service.
  - `boto3-stubs[grafana]` - Type annotations for
    [ManagedGrafana](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_grafana/)
    service.
  - `boto3-stubs[greengrass]` - Type annotations for
    [Greengrass](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_greengrass/)
    service.
  - `boto3-stubs[greengrassv2]` - Type annotations for
    [GreengrassV2](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_greengrassv2/)
    service.
  - `boto3-stubs[groundstation]` - Type annotations for
    [GroundStation](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_groundstation/)
    service.
  - `boto3-stubs[guardduty]` - Type annotations for
    [GuardDuty](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_guardduty/)
    service.
  - `boto3-stubs[health]` - Type annotations for
    [Health](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_health/)
    service.
  - `boto3-stubs[healthlake]` - Type annotations for
    [HealthLake](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_healthlake/)
    service.
  - `boto3-stubs[honeycode]` - Type annotations for
    [Honeycode](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_honeycode/)
    service.
  - `boto3-stubs[iam]` - Type annotations for
    [IAM](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_iam/) service.
  - `boto3-stubs[identitystore]` - Type annotations for
    [IdentityStore](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_identitystore/)
    service.
  - `boto3-stubs[imagebuilder]` - Type annotations for
    [imagebuilder](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_imagebuilder/)
    service.
  - `boto3-stubs[importexport]` - Type annotations for
    [ImportExport](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_importexport/)
    service.
  - `boto3-stubs[inspector]` - Type annotations for
    [Inspector](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_inspector/)
    service.
  - `boto3-stubs[inspector2]` - Type annotations for
    [Inspector2](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_inspector2/)
    service.
  - `boto3-stubs[internetmonitor]` - Type annotations for
    [CloudWatchInternetMonitor](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_internetmonitor/)
    service.
  - `boto3-stubs[iot]` - Type annotations for
    [IoT](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_iot/) service.
  - `boto3-stubs[iot-data]` - Type annotations for
    [IoTDataPlane](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_iot_data/)
    service.
  - `boto3-stubs[iot-jobs-data]` - Type annotations for
    [IoTJobsDataPlane](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_iot_jobs_data/)
    service.
  - `boto3-stubs[iot-roborunner]` - Type annotations for
    [IoTRoboRunner](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_iot_roborunner/)
    service.
  - `boto3-stubs[iot1click-devices]` - Type annotations for
    [IoT1ClickDevicesService](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_iot1click_devices/)
    service.
  - `boto3-stubs[iot1click-projects]` - Type annotations for
    [IoT1ClickProjects](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_iot1click_projects/)
    service.
  - `boto3-stubs[iotanalytics]` - Type annotations for
    [IoTAnalytics](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_iotanalytics/)
    service.
  - `boto3-stubs[iotdeviceadvisor]` - Type annotations for
    [IoTDeviceAdvisor](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_iotdeviceadvisor/)
    service.
  - `boto3-stubs[iotevents]` - Type annotations for
    [IoTEvents](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_iotevents/)
    service.
  - `boto3-stubs[iotevents-data]` - Type annotations for
    [IoTEventsData](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_iotevents_data/)
    service.
  - `boto3-stubs[iotfleethub]` - Type annotations for
    [IoTFleetHub](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_iotfleethub/)
    service.
  - `boto3-stubs[iotfleetwise]` - Type annotations for
    [IoTFleetWise](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_iotfleetwise/)
    service.
  - `boto3-stubs[iotsecuretunneling]` - Type annotations for
    [IoTSecureTunneling](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_iotsecuretunneling/)
    service.
  - `boto3-stubs[iotsitewise]` - Type annotations for
    [IoTSiteWise](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_iotsitewise/)
    service.
  - `boto3-stubs[iotthingsgraph]` - Type annotations for
    [IoTThingsGraph](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_iotthingsgraph/)
    service.
  - `boto3-stubs[iottwinmaker]` - Type annotations for
    [IoTTwinMaker](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_iottwinmaker/)
    service.
  - `boto3-stubs[iotwireless]` - Type annotations for
    [IoTWireless](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_iotwireless/)
    service.
  - `boto3-stubs[ivs]` - Type annotations for
    [IVS](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_ivs/) service.
  - `boto3-stubs[ivs-realtime]` - Type annotations for
    [ivsrealtime](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_ivs_realtime/)
    service.
  - `boto3-stubs[ivschat]` - Type annotations for
    [ivschat](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_ivschat/)
    service.
  - `boto3-stubs[kafka]` - Type annotations for
    [Kafka](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_kafka/)
    service.
  - `boto3-stubs[kafkaconnect]` - Type annotations for
    [KafkaConnect](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_kafkaconnect/)
    service.
  - `boto3-stubs[kendra]` - Type annotations for
    [kendra](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_kendra/)
    service.
  - `boto3-stubs[kendra-ranking]` - Type annotations for
    [KendraRanking](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_kendra_ranking/)
    service.
  - `boto3-stubs[keyspaces]` - Type annotations for
    [Keyspaces](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_keyspaces/)
    service.
  - `boto3-stubs[kinesis]` - Type annotations for
    [Kinesis](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_kinesis/)
    service.
  - `boto3-stubs[kinesis-video-archived-media]` - Type annotations for
    [KinesisVideoArchivedMedia](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_kinesis_video_archived_media/)
    service.
  - `boto3-stubs[kinesis-video-media]` - Type annotations for
    [KinesisVideoMedia](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_kinesis_video_media/)
    service.
  - `boto3-stubs[kinesis-video-signaling]` - Type annotations for
    [KinesisVideoSignalingChannels](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_kinesis_video_signaling/)
    service.
  - `boto3-stubs[kinesis-video-webrtc-storage]` - Type annotations for
    [KinesisVideoWebRTCStorage](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_kinesis_video_webrtc_storage/)
    service.
  - `boto3-stubs[kinesisanalytics]` - Type annotations for
    [KinesisAnalytics](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_kinesisanalytics/)
    service.
  - `boto3-stubs[kinesisanalyticsv2]` - Type annotations for
    [KinesisAnalyticsV2](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_kinesisanalyticsv2/)
    service.
  - `boto3-stubs[kinesisvideo]` - Type annotations for
    [KinesisVideo](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_kinesisvideo/)
    service.
  - `boto3-stubs[kms]` - Type annotations for
    [KMS](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_kms/) service.
  - `boto3-stubs[lakeformation]` - Type annotations for
    [LakeFormation](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_lakeformation/)
    service.
  - `boto3-stubs[lambda]` - Type annotations for
    [Lambda](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_lambda/)
    service.
  - `boto3-stubs[lex-models]` - Type annotations for
    [LexModelBuildingService](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_lex_models/)
    service.
  - `boto3-stubs[lex-runtime]` - Type annotations for
    [LexRuntimeService](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_lex_runtime/)
    service.
  - `boto3-stubs[lexv2-models]` - Type annotations for
    [LexModelsV2](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_lexv2_models/)
    service.
  - `boto3-stubs[lexv2-runtime]` - Type annotations for
    [LexRuntimeV2](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_lexv2_runtime/)
    service.
  - `boto3-stubs[license-manager]` - Type annotations for
    [LicenseManager](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_license_manager/)
    service.
  - `boto3-stubs[license-manager-linux-subscriptions]` - Type annotations for
    [LicenseManagerLinuxSubscriptions](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_license_manager_linux_subscriptions/)
    service.
  - `boto3-stubs[license-manager-user-subscriptions]` - Type annotations for
    [LicenseManagerUserSubscriptions](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_license_manager_user_subscriptions/)
    service.
  - `boto3-stubs[lightsail]` - Type annotations for
    [Lightsail](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_lightsail/)
    service.
  - `boto3-stubs[location]` - Type annotations for
    [LocationService](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_location/)
    service.
  - `boto3-stubs[logs]` - Type annotations for
    [CloudWatchLogs](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_logs/)
    service.
  - `boto3-stubs[lookoutequipment]` - Type annotations for
    [LookoutEquipment](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_lookoutequipment/)
    service.
  - `boto3-stubs[lookoutmetrics]` - Type annotations for
    [LookoutMetrics](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_lookoutmetrics/)
    service.
  - `boto3-stubs[lookoutvision]` - Type annotations for
    [LookoutforVision](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_lookoutvision/)
    service.
  - `boto3-stubs[m2]` - Type annotations for
    [MainframeModernization](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_m2/)
    service.
  - `boto3-stubs[machinelearning]` - Type annotations for
    [MachineLearning](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_machinelearning/)
    service.
  - `boto3-stubs[macie]` - Type annotations for
    [Macie](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_macie/)
    service.
  - `boto3-stubs[macie2]` - Type annotations for
    [Macie2](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_macie2/)
    service.
  - `boto3-stubs[managedblockchain]` - Type annotations for
    [ManagedBlockchain](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_managedblockchain/)
    service.
  - `boto3-stubs[marketplace-catalog]` - Type annotations for
    [MarketplaceCatalog](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_marketplace_catalog/)
    service.
  - `boto3-stubs[marketplace-entitlement]` - Type annotations for
    [MarketplaceEntitlementService](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_marketplace_entitlement/)
    service.
  - `boto3-stubs[marketplacecommerceanalytics]` - Type annotations for
    [MarketplaceCommerceAnalytics](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_marketplacecommerceanalytics/)
    service.
  - `boto3-stubs[mediaconnect]` - Type annotations for
    [MediaConnect](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_mediaconnect/)
    service.
  - `boto3-stubs[mediaconvert]` - Type annotations for
    [MediaConvert](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_mediaconvert/)
    service.
  - `boto3-stubs[medialive]` - Type annotations for
    [MediaLive](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_medialive/)
    service.
  - `boto3-stubs[mediapackage]` - Type annotations for
    [MediaPackage](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_mediapackage/)
    service.
  - `boto3-stubs[mediapackage-vod]` - Type annotations for
    [MediaPackageVod](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_mediapackage_vod/)
    service.
  - `boto3-stubs[mediastore]` - Type annotations for
    [MediaStore](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_mediastore/)
    service.
  - `boto3-stubs[mediastore-data]` - Type annotations for
    [MediaStoreData](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_mediastore_data/)
    service.
  - `boto3-stubs[mediatailor]` - Type annotations for
    [MediaTailor](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_mediatailor/)
    service.
  - `boto3-stubs[memorydb]` - Type annotations for
    [MemoryDB](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_memorydb/)
    service.
  - `boto3-stubs[meteringmarketplace]` - Type annotations for
    [MarketplaceMetering](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_meteringmarketplace/)
    service.
  - `boto3-stubs[mgh]` - Type annotations for
    [MigrationHub](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_mgh/)
    service.
  - `boto3-stubs[mgn]` - Type annotations for
    [mgn](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_mgn/) service.
  - `boto3-stubs[migration-hub-refactor-spaces]` - Type annotations for
    [MigrationHubRefactorSpaces](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_migration_hub_refactor_spaces/)
    service.
  - `boto3-stubs[migrationhub-config]` - Type annotations for
    [MigrationHubConfig](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_migrationhub_config/)
    service.
  - `boto3-stubs[migrationhuborchestrator]` - Type annotations for
    [MigrationHubOrchestrator](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_migrationhuborchestrator/)
    service.
  - `boto3-stubs[migrationhubstrategy]` - Type annotations for
    [MigrationHubStrategyRecommendations](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_migrationhubstrategy/)
    service.
  - `boto3-stubs[mobile]` - Type annotations for
    [Mobile](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_mobile/)
    service.
  - `boto3-stubs[mq]` - Type annotations for
    [MQ](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_mq/) service.
  - `boto3-stubs[mturk]` - Type annotations for
    [MTurk](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_mturk/)
    service.
  - `boto3-stubs[mwaa]` - Type annotations for
    [MWAA](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_mwaa/) service.
  - `boto3-stubs[neptune]` - Type annotations for
    [Neptune](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_neptune/)
    service.
  - `boto3-stubs[network-firewall]` - Type annotations for
    [NetworkFirewall](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_network_firewall/)
    service.
  - `boto3-stubs[networkmanager]` - Type annotations for
    [NetworkManager](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_networkmanager/)
    service.
  - `boto3-stubs[nimble]` - Type annotations for
    [NimbleStudio](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_nimble/)
    service.
  - `boto3-stubs[oam]` - Type annotations for
    [CloudWatchObservabilityAccessManager](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_oam/)
    service.
  - `boto3-stubs[omics]` - Type annotations for
    [Omics](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_omics/)
    service.
  - `boto3-stubs[opensearch]` - Type annotations for
    [OpenSearchService](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_opensearch/)
    service.
  - `boto3-stubs[opensearchserverless]` - Type annotations for
    [OpenSearchServiceServerless](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_opensearchserverless/)
    service.
  - `boto3-stubs[opsworks]` - Type annotations for
    [OpsWorks](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_opsworks/)
    service.
  - `boto3-stubs[opsworkscm]` - Type annotations for
    [OpsWorksCM](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_opsworkscm/)
    service.
  - `boto3-stubs[organizations]` - Type annotations for
    [Organizations](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_organizations/)
    service.
  - `boto3-stubs[outposts]` - Type annotations for
    [Outposts](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_outposts/)
    service.
  - `boto3-stubs[panorama]` - Type annotations for
    [Panorama](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_panorama/)
    service.
  - `boto3-stubs[personalize]` - Type annotations for
    [Personalize](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_personalize/)
    service.
  - `boto3-stubs[personalize-events]` - Type annotations for
    [PersonalizeEvents](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_personalize_events/)
    service.
  - `boto3-stubs[personalize-runtime]` - Type annotations for
    [PersonalizeRuntime](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_personalize_runtime/)
    service.
  - `boto3-stubs[pi]` - Type annotations for
    [PI](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_pi/) service.
  - `boto3-stubs[pinpoint]` - Type annotations for
    [Pinpoint](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_pinpoint/)
    service.
  - `boto3-stubs[pinpoint-email]` - Type annotations for
    [PinpointEmail](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_pinpoint_email/)
    service.
  - `boto3-stubs[pinpoint-sms-voice]` - Type annotations for
    [PinpointSMSVoice](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_pinpoint_sms_voice/)
    service.
  - `boto3-stubs[pinpoint-sms-voice-v2]` - Type annotations for
    [PinpointSMSVoiceV2](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_pinpoint_sms_voice_v2/)
    service.
  - `boto3-stubs[pipes]` - Type annotations for
    [EventBridgePipes](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_pipes/)
    service.
  - `boto3-stubs[polly]` - Type annotations for
    [Polly](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_polly/)
    service.
  - `boto3-stubs[pricing]` - Type annotations for
    [Pricing](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_pricing/)
    service.
  - `boto3-stubs[privatenetworks]` - Type annotations for
    [Private5G](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_privatenetworks/)
    service.
  - `boto3-stubs[proton]` - Type annotations for
    [Proton](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_proton/)
    service.
  - `boto3-stubs[qldb]` - Type annotations for
    [QLDB](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_qldb/) service.
  - `boto3-stubs[qldb-session]` - Type annotations for
    [QLDBSession](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_qldb_session/)
    service.
  - `boto3-stubs[quicksight]` - Type annotations for
    [QuickSight](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_quicksight/)
    service.
  - `boto3-stubs[ram]` - Type annotations for
    [RAM](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_ram/) service.
  - `boto3-stubs[rbin]` - Type annotations for
    [RecycleBin](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_rbin/)
    service.
  - `boto3-stubs[rds]` - Type annotations for
    [RDS](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_rds/) service.
  - `boto3-stubs[rds-data]` - Type annotations for
    [RDSDataService](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_rds_data/)
    service.
  - `boto3-stubs[redshift]` - Type annotations for
    [Redshift](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_redshift/)
    service.
  - `boto3-stubs[redshift-data]` - Type annotations for
    [RedshiftDataAPIService](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_redshift_data/)
    service.
  - `boto3-stubs[redshift-serverless]` - Type annotations for
    [RedshiftServerless](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_redshift_serverless/)
    service.
  - `boto3-stubs[rekognition]` - Type annotations for
    [Rekognition](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_rekognition/)
    service.
  - `boto3-stubs[resiliencehub]` - Type annotations for
    [ResilienceHub](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_resiliencehub/)
    service.
  - `boto3-stubs[resource-explorer-2]` - Type annotations for
    [ResourceExplorer](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_resource_explorer_2/)
    service.
  - `boto3-stubs[resource-groups]` - Type annotations for
    [ResourceGroups](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_resource_groups/)
    service.
  - `boto3-stubs[resourcegroupstaggingapi]` - Type annotations for
    [ResourceGroupsTaggingAPI](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_resourcegroupstaggingapi/)
    service.
  - `boto3-stubs[robomaker]` - Type annotations for
    [RoboMaker](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_robomaker/)
    service.
  - `boto3-stubs[rolesanywhere]` - Type annotations for
    [IAMRolesAnywhere](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_rolesanywhere/)
    service.
  - `boto3-stubs[route53]` - Type annotations for
    [Route53](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_route53/)
    service.
  - `boto3-stubs[route53-recovery-cluster]` - Type annotations for
    [Route53RecoveryCluster](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_route53_recovery_cluster/)
    service.
  - `boto3-stubs[route53-recovery-control-config]` - Type annotations for
    [Route53RecoveryControlConfig](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_route53_recovery_control_config/)
    service.
  - `boto3-stubs[route53-recovery-readiness]` - Type annotations for
    [Route53RecoveryReadiness](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_route53_recovery_readiness/)
    service.
  - `boto3-stubs[route53domains]` - Type annotations for
    [Route53Domains](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_route53domains/)
    service.
  - `boto3-stubs[route53resolver]` - Type annotations for
    [Route53Resolver](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_route53resolver/)
    service.
  - `boto3-stubs[rum]` - Type annotations for
    [CloudWatchRUM](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_rum/)
    service.
  - `boto3-stubs[s3]` - Type annotations for
    [S3](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_s3/) service.
  - `boto3-stubs[s3control]` - Type annotations for
    [S3Control](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_s3control/)
    service.
  - `boto3-stubs[s3outposts]` - Type annotations for
    [S3Outposts](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_s3outposts/)
    service.
  - `boto3-stubs[sagemaker]` - Type annotations for
    [SageMaker](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_sagemaker/)
    service.
  - `boto3-stubs[sagemaker-a2i-runtime]` - Type annotations for
    [AugmentedAIRuntime](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_sagemaker_a2i_runtime/)
    service.
  - `boto3-stubs[sagemaker-edge]` - Type annotations for
    [SagemakerEdgeManager](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_sagemaker_edge/)
    service.
  - `boto3-stubs[sagemaker-featurestore-runtime]` - Type annotations for
    [SageMakerFeatureStoreRuntime](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_sagemaker_featurestore_runtime/)
    service.
  - `boto3-stubs[sagemaker-geospatial]` - Type annotations for
    [SageMakergeospatialcapabilities](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_sagemaker_geospatial/)
    service.
  - `boto3-stubs[sagemaker-metrics]` - Type annotations for
    [SageMakerMetrics](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_sagemaker_metrics/)
    service.
  - `boto3-stubs[sagemaker-runtime]` - Type annotations for
    [SageMakerRuntime](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_sagemaker_runtime/)
    service.
  - `boto3-stubs[savingsplans]` - Type annotations for
    [SavingsPlans](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_savingsplans/)
    service.
  - `boto3-stubs[scheduler]` - Type annotations for
    [EventBridgeScheduler](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_scheduler/)
    service.
  - `boto3-stubs[schemas]` - Type annotations for
    [Schemas](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_schemas/)
    service.
  - `boto3-stubs[sdb]` - Type annotations for
    [SimpleDB](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_sdb/)
    service.
  - `boto3-stubs[secretsmanager]` - Type annotations for
    [SecretsManager](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_secretsmanager/)
    service.
  - `boto3-stubs[securityhub]` - Type annotations for
    [SecurityHub](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_securityhub/)
    service.
  - `boto3-stubs[securitylake]` - Type annotations for
    [SecurityLake](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_securitylake/)
    service.
  - `boto3-stubs[serverlessrepo]` - Type annotations for
    [ServerlessApplicationRepository](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_serverlessrepo/)
    service.
  - `boto3-stubs[service-quotas]` - Type annotations for
    [ServiceQuotas](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_service_quotas/)
    service.
  - `boto3-stubs[servicecatalog]` - Type annotations for
    [ServiceCatalog](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_servicecatalog/)
    service.
  - `boto3-stubs[servicecatalog-appregistry]` - Type annotations for
    [AppRegistry](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_servicecatalog_appregistry/)
    service.
  - `boto3-stubs[servicediscovery]` - Type annotations for
    [ServiceDiscovery](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_servicediscovery/)
    service.
  - `boto3-stubs[ses]` - Type annotations for
    [SES](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_ses/) service.
  - `boto3-stubs[sesv2]` - Type annotations for
    [SESV2](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_sesv2/)
    service.
  - `boto3-stubs[shield]` - Type annotations for
    [Shield](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_shield/)
    service.
  - `boto3-stubs[signer]` - Type annotations for
    [signer](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_signer/)
    service.
  - `boto3-stubs[simspaceweaver]` - Type annotations for
    [SimSpaceWeaver](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_simspaceweaver/)
    service.
  - `boto3-stubs[sms]` - Type annotations for
    [SMS](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_sms/) service.
  - `boto3-stubs[sms-voice]` - Type annotations for
    [PinpointSMSVoice](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_sms_voice/)
    service.
  - `boto3-stubs[snow-device-management]` - Type annotations for
    [SnowDeviceManagement](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_snow_device_management/)
    service.
  - `boto3-stubs[snowball]` - Type annotations for
    [Snowball](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_snowball/)
    service.
  - `boto3-stubs[sns]` - Type annotations for
    [SNS](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_sns/) service.
  - `boto3-stubs[sqs]` - Type annotations for
    [SQS](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_sqs/) service.
  - `boto3-stubs[ssm]` - Type annotations for
    [SSM](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_ssm/) service.
  - `boto3-stubs[ssm-contacts]` - Type annotations for
    [SSMContacts](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_ssm_contacts/)
    service.
  - `boto3-stubs[ssm-incidents]` - Type annotations for
    [SSMIncidents](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_ssm_incidents/)
    service.
  - `boto3-stubs[ssm-sap]` - Type annotations for
    [SsmSap](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_ssm_sap/)
    service.
  - `boto3-stubs[sso]` - Type annotations for
    [SSO](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_sso/) service.
  - `boto3-stubs[sso-admin]` - Type annotations for
    [SSOAdmin](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_sso_admin/)
    service.
  - `boto3-stubs[sso-oidc]` - Type annotations for
    [SSOOIDC](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_sso_oidc/)
    service.
  - `boto3-stubs[stepfunctions]` - Type annotations for
    [SFN](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_stepfunctions/)
    service.
  - `boto3-stubs[storagegateway]` - Type annotations for
    [StorageGateway](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_storagegateway/)
    service.
  - `boto3-stubs[sts]` - Type annotations for
    [STS](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_sts/) service.
  - `boto3-stubs[support]` - Type annotations for
    [Support](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_support/)
    service.
  - `boto3-stubs[support-app]` - Type annotations for
    [SupportApp](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_support_app/)
    service.
  - `boto3-stubs[swf]` - Type annotations for
    [SWF](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_swf/) service.
  - `boto3-stubs[synthetics]` - Type annotations for
    [Synthetics](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_synthetics/)
    service.
  - `boto3-stubs[textract]` - Type annotations for
    [Textract](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_textract/)
    service.
  - `boto3-stubs[timestream-query]` - Type annotations for
    [TimestreamQuery](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_timestream_query/)
    service.
  - `boto3-stubs[timestream-write]` - Type annotations for
    [TimestreamWrite](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_timestream_write/)
    service.
  - `boto3-stubs[tnb]` - Type annotations for
    [TelcoNetworkBuilder](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_tnb/)
    service.
  - `boto3-stubs[transcribe]` - Type annotations for
    [TranscribeService](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_transcribe/)
    service.
  - `boto3-stubs[transfer]` - Type annotations for
    [Transfer](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_transfer/)
    service.
  - `boto3-stubs[translate]` - Type annotations for
    [Translate](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_translate/)
    service.
  - `boto3-stubs[voice-id]` - Type annotations for
    [VoiceID](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_voice_id/)
    service.
  - `boto3-stubs[vpc-lattice]` - Type annotations for
    [VPCLattice](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_vpc_lattice/)
    service.
  - `boto3-stubs[waf]` - Type annotations for
    [WAF](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_waf/) service.
  - `boto3-stubs[waf-regional]` - Type annotations for
    [WAFRegional](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_waf_regional/)
    service.
  - `boto3-stubs[wafv2]` - Type annotations for
    [WAFV2](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_wafv2/)
    service.
  - `boto3-stubs[wellarchitected]` - Type annotations for
    [WellArchitected](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_wellarchitected/)
    service.
  - `boto3-stubs[wisdom]` - Type annotations for
    [ConnectWisdomService](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_wisdom/)
    service.
  - `boto3-stubs[workdocs]` - Type annotations for
    [WorkDocs](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_workdocs/)
    service.
  - `boto3-stubs[worklink]` - Type annotations for
    [WorkLink](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_worklink/)
    service.
  - `boto3-stubs[workmail]` - Type annotations for
    [WorkMail](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_workmail/)
    service.
  - `boto3-stubs[workmailmessageflow]` - Type annotations for
    [WorkMailMessageFlow](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_workmailmessageflow/)
    service.
  - `boto3-stubs[workspaces]` - Type annotations for
    [WorkSpaces](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_workspaces/)
    service.
  - `boto3-stubs[workspaces-web]` - Type annotations for
    [WorkSpacesWeb](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_workspaces_web/)
    service.
  - `boto3-stubs[xray]` - Type annotations for
    [XRay](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_xray/) service.


