From 94fe934ec264a7dce1ae6bae3f67ad883ebdd040 Mon Sep 17 00:00:00 2001 From: Markus Unterwaditzer Date: Mon, 30 Jan 2017 14:09:32 +0100 Subject: [PATCH] Move docs code out of vdirsyncer --- docs/conf.py | 22 +++++++++++++++++++++- vdirsyncer/cli/utils.py | 21 --------------------- 2 files changed, 21 insertions(+), 22 deletions(-) diff --git a/docs/conf.py b/docs/conf.py index 54a7536..9e306f6 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -84,6 +84,27 @@ def github_issue_role(name, rawtext, text, lineno, inliner, return [node], [] +def format_storage_config(cls, header=True): + if header is True: + yield '[storage example_for_{}]'.format(cls.storage_name) + yield 'type = {}'.format(cls.storage_name) + + from ..storage.base import Storage + from ..utils import get_storage_init_specs + handled = set() + for spec in get_storage_init_specs(cls, stop_at=Storage): + defaults = spec.defaults or () + defaults = dict(zip(spec.args[-len(defaults):], defaults)) + for key in spec.args[1:]: + if key in handled: + continue + handled.add(key) + + comment = '' if key not in defaults else '#' + value = defaults.get(key, '...') + yield '{}{} = {}'.format(comment, key, json.dumps(value)) + + class StorageDocumenter(autodoc.ClassDocumenter): '''Custom formatter for auto-documenting storage classes. It assumes that the first line of the class' docstring is its own paragraph. @@ -111,7 +132,6 @@ class StorageDocumenter(autodoc.ClassDocumenter): '') def get_doc(self, encoding=None, ignore=1): - from vdirsyncer.cli.utils import format_storage_config rv = autodoc.ClassDocumenter.get_doc(self, encoding, ignore) config = [u' ' + x for x in format_storage_config(self.object)] rv[0] = rv[0][:1] + [u'::', u''] + config + [u''] + rv[0][1:] diff --git a/vdirsyncer/cli/utils.py b/vdirsyncer/cli/utils.py index 8e33d1b..9784c40 100644 --- a/vdirsyncer/cli/utils.py +++ b/vdirsyncer/cli/utils.py @@ -358,27 +358,6 @@ class WorkerQueue(object): return self._queue.put(f) -def format_storage_config(cls, header=True): - if header is True: - yield '[storage example_for_{}]'.format(cls.storage_name) - yield 'type = {}'.format(cls.storage_name) - - from ..storage.base import Storage - from ..utils import get_storage_init_specs - handled = set() - for spec in get_storage_init_specs(cls, stop_at=Storage): - defaults = spec.defaults or () - defaults = dict(zip(spec.args[-len(defaults):], defaults)) - for key in spec.args[1:]: - if key in handled: - continue - handled.add(key) - - comment = '' if key not in defaults else '#' - value = defaults.get(key, '...') - yield '{}{} = {}'.format(comment, key, json.dumps(value)) - - def assert_permissions(path, wanted): permissions = os.stat(path).st_mode & 0o777 if permissions > wanted: