diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index c44ef76af8..5fafe82176 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -76,7 +76,7 @@ jobs: needs: [cache_nltk_data, cache_third_party] strategy: matrix: - python-version: ['3.7', '3.8', '3.9'] + python-version: [3.6, 3.7, 3.8, 3.9] os: [ubuntu-latest, macos-latest, windows-latest] fail-fast: false runs-on: ${{ matrix.os }} diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index c8ac544150..312771114f 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -10,7 +10,7 @@ repos: rev: v2.23.3 hooks: - id: pyupgrade - args: ["--py37-plus"] + args: ["--py36-plus"] - repo: https://github.com/ambv/black rev: 21.7b0 hooks: diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 7ce10d5f56..e0d667ea80 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -77,7 +77,7 @@ Summary of our git branching model: - Do many small commits on that branch locally (`git add files-changed`, `git commit -m "Add some change"`); - Run the tests to make sure nothing breaks - (`tox -e py37` if you are on Python 3.7); + (`tox -e py36` if you are on Python 3.6); - Add your name to the `AUTHORS.md` file as a contributor; - Push to your fork on GitHub (with the name as your local branch: `git push origin branch-name`); @@ -169,7 +169,7 @@ The [`.github/workflows/ci.yaml`](https://github.com/nltk/nltk/blob/develop/.git - Otherwise, download all the data packages through `nltk.download('all')`. - The `test` job - - tests against supported Python versions (`3.7`, `3.8`, `3.9`). + - tests against supported Python versions (`3.6`, `3.7`, `3.8`, `3.9`). - tests on `ubuntu-latest` and `macos-latest`. - relies on the `cache_nltk_data` job to ensure that `nltk_data` is available. - performs these steps: diff --git a/README.md b/README.md index e420af5ff8..156d60eaf2 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ NLTK -- the Natural Language Toolkit -- is a suite of open source Python modules, data sets, and tutorials supporting research and development in Natural -Language Processing. NLTK requires Python version 3.7, 3.8, 3.9 or 3.10. +Language Processing. NLTK requires Python version 3.6, 3.7, 3.8, or 3.9. For documentation, please visit [nltk.org](https://www.nltk.org/). diff --git a/nltk/__init__.py b/nltk/__init__.py index 5c7870f7c2..9573e73791 100644 --- a/nltk/__init__.py +++ b/nltk/__init__.py @@ -52,7 +52,7 @@ # Description of the toolkit, keywords, and the project's primary URL. __longdescr__ = """\ The Natural Language Toolkit (NLTK) is a Python package for -natural language processing. NLTK requires Python 3.7, 3.8, 3.9 or 3.10.""" +natural language processing. NLTK requires Python 3.6, 3.7, 3.8, or 3.9.""" __keywords__ = [ "NLP", "CL", @@ -84,10 +84,10 @@ "Intended Audience :: Science/Research", "License :: OSI Approved :: Apache Software License", "Operating System :: OS Independent", + "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", - "Programming Language :: Python :: 3.10", "Topic :: Scientific/Engineering", "Topic :: Scientific/Engineering :: Artificial Intelligence", "Topic :: Scientific/Engineering :: Human Machine Interfaces", diff --git a/setup.py b/setup.py index f64003fe95..d249118a2f 100644 --- a/setup.py +++ b/setup.py @@ -67,7 +67,7 @@ }, long_description="""\ The Natural Language Toolkit (NLTK) is a Python package for -natural language processing. NLTK requires Python 3.7, 3.8, 3.9 or 3.10.""", +natural language processing. NLTK requires Python 3.6, 3.7, 3.8, or 3.9.""", license="Apache License, Version 2.0", keywords=[ "NLP", @@ -95,10 +95,10 @@ "Intended Audience :: Science/Research", "License :: OSI Approved :: Apache Software License", "Operating System :: OS Independent", + "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", - "Programming Language :: Python :: 3.10", "Topic :: Scientific/Engineering", "Topic :: Scientific/Engineering :: Artificial Intelligence", "Topic :: Scientific/Engineering :: Human Machine Interfaces", @@ -110,7 +110,7 @@ "Topic :: Text Processing :: Linguistic", ], package_data={"nltk": ["test/*.doctest", "VERSION"]}, - python_requires=">=3.7", + python_requires=">=3.6", install_requires=[ "click", "joblib", diff --git a/tox.ini b/tox.ini index 68bfd32a66..b97d416505 100644 --- a/tox.ini +++ b/tox.ini @@ -1,9 +1,9 @@ [tox] envlist = - py{37,38,39,310} + py{36,37,38,39} pypy - py{37,38,39,310}-nodeps - py{37,38,39,310}-jenkins + py{36,37,38,39}-nodeps + py{36,37,38,39}-jenkins py-travis [testenv] @@ -51,6 +51,13 @@ deps = commands = pytest +[testenv:py36-nodeps] +basepython = python3.6 +deps = + pytest + pytest-mock +commands = pytest + [testenv:py37-nodeps] basepython = python3.7 deps = @@ -72,17 +79,18 @@ deps = pytest-mock commands = pytest -[testenv:py310-nodeps] -basepython = python3.10 -deps = - pytest - pytest-mock -commands = pytest - # Use minor version agnostic basepython, but specify testenv # control Python2/3 versions using jenkins' user-defined matrix instead. # Available Python versions: http://repository-cloudbees.forge.cloudbees.com/distributions/ci-addons/python/fc25/ +[testenv:py3.6.4-jenkins] +basepython = python3 +commands = {toxinidir}/jenkins.sh +setenv = + STANFORD_MODELS = {homedir}/third/stanford-parser/ + STANFORD_PARSER = {homedir}/third/stanford-parser/ + STANFORD_POSTAGGER = {homedir}/third/stanford-postagger/ + [testenv:py-travis] extras = all setenv = diff --git a/web/dev/local_testing.rst b/web/dev/local_testing.rst index b66bfd4d61..8e39fc4b00 100644 --- a/web/dev/local_testing.rst +++ b/web/dev/local_testing.rst @@ -25,10 +25,10 @@ Please consult https://tox.wiki for more info about the tox tool. Examples -------- -Run tests for python 3.7 in verbose mode; executing only tests +Run tests for python 3.6 in verbose mode; executing only tests that failed in the last test run:: - tox -e py37 -- -v --failed + tox -e py36 -- -v --failed Run tree doctests for all available interpreters:: @@ -42,7 +42,7 @@ By default, numpy, scipy and scikit-learn are installed in tox virtualenvs. This is slow, requires working build toolchain and is not always feasible. In order to skip numpy & friends, use ``..-nodeps`` environments:: - tox -e py37-nodeps,py37,pypy + tox -e py36-nodeps,py37,pypy It is also possible to run tests without tox. This way NLTK would be tested only under single interpreter, but it may be easier to have numpy and other diff --git a/web/install.rst b/web/install.rst index 866d8b540d..248651b9de 100644 --- a/web/install.rst +++ b/web/install.rst @@ -1,7 +1,7 @@ Installing NLTK =============== -NLTK requires Python versions 3.7, 3.8, 3.9 or 3.10 +NLTK requires Python versions 3.6, 3.7, 3.8, or 3.9 For Windows users, it is strongly recommended that you go through this guide to install Python 3 successfully https://docs.python-guide.org/starting/install3/win/#install3-windows