Mercurial > hg > config
comparison python/hgrc.py @ 904:30006a5583fa
fix hgrc.py for python3
author | Jeff Hammel <k0scist@gmail.com> |
---|---|
date | Thu, 11 Apr 2024 08:23:38 -0700 |
parents | 6da7d26e257b |
children |
comparison
equal
deleted
inserted
replaced
903:08da6a1bb4c9 | 904:30006a5583fa |
---|---|
37 ### global methods | 37 ### global methods |
38 | 38 |
39 def isHTTP(path): | 39 def isHTTP(path): |
40 """is path an {http,https}:// URL?""" | 40 """is path an {http,https}:// URL?""" |
41 return urlparse.urlsplit(path)[0] in ('http', 'https') | 41 return urlparse.urlsplit(path)[0] in ('http', 'https') |
42 | |
42 | 43 |
43 class section(object): | 44 class section(object): |
44 def __init__(self, section_name, *section_names): | 45 def __init__(self, section_name, *section_names): |
45 self.sections = [section_name] | 46 self.sections = [section_name] |
46 self.sections.extend(section_names) | 47 self.sections.extend(section_names) |
56 @section('paths') | 57 @section('paths') |
57 def set_default(parser, default): | 58 def set_default(parser, default): |
58 """set [paths]:default""" | 59 """set [paths]:default""" |
59 parser.set('paths', 'default', default) | 60 parser.set('paths', 'default', default) |
60 | 61 |
62 | |
61 @section('paths') | 63 @section('paths') |
62 def set_default_push(parser, default_push): | 64 def set_default_push(parser, default_push): |
63 """ | 65 """ |
64 set [paths]:default-push to `default_push` | 66 set [paths]:default-push to `default_push` |
65 """ | 67 """ |
66 parser.set('paths', 'default-push', default_push) | 68 parser.set('paths', 'default-push', default_push) |
69 | |
67 | 70 |
68 def set_default_push_to_ssh(parser): | 71 def set_default_push_to_ssh(parser): |
69 """ | 72 """ |
70 set `[paths]:default-push` to that given by `[paths]:default` but | 73 set `[paths]:default-push` to that given by `[paths]:default` but |
71 turn the protocol to 'ssh' | 74 turn the protocol to 'ssh' |
173 else: | 176 else: |
174 assert os.path.isfile(path), "%s is not a file, exiting" % path | 177 assert os.path.isfile(path), "%s is not a file, exiting" % path |
175 hgrc.append(path) | 178 hgrc.append(path) |
176 | 179 |
177 # raise errors if encountered | 180 # raise errors if encountered |
178 if filter(None, errors.values()): | 181 _errors = list(filter(None, errors.values())) |
182 if _errors: | |
183 print('errors encountered: {}'.format(_errors)) | |
179 for key, value in errors.items(): | 184 for key, value in errors.items(): |
180 if value: | 185 if value: |
181 print ('%s: %s' % (key, ', '.join(value))) | 186 print('%s: %s' % (key, ', '.join(value))) |
182 parser.exit(1) | 187 parser.exit(1) |
183 | 188 |
184 # construct ConfigParser objects and | 189 # construct ConfigParser objects and |
185 # ensure that all the files are parseable | 190 # ensure that all the files are parseable |
186 config = {} | 191 config = {} |
187 for path in hgrc: | 192 for path in hgrc: |
188 config[path] = ConfigParser() | 193 config[path] = ConfigParser() |
189 if isinstance(path, basestring): | 194 if isinstance(path, str): |
190 if os.path.exists(path): | 195 if os.path.exists(path): |
191 config[path].read(path) | 196 config[path].read(path) |
192 elif path in urls: | 197 elif path in urls: |
193 if 'default' not in actions: | 198 if 'default' not in actions: |
194 set_default(config[path], path) | 199 set_default(config[path], path) |