#4457 Python: clean up grpc api, Python client API and make installable python package (#4456)

* gRPC: Make names more consistent

* gRPC: clean up case info and improve Python API for cases

* gRPC: much more object oriented Python interface

* Python: Make a proper pip-installable package

* Update rips Python package to auto generate setup.py with version number

* Python: add setup.py to gitignore

* Python: Update Python RIPS interface

* gRPC: Remove example client from cmake file and unit test

* gRPC: Fix up unit test after merge and hide warnings

* gRPC: fix up python client code
This commit is contained in:
Gaute Lindkvist
2019-06-03 14:33:16 +02:00
committed by GitHub
parent 936fab3e32
commit a468532d7f
50 changed files with 1058 additions and 698 deletions

View File

@@ -4,7 +4,7 @@ package rips;
import "Empty.proto";
service ResInfo {
service AppInfo {
rpc GetVersion(Empty) returns (Version) {}
}

View File

@@ -1,19 +1,44 @@
syntax = "proto3";
import "CaseInfo.proto";
package rips;
service GridInfo
service Case
{
// This function returns a two dimensional matrix: One row for each grid, starting with the main grid.
rpc GetGridCount(Case) returns(GridCount) {}
rpc GetGridDimensions(Case) returns (GridDimensions) {}
rpc GetGridCount(CaseRequest) returns(GridCount) {}
rpc GetCellCount(CellInfoRequest) returns (CellCount) {}
rpc GetCellInfoForActiveCells(CellInfoRequest) returns (stream CellInfoArray) {}
rpc GetAllCoarseningInfoArray(Case) returns (CoarseningInfoArray) {}
rpc GetTimeSteps(Case) returns (TimeStepDates) {}
rpc GetTimeStepDaysSinceStart(Case) returns (DoubleDates) {}
rpc GetCoarseningInfoArray(CaseRequest) returns (CoarseningInfoArray) {}
rpc GetTimeSteps(CaseRequest) returns (TimeStepDates) {}
rpc GetTimeStepDaysSinceStart(CaseRequest) returns (DoubleDates) {}
rpc GetCaseInfo(CaseRequest) returns (CaseInfo) {}
}
message CaseRequest {
int32 id = 1;
}
message CaseInfo
{
int32 id = 1;
int32 group_id = 2;
string name = 3;
string type = 4;
}
message CaseInfoArray
{
repeated CaseInfo data = 1;
}
message CaseGroup
{
int32 id = 1;
string name = 2;
}
message CaseGroups
{
repeated CaseGroup case_groups = 1;
}
message GridCount
@@ -21,11 +46,6 @@ message GridCount
int32 count = 1;
}
message GridDimensions
{
repeated Vec3i dimensions = 1;
}
message Vec3i {
int32 i = 1;
int32 j = 2;
@@ -46,7 +66,7 @@ enum PorosityModelType
message CellInfoRequest
{
int32 case_id = 1;
CaseRequest case_request = 1;
PorosityModelType porosity_model = 2;
}
@@ -77,7 +97,7 @@ message CoarseningInfo
message TimeStepDates
{
repeated TimeStepDate date = 1;
repeated TimeStepDate dates = 1;
}
message TimeStepDate
@@ -92,5 +112,5 @@ message TimeStepDate
message DoubleDates
{
repeated double date_decimal = 1;
}
repeated double date_decimals = 1;
}

View File

@@ -1,31 +0,0 @@
syntax = "proto3";
package rips;
message Case {
int32 id = 1;
}
message CaseInfo
{
int32 id = 1;
int32 group_id = 2;
string name = 3;
string type = 4;
}
message CaseInfos
{
repeated CaseInfo case_info = 1;
}
message CaseGroup
{
int32 id = 1;
string name = 2;
}
message CaseGroups
{
repeated CaseGroup case_group = 1;
}

View File

@@ -1,6 +1,6 @@
syntax = "proto3";
import "CaseInfo.proto";
import "Case.proto";
import "Empty.proto";
package rips;
@@ -272,8 +272,8 @@ message CommandReply
{
oneof result
{
Empty emptyResult = 1;
Case loadCaseResult = 2;
Empty emptyResult = 1;
CaseRequest loadCaseResult = 2;
}
}

