Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[EPIC] Refactor Java and Python client API for better user experience #3626

Closed
shaofengshi opened this issue May 29, 2024 · 1 comment
Closed
Assignees
Labels
0.6.0 Release v0.6.0 epic Key feature

Comments

@shaofengshi
Copy link
Contributor

shaofengshi commented May 29, 2024

Describe the proposal

The current Java client API is not user-friendly in some aspects; For example, the function that asking a Table's NameIdentifier parameter must be a fully-qualified name (with metalake name, catalog name, together with schema name and table name):

`
Catalog catalog = metalake.loadCatalog(catalogName);
TableCatalog tableCatalog = catalog.asTableCatalog();

NameIdentifier id =
NameIdentifier.of(metalakeName, catalogName, schemaName, tableName);

Table t = tableCatalog.loadTable(id)
`

Actually this is not necessary. There are also other issues, create this epic as an umbrella for such refactoring.

Task list

@shaofengshi shaofengshi added the epic Key feature label May 29, 2024
@shaofengshi shaofengshi self-assigned this May 29, 2024
@shaofengshi shaofengshi changed the title [EPIC] Refactor Java client API for better user experience [EPIC] Refactor Java and Python client API for better user experience Jul 2, 2024
xunliu pushed a commit that referenced this issue Jul 3, 2024
…API: gravitino_metalake, gravitino_client (#4025)

### What changes were proposed in this pull request?
After the refactoring work in Java client is done
(#3626), the Python client
should also get updated to align with the Java API.

This PR mainly work on the following python classes:
1. gravitino_metalake.py
2. gravitino_client.py
3. gravitino_admin_client.py


### Why are the changes needed?

To make the API simple and easy to use.

Fix: #3732

### Does this PR introduce _any_ user-facing change?
Change the Python client API.

### How was this patch tested?
The integration tests are updated and passed.
shaofengshi pushed a commit that referenced this issue Jul 3, 2024
…he Java client API (#4046)

### What changes were proposed in this pull request?

After the refactoring work in Java client is done
(#3626), the Python client
should also get updated to align with the Java API.

* Update all the catalog, schema and their implementation to align with
`client-java`
* Remove redundant methods in `Namespace` and `NameIdentifier`
* Add some missing tests and modify existing tests to conform with new
API

### Why are the changes needed?

Fix: #3732 

### Does this PR introduce _any_ user-facing change?

No

### How was this patch tested?

UT added and test with `./gradlew clients:client-python:test`

---------

Co-authored-by: TimWang <tim.wang@pranaq.com>
@jerryshao jerryshao added the 0.6.0 Release v0.6.0 label Aug 1, 2024
@shaofengshi
Copy link
Contributor Author

As all dev works are finished, close this issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
0.6.0 Release v0.6.0 epic Key feature
Projects
None yet
Development

No branches or pull requests

2 participants