dhisana 0.0.1.dev250__tar.gz → 0.0.1.dev251__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.dev250 → dhisana-0.0.1.dev251}/PKG-INFO +1 -1
  2. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/setup.py +1 -1
  3. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/src/dhisana/utils/cache_output_tools.py +22 -2
  4. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/src/dhisana/utils/proxy_curl_tools.py +12 -9
  5. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/src/dhisana.egg-info/PKG-INFO +1 -1
  6. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/README.md +0 -0
  7. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/pyproject.toml +0 -0
  8. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/setup.cfg +0 -0
  9. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/src/dhisana/__init__.py +0 -0
  10. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/src/dhisana/cli/__init__.py +0 -0
  11. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/src/dhisana/cli/cli.py +0 -0
  12. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/src/dhisana/cli/datasets.py +0 -0
  13. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/src/dhisana/cli/models.py +0 -0
  14. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/src/dhisana/cli/predictions.py +0 -0
  15. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/src/dhisana/schemas/__init__.py +0 -0
  16. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/src/dhisana/schemas/common.py +0 -0
  17. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/src/dhisana/schemas/sales.py +0 -0
  18. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/src/dhisana/ui/__init__.py +0 -0
  19. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/src/dhisana/ui/components.py +0 -0
  20. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/src/dhisana/utils/__init__.py +0 -0
  21. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/src/dhisana/utils/add_mapping.py +0 -0
  22. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/src/dhisana/utils/agent_tools.py +0 -0
  23. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/src/dhisana/utils/apollo_tools.py +0 -0
  24. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/src/dhisana/utils/assistant_tool_tag.py +0 -0
  25. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/src/dhisana/utils/built_with_api_tools.py +0 -0
  26. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/src/dhisana/utils/cache_output_tools_local.py +0 -0
  27. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/src/dhisana/utils/check_email_validity_tools.py +0 -0
  28. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/src/dhisana/utils/check_for_intent_signal.py +0 -0
  29. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/src/dhisana/utils/check_linkedin_url_validity.py +0 -0
  30. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/src/dhisana/utils/clay_tools.py +0 -0
  31. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/src/dhisana/utils/clean_properties.py +0 -0
  32. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/src/dhisana/utils/company_utils.py +0 -0
  33. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/src/dhisana/utils/compose_salesnav_query.py +0 -0
  34. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/src/dhisana/utils/compose_search_query.py +0 -0
  35. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/src/dhisana/utils/compose_three_step_workflow.py +0 -0
  36. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/src/dhisana/utils/composite_tools.py +0 -0
  37. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/src/dhisana/utils/dataframe_tools.py +0 -0
  38. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/src/dhisana/utils/domain_parser.py +0 -0
  39. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/src/dhisana/utils/email_body_utils.py +0 -0
  40. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/src/dhisana/utils/email_parse_helpers.py +0 -0
  41. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/src/dhisana/utils/email_provider.py +0 -0
  42. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/src/dhisana/utils/enrich_lead_information.py +0 -0
  43. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/src/dhisana/utils/extract_email_content_for_llm.py +0 -0
  44. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/src/dhisana/utils/fetch_openai_config.py +0 -0
  45. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/src/dhisana/utils/field_validators.py +0 -0
  46. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/src/dhisana/utils/g2_tools.py +0 -0
  47. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/src/dhisana/utils/generate_content.py +0 -0
  48. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/src/dhisana/utils/generate_custom_message.py +0 -0
  49. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/src/dhisana/utils/generate_email.py +0 -0
  50. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/src/dhisana/utils/generate_email_response.py +0 -0
  51. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/src/dhisana/utils/generate_flow.py +0 -0
  52. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/src/dhisana/utils/generate_leads_salesnav.py +0 -0
  53. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/src/dhisana/utils/generate_linkedin_connect_message.py +0 -0
  54. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/src/dhisana/utils/generate_linkedin_response_message.py +0 -0
  55. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/src/dhisana/utils/generate_structured_output_internal.py +0 -0
  56. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/src/dhisana/utils/google_custom_search.py +0 -0
  57. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/src/dhisana/utils/google_oauth_tools.py +0 -0
  58. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/src/dhisana/utils/google_workspace_tools.py +0 -0
  59. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/src/dhisana/utils/hubspot_clearbit.py +0 -0
  60. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/src/dhisana/utils/hubspot_crm_tools.py +0 -0
  61. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/src/dhisana/utils/instantly_tools.py +0 -0
  62. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/src/dhisana/utils/linkedin_crawler.py +0 -0
  63. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/src/dhisana/utils/lusha_tools.py +0 -0
  64. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/src/dhisana/utils/mailgun_tools.py +0 -0
  65. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/src/dhisana/utils/mailreach_tools.py +0 -0
  66. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/src/dhisana/utils/microsoft365_tools.py +0 -0
  67. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/src/dhisana/utils/openai_assistant_and_file_utils.py +0 -0
  68. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/src/dhisana/utils/openai_helpers.py +0 -0
  69. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/src/dhisana/utils/openapi_spec_to_tools.py +0 -0
  70. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/src/dhisana/utils/openapi_tool/__init__.py +0 -0
  71. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/src/dhisana/utils/openapi_tool/api_models.py +0 -0
  72. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/src/dhisana/utils/openapi_tool/convert_openai_spec_to_tool.py +0 -0
  73. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/src/dhisana/utils/openapi_tool/openapi_tool.py +0 -0
  74. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/src/dhisana/utils/parse_linkedin_messages_txt.py +0 -0
  75. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/src/dhisana/utils/profile.py +0 -0
  76. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/src/dhisana/utils/proxycurl_search_leads.py +0 -0
  77. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/src/dhisana/utils/python_function_to_tools.py +0 -0
  78. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/src/dhisana/utils/research_lead.py +0 -0
  79. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/src/dhisana/utils/sales_navigator_crawler.py +0 -0
  80. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/src/dhisana/utils/salesforce_crm_tools.py +0 -0
  81. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/src/dhisana/utils/search_router.py +0 -0
  82. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/src/dhisana/utils/search_router_jobs.py +0 -0
  83. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/src/dhisana/utils/sendgrid_tools.py +0 -0
  84. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/src/dhisana/utils/serarch_router_local_business.py +0 -0
  85. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/src/dhisana/utils/serpapi_additional_tools.py +0 -0
  86. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/src/dhisana/utils/serpapi_google_jobs.py +0 -0
  87. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/src/dhisana/utils/serpapi_google_search.py +0 -0
  88. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/src/dhisana/utils/serpapi_local_business_search.py +0 -0
  89. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/src/dhisana/utils/serpapi_search_tools.py +0 -0
  90. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/src/dhisana/utils/serperdev_google_jobs.py +0 -0
  91. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/src/dhisana/utils/serperdev_local_business.py +0 -0
  92. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/src/dhisana/utils/serperdev_search.py +0 -0
  93. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/src/dhisana/utils/smtp_email_tools.py +0 -0
  94. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/src/dhisana/utils/test_connect.py +0 -0
  95. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/src/dhisana/utils/trasform_json.py +0 -0
  96. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/src/dhisana/utils/web_download_parse_tools.py +0 -0
  97. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/src/dhisana/utils/workflow_code_model.py +0 -0
  98. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/src/dhisana/utils/zoominfo_tools.py +0 -0
  99. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/src/dhisana/workflow/__init__.py +0 -0
  100. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/src/dhisana/workflow/agent.py +0 -0
  101. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/src/dhisana/workflow/flow.py +0 -0
  102. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/src/dhisana/workflow/task.py +0 -0
  103. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/src/dhisana/workflow/test.py +0 -0
  104. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/src/dhisana.egg-info/SOURCES.txt +0 -0
  105. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/src/dhisana.egg-info/dependency_links.txt +0 -0
  106. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/src/dhisana.egg-info/entry_points.txt +0 -0
  107. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/src/dhisana.egg-info/requires.txt +0 -0
  108. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/src/dhisana.egg-info/top_level.txt +0 -0
  109. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/tests/test_agent_tools.py +0 -0
  110. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/tests/test_apollo_company_search.py +0 -0
  111. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/tests/test_apollo_lead_search.py +0 -0
  112. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/tests/test_connectivity.py +0 -0
  113. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/tests/test_email_body_utils.py +0 -0
  114. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/tests/test_google_document.py +0 -0
  115. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/tests/test_hubspot_call_logs.py +0 -0
  116. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/tests/test_linkedin_serper.py +0 -0
  117. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/tests/test_mailreach.py +0 -0
  118. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/tests/test_mcp_connectivity.py +0 -0
  119. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/tests/test_proxycurl_get_company_search_id.py +0 -0
  120. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/tests/test_proxycurl_job_count.py +0 -0
  121. {dhisana-0.0.1.dev250 → dhisana-0.0.1.dev251}/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.dev250
