Files
kontur-focus-lib/kontur_focus/focus.py

93 lines
3.1 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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']