Skip to content

Commit f45b405

Browse files
committed
Version 1.4.97
1 parent 71c29bc commit f45b405

351 files changed

Lines changed: 2175 additions & 60 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎abacusai/__init__.py‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -285,6 +285,7 @@
285285
from .user import User
286286
from .user_exception import UserException
287287
from .user_group_object_permission import UserGroupObjectPermission
288+
from .user_ssh_key import UserSshKey
288289
from .vertical import Vertical
289290
from .vertical_files_result import VerticalFilesResult
290291
from .video_gen_costs import VideoGenCosts
@@ -307,4 +308,4 @@
307308
from .workflow_node_template import WorkflowNodeTemplate
308309

309310

310-
__version__ = "1.4.96"
311+
__version__ = "1.4.97"

‎abacusai/api_class/dataset_application_connector.py‎

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -276,6 +276,50 @@ def __post_init__(self):
276276
self.application_connector_type = enums.ApplicationConnectorType.SFTPAPPLICATION
277277

278278

279+
@dataclasses.dataclass
280+
class DropboxDatasetConfig(ApplicationConnectorDatasetConfig):
281+
"""
282+
Dataset config for Dropbox Application Connector
283+
284+
Args:
285+
location (str): The regex location of the files to fetch
286+
csv_delimiter (str): If the file format is CSV, use a specific csv delimiter
287+
extract_bounding_boxes (bool): Signifies whether to extract bounding boxes out of the documents. Only valid if is_documentset is True
288+
merge_file_schemas (bool): Signifies if the merge file schema policy is enabled. Not applicable if is_documentset is True
289+
"""
290+
location: str = dataclasses.field(default=None)
291+
csv_delimiter: str = dataclasses.field(default=None)
292+
extract_bounding_boxes: bool = dataclasses.field(default=False)
293+
merge_file_schemas: bool = dataclasses.field(default=False)
294+
295+
def __post_init__(self):
296+
self.application_connector_type = enums.ApplicationConnectorType.DROPBOX
297+
298+
299+
@dataclasses.dataclass
300+
class HubspotDatasetConfig(ApplicationConnectorDatasetConfig):
301+
"""
302+
Dataset config for HubSpot Application Connector
303+
304+
Args:
305+
object_type (str): The HubSpot CRM object type to fetch. Supports both standard and custom objects.
306+
associations (list): Optional list of associated object types to include
307+
archived (bool): Whether to include archived records
308+
"""
309+
object_type: str = dataclasses.field(default=None)
310+
associations: list = dataclasses.field(default=None)
311+
archived: bool = dataclasses.field(default=False)
312+
313+
def __post_init__(self):
314+
self.application_connector_type = enums.ApplicationConnectorType.HUBSPOT
315+
if isinstance(self.object_type, dict):
316+
self.object_type = self.object_type.get('value') or self.object_type.get('name') or self.object_type.get('label')
317+
if isinstance(self.object_type, str):
318+
normalized_object_type = self.object_type.strip().lower().replace(' ', '_')
319+
if normalized_object_type:
320+
self.object_type = normalized_object_type
321+
322+
279323
@dataclasses.dataclass
280324
class _ApplicationConnectorDatasetConfigFactory(_ApiClassFactory):
281325
config_abstract_class = ApplicationConnectorDatasetConfig
@@ -295,4 +339,6 @@ class _ApplicationConnectorDatasetConfigFactory(_ApiClassFactory):
295339
enums.ApplicationConnectorType.SFTPAPPLICATION: SftpDatasetConfig,
296340
enums.ApplicationConnectorType.OUTLOOK: OutlookDatasetConfig,
297341
enums.ApplicationConnectorType.AZURESTORAGE: AzureStorageDatasetConfig,
342+
enums.ApplicationConnectorType.DROPBOX: DropboxDatasetConfig,
343+
enums.ApplicationConnectorType.HUBSPOT: HubspotDatasetConfig,
298344
}

‎abacusai/api_class/enums.py‎

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -412,6 +412,7 @@ class ApplicationConnectorType(ApiEnum):
412412
GMAILUSER = 'GMAILUSER'
413413
GOOGLESHEETS = 'GOOGLESHEETS'
414414
GOOGLEDOCS = 'GOOGLEDOCS'
415+
HUBSPOT = 'HUBSPOT'
415416
TEAMSSCRAPER = 'TEAMSSCRAPER'
416417
GITHUBUSER = 'GITHUBUSER'
417418
OKTASAML = 'OKTASAML'
@@ -428,6 +429,9 @@ class ApplicationConnectorType(ApiEnum):
428429
BIGQUERY = 'BIGQUERY'
429430
AZURESTORAGE = 'AZURESTORAGE'
430431
SNOWFLAKEUSER = 'SNOWFLAKEUSER'
432+
DROPBOX = 'DROPBOX'
433+
FIGMAUSER = 'FIGMAUSER'
434+
AWSSSO = 'AWSSSO'
431435

432436
@classmethod
433437
def user_connectors(cls):
@@ -437,6 +441,7 @@ def user_connectors(cls):
437441
cls.GMAILUSER,
438442
cls.SLACK,
439443
cls.JIRA,
444+
cls.HUBSPOT,
440445
cls.MONDAY,
441446
cls.ONEDRIVE,
442447
cls.SALESFORCE,
@@ -452,6 +457,9 @@ def user_connectors(cls):
452457
cls.OUTLOOK,
453458
cls.BIGQUERY,
454459
cls.SNOWFLAKEUSER,
460+
cls.DROPBOX,
461+
cls.FIGMAUSER,
462+
cls.AWSSSO,
455463
]
456464

