models

package
v0.6.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 6, 2024 License: Apache-2.0 Imports: 9 Imported by: 0

Documentation

Index

Constants

View Source
const (
	DefaultExperimentID   = int32(0)
	DefaultExperimentName = "Default"
)

Default Experiment properties.

View Source
const DefaultNamespaceCode = "default"

DefaultNamespaceCode represents default Namespace code.

Variables

View Source
var DefaultContext = Context{Json: types.JSONB("{}")}

DefaultContext is the default metric context

Functions

This section is empty.

Types

type Base added in v0.6.0

type Base struct {
	ID        uuid.UUID `gorm:"type:uuid;primaryKey"`
	CreatedAt time.Time
	UpdatedAt time.Time
}

Base is a base model which holds common fields for each model.

func (*Base) BeforeCreate added in v0.6.0

func (b *Base) BeforeCreate(tx *gorm.DB) error

BeforeCreate triggers by GORM before create.

type Context added in v0.5.0

type Context struct {
	ID   uint        `gorm:"primaryKey;autoIncrement"`
	Json types.JSONB `gorm:"not null;unique;index"`
}

Context represents model to work with `contexts` table.

func (Context) GetJsonHash added in v0.5.0

func (c Context) GetJsonHash() string

GetJsonHash returns hash of the Context.Json

type Experiment

type Experiment struct {
	ID               *int32         `gorm:"column:experiment_id;not null;primaryKey"`
	Name             string         `gorm:"type:varchar(256);not null;index:,unique,composite:name"`
	ArtifactLocation string         `gorm:"type:varchar(256)"`
	LifecycleStage   LifecycleStage `gorm:"type:varchar(32);check:lifecycle_stage IN ('active', 'deleted')"`
	CreationTime     sql.NullInt64  `gorm:"type:bigint"`
	LastUpdateTime   sql.NullInt64  `gorm:"type:bigint"`
	NamespaceID      uint           `gorm:"index:,unique,composite:name"`
	Namespace        Namespace
	Tags             []ExperimentTag `gorm:"constraint:OnDelete:CASCADE"`
	Runs             []Run           `gorm:"constraint:OnDelete:CASCADE"`
}

Experiment represents model to work with `experiments` table.

func (Experiment) IsDefault added in v0.5.0

func (e Experiment) IsDefault(namespace *Namespace) bool

IsDefault makes check that Experiment is default.

type ExperimentTag

type ExperimentTag struct {
	Key          string `gorm:"type:varchar(250);not null;primaryKey"`
	Value        string `gorm:"type:varchar(5000)"`
	ExperimentID int32  `gorm:"not null;primaryKey"`
}

ExperimentTag represents model to work with `experiment_tags` table.

type LatestMetric

type LatestMetric struct {
	Key       string  `gorm:"type:varchar(250);not null;primaryKey"`
	Value     float64 `gorm:"type:double precision;not null"`
	Timestamp int64
	Step      int64  `gorm:"not null"`
	IsNan     bool   `gorm:"not null"`
	RunID     string `gorm:"column:run_uuid;not null;primaryKey;index"`
	LastIter  int64
	ContextID uint `gorm:"not null;primaryKey"`
	Context   Context
}

LatestMetric represents model to work with `last_metrics` table.

func (LatestMetric) UniqueKey added in v0.5.0

func (m LatestMetric) UniqueKey() string

UniqueKey is a compound unique key for this metric series.

type LifecycleStage

type LifecycleStage string

LifecycleStage represents entity stage

const (
	LifecycleStageActive  LifecycleStage = "active"
	LifecycleStageDeleted LifecycleStage = "deleted"
)

Supported list of stages.

type Metric

type Metric struct {
	Key       string  `gorm:"type:varchar(250);not null;primaryKey"`
	Value     float64 `gorm:"type:double precision;not null;primaryKey"`
	Timestamp int64   `gorm:"not null;primaryKey"`
	RunID     string  `gorm:"column:run_uuid;not null;primaryKey;index"`
	Step      int64   `gorm:"default:0;not null;primaryKey"`
	IsNan     bool    `gorm:"default:false;not null;primaryKey"`
	Iter      int64   `gorm:"index"`
	ContextID uint    `gorm:"not null;primaryKey"`
	Context   Context
}

Metric represents model to work with `metrics` table.

func (Metric) UniqueKey added in v0.5.0

func (m Metric) UniqueKey() string

UniqueKey is a compound unique key for this metric series.

type Namespace added in v0.4.0

type Namespace struct {
	ID                  uint           `gorm:"primaryKey;autoIncrement" json:"id"`
	Code                string         `gorm:"unique;index;not null" json:"code"`
	Description         string         `json:"description"`
	CreatedAt           time.Time      `json:"created_at"`
	UpdatedAt           time.Time      `json:"updated_at"`
	DeletedAt           gorm.DeletedAt `gorm:"index" json:"deleted_at"`
	DefaultExperimentID *int32         `gorm:"not null" json:"default_experiment_id"`
	Experiments         []Experiment   `gorm:"constraint:OnDelete:CASCADE" json:"experiments"`
}

