1 {#- Generate an extension module header file of doc strings #} 2 3 {%- set classmembers = ['attribute', 'method', 'staticmethod', 'classmethod'] %} 4 5 {%- macro cmacro(item) %} 6 {%- if item['desctype'] in classmembers %} 7 {%- set start_at = -2 %} 8 {%- else %} 9 {%- set start_at = 0 %} 10 {%- endif %} 11 {%- set name = item['fullname'] %} 12 {{- 'DOC_' + name.split('.')[start_at:]|join('')|replace('_', '')|upper }} 13 {%- endmacro %} 14 15 {%- macro join_sigs(item) %} 16 {%- set sigs = item['signatures'] %} 17 {%- if sigs %} 18 {{- sigs|join('\\n') + '\\n' }} 19 {%- else %} 20 {{- '' }} 21 {%- endif %} 22 {%- endmacro %} 23 24 {#- -#} 25 26 27 /* Auto generated file: with makeref.py . Docs go in docs/reST/ref/ . */ 28 {% for item in hdr_items -%} 29 #define {{ cmacro(item) }} "{{ join_sigs(item) }}{{ item['summary'] }}" 30 {% endfor %} 31 32 /* Docs in a comment... slightly easier to read. */ 33 34 /* 35 36 {% for item in hdr_items -%} 37 {{ item['fullname'] }} 38 {% set sigs = item['signatures'] -%} 39 {% if sigs -%} 40 {{ ' ' + sigs|join('\n ') }} 41 {% endif -%} 42 {{ item['summary'] }} 43 44 {% endfor -%} 45 */ 46