Skip to content

Commit 043602a

Browse files
committed
feat: First commit
1 parent 36e9bd6 commit 043602a

File tree

11 files changed

+1021
-1
lines changed

11 files changed

+1021
-1
lines changed

.gitignore

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -158,3 +158,8 @@ cython_debug/
158158
# and can be added to the global gitignore or merged into this file. For a more nuclear
159159
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
160160
#.idea/
161+
162+
# cloned proto files
163+
protos/
164+
plugin-pb/
165+

LICENSE

Lines changed: 355 additions & 0 deletions
Large diffs are not rendered by default.

Makefile

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
2+
clone-proto:
3+
git clone https://github.com/cloudquery/plugin-pb
4+
5+
gen:
6+
cd plugin-pb && git pull && cd ..
7+
cp ./plugin-pb/plugin/v3/*.proto ./protos/cloudquery/plugin_v3/.
8+
python -m grpc_tools.protoc -I./protos --python_out=. --pyi_out=. --grpc_python_out=. ./protos/cloudquery/plugin_v3/*.proto

README.md

Lines changed: 30 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,30 @@
1-
# plugin-pb-python
1+
# plugin-pb-python
2+
3+
This is a low-level auto-generate gRPC client and server for CloudQuery plugin from [plugin-pb protos](https://github.com/cloudquery/plugin-pb).
4+
5+
## Development
6+
7+
### Prerequisites
8+
9+
- [Python 3.7+](https://www.python.org/downloads/)
10+
11+
we recommend using virtualenv to manage your python environment.
12+
13+
```bash
14+
virtualenv -p python3.7 venv
15+
source venv/bin/activate
16+
```
17+
18+
### Install dependencies
19+
20+
```bash
21+
pip install -r requirements.txt
22+
```
23+
24+
### Regenerate gRPC code
25+
26+
```bash
27+
make clone-proto # This is needed only once
28+
make gen
29+
```
30+

cloudquery/plugin_v3/__init__.py

Whitespace-only changes.

cloudquery/plugin_v3/plugin_pb2.py

Lines changed: 90 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 165 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,165 @@
1+
from google.protobuf import timestamp_pb2 as _timestamp_pb2
2+
from google.protobuf.internal import containers as _containers
3+
from google.protobuf import descriptor as _descriptor
4+
from google.protobuf import message as _message
5+
from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Mapping, Optional as _Optional, Union as _Union
6+
7+
DESCRIPTOR: _descriptor.FileDescriptor
8+
9+
class GetName(_message.Message):
10+
__slots__ = []
11+
class Request(_message.Message):
12+
__slots__ = []
13+
def __init__(self) -> None: ...
14+
class Response(_message.Message):
15+
__slots__ = ["name"]
16+
NAME_FIELD_NUMBER: _ClassVar[int]
17+
name: str
18+
def __init__(self, name: _Optional[str] = ...) -> None: ...
19+
def __init__(self) -> None: ...
20+
21+
class GetVersion(_message.Message):
22+
__slots__ = []
23+
class Request(_message.Message):
24+
__slots__ = []
25+
def __init__(self) -> None: ...
26+
class Response(_message.Message):
27+
__slots__ = ["version"]
28+
VERSION_FIELD_NUMBER: _ClassVar[int]
29+
version: str
30+
def __init__(self, version: _Optional[str] = ...) -> None: ...
31+
def __init__(self) -> None: ...
32+
33+
class Init(_message.Message):
34+
__slots__ = []
35+
class Request(_message.Message):
36+
__slots__ = ["spec", "no_connection"]
37+
SPEC_FIELD_NUMBER: _ClassVar[int]
38+
NO_CONNECTION_FIELD_NUMBER: _ClassVar[int]
39+
spec: bytes
40+
no_connection: bool
41+
def __init__(self, spec: _Optional[bytes] = ..., no_connection: bool = ...) -> None: ...
42+
class Response(_message.Message):
43+
__slots__ = []
44+
def __init__(self) -> None: ...
45+
def __init__(self) -> None: ...
46+
47+
class GetTables(_message.Message):
48+
__slots__ = []
49+
class Request(_message.Message):
50+
__slots__ = ["tables", "skip_tables"]
51+
TABLES_FIELD_NUMBER: _ClassVar[int]
52+
SKIP_TABLES_FIELD_NUMBER: _ClassVar[int]
53+
tables: _containers.RepeatedScalarFieldContainer[str]
54+
skip_tables: _containers.RepeatedScalarFieldContainer[str]
55+
def __init__(self, tables: _Optional[_Iterable[str]] = ..., skip_tables: _Optional[_Iterable[str]] = ...) -> None: ...
56+
class Response(_message.Message):
57+
__slots__ = ["tables"]
58+
TABLES_FIELD_NUMBER: _ClassVar[int]
59+
tables: _containers.RepeatedScalarFieldContainer[bytes]
60+
def __init__(self, tables: _Optional[_Iterable[bytes]] = ...) -> None: ...
61+
def __init__(self) -> None: ...
62+
63+
class Sync(_message.Message):
64+
__slots__ = []
65+
class MessageInsert(_message.Message):
66+
__slots__ = ["record"]
67+
RECORD_FIELD_NUMBER: _ClassVar[int]
68+
record: bytes
69+
def __init__(self, record: _Optional[bytes] = ...) -> None: ...
70+
class MessageMigrateTable(_message.Message):
71+
__slots__ = ["table"]
72+
TABLE_FIELD_NUMBER: _ClassVar[int]
73+
table: bytes
74+
def __init__(self, table: _Optional[bytes] = ...) -> None: ...
75+
class BackendOptions(_message.Message):
76+
__slots__ = ["table_name", "connection"]
77+
TABLE_NAME_FIELD_NUMBER: _ClassVar[int]
78+
CONNECTION_FIELD_NUMBER: _ClassVar[int]
79+
table_name: str
80+
connection: str
81+
def __init__(self, table_name: _Optional[str] = ..., connection: _Optional[str] = ...) -> None: ...
82+
class Request(_message.Message):
83+
__slots__ = ["tables", "skip_tables", "skip_dependent_tables", "deterministic_cq_id", "backend"]
84+
TABLES_FIELD_NUMBER: _ClassVar[int]
85+
SKIP_TABLES_FIELD_NUMBER: _ClassVar[int]
86+
SKIP_DEPENDENT_TABLES_FIELD_NUMBER: _ClassVar[int]
87+
DETERMINISTIC_CQ_ID_FIELD_NUMBER: _ClassVar[int]
88+
BACKEND_FIELD_NUMBER: _ClassVar[int]
89+
tables: _containers.RepeatedScalarFieldContainer[str]
90+
skip_tables: _containers.RepeatedScalarFieldContainer[str]
91+
skip_dependent_tables: bool
92+
deterministic_cq_id: bool
93+
backend: Sync.BackendOptions
94+
def __init__(self, tables: _Optional[_Iterable[str]] = ..., skip_tables: _Optional[_Iterable[str]] = ..., skip_dependent_tables: bool = ..., deterministic_cq_id: bool = ..., backend: _Optional[_Union[Sync.BackendOptions, _Mapping]] = ...) -> None: ...
95+
class Response(_message.Message):
96+
__slots__ = ["migrate_table", "insert"]
97+
MIGRATE_TABLE_FIELD_NUMBER: _ClassVar[int]
98+
INSERT_FIELD_NUMBER: _ClassVar[int]
99+
migrate_table: Sync.MessageMigrateTable
100+
insert: Sync.MessageInsert
101+
def __init__(self, migrate_table: _Optional[_Union[Sync.MessageMigrateTable, _Mapping]] = ..., insert: _Optional[_Union[Sync.MessageInsert, _Mapping]] = ...) -> None: ...
102+
def __init__(self) -> None: ...
103+
104+
class Read(_message.Message):
105+
__slots__ = []
106+
class Request(_message.Message):
107+
__slots__ = ["table"]
108+
TABLE_FIELD_NUMBER: _ClassVar[int]
109+
table: bytes
110+
def __init__(self, table: _Optional[bytes] = ...) -> None: ...
111+
class Response(_message.Message):
112+
__slots__ = ["record"]
113+
RECORD_FIELD_NUMBER: _ClassVar[int]
114+
record: bytes
115+
def __init__(self, record: _Optional[bytes] = ...) -> None: ...
116+
def __init__(self) -> None: ...
117+
118+
class Write(_message.Message):
119+
__slots__ = []
120+
class MessageMigrateTable(_message.Message):
121+
__slots__ = ["table", "migrate_force"]
122+
TABLE_FIELD_NUMBER: _ClassVar[int]
123+
MIGRATE_FORCE_FIELD_NUMBER: _ClassVar[int]
124+
table: bytes
125+
migrate_force: bool
126+
def __init__(self, table: _Optional[bytes] = ..., migrate_force: bool = ...) -> None: ...
127+
class MessageInsert(_message.Message):
128+
__slots__ = ["record"]
129+
RECORD_FIELD_NUMBER: _ClassVar[int]
130+
record: bytes
131+
def __init__(self, record: _Optional[bytes] = ...) -> None: ...
132+
class MessageDeleteStale(_message.Message):
133+
__slots__ = ["table", "source_name", "sync_time", "table_name"]
134+
TABLE_FIELD_NUMBER: _ClassVar[int]
135+
SOURCE_NAME_FIELD_NUMBER: _ClassVar[int]
136+
SYNC_TIME_FIELD_NUMBER: _ClassVar[int]
137+
TABLE_NAME_FIELD_NUMBER: _ClassVar[int]
138+
table: bytes
139+
source_name: str
140+
sync_time: _timestamp_pb2.Timestamp
141+
table_name: str
142+
def __init__(self, table: _Optional[bytes] = ..., source_name: _Optional[str] = ..., sync_time: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., table_name: _Optional[str] = ...) -> None: ...
143+
class Request(_message.Message):
144+
__slots__ = ["migrate_table", "insert", "delete"]
145+
MIGRATE_TABLE_FIELD_NUMBER: _ClassVar[int]
146+
INSERT_FIELD_NUMBER: _ClassVar[int]
147+
DELETE_FIELD_NUMBER: _ClassVar[int]
148+
migrate_table: Write.MessageMigrateTable
149+
insert: Write.MessageInsert
150+
delete: Write.MessageDeleteStale
151+
def __init__(self, migrate_table: _Optional[_Union[Write.MessageMigrateTable, _Mapping]] = ..., insert: _Optional[_Union[Write.MessageInsert, _Mapping]] = ..., delete: _Optional[_Union[Write.MessageDeleteStale, _Mapping]] = ...) -> None: ...
152+
class Response(_message.Message):
153+
__slots__ = []
154+
def __init__(self) -> None: ...
155+
def __init__(self) -> None: ...
156+
157+
class Close(_message.Message):
158+
__slots__ = []
159+
class Request(_message.Message):
160+
__slots__ = []
161+
def __init__(self) -> None: ...
162+
class Response(_message.Message):
163+
__slots__ = []
164+
def __init__(self) -> None: ...
165+
def __init__(self) -> None: ...

0 commit comments

Comments
 (0)