Files
param-hub-python/modules/routes/__pycache__/api_gpus.cpython-310.pyc
T

53 lines
5.6 KiB
Plaintext
Raw Normal View History

2026-07-10 23:59:53 +08:00
o
2026-07-11 00:34:47 +08:00
œQjÊã@s$dZddlZddlZddlmZddlmZmZmZmZddl m
2026-07-10 23:59:53 +08:00
Z
2026-07-11 00:34:47 +08:00
ddl m Z m
Z
mZedeƒZdd „Ze d
2026-07-10 23:59:53 +08:00
¡d dƒZe d ¡d
2026-07-11 00:34:47 +08:00
dƒZejd
dgdddƒZejd dgdddƒZejd dgdddƒZejddgdddƒZejddgdddƒZejd ddgdd!d"„ƒZdS)#z
GPU CRUD API
2026-07-10 23:59:53 +08:00
éN)Údatetime)Ú BlueprintÚrequestÚjsonifyÚResponse)Ú GPUS_FILE)Ú load_dataÚ save_dataÚparse_date_to_timestampÚapi_gpuscCs&| |¡}|dur|dvrdSdS|S)N)Ú memory_gbÚ
2026-07-11 00:34:47 +08:00
cuda_coresÚ tensor_coresÚviewsrÚ©Úget)ÚkeyÚval©rú1works/param-hub-python/modules/routes/api_gpus.pyÚ_safe_sort_keys
rz /api/gpuscttƒ}tj dd¡dk}|rdd|Dƒ}tj dd¡ ¡ ¡ˆr,‡fdd|Dƒ}tj dd ¡tj d
d ¡d k}ˆd krLt|d d
d}t|ƒSˆdvr[t|fdd
2026-07-10 23:59:53 +08:00
|d}t|ƒS)allÚ0cSsg|]
2026-07-11 00:34:47 +08:00
}| dd¡r|qS)ÚvisibleTr©Ú.0ÚgrrrÚ
<listcomp>ózapi_gpus.<locals>.<listcomp>Úqrcs8g|]}ˆ| dd¡ ¡vsˆ| dd¡ ¡vr|qS)ÚnamerÚ manufacturer)rÚlowerr)ÚkeywordrrrsÿÚsortÚdefaultÚorderÚdesccSs4| dd¡ t| dd¡ƒpt| dd¡ƒpd fS)NÚ is_pinnedFÚ publish_daterÚ
created_atr)rr
2026-07-10 23:59:53 +08:00
©rrrrÚ<lambda>"s ÿÿþzapi_gpus.<locals>.<lambda>)r)r"r Ú price_usdr,r+rÚ
updated_atÚ release_yearcs
t|ˆƒS)N)rr-)Úsort_byrrr.)s
)rÚreverse) rrrÚargsrÚstripr$Úsortedr)ÚgpusÚ hide_hiddenr3r)r%r2rr sýz/api/gpus/<gpu_id>cs<ttƒ}tfdd|Dƒdƒ}|stddiƒdfSt|ƒS)Nc3ó |] }|dˆkr|VqdS©ÚidNrr©Úgpu_idrrÚ <genexpr>0óz!api_gpu_detail.<locals>.<genexpr>Úerrorú
2026-07-11 00:34:47 +08:00
GPU not foundé”)rrÚnextr©r=r7Úgpurr<rÚapi_gpu_detail-s
2026-07-10 23:59:53 +08:00
rFÚPOST)ÚmethodscCs”t ¡}ttƒ}t ¡jdd|d<t ¡  d¡|d<| 
2026-07-11 00:34:47 +08:00
dd¡|d<| 
dd¡|d<| 
2026-07-10 23:59:53 +08:00
d d
2026-07-11 00:34:47 +08:00
¡|d <| 
d d ¡|d <|  |¡t t|ƒt
|ƒS)
r;ú%Y-%m-%d %H:%M:%Sr,rTr+rrrr*F)rÚget_jsonrrÚuuidÚuuid4ÚhexrÚnowÚstrftimerÚappendr r)Údatar7rrrÚapi_create_gpu6s

rSÚPUTcsjt ¡}ttƒ}tfdd|Dƒdƒ}|stddiƒdfS| |¡t ¡  d¡|d<t
t|ƒt|ƒS)Nc3r9r:rrr<rrr>Ir?z!api_update_gpu.<locals>.<genexpr>r@rArBrJr0) rrKrrrCrÚupdaterrOrPr )r=rRr7rErr<rÚapi_update_gpuEs

rVÚDELETEcs0ttƒ}fdd|Dƒ}tt|ƒtddiƒS)Ncsg|]
}|dˆkr|qS)r;rrr<rrrUr z"api_delete_gpu.<locals>.<listcomp>ÚsuccessT)rrr r)r=r7rr<rÚapi_delete_gpuRs
 rYz/api/gpus/<gpu_id>/visiblecsbttƒ}tfdd|Dƒdƒ}|stddiƒdfS| dd¡ |d<tt|ƒtd|ddœƒS) Nc3r9r:rrr<rrr>]r?z)api_toggle_gpu_visible.<locals>.<genexpr>r@rArBrT)rXr)rrrCrrr rDrr<rÚapi_toggle_gpu_visibleZs
rZz/api/gpus/exportÚGETc
Cz0ttƒ}d|t|ƒt ¡ d¡ddœ}tj|ddd}t|dd d
t ¡ d ¡d id
}|WSt yL}zt
dt |ƒiƒdfWYd}~Sd}~ww)u导出所有GPUæ•°æ®r7rJz1.0)ÚtypeÚitemsÚcountÚ export_timeÚversionFé)Ú ensure_asciiÚindentzapplication/jsonzContent-Dispositionz!attachment; filename=gpus-export-z %Y%m%d%H%M%Sz.json)ÚmimetypeÚheadersr@éôN) rrÚlenrrOrPÚjsonÚdumpsrÚ ExceptionrÚstr)r7Ú export_dataÚjson_strÚresponseÚerrrÚapi_export_gpusgs& ûý ÿrpú/api/gpus/importc
s8ztjdkrtddddidœƒWSt ¡}|rd|vr$tdd iƒd
2026-07-10 23:59:53 +08:00
fWStj dd ¡}ttƒ}|d}d d
d
gdœ}|D]9‰tfdd|Dƒdƒ}|rh|dkr^|  ˆ¡|dd7<q<|d 
ˆd¡q<| 
ˆ¡|dd7<q<t t|ƒt|ƒWSt y}ztdt
2026-07-11 00:34:47 +08:00
|ƒiƒdfWYd}~Sd}~ww)u导入GPUæ•°æ®r[rqrGÚmodeumerge 或 replace)ÚendpointÚmethodÚparamsr]r@u缺少 items 字段iÚmergeTr)rXÚimportedÚupdatedÚskippedc3s$|]
}|dˆdkr|VqdSr:rr©Úitemrrr>s€"z"api_import_gpus.<locals>.<genexpr>NÚreplacerxéryr;rwrf)rrtrrKr4rrrrCrUrQr rjrk)Ú import_datarrr7Úimported_itemsÚresultÚexistingrorrzrÚapi_import_gpus~s2