| OLD | NEW |
| 1 """Config file for coverage.py""" | 1 """Config file for coverage.py""" |
| 2 | 2 |
| 3 import os, re, sys | 3 import os, re, sys |
| 4 from coverage.backward import string_class, iitems | 4 from coverage.backward import string_class, iitems |
| 5 | 5 |
| 6 # In py3, # ConfigParser was renamed to the more-standard configparser | 6 # In py3, # ConfigParser was renamed to the more-standard configparser |
| 7 try: | 7 try: |
| 8 import configparser # pylint: disable=F0401 | 8 import configparser # pylint: disable=F0401 |
| 9 except ImportError: | 9 except ImportError: |
| 10 import ConfigParser as configparser | 10 import ConfigParser as configparser |
| (...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 104 self.attempted_config_files = [] | 104 self.attempted_config_files = [] |
| 105 self.config_files = [] | 105 self.config_files = [] |
| 106 | 106 |
| 107 # Defaults for [run] | 107 # Defaults for [run] |
| 108 self.branch = False | 108 self.branch = False |
| 109 self.cover_pylib = False | 109 self.cover_pylib = False |
| 110 self.data_file = ".coverage" | 110 self.data_file = ".coverage" |
| 111 self.parallel = False | 111 self.parallel = False |
| 112 self.timid = False | 112 self.timid = False |
| 113 self.source = None | 113 self.source = None |
| 114 self.debug = [] |
| 114 | 115 |
| 115 # Defaults for [report] | 116 # Defaults for [report] |
| 116 self.exclude_list = DEFAULT_EXCLUDE[:] | 117 self.exclude_list = DEFAULT_EXCLUDE[:] |
| 117 self.ignore_errors = False | 118 self.ignore_errors = False |
| 118 self.include = None | 119 self.include = None |
| 119 self.omit = None | 120 self.omit = None |
| 120 self.partial_list = DEFAULT_PARTIAL[:] | 121 self.partial_list = DEFAULT_PARTIAL[:] |
| 121 self.partial_always_list = DEFAULT_PARTIAL_ALWAYS[:] | 122 self.partial_always_list = DEFAULT_PARTIAL_ALWAYS[:] |
| 122 self.precision = 0 | 123 self.precision = 0 |
| 123 self.show_missing = False | 124 self.show_missing = False |
| (...skipping 11 matching lines...) Expand all Loading... |
| 135 | 136 |
| 136 def from_environment(self, env_var): | 137 def from_environment(self, env_var): |
| 137 """Read configuration from the `env_var` environment variable.""" | 138 """Read configuration from the `env_var` environment variable.""" |
| 138 # Timidity: for nose users, read an environment variable. This is a | 139 # Timidity: for nose users, read an environment variable. This is a |
| 139 # cheap hack, since the rest of the command line arguments aren't | 140 # cheap hack, since the rest of the command line arguments aren't |
| 140 # recognized, but it solves some users' problems. | 141 # recognized, but it solves some users' problems. |
| 141 env = os.environ.get(env_var, '') | 142 env = os.environ.get(env_var, '') |
| 142 if env: | 143 if env: |
| 143 self.timid = ('--timid' in env) | 144 self.timid = ('--timid' in env) |
| 144 | 145 |
| 145 MUST_BE_LIST = ["omit", "include"] | 146 MUST_BE_LIST = ["omit", "include", "debug"] |
| 146 | 147 |
| 147 def from_args(self, **kwargs): | 148 def from_args(self, **kwargs): |
| 148 """Read config values from `kwargs`.""" | 149 """Read config values from `kwargs`.""" |
| 149 for k, v in iitems(kwargs): | 150 for k, v in iitems(kwargs): |
| 150 if v is not None: | 151 if v is not None: |
| 151 if k in self.MUST_BE_LIST and isinstance(v, string_class): | 152 if k in self.MUST_BE_LIST and isinstance(v, string_class): |
| 152 v = [v] | 153 v = [v] |
| 153 setattr(self, k, v) | 154 setattr(self, k, v) |
| 154 | 155 |
| 155 def from_file(self, filename): | 156 def from_file(self, filename): |
| (...skipping 15 matching lines...) Expand all Loading... |
| 171 # [paths] is special | 172 # [paths] is special |
| 172 if cp.has_section('paths'): | 173 if cp.has_section('paths'): |
| 173 for option in cp.options('paths'): | 174 for option in cp.options('paths'): |
| 174 self.paths[option] = cp.getlist('paths', option) | 175 self.paths[option] = cp.getlist('paths', option) |
| 175 | 176 |
| 176 CONFIG_FILE_OPTIONS = [ | 177 CONFIG_FILE_OPTIONS = [ |
| 177 # [run] | 178 # [run] |
| 178 ('branch', 'run:branch', 'boolean'), | 179 ('branch', 'run:branch', 'boolean'), |
| 179 ('cover_pylib', 'run:cover_pylib', 'boolean'), | 180 ('cover_pylib', 'run:cover_pylib', 'boolean'), |
| 180 ('data_file', 'run:data_file'), | 181 ('data_file', 'run:data_file'), |
| 182 ('debug', 'run:debug', 'list'), |
| 181 ('include', 'run:include', 'list'), | 183 ('include', 'run:include', 'list'), |
| 182 ('omit', 'run:omit', 'list'), | 184 ('omit', 'run:omit', 'list'), |
| 183 ('parallel', 'run:parallel', 'boolean'), | 185 ('parallel', 'run:parallel', 'boolean'), |
| 184 ('source', 'run:source', 'list'), | 186 ('source', 'run:source', 'list'), |
| 185 ('timid', 'run:timid', 'boolean'), | 187 ('timid', 'run:timid', 'boolean'), |
| 186 | 188 |
| 187 # [report] | 189 # [report] |
| 188 ('exclude_list', 'report:exclude_lines', 'linelist'), | 190 ('exclude_list', 'report:exclude_lines', 'linelist'), |
| 189 ('ignore_errors', 'report:ignore_errors', 'boolean'), | 191 ('ignore_errors', 'report:ignore_errors', 'boolean'), |
| 190 ('include', 'report:include', 'list'), | 192 ('include', 'report:include', 'list'), |
| (...skipping 11 matching lines...) Expand all Loading... |
| 202 # [xml] | 204 # [xml] |
| 203 ('xml_output', 'xml:output'), | 205 ('xml_output', 'xml:output'), |
| 204 ] | 206 ] |
| 205 | 207 |
| 206 def set_attr_from_config_option(self, cp, attr, where, type_=''): | 208 def set_attr_from_config_option(self, cp, attr, where, type_=''): |
| 207 """Set an attribute on self if it exists in the ConfigParser.""" | 209 """Set an attribute on self if it exists in the ConfigParser.""" |
| 208 section, option = where.split(":") | 210 section, option = where.split(":") |
| 209 if cp.has_option(section, option): | 211 if cp.has_option(section, option): |
| 210 method = getattr(cp, 'get'+type_) | 212 method = getattr(cp, 'get'+type_) |
| 211 setattr(self, attr, method(section, option)) | 213 setattr(self, attr, method(section, option)) |
| OLD | NEW |