@@ -540,6 +540,10 @@ def __init__(self, element: Element):
540540 else :
541541 raise ValueError (f'Unknown D-Bus member { dbus_member } ' )
542542
543+ @property
544+ def has_members (self ) -> bool :
545+ return any ((self .methods , self .properties , self .signals ))
546+
543547
544548SKIP_INTERFACES = {
545549 'org.freedesktop.DBus.Properties' ,
@@ -549,6 +553,7 @@ def __init__(self, element: Element):
549553}
550554
551555INTERFACE_TEMPLATES : Dict [str , str ] = {
556+ "generic_no_members" : r"... # Interface has no members" ,
552557 "generic_method_flags" : (
553558 r"""
554559{%- if method.dbus_input_signature %}
@@ -609,6 +614,7 @@ def __init__(self, element: Element):
609614 interface_name="{{ interface.interface_name }}",
610615):
611616{%- filter indent -%}
617+ {%- if interface.has_members -%}
612618{% for method in interface.methods -%}
613619{% include 'async_method' %}
614620{% endfor -%}
@@ -618,6 +624,9 @@ def __init__(self, element: Element):
618624{% for signal in interface.signals -%}
619625{% include 'async_signal' %}
620626{% endfor -%}
627+ {%- else %}
628+ {% include 'generic_no_members' %}
629+ {% endif -%}
621630{%- endfilter -%}
622631"""
623632 ),
@@ -693,12 +702,16 @@ def {{ signal.python_name }}(self) -> {{ signal.typing }}:
693702 interface_name="{{ interface.interface_name }}",
694703):
695704{%- filter indent -%}
705+ {%- if interface.has_members -%}
696706{% for method in interface.methods -%}
697707{% include 'blocking_method' %}
698708{% endfor -%}
699709{% for a_property in interface.properties -%}
700710{% include 'blocking_property' %}
701711{% endfor -%}
712+ {%- else %}
713+ {% include 'generic_no_members' %}
714+ {% endif -%}
702715{%- endfilter -%}
703716"""
704717 ),
0 commit comments