3
+ Version: 0.0.1.dev251
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-dev250',
5
+ version='0.0.1-dev251',
6
6
  description='A Python SDK for Dhisana AI Platform',
7
7
  author='Admin',
8
8
  author_email='contact@dhisana.ai',
@@ -2,6 +2,7 @@ import os
2
2
  import hashlib
3
3
  import json
4
4
  import logging
5
+ from datetime import datetime, timezone
5
6
 
6
7
  from azure.storage.blob import BlobServiceClient
7
8
  from azure.core.exceptions import ResourceNotFoundError, AzureError
@@ -49,10 +50,11 @@ def cache_output(tool_name: str, key: str, value, ttl: int = None) -> bool:
49
50
  # Construct the blob name using a virtual folder for the tool name
50
51
  blob_name = f"{tool_name}/{key_hash}.json"
51
52
 
52
- # Prepare the cache data
53
+ # Prepare the cache data with timestamp for TTL expiration checking
53
54
  cache_data = {
54
55
  "value": value,
55
- "ttl": ttl
56
+ "ttl": ttl,
57
+ "cached_at": datetime.now(timezone.utc).isoformat()
56
58
  }
57
59
  data = json.dumps(cache_data)
58
60
 
@@ -88,6 +90,24 @@ def retrieve_output(tool_name: str, key: str):
88
90
  download_stream = blob_client.download_blob()
