From 455af448fd5d51e0f7d891313138da65aad9b153 Mon Sep 17 00:00:00 2001 From: Nicholas Devenish Date: Thu, 18 Jul 2024 22:46:49 +0100 Subject: [PATCH] Regenerate Slurm models for pydantic2 Using: datamodel-code-generator 0.25.8 ripgrep jq And the command: curl -H "X-SLURM-USER-NAME: gda2" \ -H "X-SLURM-USER-TOKEN: $(cat /dls_sw/apps/zocalo/secrets/slurmrest-gda2.tkn)" \ https://slurm-rest.diamond.ac.uk:8443/openapi/v3 \ | rg --passthru -N '((?:db)?v)0.0.(\d+)_' -r '${1}00$2.' \ | datamodel-codegen --target-python-version=3.8 \ --use-schema-description \ --use-field-description \ --output-model-type=pydantic_v2.BaseModel \ --field-constraints \ --use-double-quotes \ --output models \ && cp models/v0040.py src/zocalo/util/slurm/models.py --- src/zocalo/util/slurm/models.py | 184 ++++++++++++++++---------------- 1 file changed, 92 insertions(+), 92 deletions(-) diff --git a/src/zocalo/util/slurm/models.py b/src/zocalo/util/slurm/models.py index 4cf4fba..ec911df 100644 --- a/src/zocalo/util/slurm/models.py +++ b/src/zocalo/util/slurm/models.py @@ -1,13 +1,13 @@ # generated by datamodel-codegen: # filename: -# timestamp: 2024-07-19T07:41:26+00:00 +# timestamp: 2024-07-19T07:42:04+00:00 from __future__ import annotations from enum import Enum from typing import List, Optional -from pydantic import BaseModel, Field +from pydantic import BaseModel, Field, RootModel class Plugin(BaseModel): @@ -71,8 +71,8 @@ class Slurm(BaseModel): """ -class StringArray(BaseModel): - __root__: List[str] +class StringArray(RootModel[List[str]]): + root: List[str] class OpenapiError(BaseModel): @@ -169,12 +169,12 @@ class StatsMsgRpcsByTypeItem(BaseModel): """ -class StatsMsgRpcsByType(BaseModel): +class StatsMsgRpcsByType(RootModel[List[StatsMsgRpcsByTypeItem]]): """ RPCs by message type """ - __root__: List[StatsMsgRpcsByTypeItem] + root: List[StatsMsgRpcsByTypeItem] """ RPCs by message type """ @@ -207,12 +207,12 @@ class StatsMsgRpcsByUserItem(BaseModel): """ -class StatsMsgRpcsByUser(BaseModel): +class StatsMsgRpcsByUser(RootModel[List[StatsMsgRpcsByUserItem]]): """ RPCs by user """ - __root__: List[StatsMsgRpcsByUserItem] + root: List[StatsMsgRpcsByUserItem] """ RPCs by user """ @@ -448,23 +448,23 @@ class ProcessExitCodeVerbose(BaseModel): signal: Optional[Signal] = None -class JobInfoGresDetail(BaseModel): - __root__: List[str] +class JobInfoGresDetail(RootModel[List[str]]): + root: List[str] -class JobResNodes(BaseModel): +class JobResNodes(RootModel[List]): """ job node resources """ - __root__: List + root: List """ job node resources """ -class CsvString(BaseModel): - __root__: List[str] +class CsvString(RootModel[List[str]]): + root: List[str] class FlagModel1(Enum): @@ -754,8 +754,8 @@ class PowerMgmtData(BaseModel): time_start_day: Optional[int] = None -class HostlistString(BaseModel): - __root__: List[str] +class HostlistString(RootModel[List[str]]): + root: List[str] class Nodes(BaseModel): @@ -1172,8 +1172,8 @@ class Task(BaseModel): distribution: Optional[str] = None -class Hostlist(BaseModel): - __root__: List[str] +class Hostlist(RootModel[List[str]]): + root: List[str] class TresModel(BaseModel): @@ -1183,20 +1183,20 @@ class TresModel(BaseModel): count: Optional[int] = None -class StepTresReqMin(BaseModel): - __root__: List[TresModel] +class StepTresReqMin(RootModel[List[TresModel]]): + root: List[TresModel] -class StepTresUsageMax(BaseModel): - __root__: List[TresModel] +class StepTresUsageMax(RootModel[List[TresModel]]): + root: List[TresModel] -class StepTresUsageMin(BaseModel): - __root__: List[TresModel] +class StepTresUsageMin(RootModel[List[TresModel]]): + root: List[TresModel] -class TresList(BaseModel): - __root__: List[TresModel] +class TresList(RootModel[List[TresModel]]): + root: List[TresModel] class FlagModel6(Enum): @@ -1247,8 +1247,8 @@ class FlagModel8(Enum): DELETED = "DELETED" -class AssocShortList(BaseModel): - __root__: List[AssocShort] +class AssocShortList(RootModel[List[AssocShort]]): + root: List[AssocShort] class Coord(BaseModel): @@ -1397,8 +1397,8 @@ class ModeEnum(Enum): GANG = "GANG" -class QosPreemptList(BaseModel): - __root__: List[str] +class QosPreemptList(RootModel[List[str]]): + root: List[str] class DefaultModel(BaseModel): @@ -1467,12 +1467,12 @@ class MinModel(BaseModel): priority_threshold: Optional[Uint32NoVal] = None -class QosStringIdList(BaseModel): +class QosStringIdList(RootModel[List[str]]): """ List of QOS names """ - __root__: List[str] + root: List[str] """ List of QOS names """ @@ -1492,8 +1492,8 @@ class Instance(BaseModel): time: Optional[TimeModel1] = None -class StringList(BaseModel): - __root__: List[str] +class StringList(RootModel[List[str]]): + root: List[str] class AssocRecSet(BaseModel): @@ -1673,12 +1673,12 @@ class RollupStat(BaseModel): """ -class RollupStats(BaseModel): +class RollupStats(RootModel[List[RollupStat]]): """ list of recorded rollup statistics """ - __root__: List[RollupStat] + root: List[RollupStat] """ list of recorded rollup statistics """ @@ -1711,12 +1711,12 @@ class OpenapiMeta(BaseModel): slurm: Optional[Slurm] = None -class OpenapiErrors(BaseModel): - __root__: List[OpenapiError] +class OpenapiErrors(RootModel[List[OpenapiError]]): + root: List[OpenapiError] -class OpenapiWarnings(BaseModel): - __root__: List[OpenapiWarning] +class OpenapiWarnings(RootModel[List[OpenapiWarning]]): + root: List[OpenapiWarning] class StatsMsg(BaseModel): @@ -1770,12 +1770,12 @@ class StatsMsg(BaseModel): rpcs_by_user: Optional[StatsMsgRpcsByUser] = None -class Licenses(BaseModel): - __root__: List[License] +class Licenses(RootModel[List[License]]): + root: List[License] -class ControllerPingArray(BaseModel): - __root__: List[ControllerPing] +class ControllerPingArray(RootModel[List[ControllerPing]]): + root: List[ControllerPing] class JobRes(BaseModel): @@ -1903,12 +1903,12 @@ class JobDescMsg(BaseModel): x11_target_port: Optional[int] = None -class JobArrayResponseArray(BaseModel): - __root__: List[JobArrayResponseMsgEntry] +class JobArrayResponseArray(RootModel[List[JobArrayResponseMsgEntry]]): + root: List[JobArrayResponseMsgEntry] -class JobDescMsgList(BaseModel): - __root__: List[JobDescMsg] +class JobDescMsgList(RootModel[List[JobDescMsg]]): + root: List[JobDescMsg] class OpenapiJobSubmitResponse(BaseModel): @@ -2059,20 +2059,20 @@ class UpdateNodeMsg(BaseModel): """ -class PartitionInfoMsg(BaseModel): - __root__: List[PartitionInfo] +class PartitionInfoMsg(RootModel[List[PartitionInfo]]): + root: List[PartitionInfo] -class ReservationInfoCoreSpec(BaseModel): - __root__: List[ReservationCoreSpec] +class ReservationInfoCoreSpec(RootModel[List[ReservationCoreSpec]]): + root: List[ReservationCoreSpec] -class SharesUint64TresList(BaseModel): - __root__: List[SharesUint64Tres] +class SharesUint64TresList(RootModel[List[SharesUint64Tres]]): + root: List[SharesUint64Tres] -class SharesFloat128TresList(BaseModel): - __root__: List[SharesFloat128Tres] +class SharesFloat128TresList(RootModel[List[SharesFloat128Tres]]): + root: List[SharesFloat128Tres] class TresModel4(BaseModel): @@ -2093,20 +2093,20 @@ class Consumed(BaseModel): total: Optional[TresList] = None -class StepTresReqMax(BaseModel): - __root__: List[TresModel] +class StepTresReqMax(RootModel[List[TresModel]]): + root: List[TresModel] -class ClusterRecList(BaseModel): - __root__: List[ClusterRec] +class ClusterRecList(RootModel[List[ClusterRec]]): + root: List[ClusterRec] -class CoordList(BaseModel): - __root__: List[Coord] +class CoordList(RootModel[List[Coord]]): + root: List[Coord] -class AccountingList(BaseModel): - __root__: List[Accounting] +class AccountingList(RootModel[List[Accounting]]): + root: List[Accounting] class Preempt(BaseModel): @@ -2162,8 +2162,8 @@ class Assoc(BaseModel): user: str -class InstanceList(BaseModel): - __root__: List[Instance] +class InstanceList(RootModel[List[Instance]]): + root: List[Instance] class OpenapiTresResp(BaseModel): @@ -2406,12 +2406,12 @@ class OpenapiAccountsAddCondResp(BaseModel): """ -class StatsRpcList(BaseModel): - __root__: List[StatsRpc] +class StatsRpcList(RootModel[List[StatsRpc]]): + root: List[StatsRpc] -class StatsUserList(BaseModel): - __root__: List[StatsUser] +class StatsUserList(RootModel[List[StatsUser]]): + root: List[StatsUser] class OpenapiResp(BaseModel): @@ -2674,8 +2674,8 @@ class JobSubmitReq(BaseModel): """ -class NodesModel1(BaseModel): - __root__: List[Node] +class NodesModel1(RootModel[List[Node]]): + root: List[Node] class OpenapiPartitionResp(BaseModel): @@ -2836,12 +2836,12 @@ class Wckey(BaseModel): flags: Optional[List[FlagModel10]] = None -class QosList(BaseModel): - __root__: List[QosModel] +class QosList(RootModel[List[QosModel]]): + root: List[QosModel] -class AssocList(BaseModel): - __root__: List[Assoc] +class AssocList(RootModel[List[Assoc]]): + root: List[Assoc] class OpenapiSlurmdbdQosResp(BaseModel): @@ -2912,8 +2912,8 @@ class StatsRec(BaseModel): users: Optional[StatsUserList] = None -class JobInfoMsg(BaseModel): - __root__: List[JobInfo] +class JobInfoMsg(RootModel[List[JobInfo]]): + root: List[JobInfo] class OpenapiNodesResp(BaseModel): @@ -2939,24 +2939,24 @@ class OpenapiNodesResp(BaseModel): """ -class ReservationInfoMsg(BaseModel): - __root__: List[ReservationInfo] +class ReservationInfoMsg(RootModel[List[ReservationInfo]]): + root: List[ReservationInfo] -class AssocSharesObjList(BaseModel): - __root__: List[AssocSharesObjWrap] +class AssocSharesObjList(RootModel[List[AssocSharesObjWrap]]): + root: List[AssocSharesObjWrap] -class StepList(BaseModel): - __root__: List[StepModel] +class StepList(RootModel[List[StepModel]]): + root: List[StepModel] -class AccountList(BaseModel): - __root__: List[AccountModel] +class AccountList(RootModel[List[AccountModel]]): + root: List[AccountModel] -class WckeyList(BaseModel): - __root__: List[Wckey] +class WckeyList(RootModel[List[Wckey]]): + root: List[Wckey] class OpenapiWckeyResp(BaseModel): @@ -3156,12 +3156,12 @@ class OpenapiSharesResp(BaseModel): """ -class JobList(BaseModel): - __root__: List[Job] +class JobList(RootModel[List[Job]]): + root: List[Job] -class UserList(BaseModel): - __root__: List[UserModel] +class UserList(RootModel[List[UserModel]]): + root: List[UserModel] class OpenapiUsersResp(BaseModel):