merlemcdurrrmott commited on
Commit
19d30dc
·
verified ·
1 Parent(s): c54afc1

Upload app/assets/api/schemas_out.py with huggingface_hub

Browse files
Files changed (1) hide show
  1. app/assets/api/schemas_out.py +86 -0
app/assets/api/schemas_out.py ADDED
@@ -0,0 +1,86 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from datetime import datetime
2
+ from typing import Any
3
+
4
+ from pydantic import BaseModel, ConfigDict, Field, field_serializer
5
+
6
+
7
+ class Asset(BaseModel):
8
+ """API view of an asset. Maps to DB ``AssetReference`` joined with its ``Asset`` blob;
9
+ ``id`` here is the AssetReference id, not the content-addressed Asset id."""
10
+
11
+ id: str
12
+ name: str = Field(
13
+ ...,
14
+ deprecated=True,
15
+ description="Reference label, often caller-provided or derived from the filename. Deprecated for storage path/display semantics; use `loader_path` and `display_name` when present.",
16
+ )
17
+ hash: str | None = None
18
+ loader_path: str | None = Field(
19
+ default=None,
20
+ description="The value a loader consumes to load this asset. `None` when no loader can resolve the file.",
21
+ )
22
+ display_name: str | None = Field(
23
+ default=None,
24
+ description="Human-facing label for the asset. Not unique.",
25
+ )
26
+ asset_hash: str | None = None
27
+ size: int | None = None
28
+ mime_type: str | None = None
29
+ tags: list[str] = Field(default_factory=list)
30
+ preview_url: str | None = None
31
+ preview_id: str | None = None # references an asset_reference id, not an asset id
32
+ user_metadata: dict[str, Any] = Field(default_factory=dict)
33
+ is_immutable: bool = False
34
+ metadata: dict[str, Any] | None = None
35
+ job_id: str | None = None
36
+ prompt_id: str | None = None # deprecated: use job_id
37
+ created_at: datetime
38
+ updated_at: datetime
39
+ last_access_time: datetime | None = None
40
+
41
+ model_config = ConfigDict(from_attributes=True)
42
+
43
+ @field_serializer("created_at", "updated_at", "last_access_time")
44
+ def _serialize_datetime(self, v: datetime | None, _info):
45
+ return v.isoformat() if v else None
46
+
47
+
48
+ class AssetCreated(Asset):
49
+ created_new: bool
50
+
51
+
52
+ class AssetsList(BaseModel):
53
+ assets: list[Asset]
54
+ total: int
55
+ has_more: bool
56
+ # Opaque cursor for the next page. Omitted when there are no more results.
57
+ next_cursor: str | None = None
58
+
59
+
60
+ class TagUsage(BaseModel):
61
+ name: str
62
+ count: int
63
+
64
+
65
+ class TagsList(BaseModel):
66
+ tags: list[TagUsage] = Field(default_factory=list)
67
+ total: int
68
+ has_more: bool
69
+
70
+
71
+ class TagsAdd(BaseModel):
72
+ model_config = ConfigDict(str_strip_whitespace=True)
73
+ added: list[str] = Field(default_factory=list)
74
+ already_present: list[str] = Field(default_factory=list)
75
+ total_tags: list[str] = Field(default_factory=list)
76
+
77
+
78
+ class TagsRemove(BaseModel):
79
+ model_config = ConfigDict(str_strip_whitespace=True)
80
+ removed: list[str] = Field(default_factory=list)
81
+ not_present: list[str] = Field(default_factory=list)
82
+ total_tags: list[str] = Field(default_factory=list)
83
+
84
+
85
+ class TagHistogram(BaseModel):
86
+ tag_counts: dict[str, int]