Namespace represents model to work with `namespaces` table.

func (Namespace) DisplayName added in v0.4.0

func (ns Namespace) DisplayName() string

DisplayName returns Namespace display name.

func (Namespace) IsDefault added in v0.5.0

func (ns Namespace) IsDefault() bool

IsDefault makes check that Namespace is default.

type Param

type Param struct {
	Key        string   `gorm:"type:varchar(250);not null;primaryKey"`
	ValueStr   *string  `gorm:"type:varchar(500)"`
	ValueInt   *int64   `gorm:"type:bigint"`
	ValueFloat *float64 `gorm:"type:float"`
	RunID      string   `gorm:"column:run_uuid;not null;primaryKey;index"`
}

Param represents model to work with `params` table.

func (Param) ValueAny added in v0.6.0

func (p Param) ValueAny() any

ValueAny returns the value held by this Param as any with underlying type.

func (Param) ValueString added in v0.6.0

func (p Param) ValueString() string

Value returns the value held by this Param as a string.

type Role added in v0.6.0

type Role struct {
	Base
	Name string `gorm:"unique;index;not null"`
}

Role represents model to work with `roles` table.

type RoleNamespace added in v0.6.0

type RoleNamespace struct {
	Base
	Role        Role      `gorm:"constraint:OnDelete:CASCADE"`
	RoleID      uuid.UUID `gorm:"not null;index:,unique,composite:relation"`
	Namespace   Namespace `gorm:"constraint:OnDelete:CASCADE"`
	NamespaceID uint      `gorm:"not null;index:,unique,composite:relation"`
}

RoleNamespace represents model to work with `role_relations` table. Model holds relations between Role and Namespace models.

type RowNum

type RowNum int64

RowNum represents custom data type.

func (RowNum) GormDataType

func (rn RowNum) GormDataType() string

GormDataType implements Gorm interface for custom data types.

func (RowNum) GormValue

func (rn RowNum) GormValue(ctx context.Context, db *gorm.DB) clause.Expr

GormValue implements Gorm interface for custom data types.

func (*RowNum) Scan

func (rn *RowNum) Scan(v interface{}) error

Scan implements Gorm interface for custom data types.

type Run

type Run struct {
	ID             string         `gorm:"<-:create;column:run_uuid;type:varchar(32);not null;primaryKey"`
	Name           string         `gorm:"type:varchar(250)"`
	SourceType     string         `gorm:"<-:create;type:varchar(20);check:source_type IN ('NOTEBOOK', 'JOB', 'LOCAL', 'UNKNOWN', 'PROJECT')"`
	SourceName     string         `gorm:"<-:create;type:varchar(500)"`
	EntryPointName string         `gorm:"<-:create;type:varchar(50)"`
	UserID         string         `gorm:"<-:create;type:varchar(256)"`
	Status         Status         `gorm:"type:varchar(9);check:status IN ('SCHEDULED', 'FAILED', 'FINISHED', 'RUNNING', 'KILLED')"`
	StartTime      sql.NullInt64  `gorm:"<-:create;type:bigint"`
	EndTime        sql.NullInt64  `gorm:"type:bigint"`
	SourceVersion  string         `gorm:"<-:create;type:varchar(50)"`
	LifecycleStage LifecycleStage `gorm:"type:varchar(20);check:lifecycle_stage IN ('active', 'deleted')"`
	ArtifactURI    string         `gorm:"<-:create;type:varchar(200)"`
	ExperimentID   int32
	Experiment     Experiment
	DeletedTime    sql.NullInt64  `gorm:"type:bigint"`
	RowNum         RowNum         `gorm:"<-:create;index"`
	Params         []Param        `gorm:"constraint:OnDelete:CASCADE"`
	Tags           []Tag          `gorm:"constraint:OnDelete:CASCADE"`
	Metrics        []Metric       `gorm:"constraint:OnDelete:CASCADE"`
	LatestMetrics  []LatestMetric `gorm:"constraint:OnDelete:CASCADE"`
}

Run represents model to work with `runs` table.

type Status

type Status string

Status represents Status type.

const (
	StatusRunning   Status = "RUNNING"
	StatusScheduled Status = "SCHEDULED"
	StatusFinished  Status = "FINISHED"
	StatusFailed    Status = "FAILED"
	StatusKilled    Status = "KILLED"
)

Supported list of statuses.

type Tag

type Tag struct {
	Key   string `gorm:"type:varchar(250);not null;primaryKey"`
	Value string `gorm:"type:varchar(5000)"`
	RunID string `gorm:"column:run_uuid;not null;primaryKey;index"`
}

Tag represents model to work with `tags` table.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL