
    H&h/	                     4    d dl Z d dlmZ  G d de      Zd Zy)    N)colc                   *    e Zd ZdZd Zd ZddZd Zy)Idsz
    ids: A class for taxonomic identifiers

    Usage::

      import pytaxize

      res = pytaxize.Ids('Poa annua', db='col')
      res.get_colid()
    c                      || _         || _        y )N)dbname)selfr   r   s      [/mounts/lovelace/software/anaconda3/envs/py312/lib/python3.12/site-packages/pytaxize/ids.py__init__zIds.__init__   s    	    c                 h    dt        |       j                  d| j                  d| j                  dS )N< :>)type__name__r   r   r	   s    r
   __repr__zIds.__repr__   s!    !%d!4!4dggtyyIIr   c                     | j                   }d }t        |      }g }t        t        |            D ]  }|j	                   |||   ||               |S )z7
      pytaxize.get_colid(sciname=['Poa annua'])
      c                    | g} t        j                  |       }|d   j                  d   dk(  rt        j                  d| z   dz          d}n0|d   g d   }g d|_        |d   j                  j                         }t        |      dk(  rt        j                  d	       d}t        |      d
kD  r|dk(  rt        d| d   z   dz          t        |       t        d      }t        t        |            dk(  rd}n	 t        |      t        |j                  d         v r5t        |      }t        d|d   |   z   dz          t        |d   |         }|S d}t        d       |S d}|S )Nr   r   zRetrieving data for taxon ''none)idr   rankname_status)colidr   r   r   r   zENot found. Consider checking the spelling or alternate classification   Tz&
More than one eolid found for taxon 'z'
z
 Enter rownumber of taxon:

notakezInput accepted, took eolid 'z'.
z
Returned 'none'!

)r   
col_searchshapesysexitcolumnsvaluestolistlenprintinputstrintrange)scinameaskverbosedfr   takes         r
   funzIds.get_colid.<locals>.fun   sd   )^^)a5;;q>Q
((07:S@
A"!u78"?"*'{!!((*" r7a<
((Z
[" r7Q;Dy?'!*LuTUb	?@s4y>Q&#Dt9bhhqk 22t9D82g;t;LLvUVR[./B 		  B23 	 	r   )r   	converterr-   r(   append)r	   r/   r0   r.   r3   outis          r
   	get_colidzIds.get_colid   s\     		g%N '"gcS\" 2!

3wqz3012 jr   c                      | j                   dz   S )NBoor   r   s    r
   	getcolurlzIds.getcolurlK   s    YYr   N)TT)r   
__module____qualname____doc__r   r   r8   r;    r   r
   r   r      s    	
J1fr   r   c                 >    | j                   j                  dk(  r| gS | S )Nr+   )	__class__r   )xs    r
   r4   r4   N   s     {{u$s
r   )r#   pytaxizer   objectr   r4   r?   r   r
   <module>rE      s    
 H& HTr   