89
91
  content = download_stream.readall() # content is in bytes
90
92
  cache_data = json.loads(content.decode("utf-8"))
93
+
94
+ # Check if TTL has expired
95
+ ttl = cache_data.get("ttl")
96
+ cached_at = cache_data.get("cached_at")
97
+
98
+ if ttl is not None and cached_at is not None:
99
+ try:
100
+ cached_time = datetime.fromisoformat(cached_at)
101
+ now = datetime.now(timezone.utc)
102
+ elapsed_seconds = (now - cached_time).total_seconds()
103
+ if elapsed_seconds > ttl:
104
+ logger.info(f"Cache expired for blob '{blob_name}' (elapsed: {elapsed_seconds}s, ttl: {ttl}s)")
105
+ return None
106
+ except (ValueError, TypeError) as e:
107
+ logger.warning(f"Error parsing cached_at timestamp: {e}")
108
+ # If we can't parse the timestamp, treat as expired for safety
109
+ return None
110
+
91
111
  return cache_data.get("value")
92
112
  except ResourceNotFoundError:
93
113
  # Blob does not exist
@@ -16,6 +16,9 @@ from urllib.parse import urlparse, urlunparse
16
16
  logging.basicConfig(level=logging.INFO)
17
17
  logger = logging.getLogger(__name__)
18
18
 
19
+ # Cache TTL for Proxycurl responses: 14 days in seconds
20
+ PROXYCURL_CACHE_TTL = 14 * 24 * 60 * 60 # 1,209,600 seconds
21
+
19
22
 
20
23
  def get_proxycurl_access_token(tool_config: Optional[List[Dict]] = None) -> str:
