12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- from collections.abc import Sequence
- from uuid import uuid4
- from pydantic import Field
- from core.helper import encrypter
- from .segments import (
- ArrayAnySegment,
- ArrayFileSegment,
- ArrayNumberSegment,
- ArrayObjectSegment,
- ArraySegment,
- 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=lambda _: str(uuid4()),
- description="Unique identity for variable.",
- )
- name: str
- description: str = Field(default="", description="Description of the variable.")
- selector: Sequence[str] = Field(default_factory=list)
- class StringVariable(StringSegment, Variable):
- pass
- class FloatVariable(FloatSegment, Variable):
- pass
- class IntegerVariable(IntegerSegment, Variable):
- pass
- class ObjectVariable(ObjectSegment, Variable):
- pass
- class ArrayVariable(ArraySegment, Variable):
- pass
- class ArrayAnyVariable(ArrayAnySegment, ArrayVariable):
- pass
- class ArrayStringVariable(ArrayStringSegment, ArrayVariable):
- pass
- class ArrayNumberVariable(ArrayNumberSegment, ArrayVariable):
- pass
- class ArrayObjectVariable(ArrayObjectSegment, ArrayVariable):
- 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
- class ArrayFileVariable(ArrayFileSegment, Variable):
- pass
|