def write_tmp_i3status_config(self, tmpfile):
        for section_name, conf in sorted(self.config.items()):
            if section_name in ['i3s_modules', 'py3_modules', '.group_extras',
                                '.module_groups']:
                continue
            elif section_name == 'order':
                for module_name in conf:
                    if self.valid_config_param(module_name):
                        self.write_in_tmpfile('order += "%s"\n' % module_name,
                                              tmpfile)
                # we need to make sure any additional i3status modules needed
                # for groups are added to the i3status config
                for module_name in self.config['.group_extras']:
                    self.write_in_tmpfile('order += "%s"\n' % module_name,
                                          tmpfile)

                self.write_in_tmpfile('\n', tmpfile)
            elif self.valid_config_param(section_name) and conf:
                self.write_in_tmpfile('%s {\n' % section_name, tmpfile)
                for key, value in conf.items():
                    # Set known fixed format for time and tztime so we can work
                    # out the timezone
                    if section_name.split()[
                            0] in TIME_MODULES:
                        if key == 'format':
                            value = TZTIME_FORMAT
                        if key == 'format_time':
                            continue
                    if isinstance(value, bool):
                        value = '{}'.format(value).lower()
                    self.write_in_tmpfile('    %s = "%s"\n' % (key, value),
                                          tmpfile)
                self.write_in_tmpfile('}\n\n', tmpfile)
        tmpfile.flush()
Parse the bots useragents blacklist
dataset/ETHPy150Open ultrabug/py3status/py3status/i3status.py/I3status.write_tmp_i3status_config--crossover with--dataset/ETHPy150Open adamhadani/logtools/logtools/_filterbots.py/parse_bots_ua