From 2f460a9128ee5c880dcbc52fd2b8de3fe393720a Mon Sep 17 00:00:00 2001 From: Dan Ryan Date: Wed, 29 Apr 2020 02:39:06 -0400 Subject: [PATCH] Add sphinx spellcheck addon (#4209) Co-Authored-By: Frost Ming Co-Authored-By: Sumana Harihareswara --- CHANGELOG.rst | 64 ++++++++++++++-------------- Pipfile | 1 + Pipfile.lock | 68 ++++++++++++++++++++++++++++- RELEASING.md | 14 ++++++ docs/advanced.rst | 12 +++--- docs/conf.py | 4 +- docs/dev/contributing.rst | 8 ++-- docs/dev/philosophy.rst | 2 +- docs/diagnose.rst | 4 +- docs/index.rst | 2 +- docs/install.rst | 4 +- docs/spelling_wordlist.txt | 87 ++++++++++++++++++++++++++++++++++++++ news/4209.doc.rst | 1 + pipenv/cli/command.py | 12 +++--- pipenv/cli/options.py | 8 ++-- pipenv/environments.py | 4 +- 16 files changed, 234 insertions(+), 61 deletions(-) create mode 100644 docs/spelling_wordlist.txt create mode 100644 news/4209.doc.rst diff --git a/CHANGELOG.rst b/CHANGELOG.rst index c00ba932a4..476ab20bdf 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -10,14 +10,14 @@ Bug Fixes - Fixed a bug which could cause failures to occur when parsing python entries from global pyenv version files. `#3224 `_ - Fixed an issue which prevented the parsing of named extras sections from certain ``setup.py`` files. `#3230 `_ - Correctly detect the virtualenv location inside an activated virtualenv. `#3231 `_ -- Fixed a bug which caused spinner frames to be written to stdout during locking operations which could cause redirection pipes to fail. `#3239 `_ -- Fixed a bug that editable pacakges can't be uninstalled correctly. `#3240 `_ +- Fixed a bug which caused spinner frames to be written to standard output during locking operations which could cause redirection pipes to fail. `#3239 `_ +- Fixed a bug that editable packages can't be uninstalled correctly. `#3240 `_ - Corrected an issue with installation timeouts which caused dependency resolution to fail for longer duration resolution steps. `#3244 `_ - Adding normal pep 508 compatible markers is now fully functional when using VCS dependencies. `#3249 `_ -- Updated ``requirementslib`` and ``pythonfinder`` for multiple bugfixes. `#3254 `_ +- Updated ``requirementslib`` and ``pythonfinder`` for multiple bug fixes. `#3254 `_ - Pipenv will now ignore hashes when installing with ``--skip-lock``. `#3255 `_ - Fixed an issue where pipenv could crash when multiple pipenv processes attempted to create the same directory. `#3257 `_ -- Fixed an issue which sometimes prevented successful creation of project pipfiles. `#3260 `_ +- Fixed an issue which sometimes prevented successful creation of a project Pipfile. `#3260 `_ - ``pipenv install`` will now unset the ``PYTHONHOME`` environment variable when not combined with ``--system``. `#3261 `_ - Pipenv will ensure that warnings do not interfere with the resolution process by suppressing warnings' usage of standard output and writing to standard error instead. `#3273 `_ - Fixed an issue which prevented variables from the environment, such as ``PIPENV_DEV`` or ``PIPENV_SYSTEM``, from being parsed and implemented correctly. `#3278 `_ @@ -43,16 +43,16 @@ Features & Improvements - Improved exceptions and error handling on failures. `#1977 `_ - Added persistent settings for all CLI flags via ``PIPENV_{FLAG_NAME}`` environment variables by enabling ``auto_envvar_prefix=PIPENV`` in click (implements PEEP-0002). `#2200 `_ - Added improved messaging about available but skipped updates due to dependency conflicts when running ``pipenv update --outdated``. `#2411 `_ -- Added environment variable `PIPENV_PYUP_API_KEY` to add ability - to override the bundled pyup.io API key. `#2825 `_ -- Added additional output to ``pipenv update --outdated`` to indicate that the operation succeded and all packages were already up to date. `#2828 `_ +- Added environment variable ``PIPENV_PYUP_API_KEY`` to add ability + to override the bundled PyUP.io API key. `#2825 `_ +- Added additional output to ``pipenv update --outdated`` to indicate that the operation succeeded and all packages were already up to date. `#2828 `_ - Updated ``crayons`` patch to enable colors on native powershell but swap native blue for magenta. `#3020 `_ - Added support for ``--bare`` to ``pipenv clean``, and fixed ``pipenv sync --bare`` to actually reduce output. `#3041 `_ - Added windows-compatible spinner via upgraded ``vistir`` dependency. `#3089 `_ - - Added support for python installations managed by ``asdf``. `#3096 `_ - Improved runtime performance of no-op commands such as ``pipenv --venv`` by around 2/3. `#3158 `_ - Do not show error but success for running ``pipenv uninstall --all`` in a fresh virtual environment. `#3170 `_ -- Improved asynchronous installation and error handling via queued subprocess paralleization. `#3217 `_ +- Improved asynchronous installation and error handling via queued subprocess parallelization. `#3217 `_ Bug Fixes --------- @@ -60,7 +60,7 @@ Bug Fixes - Remote non-PyPI artifacts and local wheels and artifacts will now include their own hashes rather than including hashes from ``PyPI``. `#2394 `_ - Non-ascii characters will now be handled correctly when parsed by pipenv's ``ToML`` parsers. `#2737 `_ - Updated ``pipenv uninstall`` to respect the ``--skip-lock`` argument. `#2848 `_ -- Fixed a bug which caused uninstallation to sometimes fail to successfullly remove packages from ``Pipfiles`` with comments on preceding or following lines. `#2885 `_, +- Fixed a bug which caused uninstallation to sometimes fail to successfully remove packages from ``Pipfiles`` with comments on preceding or following lines. `#2885 `_, `#3099 `_ - Pipenv will no longer fail when encountering python versions on Windows that have been uninstalled. `#2983 `_ - Fixed unnecessary extras are added when translating markers `#3026 `_ @@ -79,7 +79,7 @@ Bug Fixes - Fixed an issue which caused ``pipenv clean`` to sometimes clean packages from the base ``site-packages`` folder or fail entirely. `#3113 `_ - Updated ``pythonfinder`` to correct an issue with unnesting of nested paths when searching for python versions. `#3121 `_ - Added additional logic for ignoring and replacing non-ascii characters when formatting console output on non-UTF-8 systems. `#3131 `_ -- Fix virtual environment discovery when `PIPENV_VENV_IN_PROJECT` is set, but the in-project `.venv` is a file. `#3134 `_ +- Fix virtual environment discovery when ``PIPENV_VENV_IN_PROJECT`` is set, but the in-project `.venv` is a file. `#3134 `_ - Hashes for remote and local non-PyPI artifacts will now be included in ``Pipfile.lock`` during resolution. `#3145 `_ - Fix project path hashing logic in purpose to prevent collisions of virtual environments. `#3151 `_ - Fix package installation when the virtual environment path contains parentheses. `#3158 `_ @@ -166,7 +166,7 @@ Features & Improvements - Added environment variables `PIPENV_VERBOSE` and `PIPENV_QUIET` to control output verbosity without needing to pass options. `#2527 `_ -- Updated test-pypi addon to better support json-api access (forward compatibility). +- Updated test-PyPI add-on to better support json-API access (forward compatibility). Improved testing process for new contributors. `#2568 `_ - Greatly enhanced python discovery functionality: @@ -202,11 +202,11 @@ Behavior Changes Bug Fixes --------- -- Fixed a bug which prevented installation of editable requirements using ``ssh://`` style urls `#1393 `_ +- Fixed a bug which prevented installation of editable requirements using ``ssh://`` style URLs `#1393 `_ - VCS Refs for locked local editable dependencies will now update appropriately to the latest hash when running ``pipenv update``. `#1690 `_ -- ``.tar.gz`` and ``.zip`` artifacts will now have dependencies installed even when they are missing from the lockfile. `#2173 `_ +- ``.tar.gz`` and ``.zip`` artifacts will now have dependencies installed even when they are missing from the Lockfile. `#2173 `_ - The command line parser will now handle multiple ``-e/--editable`` dependencies properly via click's option parser to help mitigate future parsing issues. `#2279 `_ @@ -230,12 +230,12 @@ Bug Fixes - Fix subshell invocation on Windows for Python 2. `#2515 `_ -- Fixed a bug which sometimes caused pipenv to throw a ``TypeError`` or to run into encoding issues when writing lockfiles on python 2. `#2561 `_ +- Fixed a bug which sometimes caused pipenv to throw a ``TypeError`` or to run into encoding issues when writing a Lockfile on python 2. `#2561 `_ - Improve quoting logic for ``pipenv run`` so it works better with Windows built-in commands. `#2563 `_ -- Fixed a bug related to parsing vcs requirements with both extras and subdirectory fragments. +- Fixed a bug related to parsing VCS requirements with both extras and subdirectory fragments. Corrected an issue in the ``requirementslib`` parser which led to some markers being discarded rather than evaluated. `#2564 `_ - Fixed multiple issues with finding the correct system python locations. `#2582 `_ @@ -264,7 +264,7 @@ Bug Fixes - Fixed a bug which could cause the ``-e/--editable`` argument on a dependency to be accidentally parsed as a dependency itself. `#2714 `_ -- Correctly pass `verbose` and `debug` flags to the resolver subprocess so it generates appropriate output. This also resolves a bug introduced by the fix to #2527. `#2732 `_ +- Correctly pass ``verbose`` and ``debug`` flags to the resolver subprocess so it generates appropriate output. This also resolves a bug introduced by the fix to #2527. `#2732 `_ - All markers are now included in ``pipenv lock --requirements`` output. `#2748 `_ @@ -273,7 +273,7 @@ Bug Fixes - Fixed a bug in the dependency resolver which caused regular issues when handling ``setup.py`` based dependency resolution. `#2766 `_ - Updated vendored dependencies: - - ``pip-tools`` (updated and patched to latest w/ ``pip 18.0`` compatibilty) + - ``pip-tools`` (updated and patched to latest w/ ``pip 18.0`` compatibility) - ``pip 10.0.1 => 18.0`` - ``click 6.7 => 7.0`` - ``toml 0.9.4 => 0.10.0`` @@ -327,7 +327,7 @@ Vendored Libraries - ``python-dotenv`` to ``0.9.1`` `#2639 `_ - Updated vendored dependencies: - - ``pip-tools`` (updated and patched to latest w/ ``pip 18.0`` compatibilty) + - ``pip-tools`` (updated and patched to latest w/ ``pip 18.0`` compatibility) - ``pip 10.0.1 => 18.0`` - ``click 6.7 => 7.0`` - ``toml 0.9.4 => 0.10.0`` @@ -353,7 +353,7 @@ Improved Documentation - Simplified the test configuration process. `#2568 `_ -- Updated documentation to use working fortune cookie addon. `#2644 `_ +- Updated documentation to use working fortune cookie add-on. `#2644 `_ - Added additional information about troubleshooting ``pipenv shell`` by using the the ``$PIPENV_SHELL`` environment variable. `#2671 `_ @@ -364,7 +364,7 @@ Improved Documentation - Stopped recommending `--system` for Docker contexts. `#2762 `_ - Fixed the example url for doing "pipenv install -e - some-repo-url#egg=something", it was missing the "egg=" in the fragment + some-repository-url#egg=something", it was missing the "egg=" in the fragment identifier. `#2792 `_ - Fixed link to the "be cordial" essay in the contribution documentation. `#2793 `_ @@ -382,37 +382,37 @@ Features & Improvements - All calls to ``pipenv shell`` are now implemented from the ground up using `shellingham `_, a custom library which was purpose built to handle edge cases and shell detection. `#2371 `_ -- Added support for python 3.7 via a few small compatibility / bugfixes. `#2427 `_, +- Added support for python 3.7 via a few small compatibility / bug fixes. `#2427 `_, `#2434 `_, `#2436 `_ - Added new flag ``pipenv --support`` to replace the diagnostic command ``python -m pipenv.help``. `#2477 `_, `#2478 `_ -- Improved import times and CLI runtimes with minor tweaks. `#2485 `_ +- Improved import times and CLI run times with minor tweaks. `#2485 `_ Bug Fixes --------- -- Fixed an ongoing bug which sometimes resolved incompatible versions into lockfiles. `#1901 `_ +- Fixed an ongoing bug which sometimes resolved incompatible versions into the project Lockfile. `#1901 `_ - Fixed a bug which caused errors when creating virtualenvs which contained leading dash characters. `#2415 `_ -- Fixed a logic error which caused ``--deploy --system`` to overwrite editable vcs packages in the pipfile before installing, which caused any installation to fail by default. `#2417 `_ +- Fixed a logic error which caused ``--deploy --system`` to overwrite editable vcs packages in the Pipfile before installing, which caused any installation to fail by default. `#2417 `_ - Updated requirementslib to fix an issue with properly quoting markers in VCS requirements. `#2419 `_ - Installed new vendored jinja2 templates for ``click-completion`` which were causing template errors for users with completion enabled. `#2422 `_ -- Added support for python 3.7 via a few small compatibility / bugfixes. `#2427 `_ +- Added support for python 3.7 via a few small compatibility / bug fixes. `#2427 `_ - Fixed an issue reading package names from ``setup.py`` files in projects which imported utilities such as ``versioneer``. `#2433 `_ - Pipenv will now ensure that its internal package names registry files are written with unicode strings. `#2450 `_ - Fixed a bug causing requirements input as relative paths to be output as absolute paths or URIs. - Fixed a bug affecting normalization of ``git+git@host`` uris. `#2453 `_ + Fixed a bug affecting normalization of ``git+git@host`` URLs. `#2453 `_ - Pipenv will now always use ``pathlib2`` for ``Path`` based filesystem interactions by default on ``python<3.5``. `#2454 `_ @@ -479,7 +479,7 @@ Features & Improvements patched piptools version. `#2255 `_ -- PyPI mirror URLs can now be set to override instances of PyPI urls by passing +- PyPI mirror URLs can now be set to override instances of PyPI URLs by passing the ``--pypi-mirror`` argument from the command line or setting the ``PIPENV_PYPI_MIRROR`` environment variable. `#2281 `_ @@ -518,7 +518,7 @@ Behavior Changes - Pipenv will now parse & capitalize ``platform_python_implementation`` markers .. warning:: This could cause an issue if you have an out of date ``Pipfile`` - which lowercases the comparison value (e.g. ``cpython`` instead of + which lower-cases the comparison value (e.g. ``cpython`` instead of ``CPython``). `#2123 `_ - Pipenv will now only search for ``requirements.txt`` files when creating new @@ -572,7 +572,7 @@ Bug Fixes - Fixed a bug causing pipenv graph to fail to display sometimes. `#2268 `_ -- Updated ``requirementslib`` to fix a bug in pipfile parsing affecting +- Updated ``requirementslib`` to fix a bug in Pipfile parsing affecting relative path conversions. `#2269 `_ @@ -590,11 +590,11 @@ Bug Fixes requested ref. `#2304 `_ - Added error handling functionality to properly cope with single-digit - ``Requires-Python`` metatdata with no specifiers. `#2377 + ``Requires-Python`` metadata with no specifiers. `#2377 `_ - ``pipenv update`` will now always run the resolver and lock before ensuring - your dependencies are in sync with your lockfile. `#2379 + dependencies are in sync with project Lockfile. `#2379 `_ - Resolved a bug in our patched resolvers which could cause nondeterministic @@ -631,7 +631,7 @@ Vendored Libraries patched piptools version. `#2255 `_ -- Updated ``requirementslib`` to fix a bug in pipfile parsing affecting +- Updated ``requirementslib`` to fix a bug in Pipfile parsing affecting relative path conversions. `#2269 `_ diff --git a/Pipfile b/Pipfile index 826df207d7..f46243c7c9 100644 --- a/Pipfile +++ b/Pipfile @@ -8,6 +8,7 @@ jedi = "*" isort = "*" rope = "*" passa = {git = "https://github.com/sarugaku/passa.git"} +sphinxcontrib-spelling = "<4.3.0" [packages] diff --git a/Pipfile.lock b/Pipfile.lock index 913f12e849..1a936698cb 100644 --- a/Pipfile.lock +++ b/Pipfile.lock @@ -1,7 +1,7 @@ { "_meta": { "hash": { - "sha256": "f4d89c0aab5c4e865f8c96ba24613fb1e66bae803a3ceaeadb6abf0061898091" + "sha256": "e3e8319381b7b60d8c841564b12ed69b9ab85a81de1241e0361a8e9f7486f162" }, "pipfile-spec": 6, "requires": {}, @@ -554,6 +554,21 @@ ], "version": "==5.4.5" }, + "pep517": { + "hashes": [ + "sha256:576c480be81f3e1a70a16182c762311eb80d1f8a7b0d11971e5234967d7a342c", + "sha256:8e6199cf1288d48a0c44057f112acf18aa5ebabbf73faa242f598fbe145ba29e" + ], + "version": "==0.8.2" + }, + "pip-shims": { + "hashes": [ + "sha256:39193b8c4aa5e4cb82e250be58df4d5eaebe931a33b0df43b369f4ae92ee5753", + "sha256:423978c27d0e24e8ecb3e82b4a6c1f607e2e364153e73d0803c671d48b23195e" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", + "version": "==0.5.2" + }, "pipenv": { "editable": true, "extras": [ @@ -612,6 +627,15 @@ "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", "version": "==2.20" }, + "pyenchant": { + "hashes": [ + "sha256:e8000144e61551fcab9cd1b6fdccdded20e577e8d6d0985533f0b2b9c38fd952", + "sha256:b9526fc2c5f1ba0637e50200b645a7c20fb6644dbc6f6322027e7d2fbf1084a5", + "sha256:fc31cda72ace001da8fe5d42f11c26e514a91fa8c70468739216ddd8de64e2a0", + "sha256:9a66aa441535e27d228baca320f7feed1b08d0c5e6167d5e5cf455b545b7c2cd" + ], + "version": "==2.0.0" + }, "pyflakes": { "hashes": [ "sha256:17dbeb2e3f4d772725c777fabc446d5634d1038f234e77343108ce445ea69ce0", @@ -734,6 +758,21 @@ ], "version": "==0.9.1" }, + "requirementslib": { + "hashes": [ + "sha256:4999223a26504e0a3cedf9b58def69eae3a93d39db945a85e2135e0239e28fa8", + "sha256:b9989e4815ada8ed71f5d4059e4e6be6f864fb57de744c04ac3d0c744df52304" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", + "version": "==1.5.7" + }, + "resolvelib": { + "hashes": [ + "sha256:8ea817c951ffced489e71be10310c99eee36ff3dca02c24cd0dfe9e42d366da6", + "sha256:9781c2038be2ba3377d075dd3aa8f5f0f7b508b6f59779b1414bea08ed402f1e" + ], + "version": "==0.3.0" + }, "retry": { "hashes": [ "sha256:ccddf89761fa2c726ab29391837d4327f819ea14d244c232a1d24c67a2f98606", @@ -821,6 +860,14 @@ "index": "pypi", "version": "==2.3.2" }, + "sphinxcontrib-spelling": { + "hashes": [ + "sha256:7bcbaabef7aa9c176b81d960b20d0f67817ccea5e098968c366d2db4ad76d476", + "sha256:d76b113d538ad55b9e9e5a8e68d3734473926306edfdad3f707cece44d9b5d29" + ], + "index": "pypi", + "version": "==4.2.1" + }, "sphinxcontrib-websupport": { "hashes": [ "sha256:1501befb0fdf1d1c29a800fdbf4ef5dc5369377300ddbdd16d2cd40e54c6eefc", @@ -850,6 +897,14 @@ ], "version": "==0.10.0" }, + "tomlkit": { + "hashes": [ + "sha256:74f976908030ff164c0aa1edabe3bf83ea004b3daa5b0940b9c86a060c004e9a", + "sha256:e5d5f20809c2b09276a6c5d98fb0202325aee441a651db84ac12e0812ab7e569" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", + "version": "==0.6.0" + }, "towncrier": { "hashes": [ "sha256:48251a1ae66d2cf7e6fa5552016386831b3e12bb3b2d08eb70374508c17a8196", @@ -933,6 +988,17 @@ "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", "version": "==0.5.4" }, + "vistir": { + "extras": [ + "spinner" + ], + "hashes": [ + "sha256:33f8e905d40a77276b3d5310c8b57c1479a4e46930042b4894fcf7ed60ad76c4", + "sha256:e47afdec8baf35032a8d17116765f751ecd2f2146d47e5af457c5de1fe5a334e" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", + "version": "==0.5.0" + }, "wcwidth": { "hashes": [ "sha256:cafe2186b3c009a04067022ce1dcd79cb38d8d65ee4f4791b8888d6599d1bbe1", diff --git a/RELEASING.md b/RELEASING.md index 3ba623174f..379fd9754f 100644 --- a/RELEASING.md +++ b/RELEASING.md @@ -105,6 +105,20 @@ $ export PIPENV_PYTHON=2.7 $ pipenv install --dev && pytest -ra tests ``` +## Check Spelling in Documentation + +Pipenv now leverages `sphinxcontrib.spelling` to help ensure documentation does not contain typographical mistakes. To validate documentation, please make sure to rebuild and rectify any documentation issues before pushing the new release: + +```console +$ pipenv shell +$ cd docs +$ make clean && make html +$ make spelling +``` + +Validate the results, adding any new exceptions to `docs/spelling_wordlist.txt`. + + ## Releasing 1. Set a version: `pipenv run inv release.bump-version --trunc-month --pre --tag=a` - this will truncate the current month, creating an alpha pre-release, e.g. `2020.4.1a1` diff --git a/docs/advanced.rst b/docs/advanced.rst index 25bbdf6d60..a4c0afba0c 100644 --- a/docs/advanced.rst +++ b/docs/advanced.rst @@ -41,7 +41,7 @@ Very fancy. ☤ Using a PyPI Mirror ---------------------------- -If you'd like to override the default PyPI index urls with the url for a PyPI mirror, you can use the following:: +If you would like to override the default PyPI index URLs with the URL for a PyPI mirror, you can use the following:: $ pipenv install --pypi-mirror @@ -467,7 +467,7 @@ In addition, you can also have Pipenv stick the virtualenv in ``project/.venv`` Pipenv is being used in projects like `Requests`_ for declaring development dependencies and running the test suite. -We've currently tested deployments with both `Travis-CI`_ and `tox`_ with success. +We have currently tested deployments with both `Travis-CI`_ and `tox`_ with success. Travis CI ///////// @@ -549,11 +549,11 @@ A 3rd party plugin, `tox-pipenv`_ is also available to use Pipenv natively with ☤ Shell Completion ------------------ -To enable completion in fish, add this to your config:: +To enable completion in fish, add this to your configuration:: eval (pipenv --completion) -Alternatively, with bash or zsh, add this to your config:: +Alternatively, with bash or zsh, add this to your configuration:: eval "$(pipenv --completion)" @@ -587,9 +587,9 @@ at all, use the `PIP_IGNORE_INSTALLED` setting:: There is a subtle but very important distinction to be made between **applications** and **libraries**. This is a very common source of confusion in the Python community. -Libraries provide reusable functionality to other libraries and applications (let's use the umbrella term **projects** here). They are required to work alongside other libraries, all with their own set of subdependencies. They define **abstract dependencies**. To avoid version conflicts in subdependencies of different libraries within a project, libraries should never ever pin dependency versions. Although they may specify lower or (less frequently) upper bounds, if they rely on some specific feature/fix/bug. Library dependencies are specified via ``install_requires`` in ``setup.py``. +Libraries provide reusable functionality to other libraries and applications (let's use the umbrella term **projects** here). They are required to work alongside other libraries, all with their own set of sub-dependencies. They define **abstract dependencies**. To avoid version conflicts in sub-dependencies of different libraries within a project, libraries should never ever pin dependency versions. Although they may specify lower or (less frequently) upper bounds, if they rely on some specific feature/fix/bug. Library dependencies are specified via ``install_requires`` in ``setup.py``. -Libraries are ultimately meant to be used in some **application**. Applications are different in that they usually are not depended on by other projects. They are meant to be deployed into some specific environment and only then should the exact versions of all their dependencies and subdependencies be made concrete. To make this process easier is currently the main goal of Pipenv. +Libraries are ultimately meant to be used in some **application**. Applications are different in that they usually are not depended on by other projects. They are meant to be deployed into some specific environment and only then should the exact versions of all their dependencies and sub-dependencies be made concrete. To make this process easier is currently the main goal of Pipenv. To summarize: diff --git a/docs/conf.py b/docs/conf.py index 90e16afeef..4031c337c9 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -18,7 +18,6 @@ # import os - # Path hackery to get current version number. here = os.path.abspath(os.path.dirname(__file__)) @@ -41,6 +40,7 @@ 'sphinx.ext.coverage', 'sphinx.ext.viewcode', 'sphinx_click.ext', + 'sphinxcontrib.spelling', ] # Add any paths that contain templates here, relative to this directory. @@ -87,6 +87,8 @@ # If true, `todo` and `todoList` produce output, else they produce nothing. todo_include_todos = True +spelling_word_list_filename = "spelling_wordlist.txt" +spelling_show_suggestions = True # -- Options for HTML output ---------------------------------------------- diff --git a/docs/dev/contributing.rst b/docs/dev/contributing.rst index fb116696c1..5979924508 100644 --- a/docs/dev/contributing.rst +++ b/docs/dev/contributing.rst @@ -118,10 +118,10 @@ To get your development environment setup, run: pipenv install --dev -This will install the repo version of Pipenv and then install the development +This will install the repository version of Pipenv and then install the development dependencies. Once that has completed, you can start developing. -The repo version of Pipenv must be installed over other global versions to +The repository version of Pipenv must be installed over other global versions to resolve conflicts with the ``pipenv`` folder being implicitly added to ``sys.path``. See `pypa/pipenv#2557`_ for more details. @@ -152,7 +152,7 @@ tests, the standard pytest filters are available, such as: Code Review ~~~~~~~~~~~ -Contributions will not be merged until they've been code reviewed. You should +Contributions will not be merged until they have been code reviewed. You should implement any code review feedback unless you strongly object to it. In the event that you object to the code review feedback, you should make your case clearly and calmly. If, after doing so, the feedback is judged to still apply, @@ -205,7 +205,7 @@ be aware of the following things when filing bug reports: to check whether your bug report or feature request has been mentioned in the past. Duplicate bug reports and feature requests are a huge maintenance burden on the limited resources of the project. If it is clear from your - report that you would have struggled to find the original, that's ok, but + report that you would have struggled to find the original, that's okay, but if searching for a selection of words in your issue title would have found the duplicate then the issue will likely be closed extremely abruptly. 2. When filing bug reports about exceptions or tracebacks, please include the diff --git a/docs/dev/philosophy.rst b/docs/dev/philosophy.rst index 3f4c0bd00e..b3461c35f3 100644 --- a/docs/dev/philosophy.rst +++ b/docs/dev/philosophy.rst @@ -13,7 +13,7 @@ Management Style `Dan Ryan `__, `Tzu-ping Chung `__, and `Nate Prewitt `__ are the core contributors. They are responsible for triaging bug reports, reviewing pull requests and ensuring that Kenneth is kept up to speed with developments around the library. -The day-to-day managing of the project is done by the core contributors. They are responsible for making judgements about whether or not a feature request is +The day-to-day managing of the project is done by the core contributors. They are responsible for making judgments about whether or not a feature request is likely to be accepted by Kenneth. Values diff --git a/docs/diagnose.rst b/docs/diagnose.rst index 5cc47f4c54..b6b4fa9fdf 100644 --- a/docs/diagnose.rst +++ b/docs/diagnose.rst @@ -29,7 +29,7 @@ usually one of the following locations: * ``%LOCALAPPDATA%\pipenv\pipenv\Cache`` (Windows) * ``~/.cache/pipenv`` (other operating systems) -Pipenv does not install prereleases (i.e. a version with an alpha/beta/etc. +Pipenv does not install pre-releases (i.e. a version with an alpha/beta/etc. suffix, such as *1.0b1*) by default. You will need to pass the ``--pre`` flag in your command, or set @@ -124,7 +124,7 @@ for more information. --------------------------------------------- When you configure a supervisor program's ``command`` with ``pipenv run ...``, you -need to set locale enviroment variables properly to make it work. +need to set locale environment variables properly to make it work. Add this line under ``[supervisord]`` section in ``/etc/supervisor/supervisord.conf``:: diff --git a/docs/index.rst b/docs/index.rst index 26bfde19b2..799d778d33 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -84,7 +84,7 @@ User Testimonials - Automatically finds your project home, recursively, by looking for a ``Pipfile``. - Automatically generates a ``Pipfile``, if one doesn't exist. - Automatically creates a virtualenv in a standard location. -- Automatically adds/removes packages to a ``Pipfile`` when they are un/installed. +- Automatically adds/removes packages to a ``Pipfile`` when they are installed or uninstalled. - Automatically loads ``.env`` files, if they exist. The main commands are ``install``, ``uninstall``, and ``lock``, which generates a ``Pipfile.lock``. These are intended to replace ``$ pip install`` usage, as well as manual virtualenv management (to activate a virtualenv, run ``$ pipenv shell``). diff --git a/docs/install.rst b/docs/install.rst index 6aceba0c1a..97e756981c 100644 --- a/docs/install.rst +++ b/docs/install.rst @@ -71,7 +71,7 @@ Homebrew/Linuxbrew installer takes care of pip for you. =================== Pipenv is a dependency manager for Python projects. If you're familiar -with Node.js' `npm`_ or Ruby's `bundler`_, it is similar in spirit to those +with Node\.js's `npm`_ or Ruby's `bundler`_, it is similar in spirit to those tools. While pip can install Python packages, Pipenv is recommended as it's a higher-level tool that simplifies dependency management for common use cases. @@ -101,7 +101,7 @@ To upgrade pipenv at any time:: ☤ Pragmatic Installation of Pipenv ---------------------------------- -If you have a working installation of pip, and maintain certain "toolchain" type Python modules as global utilities in your user environment, pip `user installs `_ allow for installation into your home directory. Note that due to interaction between dependencies, you should limit tools installed in this way to basic building blocks for a Python workflow like virtualenv, pipenv, tox, and similar software. +If you have a working installation of pip, and maintain certain "tool-chain" type Python modules as global utilities in your user environment, pip `user installs `_ allow for installation into your home directory. Note that due to interaction between dependencies, you should limit tools installed in this way to basic building blocks for a Python workflow like virtualenv, pipenv, tox, and similar software. To install:: diff --git a/docs/spelling_wordlist.txt b/docs/spelling_wordlist.txt new file mode 100644 index 0000000000..219984ec6b --- /dev/null +++ b/docs/spelling_wordlist.txt @@ -0,0 +1,87 @@ +appdir +ascii +asdf +backport +bashrc +bundler +canonicalized +cmder +Cmder +codebase +Conda +CPython +cygwin +Deduplicate +Devops +eval +filesystem +Homebrew +ini +installable +Integrations +io +js +json +Linuxbrew +lockfile +macOS +Makefile +manpage +metadata +mingw +misconfiguration +misconfigured +msys +natively +npm +parallelization +parsers +pathlib +pexpect +pipenv +Pipenv +Pipfile +Pipfiles +piptools +powershell +Powershell +pre +py +pyenv +pypi +PyPI +pythonfinder +resolvers +runtime +runtimes +sayers +scandir +sha +stateful +subdirectory +subprocess +subprocesses +subshell +supervisord +tox +Tox +tracebacks +triaging +txt +unicode +uninstallation +unnesting +untrusted +url +urls +UTF +vcs +vendored +Vendored +venv +virtualenv +virtualenvs +Virtualenv +Virtualenvs +zsh +zshrc diff --git a/news/4209.doc.rst b/news/4209.doc.rst new file mode 100644 index 0000000000..c02706dca1 --- /dev/null +++ b/news/4209.doc.rst @@ -0,0 +1 @@ +Added functionality to check spelling in documentation and cleaned up existing typographical issues. diff --git a/pipenv/cli/command.py b/pipenv/cli/command.py index a2f6cbc9a3..008ec47948 100644 --- a/pipenv/cli/command.py +++ b/pipenv/cli/command.py @@ -43,7 +43,7 @@ "--completion", is_flag=True, default=False, - help="Output completion (to be eval'd).", + help="Output completion (to be executed by the shell).", ) @option("--man", is_flag=True, default=False, help="Display manpage.") @option( @@ -255,14 +255,14 @@ def install( @cli.command( - short_help="Un-installs a provided package and removes it from Pipfile.", + short_help="Uninstalls a provided package and removes it from Pipfile.", context_settings=subcommand_context ) @option( "--all-dev", is_flag=True, default=False, - help="Un-install all package from [dev-packages].", + help="Uninstall all package from [dev-packages].", ) @option( "--all", @@ -280,7 +280,7 @@ def uninstall( all=False, **kwargs ): - """Un-installs a provided package and removes it from Pipfile.""" + """Uninstalls a provided package and removes it from Pipfile.""" from ..core import do_uninstall retcode = do_uninstall( packages=state.installstate.packages, @@ -349,7 +349,7 @@ def lock( "--anyway", is_flag=True, default=False, - help="Always spawn a subshell, even if one is already spawned.", + help="Always spawn a sub-shell, even if one is already spawned.", ) @argument("shell_args", nargs=-1) @pypi_mirror_option @@ -440,7 +440,7 @@ def run(state, command, args): @option( "--quiet", is_flag=True, - help="Quiet stdout except vulnerability report." + help="Quiet standard output, except vulnerability report." ) @common_options @system_option diff --git a/pipenv/cli/options.py b/pipenv/cli/options.py index fc45256f1f..c7426ad020 100644 --- a/pipenv/cli/options.py +++ b/pipenv/cli/options.py @@ -102,7 +102,7 @@ def callback(ctx, param, value): state.extra_index_urls.extend(list(value)) return value return option("--extra-index-url", multiple=True, expose_value=False, - help=u"URLs to the extra PyPI compatible indexes to query for package lookups.", + help=u"URLs to the extra PyPI compatible indexes to query for package look-ups.", callback=callback, envvar="PIP_EXTRA_INDEX_URL")(f) @@ -112,8 +112,10 @@ def callback(ctx, param, value): state.installstate.editables.extend(value) return value return option('-e', '--editable', expose_value=False, multiple=True, - help='An editable python package URL or path, often to a VCS repo.', - callback=callback, type=click.types.STRING)(f) + callback=callback, type=click.types.STRING, help=( + "An editable Python package URL or path, often to a VCS " + "repository." + ))(f) def sequential_option(f): diff --git a/pipenv/environments.py b/pipenv/environments.py index 848fec8774..b0ba164d34 100644 --- a/pipenv/environments.py +++ b/pipenv/environments.py @@ -160,7 +160,7 @@ def _is_env_truthy(name): PIPENV_SPINNER = os.environ.get("PIPENV_SPINNER", PIPENV_SPINNER) """Sets the default spinner type. -Spinners are identitcal to the node.js spinners and can be found at +Spinners are identical to the ``node.js`` spinners and can be found at https://github.com/sindresorhus/cli-spinners """ @@ -244,7 +244,7 @@ def _is_env_truthy(name): PIP_EXISTS_ACTION = os.environ.get("PIP_EXISTS_ACTION", "w") """Specifies the value for pip's --exists-action option -Defaullts to (w)ipe +Defaults to ``(w)ipe`` """ PIPENV_RESOLVE_VCS = (