diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 5fafe82176..932a4c3464 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.6, 3.7, 3.8, 3.9] + python-version: ['3.7', '3.8', '3.9', '3.10'] 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 312771114f..c8ac544150 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -10,7 +10,7 @@ repos: rev: v2.23.3 hooks: - id: pyupgrade - args: ["--py36-plus"] + args: ["--py37-plus"] - repo: https://github.com/ambv/black rev: 21.7b0 hooks: diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index e0d667ea80..7ce10d5f56 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 py36` if you are on Python 3.6); + (`tox -e py37` if you are on Python 3.7); - 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.6`, `3.7`, `3.8`, `3.9`). + - tests against supported Python versions (`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 156d60eaf2..e420af5ff8 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.6, 3.7, 3.8, or 3.9. +Language Processing. NLTK requires Python version 3.7, 3.8, 3.9 or 3.10. For documentation, please visit [nltk.org](https://www.nltk.org/). diff --git a/nltk/__init__.py b/nltk/__init__.py index 9573e73791..5c7870f7c2 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.6, 3.7, 3.8, or 3.9.""" +natural language processing. NLTK requires Python 3.7, 3.8, 3.9 or 3.10.""" __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 d249118a2f..f64003fe95 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.6, 3.7, 3.8, or 3.9.""", +natural language processing. NLTK requires Python 3.7, 3.8, 3.9 or 3.10.""", 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.6", + python_requires=">=3.7", install_requires=[ "click", "joblib", diff --git a/tox.ini b/tox.ini index b97d416505..68bfd32a66 100644 --- a/tox.ini +++ b/tox.ini @@ -1,9 +1,9 @@ [tox] envlist = - py{36,37,38,39} + py{37,38,39,310} pypy - py{36,37,38,39}-nodeps - py{36,37,38,39}-jenkins + py{37,38,39,310}-nodeps + py{37,38,39,310}-jenkins py-travis [testenv] @@ -51,13 +51,6 @@ deps = commands = pytest -[testenv:py36-nodeps] -basepython = python3.6 -deps = - pytest - pytest-mock -commands = pytest - [testenv:py37-nodeps] basepython = python3.7 deps = @@ -79,18 +72,17 @@ 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 8e39fc4b00..b66bfd4d61 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.6 in verbose mode; executing only tests +Run tests for python 3.7 in verbose mode; executing only tests that failed in the last test run:: - tox -e py36 -- -v --failed + tox -e py37 -- -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 py36-nodeps,py37,pypy + tox -e py37-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 248651b9de..866d8b540d 100644 --- a/web/install.rst +++ b/web/install.rst @@ -1,7 +1,7 @@ Installing NLTK =============== -NLTK requires Python versions 3.6, 3.7, 3.8, or 3.9 +NLTK requires Python versions 3.7, 3.8, 3.9 or 3.10 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