Skip to content

Commit ab292dc

Browse files
committed
Use template directory for jinja2 templates
1 parent 91c376e commit ab292dc

File tree

2 files changed

+33
-34
lines changed

2 files changed

+33
-34
lines changed

tools/generate-settings-dataclasses-jinja.py

Lines changed: 6 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
from typing import List, Optional
2525
from xml.etree.ElementTree import Element, parse
2626

27-
from jinja2 import Environment
27+
from jinja2 import Environment, FileSystemLoader
2828

2929
dbus_to_python_extra_typing_imports = {
3030
"as": ("List", ),
@@ -271,43 +271,15 @@ def generate_introspection(root: Element) -> List[NmSettingsIntrospection]:
271271
return settings_introspection
272272

273273

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-
307274
def main(
308275
settings_xml_path: Path,
309276
regex_filter: Optional[Pattern] = None,
310277
) -> None:
278+
jinja_env = Environment(
279+
loader=FileSystemLoader(Path('./tools/jinja_templates/')),
280+
)
281+
settings_template = jinja_env.get_template('setting.py.jinja2')
282+
311283
tree = parse(settings_xml_path)
312284
introspection = generate_introspection(tree.getroot())
313285

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
# SPDX-License-Identifier: LGPL-2.1-or-later
2+
# This file was generated by tools/generate-settings-dataclasses-jinja.py,
3+
# if possible, please make changes by also updating the script.
4+
from __future__ import annotations
5+
from dataclasses import dataclass, field
6+
from typing import {{ setting.typing_imports|sort|join(', ') }}
7+
from .base import NetworkManagerSettingsMixin
8+
{% if setting.datatypes_imports -%}
9+
from .datatypes import {{ setting.datatypes_imports|sort|join(', ') }}
10+
{% endif %}
11+
12+
@dataclass
13+
class {{ setting.python_class_name }}(NetworkManagerSettingsMixin):
14+
"""{{ setting.description }}"""
15+
{% for property in setting.properties %}
16+
{{ property.python_name }}: Optional[{{ property.python_type }}] = field(
17+
metadata={
18+
'dbus_name': '{{ property.name }}',
19+
'dbus_type': '{{ property.dbus_type }}',
20+
{%- if property.python_inner_class %}
21+
'dbus_inner_class': {{ property.python_inner_class }},
22+
{%- endif %}
23+
},
24+
default=None,
25+
)
26+
"""{{property.description}}"""{% endfor %}
27+

0 commit comments

Comments
 (0)