Skip to content

Commit b18577e

Browse files
committed
fix: wrap non required values with Optional[] in python
1 parent 1685a96 commit b18577e

File tree

1 file changed

+39
-23
lines changed

1 file changed

+39
-23
lines changed

src/SDK/Language/Python.php

Lines changed: 39 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -235,32 +235,48 @@ public function getFiles(): array
235235
*/
236236
public function getTypeName(array $parameter, array $spec = []): string
237237
{
238+
$typeName = '';
239+
238240
if (isset($parameter['enumName'])) {
239-
return \ucfirst($parameter['enumName']);
240-
}
241-
if (!empty($parameter['enumValues'])) {
242-
return \ucfirst($parameter['name']);
241+
$typeName = \ucfirst($parameter['enumName']);
242+
} elseif (!empty($parameter['enumValues'])) {
243+
$typeName = \ucfirst($parameter['name']);
244+
} else {
245+
switch ($parameter['type'] ?? '') {
246+
case self::TYPE_FILE:
247+
$typeName = 'InputFile';
248+
break;
249+
case self::TYPE_NUMBER:
250+
case self::TYPE_INTEGER:
251+
$typeName = 'float';
252+
break;
253+
case self::TYPE_BOOLEAN:
254+
$typeName = 'bool';
255+
break;
256+
case self::TYPE_STRING:
257+
$typeName = 'str';
258+
break;
259+
case self::TYPE_ARRAY:
260+
if (!empty(($parameter['array'] ?? [])['type']) && !\is_array($parameter['array']['type'])) {
261+
$typeName = 'List[' . $this->getTypeName($parameter['array']) . ']';
262+
} else {
263+
$typeName = 'List[Any]';
264+
}
265+
break;
266+
case self::TYPE_OBJECT:
267+
$typeName = 'dict';
268+
break;
269+
default:
270+
$typeName = $parameter['type'];
271+
break;
272+
}
243273
}
244-
switch ($parameter['type'] ?? '') {
245-
case self::TYPE_FILE:
246-
return 'InputFile';
247-
case self::TYPE_NUMBER:
248-
case self::TYPE_INTEGER:
249-
return 'float';
250-
case self::TYPE_BOOLEAN:
251-
return 'bool';
252-
case self::TYPE_STRING:
253-
return 'str';
254-
case self::TYPE_ARRAY:
255-
if (!empty(($parameter['array'] ?? [])['type']) && !\is_array($parameter['array']['type'])) {
256-
return 'List[' . $this->getTypeName($parameter['array']) . ']';
257-
}
258-
return 'List[Any]';
259-
case self::TYPE_OBJECT:
260-
return 'dict';
261-
default:
262-
return $parameter['type'];
274+
275+
if (!($parameter['required'] ?? true)) {
276+
return 'Optional[' . $typeName . ']';
263277
}
278+
279+
return $typeName;
264280
}
265281

266282
/**

0 commit comments

Comments
 (0)