summaryrefslogtreecommitdiff
path: root/venv/lib/python3.11/site-packages/faker/providers/isbn/isbn.py
diff options
context:
space:
mode:
authorcyfraeviolae <cyfraeviolae>2024-04-03 03:17:55 -0400
committercyfraeviolae <cyfraeviolae>2024-04-03 03:17:55 -0400
commit12cf076118570eebbff08c6b3090e0d4798447a1 (patch)
tree3ba25e17e3c3a5e82316558ba3864b955919ff72 /venv/lib/python3.11/site-packages/faker/providers/isbn/isbn.py
parentc45662ff3923b34614ddcc8feb9195541166dcc5 (diff)
no venv
Diffstat (limited to 'venv/lib/python3.11/site-packages/faker/providers/isbn/isbn.py')
-rw-r--r--venv/lib/python3.11/site-packages/faker/providers/isbn/isbn.py85
1 files changed, 0 insertions, 85 deletions
diff --git a/venv/lib/python3.11/site-packages/faker/providers/isbn/isbn.py b/venv/lib/python3.11/site-packages/faker/providers/isbn/isbn.py
deleted file mode 100644
index b712a83..0000000
--- a/venv/lib/python3.11/site-packages/faker/providers/isbn/isbn.py
+++ /dev/null
@@ -1,85 +0,0 @@
-"""
-This module is responsible for generating the check digit and formatting
-ISBN numbers.
-"""
-from typing import Any, Optional
-
-
-class ISBN:
- MAX_LENGTH = 13
-
- def __init__(
- self,
- ean: Optional[str] = None,
- group: Optional[str] = None,
- registrant: Optional[str] = None,
- publication: Optional[str] = None,
- ) -> None:
- self.ean = ean
- self.group = group
- self.registrant = registrant
- self.publication = publication
-
-
-class ISBN13(ISBN):
- def __init__(self, *args: Any, **kwargs: Any) -> None:
- super().__init__(*args, **kwargs)
- self.check_digit = self._check_digit()
-
- def _check_digit(self) -> str:
- """Calculate the check digit for ISBN-13.
- See https://en.wikipedia.org/wiki/International_Standard_Book_Number
- for calculation.
- """
- weights = (1 if x % 2 == 0 else 3 for x in range(12))
- body = "".join([part for part in [self.ean, self.group, self.registrant, self.publication] if part is not None])
- remainder = sum(int(b) * w for b, w in zip(body, weights)) % 10
- diff = 10 - remainder
- check_digit = 0 if diff == 10 else diff
- return str(check_digit)
-
- def format(self, separator: str = "") -> str:
- return separator.join(
- [
- part
- for part in [
- self.ean,
- self.group,
- self.registrant,
- self.publication,
- self.check_digit,
- ]
- if part is not None
- ]
- )
-
-
-class ISBN10(ISBN):
- def __init__(self, *args: Any, **kwargs: Any) -> None:
- super().__init__(*args, **kwargs)
- self.check_digit = self._check_digit()
-
- def _check_digit(self) -> str:
- """Calculate the check digit for ISBN-10.
- See https://en.wikipedia.org/wiki/International_Standard_Book_Number
- for calculation.
- """
- weights = range(1, 10)
- body = "".join([part for part in [self.group, self.registrant, self.publication] if part is not None])
- remainder = sum(int(b) * w for b, w in zip(body, weights)) % 11
- check_digit = "X" if remainder == 10 else str(remainder)
- return str(check_digit)
-
- def format(self, separator: str = "") -> str:
- return separator.join(
- [
- part
- for part in [
- self.group,
- self.registrant,
- self.publication,
- self.check_digit,
- ]
- if part is not None
- ]
- )