93 lines
3.1 KiB
Python
93 lines
3.1 KiB
Python
import os
|
||
from dotenv import load_dotenv
|
||
from kontur_focus.req import Request
|
||
|
||
|
||
class Focus(Request):
|
||
_basedir = os.path.abspath(os.path.dirname(__file__))
|
||
|
||
def __init__(self, inn: str, ogrn: str = None):
|
||
load_dotenv()
|
||
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: Информация о ЮЛ
|
||
:rtype: str
|
||
"""
|
||
return self.get(path='/req')
|
||
|
||
def advanced_info(self):
|
||
"""Расширенные сведения на основе ЕГРЮЛ/ЕГРИП
|
||
|
||
: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)
|
||
else:
|
||
file_path = os.path.join(path, filename)
|
||
|
||
try:
|
||
with open(file_path, mode='wb') as file:
|
||
file.write(response.content)
|
||
|
||
return f'File {file_path} saved'
|
||
except Exception:
|
||
return 'Saving error!'
|
||
|
||
def founders_history(self):
|
||
"""История владения организацией
|
||
|
||
:return: Набор полей с информацией об изменениях
|
||
:rtype: str
|
||
"""
|
||
return self.get('/foundersHistory')
|
||
|
||
def foreign_representatives(self):
|
||
"""Иностранные представительства и филиалы
|
||
|
||
:return: Набор данных о представительствах
|
||
:rtype: str
|
||
"""
|
||
return self.get('/foreignRepresentatives')
|
||
|
||
def government_lists(self):
|
||
"""Вхождение организации в государственные реестры
|
||
|
||
:return: Список реестров
|
||
:rtype: _type_
|
||
"""
|
||
response = self.get('/analyticLists')
|
||
|
||
return response['listsEntries']
|
||
|
||
def is_foreign_agent(self):
|
||
"""Проверка наличия организации в Едином реестре иностранных агентов
|
||
|
||
:return: Результат проверки
|
||
:rtype: bool
|
||
"""
|
||
foreign_agents_list = next(lst for lst in self.government_lists() if lst['id'] == 'fcfc856d-89f8-408b-afef-56750cb90fed')
|
||
|
||
return foreign_agents_list['isInList']
|