chore: add cross_sync annotations#1000
Conversation
mutianf
left a comment
There was a problem hiding this comment.
Is there a test to validate that the sync surface is re-generated when there's change to async code?
| ), | ||
| "RAISE_NO_LOOP": ( | ||
| "RuntimeError: if called outside of an async context (no running event loop)", | ||
| "", |
There was a problem hiding this comment.
Ok, let's change this to None to be consistent with other methods?
| if CrossSync.is_async: | ||
| from google.cloud.bigtable.data._async.client import TableAsync as TableType | ||
| else: | ||
| from google.cloud.bigtable.data._sync_autogen.client import Table as TableType # type: ignore |
There was a problem hiding this comment.
dumb question.. isn't _sync_autogen.client also generated from cross sync? how can we import a not yet generated class?
There was a problem hiding this comment.
Yeah, good point, this should really just be in the next PR, since the file doesn't exist yet
For the "how" part: this import statement isn't actually executed, since it's behind an if False branch. This import is just for the generated file
Yes, but that's in the next PR, since we don't have the generated files here yet |
PR 2/x for adding the sync surface for the new data client
This PR restructures the existing async library to better support the sync side. Specifically:
Currently, we need to run the conversion process manually (using
python .cross_sync/generate.py, and the sync files are not included in the codebase. The next PR will add the sync artifacts, and add the generation pipeline into the CI system