
    H&h                         d dl Z d dlZd dlZd dlmZ  G d de      Zd Zd	dZd
dZ	e
dk(  rd dlZ ej                          yy)    N)Refactorc                       e Zd Zy)NoResultExceptionN)__name__
__module____qualname__     [/mounts/lovelace/software/anaconda3/envs/py312/lib/python3.12/site-packages/pytaxize/gni.pyr   r      s    r
   r   c                 l    d}dj                  |       } d| i}t        ||d      j                         }|S )z
    Uses the Global Names Index to parse scientific names

    :param names: List of scientific names.

    Usage::

        import pytaxize
        pytaxize.gni_parse(names = ['Cyanistes caeruleus','Helianthus annuus'])
    z'http://gni.globalnames.org/parsers.json|namesgetpayloadrequest)joinr   json)r   urlparamsouts       r   	gni_parser   	   s<     4CHHUOEuF
3
6
;
;
=CJr
   c                 N    d}| ||d}t        ||d      j                         }|S )a  
    Search for names against the Global names index

    :param search_term: Search term
    :param per_page: Items to return per page
    :param page: Page to return

    Usage::

        import pytaxize
        pytaxize.gni_search(search_term = 'ani*')
    z,http://gni.globalnames.org/name_strings.json)search_termper_pagepager   r   )r   r   )r   r   r   r   r   r   s         r   
gni_searchr      s1     9C(hMF
3
6
;
;
=CJr
   c                     d}|t        |       dg}dj                  |      }d|i}t        ||d      j                         }	 |S # t        $ r t        d| z        w xY w)zV
    Usage::

        import pytaxize
        pytaxize.gni_details(id = 17802847)
    z(http://gni.globalnames.org/name_strings/z.json all_recordsr   r   z#GNI didn't return a result (id: %s))strr   r   r   
ValueErrorr   )idr    r   mylisturl2r   r   s          r   gni_detailsr&   ,   st     5C3r7G$F776?D[)F
4
7
<
<
>CL
 L E JKKLs   A A__main__)zani*      )i_r)   )sysrequestsr   pytaxize.refactorr   	Exceptionr   r   r   r&   r   doctesttestmodr	   r
   r   <module>r0      sK    
   &		 	"$L" zGOO r
   