dhisana 0.0.1.dev182__tar.gz → 0.0.1.dev183__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 (105) hide show
  1. {dhisana-0.0.1.dev182 → dhisana-0.0.1.dev183}/PKG-INFO +1 -1
  2. {dhisana-0.0.1.dev182 → dhisana-0.0.1.dev183}/setup.py +1 -1
  3. {dhisana-0.0.1.dev182 → dhisana-0.0.1.dev183}/src/dhisana/utils/serpapi_google_search.py +3 -8
  4. {dhisana-0.0.1.dev182 → dhisana-0.0.1.dev183}/src/dhisana/utils/serperdev_search.py +13 -9
  5. {dhisana-0.0.1.dev182 → dhisana-0.0.1.dev183}/src/dhisana.egg-info/PKG-INFO +1 -1
  6. {dhisana-0.0.1.dev182 → dhisana-0.0.1.dev183}/README.md +0 -0
  7. {dhisana-0.0.1.dev182 → dhisana-0.0.1.dev183}/pyproject.toml +0 -0
  8. {dhisana-0.0.1.dev182 → dhisana-0.0.1.dev183}/setup.cfg +0 -0
  9. {dhisana-0.0.1.dev182 → dhisana-0.0.1.dev183}/src/dhisana/__init__.py +0 -0
  10. {dhisana-0.0.1.dev182 → dhisana-0.0.1.dev183}/src/dhisana/cli/__init__.py +0 -0
  11. {dhisana-0.0.1.dev182 → dhisana-0.0.1.dev183}/src/dhisana/cli/cli.py +0 -0
  12. {dhisana-0.0.1.dev182 → dhisana-0.0.1.dev183}/src/dhisana/cli/datasets.py +0 -0
  13. {dhisana-0.0.1.dev182 → dhisana-0.0.1.dev183}/src/dhisana/cli/models.py +0 -0
  14. {dhisana-0.0.1.dev182 → dhisana-0.0.1.dev183}/src/dhisana/cli/predictions.py +0 -0
  15. {dhisana-0.0.1.dev182 → dhisana-0.0.1.dev183}/src/dhisana/schemas/__init__.py +0 -0
  16. {dhisana-0.0.1.dev182 → dhisana-0.0.1.dev183}/src/dhisana/schemas/common.py +0 -0
  17. {dhisana-0.0.1.dev182 → dhisana-0.0.1.dev183}/src/dhisana/schemas/sales.py +0 -0
  18. {dhisana-0.0.1.dev182 → dhisana-0.0.1.dev183}/src/dhisana/ui/__init__.py +0 -0
  19. {dhisana-0.0.1.dev182 → dhisana-0.0.1.dev183}/src/dhisana/ui/components.py +0 -0
  20. {dhisana-0.0.1.dev182 → dhisana-0.0.1.dev183}/src/dhisana/utils/__init__.py +0 -0
  21. {dhisana-0.0.1.dev182 → dhisana-0.0.1.dev183}/src/dhisana/utils/add_mapping.py +0 -0
  22. {dhisana-0.0.1.dev182 → dhisana-0.0.1.dev183}/src/dhisana/utils/agent_tools.py +0 -0
  23. {dhisana-0.0.1.dev182 → dhisana-0.0.1.dev183}/src/dhisana/utils/apollo_tools.py +0 -0
  24. {dhisana-0.0.1.dev182 → dhisana-0.0.1.dev183}/src/dhisana/utils/assistant_tool_tag.py +0 -0
  25. {dhisana-0.0.1.dev182 → dhisana-0.0.1.dev183}/src/dhisana/utils/built_with_api_tools.py +0 -0
  26. {dhisana-0.0.1.dev182 → dhisana-0.0.1.dev183}/src/dhisana/utils/cache_output_tools.py +0 -0
  27. {dhisana-0.0.1.dev182 → dhisana-0.0.1.dev183}/src/dhisana/utils/cache_output_tools_local.py +0 -0
  28. {dhisana-0.0.1.dev182 → dhisana-0.0.1.dev183}/src/dhisana/utils/check_email_validity_tools.py +0 -0
  29. {dhisana-0.0.1.dev182 → dhisana-0.0.1.dev183}/src/dhisana/utils/check_for_intent_signal.py +0 -0
  30. {dhisana-0.0.1.dev182 → dhisana-0.0.1.dev183}/src/dhisana/utils/check_linkedin_url_validity.py +0 -0
  31. {dhisana-0.0.1.dev182 → dhisana-0.0.1.dev183}/src/dhisana/utils/clay_tools.py +0 -0
  32. {dhisana-0.0.1.dev182 → dhisana-0.0.1.dev183}/src/dhisana/utils/clean_properties.py +0 -0
  33. {dhisana-0.0.1.dev182 → dhisana-0.0.1.dev183}/src/dhisana/utils/company_utils.py +0 -0
  34. {dhisana-0.0.1.dev182 → dhisana-0.0.1.dev183}/src/dhisana/utils/compose_salesnav_query.py +0 -0
  35. {dhisana-0.0.1.dev182 → dhisana-0.0.1.dev183}/src/dhisana/utils/compose_search_query.py +0 -0
  36. {dhisana-0.0.1.dev182 → dhisana-0.0.1.dev183}/src/dhisana/utils/compose_three_step_workflow.py +0 -0
  37. {dhisana-0.0.1.dev182 → dhisana-0.0.1.dev183}/src/dhisana/utils/composite_tools.py +0 -0
  38. {dhisana-0.0.1.dev182 → dhisana-0.0.1.dev183}/src/dhisana/utils/dataframe_tools.py +0 -0
  39. {dhisana-0.0.1.dev182 → dhisana-0.0.1.dev183}/src/dhisana/utils/domain_parser.py +0 -0
  40. {dhisana-0.0.1.dev182 → dhisana-0.0.1.dev183}/src/dhisana/utils/email_parse_helpers.py +0 -0
  41. {dhisana-0.0.1.dev182 → dhisana-0.0.1.dev183}/src/dhisana/utils/email_provider.py +0 -0
  42. {dhisana-0.0.1.dev182 → dhisana-0.0.1.dev183}/src/dhisana/utils/enrich_lead_information.py +0 -0
  43. {dhisana-0.0.1.dev182 → dhisana-0.0.1.dev183}/src/dhisana/utils/extract_email_content_for_llm.py +0 -0
  44. {dhisana-0.0.1.dev182 → dhisana-0.0.1.dev183}/src/dhisana/utils/fetch_openai_config.py +0 -0
  45. {dhisana-0.0.1.dev182 → dhisana-0.0.1.dev183}/src/dhisana/utils/field_validators.py +0 -0
  46. {dhisana-0.0.1.dev182 → dhisana-0.0.1.dev183}/src/dhisana/utils/g2_tools.py +0 -0
  47. {dhisana-0.0.1.dev182 → dhisana-0.0.1.dev183}/src/dhisana/utils/generate_content.py +0 -0
  48. {dhisana-0.0.1.dev182 → dhisana-0.0.1.dev183}/src/dhisana/utils/generate_email.py +0 -0
  49. {dhisana-0.0.1.dev182 → dhisana-0.0.1.dev183}/src/dhisana/utils/generate_email_response.py +0 -0
  50. {dhisana-0.0.1.dev182 → dhisana-0.0.1.dev183}/src/dhisana/utils/generate_flow.py +0 -0
  51. {dhisana-0.0.1.dev182 → dhisana-0.0.1.dev183}/src/dhisana/utils/generate_leads_salesnav.py +0 -0
  52. {dhisana-0.0.1.dev182 → dhisana-0.0.1.dev183}/src/dhisana/utils/generate_linkedin_connect_message.py +0 -0
  53. {dhisana-0.0.1.dev182 → dhisana-0.0.1.dev183}/src/dhisana/utils/generate_linkedin_response_message.py +0 -0
  54. {dhisana-0.0.1.dev182 → dhisana-0.0.1.dev183}/src/dhisana/utils/generate_structured_output_internal.py +0 -0
  55. {dhisana-0.0.1.dev182 → dhisana-0.0.1.dev183}/src/dhisana/utils/google_custom_search.py +0 -0
  56. {dhisana-0.0.1.dev182 → dhisana-0.0.1.dev183}/src/dhisana/utils/google_workspace_tools.py +0 -0
  57. {dhisana-0.0.1.dev182 → dhisana-0.0.1.dev183}/src/dhisana/utils/hubspot_clearbit.py +0 -0
  58. {dhisana-0.0.1.dev182 → dhisana-0.0.1.dev183}/src/dhisana/utils/hubspot_crm_tools.py +0 -0
  59. {dhisana-0.0.1.dev182 → dhisana-0.0.1.dev183}/src/dhisana/utils/instantly_tools.py +0 -0
  60. {dhisana-0.0.1.dev182 → dhisana-0.0.1.dev183}/src/dhisana/utils/linkedin_crawler.py +0 -0
  61. {dhisana-0.0.1.dev182 → dhisana-0.0.1.dev183}/src/dhisana/utils/lusha_tools.py +0 -0
  62. {dhisana-0.0.1.dev182 → dhisana-0.0.1.dev183}/src/dhisana/utils/openai_assistant_and_file_utils.py +0 -0
  63. {dhisana-0.0.1.dev182 → dhisana-0.0.1.dev183}/src/dhisana/utils/openai_helpers.py +0 -0
  64. {dhisana-0.0.1.dev182 → dhisana-0.0.1.dev183}/src/dhisana/utils/openapi_spec_to_tools.py +0 -0
  65. {dhisana-0.0.1.dev182 → dhisana-0.0.1.dev183}/src/dhisana/utils/openapi_tool/__init__.py +0 -0
  66. {dhisana-0.0.1.dev182 → dhisana-0.0.1.dev183}/src/dhisana/utils/openapi_tool/api_models.py +0 -0
  67. {dhisana-0.0.1.dev182 → dhisana-0.0.1.dev183}/src/dhisana/utils/openapi_tool/convert_openai_spec_to_tool.py +0 -0
  68. {dhisana-0.0.1.dev182 → dhisana-0.0.1.dev183}/src/dhisana/utils/openapi_tool/openapi_tool.py +0 -0
  69. {dhisana-0.0.1.dev182 → dhisana-0.0.1.dev183}/src/dhisana/utils/parse_linkedin_messages_txt.py +0 -0
  70. {dhisana-0.0.1.dev182 → dhisana-0.0.1.dev183}/src/dhisana/utils/proxy_curl_tools.py +0 -0
  71. {dhisana-0.0.1.dev182 → dhisana-0.0.1.dev183}/src/dhisana/utils/proxycurl_search_leads.py +0 -0
  72. {dhisana-0.0.1.dev182 → dhisana-0.0.1.dev183}/src/dhisana/utils/python_function_to_tools.py +0 -0
  73. {dhisana-0.0.1.dev182 → dhisana-0.0.1.dev183}/src/dhisana/utils/research_lead.py +0 -0
  74. {dhisana-0.0.1.dev182 → dhisana-0.0.1.dev183}/src/dhisana/utils/sales_navigator_crawler.py +0 -0
  75. {dhisana-0.0.1.dev182 → dhisana-0.0.1.dev183}/src/dhisana/utils/salesforce_crm_tools.py +0 -0
  76. {dhisana-0.0.1.dev182 → dhisana-0.0.1.dev183}/src/dhisana/utils/search_router.py +0 -0
  77. {dhisana-0.0.1.dev182 → dhisana-0.0.1.dev183}/src/dhisana/utils/search_router_jobs.py +0 -0
  78. {dhisana-0.0.1.dev182 → dhisana-0.0.1.dev183}/src/dhisana/utils/sendgrid_tools.py +0 -0
  79. {dhisana-0.0.1.dev182 → dhisana-0.0.1.dev183}/src/dhisana/utils/serarch_router_local_business.py +0 -0
  80. {dhisana-0.0.1.dev182 → dhisana-0.0.1.dev183}/src/dhisana/utils/serpapi_additional_tools.py +0 -0
  81. {dhisana-0.0.1.dev182 → dhisana-0.0.1.dev183}/src/dhisana/utils/serpapi_google_jobs.py +0 -0
  82. {dhisana-0.0.1.dev182 → dhisana-0.0.1.dev183}/src/dhisana/utils/serpapi_local_business_search.py +0 -0
  83. {dhisana-0.0.1.dev182 → dhisana-0.0.1.dev183}/src/dhisana/utils/serpapi_search_tools.py +0 -0
  84. {dhisana-0.0.1.dev182 → dhisana-0.0.1.dev183}/src/dhisana/utils/serperdev_google_jobs.py +0 -0
  85. {dhisana-0.0.1.dev182 → dhisana-0.0.1.dev183}/src/dhisana/utils/serperdev_local_business.py +0 -0
  86. {dhisana-0.0.1.dev182 → dhisana-0.0.1.dev183}/src/dhisana/utils/smtp_email_tools.py +0 -0
  87. {dhisana-0.0.1.dev182 → dhisana-0.0.1.dev183}/src/dhisana/utils/test_connect.py +0 -0
  88. {dhisana-0.0.1.dev182 → dhisana-0.0.1.dev183}/src/dhisana/utils/trasform_json.py +0 -0
  89. {dhisana-0.0.1.dev182 → dhisana-0.0.1.dev183}/src/dhisana/utils/web_download_parse_tools.py +0 -0
  90. {dhisana-0.0.1.dev182 → dhisana-0.0.1.dev183}/src/dhisana/utils/workflow_code_model.py +0 -0
  91. {dhisana-0.0.1.dev182 → dhisana-0.0.1.dev183}/src/dhisana/utils/zoominfo_tools.py +0 -0
  92. {dhisana-0.0.1.dev182 → dhisana-0.0.1.dev183}/src/dhisana/workflow/__init__.py +0 -0
  93. {dhisana-0.0.1.dev182 → dhisana-0.0.1.dev183}/src/dhisana/workflow/agent.py +0 -0
  94. {dhisana-0.0.1.dev182 → dhisana-0.0.1.dev183}/src/dhisana/workflow/flow.py +0 -0
  95. {dhisana-0.0.1.dev182 → dhisana-0.0.1.dev183}/src/dhisana/workflow/task.py +0 -0
  96. {dhisana-0.0.1.dev182 → dhisana-0.0.1.dev183}/src/dhisana/workflow/test.py +0 -0
  97. {dhisana-0.0.1.dev182 → dhisana-0.0.1.dev183}/src/dhisana.egg-info/SOURCES.txt +0 -0
  98. {dhisana-0.0.1.dev182 → dhisana-0.0.1.dev183}/src/dhisana.egg-info/dependency_links.txt +0 -0
  99. {dhisana-0.0.1.dev182 → dhisana-0.0.1.dev183}/src/dhisana.egg-info/entry_points.txt +0 -0
  100. {dhisana-0.0.1.dev182 → dhisana-0.0.1.dev183}/src/dhisana.egg-info/requires.txt +0 -0
  101. {dhisana-0.0.1.dev182 → dhisana-0.0.1.dev183}/src/dhisana.egg-info/top_level.txt +0 -0
  102. {dhisana-0.0.1.dev182 → dhisana-0.0.1.dev183}/tests/test_agent_tools.py +0 -0
  103. {dhisana-0.0.1.dev182 → dhisana-0.0.1.dev183}/tests/test_linkedin_serper.py +0 -0
  104. {dhisana-0.0.1.dev182 → dhisana-0.0.1.dev183}/tests/test_mcp_connectivity.py +0 -0
  105. {dhisana-0.0.1.dev182 → dhisana-0.0.1.dev183}/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.dev182
3
+ Version: 0.0.1.dev183
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-dev182',
5
+ version='0.0.1-dev183',
6
6
  description='A Python SDK for Dhisana AI Platform',
7
7
  author='Admin',
8
8
  author_email='contact@dhisana.ai',
@@ -1,15 +1,10 @@
1
1
  import json
2
2
  import os
3
- import re
4
- from typing import Any, Dict, List, Optional
5
- from urllib.parse import urlparse
3
+ from typing import Dict, List, Optional
6
4
  import aiohttp
7
- from bs4 import BeautifulSoup
8
- import urllib
9
5
 
10
6
  from dhisana.utils.assistant_tool_tag import assistant_tool
11
7
  from dhisana.utils.cache_output_tools import cache_output, retrieve_output
12
- from dhisana.utils.web_download_parse_tools import fetch_html_content
13
8
 
14
9
  import logging
15
10
  logging.basicConfig(level=logging.INFO)
@@ -91,8 +86,8 @@ async def search_google_serpai(
91
86
  SERPAPI_KEY = get_serp_api_access_token(tool_config)
92
87
  base_url = "https://serpapi.com/search"
93
88
 
94
- page_size = 100
95
- start_index = offset * 100
89
+ page_size = number_of_results
90
+ start_index = 0 if offset == 0 else offset + 1 # SerpAPI Pagination Mechanism: Uses the start parameter to specify the first result (zero-indexed)
96
91
  all_items: list[dict] = []
97
92
  seen_links: set[str] = set() # dedupe across blocks/pages
98
93
 
@@ -1,21 +1,15 @@
1
1
  import json
2
2
  import os
3
- import re
4
3
  from typing import Any, Dict, List, Optional
5
4
  import aiohttp
6
- from bs4 import BeautifulSoup
7
5
 
8
6
  import logging
9
7
  logging.basicConfig(level=logging.INFO)
10
8
  logger = logging.getLogger(__name__)
11
9
 
12
- from urllib.parse import urlparse
13
- import urllib
14
10
 
15
11
  # If you have these utils in your project, import them; otherwise, remove them or replace them.
16
- from dhisana.utils.assistant_tool_tag import assistant_tool
17
12
  from dhisana.utils.cache_output_tools import cache_output, retrieve_output
18
- from dhisana.utils.web_download_parse_tools import fetch_html_content
19
13
 
20
14
 
21
15
  def get_serper_dev_api_access_token(tool_config: Optional[List[Dict]] = None) -> str:
@@ -119,8 +113,18 @@ async def search_google_serper(
119
113
  "Content-Type": "application/json"
120
114
  }
121
115
 
122
- # Serper.dev uses 'page' to paginate. We'll treat 'offset' as "start from page offset+1".
123
- page = offset + 1
116
+ # Serper.dev uses 'page' to paginate. We need to calculate the page number based on offset.
117
+ # Serper.dev uses 1-based indexing for pages, so we need to adjust accordingly
118
+ # e.g., if offset is 0, we want page 1; if offset is 10, we want page 2, etc.
119
+ # Assuming number_of_results is the number of results per page.
120
+ # If offset is 0, we want the first page,
121
+ # if offset is 10 and number_of_results is 10, we want the second page, etc.
122
+ # This means we can calculate the page as follows:
123
+ # page = (offset // number_of_results) + 1
124
+ # If offset is 0, page will be 1; if offset is 10 and number_of_results is 10, page will be 2.
125
+ # This is consistent with how Serper.dev handles pagination.
126
+ if number_of_results <= 0:
127
+ page = 1 if offset == 0 else (offset // number_of_results) + 1
124
128
  all_results: List[Dict[str, Any]] = []
125
129
 
126
130
  # We'll collect results from "organic", converting each to a SerpAPI-like format.
@@ -132,7 +136,7 @@ async def search_google_serper(
132
136
  "hl": "en", # language
133
137
  "autocorrect": True,
134
138
  "page": page,
135
- "num": 100,
139
+ "num": number_of_results,
136
140
  "type": "search" # or 'news', 'images', etc., if needed
137
141
  }
138
142
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dhisana
3
- Version: 0.0.1.dev182
3
+ Version: 0.0.1.dev183
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