File: //usr/lib/python3/dist-packages/boto/s3/__pycache__/connection.cpython-310.pyc
o
ckF[�g � @ s, d dl Zd dlZd dlmZmZ d dlZd dlmZ d dl Z
d dlmZ d dl
m
Z
d dlmZ d dlmZ d dlmZ d d lmZmZ d
d� Zdd
� ZG dd� de�ZG dd� de�ZG dd� de�ZG dd� de�ZG dd� de�ZG dd� de�ZG dd� de�Z G dd� de�Z!G dd� de�Z"dS ) � N)�six�urllib)�detect_potential_s3sigv4)�AWSAuthConnection)�handler)�Bucket)�Key)� ResultSet)�BotoClientError�S3ResponseErrorc C s | d � � s
td��dS )aJ
Bucket names must not contain uppercase characters. We check for
this by appending a lowercase character and testing with islower().
Note this also covers cases like numeric bucket names with dashes.
>>> check_lowercase_bucketname("Aaaa")
Traceback (most recent call last):
...
BotoClientError: S3Error: Bucket names cannot contain upper-case
characters when using either the sub-domain or virtual hosting calling
format.
>>> check_lowercase_bucketname("1234-5678-9123")
True
>>> check_lowercase_bucketname("abcdefg1234")
True
�azuBucket names cannot contain upper-case characters when using either the sub-domain or virtual hosting calling format.T)�islowerr
)�n� r �4/usr/lib/python3/dist-packages/boto/s3/connection.py�check_lowercase_bucketname( s r c s � fdd�}|S )Nc s( t | �dkr
t| d �r
� | i |��S )N� � )�lenr )�args�kwargs��fr r �wrapperB s z(assert_case_insensitive.<locals>.wrapperr )r r r r r �assert_case_insensitiveA s r c @ s: e Zd Zdd� Zd
dd�Zdd� Zd
dd �Zd
d
d�ZdS )�_CallingFormatc C s dS �N� r ��self�server�bucketr r r �get_bucket_serverK � z _CallingFormat.get_bucket_serverr c C s2 d| }|| � ||�7 }||�| �||��7 }|S )Nz%s://��
build_host�get_path�build_path_base�r �
connection�protocolr r! �key�url_baser r r �build_url_baseN s z_CallingFormat.build_url_basec C s |dkr|S | � ||�S r )r"