From b4051147ee9d7ef655d2f84954f4b702b6b5c3e3 Mon Sep 17 00:00:00 2001 From: Helmut Merz Date: Sat, 22 Mar 2025 11:02:36 +0100 Subject: [PATCH] server.browser.register: allow for explicit string prefixes as context types --- scopes/server/browser.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/scopes/server/browser.py b/scopes/server/browser.py index 1b74dfb..8d6eac1 100644 --- a/scopes/server/browser.py +++ b/scopes/server/browser.py @@ -6,14 +6,16 @@ from scopes.interfaces import IContainer, IReference, IView views = {} # registry for all views: {name: {prefix: viewClass, ...}, ...} -def register(name, *contextClasses): - """Use as decorator: `@register(name, class, ...). - class `None` means default view for all classes.""" +def register(name, *contextTypes): + """Use as decorator: `@register(name, class_or_prefix, ...). + No class (or `None` or `''`) means default view for all classes.""" def doRegister(factory): implementer(IView)(factory) nameEntry = views.setdefault(name, {}) - for cl in contextClasses: - nameEntry[cl.prefix] = factory + for ct in contextTypes: + if not isinstance(ct, string): + ct = ct.prefix + nameEntry[ct] = factory else: nameEntry[''] = factory return factory