@seamapi/nextlove-sdk-generator 1.6.0 → 1.6.2
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/generate-python-sdk/class-file.js +27 -26
- package/lib/generate-python-sdk/class-file.js.map +1 -1
- package/lib/generate-python-sdk/templates/readme.md.template.js +1 -1
- package/lib/generate-python-sdk/templates/seam.py.template.js +8 -2
- package/lib/generate-python-sdk/templates/seam.py.template.js.map +1 -1
- package/lib/generate-python-sdk/templates/snippets/abstract-seam.template.js +1 -0
- package/lib/generate-python-sdk/templates/snippets/abstract-seam.template.js.map +1 -1
- package/lib/openapi/flatten-obj-schema.js +1 -2
- package/lib/openapi/flatten-obj-schema.js.map +1 -1
- package/package.json +1 -1
- package/src/lib/generate-python-sdk/class-file.ts +16 -16
- package/src/lib/generate-python-sdk/templates/readme.md.template.ts +1 -1
- package/src/lib/generate-python-sdk/templates/seam.py.template.ts +8 -2
- package/src/lib/generate-python-sdk/templates/snippets/abstract-seam.template.ts +1 -0
- package/src/lib/openapi/flatten-obj-schema.ts +5 -2
|
@@ -43,21 +43,24 @@ export class ClassFile {
|
|
|
43
43
|
},
|
|
44
44
|
]
|
|
45
45
|
: [])
|
|
46
|
-
.map(({ method_name, parameters }) =>
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
.
|
|
52
|
-
(
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
46
|
+
.map(({ method_name, parameters, return_resource }) => {
|
|
47
|
+
const has_params = parameters.length > 0;
|
|
48
|
+
return [
|
|
49
|
+
"",
|
|
50
|
+
"",
|
|
51
|
+
`@abc.abstractmethod`,
|
|
52
|
+
`def ${method_name}(self,${has_params ? " *," : ""} ${parameters
|
|
53
|
+
.sort((a, b) => (a.position ?? a.required ? 1000 : 9999) -
|
|
54
|
+
(b.position ?? b.required ? 1000 : 9999))
|
|
55
|
+
.map(({ name, type, required, default_value }) => required
|
|
56
|
+
? `${name}: ${type}`
|
|
57
|
+
: `${name}: Optional[${type}] = ${default_value ?? "None"}`)
|
|
58
|
+
.join(", ")}) -> ${return_resource}:`,
|
|
59
|
+
` raise NotImplementedError()`,
|
|
60
|
+
]
|
|
61
|
+
.map((s) => ` ${s}`)
|
|
62
|
+
.join("\n");
|
|
63
|
+
}),
|
|
61
64
|
].join("\n");
|
|
62
65
|
}
|
|
63
66
|
serializeToClass() {
|
|
@@ -67,7 +70,6 @@ export class ClassFile {
|
|
|
67
70
|
...Array.from(new Set(this.methods.map((m) => m.return_resource.replace(/^List\[/, "").replace(/\]$/, "")))),
|
|
68
71
|
].filter((classInstance) => classInstance !== "");
|
|
69
72
|
const has_child_classes = this.child_class_identifiers.length > 0;
|
|
70
|
-
const is_action_attempt_class = this.name === "ActionAttempts";
|
|
71
73
|
return [
|
|
72
74
|
`from seamapi.types import (${validClasses
|
|
73
75
|
.filter((cls) => cls !== "None")
|
|
@@ -78,7 +80,7 @@ export class ClassFile {
|
|
|
78
80
|
.map((i) => `from seamapi.${this.namespace}_${i.namespace} import ${i.class_name}`)
|
|
79
81
|
.join("\n")
|
|
80
82
|
: ""}`,
|
|
81
|
-
`${
|
|
83
|
+
`${this.name === "ActionAttempts" ? "import time\n" : ""}`,
|
|
82
84
|
`class ${this.name}(Abstract${this.name}):`,
|
|
83
85
|
// TODO DOCSTRING
|
|
84
86
|
` seam: Seam`,
|
|
@@ -106,14 +108,13 @@ export class ClassFile {
|
|
|
106
108
|
if (is_return_resource_list) {
|
|
107
109
|
return_resource_item = return_resource.slice(5, -1);
|
|
108
110
|
}
|
|
109
|
-
const can_method_poll_action_attempt =
|
|
110
|
-
return_resource === "ActionAttempt" &&
|
|
111
|
-
!is_return_resource_list;
|
|
111
|
+
const can_method_poll_action_attempt = return_resource === "ActionAttempt" && !is_return_resource_list;
|
|
112
112
|
const is_none_return_type = return_resource_item === "None";
|
|
113
|
+
const has_params = parameters.length > 0;
|
|
113
114
|
return [
|
|
114
115
|
"",
|
|
115
116
|
"",
|
|
116
|
-
`def ${method_name}(self
|
|
117
|
+
`def ${method_name}(self,${has_params ? " *," : ""} ${parameters
|
|
117
118
|
.sort((a, b) => (a.position ?? a.required ? 1000 : 9999) -
|
|
118
119
|
(b.position ?? b.required ? 1000 : 9999))
|
|
119
120
|
.map(({ name, type, required }) => required
|
|
@@ -139,13 +140,13 @@ export class ClassFile {
|
|
|
139
140
|
? [
|
|
140
141
|
" if isinstance(wait_for_action_attempt, dict):",
|
|
141
142
|
` updated_action_attempt = self.seam.action_attempts.poll_until_ready(`,
|
|
142
|
-
" res['action_attempt']['action_attempt_id'],",
|
|
143
|
+
" action_attempt_id=res['action_attempt']['action_attempt_id'],",
|
|
143
144
|
" timeout=wait_for_action_attempt.get('timeout', None),",
|
|
144
145
|
" polling_interval=wait_for_action_attempt.get('polling_interval', None),",
|
|
145
146
|
" )",
|
|
146
147
|
" elif wait_for_action_attempt is True:",
|
|
147
148
|
` updated_action_attempt = self.seam.action_attempts.poll_until_ready(`,
|
|
148
|
-
" res['action_attempt']['action_attempt_id']",
|
|
149
|
+
" action_attempt_id=res['action_attempt']['action_attempt_id']",
|
|
149
150
|
" )",
|
|
150
151
|
" else:",
|
|
151
152
|
` return ${return_resource}.from_dict(res["${return_path.join('"]["')}"])`,
|
|
@@ -168,11 +169,11 @@ export class ClassFile {
|
|
|
168
169
|
this.name === "ActionAttempts"
|
|
169
170
|
? [
|
|
170
171
|
"",
|
|
171
|
-
" def poll_until_ready(self, action_attempt_id: str, timeout: Optional[float] = 5.0, polling_interval: Optional[float] = 0.5) -> ActionAttempt:",
|
|
172
|
+
" def poll_until_ready(self, *, action_attempt_id: str, timeout: Optional[float] = 5.0, polling_interval: Optional[float] = 0.5) -> ActionAttempt:",
|
|
172
173
|
" seam = self.seam",
|
|
173
174
|
" time_waiting = 0.0",
|
|
174
175
|
"",
|
|
175
|
-
" action_attempt = seam.action_attempts.get(action_attempt_id, wait_for_action_attempt=False)",
|
|
176
|
+
" action_attempt = seam.action_attempts.get(action_attempt_id=action_attempt_id, wait_for_action_attempt=False)",
|
|
176
177
|
"",
|
|
177
178
|
" while action_attempt.status == 'pending':",
|
|
178
179
|
" time.sleep(polling_interval)",
|
|
@@ -182,7 +183,7 @@ export class ClassFile {
|
|
|
182
183
|
" raise Exception('Timed out waiting for action attempt to be ready')",
|
|
183
184
|
"",
|
|
184
185
|
" action_attempt = seam.action_attempts.get(",
|
|
185
|
-
" action_attempt.action_attempt_id, wait_for_action_attempt=False",
|
|
186
|
+
" action_attempt_id=action_attempt.action_attempt_id, wait_for_action_attempt=False",
|
|
186
187
|
" )",
|
|
187
188
|
"",
|
|
188
189
|
" if action_attempt.status == 'failed':",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"class-file.js","sourceRoot":"","sources":["../../src/lib/generate-python-sdk/class-file.ts"],"names":[],"mappings":"AA6BA,MAAM,OAAO,SAAS;IAMpB,YACE,IAAY,EACZ,SAA6B,EAC7B,uBAA+C;QAE/C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;QAC1B,IAAI,CAAC,OAAO,GAAG,EAAE,CAAA;QACjB,IAAI,CAAC,uBAAuB,GAAG,uBAAuB,CAAA;IACxD,CAAC;IAED,SAAS,CAAC,MAAuB;QAC/B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAC3B,CAAC;IAED,sCAAsC;QACpC,MAAM,iBAAiB,GAAG,IAAI,CAAC,uBAAuB,CAAC,MAAM,GAAG,CAAC,CAAA;QAEjE,OAAO;YACL,iBAAiB,IAAI,CAAC,IAAI,YAAY;YACtC,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;YACzC,GACE,iBAAiB;gBACf,CAAC,CAAC,IAAI,CAAC,uBAAuB;qBACzB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACT;oBACE,aAAa;oBACb,uBAAuB;oBACvB,SAAS,CAAC,CAAC,SAAS,qBAAqB,CAAC,CAAC,UAAU,GAAG;oBACxD,iCAAiC;iBAClC,CAAC,IAAI,CAAC,IAAI,CAAC,CACb;qBACA,IAAI,CAAC,MAAM,CAAC;gBACjB,CAAC,CAAC,EACN,EAAE;YACF,GAAG,IAAI,CAAC,OAAO;iBACZ,MAAM,CACL,IAAI,CAAC,IAAI,KAAK,gBAAgB;gBAC5B,CAAC,CAAC;oBACE;wBACE,WAAW,EAAE,kBAAkB;wBAC/B,UAAU,EAAE;4BACV,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE;4BAC1D,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE;4BACxD;gCACE,IAAI,EAAE,kBAAkB;gCACxB,IAAI,EAAE,OAAO;gCACb,aAAa,EAAE,KAAK;6BACrB;yBACF;wBACD,WAAW,EAAE,EAAE;wBACf,eAAe,EAAE,eAAe;wBAChC,IAAI,EAAE,EAAE;qBACT;iBACF;gBACH,CAAC,CAAC,EAAE,CACP;iBACA,GAAG,CAAC,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,EAAE,EAAE,
|
|
1
|
+
{"version":3,"file":"class-file.js","sourceRoot":"","sources":["../../src/lib/generate-python-sdk/class-file.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,8 +19,10 @@ class Seam(AbstractSeam):
|
|
|
19
19
|
----------
|
|
20
20
|
api_key : str
|
|
21
21
|
API key (default None)
|
|
22
|
-
api_url : str
|
|
23
|
-
API url (default
|
|
22
|
+
api_url : str
|
|
23
|
+
API url (default "https://connect.getseam.com")
|
|
24
|
+
lts_version : str
|
|
25
|
+
LTS version
|
|
24
26
|
workspaces : Workspaces
|
|
25
27
|
Workspaces class
|
|
26
28
|
connected_accounts : ConnectedAccounts
|
|
@@ -41,10 +43,12 @@ class Seam(AbstractSeam):
|
|
|
41
43
|
|
|
42
44
|
api_key: str
|
|
43
45
|
api_url: str = "https://connect.getseam.com"
|
|
46
|
+
lts_version: str = '1.0.0'
|
|
44
47
|
|
|
45
48
|
def __init__(
|
|
46
49
|
self,
|
|
47
50
|
api_key: Optional[str] = None,
|
|
51
|
+
*,
|
|
48
52
|
workspace_id: Optional[str] = None,
|
|
49
53
|
api_url: Optional[str] = None,
|
|
50
54
|
should_report_exceptions: Optional[bool] = False,
|
|
@@ -73,6 +77,7 @@ class Seam(AbstractSeam):
|
|
|
73
77
|
workspace_id = os.environ.get("SEAM_WORKSPACE_ID", None)
|
|
74
78
|
self.api_key = api_key
|
|
75
79
|
self.workspace_id = workspace_id
|
|
80
|
+
self.lts_version = Seam.lts_version
|
|
76
81
|
|
|
77
82
|
if os.environ.get("SEAM_API_URL", None) is not None:
|
|
78
83
|
print(
|
|
@@ -120,6 +125,7 @@ class Seam(AbstractSeam):
|
|
|
120
125
|
"User-Agent": "Python SDK v" + sdk_version + " (https://github.com/seamapi/python)",
|
|
121
126
|
"seam-sdk-name": "seamapi/python",
|
|
122
127
|
"seam-sdk-version": sdk_version,
|
|
128
|
+
"seam-lts-version": self.lts_version,
|
|
123
129
|
}
|
|
124
130
|
if self.workspace_id is not None:
|
|
125
131
|
headers["seam-workspace"] = self.workspace_id
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seam.py.template.js","sourceRoot":"","sources":["../../../src/lib/generate-python-sdk/templates/seam.py.template.ts"],"names":[],"mappings":"AAAA,eAAe,GAAG,EAAE,CAAC
|
|
1
|
+
{"version":3,"file":"seam.py.template.js","sourceRoot":"","sources":["../../../src/lib/generate-python-sdk/templates/seam.py.template.ts"],"names":[],"mappings":"AAAA,eAAe,GAAG,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0JpB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"abstract-seam.template.js","sourceRoot":"","sources":["../../../../src/lib/generate-python-sdk/templates/snippets/abstract-seam.template.ts"],"names":[],"mappings":"AAAA,eAAe,GAAG,EAAE,CAAC
|
|
1
|
+
{"version":3,"file":"abstract-seam.template.js","sourceRoot":"","sources":["../../../../src/lib/generate-python-sdk/templates/snippets/abstract-seam.template.ts"],"names":[],"mappings":"AAAA,eAAe,GAAG,EAAE,CAAC;;;;;;;;;;;;;;;kCAea,CAAA"}
|
|
@@ -44,8 +44,7 @@ export const deepFlattenAllOfSchema = (s) => {
|
|
|
44
44
|
subschema = recursive;
|
|
45
45
|
}
|
|
46
46
|
if ("oneOf" in subschema) {
|
|
47
|
-
|
|
48
|
-
continue;
|
|
47
|
+
subschema = flattenObjSchema(subschema);
|
|
49
48
|
}
|
|
50
49
|
if ("$ref" in subschema) {
|
|
51
50
|
console.error("$ref not currently supported when flattening allOf");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flatten-obj-schema.js","sourceRoot":"","sources":["../../src/lib/openapi/flatten-obj-schema.ts"],"names":[],"mappings":"AAOA,OAAO,MAAM,MAAM,QAAQ,CAAA;AAC3B,MAAM,EAAE,gBAAgB,EAAE,OAAO,EAAE,GAAG,MAAM,CAAA;AAE5C,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,CAOK,EACM,EAAE;IACb,IAAI,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ;QAAE,OAAO,CAAC,CAAA;IAEhD,IAAI,OAAO,IAAI,CAAC,EAAE;QAChB,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;YACf,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAA;SACxD;QAED,MAAM,SAAS,GAAc;YAC3B,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,EAAE;YACd,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;SACnC,CAAA;QACD,KAAK,MAAM,GAAG,IAAI,CAAC,CAAC,KAAK,EAAE;YACzB,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;gBACnD,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;aAC5B;YACD,SAAS,CAAC,QAAQ,GAAG,gBAAgB,CACnC,SAAS,CAAC,QAAQ,EAClB,GAAG,CAAC,QAAQ,EACZ,OAAO,CACR,CAAA;SACF;QACD,OAAO,SAAsB,CAAA;KAC9B;IAED,IAAI,OAAO,IAAI,CAAC,EAAE;QAChB,OAAO,sBAAsB,CAAC,CAAC,CAAc,CAAA;KAC9C;IAED,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC,IAAI,GAAG,CAAC,CAAA;AACpD,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,sBAAsB,GAAG,CACpC,CAAc,EACoC,EAAE;IACpD,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;QACtC,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QAE5B,IAAI,OAAO,IAAI,SAAS,EAAE;YACxB,OAAO,sBAAsB,CAAC,SAAS,CAAC,CAAA;SACzC;QAED,OAAO,SAAS,CAAA;KACjB;IAED,MAAM,UAAU,GAAqC,EAAE,CAAA;IACvD,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAA;IAClC,MAAM,UAAU,GAAsC,EAAE,CAAA;IAExD,KAAK,IAAI,SAAS,IAAI,CAAC,CAAC,KAAK,EAAE;QAC7B,IAAI,OAAO,IAAI,SAAS,EAAE;YACxB,MAAM,SAAS,GAAG,sBAAsB,CAAC,SAAS,CAAC,CAAA;YACnD,IAAI,CAAC,SAAS;gBAAE,SAAQ;YAExB,SAAS,GAAG,SAAS,CAAA;SACtB;QAED,IAAI,OAAO,IAAI,SAAS,EAAE;YACxB,
|
|
1
|
+
{"version":3,"file":"flatten-obj-schema.js","sourceRoot":"","sources":["../../src/lib/openapi/flatten-obj-schema.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -90,12 +90,14 @@ export class ClassFile {
|
|
|
90
90
|
]
|
|
91
91
|
: []
|
|
92
92
|
)
|
|
93
|
-
.map(({ method_name, parameters }) =>
|
|
94
|
-
|
|
93
|
+
.map(({ method_name, parameters, return_resource }) => {
|
|
94
|
+
const has_params = parameters.length > 0
|
|
95
|
+
|
|
96
|
+
return [
|
|
95
97
|
"",
|
|
96
98
|
"",
|
|
97
99
|
`@abc.abstractmethod`,
|
|
98
|
-
`def ${method_name}(self
|
|
100
|
+
`def ${method_name}(self,${has_params ? " *," : ""} ${parameters
|
|
99
101
|
.sort(
|
|
100
102
|
(a, b) =>
|
|
101
103
|
(a.position ?? a.required ? 1000 : 9999) -
|
|
@@ -106,12 +108,12 @@ export class ClassFile {
|
|
|
106
108
|
? `${name}: ${type}`
|
|
107
109
|
: `${name}: Optional[${type}] = ${default_value ?? "None"}`
|
|
108
110
|
)
|
|
109
|
-
.join(", ")}):`,
|
|
111
|
+
.join(", ")}) -> ${return_resource}:`,
|
|
110
112
|
` raise NotImplementedError()`,
|
|
111
113
|
]
|
|
112
114
|
.map((s) => ` ${s}`)
|
|
113
115
|
.join("\n")
|
|
114
|
-
),
|
|
116
|
+
}),
|
|
115
117
|
].join("\n")
|
|
116
118
|
}
|
|
117
119
|
|
|
@@ -128,7 +130,6 @@ export class ClassFile {
|
|
|
128
130
|
),
|
|
129
131
|
].filter((classInstance) => classInstance !== "")
|
|
130
132
|
const has_child_classes = this.child_class_identifiers.length > 0
|
|
131
|
-
const is_action_attempt_class = this.name === "ActionAttempts"
|
|
132
133
|
|
|
133
134
|
return [
|
|
134
135
|
`from seamapi.types import (${validClasses
|
|
@@ -145,7 +146,7 @@ export class ClassFile {
|
|
|
145
146
|
.join("\n")
|
|
146
147
|
: ""
|
|
147
148
|
}`,
|
|
148
|
-
`${
|
|
149
|
+
`${this.name === "ActionAttempts" ? "import time\n" : ""}`,
|
|
149
150
|
|
|
150
151
|
`class ${this.name}(Abstract${this.name}):`,
|
|
151
152
|
// TODO DOCSTRING
|
|
@@ -187,15 +188,14 @@ export class ClassFile {
|
|
|
187
188
|
}
|
|
188
189
|
|
|
189
190
|
const can_method_poll_action_attempt =
|
|
190
|
-
|
|
191
|
-
return_resource === "ActionAttempt" &&
|
|
192
|
-
!is_return_resource_list
|
|
191
|
+
return_resource === "ActionAttempt" && !is_return_resource_list
|
|
193
192
|
const is_none_return_type = return_resource_item === "None"
|
|
193
|
+
const has_params = parameters.length > 0
|
|
194
194
|
|
|
195
195
|
return [
|
|
196
196
|
"",
|
|
197
197
|
"",
|
|
198
|
-
`def ${method_name}(self
|
|
198
|
+
`def ${method_name}(self,${has_params ? " *," : ""} ${parameters
|
|
199
199
|
.sort(
|
|
200
200
|
(a, b) =>
|
|
201
201
|
(a.position ?? a.required ? 1000 : 9999) -
|
|
@@ -235,13 +235,13 @@ export class ClassFile {
|
|
|
235
235
|
? [
|
|
236
236
|
" if isinstance(wait_for_action_attempt, dict):",
|
|
237
237
|
` updated_action_attempt = self.seam.action_attempts.poll_until_ready(`,
|
|
238
|
-
" res['action_attempt']['action_attempt_id'],",
|
|
238
|
+
" action_attempt_id=res['action_attempt']['action_attempt_id'],",
|
|
239
239
|
" timeout=wait_for_action_attempt.get('timeout', None),",
|
|
240
240
|
" polling_interval=wait_for_action_attempt.get('polling_interval', None),",
|
|
241
241
|
" )",
|
|
242
242
|
" elif wait_for_action_attempt is True:",
|
|
243
243
|
` updated_action_attempt = self.seam.action_attempts.poll_until_ready(`,
|
|
244
|
-
" res['action_attempt']['action_attempt_id']",
|
|
244
|
+
" action_attempt_id=res['action_attempt']['action_attempt_id']",
|
|
245
245
|
" )",
|
|
246
246
|
" else:",
|
|
247
247
|
` return ${return_resource}.from_dict(res["${return_path.join(
|
|
@@ -272,11 +272,11 @@ export class ClassFile {
|
|
|
272
272
|
this.name === "ActionAttempts"
|
|
273
273
|
? [
|
|
274
274
|
"",
|
|
275
|
-
" def poll_until_ready(self, action_attempt_id: str, timeout: Optional[float] = 5.0, polling_interval: Optional[float] = 0.5) -> ActionAttempt:",
|
|
275
|
+
" def poll_until_ready(self, *, action_attempt_id: str, timeout: Optional[float] = 5.0, polling_interval: Optional[float] = 0.5) -> ActionAttempt:",
|
|
276
276
|
" seam = self.seam",
|
|
277
277
|
" time_waiting = 0.0",
|
|
278
278
|
"",
|
|
279
|
-
" action_attempt = seam.action_attempts.get(action_attempt_id, wait_for_action_attempt=False)",
|
|
279
|
+
" action_attempt = seam.action_attempts.get(action_attempt_id=action_attempt_id, wait_for_action_attempt=False)",
|
|
280
280
|
"",
|
|
281
281
|
" while action_attempt.status == 'pending':",
|
|
282
282
|
" time.sleep(polling_interval)",
|
|
@@ -286,7 +286,7 @@ export class ClassFile {
|
|
|
286
286
|
" raise Exception('Timed out waiting for action attempt to be ready')",
|
|
287
287
|
"",
|
|
288
288
|
" action_attempt = seam.action_attempts.get(",
|
|
289
|
-
" action_attempt.action_attempt_id, wait_for_action_attempt=False",
|
|
289
|
+
" action_attempt_id=action_attempt.action_attempt_id, wait_for_action_attempt=False",
|
|
290
290
|
" )",
|
|
291
291
|
"",
|
|
292
292
|
" if action_attempt.status == 'failed':",
|
|
@@ -19,8 +19,10 @@ class Seam(AbstractSeam):
|
|
|
19
19
|
----------
|
|
20
20
|
api_key : str
|
|
21
21
|
API key (default None)
|
|
22
|
-
api_url : str
|
|
23
|
-
API url (default
|
|
22
|
+
api_url : str
|
|
23
|
+
API url (default "https://connect.getseam.com")
|
|
24
|
+
lts_version : str
|
|
25
|
+
LTS version
|
|
24
26
|
workspaces : Workspaces
|
|
25
27
|
Workspaces class
|
|
26
28
|
connected_accounts : ConnectedAccounts
|
|
@@ -41,10 +43,12 @@ class Seam(AbstractSeam):
|
|
|
41
43
|
|
|
42
44
|
api_key: str
|
|
43
45
|
api_url: str = "https://connect.getseam.com"
|
|
46
|
+
lts_version: str = '1.0.0'
|
|
44
47
|
|
|
45
48
|
def __init__(
|
|
46
49
|
self,
|
|
47
50
|
api_key: Optional[str] = None,
|
|
51
|
+
*,
|
|
48
52
|
workspace_id: Optional[str] = None,
|
|
49
53
|
api_url: Optional[str] = None,
|
|
50
54
|
should_report_exceptions: Optional[bool] = False,
|
|
@@ -73,6 +77,7 @@ class Seam(AbstractSeam):
|
|
|
73
77
|
workspace_id = os.environ.get("SEAM_WORKSPACE_ID", None)
|
|
74
78
|
self.api_key = api_key
|
|
75
79
|
self.workspace_id = workspace_id
|
|
80
|
+
self.lts_version = Seam.lts_version
|
|
76
81
|
|
|
77
82
|
if os.environ.get("SEAM_API_URL", None) is not None:
|
|
78
83
|
print(
|
|
@@ -120,6 +125,7 @@ class Seam(AbstractSeam):
|
|
|
120
125
|
"User-Agent": "Python SDK v" + sdk_version + " (https://github.com/seamapi/python)",
|
|
121
126
|
"seam-sdk-name": "seamapi/python",
|
|
122
127
|
"seam-sdk-version": sdk_version,
|
|
128
|
+
"seam-lts-version": self.lts_version,
|
|
123
129
|
}
|
|
124
130
|
if self.workspace_id is not None:
|
|
125
131
|
headers["seam-workspace"] = self.workspace_id
|
|
@@ -76,8 +76,11 @@ export const deepFlattenAllOfSchema = (
|
|
|
76
76
|
}
|
|
77
77
|
|
|
78
78
|
if ("oneOf" in subschema) {
|
|
79
|
-
|
|
80
|
-
|
|
79
|
+
subschema = flattenObjSchema(
|
|
80
|
+
subschema as {
|
|
81
|
+
oneOf: Array<ObjSchema>
|
|
82
|
+
}
|
|
83
|
+
)
|
|
81
84
|
}
|
|
82
85
|
|
|
83
86
|
if ("$ref" in subschema) {
|