otdf-python 0.3.4__tar.gz → 0.4.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (263) hide show
  1. {otdf_python-0.3.4 → otdf_python-0.4.0}/.github/workflows/test-suite.yaml +1 -1
  2. {otdf_python-0.3.4 → otdf_python-0.4.0}/.gitignore +4 -0
  3. {otdf_python-0.3.4 → otdf_python-0.4.0}/.pre-commit-config.yaml +3 -3
  4. otdf_python-0.4.0/.release-please-manifest.json +3 -0
  5. {otdf_python-0.3.4 → otdf_python-0.4.0}/CHANGELOG.md +15 -1
  6. {otdf_python-0.3.4 → otdf_python-0.4.0}/PKG-INFO +19 -2
  7. {otdf_python-0.3.4 → otdf_python-0.4.0}/otdf-python-proto/pyproject.toml +2 -2
  8. otdf_python-0.4.0/otdf-python-proto/uv.lock +932 -0
  9. {otdf_python-0.3.4 → otdf_python-0.4.0}/pyproject.toml +24 -2
  10. otdf_python-0.4.0/src/otdf_python/asym_crypto.py +198 -0
  11. {otdf_python-0.3.4 → otdf_python-0.4.0}/src/otdf_python/cli.py +8 -1
  12. otdf_python-0.4.0/src/otdf_python/ecc_constants.py +176 -0
  13. otdf_python-0.4.0/src/otdf_python/ecc_mode.py +83 -0
  14. otdf_python-0.4.0/src/otdf_python/ecdh.py +317 -0
  15. {otdf_python-0.3.4 → otdf_python-0.4.0}/src/otdf_python/header.py +38 -0
  16. {otdf_python-0.3.4 → otdf_python-0.4.0}/src/otdf_python/kas_client.py +172 -66
  17. otdf_python-0.4.0/src/otdf_python/nanotdf.py +863 -0
  18. {otdf_python-0.3.4 → otdf_python-0.4.0}/src/otdf_python/policy_info.py +5 -28
  19. otdf_python-0.4.0/src/otdf_python/resource_locator.py +172 -0
  20. {otdf_python-0.3.4 → otdf_python-0.4.0}/src/otdf_python/sdk.py +1 -1
  21. {otdf_python-0.3.4 → otdf_python-0.4.0}/src/otdf_python/tdf.py +4 -3
  22. otdf_python-0.4.0/tests/integration/otdfctl_to_python/test_nanotdf_cli_comparison.py +375 -0
  23. otdf_python-0.4.0/tests/integration/otdfctl_to_python/test_python_nanotdf_only.py +104 -0
  24. {otdf_python-0.3.4 → otdf_python-0.4.0}/tests/test_asym_encryption.py +1 -2
  25. otdf_python-0.4.0/tests/test_ecdh.py +435 -0
  26. {otdf_python-0.3.4 → otdf_python-0.4.0}/tests/test_header.py +6 -3
  27. {otdf_python-0.3.4 → otdf_python-0.4.0}/tests/test_kas_key_management.py +1 -1
  28. {otdf_python-0.3.4 → otdf_python-0.4.0}/tests/test_nanotdf.py +10 -21
  29. otdf_python-0.4.0/tests/test_nanotdf_ecdh.py +321 -0
  30. {otdf_python-0.3.4 → otdf_python-0.4.0}/tests/test_nanotdf_integration.py +3 -3
  31. {otdf_python-0.3.4 → otdf_python-0.4.0}/tests/test_tdf_key_management.py +1 -1
  32. otdf_python-0.4.0/uv.lock +1531 -0
  33. otdf_python-0.3.4/.release-please-manifest.json +0 -3
  34. otdf_python-0.3.4/otdf-python-proto/uv.lock +0 -759
  35. otdf_python-0.3.4/src/otdf_python/asym_crypto.py +0 -85
  36. otdf_python-0.3.4/src/otdf_python/asym_decryption.py +0 -53
  37. otdf_python-0.3.4/src/otdf_python/asym_encryption.py +0 -75
  38. otdf_python-0.3.4/src/otdf_python/ecc_mode.py +0 -32
  39. otdf_python-0.3.4/src/otdf_python/nanotdf.py +0 -553
  40. otdf_python-0.3.4/src/otdf_python/resource_locator.py +0 -44
  41. otdf_python-0.3.4/uv.lock +0 -1274
  42. {otdf_python-0.3.4 → otdf_python-0.4.0}/.github/check_entitlements.sh +0 -0
  43. {otdf_python-0.3.4 → otdf_python-0.4.0}/.github/start_opentdf_docker.sh +0 -0
  44. {otdf_python-0.3.4 → otdf_python-0.4.0}/.github/workflows/build-python.yaml +0 -0
  45. {otdf_python-0.3.4 → otdf_python-0.4.0}/.github/workflows/platform-integration-test.yaml +0 -0
  46. {otdf_python-0.3.4 → otdf_python-0.4.0}/.github/workflows/release-please.yaml +0 -0
  47. {otdf_python-0.3.4 → otdf_python-0.4.0}/.release-please-config-develop.json +0 -0
  48. {otdf_python-0.3.4 → otdf_python-0.4.0}/.release-please-config.json +0 -0
  49. {otdf_python-0.3.4 → otdf_python-0.4.0}/.release-please-manifest-develop.json +0 -0
  50. {otdf_python-0.3.4 → otdf_python-0.4.0}/.vscode/extensions.json +0 -0
  51. {otdf_python-0.3.4 → otdf_python-0.4.0}/.vscode/settings.json +0 -0
  52. {otdf_python-0.3.4 → otdf_python-0.4.0}/LICENSE +0 -0
  53. {otdf_python-0.3.4 → otdf_python-0.4.0}/README.md +0 -0
  54. {otdf_python-0.3.4 → otdf_python-0.4.0}/conftest.py +0 -0
  55. {otdf_python-0.3.4 → otdf_python-0.4.0}/docs/CONNECT_RPC.md +0 -0
  56. {otdf_python-0.3.4 → otdf_python-0.4.0}/docs/DEVELOPING.md +0 -0
  57. {otdf_python-0.3.4 → otdf_python-0.4.0}/docs/LEGACY_VERSION.md +0 -0
  58. {otdf_python-0.3.4 → otdf_python-0.4.0}/docs/RELEASES.md +0 -0
  59. {otdf_python-0.3.4 → otdf_python-0.4.0}/otdf-python-proto/README.md +0 -0
  60. {otdf_python-0.3.4 → otdf_python-0.4.0}/otdf-python-proto/buf.gen.yaml +0 -0
  61. {otdf_python-0.3.4 → otdf_python-0.4.0}/otdf-python-proto/buf.lock +0 -0
  62. {otdf_python-0.3.4 → otdf_python-0.4.0}/otdf-python-proto/buf.yaml +0 -0
  63. {otdf_python-0.3.4 → otdf_python-0.4.0}/otdf-python-proto/proto-files/authorization/authorization.proto +0 -0
  64. {otdf_python-0.3.4 → otdf_python-0.4.0}/otdf-python-proto/proto-files/authorization/v2/authorization.proto +0 -0
  65. {otdf_python-0.3.4 → otdf_python-0.4.0}/otdf-python-proto/proto-files/common/common.proto +0 -0
  66. {otdf_python-0.3.4 → otdf_python-0.4.0}/otdf-python-proto/proto-files/entity/entity.proto +0 -0
  67. {otdf_python-0.3.4 → otdf_python-0.4.0}/otdf-python-proto/proto-files/entityresolution/entity_resolution.proto +0 -0
  68. {otdf_python-0.3.4 → otdf_python-0.4.0}/otdf-python-proto/proto-files/entityresolution/v2/entity_resolution.proto +0 -0
  69. {otdf_python-0.3.4 → otdf_python-0.4.0}/otdf-python-proto/proto-files/kas/kas.proto +0 -0
  70. {otdf_python-0.3.4 → otdf_python-0.4.0}/otdf-python-proto/proto-files/logger/audit/test.proto +0 -0
  71. {otdf_python-0.3.4 → otdf_python-0.4.0}/otdf-python-proto/proto-files/policy/actions/actions.proto +0 -0
  72. {otdf_python-0.3.4 → otdf_python-0.4.0}/otdf-python-proto/proto-files/policy/attributes/attributes.proto +0 -0
  73. {otdf_python-0.3.4 → otdf_python-0.4.0}/otdf-python-proto/proto-files/policy/kasregistry/key_access_server_registry.proto +0 -0
  74. {otdf_python-0.3.4 → otdf_python-0.4.0}/otdf-python-proto/proto-files/policy/keymanagement/key_management.proto +0 -0
  75. {otdf_python-0.3.4 → otdf_python-0.4.0}/otdf-python-proto/proto-files/policy/namespaces/namespaces.proto +0 -0
  76. {otdf_python-0.3.4 → otdf_python-0.4.0}/otdf-python-proto/proto-files/policy/objects.proto +0 -0
  77. {otdf_python-0.3.4 → otdf_python-0.4.0}/otdf-python-proto/proto-files/policy/registeredresources/registered_resources.proto +0 -0
  78. {otdf_python-0.3.4 → otdf_python-0.4.0}/otdf-python-proto/proto-files/policy/resourcemapping/resource_mapping.proto +0 -0
  79. {otdf_python-0.3.4 → otdf_python-0.4.0}/otdf-python-proto/proto-files/policy/selectors.proto +0 -0
  80. {otdf_python-0.3.4 → otdf_python-0.4.0}/otdf-python-proto/proto-files/policy/subjectmapping/subject_mapping.proto +0 -0
  81. {otdf_python-0.3.4 → otdf_python-0.4.0}/otdf-python-proto/proto-files/policy/unsafe/unsafe.proto +0 -0
  82. {otdf_python-0.3.4 → otdf_python-0.4.0}/otdf-python-proto/proto-files/wellknownconfiguration/wellknown_configuration.proto +0 -0
  83. {otdf_python-0.3.4 → otdf_python-0.4.0}/otdf-python-proto/scripts/build_connect_proto.sh +0 -0
  84. {otdf_python-0.3.4 → otdf_python-0.4.0}/otdf-python-proto/scripts/generate_connect_proto.py +0 -0
  85. {otdf_python-0.3.4 → otdf_python-0.4.0}/otdf-python-proto/scripts/setup_connect_rpc.py +0 -0
  86. {otdf_python-0.3.4 → otdf_python-0.4.0}/otdf-python-proto/src/otdf_python_proto/__init__.py +0 -0
  87. {otdf_python-0.3.4 → otdf_python-0.4.0}/otdf-python-proto/src/otdf_python_proto/authorization/__init__.py +0 -0
  88. {otdf_python-0.3.4 → otdf_python-0.4.0}/otdf-python-proto/src/otdf_python_proto/authorization/authorization_pb2.py +0 -0
  89. {otdf_python-0.3.4 → otdf_python-0.4.0}/otdf-python-proto/src/otdf_python_proto/authorization/authorization_pb2.pyi +0 -0
  90. {otdf_python-0.3.4 → otdf_python-0.4.0}/otdf-python-proto/src/otdf_python_proto/authorization/authorization_pb2_connect.py +0 -0
  91. {otdf_python-0.3.4 → otdf_python-0.4.0}/otdf-python-proto/src/otdf_python_proto/authorization/v2/authorization_pb2.py +0 -0
  92. {otdf_python-0.3.4 → otdf_python-0.4.0}/otdf-python-proto/src/otdf_python_proto/authorization/v2/authorization_pb2.pyi +0 -0
  93. {otdf_python-0.3.4 → otdf_python-0.4.0}/otdf-python-proto/src/otdf_python_proto/authorization/v2/authorization_pb2_connect.py +0 -0
  94. {otdf_python-0.3.4 → otdf_python-0.4.0}/otdf-python-proto/src/otdf_python_proto/common/__init__.py +0 -0
  95. {otdf_python-0.3.4 → otdf_python-0.4.0}/otdf-python-proto/src/otdf_python_proto/common/common_pb2.py +0 -0
  96. {otdf_python-0.3.4 → otdf_python-0.4.0}/otdf-python-proto/src/otdf_python_proto/common/common_pb2.pyi +0 -0
  97. {otdf_python-0.3.4 → otdf_python-0.4.0}/otdf-python-proto/src/otdf_python_proto/entity/__init__.py +0 -0
  98. {otdf_python-0.3.4 → otdf_python-0.4.0}/otdf-python-proto/src/otdf_python_proto/entity/entity_pb2.py +0 -0
  99. {otdf_python-0.3.4 → otdf_python-0.4.0}/otdf-python-proto/src/otdf_python_proto/entity/entity_pb2.pyi +0 -0
  100. {otdf_python-0.3.4 → otdf_python-0.4.0}/otdf-python-proto/src/otdf_python_proto/entityresolution/__init__.py +0 -0
  101. {otdf_python-0.3.4 → otdf_python-0.4.0}/otdf-python-proto/src/otdf_python_proto/entityresolution/entity_resolution_pb2.py +0 -0
  102. {otdf_python-0.3.4 → otdf_python-0.4.0}/otdf-python-proto/src/otdf_python_proto/entityresolution/entity_resolution_pb2.pyi +0 -0
  103. {otdf_python-0.3.4 → otdf_python-0.4.0}/otdf-python-proto/src/otdf_python_proto/entityresolution/entity_resolution_pb2_connect.py +0 -0
  104. {otdf_python-0.3.4 → otdf_python-0.4.0}/otdf-python-proto/src/otdf_python_proto/entityresolution/v2/entity_resolution_pb2.py +0 -0
  105. {otdf_python-0.3.4 → otdf_python-0.4.0}/otdf-python-proto/src/otdf_python_proto/entityresolution/v2/entity_resolution_pb2.pyi +0 -0
  106. {otdf_python-0.3.4 → otdf_python-0.4.0}/otdf-python-proto/src/otdf_python_proto/entityresolution/v2/entity_resolution_pb2_connect.py +0 -0
  107. {otdf_python-0.3.4 → otdf_python-0.4.0}/otdf-python-proto/src/otdf_python_proto/kas/__init__.py +0 -0
  108. {otdf_python-0.3.4 → otdf_python-0.4.0}/otdf-python-proto/src/otdf_python_proto/kas/kas_pb2.py +0 -0
  109. {otdf_python-0.3.4 → otdf_python-0.4.0}/otdf-python-proto/src/otdf_python_proto/kas/kas_pb2.pyi +0 -0
  110. {otdf_python-0.3.4 → otdf_python-0.4.0}/otdf-python-proto/src/otdf_python_proto/kas/kas_pb2_connect.py +0 -0
  111. {otdf_python-0.3.4 → otdf_python-0.4.0}/otdf-python-proto/src/otdf_python_proto/legacy_grpc/__init__.py +0 -0
  112. {otdf_python-0.3.4 → otdf_python-0.4.0}/otdf-python-proto/src/otdf_python_proto/legacy_grpc/authorization/authorization_pb2_grpc.py +0 -0
  113. {otdf_python-0.3.4 → otdf_python-0.4.0}/otdf-python-proto/src/otdf_python_proto/legacy_grpc/authorization/v2/authorization_pb2_grpc.py +0 -0
  114. {otdf_python-0.3.4 → otdf_python-0.4.0}/otdf-python-proto/src/otdf_python_proto/legacy_grpc/common/common_pb2_grpc.py +0 -0
  115. {otdf_python-0.3.4 → otdf_python-0.4.0}/otdf-python-proto/src/otdf_python_proto/legacy_grpc/entity/entity_pb2_grpc.py +0 -0
  116. {otdf_python-0.3.4 → otdf_python-0.4.0}/otdf-python-proto/src/otdf_python_proto/legacy_grpc/entityresolution/entity_resolution_pb2_grpc.py +0 -0
  117. {otdf_python-0.3.4 → otdf_python-0.4.0}/otdf-python-proto/src/otdf_python_proto/legacy_grpc/entityresolution/v2/entity_resolution_pb2_grpc.py +0 -0
  118. {otdf_python-0.3.4 → otdf_python-0.4.0}/otdf-python-proto/src/otdf_python_proto/legacy_grpc/kas/kas_pb2_grpc.py +0 -0
  119. {otdf_python-0.3.4 → otdf_python-0.4.0}/otdf-python-proto/src/otdf_python_proto/legacy_grpc/logger/audit/test_pb2_grpc.py +0 -0
  120. {otdf_python-0.3.4 → otdf_python-0.4.0}/otdf-python-proto/src/otdf_python_proto/legacy_grpc/policy/actions/actions_pb2_grpc.py +0 -0
  121. {otdf_python-0.3.4 → otdf_python-0.4.0}/otdf-python-proto/src/otdf_python_proto/legacy_grpc/policy/attributes/attributes_pb2_grpc.py +0 -0
  122. {otdf_python-0.3.4 → otdf_python-0.4.0}/otdf-python-proto/src/otdf_python_proto/legacy_grpc/policy/kasregistry/key_access_server_registry_pb2_grpc.py +0 -0
  123. {otdf_python-0.3.4 → otdf_python-0.4.0}/otdf-python-proto/src/otdf_python_proto/legacy_grpc/policy/keymanagement/key_management_pb2_grpc.py +0 -0
  124. {otdf_python-0.3.4 → otdf_python-0.4.0}/otdf-python-proto/src/otdf_python_proto/legacy_grpc/policy/namespaces/namespaces_pb2_grpc.py +0 -0
  125. {otdf_python-0.3.4 → otdf_python-0.4.0}/otdf-python-proto/src/otdf_python_proto/legacy_grpc/policy/objects_pb2_grpc.py +0 -0
  126. {otdf_python-0.3.4 → otdf_python-0.4.0}/otdf-python-proto/src/otdf_python_proto/legacy_grpc/policy/registeredresources/registered_resources_pb2_grpc.py +0 -0
  127. {otdf_python-0.3.4 → otdf_python-0.4.0}/otdf-python-proto/src/otdf_python_proto/legacy_grpc/policy/resourcemapping/resource_mapping_pb2_grpc.py +0 -0
  128. {otdf_python-0.3.4 → otdf_python-0.4.0}/otdf-python-proto/src/otdf_python_proto/legacy_grpc/policy/selectors_pb2_grpc.py +0 -0
  129. {otdf_python-0.3.4 → otdf_python-0.4.0}/otdf-python-proto/src/otdf_python_proto/legacy_grpc/policy/subjectmapping/subject_mapping_pb2_grpc.py +0 -0
  130. {otdf_python-0.3.4 → otdf_python-0.4.0}/otdf-python-proto/src/otdf_python_proto/legacy_grpc/policy/unsafe/unsafe_pb2_grpc.py +0 -0
  131. {otdf_python-0.3.4 → otdf_python-0.4.0}/otdf-python-proto/src/otdf_python_proto/legacy_grpc/wellknownconfiguration/wellknown_configuration_pb2_grpc.py +0 -0
  132. {otdf_python-0.3.4 → otdf_python-0.4.0}/otdf-python-proto/src/otdf_python_proto/logger/__init__.py +0 -0
  133. {otdf_python-0.3.4 → otdf_python-0.4.0}/otdf-python-proto/src/otdf_python_proto/logger/audit/test_pb2.py +0 -0
  134. {otdf_python-0.3.4 → otdf_python-0.4.0}/otdf-python-proto/src/otdf_python_proto/logger/audit/test_pb2.pyi +0 -0
  135. {otdf_python-0.3.4 → otdf_python-0.4.0}/otdf-python-proto/src/otdf_python_proto/policy/__init__.py +0 -0
  136. {otdf_python-0.3.4 → otdf_python-0.4.0}/otdf-python-proto/src/otdf_python_proto/policy/actions/actions_pb2.py +0 -0
  137. {otdf_python-0.3.4 → otdf_python-0.4.0}/otdf-python-proto/src/otdf_python_proto/policy/actions/actions_pb2.pyi +0 -0
  138. {otdf_python-0.3.4 → otdf_python-0.4.0}/otdf-python-proto/src/otdf_python_proto/policy/actions/actions_pb2_connect.py +0 -0
  139. {otdf_python-0.3.4 → otdf_python-0.4.0}/otdf-python-proto/src/otdf_python_proto/policy/attributes/attributes_pb2.py +0 -0
  140. {otdf_python-0.3.4 → otdf_python-0.4.0}/otdf-python-proto/src/otdf_python_proto/policy/attributes/attributes_pb2.pyi +0 -0
  141. {otdf_python-0.3.4 → otdf_python-0.4.0}/otdf-python-proto/src/otdf_python_proto/policy/attributes/attributes_pb2_connect.py +0 -0
  142. {otdf_python-0.3.4 → otdf_python-0.4.0}/otdf-python-proto/src/otdf_python_proto/policy/kasregistry/key_access_server_registry_pb2.py +0 -0
  143. {otdf_python-0.3.4 → otdf_python-0.4.0}/otdf-python-proto/src/otdf_python_proto/policy/kasregistry/key_access_server_registry_pb2.pyi +0 -0
  144. {otdf_python-0.3.4 → otdf_python-0.4.0}/otdf-python-proto/src/otdf_python_proto/policy/kasregistry/key_access_server_registry_pb2_connect.py +0 -0
  145. {otdf_python-0.3.4 → otdf_python-0.4.0}/otdf-python-proto/src/otdf_python_proto/policy/keymanagement/key_management_pb2.py +0 -0
  146. {otdf_python-0.3.4 → otdf_python-0.4.0}/otdf-python-proto/src/otdf_python_proto/policy/keymanagement/key_management_pb2.pyi +0 -0
  147. {otdf_python-0.3.4 → otdf_python-0.4.0}/otdf-python-proto/src/otdf_python_proto/policy/keymanagement/key_management_pb2_connect.py +0 -0
  148. {otdf_python-0.3.4 → otdf_python-0.4.0}/otdf-python-proto/src/otdf_python_proto/policy/namespaces/namespaces_pb2.py +0 -0
  149. {otdf_python-0.3.4 → otdf_python-0.4.0}/otdf-python-proto/src/otdf_python_proto/policy/namespaces/namespaces_pb2.pyi +0 -0
  150. {otdf_python-0.3.4 → otdf_python-0.4.0}/otdf-python-proto/src/otdf_python_proto/policy/namespaces/namespaces_pb2_connect.py +0 -0
  151. {otdf_python-0.3.4 → otdf_python-0.4.0}/otdf-python-proto/src/otdf_python_proto/policy/objects_pb2.py +0 -0
  152. {otdf_python-0.3.4 → otdf_python-0.4.0}/otdf-python-proto/src/otdf_python_proto/policy/objects_pb2.pyi +0 -0
  153. {otdf_python-0.3.4 → otdf_python-0.4.0}/otdf-python-proto/src/otdf_python_proto/policy/registeredresources/registered_resources_pb2.py +0 -0
  154. {otdf_python-0.3.4 → otdf_python-0.4.0}/otdf-python-proto/src/otdf_python_proto/policy/registeredresources/registered_resources_pb2.pyi +0 -0
  155. {otdf_python-0.3.4 → otdf_python-0.4.0}/otdf-python-proto/src/otdf_python_proto/policy/registeredresources/registered_resources_pb2_connect.py +0 -0
  156. {otdf_python-0.3.4 → otdf_python-0.4.0}/otdf-python-proto/src/otdf_python_proto/policy/resourcemapping/resource_mapping_pb2.py +0 -0
  157. {otdf_python-0.3.4 → otdf_python-0.4.0}/otdf-python-proto/src/otdf_python_proto/policy/resourcemapping/resource_mapping_pb2.pyi +0 -0
  158. {otdf_python-0.3.4 → otdf_python-0.4.0}/otdf-python-proto/src/otdf_python_proto/policy/resourcemapping/resource_mapping_pb2_connect.py +0 -0
  159. {otdf_python-0.3.4 → otdf_python-0.4.0}/otdf-python-proto/src/otdf_python_proto/policy/selectors_pb2.py +0 -0
  160. {otdf_python-0.3.4 → otdf_python-0.4.0}/otdf-python-proto/src/otdf_python_proto/policy/selectors_pb2.pyi +0 -0
  161. {otdf_python-0.3.4 → otdf_python-0.4.0}/otdf-python-proto/src/otdf_python_proto/policy/subjectmapping/subject_mapping_pb2.py +0 -0
  162. {otdf_python-0.3.4 → otdf_python-0.4.0}/otdf-python-proto/src/otdf_python_proto/policy/subjectmapping/subject_mapping_pb2.pyi +0 -0
  163. {otdf_python-0.3.4 → otdf_python-0.4.0}/otdf-python-proto/src/otdf_python_proto/policy/subjectmapping/subject_mapping_pb2_connect.py +0 -0
  164. {otdf_python-0.3.4 → otdf_python-0.4.0}/otdf-python-proto/src/otdf_python_proto/policy/unsafe/unsafe_pb2.py +0 -0
  165. {otdf_python-0.3.4 → otdf_python-0.4.0}/otdf-python-proto/src/otdf_python_proto/policy/unsafe/unsafe_pb2.pyi +0 -0
  166. {otdf_python-0.3.4 → otdf_python-0.4.0}/otdf-python-proto/src/otdf_python_proto/policy/unsafe/unsafe_pb2_connect.py +0 -0
  167. {otdf_python-0.3.4 → otdf_python-0.4.0}/otdf-python-proto/src/otdf_python_proto/wellknownconfiguration/__init__.py +0 -0
  168. {otdf_python-0.3.4 → otdf_python-0.4.0}/otdf-python-proto/src/otdf_python_proto/wellknownconfiguration/wellknown_configuration_pb2.py +0 -0
  169. {otdf_python-0.3.4 → otdf_python-0.4.0}/otdf-python-proto/src/otdf_python_proto/wellknownconfiguration/wellknown_configuration_pb2.pyi +0 -0
  170. {otdf_python-0.3.4 → otdf_python-0.4.0}/otdf-python-proto/src/otdf_python_proto/wellknownconfiguration/wellknown_configuration_pb2_connect.py +0 -0
  171. {otdf_python-0.3.4 → otdf_python-0.4.0}/src/otdf_python/__init__.py +0 -0
  172. {otdf_python-0.3.4 → otdf_python-0.4.0}/src/otdf_python/__main__.py +0 -0
  173. {otdf_python-0.3.4 → otdf_python-0.4.0}/src/otdf_python/address_normalizer.py +0 -0
  174. {otdf_python-0.3.4 → otdf_python-0.4.0}/src/otdf_python/aesgcm.py +0 -0
  175. {otdf_python-0.3.4 → otdf_python-0.4.0}/src/otdf_python/assertion_config.py +0 -0
  176. {otdf_python-0.3.4 → otdf_python-0.4.0}/src/otdf_python/auth_headers.py +0 -0
  177. {otdf_python-0.3.4 → otdf_python-0.4.0}/src/otdf_python/autoconfigure_utils.py +0 -0
  178. {otdf_python-0.3.4 → otdf_python-0.4.0}/src/otdf_python/collection_store.py +0 -0
  179. {otdf_python-0.3.4 → otdf_python-0.4.0}/src/otdf_python/collection_store_impl.py +0 -0
  180. {otdf_python-0.3.4 → otdf_python-0.4.0}/src/otdf_python/config.py +0 -0
  181. {otdf_python-0.3.4 → otdf_python-0.4.0}/src/otdf_python/connect_client.py +0 -0
  182. {otdf_python-0.3.4 → otdf_python-0.4.0}/src/otdf_python/constants.py +0 -0
  183. {otdf_python-0.3.4 → otdf_python-0.4.0}/src/otdf_python/crypto_utils.py +0 -0
  184. {otdf_python-0.3.4 → otdf_python-0.4.0}/src/otdf_python/dpop.py +0 -0
  185. {otdf_python-0.3.4 → otdf_python-0.4.0}/src/otdf_python/eckeypair.py +0 -0
  186. {otdf_python-0.3.4 → otdf_python-0.4.0}/src/otdf_python/invalid_zip_exception.py +0 -0
  187. {otdf_python-0.3.4 → otdf_python-0.4.0}/src/otdf_python/kas_connect_rpc_client.py +0 -0
  188. {otdf_python-0.3.4 → otdf_python-0.4.0}/src/otdf_python/kas_info.py +0 -0
  189. {otdf_python-0.3.4 → otdf_python-0.4.0}/src/otdf_python/kas_key_cache.py +0 -0
  190. {otdf_python-0.3.4 → otdf_python-0.4.0}/src/otdf_python/key_type.py +0 -0
  191. {otdf_python-0.3.4 → otdf_python-0.4.0}/src/otdf_python/key_type_constants.py +0 -0
  192. {otdf_python-0.3.4 → otdf_python-0.4.0}/src/otdf_python/manifest.py +0 -0
  193. {otdf_python-0.3.4 → otdf_python-0.4.0}/src/otdf_python/nanotdf_ecdsa_struct.py +0 -0
  194. {otdf_python-0.3.4 → otdf_python-0.4.0}/src/otdf_python/nanotdf_type.py +0 -0
  195. {otdf_python-0.3.4 → otdf_python-0.4.0}/src/otdf_python/policy_binding_serializer.py +0 -0
  196. {otdf_python-0.3.4 → otdf_python-0.4.0}/src/otdf_python/policy_object.py +0 -0
  197. {otdf_python-0.3.4 → otdf_python-0.4.0}/src/otdf_python/policy_stub.py +0 -0
  198. {otdf_python-0.3.4 → otdf_python-0.4.0}/src/otdf_python/sdk_builder.py +0 -0
  199. {otdf_python-0.3.4 → otdf_python-0.4.0}/src/otdf_python/sdk_exceptions.py +0 -0
  200. {otdf_python-0.3.4 → otdf_python-0.4.0}/src/otdf_python/symmetric_and_payload_config.py +0 -0
  201. {otdf_python-0.3.4 → otdf_python-0.4.0}/src/otdf_python/tdf_reader.py +0 -0
  202. {otdf_python-0.3.4 → otdf_python-0.4.0}/src/otdf_python/tdf_writer.py +0 -0
  203. {otdf_python-0.3.4 → otdf_python-0.4.0}/src/otdf_python/token_source.py +0 -0
  204. {otdf_python-0.3.4 → otdf_python-0.4.0}/src/otdf_python/version.py +0 -0
  205. {otdf_python-0.3.4 → otdf_python-0.4.0}/src/otdf_python/zip_reader.py +0 -0
  206. {otdf_python-0.3.4 → otdf_python-0.4.0}/src/otdf_python/zip_writer.py +0 -0
  207. {otdf_python-0.3.4 → otdf_python-0.4.0}/tests/__init__.py +0 -0
  208. {otdf_python-0.3.4 → otdf_python-0.4.0}/tests/config_pydantic.py +0 -0
  209. {otdf_python-0.3.4 → otdf_python-0.4.0}/tests/integration/conftest.py +0 -0
  210. {otdf_python-0.3.4 → otdf_python-0.4.0}/tests/integration/otdfctl_only/test_otdfctl_generated_fixtures.py +0 -0
  211. {otdf_python-0.3.4 → otdf_python-0.4.0}/tests/integration/otdfctl_to_python/test_cli_comparison.py +0 -0
  212. {otdf_python-0.3.4 → otdf_python-0.4.0}/tests/integration/otdfctl_to_python/test_cli_decrypt.py +0 -0
  213. {otdf_python-0.3.4 → otdf_python-0.4.0}/tests/integration/otdfctl_to_python/test_cli_inspect.py +0 -0
  214. {otdf_python-0.3.4 → otdf_python-0.4.0}/tests/integration/otdfctl_to_python/test_tdf_reader_integration.py +0 -0
  215. {otdf_python-0.3.4 → otdf_python-0.4.0}/tests/integration/python_only/test_kas_client_integration.py +0 -0
  216. {otdf_python-0.3.4 → otdf_python-0.4.0}/tests/integration/support_sdk.py +0 -0
  217. {otdf_python-0.3.4 → otdf_python-0.4.0}/tests/integration/test_cli_integration.py +0 -0
  218. {otdf_python-0.3.4 → otdf_python-0.4.0}/tests/integration/test_cli_tdf_validation.py +0 -0
  219. {otdf_python-0.3.4 → otdf_python-0.4.0}/tests/integration/test_data/empty_file.txt +0 -0
  220. {otdf_python-0.3.4 → otdf_python-0.4.0}/tests/integration/test_data/sample_binary.png +0 -0
  221. {otdf_python-0.3.4 → otdf_python-0.4.0}/tests/integration/test_data/sample_text.txt +0 -0
  222. {otdf_python-0.3.4 → otdf_python-0.4.0}/tests/integration/test_data/sample_with_attributes.txt +0 -0
  223. {otdf_python-0.3.4 → otdf_python-0.4.0}/tests/integration/test_pe_interaction.py +0 -0
  224. {otdf_python-0.3.4 → otdf_python-0.4.0}/tests/mock_crypto.py +0 -0
  225. {otdf_python-0.3.4 → otdf_python-0.4.0}/tests/server_logs.py +0 -0
  226. {otdf_python-0.3.4 → otdf_python-0.4.0}/tests/support_cli_args.py +0 -0
  227. {otdf_python-0.3.4 → otdf_python-0.4.0}/tests/support_common.py +0 -0
  228. {otdf_python-0.3.4 → otdf_python-0.4.0}/tests/support_otdfctl.py +0 -0
  229. {otdf_python-0.3.4 → otdf_python-0.4.0}/tests/support_otdfctl_args.py +0 -0
  230. {otdf_python-0.3.4 → otdf_python-0.4.0}/tests/test_address_normalizer.py +0 -0
  231. {otdf_python-0.3.4 → otdf_python-0.4.0}/tests/test_aesgcm.py +0 -0
  232. {otdf_python-0.3.4 → otdf_python-0.4.0}/tests/test_assertion_config.py +0 -0
  233. {otdf_python-0.3.4 → otdf_python-0.4.0}/tests/test_autoconfigure_utils.py +0 -0
  234. {otdf_python-0.3.4 → otdf_python-0.4.0}/tests/test_cli.py +0 -0
  235. {otdf_python-0.3.4 → otdf_python-0.4.0}/tests/test_collection_store.py +0 -0
  236. {otdf_python-0.3.4 → otdf_python-0.4.0}/tests/test_config.py +0 -0
  237. {otdf_python-0.3.4 → otdf_python-0.4.0}/tests/test_crypto_utils.py +0 -0
  238. {otdf_python-0.3.4 → otdf_python-0.4.0}/tests/test_eckeypair.py +0 -0
  239. {otdf_python-0.3.4 → otdf_python-0.4.0}/tests/test_inner_classes.py +0 -0
  240. {otdf_python-0.3.4 → otdf_python-0.4.0}/tests/test_kas_client.py +0 -0
  241. {otdf_python-0.3.4 → otdf_python-0.4.0}/tests/test_kas_key_cache.py +0 -0
  242. {otdf_python-0.3.4 → otdf_python-0.4.0}/tests/test_key_type.py +0 -0
  243. {otdf_python-0.3.4 → otdf_python-0.4.0}/tests/test_log_collection.py +0 -0
  244. {otdf_python-0.3.4 → otdf_python-0.4.0}/tests/test_manifest.py +0 -0
  245. {otdf_python-0.3.4 → otdf_python-0.4.0}/tests/test_manifest_format.py +0 -0
  246. {otdf_python-0.3.4 → otdf_python-0.4.0}/tests/test_nanotdf_ecdsa_struct.py +0 -0
  247. {otdf_python-0.3.4 → otdf_python-0.4.0}/tests/test_nanotdf_type.py +0 -0
  248. {otdf_python-0.3.4 → otdf_python-0.4.0}/tests/test_policy_object.py +0 -0
  249. {otdf_python-0.3.4 → otdf_python-0.4.0}/tests/test_sdk.py +0 -0
  250. {otdf_python-0.3.4 → otdf_python-0.4.0}/tests/test_sdk_builder.py +0 -0
  251. {otdf_python-0.3.4 → otdf_python-0.4.0}/tests/test_sdk_exceptions.py +0 -0
  252. {otdf_python-0.3.4 → otdf_python-0.4.0}/tests/test_sdk_mock.py +0 -0
  253. {otdf_python-0.3.4 → otdf_python-0.4.0}/tests/test_sdk_tdf_integration.py +0 -0
  254. {otdf_python-0.3.4 → otdf_python-0.4.0}/tests/test_tdf.py +0 -0
  255. {otdf_python-0.3.4 → otdf_python-0.4.0}/tests/test_tdf_reader.py +0 -0
  256. {otdf_python-0.3.4 → otdf_python-0.4.0}/tests/test_tdf_writer.py +0 -0
  257. {otdf_python-0.3.4 → otdf_python-0.4.0}/tests/test_token_source.py +0 -0
  258. {otdf_python-0.3.4 → otdf_python-0.4.0}/tests/test_url_normalization.py +0 -0
  259. {otdf_python-0.3.4 → otdf_python-0.4.0}/tests/test_use_plaintext_flow.py +0 -0
  260. {otdf_python-0.3.4 → otdf_python-0.4.0}/tests/test_validate_otdf_python.py +0 -0
  261. {otdf_python-0.3.4 → otdf_python-0.4.0}/tests/test_version.py +0 -0
  262. {otdf_python-0.3.4 → otdf_python-0.4.0}/tests/test_zip_reader.py +0 -0
  263. {otdf_python-0.3.4 → otdf_python-0.4.0}/tests/test_zip_writer.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:
