
    ?wgr                         d Z ddZd Zd Zy)zList-related functionsc                     |r(t        |       dkD  rt        dj                  |             t        |       dk(  r| d   S |rt        dj                  |             y)zctransforms [Something] -> Something. By default, raises a ValueError for
    any other list values.   zMore than one element in {}    zNothing in {}N)len
ValueErrorformat)
list_thingcomplains     B/var/www/horilla/myenv/lib/python3.12/site-packages/utils/lists.pyunlistr      s[     C
Oa'6==jIJJ	ZA	!}//
;<<    c                     | j                   }g }| D ]  }	 |j                  t        |               ||      S # t        $ r |j	                  |       Y Dw xY w)zbFully flattens an iterable:
    In: flatten([1,2,3,4,[5,6,[7,8]]])
    Out: [1,2,3,4,5,6,7,8]
    )	__class__extendflatten	TypeErrorappend)iterable	containerplaceholderitems       r
   r   r      sf    
 ""IK %	%wt}-% [!!  	%t$	%s   9AAc                 h    g }| D ]*  } ||      }t        |      dkD  s|j                  |       , |S )zofunc must take an item and return an interable that contains that
    item. this is flatmap in the classic moder   )r   r   )r   funcresultselementresults        r
   flat_mapr   "   s?     G #gv;?NN6"# Nr   N)T)__doc__r   r   r    r   r
   <module>r      s    
""r   