Repository: LSYS/LexicalRichness (language: python)

Issue:
Add textblob in setup.py as requirements
Got this error when installing in a fresh virtual env

```
Python 3.7.3 (default, Dec 20 2019, 18:57:59)                                                                                                     
[GCC 8.3.0] on linux                                                                                                                              
Type "help", "copyright", "credits" or "license" for more information.                                                                            
>>> from lexicalrichness import LexicalRichness                                                                                                   
Traceback (most recent call last):                                                                                                                
  File "<stdin>", line 1, in <module>                                                                                                             
  File "~/.local/share/virtualenvs/test/lib/python3.7/site-packages/lexicalrichness/__init__.py", line 10, in <module>          
    from .lexicalrichness import *                                                                                                                
  File "~/.local/share/virtualenvs/test/lib/python3.7/site-packages/lexicalrichness/lexicalrichness.py", line 11, in <module>   
    from textblob import TextBlob                                                                                                                 
ModuleNotFoundError: No module named 'textblob'
```


Discussion / hints:

Fix patch:
diff --git a/AUTHORS.rst b/AUTHORS.rst
index d697059..4ab544c 100644
--- a/AUTHORS.rst
+++ b/AUTHORS.rst
@@ -5,9 +5,10 @@ Credits
 Development Lead
 ----------------
 
-* Shen Yan Shun (Lucas) <shen1ys@gmail.com>
+* Lucas Shen Y. S. <lucas@lucasshen.com>
 
 Contributors
 ------------
 
+* Christophe Bedetti
 * David Lesieur
diff --git a/HISTORY.rst b/HISTORY.rst
index 9f4241e..1d69e0c 100644
--- a/HISTORY.rst
+++ b/HISTORY.rst
@@ -11,3 +11,8 @@ History
 ------------------
 
 * Minor fix for compatibility issue with hyphens (ascii) in python 2.
+
+0.1.4 (2021-11-13)
+------------------
+* Add textblob in setup.py as requirements (to fix "ModuleNotFoundError: No module named 'textblob'") [Christophe Bedetti].
+* Make preprocessing and tokenization optional [David Lesieur].
\ No newline at end of file
diff --git a/README.rst b/README.rst
index 2c5cdeb..0186449 100644
--- a/README.rst
+++ b/README.rst
@@ -1,24 +1,79 @@
 ===============
 LexicalRichness
 ===============
-
-
-.. image:: https://img.shields.io/pypi/v/lexicalrichness.svg
+.. image:: https://badge.fury.io/py/lexicalrichness.svg
         :target: https://pypi.org/project/lexicalrichness/
+.. image:: https://badgen.net/github/release/Naereen/Strapdown.js
+        :target: https://github.com/LSYS/LexicalRichness.js/releases
+.. image:: https://www.codefactor.io/repository/github/lsys/lexicalrichness/badge
+        :target: https://www.codefactor.io/repository/github/lsys/lexicalrichness  
+
+
+.. image:: https://img.shields.io/lgtm/grade/python/g/LSYS/LexicalRichness.svg?logo=lgtm&logoWidth=18)
+        :target: https://lgtm.com/projects/g/LSYS/LexicalRichness/context:python
+.. image:: https://img.shields.io/pypi/pyversions/lexicalrichness   
+	:target: https://img.shields.io/pypi/pyversions/lexicalrichness  
+
+.. image:: https://img.shields.io/badge/Maintained%3F-yes-green.svg
+   :target: https://GitHub.com/Naereen/StrapDown.js/graphs/commit-activity
+
+.. |Maintenance yes| image:: https://img.shields.io/badge/Maintained%3F-yes-green.svg
+   :target: https://GitHub.com/Naereen/StrapDown.js/graphs/commit-activity
+	
+
+.. image:: https://img.shields.io/badge/PRs-welcome-brightgreen.svg
+        :target: http://makeapullrequest.com
+.. image:: https://img.shields.io/badge/License-MIT-blue.svg
+        :target: https://lbesson.mit-license.org
+.. image:: https://mybinder.org/badge_logo.svg
+        :target: https://mybinder.org/v2/gh/LSYS/lexicaldiversity-example/main?labpath=example.ipynb
+	
+	
+A small python module to compute textual lexical richness (aka lexical diversity) measures.
 
-.. image:: https://readthedocs.org/projects/lexicalrichness/badge/?version=latest
-        :target: https://lexicalrichness.readthedocs.io/en/latest/?badge=latest
-        :alt: Documentation Status
-
+Lexical richness refers to the range and variety of vocabulary deployed in a text by a speaker/writer (McCarthy and Jarvis 2007). Lexical richness is used interchangeably with lexical diversity, lexical variation, lexical density, and vocabulary richness and is measured by a wide variety of indices. Uses include (but not limited to) measuring writing quality, vocabulary knowledge (Šišková 2012), speaker competence, and socioeconomic status (McCarthy and Jarvis 2007).
 
-A small python module to compute textual lexical richness (aka lexical diversity) measures.
+.. image:: http://ForTheBadge.com/images/badges/made-with-python.svg
+   :target: https://www.python.org/
 
 Installation
 ------------
+**Install using PIP**
+
+.. code-block:: bash
+
+	pip install lexicalrichness
+
+If you encounter, 
+
+
+.. code-block:: python
+
+	ModuleNotFoundError: No module named 'textblob'
+
+install textblob:
 
 .. code-block:: bash
 
