From 7175063ef9a5f8399ff3a9867ea05cbde2dc90c3 Mon Sep 17 00:00:00 2001 From: Andres Torres <34612646+Ahsoka@users.noreply.github.com> Date: Mon, 14 Jun 2021 17:04:45 -0700 Subject: [PATCH 1/5] Fixed bug where `args` and `kwargs` are passed into the wrong function I believe `args` and `kwargs` are meant to be passed into the `__init__` method and not the `sentence`, `paragraph`, or `text` methods as passing any arguements there would cause a `TypeError` --- lorem/__init__.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lorem/__init__.py b/lorem/__init__.py index 966c403..4b1cb87 100644 --- a/lorem/__init__.py +++ b/lorem/__init__.py @@ -29,18 +29,18 @@ __author__ = 'Stefan Fischer' __email__ = 'sfischer13@ymail.com' -__version__ = '0.1.1' +__version__ = '0.1.1-testing' __all__ = ['sentence', 'paragraph', 'text'] def sentence(*args, **kwargs): - return _Lorem().sentence(*args, **kwargs) + return _Lorem(*args, **kwargs).sentence() def paragraph(*args, **kwargs): - return _Lorem().paragraph(*args, **kwargs) + return _Lorem(*args, **kwargs).paragraph() def text(*args, **kwargs): - return _Lorem().text(*args, **kwargs) + return _Lorem(*args, **kwargs).text() From 592a9559a42ecb3b6e02db3e1a2a735a96ef78b5 Mon Sep 17 00:00:00 2001 From: Andres Torres <34612646+Ahsoka@users.noreply.github.com> Date: Mon, 14 Jun 2021 17:06:26 -0700 Subject: [PATCH 2/5] Changed __init__ method in TextLorem to be PEP8 compliant --- lorem/text.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/lorem/text.py b/lorem/text.py index 3da4be8..b380db9 100644 --- a/lorem/text.py +++ b/lorem/text.py @@ -4,9 +4,16 @@ class TextLorem(): - def __init__(self, wsep=' ', ssep=' ', psep='\n\n', - srange=(4, 8), prange=(5, 10), trange=(3, 6), - words=None): + def __init__( + self, + wsep=' ', + ssep=' ', + psep='\n\n', + srange=(4, 8), + prange=(5, 10), + trange=(3, 6), + words=None + ): self._wsep = wsep self._ssep = ssep self._psep = psep From 7c85b1d65e53edf90da732a3724e4f591b973403 Mon Sep 17 00:00:00 2001 From: Andres Torres <34612646+Ahsoka@users.noreply.github.com> Date: Mon, 14 Jun 2021 17:43:57 -0700 Subject: [PATCH 3/5] Added typing information --- lorem/__init__.py | 62 ++++++++++++++++++++++++++++++++++++++++++----- lorem/text.py | 24 +++++++++--------- 2 files changed, 69 insertions(+), 17 deletions(-) diff --git a/lorem/__init__.py b/lorem/__init__.py index 4b1cb87..1dfb7cc 100644 --- a/lorem/__init__.py +++ b/lorem/__init__.py @@ -26,6 +26,8 @@ """ from .text import TextLorem as _Lorem +from collections.abc import Sequence +from typing import Tuple __author__ = 'Stefan Fischer' __email__ = 'sfischer13@ymail.com' @@ -34,13 +36,61 @@ __all__ = ['sentence', 'paragraph', 'text'] -def sentence(*args, **kwargs): - return _Lorem(*args, **kwargs).sentence() +def sentence( + wsep: str = ' ', + ssep: str = ' ', + psep: str = '\n\n', + srange: Tuple[int, int] = (4, 8), + prange: Tuple[int, int] = (5, 10), + trange: Tuple[int, int] = (3, 6), + words: Sequence[str] = None +) -> str: + return _Lorem( + wsep=wsep, + ssep=ssep, + psesp=psep, + srange=srange, + prange=prange, + trange=trange, + words=words + ).sentence() -def paragraph(*args, **kwargs): - return _Lorem(*args, **kwargs).paragraph() +def paragraph( + wsep: str = ' ', + ssep: str = ' ', + psep: str = '\n\n', + srange: Tuple[int, int] = (4, 8), + prange: Tuple[int, int] = (5, 10), + trange: Tuple[int, int] = (3, 6), + words: Sequence[str] = None +): + return _Lorem( + wsep=wsep, + ssep=ssep, + psesp=psep, + srange=srange, + prange=prange, + trange=trange, + words=words + ).paragraph() -def text(*args, **kwargs): - return _Lorem(*args, **kwargs).text() +def text( + wsep: str = ' ', + ssep: str = ' ', + psep: str = '\n\n', + srange: Tuple[int, int] = (4, 8), + prange: Tuple[int, int] = (5, 10), + trange: Tuple[int, int] = (3, 6), + words: Sequence[str] = None +): + return _Lorem( + wsep=wsep, + ssep=ssep, + psesp=psep, + srange=srange, + prange=prange, + trange=trange, + words=words + ).text() diff --git a/lorem/text.py b/lorem/text.py index b380db9..1d73094 100644 --- a/lorem/text.py +++ b/lorem/text.py @@ -1,18 +1,20 @@ import random +from collections.abc import Sequence +from typing import Tuple from .data import WORDS class TextLorem(): def __init__( self, - wsep=' ', - ssep=' ', - psep='\n\n', - srange=(4, 8), - prange=(5, 10), - trange=(3, 6), - words=None + wsep: str = ' ', + ssep: str = ' ', + psep: str = '\n\n', + srange: Tuple[int, int] = (4, 8), + prange: Tuple[int, int] = (5, 10), + trange: Tuple[int, int] = (3, 6), + words: Sequence[str] = None ): self._wsep = wsep self._ssep = ssep @@ -25,20 +27,20 @@ def __init__( else: self._words = WORDS - def sentence(self): + def sentence(self) -> str: n = random.randint(*self._srange) s = self._wsep.join(self._word() for _ in range(n)) return s[0].upper() + s[1:] + '.' - def paragraph(self): + def paragraph(self) -> str: n = random.randint(*self._prange) p = self._ssep.join(self.sentence() for _ in range(n)) return p - def text(self): + def text(self) -> str: n = random.randint(*self._trange) t = self._psep.join(self.paragraph() for _ in range(n)) return t - def _word(self): + def _word(self) -> str: return random.choice(self._words) From ada359d4c737c2daeaa112f9c6d39cf4df4211f7 Mon Sep 17 00:00:00 2001 From: Andres Torres <34612646+Ahsoka@users.noreply.github.com> Date: Mon, 14 Jun 2021 17:45:26 -0700 Subject: [PATCH 4/5] Changed version to 0.1.2 --- lorem/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lorem/__init__.py b/lorem/__init__.py index 1dfb7cc..48b8308 100644 --- a/lorem/__init__.py +++ b/lorem/__init__.py @@ -31,7 +31,7 @@ __author__ = 'Stefan Fischer' __email__ = 'sfischer13@ymail.com' -__version__ = '0.1.1-testing' +__version__ = '0.1.2' __all__ = ['sentence', 'paragraph', 'text'] From 5252a5819fcdf87955794a4f1d06284d152e2c8a Mon Sep 17 00:00:00 2001 From: Andres Torres <34612646+Ahsoka@users.noreply.github.com> Date: Mon, 14 Jun 2021 18:03:44 -0700 Subject: [PATCH 5/5] Added support for Python 3.5 and up (before this only supported Python 3.9 and up) --- lorem/__init__.py | 10 ++++++++-- lorem/text.py | 3 +-- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/lorem/__init__.py b/lorem/__init__.py index 48b8308..c8ede48 100644 --- a/lorem/__init__.py +++ b/lorem/__init__.py @@ -24,10 +24,16 @@ The project was initiated by Stefan Fischer. """ +import sys +if sys.version_info.minor >= 9: + # INFO: See this for more info + # https://www.python.org/dev/peps/pep-0585/ + from collections.abc import Sequence + Tuple = tuple +else: + from typing import Tuple, Sequence from .text import TextLorem as _Lorem -from collections.abc import Sequence -from typing import Tuple __author__ = 'Stefan Fischer' __email__ = 'sfischer13@ymail.com' diff --git a/lorem/text.py b/lorem/text.py index 1d73094..e738286 100644 --- a/lorem/text.py +++ b/lorem/text.py @@ -1,7 +1,6 @@ import random -from collections.abc import Sequence -from typing import Tuple +from . import Sequence, Tuple from .data import WORDS