gravity-schema 0.4.0__tar.gz → 0.4.2__tar.gz
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.
- {gravity_schema-0.4.0 → gravity_schema-0.4.2}/PKG-INFO +1 -1
- {gravity_schema-0.4.0 → gravity_schema-0.4.2}/gravity_schema/catalog.yaml +8 -0
- {gravity_schema-0.4.0 → gravity_schema-0.4.2}/gravity_schema/manifest.py +14 -0
- {gravity_schema-0.4.0 → gravity_schema-0.4.2}/pyproject.toml +1 -1
- {gravity_schema-0.4.0 → gravity_schema-0.4.2}/schema/manifest.schema.json +1 -0
- {gravity_schema-0.4.0 → gravity_schema-0.4.2}/.gitignore +0 -0
- {gravity_schema-0.4.0 → gravity_schema-0.4.2}/LICENSE +0 -0
- {gravity_schema-0.4.0 → gravity_schema-0.4.2}/NOTICE +0 -0
- {gravity_schema-0.4.0 → gravity_schema-0.4.2}/README.md +0 -0
- {gravity_schema-0.4.0 → gravity_schema-0.4.2}/gravity_schema/__init__.py +0 -0
- {gravity_schema-0.4.0 → gravity_schema-0.4.2}/gravity_schema/__main__.py +0 -0
- {gravity_schema-0.4.0 → gravity_schema-0.4.2}/gravity_schema/catalog.py +0 -0
- {gravity_schema-0.4.0 → gravity_schema-0.4.2}/gravity_schema/catalog_imported.yaml +0 -0
- {gravity_schema-0.4.0 → gravity_schema-0.4.2}/gravity_schema/contract.py +0 -0
- {gravity_schema-0.4.0 → gravity_schema-0.4.2}/gravity_schema/cron.py +0 -0
- {gravity_schema-0.4.0 → gravity_schema-0.4.2}/gravity_schema/errors.py +0 -0
- {gravity_schema-0.4.0 → gravity_schema-0.4.2}/gravity_schema/export.py +0 -0
- {gravity_schema-0.4.0 → gravity_schema-0.4.2}/gravity_schema/gen_catalog.py +0 -0
- {gravity_schema-0.4.0 → gravity_schema-0.4.2}/gravity_schema/validation.py +0 -0
- {gravity_schema-0.4.0 → gravity_schema-0.4.2}/tests/conftest.py +0 -0
- {gravity_schema-0.4.0 → gravity_schema-0.4.2}/tests/test_catalog_parity.py +0 -0
- {gravity_schema-0.4.0 → gravity_schema-0.4.2}/tests/test_cron.py +0 -0
- {gravity_schema-0.4.0 → gravity_schema-0.4.2}/tests/test_errors.py +0 -0
- {gravity_schema-0.4.0 → gravity_schema-0.4.2}/tests/test_json_schema.py +0 -0
- {gravity_schema-0.4.0 → gravity_schema-0.4.2}/tests/test_kind_outputs.py +0 -0
- {gravity_schema-0.4.0 → gravity_schema-0.4.2}/tests/test_manifest.py +0 -0
- {gravity_schema-0.4.0 → gravity_schema-0.4.2}/tests/test_slots.py +0 -0
- {gravity_schema-0.4.0 → gravity_schema-0.4.2}/tests/test_validation.py +0 -0
|
@@ -27,6 +27,14 @@
|
|
|
27
27
|
guarantee: certified
|
|
28
28
|
side_effect: read
|
|
29
29
|
|
|
30
|
+
- name: supadata.get_transcript
|
|
31
|
+
slug: null
|
|
32
|
+
description: fetch the transcript of a YouTube video with the caller's own Supadata API key (api_key argument)
|
|
33
|
+
scopes: []
|
|
34
|
+
breadth: niche
|
|
35
|
+
guarantee: certified
|
|
36
|
+
side_effect: read
|
|
37
|
+
|
|
30
38
|
- name: gmail.read
|
|
31
39
|
slug: GMAIL_FETCH_EMAILS
|
|
32
40
|
description: read the connected Gmail inbox
|
|
@@ -26,6 +26,9 @@ class InputType(str, Enum):
|
|
|
26
26
|
EMAIL = "email"
|
|
27
27
|
URL = "url"
|
|
28
28
|
DATE = "date"
|
|
29
|
+
# An API key or password. The platform seals it with KMS when it is submitted, keeps it
|
|
30
|
+
# out of every API response and log, and opens it only to hand it to the running agent.
|
|
31
|
+
SECRET = "secret"
|
|
29
32
|
# The agent gets a short-lived URL it fetches through the gateway.
|
|
30
33
|
FILE = "file"
|
|
31
34
|
|
|
@@ -40,6 +43,7 @@ _PYTHON_TYPES: dict[InputType, tuple[type, ...]] = {
|
|
|
40
43
|
InputType.EMAIL: (str,),
|
|
41
44
|
InputType.URL: (str,),
|
|
42
45
|
InputType.DATE: (str,),
|
|
46
|
+
InputType.SECRET: (str,),
|
|
43
47
|
InputType.FILE: (), # never has a default
|
|
44
48
|
}
|
|
45
49
|
|
|
@@ -254,6 +258,16 @@ class InputSpec(BaseModel):
|
|
|
254
258
|
},
|
|
255
259
|
)
|
|
256
260
|
|
|
261
|
+
if self.type is InputType.SECRET:
|
|
262
|
+
raise PydanticCustomError(
|
|
263
|
+
ErrorCode.INVALID_INPUT.value,
|
|
264
|
+
"Secret input '{value}' cannot have a default.",
|
|
265
|
+
{
|
|
266
|
+
"value": self.name,
|
|
267
|
+
"remediation": "Remove the default; the consumer enters the secret for each run or schedule.",
|
|
268
|
+
},
|
|
269
|
+
)
|
|
270
|
+
|
|
257
271
|
expected = _PYTHON_TYPES[self.type]
|
|
258
272
|
# bool is an int subclass, so NUMBER needs this guard.
|
|
259
273
|
is_bool = isinstance(self.default, bool)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|