Странное поведение загрузчика модуля после исправления обезьяны urllib3 - PullRequest
0 голосов
/ 12 января 2019

Я попытался установить патч urllib3 для отслеживания boto3 запросов с использованием jager . Упрощенная версия кода:

from urllib3.connection import HTTPConnection
import os
import sys
import boto3

class TracingHTTPConnection(HTTPConnection):
    def send(self, data):
        print(data)
        HTTPConnection.send(self, data)

sys.modules['urllib3.connection'].HTTPConnection = TracingHTTPConnection

from boto3.session import Session

ACCESS_KEY = os.environ.get('AWS_ACCESS_KEY_ID')
SECRET_KEY = os.environ.get('AWS_SECRET_ACCESS_KEY')

session = Session(aws_access_key_id=ACCESS_KEY,
                  aws_secret_access_key=SECRET_KEY)

s3 = session.resource('s3')
your_bucket = s3.Bucket('colleagial-manager')

print(len([file for file in your_bucket.objects.all()]))

Но этот код по какой-то причине не работает (в строке 8 нет запроса). Но следующий код работает:

from urllib3.connection import HTTPConnection
import os
import sys
import boto3

_send = HTTPConnection.send
def send(self, data):
    print(data)
    _send(self, data)

HTTPConnection.send = send

from boto3.session import Session

ACCESS_KEY = os.environ.get('AWS_ACCESS_KEY_ID')
SECRET_KEY = os.environ.get('AWS_SECRET_ACCESS_KEY')

session = Session(aws_access_key_id=ACCESS_KEY,
                  aws_secret_access_key=SECRET_KEY)

s3 = session.resource('s3')
your_bucket = s3.Bucket('colleagial-manager')

print(len([file for file in your_bucket.objects.all()]))

Я не могу понять, почему. Может кто-нибудь помочь мне понять, пожалуйста.

Системная информация:

OS: Windows 10 x64
Python 3.7.2
boto3 1.9.20
botocore 1.12.20
urllib3==1.23
...