| | from pydantic import Field |
| |
|
| | from core.helper import encrypter |
| |
|
| | from .segments import ( |
| | ArrayAnySegment, |
| | ArrayNumberSegment, |
| | ArrayObjectSegment, |
| | ArrayStringSegment, |
| | FileSegment, |
| | FloatSegment, |
| | IntegerSegment, |
| | NoneSegment, |
| | ObjectSegment, |
| | Segment, |
| | StringSegment, |
| | ) |
| | from .types import SegmentType |
| |
|
| |
|
| | class Variable(Segment): |
| | """ |
| | A variable is a segment that has a name. |
| | """ |
| |
|
| | id: str = Field( |
| | default="", |
| | description="Unique identity for variable. It's only used by environment variables now.", |
| | ) |
| | name: str |
| | description: str = Field(default="", description="Description of the variable.") |
| |
|
| |
|
| | class StringVariable(StringSegment, Variable): |
| | pass |
| |
|
| |
|
| | class FloatVariable(FloatSegment, Variable): |
| | pass |
| |
|
| |
|
| | class IntegerVariable(IntegerSegment, Variable): |
| | pass |
| |
|
| |
|
| | class ObjectVariable(ObjectSegment, Variable): |
| | pass |
| |
|
| |
|
| | class ArrayAnyVariable(ArrayAnySegment, Variable): |
| | pass |
| |
|
| |
|
| | class ArrayStringVariable(ArrayStringSegment, Variable): |
| | pass |
| |
|
| |
|
| | class ArrayNumberVariable(ArrayNumberSegment, Variable): |
| | pass |
| |
|
| |
|
| | class ArrayObjectVariable(ArrayObjectSegment, Variable): |
| | pass |
| |
|
| |
|
| | class SecretVariable(StringVariable): |
| | value_type: SegmentType = SegmentType.SECRET |
| |
|
| | @property |
| | def log(self) -> str: |
| | return encrypter.obfuscated_token(self.value) |
| |
|
| |
|
| | class NoneVariable(NoneSegment, Variable): |
| | value_type: SegmentType = SegmentType.NONE |
| | value: None = None |
| |
|
| |
|
| | class FileVariable(FileSegment, Variable): |
| | pass |
| |
|