mirror of
https://github.com/MeiK2333/river.git
synced 2025-11-04 14:49:40 +08:00
添加示例,添加 cpp 系统调用
This commit is contained in:
parent
06e70562ba
commit
edef4a410c
3
example/.gitignore
vendored
Normal file
3
example/.gitignore
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
*.pyc
|
||||||
|
venv/
|
||||||
|
__pycache__/
|
||||||
0
example/c/1000/in.txt
Normal file
0
example/c/1000/in.txt
Normal file
5
example/c/1000/main.c
Normal file
5
example/c/1000/main.c
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
#include <stdio.h>
|
||||||
|
int main() {
|
||||||
|
printf("Hello World!\n");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
1
example/c/1000/out.txt
Normal file
1
example/c/1000/out.txt
Normal file
@ -0,0 +1 @@
|
|||||||
|
Hello World!
|
||||||
1
example/c/1001/in.txt
Normal file
1
example/c/1001/in.txt
Normal file
@ -0,0 +1 @@
|
|||||||
|
2 3
|
||||||
7
example/c/1001/main.c
Normal file
7
example/c/1001/main.c
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
#include <stdio.h>
|
||||||
|
int main() {
|
||||||
|
int a, b;
|
||||||
|
scanf("%d %d", &a, &b);
|
||||||
|
printf("%d\n", a + b);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
1
example/c/1001/out.txt
Normal file
1
example/c/1001/out.txt
Normal file
@ -0,0 +1 @@
|
|||||||
|
5
|
||||||
0
example/cpp/1000/in.txt
Normal file
0
example/cpp/1000/in.txt
Normal file
6
example/cpp/1000/main.cpp
Normal file
6
example/cpp/1000/main.cpp
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
#include <iostream>
|
||||||
|
using namespace std;
|
||||||
|
int main() {
|
||||||
|
cout << "Hello World!" << endl;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
1
example/cpp/1000/out.txt
Normal file
1
example/cpp/1000/out.txt
Normal file
@ -0,0 +1 @@
|
|||||||
|
Hello World!
|
||||||
1
example/cpp/1001/in.txt
Normal file
1
example/cpp/1001/in.txt
Normal file
@ -0,0 +1 @@
|
|||||||
|
2 3
|
||||||
8
example/cpp/1001/main.cpp
Normal file
8
example/cpp/1001/main.cpp
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
#include <iostream>
|
||||||
|
using namespace std;
|
||||||
|
int main() {
|
||||||
|
int a, b;
|
||||||
|
cin >> a >> b;
|
||||||
|
cout << a + b << endl;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
1
example/cpp/1001/out.txt
Normal file
1
example/cpp/1001/out.txt
Normal file
@ -0,0 +1 @@
|
|||||||
|
5
|
||||||
52
example/main.py
Normal file
52
example/main.py
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
from pathlib import Path
|
||||||
|
|
||||||
|
import grpc
|
||||||
|
|
||||||
|
import river_pb2
|
||||||
|
import river_pb2_grpc
|
||||||
|
|
||||||
|
|
||||||
|
def judge(path, language):
|
||||||
|
if language == river_pb2.C:
|
||||||
|
filename = "main.c"
|
||||||
|
elif language == river_pb2.Cpp:
|
||||||
|
filename = "main.cpp"
|
||||||
|
with open(path.joinpath(filename), "rb") as fr:
|
||||||
|
code = fr.read()
|
||||||
|
with open(path.joinpath("in.txt"), "rb") as fr:
|
||||||
|
in_data = fr.read()
|
||||||
|
with open(path.joinpath("out.txt"), "rb") as fr:
|
||||||
|
out_data = fr.read()
|
||||||
|
# compile
|
||||||
|
yield river_pb2.JudgeRequest(
|
||||||
|
language=language,
|
||||||
|
judge_type=river_pb2.Standard,
|
||||||
|
compile_data=river_pb2.CompileData(code=code),
|
||||||
|
)
|
||||||
|
# judge
|
||||||
|
yield river_pb2.JudgeRequest(
|
||||||
|
language=language,
|
||||||
|
judge_type=river_pb2.Standard,
|
||||||
|
judge_data=river_pb2.JudgeData(
|
||||||
|
in_data=in_data, out_data=out_data, time_limit=1000, memory_limit=65535
|
||||||
|
),
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def run():
|
||||||
|
with grpc.insecure_channel("localhost:4003") as channel:
|
||||||
|
stub = river_pb2_grpc.RiverStub(channel)
|
||||||
|
for path in Path("c").iterdir():
|
||||||
|
print(f"开始评测 {path}")
|
||||||
|
for item in stub.Judge(judge(path, river_pb2.C)):
|
||||||
|
print(item)
|
||||||
|
print(f"{path} 评测完成")
|
||||||
|
for path in Path("cpp").iterdir():
|
||||||
|
print(f"开始评测 {path}")
|
||||||
|
for item in stub.Judge(judge(path, river_pb2.Cpp)):
|
||||||
|
print(item)
|
||||||
|
print(f"{path} 评测完成")
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
run()
|
||||||
4
example/requirements.txt
Normal file
4
example/requirements.txt
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
grpcio==1.33.1
|
||||||
|
grpcio-tools==1.33.1
|
||||||
|
protobuf==3.13.0
|
||||||
|
six==1.15.0
|
||||||
517
example/river_pb2.py
Normal file
517
example/river_pb2.py
Normal file
@ -0,0 +1,517 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
||||||
|
# source: river.proto
|
||||||
|
"""Generated protocol buffer code."""
|
||||||
|
from google.protobuf.internal import enum_type_wrapper
|
||||||
|
from google.protobuf import descriptor as _descriptor
|
||||||
|
from google.protobuf import message as _message
|
||||||
|
from google.protobuf import reflection as _reflection
|
||||||
|
from google.protobuf import symbol_database as _symbol_database
|
||||||
|
# @@protoc_insertion_point(imports)
|
||||||
|
|
||||||
|
_sym_db = _symbol_database.Default()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
DESCRIPTOR = _descriptor.FileDescriptor(
|
||||||
|
name='river.proto',
|
||||||
|
package='river',
|
||||||
|
syntax='proto3',
|
||||||
|
serialized_options=None,
|
||||||
|
create_key=_descriptor._internal_create_key,
|
||||||
|
serialized_pb=b'\n\x0briver.proto\x12\x05river\"\x1b\n\x0b\x43ompileData\x12\x0c\n\x04\x63ode\x18\x01 \x01(\x0c\"X\n\tJudgeData\x12\x0f\n\x07in_data\x18\x01 \x01(\x0c\x12\x10\n\x08out_data\x18\x02 \x01(\x0c\x12\x12\n\ntime_limit\x18\x03 \x01(\x05\x12\x14\n\x0cmemory_limit\x18\x04 \x01(\x05\"\xb3\x01\n\x0cJudgeRequest\x12!\n\x08language\x18\x01 \x01(\x0e\x32\x0f.river.Language\x12$\n\njudge_type\x18\x02 \x01(\x0e\x32\x10.river.JudgeType\x12*\n\x0c\x63ompile_data\x18\x03 \x01(\x0b\x32\x12.river.CompileDataH\x00\x12&\n\njudge_data\x18\x04 \x01(\x0b\x32\x10.river.JudgeDataH\x00\x42\x06\n\x04\x64\x61ta\"\xbc\x01\n\rJudgeResponse\x12\x11\n\ttime_used\x18\x01 \x01(\x03\x12\x13\n\x0bmemory_used\x18\x02 \x01(\x03\x12$\n\x06result\x18\x03 \x01(\x0e\x32\x12.river.JudgeResultH\x00\x12$\n\x06status\x18\t \x01(\x0e\x32\x12.river.JudgeStatusH\x00\x12\x0e\n\x06stdout\x18\x06 \x01(\t\x12\x0e\n\x06stderr\x18\x07 \x01(\t\x12\x0e\n\x06\x65rrmsg\x18\x08 \x01(\tB\x07\n\x05state*R\n\x08Language\x12\x05\n\x01\x43\x10\x00\x12\x07\n\x03\x43pp\x10\x01\x12\n\n\x06Python\x10\x02\x12\x08\n\x04Rust\x10\x03\x12\x08\n\x04Node\x10\x04\x12\x0e\n\nTypeScript\x10\x05\x12\x06\n\x02Go\x10\x06*\x19\n\tJudgeType\x12\x0c\n\x08Standard\x10\x00*\xc1\x01\n\x0bJudgeResult\x12\x0c\n\x08\x41\x63\x63\x65pted\x10\x00\x12\x0f\n\x0bWrongAnswer\x10\x01\x12\x15\n\x11TimeLimitExceeded\x10\x02\x12\x17\n\x13MemoryLimitExceeded\x10\x03\x12\x10\n\x0cRuntimeError\x10\x04\x12\x17\n\x13OutputLimitExceeded\x10\x05\x12\x10\n\x0c\x43ompileError\x10\x06\x12\x15\n\x11PresentationError\x10\x07\x12\x0f\n\x0bSystemError\x10\x08*2\n\x0bJudgeStatus\x12\x0b\n\x07Pending\x10\x00\x12\x0b\n\x07Running\x10\x01\x12\t\n\x05\x45nded\x10\x02\x32\x41\n\x05River\x12\x38\n\x05Judge\x12\x13.river.JudgeRequest\x1a\x14.river.JudgeResponse\"\x00(\x01\x30\x01\x62\x06proto3'
|
||||||
|
)
|
||||||
|
|
||||||
|
_LANGUAGE = _descriptor.EnumDescriptor(
|
||||||
|
name='Language',
|
||||||
|
full_name='river.Language',
|
||||||
|
filename=None,
|
||||||
|
file=DESCRIPTOR,
|
||||||
|
create_key=_descriptor._internal_create_key,
|
||||||
|
values=[
|
||||||
|
_descriptor.EnumValueDescriptor(
|
||||||
|
name='C', index=0, number=0,
|
||||||
|
serialized_options=None,
|
||||||
|
type=None,
|
||||||
|
create_key=_descriptor._internal_create_key),
|
||||||
|
_descriptor.EnumValueDescriptor(
|
||||||
|
name='Cpp', index=1, number=1,
|
||||||
|
serialized_options=None,
|
||||||
|
type=None,
|
||||||
|
create_key=_descriptor._internal_create_key),
|
||||||
|
_descriptor.EnumValueDescriptor(
|
||||||
|
name='Python', index=2, number=2,
|
||||||
|
serialized_options=None,
|
||||||
|
type=None,
|
||||||
|
create_key=_descriptor._internal_create_key),
|
||||||
|
_descriptor.EnumValueDescriptor(
|
||||||
|
name='Rust', index=3, number=3,
|
||||||
|
serialized_options=None,
|
||||||
|
type=None,
|
||||||
|
create_key=_descriptor._internal_create_key),
|
||||||
|
_descriptor.EnumValueDescriptor(
|
||||||
|
name='Node', index=4, number=4,
|
||||||
|
serialized_options=None,
|
||||||
|
type=None,
|
||||||
|
create_key=_descriptor._internal_create_key),
|
||||||
|
_descriptor.EnumValueDescriptor(
|
||||||
|
name='TypeScript', index=5, number=5,
|
||||||
|
serialized_options=None,
|
||||||
|
type=None,
|
||||||
|
create_key=_descriptor._internal_create_key),
|
||||||
|
_descriptor.EnumValueDescriptor(
|
||||||
|
name='Go', index=6, number=6,
|
||||||
|
serialized_options=None,
|
||||||
|
type=None,
|
||||||
|
create_key=_descriptor._internal_create_key),
|
||||||
|
],
|
||||||
|
containing_type=None,
|
||||||
|
serialized_options=None,
|
||||||
|
serialized_start=514,
|
||||||
|
serialized_end=596,
|
||||||
|
)
|
||||||
|
_sym_db.RegisterEnumDescriptor(_LANGUAGE)
|
||||||
|
|
||||||
|
Language = enum_type_wrapper.EnumTypeWrapper(_LANGUAGE)
|
||||||
|
_JUDGETYPE = _descriptor.EnumDescriptor(
|
||||||
|
name='JudgeType',
|
||||||
|
full_name='river.JudgeType',
|
||||||
|
filename=None,
|
||||||
|
file=DESCRIPTOR,
|
||||||
|
create_key=_descriptor._internal_create_key,
|
||||||
|
values=[
|
||||||
|
_descriptor.EnumValueDescriptor(
|
||||||
|
name='Standard', index=0, number=0,
|
||||||
|
serialized_options=None,
|
||||||
|
type=None,
|
||||||
|
create_key=_descriptor._internal_create_key),
|
||||||
|
],
|
||||||
|
containing_type=None,
|
||||||
|
serialized_options=None,
|
||||||
|
serialized_start=598,
|
||||||
|
serialized_end=623,
|
||||||
|
)
|
||||||
|
_sym_db.RegisterEnumDescriptor(_JUDGETYPE)
|
||||||
|
|
||||||
|
JudgeType = enum_type_wrapper.EnumTypeWrapper(_JUDGETYPE)
|
||||||
|
_JUDGERESULT = _descriptor.EnumDescriptor(
|
||||||
|
name='JudgeResult',
|
||||||
|
full_name='river.JudgeResult',
|
||||||
|
filename=None,
|
||||||
|
file=DESCRIPTOR,
|
||||||
|
create_key=_descriptor._internal_create_key,
|
||||||
|
values=[
|
||||||
|
_descriptor.EnumValueDescriptor(
|
||||||
|
name='Accepted', index=0, number=0,
|
||||||
|
serialized_options=None,
|
||||||
|
type=None,
|
||||||
|
create_key=_descriptor._internal_create_key),
|
||||||
|
_descriptor.EnumValueDescriptor(
|
||||||
|
name='WrongAnswer', index=1, number=1,
|
||||||
|
serialized_options=None,
|
||||||
|
type=None,
|
||||||
|
create_key=_descriptor._internal_create_key),
|
||||||
|
_descriptor.EnumValueDescriptor(
|
||||||
|
name='TimeLimitExceeded', index=2, number=2,
|
||||||
|
serialized_options=None,
|
||||||
|
type=None,
|
||||||
|
create_key=_descriptor._internal_create_key),
|
||||||
|
_descriptor.EnumValueDescriptor(
|
||||||
|
name='MemoryLimitExceeded', index=3, number=3,
|
||||||
|
serialized_options=None,
|
||||||
|
type=None,
|
||||||
|
create_key=_descriptor._internal_create_key),
|
||||||
|
_descriptor.EnumValueDescriptor(
|
||||||
|
name='RuntimeError', index=4, number=4,
|
||||||
|
serialized_options=None,
|
||||||
|
type=None,
|
||||||
|
create_key=_descriptor._internal_create_key),
|
||||||
|
_descriptor.EnumValueDescriptor(
|
||||||
|
name='OutputLimitExceeded', index=5, number=5,
|
||||||
|
serialized_options=None,
|
||||||
|
type=None,
|
||||||
|
create_key=_descriptor._internal_create_key),
|
||||||
|
_descriptor.EnumValueDescriptor(
|
||||||
|
name='CompileError', index=6, number=6,
|
||||||
|
serialized_options=None,
|
||||||
|
type=None,
|
||||||
|
create_key=_descriptor._internal_create_key),
|
||||||
|
_descriptor.EnumValueDescriptor(
|
||||||
|
name='PresentationError', index=7, number=7,
|
||||||
|
serialized_options=None,
|
||||||
|
type=None,
|
||||||
|
create_key=_descriptor._internal_create_key),
|
||||||
|
_descriptor.EnumValueDescriptor(
|
||||||
|
name='SystemError', index=8, number=8,
|
||||||
|
serialized_options=None,
|
||||||
|
type=None,
|
||||||
|
create_key=_descriptor._internal_create_key),
|
||||||
|
],
|
||||||
|
containing_type=None,
|
||||||
|
serialized_options=None,
|
||||||
|
serialized_start=626,
|
||||||
|
serialized_end=819,
|
||||||
|
)
|
||||||
|
_sym_db.RegisterEnumDescriptor(_JUDGERESULT)
|
||||||
|
|
||||||
|
JudgeResult = enum_type_wrapper.EnumTypeWrapper(_JUDGERESULT)
|
||||||
|
_JUDGESTATUS = _descriptor.EnumDescriptor(
|
||||||
|
name='JudgeStatus',
|
||||||
|
full_name='river.JudgeStatus',
|
||||||
|
filename=None,
|
||||||
|
file=DESCRIPTOR,
|
||||||
|
create_key=_descriptor._internal_create_key,
|
||||||
|
values=[
|
||||||
|
_descriptor.EnumValueDescriptor(
|
||||||
|
name='Pending', index=0, number=0,
|
||||||
|
serialized_options=None,
|
||||||
|
type=None,
|
||||||
|
create_key=_descriptor._internal_create_key),
|
||||||
|
_descriptor.EnumValueDescriptor(
|
||||||
|
name='Running', index=1, number=1,
|
||||||
|
serialized_options=None,
|
||||||
|
type=None,
|
||||||
|
create_key=_descriptor._internal_create_key),
|
||||||
|
_descriptor.EnumValueDescriptor(
|
||||||
|
name='Ended', index=2, number=2,
|
||||||
|
serialized_options=None,
|
||||||
|
type=None,
|
||||||
|
create_key=_descriptor._internal_create_key),
|
||||||
|
],
|
||||||
|
containing_type=None,
|
||||||
|
serialized_options=None,
|
||||||
|
serialized_start=821,
|
||||||
|
serialized_end=871,
|
||||||
|
)
|
||||||
|
_sym_db.RegisterEnumDescriptor(_JUDGESTATUS)
|
||||||
|
|
||||||
|
JudgeStatus = enum_type_wrapper.EnumTypeWrapper(_JUDGESTATUS)
|
||||||
|
C = 0
|
||||||
|
Cpp = 1
|
||||||
|
Python = 2
|
||||||
|
Rust = 3
|
||||||
|
Node = 4
|
||||||
|
TypeScript = 5
|
||||||
|
Go = 6
|
||||||
|
Standard = 0
|
||||||
|
Accepted = 0
|
||||||
|
WrongAnswer = 1
|
||||||
|
TimeLimitExceeded = 2
|
||||||
|
MemoryLimitExceeded = 3
|
||||||
|
RuntimeError = 4
|
||||||
|
OutputLimitExceeded = 5
|
||||||
|
CompileError = 6
|
||||||
|
PresentationError = 7
|
||||||
|
SystemError = 8
|
||||||
|
Pending = 0
|
||||||
|
Running = 1
|
||||||
|
Ended = 2
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
_COMPILEDATA = _descriptor.Descriptor(
|
||||||
|
name='CompileData',
|
||||||
|
full_name='river.CompileData',
|
||||||
|
filename=None,
|
||||||
|
file=DESCRIPTOR,
|
||||||
|
containing_type=None,
|
||||||
|
create_key=_descriptor._internal_create_key,
|
||||||
|
fields=[
|
||||||
|
_descriptor.FieldDescriptor(
|
||||||
|
name='code', full_name='river.CompileData.code', index=0,
|
||||||
|
number=1, type=12, cpp_type=9, label=1,
|
||||||
|
has_default_value=False, default_value=b"",
|
||||||
|
message_type=None, enum_type=None, containing_type=None,
|
||||||
|
is_extension=False, extension_scope=None,
|
||||||
|
serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
|
||||||
|
],
|
||||||
|
extensions=[
|
||||||
|
],
|
||||||
|
nested_types=[],
|
||||||
|
enum_types=[
|
||||||
|
],
|
||||||
|
serialized_options=None,
|
||||||
|
is_extendable=False,
|
||||||
|
syntax='proto3',
|
||||||
|
extension_ranges=[],
|
||||||
|
oneofs=[
|
||||||
|
],
|
||||||
|
serialized_start=22,
|
||||||
|
serialized_end=49,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
_JUDGEDATA = _descriptor.Descriptor(
|
||||||
|
name='JudgeData',
|
||||||
|
full_name='river.JudgeData',
|
||||||
|
filename=None,
|
||||||
|
file=DESCRIPTOR,
|
||||||
|
containing_type=None,
|
||||||
|
create_key=_descriptor._internal_create_key,
|
||||||
|
fields=[
|
||||||
|
_descriptor.FieldDescriptor(
|
||||||
|
name='in_data', full_name='river.JudgeData.in_data', index=0,
|
||||||
|
number=1, type=12, cpp_type=9, label=1,
|
||||||
|
has_default_value=False, default_value=b"",
|
||||||
|
message_type=None, enum_type=None, containing_type=None,
|
||||||
|
is_extension=False, extension_scope=None,
|
||||||
|
serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
|
||||||
|
_descriptor.FieldDescriptor(
|
||||||
|
name='out_data', full_name='river.JudgeData.out_data', index=1,
|
||||||
|
number=2, type=12, cpp_type=9, label=1,
|
||||||
|
has_default_value=False, default_value=b"",
|
||||||
|
message_type=None, enum_type=None, containing_type=None,
|
||||||
|
is_extension=False, extension_scope=None,
|
||||||
|
serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
|
||||||
|
_descriptor.FieldDescriptor(
|
||||||
|
name='time_limit', full_name='river.JudgeData.time_limit', index=2,
|
||||||
|
number=3, type=5, cpp_type=1, label=1,
|
||||||
|
has_default_value=False, default_value=0,
|
||||||
|
message_type=None, enum_type=None, containing_type=None,
|
||||||
|
is_extension=False, extension_scope=None,
|
||||||
|
serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
|
||||||
|
_descriptor.FieldDescriptor(
|
||||||
|
name='memory_limit', full_name='river.JudgeData.memory_limit', index=3,
|
||||||
|
number=4, type=5, cpp_type=1, label=1,
|
||||||
|
has_default_value=False, default_value=0,
|
||||||
|
message_type=None, enum_type=None, containing_type=None,
|
||||||
|
is_extension=False, extension_scope=None,
|
||||||
|
serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
|
||||||
|
],
|
||||||
|
extensions=[
|
||||||
|
],
|
||||||
|
nested_types=[],
|
||||||
|
enum_types=[
|
||||||
|
],
|
||||||
|
serialized_options=None,
|
||||||
|
is_extendable=False,
|
||||||
|
syntax='proto3',
|
||||||
|
extension_ranges=[],
|
||||||
|
oneofs=[
|
||||||
|
],
|
||||||
|
serialized_start=51,
|
||||||
|
serialized_end=139,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
_JUDGEREQUEST = _descriptor.Descriptor(
|
||||||
|
name='JudgeRequest',
|
||||||
|
full_name='river.JudgeRequest',
|
||||||
|
filename=None,
|
||||||
|
file=DESCRIPTOR,
|
||||||
|
containing_type=None,
|
||||||
|
create_key=_descriptor._internal_create_key,
|
||||||
|
fields=[
|
||||||
|
_descriptor.FieldDescriptor(
|
||||||
|
name='language', full_name='river.JudgeRequest.language', index=0,
|
||||||
|
number=1, type=14, cpp_type=8, label=1,
|
||||||
|
has_default_value=False, default_value=0,
|
||||||
|
message_type=None, enum_type=None, containing_type=None,
|
||||||
|
is_extension=False, extension_scope=None,
|
||||||
|
serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
|
||||||
|
_descriptor.FieldDescriptor(
|
||||||
|
name='judge_type', full_name='river.JudgeRequest.judge_type', index=1,
|
||||||
|
number=2, type=14, cpp_type=8, label=1,
|
||||||
|
has_default_value=False, default_value=0,
|
||||||
|
message_type=None, enum_type=None, containing_type=None,
|
||||||
|
is_extension=False, extension_scope=None,
|
||||||
|
serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
|
||||||
|
_descriptor.FieldDescriptor(
|
||||||
|
name='compile_data', full_name='river.JudgeRequest.compile_data', index=2,
|
||||||
|
number=3, type=11, cpp_type=10, label=1,
|
||||||
|
has_default_value=False, default_value=None,
|
||||||
|
message_type=None, enum_type=None, containing_type=None,
|
||||||
|
is_extension=False, extension_scope=None,
|
||||||
|
serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
|
||||||
|
_descriptor.FieldDescriptor(
|
||||||
|
name='judge_data', full_name='river.JudgeRequest.judge_data', index=3,
|
||||||
|
number=4, type=11, cpp_type=10, label=1,
|
||||||
|
has_default_value=False, default_value=None,
|
||||||
|
message_type=None, enum_type=None, containing_type=None,
|
||||||
|
is_extension=False, extension_scope=None,
|
||||||
|
serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
|
||||||
|
],
|
||||||
|
extensions=[
|
||||||
|
],
|
||||||
|
nested_types=[],
|
||||||
|
enum_types=[
|
||||||
|
],
|
||||||
|
serialized_options=None,
|
||||||
|
is_extendable=False,
|
||||||
|
syntax='proto3',
|
||||||
|
extension_ranges=[],
|
||||||
|
oneofs=[
|
||||||
|
_descriptor.OneofDescriptor(
|
||||||
|
name='data', full_name='river.JudgeRequest.data',
|
||||||
|
index=0, containing_type=None,
|
||||||
|
create_key=_descriptor._internal_create_key,
|
||||||
|
fields=[]),
|
||||||
|
],
|
||||||
|
serialized_start=142,
|
||||||
|
serialized_end=321,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
_JUDGERESPONSE = _descriptor.Descriptor(
|
||||||
|
name='JudgeResponse',
|
||||||
|
full_name='river.JudgeResponse',
|
||||||
|
filename=None,
|
||||||
|
file=DESCRIPTOR,
|
||||||
|
containing_type=None,
|
||||||
|
create_key=_descriptor._internal_create_key,
|
||||||
|
fields=[
|
||||||
|
_descriptor.FieldDescriptor(
|
||||||
|
name='time_used', full_name='river.JudgeResponse.time_used', index=0,
|
||||||
|
number=1, type=3, cpp_type=2, label=1,
|
||||||
|
has_default_value=False, default_value=0,
|
||||||
|
message_type=None, enum_type=None, containing_type=None,
|
||||||
|
is_extension=False, extension_scope=None,
|
||||||
|
serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
|
||||||
|
_descriptor.FieldDescriptor(
|
||||||
|
name='memory_used', full_name='river.JudgeResponse.memory_used', index=1,
|
||||||
|
number=2, type=3, cpp_type=2, label=1,
|
||||||
|
has_default_value=False, default_value=0,
|
||||||
|
message_type=None, enum_type=None, containing_type=None,
|
||||||
|
is_extension=False, extension_scope=None,
|
||||||
|
serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
|
||||||
|
_descriptor.FieldDescriptor(
|
||||||
|
name='result', full_name='river.JudgeResponse.result', index=2,
|
||||||
|
number=3, type=14, cpp_type=8, label=1,
|
||||||
|
has_default_value=False, default_value=0,
|
||||||
|
message_type=None, enum_type=None, containing_type=None,
|
||||||
|
is_extension=False, extension_scope=None,
|
||||||
|
serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
|
||||||
|
_descriptor.FieldDescriptor(
|
||||||
|
name='status', full_name='river.JudgeResponse.status', index=3,
|
||||||
|
number=9, type=14, cpp_type=8, label=1,
|
||||||
|
has_default_value=False, default_value=0,
|
||||||
|
message_type=None, enum_type=None, containing_type=None,
|
||||||
|
is_extension=False, extension_scope=None,
|
||||||
|
serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
|
||||||
|
_descriptor.FieldDescriptor(
|
||||||
|
name='stdout', full_name='river.JudgeResponse.stdout', index=4,
|
||||||
|
number=6, type=9, cpp_type=9, label=1,
|
||||||
|
has_default_value=False, default_value=b"".decode('utf-8'),
|
||||||
|
message_type=None, enum_type=None, containing_type=None,
|
||||||
|
is_extension=False, extension_scope=None,
|
||||||
|
serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
|
||||||
|
_descriptor.FieldDescriptor(
|
||||||
|
name='stderr', full_name='river.JudgeResponse.stderr', index=5,
|
||||||
|
number=7, type=9, cpp_type=9, label=1,
|
||||||
|
has_default_value=False, default_value=b"".decode('utf-8'),
|
||||||
|
message_type=None, enum_type=None, containing_type=None,
|
||||||
|
is_extension=False, extension_scope=None,
|
||||||
|
serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
|
||||||
|
_descriptor.FieldDescriptor(
|
||||||
|
name='errmsg', full_name='river.JudgeResponse.errmsg', index=6,
|
||||||
|
number=8, type=9, cpp_type=9, label=1,
|
||||||
|
has_default_value=False, default_value=b"".decode('utf-8'),
|
||||||
|
message_type=None, enum_type=None, containing_type=None,
|
||||||
|
is_extension=False, extension_scope=None,
|
||||||
|
serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
|
||||||
|
],
|
||||||
|
extensions=[
|
||||||
|
],
|
||||||
|
nested_types=[],
|
||||||
|
enum_types=[
|
||||||
|
],
|
||||||
|
serialized_options=None,
|
||||||
|
is_extendable=False,
|
||||||
|
syntax='proto3',
|
||||||
|
extension_ranges=[],
|
||||||
|
oneofs=[
|
||||||
|
_descriptor.OneofDescriptor(
|
||||||
|
name='state', full_name='river.JudgeResponse.state',
|
||||||
|
index=0, containing_type=None,
|
||||||
|
create_key=_descriptor._internal_create_key,
|
||||||
|
fields=[]),
|
||||||
|
],
|
||||||
|
serialized_start=324,
|
||||||
|
serialized_end=512,
|
||||||
|
)
|
||||||
|
|
||||||
|
_JUDGEREQUEST.fields_by_name['language'].enum_type = _LANGUAGE
|
||||||
|
_JUDGEREQUEST.fields_by_name['judge_type'].enum_type = _JUDGETYPE
|
||||||
|
_JUDGEREQUEST.fields_by_name['compile_data'].message_type = _COMPILEDATA
|
||||||
|
_JUDGEREQUEST.fields_by_name['judge_data'].message_type = _JUDGEDATA
|
||||||
|
_JUDGEREQUEST.oneofs_by_name['data'].fields.append(
|
||||||
|
_JUDGEREQUEST.fields_by_name['compile_data'])
|
||||||
|
_JUDGEREQUEST.fields_by_name['compile_data'].containing_oneof = _JUDGEREQUEST.oneofs_by_name['data']
|
||||||
|
_JUDGEREQUEST.oneofs_by_name['data'].fields.append(
|
||||||
|
_JUDGEREQUEST.fields_by_name['judge_data'])
|
||||||
|
_JUDGEREQUEST.fields_by_name['judge_data'].containing_oneof = _JUDGEREQUEST.oneofs_by_name['data']
|
||||||
|
_JUDGERESPONSE.fields_by_name['result'].enum_type = _JUDGERESULT
|
||||||
|
_JUDGERESPONSE.fields_by_name['status'].enum_type = _JUDGESTATUS
|
||||||
|
_JUDGERESPONSE.oneofs_by_name['state'].fields.append(
|
||||||
|
_JUDGERESPONSE.fields_by_name['result'])
|
||||||
|
_JUDGERESPONSE.fields_by_name['result'].containing_oneof = _JUDGERESPONSE.oneofs_by_name['state']
|
||||||
|
_JUDGERESPONSE.oneofs_by_name['state'].fields.append(
|
||||||
|
_JUDGERESPONSE.fields_by_name['status'])
|
||||||
|
_JUDGERESPONSE.fields_by_name['status'].containing_oneof = _JUDGERESPONSE.oneofs_by_name['state']
|
||||||
|
DESCRIPTOR.message_types_by_name['CompileData'] = _COMPILEDATA
|
||||||
|
DESCRIPTOR.message_types_by_name['JudgeData'] = _JUDGEDATA
|
||||||
|
DESCRIPTOR.message_types_by_name['JudgeRequest'] = _JUDGEREQUEST
|
||||||
|
DESCRIPTOR.message_types_by_name['JudgeResponse'] = _JUDGERESPONSE
|
||||||
|
DESCRIPTOR.enum_types_by_name['Language'] = _LANGUAGE
|
||||||
|
DESCRIPTOR.enum_types_by_name['JudgeType'] = _JUDGETYPE
|
||||||
|
DESCRIPTOR.enum_types_by_name['JudgeResult'] = _JUDGERESULT
|
||||||
|
DESCRIPTOR.enum_types_by_name['JudgeStatus'] = _JUDGESTATUS
|
||||||
|
_sym_db.RegisterFileDescriptor(DESCRIPTOR)
|
||||||
|
|
||||||
|
CompileData = _reflection.GeneratedProtocolMessageType('CompileData', (_message.Message,), {
|
||||||
|
'DESCRIPTOR' : _COMPILEDATA,
|
||||||
|
'__module__' : 'river_pb2'
|
||||||
|
# @@protoc_insertion_point(class_scope:river.CompileData)
|
||||||
|
})
|
||||||
|
_sym_db.RegisterMessage(CompileData)
|
||||||
|
|
||||||
|
JudgeData = _reflection.GeneratedProtocolMessageType('JudgeData', (_message.Message,), {
|
||||||
|
'DESCRIPTOR' : _JUDGEDATA,
|
||||||
|
'__module__' : 'river_pb2'
|
||||||
|
# @@protoc_insertion_point(class_scope:river.JudgeData)
|
||||||
|
})
|
||||||
|
_sym_db.RegisterMessage(JudgeData)
|
||||||
|
|
||||||
|
JudgeRequest = _reflection.GeneratedProtocolMessageType('JudgeRequest', (_message.Message,), {
|
||||||
|
'DESCRIPTOR' : _JUDGEREQUEST,
|
||||||
|
'__module__' : 'river_pb2'
|
||||||
|
# @@protoc_insertion_point(class_scope:river.JudgeRequest)
|
||||||
|
})
|
||||||
|
_sym_db.RegisterMessage(JudgeRequest)
|
||||||
|
|
||||||
|
JudgeResponse = _reflection.GeneratedProtocolMessageType('JudgeResponse', (_message.Message,), {
|
||||||
|
'DESCRIPTOR' : _JUDGERESPONSE,
|
||||||
|
'__module__' : 'river_pb2'
|
||||||
|
# @@protoc_insertion_point(class_scope:river.JudgeResponse)
|
||||||
|
})
|
||||||
|
_sym_db.RegisterMessage(JudgeResponse)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
_RIVER = _descriptor.ServiceDescriptor(
|
||||||
|
name='River',
|
||||||
|
full_name='river.River',
|
||||||
|
file=DESCRIPTOR,
|
||||||
|
index=0,
|
||||||
|
serialized_options=None,
|
||||||
|
create_key=_descriptor._internal_create_key,
|
||||||
|
serialized_start=873,
|
||||||
|
serialized_end=938,
|
||||||
|
methods=[
|
||||||
|
_descriptor.MethodDescriptor(
|
||||||
|
name='Judge',
|
||||||
|
full_name='river.River.Judge',
|
||||||
|
index=0,
|
||||||
|
containing_service=None,
|
||||||
|
input_type=_JUDGEREQUEST,
|
||||||
|
output_type=_JUDGERESPONSE,
|
||||||
|
serialized_options=None,
|
||||||
|
create_key=_descriptor._internal_create_key,
|
||||||
|
),
|
||||||
|
])
|
||||||
|
_sym_db.RegisterServiceDescriptor(_RIVER)
|
||||||
|
|
||||||
|
DESCRIPTOR.services_by_name['River'] = _RIVER
|
||||||
|
|
||||||
|
# @@protoc_insertion_point(module_scope)
|
||||||
66
example/river_pb2_grpc.py
Normal file
66
example/river_pb2_grpc.py
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
|
||||||
|
"""Client and server classes corresponding to protobuf-defined services."""
|
||||||
|
import grpc
|
||||||
|
|
||||||
|
import river_pb2 as river__pb2
|
||||||
|
|
||||||
|
|
||||||
|
class RiverStub(object):
|
||||||
|
"""Missing associated documentation comment in .proto file."""
|
||||||
|
|
||||||
|
def __init__(self, channel):
|
||||||
|
"""Constructor.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
channel: A grpc.Channel.
|
||||||
|
"""
|
||||||
|
self.Judge = channel.stream_stream(
|
||||||
|
'/river.River/Judge',
|
||||||
|
request_serializer=river__pb2.JudgeRequest.SerializeToString,
|
||||||
|
response_deserializer=river__pb2.JudgeResponse.FromString,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
class RiverServicer(object):
|
||||||
|
"""Missing associated documentation comment in .proto file."""
|
||||||
|
|
||||||
|
def Judge(self, request_iterator, context):
|
||||||
|
"""Missing associated documentation comment in .proto file."""
|
||||||
|
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
||||||
|
context.set_details('Method not implemented!')
|
||||||
|
raise NotImplementedError('Method not implemented!')
|
||||||
|
|
||||||
|
|
||||||
|
def add_RiverServicer_to_server(servicer, server):
|
||||||
|
rpc_method_handlers = {
|
||||||
|
'Judge': grpc.stream_stream_rpc_method_handler(
|
||||||
|
servicer.Judge,
|
||||||
|
request_deserializer=river__pb2.JudgeRequest.FromString,
|
||||||
|
response_serializer=river__pb2.JudgeResponse.SerializeToString,
|
||||||
|
),
|
||||||
|
}
|
||||||
|
generic_handler = grpc.method_handlers_generic_handler(
|
||||||
|
'river.River', rpc_method_handlers)
|
||||||
|
server.add_generic_rpc_handlers((generic_handler,))
|
||||||
|
|
||||||
|
|
||||||
|
# This class is part of an EXPERIMENTAL API.
|
||||||
|
class River(object):
|
||||||
|
"""Missing associated documentation comment in .proto file."""
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def Judge(request_iterator,
|
||||||
|
target,
|
||||||
|
options=(),
|
||||||
|
channel_credentials=None,
|
||||||
|
call_credentials=None,
|
||||||
|
insecure=False,
|
||||||
|
compression=None,
|
||||||
|
wait_for_ready=None,
|
||||||
|
timeout=None,
|
||||||
|
metadata=None):
|
||||||
|
return grpc.experimental.stream_stream(request_iterator, target, '/river.River/Judge',
|
||||||
|
river__pb2.JudgeRequest.SerializeToString,
|
||||||
|
river__pb2.JudgeResponse.FromString,
|
||||||
|
options, channel_credentials,
|
||||||
|
insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
|
||||||
Loading…
Reference in New Issue
Block a user