PubTator_search.cpython-310.pyc•12.3 kB
o
ȿ�g�@ � @ s� d dl Z d dlZd dlZd dlZd dlmZmZmZm Z m
Z
G dd� d�Zedk�rid dl
Z
d dlZd dlmZ ejejdd� e�e�Ze
jd d
�Zejdg d�d
dd� e�� Z�zz�eddd�Zdd� Zdd� Zdd� Zdd� Zeeeed�Zejd
kr�e� � D ]l\Z!Z"ze�#de!� �� e"� Z$e�#de!� d�� W q� e%y� Z& ze�'de!� d e(e&�� d�� W Y dZ&[&q�dZ&[&ww zeej � Z$e�#dej� �� W n e%y� Z& ze�'dej� d e(e&�� �� W Y dZ&[&ndZ&[&ww W nQ e j)j*�y Z& ze�'d!e&� �� W Y dZ&[&nAdZ&[&w e+�y( Z& ze�'d"e&� �� W Y dZ&[&n/dZ&[&w e%�yB Z& ze�'d#e&� �� W Y dZ&[&ndZ&[&ww W ej,�-� dS W ej,�-� dS W ej,�-� dS W ej,�-� dS ej,�-� w dS )$� N)�List�Dict�Optional�Union� Generatorc @ s� e Zd ZdZdZd2dedefdd�Zd d
� Z
d3dee de de de
deee f f
dd�Z
d4de dee dee defdd�Z d5de dee dee dee def
dd �Z ! "d6de d#ed$ee d%edeeddf f
d&d'�Z ( d7d)e de d*ee d$ee deeddf f
d+d,�Zd-edee fd.d/�Z
"d8de de d$ee de
d%edeeee f ddf fd0d1�ZdS )9�PubTator3APIz3https://www.ncbi.nlm.nih.gov/research/pubtator3-apiz8https://www.ncbi.nlm.nih.gov/CBBresearch/Lu/Demo/RESTful� � �max_retries�timeoutc C s: t �� | _| jj�ddd�� d| _|| _|| _d| _d S )NzPubTator3API Python Client/2.1zapplication/json)z
User-Agent�Acceptg��(\���?r ) �requestsZSession�session�headers�update�
request_delayr
r �_last_request_time)�selfr
r � r �9D:\code\github\mcp\PubTator-MCP-Server\pubtator_search.py�__init__ s
�
zPubTator3API.__init__c O s� t � � }|| j }|| jk rt �| j| � | j|d<