Skip to content

Commit 4192979

Browse files
committed
up
1 parent 341380f commit 4192979

File tree

2 files changed

+17
-14
lines changed

2 files changed

+17
-14
lines changed

stubgen/enum.py

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,24 +2,25 @@
22
from .writer import Writer
33
from typing import Any
44

5-
def _gen_raw_enums(w: Writer, name: str, values: list[tuple[str, Any]], is_bitfield: bool) -> None:
6-
if is_bitfield:
7-
w.write(f"{name} = int")
8-
else:
9-
literal_values = [str(v) for _, v in values]
10-
w.write(f"{name} = Literal[{', '.join(literal_values)}]")
11-
12-
for k, v in values:
13-
w.write(f"{k} = {v}")
5+
def _gen_raw_enums(w: Writer, name: str, values: list[tuple[str, Any]], is_bitfield: bool, with_types=True, with_values=True) -> None:
6+
if with_types:
7+
if is_bitfield:
8+
w.write(f"{name} = int")
9+
else:
10+
literal_values = [str(v) for _, v in values]
11+
w.write(f"{name} = Literal[{', '.join(literal_values)}]")
12+
if with_values:
13+
for k, v in values:
14+
w.write(f"{k} = {v}")
1415
w.write('')
1516

1617

17-
def gen_global_enums(w: Writer, global_enums: list[GlobalEnum]) -> None:
18+
def gen_global_enums(w: Writer, global_enums: list[GlobalEnum], with_types: bool, with_values: bool) -> None:
1819
for e in global_enums:
1920
name = e.name.replace('.', '_')
2021
_gen_raw_enums(w, name, [
2122
(v.name, v.value) for v in e.values
22-
], e.is_bitfield)
23+
], e.is_bitfield, with_types, with_values)
2324

2425
def gen_class_enum(w: Writer, e: ClassesEnum):
2526
assert e.values is not None

stubgen/map.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -203,7 +203,6 @@ def gen_typings_pyi_writers(gdt_all_in_one: GodotInOne):
203203
writer_v.write(
204204
"""\
205205
from typing import overload, Literal, Any
206-
from .enums import *
207206
from .classes._Object import Object
208207
from . import alias
209208
@@ -246,6 +245,7 @@ def default(gdt_expr: str) -> Any: ...
246245
writer.write(
247246
"""\
248247
from typing import Literal, Callable as typing_Callable
248+
from ..enums import *
249249
from ._init import *
250250
251251
"""
@@ -551,7 +551,6 @@ def gen_alias_pyi_writer(gdt_all_in_one: GodotInOne, pyi_writer: Writer) -> Writ
551551
def gen_init_pyi_writer(gdt_all_in_one: GodotInOne, pyi_writer: Writer, global_variant_classes: list[str]) -> Writer:
552552
pyi_writer.write(
553553
"""\
554-
from .enums import *
555554
from .header import *
556555
from . import classes
557556
@@ -567,6 +566,9 @@ def load(path: str) -> classes.Resource: ...
567566

568567
for clazz in global_variant_classes:
569568
writer.writefmt('from .variants import {0} as {0}', clazz)
569+
writer.write('')
570+
571+
enum.gen_global_enums(pyi_writer, gdt_all_in_one.global_enums, with_types=False, with_values=True)
570572
return pyi_writer
571573

572574

@@ -577,7 +579,7 @@ def gen_enums_pyi_writer(gdt_all_in_one: GodotInOne, pyi_writer: Writer) -> Writ
577579
"""
578580
)
579581
# --- global enum ---
580-
enum.gen_global_enums(pyi_writer, gdt_all_in_one.global_enums)
582+
enum.gen_global_enums(pyi_writer, gdt_all_in_one.global_enums, with_types=True, with_values=False)
581583
return pyi_writer
582584

583585

0 commit comments

Comments
 (0)