studyfetch-sdk 0.1.0a6__tar.gz → 0.1.0a8__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.
- studyfetch_sdk-0.1.0a8/.release-please-manifest.json +3 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/CHANGELOG.md +16 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/PKG-INFO +11 -27
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/README.md +10 -26
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/api.md +0 -12
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/pyproject.toml +1 -1
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/_version.py +1 -1
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/resources/v1/__init__.py +0 -14
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/resources/v1/v1.py +0 -32
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/tests/test_client.py +20 -32
- studyfetch_sdk-0.1.0a6/.release-please-manifest.json +0 -3
- studyfetch_sdk-0.1.0a6/src/studyfetch_sdk/resources/v1/auth/__init__.py +0 -33
- studyfetch_sdk-0.1.0a6/src/studyfetch_sdk/resources/v1/auth/auth.py +0 -168
- studyfetch_sdk-0.1.0a6/src/studyfetch_sdk/resources/v1/auth/number_2fa.py +0 -164
- studyfetch_sdk-0.1.0a6/src/studyfetch_sdk/types/v1/auth/__init__.py +0 -5
- studyfetch_sdk-0.1.0a6/src/studyfetch_sdk/types/v1/auth/number_2fa_send_code_params.py +0 -12
- studyfetch_sdk-0.1.0a6/tests/api_resources/v1/auth/test_number_2fa.py +0 -90
- studyfetch_sdk-0.1.0a6/tests/api_resources/v1/test_auth.py +0 -78
- studyfetch_sdk-0.1.0a6/tests/api_resources/v1/upload/__init__.py +0 -1
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/.gitignore +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/CONTRIBUTING.md +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/LICENSE +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/SECURITY.md +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/bin/check-release-environment +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/bin/publish-pypi +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/examples/.keep +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/mypy.ini +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/noxfile.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/release-please-config.json +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/requirements-dev.lock +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/requirements.lock +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/__init__.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/_base_client.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/_client.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/_compat.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/_constants.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/_exceptions.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/_files.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/_models.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/_qs.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/_resource.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/_response.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/_streaming.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/_types.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/_utils/__init__.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/_utils/_logs.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/_utils/_proxy.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/_utils/_reflection.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/_utils/_resources_proxy.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/_utils/_streams.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/_utils/_sync.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/_utils/_transform.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/_utils/_typing.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/_utils/_utils.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/lib/.keep +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/py.typed +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/resources/__init__.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/resources/v1/audio_recaps/__init__.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/resources/v1/audio_recaps/audio_recaps.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/resources/v1/audio_recaps/sections.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/resources/v1/chat/__init__.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/resources/v1/chat/chat.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/resources/v1/chat/sessions.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/resources/v1/chat/test.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/resources/v1/components.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/resources/v1/embed/__init__.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/resources/v1/embed/component.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/resources/v1/embed/embed.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/resources/v1/explainers.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/resources/v1/flashcards.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/resources/v1/folders.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/resources/v1/materials/__init__.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/resources/v1/materials/bulk.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/resources/v1/materials/materials.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/resources/v1/materials/test.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/resources/v1/materials/upload.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/resources/v1/scenarios/__init__.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/resources/v1/scenarios/component.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/resources/v1/scenarios/scenarios.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/resources/v1/scenarios/sessions.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/resources/v1/scenarios/submissions/__init__.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/resources/v1/scenarios/submissions/submissions.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/resources/v1/scenarios/submissions/user.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/resources/v1/tests/__init__.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/resources/v1/tests/component.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/resources/v1/tests/tests.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/resources/v1/upload/__init__.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/resources/v1/upload/component.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/resources/v1/upload/upload.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/resources/v1/usage.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/types/__init__.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/types/v1/__init__.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/types/v1/audio_recaps/__init__.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/types/v1/chat/__init__.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/types/v1/chat/session_retrieve_params.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/types/v1/chat_get_session_params.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/types/v1/chat_send_message_params.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/types/v1/chat_stream_params.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/types/v1/component.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/types/v1/component_create_params.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/types/v1/component_generate_embed_params.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/types/v1/component_generate_embed_response.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/types/v1/component_list_params.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/types/v1/component_list_response.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/types/v1/component_update_params.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/types/v1/embed/__init__.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/types/v1/embed/component_interact_params.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/types/v1/embed/component_retrieve_params.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/types/v1/embed_get_theme_params.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/types/v1/embed_verify_params.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/types/v1/explainer_create_params.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/types/v1/explainer_handle_webhook_params.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/types/v1/flashcard_batch_process_params.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/types/v1/flashcard_batch_process_response.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/types/v1/flashcard_get_algorithm_response.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/types/v1/flashcard_get_all_params.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/types/v1/flashcard_get_due_params.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/types/v1/flashcard_get_stats_params.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/types/v1/flashcard_get_types_response.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/types/v1/flashcard_rate_params.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/types/v1/folder_create_params.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/types/v1/folder_list_params.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/types/v1/folder_update_params.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/types/v1/material.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/types/v1/material_create_params.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/types/v1/material_get_download_url_params.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/types/v1/material_list_params.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/types/v1/material_list_response.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/types/v1/materials/__init__.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/types/v1/materials/upload_upload_file_params.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/types/v1/materials/upload_upload_from_url_params.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/types/v1/scenario_create_params.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/types/v1/scenario_submit_answer_params.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/types/v1/scenario_update_params.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/types/v1/scenarios/__init__.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/types/v1/scenarios/component_update_params.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/types/v1/scenarios/submissions/__init__.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/types/v1/test_create_params.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/types/v1/test_retake_params.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/types/v1/test_submit_answer_params.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/types/v1/test_submit_params.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/types/v1/tests/__init__.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/types/v1/upload/__init__.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/types/v1/usage_get_stats_params.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/types/v1/usage_get_summary_params.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/types/v1/usage_list_events_params.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/tests/__init__.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/tests/api_resources/__init__.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/tests/api_resources/v1/__init__.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/tests/api_resources/v1/audio_recaps/__init__.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/tests/api_resources/v1/audio_recaps/test_sections.py +0 -0
- {studyfetch_sdk-0.1.0a6/tests/api_resources/v1/auth → studyfetch_sdk-0.1.0a8/tests/api_resources/v1/chat}/__init__.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/tests/api_resources/v1/chat/test_sessions.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/tests/api_resources/v1/chat/test_test.py +0 -0
- {studyfetch_sdk-0.1.0a6/tests/api_resources/v1/chat → studyfetch_sdk-0.1.0a8/tests/api_resources/v1/embed}/__init__.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/tests/api_resources/v1/embed/test_component.py +0 -0
- {studyfetch_sdk-0.1.0a6/tests/api_resources/v1/embed → studyfetch_sdk-0.1.0a8/tests/api_resources/v1/materials}/__init__.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/tests/api_resources/v1/materials/test_bulk.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/tests/api_resources/v1/materials/test_test.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/tests/api_resources/v1/materials/test_upload.py +0 -0
- {studyfetch_sdk-0.1.0a6/tests/api_resources/v1/materials → studyfetch_sdk-0.1.0a8/tests/api_resources/v1/scenarios}/__init__.py +0 -0
- {studyfetch_sdk-0.1.0a6/tests/api_resources/v1/scenarios → studyfetch_sdk-0.1.0a8/tests/api_resources/v1/scenarios/submissions}/__init__.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/tests/api_resources/v1/scenarios/submissions/test_user.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/tests/api_resources/v1/scenarios/test_component.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/tests/api_resources/v1/scenarios/test_sessions.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/tests/api_resources/v1/test_audio_recaps.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/tests/api_resources/v1/test_chat.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/tests/api_resources/v1/test_components.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/tests/api_resources/v1/test_embed.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/tests/api_resources/v1/test_explainers.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/tests/api_resources/v1/test_flashcards.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/tests/api_resources/v1/test_folders.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/tests/api_resources/v1/test_materials.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/tests/api_resources/v1/test_scenarios.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/tests/api_resources/v1/test_tests.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/tests/api_resources/v1/test_usage.py +0 -0
- {studyfetch_sdk-0.1.0a6/tests/api_resources/v1/scenarios/submissions → studyfetch_sdk-0.1.0a8/tests/api_resources/v1/tests}/__init__.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/tests/api_resources/v1/tests/test_component.py +0 -0
- {studyfetch_sdk-0.1.0a6/tests/api_resources/v1/tests → studyfetch_sdk-0.1.0a8/tests/api_resources/v1/upload}/__init__.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/tests/api_resources/v1/upload/test_component.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/tests/conftest.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/tests/sample_file.txt +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/tests/test_deepcopy.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/tests/test_extract_files.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/tests/test_files.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/tests/test_models.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/tests/test_qs.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/tests/test_required_args.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/tests/test_response.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/tests/test_streaming.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/tests/test_transform.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/tests/test_utils/test_proxy.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/tests/test_utils/test_typing.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/tests/utils.py +0 -0
@@ -1,5 +1,21 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
## 0.1.0-alpha.8 (2025-07-20)
|
4
|
+
|
5
|
+
Full Changelog: [v0.1.0-alpha.7...v0.1.0-alpha.8](https://github.com/GoStudyFetchGo/studyfetch-sdk-python/compare/v0.1.0-alpha.7...v0.1.0-alpha.8)
|
6
|
+
|
7
|
+
### Features
|
8
|
+
|
9
|
+
* **api:** manual updates ([6331341](https://github.com/GoStudyFetchGo/studyfetch-sdk-python/commit/63313410e46079f81432e5e9a882961897d73774))
|
10
|
+
|
11
|
+
## 0.1.0-alpha.7 (2025-07-20)
|
12
|
+
|
13
|
+
Full Changelog: [v0.1.0-alpha.6...v0.1.0-alpha.7](https://github.com/GoStudyFetchGo/studyfetch-sdk-python/compare/v0.1.0-alpha.6...v0.1.0-alpha.7)
|
14
|
+
|
15
|
+
### Features
|
16
|
+
|
17
|
+
* **api:** api update ([013ffcb](https://github.com/GoStudyFetchGo/studyfetch-sdk-python/commit/013ffcb9a7d57de0a24a3807fe8b291365c7d3ae))
|
18
|
+
|
3
19
|
## 0.1.0-alpha.6 (2025-07-20)
|
4
20
|
|
5
21
|
Full Changelog: [v0.1.0-alpha.5...v0.1.0-alpha.6](https://github.com/GoStudyFetchGo/studyfetch-sdk-python/compare/v0.1.0-alpha.5...v0.1.0-alpha.6)
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.3
|
2
2
|
Name: studyfetch_sdk
|
3
|
-
Version: 0.1.
|
3
|
+
Version: 0.1.0a8
|
4
4
|
Summary: The official Python library for the studyfetch-sdk API
|
5
5
|
Project-URL: Homepage, https://github.com/GoStudyFetchGo/studyfetch-sdk-python
|
6
6
|
Project-URL: Repository, https://github.com/GoStudyFetchGo/studyfetch-sdk-python
|
@@ -67,9 +67,7 @@ client = StudyfetchSDK(
|
|
67
67
|
api_key=os.environ.get("STUDYFETCH_SDK_API_KEY"), # This is the default and can be omitted
|
68
68
|
)
|
69
69
|
|
70
|
-
client.v1.
|
71
|
-
email="user@example.com",
|
72
|
-
)
|
70
|
+
materials = client.v1.materials.list()
|
73
71
|
```
|
74
72
|
|
75
73
|
While you can provide an `api_key` keyword argument,
|
@@ -92,9 +90,7 @@ client = AsyncStudyfetchSDK(
|
|
92
90
|
|
93
91
|
|
94
92
|
async def main() -> None:
|
95
|
-
await client.v1.
|
96
|
-
email="user@example.com",
|
97
|
-
)
|
93
|
+
materials = await client.v1.materials.list()
|
98
94
|
|
99
95
|
|
100
96
|
asyncio.run(main())
|
@@ -126,9 +122,7 @@ async def main() -> None:
|
|
126
122
|
api_key="My API Key",
|
127
123
|
http_client=DefaultAioHttpClient(),
|
128
124
|
) as client:
|
129
|
-
await client.v1.
|
130
|
-
email="user@example.com",
|
131
|
-
)
|
125
|
+
materials = await client.v1.materials.list()
|
132
126
|
|
133
127
|
|
134
128
|
asyncio.run(main())
|
@@ -193,9 +187,7 @@ from studyfetch_sdk import StudyfetchSDK
|
|
193
187
|
client = StudyfetchSDK()
|
194
188
|
|
195
189
|
try:
|
196
|
-
client.v1.
|
197
|
-
email="user@example.com",
|
198
|
-
)
|
190
|
+
client.v1.materials.list()
|
199
191
|
except studyfetch_sdk.APIConnectionError as e:
|
200
192
|
print("The server could not be reached")
|
201
193
|
print(e.__cause__) # an underlying Exception, likely raised within httpx.
|
@@ -238,9 +230,7 @@ client = StudyfetchSDK(
|
|
238
230
|
)
|
239
231
|
|
240
232
|
# Or, configure per-request:
|
241
|
-
client.with_options(max_retries=5).v1.
|
242
|
-
email="user@example.com",
|
243
|
-
)
|
233
|
+
client.with_options(max_retries=5).v1.materials.list()
|
244
234
|
```
|
245
235
|
|
246
236
|
### Timeouts
|
@@ -263,9 +253,7 @@ client = StudyfetchSDK(
|
|
263
253
|
)
|
264
254
|
|
265
255
|
# Override per-request:
|
266
|
-
client.with_options(timeout=5.0).v1.
|
267
|
-
email="user@example.com",
|
268
|
-
)
|
256
|
+
client.with_options(timeout=5.0).v1.materials.list()
|
269
257
|
```
|
270
258
|
|
271
259
|
On timeout, an `APITimeoutError` is thrown.
|
@@ -306,13 +294,11 @@ The "raw" Response object can be accessed by prefixing `.with_raw_response.` to
|
|
306
294
|
from studyfetch_sdk import StudyfetchSDK
|
307
295
|
|
308
296
|
client = StudyfetchSDK()
|
309
|
-
response = client.v1.
|
310
|
-
email="user@example.com",
|
311
|
-
)
|
297
|
+
response = client.v1.materials.with_raw_response.list()
|
312
298
|
print(response.headers.get('X-My-Header'))
|
313
299
|
|
314
|
-
|
315
|
-
print(
|
300
|
+
material = response.parse() # get the object that `v1.materials.list()` would have returned
|
301
|
+
print(material)
|
316
302
|
```
|
317
303
|
|
318
304
|
These methods return an [`APIResponse`](https://github.com/GoStudyFetchGo/studyfetch-sdk-python/tree/main/src/studyfetch_sdk/_response.py) object.
|
@@ -326,9 +312,7 @@ The above interface eagerly reads the full response body when you make the reque
|
|
326
312
|
To stream the response body, use `.with_streaming_response` instead, which requires a context manager and only reads the response body once you call `.read()`, `.text()`, `.json()`, `.iter_bytes()`, `.iter_text()`, `.iter_lines()` or `.parse()`. In the async client, these are async methods.
|
327
313
|
|
328
314
|
```python
|
329
|
-
with client.v1.
|
330
|
-
email="user@example.com",
|
331
|
-
) as response:
|
315
|
+
with client.v1.materials.with_streaming_response.list() as response:
|
332
316
|
print(response.headers.get("X-My-Header"))
|
333
317
|
|
334
318
|
for line in response.iter_lines():
|
@@ -32,9 +32,7 @@ client = StudyfetchSDK(
|
|
32
32
|
api_key=os.environ.get("STUDYFETCH_SDK_API_KEY"), # This is the default and can be omitted
|
33
33
|
)
|
34
34
|
|
35
|
-
client.v1.
|
36
|
-
email="user@example.com",
|
37
|
-
)
|
35
|
+
materials = client.v1.materials.list()
|
38
36
|
```
|
39
37
|
|
40
38
|
While you can provide an `api_key` keyword argument,
|
@@ -57,9 +55,7 @@ client = AsyncStudyfetchSDK(
|
|
57
55
|
|
58
56
|
|
59
57
|
async def main() -> None:
|
60
|
-
await client.v1.
|
61
|
-
email="user@example.com",
|
62
|
-
)
|
58
|
+
materials = await client.v1.materials.list()
|
63
59
|
|
64
60
|
|
65
61
|
asyncio.run(main())
|
@@ -91,9 +87,7 @@ async def main() -> None:
|
|
91
87
|
api_key="My API Key",
|
92
88
|
http_client=DefaultAioHttpClient(),
|
93
89
|
) as client:
|
94
|
-
await client.v1.
|
95
|
-
email="user@example.com",
|
96
|
-
)
|
90
|
+
materials = await client.v1.materials.list()
|
97
91
|
|
98
92
|
|
99
93
|
asyncio.run(main())
|
@@ -158,9 +152,7 @@ from studyfetch_sdk import StudyfetchSDK
|
|
158
152
|
client = StudyfetchSDK()
|
159
153
|
|
160
154
|
try:
|
161
|
-
client.v1.
|
162
|
-
email="user@example.com",
|
163
|
-
)
|
155
|
+
client.v1.materials.list()
|
164
156
|
except studyfetch_sdk.APIConnectionError as e:
|
165
157
|
print("The server could not be reached")
|
166
158
|
print(e.__cause__) # an underlying Exception, likely raised within httpx.
|
@@ -203,9 +195,7 @@ client = StudyfetchSDK(
|
|
203
195
|
)
|
204
196
|
|
205
197
|
# Or, configure per-request:
|
206
|
-
client.with_options(max_retries=5).v1.
|
207
|
-
email="user@example.com",
|
208
|
-
)
|
198
|
+
client.with_options(max_retries=5).v1.materials.list()
|
209
199
|
```
|
210
200
|
|
211
201
|
### Timeouts
|
@@ -228,9 +218,7 @@ client = StudyfetchSDK(
|
|
228
218
|
)
|
229
219
|
|
230
220
|
# Override per-request:
|
231
|
-
client.with_options(timeout=5.0).v1.
|
232
|
-
email="user@example.com",
|
233
|
-
)
|
221
|
+
client.with_options(timeout=5.0).v1.materials.list()
|
234
222
|
```
|
235
223
|
|
236
224
|
On timeout, an `APITimeoutError` is thrown.
|
@@ -271,13 +259,11 @@ The "raw" Response object can be accessed by prefixing `.with_raw_response.` to
|
|
271
259
|
from studyfetch_sdk import StudyfetchSDK
|
272
260
|
|
273
261
|
client = StudyfetchSDK()
|
274
|
-
response = client.v1.
|
275
|
-
email="user@example.com",
|
276
|
-
)
|
262
|
+
response = client.v1.materials.with_raw_response.list()
|
277
263
|
print(response.headers.get('X-My-Header'))
|
278
264
|
|
279
|
-
|
280
|
-
print(
|
265
|
+
material = response.parse() # get the object that `v1.materials.list()` would have returned
|
266
|
+
print(material)
|
281
267
|
```
|
282
268
|
|
283
269
|
These methods return an [`APIResponse`](https://github.com/GoStudyFetchGo/studyfetch-sdk-python/tree/main/src/studyfetch_sdk/_response.py) object.
|
@@ -291,9 +277,7 @@ The above interface eagerly reads the full response body when you make the reque
|
|
291
277
|
To stream the response body, use `.with_streaming_response` instead, which requires a context manager and only reads the response body once you call `.read()`, `.text()`, `.json()`, `.iter_bytes()`, `.iter_text()`, `.iter_lines()` or `.parse()`. In the async client, these are async methods.
|
292
278
|
|
293
279
|
```python
|
294
|
-
with client.v1.
|
295
|
-
email="user@example.com",
|
296
|
-
) as response:
|
280
|
+
with client.v1.materials.with_streaming_response.list() as response:
|
297
281
|
print(response.headers.get("X-My-Header"))
|
298
282
|
|
299
283
|
for line in response.iter_lines():
|
@@ -1,17 +1,5 @@
|
|
1
1
|
# V1
|
2
2
|
|
3
|
-
## Auth
|
4
|
-
|
5
|
-
Methods:
|
6
|
-
|
7
|
-
- <code title="post /api/v1/auth/verify-reset-token">client.v1.auth.<a href="./src/studyfetch_sdk/resources/v1/auth/auth.py">verify_reset_token</a>() -> None</code>
|
8
|
-
|
9
|
-
### Number2fa
|
10
|
-
|
11
|
-
Methods:
|
12
|
-
|
13
|
-
- <code title="post /api/v1/auth/2fa/send-code">client.v1.auth.number_2fa.<a href="./src/studyfetch_sdk/resources/v1/auth/number_2fa.py">send_code</a>(\*\*<a href="src/studyfetch_sdk/types/v1/auth/number_2fa_send_code_params.py">params</a>) -> None</code>
|
14
|
-
|
15
3
|
## Materials
|
16
4
|
|
17
5
|
Types:
|
{studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/resources/v1/__init__.py
RENAMED
@@ -8,14 +8,6 @@ from .v1 import (
|
|
8
8
|
V1ResourceWithStreamingResponse,
|
9
9
|
AsyncV1ResourceWithStreamingResponse,
|
10
10
|
)
|
11
|
-
from .auth import (
|
12
|
-
AuthResource,
|
13
|
-
AsyncAuthResource,
|
14
|
-
AuthResourceWithRawResponse,
|
15
|
-
AsyncAuthResourceWithRawResponse,
|
16
|
-
AuthResourceWithStreamingResponse,
|
17
|
-
AsyncAuthResourceWithStreamingResponse,
|
18
|
-
)
|
19
11
|
from .chat import (
|
20
12
|
ChatResource,
|
21
13
|
AsyncChatResource,
|
@@ -114,12 +106,6 @@ from .audio_recaps import (
|
|
114
106
|
)
|
115
107
|
|
116
108
|
__all__ = [
|
117
|
-
"AuthResource",
|
118
|
-
"AsyncAuthResource",
|
119
|
-
"AuthResourceWithRawResponse",
|
120
|
-
"AsyncAuthResourceWithRawResponse",
|
121
|
-
"AuthResourceWithStreamingResponse",
|
122
|
-
"AsyncAuthResourceWithStreamingResponse",
|
123
109
|
"MaterialsResource",
|
124
110
|
"AsyncMaterialsResource",
|
125
111
|
"MaterialsResourceWithRawResponse",
|
@@ -19,14 +19,6 @@ from .folders import (
|
|
19
19
|
AsyncFoldersResourceWithStreamingResponse,
|
20
20
|
)
|
21
21
|
from ..._compat import cached_property
|
22
|
-
from .auth.auth import (
|
23
|
-
AuthResource,
|
24
|
-
AsyncAuthResource,
|
25
|
-
AuthResourceWithRawResponse,
|
26
|
-
AsyncAuthResourceWithRawResponse,
|
27
|
-
AuthResourceWithStreamingResponse,
|
28
|
-
AsyncAuthResourceWithStreamingResponse,
|
29
|
-
)
|
30
22
|
from .chat.chat import (
|
31
23
|
ChatResource,
|
32
24
|
AsyncChatResource,
|
@@ -113,10 +105,6 @@ __all__ = ["V1Resource", "AsyncV1Resource"]
|
|
113
105
|
|
114
106
|
|
115
107
|
class V1Resource(SyncAPIResource):
|
116
|
-
@cached_property
|
117
|
-
def auth(self) -> AuthResource:
|
118
|
-
return AuthResource(self._client)
|
119
|
-
|
120
108
|
@cached_property
|
121
109
|
def materials(self) -> MaterialsResource:
|
122
110
|
return MaterialsResource(self._client)
|
@@ -186,10 +174,6 @@ class V1Resource(SyncAPIResource):
|
|
186
174
|
|
187
175
|
|
188
176
|
class AsyncV1Resource(AsyncAPIResource):
|
189
|
-
@cached_property
|
190
|
-
def auth(self) -> AsyncAuthResource:
|
191
|
-
return AsyncAuthResource(self._client)
|
192
|
-
|
193
177
|
@cached_property
|
194
178
|
def materials(self) -> AsyncMaterialsResource:
|
195
179
|
return AsyncMaterialsResource(self._client)
|
@@ -262,10 +246,6 @@ class V1ResourceWithRawResponse:
|
|
262
246
|
def __init__(self, v1: V1Resource) -> None:
|
263
247
|
self._v1 = v1
|
264
248
|
|
265
|
-
@cached_property
|
266
|
-
def auth(self) -> AuthResourceWithRawResponse:
|
267
|
-
return AuthResourceWithRawResponse(self._v1.auth)
|
268
|
-
|
269
249
|
@cached_property
|
270
250
|
def materials(self) -> MaterialsResourceWithRawResponse:
|
271
251
|
return MaterialsResourceWithRawResponse(self._v1.materials)
|
@@ -319,10 +299,6 @@ class AsyncV1ResourceWithRawResponse:
|
|
319
299
|
def __init__(self, v1: AsyncV1Resource) -> None:
|
320
300
|
self._v1 = v1
|
321
301
|
|
322
|
-
@cached_property
|
323
|
-
def auth(self) -> AsyncAuthResourceWithRawResponse:
|
324
|
-
return AsyncAuthResourceWithRawResponse(self._v1.auth)
|
325
|
-
|
326
302
|
@cached_property
|
327
303
|
def materials(self) -> AsyncMaterialsResourceWithRawResponse:
|
328
304
|
return AsyncMaterialsResourceWithRawResponse(self._v1.materials)
|
@@ -376,10 +352,6 @@ class V1ResourceWithStreamingResponse:
|
|
376
352
|
def __init__(self, v1: V1Resource) -> None:
|
377
353
|
self._v1 = v1
|
378
354
|
|
379
|
-
@cached_property
|
380
|
-
def auth(self) -> AuthResourceWithStreamingResponse:
|
381
|
-
return AuthResourceWithStreamingResponse(self._v1.auth)
|
382
|
-
|
383
355
|
@cached_property
|
384
356
|
def materials(self) -> MaterialsResourceWithStreamingResponse:
|
385
357
|
return MaterialsResourceWithStreamingResponse(self._v1.materials)
|
@@ -433,10 +405,6 @@ class AsyncV1ResourceWithStreamingResponse:
|
|
433
405
|
def __init__(self, v1: AsyncV1Resource) -> None:
|
434
406
|
self._v1 = v1
|
435
407
|
|
436
|
-
@cached_property
|
437
|
-
def auth(self) -> AsyncAuthResourceWithStreamingResponse:
|
438
|
-
return AsyncAuthResourceWithStreamingResponse(self._v1.auth)
|
439
|
-
|
440
408
|
@cached_property
|
441
409
|
def materials(self) -> AsyncMaterialsResourceWithStreamingResponse:
|
442
410
|
return AsyncMaterialsResourceWithStreamingResponse(self._v1.materials)
|
@@ -724,20 +724,20 @@ class TestStudyfetchSDK:
|
|
724
724
|
@mock.patch("studyfetch_sdk._base_client.BaseClient._calculate_retry_timeout", _low_retry_timeout)
|
725
725
|
@pytest.mark.respx(base_url=base_url)
|
726
726
|
def test_retrying_timeout_errors_doesnt_leak(self, respx_mock: MockRouter, client: StudyfetchSDK) -> None:
|
727
|
-
respx_mock.
|
727
|
+
respx_mock.get("/api/v1/materials").mock(side_effect=httpx.TimeoutException("Test timeout error"))
|
728
728
|
|
729
729
|
with pytest.raises(APITimeoutError):
|
730
|
-
client.v1.
|
730
|
+
client.v1.materials.with_streaming_response.list().__enter__()
|
731
731
|
|
732
732
|
assert _get_open_connections(self.client) == 0
|
733
733
|
|
734
734
|
@mock.patch("studyfetch_sdk._base_client.BaseClient._calculate_retry_timeout", _low_retry_timeout)
|
735
735
|
@pytest.mark.respx(base_url=base_url)
|
736
736
|
def test_retrying_status_errors_doesnt_leak(self, respx_mock: MockRouter, client: StudyfetchSDK) -> None:
|
737
|
-
respx_mock.
|
737
|
+
respx_mock.get("/api/v1/materials").mock(return_value=httpx.Response(500))
|
738
738
|
|
739
739
|
with pytest.raises(APIStatusError):
|
740
|
-
client.v1.
|
740
|
+
client.v1.materials.with_streaming_response.list().__enter__()
|
741
741
|
assert _get_open_connections(self.client) == 0
|
742
742
|
|
743
743
|
@pytest.mark.parametrize("failures_before_success", [0, 2, 4])
|
@@ -764,9 +764,9 @@ class TestStudyfetchSDK:
|
|
764
764
|
return httpx.Response(500)
|
765
765
|
return httpx.Response(200)
|
766
766
|
|
767
|
-
respx_mock.
|
767
|
+
respx_mock.get("/api/v1/materials").mock(side_effect=retry_handler)
|
768
768
|
|
769
|
-
response = client.v1.
|
769
|
+
response = client.v1.materials.with_raw_response.list()
|
770
770
|
|
771
771
|
assert response.retries_taken == failures_before_success
|
772
772
|
assert int(response.http_request.headers.get("x-stainless-retry-count")) == failures_before_success
|
@@ -788,11 +788,9 @@ class TestStudyfetchSDK:
|
|
788
788
|
return httpx.Response(500)
|
789
789
|
return httpx.Response(200)
|
790
790
|
|
791
|
-
respx_mock.
|
791
|
+
respx_mock.get("/api/v1/materials").mock(side_effect=retry_handler)
|
792
792
|
|
793
|
-
response = client.v1.
|
794
|
-
email="user@example.com", extra_headers={"x-stainless-retry-count": Omit()}
|
795
|
-
)
|
793
|
+
response = client.v1.materials.with_raw_response.list(extra_headers={"x-stainless-retry-count": Omit()})
|
796
794
|
|
797
795
|
assert len(response.http_request.headers.get_list("x-stainless-retry-count")) == 0
|
798
796
|
|
@@ -813,11 +811,9 @@ class TestStudyfetchSDK:
|
|
813
811
|
return httpx.Response(500)
|
814
812
|
return httpx.Response(200)
|
815
813
|
|
816
|
-
respx_mock.
|
814
|
+
respx_mock.get("/api/v1/materials").mock(side_effect=retry_handler)
|
817
815
|
|
818
|
-
response = client.v1.
|
819
|
-
email="user@example.com", extra_headers={"x-stainless-retry-count": "42"}
|
820
|
-
)
|
816
|
+
response = client.v1.materials.with_raw_response.list(extra_headers={"x-stainless-retry-count": "42"})
|
821
817
|
|
822
818
|
assert response.http_request.headers.get("x-stainless-retry-count") == "42"
|
823
819
|
|
@@ -1545,12 +1541,10 @@ class TestAsyncStudyfetchSDK:
|
|
1545
1541
|
async def test_retrying_timeout_errors_doesnt_leak(
|
1546
1542
|
self, respx_mock: MockRouter, async_client: AsyncStudyfetchSDK
|
1547
1543
|
) -> None:
|
1548
|
-
respx_mock.
|
1544
|
+
respx_mock.get("/api/v1/materials").mock(side_effect=httpx.TimeoutException("Test timeout error"))
|
1549
1545
|
|
1550
1546
|
with pytest.raises(APITimeoutError):
|
1551
|
-
await async_client.v1.
|
1552
|
-
email="user@example.com"
|
1553
|
-
).__aenter__()
|
1547
|
+
await async_client.v1.materials.with_streaming_response.list().__aenter__()
|
1554
1548
|
|
1555
1549
|
assert _get_open_connections(self.client) == 0
|
1556
1550
|
|
@@ -1559,12 +1553,10 @@ class TestAsyncStudyfetchSDK:
|
|
1559
1553
|
async def test_retrying_status_errors_doesnt_leak(
|
1560
1554
|
self, respx_mock: MockRouter, async_client: AsyncStudyfetchSDK
|
1561
1555
|
) -> None:
|
1562
|
-
respx_mock.
|
1556
|
+
respx_mock.get("/api/v1/materials").mock(return_value=httpx.Response(500))
|
1563
1557
|
|
1564
1558
|
with pytest.raises(APIStatusError):
|
1565
|
-
await async_client.v1.
|
1566
|
-
email="user@example.com"
|
1567
|
-
).__aenter__()
|
1559
|
+
await async_client.v1.materials.with_streaming_response.list().__aenter__()
|
1568
1560
|
assert _get_open_connections(self.client) == 0
|
1569
1561
|
|
1570
1562
|
@pytest.mark.parametrize("failures_before_success", [0, 2, 4])
|
@@ -1592,9 +1584,9 @@ class TestAsyncStudyfetchSDK:
|
|
1592
1584
|
return httpx.Response(500)
|
1593
1585
|
return httpx.Response(200)
|
1594
1586
|
|
1595
|
-
respx_mock.
|
1587
|
+
respx_mock.get("/api/v1/materials").mock(side_effect=retry_handler)
|
1596
1588
|
|
1597
|
-
response = await client.v1.
|
1589
|
+
response = await client.v1.materials.with_raw_response.list()
|
1598
1590
|
|
1599
1591
|
assert response.retries_taken == failures_before_success
|
1600
1592
|
assert int(response.http_request.headers.get("x-stainless-retry-count")) == failures_before_success
|
@@ -1617,11 +1609,9 @@ class TestAsyncStudyfetchSDK:
|
|
1617
1609
|
return httpx.Response(500)
|
1618
1610
|
return httpx.Response(200)
|
1619
1611
|
|
1620
|
-
respx_mock.
|
1612
|
+
respx_mock.get("/api/v1/materials").mock(side_effect=retry_handler)
|
1621
1613
|
|
1622
|
-
response = await client.v1.
|
1623
|
-
email="user@example.com", extra_headers={"x-stainless-retry-count": Omit()}
|
1624
|
-
)
|
1614
|
+
response = await client.v1.materials.with_raw_response.list(extra_headers={"x-stainless-retry-count": Omit()})
|
1625
1615
|
|
1626
1616
|
assert len(response.http_request.headers.get_list("x-stainless-retry-count")) == 0
|
1627
1617
|
|
@@ -1643,11 +1633,9 @@ class TestAsyncStudyfetchSDK:
|
|
1643
1633
|
return httpx.Response(500)
|
1644
1634
|
return httpx.Response(200)
|
1645
1635
|
|
1646
|
-
respx_mock.
|
1636
|
+
respx_mock.get("/api/v1/materials").mock(side_effect=retry_handler)
|
1647
1637
|
|
1648
|
-
response = await client.v1.
|
1649
|
-
email="user@example.com", extra_headers={"x-stainless-retry-count": "42"}
|
1650
|
-
)
|
1638
|
+
response = await client.v1.materials.with_raw_response.list(extra_headers={"x-stainless-retry-count": "42"})
|
1651
1639
|
|
1652
1640
|
assert response.http_request.headers.get("x-stainless-retry-count") == "42"
|
1653
1641
|
|
@@ -1,33 +0,0 @@
|
|
1
|
-
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
2
|
-
|
3
|
-
from .auth import (
|
4
|
-
AuthResource,
|
5
|
-
AsyncAuthResource,
|
6
|
-
AuthResourceWithRawResponse,
|
7
|
-
AsyncAuthResourceWithRawResponse,
|
8
|
-
AuthResourceWithStreamingResponse,
|
9
|
-
AsyncAuthResourceWithStreamingResponse,
|
10
|
-
)
|
11
|
-
from .number_2fa import (
|
12
|
-
Number2faResource,
|
13
|
-
AsyncNumber2faResource,
|
14
|
-
Number2faResourceWithRawResponse,
|
15
|
-
AsyncNumber2faResourceWithRawResponse,
|
16
|
-
Number2faResourceWithStreamingResponse,
|
17
|
-
AsyncNumber2faResourceWithStreamingResponse,
|
18
|
-
)
|
19
|
-
|
20
|
-
__all__ = [
|
21
|
-
"Number2faResource",
|
22
|
-
"AsyncNumber2faResource",
|
23
|
-
"Number2faResourceWithRawResponse",
|
24
|
-
"AsyncNumber2faResourceWithRawResponse",
|
25
|
-
"Number2faResourceWithStreamingResponse",
|
26
|
-
"AsyncNumber2faResourceWithStreamingResponse",
|
27
|
-
"AuthResource",
|
28
|
-
"AsyncAuthResource",
|
29
|
-
"AuthResourceWithRawResponse",
|
30
|
-
"AsyncAuthResourceWithRawResponse",
|
31
|
-
"AuthResourceWithStreamingResponse",
|
32
|
-
"AsyncAuthResourceWithStreamingResponse",
|
33
|
-
]
|