-	$ pip install lexicalrichness
+	pip install textblob
+	
+**Install manually from GitHub**
+
+.. code-block:: bash
+
+	git clone https://github.com/LSYS/LexicalRichness.git
+	cd LexicalRichness
+	pip install .
+
+
+**Run from the cloud**
+
+Try the package on the cloud (without setting anything up on your local machine) by clicking the icon here:  
+
+|mybinder|
+
+.. |mybinder| image:: https://mybinder.org/badge_logo.svg
+ :target: https://mybinder.org/v2/gh/LSYS/lexicaldiversity-example/main?labpath=example.ipynb
 
 Quickstart
 ----------
@@ -158,3 +213,48 @@ Assessing method docstrings
 	Returns
 	_______
 	float
+	
+Alternatively, just do
+
+.. code-block:: python
+
+	>>> print(lex.hdd.__doc__)
+	
+	Hypergeometric distribution diversity (HD-D) score.
+
+            For each term (t) in the text, compute the probabiltiy (p) of getting at least one appearance
+            of t with a random draw of size n < N (text size). The contribution of t to the final HD-D
+            score is p * (1/n). The final HD-D score thus sums over p * (1/n) with p computed for
+            each term t. Described in McCarthy and Javis 2007, p.g. 465-466.
+            (McCarthy and Jarvis 2007)
+
+            Parameters
+            ----------
+            draws: int
+                Number of random draws in the hypergeometric distribution (default=42).
+
+            Returns
+            -------
+            float	
+
+Contributing
+------------
+Author
+++++++
+Lucas Shen
+
+Contributors
+++++++++++++
+* `Christophe Bedetti <https://github.com/cbedetti>`__
+* `David Lesieur <https://github.com/davidlesieur>`__
+
+Contributions are welcome, and they are greatly appreciated! Every little bit helps, and credit will always be given. 
+See here for `how to contribute  <./CONTRIBUTING.rst>`__ to this project.
+See here for `Contributor Code of
+Conduct <http://contributor-covenant.org/version/1/0/0/>`__.
+
+License
+-------
+
+The package is released under the `MIT
+License <https://opensource.org/licenses/MIT>`__.
diff --git a/setup.cfg b/setup.cfg
index 3a0184b..42ed677 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -1,5 +1,5 @@
 [bumpversion]
-current_version = 0.1.3
+current_version = 0.1.4
 commit = True
 tag = True
 
diff --git a/setup.py b/setup.py
index 4fd435c..410890c 100644
--- a/setup.py
+++ b/setup.py
@@ -16,7 +16,7 @@
 
 setup(
     author="Lucas Shen YS",
-    author_email='shen1ys@gmail.com',
+    author_email='lucas@lucasshen.com',
     classifiers=[
         'Development Status :: 2 - Pre-Alpha',
         'Intended Audience :: Developers',
@@ -27,8 +27,9 @@
         'Programming Language :: Python :: 3.4',
         'Programming Language :: Python :: 3.5',
         'Programming Language :: Python :: 3.6',
+        'Programming Language :: Python :: 3.7',
     ],
-    description="A small module to compute textual lexical richness",
+    description="A small module to compute textual lexical richness (aka lexical diversity).",
     install_requires=requirements,
     license="MIT license",
     long_description=readme + '\n\n' + history,
@@ -37,6 +38,6 @@
     name='lexicalrichness',
     packages=find_packages(include=['lexicalrichness']),
     url='https://github.com/LSYS/lexicalrichness',
-    download_url='https://github.com/LSYS/lexicalrichness/archive/0.1.3.tar.gz',
-    version='0.1.3'
+    download_url='https://github.com/LSYS/lexicalrichness/archive/0.1.4.tar.gz',
+    version='0.1.4'
 )


Test patch:
diff --git a/tests/test_lexicalrichness.py b/tests/test_lexicalrichness.py
index dce94ec..a36d8b3 100644
--- a/tests/test_lexicalrichness.py
+++ b/tests/test_lexicalrichness.py
@@ -7,7 +7,7 @@
 import unittest
 
 from lexicalrichness import *
-import textblob
+# import textblob
 
 
 class TestLexicalrichness(unittest.TestCase):
@@ -41,11 +41,11 @@ def test_tokenize(self):
         self.assertIs(type(tokenize(self.s3)), list)
         self.assertIs(type(tokenize(self.emptystring)), list)
 
-    def test_blobber(self):
-        self.assertIs(type(blobber(self.s1)), textblob.blob.WordList)
-        self.assertIs(type(blobber(self.s2)), textblob.blob.WordList)
-        self.assertIs(type(blobber(self.s3)), textblob.blob.WordList)
-        self.assertIs(type(blobber(self.emptystring)), textblob.blob.WordList)
+    # def test_blobber(self):
+    #     self.assertIs(type(blobber(self.s1)), textblob.blob.WordList)
+    #     self.assertIs(type(blobber(self.s2)), textblob.blob.WordList)
+    #     self.assertIs(type(blobber(self.s3)), textblob.blob.WordList)
+    #     self.assertIs(type(blobber(self.emptystring)), textblob.blob.WordList)
 
     def test_list_sliding_window(self):
         test_list = ['a', 'b', 'c', 'd']