Skip to content

Commit

Permalink
Added gRPC-Reflection
Browse files Browse the repository at this point in the history
  • Loading branch information
minhoryang committed Dec 3, 2019
1 parent 9a87e5f commit 77ec4ce
Show file tree
Hide file tree
Showing 10 changed files with 178 additions and 53 deletions.
7 changes: 4 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ python -m pytest --konlpy-repo=../konlpy
- [x] [P0] client.py will be a konlpy-alike module.
- [x] [P0] KoNLPy monkey-patcher
- [x] [P1] Packaging with Poetry `pyproject.toml`.
- [ ] PyPI Register (BLOCKED BY - KoNLPy v0.5.2 release)
- [ ] PyPI Register
- [ ] Find lowerbound-version of requirements. <!-- poetry debug:resolve -->
- [P1] gRPC Proto Compile
- [P1] In-house tool: `manage.py`
Expand All @@ -51,7 +51,8 @@ python -m pytest --konlpy-repo=../konlpy
-->
- [P1] KoNLPy Version Matching (set minimum) and Follow-up
- [P1] gRPC retry/timeout/error_handling logic <!-- google.api_core.* or grpc-retry-py -->
- [P1] gRPC reflection/heartbeat
- [x] [P1] gRPC reflection
- [P1] gRPC heartbeat
- [P2] Dockerize / Register
- k8s and istio?
- [P2] CI
Expand All @@ -65,7 +66,7 @@ python -m pytest --konlpy-repo=../konlpy
## Additional Links
- [KoNLPy/KoNLPy](https://github.com/konlpy/konlpy)
- [Pruned KoNLPy v0.5.2-rc.1](https://github.com/minhoryang/konlpy)
- Currently, servers rely on KoNLPy v0.5.2-rc.1 version.
- Currently, servers rely on KoNLPy v0.5.2 version.

## License
GNU GPLv3
4 changes: 2 additions & 2 deletions konlpy_grpc/_generated/__init__.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import os, sys
import os
import sys


_TOUCHED = False
if not _TOUCHED:
sys.path.insert(0, os.path.abspath(os.path.dirname(__file__)))
_TOUCHED = True

14 changes: 14 additions & 0 deletions konlpy_grpc/server.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@

import grpc

from grpc_reflection.v1alpha import reflection

from .servers import hannanum_server, kkma_server, komoran_server, mecab_server, okt_server


Expand All @@ -11,11 +13,23 @@

def serve():
server = grpc.server(futures.ThreadPoolExecutor(max_workers=10)) # XXX: grpc doesn't support ProcessPoolExecutor.

hannanum_server.add_to_server(hannanum_server.HannanumService(), server)
kkma_server.add_to_server(kkma_server.KkmaService(), server)
komoran_server.add_to_server(komoran_server.KomoranService(), server)
mecab_server.add_to_server(mecab_server.MecabService(), server)
okt_server.add_to_server(okt_server.OktService(), server)

SERVICE_NAMES = (
reflection.SERVICE_NAME,
hannanum_server.SERVICE_NAME,
kkma_server.SERVICE_NAME,
komoran_server.SERVICE_NAME,
mecab_server.SERVICE_NAME,
okt_server.SERVICE_NAME,
)
reflection.enable_server_reflection(SERVICE_NAMES, server)

server.add_insecure_port("[::]:50051")
server.start()
try:
Expand Down
5 changes: 4 additions & 1 deletion konlpy_grpc/servers/hannanum_server.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

from konlpy.tag import Hannanum

from .._generated import global_pb2, hannanum_pb2_grpc
from .._generated import global_pb2, hannanum_pb2, hannanum_pb2_grpc
from ..monkeypatch import _ORIGINAL, KEY_TAG_HANNANUM


Expand Down Expand Up @@ -72,6 +72,9 @@ def Analyze(self, request, context):
add_to_server = hannanum_pb2_grpc.add_HannanumServicer_to_server


SERVICE_NAME = hannanum_pb2._HANNANUM.full_name


def serve():
server = grpc.server(futures.ThreadPoolExecutor(max_workers=10))
add_to_server(HannanumService(), server)
Expand Down
5 changes: 4 additions & 1 deletion konlpy_grpc/servers/kkma_server.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

from konlpy.tag import Kkma

from .._generated import global_pb2, kkma_pb2_grpc
from .._generated import global_pb2, kkma_pb2, kkma_pb2_grpc
from ..monkeypatch import _ORIGINAL, KEY_TAG_KKMA


Expand Down Expand Up @@ -59,6 +59,9 @@ def Sentences(self, request, context):
add_to_server = kkma_pb2_grpc.add_KkmaServicer_to_server


SERVICE_NAME = kkma_pb2._KKMA.full_name


def serve():
server = grpc.server(futures.ThreadPoolExecutor(max_workers=10))
kkma_pb2_grpc.add_KkmaServicer_to_server(KkmaService(), server)
Expand Down
5 changes: 4 additions & 1 deletion konlpy_grpc/servers/komoran_server.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

from konlpy.tag import Komoran

from .._generated import global_pb2, komoran_pb2_grpc
from .._generated import global_pb2, komoran_pb2, komoran_pb2_grpc
from ..monkeypatch import _ORIGINAL, KEY_TAG_KOMORAN


Expand Down Expand Up @@ -55,6 +55,9 @@ def Morphs(self, request, context):
add_to_server = komoran_pb2_grpc.add_KomoranServicer_to_server


SERVICE_NAME = komoran_pb2._KOMORAN.full_name


def serve():
server = grpc.server(futures.ThreadPoolExecutor(max_workers=10))
komoran_pb2_grpc.add_KomoranServicer_to_server(KomoranService(), server)
Expand Down
5 changes: 4 additions & 1 deletion konlpy_grpc/servers/mecab_server.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

from konlpy.tag import Mecab

from .._generated import global_pb2, mecab_pb2_grpc
from .._generated import global_pb2, mecab_pb2, mecab_pb2_grpc
from ..monkeypatch import _ORIGINAL, KEY_TAG_MECAB


Expand Down Expand Up @@ -51,6 +51,9 @@ def Morphs(self, request, context):
add_to_server = mecab_pb2_grpc.add_MecabServicer_to_server


SERVICE_NAME = mecab_pb2._MECAB.full_name


def serve():
server = grpc.server(futures.ThreadPoolExecutor(max_workers=10))
mecab_pb2_grpc.add_MecabServicer_to_server(MecabService(), server)
Expand Down
5 changes: 4 additions & 1 deletion konlpy_grpc/servers/okt_server.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

from konlpy.tag import Okt

from .._generated import global_pb2, okt_pb2_grpc
from .._generated import global_pb2, okt_pb2, okt_pb2_grpc
from ..monkeypatch import _ORIGINAL, KEY_TAG_OKT


Expand Down Expand Up @@ -63,6 +63,9 @@ def Normalize(self, request, context):
add_to_server = okt_pb2_grpc.add_OktServicer_to_server


SERVICE_NAME = okt_pb2._OKT.full_name


def serve():
server = grpc.server(futures.ThreadPoolExecutor(max_workers=10))
okt_pb2_grpc.add_OktServicer_to_server(OktService(), server)
Expand Down
Loading

0 comments on commit 77ec4ce

Please sign in to comment.