otdf-python 0.3.5__tar.gz → 0.4.1__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.
- {otdf_python-0.3.5 → otdf_python-0.4.1}/.github/workflows/test-suite.yaml +1 -1
- {otdf_python-0.3.5 → otdf_python-0.4.1}/.gitignore +4 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/.pre-commit-config.yaml +3 -3
- otdf_python-0.4.1/.release-please-manifest.json +3 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/.vscode/extensions.json +1 -1
- {otdf_python-0.3.5 → otdf_python-0.4.1}/CHANGELOG.md +15 -1
- {otdf_python-0.3.5 → otdf_python-0.4.1}/PKG-INFO +19 -2
- {otdf_python-0.3.5 → otdf_python-0.4.1}/conftest.py +4 -6
- {otdf_python-0.3.5 → otdf_python-0.4.1}/otdf-python-proto/pyproject.toml +2 -2
- {otdf_python-0.3.5 → otdf_python-0.4.1}/otdf-python-proto/scripts/generate_connect_proto.py +2 -4
- otdf_python-0.4.1/otdf-python-proto/uv.lock +932 -0
- otdf_python-0.4.1/pyproject.toml +113 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/src/otdf_python/__init__.py +1 -2
- {otdf_python-0.3.5 → otdf_python-0.4.1}/src/otdf_python/__main__.py +1 -2
- {otdf_python-0.3.5 → otdf_python-0.4.1}/src/otdf_python/address_normalizer.py +8 -10
- {otdf_python-0.3.5 → otdf_python-0.4.1}/src/otdf_python/aesgcm.py +8 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/src/otdf_python/assertion_config.py +21 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/src/otdf_python/asym_crypto.py +18 -22
- {otdf_python-0.3.5 → otdf_python-0.4.1}/src/otdf_python/auth_headers.py +7 -6
- {otdf_python-0.3.5 → otdf_python-0.4.1}/src/otdf_python/autoconfigure_utils.py +22 -6
- {otdf_python-0.3.5 → otdf_python-0.4.1}/src/otdf_python/cli.py +5 -5
- {otdf_python-0.3.5 → otdf_python-0.4.1}/src/otdf_python/collection_store.py +13 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/src/otdf_python/collection_store_impl.py +5 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/src/otdf_python/config.py +13 -0
- otdf_python-0.4.1/src/otdf_python/connect_client.py +1 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/src/otdf_python/constants.py +2 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/src/otdf_python/crypto_utils.py +4 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/src/otdf_python/dpop.py +3 -5
- {otdf_python-0.3.5 → otdf_python-0.4.1}/src/otdf_python/ecc_constants.py +12 -14
- {otdf_python-0.3.5 → otdf_python-0.4.1}/src/otdf_python/ecc_mode.py +7 -2
- {otdf_python-0.3.5 → otdf_python-0.4.1}/src/otdf_python/ecdh.py +24 -25
- {otdf_python-0.3.5 → otdf_python-0.4.1}/src/otdf_python/eckeypair.py +5 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/src/otdf_python/header.py +5 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/src/otdf_python/invalid_zip_exception.py +6 -2
- {otdf_python-0.3.5 → otdf_python-0.4.1}/src/otdf_python/kas_client.py +48 -55
- {otdf_python-0.3.5 → otdf_python-0.4.1}/src/otdf_python/kas_connect_rpc_client.py +16 -19
- {otdf_python-0.3.5 → otdf_python-0.4.1}/src/otdf_python/kas_info.py +4 -3
- {otdf_python-0.3.5 → otdf_python-0.4.1}/src/otdf_python/kas_key_cache.py +10 -9
- {otdf_python-0.3.5 → otdf_python-0.4.1}/src/otdf_python/key_type.py +4 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/src/otdf_python/key_type_constants.py +4 -11
- {otdf_python-0.3.5 → otdf_python-0.4.1}/src/otdf_python/manifest.py +24 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/src/otdf_python/nanotdf.py +34 -24
- {otdf_python-0.3.5 → otdf_python-0.4.1}/src/otdf_python/nanotdf_ecdsa_struct.py +5 -9
- {otdf_python-0.3.5 → otdf_python-0.4.1}/src/otdf_python/nanotdf_type.py +12 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/src/otdf_python/policy_binding_serializer.py +6 -4
- {otdf_python-0.3.5 → otdf_python-0.4.1}/src/otdf_python/policy_info.py +6 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/src/otdf_python/policy_object.py +8 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/src/otdf_python/policy_stub.py +2 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/src/otdf_python/resource_locator.py +22 -13
- {otdf_python-0.3.5 → otdf_python-0.4.1}/src/otdf_python/sdk.py +49 -57
- {otdf_python-0.3.5 → otdf_python-0.4.1}/src/otdf_python/sdk_builder.py +58 -41
- {otdf_python-0.3.5 → otdf_python-0.4.1}/src/otdf_python/sdk_exceptions.py +11 -1
- {otdf_python-0.3.5 → otdf_python-0.4.1}/src/otdf_python/symmetric_and_payload_config.py +6 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/src/otdf_python/tdf.py +47 -10
- {otdf_python-0.3.5 → otdf_python-0.4.1}/src/otdf_python/tdf_reader.py +10 -13
- {otdf_python-0.3.5 → otdf_python-0.4.1}/src/otdf_python/tdf_writer.py +5 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/src/otdf_python/token_source.py +4 -3
- {otdf_python-0.3.5 → otdf_python-0.4.1}/src/otdf_python/version.py +5 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/src/otdf_python/zip_reader.py +10 -2
- {otdf_python-0.3.5 → otdf_python-0.4.1}/src/otdf_python/zip_writer.py +11 -0
- otdf_python-0.4.1/tests/__init__.py +1 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/tests/config_pydantic.py +2 -5
- {otdf_python-0.3.5 → otdf_python-0.4.1}/tests/integration/conftest.py +1 -3
- {otdf_python-0.3.5 → otdf_python-0.4.1}/tests/integration/otdfctl_only/test_otdfctl_generated_fixtures.py +0 -2
- {otdf_python-0.3.5 → otdf_python-0.4.1}/tests/integration/otdfctl_to_python/test_cli_comparison.py +1 -5
- {otdf_python-0.3.5 → otdf_python-0.4.1}/tests/integration/otdfctl_to_python/test_cli_decrypt.py +4 -13
- {otdf_python-0.3.5 → otdf_python-0.4.1}/tests/integration/otdfctl_to_python/test_cli_inspect.py +3 -10
- {otdf_python-0.3.5 → otdf_python-0.4.1}/tests/integration/otdfctl_to_python/test_nanotdf_cli_comparison.py +3 -8
- {otdf_python-0.3.5 → otdf_python-0.4.1}/tests/integration/otdfctl_to_python/test_python_nanotdf_only.py +2 -3
- {otdf_python-0.3.5 → otdf_python-0.4.1}/tests/integration/otdfctl_to_python/test_tdf_reader_integration.py +1 -6
- {otdf_python-0.3.5 → otdf_python-0.4.1}/tests/integration/python_only/test_kas_client_integration.py +1 -3
- {otdf_python-0.3.5 → otdf_python-0.4.1}/tests/integration/support_sdk.py +1 -2
- {otdf_python-0.3.5 → otdf_python-0.4.1}/tests/integration/test_cli_integration.py +4 -16
- {otdf_python-0.3.5 → otdf_python-0.4.1}/tests/integration/test_cli_tdf_validation.py +4 -11
- {otdf_python-0.3.5 → otdf_python-0.4.1}/tests/integration/test_pe_interaction.py +2 -4
- {otdf_python-0.3.5 → otdf_python-0.4.1}/tests/server_logs.py +6 -8
- {otdf_python-0.3.5 → otdf_python-0.4.1}/tests/support_cli_args.py +3 -9
- {otdf_python-0.3.5 → otdf_python-0.4.1}/tests/support_common.py +1 -2
- {otdf_python-0.3.5 → otdf_python-0.4.1}/tests/support_otdfctl.py +3 -5
- {otdf_python-0.3.5 → otdf_python-0.4.1}/tests/support_otdfctl_args.py +5 -9
- {otdf_python-0.3.5 → otdf_python-0.4.1}/tests/test_address_normalizer.py +1 -3
- {otdf_python-0.3.5 → otdf_python-0.4.1}/tests/test_cli.py +1 -3
- {otdf_python-0.3.5 → otdf_python-0.4.1}/tests/test_ecdh.py +1 -3
- {otdf_python-0.3.5 → otdf_python-0.4.1}/tests/test_kas_client.py +17 -3
- {otdf_python-0.3.5 → otdf_python-0.4.1}/tests/test_kas_key_cache.py +6 -3
- {otdf_python-0.3.5 → otdf_python-0.4.1}/tests/test_kas_key_management.py +2 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/tests/test_key_type.py +8 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/tests/test_log_collection.py +1 -2
- {otdf_python-0.3.5 → otdf_python-0.4.1}/tests/test_manifest.py +2 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/tests/test_manifest_format.py +1 -4
- {otdf_python-0.3.5 → otdf_python-0.4.1}/tests/test_nanotdf.py +6 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/tests/test_nanotdf_ecdh.py +1 -3
- {otdf_python-0.3.5 → otdf_python-0.4.1}/tests/test_nanotdf_ecdsa_struct.py +1 -3
- {otdf_python-0.3.5 → otdf_python-0.4.1}/tests/test_nanotdf_integration.py +3 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/tests/test_nanotdf_type.py +9 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/tests/test_policy_object.py +7 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/tests/test_sdk.py +16 -3
- {otdf_python-0.3.5 → otdf_python-0.4.1}/tests/test_sdk_builder.py +1 -3
- {otdf_python-0.3.5 → otdf_python-0.4.1}/tests/test_sdk_exceptions.py +6 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/tests/test_sdk_mock.py +13 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/tests/test_sdk_tdf_integration.py +1 -3
- {otdf_python-0.3.5 → otdf_python-0.4.1}/tests/test_tdf.py +4 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/tests/test_tdf_key_management.py +2 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/tests/test_tdf_reader.py +1 -3
- {otdf_python-0.3.5 → otdf_python-0.4.1}/tests/test_tdf_writer.py +8 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/tests/test_token_source.py +3 -3
- {otdf_python-0.3.5 → otdf_python-0.4.1}/tests/test_url_normalization.py +2 -2
- {otdf_python-0.3.5 → otdf_python-0.4.1}/tests/test_use_plaintext_flow.py +1 -6
- {otdf_python-0.3.5 → otdf_python-0.4.1}/tests/test_validate_otdf_python.py +6 -3
- {otdf_python-0.3.5 → otdf_python-0.4.1}/tests/test_version.py +8 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/tests/test_zip_reader.py +7 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/tests/test_zip_writer.py +6 -0
- otdf_python-0.4.1/uv.lock +1531 -0
- otdf_python-0.3.5/.release-please-manifest.json +0 -3
- otdf_python-0.3.5/otdf-python-proto/uv.lock +0 -759
- otdf_python-0.3.5/pyproject.toml +0 -85
- otdf_python-0.3.5/src/otdf_python/connect_client.py +0 -0
- otdf_python-0.3.5/tests/__init__.py +0 -1
- otdf_python-0.3.5/uv.lock +0 -1274
- {otdf_python-0.3.5 → otdf_python-0.4.1}/.github/check_entitlements.sh +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/.github/start_opentdf_docker.sh +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/.github/workflows/build-python.yaml +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/.github/workflows/platform-integration-test.yaml +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/.github/workflows/release-please.yaml +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/.release-please-config-develop.json +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/.release-please-config.json +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/.release-please-manifest-develop.json +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/.vscode/settings.json +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/LICENSE +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/README.md +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/docs/CONNECT_RPC.md +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/docs/DEVELOPING.md +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/docs/LEGACY_VERSION.md +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/docs/RELEASES.md +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/otdf-python-proto/README.md +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/otdf-python-proto/buf.gen.yaml +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/otdf-python-proto/buf.lock +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/otdf-python-proto/buf.yaml +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/otdf-python-proto/proto-files/authorization/authorization.proto +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/otdf-python-proto/proto-files/authorization/v2/authorization.proto +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/otdf-python-proto/proto-files/common/common.proto +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/otdf-python-proto/proto-files/entity/entity.proto +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/otdf-python-proto/proto-files/entityresolution/entity_resolution.proto +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/otdf-python-proto/proto-files/entityresolution/v2/entity_resolution.proto +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/otdf-python-proto/proto-files/kas/kas.proto +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/otdf-python-proto/proto-files/logger/audit/test.proto +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/otdf-python-proto/proto-files/policy/actions/actions.proto +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/otdf-python-proto/proto-files/policy/attributes/attributes.proto +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/otdf-python-proto/proto-files/policy/kasregistry/key_access_server_registry.proto +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/otdf-python-proto/proto-files/policy/keymanagement/key_management.proto +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/otdf-python-proto/proto-files/policy/namespaces/namespaces.proto +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/otdf-python-proto/proto-files/policy/objects.proto +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/otdf-python-proto/proto-files/policy/registeredresources/registered_resources.proto +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/otdf-python-proto/proto-files/policy/resourcemapping/resource_mapping.proto +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/otdf-python-proto/proto-files/policy/selectors.proto +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/otdf-python-proto/proto-files/policy/subjectmapping/subject_mapping.proto +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/otdf-python-proto/proto-files/policy/unsafe/unsafe.proto +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/otdf-python-proto/proto-files/wellknownconfiguration/wellknown_configuration.proto +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/otdf-python-proto/scripts/build_connect_proto.sh +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/otdf-python-proto/scripts/setup_connect_rpc.py +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/otdf-python-proto/src/otdf_python_proto/__init__.py +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/otdf-python-proto/src/otdf_python_proto/authorization/__init__.py +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/otdf-python-proto/src/otdf_python_proto/authorization/authorization_pb2.py +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/otdf-python-proto/src/otdf_python_proto/authorization/authorization_pb2.pyi +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/otdf-python-proto/src/otdf_python_proto/authorization/authorization_pb2_connect.py +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/otdf-python-proto/src/otdf_python_proto/authorization/v2/authorization_pb2.py +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/otdf-python-proto/src/otdf_python_proto/authorization/v2/authorization_pb2.pyi +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/otdf-python-proto/src/otdf_python_proto/authorization/v2/authorization_pb2_connect.py +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/otdf-python-proto/src/otdf_python_proto/common/__init__.py +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/otdf-python-proto/src/otdf_python_proto/common/common_pb2.py +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/otdf-python-proto/src/otdf_python_proto/common/common_pb2.pyi +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/otdf-python-proto/src/otdf_python_proto/entity/__init__.py +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/otdf-python-proto/src/otdf_python_proto/entity/entity_pb2.py +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/otdf-python-proto/src/otdf_python_proto/entity/entity_pb2.pyi +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/otdf-python-proto/src/otdf_python_proto/entityresolution/__init__.py +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/otdf-python-proto/src/otdf_python_proto/entityresolution/entity_resolution_pb2.py +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/otdf-python-proto/src/otdf_python_proto/entityresolution/entity_resolution_pb2.pyi +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/otdf-python-proto/src/otdf_python_proto/entityresolution/entity_resolution_pb2_connect.py +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/otdf-python-proto/src/otdf_python_proto/entityresolution/v2/entity_resolution_pb2.py +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/otdf-python-proto/src/otdf_python_proto/entityresolution/v2/entity_resolution_pb2.pyi +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/otdf-python-proto/src/otdf_python_proto/entityresolution/v2/entity_resolution_pb2_connect.py +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/otdf-python-proto/src/otdf_python_proto/kas/__init__.py +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/otdf-python-proto/src/otdf_python_proto/kas/kas_pb2.py +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/otdf-python-proto/src/otdf_python_proto/kas/kas_pb2.pyi +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/otdf-python-proto/src/otdf_python_proto/kas/kas_pb2_connect.py +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/otdf-python-proto/src/otdf_python_proto/legacy_grpc/__init__.py +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/otdf-python-proto/src/otdf_python_proto/legacy_grpc/authorization/authorization_pb2_grpc.py +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/otdf-python-proto/src/otdf_python_proto/legacy_grpc/authorization/v2/authorization_pb2_grpc.py +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/otdf-python-proto/src/otdf_python_proto/legacy_grpc/common/common_pb2_grpc.py +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/otdf-python-proto/src/otdf_python_proto/legacy_grpc/entity/entity_pb2_grpc.py +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/otdf-python-proto/src/otdf_python_proto/legacy_grpc/entityresolution/entity_resolution_pb2_grpc.py +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/otdf-python-proto/src/otdf_python_proto/legacy_grpc/entityresolution/v2/entity_resolution_pb2_grpc.py +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/otdf-python-proto/src/otdf_python_proto/legacy_grpc/kas/kas_pb2_grpc.py +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/otdf-python-proto/src/otdf_python_proto/legacy_grpc/logger/audit/test_pb2_grpc.py +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/otdf-python-proto/src/otdf_python_proto/legacy_grpc/policy/actions/actions_pb2_grpc.py +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/otdf-python-proto/src/otdf_python_proto/legacy_grpc/policy/attributes/attributes_pb2_grpc.py +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/otdf-python-proto/src/otdf_python_proto/legacy_grpc/policy/kasregistry/key_access_server_registry_pb2_grpc.py +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/otdf-python-proto/src/otdf_python_proto/legacy_grpc/policy/keymanagement/key_management_pb2_grpc.py +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/otdf-python-proto/src/otdf_python_proto/legacy_grpc/policy/namespaces/namespaces_pb2_grpc.py +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/otdf-python-proto/src/otdf_python_proto/legacy_grpc/policy/objects_pb2_grpc.py +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/otdf-python-proto/src/otdf_python_proto/legacy_grpc/policy/registeredresources/registered_resources_pb2_grpc.py +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/otdf-python-proto/src/otdf_python_proto/legacy_grpc/policy/resourcemapping/resource_mapping_pb2_grpc.py +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/otdf-python-proto/src/otdf_python_proto/legacy_grpc/policy/selectors_pb2_grpc.py +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/otdf-python-proto/src/otdf_python_proto/legacy_grpc/policy/subjectmapping/subject_mapping_pb2_grpc.py +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/otdf-python-proto/src/otdf_python_proto/legacy_grpc/policy/unsafe/unsafe_pb2_grpc.py +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/otdf-python-proto/src/otdf_python_proto/legacy_grpc/wellknownconfiguration/wellknown_configuration_pb2_grpc.py +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/otdf-python-proto/src/otdf_python_proto/logger/__init__.py +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/otdf-python-proto/src/otdf_python_proto/logger/audit/test_pb2.py +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/otdf-python-proto/src/otdf_python_proto/logger/audit/test_pb2.pyi +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/otdf-python-proto/src/otdf_python_proto/policy/__init__.py +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/otdf-python-proto/src/otdf_python_proto/policy/actions/actions_pb2.py +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/otdf-python-proto/src/otdf_python_proto/policy/actions/actions_pb2.pyi +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/otdf-python-proto/src/otdf_python_proto/policy/actions/actions_pb2_connect.py +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/otdf-python-proto/src/otdf_python_proto/policy/attributes/attributes_pb2.py +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/otdf-python-proto/src/otdf_python_proto/policy/attributes/attributes_pb2.pyi +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/otdf-python-proto/src/otdf_python_proto/policy/attributes/attributes_pb2_connect.py +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/otdf-python-proto/src/otdf_python_proto/policy/kasregistry/key_access_server_registry_pb2.py +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/otdf-python-proto/src/otdf_python_proto/policy/kasregistry/key_access_server_registry_pb2.pyi +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/otdf-python-proto/src/otdf_python_proto/policy/kasregistry/key_access_server_registry_pb2_connect.py +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/otdf-python-proto/src/otdf_python_proto/policy/keymanagement/key_management_pb2.py +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/otdf-python-proto/src/otdf_python_proto/policy/keymanagement/key_management_pb2.pyi +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/otdf-python-proto/src/otdf_python_proto/policy/keymanagement/key_management_pb2_connect.py +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/otdf-python-proto/src/otdf_python_proto/policy/namespaces/namespaces_pb2.py +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/otdf-python-proto/src/otdf_python_proto/policy/namespaces/namespaces_pb2.pyi +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/otdf-python-proto/src/otdf_python_proto/policy/namespaces/namespaces_pb2_connect.py +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/otdf-python-proto/src/otdf_python_proto/policy/objects_pb2.py +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/otdf-python-proto/src/otdf_python_proto/policy/objects_pb2.pyi +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/otdf-python-proto/src/otdf_python_proto/policy/registeredresources/registered_resources_pb2.py +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/otdf-python-proto/src/otdf_python_proto/policy/registeredresources/registered_resources_pb2.pyi +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/otdf-python-proto/src/otdf_python_proto/policy/registeredresources/registered_resources_pb2_connect.py +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/otdf-python-proto/src/otdf_python_proto/policy/resourcemapping/resource_mapping_pb2.py +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/otdf-python-proto/src/otdf_python_proto/policy/resourcemapping/resource_mapping_pb2.pyi +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/otdf-python-proto/src/otdf_python_proto/policy/resourcemapping/resource_mapping_pb2_connect.py +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/otdf-python-proto/src/otdf_python_proto/policy/selectors_pb2.py +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/otdf-python-proto/src/otdf_python_proto/policy/selectors_pb2.pyi +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/otdf-python-proto/src/otdf_python_proto/policy/subjectmapping/subject_mapping_pb2.py +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/otdf-python-proto/src/otdf_python_proto/policy/subjectmapping/subject_mapping_pb2.pyi +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/otdf-python-proto/src/otdf_python_proto/policy/subjectmapping/subject_mapping_pb2_connect.py +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/otdf-python-proto/src/otdf_python_proto/policy/unsafe/unsafe_pb2.py +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/otdf-python-proto/src/otdf_python_proto/policy/unsafe/unsafe_pb2.pyi +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/otdf-python-proto/src/otdf_python_proto/policy/unsafe/unsafe_pb2_connect.py +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/otdf-python-proto/src/otdf_python_proto/wellknownconfiguration/__init__.py +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/otdf-python-proto/src/otdf_python_proto/wellknownconfiguration/wellknown_configuration_pb2.py +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/otdf-python-proto/src/otdf_python_proto/wellknownconfiguration/wellknown_configuration_pb2.pyi +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/otdf-python-proto/src/otdf_python_proto/wellknownconfiguration/wellknown_configuration_pb2_connect.py +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/tests/integration/test_data/empty_file.txt +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/tests/integration/test_data/sample_binary.png +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/tests/integration/test_data/sample_text.txt +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/tests/integration/test_data/sample_with_attributes.txt +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/tests/mock_crypto.py +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/tests/test_aesgcm.py +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/tests/test_assertion_config.py +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/tests/test_asym_encryption.py +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/tests/test_autoconfigure_utils.py +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/tests/test_collection_store.py +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/tests/test_config.py +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/tests/test_crypto_utils.py +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/tests/test_eckeypair.py +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/tests/test_header.py +0 -0
- {otdf_python-0.3.5 → otdf_python-0.4.1}/tests/test_inner_classes.py +0 -0
|
@@ -90,7 +90,7 @@ jobs:
|
|
|
90
90
|
strategy:
|
|
91
91
|
fail-fast: true
|
|
92
92
|
matrix:
|
|
93
|
-
python3_version: ["3.10", "3.11", "3.12", "3.13"]
|
|
93
|
+
python3_version: ["3.10", "3.11", "3.12", "3.13", "3.14"]
|
|
94
94
|
needs: [build, unit-tests]
|
|
95
95
|
uses: ./.github/workflows/platform-integration-test.yaml
|
|
96
96
|
with:
|
|
@@ -34,15 +34,15 @@ repos:
|
|
|
34
34
|
|
|
35
35
|
- repo: https://github.com/astral-sh/ruff-pre-commit
|
|
36
36
|
# Ruff version.
|
|
37
|
-
rev: v0.
|
|
37
|
+
rev: v0.14.8
|
|
38
38
|
hooks:
|
|
39
39
|
# Run the linter.
|
|
40
40
|
- id: ruff-check
|
|
41
41
|
# Run the formatter.
|
|
42
42
|
- id: ruff-format
|
|
43
43
|
- repo: https://github.com/compilerla/conventional-pre-commit
|
|
44
|
-
rev: v4.
|
|
44
|
+
rev: v4.3.0
|
|
45
45
|
hooks:
|
|
46
46
|
- id: conventional-pre-commit
|
|
47
47
|
stages: [commit-msg]
|
|
48
|
-
args: [--verbose,
|
|
48
|
+
args: [--verbose, feat, fix, docs, style, test, chore, ci]
|
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.4.1](https://github.com/b-long/opentdf-python-sdk/compare/otdf-python-v0.4.0...otdf-python-v0.4.1) (2025-12-09)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Bug Fixes
|
|
7
|
+
|
|
8
|
+
* preserve exception chain ([#119](https://github.com/b-long/opentdf-python-sdk/issues/119)) ([09984b8](https://github.com/b-long/opentdf-python-sdk/commit/09984b843b369a6d2c76dc8a81d6315f195ea773))
|
|
9
|
+
|
|
10
|
+
## [0.4.0](https://github.com/b-long/opentdf-python-sdk/compare/otdf-python-v0.3.5...otdf-python-v0.4.0) (2025-11-20)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
### Features
|
|
14
|
+
|
|
15
|
+
* add Python 3.14 support & fix pre-commit ([#117](https://github.com/b-long/opentdf-python-sdk/issues/117)) ([b89edfc](https://github.com/b-long/opentdf-python-sdk/commit/b89edfc70b13139691b7d2a11b256f59b457176d))
|
|
16
|
+
|
|
3
17
|
## [0.3.5](https://github.com/b-long/opentdf-python-sdk/compare/otdf-python-v0.3.4...otdf-python-v0.3.5) (2025-11-10)
|
|
4
18
|
|
|
5
19
|
|
|
@@ -11,7 +25,7 @@
|
|
|
11
25
|
|
|
12
26
|
### Chores
|
|
13
27
|
|
|
14
|
-
* chore: remove placeholders ([#110](https://github.com/b-long/opentdf-python-sdk/issues/110))
|
|
28
|
+
* chore: remove placeholders ([#110](https://github.com/b-long/opentdf-python-sdk/issues/110))
|
|
15
29
|
|
|
16
30
|
|
|
17
31
|
### Bug Fixes
|
|
@@ -1,11 +1,28 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: otdf-python
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.4.1
|
|
4
4
|
Summary: Unofficial OpenTDF SDK for Python
|
|
5
|
+
Project-URL: Homepage, https://github.com/b-long/opentdf-python-sdk
|
|
6
|
+
Project-URL: Repository, https://github.com/b-long/opentdf-python-sdk
|
|
7
|
+
Project-URL: Issues, https://github.com/b-long/opentdf-python-sdk/issues
|
|
5
8
|
Author-email: b-long <b-long@users.noreply.github.com>
|
|
6
9
|
License-File: LICENSE
|
|
10
|
+
Classifier: Development Status :: 4 - Beta
|
|
11
|
+
Classifier: Intended Audience :: Developers
|
|
12
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
13
|
+
Classifier: Operating System :: OS Independent
|
|
14
|
+
Classifier: Programming Language :: Python :: 3
|
|
15
|
+
Classifier: Programming Language :: Python :: 3 :: Only
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
21
|
+
Classifier: Topic :: Security :: Cryptography
|
|
22
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
23
|
+
Classifier: Typing :: Typed
|
|
7
24
|
Requires-Python: >=3.10
|
|
8
|
-
Requires-Dist: connect-python[compiler]
|
|
25
|
+
Requires-Dist: connect-python[compiler]<0.5,>=0.4.2
|
|
9
26
|
Requires-Dist: cryptography>=45.0.4
|
|
10
27
|
Requires-Dist: grpcio-status>=1.74.0
|
|
11
28
|
Requires-Dist: grpcio-tools>=1.74.0
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
"""
|
|
2
|
-
Pytest configuration and fixtures for the OpenTDF Python SDK tests.
|
|
1
|
+
"""Pytest configuration and fixtures for the OpenTDF Python SDK tests.
|
|
3
2
|
|
|
4
3
|
This module contains pytest hooks and fixtures that will be automatically
|
|
5
4
|
loaded by pytest when running tests.
|
|
@@ -14,13 +13,13 @@ from tests.server_logs import log_server_logs_on_failure
|
|
|
14
13
|
|
|
15
14
|
@pytest.fixture(scope="session")
|
|
16
15
|
def project_root(request) -> Path:
|
|
16
|
+
"""Get project root directory."""
|
|
17
17
|
return request.config.rootpath # Project root
|
|
18
18
|
|
|
19
19
|
|
|
20
20
|
@pytest.hookimpl(tryfirst=True, hookwrapper=True)
|
|
21
21
|
def pytest_runtest_makereport(item, call):
|
|
22
|
-
"""
|
|
23
|
-
Hook that runs after each test phase (setup, call, teardown).
|
|
22
|
+
"""Collect server logs when test fails after each test phase.
|
|
24
23
|
|
|
25
24
|
This hook automatically collects server logs when a test fails.
|
|
26
25
|
"""
|
|
@@ -53,8 +52,7 @@ def pytest_runtest_makereport(item, call):
|
|
|
53
52
|
|
|
54
53
|
@pytest.fixture
|
|
55
54
|
def collect_server_logs():
|
|
56
|
-
"""
|
|
57
|
-
Fixture that provides a function to manually collect server logs.
|
|
55
|
+
"""Fixture that provides a function to manually collect server logs.
|
|
58
56
|
|
|
59
57
|
Usage:
|
|
60
58
|
def test_something(collect_server_logs):
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "otdf-python-proto"
|
|
3
|
-
version = "0.
|
|
3
|
+
version = "0.4.1"
|
|
4
4
|
description = "Generated protobuf files for OpenTDF Python SDK"
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
authors = [
|
|
@@ -8,7 +8,7 @@ authors = [
|
|
|
8
8
|
]
|
|
9
9
|
requires-python = ">=3.10"
|
|
10
10
|
dependencies = [
|
|
11
|
-
"connect-python[compiler]>=0.4.2",
|
|
11
|
+
"connect-python[compiler]>=0.4.2,<0.5",
|
|
12
12
|
"protobuf>=6.31.1",
|
|
13
13
|
"googleapis-common-protos>=1.66.0",
|
|
14
14
|
# Legacy gRPC support (may be removed in future versions)
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env python3
|
|
2
|
-
"""
|
|
3
|
-
Enhanced script to generate Python Connect RPC clients from .proto definitions.
|
|
2
|
+
"""Enhanced script to generate Python Connect RPC clients from .proto definitions.
|
|
4
3
|
|
|
5
4
|
This script:
|
|
6
5
|
1. Downloads the latest proto files from OpenTDF platform
|
|
@@ -200,8 +199,7 @@ def create_init_files(generated_dir: Path) -> None:
|
|
|
200
199
|
|
|
201
200
|
|
|
202
201
|
def _fix_ignore_if_default_value(proto_files_dir):
|
|
203
|
-
"""
|
|
204
|
-
TODO: Fix buf validation: Updated the proto files to use the correct enum value:
|
|
202
|
+
"""TODO: Fix buf validation: Updated the proto files to use the correct enum value:
|
|
205
203
|
|
|
206
204
|
Changed IGNORE_IF_DEFAULT_VALUE → IGNORE_IF_ZERO_VALUE in:
|
|
207
205
|
attributes.proto
|