sift-stack-py 0.16.2__tar.gz → 0.17.0.dev1__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.
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/PKG-INFO +22 -22
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_client/_internal/grpc_transport/transport.py +5 -20
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_client/_internal/low_level_wrappers/test_results.py +26 -7
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_client/_internal/rest.py +2 -2
- sift_stack_py-0.17.0.dev1/lib/sift_client/_internal/urls.py +55 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_client/client.py +32 -0
- sift_stack_py-0.17.0.dev1/lib/sift_client/pytest_plugin.py +1426 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_client/resources/test_results.py +15 -8
- sift_stack_py-0.17.0.dev1/lib/sift_client/sift_types/_mixins/simulated.py +32 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_client/sift_types/test_report.py +42 -3
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_client/transport/base_connection.py +6 -0
- sift_stack_py-0.17.0.dev1/lib/sift_client/util/test_results/__init__.py +153 -0
- sift_stack_py-0.17.0.dev1/lib/sift_client/util/test_results/bounds.py +148 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_client/util/test_results/context_manager.py +313 -101
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_stack_py.egg-info/PKG-INFO +22 -22
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_stack_py.egg-info/SOURCES.txt +3 -47
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_stack_py.egg-info/requires.txt +33 -19
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/pyproject.toml +66 -31
- sift_stack_py-0.16.2/lib/sift_client/_tests/__init__.py +0 -6
- sift_stack_py-0.16.2/lib/sift_client/_tests/_internal/low_level_wrappers/test_base.py +0 -165
- sift_stack_py-0.16.2/lib/sift_client/_tests/_internal/low_level_wrappers/test_ingestion.py +0 -56
- sift_stack_py-0.16.2/lib/sift_client/_tests/_internal/low_level_wrappers/test_upload.py +0 -62
- sift_stack_py-0.16.2/lib/sift_client/_tests/_internal/test_channels.py +0 -77
- sift_stack_py-0.16.2/lib/sift_client/_tests/_internal/test_gen_pyi.py +0 -74
- sift_stack_py-0.16.2/lib/sift_client/_tests/_internal/test_hdf5.py +0 -132
- sift_stack_py-0.16.2/lib/sift_client/_tests/_internal/test_stub_module/__init__.py +0 -6
- sift_stack_py-0.16.2/lib/sift_client/_tests/_internal/test_stub_module/test_py.py +0 -49
- sift_stack_py-0.16.2/lib/sift_client/_tests/_internal/test_sync_wrapper.py +0 -233
- sift_stack_py-0.16.2/lib/sift_client/_tests/_internal/test_tdms.py +0 -380
- sift_stack_py-0.16.2/lib/sift_client/_tests/_internal/test_transport.py +0 -66
- sift_stack_py-0.16.2/lib/sift_client/_tests/conftest.py +0 -87
- sift_stack_py-0.16.2/lib/sift_client/_tests/resources/test_assets.py +0 -198
- sift_stack_py-0.16.2/lib/sift_client/_tests/resources/test_calculated_channels.py +0 -557
- sift_stack_py-0.16.2/lib/sift_client/_tests/resources/test_channels.py +0 -414
- sift_stack_py-0.16.2/lib/sift_client/_tests/resources/test_data_imports.py +0 -516
- sift_stack_py-0.16.2/lib/sift_client/_tests/resources/test_exports.py +0 -340
- sift_stack_py-0.16.2/lib/sift_client/_tests/resources/test_file_attachments.py +0 -582
- sift_stack_py-0.16.2/lib/sift_client/_tests/resources/test_jobs.py +0 -625
- sift_stack_py-0.16.2/lib/sift_client/_tests/resources/test_ping.py +0 -62
- sift_stack_py-0.16.2/lib/sift_client/_tests/resources/test_reports.py +0 -414
- sift_stack_py-0.16.2/lib/sift_client/_tests/resources/test_rules.py +0 -873
- sift_stack_py-0.16.2/lib/sift_client/_tests/resources/test_runs.py +0 -571
- sift_stack_py-0.16.2/lib/sift_client/_tests/resources/test_tags.py +0 -141
- sift_stack_py-0.16.2/lib/sift_client/_tests/resources/test_test_results.py +0 -1130
- sift_stack_py-0.16.2/lib/sift_client/_tests/sift_types/test_asset.py +0 -186
- sift_stack_py-0.16.2/lib/sift_client/_tests/sift_types/test_base.py +0 -591
- sift_stack_py-0.16.2/lib/sift_client/_tests/sift_types/test_calculated_channel.py +0 -355
- sift_stack_py-0.16.2/lib/sift_client/_tests/sift_types/test_channel.py +0 -217
- sift_stack_py-0.16.2/lib/sift_client/_tests/sift_types/test_ingestion.py +0 -153
- sift_stack_py-0.16.2/lib/sift_client/_tests/sift_types/test_job.py +0 -281
- sift_stack_py-0.16.2/lib/sift_client/_tests/sift_types/test_report.py +0 -192
- sift_stack_py-0.16.2/lib/sift_client/_tests/sift_types/test_results.py +0 -497
- sift_stack_py-0.16.2/lib/sift_client/_tests/sift_types/test_rule.py +0 -222
- sift_stack_py-0.16.2/lib/sift_client/_tests/sift_types/test_run.py +0 -241
- sift_stack_py-0.16.2/lib/sift_client/_tests/sift_types/test_tag.py +0 -75
- sift_stack_py-0.16.2/lib/sift_client/_tests/test_client.py +0 -0
- sift_stack_py-0.16.2/lib/sift_client/_tests/util/conftest.py +0 -14
- sift_stack_py-0.16.2/lib/sift_client/_tests/util/test_cel_utils.py +0 -179
- sift_stack_py-0.16.2/lib/sift_client/_tests/util/test_test_results_utils.py +0 -703
- sift_stack_py-0.16.2/lib/sift_client/util/test_results/__init__.py +0 -126
- sift_stack_py-0.16.2/lib/sift_client/util/test_results/bounds.py +0 -83
- sift_stack_py-0.16.2/lib/sift_client/util/test_results/pytest_util.py +0 -206
- sift_stack_py-0.16.2/lib/sift_py/grpc/_interceptors/__init__.py +0 -0
- sift_stack_py-0.16.2/lib/sift_py/ingestion/config/yaml/__init__.py +0 -0
- sift_stack_py-0.16.2/lib/sift_py/report_templates/__init__.py +0 -0
- sift_stack_py-0.16.2/lib/sift_py/rule/__init__.py +0 -0
- sift_stack_py-0.16.2/lib/sift_py/yaml/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/LICENSE +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/README.md +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/annotation_logs/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/annotation_logs/v1/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/annotation_logs/v1/annotation_logs_pb2.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/annotation_logs/v1/annotation_logs_pb2.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/annotation_logs/v1/annotation_logs_pb2_grpc.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/annotation_logs/v1/annotation_logs_pb2_grpc.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/annotations/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/annotations/v1/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/annotations/v1/annotations_pb2.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/annotations/v1/annotations_pb2.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/annotations/v1/annotations_pb2_grpc.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/annotations/v1/annotations_pb2_grpc.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/api_keys/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/api_keys/v2/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/api_keys/v2/api_keys_pb2.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/api_keys/v2/api_keys_pb2.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/api_keys/v2/api_keys_pb2_grpc.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/api_keys/v2/api_keys_pb2_grpc.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/assets/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/assets/v1/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/assets/v1/assets_pb2.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/assets/v1/assets_pb2.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/assets/v1/assets_pb2_grpc.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/assets/v1/assets_pb2_grpc.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/calculated_channels/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/calculated_channels/v1/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/calculated_channels/v1/calculated_channels_pb2.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/calculated_channels/v1/calculated_channels_pb2.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/calculated_channels/v1/calculated_channels_pb2_grpc.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/calculated_channels/v1/calculated_channels_pb2_grpc.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/calculated_channels/v2/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/calculated_channels/v2/calculated_channels_pb2.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/calculated_channels/v2/calculated_channels_pb2.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/calculated_channels/v2/calculated_channels_pb2_grpc.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/calculated_channels/v2/calculated_channels_pb2_grpc.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/campaigns/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/campaigns/v1/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/campaigns/v1/campaigns_pb2.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/campaigns/v1/campaigns_pb2.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/campaigns/v1/campaigns_pb2_grpc.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/campaigns/v1/campaigns_pb2_grpc.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/channel_schemas/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/channel_schemas/v1/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/channel_schemas/v1/channel_schemas_pb2.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/channel_schemas/v1/channel_schemas_pb2.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/channel_schemas/v1/channel_schemas_pb2_grpc.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/channel_schemas/v1/channel_schemas_pb2_grpc.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/channel_schemas/v2/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/channel_schemas/v2/channel_schemas_pb2.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/channel_schemas/v2/channel_schemas_pb2.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/channel_schemas/v2/channel_schemas_pb2_grpc.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/channel_schemas/v2/channel_schemas_pb2_grpc.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/channels/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/channels/v2/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/channels/v2/channels_pb2.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/channels/v2/channels_pb2.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/channels/v2/channels_pb2_grpc.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/channels/v2/channels_pb2_grpc.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/channels/v3/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/channels/v3/channels_pb2.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/channels/v3/channels_pb2.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/channels/v3/channels_pb2_grpc.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/channels/v3/channels_pb2_grpc.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/comment/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/comment/v1/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/comment/v1/comment_pb2.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/comment/v1/comment_pb2.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/comment/v1/comment_pb2_grpc.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/comment/v1/comment_pb2_grpc.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/common/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/common/type/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/common/type/v1/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/common/type/v1/calculated_channels_pb2.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/common/type/v1/calculated_channels_pb2.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/common/type/v1/calculated_channels_pb2_grpc.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/common/type/v1/calculated_channels_pb2_grpc.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/common/type/v1/channel_bit_field_element_pb2.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/common/type/v1/channel_bit_field_element_pb2.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/common/type/v1/channel_bit_field_element_pb2_grpc.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/common/type/v1/channel_bit_field_element_pb2_grpc.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/common/type/v1/channel_config_pb2.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/common/type/v1/channel_config_pb2.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/common/type/v1/channel_config_pb2_grpc.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/common/type/v1/channel_config_pb2_grpc.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/common/type/v1/channel_data_type_pb2.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/common/type/v1/channel_data_type_pb2.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/common/type/v1/channel_data_type_pb2_grpc.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/common/type/v1/channel_data_type_pb2_grpc.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/common/type/v1/channel_enum_type_pb2.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/common/type/v1/channel_enum_type_pb2.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/common/type/v1/channel_enum_type_pb2_grpc.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/common/type/v1/channel_enum_type_pb2_grpc.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/common/type/v1/organization_pb2.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/common/type/v1/organization_pb2.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/common/type/v1/organization_pb2_grpc.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/common/type/v1/organization_pb2_grpc.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/common/type/v1/resource_identifier_pb2.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/common/type/v1/resource_identifier_pb2.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/common/type/v1/resource_identifier_pb2_grpc.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/common/type/v1/resource_identifier_pb2_grpc.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/common/type/v1/resource_ref_pb2.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/common/type/v1/resource_ref_pb2.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/common/type/v1/resource_ref_pb2_grpc.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/common/type/v1/resource_ref_pb2_grpc.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/common/type/v1/user_defined_functions_pb2.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/common/type/v1/user_defined_functions_pb2.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/common/type/v1/user_defined_functions_pb2_grpc.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/common/type/v1/user_defined_functions_pb2_grpc.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/common/type/v1/user_pb2.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/common/type/v1/user_pb2.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/common/type/v1/user_pb2_grpc.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/common/type/v1/user_pb2_grpc.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/common/v1/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/common/v1/action_type_pb2.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/common/v1/action_type_pb2.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/common/v1/action_type_pb2_grpc.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/common/v1/action_type_pb2_grpc.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/common/v1/filter_field_pb2.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/common/v1/filter_field_pb2.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/common/v1/filter_field_pb2_grpc.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/common/v1/filter_field_pb2_grpc.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/common/v1/resource_type_pb2.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/common/v1/resource_type_pb2.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/common/v1/resource_type_pb2_grpc.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/common/v1/resource_type_pb2_grpc.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/data/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/data/v1/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/data/v1/data_pb2.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/data/v1/data_pb2.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/data/v1/data_pb2_grpc.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/data/v1/data_pb2_grpc.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/data/v2/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/data/v2/data_pb2.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/data/v2/data_pb2.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/data/v2/data_pb2_grpc.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/data/v2/data_pb2_grpc.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/data_imports/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/data_imports/v2/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/data_imports/v2/data_imports_pb2.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/data_imports/v2/data_imports_pb2.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/data_imports/v2/data_imports_pb2_grpc.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/data_imports/v2/data_imports_pb2_grpc.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/dlq_errors/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/dlq_errors/v2/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/dlq_errors/v2/dlq_errors_pb2.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/dlq_errors/v2/dlq_errors_pb2.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/dlq_errors/v2/dlq_errors_pb2_grpc.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/dlq_errors/v2/dlq_errors_pb2_grpc.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/exports/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/exports/v1/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/exports/v1/exports_pb2.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/exports/v1/exports_pb2.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/exports/v1/exports_pb2_grpc.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/exports/v1/exports_pb2_grpc.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/external_sync/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/external_sync/v1/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/external_sync/v1/external_sync_pb2.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/external_sync/v1/external_sync_pb2.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/external_sync/v1/external_sync_pb2_grpc.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/external_sync/v1/external_sync_pb2_grpc.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/ingest/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/ingest/v1/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/ingest/v1/ingest_pb2.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/ingest/v1/ingest_pb2.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/ingest/v1/ingest_pb2_grpc.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/ingest/v1/ingest_pb2_grpc.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/ingestion_configs/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/ingestion_configs/v1/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/ingestion_configs/v1/ingestion_configs_pb2.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/ingestion_configs/v1/ingestion_configs_pb2.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/ingestion_configs/v1/ingestion_configs_pb2_grpc.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/ingestion_configs/v1/ingestion_configs_pb2_grpc.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/ingestion_configs/v2/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/ingestion_configs/v2/ingestion_configs_pb2.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/ingestion_configs/v2/ingestion_configs_pb2.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/ingestion_configs/v2/ingestion_configs_pb2_grpc.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/ingestion_configs/v2/ingestion_configs_pb2_grpc.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/jobs/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/jobs/v1/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/jobs/v1/jobs_pb2.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/jobs/v1/jobs_pb2.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/jobs/v1/jobs_pb2_grpc.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/jobs/v1/jobs_pb2_grpc.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/me/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/me/v2/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/me/v2/me_pb2.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/me/v2/me_pb2.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/me/v2/me_pb2_grpc.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/me/v2/me_pb2_grpc.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/metadata/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/metadata/v1/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/metadata/v1/metadata_pb2.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/metadata/v1/metadata_pb2.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/metadata/v1/metadata_pb2_grpc.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/metadata/v1/metadata_pb2_grpc.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/notifications/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/notifications/v1/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/notifications/v1/notifications_pb2.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/notifications/v1/notifications_pb2.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/notifications/v1/notifications_pb2_grpc.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/notifications/v1/notifications_pb2_grpc.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/panel_configurations/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/panel_configurations/v1/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/panel_configurations/v1/panel_configuration_pb2.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/panel_configurations/v1/panel_configuration_pb2.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/panel_configurations/v1/panel_configuration_pb2_grpc.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/panel_configurations/v1/panel_configuration_pb2_grpc.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/ping/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/ping/v1/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/ping/v1/ping_pb2.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/ping/v1/ping_pb2.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/ping/v1/ping_pb2_grpc.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/ping/v1/ping_pb2_grpc.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/protobuf_descriptors/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/protobuf_descriptors/v2/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/protobuf_descriptors/v2/channel_parsing_options_pb2.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/protobuf_descriptors/v2/channel_parsing_options_pb2.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/protobuf_descriptors/v2/channel_parsing_options_pb2_grpc.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/protobuf_descriptors/v2/channel_parsing_options_pb2_grpc.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/protobuf_descriptors/v2/protobuf_descriptors_pb2.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/protobuf_descriptors/v2/protobuf_descriptors_pb2.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/protobuf_descriptors/v2/protobuf_descriptors_pb2_grpc.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/protobuf_descriptors/v2/protobuf_descriptors_pb2_grpc.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/py.typed +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/remote_files/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/remote_files/v1/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/remote_files/v1/remote_files_pb2.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/remote_files/v1/remote_files_pb2.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/remote_files/v1/remote_files_pb2_grpc.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/remote_files/v1/remote_files_pb2_grpc.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/report_templates/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/report_templates/v1/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/report_templates/v1/report_templates_pb2.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/report_templates/v1/report_templates_pb2.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/report_templates/v1/report_templates_pb2_grpc.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/report_templates/v1/report_templates_pb2_grpc.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/reports/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/reports/v1/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/reports/v1/reports_pb2.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/reports/v1/reports_pb2.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/reports/v1/reports_pb2_grpc.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/reports/v1/reports_pb2_grpc.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/roles/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/roles/v2/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/roles/v2/roles_pb2.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/roles/v2/roles_pb2.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/roles/v2/roles_pb2_grpc.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/roles/v2/roles_pb2_grpc.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/rule_evaluation/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/rule_evaluation/v1/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/rule_evaluation/v1/rule_evaluation_pb2.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/rule_evaluation/v1/rule_evaluation_pb2.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/rule_evaluation/v1/rule_evaluation_pb2_grpc.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/rule_evaluation/v1/rule_evaluation_pb2_grpc.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/rules/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/rules/v1/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/rules/v1/rules_pb2.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/rules/v1/rules_pb2.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/rules/v1/rules_pb2_grpc.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/rules/v1/rules_pb2_grpc.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/runs/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/runs/v2/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/runs/v2/runs_pb2.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/runs/v2/runs_pb2.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/runs/v2/runs_pb2_grpc.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/runs/v2/runs_pb2_grpc.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/saved_searches/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/saved_searches/v1/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/saved_searches/v1/saved_searches_pb2.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/saved_searches/v1/saved_searches_pb2.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/saved_searches/v1/saved_searches_pb2_grpc.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/saved_searches/v1/saved_searches_pb2_grpc.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/tags/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/tags/v1/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/tags/v1/tags_pb2.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/tags/v1/tags_pb2.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/tags/v1/tags_pb2_grpc.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/tags/v1/tags_pb2_grpc.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/tags/v2/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/tags/v2/tags_pb2.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/tags/v2/tags_pb2.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/tags/v2/tags_pb2_grpc.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/tags/v2/tags_pb2_grpc.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/test_reports/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/test_reports/v1/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/test_reports/v1/test_reports_pb2.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/test_reports/v1/test_reports_pb2.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/test_reports/v1/test_reports_pb2_grpc.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/test_reports/v1/test_reports_pb2_grpc.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/unit/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/unit/v2/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/unit/v2/unit_pb2.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/unit/v2/unit_pb2.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/unit/v2/unit_pb2_grpc.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/unit/v2/unit_pb2_grpc.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/user_defined_functions/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/user_defined_functions/v1/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/user_defined_functions/v1/user_defined_functions_pb2.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/user_defined_functions/v1/user_defined_functions_pb2.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/user_defined_functions/v1/user_defined_functions_pb2_grpc.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/user_defined_functions/v1/user_defined_functions_pb2_grpc.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/user_groups/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/user_groups/v2/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/user_groups/v2/user_groups_pb2.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/user_groups/v2/user_groups_pb2.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/user_groups/v2/user_groups_pb2_grpc.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/user_groups/v2/user_groups_pb2_grpc.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/users/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/users/v2/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/users/v2/users_pb2.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/users/v2/users_pb2.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/users/v2/users_pb2_grpc.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/users/v2/users_pb2_grpc.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/views/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/views/v1/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/views/v1/views_pb2.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/views/v1/views_pb2.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/views/v1/views_pb2_grpc.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/views/v1/views_pb2_grpc.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/views/v2/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/views/v2/views_pb2.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/views/v2/views_pb2.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/views/v2/views_pb2_grpc.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/views/v2/views_pb2_grpc.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/webhooks/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/webhooks/v1/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/webhooks/v1/webhooks_pb2.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/webhooks/v1/webhooks_pb2.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/webhooks/v1/webhooks_pb2_grpc.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift/webhooks/v1/webhooks_pb2_grpc.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_client/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_client/_internal/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_client/_internal/gen_pyi.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_client/_internal/grpc_transport/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_client/_internal/grpc_transport/_async_interceptors/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_client/_internal/grpc_transport/_async_interceptors/base.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_client/_internal/grpc_transport/_async_interceptors/metadata.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_client/_internal/grpc_transport/_interceptors/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_client/_internal/grpc_transport/_interceptors/base.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_client/_internal/grpc_transport/_interceptors/context.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_client/_internal/grpc_transport/_interceptors/metadata.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_client/_internal/grpc_transport/_retry.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_client/_internal/grpc_transport/keepalive.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_client/_internal/grpc_transport/server_interceptors/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_client/_internal/grpc_transport/server_interceptors/server_interceptor.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_client/_internal/grpc_transport/transport_test.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_client/_internal/low_level_wrappers/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_client/_internal/low_level_wrappers/_test_results_log.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_client/_internal/low_level_wrappers/assets.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_client/_internal/low_level_wrappers/base.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_client/_internal/low_level_wrappers/calculated_channels.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_client/_internal/low_level_wrappers/channels.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_client/_internal/low_level_wrappers/data.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_client/_internal/low_level_wrappers/data_imports.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_client/_internal/low_level_wrappers/exports.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_client/_internal/low_level_wrappers/ingestion.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_client/_internal/low_level_wrappers/jobs.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_client/_internal/low_level_wrappers/ping.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_client/_internal/low_level_wrappers/remote_files.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_client/_internal/low_level_wrappers/reports.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_client/_internal/low_level_wrappers/rules.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_client/_internal/low_level_wrappers/runs.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_client/_internal/low_level_wrappers/tags.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_client/_internal/low_level_wrappers/upload.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_client/_internal/sync_wrapper.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_client/_internal/time.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_client/_internal/util/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_client/_internal/util/channels.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_client/_internal/util/executor.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_client/_internal/util/file.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_client/_internal/util/hdf5.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_client/_internal/util/numpy_types.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_client/_internal/util/tdms.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_client/_internal/util/timestamp.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_client/_internal/util/util.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_client/config.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_client/errors.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_client/py.typed +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_client/resources/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_client/resources/_base.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_client/resources/assets.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_client/resources/calculated_channels.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_client/resources/channels.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_client/resources/data_imports.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_client/resources/exports.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_client/resources/file_attachments.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_client/resources/ingestion.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_client/resources/jobs.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_client/resources/ping.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_client/resources/py.typed +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_client/resources/reports.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_client/resources/rules.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_client/resources/runs.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_client/resources/sync_stubs/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_client/resources/sync_stubs/__init__.pyi +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_client/resources/sync_stubs/py.typed +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_client/resources/tags.py +0 -0
- {sift_stack_py-0.16.2/lib/sift_client/_tests/_internal → sift_stack_py-0.17.0.dev1/lib/sift_client/scripts}/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_client/scripts/import_test_result_log.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_client/sift_types/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_client/sift_types/_base.py +0 -0
- {sift_stack_py-0.16.2/lib/sift_client/_tests/_internal/low_level_wrappers → sift_stack_py-0.17.0.dev1/lib/sift_client/sift_types/_mixins}/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_client/sift_types/_mixins/file_attachments.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_client/sift_types/asset.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_client/sift_types/calculated_channel.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_client/sift_types/channel.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_client/sift_types/data_import.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_client/sift_types/export.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_client/sift_types/file_attachment.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_client/sift_types/ingestion.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_client/sift_types/job.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_client/sift_types/report.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_client/sift_types/rule.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_client/sift_types/run.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_client/sift_types/tag.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_client/transport/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_client/transport/grpc_transport.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_client/transport/rest_transport.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_client/util/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_client/util/cel_utils.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_client/util/metadata.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_client/util/util.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/_internal/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/_internal/cel.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/_internal/channel.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/_internal/convert/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/_internal/convert/json.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/_internal/convert/protobuf.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/_internal/convert/timestamp.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/_internal/metadata.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/_internal/metadata_test.py +0 -0
- {sift_stack_py-0.16.2/lib/sift_client/_tests/resources → sift_stack_py-0.17.0.dev1/lib/sift_py/_internal/test_util}/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/_internal/test_util/channel.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/_internal/test_util/fn.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/_internal/test_util/server_interceptor.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/_internal/time.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/_internal/user.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/_rest_test.py +0 -0
- {sift_stack_py-0.16.2/lib/sift_client/_tests/sift_types → sift_stack_py-0.17.0.dev1/lib/sift_py/asset}/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/asset/_config_test.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/asset/_internal/shared.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/asset/_service_test.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/asset/config.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/asset/service.py +0 -0
- {sift_stack_py-0.16.2/lib/sift_client/_tests/util → sift_stack_py-0.17.0.dev1/lib/sift_py/calculated_channels}/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/calculated_channels/_service_test.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/calculated_channels/config.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/calculated_channels/service.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/data/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/data/_channel.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/data/_deserialize.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/data/_deserialize_test.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/data/_service_test.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/data/_validate.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/data/error.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/data/query.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/data/service.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/data_import/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/data_import/_config.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/data_import/_config_test.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/data_import/_csv_test.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/data_import/_hdf5_test.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/data_import/_parquet_test.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/data_import/_ros_channel.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/data_import/_rosbag_test.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/data_import/_status_test.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/data_import/_tdms_test.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/data_import/_utils.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/data_import/_utils_test.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/data_import/ch10.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/data_import/config.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/data_import/csv.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/data_import/hdf5.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/data_import/parquet.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/data_import/parquet_complex_types.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/data_import/rosbags.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/data_import/status.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/data_import/tdms.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/data_import/tempfile.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/data_import/time_format.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/error.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/file_attachment/__init__.py +0 -0
- {sift_stack_py-0.16.2/lib/sift_client/scripts → sift_stack_py-0.17.0.dev1/lib/sift_py/file_attachment/_internal}/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/file_attachment/_internal/download.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/file_attachment/_internal/upload.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/file_attachment/_service_test.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/file_attachment/entity.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/file_attachment/metadata.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/file_attachment/service.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/grpc/__init__.py +0 -0
- {sift_stack_py-0.16.2/lib/sift_client/sift_types/_mixins → sift_stack_py-0.17.0.dev1/lib/sift_py/grpc/_async_interceptors}/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/grpc/_async_interceptors/base.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/grpc/_async_interceptors/metadata.py +0 -0
- {sift_stack_py-0.16.2/lib/sift_py/_internal/test_util → sift_stack_py-0.17.0.dev1/lib/sift_py/grpc/_interceptors}/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/grpc/_interceptors/base.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/grpc/_interceptors/context.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/grpc/_interceptors/metadata.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/grpc/_retry.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/grpc/keepalive.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/grpc/transport.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/grpc/transport_test.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/ingestion/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/ingestion/_internal/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/ingestion/_internal/channel.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/ingestion/_internal/error.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/ingestion/_internal/ingest.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/ingestion/_internal/ingest_test.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/ingestion/_internal/ingestion_config.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/ingestion/_internal/run.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/ingestion/_service_test.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/ingestion/buffer.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/ingestion/channel.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/ingestion/config/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/ingestion/config/_telemetry_test.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/ingestion/config/telemetry.py +0 -0
- {sift_stack_py-0.16.2/lib/sift_py/asset → sift_stack_py-0.17.0.dev1/lib/sift_py/ingestion/config/yaml}/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/ingestion/config/yaml/error.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/ingestion/config/yaml/load.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/ingestion/config/yaml/spec.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/ingestion/config/yaml/test_load.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/ingestion/flow.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/ingestion/manager.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/ingestion/rule/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/ingestion/rule/config.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/ingestion/service.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/py.typed +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/report/_report_test.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/report/service.py +0 -0
- {sift_stack_py-0.16.2/lib/sift_py/calculated_channels → sift_stack_py-0.17.0.dev1/lib/sift_py/report_templates}/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/report_templates/_config_test.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/report_templates/_service_test.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/report_templates/config.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/report_templates/service.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/rest.py +0 -0
- {sift_stack_py-0.16.2/lib/sift_py/file_attachment/_internal → sift_stack_py-0.17.0.dev1/lib/sift_py/rule}/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/rule/_config_test.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/rule/_service_test.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/rule/config.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/rule/service.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/rule_evaluation/_service_test.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/rule_evaluation/service.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/tag/_internal/shared.py +0 -0
- {sift_stack_py-0.16.2/lib/sift_py/grpc/_async_interceptors → sift_stack_py-0.17.0.dev1/lib/sift_py/yaml}/__init__.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/yaml/_channel_test.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/yaml/_rule_test.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/yaml/_utils_test.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/yaml/calculated_channels.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/yaml/channel.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/yaml/report_templates.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/yaml/rule.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_py/yaml/utils.py +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_stack_py.egg-info/dependency_links.txt +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_stack_py.egg-info/entry_points.txt +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/lib/sift_stack_py.egg-info/top_level.txt +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/setup.cfg +0 -0
- {sift_stack_py-0.16.2 → sift_stack_py-0.17.0.dev1}/setup.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: sift_stack_py
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.17.0.dev1
|
|
4
4
|
Summary: Python client library for the Sift API
|
|
5
5
|
Maintainer-email: Sift Software Engineers <engineering@siftstack.com>
|
|
6
6
|
License: Copyright (c) 2024 Azimuth Industries Inc.
|
|
@@ -53,7 +53,7 @@ Requires-Dist: npTDMS~=1.9; extra == "all"
|
|
|
53
53
|
Requires-Dist: polars~=1.8; extra == "all"
|
|
54
54
|
Requires-Dist: pyOpenSSL<24.0.0; extra == "all"
|
|
55
55
|
Requires-Dist: pyarrow>=17.0.0; extra == "all"
|
|
56
|
-
Requires-Dist: rosbags~=0.0; extra == "all"
|
|
56
|
+
Requires-Dist: rosbags~=0.0; python_full_version >= "3.8.2" and extra == "all"
|
|
57
57
|
Requires-Dist: sift-stream-bindings==0.3.0; extra == "all"
|
|
58
58
|
Requires-Dist: types-pyOpenSSL<24.0.0; extra == "all"
|
|
59
59
|
Provides-Extra: build
|
|
@@ -89,7 +89,7 @@ Requires-Dist: pytest-benchmark==4.0.0; extra == "dev-all"
|
|
|
89
89
|
Requires-Dist: pytest-dotenv==0.5.2; extra == "dev-all"
|
|
90
90
|
Requires-Dist: pytest-mock==3.14.0; extra == "dev-all"
|
|
91
91
|
Requires-Dist: pytest==8.2.2; extra == "dev-all"
|
|
92
|
-
Requires-Dist: rosbags~=0.0; extra == "dev-all"
|
|
92
|
+
Requires-Dist: rosbags~=0.0; python_full_version >= "3.8.2" and extra == "dev-all"
|
|
93
93
|
Requires-Dist: ruff~=0.12.10; extra == "dev-all"
|
|
94
94
|
Requires-Dist: sift-stream-bindings==0.3.0; extra == "dev-all"
|
|
95
95
|
Requires-Dist: tomlkit~=0.13.3; extra == "dev-all"
|
|
@@ -106,27 +106,27 @@ Requires-Dist: pytest==8.2.2; extra == "development"
|
|
|
106
106
|
Requires-Dist: ruff~=0.12.10; extra == "development"
|
|
107
107
|
Requires-Dist: tomlkit~=0.13.3; extra == "development"
|
|
108
108
|
Provides-Extra: docs
|
|
109
|
-
Requires-Dist: griffe-pydantic==1.3.1; extra == "docs"
|
|
110
|
-
Requires-Dist: mike==2.1.3; extra == "docs"
|
|
111
|
-
Requires-Dist: mkdocs-api-autonav==0.4.0; extra == "docs"
|
|
112
|
-
Requires-Dist: mkdocs-include-markdown-plugin==7.1.6; extra == "docs"
|
|
113
|
-
Requires-Dist: mkdocs-jupyter==0.25.1; extra == "docs"
|
|
114
|
-
Requires-Dist: mkdocs-material==9.7.5; extra == "docs"
|
|
115
|
-
Requires-Dist: mkdocs==1.6.1; extra == "docs"
|
|
116
|
-
Requires-Dist: mkdocstrings[python]==1.0.3; extra == "docs"
|
|
109
|
+
Requires-Dist: griffe-pydantic==1.3.1; python_version >= "3.10" and extra == "docs"
|
|
110
|
+
Requires-Dist: mike==2.1.3; python_version >= "3.10" and extra == "docs"
|
|
111
|
+
Requires-Dist: mkdocs-api-autonav==0.4.0; python_version >= "3.10" and extra == "docs"
|
|
112
|
+
Requires-Dist: mkdocs-include-markdown-plugin==7.1.6; python_version >= "3.10" and extra == "docs"
|
|
113
|
+
Requires-Dist: mkdocs-jupyter==0.25.1; python_version >= "3.10" and extra == "docs"
|
|
114
|
+
Requires-Dist: mkdocs-material==9.7.5; python_version >= "3.10" and extra == "docs"
|
|
115
|
+
Requires-Dist: mkdocs==1.6.1; python_version >= "3.10" and extra == "docs"
|
|
116
|
+
Requires-Dist: mkdocstrings[python]==1.0.3; python_version >= "3.10" and extra == "docs"
|
|
117
117
|
Provides-Extra: docs-build
|
|
118
118
|
Requires-Dist: build==1.2.1; extra == "docs-build"
|
|
119
119
|
Requires-Dist: cffi~=1.14; extra == "docs-build"
|
|
120
|
-
Requires-Dist: griffe-pydantic==1.3.1; extra == "docs-build"
|
|
120
|
+
Requires-Dist: griffe-pydantic==1.3.1; python_version >= "3.10" and extra == "docs-build"
|
|
121
121
|
Requires-Dist: grpcio-testing~=1.13; extra == "docs-build"
|
|
122
122
|
Requires-Dist: h5py~=3.11; extra == "docs-build"
|
|
123
|
-
Requires-Dist: mike==2.1.3; extra == "docs-build"
|
|
124
|
-
Requires-Dist: mkdocs-api-autonav==0.4.0; extra == "docs-build"
|
|
125
|
-
Requires-Dist: mkdocs-include-markdown-plugin==7.1.6; extra == "docs-build"
|
|
126
|
-
Requires-Dist: mkdocs-jupyter==0.25.1; extra == "docs-build"
|
|
127
|
-
Requires-Dist: mkdocs-material==9.7.5; extra == "docs-build"
|
|
128
|
-
Requires-Dist: mkdocs==1.6.1; extra == "docs-build"
|
|
129
|
-
Requires-Dist: mkdocstrings[python]==1.0.3; extra == "docs-build"
|
|
123
|
+
Requires-Dist: mike==2.1.3; python_version >= "3.10" and extra == "docs-build"
|
|
124
|
+
Requires-Dist: mkdocs-api-autonav==0.4.0; python_version >= "3.10" and extra == "docs-build"
|
|
125
|
+
Requires-Dist: mkdocs-include-markdown-plugin==7.1.6; python_version >= "3.10" and extra == "docs-build"
|
|
126
|
+
Requires-Dist: mkdocs-jupyter==0.25.1; python_version >= "3.10" and extra == "docs-build"
|
|
127
|
+
Requires-Dist: mkdocs-material==9.7.5; python_version >= "3.10" and extra == "docs-build"
|
|
128
|
+
Requires-Dist: mkdocs==1.6.1; python_version >= "3.10" and extra == "docs-build"
|
|
129
|
+
Requires-Dist: mkdocstrings[python]==1.0.3; python_version >= "3.10" and extra == "docs-build"
|
|
130
130
|
Requires-Dist: mypy==1.10.0; extra == "docs-build"
|
|
131
131
|
Requires-Dist: npTDMS~=1.9; extra == "docs-build"
|
|
132
132
|
Requires-Dist: pdoc==14.5.0; extra == "docs-build"
|
|
@@ -139,7 +139,7 @@ Requires-Dist: pytest-benchmark==4.0.0; extra == "docs-build"
|
|
|
139
139
|
Requires-Dist: pytest-dotenv==0.5.2; extra == "docs-build"
|
|
140
140
|
Requires-Dist: pytest-mock==3.14.0; extra == "docs-build"
|
|
141
141
|
Requires-Dist: pytest==8.2.2; extra == "docs-build"
|
|
142
|
-
Requires-Dist: rosbags~=0.0; extra == "docs-build"
|
|
142
|
+
Requires-Dist: rosbags~=0.0; python_full_version >= "3.8.2" and extra == "docs-build"
|
|
143
143
|
Requires-Dist: ruff~=0.12.10; extra == "docs-build"
|
|
144
144
|
Requires-Dist: sift-stream-bindings==0.3.0; extra == "docs-build"
|
|
145
145
|
Requires-Dist: tomlkit~=0.13.3; extra == "docs-build"
|
|
@@ -148,7 +148,7 @@ Provides-Extra: file-imports
|
|
|
148
148
|
Requires-Dist: h5py~=3.11; extra == "file-imports"
|
|
149
149
|
Requires-Dist: npTDMS~=1.9; extra == "file-imports"
|
|
150
150
|
Requires-Dist: polars~=1.8; extra == "file-imports"
|
|
151
|
-
Requires-Dist: rosbags~=0.0; extra == "file-imports"
|
|
151
|
+
Requires-Dist: rosbags~=0.0; python_full_version >= "3.8.2" and extra == "file-imports"
|
|
152
152
|
Provides-Extra: hdf5
|
|
153
153
|
Requires-Dist: h5py~=3.11; extra == "hdf5"
|
|
154
154
|
Requires-Dist: polars~=1.8; extra == "hdf5"
|
|
@@ -157,7 +157,7 @@ Requires-Dist: cffi~=1.14; extra == "openssl"
|
|
|
157
157
|
Requires-Dist: pyOpenSSL<24.0.0; extra == "openssl"
|
|
158
158
|
Requires-Dist: types-pyOpenSSL<24.0.0; extra == "openssl"
|
|
159
159
|
Provides-Extra: rosbags
|
|
160
|
-
Requires-Dist: rosbags~=0.0; extra == "rosbags"
|
|
160
|
+
Requires-Dist: rosbags~=0.0; python_full_version >= "3.8.2" and extra == "rosbags"
|
|
161
161
|
Provides-Extra: sift-stream
|
|
162
162
|
Requires-Dist: sift-stream-bindings==0.3.0; extra == "sift-stream"
|
|
163
163
|
Provides-Extra: sift-stream-bindings
|
|
@@ -8,7 +8,6 @@ from __future__ import annotations
|
|
|
8
8
|
|
|
9
9
|
from importlib.metadata import PackageNotFoundError, version
|
|
10
10
|
from typing import TYPE_CHECKING, Any, TypedDict, cast
|
|
11
|
-
from urllib.parse import ParseResult, urlparse
|
|
12
11
|
|
|
13
12
|
import grpc
|
|
14
13
|
import grpc.aio as grpc_aio
|
|
@@ -21,6 +20,7 @@ from sift_client._internal.grpc_transport._interceptors.metadata import (
|
|
|
21
20
|
Metadata,
|
|
22
21
|
MetadataInterceptor,
|
|
23
22
|
)
|
|
23
|
+
from sift_client._internal.urls import parse_host
|
|
24
24
|
|
|
25
25
|
if TYPE_CHECKING:
|
|
26
26
|
from sift_client._internal.grpc_transport._async_interceptors.base import ClientAsyncInterceptor
|
|
@@ -78,7 +78,7 @@ def use_sift_channel(
|
|
|
78
78
|
|
|
79
79
|
credentials = get_ssl_credentials(cert_via_openssl)
|
|
80
80
|
options = _compute_channel_options(config)
|
|
81
|
-
api_uri =
|
|
81
|
+
api_uri = parse_host(config["uri"])
|
|
82
82
|
channel = grpc.secure_channel(api_uri, credentials, options)
|
|
83
83
|
interceptors = _compute_sift_interceptors(config, metadata)
|
|
84
84
|
return grpc.intercept_channel(channel, *interceptors)
|
|
@@ -98,7 +98,7 @@ def use_sift_async_channel(
|
|
|
98
98
|
return _use_insecure_sift_async_channel(config, metadata)
|
|
99
99
|
|
|
100
100
|
return grpc_aio.secure_channel(
|
|
101
|
-
target=
|
|
101
|
+
target=parse_host(config["uri"]),
|
|
102
102
|
credentials=get_ssl_credentials(cert_via_openssl),
|
|
103
103
|
options=_compute_channel_options(config),
|
|
104
104
|
interceptors=_compute_sift_async_interceptors(config, metadata),
|
|
@@ -112,7 +112,7 @@ def _use_insecure_sift_channel(
|
|
|
112
112
|
FOR DEVELOPMENT PURPOSES ONLY
|
|
113
113
|
"""
|
|
114
114
|
options = _compute_channel_options(config)
|
|
115
|
-
api_uri =
|
|
115
|
+
api_uri = parse_host(config["uri"])
|
|
116
116
|
channel = grpc.insecure_channel(api_uri, options)
|
|
117
117
|
interceptors = _compute_sift_interceptors(config, metadata)
|
|
118
118
|
return grpc.intercept_channel(channel, *interceptors)
|
|
@@ -125,7 +125,7 @@ def _use_insecure_sift_async_channel(
|
|
|
125
125
|
FOR DEVELOPMENT PURPOSES ONLY
|
|
126
126
|
"""
|
|
127
127
|
return grpc_aio.insecure_channel(
|
|
128
|
-
target=
|
|
128
|
+
target=parse_host(config["uri"]),
|
|
129
129
|
options=_compute_channel_options(config),
|
|
130
130
|
interceptors=_compute_sift_async_interceptors(config, metadata),
|
|
131
131
|
)
|
|
@@ -205,21 +205,6 @@ def _metadata_async_interceptor(
|
|
|
205
205
|
return MetadataAsyncInterceptor(md)
|
|
206
206
|
|
|
207
207
|
|
|
208
|
-
def _clean_uri(uri: str, use_ssl: bool) -> str:
|
|
209
|
-
"""
|
|
210
|
-
This will automatically transform the URI to an acceptable form regardless of whether or not
|
|
211
|
-
users included the scheme in the URL or included trailing slashes.
|
|
212
|
-
"""
|
|
213
|
-
|
|
214
|
-
if "http://" in uri or "https://" in uri:
|
|
215
|
-
parsed: ParseResult = urlparse(uri)
|
|
216
|
-
return parsed.netloc
|
|
217
|
-
|
|
218
|
-
full_uri = f"https://{uri}" if use_ssl else f"http://{uri}"
|
|
219
|
-
parsed_res: ParseResult = urlparse(full_uri)
|
|
220
|
-
return parsed_res.netloc
|
|
221
|
-
|
|
222
|
-
|
|
223
208
|
def _compute_user_agent() -> str:
|
|
224
209
|
try:
|
|
225
210
|
return f"sift_stack_py/{version('sift_stack_py')}"
|
|
@@ -3,7 +3,7 @@ from __future__ import annotations
|
|
|
3
3
|
import logging
|
|
4
4
|
import uuid
|
|
5
5
|
from pathlib import Path
|
|
6
|
-
from typing import TYPE_CHECKING, Any, cast
|
|
6
|
+
from typing import TYPE_CHECKING, Any, TypeVar, cast
|
|
7
7
|
|
|
8
8
|
from google.protobuf import json_format
|
|
9
9
|
from sift.test_reports.v1.test_reports_pb2 import (
|
|
@@ -68,6 +68,9 @@ if TYPE_CHECKING:
|
|
|
68
68
|
logger = logging.getLogger(__name__)
|
|
69
69
|
|
|
70
70
|
|
|
71
|
+
_EntityT = TypeVar("_EntityT", TestReport, TestStep, TestMeasurement)
|
|
72
|
+
|
|
73
|
+
|
|
71
74
|
class TestResultsLowLevelClient(LowLevelClientBase, WithGrpcClient):
|
|
72
75
|
"""Low-level client for the TestResultsAPI.
|
|
73
76
|
|
|
@@ -82,6 +85,16 @@ class TestResultsLowLevelClient(LowLevelClientBase, WithGrpcClient):
|
|
|
82
85
|
"""
|
|
83
86
|
super().__init__(grpc_client)
|
|
84
87
|
|
|
88
|
+
@staticmethod
|
|
89
|
+
def _mark_simulated(instance: _EntityT) -> _EntityT:
|
|
90
|
+
"""Stamp an entity as having been produced by the simulate path.
|
|
91
|
+
|
|
92
|
+
Mirrors the ``__dict__`` write used by ``BaseType._apply_client_to_instance``
|
|
93
|
+
to bypass pydantic's frozen-model guard.
|
|
94
|
+
"""
|
|
95
|
+
instance.__dict__["_simulated"] = True
|
|
96
|
+
return instance
|
|
97
|
+
|
|
85
98
|
@staticmethod
|
|
86
99
|
def simulate_create_test_report_response(
|
|
87
100
|
request: CreateTestReportRequest,
|
|
@@ -387,7 +400,7 @@ class TestResultsLowLevelClient(LowLevelClientBase, WithGrpcClient):
|
|
|
387
400
|
request,
|
|
388
401
|
response_id=simulated_proto.test_report_id,
|
|
389
402
|
)
|
|
390
|
-
return TestReport._from_proto(simulated_proto)
|
|
403
|
+
return self._mark_simulated(TestReport._from_proto(simulated_proto))
|
|
391
404
|
|
|
392
405
|
response = await self._grpc_client.get_stub(TestReportServiceStub).CreateTestReport(request)
|
|
393
406
|
grpc_test_report = cast("CreateTestReportResponse", response).test_report
|
|
@@ -505,7 +518,9 @@ class TestResultsLowLevelClient(LowLevelClientBase, WithGrpcClient):
|
|
|
505
518
|
if log_file is not None or simulate:
|
|
506
519
|
if log_file is not None:
|
|
507
520
|
log_request_to_file(log_file, "UpdateTestReport", request)
|
|
508
|
-
return self.
|
|
521
|
+
return self._mark_simulated(
|
|
522
|
+
self.simulate_update_test_report_response(request, existing=existing)
|
|
523
|
+
)
|
|
509
524
|
|
|
510
525
|
response = await self._grpc_client.get_stub(TestReportServiceStub).UpdateTestReport(request)
|
|
511
526
|
grpc_test_report = cast("UpdateTestReportResponse", response).test_report
|
|
@@ -560,7 +575,7 @@ class TestResultsLowLevelClient(LowLevelClientBase, WithGrpcClient):
|
|
|
560
575
|
request,
|
|
561
576
|
response_id=simulated_proto.test_step_id,
|
|
562
577
|
)
|
|
563
|
-
return TestStep._from_proto(simulated_proto)
|
|
578
|
+
return self._mark_simulated(TestStep._from_proto(simulated_proto))
|
|
564
579
|
|
|
565
580
|
response = await self._grpc_client.get_stub(TestReportServiceStub).CreateTestStep(request)
|
|
566
581
|
grpc_test_step = cast("CreateTestStepResponse", response).test_step
|
|
@@ -661,7 +676,9 @@ class TestResultsLowLevelClient(LowLevelClientBase, WithGrpcClient):
|
|
|
661
676
|
if log_file is not None or simulate:
|
|
662
677
|
if log_file is not None:
|
|
663
678
|
log_request_to_file(log_file, "UpdateTestStep", request)
|
|
664
|
-
return self.
|
|
679
|
+
return self._mark_simulated(
|
|
680
|
+
self.simulate_update_test_step_response(request, existing=existing)
|
|
681
|
+
)
|
|
665
682
|
|
|
666
683
|
response = await self._grpc_client.get_stub(TestReportServiceStub).UpdateTestStep(request)
|
|
667
684
|
grpc_test_step = cast("UpdateTestStepResponse", response).test_step
|
|
@@ -716,7 +733,7 @@ class TestResultsLowLevelClient(LowLevelClientBase, WithGrpcClient):
|
|
|
716
733
|
request,
|
|
717
734
|
response_id=simulated_proto.measurement_id,
|
|
718
735
|
)
|
|
719
|
-
return TestMeasurement._from_proto(simulated_proto)
|
|
736
|
+
return self._mark_simulated(TestMeasurement._from_proto(simulated_proto))
|
|
720
737
|
|
|
721
738
|
response = await self._grpc_client.get_stub(TestReportServiceStub).CreateTestMeasurement(
|
|
722
739
|
request
|
|
@@ -861,7 +878,9 @@ class TestResultsLowLevelClient(LowLevelClientBase, WithGrpcClient):
|
|
|
861
878
|
if log_file is not None or simulate:
|
|
862
879
|
if log_file is not None:
|
|
863
880
|
log_request_to_file(log_file, "UpdateTestMeasurement", request)
|
|
864
|
-
return self.
|
|
881
|
+
return self._mark_simulated(
|
|
882
|
+
self.simulate_update_test_measurement_response(request, existing=existing)
|
|
883
|
+
)
|
|
865
884
|
|
|
866
885
|
response = await self._grpc_client.get_stub(TestReportServiceStub).UpdateTestMeasurement(
|
|
867
886
|
request
|
|
@@ -6,7 +6,7 @@ from requests.adapters import HTTPAdapter
|
|
|
6
6
|
from typing_extensions import NotRequired
|
|
7
7
|
from urllib3.util import Retry
|
|
8
8
|
|
|
9
|
-
from sift_client._internal.
|
|
9
|
+
from sift_client._internal.urls import parse_host
|
|
10
10
|
|
|
11
11
|
_DEFAULT_REST_RETRY = Retry(total=3, status_forcelist=[500, 502, 503, 504], backoff_factor=1)
|
|
12
12
|
|
|
@@ -33,7 +33,7 @@ class SiftRestConfig(TypedDict):
|
|
|
33
33
|
def compute_uri(restconf: SiftRestConfig) -> str:
|
|
34
34
|
uri = restconf["uri"]
|
|
35
35
|
use_ssl = restconf.get("use_ssl", True)
|
|
36
|
-
clean_uri =
|
|
36
|
+
clean_uri = parse_host(uri)
|
|
37
37
|
|
|
38
38
|
if use_ssl:
|
|
39
39
|
return f"https://{clean_uri}"
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"""Helpers for turning Sift API endpoints into web-app (frontend) URLs.
|
|
2
|
+
|
|
3
|
+
The Sift frontend can be hosted on several domains and the backend exposes no
|
|
4
|
+
field for its own URL, so the frontend origin is derived client-side from the
|
|
5
|
+
API host. This table mirrors the canonical mapping used by the Grafana
|
|
6
|
+
datasource (sift-stack/sift-grafana-datasource,
|
|
7
|
+
``src/components/sharelink/getFrontendHostnameDefaults.ts``). Hosts outside the
|
|
8
|
+
table (on-prem and custom deployments) require an explicit override.
|
|
9
|
+
"""
|
|
10
|
+
|
|
11
|
+
from __future__ import annotations
|
|
12
|
+
|
|
13
|
+
from urllib.parse import urlparse
|
|
14
|
+
|
|
15
|
+
# API host (host[:port], no scheme) -> frontend origin (with scheme).
|
|
16
|
+
_API_HOST_TO_FRONTEND_ORIGIN: dict[str, str] = {
|
|
17
|
+
"api.siftstack.com": "https://app.siftstack.com",
|
|
18
|
+
"gov.api.siftstack.com": "https://gov.siftstack.com",
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
def parse_origin(url: str) -> str:
|
|
23
|
+
"""Normalize a URL or bare host into a ``scheme://host[:port]`` origin.
|
|
24
|
+
|
|
25
|
+
Bare hosts (no scheme) are assumed to be ``https``.
|
|
26
|
+
"""
|
|
27
|
+
candidate = url if "://" in url else f"https://{url}"
|
|
28
|
+
parsed = urlparse(candidate)
|
|
29
|
+
return f"{parsed.scheme}://{parsed.netloc}".rstrip("/")
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
def parse_host(url: str) -> str:
|
|
33
|
+
"""Extract ``host[:port]`` from a URL or bare host string."""
|
|
34
|
+
candidate = url if "://" in url else f"https://{url}"
|
|
35
|
+
return urlparse(candidate).netloc
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
def frontend_origin_for_api(api_base_url: str, override: str | None = None) -> str | None:
|
|
39
|
+
"""Return the Sift web-app origin for a given API base URL.
|
|
40
|
+
|
|
41
|
+
Args:
|
|
42
|
+
api_base_url: The REST API base URL (e.g. ``https://api.siftstack.com``).
|
|
43
|
+
override: An explicit frontend origin (host or full URL) to use instead
|
|
44
|
+
of the derived value. Set this for on-prem or custom deployments
|
|
45
|
+
whose API host isn't in the built-in mapping.
|
|
46
|
+
|
|
47
|
+
Returns:
|
|
48
|
+
The frontend origin (e.g. ``https://app.siftstack.com``), or ``None``
|
|
49
|
+
when no override is given and the API host isn't recognized.
|
|
50
|
+
"""
|
|
51
|
+
if override:
|
|
52
|
+
return parse_origin(override)
|
|
53
|
+
if not api_base_url:
|
|
54
|
+
return None
|
|
55
|
+
return _API_HOST_TO_FRONTEND_ORIGIN.get(parse_host(api_base_url))
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
|
+
from sift_client._internal.urls import frontend_origin_for_api
|
|
3
4
|
from sift_client.resources import (
|
|
4
5
|
AssetsAPI,
|
|
5
6
|
AssetsAPIAsync,
|
|
@@ -124,6 +125,7 @@ class SiftClient(
|
|
|
124
125
|
grpc_url: str | None = None,
|
|
125
126
|
rest_url: str | None = None,
|
|
126
127
|
connection_config: SiftConnectionConfig | None = None,
|
|
128
|
+
app_url: str | None = None,
|
|
127
129
|
):
|
|
128
130
|
"""Initialize the SiftClient with specific connection parameters or a connection_config.
|
|
129
131
|
|
|
@@ -132,6 +134,10 @@ class SiftClient(
|
|
|
132
134
|
grpc_url: The Sift gRPC API URL.
|
|
133
135
|
rest_url: The Sift REST API URL.
|
|
134
136
|
connection_config: A SiftConnectionConfig object to configure the connection behavior of the SiftClient.
|
|
137
|
+
app_url: The Sift web-app origin (e.g. ``https://app.siftstack.com``).
|
|
138
|
+
Set this for on-prem or custom deployments whose API host can't be
|
|
139
|
+
mapped to a frontend automatically; see the ``app_url`` property.
|
|
140
|
+
A value here takes precedence over ``connection_config.app_url``.
|
|
135
141
|
"""
|
|
136
142
|
if not (api_key and grpc_url and rest_url) and not connection_config:
|
|
137
143
|
raise ValueError(
|
|
@@ -152,6 +158,17 @@ class SiftClient(
|
|
|
152
158
|
WithGrpcClient.__init__(self, grpc_client=grpc_client)
|
|
153
159
|
WithRestClient.__init__(self, rest_client=rest_client)
|
|
154
160
|
|
|
161
|
+
# Explicit web-app origin override; falls back to the connection config's
|
|
162
|
+
# value, then to host-based derivation in the ``app_url`` property.
|
|
163
|
+
self._app_url: str | None = app_url or (
|
|
164
|
+
connection_config.app_url if connection_config else None
|
|
165
|
+
)
|
|
166
|
+
|
|
167
|
+
# When set, test-results writes return synthesized responses without
|
|
168
|
+
# contacting Sift. Read by `TestResultsAPIAsync._simulate`. Used by the
|
|
169
|
+
# pytest plugin's ``--sift-disabled`` mode.
|
|
170
|
+
self._simulate: bool = False
|
|
171
|
+
|
|
155
172
|
self.ping = PingAPI(self)
|
|
156
173
|
self.assets = AssetsAPI(self)
|
|
157
174
|
self.calculated_channels = CalculatedChannelsAPI(self)
|
|
@@ -193,3 +210,18 @@ class SiftClient(
|
|
|
193
210
|
def rest_client(self) -> RestClient:
|
|
194
211
|
"""The REST client used by the SiftClient for making REST API calls."""
|
|
195
212
|
return self._rest_client
|
|
213
|
+
|
|
214
|
+
@property
|
|
215
|
+
def app_url(self) -> str | None:
|
|
216
|
+
"""The Sift web-app origin for this client, or None if it can't be determined.
|
|
217
|
+
|
|
218
|
+
Uses the explicit override passed at construction when set, otherwise
|
|
219
|
+
derives the origin from the REST host for known Sift deployments (e.g.
|
|
220
|
+
``https://api.siftstack.com`` -> ``https://app.siftstack.com``). Returns
|
|
221
|
+
None for unrecognized hosts with no override.
|
|
222
|
+
|
|
223
|
+
# TODO: Add a ``WithAppPage`` mixin on BaseType so resources (TestReport,
|
|
224
|
+
# Run, ...) can expose their own web-app link from ``_client.app_url`` plus
|
|
225
|
+
# a per-type path, instead of callers assembling paths by hand.
|
|
226
|
+
"""
|
|
227
|
+
return frontend_origin_for_api(self.rest_client.base_url, override=self._app_url)
|