Skip to content

Commit 518f507

Browse files
Make grpclib truly optional (#139)
* Add dependencies workflow * Run tests * Fix many tests * Fix tests * Fix tests * Add missing grpclib files * Fix mock in test * Fix typo * Remove grpclib dependency * Remove useless dependencies installation * Fix protobuf vs grpcio * Run more tests * Remove unrelated file * Fix test * Fix test * Fix test
1 parent bbae31b commit 518f507

37 files changed

Lines changed: 713 additions & 520 deletions

.github/workflows/ci.yml

Lines changed: 105 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,111 @@ permissions:
1212
contents: read
1313

1414
jobs:
15+
test-dependencies:
16+
name: Check running without dependencies
17+
runs-on: ubuntu-latest
18+
steps:
19+
- uses: actions/checkout@v4
20+
21+
- name: Install uv with Python 3.12
22+
uses: astral-sh/setup-uv@v5
23+
with:
24+
version: "0.7.5"
25+
python-version: "3.12"
26+
27+
- name: Install betterproto2
28+
working-directory: ./betterproto2
29+
run: uv sync --locked
30+
31+
- name: Install betterproto2_compiler
32+
working-directory: ./betterproto2_compiler
33+
run: uv sync --locked
34+
35+
- name: Compile test files
36+
working-directory: ./betterproto2_compiler
37+
shell: bash
38+
run: uv run poe generate
39+
40+
- name: Move compiled files to betterproto2
41+
shell: bash
42+
run: cp -r betterproto2_compiler/tests/outputs betterproto2/tests
43+
44+
- name: Execute test suite
45+
working-directory: ./betterproto2
46+
run: uv run poe test
47+
48+
49+
- name: Add Pydantic
50+
working-directory: ./betterproto2
51+
run: uv sync --locked --extra=pydantic
52+
53+
- name: Execute test suite
54+
working-directory: ./betterproto2
55+
run: uv run poe test
56+
57+
58+
- name: Add all but Pydantic
59+
working-directory: ./betterproto2
60+
run: uv sync --locked --extra=grpclib --extra=grpcio --extra=protobuf
61+
62+
- name: Execute test suite
63+
working-directory: ./betterproto2
64+
run: uv run poe test
65+
66+
67+
- name: Add grpclib
68+
working-directory: ./betterproto2
69+
run: uv sync --locked --extra=grpclib
70+
71+
- name: Execute test suite
72+
working-directory: ./betterproto2
73+
run: uv run poe test
74+
75+
76+
- name: Add all but grpclib
77+
working-directory: ./betterproto2
78+
run: uv sync --locked --extra=pydantic --extra=grpcio --extra=protobuf
79+
80+
- name: Execute test suite
81+
working-directory: ./betterproto2
82+
run: uv run poe test
83+
84+
85+
- name: Add grpcio
86+
working-directory: ./betterproto2
87+
run: uv sync --locked --extra=grpcio
88+
89+
- name: Execute test suite
90+
working-directory: ./betterproto2
91+
run: uv run poe test
92+
93+
94+
- name: Add all but grpcio
95+
working-directory: ./betterproto2
96+
run: uv sync --locked --extra=pydantic --extra=grpclib --extra=protobuf
97+
98+
- name: Execute test suite
99+
working-directory: ./betterproto2
100+
run: uv run poe test
101+
102+
103+
- name: Add protobuf
104+
working-directory: ./betterproto2
105+
run: uv sync --locked --extra=protobuf
106+
107+
- name: Execute test suite
108+
working-directory: ./betterproto2
109+
run: uv run poe test
110+
111+
112+
- name: Add all but protobuf
113+
working-directory: ./betterproto2
114+
run: uv sync --locked --extra=pydantic --extra=grpclib --extra=grpcio
115+
116+
- name: Execute test suite
117+
working-directory: ./betterproto2
118+
run: uv run poe test
119+
15120
tests:
16121
name: ${{ matrix.os }} / ${{ matrix.python-version }}
17122
runs-on: ${{ matrix.os }}-latest

betterproto2/src/betterproto2/__init__.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,6 @@
4343
from ._version import __version__, check_compiler_version
4444
from .casing import camel_case, safe_snake_case, snake_case
4545
from .enum_ import Enum as Enum
46-
from .grpc.grpclib_client import ServiceStub as ServiceStub
4746
from .utils import classproperty, staticproperty
4847

4948
if TYPE_CHECKING:

betterproto2/src/betterproto2/grpc/__init__.py

Whitespace-only changes.
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
from .grpclib_client import ServiceStub as ServiceStub
2+
from .grpclib_server import ServiceBase as ServiceBase

betterproto2/src/betterproto2/grpc/grpclib_client.py renamed to betterproto2/src/betterproto2/grpclib/grpclib_client.py

File renamed without changes.

betterproto2/src/betterproto2/grpc/grpclib_server.py renamed to betterproto2/src/betterproto2/grpclib/grpclib_server.py

File renamed without changes.

0 commit comments

Comments
 (0)