
    Vh	                     l    d dl mZmZmZ eZddgddZdZdZdZ	d d	l
Z
d d
lmZ d dlmZ  G d de      Zy	)    )absolute_importdivisionprint_functionz1.1preview	certified)metadata_versionstatussupported_bya  
    name: interface_range
    short_description: query interfaces from a range or comma separated list of ranges
    description:
      - this lookup returns interfaces from a range or comma separated list of ranges given to it
    notes:
      - duplicate interfaces from overlapping ranges will only be returned once
    options:
      _terms:
        description: comma separated strings of interface ranges
        required: True
z
- name: "loop through range of interfaces"
  ansible.builtin.debug:
    msg: "{{ item }}"
  with_items: "{{ query('cisco.aci.interface_range', '1/1-4,1/20-25', '1/5', '1/2/3/8-10', '5/0-2') }}"
zO
  _list:
    description: list of interfaces
    type: list
    elements: str
N)AnsibleError)
LookupBasec                       e Zd Zd Zy)LookupModulec                    g }g }dj                  |      j                  dd      j                  d      D ]  }t        j                  d|      r|j                  dd      d   }|j                  dd      d   j                  d      \  }}t        |      t        |      kD  rHt        t        |      t        |      dz         D ]#  }	|j                  d	j                  ||	             % |j                  |       t        j                  d
|      r|j                  |       |j                  |        |rt        dj                  |            t        t        |            S )N,  z((\d+/)+\d+-\d+$)/   r   -z{0}/{1}z((\d+/)+\d+$)zInvalid range inputs, {0})joinreplacesplitre	fullmatchrsplitintrangeappendformatr   sortedset)
selftermskwargs
interfaceserrorsinterface_rangeslotsrange_start
range_stopxs
             l/home/dcms/DCMS/lib/python3.12/site-packages/ansible_collections/cisco/aci/plugins/lookup/interface_range.pyrunzLookupModule.run/   s?   
"xx66sB?EEcJ 	/O||0/B'..sA6q9*9*@*@a*H*K*Q*QRU*V'Zz?S%55"3{#3S_q5HI F")))*:*:5!*DEF MM/2.@!!/2o.	/ :AA&IJJ c*o&&    N)__name__
__module____qualname__r-    r.   r,   r   r   .   s    'r.   r   )
__future__r   r   r   type__metaclass__ANSIBLE_METADATADOCUMENTATIONEXAMPLESRETURNr   ansible.errorsr   ansible.plugins.lookupr   r   r2   r.   r,   <module>r<      sO    A @(-)Vab 
 
 ' -': 'r.   