laserninja opened a new pull request, #13795: URL: https://github.com/apache/gravitino/pull/13795
### What changes were proposed in this pull request? Add `import_ossie_document(namespace, document, document_format="yaml")` and `export_ossie_document(identifier, document_format="yaml")` to the Python Semantic Model catalog API. Use the existing HTTP client for raw UTF-8 YAML/JSON text and the lossless Semantic Model response decoder. Export returns document text unchanged. Add unit tests, a separate Ossie integration-test module, and a usage example without adding dependencies. ### Why are the changes needed? The server supports Ossie import/export, but the Python SDK lacks these operations. The new real-server round-trip test reproduced the missing method before implementation. Part of #12209. ### Does this PR introduce _any_ user-facing change? Yes. Python users can import and export Ossie YAML/JSON documents, defaulting to YAML. Imports report conflicts without replacing existing models. ### How was this patch tested? - Full Python unit suite: 1,221 passed (`python -m unittest discover -s tests/unittests`). - All 6 new real-server integration tests passed (`START_EXTERNAL_GRAVITINO=true python -m unittest -v tests.integration.test_semantic_model_ossie`). - Round trips verify both formats, exact decimals/large integers, additional AI context, properties, and custom extensions. Error cases verify malformed documents, missing schema/model/source, and non-destructive conflicts. - Changed-file Black/Pylint, repository Spotless, and `git diff --check` passed. - Tests ran from `clients/client-python` on Python 3.11 against a JDK 17 server built from current main with `./gradlew compileDistribution -PskipWeb=true -PskipTrinoConnector=true -PskipTests -PskipITs -x test`. Dependencies: none beyond main at `b837e07a9`, including merged #12860. This does not stack on #13768 or change metadata/privilege mappings, tag/owner support, or server authorization. No new integration tests were skipped. The full repository integration suite and Python-version matrix were not run. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
