# repo config _subdirectory: template # imports _jinja_extensions: - bec_lib.utils.copier_jinja_filters.CopierFilters # predefined values # make sure these have 'when: false' so that the questions are not asked and the items are not saved in answers.yml test_directories: type: str multiselect: true default: ["tests_bec_ipython_client", "tests_bec_widgets", "tests_dap_services", "tests_devices", "tests_file_writer", "tests_scans"] when: false copyright_year: type: int default: 2025 when: false # questions project_name: type: str help: What is your project name? make_commit: type: bool help: would you like to automatically stage and commit the changes? default: true widget_plugins_input: # Defines the list of plugin widgets, following: # - name: widget name in snake case # use_ui: whether to generate a .ui file type: yaml multiline: true default: [] # derived from questions: single point of configuration for plugin class names etc. widget_plugins: type: yaml multiline: true default: > {% if not widget_plugins_input %} [] {% else %} {% for wp in widget_plugins_input %} - module: {{ wp.name }} # Module name for the whole plugin class: {{ wp.name | snake_to_pascal }} # Class name for the plugin widget use_ui: {{ wp.use_ui }} # Whether to create a .ui file and import it {% if wp.use_ui %} ui_module: {{ wp.name }}_ui # Module name for the compiled python UI ui_class: Ui_{{ wp.name | snake_to_pascal }} # Class name for the compiled python UI {% endif %} {% endfor %} {% endif %} when: false # other configuration ui_fileinfo: # would like to save this programatically when generated but don't see how type: yaml multiline: true default: > {% if not widget_plugins %} [] {% else %} {% for wp in widget_plugins %} {% if wp.use_ui %} - ui_file: {{ project_name }}/bec_widgets/widgets/{{ wp.module }}/{{ wp.module }}.ui out_file: {{ project_name }}/bec_widgets/widgets/{{ wp.module }}/{{ wp.ui_module }}.py {% endif %} {% endfor %} {% endif %} when: false _tasks: - "{% if _copier_operation == 'copy' %} git init --initial-branch=main {% endif %}" - > {% if not ui_fileinfo %} echo "No .ui files to process" {% else %} {% for info in ui_fileinfo %}pyside6-uic {{ info.ui_file }} -o {{ info.out_file }}; {% endfor %} {% endif %} - > {% if make_commit %} {% if _copier_operation == 'copy' %} git add -A; git commit -a -m 'Init repo {{ project_name }} at template version {{ _commit }}' {% else %} git add -A; git commit -a -m 'Update repo with template version {{ _commit }}' {% endif %} {% else %} echo "Autocommit disabled, leaving repo dirty" {% endif %}