DateParam
Param for a date, or a datetime when include_time is True.
Values are stored as ISO 8601 strings:
"2026-05-13"wheninclude_timeis False"2026-05-13T14:30:00"wheninclude_timeis True
The interface uses additional_info.include_time to pick between a date
picker and a datetime picker.
Accepted input types for default_value, min_value, max_value and
values passed to :meth:validate:
- an ISO 8601 string
- a :class:
datetime.dateor :class:datetime.datetimeinstance
PRIVATE_VISIBILITY: LiteralPROTECTED_VISIBILITY: LiteralPUBLIC_VISIBILITY: Literaladditional_info: dict | Noneai_catalog_member: booldefault_value: Optionalhuman_name: str | Noneinvalid_reason: str | Noneis_valid: booloptional: boolshort_description: str | Nonevisibility: Literalstr | datetime.date | datetime.datetime | Nonebool - Falsestr | datetime.date | datetime.datetime | Nonestr | datetime.date | datetime.datetime | Nonebool - FalseLiteral - publicstr | Nonestr | NoneConvert the stored ISO 8601 string back to a :class:datetime.date
(or :class:datetime.datetime when include_time is True) before the
value is used in a task.
The stored value is unchanged.
Anydatetime.date | datetime.datetime | NoneAnyParamSpecDTOParamSpecSimpleDTOValidate the value of the param and return the modified value if needed. This method is called when the param is set in the config before saving it in the database. The returned value must be serializable in json.
Anystr | NoneMaps this type's AI-relevant additional_info constraint keys to a
human explanation. Default: none. Override on types that expose
constraints (min/max, lengths, multiple, ...).
dictA representative, valid instance of this type used as the example in
:meth:describe_for_ai. Override to show meaningful constraints
(e.g. min/max). The default is a bare instance with a human_name.
DateParamOne-line description of what this field type is for. Override per type.
strSelf-describe this param type for an AI form-builder.
Returns the type tag, a one-line summary, the meaning of each
AI-relevant additional_info key, and a real example spec serialized
exactly as ConfigSpecs.from_json expects. Built from
:meth:ai_example_spec / :meth:ai_summary / :meth:ai_additional_info_doc
so a type only overrides the small pieces it cares about. Keeping this on
the type (not in the AI service) means a new param type ships its own
catalog entry.
str - example_fieldParamSpecAiDescriptionDTOSelfThe :class:ParamSpecCategory this type was registered with by the
@param_spec_decorator. None if the class was never decorated.
gws_core.config.param.param_spec_decorator.ParamSpecCategory | NoneParamSpecTypeOverride to re-validate min_value / max_value carried in the DTO.
Strict-write, lenient-read: only re-validate the bounds when validate
is True. When False (the default, used to load persisted content), copy
additional_info verbatim so that a previously-stored malformed bound
does not block read-modify-write operations like deleting the field.
ParamSpecDTObool - FalseDateParam