|
2 | 2 | from .writer import Writer |
3 | 3 | from typing import Any |
4 | 4 |
|
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}") |
14 | 15 | w.write('') |
15 | 16 |
|
16 | 17 |
|
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: |
18 | 19 | for e in global_enums: |
19 | 20 | name = e.name.replace('.', '_') |
20 | 21 | _gen_raw_enums(w, name, [ |
21 | 22 | (v.name, v.value) for v in e.values |
22 | | - ], e.is_bitfield) |
| 23 | + ], e.is_bitfield, with_types, with_values) |
23 | 24 |
|
24 | 25 | def gen_class_enum(w: Writer, e: ClassesEnum): |
25 | 26 | assert e.values is not None |
|
0 commit comments