poelis-sdk 0.1.6__py3-none-any.whl → 0.1.7__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.

Potentially problematic release.


This version of poelis-sdk might be problematic. Click here for more details.

poelis_sdk/models.py CHANGED
@@ -13,6 +13,7 @@ class Product(BaseModel):
13
13
  id: str = Field(min_length=1)
14
14
  name: str = Field(min_length=1)
15
15
  workspace_id: Optional[str] = None
16
+ org_id: Optional[str] = None
16
17
 
17
18
 
18
19
  class PaginatedProducts(BaseModel):
@@ -77,10 +77,6 @@ def filter_by_organization(data_list: List[Dict[str, Any]], expected_org_id: str
77
77
  else:
78
78
  cross_org_count += 1
79
79
 
80
- if cross_org_count > 0:
81
- # Log warning about cross-org data (but don't fail)
82
- print(f"⚠️ Warning: Filtered out {cross_org_count} {data_type} from other organizations")
83
-
84
80
  return filtered
85
81
 
86
82
 
poelis_sdk/products.py CHANGED
@@ -4,6 +4,7 @@ from typing import Generator, Optional, List, TYPE_CHECKING
4
4
 
5
5
  from ._transport import Transport
6
6
  from .models import PaginatedProducts, Product
7
+ from .org_validation import filter_by_organization
7
8
 
8
9
  if TYPE_CHECKING:
9
10
  from .workspaces import WorkspacesClient
@@ -32,7 +33,7 @@ class ProductsClient:
32
33
 
33
34
  query = (
34
35
  "query($ws: ID!, $q: String, $limit: Int!, $offset: Int!) {\n"
35
- " products(workspaceId: $ws, q: $q, limit: $limit, offset: $offset) { id name code description workspaceId }\n"
36
+ " products(workspaceId: $ws, q: $q, limit: $limit, offset: $offset) { id name code description workspaceId orgId }\n"
36
37
  "}"
37
38
  )
38
39
  variables = {"ws": workspace_id, "q": q, "limit": int(limit), "offset": int(offset)}
@@ -41,8 +42,14 @@ class ProductsClient:
41
42
  payload = resp.json()
42
43
  if "errors" in payload:
43
44
  raise RuntimeError(str(payload["errors"]))
44
- rows: List[dict] = payload.get("data", {}).get("products", [])
45
- return PaginatedProducts(data=[Product(**r) for r in rows], limit=limit, offset=offset)
45
+
46
+ products = payload.get("data", {}).get("products", [])
47
+
48
+ # Client-side organization filtering as backup protection
49
+ expected_org_id = self._t._org_id
50
+ filtered_products = filter_by_organization(products, expected_org_id, "products")
51
+
52
+ return PaginatedProducts(data=[Product(**r) for r in filtered_products], limit=limit, offset=offset)
46
53
 
47
54
  def iter_all_by_workspace(self, *, workspace_id: str, q: Optional[str] = None, page_size: int = 100, start_offset: int = 0) -> Generator[Product, None, None]:
48
55
  """Iterate products via GraphQL with offset pagination for a workspace."""
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: poelis-sdk
3
- Version: 0.1.6
3
+ Version: 0.1.7
4
4
  Summary: Official Python SDK for Poelis
5
5
  Project-URL: Homepage, https://poelis.com
6
6
  Project-URL: Source, https://github.com/PoelisTechnologies/poelis-python-sdk
@@ -6,12 +6,12 @@ poelis_sdk/client.py,sha256=10__5po-foX36ZCCduQmzdoh9NNS320kyaqztUNtPvo,3872
6
6
  poelis_sdk/exceptions.py,sha256=qX5kpAr8ozJUOW-CNhmspWVIE-bvUZT_PUnimYuBxNY,1101
7
7
  poelis_sdk/items.py,sha256=laRHVCaTkMmNQyXs6_IVrsyj6whMxSN8Qi6aPQ4dN00,3036
8
8
  poelis_sdk/logging.py,sha256=zmg8Us-7qjDl0n_NfOSvDolLopy7Dc_hQ-pcrC63dY8,2442
9
- poelis_sdk/models.py,sha256=zKbqHkK2xOdkqWUQlmu-BZ0Zyj8uC2d10PK69f3QUHo,470
10
- poelis_sdk/org_validation.py,sha256=H0jyer8qEAttIW-WC0sS4_32GoC8fXB0rjbn1_rZwQ0,5803
11
- poelis_sdk/products.py,sha256=XEi028Gqfpp887gBgvSA5Punzae4AfaorwkzuLwX890,3232
9
+ poelis_sdk/models.py,sha256=aYZxNcB2abN10GFlZXW3rUguWBlNGqwx_2oqG_uaa2I,503
10
+ poelis_sdk/org_validation.py,sha256=c4fB6ySTvcovWxG4F1wU_OBlP-FyuIaAUzCwqgJKzBE,5607
11
+ poelis_sdk/products.py,sha256=18cwilJ0ELOACkPlrk4146H449BHxs6sQKryVpF6W5I,3519
12
12
  poelis_sdk/search.py,sha256=JYLz4yV3GZPlif05OqYK2xPoAD1b4XKTmriil4NHTOs,4095
13
13
  poelis_sdk/workspaces.py,sha256=hpmRl-Hswr4YDvObQdyVpegIYjUWno7A_BiVBz-AQGc,2383
14
- poelis_sdk-0.1.6.dist-info/METADATA,sha256=xcvgrU6sH4VGqsceIf4Q0V-5-0IKbFOmMfVo_OsLbrM,2813
15
- poelis_sdk-0.1.6.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
16
- poelis_sdk-0.1.6.dist-info/licenses/LICENSE,sha256=EEmE_r8wk_pdXB8CWp1LG6sBOl7--hNSS2kV94cI6co,1075
17
- poelis_sdk-0.1.6.dist-info/RECORD,,
14
+ poelis_sdk-0.1.7.dist-info/METADATA,sha256=BidQ46Eb5px1bzS-S3rIQiTUA56S3yyLcDJMLcrett8,2813
15
+ poelis_sdk-0.1.7.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
16
+ poelis_sdk-0.1.7.dist-info/licenses/LICENSE,sha256=EEmE_r8wk_pdXB8CWp1LG6sBOl7--hNSS2kV94cI6co,1075
17
+ poelis_sdk-0.1.7.dist-info/RECORD,,