| 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 |
|
|