studyfetch-sdk 0.1.0a7__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.0a7 → studyfetch_sdk-0.1.0a8}/CHANGELOG.md +8 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/PKG-INFO +11 -11
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/README.md +10 -10
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/api.md +0 -6
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/pyproject.toml +1 -1
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/_version.py +1 -1
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/resources/v1/__init__.py +0 -14
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/resources/v1/v1.py +0 -32
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/tests/test_client.py +20 -30
- studyfetch_sdk-0.1.0a7/.release-please-manifest.json +0 -3
- studyfetch_sdk-0.1.0a7/src/studyfetch_sdk/resources/v1/auth/__init__.py +0 -19
- studyfetch_sdk-0.1.0a7/src/studyfetch_sdk/resources/v1/auth/auth.py +0 -136
- studyfetch_sdk-0.1.0a7/src/studyfetch_sdk/types/v1/upload/__init__.py +0 -3
- studyfetch_sdk-0.1.0a7/tests/api_resources/v1/test_auth.py +0 -78
- studyfetch_sdk-0.1.0a7/tests/api_resources/v1/upload/__init__.py +0 -1
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/.gitignore +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/CONTRIBUTING.md +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/LICENSE +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/SECURITY.md +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/bin/check-release-environment +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/bin/publish-pypi +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/examples/.keep +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/mypy.ini +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/noxfile.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/release-please-config.json +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/requirements-dev.lock +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/requirements.lock +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/__init__.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/_base_client.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/_client.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/_compat.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/_constants.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/_exceptions.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/_files.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/_models.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/_qs.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/_resource.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/_response.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/_streaming.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/_types.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/_utils/__init__.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/_utils/_logs.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/_utils/_proxy.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/_utils/_reflection.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/_utils/_resources_proxy.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/_utils/_streams.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/_utils/_sync.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/_utils/_transform.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/_utils/_typing.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/_utils/_utils.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/lib/.keep +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/py.typed +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/resources/__init__.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/resources/v1/audio_recaps/__init__.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/resources/v1/audio_recaps/audio_recaps.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/resources/v1/audio_recaps/sections.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/resources/v1/chat/__init__.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/resources/v1/chat/chat.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/resources/v1/chat/sessions.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/resources/v1/chat/test.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/resources/v1/components.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/resources/v1/embed/__init__.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/resources/v1/embed/component.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/resources/v1/embed/embed.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/resources/v1/explainers.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/resources/v1/flashcards.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/resources/v1/folders.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/resources/v1/materials/__init__.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/resources/v1/materials/bulk.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/resources/v1/materials/materials.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/resources/v1/materials/test.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/resources/v1/materials/upload.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/resources/v1/scenarios/__init__.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/resources/v1/scenarios/component.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/resources/v1/scenarios/scenarios.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/resources/v1/scenarios/sessions.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/resources/v1/scenarios/submissions/__init__.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/resources/v1/scenarios/submissions/submissions.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/resources/v1/scenarios/submissions/user.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/resources/v1/tests/__init__.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/resources/v1/tests/component.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/resources/v1/tests/tests.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/resources/v1/upload/__init__.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/resources/v1/upload/component.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/resources/v1/upload/upload.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/resources/v1/usage.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/types/__init__.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/types/v1/__init__.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/types/v1/audio_recaps/__init__.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/types/v1/chat/__init__.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/types/v1/chat/session_retrieve_params.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/types/v1/chat_get_session_params.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/types/v1/chat_send_message_params.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/types/v1/chat_stream_params.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/types/v1/component.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/types/v1/component_create_params.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/types/v1/component_generate_embed_params.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/types/v1/component_generate_embed_response.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/types/v1/component_list_params.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/types/v1/component_list_response.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/types/v1/component_update_params.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/types/v1/embed/__init__.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/types/v1/embed/component_interact_params.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/types/v1/embed/component_retrieve_params.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/types/v1/embed_get_theme_params.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/types/v1/embed_verify_params.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/types/v1/explainer_create_params.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/types/v1/explainer_handle_webhook_params.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/types/v1/flashcard_batch_process_params.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/types/v1/flashcard_batch_process_response.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/types/v1/flashcard_get_algorithm_response.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/types/v1/flashcard_get_all_params.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/types/v1/flashcard_get_due_params.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/types/v1/flashcard_get_stats_params.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/types/v1/flashcard_get_types_response.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/types/v1/flashcard_rate_params.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/types/v1/folder_create_params.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/types/v1/folder_list_params.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/types/v1/folder_update_params.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/types/v1/material.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/types/v1/material_create_params.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/types/v1/material_get_download_url_params.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/types/v1/material_list_params.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/types/v1/material_list_response.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/types/v1/materials/__init__.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/types/v1/materials/upload_upload_file_params.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/types/v1/materials/upload_upload_from_url_params.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/types/v1/scenario_create_params.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/types/v1/scenario_submit_answer_params.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/types/v1/scenario_update_params.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/types/v1/scenarios/__init__.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/types/v1/scenarios/component_update_params.py +0 -0
- {studyfetch_sdk-0.1.0a7/src/studyfetch_sdk/types/v1/auth → studyfetch_sdk-0.1.0a8/src/studyfetch_sdk/types/v1/scenarios/submissions}/__init__.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/types/v1/test_create_params.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/types/v1/test_retake_params.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/types/v1/test_submit_answer_params.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/types/v1/test_submit_params.py +0 -0
- {studyfetch_sdk-0.1.0a7/src/studyfetch_sdk/types/v1/scenarios/submissions → studyfetch_sdk-0.1.0a8/src/studyfetch_sdk/types/v1/tests}/__init__.py +0 -0
- {studyfetch_sdk-0.1.0a7/src/studyfetch_sdk/types/v1/tests → studyfetch_sdk-0.1.0a8/src/studyfetch_sdk/types/v1/upload}/__init__.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/types/v1/usage_get_stats_params.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/types/v1/usage_get_summary_params.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/src/studyfetch_sdk/types/v1/usage_list_events_params.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/tests/__init__.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/tests/api_resources/__init__.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/tests/api_resources/v1/__init__.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/tests/api_resources/v1/audio_recaps/__init__.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/tests/api_resources/v1/audio_recaps/test_sections.py +0 -0
- {studyfetch_sdk-0.1.0a7/tests/api_resources/v1/auth → studyfetch_sdk-0.1.0a8/tests/api_resources/v1/chat}/__init__.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/tests/api_resources/v1/chat/test_sessions.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/tests/api_resources/v1/chat/test_test.py +0 -0
- {studyfetch_sdk-0.1.0a7/tests/api_resources/v1/chat → studyfetch_sdk-0.1.0a8/tests/api_resources/v1/embed}/__init__.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/tests/api_resources/v1/embed/test_component.py +0 -0
- {studyfetch_sdk-0.1.0a7/tests/api_resources/v1/embed → studyfetch_sdk-0.1.0a8/tests/api_resources/v1/materials}/__init__.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/tests/api_resources/v1/materials/test_bulk.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/tests/api_resources/v1/materials/test_test.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/tests/api_resources/v1/materials/test_upload.py +0 -0
- {studyfetch_sdk-0.1.0a7/tests/api_resources/v1/materials → studyfetch_sdk-0.1.0a8/tests/api_resources/v1/scenarios}/__init__.py +0 -0
- {studyfetch_sdk-0.1.0a7/tests/api_resources/v1/scenarios → studyfetch_sdk-0.1.0a8/tests/api_resources/v1/scenarios/submissions}/__init__.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/tests/api_resources/v1/scenarios/submissions/test_user.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/tests/api_resources/v1/scenarios/test_component.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/tests/api_resources/v1/scenarios/test_sessions.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/tests/api_resources/v1/test_audio_recaps.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/tests/api_resources/v1/test_chat.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/tests/api_resources/v1/test_components.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/tests/api_resources/v1/test_embed.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/tests/api_resources/v1/test_explainers.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/tests/api_resources/v1/test_flashcards.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/tests/api_resources/v1/test_folders.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/tests/api_resources/v1/test_materials.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/tests/api_resources/v1/test_scenarios.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/tests/api_resources/v1/test_tests.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/tests/api_resources/v1/test_usage.py +0 -0
- {studyfetch_sdk-0.1.0a7/tests/api_resources/v1/scenarios/submissions → studyfetch_sdk-0.1.0a8/tests/api_resources/v1/tests}/__init__.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/tests/api_resources/v1/tests/test_component.py +0 -0
- {studyfetch_sdk-0.1.0a7/tests/api_resources/v1/tests → studyfetch_sdk-0.1.0a8/tests/api_resources/v1/upload}/__init__.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/tests/api_resources/v1/upload/test_component.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/tests/conftest.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/tests/sample_file.txt +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/tests/test_deepcopy.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/tests/test_extract_files.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/tests/test_files.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/tests/test_models.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/tests/test_qs.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/tests/test_required_args.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/tests/test_response.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/tests/test_streaming.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/tests/test_transform.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/tests/test_utils/test_proxy.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/tests/test_utils/test_typing.py +0 -0
- {studyfetch_sdk-0.1.0a7 → studyfetch_sdk-0.1.0a8}/tests/utils.py +0 -0
@@ -1,5 +1,13 @@
|
|
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
|
+
|
3
11
|
## 0.1.0-alpha.7 (2025-07-20)
|
4
12
|
|
5
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)
|
@@ -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,7 +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.
|
70
|
+
materials = client.v1.materials.list()
|
71
71
|
```
|
72
72
|
|
73
73
|
While you can provide an `api_key` keyword argument,
|
@@ -90,7 +90,7 @@ client = AsyncStudyfetchSDK(
|
|
90
90
|
|
91
91
|
|
92
92
|
async def main() -> None:
|
93
|
-
await client.v1.
|
93
|
+
materials = await client.v1.materials.list()
|
94
94
|
|
95
95
|
|
96
96
|
asyncio.run(main())
|
@@ -122,7 +122,7 @@ async def main() -> None:
|
|
122
122
|
api_key="My API Key",
|
123
123
|
http_client=DefaultAioHttpClient(),
|
124
124
|
) as client:
|
125
|
-
await client.v1.
|
125
|
+
materials = await client.v1.materials.list()
|
126
126
|
|
127
127
|
|
128
128
|
asyncio.run(main())
|
@@ -187,7 +187,7 @@ from studyfetch_sdk import StudyfetchSDK
|
|
187
187
|
client = StudyfetchSDK()
|
188
188
|
|
189
189
|
try:
|
190
|
-
client.v1.
|
190
|
+
client.v1.materials.list()
|
191
191
|
except studyfetch_sdk.APIConnectionError as e:
|
192
192
|
print("The server could not be reached")
|
193
193
|
print(e.__cause__) # an underlying Exception, likely raised within httpx.
|
@@ -230,7 +230,7 @@ client = StudyfetchSDK(
|
|
230
230
|
)
|
231
231
|
|
232
232
|
# Or, configure per-request:
|
233
|
-
client.with_options(max_retries=5).v1.
|
233
|
+
client.with_options(max_retries=5).v1.materials.list()
|
234
234
|
```
|
235
235
|
|
236
236
|
### Timeouts
|
@@ -253,7 +253,7 @@ client = StudyfetchSDK(
|
|
253
253
|
)
|
254
254
|
|
255
255
|
# Override per-request:
|
256
|
-
client.with_options(timeout=5.0).v1.
|
256
|
+
client.with_options(timeout=5.0).v1.materials.list()
|
257
257
|
```
|
258
258
|
|
259
259
|
On timeout, an `APITimeoutError` is thrown.
|
@@ -294,11 +294,11 @@ The "raw" Response object can be accessed by prefixing `.with_raw_response.` to
|
|
294
294
|
from studyfetch_sdk import StudyfetchSDK
|
295
295
|
|
296
296
|
client = StudyfetchSDK()
|
297
|
-
response = client.v1.
|
297
|
+
response = client.v1.materials.with_raw_response.list()
|
298
298
|
print(response.headers.get('X-My-Header'))
|
299
299
|
|
300
|
-
|
301
|
-
print(
|
300
|
+
material = response.parse() # get the object that `v1.materials.list()` would have returned
|
301
|
+
print(material)
|
302
302
|
```
|
303
303
|
|
304
304
|
These methods return an [`APIResponse`](https://github.com/GoStudyFetchGo/studyfetch-sdk-python/tree/main/src/studyfetch_sdk/_response.py) object.
|
@@ -312,7 +312,7 @@ The above interface eagerly reads the full response body when you make the reque
|
|
312
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.
|
313
313
|
|
314
314
|
```python
|
315
|
-
with client.v1.
|
315
|
+
with client.v1.materials.with_streaming_response.list() as response:
|
316
316
|
print(response.headers.get("X-My-Header"))
|
317
317
|
|
318
318
|
for line in response.iter_lines():
|
@@ -32,7 +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.
|
35
|
+
materials = client.v1.materials.list()
|
36
36
|
```
|
37
37
|
|
38
38
|
While you can provide an `api_key` keyword argument,
|
@@ -55,7 +55,7 @@ client = AsyncStudyfetchSDK(
|
|
55
55
|
|
56
56
|
|
57
57
|
async def main() -> None:
|
58
|
-
await client.v1.
|
58
|
+
materials = await client.v1.materials.list()
|
59
59
|
|
60
60
|
|
61
61
|
asyncio.run(main())
|
@@ -87,7 +87,7 @@ async def main() -> None:
|
|
87
87
|
api_key="My API Key",
|
88
88
|
http_client=DefaultAioHttpClient(),
|
89
89
|
) as client:
|
90
|
-
await client.v1.
|
90
|
+
materials = await client.v1.materials.list()
|
91
91
|
|
92
92
|
|
93
93
|
asyncio.run(main())
|
@@ -152,7 +152,7 @@ from studyfetch_sdk import StudyfetchSDK
|
|
152
152
|
client = StudyfetchSDK()
|
153
153
|
|
154
154
|
try:
|
155
|
-
client.v1.
|
155
|
+
client.v1.materials.list()
|
156
156
|
except studyfetch_sdk.APIConnectionError as e:
|
157
157
|
print("The server could not be reached")
|
158
158
|
print(e.__cause__) # an underlying Exception, likely raised within httpx.
|
@@ -195,7 +195,7 @@ client = StudyfetchSDK(
|
|
195
195
|
)
|
196
196
|
|
197
197
|
# Or, configure per-request:
|
198
|
-
client.with_options(max_retries=5).v1.
|
198
|
+
client.with_options(max_retries=5).v1.materials.list()
|
199
199
|
```
|
200
200
|
|
201
201
|
### Timeouts
|
@@ -218,7 +218,7 @@ client = StudyfetchSDK(
|
|
218
218
|
)
|
219
219
|
|
220
220
|
# Override per-request:
|
221
|
-
client.with_options(timeout=5.0).v1.
|
221
|
+
client.with_options(timeout=5.0).v1.materials.list()
|
222
222
|
```
|
223
223
|
|
224
224
|
On timeout, an `APITimeoutError` is thrown.
|
@@ -259,11 +259,11 @@ The "raw" Response object can be accessed by prefixing `.with_raw_response.` to
|
|
259
259
|
from studyfetch_sdk import StudyfetchSDK
|
260
260
|
|
261
261
|
client = StudyfetchSDK()
|
262
|
-
response = client.v1.
|
262
|
+
response = client.v1.materials.with_raw_response.list()
|
263
263
|
print(response.headers.get('X-My-Header'))
|
264
264
|
|
265
|
-
|
266
|
-
print(
|
265
|
+
material = response.parse() # get the object that `v1.materials.list()` would have returned
|
266
|
+
print(material)
|
267
267
|
```
|
268
268
|
|
269
269
|
These methods return an [`APIResponse`](https://github.com/GoStudyFetchGo/studyfetch-sdk-python/tree/main/src/studyfetch_sdk/_response.py) object.
|
@@ -277,7 +277,7 @@ The above interface eagerly reads the full response body when you make the reque
|
|
277
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.
|
278
278
|
|
279
279
|
```python
|
280
|
-
with client.v1.
|
280
|
+
with client.v1.materials.with_streaming_response.list() as response:
|
281
281
|
print(response.headers.get("X-My-Header"))
|
282
282
|
|
283
283
|
for line in response.iter_lines():
|
{studyfetch_sdk-0.1.0a7 → 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,22 +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.
|
728
|
-
side_effect=httpx.TimeoutException("Test timeout error")
|
729
|
-
)
|
727
|
+
respx_mock.get("/api/v1/materials").mock(side_effect=httpx.TimeoutException("Test timeout error"))
|
730
728
|
|
731
729
|
with pytest.raises(APITimeoutError):
|
732
|
-
client.v1.
|
730
|
+
client.v1.materials.with_streaming_response.list().__enter__()
|
733
731
|
|
734
732
|
assert _get_open_connections(self.client) == 0
|
735
733
|
|
736
734
|
@mock.patch("studyfetch_sdk._base_client.BaseClient._calculate_retry_timeout", _low_retry_timeout)
|
737
735
|
@pytest.mark.respx(base_url=base_url)
|
738
736
|
def test_retrying_status_errors_doesnt_leak(self, respx_mock: MockRouter, client: StudyfetchSDK) -> None:
|
739
|
-
respx_mock.
|
737
|
+
respx_mock.get("/api/v1/materials").mock(return_value=httpx.Response(500))
|
740
738
|
|
741
739
|
with pytest.raises(APIStatusError):
|
742
|
-
client.v1.
|
740
|
+
client.v1.materials.with_streaming_response.list().__enter__()
|
743
741
|
assert _get_open_connections(self.client) == 0
|
744
742
|
|
745
743
|
@pytest.mark.parametrize("failures_before_success", [0, 2, 4])
|
@@ -766,9 +764,9 @@ class TestStudyfetchSDK:
|
|
766
764
|
return httpx.Response(500)
|
767
765
|
return httpx.Response(200)
|
768
766
|
|
769
|
-
respx_mock.
|
767
|
+
respx_mock.get("/api/v1/materials").mock(side_effect=retry_handler)
|
770
768
|
|
771
|
-
response = client.v1.
|
769
|
+
response = client.v1.materials.with_raw_response.list()
|
772
770
|
|
773
771
|
assert response.retries_taken == failures_before_success
|
774
772
|
assert int(response.http_request.headers.get("x-stainless-retry-count")) == failures_before_success
|
@@ -790,11 +788,9 @@ class TestStudyfetchSDK:
|
|
790
788
|
return httpx.Response(500)
|
791
789
|
return httpx.Response(200)
|
792
790
|
|
793
|
-
respx_mock.
|
791
|
+
respx_mock.get("/api/v1/materials").mock(side_effect=retry_handler)
|
794
792
|
|
795
|
-
response = client.v1.
|
796
|
-
extra_headers={"x-stainless-retry-count": Omit()}
|
797
|
-
)
|
793
|
+
response = client.v1.materials.with_raw_response.list(extra_headers={"x-stainless-retry-count": Omit()})
|
798
794
|
|
799
795
|
assert len(response.http_request.headers.get_list("x-stainless-retry-count")) == 0
|
800
796
|
|
@@ -815,9 +811,9 @@ class TestStudyfetchSDK:
|
|
815
811
|
return httpx.Response(500)
|
816
812
|
return httpx.Response(200)
|
817
813
|
|
818
|
-
respx_mock.
|
814
|
+
respx_mock.get("/api/v1/materials").mock(side_effect=retry_handler)
|
819
815
|
|
820
|
-
response = client.v1.
|
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.
|
1549
|
-
side_effect=httpx.TimeoutException("Test timeout error")
|
1550
|
-
)
|
1544
|
+
respx_mock.get("/api/v1/materials").mock(side_effect=httpx.TimeoutException("Test timeout error"))
|
1551
1545
|
|
1552
1546
|
with pytest.raises(APITimeoutError):
|
1553
|
-
await async_client.v1.
|
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,10 +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.
|
1559
|
+
await async_client.v1.materials.with_streaming_response.list().__aenter__()
|
1566
1560
|
assert _get_open_connections(self.client) == 0
|
1567
1561
|
|
1568
1562
|
@pytest.mark.parametrize("failures_before_success", [0, 2, 4])
|
@@ -1590,9 +1584,9 @@ class TestAsyncStudyfetchSDK:
|
|
1590
1584
|
return httpx.Response(500)
|
1591
1585
|
return httpx.Response(200)
|
1592
1586
|
|
1593
|
-
respx_mock.
|
1587
|
+
respx_mock.get("/api/v1/materials").mock(side_effect=retry_handler)
|
1594
1588
|
|
1595
|
-
response = await client.v1.
|
1589
|
+
response = await client.v1.materials.with_raw_response.list()
|
1596
1590
|
|
1597
1591
|
assert response.retries_taken == failures_before_success
|
1598
1592
|
assert int(response.http_request.headers.get("x-stainless-retry-count")) == failures_before_success
|
@@ -1615,11 +1609,9 @@ class TestAsyncStudyfetchSDK:
|
|
1615
1609
|
return httpx.Response(500)
|
1616
1610
|
return httpx.Response(200)
|
1617
1611
|
|
1618
|
-
respx_mock.
|
1612
|
+
respx_mock.get("/api/v1/materials").mock(side_effect=retry_handler)
|
1619
1613
|
|
1620
|
-
response = await client.v1.
|
1621
|
-
extra_headers={"x-stainless-retry-count": Omit()}
|
1622
|
-
)
|
1614
|
+
response = await client.v1.materials.with_raw_response.list(extra_headers={"x-stainless-retry-count": Omit()})
|
1623
1615
|
|
1624
1616
|
assert len(response.http_request.headers.get_list("x-stainless-retry-count")) == 0
|
1625
1617
|
|
@@ -1641,11 +1633,9 @@ class TestAsyncStudyfetchSDK:
|
|
1641
1633
|
return httpx.Response(500)
|
1642
1634
|
return httpx.Response(200)
|
1643
1635
|
|
1644
|
-
respx_mock.
|
1636
|
+
respx_mock.get("/api/v1/materials").mock(side_effect=retry_handler)
|
1645
1637
|
|
1646
|
-
response = await client.v1.
|
1647
|
-
extra_headers={"x-stainless-retry-count": "42"}
|
1648
|
-
)
|
1638
|
+
response = await client.v1.materials.with_raw_response.list(extra_headers={"x-stainless-retry-count": "42"})
|
1649
1639
|
|
1650
1640
|
assert response.http_request.headers.get("x-stainless-retry-count") == "42"
|
1651
1641
|
|
@@ -1,19 +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
|
-
|
12
|
-
__all__ = [
|
13
|
-
"AuthResource",
|
14
|
-
"AsyncAuthResource",
|
15
|
-
"AuthResourceWithRawResponse",
|
16
|
-
"AsyncAuthResourceWithRawResponse",
|
17
|
-
"AuthResourceWithStreamingResponse",
|
18
|
-
"AsyncAuthResourceWithStreamingResponse",
|
19
|
-
]
|
@@ -1,136 +0,0 @@
|
|
1
|
-
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
2
|
-
|
3
|
-
from __future__ import annotations
|
4
|
-
|
5
|
-
import httpx
|
6
|
-
|
7
|
-
from ...._types import NOT_GIVEN, Body, Query, Headers, NoneType, NotGiven
|
8
|
-
from ...._compat import cached_property
|
9
|
-
from ...._resource import SyncAPIResource, AsyncAPIResource
|
10
|
-
from ...._response import (
|
11
|
-
to_raw_response_wrapper,
|
12
|
-
to_streamed_response_wrapper,
|
13
|
-
async_to_raw_response_wrapper,
|
14
|
-
async_to_streamed_response_wrapper,
|
15
|
-
)
|
16
|
-
from ...._base_client import make_request_options
|
17
|
-
|
18
|
-
__all__ = ["AuthResource", "AsyncAuthResource"]
|
19
|
-
|
20
|
-
|
21
|
-
class AuthResource(SyncAPIResource):
|
22
|
-
@cached_property
|
23
|
-
def with_raw_response(self) -> AuthResourceWithRawResponse:
|
24
|
-
"""
|
25
|
-
This property can be used as a prefix for any HTTP method call to return
|
26
|
-
the raw response object instead of the parsed content.
|
27
|
-
|
28
|
-
For more information, see https://www.github.com/GoStudyFetchGo/studyfetch-sdk-python#accessing-raw-response-data-eg-headers
|
29
|
-
"""
|
30
|
-
return AuthResourceWithRawResponse(self)
|
31
|
-
|
32
|
-
@cached_property
|
33
|
-
def with_streaming_response(self) -> AuthResourceWithStreamingResponse:
|
34
|
-
"""
|
35
|
-
An alternative to `.with_raw_response` that doesn't eagerly read the response body.
|
36
|
-
|
37
|
-
For more information, see https://www.github.com/GoStudyFetchGo/studyfetch-sdk-python#with_streaming_response
|
38
|
-
"""
|
39
|
-
return AuthResourceWithStreamingResponse(self)
|
40
|
-
|
41
|
-
def verify_reset_token(
|
42
|
-
self,
|
43
|
-
*,
|
44
|
-
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
45
|
-
# The extra values given here take precedence over values defined on the client or passed to this method.
|
46
|
-
extra_headers: Headers | None = None,
|
47
|
-
extra_query: Query | None = None,
|
48
|
-
extra_body: Body | None = None,
|
49
|
-
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
50
|
-
) -> None:
|
51
|
-
"""Verify password reset token"""
|
52
|
-
extra_headers = {"Accept": "*/*", **(extra_headers or {})}
|
53
|
-
return self._post(
|
54
|
-
"/api/v1/auth/verify-reset-token",
|
55
|
-
options=make_request_options(
|
56
|
-
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
57
|
-
),
|
58
|
-
cast_to=NoneType,
|
59
|
-
)
|
60
|
-
|
61
|
-
|
62
|
-
class AsyncAuthResource(AsyncAPIResource):
|
63
|
-
@cached_property
|
64
|
-
def with_raw_response(self) -> AsyncAuthResourceWithRawResponse:
|
65
|
-
"""
|
66
|
-
This property can be used as a prefix for any HTTP method call to return
|
67
|
-
the raw response object instead of the parsed content.
|
68
|
-
|
69
|
-
For more information, see https://www.github.com/GoStudyFetchGo/studyfetch-sdk-python#accessing-raw-response-data-eg-headers
|
70
|
-
"""
|
71
|
-
return AsyncAuthResourceWithRawResponse(self)
|
72
|
-
|
73
|
-
@cached_property
|
74
|
-
def with_streaming_response(self) -> AsyncAuthResourceWithStreamingResponse:
|
75
|
-
"""
|
76
|
-
An alternative to `.with_raw_response` that doesn't eagerly read the response body.
|
77
|
-
|
78
|
-
For more information, see https://www.github.com/GoStudyFetchGo/studyfetch-sdk-python#with_streaming_response
|
79
|
-
"""
|
80
|
-
return AsyncAuthResourceWithStreamingResponse(self)
|
81
|
-
|
82
|
-
async def verify_reset_token(
|
83
|
-
self,
|
84
|
-
*,
|
85
|
-
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
86
|
-
# The extra values given here take precedence over values defined on the client or passed to this method.
|
87
|
-
extra_headers: Headers | None = None,
|
88
|
-
extra_query: Query | None = None,
|
89
|
-
extra_body: Body | None = None,
|
90
|
-
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
91
|
-
) -> None:
|
92
|
-
"""Verify password reset token"""
|
93
|
-
extra_headers = {"Accept": "*/*", **(extra_headers or {})}
|
94
|
-
return await self._post(
|
95
|
-
"/api/v1/auth/verify-reset-token",
|
96
|
-
options=make_request_options(
|
97
|
-
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
98
|
-
),
|
99
|
-
cast_to=NoneType,
|
100
|
-
)
|
101
|
-
|
102
|
-
|
103
|
-
class AuthResourceWithRawResponse:
|
104
|
-
def __init__(self, auth: AuthResource) -> None:
|
105
|
-
self._auth = auth
|
106
|
-
|
107
|
-
self.verify_reset_token = to_raw_response_wrapper(
|
108
|
-
auth.verify_reset_token,
|
109
|
-
)
|
110
|
-
|
111
|
-
|
112
|
-
class AsyncAuthResourceWithRawResponse:
|
113
|
-
def __init__(self, auth: AsyncAuthResource) -> None:
|
114
|
-
self._auth = auth
|
115
|
-
|
116
|
-
self.verify_reset_token = async_to_raw_response_wrapper(
|
117
|
-
auth.verify_reset_token,
|
118
|
-
)
|
119
|
-
|
120
|
-
|
121
|
-
class AuthResourceWithStreamingResponse:
|
122
|
-
def __init__(self, auth: AuthResource) -> None:
|
123
|
-
self._auth = auth
|
124
|
-
|
125
|
-
self.verify_reset_token = to_streamed_response_wrapper(
|
126
|
-
auth.verify_reset_token,
|
127
|
-
)
|
128
|
-
|
129
|
-
|
130
|
-
class AsyncAuthResourceWithStreamingResponse:
|
131
|
-
def __init__(self, auth: AsyncAuthResource) -> None:
|
132
|
-
self._auth = auth
|
133
|
-
|
134
|
-
self.verify_reset_token = async_to_streamed_response_wrapper(
|
135
|
-
auth.verify_reset_token,
|
136
|
-
)
|