File: //home/arjun/projects/env/lib/python3.10/site-packages/boto/gs/__pycache__/cors.cpython-310.pyc
o
we% � @ sf d dl Z d dlmZ d dlmZ d dlmZ dZdZdZ dZ
d Zd
ZdZ
dZd
ZG dd� dej�ZdS )� N)�User)�InvalidCorsError)�handler�
CorsConfig�Cors�Origins�Origin�Methods�Method�ResponseHeaders�ResponseHeader� MaxAgeSecc @ s8 e Zd ZdZdd� Zdd� Zdd� Zdd � Zd
d� ZdS )
r z0Encapsulates the CORS configuration XML documentc C sP g | _ g | _g | _ttgttgttgt g i| _
tttg| _d| _d | _
d | _d S )Nr )�cors�collections�elements�ORIGINS�ORIGIN�METHODS�METHOD�HEADERS�HEADER� MAXAGESEC�legal_collections�legal_elements�parse_level�
collection�element)�self� r �E/home/arjun/projects/env/lib/python3.10/site-packages/boto/gs/cors.py�__init__( s �
z
Cors.__init__c C s | j |krtd|| j f ��dS )z#Verify parse level for a given tag.z"Invalid tag %s at parse level %d: N)r r )r �tag�levelr r r �validateParseLevelG s
��zCors.validateParseLevelc C s� |t kr| �|d� | jd7 _dS |tkr&| �|d� | jd7 _dS || jv r=| �|d� | jd7 _|| _dS || jv ri| �|d� | jdu rStd| ��|| j| j vrdtd|| jf ��|| _dS td| ��) �,SAX XML logic for parsing new element found.r � � � N�Tag %s found outside collection�#Tag %s not allowed in %s collectionzUnsupported tag ) �CORS_CONFIGr# r �CORSr r r r r )r �name�attrs�
connectionr r r �startElementM s(
�
zCors.startElementc C sv |t kr| �|d� | jd8 _dS |tkr0| �|d� | jd8 _| j�| j� g | _dS || jv rq| �|d� || jkrIt d| j|f ��| jd8 _| j| s`| j�||�
� f� n | j�|| jf� g | _d| _dS || jv r�| �|d� | jdu r�t d| ��|| j| j vr�t d|| jf ��|| j
kr�t d| j
|f ��| j�||�
� f� d| _
dS t d| ��) r$ r% r&