From c55a85a615d288b056b1a79e547df2b38f555697 Mon Sep 17 00:00:00 2001 From: Markus Scheidgen <markus.scheidgen@gmail.com> Date: Fri, 23 Aug 2024 13:06:43 +0200 Subject: [PATCH] Limited package registration to python. --- nomad/metainfo/metainfo.py | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/nomad/metainfo/metainfo.py b/nomad/metainfo/metainfo.py index 83a20b3094..5e384bb67d 100644 --- a/nomad/metainfo/metainfo.py +++ b/nomad/metainfo/metainfo.py @@ -4083,15 +4083,17 @@ class Package(Definition): def __init_metainfo__(self): super().__init_metainfo__() - # register the package and all its aliases - if Package.registry.get(self.name, None) is not self: - for alias in self.aliases + [self.name]: - if alias in Package.registry and 'pytest' not in sys.modules: - existing_package = Package.registry[alias] - raise MetainfoError( - f'Package {alias} is already registered for package {existing_package}.' - ) - Package.registry[alias] = self + # register the package and all its aliases for python packages + if self.name and re.match(r'^\w+(\.\w+)*$', self.name): + if Package.registry.get(self.name, None) is not self: + for alias in self.aliases + [self.name]: + if alias in Package.registry and 'pytest' not in sys.modules: + existing_package = Package.registry[alias] + raise MetainfoError( + f'Package {alias} is already registered for ' + f'package {existing_package}.' + ) + Package.registry[alias] = self # access potential SectionProxies to resolve them for content in self.m_all_contents(): -- GitLab