Пример #1
0
    def buckets(self):
        """
        Get all buckets as a dictionary of names to paths.

        :return: a dictionary of buckets.

        """
        if self._settings is not None:
            if "buckets" in self._settings:
                self._buckets = {name: eval_path(path) for name, path in self._settings["buckets"].items()}
        if self._buckets is None:
            name = "default"
            path = self._get_default_bucket_path()
            self._buckets = {name: eval_path(path)}
        return self._buckets
Пример #2
0
    def buckets(self):
        """
        Get all buckets as a dictionary of names to paths.

        :return: a dictionary of buckets.

        """
        if self._settings is not None:
            if 'buckets' in self._settings:
                self._buckets = {
                    name: eval_path(path)
                    for name, path in self._settings['buckets'].items()
                }
        if self._buckets is None:
            name = 'default'
            path = self._get_default_bucket_path()
            self._buckets = {
                name: eval_path(path),
            }
        return self._buckets
Пример #3
0
 def _get_default_bucket_path(self):
     path = os.environ.get(ENV_DEFAULT_BUCKET)
     if path is not None:
         return path
     filetypes = BUCKET_FILE_TYPES[self._backend]
     # for dev
     for ft in filetypes:
         path = os.path.join(PROJECT_PATH, "momo" + ft)
         if os.path.exists(path):
             return path
     for ft in filetypes:
         path = os.path.join(eval_path("~"), ".momo" + ft)
         if os.path.exists(path):
             return path
     self._create_default_bucket_path()
     return DEFULT_BUCKET_PATH
Пример #4
0
def do_add_path(bucket, args, parser):
    root = bucket.root
    indexer = Indexer(
        elem=root,
        parser=parser,
        names=args.names,
        unordered=True,
        cache_lines=False,
        no_output=True,
    )
    elem = indexer.get()
    path = eval_path(args.path)
    name = args.name or os.path.basename(path)
    content = OrderedDict([('path', path)])
    elem.add(name, content)
    print('file "%s" added to %s "%s"' % (name, elem.type.lower(), elem))
Пример #5
0
 def _get_default_bucket_path(self):
     path = os.environ.get(ENV_DEFAULT_BUCKET)
     if path is not None:
         return path
     filetypes = BUCKET_FILE_TYPES[self._backend]
     # for dev
     for ft in filetypes:
         path = os.path.join(PROJECT_PATH, 'momo' + ft)
         if os.path.exists(path):
             return path
     for ft in filetypes:
         path = os.path.join(eval_path('~'), '.momo' + ft)
         if os.path.exists(path):
             return path
     self._create_default_bucket_path()
     return DEFULT_BUCKET_PATH
Пример #6
0
def do_add_path(bucket, args, parser):
    root = bucket.root
    root.cache_lines = True
    indexer = Indexer(
        elem=root,
        parser=parser,
        names=args.names,
        unordered=True,
        cache_lines=False,
        no_output=True,
    )
    elem = indexer.get()
    path = eval_path(args.path)
    name = args.name or os.path.basename(path)
    content = OrderedDict([('path', path)])
    elem.add(name, content)
    print('file "%s" added to %s "%s"' % (name, elem.type.lower(), elem))
Пример #7
0
 def _get_docs(self):
     if self.momo_configs['momo_docs_dir'] is None:
         return []
     src_momo_docs_dir = eval_path(self.momo_configs['momo_docs_dir'])
     if os.path.isdir(src_momo_docs_dir):
         markdown_paths = glob.glob(os.path.join(src_momo_docs_dir, '*.md'))
         momo_docs_dir = os.path.join(
             self.docs_dir, self.momo_configs['momo_docs_pathname'])
         mkdir_p(momo_docs_dir)
         docs = []
         for markdown_path in markdown_paths:
             shutil.copy(markdown_path, momo_docs_dir)
             markdown_basename = os.path.basename(markdown_path)
             doc_title = os.path.splitext(markdown_basename)[0].title()
             doc_path = os.path.join(
                 self.momo_configs['momo_docs_pathname'], markdown_basename)
             docs.append({doc_title: doc_path})
         return [{'Docs': docs}]
Пример #8
0
 def _get_docs(self):
     if self.momo_configs['momo_docs_dir'] is None:
         return []
     src_momo_docs_dir = eval_path(self.momo_configs['momo_docs_dir'])
     if os.path.isdir(src_momo_docs_dir):
         markdown_paths = glob.glob(
             os.path.join(src_momo_docs_dir, '*.md'))
         momo_docs_dir = os.path.join(
             self.docs_dir, self.momo_configs['momo_docs_pathname'])
         mkdir_p(momo_docs_dir)
         docs = []
         for markdown_path in markdown_paths:
             shutil.copy(markdown_path, momo_docs_dir)
             markdown_basename = os.path.basename(markdown_path)
             doc_title = os.path.splitext(markdown_basename)[0].title()
             doc_path = os.path.join(
                 self.momo_configs['momo_docs_pathname'], markdown_basename
             )
             docs.append({doc_title: doc_path})
         return [{'Docs': docs}]
Пример #9
0
from momo import backends
from momo.utils import eval_path, mkdir_p
from momo.core import PLACEHOLDER, Bucket
import os
import yaml


ENV_SETTINGS_DIR = "MOMO_SETTINGS_DIR"
ENV_SETTINGS_FILE = "MOMO_SETTINGS_FILE"
ENV_DEFAULT_BUCKET = "MOMO_DEFAULT_BUCKET"
DEFULT_BUCKET_PATH = eval_path("~/.momo/buckets/default.yml")
DEFAULT_SETTINGS_DIR = eval_path("~/.momo")
DEFAULT_SETTINGS_FILE = os.path.join(DEFAULT_SETTINGS_DIR, "settings.yml")
BUCKET_FILE_TYPES = {"yaml": (".yaml", ".yml")}
PROJECT_PATH = os.path.abspath(os.path.join(os.path.dirname(__file__), os.pardir))


class SettingsError(Exception):
    pass


class Settings(object):
    """
    The Settings class.

    :param backend: the backend type

    """

    # default settings
    _defaults = {"backend": "yaml", "lazy_bucket": True, "plugins": {}, "action": "default"}
Пример #10
0
from momo import backends
from momo.utils import eval_path, mkdir_p
from momo.core import PLACEHOLDER, Bucket
import os
import yaml

ENV_SETTINGS_DIR = 'MOMO_SETTINGS_DIR'
ENV_SETTINGS_FILE = 'MOMO_SETTINGS_FILE'
ENV_DEFAULT_BUCKET = 'MOMO_DEFAULT_BUCKET'
DEFULT_BUCKET_PATH = eval_path('~/.momo/buckets/default.yml')
DEFAULT_SETTINGS_DIR = eval_path('~/.momo')
DEFAULT_SETTINGS_FILE = os.path.join(DEFAULT_SETTINGS_DIR, 'settings.yml')
BUCKET_FILE_TYPES = {'yaml': ('.yaml', '.yml')}
PROJECT_PATH = os.path.abspath(
    os.path.join(os.path.dirname(__file__), os.pardir))


class SettingsError(Exception):
    pass


class Settings(object):
    """
    The Settings class.

    :param backend: the backend type

    """

    # default settings
    _defaults = {