o
    iV                     @   s   d dl mZ d dlmZ d dlmZ dZdd ZdeiZedded	Z	G d
d de	Z
dZddei ZdeiZededZG dd deZdZdeed ZdeiZededZG dd deZdeef ZdeiZededZG dd deZdS )    )SimpleModel)re_match_with_span)Unicodez'([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})c                 C   sD   t | |o!|d u p!| jjt|  ko| jjkn  o!t| j|S N)r   validate_string
Attributesmin_lenlenmax_lenr   clsvalue r   ]/var/www/html/LicenciasMIG/venv/lib/python3.10/site-packages/spyne/model/primitive/network.py_validate_string   s
   $
r   N   )r
   r   patternc                   @   B   e Zd ZdZdZdZG dd dejZedd Z	edd	 Z
d
S )
MacAddressz#Unicode subclass for a MAC address.http://spyne.io/schemaaddr_macc                   @      e Zd ZdZdS )zMacAddress.AttributesN__name__
__module____qualname__serialize_asr   r   r   r   r   0       r   c                 C      t | jj | |S r   )_mac_validater   r   r   r   r   r   r   3      zMacAddress.validate_stringc                 C      t | |S r   r   validate_nativer   r   r   r   r#   7      zMacAddress.validate_nativeN)r   r   r   __doc____namespace____type_name___MacBaser   staticmethodr   r#   r   r   r   r   r   *       
r   z((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])z(%(P4)s\.){3,3}%(P4)sP4   )r   c                   @   r   )Ipv4Addressz%Unicode subclass for an IPv4 address.r   	addr_ipv4c                   @   r   )zIpv4Address.AttributesNr   r   r   r   r   r   M   r   r   c                 C   r   r   )_ipv4_validater   r   r   r   r   r   r   P   r    zIpv4Address.validate_stringc                 C   r!   r   r"   r   r   r   r   r#   T   r$   zIpv4Address.validate_nativeN)r   r   r   r%   r&   r'   	_Ipv4Baser   r)   r   r#   r   r   r   r   r-   G   r*   r-   z[0-9a-fA-F]{1,4}a:  ((%(P6)s:){7,7}%(P6)s|(%(P6)s:){1,7}:|(%(P6)s:){1,6}:%(P6)s|(%(P6)s:){1,5}(:%(P6)s){1,2}|(%(P6)s:){1,4}(:%(P6)s){1,3}|(%(P6)s:){1,3}(:%(P6)s){1,4}|(%(P6)s:){1,2}(:%(P6)s){1,5}|%(P6)s:((:%(P6)s){1,6})|:((:%(P6)s){1,7}|:)|fe80:(:%(P6)s){0,4}%%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}%(A4)s|(%(P6)s:){1,4}:%(A4)s))P6A4-   c                   @   r   )Ipv6Addressz%Unicode subclass for an IPv6 address.r   	addr_ipv6c                   @   r   )zIpv6Address.AttributesNr   r   r   r   r   r   x   r   r   c                 C   r   r   )_ipv6_validater   r   r   r   r   r   r   {   r    zIpv6Address.validate_stringc                 C   r!   r   r"   r   r   r   r   r#      r$   zIpv6Address.validate_nativeN)r   r   r   r%   r&   r'   	_Ipv6Baser   r)   r   r#   r   r   r   r   r4   r   r*   r4   z(%s|%s)c                   @   r   )	IpAddressz-Unicode subclass for an IPv4 or IPv6 address.r   addr_ipc                   @   r   )zIpAddress.AttributesNr   r   r   r   r   r      r   r   c                 C   r   r   )_ip_validater   r   r   r   r   r   r      r    zIpAddress.validate_stringc                 C   r!   r   r"   r   r   r   r   r#      r$   zIpAddress.validate_nativeN)r   r   r   r%   r&   r'   _IpAddressBaser   r)   r   r#   r   r   r   r   r8      r*   r8   )spyne.model._baser   spyne.model.primitive._baser   spyne.model.primitive.stringr   	_PATT_MACr   r   r(   r   _PATT_IPV4_FRAG
_PATT_IPV4r/   r0   r-   _PATT_IPV6_FRAG
_PATT_IPV6r6   r7   r4   _PATT_IPV4V6r:   r;   r8   r   r   r   r   <module>   s8   