Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 227905dc04 | |||
| e03aed78f0 | |||
| 65c04d1578 |
Binary file not shown.
Binary file not shown.
@@ -310,15 +310,18 @@
|
|||||||
<span class="k">return</span> <span class="n">fal_data</span>
|
<span class="k">return</span> <span class="n">fal_data</span>
|
||||||
|
|
||||||
<span class="k">def</span><span class="w"> </span><span class="nf">company_in_sanctions_lists</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">dict</span><span class="p">:</span>
|
<span class="k">def</span><span class="w"> </span><span class="nf">company_in_sanctions_lists</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">dict</span><span class="p">:</span>
|
||||||
<span class="w"> </span><span class="sd">"""Вхождение организации и ее руководителей в санкционные списки</span>
|
<span class="w"> </span><span class="sd">"""Вхождение организации и ее руководителей в санкционные списки с датами вхождения по типам санкций</span>
|
||||||
|
|
||||||
<span class="sd"> :return: Признак присутствия или отсутствия в санкционных списках:\n</span>
|
<span class="sd"> :return: Признак присутствия или отсутствия в санкционных списках:\n</span>
|
||||||
<span class="sd"> .. code-block:: python\n</span>
|
<span class="sd"> .. code-block:: python\n</span>
|
||||||
<span class="sd"> {'company_in_list': False, 'persons_in_company_in_list': False}</span>
|
<span class="sd"> {'company_in_list': False, \n</span>
|
||||||
|
<span class="sd"> 'persons_in_company_in_list': False, \n</span>
|
||||||
|
<span class="sd"> 'lists_dates': [{'type': 'Sema', 'date': '2025-12-15T00:00:00'}]}</span>
|
||||||
<span class="sd"> :rtype: dict</span>
|
<span class="sd"> :rtype: dict</span>
|
||||||
<span class="sd"> """</span>
|
<span class="sd"> """</span>
|
||||||
<span class="n">response</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">path</span><span class="o">=</span><span class="sa">f</span><span class="s1">'</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">_focus_base_url</span><span class="si">}</span><span class="s1">/companies/lists'</span><span class="p">)</span>
|
<span class="n">response</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">path</span><span class="o">=</span><span class="sa">f</span><span class="s1">'</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">_focus_base_url</span><span class="si">}</span><span class="s1">/companies/lists'</span><span class="p">)</span>
|
||||||
<span class="n">sanctions_list</span> <span class="o">=</span> <span class="n">response</span><span class="p">[</span><span class="s1">'sanctionsList'</span><span class="p">]</span>
|
<span class="n">sanctions_list</span> <span class="o">=</span> <span class="n">response</span><span class="p">[</span><span class="s1">'sanctionsList'</span><span class="p">]</span>
|
||||||
|
<span class="n">lists_data</span> <span class="o">=</span> <span class="n">response</span><span class="p">[</span><span class="s1">'globalSanctionsList'</span><span class="p">][</span><span class="s1">'listDates'</span><span class="p">]</span>
|
||||||
<span class="n">company_in_list</span> <span class="o">=</span> <span class="p">[]</span>
|
<span class="n">company_in_list</span> <span class="o">=</span> <span class="p">[]</span>
|
||||||
<span class="n">persons_in_company_in_list</span> <span class="o">=</span> <span class="p">[]</span>
|
<span class="n">persons_in_company_in_list</span> <span class="o">=</span> <span class="p">[]</span>
|
||||||
|
|
||||||
@@ -336,7 +339,8 @@
|
|||||||
|
|
||||||
<span class="n">sanctions_lists_data</span> <span class="o">=</span> <span class="p">{</span>
|
<span class="n">sanctions_lists_data</span> <span class="o">=</span> <span class="p">{</span>
|
||||||
<span class="s1">'company_in_list'</span><span class="p">:</span> <span class="kc">True</span> <span class="k">if</span> <span class="n">company_in_list</span> <span class="k">else</span> <span class="kc">False</span><span class="p">,</span>
|
<span class="s1">'company_in_list'</span><span class="p">:</span> <span class="kc">True</span> <span class="k">if</span> <span class="n">company_in_list</span> <span class="k">else</span> <span class="kc">False</span><span class="p">,</span>
|
||||||
<span class="s1">'persons_in_company_in_list'</span><span class="p">:</span> <span class="kc">True</span> <span class="k">if</span> <span class="n">persons_in_company_in_list</span> <span class="k">else</span> <span class="kc">False</span>
|
<span class="s1">'persons_in_company_in_list'</span><span class="p">:</span> <span class="kc">True</span> <span class="k">if</span> <span class="n">persons_in_company_in_list</span> <span class="k">else</span> <span class="kc">False</span><span class="p">,</span>
|
||||||
|
<span class="s1">'lists_data'</span><span class="p">:</span> <span class="n">lists_data</span>
|
||||||
<span class="p">}</span>
|
<span class="p">}</span>
|
||||||
|
|
||||||
<span class="k">return</span> <span class="n">sanctions_lists_data</span>
|
<span class="k">return</span> <span class="n">sanctions_lists_data</span>
|
||||||
|
|||||||
@@ -274,11 +274,15 @@
|
|||||||
<dl class="py function">
|
<dl class="py function">
|
||||||
<dt class="sig sig-object py" id="kontur_focus.FocusCompliance.company_in_sanctions_lists">
|
<dt class="sig sig-object py" id="kontur_focus.FocusCompliance.company_in_sanctions_lists">
|
||||||
<span class="sig-name descname"><span class="pre">company_in_sanctions_lists</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#kontur_focus.FocusCompliance.company_in_sanctions_lists" title="Ссылка на это определение">¶</a></dt>
|
<span class="sig-name descname"><span class="pre">company_in_sanctions_lists</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#kontur_focus.FocusCompliance.company_in_sanctions_lists" title="Ссылка на это определение">¶</a></dt>
|
||||||
<dd><p>Вхождение организации и ее руководителей в санкционные списки</p>
|
<dd><p>Вхождение организации и ее руководителей в санкционные списки с датами вхождения по типам санкций</p>
|
||||||
<dl class="field-list simple">
|
<dl class="field-list simple">
|
||||||
<dt class="field-odd">Результат<span class="colon">:</span></dt>
|
<dt class="field-odd">Результат<span class="colon">:</span></dt>
|
||||||
<dd class="field-odd"><p><p>Признак присутствия или отсутствия в санкционных списках:</p>
|
<dd class="field-odd"><p><p>Признак присутствия или отсутствия в санкционных списках:</p>
|
||||||
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="p">{</span><span class="s1">'company_in_list'</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s1">'persons_in_company_in_list'</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
|
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="p">{</span><span class="s1">'company_in_list'</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
|
||||||
|
|
||||||
|
<span class="s1">'persons_in_company_in_list'</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
|
||||||
|
|
||||||
|
<span class="s1">'lists_dates'</span><span class="p">:</span> <span class="p">[{</span><span class="s1">'type'</span><span class="p">:</span> <span class="s1">'Sema'</span><span class="p">,</span> <span class="s1">'date'</span><span class="p">:</span> <span class="s1">'2025-12-15T00:00:00'</span><span class="p">}]}</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
</div>
|
</div>
|
||||||
</p>
|
</p>
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@@ -33,7 +33,7 @@ class Focus(Request):
|
|||||||
return self.get('/egrDetails')
|
return self.get('/egrDetails')
|
||||||
|
|
||||||
def excerpt(self, path: str = None) -> dict:
|
def excerpt(self, path: str = None) -> dict:
|
||||||
"""Выписка из ЕГРЮЛ/ЕГРИП
|
"""Выписка из ЕГРЮЛ/ЕГРИП (только для РФ)
|
||||||
|
|
||||||
:param path: Путь выгрузки файла. Если не указан, выгружается в текущий каталог.
|
:param path: Путь выгрузки файла. Если не указан, выгружается в текущий каталог.
|
||||||
:type path: str, необязательный
|
:type path: str, необязательный
|
||||||
@@ -41,6 +41,8 @@ class Focus(Request):
|
|||||||
:rtype: str
|
:rtype: str
|
||||||
"""
|
"""
|
||||||
response = self.get('/excerpt')
|
response = self.get('/excerpt')
|
||||||
|
|
||||||
|
if response.status_code != 404:
|
||||||
current_datetime = datetime.now().strftime('%d-%m-%Y_%H-%M')
|
current_datetime = datetime.now().strftime('%d-%m-%Y_%H-%M')
|
||||||
filename = f'Выписка_{self.inn}_{current_datetime}.pdf'
|
filename = f'Выписка_{self.inn}_{current_datetime}.pdf'
|
||||||
|
|
||||||
@@ -56,6 +58,8 @@ class Focus(Request):
|
|||||||
return {'success': True, 'filename': filename, 'path': file_path}
|
return {'success': True, 'filename': filename, 'path': file_path}
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
return {'success': False, 'message': e}
|
return {'success': False, 'message': e}
|
||||||
|
else:
|
||||||
|
return {'success': False, 'message': 'Not found'}
|
||||||
|
|
||||||
def express_report(self, pdf: bool = True, path: str = None) -> dict:
|
def express_report(self, pdf: bool = True, path: str = None) -> dict:
|
||||||
"""Экспресс-отчет по контрагенту
|
"""Экспресс-отчет по контрагенту
|
||||||
|
|||||||
@@ -80,15 +80,18 @@ class FocusCompliance(Request):
|
|||||||
return fal_data
|
return fal_data
|
||||||
|
|
||||||
def company_in_sanctions_lists(self) -> dict:
|
def company_in_sanctions_lists(self) -> dict:
|
||||||
"""Вхождение организации и ее руководителей в санкционные списки
|
"""Вхождение организации и ее руководителей в санкционные списки с датами вхождения по типам санкций
|
||||||
|
|
||||||
:return: Признак присутствия или отсутствия в санкционных списках:\n
|
:return: Признак присутствия или отсутствия в санкционных списках:\n
|
||||||
.. code-block:: python\n
|
.. code-block:: python\n
|
||||||
{'company_in_list': False, 'persons_in_company_in_list': False}
|
{'company_in_list': False, \n
|
||||||
|
'persons_in_company_in_list': False, \n
|
||||||
|
'lists_dates': [{'type': 'Sema', 'date': '2025-12-15T00:00:00'}]}
|
||||||
:rtype: dict
|
:rtype: dict
|
||||||
"""
|
"""
|
||||||
response = self.get(path=f'{self._focus_base_url}/companies/lists')
|
response = self.get(path=f'{self._focus_base_url}/companies/lists')
|
||||||
sanctions_list = response['sanctionsList']
|
sanctions_list = response['sanctionsList']
|
||||||
|
lists_data = response['globalSanctionsList']['listDates']
|
||||||
company_in_list = []
|
company_in_list = []
|
||||||
persons_in_company_in_list = []
|
persons_in_company_in_list = []
|
||||||
|
|
||||||
@@ -106,7 +109,8 @@ class FocusCompliance(Request):
|
|||||||
|
|
||||||
sanctions_lists_data = {
|
sanctions_lists_data = {
|
||||||
'company_in_list': True if company_in_list else False,
|
'company_in_list': True if company_in_list else False,
|
||||||
'persons_in_company_in_list': True if persons_in_company_in_list else False
|
'persons_in_company_in_list': True if persons_in_company_in_list else False,
|
||||||
|
'lists_data': lists_data
|
||||||
}
|
}
|
||||||
|
|
||||||
return sanctions_lists_data
|
return sanctions_lists_data
|
||||||
|
|||||||
+2
-2
@@ -36,8 +36,8 @@ class Request:
|
|||||||
try:
|
try:
|
||||||
response = requests.get(url=full_url, params=payload)
|
response = requests.get(url=full_url, params=payload)
|
||||||
|
|
||||||
if response.headers['Content-Type'] == 'application/json' or \
|
if ('Content-Type' in response.headers and response.headers['Content-Type'] == 'application/json') or \
|
||||||
response.headers['Content-Type'] == 'application/json; charset=utf-8':
|
('Content-Type' in response.headers and response.headers['Content-Type'] == 'application/json; charset=utf-8'):
|
||||||
return response.json()
|
return response.json()
|
||||||
else:
|
else:
|
||||||
return response
|
return response
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ from setuptools import setup, find_packages
|
|||||||
|
|
||||||
setup(
|
setup(
|
||||||
name="kontur_focus",
|
name="kontur_focus",
|
||||||
version="2025.12.1",
|
version="2026.4.3",
|
||||||
author="Ilya Sapunov",
|
author="Ilya Sapunov",
|
||||||
author_email="me@slrover.ru",
|
author_email="me@slrover.ru",
|
||||||
description="Библиотека-обертка для взаимодействия с REST API Контур.Фокус и Фокус.Комплаенс",
|
description="Библиотека-обертка для взаимодействия с REST API Контур.Фокус и Фокус.Комплаенс",
|
||||||
|
|||||||
Reference in New Issue
Block a user