~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/rules.py

(jelmer) Use the absolute_import feature everywhere in bzrlib,
 and add a source test to make sure it's used everywhere. (Jelmer Vernooij)

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# Copyright (C) 2008 Canonical Ltd
 
1
# Copyright (C) 2008, 2009, 2010 Canonical Ltd
2
2
#
3
3
# This program is free software; you can redistribute it and/or modify
4
4
# it under the terms of the GNU General Public License as published by
19
19
See ``bzr help rules`` for details.
20
20
"""
21
21
 
 
22
from __future__ import absolute_import
 
23
 
22
24
from bzrlib import (
23
25
    config,
24
 
    commands,
 
26
    cmdline,
25
27
    errors,
26
28
    globbing,
27
29
    osutils,
64
66
        """
65
67
        raise NotImplementedError(self.get_selected_items)
66
68
 
 
69
    def get_single_value(self, path, preference_name):
 
70
        """Get a single preference for a single file.
 
71
        
 
72
        :returns: The string preference value, or None.
 
73
        """
 
74
        for key, value in self.get_selected_items(path, [preference_name]):
 
75
            return value
 
76
        return None
 
77
 
67
78
 
68
79
class _IniBasedRulesSearcher(_RulesSearcher):
69
80
 
74
85
 
75
86
        :param inifile: the name of the file or a sequence of lines.
76
87
        """
77
 
        options = {'encoding': 'utf-8'}
78
 
        self._cfg = configobj.ConfigObj(inifile, options=options)
 
88
        self._cfg = configobj.ConfigObj(inifile, encoding='utf-8')
79
89
        sections = self._cfg.keys()
80
90
        patterns = []
81
91
        self.pattern_to_section = {}
82
92
        for s in sections:
83
93
            if s.startswith(FILE_PREFS_PREFIX):
84
 
                file_patterns = commands.shlex_split_unicode(
85
 
                    s[FILE_PREFS_PREFIX_LEN:])
 
94
                file_patterns = cmdline.split(s[FILE_PREFS_PREFIX_LEN:])
86
95
                patterns.extend(file_patterns)
87
96
                for fp in file_patterns:
88
97
                    self.pattern_to_section[fp] = s