# Path: opentracing_instrumentation/client_hooks/boto3.py
# class Boto3Patcher(Patcher):
#         class InstrumentedExecutor(_Executor):
#     S3_FUNCTIONS_TO_INSTRUMENT = (
#         'copy',
#         'download_file',
#         'download_fileobj',
#         'upload_file',
#         'upload_fileobj',
#     )
#     def __init__(self):
#     def _install_patches(self):
#     def _reset_patches(self):
#     def set_request_id_tag(span, response):
#     def _get_service_action_call_wrapper(self):
#         def service_action_call_wrapper(service, parent, *args, **kwargs):
#     def _get_client_make_api_call_wrapper(self):
#         def make_api_call_wrapper(client, operation_name, api_params):
#     def _get_s3_call_wrapper(self, original_func):
#         def s3_call_wrapper(*args, **kwargs):
#     def perform_call(self, original_func, kind, service_name, operation_name,
#                      *args, **kwargs):
#     def _get_instrumented_executor_cls(self):
#             def submit(self, task, *args, **kwargs):


import datetime
import io
import boto3
import mock
import pytest
import requests
import testfixtures
    import moto
    import moto
        import moto
from botocore.exceptions import ClientError
from opentracing.ext import tags
from opentracing_instrumentation.client_hooks import boto3 as boto3_hooks
        # to catch an error since it doesn't exist until it's raised
        if error.__class__.__name__ != 'ResourceNotFoundException':
            raise

    create_users_table(dynamodb)

    # waiting until the table exists
    dynamodb.meta.client.get_waiter('table_exists').wait(TableName='users')

    return dynamodb


@pytest.fixture
def s3_mock():
    with moto.mock_s3():
        s3 = boto3.client('s3', region_name='us-east-1')
        yield s3


@pytest.fixture
def s3():
    return boto3.client('s3', **S3_CONFIG)


@pytest.fixture(autouse=True)
def patch_boto3():
    boto3_hooks.install_patches()
    try:
        yield
    finally:

# Path: opentracing_instrumentation/client_hooks/boto3.py
# class Boto3Patcher(Patcher):
#         class InstrumentedExecutor(_Executor):
#     S3_FUNCTIONS_TO_INSTRUMENT = (
#         'copy',
#         'download_file',
#         'download_fileobj',
#         'upload_file',
#         'upload_fileobj',
#     )
#     def __init__(self):
#     def _install_patches(self):
#     def _reset_patches(self):
#     def set_request_id_tag(span, response):
#     def _get_service_action_call_wrapper(self):
#         def service_action_call_wrapper(service, parent, *args, **kwargs):
#     def _get_client_make_api_call_wrapper(self):
#         def make_api_call_wrapper(client, operation_name, api_params):
#     def _get_s3_call_wrapper(self, original_func):
#         def s3_call_wrapper(*args, **kwargs):
#     def perform_call(self, original_func, kind, service_name, operation_name,
#                      *args, **kwargs):
#     def _get_instrumented_executor_cls(self):
#             def submit(self, task, *args, **kwargs):


# Path: tests/opentracing_instrumentation/test_boto3.py
import datetime
import io
import boto3
import mock
import pytest
import requests
import testfixtures
    import moto
    import moto
        import moto
from botocore.exceptions import ClientError
from opentracing.ext import tags
from opentracing_instrumentation.client_hooks import boto3 as boto3_hooks

        # to catch an error since it doesn't exist until it's raised
        if error.__class__.__name__ != 'ResourceNotFoundException':
            raise

    create_users_table(dynamodb)

    # waiting until the table exists
    dynamodb.meta.client.get_waiter('table_exists').wait(TableName='users')

    return dynamodb


@pytest.fixture
def s3_mock():
    with moto.mock_s3():
        s3 = boto3.client('s3', region_name='us-east-1')
        yield s3


@pytest.fixture
def s3():
    return boto3.client('s3', **S3_CONFIG)


@pytest.fixture(autouse=True)
def patch_boto3():
    boto3_hooks.install_patches()
    try:
        yield
    finally:

        boto3_hooks.reset_patches()