o
    ñ;—iÕ	  ã                   @   sÐ   d dl Z d dlmZ ddlmZ e  d¡Zdedefdd	„Z	dedefd
d„Z
dedefdd„Zdedefdd„Zddededefdd„Zdeeef ddfdd„Zdededdfdd„Zdeddfdd„ZdS )é    N)ÚMappingé   )ÚInvalidErrorz&^(?![0-9]+$)(?!-)[a-z0-9-]{,63}(?<!-)$ÚlabelÚreturnc                 C   s   t  | ¡d uS )N)Úsubdomain_regexÚmatch©r   © r
   úK/home/ubuntu/.local/lib/python3.10/site-packages/modal/_utils/name_utils.pyÚis_valid_subdomain_label   s   r   c                 C   s   t  dd|  ¡ ¡S )Nz
[^a-z0-9-]ú-)ÚreÚsubÚlowerr	   r
   r
   r   Úreplace_invalid_subdomain_chars   s   r   Únamec                 C   s,   t | ƒdkot d| ¡d uot d| ¡d u S )Né@   z^[a-zA-Z0-9-_.]+$z^ap-[a-zA-Z0-9]{22}$©Úlenr   r   ©r   r
   r
   r   Úis_valid_object_name   s
   þúr   c                 C   s   t | ƒdkot d| ¡d uS )Nr   z^[a-zA-Z0-9][a-zA-Z0-9-_.]+$r   r   r
   r
   r   Úis_valid_environment_name   s   r   é2   ÚtagÚ
max_lengthc                 C   s   d|› d}t t || ¡ƒS )z\Tags are alphanumeric, dashes, periods, and underscores, and not longer than the max_length.z^[a-zA-Z0-9._-]{1,z}$)Úboolr   r   )r   r   Úpatternr
   r
   r   Úis_valid_tag#   s   r   Útagsc                 C   sZ   d}d}|   ¡ D ]"\}}t||ƒstd|›d|› ƒ‚t||ƒs*td|›d|› ƒ‚qd S )Nzt

Tags may contain only alphanumeric characters, dashes, periods, or underscores, and must be 63 characters or less.é?   zInvalid tag key: Ú.zInvalid tag value: )Úitemsr   r   )r   Úrulesr   ÚkeyÚvaluer
   r
   r   Úcheck_tag_dict)   s   ÿ

ÿýr&   Úobject_typec                 C   s&   d|› d| › d}t | ƒst|ƒ‚d S )NzInvalid z name: 'z¢'.

Names may contain only alphanumeric characters, dashes, periods, and underscores, must be shorter than 64 characters, and cannot conflict with App ID strings.)r   r   )r   r'   Úmessager
   r
   r   Úcheck_object_name6   s
   ÿÿr)   c                 C   s    d| › d}t | ƒst|ƒ‚d S )NzInvalid environment name: 'z¶'.

Environment names can only start with alphanumeric characters, may contain only alphanumeric characters, dashes, periods, and underscores, and must be shorter than 64 characters.)r   r   )r   r(   r
   r
   r   Úcheck_environment_name@   s
   
ÿÿr*   )r   )r   Úcollections.abcr   Ú	exceptionr   Úcompiler   Ústrr   r   r   r   r   Úintr   r&   r)   r*   r
   r
   r
   r   Ú<module>   s   

