Skip to content

Commit bb79667

Browse files
committed
add protobuf 5 compatibility
1 parent a55df0b commit bb79667

File tree

4 files changed

+26
-9
lines changed

4 files changed

+26
-9
lines changed

.github/workflows/tests.yaml

+11-3
Original file line numberDiff line numberDiff line change
@@ -17,14 +17,22 @@ jobs:
1717
strategy:
1818
fail-fast: false
1919
matrix:
20-
python-version: [3.8]
21-
environment: [py-proto4, py-tls-proto4, py-proto3, py-tls-proto3]
22-
folder: [ydb, tests]
20+
python-version: [3.8, 3.9]
21+
environment: [py-proto5, py-tls-proto5, py-proto4, py-tls-proto4, py-proto3, py-tls-proto3]
22+
folder: [ydb, tests --ignore=tests/topics, tests/topics]
2323
exclude:
24+
- environment: py-tls-proto5
25+
folder: ydb
2426
- environment: py-tls-proto4
2527
folder: ydb
2628
- environment: py-tls-proto3
2729
folder: ydb
30+
- environment: py-tls-proto5
31+
folder: tests/topics
32+
- environment: py-tls-proto4
33+
folder: tests/topics
34+
- environment: py-tls-proto3
35+
folder: tests/topics
2836

2937
steps:
3038
- uses: actions/checkout@v1

test-requirements.txt

+2-2
Original file line numberDiff line numberDiff line change
@@ -11,15 +11,15 @@ docker==5.0.0
1111
docker-compose==1.29.2
1212
dockerpty==0.4.1
1313
docopt==0.6.2
14-
grpcio==1.42.0
14+
grpcio>=1.42.0
1515
idna==3.2
1616
importlib-metadata==4.6.1
1717
iniconfig==1.1.1
1818
jsonschema==3.2.0
1919
packaging==21.0
2020
paramiko==2.10.1
2121
pluggy==0.13.1
22-
protobuf>=3.13.0,<5.0.0
22+
protobuf>=3.13.0,<6.0.0
2323
py==1.10.0
2424
pycparser==2.20
2525
PyNaCl==1.4.0

tox.ini

+3-3
Original file line numberDiff line numberDiff line change
@@ -32,14 +32,14 @@ deps =
3232

3333
[testenv:py-proto5]
3434
commands =
35-
pytest -v -m "not tls" --docker-compose-remove-volumes --docker-compose=docker-compose.yml {posargs}
35+
pytest -v -m "not tls" --docker-compose-remove-volumes --docker-compose=docker-compose.yml {posargs} --ignore=tests/topics
3636
deps =
3737
-r{toxinidir}/test-requirements.txt
3838
protobuf<6.0.0
3939

4040
[testenv:py-proto4]
4141
commands =
42-
pytest -v -m "not tls" --docker-compose-remove-volumes --docker-compose=docker-compose.yml {posargs}
42+
pytest -v -m "not tls" --docker-compose-remove-volumes --docker-compose=docker-compose.yml {posargs} --ignore=tests/topics
4343
deps =
4444
-r{toxinidir}/test-requirements.txt
4545
protobuf<5.0.0
@@ -55,7 +55,7 @@ deps =
5555

5656
[testenv:py-proto3]
5757
commands =
58-
pytest -v -m "not tls" --docker-compose-remove-volumes --docker-compose=docker-compose.yml {posargs}
58+
pytest -v -m "not tls" --docker-compose-remove-volumes --docker-compose=docker-compose.yml {posargs} --ignore=tests/topics
5959
deps =
6060
-r{toxinidir}/test-requirements.txt
6161
protobuf<4.0.0

ydb/_grpc/common/__init__.py

+10-1
Original file line numberDiff line numberDiff line change
@@ -36,11 +36,20 @@
3636
from ydb._grpc.v3 import protos # noqa
3737

3838
sys.modules["ydb._grpc.common.protos"] = sys.modules["ydb._grpc.v3.protos"]
39-
else:
39+
elif protobuf_version < Version("5.0"):
4040
from ydb._grpc.v4 import * # noqa
4141

4242
sys.modules["ydb._grpc.common"] = sys.modules["ydb._grpc.v4"]
4343

4444
from ydb._grpc.v4 import protos # noqa
4545

4646
sys.modules["ydb._grpc.common.protos"] = sys.modules["ydb._grpc.v4.protos"]
47+
48+
else:
49+
from ydb._grpc.v5 import * # noqa
50+
51+
sys.modules["ydb._grpc.common"] = sys.modules["ydb._grpc.v5"]
52+
53+
from ydb._grpc.v5 import protos # noqa
54+
55+
sys.modules["ydb._grpc.common.protos"] = sys.modules["ydb._grpc.v5.protos"]

0 commit comments

Comments
 (0)