hebra 0.1.0__py3-none-macosx_11_0_arm64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- hebra/__init__.py +51 -0
- hebra/bin/.gitkeep +1 -0
- hebra/bin/core +0 -0
- hebra/lib/__init__.py +0 -0
- hebra/lib/service_connection.py +137 -0
- hebra/lib/utils.py +66 -0
- hebra/proto/common/v1/common.proto +50 -0
- hebra/proto/common/v1/common_pb2.py +43 -0
- hebra/proto/common/v1/common_pb2.pyi +45 -0
- hebra/proto/core/collector/v1/collector_service.proto +23 -0
- hebra/proto/core/collector/v1/collector_service_pb2.py +42 -0
- hebra/proto/core/collector/v1/collector_service_pb2.pyi +21 -0
- hebra/proto/core/collector/v1/collector_service_pb2_grpc.py +101 -0
- hebra/proto/core/health/v1/health_service.proto +92 -0
- hebra/proto/core/lifecycle/__init__.py +1 -0
- hebra/proto/core/lifecycle/v1/__init__.py +1 -0
- hebra/proto/core/lifecycle/v1/lifecycle_service.proto +24 -0
- hebra/proto/core/lifecycle/v1/lifecycle_service_pb2.py +41 -0
- hebra/proto/core/lifecycle/v1/lifecycle_service_pb2.pyi +17 -0
- hebra/proto/core/lifecycle/v1/lifecycle_service_pb2_grpc.py +102 -0
- hebra/proto/record/v1/record.proto +180 -0
- hebra/proto/record/v1/record_pb2.py +67 -0
- hebra/proto/record/v1/record_pb2.pyi +206 -0
- hebra/run/__init__.py +4 -0
- hebra/run/main.py +211 -0
- hebra/run/state.py +10 -0
- hebra/sdk.py +78 -0
- hebra-0.1.0.dist-info/METADATA +8 -0
- hebra-0.1.0.dist-info/RECORD +30 -0
- hebra-0.1.0.dist-info/WHEEL +4 -0
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
// Copyright 2015 The gRPC Authors
|
|
2
|
+
//
|
|
3
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
// you may not use this file except in compliance with the License.
|
|
5
|
+
// You may obtain a copy of the License at
|
|
6
|
+
//
|
|
7
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
//
|
|
9
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
// See the License for the specific language governing permissions and
|
|
13
|
+
// limitations under the License.
|
|
14
|
+
|
|
15
|
+
// The canonical version of this proto can be found at
|
|
16
|
+
// https://github.com/grpc/grpc-proto/blob/master/grpc/health/v1/health.proto
|
|
17
|
+
|
|
18
|
+
syntax = "proto3";
|
|
19
|
+
|
|
20
|
+
package grpc.health.v1;
|
|
21
|
+
|
|
22
|
+
option csharp_namespace = "Grpc.Health.V1";
|
|
23
|
+
option go_package = "google.golang.org/grpc/health/grpc_health_v1";
|
|
24
|
+
option java_multiple_files = true;
|
|
25
|
+
option java_outer_classname = "HealthProto";
|
|
26
|
+
option java_package = "io.grpc.health.v1";
|
|
27
|
+
option objc_class_prefix = "GrpcHealthV1";
|
|
28
|
+
|
|
29
|
+
message HealthCheckRequest {
|
|
30
|
+
string service = 1;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
message HealthCheckResponse {
|
|
34
|
+
enum ServingStatus {
|
|
35
|
+
UNKNOWN = 0;
|
|
36
|
+
SERVING = 1;
|
|
37
|
+
NOT_SERVING = 2;
|
|
38
|
+
SERVICE_UNKNOWN = 3; // Used only by the Watch method.
|
|
39
|
+
}
|
|
40
|
+
ServingStatus status = 1;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
message HealthListRequest {}
|
|
44
|
+
|
|
45
|
+
message HealthListResponse {
|
|
46
|
+
// statuses contains all the services and their respective status.
|
|
47
|
+
map<string, HealthCheckResponse> statuses = 1;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
// Health is gRPC's mechanism for checking whether a server is able to handle
|
|
51
|
+
// RPCs. Its semantics are documented in
|
|
52
|
+
// https://github.com/grpc/grpc/blob/master/doc/health-checking.md.
|
|
53
|
+
service Health {
|
|
54
|
+
// Check gets the health of the specified service. If the requested service
|
|
55
|
+
// is unknown, the call will fail with status NOT_FOUND. If the caller does
|
|
56
|
+
// not specify a service name, the server should respond with its overall
|
|
57
|
+
// health status.
|
|
58
|
+
//
|
|
59
|
+
// Clients should set a deadline when calling Check, and can declare the
|
|
60
|
+
// server unhealthy if they do not receive a timely response.
|
|
61
|
+
rpc Check(HealthCheckRequest) returns (HealthCheckResponse);
|
|
62
|
+
|
|
63
|
+
// List provides a non-atomic snapshot of the health of all the available
|
|
64
|
+
// services.
|
|
65
|
+
//
|
|
66
|
+
// The server may respond with a RESOURCE_EXHAUSTED error if too many services
|
|
67
|
+
// exist.
|
|
68
|
+
//
|
|
69
|
+
// Clients should set a deadline when calling List, and can declare the server
|
|
70
|
+
// unhealthy if they do not receive a timely response.
|
|
71
|
+
//
|
|
72
|
+
// Clients should keep in mind that the list of health services exposed by an
|
|
73
|
+
// application can change over the lifetime of the process.
|
|
74
|
+
rpc List(HealthListRequest) returns (HealthListResponse);
|
|
75
|
+
|
|
76
|
+
// Performs a watch for the serving status of the requested service.
|
|
77
|
+
// The server will immediately send back a message indicating the current
|
|
78
|
+
// serving status. It will then subsequently send a new message whenever
|
|
79
|
+
// the service's serving status changes.
|
|
80
|
+
//
|
|
81
|
+
// If the requested service is unknown when the call is received, the
|
|
82
|
+
// server will send a message setting the serving status to
|
|
83
|
+
// SERVICE_UNKNOWN but will *not* terminate the call. If at some
|
|
84
|
+
// future point, the serving status of the service becomes known, the
|
|
85
|
+
// server will send a new message with the service's serving status.
|
|
86
|
+
//
|
|
87
|
+
// If the call terminates with status UNIMPLEMENTED, then clients
|
|
88
|
+
// should assume this method is not supported and should not retry the
|
|
89
|
+
// call. If the call terminates with any other status (including OK),
|
|
90
|
+
// clients should retry the call with appropriate exponential backoff.
|
|
91
|
+
rpc Watch(HealthCheckRequest) returns (stream HealthCheckResponse);
|
|
92
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
# lifecycle package
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
# lifecycle v1 package
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
syntax = "proto3";
|
|
2
|
+
|
|
3
|
+
package swanlab.proto.core.lifecycle.v1;
|
|
4
|
+
|
|
5
|
+
option go_package = "core/pkg/pb";
|
|
6
|
+
|
|
7
|
+
// ShutdownRequest 请求服务端优雅关闭
|
|
8
|
+
message ShutdownRequest {
|
|
9
|
+
// exit_code 是客户端的退出码,传递给服务端用于日志记录
|
|
10
|
+
int32 exit_code = 1;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
// ShutdownResponse 确认服务端已收到关闭请求
|
|
14
|
+
message ShutdownResponse {
|
|
15
|
+
// success 表示是否成功触发关闭流程
|
|
16
|
+
bool success = 1;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
// Lifecycle 提供服务生命周期管理功能
|
|
20
|
+
service Lifecycle {
|
|
21
|
+
// Shutdown 通知服务端优雅关闭
|
|
22
|
+
// 服务端收到后会完成所有待处理请求,刷新缓冲区,然后退出
|
|
23
|
+
rpc Shutdown(ShutdownRequest) returns (ShutdownResponse);
|
|
24
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
|
3
|
+
# NO CHECKED-IN PROTOBUF GENCODE
|
|
4
|
+
# source: core/lifecycle/v1/lifecycle_service.proto
|
|
5
|
+
# Protobuf Python Version: 6.31.1
|
|
6
|
+
"""Generated protocol buffer code."""
|
|
7
|
+
from google.protobuf import descriptor as _descriptor
|
|
8
|
+
from google.protobuf import descriptor_pool as _descriptor_pool
|
|
9
|
+
from google.protobuf import runtime_version as _runtime_version
|
|
10
|
+
from google.protobuf import symbol_database as _symbol_database
|
|
11
|
+
from google.protobuf.internal import builder as _builder
|
|
12
|
+
_runtime_version.ValidateProtobufRuntimeVersion(
|
|
13
|
+
_runtime_version.Domain.PUBLIC,
|
|
14
|
+
6,
|
|
15
|
+
31,
|
|
16
|
+
1,
|
|
17
|
+
'',
|
|
18
|
+
'core/lifecycle/v1/lifecycle_service.proto'
|
|
19
|
+
)
|
|
20
|
+
# @@protoc_insertion_point(imports)
|
|
21
|
+
|
|
22
|
+
_sym_db = _symbol_database.Default()
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n)core/lifecycle/v1/lifecycle_service.proto\x12\x1fswanlab.proto.core.lifecycle.v1\"$\n\x0fShutdownRequest\x12\x11\n\texit_code\x18\x01 \x01(\x05\"#\n\x10ShutdownResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\x32|\n\tLifecycle\x12o\n\x08Shutdown\x12\x30.swanlab.proto.core.lifecycle.v1.ShutdownRequest\x1a\x31.swanlab.proto.core.lifecycle.v1.ShutdownResponseB\rZ\x0b\x63ore/pkg/pbb\x06proto3')
|
|
28
|
+
|
|
29
|
+
_globals = globals()
|
|
30
|
+
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
|
31
|
+
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'core.lifecycle.v1.lifecycle_service_pb2', _globals)
|
|
32
|
+
if not _descriptor._USE_C_DESCRIPTORS:
|
|
33
|
+
_globals['DESCRIPTOR']._loaded_options = None
|
|
34
|
+
_globals['DESCRIPTOR']._serialized_options = b'Z\013core/pkg/pb'
|
|
35
|
+
_globals['_SHUTDOWNREQUEST']._serialized_start=78
|
|
36
|
+
_globals['_SHUTDOWNREQUEST']._serialized_end=114
|
|
37
|
+
_globals['_SHUTDOWNRESPONSE']._serialized_start=116
|
|
38
|
+
_globals['_SHUTDOWNRESPONSE']._serialized_end=151
|
|
39
|
+
_globals['_LIFECYCLE']._serialized_start=153
|
|
40
|
+
_globals['_LIFECYCLE']._serialized_end=277
|
|
41
|
+
# @@protoc_insertion_point(module_scope)
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
from google.protobuf import descriptor as _descriptor
|
|
2
|
+
from google.protobuf import message as _message
|
|
3
|
+
from typing import ClassVar as _ClassVar, Optional as _Optional
|
|
4
|
+
|
|
5
|
+
DESCRIPTOR: _descriptor.FileDescriptor
|
|
6
|
+
|
|
7
|
+
class ShutdownRequest(_message.Message):
|
|
8
|
+
__slots__ = ("exit_code",)
|
|
9
|
+
EXIT_CODE_FIELD_NUMBER: _ClassVar[int]
|
|
10
|
+
exit_code: int
|
|
11
|
+
def __init__(self, exit_code: _Optional[int] = ...) -> None: ...
|
|
12
|
+
|
|
13
|
+
class ShutdownResponse(_message.Message):
|
|
14
|
+
__slots__ = ("success",)
|
|
15
|
+
SUCCESS_FIELD_NUMBER: _ClassVar[int]
|
|
16
|
+
success: bool
|
|
17
|
+
def __init__(self, success: bool = ...) -> None: ...
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
|
|
2
|
+
"""Client and server classes corresponding to protobuf-defined services."""
|
|
3
|
+
import grpc
|
|
4
|
+
import warnings
|
|
5
|
+
|
|
6
|
+
from core.lifecycle.v1 import lifecycle_service_pb2 as core_dot_lifecycle_dot_v1_dot_lifecycle__service__pb2
|
|
7
|
+
|
|
8
|
+
GRPC_GENERATED_VERSION = '1.76.0'
|
|
9
|
+
GRPC_VERSION = grpc.__version__
|
|
10
|
+
_version_not_supported = False
|
|
11
|
+
|
|
12
|
+
try:
|
|
13
|
+
from grpc._utilities import first_version_is_lower
|
|
14
|
+
_version_not_supported = first_version_is_lower(GRPC_VERSION, GRPC_GENERATED_VERSION)
|
|
15
|
+
except ImportError:
|
|
16
|
+
_version_not_supported = True
|
|
17
|
+
|
|
18
|
+
if _version_not_supported:
|
|
19
|
+
raise RuntimeError(
|
|
20
|
+
f'The grpc package installed is at version {GRPC_VERSION},'
|
|
21
|
+
+ ' but the generated code in core/lifecycle/v1/lifecycle_service_pb2_grpc.py depends on'
|
|
22
|
+
+ f' grpcio>={GRPC_GENERATED_VERSION}.'
|
|
23
|
+
+ f' Please upgrade your grpc module to grpcio>={GRPC_GENERATED_VERSION}'
|
|
24
|
+
+ f' or downgrade your generated code using grpcio-tools<={GRPC_VERSION}.'
|
|
25
|
+
)
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
class LifecycleStub(object):
|
|
29
|
+
"""Lifecycle 提供服务生命周期管理功能
|
|
30
|
+
"""
|
|
31
|
+
|
|
32
|
+
def __init__(self, channel):
|
|
33
|
+
"""Constructor.
|
|
34
|
+
|
|
35
|
+
Args:
|
|
36
|
+
channel: A grpc.Channel.
|
|
37
|
+
"""
|
|
38
|
+
self.Shutdown = channel.unary_unary(
|
|
39
|
+
'/swanlab.proto.core.lifecycle.v1.Lifecycle/Shutdown',
|
|
40
|
+
request_serializer=core_dot_lifecycle_dot_v1_dot_lifecycle__service__pb2.ShutdownRequest.SerializeToString,
|
|
41
|
+
response_deserializer=core_dot_lifecycle_dot_v1_dot_lifecycle__service__pb2.ShutdownResponse.FromString,
|
|
42
|
+
_registered_method=True)
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
class LifecycleServicer(object):
|
|
46
|
+
"""Lifecycle 提供服务生命周期管理功能
|
|
47
|
+
"""
|
|
48
|
+
|
|
49
|
+
def Shutdown(self, request, context):
|
|
50
|
+
"""Shutdown 通知服务端优雅关闭
|
|
51
|
+
服务端收到后会完成所有待处理请求,刷新缓冲区,然后退出
|
|
52
|
+
"""
|
|
53
|
+
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
|
54
|
+
context.set_details('Method not implemented!')
|
|
55
|
+
raise NotImplementedError('Method not implemented!')
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
def add_LifecycleServicer_to_server(servicer, server):
|
|
59
|
+
rpc_method_handlers = {
|
|
60
|
+
'Shutdown': grpc.unary_unary_rpc_method_handler(
|
|
61
|
+
servicer.Shutdown,
|
|
62
|
+
request_deserializer=core_dot_lifecycle_dot_v1_dot_lifecycle__service__pb2.ShutdownRequest.FromString,
|
|
63
|
+
response_serializer=core_dot_lifecycle_dot_v1_dot_lifecycle__service__pb2.ShutdownResponse.SerializeToString,
|
|
64
|
+
),
|
|
65
|
+
}
|
|
66
|
+
generic_handler = grpc.method_handlers_generic_handler(
|
|
67
|
+
'swanlab.proto.core.lifecycle.v1.Lifecycle', rpc_method_handlers)
|
|
68
|
+
server.add_generic_rpc_handlers((generic_handler,))
|
|
69
|
+
server.add_registered_method_handlers('swanlab.proto.core.lifecycle.v1.Lifecycle', rpc_method_handlers)
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
# This class is part of an EXPERIMENTAL API.
|
|
73
|
+
class Lifecycle(object):
|
|
74
|
+
"""Lifecycle 提供服务生命周期管理功能
|
|
75
|
+
"""
|
|
76
|
+
|
|
77
|
+
@staticmethod
|
|
78
|
+
def Shutdown(request,
|
|
79
|
+
target,
|
|
80
|
+
options=(),
|
|
81
|
+
channel_credentials=None,
|
|
82
|
+
call_credentials=None,
|
|
83
|
+
insecure=False,
|
|
84
|
+
compression=None,
|
|
85
|
+
wait_for_ready=None,
|
|
86
|
+
timeout=None,
|
|
87
|
+
metadata=None):
|
|
88
|
+
return grpc.experimental.unary_unary(
|
|
89
|
+
request,
|
|
90
|
+
target,
|
|
91
|
+
'/swanlab.proto.core.lifecycle.v1.Lifecycle/Shutdown',
|
|
92
|
+
core_dot_lifecycle_dot_v1_dot_lifecycle__service__pb2.ShutdownRequest.SerializeToString,
|
|
93
|
+
core_dot_lifecycle_dot_v1_dot_lifecycle__service__pb2.ShutdownResponse.FromString,
|
|
94
|
+
options,
|
|
95
|
+
channel_credentials,
|
|
96
|
+
insecure,
|
|
97
|
+
call_credentials,
|
|
98
|
+
compression,
|
|
99
|
+
wait_for_ready,
|
|
100
|
+
timeout,
|
|
101
|
+
metadata,
|
|
102
|
+
_registered_method=True)
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
syntax = "proto3";
|
|
2
|
+
|
|
3
|
+
import "google/protobuf/struct.proto";
|
|
4
|
+
import "google/protobuf/any.proto";
|
|
5
|
+
|
|
6
|
+
package swanlab.proto.record.v1;
|
|
7
|
+
|
|
8
|
+
option go_package = "core/pkg/pb";
|
|
9
|
+
|
|
10
|
+
// Record is the base record type in swanlab.
|
|
11
|
+
// It is used to represent any kind of record in swanlab.
|
|
12
|
+
message Record{
|
|
13
|
+
// Marks the type of the record.
|
|
14
|
+
enum RecordType{
|
|
15
|
+
RECORD_UNKNOWN = 0; // Unknown record type, used for error handling
|
|
16
|
+
RECORD_SETUP = 1;
|
|
17
|
+
RECORD_TEARDOWN = 2;
|
|
18
|
+
RECORD_RUNTIME = 3;
|
|
19
|
+
RECORD_COLUMN = 4;
|
|
20
|
+
RECORD_MEDIA = 5;
|
|
21
|
+
RECORD_SCALAR = 6;
|
|
22
|
+
RECORD_LOG = 7;
|
|
23
|
+
}
|
|
24
|
+
RecordType message_type = 1;
|
|
25
|
+
// The data of this record, it can be any type of data.
|
|
26
|
+
google.protobuf.Any payload = 2;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
// SetupRecord is a record containing information about the setup process in swanlab.
|
|
31
|
+
message SetupRecord{
|
|
32
|
+
// The name of the project
|
|
33
|
+
string name = 1;
|
|
34
|
+
// The workspace of the project, if workspace is empty, it means user not set workspace.
|
|
35
|
+
string workspace = 2;
|
|
36
|
+
// The visibility of the project
|
|
37
|
+
enum Visibility {
|
|
38
|
+
VISIBILITY_UNKNOWN = 0; // Unknown visibility, it means the visibility is not set.
|
|
39
|
+
VISIBILITY_PRIVATE = 1; // Private project
|
|
40
|
+
VISIBILITY_PUBLIC = 2; // Public project
|
|
41
|
+
}
|
|
42
|
+
Visibility visibility = 3;
|
|
43
|
+
// The experiment name, if experiment_name is empty, it means user not set experiment name.
|
|
44
|
+
string experiment_name = 4;
|
|
45
|
+
// The experiment description, if experiment_description is empty, it means user not set experiment description.
|
|
46
|
+
string experiment_description = 5;
|
|
47
|
+
// The experiment tags
|
|
48
|
+
repeated string experiment_tags = 6;
|
|
49
|
+
// The experiment start time
|
|
50
|
+
string start_time = 7;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
// TeardownRecord is a record containing information about the teardown process in swanlab.
|
|
54
|
+
// It may not exist if the process was killed or terminated unexpectedly.
|
|
55
|
+
message TeardownRecord{
|
|
56
|
+
// The error message if the teardown process failed
|
|
57
|
+
// if err_message is empty, it means the teardown process was successful
|
|
58
|
+
string error_message = 2;
|
|
59
|
+
// The time when the teardown process was completed
|
|
60
|
+
string end_time = 3;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
// RuntimeRecord is the record that contains information about the runtime environment of swanlab.
|
|
65
|
+
message RuntimeRecord{
|
|
66
|
+
// The conda environment file name
|
|
67
|
+
optional string conda_filename = 1;
|
|
68
|
+
// The pip requirements file name
|
|
69
|
+
optional string pip_filename = 2;
|
|
70
|
+
// The user config file name
|
|
71
|
+
optional string config_filename = 3;
|
|
72
|
+
// The swanlab automatically generated file name, meaning the metadata of the runtime environment.
|
|
73
|
+
optional string metadata_filename = 4;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
message Range {
|
|
77
|
+
optional int64 minval = 1;
|
|
78
|
+
optional int64 maxval = 2;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
// ColumnRecord is the type record for each metric in swanlab.
|
|
82
|
+
message ColumnRecord{
|
|
83
|
+
// Column ID
|
|
84
|
+
string column_key = 1;
|
|
85
|
+
// Column name
|
|
86
|
+
string column_name = 2;
|
|
87
|
+
// Column class, such as "CUSTOM", "SYSTEM"
|
|
88
|
+
enum ColumnClass{
|
|
89
|
+
COL_CLASS_CUSTOM = 0 ; // Custom column, user-defined, default
|
|
90
|
+
COL_CLASS_SYSTEM = 2 ; // System column, swanlab predefined
|
|
91
|
+
}
|
|
92
|
+
ColumnClass column_class = 3;
|
|
93
|
+
// Column type, such as "FLOAT", "IMAGE".
|
|
94
|
+
enum ColumnType {
|
|
95
|
+
COL_UNKNOWN = 0; // Unknown column type, used for error handling
|
|
96
|
+
COL_FLOAT = 1;
|
|
97
|
+
COL_IMAGE = 2;
|
|
98
|
+
COL_AUDIO = 3;
|
|
99
|
+
COL_TEXT = 4;
|
|
100
|
+
COL_OBJECT3D = 5;
|
|
101
|
+
COL_MOLECULE = 6;
|
|
102
|
+
COL_ECHARTS = 7;
|
|
103
|
+
}
|
|
104
|
+
ColumnType column_type = 4;
|
|
105
|
+
// If the column is error, a json object
|
|
106
|
+
google.protobuf.Struct column_error = 5;
|
|
107
|
+
// Section name, such as "train", "test", "valid", "eval", etc.
|
|
108
|
+
string section_name = 6;
|
|
109
|
+
// Section type, used to distinguish the section type of the chart.
|
|
110
|
+
enum SectionType {
|
|
111
|
+
SEC_PUBLIC = 0; // Public section, default
|
|
112
|
+
SEC_SYSTEM = 1;
|
|
113
|
+
SEC_CUSTOM = 2;
|
|
114
|
+
SEC_PINNED = 3;
|
|
115
|
+
SEC_HIDDEN = 4;
|
|
116
|
+
}
|
|
117
|
+
SectionType section_type = 7;
|
|
118
|
+
// The chart name
|
|
119
|
+
string chart_name = 8;
|
|
120
|
+
// The chart index, cuid
|
|
121
|
+
string chart_index = 9;
|
|
122
|
+
// The Y axis range
|
|
123
|
+
Range chart_y_range = 10;
|
|
124
|
+
// The metric name
|
|
125
|
+
string metric_name = 11;
|
|
126
|
+
// The metric color, 2 length hex string, such as "FF0000"
|
|
127
|
+
repeated string metric_color = 12;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
// MediaRecord is the record generated by swanlab when parsing each piece of media data.
|
|
131
|
+
message MediaRecord{
|
|
132
|
+
// record step
|
|
133
|
+
string index = 1;
|
|
134
|
+
// In which row is the data
|
|
135
|
+
string epoch = 2;
|
|
136
|
+
// The time when the record was created
|
|
137
|
+
string create_time = 3;
|
|
138
|
+
// Key name, corresponding column name, same as ColumnRecord.key
|
|
139
|
+
string key = 4;
|
|
140
|
+
// key URL encoded, used to identify the media file
|
|
141
|
+
string key_encoded = 5;
|
|
142
|
+
// Key ID, Backend-Independent, related to the indicator storage directory, the storage path is {run_dir}/{kid}/{file_name}.
|
|
143
|
+
string kid = 6;
|
|
144
|
+
// file name(s)
|
|
145
|
+
repeated string data = 7;
|
|
146
|
+
// more attributes, corresponding to the data, {} means no more attributes
|
|
147
|
+
repeated google.protobuf.Struct more = 8;
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
// ScalarRecord is the record generated by swanlab when parsing each piece of numerical data.
|
|
151
|
+
message ScalarRecord{
|
|
152
|
+
// record step
|
|
153
|
+
string index = 1;
|
|
154
|
+
// In which row is the data
|
|
155
|
+
string epoch = 2;
|
|
156
|
+
// The time when the record was created
|
|
157
|
+
string create_time = 3;
|
|
158
|
+
// Key name, corresponding column name
|
|
159
|
+
string key = 4;
|
|
160
|
+
// numerical value
|
|
161
|
+
repeated float data = 5;
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
// LogRecord is the record generated by swanlab when parsing each piece of terminal log data.
|
|
165
|
+
message LogRecord{
|
|
166
|
+
// In which row is the data
|
|
167
|
+
string epoch = 1;
|
|
168
|
+
|
|
169
|
+
// Log level enum
|
|
170
|
+
enum LogType {
|
|
171
|
+
LOG_INFO = 0; // Informational log, default
|
|
172
|
+
LOG_WARN = 2;
|
|
173
|
+
LOG_ERROR = 3;
|
|
174
|
+
}
|
|
175
|
+
// Log level
|
|
176
|
+
LogType level = 2;
|
|
177
|
+
|
|
178
|
+
// Log message
|
|
179
|
+
string message = 3;
|
|
180
|
+
}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
|
3
|
+
# NO CHECKED-IN PROTOBUF GENCODE
|
|
4
|
+
# source: record/v1/record.proto
|
|
5
|
+
# Protobuf Python Version: 6.31.1
|
|
6
|
+
"""Generated protocol buffer code."""
|
|
7
|
+
from google.protobuf import descriptor as _descriptor
|
|
8
|
+
from google.protobuf import descriptor_pool as _descriptor_pool
|
|
9
|
+
from google.protobuf import runtime_version as _runtime_version
|
|
10
|
+
from google.protobuf import symbol_database as _symbol_database
|
|
11
|
+
from google.protobuf.internal import builder as _builder
|
|
12
|
+
_runtime_version.ValidateProtobufRuntimeVersion(
|
|
13
|
+
_runtime_version.Domain.PUBLIC,
|
|
14
|
+
6,
|
|
15
|
+
31,
|
|
16
|
+
1,
|
|
17
|
+
'',
|
|
18
|
+
'record/v1/record.proto'
|
|
19
|
+
)
|
|
20
|
+
# @@protoc_insertion_point(imports)
|
|
21
|
+
|
|
22
|
+
_sym_db = _symbol_database.Default()
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
from google.protobuf import struct_pb2 as google_dot_protobuf_dot_struct__pb2
|
|
26
|
+
from google.protobuf import any_pb2 as google_dot_protobuf_dot_any__pb2
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x16record/v1/record.proto\x12\x17swanlab.proto.record.v1\x1a\x1cgoogle/protobuf/struct.proto\x1a\x19google/protobuf/any.proto\"\x97\x02\n\x06Record\x12@\n\x0cmessage_type\x18\x01 \x01(\x0e\x32*.swanlab.proto.record.v1.Record.RecordType\x12%\n\x07payload\x18\x02 \x01(\x0b\x32\x14.google.protobuf.Any\"\xa3\x01\n\nRecordType\x12\x12\n\x0eRECORD_UNKNOWN\x10\x00\x12\x10\n\x0cRECORD_SETUP\x10\x01\x12\x13\n\x0fRECORD_TEARDOWN\x10\x02\x12\x12\n\x0eRECORD_RUNTIME\x10\x03\x12\x11\n\rRECORD_COLUMN\x10\x04\x12\x10\n\x0cRECORD_MEDIA\x10\x05\x12\x11\n\rRECORD_SCALAR\x10\x06\x12\x0e\n\nRECORD_LOG\x10\x07\"\xae\x02\n\x0bSetupRecord\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x11\n\tworkspace\x18\x02 \x01(\t\x12\x43\n\nvisibility\x18\x03 \x01(\x0e\x32/.swanlab.proto.record.v1.SetupRecord.Visibility\x12\x17\n\x0f\x65xperiment_name\x18\x04 \x01(\t\x12\x1e\n\x16\x65xperiment_description\x18\x05 \x01(\t\x12\x17\n\x0f\x65xperiment_tags\x18\x06 \x03(\t\x12\x12\n\nstart_time\x18\x07 \x01(\t\"S\n\nVisibility\x12\x16\n\x12VISIBILITY_UNKNOWN\x10\x00\x12\x16\n\x12VISIBILITY_PRIVATE\x10\x01\x12\x15\n\x11VISIBILITY_PUBLIC\x10\x02\"9\n\x0eTeardownRecord\x12\x15\n\rerror_message\x18\x02 \x01(\t\x12\x10\n\x08\x65nd_time\x18\x03 \x01(\t\"\xd3\x01\n\rRuntimeRecord\x12\x1b\n\x0e\x63onda_filename\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x19\n\x0cpip_filename\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x1c\n\x0f\x63onfig_filename\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x1e\n\x11metadata_filename\x18\x04 \x01(\tH\x03\x88\x01\x01\x42\x11\n\x0f_conda_filenameB\x0f\n\r_pip_filenameB\x12\n\x10_config_filenameB\x14\n\x12_metadata_filename\"G\n\x05Range\x12\x13\n\x06minval\x18\x01 \x01(\x03H\x00\x88\x01\x01\x12\x13\n\x06maxval\x18\x02 \x01(\x03H\x01\x88\x01\x01\x42\t\n\x07_minvalB\t\n\x07_maxval\"\x8a\x06\n\x0c\x43olumnRecord\x12\x12\n\ncolumn_key\x18\x01 \x01(\t\x12\x13\n\x0b\x63olumn_name\x18\x02 \x01(\t\x12G\n\x0c\x63olumn_class\x18\x03 \x01(\x0e\x32\x31.swanlab.proto.record.v1.ColumnRecord.ColumnClass\x12\x45\n\x0b\x63olumn_type\x18\x04 \x01(\x0e\x32\x30.swanlab.proto.record.v1.ColumnRecord.ColumnType\x12-\n\x0c\x63olumn_error\x18\x05 \x01(\x0b\x32\x17.google.protobuf.Struct\x12\x14\n\x0csection_name\x18\x06 \x01(\t\x12G\n\x0csection_type\x18\x07 \x01(\x0e\x32\x31.swanlab.proto.record.v1.ColumnRecord.SectionType\x12\x12\n\nchart_name\x18\x08 \x01(\t\x12\x13\n\x0b\x63hart_index\x18\t \x01(\t\x12\x35\n\rchart_y_range\x18\n \x01(\x0b\x32\x1e.swanlab.proto.record.v1.Range\x12\x13\n\x0bmetric_name\x18\x0b \x01(\t\x12\x14\n\x0cmetric_color\x18\x0c \x03(\t\"9\n\x0b\x43olumnClass\x12\x14\n\x10\x43OL_CLASS_CUSTOM\x10\x00\x12\x14\n\x10\x43OL_CLASS_SYSTEM\x10\x02\"\x8d\x01\n\nColumnType\x12\x0f\n\x0b\x43OL_UNKNOWN\x10\x00\x12\r\n\tCOL_FLOAT\x10\x01\x12\r\n\tCOL_IMAGE\x10\x02\x12\r\n\tCOL_AUDIO\x10\x03\x12\x0c\n\x08\x43OL_TEXT\x10\x04\x12\x10\n\x0c\x43OL_OBJECT3D\x10\x05\x12\x10\n\x0c\x43OL_MOLECULE\x10\x06\x12\x0f\n\x0b\x43OL_ECHARTS\x10\x07\"]\n\x0bSectionType\x12\x0e\n\nSEC_PUBLIC\x10\x00\x12\x0e\n\nSEC_SYSTEM\x10\x01\x12\x0e\n\nSEC_CUSTOM\x10\x02\x12\x0e\n\nSEC_PINNED\x10\x03\x12\x0e\n\nSEC_HIDDEN\x10\x04\"\xa4\x01\n\x0bMediaRecord\x12\r\n\x05index\x18\x01 \x01(\t\x12\r\n\x05\x65poch\x18\x02 \x01(\t\x12\x13\n\x0b\x63reate_time\x18\x03 \x01(\t\x12\x0b\n\x03key\x18\x04 \x01(\t\x12\x13\n\x0bkey_encoded\x18\x05 \x01(\t\x12\x0b\n\x03kid\x18\x06 \x01(\t\x12\x0c\n\x04\x64\x61ta\x18\x07 \x03(\t\x12%\n\x04more\x18\x08 \x03(\x0b\x32\x17.google.protobuf.Struct\"\\\n\x0cScalarRecord\x12\r\n\x05index\x18\x01 \x01(\t\x12\r\n\x05\x65poch\x18\x02 \x01(\t\x12\x13\n\x0b\x63reate_time\x18\x03 \x01(\t\x12\x0b\n\x03key\x18\x04 \x01(\t\x12\x0c\n\x04\x64\x61ta\x18\x05 \x03(\x02\"\x9c\x01\n\tLogRecord\x12\r\n\x05\x65poch\x18\x01 \x01(\t\x12\x39\n\x05level\x18\x02 \x01(\x0e\x32*.swanlab.proto.record.v1.LogRecord.LogType\x12\x0f\n\x07message\x18\x03 \x01(\t\"4\n\x07LogType\x12\x0c\n\x08LOG_INFO\x10\x00\x12\x0c\n\x08LOG_WARN\x10\x02\x12\r\n\tLOG_ERROR\x10\x03\x42\rZ\x0b\x63ore/pkg/pbb\x06proto3')
|
|
30
|
+
|
|
31
|
+
_globals = globals()
|
|
32
|
+
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
|
33
|
+
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'record.v1.record_pb2', _globals)
|
|
34
|
+
if not _descriptor._USE_C_DESCRIPTORS:
|
|
35
|
+
_globals['DESCRIPTOR']._loaded_options = None
|
|
36
|
+
_globals['DESCRIPTOR']._serialized_options = b'Z\013core/pkg/pb'
|
|
37
|
+
_globals['_RECORD']._serialized_start=109
|
|
38
|
+
_globals['_RECORD']._serialized_end=388
|
|
39
|
+
_globals['_RECORD_RECORDTYPE']._serialized_start=225
|
|
40
|
+
_globals['_RECORD_RECORDTYPE']._serialized_end=388
|
|
41
|
+
_globals['_SETUPRECORD']._serialized_start=391
|
|
42
|
+
_globals['_SETUPRECORD']._serialized_end=693
|
|
43
|
+
_globals['_SETUPRECORD_VISIBILITY']._serialized_start=610
|
|
44
|
+
_globals['_SETUPRECORD_VISIBILITY']._serialized_end=693
|
|
45
|
+
_globals['_TEARDOWNRECORD']._serialized_start=695
|
|
46
|
+
_globals['_TEARDOWNRECORD']._serialized_end=752
|
|
47
|
+
_globals['_RUNTIMERECORD']._serialized_start=755
|
|
48
|
+
_globals['_RUNTIMERECORD']._serialized_end=966
|
|
49
|
+
_globals['_RANGE']._serialized_start=968
|
|
50
|
+
_globals['_RANGE']._serialized_end=1039
|
|
51
|
+
_globals['_COLUMNRECORD']._serialized_start=1042
|
|
52
|
+
_globals['_COLUMNRECORD']._serialized_end=1820
|
|
53
|
+
_globals['_COLUMNRECORD_COLUMNCLASS']._serialized_start=1524
|
|
54
|
+
_globals['_COLUMNRECORD_COLUMNCLASS']._serialized_end=1581
|
|
55
|
+
_globals['_COLUMNRECORD_COLUMNTYPE']._serialized_start=1584
|
|
56
|
+
_globals['_COLUMNRECORD_COLUMNTYPE']._serialized_end=1725
|
|
57
|
+
_globals['_COLUMNRECORD_SECTIONTYPE']._serialized_start=1727
|
|
58
|
+
_globals['_COLUMNRECORD_SECTIONTYPE']._serialized_end=1820
|
|
59
|
+
_globals['_MEDIARECORD']._serialized_start=1823
|
|
60
|
+
_globals['_MEDIARECORD']._serialized_end=1987
|
|
61
|
+
_globals['_SCALARRECORD']._serialized_start=1989
|
|
62
|
+
_globals['_SCALARRECORD']._serialized_end=2081
|
|
63
|
+
_globals['_LOGRECORD']._serialized_start=2084
|
|
64
|
+
_globals['_LOGRECORD']._serialized_end=2240
|
|
65
|
+
_globals['_LOGRECORD_LOGTYPE']._serialized_start=2188
|
|
66
|
+
_globals['_LOGRECORD_LOGTYPE']._serialized_end=2240
|
|
67
|
+
# @@protoc_insertion_point(module_scope)
|