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']