コード例 #1
0
ファイル: Registry.py プロジェクト: TopRamenGod/echomesh
 def join_keys(self, command_only=True, load=True):
     words = []
     for key, entry in self._registry.items():
         load and entry.resolve_function()
         if (not command_only) or entry.function:
             words.append(key)
     return Join.join_words(words)
コード例 #2
0
ファイル: Command.py プロジェクト: florian-f/echomesh
def usage():
  result = ['Valid commands are:', REGISTRY.join_keys()]
  aliases = Aliases.instance()
  if aliases:
    result.append('\nand aliases are:')
    result.append(Join.join_words(aliases))
  return ' '.join(result)
コード例 #3
0
def usage():
    result = ['Valid commands are:', Registry.registry().join_keys()]
    aliases = Aliases.instance()
    if aliases:
        result.append('\nand aliases are:')
        result.append(Join.join_words(aliases))
    return ' '.join(result)
コード例 #4
0
ファイル: Settings.py プロジェクト: sagistrauss/echomesh
def save(log=True):
    if get('execution', 'autosave'):
        files = MERGE_SETTINGS.save()
        if log and files:
            print('Settings automatically saved to',
                  Join.join_file_names(files))
        return files
コード例 #5
0
ファイル: Settings.py プロジェクト: TopRamenGod/echomesh
def save(log=True):
    if get('execution', 'autosave'):
        files = MERGE_SETTINGS.save()
        if log and files:
            print(
                'Settings automatically saved to', Join.join_file_names(files))
        return files
コード例 #6
0
ファイル: Registry.py プロジェクト: sagistrauss/echomesh
 def join_keys(self, command_only=True, load=True):
     words = []
     for key, entry in self._registry.items():
         load and entry.resolve_function()
         if (not command_only) or entry.function:
             words.append(key)
     return Join.join_words(words)
コード例 #7
0
ファイル: Save.py プロジェクト: florian-f/echomesh
def save(_, *values):
  if values:
    SetConfig.set_config(_, *values)
  files = Config.save(False)
  if files:
    LOGGER.info('Configuration saved to %s.', Join.join_file_names(files))
  else:
    LOGGER.error('There are no configuration changes to save.')
コード例 #8
0
def save(_, *values):
    if values:
        SetSettings.set_settings(_, *values)
    files = Settings.save(False)
    if files:
        LOGGER.info('Settings saved to %s.', Join.join_file_names(files))
    else:
        LOGGER.error('There are no settings changes to save.')
コード例 #9
0
ファイル: Error.py プロジェクト: TopRamenGod/echomesh
def not_accessed(logger, element, not_accessed_items, element_type):
    if not_accessed_items:
        score = element.get_root().get_property('score') or ''
        if len(not_accessed_items) == 1:
            err = _NOT_ACCESSED_ERROR_SINGLE
        else:
            err = _NOT_ACCESSED_ERROR
        logger.error(
            err, element_type, score, Join.join_words(not_accessed_items))
コード例 #10
0
ファイル: Error.py プロジェクト: sagistrauss/echomesh
def not_accessed(logger, element, not_accessed_items, element_type):
    if not_accessed_items:
        score = element.get_root().get_property('score') or ''
        if len(not_accessed_items) == 1:
            err = _NOT_ACCESSED_ERROR_SINGLE
        else:
            err = _NOT_ACCESSED_ERROR
        logger.error(err, element_type, score,
                     Join.join_words(not_accessed_items))
コード例 #11
0
ファイル: Entry.py プロジェクト: TopRamenGod/echomesh
    def help(self):
        help = self.help_text

        if self.name == 'commands':  # HACK.
            help += self.registry.join_keys()

        help = help or self.name
        if self.see_also:
            also = Join.join_words('"help %s"' % h for h in self.see_also)
            help = '%s\n\nSee also: %s\n' % (help, also)

        return help
コード例 #12
0
    def help(self):
        help = self.help_text

        if self.name == 'commands':  # HACK.
            help += self.registry.join_keys()

        help = help or self.name
        if self.see_also:
            also = Join.join_words('"help %s"' % h for h in self.see_also)
            help = '%s\n\nSee also: %s\n' % (help, also)

        return help
コード例 #13
0
ファイル: Registry.py プロジェクト: dasbavaria/echomesh
  def get_help(self, name):
    full_name, (_, help_text, see_also) = self._get(name)

    if full_name == 'commands':  # HACK.
      help_text += self.join_keys()

    help_text = help_text or full_name

    if see_also:
      also = Join.join_words('"help %s"' % h for h in see_also)
      return '%s\n\nSee also: %s\n' % (help_text, also)
    else:
      return help_text
コード例 #14
0
ファイル: GetPrefix.py プロジェクト: dasbavaria/echomesh
def get_prefix(table, name, allow_prefixes=True):
  """
  Looks up an entry in a table where unique prefixes are allowed.
  """
  result = table.get(name, _NONE)
  if result is not _NONE:
    return name, result

  if allow_prefixes:
    results = [(k, v) for (k, v) in table.iteritems() if k.startswith(name)]
    if len(results) == 1:
      return results[0]
    elif len(results) > 1:
      words = sorted(x[0] for x in results)
      cmds = Join.join_words(words)
      raise PrefixException('"%s" matches more than one: %s.' % (name, cmds))
  raise PrefixException('"%s" is not valid.' % (name))
コード例 #15
0
ファイル: GetPrefix.py プロジェクト: TopRamenGod/echomesh
def get_prefix(table, key, allow_prefixes=True, exception_prefix=''):
    """
    Looks up an entry in a table where unique prefixes are allowed.
    """
    result = table.get(key, _NONE)
    if result is not _NONE:
        return key, result

    if allow_prefixes:
        results = [(k, v) for (k, v) in six.iteritems(table)
                   if k.startswith(key)]
        if len(results) == 1:
            return results[0]
        elif len(results) > 1:
            words = sorted(x[0] for x in results)
            cmds = Join.join_words(words)
            raise PrefixException(key, exception_prefix,
                                  '"%s" matches more than one:' % key, cmds)
    raise PrefixException(key, exception_prefix, '"%s" is not valid' % key)
コード例 #16
0
def get_prefix(table, key, allow_prefixes=True, exception_prefix=''):
    """
    Looks up an entry in a table where unique prefixes are allowed.
    """
    result = table.get(key, _NONE)
    if result is not _NONE:
        return key, result

    if allow_prefixes:
        results = [(k, v) for (k, v) in six.iteritems(table)
                   if k.startswith(key)]
        if len(results) == 1:
            return results[0]
        elif len(results) > 1:
            words = sorted(x[0] for x in results)
            cmds = Join.join_words(words)
            raise PrefixException(key, exception_prefix,
                                  '"%s" matches more than one:' % key, cmds)
    raise PrefixException(key, exception_prefix, '"%s" is not valid' % key)
コード例 #17
0
ファイル: Load.py プロジェクト: dasbavaria/echomesh
def make_one(parent, description):
  description = Dict.Access(_resolve_extensions(description))
  t = description.get('type', '').lower()
  if not t:
    raise Exception('No type field in element %s' % description)

  element_class = _REGISTRY.get(t)
  if not element_class:
    _REGISTRY.dump()
    raise Exception('No element class for type %s' % t)

  element = element_class(parent, description)
  not_accessed = description.not_accessed()
  if not_accessed:
    score = element.get_root().get_property('score') or ''
    if len(not_accessed) == 1:
      error = NOT_ACCESSED_ERROR_SINGLE
    else:
      error = NOT_ACCESSED_ERROR
    LOGGER.error(error, t, score, Join.join_words(not_accessed))

  return element
コード例 #18
0
ファイル: GetSettings.py プロジェクト: TopRamenGod/echomesh
def get_settings(_, *items):
    failures = []
    if items:
        successes = []
        for i in items:
            parts = i.split('.')
            try:
                value = Settings.get(*parts)
            except:
                failures.append(i)
            else:
                successes.append([i, value])
    else:
        assignments = Settings.assignments().items()
        successes = [('.'.join(s), v) for s, v in assignments]

    if successes or failures:
        for value, result in successes:
            LOGGER.info('%s=%s', value, result)
        if failures:
            LOGGER.error('Didn\'t understand %s', Join.join_words(failures))
        LOGGER.info('')
    else:
        LOGGER.info('No settings variables have been set.\n')
コード例 #19
0
ファイル: GetSettings.py プロジェクト: sagistrauss/echomesh
def get_settings(_, *items):
    failures = []
    if items:
        successes = []
        for i in items:
            parts = i.split('.')
            try:
                value = Settings.get(*parts)
            except:
                failures.append(i)
            else:
                successes.append([i, value])
    else:
        assignments = Settings.assignments().items()
        successes = [('.'.join(s), v) for s, v in assignments]

    if successes or failures:
        for value, result in successes:
            LOGGER.info('%s=%s', value, result)
        if failures:
            LOGGER.error('Didn\'t understand %s', Join.join_words(failures))
        LOGGER.info('')
    else:
        LOGGER.info('No settings variables have been set.\n')
コード例 #20
0
ファイル: Join_test.py プロジェクト: florian-f/echomesh
 def test_three(self):
   self.assertEqual(Join.join_words(['apples', 'oranges', 'pears']),
                                    'apples, oranges, and pears')
コード例 #21
0
ファイル: Join_test.py プロジェクト: sagistrauss/echomesh
 def test_two(self):
     self.assertEqual(Join.join_words(['hello', 'goodbye']),
                                      'goodbye and hello')
コード例 #22
0
def _perform(action, echomesh_instance, parts):
    names = echomesh_instance.score_master.perform(action, parts)
    if names:
        LOGGER.info('%s %s.', action.capitalize(), Join.join_words(names))
    else:
        LOGGER.error('%s: no results.', action)
コード例 #23
0
ファイル: Join_test.py プロジェクト: sagistrauss/echomesh
 def test_empty(self):
     self.assertEqual(Join.join_words([]), '')
コード例 #24
0
ファイル: Join_test.py プロジェクト: sagistrauss/echomesh
 def test_three(self):
     self.assertEqual(Join.join_words(['apples', 'oranges', 'pears']),
                                      'apples, oranges, and pears')
コード例 #25
0
ファイル: Registry.py プロジェクト: dasbavaria/echomesh
 def join_keys(self, command_only=True):
   w = (k for (k, v) in self.registry.iteritems()
        if (not command_only) or v[0])
   return Join.join_words(w)
コード例 #26
0
ファイル: Join_test.py プロジェクト: sagistrauss/echomesh
 def test_one(self):
     self.assertEqual(Join.join_words(['hello']), 'hello')
コード例 #27
0
ファイル: Join_test.py プロジェクト: florian-f/echomesh
 def test_two(self):
   self.assertEqual(Join.join_words(['hello', 'goodbye']),
                                    'goodbye and hello')
コード例 #28
0
ファイル: Join_test.py プロジェクト: florian-f/echomesh
 def test_one(self):
   self.assertEqual(Join.join_words(['hello']), 'hello')
コード例 #29
0
ファイル: Config.py プロジェクト: florian-f/echomesh
def save(log=True):
  if get('autosave'):
    files = _MERGE_CONFIG.save()
    if log and files:
      print('Configuration automatically saved to', Join.join_file_names(files))
    return files
コード例 #30
0
ファイル: Join_test.py プロジェクト: florian-f/echomesh
 def test_empty(self):
   self.assertEqual(Join.join_words([]), '')
コード例 #31
0
ファイル: Registry.py プロジェクト: florian-f/echomesh
  def keys(self):
    return self._registry.keys()

    return Join.join_words(words)