dhisana 0.0.1.dev246__tar.gz → 0.0.1.dev248__tar.gz

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.
Files changed (121) hide show
  1. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/PKG-INFO +1 -1
  2. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/setup.py +1 -1
  3. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/src/dhisana/schemas/common.py +1 -0
  4. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/src/dhisana/utils/apollo_tools.py +39 -18
  5. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/src/dhisana.egg-info/PKG-INFO +1 -1
  6. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/README.md +0 -0
  7. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/pyproject.toml +0 -0
  8. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/setup.cfg +0 -0
  9. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/src/dhisana/__init__.py +0 -0
  10. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/src/dhisana/cli/__init__.py +0 -0
  11. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/src/dhisana/cli/cli.py +0 -0
  12. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/src/dhisana/cli/datasets.py +0 -0
  13. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/src/dhisana/cli/models.py +0 -0
  14. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/src/dhisana/cli/predictions.py +0 -0
  15. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/src/dhisana/schemas/__init__.py +0 -0
  16. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/src/dhisana/schemas/sales.py +0 -0
  17. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/src/dhisana/ui/__init__.py +0 -0
  18. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/src/dhisana/ui/components.py +0 -0
  19. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/src/dhisana/utils/__init__.py +0 -0
  20. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/src/dhisana/utils/add_mapping.py +0 -0
  21. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/src/dhisana/utils/agent_tools.py +0 -0
  22. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/src/dhisana/utils/assistant_tool_tag.py +0 -0
  23. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/src/dhisana/utils/built_with_api_tools.py +0 -0
  24. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/src/dhisana/utils/cache_output_tools.py +0 -0
  25. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/src/dhisana/utils/cache_output_tools_local.py +0 -0
  26. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/src/dhisana/utils/check_email_validity_tools.py +0 -0
  27. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/src/dhisana/utils/check_for_intent_signal.py +0 -0
  28. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/src/dhisana/utils/check_linkedin_url_validity.py +0 -0
  29. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/src/dhisana/utils/clay_tools.py +0 -0
  30. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/src/dhisana/utils/clean_properties.py +0 -0
  31. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/src/dhisana/utils/company_utils.py +0 -0
  32. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/src/dhisana/utils/compose_salesnav_query.py +0 -0
  33. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/src/dhisana/utils/compose_search_query.py +0 -0
  34. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/src/dhisana/utils/compose_three_step_workflow.py +0 -0
  35. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/src/dhisana/utils/composite_tools.py +0 -0
  36. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/src/dhisana/utils/dataframe_tools.py +0 -0
  37. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/src/dhisana/utils/domain_parser.py +0 -0
  38. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/src/dhisana/utils/email_body_utils.py +0 -0
  39. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/src/dhisana/utils/email_parse_helpers.py +0 -0
  40. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/src/dhisana/utils/email_provider.py +0 -0
  41. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/src/dhisana/utils/enrich_lead_information.py +0 -0
  42. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/src/dhisana/utils/extract_email_content_for_llm.py +0 -0
  43. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/src/dhisana/utils/fetch_openai_config.py +0 -0
  44. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/src/dhisana/utils/field_validators.py +0 -0
  45. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/src/dhisana/utils/g2_tools.py +0 -0
  46. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/src/dhisana/utils/generate_content.py +0 -0
  47. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/src/dhisana/utils/generate_custom_message.py +0 -0
  48. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/src/dhisana/utils/generate_email.py +0 -0
  49. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/src/dhisana/utils/generate_email_response.py +0 -0
  50. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/src/dhisana/utils/generate_flow.py +0 -0
  51. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/src/dhisana/utils/generate_leads_salesnav.py +0 -0
  52. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/src/dhisana/utils/generate_linkedin_connect_message.py +0 -0
  53. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/src/dhisana/utils/generate_linkedin_response_message.py +0 -0
  54. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/src/dhisana/utils/generate_structured_output_internal.py +0 -0
  55. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/src/dhisana/utils/google_custom_search.py +0 -0
  56. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/src/dhisana/utils/google_oauth_tools.py +0 -0
  57. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/src/dhisana/utils/google_workspace_tools.py +0 -0
  58. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/src/dhisana/utils/hubspot_clearbit.py +0 -0
  59. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/src/dhisana/utils/hubspot_crm_tools.py +0 -0
  60. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/src/dhisana/utils/instantly_tools.py +0 -0
  61. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/src/dhisana/utils/linkedin_crawler.py +0 -0
  62. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/src/dhisana/utils/lusha_tools.py +0 -0
  63. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/src/dhisana/utils/mailgun_tools.py +0 -0
  64. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/src/dhisana/utils/mailreach_tools.py +0 -0
  65. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/src/dhisana/utils/microsoft365_tools.py +0 -0
  66. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/src/dhisana/utils/openai_assistant_and_file_utils.py +0 -0
  67. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/src/dhisana/utils/openai_helpers.py +0 -0
  68. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/src/dhisana/utils/openapi_spec_to_tools.py +0 -0
  69. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/src/dhisana/utils/openapi_tool/__init__.py +0 -0
  70. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/src/dhisana/utils/openapi_tool/api_models.py +0 -0
  71. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/src/dhisana/utils/openapi_tool/convert_openai_spec_to_tool.py +0 -0
  72. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/src/dhisana/utils/openapi_tool/openapi_tool.py +0 -0
  73. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/src/dhisana/utils/parse_linkedin_messages_txt.py +0 -0
  74. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/src/dhisana/utils/profile.py +0 -0
  75. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/src/dhisana/utils/proxy_curl_tools.py +0 -0
  76. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/src/dhisana/utils/proxycurl_search_leads.py +0 -0
  77. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/src/dhisana/utils/python_function_to_tools.py +0 -0
  78. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/src/dhisana/utils/research_lead.py +0 -0
  79. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/src/dhisana/utils/sales_navigator_crawler.py +0 -0
  80. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/src/dhisana/utils/salesforce_crm_tools.py +0 -0
  81. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/src/dhisana/utils/search_router.py +0 -0
  82. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/src/dhisana/utils/search_router_jobs.py +0 -0
  83. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/src/dhisana/utils/sendgrid_tools.py +0 -0
  84. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/src/dhisana/utils/serarch_router_local_business.py +0 -0
  85. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/src/dhisana/utils/serpapi_additional_tools.py +0 -0
  86. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/src/dhisana/utils/serpapi_google_jobs.py +0 -0
  87. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/src/dhisana/utils/serpapi_google_search.py +0 -0
  88. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/src/dhisana/utils/serpapi_local_business_search.py +0 -0
  89. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/src/dhisana/utils/serpapi_search_tools.py +0 -0
  90. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/src/dhisana/utils/serperdev_google_jobs.py +0 -0
  91. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/src/dhisana/utils/serperdev_local_business.py +0 -0
  92. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/src/dhisana/utils/serperdev_search.py +0 -0
  93. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/src/dhisana/utils/smtp_email_tools.py +0 -0
  94. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/src/dhisana/utils/test_connect.py +0 -0
  95. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/src/dhisana/utils/trasform_json.py +0 -0
  96. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/src/dhisana/utils/web_download_parse_tools.py +0 -0
  97. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/src/dhisana/utils/workflow_code_model.py +0 -0
  98. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/src/dhisana/utils/zoominfo_tools.py +0 -0
  99. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/src/dhisana/workflow/__init__.py +0 -0
  100. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/src/dhisana/workflow/agent.py +0 -0
  101. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/src/dhisana/workflow/flow.py +0 -0
  102. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/src/dhisana/workflow/task.py +0 -0
  103. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/src/dhisana/workflow/test.py +0 -0
  104. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/src/dhisana.egg-info/SOURCES.txt +0 -0
  105. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/src/dhisana.egg-info/dependency_links.txt +0 -0
  106. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/src/dhisana.egg-info/entry_points.txt +0 -0
  107. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/src/dhisana.egg-info/requires.txt +0 -0
  108. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/src/dhisana.egg-info/top_level.txt +0 -0
  109. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/tests/test_agent_tools.py +0 -0
  110. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/tests/test_apollo_company_search.py +0 -0
  111. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/tests/test_apollo_lead_search.py +0 -0
  112. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/tests/test_connectivity.py +0 -0
  113. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/tests/test_email_body_utils.py +0 -0
  114. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/tests/test_google_document.py +0 -0
  115. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/tests/test_hubspot_call_logs.py +0 -0
  116. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/tests/test_linkedin_serper.py +0 -0
  117. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/tests/test_mailreach.py +0 -0
  118. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/tests/test_mcp_connectivity.py +0 -0
  119. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/tests/test_proxycurl_get_company_search_id.py +0 -0
  120. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/tests/test_proxycurl_job_count.py +0 -0
  121. {dhisana-0.0.1.dev246 → dhisana-0.0.1.dev248}/tests/test_structured_output_with_mcp.py +0 -0
@@ -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
@@ -2,7 +2,7 @@ from setuptools import setup, find_packages
2
2
 
3
3
  setup(
4
4
  name='dhisana',
5
- version='0.0.1-dev246',
5
+ version='0.0.1-dev248',
6
6
  description='A Python SDK for Dhisana AI Platform',
7
7
  author='Admin',
8
8
  author_email='contact@dhisana.ai',
@@ -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
File without changes
File without changes