21
24
  """
@@ -117,7 +120,7 @@ async def enrich_person_info_from_proxycurl(
117
120
  if response.status == 200:
118
121
  result = await response.json()
119
122
  if linkedin_url:
120
- cache_output("enrich_person_info_from_proxycurl", linkedin_url, result)
123
+ cache_output("enrich_person_info_from_proxycurl", linkedin_url, result, ttl=PROXYCURL_CACHE_TTL)
121
124
  logger.info("Successfully retrieved person info from Proxycurl.")
122
125
  return result
123
126
  elif response.status == 404:
@@ -195,14 +198,14 @@ async def lookup_person_in_proxy_curl_by_name(
195
198
  logger.debug(f"Received response status: {response.status}")
196
199
  if response.status == 200:
197
200
  result = await response.json()
198
- cache_output("lookup_person_in_proxycurl_by_name", key, result)
201
+ cache_output("lookup_person_in_proxycurl_by_name", key, result, ttl=PROXYCURL_CACHE_TTL)
199
202
  logger.info("Successfully retrieved person search info from Proxycurl.")
200
203
  return result
201
204
  elif response.status == 404:
202
205
  msg = "Person not found"
203
206
  logger.warning(msg)
204
207
  if key:
205
- cache_output("lookup_person_in_proxycurl_by_name", key, {'error': msg})
208
+ cache_output("lookup_person_in_proxycurl_by_name", key, {'error': msg}, ttl=PROXYCURL_CACHE_TTL)
206
209
  return {'error': msg}
207
210
  elif response.status == 429:
208
211
  msg = "Rate limit exceeded"
@@ -415,7 +418,7 @@ async def enrich_organization_info_from_proxycurl(
415
418
  if response.status == 200:
416
419
  result = await response.json()
417
420
  transformed_result = transform_company_data(result)
418
- cache_output("enrich_organization_info_from_proxycurl", cache_key, transformed_result)
421
+ cache_output("enrich_organization_info_from_proxycurl", cache_key, transformed_result, ttl=PROXYCURL_CACHE_TTL)
419
422
  logger.info("Successfully retrieved and transformed organization info from Proxycurl by LinkedIn URL.")
420
423
  return transformed_result
421
424
  elif response.status == 429:
@@ -429,7 +432,7 @@ async def enrich_organization_info_from_proxycurl(
429
432
  f"Proxycurl organization profile not found for LinkedIn URL {standardized_url}: {error_text}"
430
433
  )
431
434
  cache_output(
432
- "enrich_organization_info_from_proxycurl", cache_key, {}
435
+ "enrich_organization_info_from_proxycurl", cache_key, {}, ttl=PROXYCURL_CACHE_TTL
433
436
  )
434
437
  return {}
435
438
  else:
@@ -483,7 +486,7 @@ async def enrich_organization_info_from_proxycurl(
483
486
  if profile_response.status == 200:
484
487
  result = await profile_response.json()
485
488
  transformed_result = transform_company_data(result)
486
- cache_output("enrich_organization_info_from_proxycurl", domain_cache_key, transformed_result)
489
+ cache_output("enrich_organization_info_from_proxycurl", domain_cache_key, transformed_result, ttl=PROXYCURL_CACHE_TTL)
487
490
  logger.info("Successfully retrieved and transformed organization info from Proxycurl by domain.")
488
491
  return transformed_result
489
492
  elif profile_response.status == 429:
@@ -509,7 +512,7 @@ async def enrich_organization_info_from_proxycurl(
509
512
  elif response.status == 404:
510
513
  msg = "Item not found"
511
514
  logger.warning(msg)
512
- cache_output("enrich_organization_info_from_proxycurl", domain_cache_key, {})
515
+ cache_output("enrich_organization_info_from_proxycurl", domain_cache_key, {}, ttl=PROXYCURL_CACHE_TTL)
513
516
  return {}
514
517
  else:
515
518
  error_text = await response.text()
@@ -572,7 +575,7 @@ async def enrich_job_info_from_proxycurl(
572
575
  logger.debug(f"Received response status: {response.status}")
573
576
  if response.status == 200:
574
577
  result = await response.json()
575
- cache_output("enrich_job_info_from_proxycurl", job_url, result)
578
+ cache_output("enrich_job_info_from_proxycurl", job_url, result, ttl=PROXYCURL_CACHE_TTL)
576
579
  logger.info("Successfully retrieved job info from Proxycurl.")
577
580
  return result
578
581
  elif response.status == 429:
@@ -583,7 +586,7 @@ async def enrich_job_info_from_proxycurl(
583
586
  elif response.status == 404:
584
587
  msg = "Job not found"
585
588
  logger.warning(msg)
586
- cache_output("enrich_job_info_from_proxycurl", job_url, {'error': msg})
589
+ cache_output("enrich_job_info_from_proxycurl", job_url, {'error': msg}, ttl=PROXYCURL_CACHE_TTL)
587
590
  return {'error': msg}
588
591
  else:
589
592
  error_text = await response.text()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dhisana
3
- Version: 0.0.1.dev250
3
+ Version: 0.0.1.dev251
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