biatoolkit 1.2.1__py3-none-any.whl → 1.2.3__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- biatoolkit/sankhya_call.py +18 -6
- biatoolkit/test_sankhya.py +6 -7
- {biatoolkit-1.2.1.dist-info → biatoolkit-1.2.3.dist-info}/METADATA +53 -4
- {biatoolkit-1.2.1.dist-info → biatoolkit-1.2.3.dist-info}/RECORD +6 -6
- {biatoolkit-1.2.1.dist-info → biatoolkit-1.2.3.dist-info}/WHEEL +0 -0
- {biatoolkit-1.2.1.dist-info → biatoolkit-1.2.3.dist-info}/top_level.txt +0 -0
biatoolkit/sankhya_call.py
CHANGED
|
@@ -268,14 +268,17 @@ class Sankhya:
|
|
|
268
268
|
Returns:
|
|
269
269
|
dict: Resposta JSON (ou {"raw_text": "..."} se não for JSON)
|
|
270
270
|
"""
|
|
271
|
+
|
|
271
272
|
# Resolve o token de sessão (JSESSIONID)
|
|
272
273
|
sid = self._resolve_jsessionid(jsessionid)
|
|
274
|
+
# Para mgeSession na query, usar só a primeira parte antes do ponto
|
|
275
|
+
sid_query = sid.split(".", 1)[0] if "." in sid else sid
|
|
273
276
|
|
|
274
277
|
# Monta a querystring, sempre incluindo o mgeSession
|
|
275
278
|
query_parts = []
|
|
276
279
|
if query:
|
|
277
280
|
query_parts.append(query.lstrip("?"))
|
|
278
|
-
query_parts.append(f"mgeSession={
|
|
281
|
+
query_parts.append(f"mgeSession={sid_query}")
|
|
279
282
|
final_query = "&".join(query_parts)
|
|
280
283
|
|
|
281
284
|
# Monta a URL final da requisição
|
|
@@ -290,6 +293,9 @@ class Sankhya:
|
|
|
290
293
|
if extra_headers:
|
|
291
294
|
headers.update(extra_headers)
|
|
292
295
|
|
|
296
|
+
# Adiciona o JSESSIONID no header Cookie
|
|
297
|
+
headers["Cookie"] = f"JSESSIONID={sid}"
|
|
298
|
+
|
|
293
299
|
# Define o timeout da requisição
|
|
294
300
|
t = timeout or (self.sankhya_settings.timeout_connect, self.sankhya_settings.timeout_read)
|
|
295
301
|
|
|
@@ -364,13 +370,19 @@ class Sankhya:
|
|
|
364
370
|
},
|
|
365
371
|
}
|
|
366
372
|
|
|
373
|
+
# Se base_url não foi fornecido, tenta obter do MCP (se existir)
|
|
374
|
+
if not base_url:
|
|
375
|
+
if self.mcp is not None:
|
|
376
|
+
util = BiaUtil(self.mcp)
|
|
377
|
+
header = util.get_header()
|
|
378
|
+
base_url = getattr(header, "current_host", None)
|
|
367
379
|
|
|
368
|
-
|
|
369
|
-
# Se base_url não foi fornecido, tenta obter do util.get_header().current_host
|
|
380
|
+
# Se ainda não tem base_url, erro
|
|
370
381
|
if not base_url:
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
382
|
+
raise ValueError(
|
|
383
|
+
"base_url não definida. Informe base_url explicitamente ou execute via MCP para obter do header."
|
|
384
|
+
)
|
|
385
|
+
|
|
374
386
|
|
|
375
387
|
return self.call_json(
|
|
376
388
|
payload=body,
|
biatoolkit/test_sankhya.py
CHANGED
|
@@ -4,14 +4,15 @@ import os
|
|
|
4
4
|
from biatoolkit.sankhya_call import Sankhya, SankhyaHTTPError
|
|
5
5
|
import json
|
|
6
6
|
|
|
7
|
+
|
|
7
8
|
# Opcional: não depende mais disso, mas pode deixar.
|
|
8
9
|
os.environ.setdefault("SANKHYA_SERVICE_PATH", "/mge/service.sbr")
|
|
9
10
|
|
|
10
11
|
# ⚠️ COLE AQUI seu JSESSIONID em UMA LINHA (sem ENTER no meio)
|
|
11
|
-
REAL = "
|
|
12
|
+
REAL = "qwd6yyqtbw4xMURqiaxQIJx6NLE447ZvwReMA5TP.sankhya-w-78598f67f-n7mc"
|
|
12
13
|
|
|
13
|
-
if not REAL
|
|
14
|
-
raise SystemExit("
|
|
14
|
+
if not REAL:
|
|
15
|
+
raise SystemExit("Token JSESSIONID não fornecido.")
|
|
15
16
|
|
|
16
17
|
# Base URL do ambiente correto (o novo)
|
|
17
18
|
BASE_URL = "https://ecossistema2.sankhyacloud.com.br"
|
|
@@ -22,11 +23,9 @@ try:
|
|
|
22
23
|
out = sk.load_view(
|
|
23
24
|
"BIA_VW_MB_RULES",
|
|
24
25
|
"1=1",
|
|
25
|
-
fields="
|
|
26
|
+
fields="*",
|
|
26
27
|
jsessionid=REAL,
|
|
27
|
-
base_url=BASE_URL
|
|
28
|
-
# url="/mge/service.sbr", # opcional: se quiser passar só o path
|
|
29
|
-
# url="https://ecossistema2.sankhyacloud.com.br/mge/service.sbr", # opcional: URL completa
|
|
28
|
+
base_url=BASE_URL
|
|
30
29
|
)
|
|
31
30
|
print("OK! Resposta (top-level keys):", list(out.keys()))
|
|
32
31
|
print(out)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: biatoolkit
|
|
3
|
-
Version: 1.2.
|
|
3
|
+
Version: 1.2.3
|
|
4
4
|
Summary: Biblioteca para desenvolvedores que utilizam o BiaAgentBuilder
|
|
5
5
|
Author: Bia Platform Team
|
|
6
6
|
Author-email: data.platform@sankhya.com.br
|
|
@@ -462,9 +462,58 @@ O Bia Toolkit oferece integração pronta para consumo de serviços HTTP da plat
|
|
|
462
462
|
|
|
463
463
|
- **SankhyaSettings**: Dataclass de configuração de timeouts/retries/SSL. Use `SankhyaSettings.from_env()` para obter as configurações do ambiente.
|
|
464
464
|
- **Sankhya**: Classe principal de integração. Permite instanciar com contexto MCP (`FastMCP`) ou usar métodos estáticos.
|
|
465
|
-
- `call_json(...)`: Realiza chamada HTTP autenticada, retorna JSON.
|
|
466
|
-
- `load_view(...)`: Helper para consultas a views Sankhya (`CRUDServiceProvider.loadView`).
|
|
467
|
-
- `Call(...)`: Método estático compatível com scaffolds legados.
|
|
465
|
+
- `call_json(...)`: Realiza chamada HTTP autenticada, retorna JSON. Veja detalhes dos parâmetros abaixo.
|
|
466
|
+
- `load_view(...)`: Helper para consultas a views Sankhya (`CRUDServiceProvider.loadView`). Veja detalhes dos parâmetros abaixo.
|
|
467
|
+
- `Call(...)`: Método estático compatível com scaffolds legados. Veja detalhes dos parâmetros abaixo.
|
|
468
|
+
### Parâmetros dos métodos principais
|
|
469
|
+
|
|
470
|
+
#### `call_json`
|
|
471
|
+
|
|
472
|
+
| Parâmetro | Obrigatório | Descrição |
|
|
473
|
+
|-------------------|-------------|-----------|
|
|
474
|
+
| payload | Não | Dicionário enviado como corpo da requisição (POST). Pode ser None. |
|
|
475
|
+
| jsessionid | Não | Token de sessão JSESSIONID. Se não informado, tenta extrair do header do runtime (via MCP/BiaUtil). |
|
|
476
|
+
| url | Não | URL completa para chamada. Se informado, ignora base_url. |
|
|
477
|
+
| base_url | Sim* | Base URL do serviço Sankhya (ex: https://meu.sankhya.com.br). Obrigatório se não estiver em contexto MCP (header). |
|
|
478
|
+
| query | Não | Querystring adicional (ex: serviceName=...&outputType=json). |
|
|
479
|
+
| method | Não | "POST" (default) ou "GET". |
|
|
480
|
+
| extra_headers | Não | Dicionário de headers adicionais. |
|
|
481
|
+
| timeout | Não | Tupla (connect, read) para sobrescrever timeout padrão. |
|
|
482
|
+
| raise_for_http_error | Não | Se True (default), lança SankhyaHTTPError em erro HTTP. |
|
|
483
|
+
|
|
484
|
+
*Se não passar base_url, o método tentará extrair automaticamente do header do runtime (MCP) se disponível. Caso contrário, será obrigatório.
|
|
485
|
+
|
|
486
|
+
#### `load_view`
|
|
487
|
+
|
|
488
|
+
| Parâmetro | Obrigatório | Descrição |
|
|
489
|
+
|-------------------|-------------|-----------|
|
|
490
|
+
| view_name | Sim | Nome da view no Sankhya. |
|
|
491
|
+
| where_sql | Sim | Cláusula WHERE (string). |
|
|
492
|
+
| fields | Não | Campos a retornar (string). Default: "*". |
|
|
493
|
+
| jsessionid | Não | Token de sessão JSESSIONID. Se não informado, tenta extrair do header do runtime (via MCP/BiaUtil). |
|
|
494
|
+
| url | Não | URL completa opcional (override). |
|
|
495
|
+
| base_url | Não* | Base URL do serviço Sankhya. Se não informado, tenta extrair do header do runtime (current_host). |
|
|
496
|
+
| output_type | Não | "json" (default). |
|
|
497
|
+
| extra_headers | Não | Dicionário de headers adicionais. |
|
|
498
|
+
|
|
499
|
+
*Se não passar base_url, o método tentará extrair automaticamente do header do runtime (MCP) via BiaUtil. Caso não consiga, lança erro.
|
|
500
|
+
|
|
501
|
+
#### `Call`
|
|
502
|
+
|
|
503
|
+
| Parâmetro | Obrigatório | Descrição |
|
|
504
|
+
|-------------------|-------------|-----------|
|
|
505
|
+
| jsessionID | Não | Token de sessão JSESSIONID. Se não informado, tenta extrair do header do runtime (via MCP/BiaUtil). |
|
|
506
|
+
| payload | Não | Dicionário enviado como corpo da requisição. |
|
|
507
|
+
| mcp | Não | Instância opcional do FastMCP para contexto do runtime. |
|
|
508
|
+
| url | Não | URL completa (opcional). |
|
|
509
|
+
| base_url | Sim* | Base URL do serviço Sankhya. Obrigatório se não estiver em contexto MCP (header). |
|
|
510
|
+
| query | Não | Querystring adicional (opcional). |
|
|
511
|
+
| method | Não | "POST" (default) ou "GET". |
|
|
512
|
+
| extra_headers | Não | Dicionário de headers adicionais. |
|
|
513
|
+
|
|
514
|
+
*Se não passar base_url, o método tentará extrair automaticamente do header do runtime (MCP) se disponível. Caso contrário, será obrigatório.
|
|
515
|
+
|
|
516
|
+
**Resumo:** Sempre que possível, o toolkit resolve automaticamente base_url e jsessionid do contexto MCP (headers). Se não estiver rodando em MCP, passe base_url explicitamente.
|
|
468
517
|
- **SankhyaHTTPError**: Exceção lançada em caso de erro HTTP (status != 200), contendo status_code e response_text.
|
|
469
518
|
|
|
470
519
|
### Exemplo de uso (instanciado)
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
biatoolkit/__init__.py,sha256=OStl3T8OY7YdGdpKIpwXtTo-IjcQxzDRHzpAoBEM8yU,98
|
|
2
2
|
biatoolkit/basic_client.py,sha256=qp5T85wm6D80i3Owjz9AxUYKmaKHgImxirYCduBi1gk,4760
|
|
3
|
-
biatoolkit/sankhya_call.py,sha256=
|
|
3
|
+
biatoolkit/sankhya_call.py,sha256=aPooWgFz3E3MreO4161AnTrebLXNumNJ3coN-Nhyzlg,15701
|
|
4
4
|
biatoolkit/settings.py,sha256=gA07EMEb9k5tt6ySCOYTV4pKHPSiG7nSap2qhHQhmFY,3494
|
|
5
|
-
biatoolkit/test_sankhya.py,sha256=
|
|
5
|
+
biatoolkit/test_sankhya.py,sha256=VE8mMbzLhtyIpvm2hUCjgZC65h4FVPfro_PqPkJOjGk,1084
|
|
6
6
|
biatoolkit/util.py,sha256=PgYKRl85K4wmF4WFrabTQ3yiTmgw9S2BxZ-uvwFnP6A,7768
|
|
7
7
|
biatoolkit/schema/__init__.py,sha256=6lvcENhbQnelI2faBGnEs0yG0k4SkwtIrtmn4PtKWvg,32
|
|
8
8
|
biatoolkit/schema/header.py,sha256=COJPlqK1cFvvWzDcCw2ru1jszWPgyyvabkjzDCc8AjM,683
|
|
9
9
|
biatoolkit/validation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
10
10
|
biatoolkit/validation/coercion.py,sha256=6njD6VWZ92OTbv0PhwsSQa6lpWzq74zA_X46I2Z9cIU,4136
|
|
11
11
|
biatoolkit/validation/validation.py,sha256=4DwAAd9PfPS7zC0X_yRYimrdj2VuIpf_jh1SfjUCVE0,3304
|
|
12
|
-
biatoolkit-1.2.
|
|
13
|
-
biatoolkit-1.2.
|
|
14
|
-
biatoolkit-1.2.
|
|
15
|
-
biatoolkit-1.2.
|
|
12
|
+
biatoolkit-1.2.3.dist-info/METADATA,sha256=0PZgn3FCyh9jFewRsA7ik3PYIzNen1_yy6JL5QGIzXE,23020
|
|
13
|
+
biatoolkit-1.2.3.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
|
|
14
|
+
biatoolkit-1.2.3.dist-info/top_level.txt,sha256=DyrMS0X6u1FDA9uT854LxoT3X7gzMAlsFQabE-WuKMc,11
|
|
15
|
+
biatoolkit-1.2.3.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|