Added docs generator, splitted methods
This commit is contained in:
@@ -2,45 +2,47 @@ import requests
|
||||
import os
|
||||
from dotenv import load_dotenv
|
||||
from kontur_focus.government_lists import gl
|
||||
from kontur_focus.req import Request
|
||||
|
||||
|
||||
class Focus:
|
||||
_base_url = None
|
||||
_access_key = None
|
||||
_inn = None
|
||||
_orgn = None
|
||||
class Focus(Request):
|
||||
_basedir = os.path.abspath(os.path.dirname(__file__))
|
||||
|
||||
def __init__(self, inn: str, ogrn: str = None):
|
||||
load_dotenv()
|
||||
self._base_url = os.environ.get('BASE_URL')
|
||||
self._access_key = os.environ.get('ACCESS_KEY')
|
||||
self._inn = inn
|
||||
self._orgn = ogrn
|
||||
|
||||
def _r_get(self, path: str):
|
||||
full_url = f'{self._base_url}{path}'
|
||||
payload = {'key': self._access_key, 'inn': self._inn, 'ogrn': self._orgn}
|
||||
|
||||
try:
|
||||
response = requests.get(url=full_url, params=payload)
|
||||
|
||||
if response.headers['Content-Type'] == 'application/pdf':
|
||||
return response
|
||||
else:
|
||||
return response.json()
|
||||
except Exception:
|
||||
return 'Request error!'
|
||||
super().__init__(
|
||||
base_url=os.environ.get('FOCUS_BASE_URL'),
|
||||
access_key=os.environ.get('FOCUS_ACCESS_KEY'),
|
||||
inn=inn,
|
||||
ogrn=ogrn
|
||||
)
|
||||
|
||||
def base_info(self):
|
||||
return self._r_get('/req')
|
||||
"""Выгрузка базовых реквизитов Российских юридических лиц и индивидуальных предпринимателей
|
||||
|
||||
:return: Информация о ЮЛ
|
||||
:rtype: str
|
||||
"""
|
||||
return self.get(path='/req')
|
||||
|
||||
def advanced_info(self):
|
||||
return self._r_get('/egrDetails')
|
||||
"""Расширенные сведения на основе ЕГРЮЛ/ЕГРИП
|
||||
|
||||
def excerpt(self, path=None):
|
||||
response = self._r_get('/excerpt')
|
||||
filename = f'{self._inn}_report.pdf'
|
||||
:return: Информация о ЮЛ
|
||||
:rtype: str
|
||||
"""
|
||||
return self.get('/egrDetails')
|
||||
|
||||
def excerpt(self, path: str = None):
|
||||
"""Выписка из ЕГРЮЛ/ЕГРИП
|
||||
|
||||
:param path: Путь выгрузки файла. Если не указан, выгружается в текущий каталог.
|
||||
:type path: str, необязательный
|
||||
:return: Результат и путьвыгрузки
|
||||
:rtype: str
|
||||
"""
|
||||
response = self.get('/excerpt')
|
||||
filename = f'{self.inn}_report.pdf'
|
||||
|
||||
if not path:
|
||||
file_path = os.path.join(self._basedir, filename)
|
||||
@@ -51,18 +53,28 @@ class Focus:
|
||||
with open(file_path, mode='wb') as file:
|
||||
file.write(response.content)
|
||||
|
||||
return 'File saved'
|
||||
return f'File {file_path} saved'
|
||||
except Exception:
|
||||
return 'Saving error!'
|
||||
|
||||
def founders_history(self):
|
||||
return self._r_get('/foundersHistory')
|
||||
"""История владения организацией
|
||||
|
||||
:return: Набор полей с информацией об изменениях
|
||||
:rtype: str
|
||||
"""
|
||||
return self.get('/foundersHistory')
|
||||
|
||||
def foreign_representatives(self):
|
||||
return self._r_get('/foreignRepresentatives')
|
||||
"""Иностранные представительства и филиалы
|
||||
|
||||
def full_analytics(self):
|
||||
return self._r_get('/analytics')
|
||||
:return: Набор данных о представительствах
|
||||
:rtype: str
|
||||
"""
|
||||
return self.get('/foreignRepresentatives')
|
||||
|
||||
def full_analytics(self): # DEPRECATED
|
||||
return self.get('/analytics')
|
||||
|
||||
@staticmethod
|
||||
def government_lists():
|
||||
@@ -78,9 +90,9 @@ class Focus:
|
||||
:return: json
|
||||
"""
|
||||
if not list_name:
|
||||
return self._r_get('/analyticLists')
|
||||
return self.get('/analyticLists')
|
||||
else:
|
||||
data = self._r_get('/analyticLists')[0]['listsEntries']
|
||||
data = self.get('/analyticLists')[0]['listsEntries']
|
||||
list_id = next(item['uid'] for item in gl if item['name'] == list_name)
|
||||
|
||||
return next(lst['isInList'] for lst in data if lst['id'] == list_id)
|
||||
|
||||
Reference in New Issue
Block a user