457465
@classmethod
@@ -580,6 +588,7 @@ class LLMName(ApiEnum):
580588
GEMINI_3_1_PRO = 'GEMINI_3_1_PRO'
581589
GEMINI_2_5_FLASH = 'GEMINI_2_5_FLASH'
582590
GEMINI_3_FLASH = 'GEMINI_3_FLASH'
591+
GEMINI_3_5_FLASH = 'GEMINI_3_5_FLASH'
583592
GEMINI_3_1_FLASH_LITE = 'GEMINI_3_1_FLASH_LITE'
584593
XAI_GROK = 'XAI_GROK'
585594
XAI_GROK_3 = 'XAI_GROK_3'
@@ -604,6 +613,7 @@ class LLMName(ApiEnum):
604613
QWEN3_CODER = 'QWEN3_CODER'
605614
QWEN3_6 = 'QWEN3_6'
606615
QWEN3_6_27B = 'QWEN3_6_27B'
616+
QWEN3_7_MAX = 'QWEN3_7_MAX'
607617
DEEPSEEK_V3_1 = 'DEEPSEEK_V3_1'
608618
DEEPSEEK_R1 = 'DEEPSEEK_R1'
609619
MINIMAX_M2_7 = 'MINIMAX_M2_7'

‎abacusai/batch_prediction.py‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ def __init__(self, client, batchPredictionId=None, createdAt=None, name=None, de
8484
BatchPredictionArgs, globalPredictionArgs)
8585
self.batch_prediction_args = client._build_class(getattr(
8686
api_class, batchPredictionArgsType, BatchPredictionArgs) if batchPredictionArgsType else BatchPredictionArgs, batchPredictionArgs)
87-
self.deprecated_keys = {'explanations', 'global_prediction_args'}
87+
self.deprecated_keys = {'global_prediction_args', 'explanations'}
8888

8989
def __repr__(self):
9090
repr_dict = {f'batch_prediction_id': repr(self.batch_prediction_id), f'created_at': repr(self.created_at), f'name': repr(self.name), f'deployment_id': repr(self.deployment_id), f'file_connector_output_location': repr(self.file_connector_output_location), f'database_connector_id': repr(self.database_connector_id), f'database_output_configuration': repr(self.database_output_configuration), f'file_output_format': repr(self.file_output_format), f'connector_type': repr(self.connector_type), f'legacy_input_location': repr(self.legacy_input_location), f'output_feature_group_id': repr(self.output_feature_group_id), f'feature_group_table_name': repr(self.feature_group_table_name), f'output_feature_group_table_name': repr(self.output_feature_group_table_name), f'summary_feature_group_table_name': repr(self.summary_feature_group_table_name), f'csv_input_prefix': repr(

‎abacusai/batch_prediction_version.py‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ def __init__(self, client, batchPredictionVersion=None, batchPredictionId=None,
100100
BatchPredictionArgs, globalPredictionArgs)
101101
self.batch_prediction_args = client._build_class(getattr(
102102
api_class, batchPredictionArgsType, BatchPredictionArgs) if batchPredictionArgsType else BatchPredictionArgs, batchPredictionArgs)
103-
self.deprecated_keys = {'explanations', 'global_prediction_args'}
103+
self.deprecated_keys = {'global_prediction_args', 'explanations'}
104104

105105
def __repr__(self):
106106
repr_dict = {f'batch_prediction_version': repr(self.batch_prediction_version), f'batch_prediction_id': repr(self.batch_prediction_id), f'status': repr(self.status), f'drift_monitor_status': repr(self.drift_monitor_status), f'deployment_id': repr(self.deployment_id), f'model_id': repr(self.model_id), f'model_version': repr(self.model_version), f'predictions_started_at': repr(self.predictions_started_at), f'predictions_completed_at': repr(self.predictions_completed_at), f'database_output_error': repr(self.database_output_error), f'total_predictions': repr(self.total_predictions), f'failed_predictions': repr(self.failed_predictions), f'database_connector_id': repr(self.database_connector_id), f'database_output_configuration': repr(self.database_output_configuration), f'file_connector_output_location': repr(self.file_connector_output_location), f'file_output_format': repr(self.file_output_format), f'connector_type': repr(self.connector_type), f'legacy_input_location': repr(self.legacy_input_location), f'error': repr(self.error), f'drift_monitor_error': repr(self.drift_monitor_error), f'monitor_warnings': repr(self.monitor_warnings), f'csv_input_prefix': repr(

‎abacusai/client.py‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -716,7 +716,7 @@ class BaseApiClient:
716716
client_options (ClientOptions): Optional API client configurations
717717
skip_version_check (bool): If true, will skip checking the server's current API version on initializing the client
718718
"""
719-
client_version = '1.4.96'
719+
client_version = '1.4.97'
720720

721721
def __init__(self, api_key: str = None, server: str = None, client_options: ClientOptions = None, skip_version_check: bool = False, include_tb: bool = False):
722722
self.api_key = api_key

0 commit comments

Comments
 (0)