2025-06-07 20:06:19 +02:00

23 lines
635 B
Python

from faker.providers import BaseProvider
class Provider(BaseProvider):
"""
Provider for Digital Object Identifier (DOI)
Source of info: https://en.wikipedia.org/wiki/Digital_object_identifier (English)
"""
def doi(self) -> str:
"""
Generate a valid Digital Object Identifier (DOI).
Format: 10.{4-9 digits}/{alphanumeric string}
Eg: 10.1000/xyz123
:sample:
"""
prefix = "10"
registrant = str(self.generator.random.randint(1000, 99999999))
suffix = self.generator.bothify("?#?#?##").lower()
return f"{prefix}.{registrant}/{suffix}"