View File

@@ -0,0 +1,34 @@
syntax = "proto3";
package rips;
import "Case.proto";
service Grid
{
rpc GetCellCenters(GridRequest) returns(CellCenters) {}
rpc GetDimensions(GridRequest) returns (GridDimensions) {}
}
message GridRequest
{
CaseRequest case_request = 1;
int32 grid_index = 2;
}
message Vec3d
{
double x = 1;
double y = 2;
double z = 3;
}
message CellCenters
{
repeated Vec3d centers = 1;
}
message GridDimensions
{
Vec3i dimensions = 1;
}

View File

@@ -0,0 +1,14 @@
syntax = "proto3";
import "Case.proto";
import "Empty.proto";
package rips;
service Project {
rpc GetCurrentCase(Empty) returns (CaseRequest) {}
rpc GetSelectedCases(Empty) returns (CaseInfoArray) {}
rpc GetAllCaseGroups(Empty) returns (CaseGroups) {}
rpc GetAllCases(Empty) returns (CaseInfoArray) {}
rpc GetCasesInGroup(CaseGroup) returns (CaseInfoArray) {}
}

View File

@@ -1,16 +0,0 @@
syntax = "proto3";
import "CaseInfo.proto";
import "Empty.proto";
package rips;
service ProjectInfo {
rpc CurrentCase(Empty) returns (Case) {}
rpc CurrentCaseInfo(Empty) returns (CaseInfo) {}
rpc CaseInfoFromCase(Case) returns (CaseInfo) {}
rpc SelectedCases(Empty) returns (CaseInfos) {}
rpc AllCaseGroups(Empty) returns (CaseGroups) {}
rpc AllCases(Empty) returns (CaseInfos) {}
rpc CasesInGroup(CaseGroup) returns (CaseInfos) {}
}

View File

@@ -1,18 +1,17 @@
syntax = "proto3";
import "Empty.proto";
import "CaseInfo.proto";
import "GridInfo.proto";
import "Case.proto";
package rips;
service Properties
{
rpc GetAvailableProperties(PropertiesRequest) returns (AvailableProperties) {}
rpc GetActiveCellResults(ResultRequest) returns (stream ResultArray) {}
rpc GetGridResults(ResultRequest) returns (stream ResultArray) {}
rpc SetActiveCellResults(stream ResultRequestChunk) returns (Empty) {}
rpc SetGridResults(stream ResultRequestChunk) returns (Empty) {}
rpc GetAvailableProperties(AvailablePropertiesRequest) returns (AvailableProperties) {}
rpc GetActiveCellProperty(PropertyRequest) returns (stream PropertyChunk) {}
rpc GetGridProperty(PropertyRequest) returns (stream PropertyChunk) {}
rpc SetActiveCellProperty(stream PropertyInputChunk) returns (Empty) {}
rpc SetGridProperty(stream PropertyInputChunk) returns (Empty) {}
}
enum PropertyType
@@ -29,9 +28,9 @@ enum PropertyType
UNDEFINED = 999;
}
message PropertiesRequest
message AvailablePropertiesRequest
{
Case request_case = 1;
CaseRequest case_request = 1;
PropertyType property_type = 2;
PorosityModelType porosity_model = 3;
}
@@ -41,9 +40,9 @@ message AvailableProperties
repeated string property_names = 1;
}
message ResultRequest
message PropertyRequest
{
Case request_case = 1;
CaseRequest case_request = 1;
PropertyType property_type = 2;
string property_name = 3;
int32 time_step = 4;
@@ -56,14 +55,17 @@ message TimeStep
int32 index = 1;
}
message ResultRequestChunk
message PropertyInputChunk
{
// Params needs to be sent in the first message
ResultRequest params = 1;
ResultArray values = 2;
oneof ChunkType
{
// Params needs to be sent in the first message
PropertyRequest params = 1;
PropertyChunk values = 2;
}
}
message ResultArray
message PropertyChunk
{
repeated double values = 1;
}