From ff13c24f9e7a42a6f14ac0fccb162a3c803d058c Mon Sep 17 00:00:00 2001 From: Matheus Rosa Date: Tue, 11 Dec 2018 18:34:30 +0000 Subject: [PATCH 1/4] Make sure to load/store favorites queries from/in --myclirc arg --- mycli/main.py | 3 +++ mycli/packages/special/favoritequeries.py | 4 +--- mycli/packages/special/iocommands.py | 10 +++++++++- mycli/sqlcompleter.py | 2 +- 4 files changed, 14 insertions(+), 5 deletions(-) diff --git a/mycli/main.py b/mycli/main.py index 02a63a5c..107e4531 100755 --- a/mycli/main.py +++ b/mycli/main.py @@ -116,6 +116,9 @@ def __init__(self, sqlexecute=None, prompt=None, self.multi_line = c['main'].as_bool('multi_line') self.key_bindings = c['main']['key_bindings'] special.set_timing_enabled(c['main'].as_bool('timing')) + + special.set_favorite_queries(self.config) + self.formatter = TabularOutputFormatter( format_name=c['main']['table_format']) sql_format.register_new_formatter(self.formatter) diff --git a/mycli/packages/special/favoritequeries.py b/mycli/packages/special/favoritequeries.py index bec14ecb..ed47127f 100644 --- a/mycli/packages/special/favoritequeries.py +++ b/mycli/packages/special/favoritequeries.py @@ -44,6 +44,7 @@ def get(self, name): return self.config.get(self.section_name, {}).get(name, None) def save(self, name, query): + self.config.encoding = 'utf-8' if self.section_name not in self.config: self.config[self.section_name] = {} self.config[self.section_name][name] = query @@ -56,6 +57,3 @@ def delete(self, name): return '%s: Not Found.' % name self.config.write() return '%s: Deleted' % name - -from ...config import read_config_file -favoritequeries = FavoriteQueries(read_config_file('~/.myclirc')) diff --git a/mycli/packages/special/iocommands.py b/mycli/packages/special/iocommands.py index 58a6ba9f..166e457c 100644 --- a/mycli/packages/special/iocommands.py +++ b/mycli/packages/special/iocommands.py @@ -10,10 +10,11 @@ import click import sqlparse +from configobj import ConfigObj from . import export from .main import special_command, NO_QUERY, PARSED_QUERY -from .favoritequeries import favoritequeries +from .favoritequeries import FavoriteQueries from .utils import handle_cd_command from mycli.packages.prompt_utils import confirm_destructive_query @@ -22,6 +23,7 @@ PAGER_ENABLED = True tee_file = None once_file = written_to_once_file = None +favoritequeries = FavoriteQueries(ConfigObj()) @export def set_timing_enabled(val): @@ -33,6 +35,12 @@ def set_pager_enabled(val): global PAGER_ENABLED PAGER_ENABLED = val + +@export +def set_favorite_queries(config): + global favoritequeries + favoritequeries = FavoriteQueries(config) + @export def is_pager_enabled(): return PAGER_ENABLED diff --git a/mycli/sqlcompleter.py b/mycli/sqlcompleter.py index 81ee128e..8c58c8ba 100644 --- a/mycli/sqlcompleter.py +++ b/mycli/sqlcompleter.py @@ -8,7 +8,6 @@ from .packages.completion_engine import suggest_type from .packages.parseutils import last_word -from .packages.special.favoritequeries import favoritequeries from .packages.filepaths import parse_path, complete_path, suggest_path _logger = logging.getLogger(__name__) @@ -351,6 +350,7 @@ def get_completions(self, document, complete_event, smart_completion=None): fuzzy=False) completions.extend(special) elif suggestion['type'] == 'favoritequery': + from .packages.special.iocommands import favoritequeries queries = self.find_matches(word_before_cursor, favoritequeries.list(), start_only=False, fuzzy=True) From be7d1f56d737f81240beff01c48193c77d0be5cb Mon Sep 17 00:00:00 2001 From: Matheus Rosa Date: Tue, 11 Dec 2018 18:46:31 +0000 Subject: [PATCH 2/4] Update changelog.md with bug fix --- changelog.md | 1 + 1 file changed, 1 insertion(+) diff --git a/changelog.md b/changelog.md index 6e29aa95..2291a870 100644 --- a/changelog.md +++ b/changelog.md @@ -5,6 +5,7 @@ Bug Fixes: ---------- * Fix the missing completion for special commands (Thanks: [Amjith Ramanujam]). +* Fix favorites queries being loaded/stored only from/in default config file and not --myclirc (Thanks: [Matheus Rosa]) 1.19.0 From e5ed9005e1420194dfb6d28c0f285a43a4c354f4 Mon Sep 17 00:00:00 2001 From: Matheus Rosa Date: Tue, 11 Dec 2018 22:17:58 +0000 Subject: [PATCH 3/4] Add current branch to travis when running lint() --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 0d111c04..3b4d98ca 100644 --- a/.travis.yml +++ b/.travis.yml @@ -21,7 +21,7 @@ script: - ./setup.py test --pytest-args="--cov-report= --cov=mycli" - coverage combine - coverage report - - ./setup.py lint + - ./setup.py lint --branch=$TRAVIS_BRANCH after_success: - codecov From a93cd23b3b77bd0fc8d59c7d44594e2e6bda9ef7 Mon Sep 17 00:00:00 2001 From: Matheus Rosa Date: Wed, 12 Dec 2018 12:15:26 +0000 Subject: [PATCH 4/4] Move favoritequeries import to the top in mycli/sqlcompleter.py --- mycli/sqlcompleter.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mycli/sqlcompleter.py b/mycli/sqlcompleter.py index 8c58c8ba..22ac4136 100644 --- a/mycli/sqlcompleter.py +++ b/mycli/sqlcompleter.py @@ -9,6 +9,7 @@ from .packages.completion_engine import suggest_type from .packages.parseutils import last_word from .packages.filepaths import parse_path, complete_path, suggest_path +from .packages.special.iocommands import favoritequeries _logger = logging.getLogger(__name__) @@ -350,7 +351,6 @@ def get_completions(self, document, complete_event, smart_completion=None): fuzzy=False) completions.extend(special) elif suggestion['type'] == 'favoritequery': - from .packages.special.iocommands import favoritequeries queries = self.find_matches(word_before_cursor, favoritequeries.list(), start_only=False, fuzzy=True)