Changeset - eb6ffd819900
[Not reviewed]
default
0 1 0
Mads Kiilerich - 6 years ago 2019-12-25 01:57:05
mads@kiilerich.com
Grafted from: 7ac38d7f9c74
py3: fix kallithea-cli ini parsing after ConfigParser got strict=True

ConfigParser in py3 defaults to strict=True and would thus reject our ssh
logging hack of renaming config sections ... which cause duplicate section
names.

Fortunately, fileConfig now also allows passing a ConfigParser, and we can
avoid using io.StringIO .
1 file changed with 5 insertions and 4 deletions:
0 comments (0 inline, 0 general)
kallithea/bin/kallithea_cli_base.py
Show inline comments
 
@@ -12,8 +12,8 @@
 
# You should have received a copy of the GNU General Public License
 
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 

	
 
import configparser
 
import functools
 
import io
 
import logging.config
 
import os
 
import re
 
@@ -45,7 +45,7 @@ def read_config(ini_file_name, strip_sec
 
        return m.group(0)
 

	
 
    with open(ini_file_name) as f:
 
        return re.sub(r'^\[([^:]+):(.*)]', repl, f.read().decode(), flags=re.MULTILINE)
 
        return re.sub(r'^\[([^:]+):(.*)]', repl, f.read(), flags=re.MULTILINE)
 

	
 

	
 
# This placeholder is the main entry point for the kallithea-cli command
 
@@ -72,8 +72,9 @@ def register_command(config_file=False, 
 
            def runtime_wrapper(config_file, *args, **kwargs):
 
                path_to_ini_file = os.path.realpath(config_file)
 
                kallithea.CONFIG = paste.deploy.appconfig('config:' + path_to_ini_file)
 
                config_string = read_config(path_to_ini_file, strip_section_prefix=annotated.__name__)
 
                logging.config.fileConfig(io.StringIO(config_string),
 
                cp = configparser.ConfigParser(strict=False)
 
                cp.read_string(read_config(path_to_ini_file, strip_section_prefix=annotated.__name__))
 
                logging.config.fileConfig(cp,
 
                    {'__file__': path_to_ini_file, 'here': os.path.dirname(path_to_ini_file)})
 
                if config_file_initialize_app:
 
                    kallithea.config.middleware.make_app(kallithea.CONFIG.global_conf, **kallithea.CONFIG.local_conf)
0 comments (0 inline, 0 general)