studyfetch-sdk 0.1.0a6__tar.gz → 0.1.0a7__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.0a7/.release-please-manifest.json +3 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/CHANGELOG.md +8 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/PKG-INFO +11 -27
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/README.md +10 -26
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/api.md +0 -6
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/pyproject.toml +1 -1
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/src/studyfetch_sdk/_version.py +1 -1
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/src/studyfetch_sdk/resources/v1/auth/__init__.py +0 -14
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/src/studyfetch_sdk/resources/v1/auth/auth.py +0 -32
- studyfetch_sdk-0.1.0a7/src/studyfetch_sdk/types/v1/upload/__init__.py +3 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/tests/test_client.py +27 -29
- studyfetch_sdk-0.1.0a6/.release-please-manifest.json +0 -3
- 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 → studyfetch_sdk-0.1.0a7}/.gitignore +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/CONTRIBUTING.md +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/LICENSE +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/SECURITY.md +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/bin/check-release-environment +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/bin/publish-pypi +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/examples/.keep +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/mypy.ini +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/noxfile.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/release-please-config.json +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/requirements-dev.lock +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/requirements.lock +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/src/studyfetch_sdk/__init__.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/src/studyfetch_sdk/_base_client.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/src/studyfetch_sdk/_client.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/src/studyfetch_sdk/_compat.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/src/studyfetch_sdk/_constants.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/src/studyfetch_sdk/_exceptions.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/src/studyfetch_sdk/_files.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/src/studyfetch_sdk/_models.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/src/studyfetch_sdk/_qs.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/src/studyfetch_sdk/_resource.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/src/studyfetch_sdk/_response.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/src/studyfetch_sdk/_streaming.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/src/studyfetch_sdk/_types.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/src/studyfetch_sdk/_utils/__init__.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/src/studyfetch_sdk/_utils/_logs.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/src/studyfetch_sdk/_utils/_proxy.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/src/studyfetch_sdk/_utils/_reflection.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/src/studyfetch_sdk/_utils/_resources_proxy.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/src/studyfetch_sdk/_utils/_streams.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/src/studyfetch_sdk/_utils/_sync.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/src/studyfetch_sdk/_utils/_transform.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/src/studyfetch_sdk/_utils/_typing.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/src/studyfetch_sdk/_utils/_utils.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/src/studyfetch_sdk/lib/.keep +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/src/studyfetch_sdk/py.typed +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/src/studyfetch_sdk/resources/__init__.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/src/studyfetch_sdk/resources/v1/__init__.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/src/studyfetch_sdk/resources/v1/audio_recaps/__init__.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/src/studyfetch_sdk/resources/v1/audio_recaps/audio_recaps.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/src/studyfetch_sdk/resources/v1/audio_recaps/sections.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/src/studyfetch_sdk/resources/v1/chat/__init__.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/src/studyfetch_sdk/resources/v1/chat/chat.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/src/studyfetch_sdk/resources/v1/chat/sessions.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/src/studyfetch_sdk/resources/v1/chat/test.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/src/studyfetch_sdk/resources/v1/components.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/src/studyfetch_sdk/resources/v1/embed/__init__.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/src/studyfetch_sdk/resources/v1/embed/component.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/src/studyfetch_sdk/resources/v1/embed/embed.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/src/studyfetch_sdk/resources/v1/explainers.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/src/studyfetch_sdk/resources/v1/flashcards.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/src/studyfetch_sdk/resources/v1/folders.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/src/studyfetch_sdk/resources/v1/materials/__init__.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/src/studyfetch_sdk/resources/v1/materials/bulk.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/src/studyfetch_sdk/resources/v1/materials/materials.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/src/studyfetch_sdk/resources/v1/materials/test.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/src/studyfetch_sdk/resources/v1/materials/upload.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/src/studyfetch_sdk/resources/v1/scenarios/__init__.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/src/studyfetch_sdk/resources/v1/scenarios/component.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/src/studyfetch_sdk/resources/v1/scenarios/scenarios.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/src/studyfetch_sdk/resources/v1/scenarios/sessions.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/src/studyfetch_sdk/resources/v1/scenarios/submissions/__init__.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/src/studyfetch_sdk/resources/v1/scenarios/submissions/submissions.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/src/studyfetch_sdk/resources/v1/scenarios/submissions/user.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/src/studyfetch_sdk/resources/v1/tests/__init__.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/src/studyfetch_sdk/resources/v1/tests/component.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/src/studyfetch_sdk/resources/v1/tests/tests.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/src/studyfetch_sdk/resources/v1/upload/__init__.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/src/studyfetch_sdk/resources/v1/upload/component.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/src/studyfetch_sdk/resources/v1/upload/upload.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/src/studyfetch_sdk/resources/v1/usage.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/src/studyfetch_sdk/resources/v1/v1.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/src/studyfetch_sdk/types/__init__.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/src/studyfetch_sdk/types/v1/__init__.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/src/studyfetch_sdk/types/v1/audio_recaps/__init__.py +0 -0
- {studyfetch_sdk-0.1.0a6/src/studyfetch_sdk/types/v1/scenarios/submissions → studyfetch_sdk-0.1.0a7/src/studyfetch_sdk/types/v1/auth}/__init__.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/src/studyfetch_sdk/types/v1/chat/__init__.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/src/studyfetch_sdk/types/v1/chat/session_retrieve_params.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/src/studyfetch_sdk/types/v1/chat_get_session_params.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/src/studyfetch_sdk/types/v1/chat_send_message_params.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/src/studyfetch_sdk/types/v1/chat_stream_params.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/src/studyfetch_sdk/types/v1/component.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/src/studyfetch_sdk/types/v1/component_create_params.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/src/studyfetch_sdk/types/v1/component_generate_embed_params.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/src/studyfetch_sdk/types/v1/component_generate_embed_response.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/src/studyfetch_sdk/types/v1/component_list_params.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/src/studyfetch_sdk/types/v1/component_list_response.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/src/studyfetch_sdk/types/v1/component_update_params.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/src/studyfetch_sdk/types/v1/embed/__init__.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/src/studyfetch_sdk/types/v1/embed/component_interact_params.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/src/studyfetch_sdk/types/v1/embed/component_retrieve_params.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/src/studyfetch_sdk/types/v1/embed_get_theme_params.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/src/studyfetch_sdk/types/v1/embed_verify_params.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/src/studyfetch_sdk/types/v1/explainer_create_params.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/src/studyfetch_sdk/types/v1/explainer_handle_webhook_params.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/src/studyfetch_sdk/types/v1/flashcard_batch_process_params.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/src/studyfetch_sdk/types/v1/flashcard_batch_process_response.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/src/studyfetch_sdk/types/v1/flashcard_get_algorithm_response.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/src/studyfetch_sdk/types/v1/flashcard_get_all_params.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/src/studyfetch_sdk/types/v1/flashcard_get_due_params.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/src/studyfetch_sdk/types/v1/flashcard_get_stats_params.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/src/studyfetch_sdk/types/v1/flashcard_get_types_response.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/src/studyfetch_sdk/types/v1/flashcard_rate_params.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/src/studyfetch_sdk/types/v1/folder_create_params.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/src/studyfetch_sdk/types/v1/folder_list_params.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/src/studyfetch_sdk/types/v1/folder_update_params.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/src/studyfetch_sdk/types/v1/material.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/src/studyfetch_sdk/types/v1/material_create_params.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/src/studyfetch_sdk/types/v1/material_get_download_url_params.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/src/studyfetch_sdk/types/v1/material_list_params.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/src/studyfetch_sdk/types/v1/material_list_response.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/src/studyfetch_sdk/types/v1/materials/__init__.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/src/studyfetch_sdk/types/v1/materials/upload_upload_file_params.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/src/studyfetch_sdk/types/v1/materials/upload_upload_from_url_params.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/src/studyfetch_sdk/types/v1/scenario_create_params.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/src/studyfetch_sdk/types/v1/scenario_submit_answer_params.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/src/studyfetch_sdk/types/v1/scenario_update_params.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/src/studyfetch_sdk/types/v1/scenarios/__init__.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/src/studyfetch_sdk/types/v1/scenarios/component_update_params.py +0 -0
- {studyfetch_sdk-0.1.0a6/src/studyfetch_sdk/types/v1/tests → studyfetch_sdk-0.1.0a7/src/studyfetch_sdk/types/v1/scenarios/submissions}/__init__.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/src/studyfetch_sdk/types/v1/test_create_params.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/src/studyfetch_sdk/types/v1/test_retake_params.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/src/studyfetch_sdk/types/v1/test_submit_answer_params.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/src/studyfetch_sdk/types/v1/test_submit_params.py +0 -0
- {studyfetch_sdk-0.1.0a6/src/studyfetch_sdk/types/v1/upload → studyfetch_sdk-0.1.0a7/src/studyfetch_sdk/types/v1/tests}/__init__.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/src/studyfetch_sdk/types/v1/usage_get_stats_params.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/src/studyfetch_sdk/types/v1/usage_get_summary_params.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/src/studyfetch_sdk/types/v1/usage_list_events_params.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/tests/__init__.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/tests/api_resources/__init__.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/tests/api_resources/v1/__init__.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/tests/api_resources/v1/audio_recaps/__init__.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/tests/api_resources/v1/audio_recaps/test_sections.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/tests/api_resources/v1/auth/__init__.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/tests/api_resources/v1/chat/__init__.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/tests/api_resources/v1/chat/test_sessions.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/tests/api_resources/v1/chat/test_test.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/tests/api_resources/v1/embed/__init__.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/tests/api_resources/v1/embed/test_component.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/tests/api_resources/v1/materials/__init__.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/tests/api_resources/v1/materials/test_bulk.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/tests/api_resources/v1/materials/test_test.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/tests/api_resources/v1/materials/test_upload.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/tests/api_resources/v1/scenarios/__init__.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/tests/api_resources/v1/scenarios/submissions/__init__.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/tests/api_resources/v1/scenarios/submissions/test_user.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/tests/api_resources/v1/scenarios/test_component.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/tests/api_resources/v1/scenarios/test_sessions.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/tests/api_resources/v1/test_audio_recaps.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/tests/api_resources/v1/test_auth.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/tests/api_resources/v1/test_chat.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/tests/api_resources/v1/test_components.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/tests/api_resources/v1/test_embed.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/tests/api_resources/v1/test_explainers.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/tests/api_resources/v1/test_flashcards.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/tests/api_resources/v1/test_folders.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/tests/api_resources/v1/test_materials.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/tests/api_resources/v1/test_scenarios.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/tests/api_resources/v1/test_tests.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/tests/api_resources/v1/test_usage.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/tests/api_resources/v1/tests/__init__.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/tests/api_resources/v1/tests/test_component.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/tests/api_resources/v1/upload/__init__.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/tests/api_resources/v1/upload/test_component.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/tests/conftest.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/tests/sample_file.txt +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/tests/test_deepcopy.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/tests/test_extract_files.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/tests/test_files.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/tests/test_models.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/tests/test_qs.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/tests/test_required_args.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/tests/test_response.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/tests/test_streaming.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/tests/test_transform.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/tests/test_utils/test_proxy.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/tests/test_utils/test_typing.py +0 -0
- {studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/tests/utils.py +0 -0
@@ -1,5 +1,13 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
## 0.1.0-alpha.7 (2025-07-20)
|
4
|
+
|
5
|
+
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)
|
6
|
+
|
7
|
+
### Features
|
8
|
+
|
9
|
+
* **api:** api update ([013ffcb](https://github.com/GoStudyFetchGo/studyfetch-sdk-python/commit/013ffcb9a7d57de0a24a3807fe8b291365c7d3ae))
|
10
|
+
|
3
11
|
## 0.1.0-alpha.6 (2025-07-20)
|
4
12
|
|
5
13
|
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.0a7
|
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.auth.
|
71
|
-
email="user@example.com",
|
72
|
-
)
|
70
|
+
client.v1.auth.verify_reset_token()
|
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.auth.
|
96
|
-
email="user@example.com",
|
97
|
-
)
|
93
|
+
await client.v1.auth.verify_reset_token()
|
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.auth.
|
130
|
-
email="user@example.com",
|
131
|
-
)
|
125
|
+
await client.v1.auth.verify_reset_token()
|
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.auth.
|
197
|
-
email="user@example.com",
|
198
|
-
)
|
190
|
+
client.v1.auth.verify_reset_token()
|
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.auth.
|
242
|
-
email="user@example.com",
|
243
|
-
)
|
233
|
+
client.with_options(max_retries=5).v1.auth.verify_reset_token()
|
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.auth.
|
267
|
-
email="user@example.com",
|
268
|
-
)
|
256
|
+
client.with_options(timeout=5.0).v1.auth.verify_reset_token()
|
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.auth.
|
310
|
-
email="user@example.com",
|
311
|
-
)
|
297
|
+
response = client.v1.auth.with_raw_response.verify_reset_token()
|
312
298
|
print(response.headers.get('X-My-Header'))
|
313
299
|
|
314
|
-
|
315
|
-
print(
|
300
|
+
auth = response.parse() # get the object that `v1.auth.verify_reset_token()` would have returned
|
301
|
+
print(auth)
|
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.auth.
|
330
|
-
email="user@example.com",
|
331
|
-
) as response:
|
315
|
+
with client.v1.auth.with_streaming_response.verify_reset_token() 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.auth.
|
36
|
-
email="user@example.com",
|
37
|
-
)
|
35
|
+
client.v1.auth.verify_reset_token()
|
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.auth.
|
61
|
-
email="user@example.com",
|
62
|
-
)
|
58
|
+
await client.v1.auth.verify_reset_token()
|
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.auth.
|
95
|
-
email="user@example.com",
|
96
|
-
)
|
90
|
+
await client.v1.auth.verify_reset_token()
|
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.auth.
|
162
|
-
email="user@example.com",
|
163
|
-
)
|
155
|
+
client.v1.auth.verify_reset_token()
|
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.auth.
|
207
|
-
email="user@example.com",
|
208
|
-
)
|
198
|
+
client.with_options(max_retries=5).v1.auth.verify_reset_token()
|
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.auth.
|
232
|
-
email="user@example.com",
|
233
|
-
)
|
221
|
+
client.with_options(timeout=5.0).v1.auth.verify_reset_token()
|
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.auth.
|
275
|
-
email="user@example.com",
|
276
|
-
)
|
262
|
+
response = client.v1.auth.with_raw_response.verify_reset_token()
|
277
263
|
print(response.headers.get('X-My-Header'))
|
278
264
|
|
279
|
-
|
280
|
-
print(
|
265
|
+
auth = response.parse() # get the object that `v1.auth.verify_reset_token()` would have returned
|
266
|
+
print(auth)
|
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.auth.
|
295
|
-
email="user@example.com",
|
296
|
-
) as response:
|
280
|
+
with client.v1.auth.with_streaming_response.verify_reset_token() as response:
|
297
281
|
print(response.headers.get("X-My-Header"))
|
298
282
|
|
299
283
|
for line in response.iter_lines():
|
@@ -6,12 +6,6 @@ Methods:
|
|
6
6
|
|
7
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
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
9
|
## Materials
|
16
10
|
|
17
11
|
Types:
|
{studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/src/studyfetch_sdk/resources/v1/auth/__init__.py
RENAMED
@@ -8,22 +8,8 @@ from .auth import (
|
|
8
8
|
AuthResourceWithStreamingResponse,
|
9
9
|
AsyncAuthResourceWithStreamingResponse,
|
10
10
|
)
|
11
|
-
from .number_2fa import (
|
12
|
-
Number2faResource,
|
13
|
-
AsyncNumber2faResource,
|
14
|
-
Number2faResourceWithRawResponse,
|
15
|
-
AsyncNumber2faResourceWithRawResponse,
|
16
|
-
Number2faResourceWithStreamingResponse,
|
17
|
-
AsyncNumber2faResourceWithStreamingResponse,
|
18
|
-
)
|
19
11
|
|
20
12
|
__all__ = [
|
21
|
-
"Number2faResource",
|
22
|
-
"AsyncNumber2faResource",
|
23
|
-
"Number2faResourceWithRawResponse",
|
24
|
-
"AsyncNumber2faResourceWithRawResponse",
|
25
|
-
"Number2faResourceWithStreamingResponse",
|
26
|
-
"AsyncNumber2faResourceWithStreamingResponse",
|
27
13
|
"AuthResource",
|
28
14
|
"AsyncAuthResource",
|
29
15
|
"AuthResourceWithRawResponse",
|
{studyfetch_sdk-0.1.0a6 → studyfetch_sdk-0.1.0a7}/src/studyfetch_sdk/resources/v1/auth/auth.py
RENAMED
@@ -6,14 +6,6 @@ import httpx
|
|
6
6
|
|
7
7
|
from ...._types import NOT_GIVEN, Body, Query, Headers, NoneType, NotGiven
|
8
8
|
from ...._compat import cached_property
|
9
|
-
from .number_2fa import (
|
10
|
-
Number2faResource,
|
11
|
-
AsyncNumber2faResource,
|
12
|
-
Number2faResourceWithRawResponse,
|
13
|
-
AsyncNumber2faResourceWithRawResponse,
|
14
|
-
Number2faResourceWithStreamingResponse,
|
15
|
-
AsyncNumber2faResourceWithStreamingResponse,
|
16
|
-
)
|
17
9
|
from ...._resource import SyncAPIResource, AsyncAPIResource
|
18
10
|
from ...._response import (
|
19
11
|
to_raw_response_wrapper,
|
@@ -27,10 +19,6 @@ __all__ = ["AuthResource", "AsyncAuthResource"]
|
|
27
19
|
|
28
20
|
|
29
21
|
class AuthResource(SyncAPIResource):
|
30
|
-
@cached_property
|
31
|
-
def number_2fa(self) -> Number2faResource:
|
32
|
-
return Number2faResource(self._client)
|
33
|
-
|
34
22
|
@cached_property
|
35
23
|
def with_raw_response(self) -> AuthResourceWithRawResponse:
|
36
24
|
"""
|
@@ -72,10 +60,6 @@ class AuthResource(SyncAPIResource):
|
|
72
60
|
|
73
61
|
|
74
62
|
class AsyncAuthResource(AsyncAPIResource):
|
75
|
-
@cached_property
|
76
|
-
def number_2fa(self) -> AsyncNumber2faResource:
|
77
|
-
return AsyncNumber2faResource(self._client)
|
78
|
-
|
79
63
|
@cached_property
|
80
64
|
def with_raw_response(self) -> AsyncAuthResourceWithRawResponse:
|
81
65
|
"""
|
@@ -124,10 +108,6 @@ class AuthResourceWithRawResponse:
|
|
124
108
|
auth.verify_reset_token,
|
125
109
|
)
|
126
110
|
|
127
|
-
@cached_property
|
128
|
-
def number_2fa(self) -> Number2faResourceWithRawResponse:
|
129
|
-
return Number2faResourceWithRawResponse(self._auth.number_2fa)
|
130
|
-
|
131
111
|
|
132
112
|
class AsyncAuthResourceWithRawResponse:
|
133
113
|
def __init__(self, auth: AsyncAuthResource) -> None:
|
@@ -137,10 +117,6 @@ class AsyncAuthResourceWithRawResponse:
|
|
137
117
|
auth.verify_reset_token,
|
138
118
|
)
|
139
119
|
|
140
|
-
@cached_property
|
141
|
-
def number_2fa(self) -> AsyncNumber2faResourceWithRawResponse:
|
142
|
-
return AsyncNumber2faResourceWithRawResponse(self._auth.number_2fa)
|
143
|
-
|
144
120
|
|
145
121
|
class AuthResourceWithStreamingResponse:
|
146
122
|
def __init__(self, auth: AuthResource) -> None:
|
@@ -150,10 +126,6 @@ class AuthResourceWithStreamingResponse:
|
|
150
126
|
auth.verify_reset_token,
|
151
127
|
)
|
152
128
|
|
153
|
-
@cached_property
|
154
|
-
def number_2fa(self) -> Number2faResourceWithStreamingResponse:
|
155
|
-
return Number2faResourceWithStreamingResponse(self._auth.number_2fa)
|
156
|
-
|
157
129
|
|
158
130
|
class AsyncAuthResourceWithStreamingResponse:
|
159
131
|
def __init__(self, auth: AsyncAuthResource) -> None:
|
@@ -162,7 +134,3 @@ class AsyncAuthResourceWithStreamingResponse:
|
|
162
134
|
self.verify_reset_token = async_to_streamed_response_wrapper(
|
163
135
|
auth.verify_reset_token,
|
164
136
|
)
|
165
|
-
|
166
|
-
@cached_property
|
167
|
-
def number_2fa(self) -> AsyncNumber2faResourceWithStreamingResponse:
|
168
|
-
return AsyncNumber2faResourceWithStreamingResponse(self._auth.number_2fa)
|
@@ -724,20 +724,22 @@ 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.post("/api/v1/auth/
|
727
|
+
respx_mock.post("/api/v1/auth/verify-reset-token").mock(
|
728
|
+
side_effect=httpx.TimeoutException("Test timeout error")
|
729
|
+
)
|
728
730
|
|
729
731
|
with pytest.raises(APITimeoutError):
|
730
|
-
client.v1.auth.
|
732
|
+
client.v1.auth.with_streaming_response.verify_reset_token().__enter__()
|
731
733
|
|
732
734
|
assert _get_open_connections(self.client) == 0
|
733
735
|
|
734
736
|
@mock.patch("studyfetch_sdk._base_client.BaseClient._calculate_retry_timeout", _low_retry_timeout)
|
735
737
|
@pytest.mark.respx(base_url=base_url)
|
736
738
|
def test_retrying_status_errors_doesnt_leak(self, respx_mock: MockRouter, client: StudyfetchSDK) -> None:
|
737
|
-
respx_mock.post("/api/v1/auth/
|
739
|
+
respx_mock.post("/api/v1/auth/verify-reset-token").mock(return_value=httpx.Response(500))
|
738
740
|
|
739
741
|
with pytest.raises(APIStatusError):
|
740
|
-
client.v1.auth.
|
742
|
+
client.v1.auth.with_streaming_response.verify_reset_token().__enter__()
|
741
743
|
assert _get_open_connections(self.client) == 0
|
742
744
|
|
743
745
|
@pytest.mark.parametrize("failures_before_success", [0, 2, 4])
|
@@ -764,9 +766,9 @@ class TestStudyfetchSDK:
|
|
764
766
|
return httpx.Response(500)
|
765
767
|
return httpx.Response(200)
|
766
768
|
|
767
|
-
respx_mock.post("/api/v1/auth/
|
769
|
+
respx_mock.post("/api/v1/auth/verify-reset-token").mock(side_effect=retry_handler)
|
768
770
|
|
769
|
-
response = client.v1.auth.
|
771
|
+
response = client.v1.auth.with_raw_response.verify_reset_token()
|
770
772
|
|
771
773
|
assert response.retries_taken == failures_before_success
|
772
774
|
assert int(response.http_request.headers.get("x-stainless-retry-count")) == failures_before_success
|
@@ -788,10 +790,10 @@ class TestStudyfetchSDK:
|
|
788
790
|
return httpx.Response(500)
|
789
791
|
return httpx.Response(200)
|
790
792
|
|
791
|
-
respx_mock.post("/api/v1/auth/
|
793
|
+
respx_mock.post("/api/v1/auth/verify-reset-token").mock(side_effect=retry_handler)
|
792
794
|
|
793
|
-
response = client.v1.auth.
|
794
|
-
|
795
|
+
response = client.v1.auth.with_raw_response.verify_reset_token(
|
796
|
+
extra_headers={"x-stainless-retry-count": Omit()}
|
795
797
|
)
|
796
798
|
|
797
799
|
assert len(response.http_request.headers.get_list("x-stainless-retry-count")) == 0
|
@@ -813,11 +815,9 @@ class TestStudyfetchSDK:
|
|
813
815
|
return httpx.Response(500)
|
814
816
|
return httpx.Response(200)
|
815
817
|
|
816
|
-
respx_mock.post("/api/v1/auth/
|
818
|
+
respx_mock.post("/api/v1/auth/verify-reset-token").mock(side_effect=retry_handler)
|
817
819
|
|
818
|
-
response = client.v1.auth.
|
819
|
-
email="user@example.com", extra_headers={"x-stainless-retry-count": "42"}
|
820
|
-
)
|
820
|
+
response = client.v1.auth.with_raw_response.verify_reset_token(extra_headers={"x-stainless-retry-count": "42"})
|
821
821
|
|
822
822
|
assert response.http_request.headers.get("x-stainless-retry-count") == "42"
|
823
823
|
|
@@ -1545,12 +1545,12 @@ class TestAsyncStudyfetchSDK:
|
|
1545
1545
|
async def test_retrying_timeout_errors_doesnt_leak(
|
1546
1546
|
self, respx_mock: MockRouter, async_client: AsyncStudyfetchSDK
|
1547
1547
|
) -> None:
|
1548
|
-
respx_mock.post("/api/v1/auth/
|
1548
|
+
respx_mock.post("/api/v1/auth/verify-reset-token").mock(
|
1549
|
+
side_effect=httpx.TimeoutException("Test timeout error")
|
1550
|
+
)
|
1549
1551
|
|
1550
1552
|
with pytest.raises(APITimeoutError):
|
1551
|
-
await async_client.v1.auth.
|
1552
|
-
email="user@example.com"
|
1553
|
-
).__aenter__()
|
1553
|
+
await async_client.v1.auth.with_streaming_response.verify_reset_token().__aenter__()
|
1554
1554
|
|
1555
1555
|
assert _get_open_connections(self.client) == 0
|
1556
1556
|
|
@@ -1559,12 +1559,10 @@ class TestAsyncStudyfetchSDK:
|
|
1559
1559
|
async def test_retrying_status_errors_doesnt_leak(
|
1560
1560
|
self, respx_mock: MockRouter, async_client: AsyncStudyfetchSDK
|
1561
1561
|
) -> None:
|
1562
|
-
respx_mock.post("/api/v1/auth/
|
1562
|
+
respx_mock.post("/api/v1/auth/verify-reset-token").mock(return_value=httpx.Response(500))
|
1563
1563
|
|
1564
1564
|
with pytest.raises(APIStatusError):
|
1565
|
-
await async_client.v1.auth.
|
1566
|
-
email="user@example.com"
|
1567
|
-
).__aenter__()
|
1565
|
+
await async_client.v1.auth.with_streaming_response.verify_reset_token().__aenter__()
|
1568
1566
|
assert _get_open_connections(self.client) == 0
|
1569
1567
|
|
1570
1568
|
@pytest.mark.parametrize("failures_before_success", [0, 2, 4])
|
@@ -1592,9 +1590,9 @@ class TestAsyncStudyfetchSDK:
|
|
1592
1590
|
return httpx.Response(500)
|
1593
1591
|
return httpx.Response(200)
|
1594
1592
|
|
1595
|
-
respx_mock.post("/api/v1/auth/
|
1593
|
+
respx_mock.post("/api/v1/auth/verify-reset-token").mock(side_effect=retry_handler)
|
1596
1594
|
|
1597
|
-
response = await client.v1.auth.
|
1595
|
+
response = await client.v1.auth.with_raw_response.verify_reset_token()
|
1598
1596
|
|
1599
1597
|
assert response.retries_taken == failures_before_success
|
1600
1598
|
assert int(response.http_request.headers.get("x-stainless-retry-count")) == failures_before_success
|
@@ -1617,10 +1615,10 @@ class TestAsyncStudyfetchSDK:
|
|
1617
1615
|
return httpx.Response(500)
|
1618
1616
|
return httpx.Response(200)
|
1619
1617
|
|
1620
|
-
respx_mock.post("/api/v1/auth/
|
1618
|
+
respx_mock.post("/api/v1/auth/verify-reset-token").mock(side_effect=retry_handler)
|
1621
1619
|
|
1622
|
-
response = await client.v1.auth.
|
1623
|
-
|
1620
|
+
response = await client.v1.auth.with_raw_response.verify_reset_token(
|
1621
|
+
extra_headers={"x-stainless-retry-count": Omit()}
|
1624
1622
|
)
|
1625
1623
|
|
1626
1624
|
assert len(response.http_request.headers.get_list("x-stainless-retry-count")) == 0
|
@@ -1643,10 +1641,10 @@ class TestAsyncStudyfetchSDK:
|
|
1643
1641
|
return httpx.Response(500)
|
1644
1642
|
return httpx.Response(200)
|
1645
1643
|
|
1646
|
-
respx_mock.post("/api/v1/auth/
|
1644
|
+
respx_mock.post("/api/v1/auth/verify-reset-token").mock(side_effect=retry_handler)
|
1647
1645
|
|
1648
|
-
response = await client.v1.auth.
|
1649
|
-
|
1646
|
+
response = await client.v1.auth.with_raw_response.verify_reset_token(
|
1647
|
+
extra_headers={"x-stainless-retry-count": "42"}
|
1650
1648
|
)
|
1651
1649
|
|
1652
1650
|
assert response.http_request.headers.get("x-stainless-retry-count") == "42"
|
@@ -1,164 +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 ...._utils import maybe_transform, async_maybe_transform
|
9
|
-
from ...._compat import cached_property
|
10
|
-
from ...._resource import SyncAPIResource, AsyncAPIResource
|
11
|
-
from ...._response import (
|
12
|
-
to_raw_response_wrapper,
|
13
|
-
to_streamed_response_wrapper,
|
14
|
-
async_to_raw_response_wrapper,
|
15
|
-
async_to_streamed_response_wrapper,
|
16
|
-
)
|
17
|
-
from ...._base_client import make_request_options
|
18
|
-
from ....types.v1.auth import number_2fa_send_code_params
|
19
|
-
|
20
|
-
__all__ = ["Number2faResource", "AsyncNumber2faResource"]
|
21
|
-
|
22
|
-
|
23
|
-
class Number2faResource(SyncAPIResource):
|
24
|
-
@cached_property
|
25
|
-
def with_raw_response(self) -> Number2faResourceWithRawResponse:
|
26
|
-
"""
|
27
|
-
This property can be used as a prefix for any HTTP method call to return
|
28
|
-
the raw response object instead of the parsed content.
|
29
|
-
|
30
|
-
For more information, see https://www.github.com/GoStudyFetchGo/studyfetch-sdk-python#accessing-raw-response-data-eg-headers
|
31
|
-
"""
|
32
|
-
return Number2faResourceWithRawResponse(self)
|
33
|
-
|
34
|
-
@cached_property
|
35
|
-
def with_streaming_response(self) -> Number2faResourceWithStreamingResponse:
|
36
|
-
"""
|
37
|
-
An alternative to `.with_raw_response` that doesn't eagerly read the response body.
|
38
|
-
|
39
|
-
For more information, see https://www.github.com/GoStudyFetchGo/studyfetch-sdk-python#with_streaming_response
|
40
|
-
"""
|
41
|
-
return Number2faResourceWithStreamingResponse(self)
|
42
|
-
|
43
|
-
def send_code(
|
44
|
-
self,
|
45
|
-
*,
|
46
|
-
email: str,
|
47
|
-
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
48
|
-
# The extra values given here take precedence over values defined on the client or passed to this method.
|
49
|
-
extra_headers: Headers | None = None,
|
50
|
-
extra_query: Query | None = None,
|
51
|
-
extra_body: Body | None = None,
|
52
|
-
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
53
|
-
) -> None:
|
54
|
-
"""
|
55
|
-
Args:
|
56
|
-
email: Email to send verification code
|
57
|
-
|
58
|
-
extra_headers: Send extra headers
|
59
|
-
|
60
|
-
extra_query: Add additional query parameters to the request
|
61
|
-
|
62
|
-
extra_body: Add additional JSON properties to the request
|
63
|
-
|
64
|
-
timeout: Override the client-level default timeout for this request, in seconds
|
65
|
-
"""
|
66
|
-
extra_headers = {"Accept": "*/*", **(extra_headers or {})}
|
67
|
-
return self._post(
|
68
|
-
"/api/v1/auth/2fa/send-code",
|
69
|
-
body=maybe_transform({"email": email}, number_2fa_send_code_params.Number2faSendCodeParams),
|
70
|
-
options=make_request_options(
|
71
|
-
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
72
|
-
),
|
73
|
-
cast_to=NoneType,
|
74
|
-
)
|
75
|
-
|
76
|
-
|
77
|
-
class AsyncNumber2faResource(AsyncAPIResource):
|
78
|
-
@cached_property
|
79
|
-
def with_raw_response(self) -> AsyncNumber2faResourceWithRawResponse:
|
80
|
-
"""
|
81
|
-
This property can be used as a prefix for any HTTP method call to return
|
82
|
-
the raw response object instead of the parsed content.
|
83
|
-
|
84
|
-
For more information, see https://www.github.com/GoStudyFetchGo/studyfetch-sdk-python#accessing-raw-response-data-eg-headers
|
85
|
-
"""
|
86
|
-
return AsyncNumber2faResourceWithRawResponse(self)
|
87
|
-
|
88
|
-
@cached_property
|
89
|
-
def with_streaming_response(self) -> AsyncNumber2faResourceWithStreamingResponse:
|
90
|
-
"""
|
91
|
-
An alternative to `.with_raw_response` that doesn't eagerly read the response body.
|
92
|
-
|
93
|
-
For more information, see https://www.github.com/GoStudyFetchGo/studyfetch-sdk-python#with_streaming_response
|
94
|
-
"""
|
95
|
-
return AsyncNumber2faResourceWithStreamingResponse(self)
|
96
|
-
|
97
|
-
async def send_code(
|
98
|
-
self,
|
99
|
-
*,
|
100
|
-
email: str,
|
101
|
-
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
102
|
-
# The extra values given here take precedence over values defined on the client or passed to this method.
|
103
|
-
extra_headers: Headers | None = None,
|
104
|
-
extra_query: Query | None = None,
|
105
|
-
extra_body: Body | None = None,
|
106
|
-
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
107
|
-
) -> None:
|
108
|
-
"""
|
109
|
-
Args:
|
110
|
-
email: Email to send verification code
|
111
|
-
|
112
|
-
extra_headers: Send extra headers
|
113
|
-
|
114
|
-
extra_query: Add additional query parameters to the request
|
115
|
-
|
116
|
-
extra_body: Add additional JSON properties to the request
|
117
|
-
|
118
|
-
timeout: Override the client-level default timeout for this request, in seconds
|
119
|
-
"""
|
120
|
-
extra_headers = {"Accept": "*/*", **(extra_headers or {})}
|
121
|
-
return await self._post(
|
122
|
-
"/api/v1/auth/2fa/send-code",
|
123
|
-
body=await async_maybe_transform({"email": email}, number_2fa_send_code_params.Number2faSendCodeParams),
|
124
|
-
options=make_request_options(
|
125
|
-
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
126
|
-
),
|
127
|
-
cast_to=NoneType,
|
128
|
-
)
|
129
|
-
|
130
|
-
|
131
|
-
class Number2faResourceWithRawResponse:
|
132
|
-
def __init__(self, number_2fa: Number2faResource) -> None:
|
133
|
-
self._number_2fa = number_2fa
|
134
|
-
|
135
|
-
self.send_code = to_raw_response_wrapper(
|
136
|
-
number_2fa.send_code,
|
137
|
-
)
|
138
|
-
|
139
|
-
|
140
|
-
class AsyncNumber2faResourceWithRawResponse:
|
141
|
-
def __init__(self, number_2fa: AsyncNumber2faResource) -> None:
|
142
|
-
self._number_2fa = number_2fa
|
143
|
-
|
144
|
-
self.send_code = async_to_raw_response_wrapper(
|
145
|
-
number_2fa.send_code,
|
146
|
-
)
|
147
|
-
|
148
|
-
|
149
|
-
class Number2faResourceWithStreamingResponse:
|
150
|
-
def __init__(self, number_2fa: Number2faResource) -> None:
|
151
|
-
self._number_2fa = number_2fa
|
152
|
-
|
153
|
-
self.send_code = to_streamed_response_wrapper(
|
154
|
-
number_2fa.send_code,
|
155
|
-
)
|
156
|
-
|
157
|
-
|
158
|
-
class AsyncNumber2faResourceWithStreamingResponse:
|
159
|
-
def __init__(self, number_2fa: AsyncNumber2faResource) -> None:
|
160
|
-
self._number_2fa = number_2fa
|
161
|
-
|
162
|
-
self.send_code = async_to_streamed_response_wrapper(
|
163
|
-
number_2fa.send_code,
|
164
|
-
)
|