|
24 | 24 | from typing import List, Optional |
25 | 25 | from xml.etree.ElementTree import Element, parse |
26 | 26 |
|
27 | | -from jinja2 import Environment |
| 27 | +from jinja2 import Environment, FileSystemLoader |
28 | 28 |
|
29 | 29 | dbus_to_python_extra_typing_imports = { |
30 | 30 | "as": ("List", ), |
@@ -271,43 +271,15 @@ def generate_introspection(root: Element) -> List[NmSettingsIntrospection]: |
271 | 271 | return settings_introspection |
272 | 272 |
|
273 | 273 |
|
274 | | -setttngs_template_str = """# SPDX-License-Identifier: LGPL-2.1-or-later |
275 | | -# This file was generated by tools/generate-settings-dataclasses-jinja.py, |
276 | | -# if possible, please make changes by also updating the script. |
277 | | -from __future__ import annotations |
278 | | -from dataclasses import dataclass, field |
279 | | -from typing import {{ setting.typing_imports|sort|join(', ') }} |
280 | | -from .base import NetworkManagerSettingsMixin |
281 | | -{% if setting.datatypes_imports -%} |
282 | | -from .datatypes import {{ setting.datatypes_imports|sort|join(', ') }} |
283 | | -{% endif %} |
284 | | -
|
285 | | -@dataclass |
286 | | -class {{ setting.python_class_name }}(NetworkManagerSettingsMixin): |
287 | | - \"""{{ setting.description }}\""" |
288 | | -{% for property in setting.properties %} |
289 | | - {{ property.python_name }}: Optional[{{ property.python_type }}] = field( |
290 | | - metadata={ |
291 | | - 'dbus_name': '{{ property.name }}', |
292 | | - 'dbus_type': '{{ property.dbus_type }}', |
293 | | -{%- if property.python_inner_class %} |
294 | | - 'dbus_inner_class': {{ property.python_inner_class }}, |
295 | | -{%- endif %} |
296 | | - }, |
297 | | - default=None, |
298 | | - ) |
299 | | - ""\"{{property.description}}""\"{% endfor %} |
300 | | -
|
301 | | -""" |
302 | | - |
303 | | -jinja_env = Environment() |
304 | | -settings_template = jinja_env.from_string(setttngs_template_str) |
305 | | - |
306 | | - |
307 | 274 | def main( |
308 | 275 | settings_xml_path: Path, |
309 | 276 | regex_filter: Optional[Pattern] = None, |
310 | 277 | ) -> None: |
| 278 | + jinja_env = Environment( |
| 279 | + loader=FileSystemLoader(Path('./tools/jinja_templates/')), |
| 280 | + ) |
| 281 | + settings_template = jinja_env.get_template('setting.py.jinja2') |
| 282 | + |
311 | 283 | tree = parse(settings_xml_path) |
312 | 284 | introspection = generate_introspection(tree.getroot()) |
313 | 285 |
|
|
0 commit comments