@@ -54,18 +54,15 @@ class File:
54
54
__slots__ = (
55
55
"filename" ,
56
56
"content" ,
57
+ "attachment_url" ,
57
58
"_lines_of_code" ,
58
59
"_character_count" ,
59
60
)
60
61
61
- def __init__ (
62
- self ,
63
- * ,
64
- filename : str ,
65
- content : str ,
66
- ) -> None :
62
+ def __init__ (self , * , filename : str , content : str , attachment_url : Optional [str ]) -> None :
67
63
self .filename : str = filename
68
64
self .content : str = content
65
+ self .attachment_url : Optional [str ] = attachment_url
69
66
70
67
@property
71
68
def lines_of_code (self ) -> int :
@@ -77,10 +74,7 @@ def character_count(self) -> int:
77
74
78
75
@classmethod
79
76
def from_data (cls , payload : FileResponse , / ) -> Self :
80
- self = cls (
81
- content = payload ["content" ],
82
- filename = payload ["filename" ],
83
- )
77
+ self = cls (content = payload ["content" ], filename = payload ["filename" ], attachment_url = payload ["attachment" ])
84
78
self ._lines_of_code = payload ["loc" ]
85
79
self ._character_count = payload ["charcount" ]
86
80
@@ -120,16 +114,11 @@ class Paste:
120
114
"_last_edited" ,
121
115
)
122
116
123
- def __init__ (
124
- self ,
125
- * ,
126
- id : str ,
127
- created_at : str ,
128
- files : List [File ],
129
- ) -> None :
117
+ def __init__ (self , * , id : str , created_at : str , files : List [File ], notice : Optional [str ]) -> None :
130
118
self .id : str = id
131
119
self .created_at : datetime .datetime = datetime .datetime .fromisoformat (created_at )
132
- self .files : list [File ] = files
120
+ self .files : List [File ] = files
121
+ self .notice : Optional [str ] = notice
133
122
134
123
def __str__ (self ) -> str :
135
124
return self .url
@@ -156,19 +145,15 @@ def views(self) -> Optional[int]:
156
145
@classmethod
157
146
def from_data (cls , payload : PasteResponse , / ) -> Self :
158
147
files = [File .from_data (data ) for data in payload ["files" ]]
159
- self = cls (
160
- id = payload ["id" ],
161
- created_at = payload ["created_at" ],
162
- files = files ,
163
- )
148
+ self = cls (id = payload ["id" ], created_at = payload ["created_at" ], files = files , notice = payload ["notice" ])
164
149
self ._views = payload .get ("views" )
165
- last_edited = payload . get ( "last_edited" )
150
+ last_edited = payload [ "last_edited" ]
166
151
if last_edited :
167
152
self ._last_edited = datetime .datetime .fromisoformat (last_edited )
168
153
else :
169
154
self ._last_edited = None
170
155
171
- expires = payload . get ( "expires" )
156
+ expires = payload [ "expires" ]
172
157
if expires :
173
158
self ._expires = datetime .datetime .fromisoformat (expires )
174
159
else :
0 commit comments