@@ -4,6 +4,10 @@
4
4
  platform/
5
5
  tests/integration/test_data/v4.2.2/*tdf
6
6
  tests/integration/test_data/v4.3.1/*tdf
7
+
8
+ # For integration testing, etc.
9
+ .vagrant/
10
+
7
11
  ### Python ###
8
12
  # Byte-compiled / optimized / DLL files
9
13
  __pycache__/
@@ -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.13.3
37
+ rev: v0.14.5
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.2.0
44
+ rev: v4.3.0
45
45
  hooks:
46
46
  - id: conventional-pre-commit
47
47
  stages: [commit-msg]
48
- args: [--verbose, --scopes="feat, fix, docs, style, test, chore, ci"]
48
+ args: [--verbose, feat, fix, docs, style, test, chore, ci]
@@ -0,0 +1,3 @@
1
+ {
2
+ ".": "0.4.0"
3
+ }
@@ -1,10 +1,24 @@
1
1
  # Changelog
2
2
 
3
+ ## [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)
4
+
5
+
6
+ ### Features
7
+
8
+ * 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))
9
+
10
+ ## [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)
11
+
12
+
13
+ ### Bug Fixes
14
+
15
+ * NanoTDF support ([#114](https://github.com/b-long/opentdf-python-sdk/issues/114)) ([8f09297](https://github.com/b-long/opentdf-python-sdk/commit/8f092976f6473db7738a86d7ec30dc9ebbcb6a3a))
16
+
3
17
  ## [0.3.4](https://github.com/b-long/opentdf-python-sdk/compare/otdf-python-v0.3.3...otdf-python-v0.3.4) (2025-10-04)
4
18
 
5
19
  ### Chores
6
20
 
7
- * chore: remove placeholders ([#110](https://github.com/b-long/opentdf-python-sdk/issues/110))
21
+ * chore: remove placeholders ([#110](https://github.com/b-long/opentdf-python-sdk/issues/110))
8
22
 
9
23
 
10
24
  ### Bug Fixes
@@ -1,11 +1,28 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: otdf-python
3
- Version: 0.3.4
3
+ Version: 0.4.0
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]>=0.4.2
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,6 +1,6 @@
1
1
  [project]
2
2
  name = "otdf-python-proto"
3
- version = "0.3.4"
3
+ version = "0.4.0"
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)