scratchattach 2.1.14__py3-none-any.whl → 3.0.0b0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- scratchattach/__init__.py +14 -6
- scratchattach/__main__.py +93 -0
- {scratchattach-2.1.14.dist-info → scratchattach-3.0.0b0.dist-info}/METADATA +7 -11
- scratchattach-3.0.0b0.dist-info/RECORD +8 -0
- {scratchattach-2.1.14.dist-info → scratchattach-3.0.0b0.dist-info}/WHEEL +1 -1
- scratchattach-3.0.0b0.dist-info/entry_points.txt +2 -0
- scratchattach/cloud/__init__.py +0 -2
- scratchattach/cloud/_base.py +0 -458
- scratchattach/cloud/cloud.py +0 -183
- scratchattach/editor/__init__.py +0 -21
- scratchattach/editor/asset.py +0 -253
- scratchattach/editor/backpack_json.py +0 -117
- scratchattach/editor/base.py +0 -193
- scratchattach/editor/block.py +0 -579
- scratchattach/editor/blockshape.py +0 -357
- scratchattach/editor/build_defaulting.py +0 -51
- scratchattach/editor/code_translation/__init__.py +0 -0
- scratchattach/editor/code_translation/parse.py +0 -177
- scratchattach/editor/comment.py +0 -80
- scratchattach/editor/commons.py +0 -306
- scratchattach/editor/extension.py +0 -50
- scratchattach/editor/field.py +0 -99
- scratchattach/editor/inputs.py +0 -135
- scratchattach/editor/meta.py +0 -114
- scratchattach/editor/monitor.py +0 -183
- scratchattach/editor/mutation.py +0 -324
- scratchattach/editor/pallete.py +0 -90
- scratchattach/editor/prim.py +0 -170
- scratchattach/editor/project.py +0 -279
- scratchattach/editor/sprite.py +0 -599
- scratchattach/editor/twconfig.py +0 -114
- scratchattach/editor/vlb.py +0 -134
- scratchattach/eventhandlers/__init__.py +0 -0
- scratchattach/eventhandlers/_base.py +0 -100
- scratchattach/eventhandlers/cloud_events.py +0 -110
- scratchattach/eventhandlers/cloud_recorder.py +0 -26
- scratchattach/eventhandlers/cloud_requests.py +0 -459
- scratchattach/eventhandlers/cloud_server.py +0 -246
- scratchattach/eventhandlers/cloud_storage.py +0 -136
- scratchattach/eventhandlers/combine.py +0 -30
- scratchattach/eventhandlers/filterbot.py +0 -161
- scratchattach/eventhandlers/message_events.py +0 -42
- scratchattach/other/__init__.py +0 -0
- scratchattach/other/other_apis.py +0 -284
- scratchattach/other/project_json_capabilities.py +0 -475
- scratchattach/site/__init__.py +0 -0
- scratchattach/site/_base.py +0 -66
- scratchattach/site/activity.py +0 -382
- scratchattach/site/alert.py +0 -227
- scratchattach/site/backpack_asset.py +0 -118
- scratchattach/site/browser_cookie3_stub.py +0 -17
- scratchattach/site/browser_cookies.py +0 -61
- scratchattach/site/classroom.py +0 -447
- scratchattach/site/cloud_activity.py +0 -107
- scratchattach/site/comment.py +0 -242
- scratchattach/site/forum.py +0 -432
- scratchattach/site/project.py +0 -825
- scratchattach/site/session.py +0 -1238
- scratchattach/site/studio.py +0 -611
- scratchattach/site/user.py +0 -956
- scratchattach/utils/__init__.py +0 -0
- scratchattach/utils/commons.py +0 -255
- scratchattach/utils/encoder.py +0 -158
- scratchattach/utils/enums.py +0 -236
- scratchattach/utils/exceptions.py +0 -243
- scratchattach/utils/requests.py +0 -93
- scratchattach-2.1.14.dist-info/RECORD +0 -66
- {scratchattach-2.1.14.dist-info → scratchattach-3.0.0b0.dist-info}/licenses/LICENSE +0 -0
- {scratchattach-2.1.14.dist-info → scratchattach-3.0.0b0.dist-info}/top_level.txt +0 -0
|
@@ -1,243 +0,0 @@
|
|
|
1
|
-
# Authentication / Authorization:
|
|
2
|
-
from __future__ import annotations
|
|
3
|
-
|
|
4
|
-
class Unauthenticated(Exception):
|
|
5
|
-
"""
|
|
6
|
-
Raised when a method that requires a login / session is called on an object that wasn't created with a session.
|
|
7
|
-
|
|
8
|
-
If you create Project, Studio, or User objects using :meth:`scratchattach.get_project`, :meth:`scratchattach.get_studio`, or :meth:`scratchattach.get_user`, they cannot be used for actions that require authentication. Instead, use the following methods to ensure the objects are connected to an authenticated session:
|
|
9
|
-
|
|
10
|
-
- :meth:`scratchattach.Session.connect_project`
|
|
11
|
-
|
|
12
|
-
- :meth:`scratchattach.Session.connect_user`
|
|
13
|
-
|
|
14
|
-
- :meth:`scratchattach.Session.connect_studio`
|
|
15
|
-
|
|
16
|
-
This also applies to cloud variables, forum topics, and forum posts.
|
|
17
|
-
"""
|
|
18
|
-
|
|
19
|
-
def __init__(self, message=""):
|
|
20
|
-
self.message = "No login / session connected.\n\nThe object on which the method was called was created using scratchattach.get_xyz()\nUse session.connect_xyz() instead (xyz is a placeholder for user / project / cloud / ...).\n\nMore information: https://scratchattach.readthedocs.io/en/latest/scratchattach.html#scratchattach.utils.exceptions.Unauthenticated"
|
|
21
|
-
super().__init__(self.message)
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
class Unauthorized(Exception):
|
|
25
|
-
"""
|
|
26
|
-
Raised when an action is performed that the user associated with the session that the object was created with is not allowed to do.
|
|
27
|
-
|
|
28
|
-
Example: Changing the "about me" of other users will raise this error.
|
|
29
|
-
"""
|
|
30
|
-
|
|
31
|
-
def __init__(self, message=""):
|
|
32
|
-
self.message = (
|
|
33
|
-
f"The user corresponding to the connected login / session is not allowed to perform this action. "
|
|
34
|
-
f"{message}")
|
|
35
|
-
super().__init__(self.message)
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
class XTokenError(Exception):
|
|
39
|
-
"""
|
|
40
|
-
Raised when an action can't be performed because there is no XToken available.
|
|
41
|
-
|
|
42
|
-
This error can occur if the xtoken couldn't be fetched when the session was created. Some actions (like loving projects) require providing this token.
|
|
43
|
-
"""
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
# Not found errors:
|
|
47
|
-
|
|
48
|
-
class UserNotFound(Exception):
|
|
49
|
-
"""
|
|
50
|
-
Raised when a non-existent user is requested.
|
|
51
|
-
"""
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
class ProjectNotFound(Exception):
|
|
55
|
-
"""
|
|
56
|
-
Raised when a non-existent project is requested.
|
|
57
|
-
"""
|
|
58
|
-
|
|
59
|
-
class ClassroomNotFound(Exception):
|
|
60
|
-
"""
|
|
61
|
-
Raised when a non-existent Classroom is requested.
|
|
62
|
-
"""
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
class StudioNotFound(Exception):
|
|
66
|
-
"""
|
|
67
|
-
Raised when a non-existent studio is requested.
|
|
68
|
-
"""
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
class ForumContentNotFound(Exception):
|
|
72
|
-
"""
|
|
73
|
-
Raised when a non-existent forum topic / post is requested.
|
|
74
|
-
"""
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
class CommentNotFound(Exception):
|
|
78
|
-
pass
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
# Invalid inputs
|
|
82
|
-
class InvalidLanguage(Exception):
|
|
83
|
-
"""
|
|
84
|
-
Raised when an invalid language/language code/language object is provided, for TTS or Translate
|
|
85
|
-
"""
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
class InvalidTTSGender(Exception):
|
|
89
|
-
"""
|
|
90
|
-
Raised when an invalid TTS gender is provided.
|
|
91
|
-
"""
|
|
92
|
-
|
|
93
|
-
# API errors:
|
|
94
|
-
|
|
95
|
-
class LoginFailure(Exception):
|
|
96
|
-
"""
|
|
97
|
-
Raised when the Scratch server doesn't respond with a session id.
|
|
98
|
-
|
|
99
|
-
This could be caused by an invalid username / password. Another cause could be that your IP address was banned from logging in to Scratch. If you're using an online IDE (like replit), try running the code on your computer.
|
|
100
|
-
"""
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
class FetchError(Exception):
|
|
104
|
-
"""
|
|
105
|
-
Raised when getting information from the Scratch API fails. This can have various reasons. Make sure all provided arguments are valid.
|
|
106
|
-
"""
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
class BadRequest(Exception):
|
|
110
|
-
"""
|
|
111
|
-
Raised when the Scratch API responds with a "Bad Request" error message. This can have various reasons. Make sure all provided arguments are valid.
|
|
112
|
-
"""
|
|
113
|
-
|
|
114
|
-
class RateLimitedError(Exception):
|
|
115
|
-
"""
|
|
116
|
-
Indicates a ratelimit enforced by scratchattach
|
|
117
|
-
"""
|
|
118
|
-
|
|
119
|
-
class Response429(Exception):
|
|
120
|
-
"""
|
|
121
|
-
Raised when the Scratch API responds with a 429 error. This means that your network was ratelimited or blocked by Scratch. If you're using an online IDE (like replit.com), try running the code on your computer.
|
|
122
|
-
"""
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
class CommentPostFailure(Exception):
|
|
126
|
-
"""
|
|
127
|
-
Raised when a comment fails to post. This can have various reasons.
|
|
128
|
-
"""
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
class APIError(Exception):
|
|
132
|
-
"""
|
|
133
|
-
For API errors that can't be classified into one of the above errors
|
|
134
|
-
"""
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
class ScrapeError(Exception):
|
|
138
|
-
"""
|
|
139
|
-
Raised when something goes wrong while web-scraping a page with bs4.
|
|
140
|
-
"""
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
# Cloud / encoding errors:
|
|
145
|
-
|
|
146
|
-
class CloudConnectionError(Exception):
|
|
147
|
-
"""
|
|
148
|
-
Raised when connecting to Scratch's cloud server fails. This can have various reasons.
|
|
149
|
-
"""
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
class InvalidCloudValue(Exception):
|
|
154
|
-
"""
|
|
155
|
-
Raised when a cloud variable is set to an invalid value.
|
|
156
|
-
"""
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
class InvalidDecodeInput(Exception):
|
|
161
|
-
"""
|
|
162
|
-
Raised when the built-in decoder :meth:`scratchattach.encoder.Encoding.decode` receives an invalid input.
|
|
163
|
-
"""
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
# Cloud Requests errors:
|
|
168
|
-
|
|
169
|
-
class RequestNotFound(Exception):
|
|
170
|
-
"""
|
|
171
|
-
Cloud Requests: Raised when a non-existent cloud request is edited using :meth:`scratchattach.cloud_requests.CloudRequests.edit_request`.
|
|
172
|
-
"""
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
# Websocket server errors:
|
|
177
|
-
|
|
178
|
-
class WebsocketServerError(Exception):
|
|
179
|
-
"""
|
|
180
|
-
Raised when the self-hosted cloud websocket server fails to start.
|
|
181
|
-
"""
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
# Editor errors:
|
|
186
|
-
|
|
187
|
-
class UnclosedJSONError(Exception):
|
|
188
|
-
"""
|
|
189
|
-
Raised when a JSON string is never closed.
|
|
190
|
-
"""
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
class BadVLBPrimitiveError(Exception):
|
|
194
|
-
"""
|
|
195
|
-
Raised when a Primitive claiming to be a variable/list/broadcast actually isn't
|
|
196
|
-
"""
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
class UnlinkedVLB(Exception):
|
|
200
|
-
"""
|
|
201
|
-
Raised when a Primitive cannot be linked to variable/list/broadcast because the provided ID does not have an associated variable/list/broadcast
|
|
202
|
-
"""
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
class InvalidStageCount(Exception):
|
|
206
|
-
"""
|
|
207
|
-
Raised when a project has too many or too few Stage sprites
|
|
208
|
-
"""
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
class InvalidVLBName(Exception):
|
|
212
|
-
"""
|
|
213
|
-
Raised when an invalid VLB name is provided (not variable, list or broadcast)
|
|
214
|
-
"""
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
class BadBlockShape(Exception):
|
|
218
|
-
"""
|
|
219
|
-
Raised when the block shape cannot allow for the operation
|
|
220
|
-
"""
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
class BadScript(Exception):
|
|
224
|
-
"""
|
|
225
|
-
Raised when the block script cannot allow for the operation
|
|
226
|
-
"""
|
|
227
|
-
|
|
228
|
-
# Warnings
|
|
229
|
-
|
|
230
|
-
class LoginDataWarning(UserWarning):
|
|
231
|
-
"""
|
|
232
|
-
Warns you not to accidentally share your login data.
|
|
233
|
-
"""
|
|
234
|
-
|
|
235
|
-
class AnonymousSiteComponentWarning(UserWarning):
|
|
236
|
-
"""
|
|
237
|
-
Warns about a usage of an anonymous site component.
|
|
238
|
-
"""
|
|
239
|
-
|
|
240
|
-
class UnexpectedWebsocketEventWarning(RuntimeWarning):
|
|
241
|
-
"""
|
|
242
|
-
Warns about an unexpected occurrence with a websocket.
|
|
243
|
-
"""
|
scratchattach/utils/requests.py
DELETED
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
from __future__ import annotations
|
|
2
|
-
|
|
3
|
-
from collections.abc import MutableMapping, Iterator
|
|
4
|
-
from typing import Optional
|
|
5
|
-
from contextlib import contextmanager
|
|
6
|
-
|
|
7
|
-
from typing_extensions import override
|
|
8
|
-
from requests import Session as HTTPSession
|
|
9
|
-
from requests import Response
|
|
10
|
-
|
|
11
|
-
from . import exceptions
|
|
12
|
-
|
|
13
|
-
proxies: Optional[MutableMapping[str, str]] = None
|
|
14
|
-
|
|
15
|
-
class Requests(HTTPSession):
|
|
16
|
-
"""
|
|
17
|
-
Centralized HTTP request handler (for better error handling and proxies)
|
|
18
|
-
"""
|
|
19
|
-
error_handling: bool = True
|
|
20
|
-
|
|
21
|
-
def check_response(self, r: Response):
|
|
22
|
-
if r.status_code == 403 or r.status_code == 401:
|
|
23
|
-
raise exceptions.Unauthorized(f"Request content: {r.content!r}")
|
|
24
|
-
if r.status_code == 500:
|
|
25
|
-
raise exceptions.APIError("Internal Scratch server error")
|
|
26
|
-
if r.status_code == 429:
|
|
27
|
-
raise exceptions.Response429("You are being rate-limited (or blocked) by Scratch")
|
|
28
|
-
if r.json() == {"code":"BadRequest","message":""}:
|
|
29
|
-
raise exceptions.BadRequest("Make sure all provided arguments are valid")
|
|
30
|
-
|
|
31
|
-
@override
|
|
32
|
-
def get(self, *args, **kwargs):
|
|
33
|
-
kwargs.setdefault("proxies", proxies)
|
|
34
|
-
try:
|
|
35
|
-
r = super().get(*args, **kwargs)
|
|
36
|
-
except Exception as e:
|
|
37
|
-
raise exceptions.FetchError(e)
|
|
38
|
-
if self.error_handling:
|
|
39
|
-
self.check_response(r)
|
|
40
|
-
return r
|
|
41
|
-
|
|
42
|
-
@override
|
|
43
|
-
def post(self, *args, **kwargs):
|
|
44
|
-
kwargs.setdefault("proxies", proxies)
|
|
45
|
-
try:
|
|
46
|
-
r = super().post(*args, **kwargs)
|
|
47
|
-
except Exception as e:
|
|
48
|
-
raise exceptions.FetchError(e)
|
|
49
|
-
if self.error_handling:
|
|
50
|
-
self.check_response(r)
|
|
51
|
-
return r
|
|
52
|
-
|
|
53
|
-
@override
|
|
54
|
-
def delete(self, *args, **kwargs):
|
|
55
|
-
kwargs.setdefault("proxies", proxies)
|
|
56
|
-
try:
|
|
57
|
-
r = super().delete(*args, **kwargs)
|
|
58
|
-
except Exception as e:
|
|
59
|
-
raise exceptions.FetchError(e)
|
|
60
|
-
if self.error_handling:
|
|
61
|
-
self.check_response(r)
|
|
62
|
-
return r
|
|
63
|
-
|
|
64
|
-
@override
|
|
65
|
-
def put(self, *args, **kwargs):
|
|
66
|
-
kwargs.setdefault("proxies", proxies)
|
|
67
|
-
try:
|
|
68
|
-
r = super().put(*args, **kwargs)
|
|
69
|
-
except Exception as e:
|
|
70
|
-
raise exceptions.FetchError(e)
|
|
71
|
-
if self.error_handling:
|
|
72
|
-
self.check_response(r)
|
|
73
|
-
return r
|
|
74
|
-
|
|
75
|
-
@contextmanager
|
|
76
|
-
def no_error_handling(self) -> Iterator[None]:
|
|
77
|
-
val_before = self.error_handling
|
|
78
|
-
self.error_handling = False
|
|
79
|
-
try:
|
|
80
|
-
yield
|
|
81
|
-
finally:
|
|
82
|
-
self.error_handling = val_before
|
|
83
|
-
|
|
84
|
-
@contextmanager
|
|
85
|
-
def yes_error_handling(self) -> Iterator[None]:
|
|
86
|
-
val_before = self.error_handling
|
|
87
|
-
self.error_handling = True
|
|
88
|
-
try:
|
|
89
|
-
yield
|
|
90
|
-
finally:
|
|
91
|
-
self.error_handling = val_before
|
|
92
|
-
|
|
93
|
-
requests = Requests()
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
scratchattach/__init__.py,sha256=2iiV0SghFUyJJrJYt668cSoDrxSjLCWNtzMdhttnMdA,1532
|
|
2
|
-
scratchattach/cloud/__init__.py,sha256=MN7s4grQcciqUO7TiFjTbU2sC69m6XXlwOHNRbN3FKo,41
|
|
3
|
-
scratchattach/cloud/_base.py,sha256=wQDBIjrEtGSleKnAghluvZGX1L7U0wpUry_3MD8-VkY,18060
|
|
4
|
-
scratchattach/cloud/cloud.py,sha256=f3qGy7rhpyuhOlVfki3l8FdMpyFtcVTBg9ql6l0J-jI,8167
|
|
5
|
-
scratchattach/editor/__init__.py,sha256=gfTQrtyQ-oZJBanp-5eNae72cwm4WoKHzNtZ4rn1dqg,727
|
|
6
|
-
scratchattach/editor/asset.py,sha256=8rQmaZCO4tMjnohutfvVha2t5x_ct2Rxn_Q9Dz6DCYI,7734
|
|
7
|
-
scratchattach/editor/backpack_json.py,sha256=PZGNIFNf0MS3hn8cKZEp9ZeQWdBE-xWq5PEwiN8IzWM,3900
|
|
8
|
-
scratchattach/editor/base.py,sha256=AP_JktO6NLxpsh00twnKHkXmzLmATFabfmw1tmWh98c,5412
|
|
9
|
-
scratchattach/editor/block.py,sha256=B7II4ICOLxdN_D_rn3LH4njRmkZLisxcPzg4WAyNIXA,18786
|
|
10
|
-
scratchattach/editor/blockshape.py,sha256=DN9aKjd22OdvS4ulThJPFGq9uBAA8DNGwnq5Dv2cLNo,25284
|
|
11
|
-
scratchattach/editor/build_defaulting.py,sha256=BkD81lTaR1LTv8HwwkxGtQ040G2Y6mh1R6fCZIkfkYM,1386
|
|
12
|
-
scratchattach/editor/comment.py,sha256=G_eFxeaC_vKbCFpDfw4oZxIReUBoBUaCA5q35O-AW6Y,2403
|
|
13
|
-
scratchattach/editor/commons.py,sha256=RWynsm3LhPMRRbcFd2kT_CRgsvPx6uvKyK3ISYpNoDg,7638
|
|
14
|
-
scratchattach/editor/extension.py,sha256=PFVl5SrS66M4Md98I_dsfeL9BLeWwvyWezmhnTRseIQ,1541
|
|
15
|
-
scratchattach/editor/field.py,sha256=3JUBwj-Mun36Yb7KDeQIWZcuj0e4kjkVAwk_9cKfQPY,3002
|
|
16
|
-
scratchattach/editor/inputs.py,sha256=JGFKry9m8IHNw9zoyM6iViEbPp1VlHlVPI9fYoiTk3M,4391
|
|
17
|
-
scratchattach/editor/meta.py,sha256=aTP5Imz2cFI_RDA4Lufa5UV64lgk3-TP3B4fd7t0zio,3202
|
|
18
|
-
scratchattach/editor/monitor.py,sha256=q-RrycEpYa3rHZ0_9RZobIS8Sfbmpx7_cdUFEaoA7Yk,5788
|
|
19
|
-
scratchattach/editor/mutation.py,sha256=NKLVae0A6J0CKl1Xm7jpdNNoyGFtwcmU-LiBfYpvtlU,10399
|
|
20
|
-
scratchattach/editor/pallete.py,sha256=-CbTRHsgpiVomal1ohW0ouuSP-hCsPTApgRohfxRPfI,2348
|
|
21
|
-
scratchattach/editor/prim.py,sha256=WAXMQ5C5FYIk-gNLwH1cnhsMQJpxH0yl_YH0Tcju9IU,5877
|
|
22
|
-
scratchattach/editor/project.py,sha256=D6gtmfGu0y3_Wzyhq-bjPRzVERFGH_b1DCUVHS9HBtY,9138
|
|
23
|
-
scratchattach/editor/sprite.py,sha256=BG8--SNvj2HYre3pGKEpvnq2Qpl3h_qDseKxIxfWL38,20862
|
|
24
|
-
scratchattach/editor/twconfig.py,sha256=iE6ylAsZzniAfhL09GkZSFn1XacYtCQPzRCUSPIBzDA,3324
|
|
25
|
-
scratchattach/editor/vlb.py,sha256=ZUlrA52ZoK5znGkBUw10UGejpvBlpkH635pTl9sUAmM,4170
|
|
26
|
-
scratchattach/editor/code_translation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
27
|
-
scratchattach/editor/code_translation/parse.py,sha256=FjuHVg_tNzkGcGSNwgH6MzAHcf5YCvaEUSYukyJkwbk,4932
|
|
28
|
-
scratchattach/eventhandlers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
29
|
-
scratchattach/eventhandlers/_base.py,sha256=XGsGzsmUBy5IV3Cl0akEmwBsaSyfVNs0YbNS7lktxrw,3099
|
|
30
|
-
scratchattach/eventhandlers/cloud_events.py,sha256=B0Ce0y8HKP2fOJ3zIUdJg8tHGYoGpc42e4ktuLL_bRw,4108
|
|
31
|
-
scratchattach/eventhandlers/cloud_recorder.py,sha256=o4wcWJFCddpcSsPx5YU2DFFMFoKUknKM2RQ36HLpheQ,800
|
|
32
|
-
scratchattach/eventhandlers/cloud_requests.py,sha256=B_ybgcQ3S861KUNIYv3kOc0siO8BP1Ez57zE1GypTJg,22121
|
|
33
|
-
scratchattach/eventhandlers/cloud_server.py,sha256=rgY0lcXO-E_iAu4oVvbshIfG7eMw0Ekz4_GOLTxCzmM,12302
|
|
34
|
-
scratchattach/eventhandlers/cloud_storage.py,sha256=9dvKPxbPZ_hBhw1HYlTl72YJmBo2OMwrSrMQ7kQwwOE,4660
|
|
35
|
-
scratchattach/eventhandlers/combine.py,sha256=YiWI6WI1BySioXpfYaMv8noBM14EjZa7dtsJsMTshEU,894
|
|
36
|
-
scratchattach/eventhandlers/filterbot.py,sha256=RvGCm-2iaC8SAC4nDMlDv0MPp80CsRr4CFGmnIuEfg8,7462
|
|
37
|
-
scratchattach/eventhandlers/message_events.py,sha256=KvznXAeNGk1WWCxd7PI95yovX-58TyCBNDdXbrYgb8Q,1776
|
|
38
|
-
scratchattach/other/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
39
|
-
scratchattach/other/other_apis.py,sha256=iJXytVgAIARWQ_z7t99Lv2oB6DdwrFBmkFxiaHQRKLI,9095
|
|
40
|
-
scratchattach/other/project_json_capabilities.py,sha256=07t1iMgWm4Qd06jHyQ3vK7tROguvc2RQCo78enrdSlA,22646
|
|
41
|
-
scratchattach/site/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
42
|
-
scratchattach/site/_base.py,sha256=v2U0V-2T5QnDGtUDVPR1e4qg9R7rpNYmO8YKA5fIXfg,2249
|
|
43
|
-
scratchattach/site/activity.py,sha256=4fohsjeVJFaMnKE6_Ew8DcDpFfDzwPeZ7XGp5NnCMW8,13786
|
|
44
|
-
scratchattach/site/alert.py,sha256=TX_Py5L7IKmXEPFGIOFIGvqlT8aSigywsR5nODkvwFY,9277
|
|
45
|
-
scratchattach/site/backpack_asset.py,sha256=8AKvDTvaTvN2ntqE3Ygkl0mvu6-ZR-DbLkCszv2h70o,3298
|
|
46
|
-
scratchattach/site/browser_cookie3_stub.py,sha256=codk0knOP5C0YThaRazvqsqX7X7WnrD2UwFd1nFG7mg,1422
|
|
47
|
-
scratchattach/site/browser_cookies.py,sha256=uQyjJJ4HCu46R4tPWCcTUqDMXSXhQ4KQUobqCSxScSA,1864
|
|
48
|
-
scratchattach/site/classroom.py,sha256=2IDLDljEDLp8Vj5ab94Ti_VVBCv8OPS7qNVr1zFBCME,16884
|
|
49
|
-
scratchattach/site/cloud_activity.py,sha256=x0kbd9Zx1dI4s0lJXWNixQCJeKG1CchXK-9867RiK1A,4207
|
|
50
|
-
scratchattach/site/comment.py,sha256=733CDTV7227MxrhRM0dQYF06aDbHVFK-_rECz--grvA,9135
|
|
51
|
-
scratchattach/site/forum.py,sha256=Y7sh3-wcEjRBfKEHOcusudSudCJFe4MuQFd-EB4FccQ,16417
|
|
52
|
-
scratchattach/site/project.py,sha256=jc6NpzCdC4ATTfCvsAKWlRqj-cTv_B7ZnWHxOn2-qyI,31602
|
|
53
|
-
scratchattach/site/session.py,sha256=SQd6om7jxTrmQ5BjFrwGucYAWaBspn24rVunnepf760,50868
|
|
54
|
-
scratchattach/site/studio.py,sha256=a20fzNq2GGN0SbyC7_d6UqmCqDgofZjdiMucp9KHnYE,22942
|
|
55
|
-
scratchattach/site/user.py,sha256=v6cLI1t465DHTT2xuWd-pXThL1QPDT7GGDcXgOBxaLE,39483
|
|
56
|
-
scratchattach/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
57
|
-
scratchattach/utils/commons.py,sha256=BKH-zz2A5e1d5qEtvZvAmK5fXyVq-FGRRw3Wx-StG5E,8213
|
|
58
|
-
scratchattach/utils/encoder.py,sha256=rqJfQ5gmjf7s8aTiGhR0W1ejYN5tHbAgJlxv7JhGqZQ,2479
|
|
59
|
-
scratchattach/utils/enums.py,sha256=GFLI3F0ZWGqicKV_QJwhyz4MiPDdstAJaUBxYDYT9to,11091
|
|
60
|
-
scratchattach/utils/exceptions.py,sha256=AyM9lU009irxaJvMPB0N0kQaVAJeWHjlmQIS6Njgo78,6528
|
|
61
|
-
scratchattach/utils/requests.py,sha256=vf7OaASbC9_qp4ygOGcU2PjWvf7dwgGbsluZiKGyRMg,2832
|
|
62
|
-
scratchattach-2.1.14.dist-info/licenses/LICENSE,sha256=1PRKLhZU4wYt5M-C9f7q0W3go3u_ojnZMNOdR3g3J-E,1080
|
|
63
|
-
scratchattach-2.1.14.dist-info/METADATA,sha256=gFk55C4GbrDmgPuq7qfJel_qezQF5jtydFt8T_zO_co,5687
|
|
64
|
-
scratchattach-2.1.14.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
65
|
-
scratchattach-2.1.14.dist-info/top_level.txt,sha256=gIwCwW39ohXn0JlnvSzAjV7VtL3qPlRnHiRqBbxsEUE,14
|
|
66
|
-
scratchattach-2.1.14.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|