dhisana 0.0.1.dev246__py3-none-any.whl → 0.0.1.dev248__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.
dhisana/schemas/common.py CHANGED
@@ -394,6 +394,7 @@ class ReplyEmailContext(BaseModel):
394
394
  reply_body: str
395
395
  sender_email: str
396
396
  sender_name: str
397
+ headers: Optional[Dict[str, str]] = None
397
398
  fallback_recipient: Optional[str] = None
398
399
  mark_as_read: str = "True"
399
400
  add_labels: Optional[List[str]] = None
@@ -632,17 +632,28 @@ async def search_leads_with_apollo(
632
632
  # -----------------------------------
633
633
  else:
634
634
  dynamic_payload = {
635
- "person_titles": query.person_current_titles or [],
636
- "person_locations": query.person_locations or [],
637
- "search_signal_ids": query.filter_by_signals or [],
638
- "q_keywords": query.search_keywords or "",
639
- "organization_num_employees_ranges": (
640
- query.organization_num_employees_ranges
641
- or [f"{query.min_employees_in_organization or 1},{query.max_employees_in_organization or 1000}"]
642
- ),
643
635
  "page": 1,
644
636
  "per_page": min(max_items, 100),
645
637
  }
638
+
639
+ # Only add fields if they have values (don't pass empty defaults)
640
+ if query.person_current_titles:
641
+ dynamic_payload["person_titles"] = query.person_current_titles
642
+ if query.person_locations:
643
+ dynamic_payload["person_locations"] = query.person_locations
644
+ if query.filter_by_signals:
645
+ dynamic_payload["search_signal_ids"] = query.filter_by_signals
646
+ if query.search_keywords:
647
+ dynamic_payload["q_keywords"] = query.search_keywords
648
+
649
+ # Only add employee ranges if explicitly provided
650
+ if query.organization_num_employees_ranges:
651
+ dynamic_payload["organization_num_employees_ranges"] = query.organization_num_employees_ranges
652
+ elif query.min_employees_in_organization is not None or query.max_employees_in_organization is not None:
653
+ min_emp = query.min_employees_in_organization or 1
654
+ max_emp = query.max_employees_in_organization or 1000000
655
+ dynamic_payload["organization_num_employees_ranges"] = [f"{min_emp},{max_emp}"]
656
+
646
657
  if query.job_openings_with_titles:
647
658
  dynamic_payload["q_organization_job_titles"] = query.job_openings_with_titles
648
659
  if query.latest_funding_stages:
@@ -836,16 +847,26 @@ async def search_leads_with_apollo_page(
836
847
  # B) No example_url -> build from `query`
837
848
  # -----------------------------------
838
849
  else:
839
- dynamic_payload = {
840
- "person_titles": query.person_current_titles or [],
841
- "person_locations": query.person_locations or [],
842
- "search_signal_ids": query.filter_by_signals or [],
843
- "q_keywords": query.search_keywords or "",
844
- "organization_num_employees_ranges": (
845
- query.organization_num_employees_ranges
846
- or [f"{query.min_employees_in_organization or 1},{query.max_employees_in_organization or 1000}"]
847
- ),
848
- }
850
+ dynamic_payload = {}
851
+
852
+ # Only add fields if they have values (don't pass empty defaults)
853
+ if query.person_current_titles:
854
+ dynamic_payload["person_titles"] = query.person_current_titles
855
+ if query.person_locations:
856
+ dynamic_payload["person_locations"] = query.person_locations
857
+ if query.filter_by_signals:
858
+ dynamic_payload["search_signal_ids"] = query.filter_by_signals
859
+ if query.search_keywords:
860
+ dynamic_payload["q_keywords"] = query.search_keywords
861
+
862
+ # Only add employee ranges if explicitly provided
863
+ if query.organization_num_employees_ranges:
864
+ dynamic_payload["organization_num_employees_ranges"] = query.organization_num_employees_ranges
865
+ elif query.min_employees_in_organization is not None or query.max_employees_in_organization is not None:
866
+ min_emp = query.min_employees_in_organization or 1
867
+ max_emp = query.max_employees_in_organization or 1000000
868
+ dynamic_payload["organization_num_employees_ranges"] = [f"{min_emp},{max_emp}"]
869
+
849
870
  if query.job_openings_with_titles:
850
871
  dynamic_payload["q_organization_job_titles"] = query.job_openings_with_titles
851
872
  if query.latest_funding_stages:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dhisana
3
- Version: 0.0.1.dev246
3
+ Version: 0.0.1.dev248
4
4
  Summary: A Python SDK for Dhisana AI Platform
5
5
  Home-page: https://github.com/dhisana-ai/dhisana-python-sdk
6
6
  Author: Admin
@@ -5,14 +5,14 @@ dhisana/cli/datasets.py,sha256=OwzoCrVQqmh0pKpUAKAg_w9uGYncbWU7ZrAL_QukxAk,839
5
5
  dhisana/cli/models.py,sha256=IzUFZW_X32mL3fpM1_j4q8AF7v5nrxJcxBoqvG-TTgA,706
6
6
  dhisana/cli/predictions.py,sha256=VYgoLK1Ksv6MFImoYZqjQJkds7e5Hso65dHwbxTNNzE,646
7
7
  dhisana/schemas/__init__.py,sha256=jv2YF__bseklT3OWEzlqJ5qE24c4aWd5F4r0TTjOrWQ,65
8
- dhisana/schemas/common.py,sha256=hT9QVMJcINei-pp5F2RmGA573pfWbFA00dE1LfPGw20,9420
8
+ dhisana/schemas/common.py,sha256=dO3JJvu6uZQPGGwvwtstjogEVJZjvwY4nPF2B7w0tIY,9465
9
9
  dhisana/schemas/sales.py,sha256=PyJWs6qxk2Kj_1N87eGsehXzlE7OLSOkaCcMinwlfAA,34351
10
10
  dhisana/ui/__init__.py,sha256=jv2YF__bseklT3OWEzlqJ5qE24c4aWd5F4r0TTjOrWQ,65
11
11
  dhisana/ui/components.py,sha256=4NXrAyl9tx2wWwoVYyABO-EOGnreGMvql1AkXWajIIo,14316
12
12
  dhisana/utils/__init__.py,sha256=jv2YF__bseklT3OWEzlqJ5qE24c4aWd5F4r0TTjOrWQ,65
13
13
  dhisana/utils/add_mapping.py,sha256=oq_QNqag86DhgdwINBRRXNx7SOb8Q9M-V0QLP6pTzr8,13837
14
14
  dhisana/utils/agent_tools.py,sha256=pzBFvfhU4wfSB4zv1eiRzjmnteJnfhC5V32r_v1m38Y,2321
15
- dhisana/utils/apollo_tools.py,sha256=orzTyGJNlxYyn2FZW60ZaElbgt73ngfGiaXErHKjaVo,65496
15
+ dhisana/utils/apollo_tools.py,sha256=i3PVY3vhiGUOTQ_GAOPXCwDyUcqkiV3DrCgo2ozRSeQ,66705
16
16
  dhisana/utils/assistant_tool_tag.py,sha256=rYRl8ubLI7fUUIjg30XTefHBkFgRqNEVC12lF6U6Z-8,119
17
17
  dhisana/utils/built_with_api_tools.py,sha256=TFNGhnPb2vFdveVCpjiCvE1WKe_eK95UPpR0Ha5NgMQ,10260
18
18
  dhisana/utils/cache_output_tools.py,sha256=sSAruvUZn-WAJQ0lB9T1QjSmkm-_14AuxC9xKmcCQ0k,3428
@@ -95,8 +95,8 @@ dhisana/workflow/agent.py,sha256=esv7_i_XuMkV2j1nz_UlsHov_m6X5WZZiZm_tG4OBHU,565
95
95
  dhisana/workflow/flow.py,sha256=xWE3qQbM7j2B3FH8XnY3zOL_QXX4LbTW4ArndnEYJE0,1638
96
96
  dhisana/workflow/task.py,sha256=HlWz9mtrwLYByoSnePOemBUBrMEcj7KbgNjEE1oF5wo,1830
97
97
  dhisana/workflow/test.py,sha256=E7lRnXK0PguTNzyasHytLzTJdkqIPxG5_4qk4hMEeKc,3399
98
- dhisana-0.0.1.dev246.dist-info/METADATA,sha256=2Nr6D5A8yCbOkWKG-5Oxxdx7-ydtXcBIKEJtKKVUhuY,1190
99
- dhisana-0.0.1.dev246.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
100
- dhisana-0.0.1.dev246.dist-info/entry_points.txt,sha256=jujxteZmNI9EkEaK-pOCoWuBujU8TCevdkfl9ZcKHek,49
101
- dhisana-0.0.1.dev246.dist-info/top_level.txt,sha256=NETTHt6YifG_P7XtRHbQiXZlgSFk9Qh9aR-ng1XTf4s,8
102
- dhisana-0.0.1.dev246.dist-info/RECORD,,
98
+ dhisana-0.0.1.dev248.dist-info/METADATA,sha256=B6n7vZSB3JheNeY9GWQ8DMaAGE9TKG9hzPyRILaq-xA,1190
99
+ dhisana-0.0.1.dev248.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
100
+ dhisana-0.0.1.dev248.dist-info/entry_points.txt,sha256=jujxteZmNI9EkEaK-pOCoWuBujU8TCevdkfl9ZcKHek,49
101
+ dhisana-0.0.1.dev248.dist-info/top_level.txt,sha256=NETTHt6YifG_P7XtRHbQiXZlgSFk9Qh9aR-ng1XTf4s,8
102
+ dhisana-0.0.1.dev248.dist-info/RECORD,,