@seamapi/nextlove-sdk-generator 1.5.3 → 1.5.4
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.
- package/lib/endpoints-returning-deprecated-action-attempt.d.ts +2 -0
- package/lib/endpoints-returning-deprecated-action-attempt.js +10 -0
- package/lib/endpoints-returning-deprecated-action-attempt.js.map +1 -0
- package/lib/generate-php-sdk/generate-php-sdk.js +4 -18
- package/lib/generate-php-sdk/generate-php-sdk.js.map +1 -1
- package/lib/generate-php-sdk/utils/php-client.d.ts +3 -3
- package/lib/generate-php-sdk/utils/php-client.js.map +1 -1
- package/lib/generate-python-sdk/class-file.d.ts +15 -2
- package/lib/generate-python-sdk/class-file.js +140 -21
- package/lib/generate-python-sdk/class-file.js.map +1 -1
- package/lib/generate-python-sdk/generate-python-sdk.js +65 -17
- package/lib/generate-python-sdk/generate-python-sdk.js.map +1 -1
- package/lib/generate-python-sdk/map-python-type.d.ts +1 -1
- package/lib/generate-python-sdk/map-python-type.js +6 -2
- package/lib/generate-python-sdk/map-python-type.js.map +1 -1
- package/lib/generate-python-sdk/templates/.gitignore.template.d.ts +2 -0
- package/lib/generate-python-sdk/templates/.gitignore.template.js +12 -0
- package/lib/generate-python-sdk/templates/.gitignore.template.js.map +1 -0
- package/lib/generate-python-sdk/templates/__init__.py.template.d.ts +2 -0
- package/lib/generate-python-sdk/templates/__init__.py.template.js +7 -0
- package/lib/generate-python-sdk/templates/__init__.py.template.js.map +1 -0
- package/lib/generate-python-sdk/templates/conftest.py.template.js +75 -6
- package/lib/generate-python-sdk/templates/conftest.py.template.js.map +1 -1
- package/lib/generate-python-sdk/templates/prebuild.py.template.d.ts +2 -0
- package/lib/generate-python-sdk/templates/prebuild.py.template.js +13 -0
- package/lib/generate-python-sdk/templates/prebuild.py.template.js.map +1 -0
- package/lib/generate-python-sdk/templates/pyproject.toml.template.js +6 -2
- package/lib/generate-python-sdk/templates/pyproject.toml.template.js.map +1 -1
- package/lib/generate-python-sdk/templates/seam.py.template.js +90 -14
- package/lib/generate-python-sdk/templates/seam.py.template.js.map +1 -1
- package/lib/generate-python-sdk/templates/snippets/abstract-seam.template.js +12 -5
- package/lib/generate-python-sdk/templates/snippets/abstract-seam.template.js.map +1 -1
- package/lib/generate-python-sdk/templates/snippets/resource-dataclass.template.js +6 -1
- package/lib/generate-python-sdk/templates/snippets/resource-dataclass.template.js.map +1 -1
- package/lib/generate-python-sdk/templates/snippets/seam-api-exception-class.template.d.ts +2 -0
- package/lib/generate-python-sdk/templates/snippets/seam-api-exception-class.template.js +17 -0
- package/lib/generate-python-sdk/templates/snippets/seam-api-exception-class.template.js.map +1 -0
- package/lib/generate-python-sdk/templates/utils/get_sentry_dsn.py.template.d.ts +2 -0
- package/lib/generate-python-sdk/templates/utils/get_sentry_dsn.py.template.js +6 -0
- package/lib/generate-python-sdk/templates/utils/get_sentry_dsn.py.template.js.map +1 -0
- package/lib/generate-python-sdk/templates/utils/report_error.py.template.d.ts +2 -0
- package/lib/generate-python-sdk/templates/utils/report_error.py.template.js +17 -0
- package/lib/generate-python-sdk/templates/utils/report_error.py.template.js.map +1 -0
- package/lib/openapi/get-parameter-and-response-schema.js +9 -9
- package/lib/openapi/get-parameter-and-response-schema.js.map +1 -1
- package/lib/openapi/map-parent-to-children-resource.d.ts +3 -0
- package/lib/openapi/map-parent-to-children-resource.js +17 -0
- package/lib/openapi/map-parent-to-children-resource.js.map +1 -0
- package/package.json +1 -1
- package/src/lib/endpoints-returning-deprecated-action-attempt.ts +10 -0
- package/src/lib/generate-php-sdk/generate-php-sdk.ts +6 -30
- package/src/lib/generate-php-sdk/utils/php-client.ts +2 -2
- package/src/lib/generate-python-sdk/class-file.ts +232 -49
- package/src/lib/generate-python-sdk/generate-python-sdk.ts +96 -23
- package/src/lib/generate-python-sdk/map-python-type.ts +9 -3
- package/src/lib/generate-python-sdk/templates/.gitignore.template.ts +11 -0
- package/src/lib/generate-python-sdk/templates/__init__.py.template.ts +6 -0
- package/src/lib/generate-python-sdk/templates/conftest.py.template.ts +75 -6
- package/src/lib/generate-python-sdk/templates/prebuild.py.template.ts +12 -0
- package/src/lib/generate-python-sdk/templates/pyproject.toml.template.ts +6 -2
- package/src/lib/generate-python-sdk/templates/seam.py.template.ts +90 -14
- package/src/lib/generate-python-sdk/templates/snippets/abstract-seam.template.ts +12 -5
- package/src/lib/generate-python-sdk/templates/snippets/resource-dataclass.template.ts +9 -1
- package/src/lib/generate-python-sdk/templates/snippets/seam-api-exception-class.template.ts +16 -0
- package/src/lib/generate-python-sdk/templates/utils/get_sentry_dsn.py.template.ts +5 -0
- package/src/lib/generate-python-sdk/templates/utils/report_error.py.template.ts +16 -0
- package/src/lib/openapi/get-parameter-and-response-schema.ts +8 -11
- package/src/lib/openapi/map-parent-to-children-resource.ts +28 -0
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export const endpoints_returning_deprecated_action_attempt = [
|
|
2
|
+
"/access_codes/delete",
|
|
3
|
+
"/access_codes/unmanaged/delete",
|
|
4
|
+
"/access_codes/update",
|
|
5
|
+
"/noise_sensors/noise_thresholds/delete",
|
|
6
|
+
"/noise_sensors/noise_thresholds/update",
|
|
7
|
+
"/thermostats/climate_setting_schedules/update",
|
|
8
|
+
];
|
|
9
|
+
export default endpoints_returning_deprecated_action_attempt;
|
|
10
|
+
//# sourceMappingURL=endpoints-returning-deprecated-action-attempt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"endpoints-returning-deprecated-action-attempt.js","sourceRoot":"","sources":["../src/lib/endpoints-returning-deprecated-action-attempt.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,6CAA6C,GAAG;IAC3D,sBAAsB;IACtB,gCAAgC;IAChC,sBAAsB;IACtB,wCAAwC;IACxC,wCAAwC;IACxC,+CAA+C;CAChD,CAAA;AAED,eAAe,6CAA6C,CAAA"}
|
|
@@ -13,6 +13,7 @@ import gitignoreTemplate from "./templates/gitignore.template.js";
|
|
|
13
13
|
import envExampleTemplate from "./templates/env.example.template.js";
|
|
14
14
|
import testFixtureTemplate from "./templates/test-fixture.template.js";
|
|
15
15
|
import smokeTestTemplate from "./templates/smoke-test.template.js";
|
|
16
|
+
import mapParentToChildrenResources from "../../lib/openapi/map-parent-to-children-resource.js";
|
|
16
17
|
export const generatePhpSDK = async () => {
|
|
17
18
|
const openapi = await axios
|
|
18
19
|
.get("https://connect.getseam.com/openapi.json")
|
|
@@ -51,29 +52,14 @@ export const generatePhpSDK = async () => {
|
|
|
51
52
|
});
|
|
52
53
|
}
|
|
53
54
|
}
|
|
54
|
-
const
|
|
55
|
-
if (!route.post?.["x-fern-sdk-group-name"])
|
|
56
|
-
return acc;
|
|
57
|
-
const [parent_resource_name, child_resource_name] = route.post["x-fern-sdk-group-name"];
|
|
58
|
-
// Making TS happy
|
|
59
|
-
if (!parent_resource_name)
|
|
60
|
-
return acc;
|
|
61
|
-
if (!acc[parent_resource_name]) {
|
|
62
|
-
acc[parent_resource_name] = [];
|
|
63
|
-
}
|
|
64
|
-
if (child_resource_name &&
|
|
65
|
-
!acc[parent_resource_name].includes(child_resource_name)) {
|
|
66
|
-
acc[parent_resource_name].push(child_resource_name);
|
|
67
|
-
}
|
|
68
|
-
return acc;
|
|
69
|
-
}, {});
|
|
55
|
+
const parent_to_children_resources_map = mapParentToChildrenResources(routes);
|
|
70
56
|
const clients = {};
|
|
71
57
|
const processClient = (resource_name) => {
|
|
72
|
-
const child_client_identifiers = (
|
|
58
|
+
const child_client_identifiers = (parent_to_children_resources_map[resource_name] ?? []).map((child_resource) => ({
|
|
73
59
|
client_name: pascalCase(`${resource_name} ${child_resource}`),
|
|
74
60
|
namespace: child_resource,
|
|
75
61
|
}));
|
|
76
|
-
const is_parent_client = Object.keys(
|
|
62
|
+
const is_parent_client = Object.keys(parent_to_children_resources_map).includes(resource_name);
|
|
77
63
|
const pascal_resource_name = pascalCase(resource_name);
|
|
78
64
|
clients[pascal_resource_name] = new PhpClient(pascal_resource_name, resource_name, is_parent_client, child_client_identifiers);
|
|
79
65
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-php-sdk.js","sourceRoot":"","sources":["../../src/lib/generate-php-sdk/generate-php-sdk.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EAAE,6BAA6B,EAAE,MAAM,cAAc,CAAA;AAC5D,OAAO,EAAE,2BAA2B,EAAE,MAAM,2CAA2C,CAAA;AACvF,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AACpD,OAAO,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"generate-php-sdk.js","sourceRoot":"","sources":["../../src/lib/generate-php-sdk/generate-php-sdk.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,7 +14,7 @@ export type PhpClientMethod = {
|
|
|
14
14
|
};
|
|
15
15
|
type ClientName = string;
|
|
16
16
|
type Namespace = string;
|
|
17
|
-
export type
|
|
17
|
+
export type PhpClientIdentifier = {
|
|
18
18
|
client_name: ClientName;
|
|
19
19
|
namespace: Namespace;
|
|
20
20
|
};
|
|
@@ -22,9 +22,9 @@ export declare class PhpClient {
|
|
|
22
22
|
client_name: ClientName;
|
|
23
23
|
namespace: Namespace;
|
|
24
24
|
is_parent_client: boolean;
|
|
25
|
-
child_client_identifiers:
|
|
25
|
+
child_client_identifiers: PhpClientIdentifier[];
|
|
26
26
|
methods: PhpClientMethod[];
|
|
27
|
-
constructor(client_name: ClientName, namespace: Namespace, is_parent_client: boolean, child_client_identifiers:
|
|
27
|
+
constructor(client_name: ClientName, namespace: Namespace, is_parent_client: boolean, child_client_identifiers: PhpClientIdentifier[]);
|
|
28
28
|
addMethod(method: PhpClientMethod): void;
|
|
29
29
|
serialize(): string;
|
|
30
30
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"php-client.js","sourceRoot":"","sources":["../../../src/lib/generate-php-sdk/utils/php-client.ts"],"names":[],"mappings":"AAuBA,MAAM,OAAO,SAAS;IAGpB,YACS,WAAuB,EACvB,SAAoB,EACpB,gBAAyB,EACzB,
|
|
1
|
+
{"version":3,"file":"php-client.js","sourceRoot":"","sources":["../../../src/lib/generate-php-sdk/utils/php-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,20 +1,33 @@
|
|
|
1
|
-
export type
|
|
1
|
+
export type ClassFileMethodBase = {
|
|
2
2
|
method_name: string;
|
|
3
3
|
path: string;
|
|
4
4
|
parameters: Array<{
|
|
5
5
|
name: string;
|
|
6
6
|
type: string;
|
|
7
7
|
position?: number | undefined;
|
|
8
|
+
required?: boolean | undefined;
|
|
9
|
+
default_value?: string;
|
|
8
10
|
}>;
|
|
11
|
+
};
|
|
12
|
+
export type ClassFileMethod = ClassFileMethodBase & ({
|
|
9
13
|
return_path: string[];
|
|
10
14
|
return_resource: string;
|
|
15
|
+
} | {
|
|
16
|
+
return_path: string[];
|
|
17
|
+
return_resource: "void";
|
|
18
|
+
});
|
|
19
|
+
type ChildClassIdentifier = {
|
|
20
|
+
class_name: string;
|
|
21
|
+
namespace: string;
|
|
11
22
|
};
|
|
12
23
|
export declare class ClassFile {
|
|
13
24
|
name: string;
|
|
14
25
|
namespace: string | undefined;
|
|
15
26
|
methods: ClassFileMethod[];
|
|
16
|
-
|
|
27
|
+
child_class_identifiers: ChildClassIdentifier[];
|
|
28
|
+
constructor(name: string, namespace: string | undefined, child_class_identifiers: ChildClassIdentifier[]);
|
|
17
29
|
addMethod(method: ClassFileMethod): void;
|
|
18
30
|
serializeToAbstractClassWithoutImports(): string;
|
|
19
31
|
serializeToClass(): string;
|
|
20
32
|
}
|
|
33
|
+
export {};
|
|
@@ -1,25 +1,58 @@
|
|
|
1
1
|
export class ClassFile {
|
|
2
|
-
constructor(name, namespace) {
|
|
2
|
+
constructor(name, namespace, child_class_identifiers) {
|
|
3
3
|
this.name = name;
|
|
4
4
|
this.namespace = namespace;
|
|
5
5
|
this.methods = [];
|
|
6
|
+
this.child_class_identifiers = child_class_identifiers;
|
|
6
7
|
}
|
|
7
8
|
addMethod(method) {
|
|
8
9
|
this.methods.push(method);
|
|
9
10
|
}
|
|
10
11
|
serializeToAbstractClassWithoutImports() {
|
|
12
|
+
const has_child_classes = this.child_class_identifiers.length > 0;
|
|
11
13
|
return [
|
|
12
14
|
`class Abstract${this.name}(abc.ABC):`,
|
|
13
15
|
this.methods.length === 0 ? ` pass` : "",
|
|
14
|
-
|
|
16
|
+
`${has_child_classes
|
|
17
|
+
? this.child_class_identifiers
|
|
18
|
+
.map((i) => [
|
|
19
|
+
` @property`,
|
|
20
|
+
` @abc.abstractmethod`,
|
|
21
|
+
` def ${i.namespace}(self) -> Abstract${i.class_name}:`,
|
|
22
|
+
` raise NotImplementedError()`,
|
|
23
|
+
].join("\n"))
|
|
24
|
+
.join("\n\n")
|
|
25
|
+
: ""}`,
|
|
26
|
+
...this.methods
|
|
27
|
+
.concat(this.name === "ActionAttempts"
|
|
28
|
+
? [
|
|
29
|
+
{
|
|
30
|
+
method_name: "poll_until_ready",
|
|
31
|
+
parameters: [
|
|
32
|
+
{ name: "action_attempt_id", type: "str", required: true },
|
|
33
|
+
{ name: "timeout", type: "float", default_value: "5.0" },
|
|
34
|
+
{
|
|
35
|
+
name: "polling_interval",
|
|
36
|
+
type: "float",
|
|
37
|
+
default_value: "0.5",
|
|
38
|
+
},
|
|
39
|
+
],
|
|
40
|
+
return_path: [],
|
|
41
|
+
return_resource: "ActionAttempt",
|
|
42
|
+
path: "",
|
|
43
|
+
},
|
|
44
|
+
]
|
|
45
|
+
: [])
|
|
46
|
+
.map(({ method_name, parameters }) => [
|
|
15
47
|
"",
|
|
16
48
|
"",
|
|
17
49
|
`@abc.abstractmethod`,
|
|
18
50
|
`def ${method_name}(self, ${parameters
|
|
19
|
-
.sort((a, b) => (a.position ??
|
|
20
|
-
.
|
|
51
|
+
.sort((a, b) => (a.position ?? a.required ? 1000 : 9999) -
|
|
52
|
+
(b.position ?? b.required ? 1000 : 9999))
|
|
53
|
+
.map(({ name, type, required, default_value }) => required
|
|
21
54
|
? `${name}: ${type}`
|
|
22
|
-
: `${name}: Optional[${type}] = None`)
|
|
55
|
+
: `${name}: Optional[${type}] = ${default_value ?? "None"}`)
|
|
23
56
|
.join(", ")}):`,
|
|
24
57
|
` raise NotImplementedError()`,
|
|
25
58
|
]
|
|
@@ -28,47 +61,133 @@ export class ClassFile {
|
|
|
28
61
|
].join("\n");
|
|
29
62
|
}
|
|
30
63
|
serializeToClass() {
|
|
64
|
+
const validClasses = [
|
|
65
|
+
`Abstract${this.name}`,
|
|
66
|
+
`AbstractSeam as Seam`,
|
|
67
|
+
...Array.from(new Set(this.methods.map((m) => m.return_resource.replace(/^List\[/, "").replace(/\]$/, "")))),
|
|
68
|
+
].filter((classInstance) => classInstance !== "");
|
|
69
|
+
const has_child_classes = this.child_class_identifiers.length > 0;
|
|
31
70
|
return [
|
|
32
|
-
`from seamapi.types import (${
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
71
|
+
`from seamapi.types import (${validClasses
|
|
72
|
+
.filter((cls) => cls !== "None")
|
|
73
|
+
.join(",")})`,
|
|
74
|
+
`from typing import Optional, Any, List, Dict, Union`,
|
|
75
|
+
`${has_child_classes
|
|
76
|
+
? this.child_class_identifiers
|
|
77
|
+
.map((i) => `from seamapi.${this.namespace}_${i.namespace} import ${i.class_name}`)
|
|
78
|
+
.join("\n")
|
|
79
|
+
: ""}`,
|
|
80
|
+
`${this.name === "ActionAttempts" ? "import time\n" : ""}`,
|
|
39
81
|
`class ${this.name}(Abstract${this.name}):`,
|
|
40
82
|
// TODO DOCSTRING
|
|
41
83
|
` seam: Seam`,
|
|
42
84
|
"",
|
|
43
85
|
` def __init__(self, seam: Seam):`,
|
|
44
86
|
` self.seam = seam`,
|
|
87
|
+
`${has_child_classes
|
|
88
|
+
? this.child_class_identifiers
|
|
89
|
+
.map((i) => ` self._${i.namespace} = ${i.class_name}(seam=seam)`)
|
|
90
|
+
.join("\n")
|
|
91
|
+
: ""}`,
|
|
45
92
|
"",
|
|
93
|
+
`${has_child_classes
|
|
94
|
+
? this.child_class_identifiers
|
|
95
|
+
.map((i) => [
|
|
96
|
+
` @property`,
|
|
97
|
+
` def ${i.namespace}(self) -> ${i.class_name}:`,
|
|
98
|
+
` return self._${i.namespace}`,
|
|
99
|
+
].join("\n"))
|
|
100
|
+
.join("\n\n")
|
|
101
|
+
: ""}`,
|
|
46
102
|
...this.methods.map(({ method_name, path, return_resource, return_path, parameters }) => {
|
|
47
|
-
|
|
48
|
-
const
|
|
103
|
+
let return_resource_item = return_resource;
|
|
104
|
+
const is_return_resource_list = return_resource_item.startsWith("List[");
|
|
105
|
+
if (is_return_resource_list) {
|
|
106
|
+
return_resource_item = return_resource.slice(5, -1);
|
|
107
|
+
}
|
|
108
|
+
const does_method_use_action_attempt = return_resource === "ActionAttempt" && !is_return_resource_list;
|
|
109
|
+
const is_none_return_type = return_resource_item === "None";
|
|
49
110
|
return [
|
|
50
111
|
"",
|
|
51
112
|
"",
|
|
52
113
|
`def ${method_name}(self, ${parameters
|
|
53
|
-
.sort((a, b) => (a.position ??
|
|
54
|
-
.
|
|
114
|
+
.sort((a, b) => (a.position ?? a.required ? 1000 : 9999) -
|
|
115
|
+
(b.position ?? b.required ? 1000 : 9999))
|
|
116
|
+
.map(({ name, type, required }) => required
|
|
55
117
|
? `${name}: ${type}`
|
|
56
118
|
: `${name}: Optional[${type}] = None`)
|
|
57
|
-
.
|
|
119
|
+
.concat(does_method_use_action_attempt
|
|
120
|
+
? [
|
|
121
|
+
"wait_for_action_attempt: Union[bool, Dict[str, float]] = True",
|
|
122
|
+
]
|
|
123
|
+
: [])
|
|
124
|
+
.join(", ")}) -> ${return_resource}:`,
|
|
58
125
|
` json_payload = {}`,
|
|
126
|
+
"",
|
|
59
127
|
...parameters.map(({ name }) => ` if ${name} is not None:\n json_payload["${name}"] = ${name}`),
|
|
60
|
-
|
|
128
|
+
"",
|
|
129
|
+
` ${is_none_return_type ? "" : "res = "}self.seam.make_request(`,
|
|
61
130
|
` "POST",`,
|
|
62
131
|
` "${path}",`,
|
|
63
132
|
` json=json_payload`,
|
|
64
133
|
` )`,
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
134
|
+
"",
|
|
135
|
+
does_method_use_action_attempt
|
|
136
|
+
? [
|
|
137
|
+
" if isinstance(wait_for_action_attempt, dict):",
|
|
138
|
+
` updated_action_attempt = self.seam.action_attempts.poll_until_ready(`,
|
|
139
|
+
" res['action_attempt']['action_attempt_id'],",
|
|
140
|
+
" timeout=wait_for_action_attempt.get('timeout', None),",
|
|
141
|
+
" polling_interval=wait_for_action_attempt.get('polling_interval', None),",
|
|
142
|
+
" )",
|
|
143
|
+
" elif wait_for_action_attempt is True:",
|
|
144
|
+
` updated_action_attempt = self.seam.action_attempts.poll_until_ready(`,
|
|
145
|
+
" res['action_attempt']['action_attempt_id']",
|
|
146
|
+
" )",
|
|
147
|
+
" else:",
|
|
148
|
+
` return ${return_resource}.from_dict(res["${return_path.join('"]["')}"])`,
|
|
149
|
+
"",
|
|
150
|
+
" return updated_action_attempt",
|
|
151
|
+
].join("\n")
|
|
152
|
+
: "",
|
|
153
|
+
"",
|
|
154
|
+
!does_method_use_action_attempt
|
|
155
|
+
? is_none_return_type
|
|
156
|
+
? ` return None`
|
|
157
|
+
: is_return_resource_list
|
|
158
|
+
? ` return [${return_resource_item}.from_dict(item) for item in res["${return_path.join('"]["')}"]]`
|
|
159
|
+
: ` return ${return_resource}.from_dict(res["${return_path.join('"]["')}"])`
|
|
160
|
+
: "",
|
|
68
161
|
]
|
|
69
162
|
.map((s) => ` ${s}`)
|
|
70
163
|
.join("\n");
|
|
71
164
|
}),
|
|
165
|
+
this.name === "ActionAttempts"
|
|
166
|
+
? [
|
|
167
|
+
"",
|
|
168
|
+
" def poll_until_ready(self, action_attempt_id: str, timeout: Optional[float] = 5.0, polling_interval: Optional[float] = 0.5) -> ActionAttempt:",
|
|
169
|
+
" seam = self.seam",
|
|
170
|
+
" time_waiting = 0.0",
|
|
171
|
+
"",
|
|
172
|
+
" action_attempt = seam.action_attempts.get(action_attempt_id, wait_for_action_attempt=False)",
|
|
173
|
+
"",
|
|
174
|
+
" while action_attempt.status == 'pending':",
|
|
175
|
+
" time.sleep(polling_interval)",
|
|
176
|
+
" time_waiting += polling_interval",
|
|
177
|
+
"",
|
|
178
|
+
" if time_waiting > timeout:",
|
|
179
|
+
" raise Exception('Timed out waiting for action attempt to be ready')",
|
|
180
|
+
"",
|
|
181
|
+
" action_attempt = seam.action_attempts.get(",
|
|
182
|
+
" action_attempt.action_attempt_id, wait_for_action_attempt=False",
|
|
183
|
+
" )",
|
|
184
|
+
"",
|
|
185
|
+
" if action_attempt.status == 'failed':",
|
|
186
|
+
" raise Exception(f'Action Attempt failed: {action_attempt.error.message}')",
|
|
187
|
+
"",
|
|
188
|
+
" return action_attempt",
|
|
189
|
+
].join("\n")
|
|
190
|
+
: "",
|
|
72
191
|
].join("\n");
|
|
73
192
|
}
|
|
74
193
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"class-file.js","sourceRoot":"","sources":["../../src/lib/generate-python-sdk/class-file.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"class-file.js","sourceRoot":"","sources":["../../src/lib/generate-python-sdk/class-file.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,7 +13,16 @@ import abstractRoutesTemplate from "./templates/snippets/abstract-routes.templat
|
|
|
13
13
|
import abstractSeamTemplate from "./templates/snippets/abstract-seam.template.js";
|
|
14
14
|
import resourceDataclassTemplate from "./templates/snippets/resource-dataclass.template.js";
|
|
15
15
|
import readmeMdTemplate from "./templates/readme.md.template.js";
|
|
16
|
+
import initTemplate from "./templates/__init__.py.template.js";
|
|
17
|
+
import gitignoreTemplate from "./templates/.gitignore.template.js";
|
|
18
|
+
import prebuildTemplate from "./templates/prebuild.py.template.js";
|
|
19
|
+
import reportErrorTemplate from "./templates/utils/report_error.py.template.js";
|
|
20
|
+
import getSentryDsnTemplate from "./templates/utils/get_sentry_dsn.py.template.js";
|
|
21
|
+
import SeamApiExceptionClassTemplate from "./templates/snippets/seam-api-exception-class.template.js";
|
|
16
22
|
import { getParameterAndResponseSchema } from "../../lib/openapi/get-parameter-and-response-schema.js";
|
|
23
|
+
import mapParentToChildrenResources from "../../lib/openapi/map-parent-to-children-resource.js";
|
|
24
|
+
import { deepFlattenOneOfAndAllOfSchema } from "../../lib/generate-php-sdk/utils/deep-flatten-one-of-and-all-of-schema.js";
|
|
25
|
+
import endpoints_returning_deprecated_action_attempt from "../../lib/endpoints-returning-deprecated-action-attempt.js";
|
|
17
26
|
export const generatePythonSDK = async () => {
|
|
18
27
|
const openapi = await axios
|
|
19
28
|
.get("https://connect.getseam.com/openapi.json")
|
|
@@ -23,21 +32,38 @@ export const generatePythonSDK = async () => {
|
|
|
23
32
|
...v,
|
|
24
33
|
}));
|
|
25
34
|
const fs = {};
|
|
26
|
-
fs["README.md"] = readmeMdTemplate();
|
|
27
35
|
const class_map = {};
|
|
28
36
|
const namespaces = [];
|
|
37
|
+
const parent_to_children_resources_map = mapParentToChildrenResources(routes);
|
|
38
|
+
const processClass = (resource_name) => {
|
|
39
|
+
const child_class_identifiers = (parent_to_children_resources_map[resource_name] ?? []).map((child_resource) => ({
|
|
40
|
+
class_name: pascalCase(`${resource_name} ${child_resource}`),
|
|
41
|
+
namespace: child_resource,
|
|
42
|
+
}));
|
|
43
|
+
const pascal_resource_name = pascalCase(resource_name);
|
|
44
|
+
class_map[pascal_resource_name] = new ClassFile(pascal_resource_name, resource_name, child_class_identifiers);
|
|
45
|
+
};
|
|
29
46
|
for (const route of routes) {
|
|
30
47
|
if (!route.post)
|
|
31
48
|
continue;
|
|
32
49
|
if (!route.post["x-fern-sdk-group-name"])
|
|
33
50
|
continue;
|
|
34
51
|
const group_names = [...route.post["x-fern-sdk-group-name"]];
|
|
52
|
+
const [base_resource] = group_names;
|
|
35
53
|
const namespace = group_names.join("_");
|
|
36
54
|
group_names.reverse();
|
|
37
|
-
const class_name = pascalCase(
|
|
55
|
+
const class_name = pascalCase(namespace);
|
|
38
56
|
if (!class_map[class_name]) {
|
|
39
57
|
namespaces.push(route.post["x-fern-sdk-group-name"]);
|
|
40
|
-
|
|
58
|
+
processClass(namespace);
|
|
59
|
+
}
|
|
60
|
+
/*
|
|
61
|
+
special case when we don't have routes for a base resource
|
|
62
|
+
and thus a respective x-fern-sdk-group-name for ex. /noise_sensors
|
|
63
|
+
*/
|
|
64
|
+
if (base_resource && !class_map[pascalCase(base_resource)]) {
|
|
65
|
+
namespaces.push([base_resource]);
|
|
66
|
+
processClass(base_resource);
|
|
41
67
|
}
|
|
42
68
|
const cls = class_map[class_name];
|
|
43
69
|
if (!cls) {
|
|
@@ -45,10 +71,6 @@ export const generatePythonSDK = async () => {
|
|
|
45
71
|
continue;
|
|
46
72
|
}
|
|
47
73
|
const { parameter_schema, response_obj_type, response_arr_type } = getParameterAndResponseSchema(route);
|
|
48
|
-
if (!response_obj_type && !response_arr_type) {
|
|
49
|
-
console.warn(`No response object/array ref for "${route.path}", skipping`);
|
|
50
|
-
continue;
|
|
51
|
-
}
|
|
52
74
|
if (!parameter_schema) {
|
|
53
75
|
console.warn(`No parameter schema for "${route.path}", skipping`);
|
|
54
76
|
continue;
|
|
@@ -57,19 +79,25 @@ export const generatePythonSDK = async () => {
|
|
|
57
79
|
method_name: route.post["x-fern-sdk-method-name"],
|
|
58
80
|
path: route.path,
|
|
59
81
|
parameters: Object.entries(parameter_schema.properties)
|
|
60
|
-
.filter(([_, param_val]) =>
|
|
82
|
+
.filter(([_, param_val]) => "type" in param_val ||
|
|
83
|
+
("oneOf" in param_val && "type" in (param_val.oneOf[0] ?? {})))
|
|
61
84
|
.map(([param_name, param_val]) => ({
|
|
62
85
|
name: param_name,
|
|
63
|
-
type: mapPythonType(param_val
|
|
86
|
+
type: mapPythonType("type" in param_val
|
|
87
|
+
? param_val
|
|
88
|
+
: deepFlattenOneOfAndAllOfSchema(param_val)),
|
|
64
89
|
position: route.post["x-fern-sdk-method-name"] === "get" &&
|
|
65
90
|
param_name === `${route.post["x-fern-sdk-return-value"]}_id`
|
|
66
91
|
? 0
|
|
67
92
|
: undefined,
|
|
93
|
+
required: parameter_schema.required?.includes(param_name),
|
|
68
94
|
})),
|
|
69
95
|
return_path: [route.post["x-fern-sdk-return-value"]],
|
|
70
|
-
return_resource:
|
|
71
|
-
|
|
72
|
-
|
|
96
|
+
return_resource: determineReturnResource({
|
|
97
|
+
route_path: route.path,
|
|
98
|
+
response_obj_type,
|
|
99
|
+
response_arr_type,
|
|
100
|
+
}),
|
|
73
101
|
});
|
|
74
102
|
}
|
|
75
103
|
const top_level_namespaces = namespaces
|
|
@@ -93,25 +121,45 @@ export const generatePythonSDK = async () => {
|
|
|
93
121
|
})))),
|
|
94
122
|
"",
|
|
95
123
|
"",
|
|
96
|
-
|
|
97
|
-
` pass`,
|
|
124
|
+
SeamApiExceptionClassTemplate(),
|
|
98
125
|
"",
|
|
99
126
|
"",
|
|
100
|
-
...Object.entries(class_map)
|
|
127
|
+
...Object.entries(class_map)
|
|
128
|
+
.sort(
|
|
129
|
+
// define classes without children first for parent-child referencing
|
|
130
|
+
([, a], [, b]) => a.child_class_identifiers.length - b.child_class_identifiers.length)
|
|
131
|
+
.map(([_, cls]) => cls.serializeToAbstractClassWithoutImports()),
|
|
101
132
|
"",
|
|
102
133
|
"",
|
|
103
134
|
abstractRoutesTemplate(top_level_namespaces),
|
|
104
135
|
"",
|
|
105
136
|
abstractSeamTemplate(),
|
|
106
137
|
].join("\n");
|
|
107
|
-
fs["
|
|
138
|
+
fs["README.md"] = readmeMdTemplate();
|
|
139
|
+
fs["pyproject.toml"] = pyprojectTomlTemplate();
|
|
140
|
+
fs[".gitignore"] = gitignoreTemplate();
|
|
141
|
+
fs["scripts/prebuild.py"] = prebuildTemplate();
|
|
142
|
+
fs["seamapi/__init__.py"] = initTemplate();
|
|
108
143
|
fs["seamapi/routes.py"] = routesPyTemplate(top_level_namespaces);
|
|
109
144
|
fs["seamapi/seam.py"] = seamPyTemplate();
|
|
110
145
|
fs["seamapi/utils/deep_attr_dict.py"] = deep_attr_dictPyTemplate();
|
|
111
|
-
fs["
|
|
146
|
+
fs["seamapi/utils/report_error.py"] = reportErrorTemplate();
|
|
147
|
+
fs["seamapi/utils/get_sentry_dsn.py"] = getSentryDsnTemplate();
|
|
112
148
|
fs["tests/conftest.py"] = conftestPyTemplate();
|
|
113
149
|
fs["tests/test_smoke.py"] = test_smokePyTemplate();
|
|
114
150
|
fs["tests/__init__.py"] = "";
|
|
115
151
|
return fs;
|
|
116
152
|
};
|
|
153
|
+
function determineReturnResource({ route_path, response_arr_type, response_obj_type, }) {
|
|
154
|
+
if (endpoints_returning_deprecated_action_attempt.includes(route_path)) {
|
|
155
|
+
return "None";
|
|
156
|
+
}
|
|
157
|
+
if (response_obj_type) {
|
|
158
|
+
return pascalCase(response_obj_type);
|
|
159
|
+
}
|
|
160
|
+
if (response_arr_type) {
|
|
161
|
+
return `List[${pascalCase(response_arr_type)}]`;
|
|
162
|
+
}
|
|
163
|
+
return "None";
|
|
164
|
+
}
|
|
117
165
|
//# sourceMappingURL=generate-python-sdk.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-python-sdk.js","sourceRoot":"","sources":["../../src/lib/generate-python-sdk/generate-python-sdk.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AACvD,OAAO,kBAAkB,MAAM,qCAAqC,CAAA;AACpE,OAAO,gBAAgB,MAAM,mCAAmC,CAAA;AAChE,OAAO,cAAc,MAAM,iCAAiC,CAAA;AAC5D,OAAO,oBAAoB,MAAM,uCAAuC,CAAA;AACxE,OAAO,qBAAqB,MAAM,wCAAwC,CAAA;AAC1E,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACpD,OAAO,wBAAwB,MAAM,iDAAiD,CAAA;AACtF,OAAO,sBAAsB,MAAM,kDAAkD,CAAA;AACrF,OAAO,oBAAoB,MAAM,gDAAgD,CAAA;AACjF,OAAO,yBAAyB,MAAM,qDAAqD,CAAA;AAC3F,OAAO,gBAAgB,MAAM,mCAAmC,CAAA;AAChE,OAAO,EAAE,6BAA6B,EAAE,MAAM,kDAAkD,CAAA;
|
|
1
|
+
{"version":3,"file":"generate-python-sdk.js","sourceRoot":"","sources":["../../src/lib/generate-python-sdk/generate-python-sdk.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import type { PropertySchema } from "../../lib/types.js";
|
|
2
|
-
export declare const mapPythonType: (property_schema: PropertySchema) =>
|
|
2
|
+
export declare const mapPythonType: (property_schema: PropertySchema) => string;
|
|
@@ -17,8 +17,12 @@ export const mapPythonType = (property_schema) => {
|
|
|
17
17
|
return "bool";
|
|
18
18
|
if ("type" in property_schema && property_schema.type === "number")
|
|
19
19
|
return "float";
|
|
20
|
-
if ("type" in property_schema && property_schema.type === "array")
|
|
21
|
-
|
|
20
|
+
if ("type" in property_schema && property_schema.type === "array") {
|
|
21
|
+
const array_item_type = "type" in property_schema.items
|
|
22
|
+
? mapPythonType({ type: property_schema.items.type })
|
|
23
|
+
: "Any";
|
|
24
|
+
return `List[${array_item_type}]`;
|
|
25
|
+
} // TODO, make more specific
|
|
22
26
|
if ("type" in property_schema && property_schema.type === "object")
|
|
23
27
|
return "Dict[str, Any]"; // TODO, make more specific
|
|
24
28
|
return "Any";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"map-python-type.js","sourceRoot":"","sources":["../../src/lib/generate-python-sdk/map-python-type.ts"],"names":[],"mappings":"AAEA,iBAAiB;AACjB,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,eAA+B,EAAE,EAAE;IAC/D,IAAI,OAAO,eAAe,KAAK,QAAQ,EAAE;QACvC,OAAO,KAAK,CAAA;KACb;IAED,IAAI,MAAM,IAAI,eAAe,IAAI,eAAe,CAAC,IAAI,KAAK,QAAQ,EAAE;QAClE,iCAAiC;QACjC,4BAA4B;QAC5B,yCAAyC;QACzC,qCAAqC;QACrC,oBAAoB;QACpB,OAAO,KAAK,CAAA;KACb;IACD,IAAI,MAAM,IAAI,eAAe,IAAI,eAAe,CAAC,IAAI,KAAK,SAAS;QACjE,OAAO,KAAK,CAAA;IACd,IAAI,MAAM,IAAI,eAAe,IAAI,eAAe,CAAC,IAAI,KAAK,SAAS;QACjE,OAAO,MAAM,CAAA;IACf,IAAI,MAAM,IAAI,eAAe,IAAI,eAAe,CAAC,IAAI,KAAK,QAAQ;QAChE,OAAO,OAAO,CAAA;IAChB,IAAI,MAAM,IAAI,eAAe,IAAI,eAAe,CAAC,IAAI,KAAK,OAAO;
|
|
1
|
+
{"version":3,"file":"map-python-type.js","sourceRoot":"","sources":["../../src/lib/generate-python-sdk/map-python-type.ts"],"names":[],"mappings":"AAEA,iBAAiB;AACjB,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,eAA+B,EAAE,EAAE;IAC/D,IAAI,OAAO,eAAe,KAAK,QAAQ,EAAE;QACvC,OAAO,KAAK,CAAA;KACb;IAED,IAAI,MAAM,IAAI,eAAe,IAAI,eAAe,CAAC,IAAI,KAAK,QAAQ,EAAE;QAClE,iCAAiC;QACjC,4BAA4B;QAC5B,yCAAyC;QACzC,qCAAqC;QACrC,oBAAoB;QACpB,OAAO,KAAK,CAAA;KACb;IACD,IAAI,MAAM,IAAI,eAAe,IAAI,eAAe,CAAC,IAAI,KAAK,SAAS;QACjE,OAAO,KAAK,CAAA;IACd,IAAI,MAAM,IAAI,eAAe,IAAI,eAAe,CAAC,IAAI,KAAK,SAAS;QACjE,OAAO,MAAM,CAAA;IACf,IAAI,MAAM,IAAI,eAAe,IAAI,eAAe,CAAC,IAAI,KAAK,QAAQ;QAChE,OAAO,OAAO,CAAA;IAChB,IAAI,MAAM,IAAI,eAAe,IAAI,eAAe,CAAC,IAAI,KAAK,OAAO,EAAE;QACjE,MAAM,eAAe,GACnB,MAAM,IAAI,eAAe,CAAC,KAAK;YAC7B,CAAC,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,eAAe,CAAC,KAAK,CAAC,IAAI,EAAqB,CAAC;YACxE,CAAC,CAAC,KAAK,CAAA;QAEX,OAAO,QAAQ,eAAe,GAAG,CAAA;KAClC,CAAC,2BAA2B;IAC7B,IAAI,MAAM,IAAI,eAAe,IAAI,eAAe,CAAC,IAAI,KAAK,QAAQ;QAChE,OAAO,gBAAgB,CAAA,CAAC,2BAA2B;IAErD,OAAO,KAAK,CAAA;AACd,CAAC,CAAA"}
|