1304
1307
def __init__(self):
1305
1308
"""Create a ControlDirFormatRegistry."""
1306
self._aliases = set()
1307
1309
self._registration_order = list()
1308
1310
super(ControlDirFormatRegistry, self).__init__()
1311
"""Return a set of the format names which are aliases."""
1312
return frozenset(self._aliases)
1314
1312
def register(self, key, factory, help, native=True, deprecated=False,
1315
hidden=False, experimental=False, alias=False):
1313
hidden=False, experimental=False):
1316
1314
"""Register a ControlDirFormat factory.
1318
1316
The factory must be a callable that takes one parameter: the key.
1324
1322
registry.Registry.register(self, key, factory, help,
1325
1323
ControlDirFormatInfo(native, deprecated, hidden, experimental))
1327
self._aliases.add(key)
1328
1324
self._registration_order.append(key)
1326
def register_alias(self, key, target, hidden=False):
1327
"""Register a format alias.
1329
:param key: Alias name
1330
:param target: Target format
1331
:param hidden: Whether the alias is hidden
1333
info = self.get_info(target)
1334
registry.Registry.register_alias(self, key, target,
1335
ControlDirFormatInfo(
1336
native=info.native, deprecated=info.deprecated,
1337
hidden=hidden, experimental=info.experimental))
1330
1339
def register_lazy(self, key, module_name, member_name, help, native=True,
1331
deprecated=False, hidden=False, experimental=False, alias=False):
1340
deprecated=False, hidden=False, experimental=False):
1332
1341
registry.Registry.register_lazy(self, key, module_name, member_name,
1333
1342
help, ControlDirFormatInfo(native, deprecated, hidden, experimental))
1335
self._aliases.add(key)
1336
1343
self._registration_order.append(key)
1338
1345
def set_default(self, key):
1341
1348
This method must be called once and only once.
1343
registry.Registry.register(self, 'default', self.get(key),
1344
self.get_help(key), info=self.get_info(key))
1345
self._aliases.add('default')
1350
self.register_alias('default', key)
1347
1352
def set_default_repository(self, key):
1348
1353
"""Set the FormatRegistry default and Repository default.