Ë
    qûàg   ã                   ó6   — d dl mZ d dlZd dlZ G d„ de«      Zy)é    )Ú	ContainerNc                   ó<   — e Zd ZdZdgZd
d„Zd„ Zd„ Zd„ Zd„ Z	d„ Z
y	)ÚInternalIPSa  
    InternalIPS allows to specify CIDRs for INTERNAL_IPS.

    It takes an iterable of ip addresses or ranges.

    Inspiration taken from netaddr.IPSet, please use it if you can since
    it support more advanced features like optimizing ranges and lookups.
    Ú_cidrsc                 ó¶   — g | _         |D ]0  }| j                   j                  t        j                  |«      «       Œ2 |rt	        | j                   «      | _         yy)zí
        Constructor.

        :param iterable: (optional) an iterable containing IP addresses and
            subnets.

        :param sort_by_size: sorts internal list according to size of ip
            ranges, largest first.
        N)r   ÚappendÚ	ipaddressÚ
ip_networkÚsorted)ÚselfÚiterableÚsort_by_sizeÚaddresss       úb/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/django_extensions/utils/internal_ips.pyÚ__init__zInternalIPS.__init__   sQ   € ð ˆŒØò 	>ˆGØ�K‰K×Ñœy×3Ñ3°GÓ<Õ=ð	>ñ Ü  §¡Ó-ˆD�Kð ó    c                 ó\   — t        j                  |«      }| j                  D ]  }||v sŒ y y)z�
        :param ip: An IP address or subnet.

        :return: ``True`` if IP address or subnet is a member of this InternalIPS set.
        TF)r	   Ú
ip_addressr   )r   r   Úcidrs      r   Ú__contains__zInternalIPS.__contains__$   s6   € ô ×&Ñ& wÓ/ˆØ—K‘Kò 	ˆDØ˜$ŠÙð	ð r   c                 ó   — t        d«      ‚)z@
        Raises ``TypeError`` if this method is called.
        z&InternalIPS containers are unhashable!)Ú	TypeError©r   s    r   Ú__hash__zInternalIPS.__hash__0   s   € ô Ð@ÓAÐAr   c                 ó:   — t        d„ | j                  D «       «      S )zC
        :return: the cardinality of this InternalIPS set.
        c              3   ó4   K  — | ]  }|j                   –— Œ y ­w)N)Únum_addresses)Ú.0r   s     r   ú	<genexpr>z&InternalIPS.__len__.<locals>.<genexpr>:   s   è ø€ Ò>¨$�4×%Õ%Ñ>ùs   ‚)Úsumr   r   s    r   Ú__len__zInternalIPS.__len__6   s   € ô Ñ>°$·+±+Ô>Ó>Ð>r   c                 ó:   — t        j                  | j                  Ž S )zP
        :return: an iterator over the IP addresses within this IP set.
        )Ú	itertoolsÚchainr   r   s    r   Ú__iter__zInternalIPS.__iter__<   s   € ô �‰ §¡Ð,Ð,r   c                 ó,   — t        | j                  «      S )zU
        :return: an iterator over individual IP subnets within this IP set.
        )r   r   r   s    r   Ú
iter_cidrszInternalIPS.iter_cidrsB   s   € ô �d—k‘kÓ"Ð"r   N)F)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú	__slots__r   r   r   r!   r%   r'   © r   r   r   r      s/   „ ñð �
€Ió.ò"
òBò?ò-ó#r   r   )Úcollections.abcr   r	   r#   r   r-   r   r   ú<module>r/      s   ðå %Û Û ô?#�)õ ?#r   