helix.fhir.client.sdk 4.2.2__tar.gz → 4.2.3__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.
- {helix_fhir_client_sdk-4.2.2/helix.fhir.client.sdk.egg-info → helix_fhir_client_sdk-4.2.3}/PKG-INFO +2 -5
- helix_fhir_client_sdk-4.2.3/VERSION +1 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3/helix.fhir.client.sdk.egg-info}/PKG-INFO +2 -5
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix.fhir.client.sdk.egg-info/SOURCES.txt +0 -3
- helix_fhir_client_sdk-4.2.3/helix.fhir.client.sdk.egg-info/requires.txt +8 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/fhir_auth_mixin.py +8 -13
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/fhir_client.py +48 -64
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/fhir_delete_mixin.py +2 -2
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/fhir_merge_mixin.py +1 -1
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/fhir_merge_resources_mixin.py +2 -2
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/fhir_patch_mixin.py +1 -1
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/fhir_update_mixin.py +1 -1
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/graph/simulated_graph_processor_mixin.py +1 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/queue/request_queue_mixin.py +4 -13
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/responses/fhir_client_protocol.py +1 -1
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/responses/fhir_get_response.py +1 -1
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/responses/fhir_response_processor.py +54 -73
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/responses/get/fhir_get_bundle_response.py +1 -1
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/responses/get/fhir_get_error_response.py +1 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/responses/get/fhir_get_list_by_resource_type_response.py +1 -1
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/responses/get/fhir_get_list_response.py +1 -1
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/responses/get/fhir_get_response_factory.py +1 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/responses/get/fhir_get_single_response.py +1 -1
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/utilities/cache/request_cache.py +43 -32
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/utilities/retryable_aiohttp_client.py +139 -150
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/utilities/retryable_aiohttp_response.py +1 -2
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/setup.py +1 -4
- helix_fhir_client_sdk-4.2.2/VERSION +0 -1
- helix_fhir_client_sdk-4.2.2/helix.fhir.client.sdk.egg-info/requires.txt +0 -11
- helix_fhir_client_sdk-4.2.2/helix_fhir_client_sdk/open_telemetry/attribute_names.py +0 -4
- helix_fhir_client_sdk-4.2.2/helix_fhir_client_sdk/open_telemetry/span_names.py +0 -8
- helix_fhir_client_sdk-4.2.2/tests_integration/__init__.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/LICENSE +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/MANIFEST.in +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/Makefile +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/README.md +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix.fhir.client.sdk.egg-info/dependency_links.txt +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix.fhir.client.sdk.egg-info/not-zip-safe +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix.fhir.client.sdk.egg-info/top_level.txt +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/__init__.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/dictionary_parser.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/dictionary_writer.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/exceptions/__init__.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/exceptions/fhir_get_exception.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/exceptions/fhir_sender_exception.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/exceptions/fhir_validation_exception.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/fhir_bundle_appender.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/filters/__init__.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/filters/base_filter.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/filters/identifier_filter.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/filters/last_updated_filter.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/filters/property_filter.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/filters/property_missing_filter.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/filters/security_access_filter.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/filters/security_owner_filter.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/filters/sort_field.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/filters/source_filter.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/filters/version_filter.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/function_types.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/graph/__init__.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/graph/fhir_graph_mixin.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/graph/graph_definition.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/graph/graph_link_parameters.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/graph/graph_target_parameters.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/graph/test/__init__.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/graph/test/test_graph_mixin.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/graph/test/test_simulate_graph_processor_mixin.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/graph/test/test_simulate_graph_processor_mixin_caching.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/py.typed +0 -0
- {helix_fhir_client_sdk-4.2.2/helix_fhir_client_sdk/open_telemetry → helix_fhir_client_sdk-4.2.3/helix_fhir_client_sdk/queue}/__init__.py +0 -0
- {helix_fhir_client_sdk-4.2.2/helix_fhir_client_sdk/queue → helix_fhir_client_sdk-4.2.3/helix_fhir_client_sdk/responses}/__init__.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/responses/bundle_expander.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/responses/fhir_delete_response.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/responses/fhir_merge_response.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/responses/fhir_update_response.py +0 -0
- {helix_fhir_client_sdk-4.2.2/helix_fhir_client_sdk/responses → helix_fhir_client_sdk-4.2.3/helix_fhir_client_sdk/responses/get}/__init__.py +0 -0
- {helix_fhir_client_sdk-4.2.2/helix_fhir_client_sdk/responses/get → helix_fhir_client_sdk-4.2.3/helix_fhir_client_sdk/responses/get/test}/__init__.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/responses/get/test/test_get_bundle_response.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/responses/get/test/test_get_error_response.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/responses/get/test/test_get_list_by_resource_type_response.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/responses/get/test/test_get_list_response.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/responses/get/test/test_get_response_factory.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/responses/get/test/test_get_single_response.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/responses/get_result.py +0 -0
- {helix_fhir_client_sdk-4.2.2/helix_fhir_client_sdk/responses/get/test → helix_fhir_client_sdk-4.2.3/helix_fhir_client_sdk/responses/merge}/__init__.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/responses/merge/base_fhir_merge_resource_response_entry.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/responses/merge/fhir_merge_resource_response.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/responses/merge/fhir_merge_resource_response_entry.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/responses/merge/fhir_merge_response_entry_issue.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/responses/paging_result.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/responses/resource_separator.py +0 -0
- {helix_fhir_client_sdk-4.2.2/helix_fhir_client_sdk/responses/merge → helix_fhir_client_sdk-4.2.3/helix_fhir_client_sdk/responses/test}/__init__.py +0 -0
- {helix_fhir_client_sdk-4.2.2/helix_fhir_client_sdk/responses/test → helix_fhir_client_sdk-4.2.3/helix_fhir_client_sdk/responses/test/fhir_response_processor}/__init__.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/responses/test/fhir_response_processor/test_expand_or_separate_bundle_async.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/responses/test/fhir_response_processor/test_handle_response_200.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/responses/test/fhir_response_processor/test_handle_response_200_non_streaming.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/responses/test/fhir_response_processor/test_handle_response_200_non_streaming_separate_bundle.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/responses/test/fhir_response_processor/test_handle_response_200_streaming.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/responses/test/fhir_response_processor/test_handle_response_200_streaming_separate_bundle.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/responses/test/fhir_response_processor/test_handle_response_200_streaming_separate_bundle_ndjson.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/responses/test/fhir_response_processor/test_handle_response_404.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/responses/test/test_bundle_expander.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/responses/test/test_fhir_get_response.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/responses/test/test_resource_separator.py +0 -0
- {helix_fhir_client_sdk-4.2.2/helix_fhir_client_sdk/responses/test/fhir_response_processor → helix_fhir_client_sdk-4.2.3/helix_fhir_client_sdk/structures}/__init__.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/structures/get_access_token_result.py +0 -0
- {helix_fhir_client_sdk-4.2.2/helix_fhir_client_sdk/structures → helix_fhir_client_sdk-4.2.3/helix_fhir_client_sdk/test}/__init__.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/test/test_delete_mixin.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/test/test_fhir_auth_mixin.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/test/test_fhir_bundle_appender.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/test/test_merge_mixin.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/test/test_merge_mixin_resources.py +0 -0
- {helix_fhir_client_sdk-4.2.2/helix_fhir_client_sdk/test → helix_fhir_client_sdk-4.2.3/helix_fhir_client_sdk/utilities}/__init__.py +0 -0
- {helix_fhir_client_sdk-4.2.2/helix_fhir_client_sdk/utilities → helix_fhir_client_sdk-4.2.3/helix_fhir_client_sdk/utilities/async_parallel_processor}/__init__.py +0 -0
- {helix_fhir_client_sdk-4.2.2/helix_fhir_client_sdk/utilities/async_parallel_processor → helix_fhir_client_sdk-4.2.3/helix_fhir_client_sdk/utilities/async_parallel_processor/v1}/__init__.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/utilities/async_parallel_processor/v1/async_parallel_processor.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/utilities/async_runner.py +0 -0
- {helix_fhir_client_sdk-4.2.2/helix_fhir_client_sdk/utilities/async_parallel_processor/v1 → helix_fhir_client_sdk-4.2.3/helix_fhir_client_sdk/utilities/cache}/__init__.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/utilities/cache/request_cache_entry.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/utilities/fhir_client_logger.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/utilities/fhir_helper.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/utilities/fhir_scope_parser.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/utilities/fhir_scope_parser_result.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/utilities/fhir_server_helpers.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/utilities/hash_util.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/utilities/list_chunker.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/utilities/ndjson_chunk_streaming_parser.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/utilities/practitioner_generator.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/utilities/retryable_aiohttp_url_result.py +0 -0
- {helix_fhir_client_sdk-4.2.2/helix_fhir_client_sdk/utilities/cache → helix_fhir_client_sdk-4.2.3/helix_fhir_client_sdk/utilities/size_calculator}/__init__.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/utilities/size_calculator/size_calculator.py +0 -0
- {helix_fhir_client_sdk-4.2.2/helix_fhir_client_sdk/utilities/size_calculator → helix_fhir_client_sdk-4.2.3/helix_fhir_client_sdk/utilities/test}/__init__.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/utilities/test/test_async_runner.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/utilities/test/test_fhir_scope_parser.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/utilities/test/test_fhir_scope_parser_can_parse_scopes.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/utilities/test/test_fhir_scope_parser_correct_allow.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/utilities/test/test_json_helpers.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/utilities/test/test_list_chunker.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/utilities/test/test_ndjson_chunk_streaming_parser.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/utilities/test/test_retryable_aiohttp_client.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/utilities/url_checker.py +0 -0
- {helix_fhir_client_sdk-4.2.2/helix_fhir_client_sdk/utilities/test → helix_fhir_client_sdk-4.2.3/helix_fhir_client_sdk/validators}/__init__.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/validators/async_fhir_validator.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/validators/fhir_validator.py +0 -0
- {helix_fhir_client_sdk-4.2.2/helix_fhir_client_sdk/validators → helix_fhir_client_sdk-4.2.3/helix_fhir_client_sdk/validators/test}/__init__.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/validators/test/test_async_fhir_validator.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/well_known_configuration.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/pyproject.toml +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/setup.cfg +0 -0
- {helix_fhir_client_sdk-4.2.2/helix_fhir_client_sdk/validators/test → helix_fhir_client_sdk-4.2.3/tests}/__init__.py +0 -0
- {helix_fhir_client_sdk-4.2.2/tests → helix_fhir_client_sdk-4.2.3/tests/async}/__init__.py +0 -0
- {helix_fhir_client_sdk-4.2.2/tests/async → helix_fhir_client_sdk-4.2.3/tests/async/fhir_server}/__init__.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests/async/fhir_server/test_async_real_fhir_server_get_graph_large.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests/async/fhir_server/test_async_real_fhir_server_get_patients_large.py +0 -0
- {helix_fhir_client_sdk-4.2.2/tests/async/fhir_server → helix_fhir_client_sdk-4.2.3/tests/async/graph}/__init__.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests/async/graph/test_fhir_graph.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests/async/graph/test_fhir_graph_multiple_ids.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests/async/graph/test_fhir_graph_multiple_ids_in_batches.py +0 -0
- {helix_fhir_client_sdk-4.2.2/tests/async/graph → helix_fhir_client_sdk-4.2.3/tests/async/simulated_graph}/__init__.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests/async/simulated_graph/test_fhir_simulated_graph_async.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests/async/simulated_graph/test_fhir_simulated_graph_caching_async.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests/async/simulated_graph/test_fhir_simulated_graph_caching_input_cache_async.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests/async/simulated_graph/test_fhir_simulated_graph_caching_input_cache_if_modified_since_async.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests/async/simulated_graph/test_fhir_simulated_graph_caching_scope_parser_async.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests/async/simulated_graph/test_fhir_simulated_graph_separate_resources_async.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests/async/simulated_graph/test_fhir_simulated_graph_with_errors_async.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests/async/simulated_graph/test_fhir_simulated_graph_with_operation_outcomes_async.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests/async/simulated_graph/test_fhir_simulated_graph_with_url_column_async.py +0 -0
- {helix_fhir_client_sdk-4.2.2/tests/async/simulated_graph → helix_fhir_client_sdk-4.2.3/tests/async/simulated_graph_practitioner}/__init__.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests/async/simulated_graph_practitioner/test_fhir_simulated_graph_multiple_practitioner_async.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests/async/simulated_graph_practitioner/test_fhir_simulated_graph_multiple_practitioner_in_one_call_async.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests/async/simulated_graph_practitioner/test_fhir_simulated_graph_multiple_practitioner_in_one_call_async_with_request_size.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests/async/simulated_graph_practitioner/test_fhir_simulated_graph_practitioner_async.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests/async/simulated_graph_practitioner/test_fhir_simulated_graph_practitioner_separate_resources_async.py +0 -0
- {helix_fhir_client_sdk-4.2.2/tests/async/simulated_graph_practitioner → helix_fhir_client_sdk-4.2.3/tests/async/test_async_fhir_client_bundle}/__init__.py +0 -0
- {helix_fhir_client_sdk-4.2.2/tests/async/test_async_fhir_client_bundle → helix_fhir_client_sdk-4.2.3/tests/async/test_async_fhir_client_bundle/not_expanded}/__init__.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests/async/test_async_fhir_client_bundle/not_expanded/test_fhir_client_bundle_not_expanded.py +0 -0
- {helix_fhir_client_sdk-4.2.2/tests/async/test_async_fhir_client_bundle/not_expanded → helix_fhir_client_sdk-4.2.3/tests/async/test_async_fhir_client_bundle/not_separated}/__init__.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests/async/test_async_fhir_client_bundle/not_separated/test_fhir_client_bundle_not_separated.py +0 -0
- {helix_fhir_client_sdk-4.2.2/tests/async/test_async_fhir_client_bundle/not_separated → helix_fhir_client_sdk-4.2.3/tests/async/test_async_fhir_client_bundle/separated}/__init__.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests/async/test_async_fhir_client_bundle/separated/test_fhir_client_bundle_separated.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests/async/test_async_fhir_client_fetch_response_in_chunks.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests/async/test_async_fhir_client_patient_by_id.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests/async/test_async_fhir_client_patient_by_identifier_missing.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests/async/test_async_fhir_client_patient_delete.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests/async/test_async_fhir_client_patient_list.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests/async/test_async_fhir_client_patient_list_auth_fail.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests/async/test_async_fhir_client_patient_list_auth_fail_retry.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests/async/test_async_fhir_client_patient_list_auth_fail_retry_custom_refresh_function.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests/async/test_async_fhir_client_patient_list_resource_streaming.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests/async/test_async_fhir_client_patient_list_streaming.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests/async/test_async_fhir_client_patient_merge.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests/async/test_async_fhir_client_patient_merge_with_validate.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests/async/test_async_fhir_client_patient_update.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests/async/test_async_real_fhir_server_get_patients.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests/async/test_async_real_fhir_server_get_patients_error.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests/logger_for_test.py +0 -0
- {helix_fhir_client_sdk-4.2.2/tests/async/test_async_fhir_client_bundle/separated → helix_fhir_client_sdk-4.2.3/tests/sync}/__init__.py +0 -0
- {helix_fhir_client_sdk-4.2.2/tests/sync → helix_fhir_client_sdk-4.2.3/tests/sync/graph}/__init__.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests/sync/graph/test_fhir_graph.py +0 -0
- {helix_fhir_client_sdk-4.2.2/tests/sync/graph → helix_fhir_client_sdk-4.2.3/tests/sync/test_fhir_client_bundle}/__init__.py +0 -0
- {helix_fhir_client_sdk-4.2.2/tests/sync/test_fhir_client_bundle → helix_fhir_client_sdk-4.2.3/tests/sync/test_fhir_client_bundle/not_expanded}/__init__.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests/sync/test_fhir_client_bundle/not_expanded/test_fhir_client_bundle_not_expanded.py +0 -0
- {helix_fhir_client_sdk-4.2.2/tests/sync/test_fhir_client_bundle/not_expanded → helix_fhir_client_sdk-4.2.3/tests/sync/test_fhir_client_bundle/not_separated}/__init__.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests/sync/test_fhir_client_bundle/not_separated/test_fhir_client_bundle_not_separated.py +0 -0
- {helix_fhir_client_sdk-4.2.2/tests/sync/test_fhir_client_bundle/not_separated → helix_fhir_client_sdk-4.2.3/tests/sync/test_fhir_client_bundle/separated}/__init__.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests/sync/test_fhir_client_bundle/separated/test_fhir_client_bundle_separated.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests/sync/test_fhir_client_logs_not_contains_secret_information.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests/sync/test_fhir_client_patient_by_id.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests/sync/test_fhir_client_patient_delete.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests/sync/test_fhir_client_patient_list.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests/sync/test_fhir_client_patient_list_auth_fail.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests/sync/test_fhir_client_patient_list_auth_fail_retry.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests/sync/test_fhir_client_patient_merge.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests/sync/test_fhir_client_patient_update.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests/sync/test_fhir_client_patient_update_patch.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests/test_get_nested_property.py +0 -0
- {helix_fhir_client_sdk-4.2.2/tests/sync/test_fhir_client_bundle/separated → helix_fhir_client_sdk-4.2.3/tests_integration}/__init__.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests_integration/test_aetna_server_auth.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests_integration/test_aetna_server_auth_aiohttp.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests_integration/test_aetna_server_auth_httpx.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests_integration/test_dev_server_auth.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests_integration/test_dev_server_no_auth.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests_integration/test_emr_server_auth.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests_integration/test_firely_fhir.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests_integration/test_merge_vs_smart_merge_behavior.py +0 -0
- {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests_integration/test_staging_server_graph.py +0 -0
{helix_fhir_client_sdk-4.2.2/helix.fhir.client.sdk.egg-info → helix_fhir_client_sdk-4.2.3}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: helix.fhir.client.sdk
|
|
3
|
-
Version: 4.2.
|
|
3
|
+
Version: 4.2.3
|
|
4
4
|
Summary: helix.fhir.client.sdk
|
|
5
5
|
Home-page: https://github.com/icanbwell/helix.fhir.client.sdk
|
|
6
6
|
Author: Imran Qureshi
|
|
@@ -19,10 +19,7 @@ Requires-Dist: chardet
|
|
|
19
19
|
Requires-Dist: aiohttp
|
|
20
20
|
Requires-Dist: async-timeout>=4.0.3
|
|
21
21
|
Requires-Dist: python-dateutil
|
|
22
|
-
Requires-Dist: compressedfhir>=1.0.
|
|
23
|
-
Requires-Dist: certifi>=2025.1.31
|
|
24
|
-
Requires-Dist: opentelemetry-api>=1.39
|
|
25
|
-
Requires-Dist: multidict>=6
|
|
22
|
+
Requires-Dist: compressedfhir>=1.0.3
|
|
26
23
|
Dynamic: author
|
|
27
24
|
Dynamic: author-email
|
|
28
25
|
Dynamic: classifier
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
4.2.3
|
{helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3/helix.fhir.client.sdk.egg-info}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: helix.fhir.client.sdk
|
|
3
|
-
Version: 4.2.
|
|
3
|
+
Version: 4.2.3
|
|
4
4
|
Summary: helix.fhir.client.sdk
|
|
5
5
|
Home-page: https://github.com/icanbwell/helix.fhir.client.sdk
|
|
6
6
|
Author: Imran Qureshi
|
|
@@ -19,10 +19,7 @@ Requires-Dist: chardet
|
|
|
19
19
|
Requires-Dist: aiohttp
|
|
20
20
|
Requires-Dist: async-timeout>=4.0.3
|
|
21
21
|
Requires-Dist: python-dateutil
|
|
22
|
-
Requires-Dist: compressedfhir>=1.0.
|
|
23
|
-
Requires-Dist: certifi>=2025.1.31
|
|
24
|
-
Requires-Dist: opentelemetry-api>=1.39
|
|
25
|
-
Requires-Dist: multidict>=6
|
|
22
|
+
Requires-Dist: compressedfhir>=1.0.3
|
|
26
23
|
Dynamic: author
|
|
27
24
|
Dynamic: author-email
|
|
28
25
|
Dynamic: classifier
|
|
@@ -51,9 +51,6 @@ helix_fhir_client_sdk/graph/test/__init__.py
|
|
|
51
51
|
helix_fhir_client_sdk/graph/test/test_graph_mixin.py
|
|
52
52
|
helix_fhir_client_sdk/graph/test/test_simulate_graph_processor_mixin.py
|
|
53
53
|
helix_fhir_client_sdk/graph/test/test_simulate_graph_processor_mixin_caching.py
|
|
54
|
-
helix_fhir_client_sdk/open_telemetry/__init__.py
|
|
55
|
-
helix_fhir_client_sdk/open_telemetry/attribute_names.py
|
|
56
|
-
helix_fhir_client_sdk/open_telemetry/span_names.py
|
|
57
54
|
helix_fhir_client_sdk/queue/__init__.py
|
|
58
55
|
helix_fhir_client_sdk/queue/request_queue_mixin.py
|
|
59
56
|
helix_fhir_client_sdk/responses/__init__.py
|
{helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/fhir_auth_mixin.py
RENAMED
|
@@ -8,13 +8,11 @@ from threading import Lock
|
|
|
8
8
|
from typing import TYPE_CHECKING, Any, cast
|
|
9
9
|
|
|
10
10
|
from furl import furl
|
|
11
|
-
from opentelemetry import trace
|
|
12
11
|
|
|
13
12
|
from helix_fhir_client_sdk.function_types import (
|
|
14
13
|
RefreshTokenFunction,
|
|
15
14
|
RefreshTokenResult,
|
|
16
15
|
)
|
|
17
|
-
from helix_fhir_client_sdk.open_telemetry.span_names import FhirClientSdkOpenTelemetrySpanNames
|
|
18
16
|
from helix_fhir_client_sdk.responses.fhir_client_protocol import FhirClientProtocol
|
|
19
17
|
from helix_fhir_client_sdk.structures.get_access_token_result import (
|
|
20
18
|
GetAccessTokenResult,
|
|
@@ -33,9 +31,6 @@ if TYPE_CHECKING:
|
|
|
33
31
|
from helix_fhir_client_sdk.fhir_client import FhirClient
|
|
34
32
|
|
|
35
33
|
|
|
36
|
-
TRACER = trace.get_tracer(__name__)
|
|
37
|
-
|
|
38
|
-
|
|
39
34
|
class FhirAuthMixin(FhirClientProtocol):
|
|
40
35
|
_time_to_live_in_secs_for_cache: int = 10 * 60
|
|
41
36
|
|
|
@@ -124,15 +119,15 @@ class FhirAuthMixin(FhirClientProtocol):
|
|
|
124
119
|
access_token=self._access_token,
|
|
125
120
|
expiry_date=self._access_token_expiry_date,
|
|
126
121
|
)
|
|
127
|
-
with TRACER.start_as_current_span(FhirClientSdkOpenTelemetrySpanNames.GET_ACCESS_TOKEN):
|
|
128
|
-
refresh_token_result: RefreshTokenResult = await self._refresh_token_function(
|
|
129
|
-
url=None, status_code=0, current_token=None, expiry_date=None, retry_count=0
|
|
130
|
-
)
|
|
131
|
-
assert isinstance(refresh_token_result, RefreshTokenResult)
|
|
132
122
|
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
123
|
+
refresh_token_result: RefreshTokenResult = await self._refresh_token_function(
|
|
124
|
+
url=None, status_code=0, current_token=None, expiry_date=None, retry_count=0
|
|
125
|
+
)
|
|
126
|
+
assert isinstance(refresh_token_result, RefreshTokenResult)
|
|
127
|
+
|
|
128
|
+
self.set_access_token(refresh_token_result.access_token)
|
|
129
|
+
self.set_access_token_expiry_date(refresh_token_result.expiry_date)
|
|
130
|
+
return GetAccessTokenResult(access_token=self._access_token, expiry_date=self._access_token_expiry_date)
|
|
136
131
|
|
|
137
132
|
def authenticate_async_wrapper(self) -> RefreshTokenFunction:
|
|
138
133
|
"""
|
{helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/fhir_client.py
RENAMED
|
@@ -26,8 +26,6 @@ from compressedfhir.utilities.compressed_dict.v1.compressed_dict_storage_mode im
|
|
|
26
26
|
CompressedDictStorageMode,
|
|
27
27
|
)
|
|
28
28
|
from furl import furl
|
|
29
|
-
from opentelemetry import trace
|
|
30
|
-
from opentelemetry.trace import Status, StatusCode
|
|
31
29
|
from requests.adapters import BaseAdapter
|
|
32
30
|
|
|
33
31
|
from helix_fhir_client_sdk.dictionary_writer import convert_dict_to_str
|
|
@@ -48,7 +46,6 @@ from helix_fhir_client_sdk.graph.fhir_graph_mixin import FhirGraphMixin
|
|
|
48
46
|
from helix_fhir_client_sdk.graph.simulated_graph_processor_mixin import (
|
|
49
47
|
SimulatedGraphProcessorMixin,
|
|
50
48
|
)
|
|
51
|
-
from helix_fhir_client_sdk.open_telemetry.span_names import FhirClientSdkOpenTelemetrySpanNames
|
|
52
49
|
from helix_fhir_client_sdk.queue.request_queue_mixin import RequestQueueMixin
|
|
53
50
|
from helix_fhir_client_sdk.responses.fhir_client_protocol import FhirClientProtocol
|
|
54
51
|
from helix_fhir_client_sdk.responses.fhir_get_response import FhirGetResponse
|
|
@@ -58,8 +55,6 @@ from helix_fhir_client_sdk.structures.get_access_token_result import (
|
|
|
58
55
|
from helix_fhir_client_sdk.utilities.async_runner import AsyncRunner
|
|
59
56
|
from helix_fhir_client_sdk.utilities.fhir_client_logger import FhirClientLogger
|
|
60
57
|
|
|
61
|
-
TRACER = trace.get_tracer(__name__)
|
|
62
|
-
|
|
63
58
|
|
|
64
59
|
class FhirClient(
|
|
65
60
|
SimulatedGraphProcessorMixin,
|
|
@@ -611,34 +606,33 @@ class FhirClient(
|
|
|
611
606
|
|
|
612
607
|
:return: response
|
|
613
608
|
"""
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
if self._id
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
if
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
return full_response
|
|
609
|
+
instance_variables_text = convert_dict_to_str(FhirClientLogger.get_variables_to_log(vars(self)))
|
|
610
|
+
if self._logger:
|
|
611
|
+
# self._logger.info(f"LOGLEVEL: {self._log_level}")
|
|
612
|
+
self._logger.debug(f"parameters: {instance_variables_text}")
|
|
613
|
+
else:
|
|
614
|
+
self._internal_logger.debug(f"LOGLEVEL (InternalLogger): {self._log_level}")
|
|
615
|
+
self._internal_logger.debug(f"parameters: {instance_variables_text}")
|
|
616
|
+
ids: list[str] | None = None
|
|
617
|
+
if self._id:
|
|
618
|
+
ids = self._id if isinstance(self._id, list) else [self._id]
|
|
619
|
+
# actually make the request
|
|
620
|
+
full_response: FhirGetResponse | None = None
|
|
621
|
+
async for response in self._get_with_session_async(
|
|
622
|
+
ids=ids,
|
|
623
|
+
fn_handle_streaming_chunk=data_chunk_handler,
|
|
624
|
+
page_number=None,
|
|
625
|
+
id_above=None,
|
|
626
|
+
additional_parameters=None,
|
|
627
|
+
resource_type=None,
|
|
628
|
+
):
|
|
629
|
+
if response:
|
|
630
|
+
if full_response:
|
|
631
|
+
full_response = full_response.append(response)
|
|
632
|
+
else:
|
|
633
|
+
full_response = response
|
|
634
|
+
assert full_response
|
|
635
|
+
return full_response
|
|
642
636
|
|
|
643
637
|
async def get_raw_resources_async(
|
|
644
638
|
self,
|
|
@@ -679,37 +673,27 @@ class FhirClient(
|
|
|
679
673
|
|
|
680
674
|
:return: async generator of responses
|
|
681
675
|
"""
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
ids
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
):
|
|
704
|
-
yield response
|
|
705
|
-
except BaseException as exc: # propagate cancellation/errors but keep span informative
|
|
706
|
-
# Record exception in span
|
|
707
|
-
span.record_exception(exc)
|
|
708
|
-
span.set_status(Status(StatusCode.ERROR, str(exc)))
|
|
709
|
-
raise
|
|
710
|
-
finally:
|
|
711
|
-
# Ensure span is ended after generator is exhausted or error occurs
|
|
712
|
-
span.end()
|
|
676
|
+
instance_variables_text = convert_dict_to_str(FhirClientLogger.get_variables_to_log(vars(self)))
|
|
677
|
+
if self._logger:
|
|
678
|
+
# self._logger.info(f"LOGLEVEL: {self._log_level}")
|
|
679
|
+
self._logger.info(f"parameters: {instance_variables_text}")
|
|
680
|
+
else:
|
|
681
|
+
self._internal_logger.info(f"LOGLEVEL (InternalLogger): {self._log_level}")
|
|
682
|
+
self._internal_logger.info(f"parameters: {instance_variables_text}")
|
|
683
|
+
ids: list[str] | None = None
|
|
684
|
+
if self._id:
|
|
685
|
+
ids = self._id if isinstance(self._id, list) else [self._id]
|
|
686
|
+
# actually make the request
|
|
687
|
+
response: FhirGetResponse | None
|
|
688
|
+
async for response in self._get_with_session_async(
|
|
689
|
+
ids=ids,
|
|
690
|
+
fn_handle_streaming_chunk=data_chunk_handler,
|
|
691
|
+
page_number=None,
|
|
692
|
+
id_above=None,
|
|
693
|
+
additional_parameters=None,
|
|
694
|
+
resource_type=None,
|
|
695
|
+
):
|
|
696
|
+
yield response
|
|
713
697
|
|
|
714
698
|
def get(self) -> FhirGetResponse:
|
|
715
699
|
"""
|
|
@@ -62,7 +62,7 @@ class FhirDeleteMixin(FhirClientProtocol):
|
|
|
62
62
|
) as client:
|
|
63
63
|
response: RetryableAioHttpResponse = await client.delete(url=full_uri.tostr(), headers=headers)
|
|
64
64
|
request_id = response.response_headers.get("X-Request-ID", None)
|
|
65
|
-
self._internal_logger.
|
|
65
|
+
self._internal_logger.info(f"X-Request-ID={request_id}")
|
|
66
66
|
if response.status == 200:
|
|
67
67
|
if self._logger:
|
|
68
68
|
self._logger.info(f"Successfully deleted: {full_uri}")
|
|
@@ -131,7 +131,7 @@ class FhirDeleteMixin(FhirClientProtocol):
|
|
|
131
131
|
) as client:
|
|
132
132
|
response: RetryableAioHttpResponse = await client.delete(url=full_url, headers=headers)
|
|
133
133
|
request_id = response.response_headers.get("X-Request-ID", None)
|
|
134
|
-
self._internal_logger.
|
|
134
|
+
self._internal_logger.info(f"X-Request-ID={request_id}")
|
|
135
135
|
if response.status == 200:
|
|
136
136
|
if self._logger:
|
|
137
137
|
self._logger.info(f"Successfully deleted: {full_uri}")
|
|
@@ -193,7 +193,7 @@ class FhirMergeMixin(FhirClientProtocol):
|
|
|
193
193
|
)
|
|
194
194
|
response_status = response.status
|
|
195
195
|
request_id = response.response_headers.get("X-Request-ID", None)
|
|
196
|
-
self._internal_logger.
|
|
196
|
+
self._internal_logger.info(f"X-Request-ID={request_id}")
|
|
197
197
|
if response and response.status == 200:
|
|
198
198
|
response_text = await response.get_text_async()
|
|
199
199
|
if response_text:
|
|
@@ -136,7 +136,7 @@ class FhirMergeResourcesMixin(FhirClientProtocol):
|
|
|
136
136
|
)
|
|
137
137
|
response_status = response.status
|
|
138
138
|
request_id = response.response_headers.get("X-Request-ID", None)
|
|
139
|
-
self._internal_logger.
|
|
139
|
+
self._internal_logger.info(f"X-Request-ID={request_id}")
|
|
140
140
|
if response and response.status == 200:
|
|
141
141
|
response_text = await response.get_text_async()
|
|
142
142
|
if response_text:
|
|
@@ -355,7 +355,7 @@ class FhirMergeResourcesMixin(FhirClientProtocol):
|
|
|
355
355
|
)
|
|
356
356
|
response_status = response.status
|
|
357
357
|
request_id = response.response_headers.get("X-Request-ID", None)
|
|
358
|
-
self._internal_logger.
|
|
358
|
+
self._internal_logger.info(f"X-Request-ID={request_id}")
|
|
359
359
|
if response and response.status == 200:
|
|
360
360
|
response_text = await response.get_text_async()
|
|
361
361
|
if response_text:
|
|
@@ -82,7 +82,7 @@ class FhirPatchMixin(FhirClientProtocol):
|
|
|
82
82
|
response_status = response.status
|
|
83
83
|
response_text = await response.get_text_async()
|
|
84
84
|
request_id = response.response_headers.get("X-Request-ID", None)
|
|
85
|
-
self._internal_logger.
|
|
85
|
+
self._internal_logger.info(f"X-Request-ID={request_id}")
|
|
86
86
|
|
|
87
87
|
if response_status == 200:
|
|
88
88
|
if self._logger:
|
|
@@ -112,7 +112,7 @@ class FhirUpdateMixin(FhirClientProtocol):
|
|
|
112
112
|
) as client:
|
|
113
113
|
response = await client.put(url=full_uri.url, data=json_data, headers=headers)
|
|
114
114
|
request_id = response.response_headers.get("X-Request-ID", None)
|
|
115
|
-
self._internal_logger.
|
|
115
|
+
self._internal_logger.info(f"X-Request-ID={request_id}")
|
|
116
116
|
if response.status == 200:
|
|
117
117
|
if self._logger:
|
|
118
118
|
self._logger.info(f"Successfully updated: {full_uri}")
|
|
@@ -250,6 +250,7 @@ class SimulatedGraphProcessorMixin(ABC, FhirClientProtocol):
|
|
|
250
250
|
|
|
251
251
|
# Combine and process responses
|
|
252
252
|
parent_response = cast(FhirGetBundleResponse, parent_response.extend(child_responses))
|
|
253
|
+
parent_response = parent_response.remove_duplicates()
|
|
253
254
|
|
|
254
255
|
# Optional resource sorting
|
|
255
256
|
if sort_resources:
|
|
@@ -74,15 +74,6 @@ class RequestQueueMixin(ABC, FhirClientProtocol):
|
|
|
74
74
|
request_id: str | None = None
|
|
75
75
|
total_results = 0 # total number of resources returned so far
|
|
76
76
|
|
|
77
|
-
limit_count: int | None = self._limit
|
|
78
|
-
|
|
79
|
-
# if _count parameter is present in additional_parameters then set limit_count to it
|
|
80
|
-
if additional_parameters:
|
|
81
|
-
for param in additional_parameters:
|
|
82
|
-
if self._limit is None:
|
|
83
|
-
if param.startswith("_count="):
|
|
84
|
-
limit_count = int(param.split("=")[1])
|
|
85
|
-
|
|
86
77
|
# create url and query to request from FHIR server
|
|
87
78
|
resources_json: str = ""
|
|
88
79
|
full_url = await self.build_url(
|
|
@@ -177,7 +168,7 @@ class RequestQueueMixin(ABC, FhirClientProtocol):
|
|
|
177
168
|
)
|
|
178
169
|
|
|
179
170
|
request_id = response.response_headers.get("X-Request-ID", None)
|
|
180
|
-
self._internal_logger.
|
|
171
|
+
self._internal_logger.info(f"X-Request-ID={request_id}")
|
|
181
172
|
|
|
182
173
|
async for r in FhirResponseProcessor.handle_response(
|
|
183
174
|
internal_logger=self._internal_logger,
|
|
@@ -207,9 +198,9 @@ class RequestQueueMixin(ABC, FhirClientProtocol):
|
|
|
207
198
|
total_results += resource_count
|
|
208
199
|
|
|
209
200
|
# Stop if limit reached
|
|
210
|
-
if
|
|
201
|
+
if self._limit and total_results >= self._limit:
|
|
211
202
|
self._internal_logger.info(
|
|
212
|
-
f"Reached limit={
|
|
203
|
+
f"Reached limit={self._limit} after collecting {total_results} "
|
|
213
204
|
f"resources, stopping pagination"
|
|
214
205
|
)
|
|
215
206
|
return
|
|
@@ -348,7 +339,7 @@ class RequestQueueMixin(ABC, FhirClientProtocol):
|
|
|
348
339
|
)
|
|
349
340
|
|
|
350
341
|
request_id = response.response_headers.get("X-Request-ID", None)
|
|
351
|
-
self._internal_logger.
|
|
342
|
+
self._internal_logger.info(f"X-Request-ID={request_id}")
|
|
352
343
|
|
|
353
344
|
if response.status == 200:
|
|
354
345
|
response_next_url = None
|
|
@@ -124,7 +124,7 @@ class FhirClientProtocol(Protocol):
|
|
|
124
124
|
|
|
125
125
|
_log_all_response_urls: bool
|
|
126
126
|
|
|
127
|
-
_storage_mode: CompressedDictStorageMode
|
|
127
|
+
_storage_mode: CompressedDictStorageMode = CompressedDictStorageMode.raw()
|
|
128
128
|
""" storage mode to store the responses """
|
|
129
129
|
|
|
130
130
|
_create_operation_outcome_for_error: bool | None
|
|
@@ -119,7 +119,7 @@ class FhirGetResponse:
|
|
|
119
119
|
""" Count of cache hits """
|
|
120
120
|
self.results_by_url: list[RetryableAioHttpUrlResult] = results_by_url
|
|
121
121
|
""" Count of errors in the response by status """
|
|
122
|
-
self.storage_mode: CompressedDictStorageMode =
|
|
122
|
+
self.storage_mode: CompressedDictStorageMode = CompressedDictStorageMode.raw()
|
|
123
123
|
""" Storage mode for the response """
|
|
124
124
|
|
|
125
125
|
@abstractmethod
|
|
@@ -11,13 +11,10 @@ from aiohttp.streams import AsyncStreamIterator
|
|
|
11
11
|
from compressedfhir.utilities.compressed_dict.v1.compressed_dict_storage_mode import (
|
|
12
12
|
CompressedDictStorageMode,
|
|
13
13
|
)
|
|
14
|
-
from opentelemetry import trace
|
|
15
|
-
from opentelemetry.trace import Status, StatusCode
|
|
16
14
|
|
|
17
15
|
from helix_fhir_client_sdk.function_types import (
|
|
18
16
|
HandleStreamingChunkFunction,
|
|
19
17
|
)
|
|
20
|
-
from helix_fhir_client_sdk.open_telemetry.span_names import FhirClientSdkOpenTelemetrySpanNames
|
|
21
18
|
from helix_fhir_client_sdk.responses.bundle_expander import (
|
|
22
19
|
BundleExpander,
|
|
23
20
|
BundleExpanderResult,
|
|
@@ -40,8 +37,6 @@ from helix_fhir_client_sdk.utilities.retryable_aiohttp_response import (
|
|
|
40
37
|
RetryableAioHttpResponse,
|
|
41
38
|
)
|
|
42
39
|
|
|
43
|
-
TRACER = trace.get_tracer(__name__)
|
|
44
|
-
|
|
45
40
|
|
|
46
41
|
class FhirResponseProcessor:
|
|
47
42
|
"""
|
|
@@ -98,74 +93,60 @@ class FhirResponseProcessor:
|
|
|
98
93
|
|
|
99
94
|
:return: An async generator of FhirGetResponse objects.
|
|
100
95
|
"""
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
):
|
|
156
|
-
yield r
|
|
157
|
-
# Mark span as successful
|
|
158
|
-
span.set_status(Status(StatusCode.OK))
|
|
159
|
-
|
|
160
|
-
except Exception as e:
|
|
161
|
-
# Record exception in span
|
|
162
|
-
span.record_exception(e)
|
|
163
|
-
span.set_status(Status(StatusCode.ERROR, str(e)))
|
|
164
|
-
raise
|
|
165
|
-
|
|
166
|
-
finally:
|
|
167
|
-
# Ensure span is ended after generator is exhausted or error occurs
|
|
168
|
-
span.end()
|
|
96
|
+
# if request is ok (200) then return the data
|
|
97
|
+
if response.ok:
|
|
98
|
+
async for r in FhirResponseProcessor._handle_response_200(
|
|
99
|
+
full_url=full_url,
|
|
100
|
+
request_id=request_id,
|
|
101
|
+
response=response,
|
|
102
|
+
response_headers=response_headers,
|
|
103
|
+
fn_handle_streaming_chunk=fn_handle_streaming_chunk,
|
|
104
|
+
access_token=access_token,
|
|
105
|
+
resources_json=resources_json,
|
|
106
|
+
resource=resource,
|
|
107
|
+
id_=id_,
|
|
108
|
+
logger=logger,
|
|
109
|
+
use_data_streaming=use_data_streaming,
|
|
110
|
+
chunk_size=chunk_size,
|
|
111
|
+
extra_context_to_return=extra_context_to_return,
|
|
112
|
+
expand_fhir_bundle=expand_fhir_bundle,
|
|
113
|
+
url=url,
|
|
114
|
+
separate_bundle_resources=separate_bundle_resources,
|
|
115
|
+
storage_mode=storage_mode,
|
|
116
|
+
create_operation_outcome_for_error=create_operation_outcome_for_error,
|
|
117
|
+
):
|
|
118
|
+
yield r
|
|
119
|
+
elif response.status == 404: # not found
|
|
120
|
+
async for r in FhirResponseProcessor._handle_response_404(
|
|
121
|
+
full_url=full_url,
|
|
122
|
+
request_id=request_id,
|
|
123
|
+
response=response,
|
|
124
|
+
response_headers=response_headers,
|
|
125
|
+
extra_context_to_return=extra_context_to_return,
|
|
126
|
+
resource=resource,
|
|
127
|
+
logger=logger,
|
|
128
|
+
id_=id_,
|
|
129
|
+
access_token=access_token,
|
|
130
|
+
storage_mode=storage_mode,
|
|
131
|
+
create_operation_outcome_for_error=create_operation_outcome_for_error,
|
|
132
|
+
):
|
|
133
|
+
yield r
|
|
134
|
+
else: # unknown response
|
|
135
|
+
async for r in FhirResponseProcessor._handle_response_unknown(
|
|
136
|
+
full_url=full_url,
|
|
137
|
+
request_id=request_id,
|
|
138
|
+
response=response,
|
|
139
|
+
response_headers=response_headers,
|
|
140
|
+
resource=resource,
|
|
141
|
+
logger=logger,
|
|
142
|
+
access_token=access_token,
|
|
143
|
+
extra_context_to_return=extra_context_to_return,
|
|
144
|
+
id_=id_,
|
|
145
|
+
internal_logger=internal_logger,
|
|
146
|
+
storage_mode=storage_mode,
|
|
147
|
+
create_operation_outcome_for_error=create_operation_outcome_for_error,
|
|
148
|
+
):
|
|
149
|
+
yield r
|
|
169
150
|
|
|
170
151
|
@staticmethod
|
|
171
152
|
async def _handle_response_unknown(
|
|
@@ -59,7 +59,7 @@ class FhirGetBundleResponse(FhirGetResponse):
|
|
|
59
59
|
chunk_number: int | None = None,
|
|
60
60
|
cache_hits: int | None = None,
|
|
61
61
|
results_by_url: list[RetryableAioHttpUrlResult],
|
|
62
|
-
storage_mode: CompressedDictStorageMode,
|
|
62
|
+
storage_mode: CompressedDictStorageMode = CompressedDictStorageMode.raw(),
|
|
63
63
|
) -> None:
|
|
64
64
|
super().__init__(
|
|
65
65
|
request_id=request_id,
|
|
@@ -67,6 +67,7 @@ class FhirGetErrorResponse(FhirGetResponse):
|
|
|
67
67
|
storage_mode: CompressedDictStorageMode,
|
|
68
68
|
create_operation_outcome_for_error: bool | None,
|
|
69
69
|
) -> None:
|
|
70
|
+
storage_mode or CompressedDictStorageMode.raw()
|
|
70
71
|
super().__init__(
|
|
71
72
|
request_id=request_id,
|
|
72
73
|
url=url,
|
|
@@ -57,7 +57,7 @@ class FhirGetListByResourceTypeResponse(FhirGetResponse):
|
|
|
57
57
|
chunk_number: int | None = None,
|
|
58
58
|
cache_hits: int | None = None,
|
|
59
59
|
results_by_url: list[RetryableAioHttpUrlResult],
|
|
60
|
-
storage_mode: CompressedDictStorageMode,
|
|
60
|
+
storage_mode: CompressedDictStorageMode = CompressedDictStorageMode.raw(),
|
|
61
61
|
) -> None:
|
|
62
62
|
super().__init__(
|
|
63
63
|
request_id=request_id,
|
|
@@ -59,7 +59,7 @@ class FhirGetListResponse(FhirGetResponse):
|
|
|
59
59
|
chunk_number: int | None = None,
|
|
60
60
|
cache_hits: int | None = None,
|
|
61
61
|
results_by_url: list[RetryableAioHttpUrlResult],
|
|
62
|
-
storage_mode: CompressedDictStorageMode,
|
|
62
|
+
storage_mode: CompressedDictStorageMode = CompressedDictStorageMode.raw(),
|
|
63
63
|
) -> None:
|
|
64
64
|
super().__init__(
|
|
65
65
|
request_id=request_id,
|
|
@@ -50,6 +50,7 @@ class FhirGetResponseFactory:
|
|
|
50
50
|
storage_mode: CompressedDictStorageMode,
|
|
51
51
|
create_operation_outcome_for_error: bool | None,
|
|
52
52
|
) -> FhirGetResponse:
|
|
53
|
+
storage_mode = storage_mode or CompressedDictStorageMode.raw()
|
|
53
54
|
try:
|
|
54
55
|
if not error and response_text:
|
|
55
56
|
# test if responses is valid json
|
|
@@ -59,7 +59,7 @@ class FhirGetSingleResponse(FhirGetResponse):
|
|
|
59
59
|
chunk_number: int | None = None,
|
|
60
60
|
cache_hits: int | None = None,
|
|
61
61
|
results_by_url: list[RetryableAioHttpUrlResult],
|
|
62
|
-
storage_mode: CompressedDictStorageMode,
|
|
62
|
+
storage_mode: CompressedDictStorageMode = CompressedDictStorageMode.raw(),
|
|
63
63
|
) -> None:
|
|
64
64
|
super().__init__(
|
|
65
65
|
request_id=request_id,
|