numind 0.0.2__tar.gz → 0.1.0__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.
- {numind-0.0.2 → numind-0.1.0}/PKG-INFO +28 -1
- {numind-0.0.2 → numind-0.1.0}/README.md +24 -0
- {numind-0.0.2 → numind-0.1.0}/docs/ExtractionApi.md +17 -8
- {numind-0.0.2 → numind-0.1.0}/docs/InferenceApi.md +86 -0
- numind-0.1.0/docs/ModelUsageResponse.md +31 -0
- {numind-0.0.2 → numind-0.1.0}/docs/ProjectManagementApi.md +5 -1
- {numind-0.0.2 → numind-0.1.0}/docs/ProjectSettingsResponse.md +2 -0
- {numind-0.0.2 → numind-0.1.0}/docs/UpdateProjectSettingsRequest.md +2 -0
- {numind-0.0.2 → numind-0.1.0}/pyproject.toml +5 -5
- numind-0.1.0/sdk_generation/adapt_openapi_client_init.py +150 -0
- {numind-0.0.2/src → numind-0.1.0/sdk_generation}/adapt_pyproject.py +1 -1
- {numind-0.0.2/src → numind-0.1.0/sdk_generation}/collate_documentation_readme.py +3 -2
- {numind-0.0.2 → numind-0.1.0/sdk_generation}/config.json +0 -2
- numind-0.1.0/sdk_generation/gen_sdk.sh +112 -0
- {numind-0.0.2/src → numind-0.1.0/sdk_generation}/pyproject_base.toml +2 -2
- {numind-0.0.2/src → numind-0.1.0/sdk_generation}/remove_unused_models_from_openapi_spec_file.py +3 -1
- {numind-0.0.2 → numind-0.1.0}/src/numind/__init__.py +2 -2
- numind-0.1.0/src/numind/numind.py +452 -0
- {numind-0.0.2 → numind-0.1.0}/src/numind/openapi_client/__init__.py +5 -0
- {numind-0.0.2 → numind-0.1.0}/src/numind/openapi_client/api/authentication_api.py +0 -1
- {numind-0.0.2 → numind-0.1.0}/src/numind/openapi_client/api/default_api.py +0 -1
- {numind-0.0.2 → numind-0.1.0}/src/numind/openapi_client/api/documents_api.py +0 -1
- {numind-0.0.2 → numind-0.1.0}/src/numind/openapi_client/api/examples_api.py +0 -1
- {numind-0.0.2 → numind-0.1.0}/src/numind/openapi_client/api/extraction_api.py +127 -4
- {numind-0.0.2 → numind-0.1.0}/src/numind/openapi_client/api/files_api.py +0 -1
- {numind-0.0.2 → numind-0.1.0}/src/numind/openapi_client/api/inference_api.py +254 -1
- {numind-0.0.2 → numind-0.1.0}/src/numind/openapi_client/api/jobs_api.py +0 -1
- {numind-0.0.2 → numind-0.1.0}/src/numind/openapi_client/api/organizations_api.py +0 -1
- {numind-0.0.2 → numind-0.1.0}/src/numind/openapi_client/api/playground_api.py +0 -1
- {numind-0.0.2 → numind-0.1.0}/src/numind/openapi_client/api/project_management_api.py +6 -7
- {numind-0.0.2 → numind-0.1.0}/src/numind/openapi_client/api_client.py +0 -1
- {numind-0.0.2 → numind-0.1.0}/src/numind/openapi_client/configuration.py +0 -1
- {numind-0.0.2 → numind-0.1.0}/src/numind/openapi_client/exceptions.py +0 -3
- {numind-0.0.2 → numind-0.1.0}/src/numind/openapi_client/models/__init__.py +2 -0
- {numind-0.0.2 → numind-0.1.0}/src/numind/openapi_client/models/api_key_response.py +0 -1
- {numind-0.0.2 → numind-0.1.0}/src/numind/openapi_client/models/convert_request.py +0 -1
- {numind-0.0.2 → numind-0.1.0}/src/numind/openapi_client/models/create_api_key.py +0 -1
- {numind-0.0.2 → numind-0.1.0}/src/numind/openapi_client/models/create_or_update_example_request.py +0 -1
- {numind-0.0.2 → numind-0.1.0}/src/numind/openapi_client/models/create_or_update_playground_item_request.py +0 -1
- {numind-0.0.2 → numind-0.1.0}/src/numind/openapi_client/models/create_organization_request.py +0 -1
- {numind-0.0.2 → numind-0.1.0}/src/numind/openapi_client/models/create_project_request.py +0 -1
- {numind-0.0.2 → numind-0.1.0}/src/numind/openapi_client/models/document_info.py +0 -1
- {numind-0.0.2 → numind-0.1.0}/src/numind/openapi_client/models/document_response.py +0 -1
- {numind-0.0.2 → numind-0.1.0}/src/numind/openapi_client/models/error.py +0 -1
- {numind-0.0.2 → numind-0.1.0}/src/numind/openapi_client/models/example_response.py +0 -1
- {numind-0.0.2 → numind-0.1.0}/src/numind/openapi_client/models/extraction_response.py +0 -1
- {numind-0.0.2 → numind-0.1.0}/src/numind/openapi_client/models/file_response.py +0 -1
- {numind-0.0.2 → numind-0.1.0}/src/numind/openapi_client/models/health_response.py +0 -1
- {numind-0.0.2 → numind-0.1.0}/src/numind/openapi_client/models/image_info.py +0 -1
- {numind-0.0.2 → numind-0.1.0}/src/numind/openapi_client/models/inference_response.py +0 -1
- {numind-0.0.2 → numind-0.1.0}/src/numind/openapi_client/models/information_response.py +0 -1
- {numind-0.0.2 → numind-0.1.0}/src/numind/openapi_client/models/invalid_information.py +0 -1
- {numind-0.0.2 → numind-0.1.0}/src/numind/openapi_client/models/invitation_response.py +0 -1
- {numind-0.0.2 → numind-0.1.0}/src/numind/openapi_client/models/invite_member_request.py +0 -1
- {numind-0.0.2 → numind-0.1.0}/src/numind/openapi_client/models/job_id_response.py +0 -1
- {numind-0.0.2 → numind-0.1.0}/src/numind/openapi_client/models/job_response.py +0 -1
- {numind-0.0.2 → numind-0.1.0}/src/numind/openapi_client/models/member_response.py +0 -1
- numind-0.1.0/src/numind/openapi_client/models/model_usage_response.py +89 -0
- {numind-0.0.2 → numind-0.1.0}/src/numind/openapi_client/models/organization_response.py +0 -1
- {numind-0.0.2 → numind-0.1.0}/src/numind/openapi_client/models/playground_item_response.py +0 -1
- {numind-0.0.2 → numind-0.1.0}/src/numind/openapi_client/models/project_response.py +0 -1
- {numind-0.0.2 → numind-0.1.0}/src/numind/openapi_client/models/project_settings_response.py +15 -2
- {numind-0.0.2 → numind-0.1.0}/src/numind/openapi_client/models/raw_result.py +0 -1
- {numind-0.0.2 → numind-0.1.0}/src/numind/openapi_client/models/service_status.py +0 -1
- {numind-0.0.2 → numind-0.1.0}/src/numind/openapi_client/models/template_request.py +0 -1
- {numind-0.0.2 → numind-0.1.0}/src/numind/openapi_client/models/text_info.py +0 -1
- {numind-0.0.2 → numind-0.1.0}/src/numind/openapi_client/models/text_request.py +0 -1
- {numind-0.0.2 → numind-0.1.0}/src/numind/openapi_client/models/token_code_request.py +0 -1
- {numind-0.0.2 → numind-0.1.0}/src/numind/openapi_client/models/token_refresh_request.py +0 -1
- {numind-0.0.2 → numind-0.1.0}/src/numind/openapi_client/models/token_request.py +0 -1
- {numind-0.0.2 → numind-0.1.0}/src/numind/openapi_client/models/token_response.py +0 -1
- {numind-0.0.2 → numind-0.1.0}/src/numind/openapi_client/models/update_api_key.py +0 -1
- {numind-0.0.2 → numind-0.1.0}/src/numind/openapi_client/models/update_organization_request.py +0 -1
- {numind-0.0.2 → numind-0.1.0}/src/numind/openapi_client/models/update_project_request.py +0 -1
- {numind-0.0.2 → numind-0.1.0}/src/numind/openapi_client/models/update_project_settings_request.py +17 -2
- {numind-0.0.2 → numind-0.1.0}/src/numind/openapi_client/models/update_project_template_request.py +0 -1
- {numind-0.0.2 → numind-0.1.0}/src/numind/openapi_client/models/user.py +0 -1
- {numind-0.0.2 → numind-0.1.0}/src/numind/openapi_client/models/valid_information.py +0 -1
- {numind-0.0.2 → numind-0.1.0}/src/numind/openapi_client/models/version_response.py +0 -1
- {numind-0.0.2 → numind-0.1.0}/src/numind/openapi_client/rest.py +0 -1
- numind-0.1.0/src/numind/openapi_client_async/__init__.py +340 -0
- numind-0.1.0/src/numind/openapi_client_async/api/__init__.py +42 -0
- numind-0.1.0/src/numind/openapi_client_async/api/authentication_api.py +1971 -0
- numind-0.1.0/src/numind/openapi_client_async/api/default_api.py +963 -0
- numind-0.1.0/src/numind/openapi_client_async/api/documents_api.py +812 -0
- numind-0.1.0/src/numind/openapi_client_async/api/examples_api.py +1390 -0
- numind-0.1.0/src/numind/openapi_client_async/api/extraction_api.py +947 -0
- numind-0.1.0/src/numind/openapi_client_async/api/files_api.py +1106 -0
- numind-0.1.0/src/numind/openapi_client_async/api/inference_api.py +2183 -0
- numind-0.1.0/src/numind/openapi_client_async/api/jobs_api.py +757 -0
- numind-0.1.0/src/numind/openapi_client_async/api/organizations_api.py +2351 -0
- numind-0.1.0/src/numind/openapi_client_async/api/playground_api.py +1398 -0
- numind-0.1.0/src/numind/openapi_client_async/api/project_management_api.py +3385 -0
- numind-0.1.0/src/numind/openapi_client_async/api_client.py +775 -0
- numind-0.1.0/src/numind/openapi_client_async/api_response.py +23 -0
- numind-0.1.0/src/numind/openapi_client_async/configuration.py +596 -0
- numind-0.1.0/src/numind/openapi_client_async/exceptions.py +218 -0
- numind-0.1.0/src/numind/openapi_client_async/models/__init__.py +156 -0
- numind-0.1.0/src/numind/openapi_client_async/models/api_key_response.py +105 -0
- numind-0.1.0/src/numind/openapi_client_async/models/convert_request.py +84 -0
- numind-0.1.0/src/numind/openapi_client_async/models/create_api_key.py +84 -0
- numind-0.1.0/src/numind/openapi_client_async/models/create_or_update_example_request.py +86 -0
- numind-0.1.0/src/numind/openapi_client_async/models/create_or_update_playground_item_request.py +120 -0
- numind-0.1.0/src/numind/openapi_client_async/models/create_organization_request.py +81 -0
- numind-0.1.0/src/numind/openapi_client_async/models/create_project_request.py +102 -0
- numind-0.1.0/src/numind/openapi_client_async/models/document_info.py +157 -0
- numind-0.1.0/src/numind/openapi_client_async/models/document_response.py +116 -0
- numind-0.1.0/src/numind/openapi_client_async/models/error.py +85 -0
- numind-0.1.0/src/numind/openapi_client_async/models/example_response.py +127 -0
- numind-0.1.0/src/numind/openapi_client_async/models/extraction_response.py +125 -0
- numind-0.1.0/src/numind/openapi_client_async/models/file_response.py +110 -0
- numind-0.1.0/src/numind/openapi_client_async/models/health_response.py +98 -0
- numind-0.1.0/src/numind/openapi_client_async/models/image_info.py +123 -0
- numind-0.1.0/src/numind/openapi_client_async/models/inference_response.py +137 -0
- numind-0.1.0/src/numind/openapi_client_async/models/information_response.py +163 -0
- numind-0.1.0/src/numind/openapi_client_async/models/invalid_information.py +100 -0
- numind-0.1.0/src/numind/openapi_client_async/models/invitation_response.py +87 -0
- numind-0.1.0/src/numind/openapi_client_async/models/invite_member_request.py +81 -0
- numind-0.1.0/src/numind/openapi_client_async/models/job_id_response.py +81 -0
- numind-0.1.0/src/numind/openapi_client_async/models/job_response.py +134 -0
- numind-0.1.0/src/numind/openapi_client_async/models/member_response.py +93 -0
- numind-0.1.0/src/numind/openapi_client_async/models/model_usage_response.py +89 -0
- numind-0.1.0/src/numind/openapi_client_async/models/organization_response.py +82 -0
- numind-0.1.0/src/numind/openapi_client_async/models/playground_item_response.py +150 -0
- numind-0.1.0/src/numind/openapi_client_async/models/project_response.py +140 -0
- numind-0.1.0/src/numind/openapi_client_async/models/project_settings_response.py +116 -0
- numind-0.1.0/src/numind/openapi_client_async/models/raw_result.py +88 -0
- numind-0.1.0/src/numind/openapi_client_async/models/service_status.py +89 -0
- numind-0.1.0/src/numind/openapi_client_async/models/template_request.py +81 -0
- numind-0.1.0/src/numind/openapi_client_async/models/text_info.py +122 -0
- numind-0.1.0/src/numind/openapi_client_async/models/text_request.py +81 -0
- numind-0.1.0/src/numind/openapi_client_async/models/token_code_request.py +98 -0
- numind-0.1.0/src/numind/openapi_client_async/models/token_refresh_request.py +91 -0
- numind-0.1.0/src/numind/openapi_client_async/models/token_request.py +163 -0
- numind-0.1.0/src/numind/openapi_client_async/models/token_response.py +98 -0
- numind-0.1.0/src/numind/openapi_client_async/models/update_api_key.py +81 -0
- numind-0.1.0/src/numind/openapi_client_async/models/update_organization_request.py +81 -0
- numind-0.1.0/src/numind/openapi_client_async/models/update_project_request.py +95 -0
- numind-0.1.0/src/numind/openapi_client_async/models/update_project_settings_request.py +122 -0
- numind-0.1.0/src/numind/openapi_client_async/models/update_project_template_request.py +83 -0
- numind-0.1.0/src/numind/openapi_client_async/models/user.py +105 -0
- numind-0.1.0/src/numind/openapi_client_async/models/valid_information.py +93 -0
- numind-0.1.0/src/numind/openapi_client_async/models/version_response.py +96 -0
- numind-0.1.0/src/numind/openapi_client_async/rest.py +193 -0
- {numind-0.0.2 → numind-0.1.0}/tests/conftest.py +11 -1
- numind-0.1.0/tests/openapi_client/__init__.py +0 -0
- {numind-0.0.2 → numind-0.1.0}/tests/openapi_client/test_api_key_response.py +0 -1
- {numind-0.0.2 → numind-0.1.0}/tests/openapi_client/test_authentication_api.py +0 -1
- {numind-0.0.2 → numind-0.1.0}/tests/openapi_client/test_convert_request.py +0 -1
- {numind-0.0.2 → numind-0.1.0}/tests/openapi_client/test_create_api_key.py +0 -1
- {numind-0.0.2 → numind-0.1.0}/tests/openapi_client/test_create_or_update_example_request.py +0 -1
- {numind-0.0.2 → numind-0.1.0}/tests/openapi_client/test_create_or_update_playground_item_request.py +0 -1
- {numind-0.0.2 → numind-0.1.0}/tests/openapi_client/test_create_organization_request.py +0 -1
- {numind-0.0.2 → numind-0.1.0}/tests/openapi_client/test_create_project_request.py +0 -1
- {numind-0.0.2 → numind-0.1.0}/tests/openapi_client/test_default_api.py +0 -1
- {numind-0.0.2 → numind-0.1.0}/tests/openapi_client/test_document_info.py +0 -1
- {numind-0.0.2 → numind-0.1.0}/tests/openapi_client/test_document_response.py +0 -1
- {numind-0.0.2 → numind-0.1.0}/tests/openapi_client/test_documents_api.py +0 -1
- {numind-0.0.2 → numind-0.1.0}/tests/openapi_client/test_error.py +0 -1
- {numind-0.0.2 → numind-0.1.0}/tests/openapi_client/test_example_response.py +0 -1
- {numind-0.0.2 → numind-0.1.0}/tests/openapi_client/test_examples_api.py +0 -1
- {numind-0.0.2 → numind-0.1.0}/tests/openapi_client/test_extraction_api.py +0 -1
- {numind-0.0.2 → numind-0.1.0}/tests/openapi_client/test_extraction_response.py +0 -1
- {numind-0.0.2 → numind-0.1.0}/tests/openapi_client/test_file_response.py +0 -1
- {numind-0.0.2 → numind-0.1.0}/tests/openapi_client/test_files_api.py +0 -1
- {numind-0.0.2 → numind-0.1.0}/tests/openapi_client/test_health_response.py +0 -1
- {numind-0.0.2 → numind-0.1.0}/tests/openapi_client/test_image_info.py +0 -1
- {numind-0.0.2 → numind-0.1.0}/tests/openapi_client/test_inference_api.py +3 -1
- {numind-0.0.2 → numind-0.1.0}/tests/openapi_client/test_inference_response.py +0 -1
- {numind-0.0.2 → numind-0.1.0}/tests/openapi_client/test_information_response.py +0 -1
- {numind-0.0.2 → numind-0.1.0}/tests/openapi_client/test_invalid_information.py +0 -1
- {numind-0.0.2 → numind-0.1.0}/tests/openapi_client/test_invitation_response.py +0 -1
- {numind-0.0.2 → numind-0.1.0}/tests/openapi_client/test_invite_member_request.py +0 -1
- {numind-0.0.2 → numind-0.1.0}/tests/openapi_client/test_job_id_response.py +0 -1
- {numind-0.0.2 → numind-0.1.0}/tests/openapi_client/test_job_response.py +0 -1
- {numind-0.0.2 → numind-0.1.0}/tests/openapi_client/test_jobs_api.py +0 -1
- {numind-0.0.2 → numind-0.1.0}/tests/openapi_client/test_member_response.py +0 -1
- numind-0.1.0/tests/openapi_client/test_model_usage_response.py +57 -0
- {numind-0.0.2 → numind-0.1.0}/tests/openapi_client/test_organization_response.py +0 -1
- {numind-0.0.2 → numind-0.1.0}/tests/openapi_client/test_organizations_api.py +0 -1
- {numind-0.0.2 → numind-0.1.0}/tests/openapi_client/test_playground_api.py +0 -1
- {numind-0.0.2 → numind-0.1.0}/tests/openapi_client/test_playground_item_response.py +0 -1
- {numind-0.0.2 → numind-0.1.0}/tests/openapi_client/test_project_management_api.py +0 -1
- {numind-0.0.2 → numind-0.1.0}/tests/openapi_client/test_project_response.py +6 -3
- {numind-0.0.2 → numind-0.1.0}/tests/openapi_client/test_project_settings_response.py +5 -2
- {numind-0.0.2 → numind-0.1.0}/tests/openapi_client/test_raw_result.py +0 -1
- {numind-0.0.2 → numind-0.1.0}/tests/openapi_client/test_service_status.py +0 -1
- {numind-0.0.2 → numind-0.1.0}/tests/openapi_client/test_template_request.py +0 -1
- {numind-0.0.2 → numind-0.1.0}/tests/openapi_client/test_text_info.py +0 -1
- {numind-0.0.2 → numind-0.1.0}/tests/openapi_client/test_text_request.py +0 -1
- {numind-0.0.2 → numind-0.1.0}/tests/openapi_client/test_token_code_request.py +0 -1
- {numind-0.0.2 → numind-0.1.0}/tests/openapi_client/test_token_refresh_request.py +0 -1
- {numind-0.0.2 → numind-0.1.0}/tests/openapi_client/test_token_request.py +0 -1
- {numind-0.0.2 → numind-0.1.0}/tests/openapi_client/test_token_response.py +0 -1
- {numind-0.0.2 → numind-0.1.0}/tests/openapi_client/test_update_api_key.py +0 -1
- {numind-0.0.2 → numind-0.1.0}/tests/openapi_client/test_update_organization_request.py +0 -1
- {numind-0.0.2 → numind-0.1.0}/tests/openapi_client/test_update_project_request.py +0 -1
- {numind-0.0.2 → numind-0.1.0}/tests/openapi_client/test_update_project_settings_request.py +3 -2
- {numind-0.0.2 → numind-0.1.0}/tests/openapi_client/test_update_project_template_request.py +0 -1
- {numind-0.0.2 → numind-0.1.0}/tests/openapi_client/test_user.py +0 -1
- {numind-0.0.2 → numind-0.1.0}/tests/openapi_client/test_valid_information.py +0 -1
- {numind-0.0.2 → numind-0.1.0}/tests/openapi_client/test_version_response.py +0 -1
- numind-0.1.0/tests/openapi_client_async/__init__.py +0 -0
- numind-0.1.0/tests/openapi_client_async/test_api_key_response.py +64 -0
- numind-0.1.0/tests/openapi_client_async/test_authentication_api.py +52 -0
- numind-0.1.0/tests/openapi_client_async/test_convert_request.py +53 -0
- numind-0.1.0/tests/openapi_client_async/test_create_api_key.py +54 -0
- numind-0.1.0/tests/openapi_client_async/test_create_or_update_example_request.py +57 -0
- numind-0.1.0/tests/openapi_client_async/test_create_or_update_playground_item_request.py +61 -0
- numind-0.1.0/tests/openapi_client_async/test_create_organization_request.py +55 -0
- numind-0.1.0/tests/openapi_client_async/test_create_project_request.py +60 -0
- numind-0.1.0/tests/openapi_client_async/test_default_api.py +40 -0
- numind-0.1.0/tests/openapi_client_async/test_document_info.py +65 -0
- numind-0.1.0/tests/openapi_client_async/test_document_response.py +60 -0
- numind-0.1.0/tests/openapi_client_async/test_documents_api.py +37 -0
- numind-0.1.0/tests/openapi_client_async/test_error.py +55 -0
- numind-0.1.0/tests/openapi_client_async/test_example_response.py +65 -0
- numind-0.1.0/tests/openapi_client_async/test_examples_api.py +43 -0
- numind-0.1.0/tests/openapi_client_async/test_extraction_api.py +34 -0
- numind-0.1.0/tests/openapi_client_async/test_extraction_response.py +64 -0
- numind-0.1.0/tests/openapi_client_async/test_file_response.py +61 -0
- numind-0.1.0/tests/openapi_client_async/test_files_api.py +40 -0
- numind-0.1.0/tests/openapi_client_async/test_health_response.py +57 -0
- numind-0.1.0/tests/openapi_client_async/test_image_info.py +63 -0
- numind-0.1.0/tests/openapi_client_async/test_inference_api.py +54 -0
- numind-0.1.0/tests/openapi_client_async/test_inference_response.py +66 -0
- numind-0.1.0/tests/openapi_client_async/test_information_response.py +57 -0
- numind-0.1.0/tests/openapi_client_async/test_invalid_information.py +57 -0
- numind-0.1.0/tests/openapi_client_async/test_invitation_response.py +58 -0
- numind-0.1.0/tests/openapi_client_async/test_invite_member_request.py +53 -0
- numind-0.1.0/tests/openapi_client_async/test_job_id_response.py +53 -0
- numind-0.1.0/tests/openapi_client_async/test_job_response.py +71 -0
- numind-0.1.0/tests/openapi_client_async/test_jobs_api.py +37 -0
- numind-0.1.0/tests/openapi_client_async/test_member_response.py +60 -0
- numind-0.1.0/tests/openapi_client_async/test_model_usage_response.py +57 -0
- numind-0.1.0/tests/openapi_client_async/test_organization_response.py +57 -0
- numind-0.1.0/tests/openapi_client_async/test_organizations_api.py +59 -0
- numind-0.1.0/tests/openapi_client_async/test_playground_api.py +45 -0
- numind-0.1.0/tests/openapi_client_async/test_playground_item_response.py +70 -0
- numind-0.1.0/tests/openapi_client_async/test_project_management_api.py +67 -0
- numind-0.1.0/tests/openapi_client_async/test_project_response.py +82 -0
- numind-0.1.0/tests/openapi_client_async/test_project_settings_response.py +63 -0
- numind-0.1.0/tests/openapi_client_async/test_raw_result.py +55 -0
- numind-0.1.0/tests/openapi_client_async/test_service_status.py +56 -0
- numind-0.1.0/tests/openapi_client_async/test_template_request.py +53 -0
- numind-0.1.0/tests/openapi_client_async/test_text_info.py +63 -0
- numind-0.1.0/tests/openapi_client_async/test_text_request.py +53 -0
- numind-0.1.0/tests/openapi_client_async/test_token_code_request.py +57 -0
- numind-0.1.0/tests/openapi_client_async/test_token_refresh_request.py +55 -0
- numind-0.1.0/tests/openapi_client_async/test_token_request.py +59 -0
- numind-0.1.0/tests/openapi_client_async/test_token_response.py +57 -0
- numind-0.1.0/tests/openapi_client_async/test_update_api_key.py +53 -0
- numind-0.1.0/tests/openapi_client_async/test_update_organization_request.py +55 -0
- numind-0.1.0/tests/openapi_client_async/test_update_project_request.py +56 -0
- numind-0.1.0/tests/openapi_client_async/test_update_project_settings_request.py +58 -0
- numind-0.1.0/tests/openapi_client_async/test_update_project_template_request.py +55 -0
- numind-0.1.0/tests/openapi_client_async/test_user.py +60 -0
- numind-0.1.0/tests/openapi_client_async/test_valid_information.py +55 -0
- numind-0.1.0/tests/openapi_client_async/test_version_response.py +59 -0
- {numind-0.0.2 → numind-0.1.0}/tests/test_project.py +20 -2
- numind-0.0.2/gen_sdk.sh +0 -69
- numind-0.0.2/src/numind/numind.py +0 -211
- {numind-0.0.2 → numind-0.1.0}/.github/codecov.yml +0 -0
- {numind-0.0.2 → numind-0.1.0}/.github/dependabot.yml +0 -0
- {numind-0.0.2 → numind-0.1.0}/.github/workflows/lint.yml +0 -0
- {numind-0.0.2 → numind-0.1.0}/.github/workflows/publish-pypi.yml +0 -0
- {numind-0.0.2 → numind-0.1.0}/.github/workflows/sdk-auto-update.yml +0 -0
- {numind-0.0.2 → numind-0.1.0}/.github/workflows/tests.yml +0 -0
- {numind-0.0.2 → numind-0.1.0}/.github/workflows/update-api-build-version-repo-var.yml +0 -0
- {numind-0.0.2 → numind-0.1.0}/.gitignore +0 -0
- {numind-0.0.2 → numind-0.1.0}/LICENSE +0 -0
- {numind-0.0.2 → numind-0.1.0}/docs/ApiKeyResponse.md +0 -0
- {numind-0.0.2 → numind-0.1.0}/docs/AuthenticationApi.md +0 -0
- {numind-0.0.2 → numind-0.1.0}/docs/ConvertRequest.md +0 -0
- {numind-0.0.2 → numind-0.1.0}/docs/CreateApiKey.md +0 -0
- {numind-0.0.2 → numind-0.1.0}/docs/CreateOrUpdateExampleRequest.md +0 -0
- {numind-0.0.2 → numind-0.1.0}/docs/CreateOrUpdatePlaygroundItemRequest.md +0 -0
- {numind-0.0.2 → numind-0.1.0}/docs/CreateOrganizationRequest.md +0 -0
- {numind-0.0.2 → numind-0.1.0}/docs/CreateProjectRequest.md +0 -0
- {numind-0.0.2 → numind-0.1.0}/docs/DefaultApi.md +0 -0
- {numind-0.0.2 → numind-0.1.0}/docs/DocumentInfo.md +0 -0
- {numind-0.0.2 → numind-0.1.0}/docs/DocumentResponse.md +0 -0
- {numind-0.0.2 → numind-0.1.0}/docs/DocumentsApi.md +0 -0
- {numind-0.0.2 → numind-0.1.0}/docs/Error.md +0 -0
- {numind-0.0.2 → numind-0.1.0}/docs/ExampleResponse.md +0 -0
- {numind-0.0.2 → numind-0.1.0}/docs/ExamplesApi.md +0 -0
- {numind-0.0.2 → numind-0.1.0}/docs/ExtractionResponse.md +0 -0
- {numind-0.0.2 → numind-0.1.0}/docs/FileResponse.md +0 -0
- {numind-0.0.2 → numind-0.1.0}/docs/FilesApi.md +0 -0
- {numind-0.0.2 → numind-0.1.0}/docs/HealthResponse.md +0 -0
- {numind-0.0.2 → numind-0.1.0}/docs/ImageInfo.md +0 -0
- {numind-0.0.2 → numind-0.1.0}/docs/InferenceResponse.md +0 -0
- {numind-0.0.2 → numind-0.1.0}/docs/InformationResponse.md +0 -0
- {numind-0.0.2 → numind-0.1.0}/docs/InvalidInformation.md +0 -0
- {numind-0.0.2 → numind-0.1.0}/docs/InvitationResponse.md +0 -0
- {numind-0.0.2 → numind-0.1.0}/docs/InviteMemberRequest.md +0 -0
- {numind-0.0.2 → numind-0.1.0}/docs/JobIdResponse.md +0 -0
- {numind-0.0.2 → numind-0.1.0}/docs/JobResponse.md +0 -0
- {numind-0.0.2 → numind-0.1.0}/docs/JobsApi.md +0 -0
- {numind-0.0.2 → numind-0.1.0}/docs/MemberResponse.md +0 -0
- {numind-0.0.2 → numind-0.1.0}/docs/OrganizationResponse.md +0 -0
- {numind-0.0.2 → numind-0.1.0}/docs/OrganizationsApi.md +0 -0
- {numind-0.0.2 → numind-0.1.0}/docs/PlaygroundApi.md +0 -0
- {numind-0.0.2 → numind-0.1.0}/docs/PlaygroundItemResponse.md +0 -0
- {numind-0.0.2 → numind-0.1.0}/docs/ProjectResponse.md +0 -0
- {numind-0.0.2 → numind-0.1.0}/docs/RawResult.md +0 -0
- {numind-0.0.2 → numind-0.1.0}/docs/ServiceStatus.md +0 -0
- {numind-0.0.2 → numind-0.1.0}/docs/TemplateRequest.md +0 -0
- {numind-0.0.2 → numind-0.1.0}/docs/TextInfo.md +0 -0
- {numind-0.0.2 → numind-0.1.0}/docs/TextRequest.md +0 -0
- {numind-0.0.2 → numind-0.1.0}/docs/TokenCodeRequest.md +0 -0
- {numind-0.0.2 → numind-0.1.0}/docs/TokenRefreshRequest.md +0 -0
- {numind-0.0.2 → numind-0.1.0}/docs/TokenRequest.md +0 -0
- {numind-0.0.2 → numind-0.1.0}/docs/TokenResponse.md +0 -0
- {numind-0.0.2 → numind-0.1.0}/docs/UpdateApiKey.md +0 -0
- {numind-0.0.2 → numind-0.1.0}/docs/UpdateOrganizationRequest.md +0 -0
- {numind-0.0.2 → numind-0.1.0}/docs/UpdateProjectRequest.md +0 -0
- {numind-0.0.2 → numind-0.1.0}/docs/UpdateProjectTemplateRequest.md +0 -0
- {numind-0.0.2 → numind-0.1.0}/docs/User.md +0 -0
- {numind-0.0.2 → numind-0.1.0}/docs/ValidInformation.md +0 -0
- {numind-0.0.2 → numind-0.1.0}/docs/VersionResponse.md +0 -0
- {numind-0.0.2/src → numind-0.1.0/sdk_generation}/.openapi-generator-ignore +0 -0
- {numind-0.0.2 → numind-0.1.0}/src/numind/constants.py +0 -0
- {numind-0.0.2 → numind-0.1.0}/src/numind/openapi_client/api/__init__.py +0 -0
- {numind-0.0.2 → numind-0.1.0}/src/numind/openapi_client/api_response.py +0 -0
- {numind-0.0.2 → numind-0.1.0}/src/numind/openapi_client/py.typed +0 -0
- /numind-0.0.2/tests/openapi_client/__init__.py → /numind-0.1.0/src/numind/openapi_client_async/py.typed +0 -0
- {numind-0.0.2 → numind-0.1.0}/tests/__init__.py +0 -0
- {numind-0.0.2 → numind-0.1.0}/tests/test_cases/vacation/examples.csv +0 -0
- {numind-0.0.2 → numind-0.1.0}/tests/test_cases/vacation/files/tahiti.docx +0 -0
- {numind-0.0.2 → numind-0.1.0}/tests/test_cases/vacation/files_examples/kyoto.docx +0 -0
- {numind-0.0.2 → numind-0.1.0}/tests/test_cases/vacation/schema.json +0 -0
- {numind-0.0.2 → numind-0.1.0}/tests/test_cases/vacation/texts.csv +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: numind
|
|
3
|
-
Version: 0.0
|
|
3
|
+
Version: 0.1.0
|
|
4
4
|
Summary: SDK to interact with the NuMind models API.
|
|
5
5
|
Project-URL: Homepage, https://github.com/numindai/nuextract-platform-sdk
|
|
6
6
|
Project-URL: Repository, https://github.com/numindai/nuextract-platform-sdk.git
|
|
@@ -43,6 +43,8 @@ Classifier: Programming Language :: Python :: 3.12
|
|
|
43
43
|
Classifier: Programming Language :: Python :: 3.13
|
|
44
44
|
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
45
45
|
Requires-Python: >=3.9
|
|
46
|
+
Requires-Dist: aiohttp-retry>=2.8.3
|
|
47
|
+
Requires-Dist: aiohttp>=3.8.4
|
|
46
48
|
Requires-Dist: lazy-imports<2,>=1
|
|
47
49
|
Requires-Dist: pydantic>=2
|
|
48
50
|
Requires-Dist: python-dateutil>=2.8.2
|
|
@@ -54,6 +56,7 @@ Requires-Dist: pyyaml; extra == 'build'
|
|
|
54
56
|
Requires-Dist: toml; extra == 'build'
|
|
55
57
|
Requires-Dist: uv; extra == 'build'
|
|
56
58
|
Provides-Extra: tests
|
|
59
|
+
Requires-Dist: pytest-asyncio; extra == 'tests'
|
|
57
60
|
Requires-Dist: pytest-cov; extra == 'tests'
|
|
58
61
|
Requires-Dist: pytest-dependency; extra == 'tests'
|
|
59
62
|
Requires-Dist: pytest-rerunfailures; extra == 'tests'
|
|
@@ -86,6 +89,28 @@ from numind import NuMind
|
|
|
86
89
|
client = NuMind(api_key=os.environ["NUMIND_API_KEY"])
|
|
87
90
|
```
|
|
88
91
|
|
|
92
|
+
### Create an async client
|
|
93
|
+
|
|
94
|
+
You can create an **async** client by using the `NuMindAsync` class:
|
|
95
|
+
|
|
96
|
+
```python
|
|
97
|
+
import asyncio
|
|
98
|
+
from numind import NuMindAsync
|
|
99
|
+
|
|
100
|
+
client = NuMindAsync(api_key="API_KEY")
|
|
101
|
+
requests = [{}]
|
|
102
|
+
|
|
103
|
+
async def main():
|
|
104
|
+
return [
|
|
105
|
+
await client.extract(project_id, **request_kwargs)
|
|
106
|
+
for request_kwargs in requests
|
|
107
|
+
]
|
|
108
|
+
|
|
109
|
+
responses = asyncio.run(main())
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
The methods and their usages are the same as for the sync `NuMind` client except that API methods are coroutines that must be awaited.
|
|
113
|
+
|
|
89
114
|
### Extract structured information "on the fly"
|
|
90
115
|
|
|
91
116
|
If you want to extract structured information from data without projects but just by providing the input template, you can use the `extract` method which provides a more user-friendly way to interact with the API:
|
|
@@ -330,6 +355,7 @@ Class | Method | HTTP request | Description
|
|
|
330
355
|
*FilesApi* | [**post_api_files**](docs/FilesApi.md#post_api_files) | **POST** /api/files |
|
|
331
356
|
*FilesApi* | [**post_api_files_fileid_convert_to_document**](docs/FilesApi.md#post_api_files_fileid_convert_to_document) | **POST** /api/files/{fileId}/convert-to-document |
|
|
332
357
|
*InferenceApi* | [**post_api_infer_template**](docs/InferenceApi.md#post_api_infer_template) | **POST** /api/infer-template |
|
|
358
|
+
*InferenceApi* | [**post_api_infer_template_async**](docs/InferenceApi.md#post_api_infer_template_async) | **POST** /api/infer-template-async |
|
|
333
359
|
*InferenceApi* | [**post_api_infer_template_document_documentid**](docs/InferenceApi.md#post_api_infer_template_document_documentid) | **POST** /api/infer-template/document/{documentId} |
|
|
334
360
|
*InferenceApi* | [**post_api_infer_template_file**](docs/InferenceApi.md#post_api_infer_template_file) | **POST** /api/infer-template/file |
|
|
335
361
|
*InferenceApi* | [**post_api_projects_projectid_infer_document_async_documentid**](docs/InferenceApi.md#post_api_projects_projectid_infer_document_async_documentid) | **POST** /api/projects/{projectId}/infer-document-async/{documentId} |
|
|
@@ -397,6 +423,7 @@ Class | Method | HTTP request | Description
|
|
|
397
423
|
- [JobIdResponse](docs/JobIdResponse.md)
|
|
398
424
|
- [JobResponse](docs/JobResponse.md)
|
|
399
425
|
- [MemberResponse](docs/MemberResponse.md)
|
|
426
|
+
- [ModelUsageResponse](docs/ModelUsageResponse.md)
|
|
400
427
|
- [OrganizationResponse](docs/OrganizationResponse.md)
|
|
401
428
|
- [PlaygroundItemResponse](docs/PlaygroundItemResponse.md)
|
|
402
429
|
- [ProjectResponse](docs/ProjectResponse.md)
|
|
@@ -25,6 +25,28 @@ from numind import NuMind
|
|
|
25
25
|
client = NuMind(api_key=os.environ["NUMIND_API_KEY"])
|
|
26
26
|
```
|
|
27
27
|
|
|
28
|
+
### Create an async client
|
|
29
|
+
|
|
30
|
+
You can create an **async** client by using the `NuMindAsync` class:
|
|
31
|
+
|
|
32
|
+
```python
|
|
33
|
+
import asyncio
|
|
34
|
+
from numind import NuMindAsync
|
|
35
|
+
|
|
36
|
+
client = NuMindAsync(api_key="API_KEY")
|
|
37
|
+
requests = [{}]
|
|
38
|
+
|
|
39
|
+
async def main():
|
|
40
|
+
return [
|
|
41
|
+
await client.extract(project_id, **request_kwargs)
|
|
42
|
+
for request_kwargs in requests
|
|
43
|
+
]
|
|
44
|
+
|
|
45
|
+
responses = asyncio.run(main())
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
The methods and their usages are the same as for the sync `NuMind` client except that API methods are coroutines that must be awaited.
|
|
49
|
+
|
|
28
50
|
### Extract structured information "on the fly"
|
|
29
51
|
|
|
30
52
|
If you want to extract structured information from data without projects but just by providing the input template, you can use the `extract` method which provides a more user-friendly way to interact with the API:
|
|
@@ -269,6 +291,7 @@ Class | Method | HTTP request | Description
|
|
|
269
291
|
*FilesApi* | [**post_api_files**](docs/FilesApi.md#post_api_files) | **POST** /api/files |
|
|
270
292
|
*FilesApi* | [**post_api_files_fileid_convert_to_document**](docs/FilesApi.md#post_api_files_fileid_convert_to_document) | **POST** /api/files/{fileId}/convert-to-document |
|
|
271
293
|
*InferenceApi* | [**post_api_infer_template**](docs/InferenceApi.md#post_api_infer_template) | **POST** /api/infer-template |
|
|
294
|
+
*InferenceApi* | [**post_api_infer_template_async**](docs/InferenceApi.md#post_api_infer_template_async) | **POST** /api/infer-template-async |
|
|
272
295
|
*InferenceApi* | [**post_api_infer_template_document_documentid**](docs/InferenceApi.md#post_api_infer_template_document_documentid) | **POST** /api/infer-template/document/{documentId} |
|
|
273
296
|
*InferenceApi* | [**post_api_infer_template_file**](docs/InferenceApi.md#post_api_infer_template_file) | **POST** /api/infer-template/file |
|
|
274
297
|
*InferenceApi* | [**post_api_projects_projectid_infer_document_async_documentid**](docs/InferenceApi.md#post_api_projects_projectid_infer_document_async_documentid) | **POST** /api/projects/{projectId}/infer-document-async/{documentId} |
|
|
@@ -336,6 +359,7 @@ Class | Method | HTTP request | Description
|
|
|
336
359
|
- [JobIdResponse](docs/JobIdResponse.md)
|
|
337
360
|
- [JobResponse](docs/JobResponse.md)
|
|
338
361
|
- [MemberResponse](docs/MemberResponse.md)
|
|
362
|
+
- [ModelUsageResponse](docs/ModelUsageResponse.md)
|
|
339
363
|
- [OrganizationResponse](docs/OrganizationResponse.md)
|
|
340
364
|
- [PlaygroundItemResponse](docs/PlaygroundItemResponse.md)
|
|
341
365
|
- [ProjectResponse](docs/ProjectResponse.md)
|
|
@@ -9,12 +9,13 @@ Method | HTTP request | Description
|
|
|
9
9
|
|
|
10
10
|
|
|
11
11
|
# **post_api_projects_projectid_extract**
|
|
12
|
-
> ExtractionResponse post_api_projects_projectid_extract(project_id, body, temperature=temperature, rasterization_dpi=rasterization_dpi, max_output_tokens=max_output_tokens)
|
|
12
|
+
> ExtractionResponse post_api_projects_projectid_extract(project_id, body, temperature=temperature, rasterization_dpi=rasterization_dpi, max_output_tokens=max_output_tokens, degraded_mode=degraded_mode, max_tokens_smart_example=max_tokens_smart_example)
|
|
13
13
|
|
|
14
14
|
|
|
15
15
|
Extract information from the provided text or file. Some files are converted to images -
|
|
16
|
-
the **rasterizationDPI** parameter controls their resolution. When **temperature**, **rasterizationDPI
|
|
17
|
-
|
|
16
|
+
the **rasterizationDPI** parameter controls their resolution. When **temperature**, **rasterizationDPI**,
|
|
17
|
+
**maxOutputTokens**, **degradedMode** and **maxTokensSmartExample** parameters are not specified,
|
|
18
|
+
they are set to their project-setting values.
|
|
18
19
|
|
|
19
20
|
#### Response:
|
|
20
21
|
Returns a JSON representing the extracted information.
|
|
@@ -61,9 +62,11 @@ with numind.openapi_client.ApiClient(configuration) as api_client:
|
|
|
61
62
|
temperature = 3.4 # float | Model temperature (optional). Controls output diversity. When not specified, the project value is used. Ranges between 0 and 1. (optional)
|
|
62
63
|
rasterization_dpi = 56 # int | Resolution used to convert formatted documents (PDFs, etc.) to images, in dot per inch (optional). Ranges between 1 and 300. (optional)
|
|
63
64
|
max_output_tokens = 56 # int | Maximum number of output tokens (optional). Must be positive. Set to 0 for no limit. (optional)
|
|
65
|
+
degraded_mode = 'degraded_mode_example' # str | Controls whether a response is returned when smart example is not functionning. Rejects by default. (optional)
|
|
66
|
+
max_tokens_smart_example = 56 # int | Controls the maximum number of tokens that can be allocated to the examples. Must be positive. Ranges in the context window of the model. (optional)
|
|
64
67
|
|
|
65
68
|
try:
|
|
66
|
-
api_response = api_instance.post_api_projects_projectid_extract(project_id, body, temperature=temperature, rasterization_dpi=rasterization_dpi, max_output_tokens=max_output_tokens)
|
|
69
|
+
api_response = api_instance.post_api_projects_projectid_extract(project_id, body, temperature=temperature, rasterization_dpi=rasterization_dpi, max_output_tokens=max_output_tokens, degraded_mode=degraded_mode, max_tokens_smart_example=max_tokens_smart_example)
|
|
67
70
|
print("The response of ExtractionApi->post_api_projects_projectid_extract:\n")
|
|
68
71
|
pprint(api_response)
|
|
69
72
|
except Exception as e:
|
|
@@ -82,6 +85,8 @@ Name | Type | Description | Notes
|
|
|
82
85
|
**temperature** | **float**| Model temperature (optional). Controls output diversity. When not specified, the project value is used. Ranges between 0 and 1. | [optional]
|
|
83
86
|
**rasterization_dpi** | **int**| Resolution used to convert formatted documents (PDFs, etc.) to images, in dot per inch (optional). Ranges between 1 and 300. | [optional]
|
|
84
87
|
**max_output_tokens** | **int**| Maximum number of output tokens (optional). Must be positive. Set to 0 for no limit. | [optional]
|
|
88
|
+
**degraded_mode** | **str**| Controls whether a response is returned when smart example is not functionning. Rejects by default. | [optional]
|
|
89
|
+
**max_tokens_smart_example** | **int**| Controls the maximum number of tokens that can be allocated to the examples. Must be positive. Ranges in the context window of the model. | [optional]
|
|
85
90
|
|
|
86
91
|
### Return type
|
|
87
92
|
|
|
@@ -101,13 +106,13 @@ Name | Type | Description | Notes
|
|
|
101
106
|
| Status code | Description | Response headers |
|
|
102
107
|
|-------------|-------------|------------------|
|
|
103
108
|
**200** | | - |
|
|
104
|
-
**400** | Invalid value for: query parameter temperature, Invalid value for: query parameter rasterizationDPI, Invalid value for: query parameter maxOutputTokens, Invalid value for: body | - |
|
|
109
|
+
**400** | Invalid value for: query parameter temperature, Invalid value for: query parameter rasterizationDPI, Invalid value for: query parameter maxOutputTokens, Invalid value for: query parameter maxTokensSmartExample, Invalid value for: body | - |
|
|
105
110
|
**0** | | - |
|
|
106
111
|
|
|
107
112
|
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
|
|
108
113
|
|
|
109
114
|
# **post_api_projects_projectid_extract_async**
|
|
110
|
-
> JobIdResponse post_api_projects_projectid_extract_async(project_id, body, temperature=temperature, dpi=dpi, max_output_tokens=max_output_tokens)
|
|
115
|
+
> JobIdResponse post_api_projects_projectid_extract_async(project_id, body, temperature=temperature, dpi=dpi, max_output_tokens=max_output_tokens, degraded_mode=degraded_mode, max_tokens_smart_example=max_tokens_smart_example)
|
|
111
116
|
|
|
112
117
|
Start file extraction as async job
|
|
113
118
|
|
|
@@ -143,9 +148,11 @@ with numind.openapi_client.ApiClient(configuration) as api_client:
|
|
|
143
148
|
temperature = 3.4 # float | Model temperature (optional). Controls output diversity. When not specified, the project value is used. Ranges between 0 and 1. (optional)
|
|
144
149
|
dpi = 56 # int | DPI for file rasterization (optional). When not specified, the project value is used. If the file is already an image or a text, this parameter is ignored. (optional)
|
|
145
150
|
max_output_tokens = 56 # int | Maximum number of output tokens (optional). When not specified, the project value is used. Use 0 to indicate no limit. (optional)
|
|
151
|
+
degraded_mode = 'degraded_mode_example' # str | Controls whether a response is returned when smart example is not functionning. Rejects by default. (optional)
|
|
152
|
+
max_tokens_smart_example = 56 # int | Controls the maximum number of tokens that can be allocated to the examples. Must be positive. Ranges in the context window of the model. (optional)
|
|
146
153
|
|
|
147
154
|
try:
|
|
148
|
-
api_response = api_instance.post_api_projects_projectid_extract_async(project_id, body, temperature=temperature, dpi=dpi, max_output_tokens=max_output_tokens)
|
|
155
|
+
api_response = api_instance.post_api_projects_projectid_extract_async(project_id, body, temperature=temperature, dpi=dpi, max_output_tokens=max_output_tokens, degraded_mode=degraded_mode, max_tokens_smart_example=max_tokens_smart_example)
|
|
149
156
|
print("The response of ExtractionApi->post_api_projects_projectid_extract_async:\n")
|
|
150
157
|
pprint(api_response)
|
|
151
158
|
except Exception as e:
|
|
@@ -164,6 +171,8 @@ Name | Type | Description | Notes
|
|
|
164
171
|
**temperature** | **float**| Model temperature (optional). Controls output diversity. When not specified, the project value is used. Ranges between 0 and 1. | [optional]
|
|
165
172
|
**dpi** | **int**| DPI for file rasterization (optional). When not specified, the project value is used. If the file is already an image or a text, this parameter is ignored. | [optional]
|
|
166
173
|
**max_output_tokens** | **int**| Maximum number of output tokens (optional). When not specified, the project value is used. Use 0 to indicate no limit. | [optional]
|
|
174
|
+
**degraded_mode** | **str**| Controls whether a response is returned when smart example is not functionning. Rejects by default. | [optional]
|
|
175
|
+
**max_tokens_smart_example** | **int**| Controls the maximum number of tokens that can be allocated to the examples. Must be positive. Ranges in the context window of the model. | [optional]
|
|
167
176
|
|
|
168
177
|
### Return type
|
|
169
178
|
|
|
@@ -183,7 +192,7 @@ Name | Type | Description | Notes
|
|
|
183
192
|
| Status code | Description | Response headers |
|
|
184
193
|
|-------------|-------------|------------------|
|
|
185
194
|
**200** | | - |
|
|
186
|
-
**400** | Invalid value for: query parameter temperature, Invalid value for: query parameter dpi, Invalid value for: query parameter maxOutputTokens, Invalid value for: body | - |
|
|
195
|
+
**400** | Invalid value for: query parameter temperature, Invalid value for: query parameter dpi, Invalid value for: query parameter maxOutputTokens, Invalid value for: query parameter maxTokensSmartExample, Invalid value for: body | - |
|
|
187
196
|
**0** | | - |
|
|
188
197
|
|
|
189
198
|
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
|
|
@@ -5,6 +5,7 @@ All URIs are relative to *https://nuextract.ai*
|
|
|
5
5
|
Method | HTTP request | Description
|
|
6
6
|
------------- | ------------- | -------------
|
|
7
7
|
[**post_api_infer_template**](InferenceApi.md#post_api_infer_template) | **POST** /api/infer-template |
|
|
8
|
+
[**post_api_infer_template_async**](InferenceApi.md#post_api_infer_template_async) | **POST** /api/infer-template-async |
|
|
8
9
|
[**post_api_infer_template_document_documentid**](InferenceApi.md#post_api_infer_template_document_documentid) | **POST** /api/infer-template/document/{documentId} |
|
|
9
10
|
[**post_api_infer_template_file**](InferenceApi.md#post_api_infer_template_file) | **POST** /api/infer-template/file |
|
|
10
11
|
[**post_api_projects_projectid_infer_document_async_documentid**](InferenceApi.md#post_api_projects_projectid_infer_document_async_documentid) | **POST** /api/projects/{projectId}/infer-document-async/{documentId} |
|
|
@@ -97,6 +98,91 @@ Name | Type | Description | Notes
|
|
|
97
98
|
|
|
98
99
|
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
|
|
99
100
|
|
|
101
|
+
# **post_api_infer_template_async**
|
|
102
|
+
> JobIdResponse post_api_infer_template_async(template_request)
|
|
103
|
+
|
|
104
|
+
|
|
105
|
+
Derive a template from the provided natural language description.
|
|
106
|
+
Potentially, this endpoint can equally be used to correct the template to conform to the NuExtract standard.
|
|
107
|
+
The resulting template is a JSON object that can be used as a project template.
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
#### Response:
|
|
111
|
+
Returns a JSON representing the derived template.
|
|
112
|
+
The response is an empty template if the derivation fails.
|
|
113
|
+
|
|
114
|
+
|
|
115
|
+
|
|
116
|
+
### Example
|
|
117
|
+
|
|
118
|
+
* OAuth Authentication (oauth2Auth):
|
|
119
|
+
|
|
120
|
+
```python
|
|
121
|
+
import numind.openapi_client
|
|
122
|
+
from numind.openapi_client.models.job_id_response import JobIdResponse
|
|
123
|
+
from numind.openapi_client.models.template_request import TemplateRequest
|
|
124
|
+
from numind.openapi_client.rest import ApiException
|
|
125
|
+
from pprint import pprint
|
|
126
|
+
|
|
127
|
+
# Defining the host is optional and defaults to https://nuextract.ai
|
|
128
|
+
# See configuration.py for a list of all supported configuration parameters.
|
|
129
|
+
configuration = numind.openapi_client.Configuration(
|
|
130
|
+
host = "https://nuextract.ai"
|
|
131
|
+
)
|
|
132
|
+
|
|
133
|
+
# The client must configure the authentication and authorization parameters
|
|
134
|
+
# in accordance with the API server security policy.
|
|
135
|
+
# Examples for each auth method are provided below, use the example that
|
|
136
|
+
# satisfies your auth use case.
|
|
137
|
+
|
|
138
|
+
configuration.access_token = os.environ["ACCESS_TOKEN"]
|
|
139
|
+
|
|
140
|
+
# Enter a context with an instance of the API client
|
|
141
|
+
with numind.openapi_client.ApiClient(configuration) as api_client:
|
|
142
|
+
# Create an instance of the API class
|
|
143
|
+
api_instance = numind.openapi_client.InferenceApi(api_client)
|
|
144
|
+
template_request = {description=[EXAMPLE ONLY] Create a template that extracts key information from an order confirmation email. The template should be able to pull details like the order ID, customer ID, date and time of the order, status, total amount, currency, item details (product ID, quantity, and unit price), shipping address, any customer requests or delivery preferences, and the estimated delivery date.} # TemplateRequest |
|
|
145
|
+
|
|
146
|
+
try:
|
|
147
|
+
api_response = api_instance.post_api_infer_template_async(template_request)
|
|
148
|
+
print("The response of InferenceApi->post_api_infer_template_async:\n")
|
|
149
|
+
pprint(api_response)
|
|
150
|
+
except Exception as e:
|
|
151
|
+
print("Exception when calling InferenceApi->post_api_infer_template_async: %s\n" % e)
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
|
|
155
|
+
|
|
156
|
+
### Parameters
|
|
157
|
+
|
|
158
|
+
|
|
159
|
+
Name | Type | Description | Notes
|
|
160
|
+
------------- | ------------- | ------------- | -------------
|
|
161
|
+
**template_request** | [**TemplateRequest**](TemplateRequest.md)| |
|
|
162
|
+
|
|
163
|
+
### Return type
|
|
164
|
+
|
|
165
|
+
[**JobIdResponse**](JobIdResponse.md)
|
|
166
|
+
|
|
167
|
+
### Authorization
|
|
168
|
+
|
|
169
|
+
[oauth2Auth](../README.md#oauth2Auth)
|
|
170
|
+
|
|
171
|
+
### HTTP request headers
|
|
172
|
+
|
|
173
|
+
- **Content-Type**: application/json
|
|
174
|
+
- **Accept**: application/json, text/plain
|
|
175
|
+
|
|
176
|
+
### HTTP response details
|
|
177
|
+
|
|
178
|
+
| Status code | Description | Response headers |
|
|
179
|
+
|-------------|-------------|------------------|
|
|
180
|
+
**200** | | - |
|
|
181
|
+
**400** | Invalid value for: body | - |
|
|
182
|
+
**0** | | - |
|
|
183
|
+
|
|
184
|
+
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
|
|
185
|
+
|
|
100
186
|
# **post_api_infer_template_document_documentid**
|
|
101
187
|
> object post_api_infer_template_document_documentid(document_id)
|
|
102
188
|
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# ModelUsageResponse
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
## Properties
|
|
5
|
+
|
|
6
|
+
Name | Type | Description | Notes
|
|
7
|
+
------------ | ------------- | ------------- | -------------
|
|
8
|
+
**usage** | **int** | |
|
|
9
|
+
**balance** | **int** | |
|
|
10
|
+
**overage** | **int** | |
|
|
11
|
+
|
|
12
|
+
## Example
|
|
13
|
+
|
|
14
|
+
```python
|
|
15
|
+
from numind.openapi_client.models.model_usage_response import ModelUsageResponse
|
|
16
|
+
|
|
17
|
+
# TODO update the JSON string below
|
|
18
|
+
json = "{}"
|
|
19
|
+
# create an instance of ModelUsageResponse from a JSON string
|
|
20
|
+
model_usage_response_instance = ModelUsageResponse.from_json(json)
|
|
21
|
+
# print the JSON string representation of the object
|
|
22
|
+
print(ModelUsageResponse.to_json())
|
|
23
|
+
|
|
24
|
+
# convert the object into a dict
|
|
25
|
+
model_usage_response_dict = model_usage_response_instance.to_dict()
|
|
26
|
+
# create an instance of ModelUsageResponse from a dict
|
|
27
|
+
model_usage_response_from_dict = ModelUsageResponse.from_dict(model_usage_response_dict)
|
|
28
|
+
```
|
|
29
|
+
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
|
|
30
|
+
|
|
31
|
+
|
|
@@ -398,7 +398,7 @@ with numind.openapi_client.ApiClient(configuration) as api_client:
|
|
|
398
398
|
# Create an instance of the API class
|
|
399
399
|
api_instance = numind.openapi_client.ProjectManagementApi(api_client)
|
|
400
400
|
project_id = 'project_id_example' # str | Unique project identifier.
|
|
401
|
-
update_project_settings_request = {"temperature":0,"rasterizationDPI":115,"maxOutputTokens":0} # UpdateProjectSettingsRequest |
|
|
401
|
+
update_project_settings_request = {"temperature":0,"rasterizationDPI":115,"maxOutputTokens":0,"degradedMode":"Reject","maxTokensSmartExample":16000} # UpdateProjectSettingsRequest |
|
|
402
402
|
|
|
403
403
|
try:
|
|
404
404
|
api_response = api_instance.patch_api_projects_projectid_settings(project_id, update_project_settings_request)
|
|
@@ -464,6 +464,8 @@ A **Project** is created with default settings:
|
|
|
464
464
|
`temperature` | 0.0 |
|
|
465
465
|
`rasterizationDPI` | 115 |
|
|
466
466
|
`maxOutputTokens` | 0 (no limit) |
|
|
467
|
+
`degradedMode` | Reject |
|
|
468
|
+
`maxTokensSmartExample` | 16000 |
|
|
467
469
|
|
|
468
470
|
|
|
469
471
|
If *ownerOrganization* is not provided, the **Project** will be owned by the authenticated user.
|
|
@@ -733,6 +735,8 @@ Default values are:
|
|
|
733
735
|
`temperature` | 0.0 |
|
|
734
736
|
`rasterizationDPI` | 115 |
|
|
735
737
|
`maxOutputTokens` | 0 (no limit) |
|
|
738
|
+
`degradedMode` | Reject |
|
|
739
|
+
`maxTokensSmartExample` | 16000 |
|
|
736
740
|
|
|
737
741
|
#### Error Responses:
|
|
738
742
|
`404 Not Found` - If a **Project** with the specified `projectId` does not exist.
|
|
@@ -9,6 +9,8 @@ Name | Type | Description | Notes
|
|
|
9
9
|
**temperature** | **float** | Model temperature. |
|
|
10
10
|
**rasterization_dpi** | **int** | Resolution used to convert formatted documents to images. |
|
|
11
11
|
**max_output_tokens** | **int** | Maximum number of output tokens (optional). Must be positive. Set to 0 for no limit. |
|
|
12
|
+
**degraded_mode** | **str** | Controls whether a response is returned when smart example is not functionning. Rejects by default. |
|
|
13
|
+
**max_tokens_smart_example** | **int** | Maximum number of output tokens for smart examples (optional). Must be positive. |
|
|
12
14
|
|
|
13
15
|
## Example
|
|
14
16
|
|
|
@@ -8,6 +8,8 @@ Name | Type | Description | Notes
|
|
|
8
8
|
**temperature** | **float** | Model temperature (optional). | [optional]
|
|
9
9
|
**rasterization_dpi** | **int** | Resolution used to convert formatted documents to images (optional). | [optional]
|
|
10
10
|
**max_output_tokens** | **int** | Maximum number of output tokens (optional). Must be positive. Set to 0 for no limit. | [optional]
|
|
11
|
+
**degraded_mode** | **str** | Controls whether a response is returned when smart example is not functionning. Rejects by default. | [optional]
|
|
12
|
+
**max_tokens_smart_example** | **int** | Maximum number of output tokens for smart examples (optional). Must be positive. | [optional]
|
|
11
13
|
|
|
12
14
|
## Example
|
|
13
15
|
|
|
@@ -4,12 +4,12 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "numind"
|
|
7
|
-
version = "0.0
|
|
7
|
+
version = "0.1.0"
|
|
8
8
|
description = "SDK to interact with the NuMind models API."
|
|
9
9
|
requires-python = ">=3.9"
|
|
10
10
|
keywords = [ "artificial intelligence", "deep learning", "structured",]
|
|
11
11
|
classifiers = [ "Intended Audience :: Developers", "Intended Audience :: Science/Research", "Topic :: Scientific/Engineering :: Artificial Intelligence", "License :: OSI Approved :: MIT License", "Programming Language :: Python", "Programming Language :: Python :: 3 :: Only", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", "Operating System :: OS Independent",]
|
|
12
|
-
dependencies = [ "urllib3 >= 2.1.0, < 3.0.0", "python_dateutil >= 2.8.2", "pydantic >= 2", "typing-extensions >= 4.7.1", "lazy-imports >= 1, < 2",]
|
|
12
|
+
dependencies = [ "urllib3 >= 2.1.0, < 3.0.0", "python_dateutil >= 2.8.2", "aiohttp >= 3.8.4", "aiohttp-retry >= 2.8.3", "pydantic >= 2", "typing-extensions >= 4.7.1", "lazy-imports >= 1, < 2",]
|
|
13
13
|
[[project.authors]]
|
|
14
14
|
name = "Nathan Fradet"
|
|
15
15
|
email = "nathan@numind.ai"
|
|
@@ -23,7 +23,7 @@ file = "LICENSE"
|
|
|
23
23
|
|
|
24
24
|
[project.optional-dependencies]
|
|
25
25
|
build = [ "openapi-generator-cli", "uv", "PyYAML", "toml",]
|
|
26
|
-
tests = [ "pytest-cov", "pytest-rerunfailures", "pytest-dependency",]
|
|
26
|
+
tests = [ "pytest-asyncio", "pytest-cov", "pytest-rerunfailures", "pytest-dependency",]
|
|
27
27
|
|
|
28
28
|
[project.urls]
|
|
29
29
|
Homepage = "https://github.com/numindai/nuextract-platform-sdk"
|
|
@@ -35,7 +35,7 @@ Issues = "https://github.com/numindai/nuextract-platform-sdk/issues"
|
|
|
35
35
|
target-version = "py39"
|
|
36
36
|
|
|
37
37
|
[tool.mypy]
|
|
38
|
-
files = [ "numind.
|
|
38
|
+
files = [ "numind.openapi_client_async", "tests",]
|
|
39
39
|
warn_unused_configs = true
|
|
40
40
|
warn_redundant_casts = true
|
|
41
41
|
warn_unused_ignores = true
|
|
@@ -46,7 +46,7 @@ disallow_subclassing_any = true
|
|
|
46
46
|
disallow_untyped_decorators = true
|
|
47
47
|
disallow_any_generics = true
|
|
48
48
|
[[tool.mypy.overrides]]
|
|
49
|
-
module = [ "numind.
|
|
49
|
+
module = [ "numind.openapi_client_async.configuration",]
|
|
50
50
|
warn_unused_ignores = true
|
|
51
51
|
strict_equality = true
|
|
52
52
|
extra_checks = true
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
"""Adds async imports to the openapi_client package.""" # noqa:INP001
|
|
2
|
+
|
|
3
|
+
import re
|
|
4
|
+
from pathlib import Path
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
def modify_init_file(file_path: Path) -> None:
|
|
8
|
+
"""
|
|
9
|
+
Modify the __init__.py file to add async versions of imports.
|
|
10
|
+
|
|
11
|
+
Args:
|
|
12
|
+
file_path (str): Path to the __init__.py file
|
|
13
|
+
|
|
14
|
+
"""
|
|
15
|
+
with file_path.open() as f:
|
|
16
|
+
content = f.read()
|
|
17
|
+
|
|
18
|
+
# First, we need to update the __all__ list to include async versions
|
|
19
|
+
all_pattern = r"__all__\s*=\s*\[(.*?)\]"
|
|
20
|
+
all_match = re.search(all_pattern, content, re.DOTALL)
|
|
21
|
+
|
|
22
|
+
if all_match:
|
|
23
|
+
all_content = all_match.group(1)
|
|
24
|
+
# Extract existing items and add async versions
|
|
25
|
+
items = re.findall(r'"([^"]*)"', all_content)
|
|
26
|
+
async_items = []
|
|
27
|
+
|
|
28
|
+
for item in items:
|
|
29
|
+
if item.endswith("Api"):
|
|
30
|
+
async_items.append(f'"{item}Async"')
|
|
31
|
+
elif item == "ApiClient":
|
|
32
|
+
async_items.append('"ApiClientAsync"')
|
|
33
|
+
|
|
34
|
+
# Create new __all__ content
|
|
35
|
+
all_items = [f'"{item}"' for item in items] + async_items
|
|
36
|
+
new_all_content = "__all__ = [\n " + ",\n ".join(all_items) + ",\n]"
|
|
37
|
+
|
|
38
|
+
content = re.sub(all_pattern, new_all_content, content, flags=re.DOTALL)
|
|
39
|
+
|
|
40
|
+
# Now handle the TYPE_CHECKING block imports
|
|
41
|
+
type_checking_pattern = r'(if __import__\("typing"\)\.TYPE_CHECKING:.*?)(else:)'
|
|
42
|
+
type_checking_match = re.search(type_checking_pattern, content, re.DOTALL)
|
|
43
|
+
|
|
44
|
+
if type_checking_match:
|
|
45
|
+
type_checking_block = type_checking_match.group(1)
|
|
46
|
+
|
|
47
|
+
# Find all API imports and create async versions
|
|
48
|
+
api_imports = re.findall(
|
|
49
|
+
r"from numind\.openapi_client\.api\.(\w+) import (\w+) as (\w+)",
|
|
50
|
+
type_checking_block,
|
|
51
|
+
)
|
|
52
|
+
|
|
53
|
+
# Find ApiClient import
|
|
54
|
+
client_import = re.search(
|
|
55
|
+
(
|
|
56
|
+
r"from numind\.openapi_client\.api_client import (ApiClient) as "
|
|
57
|
+
r"(ApiClient)"
|
|
58
|
+
),
|
|
59
|
+
type_checking_block,
|
|
60
|
+
)
|
|
61
|
+
|
|
62
|
+
async_imports = []
|
|
63
|
+
|
|
64
|
+
# Add async API imports
|
|
65
|
+
for module, class_name, alias in api_imports:
|
|
66
|
+
async_import = (
|
|
67
|
+
f" from numind.openapi_client.api_async.{module} import "
|
|
68
|
+
f"{class_name} as {alias}Async"
|
|
69
|
+
)
|
|
70
|
+
async_imports.append(async_import)
|
|
71
|
+
|
|
72
|
+
# Add async ApiClient import
|
|
73
|
+
if client_import:
|
|
74
|
+
async_import = (
|
|
75
|
+
" from numind.openapi_client.api_client_async import ApiClient as "
|
|
76
|
+
"ApiClientAsync"
|
|
77
|
+
)
|
|
78
|
+
async_imports.append(async_import)
|
|
79
|
+
|
|
80
|
+
# Insert async imports after the existing imports
|
|
81
|
+
if async_imports:
|
|
82
|
+
async_imports_str = "\n" + "\n".join(async_imports)
|
|
83
|
+
# Find the position just before 'else:'
|
|
84
|
+
else_pos = content.find("else:", type_checking_match.start())
|
|
85
|
+
content = content[:else_pos] + async_imports_str + "\n" + content[else_pos:]
|
|
86
|
+
|
|
87
|
+
# Now handle the lazy loading block
|
|
88
|
+
lazy_pattern = (
|
|
89
|
+
r'(load\(\s*LazyModule\(\s*\*as_package\(__file__\),.*?""")(.*?)(""",)'
|
|
90
|
+
)
|
|
91
|
+
lazy_match = re.search(lazy_pattern, content, re.DOTALL)
|
|
92
|
+
|
|
93
|
+
if lazy_match:
|
|
94
|
+
lazy_imports = lazy_match.group(2)
|
|
95
|
+
|
|
96
|
+
# Find all API imports and create async versions
|
|
97
|
+
api_imports = re.findall(
|
|
98
|
+
r"from numind\.openapi_client\.api\.(\w+) import (\w+) as (\w+)",
|
|
99
|
+
lazy_imports,
|
|
100
|
+
)
|
|
101
|
+
|
|
102
|
+
# Find ApiClient import
|
|
103
|
+
client_import = re.search(
|
|
104
|
+
(
|
|
105
|
+
r"from numind\.openapi_client\.api_client import (ApiClient) as "
|
|
106
|
+
r"(ApiClient)"
|
|
107
|
+
),
|
|
108
|
+
lazy_imports,
|
|
109
|
+
)
|
|
110
|
+
|
|
111
|
+
async_imports = []
|
|
112
|
+
|
|
113
|
+
# Add async API imports
|
|
114
|
+
for module, class_name, alias in api_imports:
|
|
115
|
+
async_import = (
|
|
116
|
+
f"from numind.openapi_client.api_async.{module} import {class_name} "
|
|
117
|
+
f"as {alias}Async"
|
|
118
|
+
)
|
|
119
|
+
async_imports.append(async_import)
|
|
120
|
+
|
|
121
|
+
# Add async ApiClient import
|
|
122
|
+
if client_import:
|
|
123
|
+
async_import = (
|
|
124
|
+
"from numind.openapi_client.api_client_async import ApiClient as "
|
|
125
|
+
"ApiClientAsync"
|
|
126
|
+
)
|
|
127
|
+
async_imports.append(async_import)
|
|
128
|
+
|
|
129
|
+
# Insert async imports
|
|
130
|
+
if async_imports:
|
|
131
|
+
async_imports_str = "\n" + "\n".join(async_imports)
|
|
132
|
+
new_lazy_imports = lazy_imports + async_imports_str
|
|
133
|
+
content = content.replace(lazy_imports, new_lazy_imports)
|
|
134
|
+
|
|
135
|
+
with file_path.open("w") as f:
|
|
136
|
+
f.write(content)
|
|
137
|
+
|
|
138
|
+
|
|
139
|
+
if __name__ == "__main__":
|
|
140
|
+
from argparse import ArgumentParser
|
|
141
|
+
|
|
142
|
+
parser = ArgumentParser(description="Dataset creation script")
|
|
143
|
+
parser.add_argument(
|
|
144
|
+
"--init-path", type=str, default="src/numind/openapi_client/__init__.py"
|
|
145
|
+
)
|
|
146
|
+
args = vars(parser.parse_args())
|
|
147
|
+
|
|
148
|
+
modify_init_file(
|
|
149
|
+
Path(args["init_path"]),
|
|
150
|
+
)
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"""Script removing problematic models from an OpenAPI specification file."""
|
|
1
|
+
"""Script removing problematic models from an OpenAPI specification file.""" # noqa:INP001
|
|
2
2
|
|
|
3
3
|
from pathlib import Path
|
|
4
4
|
|
|
@@ -9,7 +9,7 @@ OPENAPI_GEN_MENTION = (
|
|
|
9
9
|
|
|
10
10
|
|
|
11
11
|
def read_readme(readme_path: Path) -> str:
|
|
12
|
-
|
|
12
|
+
"""Read the README file."""
|
|
13
13
|
with readme_path.open() as file:
|
|
14
14
|
readme = file.read().splitlines()
|
|
15
15
|
for idx, line in enumerate(readme):
|
|
@@ -20,6 +20,7 @@ def read_readme(readme_path: Path) -> str:
|
|
|
20
20
|
|
|
21
21
|
|
|
22
22
|
def read_and_preprocess_generated_readme(readme_gen_path: Path) -> str:
|
|
23
|
+
"""Read and preprocess the generated README file."""
|
|
23
24
|
with readme_gen_path.open() as file:
|
|
24
25
|
doc_readme = file.read().splitlines()
|
|
25
26
|
|