robosystems-client 0.1.13__tar.gz → 0.1.14__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.
Potentially problematic release.
This version of robosystems-client might be problematic. Click here for more details.
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/PKG-INFO +1 -1
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/pyproject.toml +1 -1
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/api/copy/copy_data_to_graph.py +180 -15
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/extensions/README.md +211 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/extensions/__init__.py +29 -0
- robosystems_client-0.1.14/robosystems_client/extensions/copy_client.py +469 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/extensions/extensions.py +17 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/copy_response.py +60 -8
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/copy_response_status.py +1 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/s3_copy_request.py +25 -22
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/.github/workflows/claude.yml +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/.github/workflows/create-pr.yml +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/.github/workflows/create-release.yml +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/.github/workflows/publish.yml +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/.github/workflows/tag-release.yml +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/.github/workflows/test.yml +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/.gitignore +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/.python-version +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/.vscode/settings.json +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/.vscode/tasks.json +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/README.md +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/bin/create-pr +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/bin/create-release +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/justfile +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/pytest.ini +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/__init__.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/api/__init__.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/api/agent/__init__.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/api/agent/query_financial_agent.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/api/auth/__init__.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/api/auth/check_password_strength.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/api/auth/complete_sso_auth.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/api/auth/generate_sso_token.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/api/auth/get_captcha_config.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/api/auth/get_current_auth_user.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/api/auth/get_password_policy.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/api/auth/login_user.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/api/auth/logout_user.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/api/auth/refresh_session.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/api/auth/register_user.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/api/auth/sso_login.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/api/auth/sso_token_exchange.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/api/backup/__init__.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/api/backup/create_backup.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/api/backup/export_backup.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/api/backup/get_backup_download_url.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/api/backup/get_backup_stats.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/api/backup/list_backups.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/api/backup/restore_backup.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/api/connections/__init__.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/api/connections/create_connection.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/api/connections/create_link_token.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/api/connections/delete_connection.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/api/connections/exchange_link_token.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/api/connections/get_connection.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/api/connections/get_connection_options.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/api/connections/init_o_auth.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/api/connections/list_connections.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/api/connections/oauth_callback.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/api/connections/sync_connection.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/api/copy/__init__.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/api/create/__init__.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/api/create/create_graph.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/api/create/get_available_extensions.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/api/graph_analytics/__init__.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/api/graph_analytics/get_graph_metrics.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/api/graph_analytics/get_graph_usage_stats.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/api/graph_billing/__init__.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/api/graph_billing/get_current_graph_bill.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/api/graph_billing/get_graph_billing_history.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/api/graph_billing/get_graph_monthly_bill.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/api/graph_billing/get_graph_usage_details.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/api/graph_credits/__init__.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/api/graph_credits/check_credit_balance.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/api/graph_credits/check_storage_limits.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/api/graph_credits/get_credit_summary.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/api/graph_credits/get_storage_usage.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/api/graph_credits/list_credit_transactions.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/api/graph_health/__init__.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/api/graph_health/get_database_health.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/api/graph_info/__init__.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/api/graph_info/get_database_info.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/api/graph_limits/__init__.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/api/graph_limits/get_graph_limits.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/api/mcp/__init__.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/api/mcp/call_mcp_tool.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/api/mcp/list_mcp_tools.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/api/operations/__init__.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/api/operations/cancel_operation.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/api/operations/get_operation_status.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/api/operations/stream_operation_events.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/api/query/__init__.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/api/query/execute_cypher_query.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/api/schema/__init__.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/api/schema/export_graph_schema.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/api/schema/get_graph_schema_info.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/api/schema/list_schema_extensions.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/api/schema/validate_schema.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/api/service_offerings/__init__.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/api/service_offerings/get_service_offerings.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/api/status/__init__.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/api/status/get_service_status.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/api/subgraphs/__init__.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/api/subgraphs/create_subgraph.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/api/subgraphs/delete_subgraph.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/api/subgraphs/get_subgraph_info.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/api/subgraphs/get_subgraph_quota.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/api/subgraphs/list_subgraphs.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/api/user/__init__.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/api/user/create_user_api_key.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/api/user/get_all_credit_summaries.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/api/user/get_current_user.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/api/user/get_user_graphs.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/api/user/list_user_api_keys.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/api/user/revoke_user_api_key.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/api/user/select_user_graph.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/api/user/update_user.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/api/user/update_user_api_key.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/api/user/update_user_password.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/api/user_analytics/__init__.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/api/user_analytics/get_detailed_user_analytics.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/api/user_analytics/get_user_usage_overview.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/api/user_limits/__init__.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/api/user_limits/get_all_shared_repository_limits.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/api/user_limits/get_shared_repository_limits.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/api/user_limits/get_user_limits.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/api/user_limits/get_user_usage.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/api/user_subscriptions/__init__.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/api/user_subscriptions/cancel_shared_repository_subscription.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/api/user_subscriptions/get_repository_credits.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/api/user_subscriptions/get_shared_repository_credits.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/api/user_subscriptions/get_user_shared_subscriptions.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/api/user_subscriptions/subscribe_to_shared_repository.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/api/user_subscriptions/upgrade_shared_repository_subscription.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/client.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/errors.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/extensions/auth_integration.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/extensions/operation_client.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/extensions/query_client.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/extensions/sse_client.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/extensions/tests/__init__.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/extensions/tests/test_integration.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/extensions/tests/test_unit.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/extensions/utils.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/__init__.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/account_info.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/add_on_credit_info.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/agent_message.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/agent_request.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/agent_request_context_type_0.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/agent_response.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/agent_response_metadata_type_0.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/api_key_info.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/api_keys_response.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/auth_response.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/auth_response_user.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/available_extension.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/available_extensions_response.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/backup_create_request.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/backup_list_response.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/backup_response.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/backup_restore_request.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/backup_stats_response.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/backup_stats_response_backup_formats.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/cancel_operation_response_canceloperation.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/cancellation_response.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/check_credit_balance_response_checkcreditbalance.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/connection_options_response.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/connection_provider_info.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/connection_provider_info_auth_type.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/connection_provider_info_provider.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/connection_response.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/connection_response_metadata.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/connection_response_provider.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/copy_response_error_details_type_0.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/create_api_key_request.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/create_api_key_response.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/create_connection_request.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/create_connection_request_provider.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/create_graph_request.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/create_subgraph_request.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/create_subgraph_request_metadata_type_0.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/credit_summary.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/credit_summary_response.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/credits_summary_response.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/credits_summary_response_credits_by_addon_item.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/custom_schema_definition.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/custom_schema_definition_metadata.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/custom_schema_definition_nodes_item.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/custom_schema_definition_relationships_item.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/cypher_query_request.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/cypher_query_request_parameters_type_0.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/data_frame_copy_request.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/data_frame_copy_request_format.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/database_health_response.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/database_info_response.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/delete_subgraph_request.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/delete_subgraph_response.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/detailed_transactions_response.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/detailed_transactions_response_date_range.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/detailed_transactions_response_summary.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/enhanced_credit_transaction_response.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/enhanced_credit_transaction_response_metadata.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/error_response.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/exchange_token_request.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/exchange_token_request_metadata_type_0.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/get_all_credit_summaries_response_getallcreditsummaries.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/get_all_shared_repository_limits_response_getallsharedrepositorylimits.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/get_backup_download_url_response_getbackupdownloadurl.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/get_current_auth_user_response_getcurrentauthuser.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/get_current_graph_bill_response_getcurrentgraphbill.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/get_graph_billing_history_response_getgraphbillinghistory.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/get_graph_limits_response_getgraphlimits.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/get_graph_monthly_bill_response_getgraphmonthlybill.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/get_graph_schema_info_response_getgraphschemainfo.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/get_graph_usage_details_response_getgraphusagedetails.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/get_operation_status_response_getoperationstatus.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/get_shared_repository_limits_response_getsharedrepositorylimits.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/get_storage_usage_response_getstorageusage.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/graph_info.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/graph_metadata.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/graph_metrics_response.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/graph_metrics_response_estimated_size.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/graph_metrics_response_health_status.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/graph_metrics_response_node_counts.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/graph_metrics_response_relationship_counts.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/graph_usage_response.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/graph_usage_response_query_statistics.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/graph_usage_response_recent_activity.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/graph_usage_response_storage_usage.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/health_status.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/health_status_details_type_0.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/http_validation_error.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/initial_entity_data.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/link_token_request.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/link_token_request_options_type_0.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/link_token_request_provider_type_0.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/list_connections_provider_type_0.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/list_schema_extensions_response_listschemaextensions.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/list_subgraphs_response.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/login_request.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/logout_user_response_logoutuser.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/mcp_tool_call.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/mcp_tool_call_arguments.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/mcp_tools_response.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/mcp_tools_response_tools_item.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/o_auth_callback_request.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/o_auth_init_request.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/o_auth_init_request_additional_params_type_0.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/o_auth_init_response.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/password_check_request.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/password_check_response.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/password_check_response_character_types.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/password_policy_response.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/password_policy_response_policy.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/plaid_connection_config.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/plaid_connection_config_accounts_type_0_item.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/plaid_connection_config_institution_type_0.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/quick_books_connection_config.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/register_request.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/repository_credits_response.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/repository_plan.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/repository_type.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/response_mode.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/s3_copy_request_file_format.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/s3_copy_request_s3_url_style_type_0.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/schema_export_response.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/schema_export_response_data_stats_type_0.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/schema_export_response_schema_definition_type_0.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/schema_validation_request.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/schema_validation_request_schema_definition_type_0.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/schema_validation_response.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/schema_validation_response_compatibility_type_0.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/schema_validation_response_stats_type_0.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/sec_connection_config.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/sso_complete_request.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/sso_exchange_request.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/sso_exchange_response.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/sso_login_request.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/sso_token_response.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/storage_limit_response.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/subgraph_quota_response.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/subgraph_response.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/subgraph_response_metadata_type_0.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/subgraph_summary.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/subgraph_type.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/subscription_info.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/subscription_info_metadata.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/subscription_request.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/subscription_response.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/success_response.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/success_response_data_type_0.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/sync_connection_request.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/sync_connection_request_sync_options_type_0.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/sync_connection_response_syncconnection.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/tier_upgrade_request.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/transaction_summary_response.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/update_api_key_request.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/update_password_request.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/update_user_request.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/url_copy_request.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/url_copy_request_file_format.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/url_copy_request_headers_type_0.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/user_analytics_response.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/user_analytics_response_api_usage.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/user_analytics_response_graph_usage.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/user_analytics_response_limits.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/user_analytics_response_recent_activity_item.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/user_analytics_response_user_info.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/user_graph_summary.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/user_graphs_response.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/user_limits_response.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/user_response.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/user_subscriptions_response.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/user_usage_response.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/user_usage_response_graphs.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/user_usage_summary_response.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/user_usage_summary_response_usage_vs_limits.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/models/validation_error.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/py.typed +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/sdk-config.yaml +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/types.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/ruff.toml +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/tests/__init__.py +0 -0
- {robosystems_client-0.1.13 → robosystems_client-0.1.14}/tests/test_client.py +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
from http import HTTPStatus
|
|
2
|
-
from typing import Any, Optional, Union
|
|
2
|
+
from typing import Any, Optional, Union, cast
|
|
3
3
|
|
|
4
4
|
import httpx
|
|
5
5
|
|
|
@@ -50,11 +50,32 @@ def _get_kwargs(
|
|
|
50
50
|
|
|
51
51
|
def _parse_response(
|
|
52
52
|
*, client: Union[AuthenticatedClient, Client], response: httpx.Response
|
|
53
|
-
) -> Optional[Union[CopyResponse, HTTPValidationError]]:
|
|
53
|
+
) -> Optional[Union[Any, CopyResponse, HTTPValidationError]]:
|
|
54
54
|
if response.status_code == 200:
|
|
55
55
|
response_200 = CopyResponse.from_dict(response.json())
|
|
56
56
|
|
|
57
57
|
return response_200
|
|
58
|
+
if response.status_code == 202:
|
|
59
|
+
response_202 = cast(Any, None)
|
|
60
|
+
return response_202
|
|
61
|
+
if response.status_code == 400:
|
|
62
|
+
response_400 = cast(Any, None)
|
|
63
|
+
return response_400
|
|
64
|
+
if response.status_code == 403:
|
|
65
|
+
response_403 = cast(Any, None)
|
|
66
|
+
return response_403
|
|
67
|
+
if response.status_code == 408:
|
|
68
|
+
response_408 = cast(Any, None)
|
|
69
|
+
return response_408
|
|
70
|
+
if response.status_code == 429:
|
|
71
|
+
response_429 = cast(Any, None)
|
|
72
|
+
return response_429
|
|
73
|
+
if response.status_code == 500:
|
|
74
|
+
response_500 = cast(Any, None)
|
|
75
|
+
return response_500
|
|
76
|
+
if response.status_code == 503:
|
|
77
|
+
response_503 = cast(Any, None)
|
|
78
|
+
return response_503
|
|
58
79
|
if response.status_code == 422:
|
|
59
80
|
response_422 = HTTPValidationError.from_dict(response.json())
|
|
60
81
|
|
|
@@ -67,7 +88,7 @@ def _parse_response(
|
|
|
67
88
|
|
|
68
89
|
def _build_response(
|
|
69
90
|
*, client: Union[AuthenticatedClient, Client], response: httpx.Response
|
|
70
|
-
) -> Response[Union[CopyResponse, HTTPValidationError]]:
|
|
91
|
+
) -> Response[Union[Any, CopyResponse, HTTPValidationError]]:
|
|
71
92
|
return Response(
|
|
72
93
|
status_code=HTTPStatus(response.status_code),
|
|
73
94
|
content=response.content,
|
|
@@ -83,7 +104,7 @@ def sync_detailed(
|
|
|
83
104
|
body: Union["DataFrameCopyRequest", "S3CopyRequest", "URLCopyRequest"],
|
|
84
105
|
authorization: Union[None, Unset, str] = UNSET,
|
|
85
106
|
auth_token: Union[None, Unset, str] = UNSET,
|
|
86
|
-
) -> Response[Union[CopyResponse, HTTPValidationError]]:
|
|
107
|
+
) -> Response[Union[Any, CopyResponse, HTTPValidationError]]:
|
|
87
108
|
"""Copy Data to Graph
|
|
88
109
|
|
|
89
110
|
Copy data from external sources into the graph database.
|
|
@@ -105,10 +126,46 @@ def sync_detailed(
|
|
|
105
126
|
- Premium: 100GB max file size, 60 min timeout
|
|
106
127
|
|
|
107
128
|
**Copy Options:**
|
|
108
|
-
- `ignore_errors`: Skip duplicate/invalid rows (enables upsert-like behavior)
|
|
129
|
+
- `ignore_errors`: Skip duplicate/invalid rows (enables upsert-like behavior). Note: When enabled,
|
|
130
|
+
row counts may not be accurately reported
|
|
109
131
|
- `extended_timeout`: Use extended timeout for large datasets
|
|
110
132
|
- `validate_schema`: Validate source schema against target table
|
|
111
133
|
|
|
134
|
+
**Asynchronous Execution with SSE:**
|
|
135
|
+
For large data imports, this endpoint returns immediately with an operation ID
|
|
136
|
+
and SSE monitoring endpoint. Connect to the returned stream URL for real-time updates:
|
|
137
|
+
|
|
138
|
+
```javascript
|
|
139
|
+
const eventSource = new EventSource('/v1/operations/{operation_id}/stream');
|
|
140
|
+
eventSource.onmessage = (event) => {
|
|
141
|
+
const data = JSON.parse(event.data);
|
|
142
|
+
console.log('Progress:', data.message);
|
|
143
|
+
};
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
**SSE Events Emitted:**
|
|
147
|
+
- `operation_started`: Copy operation begins
|
|
148
|
+
- `operation_progress`: Progress updates during data transfer
|
|
149
|
+
- `operation_completed`: Copy successful with statistics
|
|
150
|
+
- `operation_error`: Copy failed with error details
|
|
151
|
+
|
|
152
|
+
**SSE Connection Limits:**
|
|
153
|
+
- Maximum 5 concurrent SSE connections per user
|
|
154
|
+
- Rate limited to 10 new connections per minute
|
|
155
|
+
- Automatic circuit breaker for Redis failures
|
|
156
|
+
- Graceful degradation if event system unavailable
|
|
157
|
+
|
|
158
|
+
**Error Handling:**
|
|
159
|
+
- `403 Forbidden`: Attempted copy to shared repository
|
|
160
|
+
- `408 Request Timeout`: Operation exceeded timeout limit
|
|
161
|
+
- `429 Too Many Requests`: Rate limit exceeded
|
|
162
|
+
- `503 Service Unavailable`: Circuit breaker open or service unavailable
|
|
163
|
+
- Clients should implement exponential backoff on errors
|
|
164
|
+
|
|
165
|
+
**Note:**
|
|
166
|
+
Copy operations are FREE - no credit consumption required.
|
|
167
|
+
All copy operations are performed asynchronously with progress monitoring.
|
|
168
|
+
|
|
112
169
|
Args:
|
|
113
170
|
graph_id (str): Target graph identifier (user graphs only - shared repositories not
|
|
114
171
|
allowed)
|
|
@@ -121,7 +178,7 @@ def sync_detailed(
|
|
|
121
178
|
httpx.TimeoutException: If the request takes longer than Client.timeout.
|
|
122
179
|
|
|
123
180
|
Returns:
|
|
124
|
-
Response[Union[CopyResponse, HTTPValidationError]]
|
|
181
|
+
Response[Union[Any, CopyResponse, HTTPValidationError]]
|
|
125
182
|
"""
|
|
126
183
|
|
|
127
184
|
kwargs = _get_kwargs(
|
|
@@ -145,7 +202,7 @@ def sync(
|
|
|
145
202
|
body: Union["DataFrameCopyRequest", "S3CopyRequest", "URLCopyRequest"],
|
|
146
203
|
authorization: Union[None, Unset, str] = UNSET,
|
|
147
204
|
auth_token: Union[None, Unset, str] = UNSET,
|
|
148
|
-
) -> Optional[Union[CopyResponse, HTTPValidationError]]:
|
|
205
|
+
) -> Optional[Union[Any, CopyResponse, HTTPValidationError]]:
|
|
149
206
|
"""Copy Data to Graph
|
|
150
207
|
|
|
151
208
|
Copy data from external sources into the graph database.
|
|
@@ -167,10 +224,46 @@ def sync(
|
|
|
167
224
|
- Premium: 100GB max file size, 60 min timeout
|
|
168
225
|
|
|
169
226
|
**Copy Options:**
|
|
170
|
-
- `ignore_errors`: Skip duplicate/invalid rows (enables upsert-like behavior)
|
|
227
|
+
- `ignore_errors`: Skip duplicate/invalid rows (enables upsert-like behavior). Note: When enabled,
|
|
228
|
+
row counts may not be accurately reported
|
|
171
229
|
- `extended_timeout`: Use extended timeout for large datasets
|
|
172
230
|
- `validate_schema`: Validate source schema against target table
|
|
173
231
|
|
|
232
|
+
**Asynchronous Execution with SSE:**
|
|
233
|
+
For large data imports, this endpoint returns immediately with an operation ID
|
|
234
|
+
and SSE monitoring endpoint. Connect to the returned stream URL for real-time updates:
|
|
235
|
+
|
|
236
|
+
```javascript
|
|
237
|
+
const eventSource = new EventSource('/v1/operations/{operation_id}/stream');
|
|
238
|
+
eventSource.onmessage = (event) => {
|
|
239
|
+
const data = JSON.parse(event.data);
|
|
240
|
+
console.log('Progress:', data.message);
|
|
241
|
+
};
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
**SSE Events Emitted:**
|
|
245
|
+
- `operation_started`: Copy operation begins
|
|
246
|
+
- `operation_progress`: Progress updates during data transfer
|
|
247
|
+
- `operation_completed`: Copy successful with statistics
|
|
248
|
+
- `operation_error`: Copy failed with error details
|
|
249
|
+
|
|
250
|
+
**SSE Connection Limits:**
|
|
251
|
+
- Maximum 5 concurrent SSE connections per user
|
|
252
|
+
- Rate limited to 10 new connections per minute
|
|
253
|
+
- Automatic circuit breaker for Redis failures
|
|
254
|
+
- Graceful degradation if event system unavailable
|
|
255
|
+
|
|
256
|
+
**Error Handling:**
|
|
257
|
+
- `403 Forbidden`: Attempted copy to shared repository
|
|
258
|
+
- `408 Request Timeout`: Operation exceeded timeout limit
|
|
259
|
+
- `429 Too Many Requests`: Rate limit exceeded
|
|
260
|
+
- `503 Service Unavailable`: Circuit breaker open or service unavailable
|
|
261
|
+
- Clients should implement exponential backoff on errors
|
|
262
|
+
|
|
263
|
+
**Note:**
|
|
264
|
+
Copy operations are FREE - no credit consumption required.
|
|
265
|
+
All copy operations are performed asynchronously with progress monitoring.
|
|
266
|
+
|
|
174
267
|
Args:
|
|
175
268
|
graph_id (str): Target graph identifier (user graphs only - shared repositories not
|
|
176
269
|
allowed)
|
|
@@ -183,7 +276,7 @@ def sync(
|
|
|
183
276
|
httpx.TimeoutException: If the request takes longer than Client.timeout.
|
|
184
277
|
|
|
185
278
|
Returns:
|
|
186
|
-
Union[CopyResponse, HTTPValidationError]
|
|
279
|
+
Union[Any, CopyResponse, HTTPValidationError]
|
|
187
280
|
"""
|
|
188
281
|
|
|
189
282
|
return sync_detailed(
|
|
@@ -202,7 +295,7 @@ async def asyncio_detailed(
|
|
|
202
295
|
body: Union["DataFrameCopyRequest", "S3CopyRequest", "URLCopyRequest"],
|
|
203
296
|
authorization: Union[None, Unset, str] = UNSET,
|
|
204
297
|
auth_token: Union[None, Unset, str] = UNSET,
|
|
205
|
-
) -> Response[Union[CopyResponse, HTTPValidationError]]:
|
|
298
|
+
) -> Response[Union[Any, CopyResponse, HTTPValidationError]]:
|
|
206
299
|
"""Copy Data to Graph
|
|
207
300
|
|
|
208
301
|
Copy data from external sources into the graph database.
|
|
@@ -224,10 +317,46 @@ async def asyncio_detailed(
|
|
|
224
317
|
- Premium: 100GB max file size, 60 min timeout
|
|
225
318
|
|
|
226
319
|
**Copy Options:**
|
|
227
|
-
- `ignore_errors`: Skip duplicate/invalid rows (enables upsert-like behavior)
|
|
320
|
+
- `ignore_errors`: Skip duplicate/invalid rows (enables upsert-like behavior). Note: When enabled,
|
|
321
|
+
row counts may not be accurately reported
|
|
228
322
|
- `extended_timeout`: Use extended timeout for large datasets
|
|
229
323
|
- `validate_schema`: Validate source schema against target table
|
|
230
324
|
|
|
325
|
+
**Asynchronous Execution with SSE:**
|
|
326
|
+
For large data imports, this endpoint returns immediately with an operation ID
|
|
327
|
+
and SSE monitoring endpoint. Connect to the returned stream URL for real-time updates:
|
|
328
|
+
|
|
329
|
+
```javascript
|
|
330
|
+
const eventSource = new EventSource('/v1/operations/{operation_id}/stream');
|
|
331
|
+
eventSource.onmessage = (event) => {
|
|
332
|
+
const data = JSON.parse(event.data);
|
|
333
|
+
console.log('Progress:', data.message);
|
|
334
|
+
};
|
|
335
|
+
```
|
|
336
|
+
|
|
337
|
+
**SSE Events Emitted:**
|
|
338
|
+
- `operation_started`: Copy operation begins
|
|
339
|
+
- `operation_progress`: Progress updates during data transfer
|
|
340
|
+
- `operation_completed`: Copy successful with statistics
|
|
341
|
+
- `operation_error`: Copy failed with error details
|
|
342
|
+
|
|
343
|
+
**SSE Connection Limits:**
|
|
344
|
+
- Maximum 5 concurrent SSE connections per user
|
|
345
|
+
- Rate limited to 10 new connections per minute
|
|
346
|
+
- Automatic circuit breaker for Redis failures
|
|
347
|
+
- Graceful degradation if event system unavailable
|
|
348
|
+
|
|
349
|
+
**Error Handling:**
|
|
350
|
+
- `403 Forbidden`: Attempted copy to shared repository
|
|
351
|
+
- `408 Request Timeout`: Operation exceeded timeout limit
|
|
352
|
+
- `429 Too Many Requests`: Rate limit exceeded
|
|
353
|
+
- `503 Service Unavailable`: Circuit breaker open or service unavailable
|
|
354
|
+
- Clients should implement exponential backoff on errors
|
|
355
|
+
|
|
356
|
+
**Note:**
|
|
357
|
+
Copy operations are FREE - no credit consumption required.
|
|
358
|
+
All copy operations are performed asynchronously with progress monitoring.
|
|
359
|
+
|
|
231
360
|
Args:
|
|
232
361
|
graph_id (str): Target graph identifier (user graphs only - shared repositories not
|
|
233
362
|
allowed)
|
|
@@ -240,7 +369,7 @@ async def asyncio_detailed(
|
|
|
240
369
|
httpx.TimeoutException: If the request takes longer than Client.timeout.
|
|
241
370
|
|
|
242
371
|
Returns:
|
|
243
|
-
Response[Union[CopyResponse, HTTPValidationError]]
|
|
372
|
+
Response[Union[Any, CopyResponse, HTTPValidationError]]
|
|
244
373
|
"""
|
|
245
374
|
|
|
246
375
|
kwargs = _get_kwargs(
|
|
@@ -262,7 +391,7 @@ async def asyncio(
|
|
|
262
391
|
body: Union["DataFrameCopyRequest", "S3CopyRequest", "URLCopyRequest"],
|
|
263
392
|
authorization: Union[None, Unset, str] = UNSET,
|
|
264
393
|
auth_token: Union[None, Unset, str] = UNSET,
|
|
265
|
-
) -> Optional[Union[CopyResponse, HTTPValidationError]]:
|
|
394
|
+
) -> Optional[Union[Any, CopyResponse, HTTPValidationError]]:
|
|
266
395
|
"""Copy Data to Graph
|
|
267
396
|
|
|
268
397
|
Copy data from external sources into the graph database.
|
|
@@ -284,10 +413,46 @@ async def asyncio(
|
|
|
284
413
|
- Premium: 100GB max file size, 60 min timeout
|
|
285
414
|
|
|
286
415
|
**Copy Options:**
|
|
287
|
-
- `ignore_errors`: Skip duplicate/invalid rows (enables upsert-like behavior)
|
|
416
|
+
- `ignore_errors`: Skip duplicate/invalid rows (enables upsert-like behavior). Note: When enabled,
|
|
417
|
+
row counts may not be accurately reported
|
|
288
418
|
- `extended_timeout`: Use extended timeout for large datasets
|
|
289
419
|
- `validate_schema`: Validate source schema against target table
|
|
290
420
|
|
|
421
|
+
**Asynchronous Execution with SSE:**
|
|
422
|
+
For large data imports, this endpoint returns immediately with an operation ID
|
|
423
|
+
and SSE monitoring endpoint. Connect to the returned stream URL for real-time updates:
|
|
424
|
+
|
|
425
|
+
```javascript
|
|
426
|
+
const eventSource = new EventSource('/v1/operations/{operation_id}/stream');
|
|
427
|
+
eventSource.onmessage = (event) => {
|
|
428
|
+
const data = JSON.parse(event.data);
|
|
429
|
+
console.log('Progress:', data.message);
|
|
430
|
+
};
|
|
431
|
+
```
|
|
432
|
+
|
|
433
|
+
**SSE Events Emitted:**
|
|
434
|
+
- `operation_started`: Copy operation begins
|
|
435
|
+
- `operation_progress`: Progress updates during data transfer
|
|
436
|
+
- `operation_completed`: Copy successful with statistics
|
|
437
|
+
- `operation_error`: Copy failed with error details
|
|
438
|
+
|
|
439
|
+
**SSE Connection Limits:**
|
|
440
|
+
- Maximum 5 concurrent SSE connections per user
|
|
441
|
+
- Rate limited to 10 new connections per minute
|
|
442
|
+
- Automatic circuit breaker for Redis failures
|
|
443
|
+
- Graceful degradation if event system unavailable
|
|
444
|
+
|
|
445
|
+
**Error Handling:**
|
|
446
|
+
- `403 Forbidden`: Attempted copy to shared repository
|
|
447
|
+
- `408 Request Timeout`: Operation exceeded timeout limit
|
|
448
|
+
- `429 Too Many Requests`: Rate limit exceeded
|
|
449
|
+
- `503 Service Unavailable`: Circuit breaker open or service unavailable
|
|
450
|
+
- Clients should implement exponential backoff on errors
|
|
451
|
+
|
|
452
|
+
**Note:**
|
|
453
|
+
Copy operations are FREE - no credit consumption required.
|
|
454
|
+
All copy operations are performed asynchronously with progress monitoring.
|
|
455
|
+
|
|
291
456
|
Args:
|
|
292
457
|
graph_id (str): Target graph identifier (user graphs only - shared repositories not
|
|
293
458
|
allowed)
|
|
@@ -300,7 +465,7 @@ async def asyncio(
|
|
|
300
465
|
httpx.TimeoutException: If the request takes longer than Client.timeout.
|
|
301
466
|
|
|
302
467
|
Returns:
|
|
303
|
-
Union[CopyResponse, HTTPValidationError]
|
|
468
|
+
Union[Any, CopyResponse, HTTPValidationError]
|
|
304
469
|
"""
|
|
305
470
|
|
|
306
471
|
return (
|
{robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/extensions/README.md
RENAMED
|
@@ -11,6 +11,7 @@ The RoboSystems Python Client Extensions provide enhanced functionality for the
|
|
|
11
11
|
|
|
12
12
|
- **Server-Sent Events (SSE)** streaming with automatic reconnection
|
|
13
13
|
- **Smart Query Execution** with automatic strategy selection
|
|
14
|
+
- **Data Copy Operations** with S3 import and real-time progress tracking
|
|
14
15
|
- **Operation Monitoring** for long-running operations
|
|
15
16
|
- **Connection Pooling** and intelligent resource management
|
|
16
17
|
- **Result Processing** and format conversion utilities
|
|
@@ -84,6 +85,62 @@ async def main():
|
|
|
84
85
|
asyncio.run(main())
|
|
85
86
|
```
|
|
86
87
|
|
|
88
|
+
### Data Copy Operations
|
|
89
|
+
|
|
90
|
+
```python
|
|
91
|
+
from robosystems_client.extensions import CopyClient, CopyOptions
|
|
92
|
+
from robosystems_client.models.s3_copy_request import S3CopyRequest
|
|
93
|
+
from robosystems_client.models.s3_copy_request_file_format import S3CopyRequestFileFormat
|
|
94
|
+
|
|
95
|
+
# Initialize copy client
|
|
96
|
+
copy_client = CopyClient({
|
|
97
|
+
"base_url": "https://api.robosystems.ai",
|
|
98
|
+
"api_key": "your-api-key",
|
|
99
|
+
})
|
|
100
|
+
|
|
101
|
+
# Create S3 copy request
|
|
102
|
+
request = S3CopyRequest(
|
|
103
|
+
table_name="companies",
|
|
104
|
+
s3_path="s3://my-bucket/data/companies.csv",
|
|
105
|
+
s3_access_key_id="AWS_ACCESS_KEY",
|
|
106
|
+
s3_secret_access_key="AWS_SECRET_KEY",
|
|
107
|
+
s3_region="us-east-1",
|
|
108
|
+
file_format=S3CopyRequestFileFormat.CSV,
|
|
109
|
+
ignore_errors=False, # Stop on first error
|
|
110
|
+
)
|
|
111
|
+
|
|
112
|
+
# Set up progress callbacks
|
|
113
|
+
def on_progress(message, percent):
|
|
114
|
+
if percent:
|
|
115
|
+
print(f"Progress: {message} ({percent}%)")
|
|
116
|
+
else:
|
|
117
|
+
print(f"Progress: {message}")
|
|
118
|
+
|
|
119
|
+
def on_warning(warning):
|
|
120
|
+
print(f"Warning: {warning}")
|
|
121
|
+
|
|
122
|
+
options = CopyOptions(
|
|
123
|
+
on_progress=on_progress,
|
|
124
|
+
on_warning=on_warning,
|
|
125
|
+
)
|
|
126
|
+
|
|
127
|
+
# Execute copy with progress monitoring
|
|
128
|
+
result = copy_client.copy_from_s3("your_graph_id", request, options)
|
|
129
|
+
|
|
130
|
+
# Check results
|
|
131
|
+
if result.status == "completed":
|
|
132
|
+
print(f"✅ Successfully imported {result.rows_imported:,} rows")
|
|
133
|
+
stats = copy_client.calculate_statistics(result)
|
|
134
|
+
if stats:
|
|
135
|
+
print(f"Throughput: {stats.throughput:.2f} rows/second")
|
|
136
|
+
elif result.status == "partial":
|
|
137
|
+
print(f"⚠️ Imported {result.rows_imported:,} rows, skipped {result.rows_skipped:,}")
|
|
138
|
+
else:
|
|
139
|
+
print(f"❌ Copy failed: {result.error}")
|
|
140
|
+
|
|
141
|
+
copy_client.close()
|
|
142
|
+
```
|
|
143
|
+
|
|
87
144
|
## 🔐 Authentication
|
|
88
145
|
|
|
89
146
|
### API Key Authentication (Recommended)
|
|
@@ -141,6 +198,79 @@ dev_ext = create_extensions(
|
|
|
141
198
|
|
|
142
199
|
## 🛠 Advanced Features
|
|
143
200
|
|
|
201
|
+
### Copy Operations with Advanced Features
|
|
202
|
+
|
|
203
|
+
```python
|
|
204
|
+
from robosystems_client.extensions import CopyClient, CopySourceType
|
|
205
|
+
|
|
206
|
+
# Batch copy multiple tables
|
|
207
|
+
copy_client = CopyClient({
|
|
208
|
+
"base_url": "https://api.robosystems.ai",
|
|
209
|
+
"api_key": "your-api-key",
|
|
210
|
+
})
|
|
211
|
+
|
|
212
|
+
copies = [
|
|
213
|
+
{
|
|
214
|
+
"request": S3CopyRequest(
|
|
215
|
+
table_name="companies",
|
|
216
|
+
s3_path="s3://bucket/companies.csv",
|
|
217
|
+
s3_access_key_id="KEY",
|
|
218
|
+
s3_secret_access_key="SECRET",
|
|
219
|
+
file_format=S3CopyRequestFileFormat.CSV,
|
|
220
|
+
),
|
|
221
|
+
},
|
|
222
|
+
{
|
|
223
|
+
"request": S3CopyRequest(
|
|
224
|
+
table_name="transactions",
|
|
225
|
+
s3_path="s3://bucket/transactions.parquet",
|
|
226
|
+
s3_access_key_id="KEY",
|
|
227
|
+
s3_secret_access_key="SECRET",
|
|
228
|
+
file_format=S3CopyRequestFileFormat.PARQUET,
|
|
229
|
+
ignore_errors=True, # Continue on errors
|
|
230
|
+
),
|
|
231
|
+
},
|
|
232
|
+
]
|
|
233
|
+
|
|
234
|
+
# Execute batch copy
|
|
235
|
+
results = copy_client.batch_copy_from_s3("graph_id", copies)
|
|
236
|
+
|
|
237
|
+
for i, result in enumerate(results):
|
|
238
|
+
table_name = copies[i]["request"].table_name
|
|
239
|
+
print(f"{table_name}: {result.status}")
|
|
240
|
+
if result.rows_imported:
|
|
241
|
+
print(f" Imported: {result.rows_imported:,} rows")
|
|
242
|
+
|
|
243
|
+
# Copy with retry logic for resilient operations
|
|
244
|
+
result = copy_client.copy_with_retry(
|
|
245
|
+
graph_id="graph_id",
|
|
246
|
+
request=S3CopyRequest(
|
|
247
|
+
table_name="large_dataset",
|
|
248
|
+
s3_path="s3://bucket/large-dataset.csv",
|
|
249
|
+
s3_access_key_id="KEY",
|
|
250
|
+
s3_secret_access_key="SECRET",
|
|
251
|
+
max_file_size_gb=50,
|
|
252
|
+
extended_timeout=True,
|
|
253
|
+
),
|
|
254
|
+
source_type=CopySourceType.S3,
|
|
255
|
+
max_retries=3,
|
|
256
|
+
options=CopyOptions(
|
|
257
|
+
on_progress=lambda msg, _: print(msg)
|
|
258
|
+
),
|
|
259
|
+
)
|
|
260
|
+
|
|
261
|
+
# Monitor multiple concurrent copy operations
|
|
262
|
+
operation_ids = ["op-123", "op-456", "op-789"]
|
|
263
|
+
results = copy_client.monitor_multiple_copies(operation_ids, options)
|
|
264
|
+
|
|
265
|
+
for op_id, result in results.items():
|
|
266
|
+
print(f"Operation {op_id}: {result.status}")
|
|
267
|
+
if result.status == "completed":
|
|
268
|
+
stats = copy_client.calculate_statistics(result)
|
|
269
|
+
print(f" Throughput: {stats.throughput:.2f} rows/sec")
|
|
270
|
+
|
|
271
|
+
copy_client.close()
|
|
272
|
+
```
|
|
273
|
+
|
|
144
274
|
### Query Builder
|
|
145
275
|
|
|
146
276
|
Build complex Cypher queries programmatically:
|
|
@@ -273,6 +403,87 @@ client.close()
|
|
|
273
403
|
|
|
274
404
|
## 📊 Examples
|
|
275
405
|
|
|
406
|
+
### Data Import with Real-Time Monitoring
|
|
407
|
+
|
|
408
|
+
```python
|
|
409
|
+
from robosystems_client.extensions import CopyClient, CopyOptions
|
|
410
|
+
import time
|
|
411
|
+
|
|
412
|
+
def import_financial_data():
|
|
413
|
+
"""Import financial data with comprehensive monitoring"""
|
|
414
|
+
|
|
415
|
+
copy_client = CopyClient({
|
|
416
|
+
"base_url": "https://api.robosystems.ai",
|
|
417
|
+
"api_key": "your-api-key",
|
|
418
|
+
})
|
|
419
|
+
|
|
420
|
+
# Track progress history
|
|
421
|
+
progress_history = []
|
|
422
|
+
warnings_count = 0
|
|
423
|
+
|
|
424
|
+
def on_progress(message, percent):
|
|
425
|
+
timestamp = time.strftime("%H:%M:%S")
|
|
426
|
+
progress_history.append({
|
|
427
|
+
"time": timestamp,
|
|
428
|
+
"message": message,
|
|
429
|
+
"percent": percent,
|
|
430
|
+
})
|
|
431
|
+
print(f"[{timestamp}] {message}" + (f" ({percent}%)" if percent else ""))
|
|
432
|
+
|
|
433
|
+
def on_warning(warning):
|
|
434
|
+
nonlocal warnings_count
|
|
435
|
+
warnings_count += 1
|
|
436
|
+
print(f"⚠️ Warning #{warnings_count}: {warning}")
|
|
437
|
+
|
|
438
|
+
def on_queue_update(position, wait_time):
|
|
439
|
+
print(f"📊 Queue position: {position} (ETA: {wait_time}s)")
|
|
440
|
+
|
|
441
|
+
# Configure copy with all callbacks
|
|
442
|
+
options = CopyOptions(
|
|
443
|
+
on_progress=on_progress,
|
|
444
|
+
on_warning=on_warning,
|
|
445
|
+
on_queue_update=on_queue_update,
|
|
446
|
+
timeout=1800000, # 30 minutes
|
|
447
|
+
)
|
|
448
|
+
|
|
449
|
+
# Execute copy operation
|
|
450
|
+
start_time = time.time()
|
|
451
|
+
|
|
452
|
+
result = copy_client.copy_s3(
|
|
453
|
+
graph_id="financial_graph",
|
|
454
|
+
table_name="quarterly_reports",
|
|
455
|
+
s3_path="s3://financial-data/reports-2024-q1.parquet",
|
|
456
|
+
access_key_id="AWS_KEY",
|
|
457
|
+
secret_access_key="AWS_SECRET",
|
|
458
|
+
file_format="parquet",
|
|
459
|
+
ignore_errors=True, # Continue on validation errors
|
|
460
|
+
)
|
|
461
|
+
|
|
462
|
+
# Print summary
|
|
463
|
+
elapsed = time.time() - start_time
|
|
464
|
+
|
|
465
|
+
print("\n" + "="*50)
|
|
466
|
+
print("📈 IMPORT SUMMARY")
|
|
467
|
+
print("="*50)
|
|
468
|
+
print(f"Status: {result.status.upper()}")
|
|
469
|
+
print(f"Rows Imported: {result.rows_imported or 0:,}")
|
|
470
|
+
print(f"Rows Skipped: {result.rows_skipped or 0:,}")
|
|
471
|
+
print(f"Warnings: {warnings_count}")
|
|
472
|
+
print(f"Execution Time: {elapsed:.2f} seconds")
|
|
473
|
+
|
|
474
|
+
if result.status == "completed":
|
|
475
|
+
stats = copy_client.calculate_statistics(result)
|
|
476
|
+
if stats:
|
|
477
|
+
print(f"Throughput: {stats.throughput:.2f} rows/second")
|
|
478
|
+
print(f"Data Processed: {stats.bytes_processed / (1024*1024):.2f} MB")
|
|
479
|
+
|
|
480
|
+
copy_client.close()
|
|
481
|
+
return result
|
|
482
|
+
|
|
483
|
+
# Run the import
|
|
484
|
+
result = import_financial_data()
|
|
485
|
+
```
|
|
486
|
+
|
|
276
487
|
### Financial Data Analysis
|
|
277
488
|
|
|
278
489
|
```python
|
{robosystems_client-0.1.13 → robosystems_client-0.1.14}/robosystems_client/extensions/__init__.py
RENAMED
|
@@ -20,6 +20,14 @@ from .operation_client import (
|
|
|
20
20
|
OperationProgress,
|
|
21
21
|
OperationResult,
|
|
22
22
|
)
|
|
23
|
+
from .copy_client import (
|
|
24
|
+
CopyClient,
|
|
25
|
+
AsyncCopyClient,
|
|
26
|
+
CopySourceType,
|
|
27
|
+
CopyOptions,
|
|
28
|
+
CopyResult,
|
|
29
|
+
CopyStatistics,
|
|
30
|
+
)
|
|
23
31
|
from .extensions import (
|
|
24
32
|
RoboSystemsExtensions,
|
|
25
33
|
RoboSystemsExtensionConfig,
|
|
@@ -68,6 +76,13 @@ __all__ = [
|
|
|
68
76
|
"OperationStatus",
|
|
69
77
|
"OperationProgress",
|
|
70
78
|
"OperationResult",
|
|
79
|
+
# Copy Client
|
|
80
|
+
"CopyClient",
|
|
81
|
+
"AsyncCopyClient",
|
|
82
|
+
"CopySourceType",
|
|
83
|
+
"CopyOptions",
|
|
84
|
+
"CopyResult",
|
|
85
|
+
"CopyStatistics",
|
|
71
86
|
# Utilities
|
|
72
87
|
"QueryBuilder",
|
|
73
88
|
"ResultProcessor",
|
|
@@ -106,3 +121,17 @@ def execute_query(graph_id: str, query: str, parameters=None):
|
|
|
106
121
|
def stream_query(graph_id: str, query: str, parameters=None, chunk_size=None):
|
|
107
122
|
"""Stream a query using the default extensions instance"""
|
|
108
123
|
return extensions.query.stream_query(graph_id, query, parameters, chunk_size)
|
|
124
|
+
|
|
125
|
+
|
|
126
|
+
def copy_from_s3(
|
|
127
|
+
graph_id: str,
|
|
128
|
+
table_name: str,
|
|
129
|
+
s3_path: str,
|
|
130
|
+
access_key_id: str,
|
|
131
|
+
secret_access_key: str,
|
|
132
|
+
**kwargs,
|
|
133
|
+
):
|
|
134
|
+
"""Copy data from S3 using the default extensions instance"""
|
|
135
|
+
return extensions.copy_from_s3(
|
|
136
|
+
graph_id, table_name, s3_path, access_key_id, secret_access_key, **kwargs
|
|
137
|
+
)
|