猴子修补第三方库



我正在使用minio客户端并收到以下错误:

minio.error.InvalidEndpointError: InvalidEndpointError: message: Hostname does not meet URL standards.

这是由函数is_valid_endpoint(endpoint)中的正则表达式不正确minio.helpers:281引起的

上游问题已打开,我想学习如何在导入 Minio 对象时用f = lambda: True修补它。

from minio import Minio
# credentials['S3_ENDPOINT_URL'] = 'something.westeurope.azurecontainer.io'
minio_client = Minio(credentials['S3_ENDPOINT_URL'],
                     access_key=credentials['S3_ACCESS_KEY'],
                     secret_key=credentials['S3_SECRET_KEY'],
                     secure=USE_SSL)

有人可以启发我如何修补这个猴子吗?我以前只将其用于函数定义,而不是用于类。

因此,

对于猴子补丁,您可以简单地替换函数

首先定义一个始终返回 true 的函数:

def is_valid_replacer(endpoint):
    return True

然后只需替换函数

import minio
minio.helpers.is_valid_endpoint = is_valid_replacer
#### Your code here ####

如果我理解你,这应该可以工作。

最新更新