diff --git a/src/bioregistry/data/bioregistry.json b/src/bioregistry/data/bioregistry.json index 040ce3ac8..9735114e7 100644 --- a/src/bioregistry/data/bioregistry.json +++ b/src/bioregistry/data/bioregistry.json @@ -107081,6 +107081,12 @@ } }, "silva.taxon": { + "contact": { + "email": "lorenz.reimer@dsmz.de", + "name": "Lorenz Reimer", + "orcid": "0000-0002-7805-0660" + }, + "contact_group": "contact@arb-silva.de", "contributor": { "email": "jplfaria@anl.gov", "github": "jplfaria", diff --git a/src/bioregistry/schema/struct.py b/src/bioregistry/schema/struct.py index 469234210..a2502c788 100644 --- a/src/bioregistry/schema/struct.py +++ b/src/bioregistry/schema/struct.py @@ -359,6 +359,10 @@ class Resource(BaseModel): "person and not be a listserve nor a shared email account." ), ) + contact_group: Optional[str] = Field( + default=None, + description="A group contact email for the project. It's required to have a primary contact to have this field.", + ) owners: Optional[List[Organization]] = Field( default=None, description="The owner of the corresponding identifier space. See also https://github.com/biopragmatics/" diff --git a/tests/test_data.py b/tests/test_data.py index 09d1267b3..2cfa8a067 100644 --- a/tests/test_data.py +++ b/tests/test_data.py @@ -841,6 +841,22 @@ def test_contacts(self): ) self.assert_contact_metadata(resource.contact) + def test_contact_group(self) -> None: + """Test curation of group emails.""" + for prefix, resource in self.registry.items(): + if not resource.contact_group: + continue + with self.subTest(prefix=prefix): + self.assertIsNotNone( + resource.get_contact(), + msg="All curated group contacts also require an explicit primary contact. This is to promote transparency and openness.", + ) + self.assertRegex( + resource.contact_group, + EMAIL_RE, + msg=f"Group contact email is not a valid email address in {prefix}: {resource.contact_group}", + ) + def test_wikidata_wrong_place(self): """Test that wikidata annotations aren't accidentally placed in the wrong place.""" registry_raw = json.loads(BIOREGISTRY_PATH.read_text(encoding="utf8"))