From 8f7be37a700aa78f1906e155f79356fcd7e4b260 Mon Sep 17 00:00:00 2001 From: mathieui Date: Thu, 30 Jun 2016 23:36:25 +0200 Subject: Absolute imports everywhere --- poezio/bookmarks.py | 4 ++-- poezio/common.py | 2 +- poezio/config.py | 4 ++-- poezio/connection.py | 8 ++++---- poezio/contact.py | 2 +- poezio/core/__init__.py | 5 +++-- poezio/core/commands.py | 2 +- poezio/core/completions.py | 2 +- poezio/core/core.py | 8 ++++---- poezio/core/handlers.py | 2 +- poezio/decorators.py | 2 +- poezio/logger.py | 10 +++++----- poezio/multiuserchat.py | 2 +- poezio/plugin.py | 4 ++-- poezio/plugin_manager.py | 10 +++++----- poezio/poezio.py | 14 +++++++------- poezio/roster.py | 8 ++++---- poezio/tabs/__init__.py | 24 ++++++++++++------------ poezio/tabs/adhoc_commands_list.py | 2 +- poezio/tabs/conversationtab.py | 2 +- poezio/tabs/listtab.py | 2 +- poezio/tabs/muclisttab.py | 2 +- poezio/tabs/muctab.py | 2 +- poezio/tabs/privatetab.py | 2 +- poezio/tabs/rostertab.py | 5 +++-- poezio/tabs/xmltab.py | 2 +- poezio/text_buffer.py | 4 ++-- poezio/user.py | 4 ++-- poezio/windows/__init__.py | 24 ++++++++++++------------ poezio/windows/bookmark_forms.py | 6 +++--- poezio/windows/data_forms.py | 4 ++-- poezio/windows/funcs.py | 2 +- poezio/windows/info_bar.py | 2 +- poezio/windows/info_wins.py | 4 ++-- poezio/windows/input_placeholders.py | 2 +- poezio/windows/inputs.py | 6 +++--- poezio/windows/list.py | 2 +- poezio/windows/misc.py | 2 +- poezio/windows/muc.py | 2 +- poezio/windows/roster_win.py | 2 +- poezio/windows/text_win.py | 6 +++--- 41 files changed, 103 insertions(+), 101 deletions(-) diff --git a/poezio/bookmarks.py b/poezio/bookmarks.py index 749705e7..81d006b7 100644 --- a/poezio/bookmarks.py +++ b/poezio/bookmarks.py @@ -33,8 +33,8 @@ import logging from slixmpp.plugins.xep_0048 import Bookmarks, Conference, URL from slixmpp import JID -from . common import safeJID -from . config import config +from poezio.common import safeJID +from poezio.config import config log = logging.getLogger(__name__) diff --git a/poezio/common.py b/poezio/common.py index 89814b8e..85bbdffe 100644 --- a/poezio/common.py +++ b/poezio/common.py @@ -11,7 +11,7 @@ Various useful functions. from datetime import datetime, timedelta from slixmpp import JID, InvalidJID -from . poezio_shlex import shlex +from poezio.poezio_shlex import shlex import base64 import os diff --git a/poezio/config.py b/poezio/config.py index 650202e5..85fc5750 100644 --- a/poezio/config.py +++ b/poezio/config.py @@ -21,7 +21,7 @@ import pkg_resources from configparser import RawConfigParser, NoOptionError, NoSectionError from os import environ, makedirs, path, remove from shutil import copy2 -from . args import parse_args +from poezio.args import parse_args DEFAULT_CONFIG = { 'Poezio': { @@ -642,7 +642,7 @@ def setup_logging(): def post_logging_setup(): # common imports slixmpp, which creates then its loggers, so # it needs to be after logger configuration - from . common import safeJID as JID + from poezio.common import safeJID as JID global safeJID safeJID = JID diff --git a/poezio/connection.py b/poezio/connection.py index 460acd73..7c39008b 100644 --- a/poezio/connection.py +++ b/poezio/connection.py @@ -20,10 +20,10 @@ import sys import slixmpp from slixmpp.plugins.xep_0184 import XEP_0184 -from . import common -from . import fixes -from . common import safeJID -from . config import config, options +from poezio import common +from poezio import fixes +from poezio.common import safeJID +from poezio.config import config, options class Connection(slixmpp.ClientXMPP): """ diff --git a/poezio/contact.py b/poezio/contact.py index 7a6d231a..883c607a 100644 --- a/poezio/contact.py +++ b/poezio/contact.py @@ -13,7 +13,7 @@ the roster. import logging log = logging.getLogger(__name__) -from . common import safeJID +from poezio.common import safeJID from collections import defaultdict class Resource(object): diff --git a/poezio/core/__init__.py b/poezio/core/__init__.py index fd3d0283..0c6d63d9 100644 --- a/poezio/core/__init__.py +++ b/poezio/core/__init__.py @@ -1,7 +1,8 @@ """ Core class, split into smaller chunks """ +__all__ = ['Core', 'Command', 'Status'] -from . core import Core -from . structs import Command, Status +from poezio.core.core import Core +from poezio.core.structs import Command, Status diff --git a/poezio/core/commands.py b/poezio/core/commands.py index 7692d115..40f0182b 100644 --- a/poezio/core/commands.py +++ b/poezio/core/commands.py @@ -27,7 +27,7 @@ from poezio.roster import roster from poezio.theming import dump_tuple, get_theme from poezio.decorators import command_args_parser -from . structs import Command, POSSIBLE_SHOW +from poezio.core.structs import Command, POSSIBLE_SHOW class CommandCore: diff --git a/poezio/core/completions.py b/poezio/core/completions.py index a1ac1801..7ee4a8a6 100644 --- a/poezio/core/completions.py +++ b/poezio/core/completions.py @@ -15,7 +15,7 @@ from poezio.common import safeJID from poezio.config import config from poezio.roster import roster -from . structs import POSSIBLE_SHOW +from poezio.core.structs import POSSIBLE_SHOW class CompletionCore: diff --git a/poezio/core/core.py b/poezio/core/core.py index 589bd2c7..b8c4f5cf 100644 --- a/poezio/core/core.py +++ b/poezio/core/core.py @@ -43,10 +43,10 @@ from poezio.text_buffer import TextBuffer from poezio.theming import get_theme from poezio import keyboard -from . completions import CompletionCore -from . commands import CommandCore -from . handlers import HandlerCore -from . structs import POSSIBLE_SHOW, DEPRECATED_ERRORS, \ +from poezio.core.completions import CompletionCore +from poezio.core.commands import CommandCore +from poezio.core.handlers import HandlerCore +from poezio.core.structs import POSSIBLE_SHOW, DEPRECATED_ERRORS, \ ERROR_AND_STATUS_CODES, Command, Status diff --git a/poezio/core/handlers.py b/poezio/core/handlers.py index 373b7b8c..70c2e59c 100644 --- a/poezio/core/handlers.py +++ b/poezio/core/handlers.py @@ -34,7 +34,7 @@ from poezio.roster import roster from poezio.text_buffer import CorrectionError, AckError from poezio.theming import dump_tuple, get_theme -from . commands import dumb_callback +from poezio.core.commands import dumb_callback try: from pygments import highlight diff --git a/poezio/decorators.py b/poezio/decorators.py index e72ffe80..344fe9ac 100644 --- a/poezio/decorators.py +++ b/poezio/decorators.py @@ -2,7 +2,7 @@ Module containing various decorators """ -from . import common +from poezio import common class RefreshWrapper(object): def __init__(self): diff --git a/poezio/logger.py b/poezio/logger.py index fba30df7..d21e9424 100644 --- a/poezio/logger.py +++ b/poezio/logger.py @@ -16,16 +16,16 @@ import re from os import makedirs from datetime import datetime -from . import common -from . config import config -from . xhtml import clean_text -from . theming import dump_tuple, get_theme +from poezio import common +from poezio.config import config +from poezio.xhtml import clean_text +from poezio.theming import dump_tuple, get_theme import logging log = logging.getLogger(__name__) -from . config import LOG_DIR as log_dir +from poezio.config import LOG_DIR as log_dir message_log_re = re.compile(r'MR (\d{4})(\d{2})(\d{2})T' r'(\d{2}):(\d{2}):(\d{2})Z ' diff --git a/poezio/multiuserchat.py b/poezio/multiuserchat.py index fc57cccb..9f231b2f 100644 --- a/poezio/multiuserchat.py +++ b/poezio/multiuserchat.py @@ -13,7 +13,7 @@ slix plugin from xml.etree import cElementTree as ET -from . common import safeJID +from poezio.common import safeJID import logging log = logging.getLogger(__name__) diff --git a/poezio/plugin.py b/poezio/plugin.py index df2fa6ee..59e4f490 100644 --- a/poezio/plugin.py +++ b/poezio/plugin.py @@ -6,8 +6,8 @@ These are used in the plugin system added in poezio 0.7.5 import os from functools import partial from configparser import RawConfigParser -from . timed_events import TimedEvent, DelayedEvent -from . import config +from poezio.timed_events import TimedEvent, DelayedEvent +from poezio import config import inspect import traceback import logging diff --git a/poezio/plugin_manager.py b/poezio/plugin_manager.py index ee587816..30fb45d2 100644 --- a/poezio/plugin_manager.py +++ b/poezio/plugin_manager.py @@ -9,10 +9,10 @@ import os from os import path import logging -from . import core -from . import tabs -from . plugin import PluginAPI -from . config import config +from poezio import core +from poezio import tabs +from poezio.plugin import PluginAPI +from poezio.config import config log = logging.getLogger(__name__) @@ -375,7 +375,7 @@ class PluginManager(object): self.load_path.append(self.plugins_dir) try: - from . import poezio_plugins + from poezio import poezio_plugins except: pass else: diff --git a/poezio/poezio.py b/poezio/poezio.py index c0ec64e0..f136785e 100644 --- a/poezio/poezio.py +++ b/poezio/poezio.py @@ -17,7 +17,7 @@ import logging sys.path.append(os.path.dirname(os.path.abspath(__file__))) -from . singleton import Singleton +from poezio.singleton import Singleton def test_curses(): """ @@ -48,7 +48,7 @@ def main(): """ sys.stdout.write("\x1b]0;poezio\x07") sys.stdout.flush() - from . import config + from poezio import config config_path = config.check_create_config_dir() config.run_cmdline_args(config_path) config.create_global_config() @@ -57,22 +57,22 @@ def main(): config.setup_logging() config.post_logging_setup() - from . config import options + from poezio.config import options if options.check_config: config.check_config() sys.exit(0) - from . import theming + from poezio import theming theming.update_themes_dir() - from . import logger + from poezio import logger logger.create_logger() - from . import roster + from poezio import roster roster.create_roster() - from . import core + from poezio import core log = logging.getLogger('') diff --git a/poezio/roster.py b/poezio/roster.py index 17a55a2a..15b3b01c 100644 --- a/poezio/roster.py +++ b/poezio/roster.py @@ -12,13 +12,13 @@ Defines the Roster and RosterGroup classes import logging log = logging.getLogger(__name__) -from . config import config -from . contact import Contact -from . roster_sorting import SORTING_METHODS, GROUP_SORTING_METHODS +from poezio.config import config +from poezio.contact import Contact +from poezio.roster_sorting import SORTING_METHODS, GROUP_SORTING_METHODS from os import path as p from datetime import datetime -from . common import safeJID +from poezio.common import safeJID from slixmpp.exceptions import IqError, IqTimeout diff --git a/poezio/tabs/__init__.py b/poezio/tabs/__init__.py index d0a881a6..4347e505 100644 --- a/poezio/tabs/__init__.py +++ b/poezio/tabs/__init__.py @@ -1,13 +1,13 @@ -from . basetabs import Tab, ChatTab, GapTab, OneToOneTab -from . basetabs import STATE_PRIORITY -from . rostertab import RosterInfoTab -from . muctab import MucTab, NS_MUC_USER -from . privatetab import PrivateTab -from . conversationtab import ConversationTab, StaticConversationTab,\ +from poezio.tabs.basetabs import Tab, ChatTab, GapTab, OneToOneTab +from poezio.tabs.basetabs import STATE_PRIORITY +from poezio.tabs.rostertab import RosterInfoTab +from poezio.tabs.muctab import MucTab, NS_MUC_USER +from poezio.tabs.privatetab import PrivateTab +from poezio.tabs.conversationtab import ConversationTab, StaticConversationTab,\ DynamicConversationTab -from . xmltab import XMLTab -from . listtab import ListTab -from . muclisttab import MucListTab -from . adhoc_commands_list import AdhocCommandsListTab -from . data_forms import DataFormsTab -from . bookmarkstab import BookmarksTab +from poezio.tabs.xmltab import XMLTab +from poezio.tabs.listtab import ListTab +from poezio.tabs.muclisttab import MucListTab +from poezio.tabs.adhoc_commands_list import AdhocCommandsListTab +from poezio.tabs.data_forms import DataFormsTab +from poezio.tabs.bookmarkstab import BookmarksTab diff --git a/poezio/tabs/adhoc_commands_list.py b/poezio/tabs/adhoc_commands_list.py index 66f0691a..4d396d84 100644 --- a/poezio/tabs/adhoc_commands_list.py +++ b/poezio/tabs/adhoc_commands_list.py @@ -7,7 +7,7 @@ nothing. import logging log = logging.getLogger(__name__) -from . import ListTab +from poezio.tabs import ListTab from slixmpp.plugins.xep_0030.stanza.items import DiscoItem diff --git a/poezio/tabs/conversationtab.py b/poezio/tabs/conversationtab.py index 95c69827..686e2d5c 100644 --- a/poezio/tabs/conversationtab.py +++ b/poezio/tabs/conversationtab.py @@ -16,7 +16,7 @@ log = logging.getLogger(__name__) import curses -from . basetabs import OneToOneTab, Tab +from poezio.tabs.basetabs import OneToOneTab, Tab from poezio import common from poezio import fixes diff --git a/poezio/tabs/listtab.py b/poezio/tabs/listtab.py index 8461f440..3e290aee 100644 --- a/poezio/tabs/listtab.py +++ b/poezio/tabs/listtab.py @@ -14,7 +14,7 @@ from poezio import windows from poezio.common import safeJID from poezio.decorators import refresh_wrapper -from . import Tab +from poezio.tabs import Tab class ListTab(Tab): diff --git a/poezio/tabs/muclisttab.py b/poezio/tabs/muclisttab.py index 0013fc9a..ec60d245 100644 --- a/poezio/tabs/muclisttab.py +++ b/poezio/tabs/muclisttab.py @@ -7,7 +7,7 @@ user to join the rooms. import logging log = logging.getLogger(__name__) -from . import ListTab +from poezio.tabs import ListTab from slixmpp.plugins.xep_0030.stanza.items import DiscoItem diff --git a/poezio/tabs/muctab.py b/poezio/tabs/muctab.py index f56f4f62..b55c1141 100644 --- a/poezio/tabs/muctab.py +++ b/poezio/tabs/muctab.py @@ -17,7 +17,7 @@ import random import re from datetime import datetime -from . import ChatTab, Tab +from poezio.tabs import ChatTab, Tab from poezio import common from poezio import fixes diff --git a/poezio/tabs/privatetab.py b/poezio/tabs/privatetab.py index ec443888..8dc1b18e 100644 --- a/poezio/tabs/privatetab.py +++ b/poezio/tabs/privatetab.py @@ -15,7 +15,7 @@ log = logging.getLogger(__name__) import curses -from . import OneToOneTab, MucTab, Tab +from poezio.tabs import OneToOneTab, MucTab, Tab from poezio import fixes from poezio import windows diff --git a/poezio/tabs/rostertab.py b/poezio/tabs/rostertab.py index f4681c5b..c5475bee 100644 --- a/poezio/tabs/rostertab.py +++ b/poezio/tabs/rostertab.py @@ -16,8 +16,6 @@ import ssl from os import getenv, path from functools import partial -from . import Tab - from poezio import common from poezio import windows from poezio.common import safeJID @@ -28,6 +26,9 @@ from poezio.roster import RosterGroup, roster from poezio.theming import get_theme, dump_tuple from poezio.decorators import command_args_parser +from poezio.tabs import Tab + + class RosterInfoTab(Tab): """ A tab, splitted in two, containing the roster and infos diff --git a/poezio/tabs/xmltab.py b/poezio/tabs/xmltab.py index 8a866d2a..e6faed4d 100644 --- a/poezio/tabs/xmltab.py +++ b/poezio/tabs/xmltab.py @@ -15,7 +15,7 @@ from slixmpp.xmlstream.tostring import tostring from slixmpp.xmlstream.stanzabase import ElementBase from xml.etree import ElementTree as ET -from . import Tab +from poezio.tabs import Tab from poezio import text_buffer from poezio import windows diff --git a/poezio/text_buffer.py b/poezio/text_buffer.py index 56832270..c459e5f3 100644 --- a/poezio/text_buffer.py +++ b/poezio/text_buffer.py @@ -12,8 +12,8 @@ import logging log = logging.getLogger(__name__) from datetime import datetime -from . config import config -from . theming import get_theme, dump_tuple +from poezio.config import config +from poezio.theming import get_theme, dump_tuple class Message: __slots__ = ('txt', 'nick_color', 'time', 'str_time', 'nickname', 'user', diff --git a/poezio/user.py b/poezio/user.py index 5509ec8a..f32f1fc9 100644 --- a/poezio/user.py +++ b/poezio/user.py @@ -13,9 +13,9 @@ An user is a MUC participant, not a roster contact (see contact.py) from random import choice from datetime import timedelta, datetime from hashlib import md5 -from . import xhtml +from poezio import xhtml -from . theming import get_theme +from poezio.theming import get_theme import logging log = logging.getLogger(__name__) diff --git a/poezio/windows/__init__.py b/poezio/windows/__init__.py index 5ec73961..463c27e1 100644 --- a/poezio/windows/__init__.py +++ b/poezio/windows/__init__.py @@ -3,18 +3,18 @@ Module exporting all the Windows, which are wrappers around curses wins used to display information on the screen """ -from . base_wins import Win -from . data_forms import FormWin -from . bookmark_forms import BookmarksWin -from . info_bar import GlobalInfoBar, VerticalGlobalInfoBar -from . info_wins import InfoWin, XMLInfoWin, PrivateInfoWin, MucListInfoWin, \ +from poezio.windows.base_wins import Win +from poezio.windows.data_forms import FormWin +from poezio.windows.bookmark_forms import BookmarksWin +from poezio.windows.info_bar import GlobalInfoBar, VerticalGlobalInfoBar +from poezio.windows.info_wins import InfoWin, XMLInfoWin, PrivateInfoWin, MucListInfoWin, \ ConversationInfoWin, DynamicConversationInfoWin, MucInfoWin, \ ConversationStatusMessageWin, BookmarksInfoWin -from . input_placeholders import HelpText, YesNoInput -from . inputs import Input, HistoryInput, MessageInput, CommandInput -from . list import ListWin, ColumnHeaderWin -from . misc import VerticalSeparator -from . muc import UserList, Topic -from . roster_win import RosterWin, ContactInfoWin -from . text_win import TextWin, XMLTextWin +from poezio.windows.input_placeholders import HelpText, YesNoInput +from poezio.windows.inputs import Input, HistoryInput, MessageInput, CommandInput +from poezio.windows.list import ListWin, ColumnHeaderWin +from poezio.windows.misc import VerticalSeparator +from poezio.windows.muc import UserList, Topic +from poezio.windows.roster_win import RosterWin, ContactInfoWin +from poezio.windows.text_win import TextWin, XMLTextWin diff --git a/poezio/windows/bookmark_forms.py b/poezio/windows/bookmark_forms.py index bef4b247..7aaee65a 100644 --- a/poezio/windows/bookmark_forms.py +++ b/poezio/windows/bookmark_forms.py @@ -3,9 +3,9 @@ Windows used inthe bookmarkstab """ import curses -from . import Win -from . inputs import Input -from . data_forms import FieldInput +from poezio.windows import Win +from poezio.windows.inputs import Input +from poezio.windows.data_forms import FieldInput from poezio.theming import to_curses_attr, get_theme from poezio.common import safeJID diff --git a/poezio/windows/data_forms.py b/poezio/windows/data_forms.py index 5b70cedc..8c4e9a7c 100644 --- a/poezio/windows/data_forms.py +++ b/poezio/windows/data_forms.py @@ -6,8 +6,8 @@ does not inherit from the Win base class), as it will create the others when needed. """ -from . import Win -from . inputs import Input +from poezio.windows import Win +from poezio.windows.inputs import Input from poezio.theming import to_curses_attr, get_theme diff --git a/poezio/windows/funcs.py b/poezio/windows/funcs.py index 8fbeafe2..949a46cd 100644 --- a/poezio/windows/funcs.py +++ b/poezio/windows/funcs.py @@ -4,7 +4,7 @@ Standalone functions used by the modules import string -from . base_wins import FORMAT_CHAR, format_chars +from poezio.windows.base_wins import FORMAT_CHAR, format_chars def find_first_format_char(text, chars=None): if chars is None: diff --git a/poezio/windows/info_bar.py b/poezio/windows/info_bar.py index dbaabdc0..ed9dc385 100644 --- a/poezio/windows/info_bar.py +++ b/poezio/windows/info_bar.py @@ -12,7 +12,7 @@ import curses from poezio.config import config -from . import Win +from poezio.windows import Win from poezio.theming import get_theme, to_curses_attr class GlobalInfoBar(Win): diff --git a/poezio/windows/info_wins.py b/poezio/windows/info_wins.py index 6a8c9d64..938128ed 100644 --- a/poezio/windows/info_wins.py +++ b/poezio/windows/info_wins.py @@ -9,8 +9,8 @@ log = logging.getLogger(__name__) from poezio.common import safeJID from poezio.config import config -from . import Win -from . funcs import truncate_nick +from poezio.windows import Win +from poezio.windows.funcs import truncate_nick from poezio.theming import get_theme, to_curses_attr class InfoWin(Win): diff --git a/poezio/windows/input_placeholders.py b/poezio/windows/input_placeholders.py index 698cee09..4617392e 100644 --- a/poezio/windows/input_placeholders.py +++ b/poezio/windows/input_placeholders.py @@ -7,7 +7,7 @@ import logging log = logging.getLogger(__name__) -from . import Win +from poezio.windows import Win from poezio.theming import get_theme, to_curses_attr diff --git a/poezio/windows/inputs.py b/poezio/windows/inputs.py index da7b53d9..51b9f4ea 100644 --- a/poezio/windows/inputs.py +++ b/poezio/windows/inputs.py @@ -11,9 +11,9 @@ import string from poezio import keyboard from poezio import common from poezio import poopt -from . import Win -from . base_wins import format_chars -from . funcs import find_first_format_char +from poezio.windows import Win +from poezio.windows.base_wins import format_chars +from poezio.windows.funcs import find_first_format_char from poezio.config import config from poezio.theming import to_curses_attr diff --git a/poezio/windows/list.py b/poezio/windows/list.py index 8e879c85..64d6a2bf 100644 --- a/poezio/windows/list.py +++ b/poezio/windows/list.py @@ -7,7 +7,7 @@ log = logging.getLogger(__name__) import curses -from . import Win +from poezio.windows import Win from poezio.theming import to_curses_attr, get_theme diff --git a/poezio/windows/misc.py b/poezio/windows/misc.py index 230c06ad..0b6bd629 100644 --- a/poezio/windows/misc.py +++ b/poezio/windows/misc.py @@ -7,7 +7,7 @@ log = logging.getLogger(__name__) import curses -from . import Win +from poezio.windows import Win from poezio.theming import get_theme, to_curses_attr class VerticalSeparator(Win): diff --git a/poezio/windows/muc.py b/poezio/windows/muc.py index 594c2157..897b9f81 100644 --- a/poezio/windows/muc.py +++ b/poezio/windows/muc.py @@ -7,7 +7,7 @@ log = logging.getLogger(__name__) import curses -from . import Win +from poezio.windows import Win from poezio import poopt from poezio.config import config diff --git a/poezio/windows/roster_win.py b/poezio/windows/roster_win.py index a8d29228..f940963c 100644 --- a/poezio/windows/roster_win.py +++ b/poezio/windows/roster_win.py @@ -7,7 +7,7 @@ log = logging.getLogger(__name__) from datetime import datetime -from . import Win +from poezio.windows import Win from poezio import common from poezio.config import config diff --git a/poezio/windows/text_win.py b/poezio/windows/text_win.py index b7186541..c03c08d0 100644 --- a/poezio/windows/text_win.py +++ b/poezio/windows/text_win.py @@ -9,9 +9,9 @@ log = logging.getLogger(__name__) import curses from math import ceil, log10 -from . import Win -from . base_wins import FORMAT_CHAR -from . funcs import truncate_nick, parse_attrs +from poezio.windows import Win +from poezio.windows.base_wins import FORMAT_CHAR +from poezio.windows.funcs import truncate_nick, parse_attrs from poezio import poopt from poezio.config import config -- cgit v1.2.3