././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1619810330.6768272 sphinxcontrib-spelling-7.2.1/0000755000175100001710000000000000000000000015566 5ustar00runnerdocker././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1619810330.6728272 sphinxcontrib-spelling-7.2.1/.github/0000755000175100001710000000000000000000000017126 5ustar00runnerdocker././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1619810330.6768272 sphinxcontrib-spelling-7.2.1/.github/workflows/0000755000175100001710000000000000000000000021163 5ustar00runnerdocker././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1619810322.0 sphinxcontrib-spelling-7.2.1/.github/workflows/check.yml0000644000175100001710000000103000000000000022755 0ustar00runnerdockername: Check on: - push - pull_request jobs: build: runs-on: ubuntu-latest strategy: fail-fast: false matrix: tox-environment: - docs - linter - pkglint - spelling steps: - uses: actions/checkout@v2 with: fetch-depth: 0 - name: Set up Python uses: actions/setup-python@v2 - name: Install dependencies run: python -m pip install tox - name: Run run: tox -e ${{ matrix.tox-environment }} ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1619810322.0 sphinxcontrib-spelling-7.2.1/.github/workflows/integration.yaml0000644000175100001710000000075600000000000024402 0ustar00runnerdockername: Integration Tests on: - push - pull_request jobs: django: runs-on: ubuntu-latest strategy: fail-fast: false steps: - uses: actions/checkout@v2 with: fetch-depth: 0 - name: Set up Python uses: actions/setup-python@v2 with: python-version: '3.x' - name: Install dependencies run: python3 -m pip install tox - name: Build docs run: python3 ./integration_tests/build_django.py ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1619810322.0 sphinxcontrib-spelling-7.2.1/.github/workflows/python-publish.yaml0000644000175100001710000000237700000000000025045 0ustar00runnerdocker# This workflows will upload a Python Package using Twine when a release is created # For more information see: https://help.github.com/en/actions/language-and-framework-guides/using-python-with-github-actions#publishing-to-package-registries name: Upload Python Package on: - push jobs: build-n-publish: name: Build and publish Python distributions to PyPI if: ${{ github.repository_owner == 'sphinx-contrib' }} runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 with: fetch-depth: 0 - name: Set up Python uses: actions/setup-python@v2 with: python-version: '3.x' - name: Install dependencies run: | python -m pip install --upgrade pip pip install setuptools wheel twine pbr - name: Build sdist and wheel run: | python setup.py sdist bdist_wheel # - name: Publish distribution to Test PyPI # uses: pypa/gh-action-pypi-publish@master # with: # password: ${{ secrets.test_pypi_password }} # repository_url: https://test.pypi.org/legacy/ - name: Publish distribution to PyPI if: startsWith(github.ref, 'refs/tags') uses: pypa/gh-action-pypi-publish@master with: password: ${{ secrets.pypi_password }} ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1619810322.0 sphinxcontrib-spelling-7.2.1/.github/workflows/test.yml0000644000175100001710000000115000000000000022662 0ustar00runnerdockername: Test on: - push - pull_request jobs: build: runs-on: ubuntu-latest strategy: fail-fast: false matrix: python-version: - 3.6 - 3.7 - 3.8 - 3.9 - pypy3 steps: - uses: actions/checkout@v2 with: fetch-depth: 0 - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v2 with: python-version: ${{ matrix.python-version }} - name: Install dependencies run: python -m pip install tox - name: Run tests run: tox -e py ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1619810322.0 sphinxcontrib-spelling-7.2.1/.readthedocs.yml0000644000175100001710000000027700000000000020662 0ustar00runnerdocker# https://docs.readthedocs.io/en/stable/config-file/v2.html # Required version: 2 sphinx: configuration: docs/source/conf.py python: install: - requirements: docs/requirements.txt ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1619810322.0 sphinxcontrib-spelling-7.2.1/.testr.conf0000644000175100001710000000022700000000000017655 0ustar00runnerdocker[DEFAULT] test_command=${PYTHON:-python} -m subunit.run discover -t ./ . $LISTOPT $IDOPTION test_id_option=--load-list $IDFILE test_list_option=--list ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1619810330.0 sphinxcontrib-spelling-7.2.1/AUTHORS0000644000175100001710000000547100000000000016645 0ustar00runnerdocker12rambau Adam Johnson Alex Gaynor Andrey Popp <8mayday@gmail.com> Andy Mikhaylenko Avram Lubkin Baptiste Mispelon Benoît Allard Bulat Shakirzyanov Chris Pickel Christophe Benz Dan MacKinlay Dan MacKinlay Daniele Tricoli David Baumgold Denis Bilenko Devin Sevilla Doug Hellmann Doug Hellmann Elsa Gonsiorowski, PhD Eunchong Yu Evgeniy Tatarkin FabioRosado Fladischer Michael Georg Brandl Hank Gay Hong Minhee Huon Wilson James Rowe Jan-Marek Glogowski Jared Dillard Jeffrey Finkelstein Johannes Emerich Johannes Raggam John-Scott Atlakson Jon Dufresne Julian Berman Keegan Carruthers-Smith Kevin Horn Leandro Lucarella Louis Sautier Maciek Starzyk Mark Story Marti Raudsepp Matt Williams Michael McNeil Forbes Pauli Virtanen Pete Gadomski Rambaud Pierrick <12rambau@users.noreply.github.com> Robert Cohn Robin Jarry Rust Saiargaliev SHIBUKAWA Yoshiki Sebastian Wiesner Sebastian Wiesner Sergey Kolosov Stephen Finucane Stephen Sugden Sviatoslav Sydorenko Takumi IINO Tero Koskinen Tim Graham Timotheus Kampik Timotheus Kampik Tobias Olausson Vadim Gubergrits Wei-Wei Guo Yuya Nishihara bond diabeteman heavenshell iElectric jmu s0undt3ch sdelliot shibu tk0miya ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1619810330.0 sphinxcontrib-spelling-7.2.1/ChangeLog0000644000175100001710000016400000000000000017341 0ustar00runnerdockerCHANGES ======= 7.2.1 ----- * stop publishing to the test server 7.2.0 ----- * release note for spelling\_verbose configuration option * fix linter issue * reduce line length * typo * Update customize.rst * small documentation formating * add verbose in the doc * add verbose parameter 7.1.0 ----- * add release note for \`spelling\_warning\` option * add integration test to github actions * add spelling\_warning configuration option (#116) * do not run the build-n-publish job on forks of the repo 7.0.1.post3 ----------- * clone the whole repo when building release * update publish action based on python.org instructions * add github action to publish to test.pypi.org * Remove reno.yml * Switch CI from Travis to GitHub actions 7.0.1.post2 ----------- * add release history for 7.0.1 * Update Travis configuration to use Python 3.9 release * Revert "Replace deprecated imp module with importlib" * Update history.rst with 7.0.0 release * add integration test for django documentation build * Include all supported Pythons in the tox test matrix * Parametrize test\_contributors * Remove remaining references to reno release notes manager * Replace codecs.open() with Python 3 builtin open() * Add tests for ImportableModuleFilter.\_skip() * Document and test support for PyPy * Introduce isort for automated formatting of Python imports * Remove some unused members from SpellingBuilder and SpellingDirective 7.0.0 ----- * describe bug fix for #96 in release history * clean up release preamble formatting * Handle \`ValueError\` raised by \`importlib.util.find\_spec\` * Remove obsolete comment and guard in setup() * Remove unnecessary UnicodeEncodeError (due to Python 3) * Use Python 3 super() * Remove support for end-of-life Python 3.5 * Simplify and improve tox configuration * Capitalize "Python" and "Sphinx" in docs and comments * add support for python 3.9 6.0.0 ----- * update version history to 6.0.0 * add release notes for recent changes * stop using reno to manage release notes * Fix typo: commiters → committers * Run pyupgrade across the codebase * ignore release notes files generated by package build * Add 'Framework :: Sphinx :: Extension' trove classifier * Remove outdated comment in tox.ini about "fix-py3-install" * Move tests out of the install to the top-level of the project * Document the project as stable and ready for production use * Add missing trove classifiers for Python-3-only support * Replace deprecated imp module with importlib * Pass 'filters' as a keyword argument to pyenchant get\_tokenizer() * Remove unused fixtures dependency * document config option to ignore contributor names 5.4.0 ----- * add contributor filter * configure reno 5.3.0 ----- * add release note for spelling\_exclude\_patterns configuration option * Updating config option to be more specific * Updating to a glob-like pattern * Making variable plural * Fixing test case * Rebasing/merging * Adding documentation for ignoring files * Ignore entire files * Adding a testcase for ignoring files * Adding documentation for ignoring files * Ignore entire files * Adding a testcase for ignoring files 5.2.2 ----- * add release note for fix in #63 5.2.1 ----- * update documentation with example output * log files as they are created * add separate spelling target in tox * only create output files when writing warnings 5.2.0 ----- * fix typo in release note * add unmaintained as valid word * make parallel write safe * separate html and spelling output * report import error when using builder without PyEnchant * clarify logic in sphinxcontrib/spelling/asset.py * Fix docstring in sphinxcontrib/spelling/asset.py * fix markup in docs/source/install.rst * include version number in extension metadata * add Hong to name list * make pyenchant optional for import * restore guidance to always include extension in settings * configure travis to use py37 for docs * run documentation builds in parallel * restore use of spelling directive in docs * support parallel reads * add entry point declaration for builder * fix sphinx conf file location in rtd conf * add readthedocs config file * have travis clone the whole repo history for reno * update developer docs * add reno for managing release notes * fix travis config for linter job * fix linter errors 5.1.2 ----- * Mark as unsafe for parallel builds * Add -W arg to sphinx-build so warnings cause error * update pkglint to check wheels too 5.1.1 ----- * add tox environment for testing package settings * add python\_requires * drop use of future for print\_function * remove the use of six module * rewrite filter tests in pytest style * rewrite checker tests using pytest style * rewrite builder tests using pytest fixtures * switch test runner to pytest * update trove classifiers for py 3.7 and 3.7 5.1.0 ----- * force python 3.8 for linter and docs tests * drop python 3.6 from travis * force upgrade of setuptools in travis * update sphinx and pyenchant dependencies to something more current * update default tox environment list * update version of flake8 * update travis and tox settings * Switch default * Add an option to show the line containing a misspelling for context * update detailed docs for creating custom filter classes 5.0.0 ----- * allow customizing with classes using import strings * update documentation home page * pyenchant is now maintained * Since sphinx >= 2 dropped Python 2.7 support, this package also does. Remove Trove 2.7 classifier and 2.7 bug workaround 4.3.0 ----- * Logging: use \`warning()\` instead of its deprecated alias * sort contraction list * Contractions * require sphinx >= 2.0.0 * declare support for python 3.6 4.2.1 ----- * fix remaining logging issue * Remove usage of deprecated logging API 4.2.0 ----- * Allow custom empty files * move linter dependency to extras list * change tox defaults to just py36 * there is no docs extras, remove from travis settings * move test dependencies to extras * install enchant for travis * put .travis.yml in the right place * add travis CI configuration * switch pep8 environment to use python 3 * switch docs build to use python 3 * fix some markup from PR #15 * How to create multiple wordfiles * Note that PyEnchant is unmaintained and fix links 4.1.0 ----- * split the wordlist into two files * clean up multi-wordlist handling * Make it possible to provide several wordlists * Don't use mutable default argument * developers.rst: correct make command to build docs * developers.rst: add instructions for running tests * Link to new home page * Update home page link 4.0.1 ----- * use the right method to emit warnings 4.0.0 ----- * trivial: Remove nosestest.cfg * Don't fail by default * Fixes #1 -- disable smart quotes so that we can recognize contractions/posessives correctly * Mark the extension as safe for parallel reading 3.0.0 ----- * set up tox to run docs build with checker enabled * be more verbose about configuration options * remove inline spelling directive * disable setting for static files * fix pep8 errors * switch to testrepository for running tests * update python 3.3 to 3.5 2.3.0 ----- * Merged in TimKam/sphinxcontrib-spelling/7-make-tokenizer-configurable (pull request #7) * make it possible to specify tokenizer #7 2.2.0 ----- * Merged in jsma/sphinxcontrib-spelling/jsma/use-https-with-pypipythonorg-fixes-exce-1466568698646 (pull request #5) * Use https with pypi.python.org * Merged in avylove/sphinxcontrib-spelling (pull request #4) * Removed unnecessary shebang lines from non-script files * rely on pyenchant dependency in requirements.txt * Merged in JulianB/sphinxcontrib-spelling (pull request #3) * Re-enable the PyEnchant dep * Change use of six.moves * Fix link to article about using the spelling checker * remove quotes from package description 2.1.1 ----- * remove announce.rst; moved to blogging repository * Merged in eriol/sphinxcontrib-spelling (pull request #2) * Removed no more used CHANGES file * Updated path of test\_wordlist.txt * Merged in bmispelon/sphinxcontrib-spelling/isupper (pull request #1) * Use str.isupper() instead of ad-hoc method * fix syntax for tags directive 2.1 --- * update history and announce file for new release * Make error output useful in emacs compiler mode * Quiet output * add test for acronym filter * update history for last fix * Fix unicode handling in builtins filter * update announcement 2.0 --- * update history * update history * use pbr for packaging * Fix output mode for log file * Python 3 support * moved test dir in previous commit * reorganize code and clean up * flake8 cleanup; tox update * convert settings files to git * add tags to announce file * Added tag spelling-1.4 for changeset 5ecdaf657b0a 1.4 --- * prepare for 1.4 release * Add a little more detail about creating and using custom filters * Do not use sphinxcontrib-spelling on its own documentation and remind myself why * attribution for previous fix * use \_\_builtin\_\_ instead of \_\_builtins\_\_ for PyPy * disable use of spelling checker since enchant is not available on rtd.org * add requirements file to allow doc build * set the theme for rtd.org * move spelling files up to top of repo; fix URL in setup.py * remove project template files * remove authors list * remove other projects * Fixes already exists file problem and bump version * Add sphinxcontrib-rawfiles package * Move programoutput extension over to Github * Remove epydoc extension * Remove issuetracker extension * Python 3 support * Launchpad bugs are complete if all tasks are complete * Simplify request/response handling * Bump requests dependency * Move builtin resolvers into separate module * Turn extension into package * Bump Sphinx dep to 1.1 * Inline dependencies in tox.ini * Remove ununsed requirements file * Move constants out of local namespace * Move requirements to top-level directory * Fix an issue #29 * Add more tests for 'httpdomain-autoflask' * sphinxcontrib-coffee 0.2.0 * Enhanced support for inheritance and static methods * Bump version for requirejs support * Add configuration to use the requirejs parser * [sadisplay] py3k support * Polish some sentence * Add a warning message in the document of 'autoflask' directive * Add a document about the :endpoints: option of the 'autoflask' directive * Add 'endpoints' option in the 'autoflask' directive * Merged in grncdr/sphinx-contrib (pull request #13) * Added tag clearquest-0.5 for changeset a2776a69adc3 * Fixed the error "local variable 'param\_value' referenced before assignment" when a parameter is missing in a parameterized query * mscgen: Add a workaround for the missing shebang of epstopdf * mscgen: latex: surround the includegraphics with \n * Added tag actdiag-0.4.2 for changeset 1e61d34c68ab * Bump version * Recognize document references at node.href attribute (cf. :ref:\`...\`) * Added tag blockdiag-1.1.1, seqdiag-0.4.1, actdiag-0.4.1, nwdiag-0.4.1 for changeset 5e72c37619dd * Bump version * Recognize document references at node.href attribute (cf. :ref:\`...\`) (thanks to @r\_rudi) * Handle exceptions on parsing code * Bump to programoutput 0.8 * Added tag programoutput-0.7 for changeset eac27cb3bcc6 * Release programoutput 0.7 * Bump version, 0.6 was already released * Updated readme * Updated trove classifiers * Merged birkenfeld/sphinx-contrib * Fixed test for Python 3 * Fixed deps of doc env * Added tests for cwd option * Need to normalize working dir and resolve symlinks * Added cwd option to set the working directory of commands, fixes #28 * Added tag blockdiag-1.1.0, seqdiag-0.4.0, actdiag-0.4.0, nwdiag-0.4.0 for changeset 0ff1d120dc71 * Bump version * Fix pep8 violation * Add config: \*diag\_html\_image\_format * Fix pep8 violation * \* Apply blockdiag\_html\_image\_format patch by @r\_rudi - Enable blockdiag\_html\_image\_format = "SVG" - Support PNG image using clickable map on HTML * Some slight cleanup * Support Python 3 without 2to3 * Updated tox configuration, removed outdated test requirements * Rename README to README.rst * Organize properly * Add coffeedomain/README * Add description of coffeedomain to README * Adding the sphinxcontrib.coffeedomain extension * Added tag plantuml-0.3 for changeset d16faed5a02e * plantuml: update conf.py to specify plantuml command by string (refs #27) * plantuml: bump version to 0.3 * plantuml: document about extensions list (closes #27) * Removed an outdated info * Added tag httpdomain-1.1.7 for changeset b817f6162504 * Bump version for PyPI release * Update pip name * Added tag googlechart-0.1.5 for changeset 48ef9c0f3795 * Update version * Fix images has been broken in Windows * Added tag actdiag-0.3.2, blockdiag-1.0.2, seqdiag-0.3.2, nwdiag-0.3.2 for changeset 426cc2dd2ad0 * Update versions; blockdiag, seqdiag, actdiag and nwdiag * Fixed #26: Set candidates field to nodes.image node * Fix errors with singlehtml target * Merged in jfinkels/sphinx-contrib/add-http-patch (pull request #10) * Refactored code out of http\_method\_role; added test document * Merged in jfinkels/sphinx-contrib/add-http-patch (pull request #9) * [httpdomain] Added support and documentation for PATCH method * httpdomain: fix IndexError for / path * add http\_index\_ignore\_prefixes config value * sort http routing table index by path * Include the document name in the console output for bad words. Bump version number * update announcement; add more exampels to docs; tweak code to make it easier to read * merge sqltable addition with other changes * add sqltable extension * Removed my pyqt4 extension * Use requests library to simply HTTP requests * Updated test for invalid Launchpad issue * tip is issuetracker 0.10 now * Added tag programoutput-0.6 for changeset 5c74ab076046 * Updated tox config * programoutput 0.6 with Python 3 support * Fixed shell tests * Fixed tox configuration * Markup fix * Update docs * Added tag epydoc-0.5 for changeset 3a43dd5c95e9 * Version 0.5 with Python 3 support * Added tag clearquest-0.4 for changeset 64dbae18ef8b * Added tag clearquest-0.3 for changeset 996f292392fa * Added tag clearquest-0.2 for changeset 03c94ddf2a6e * fixed IndexError on empty queries settings are now searched in "~/sphinxcontrib" too * Added MANIFEST file to source/dist packages * changed the look of tables produced by empty queries * fixed errors on columns widths resolution when some fields are NULL. fixed broken tables when some columns are "not shown" removed explicit dependency to "pywin32" to avoid crashes of easy\_install * Added tag clearquest-0.1 for changeset f9fb7f2481d6 * first commit * Added tag httpdomain-1.1.6 for changeset 196f09b20986 * Version bump * Wrote more about the author * Added HTTP lexer * Removed unused imports * Added tag nicovideo-0.1.0 for changeset 209974a9c33d * Fix version * Add nicovideo extension * note bug with cleanup code * Much nicer date markup for feed's latest directive * update feed extension TODO items to reflect latest changes * version/doc updates for feed * fix sundry bugs in the Latest directive and fork it from Toctree * minor tidies * non-subclassing version of the Latest directive * pull in changes from offline SCM repo * sketch of modified directive * update overview page to reflect broader functionality of feed package * Added tag blockdiag-1.0.1, seqdiag-0.3.1, actdiag-0.3.1, nwdiag-0.3.1 for changeset 51e7608cd864 * Add config value: blockdiag\_fontmap * Added tag blockdiag-1.0.0, seqdiag-0.3.0, actdiag-0.3.0, nwdiag-0.3.0 for changeset 4e292c1848cf * Update version; blockdiag, actdiag, seqdiag and nwdiag * Add extension for rackdiag * actdiag, seqdiag, nwdiag: Generate images forcely with unknown writers * plantuml: add experimental support for rst2pdf * plantuml: add rules for rst2pdf to test fixture * plantuml: add workaround for missing shebang of epstopdf command * plantuml: add option to generate pdf image for latex output * plantuml: parse command-line string by shlex * plantuml: add option to generate eps image for latex output * plantuml: fix latex output to make a paragraph for uml image * Generate images forcely with unknown writers * Added tag plantuml-0.2 for changeset b983e96fd440 * plantuml: update README not containing custom directive * plantuml: bump version to 0.2 * plantuml: add option to generate svg image * plantuml: add stub for svg output * plantuml: add Makefile and README under tests/fixture * note new bugs caught in the production deployment, and fix one - the lack of space between list items and dates * merge upstream * don't explode when told to index undated entries * Added tag doxylink-1.2 for changeset 54812ae19666 * Release version 1.2 * Add Python 3 support * Move test folder to avoid any potential conflicts * pull upstream * support a toctree-like \`latest\` directive, which lists titles, dated and ordered by date * correct way to handle directive registration * Fix URL * merge upsteam * Added tag blockdiag-0.9.3, seqdiag-0.2.3, nwdiag-0.2.3, actdiag-0.2.3 for changeset 6a979e1d29e5 * Fixed thumbnail images has broken with :maxwidth: option * an alternative approach that tried to highjack TocTree. Still doesn't work because it doesn't get persisted. if I want latest entries, I'm going to have to use hidden TocTrees and a Toctree-like node that gives the latest feed * actually test this ToC re-ordering thing * this doesn't work , i think because of ToC being examined at a special point in proceedings. perhpas it would be better to globally alter the toc behaviour? * remove nose dependencies from sphinxcontrib.feed's setup.py * go to unittest insted of nosetest for sphinxcontrib-feed * update documentation for clarity and spelling * Update version number for phpdomain * Fix error when creating namespace at top of document * add check for key existence * Added tag actdiag-0.2.2, seqdiag-0.2.2, nwdiag-0.2.2 for changeset 3cb3e961abe6 * Added tag blockdiag-0.9.2 for changeset b7bc070ff0dd * \* Fix failure with :maxwidth: option * Added tag nwdiag-0.2.1 for changeset 6944e22261b9 * Added tag seqdiag-0.2.1 for changeset 682548b5ec2b * Added tag actdiag-0.2.1 for changeset fe80f17df05c * Added tag blockdiag-0.9.1 for changeset 13da596d425b * \* Update versions * \* Failed with blockdiag >= 0.9.3 (touching internal variables) * handle text nodes without parents; fixes #19 * Sorted extensions alphabetically in README * Add :aspect: parameter to YouTube directive * Added tag programoutput-0.5 for changeset 9b36fee2dbc8 * Release programoutput 0.5 * Update source distribution manifest to include tests and tox config * Handle EnvironmentErrors during command execution gracefully * Updated and improved issuetracker documentation * Removed makefile, use setup.py to build docs * Include return code in prompt by providing \`\`returncode\`\` key to prompt template * Fixed tests * Added :returncode: option to programoutput * programoutput\_prompt\_template is a format string now * Reworked, updated and improved documentation, Python 2.6 required now * Handle unexpected return codes more gracefully * Standard future imports * tip is programoutput 0.5 now * Reworked tests, test with real builds now * Disable pylint no \_\_init\_\_() warning for cache class * Add YouTube extension * Removed test dependencies against pyquery in issuetracker and epydoc * Use plain python element tree for PyPy support * Fixed test * More testing * Allow to skip slow tests and tests which require network connection * Merged heads * Added tag issuetracker-0.9 for changeset 9827aaa8070f * Release issuetracker 0.9 * Added version added and changed notes to documentation * Fixed date format * Merged exceltable into default branch * Added exceltable into list * Added tag exceltable-0.1.0 for changeset c7618117237c * Include CREDITS in source tarball, thanks to Michael Fladischer * Renamed issuetracker-resolve-issue to issuetracker-lookup-issue * Split reference handling into lookup and resolval * Use issue title as link title * Fixed the README -syntax * Improved the documentation * Initial commit after migrating from rusty to sphinxcontrib.exceltable * Updated tox configuration * Bitbucket uses HTTPS urls * Makefile does not exist anymore * Added tag epydoc-0.4.1 for changeset a56ff44c58cf * Release epydoc 0.4.1 * Configured doc upload * Updated documentation * Removed makefile, there is a setup.py command * Fixed method cross-references * Test against real sphinx build * Require Sphinx 1.0 * Fixed launchpad tracker * Added missing docstring * Document classes used by issuetracker extension to style HTML output * Added a bit more structure to 0.9 changes * Added a note about PyQt to test requirements file * Test application of the issue tracker stylesheet to issue references * Replaced issuetracker\_expandtitle with more flexible issuetracker\_title\_template * Improved documentation of format strings as explicit title to "issue" roles * Testing title expansion is more a transformer test * Updated credits * Fix minor typo in comment * Updated README * Fixed module docstring * Updated documentation (added "issue" role and "issuetracker\_plaintext\_issues" confval) * Added issue role for explicit issue references * Explicitly give the expected title to the issue reference checker * Use unicode for XML conversion of the doctree to avoid coding errors * Use a template string for title expansion * Fixed issue reference classes to be more compatible with Sphinx * Updated changelog * Documented test modules * Renamed transformer class * Added issuetracker\_plaintext\_issues to disable transformation of plaintext issue ids * Updated changelog * tip is issuetracker 0.9 now * Use bug title in launchpad tracker * Fixed TypeError caused by the launchpad resolver * Added tag issuetracker-0.8 for changeset 3927df52d5de * Release issuetracker 0.8 * Mention jira in README * Removed unused import * Fixed builtin tests * Added tests for transformations * Document local app funcarg * Added doctree funcarg to return the processed doctree for the contents * Connect mock resolver in app funcarg and build app, if requested by markers * Document pytest namespace * Cache failed issue lookups * Structured changelog * Added test for cache hits * Mocked callback only returns issue if issue id matches, documented callback return value * Documented all tests * Documented builtin tracker tests * Added an issue\_id funcarg to hook into the automatic content generation * Removed hacky confoverrides update helper * Handle confoverrides by overriding the new confoverrides funcarg * Return empty dictionary instead None in confoverrides funcarg * Document all funcargs and the configure hook * Build default content from issue funcarg if available * Replaced superfluous triple quotes with normal quotes * Get confoverrides from the confoverrides funcarg instead of evaluating the marker directly * Just override the app funcarg instead of using a new funcarg in the resolval tests * Removed unused local names * Added global funcarg for a mocked resolval callback * Removed unused imports * Added general "issue" funcarg and with\_issue marker * Added tests for TrackerConfig class * Fixed error message with missing username for bitbucket/github * Renamed some tests * Fixed test error: Derive TrackerConfig from namedtuple * Fixed exception xref * Improved documentation of jira tracker and url config value to avoid duplicate code samples * Raise ValueError in jira tracker if url is unset or empty * Updated confoverrides in "reverse" direction * Always use test specific documents * Simplified test file content for builtin tracker tests * Use with\_content marker to allow test specific contents * Added pytest helper to update confoverrides in funcargs * It's an URL, not an URI * Fixed HTTP error handling * Document return value of signal as changed in 0.8 * Added versionadded notes to all new objects * Removed superfluous code-block directive * Removed unused references * Added jira support, thanks to Ali-Akber Saifee * Refactored tests for builtin trackers * Always use temporary source directory for tests * Sort tracker tests alphabetically * Backed out changeset 7f3c424340d0 * Sort tracker tests * Credit Ali-Akber Saifee for his idea and implementation of expandtitle * Actually do order credits alphabetically * Improved wording in credits * Added issuetracker\_expandtitle configuration value * Test contents if no issue was found * Use a better name for reference test module * Document exception on missing username in project * Fixed doc markup * Test cache results in tests for builtin trackers * Updated test requirements * Updated changelog * Updated documentation to include TrackerConfig and to reflect the new event signature * Test against a real sphinx application * Wrap tracker configuration in a namedtuple * Added helper function to fetch issue data * Updated docstrings * Some refactoring to use some shorter names * Fixed module docstring * Attach project name to reference node * Mark incompatible changes in changelog * Fixed TypeError: Event names must be byte strings * Use GitHub API v3 * Test for warnings during resolval * Emit a warning on github errors * Updated tracker requirements * Removed conditional json import, python 2.6 is required anyway * Added standard future imports * Require Python 2.6 now * Added section about the operation of this extension * Removed instructions to install from tip, and improved development section * Improved README * Use modern string formatting syntax * Fully support debian tracker now * Added debianbts and its dependency SOAPpy as test dependencies * Fixed debian tracker and its tests * Fixed example in docs * Updated changelog * Resolvers must return Issue objects now * Fixed setup test * Use constants for URL templates * Removed separate username configuration key * lxml is not required for bitbucket anymore * Updated changelog * Use bitbucket API to get issue information * issuetracker tip is 0.8 now * Fixed bitbucket tests (synaptiks does not exist anymore) * Fixed transformer test: Add required reporter to document * Added separate requirement files for tests and docs * update announcement with new details for 1.2 * Added tag spelling-1.2 for changeset 7b66682e9957 1.2 --- * update version number in documentation * add known good words to spelling directives in the documentation * fix packaging and add title nodes to the list being checked; resolves #17 * Add directive for link to PyEnchant * Add adadomain to README * Added tag hyphenator-0.1.2 for changeset 31f854cd835e * hyphenator: removed print statements * Added tag hyphenator-0.1.1 for changeset 11905ce41c53 * hyphenator: added hyphenator to sphinxcontrib README and AUTHORS * Added tag hyphenator-0.1 for changeset 08f5ea5cc3bd * hyphenator: added CHANGES * hyphenator: version 0.1 * hyphenator: doc for hyphenator\_language * hyphenator: initial commit * make parsed date available in template context * avoid ordering questions by collapsing the html-page-context callbacks * pull upstream * refactor date parsing into a util function * suppress tests for non-existent date-toc * remove debug statement. (Shame) * sadiplay. add graphviz redering support and sphinxcontrib-plantuml now not required * Added tag nwdiag-0.2.0 for changeset 239d642bf5e0 * \* Update version * Added tag actdiag-0.2.0 for changeset 4ed6c3b0c71f * \* Update version * Added tag seqdiag-0.2.0 for changeset 33190f5a518d * \* Update version * Added tag blockdiag-0.9.0 for changeset e60f176286fe * \* Update ersion * \* Catch exceptions for display more kindly message * \* Reference node.label in desctable * \* Fix descriptions were not escaped * \* Fix descriptions were not escaped * \* Fix descriptions were not escaped * \* Fix descriptions were not escaped * Update to tox 1.0 * Bitbucket uses https now * Fixed name of requirements file * Write test results to xml file * Added tag googlechart-0.1.4 for changeset 06b1fcf2469b * Added tag googlechart-0.1.4 for changeset f29fdacde997 * \* Update version * \* Remove undefined variable * \* Add nwdiag\_html\_image\_format * \* Add actdiag\_html\_image\_format * \* Add seqdiag\_html\_image\_format * \* Add blockdiag\_html\_image\_format * Added tag ansi-0.6 for changeset 7c95dd4ecf68 * Updated changelog, releasing 0.6 * Fixed installation instructions * Version bump to 0.6 * Copyright update for docs * License headers * Use build\_sphinx distutils commend instead of Makefile for doc building * Update to tox 1.0, added requirement files for pip * ansi: Fixed contribution passage * ansi: Support background colour escapes * Added tag httpdomain-1.1.5 for changeset fefcac1925d9 * httpdomain 1.1.5 * httpdomain: Flask 0.6/0.7 compatibility * flask changed static\_path to static\_url\_path * Added tag googlechart-0.1.3 for changeset 253b72c02373 * \* Update version * \* Support python 2.4 * \* Remove unused argument from create\_google\_chart() * \* Add namedtuple definitions for python2.4 (comaptibility) * Added tag googlechart-0.1.2 for changeset 969a16324acb * \* Update version * \* Support axis of chart * Added tag googlechart-0.1.1 for changeset 8b5ed8605bea * \* Update version * Add external file support to graphviz directive * Fix UTF-8 issues with lilypond extension * Fix examples * Added tag googlechart-0.1.0 for changeset 3cc3a5598b77 * \* Update description * \* Add sphinxcontrib.googlechart * Added tag httpdomain-1.1.4 for changeset 08ac46ed7713 * httpdomain: PyPy & CPython compatibility * Added tag httpdomain-1.1.3 for changeset dc14972441ec * httpdomain: v1.1.3 * httpdomain: PyPy compatibility * httpdomain: fixed a mistyping * Added tag httpdomain-1.1.2 for changeset f7ed7161865c * httpdomain: Added :include-empty-docstring: flag option. (v1.1.2) * Added tag httpdomain-1.1.1 for changeset 0397d9c2ae30 * sphinxcontrib-httpdomain: Backward compatibility, version 1.1.1 * Added tag httpdomain-1.1 for changeset fc379b20ba56 * sphinxcontrib-httpdomain 1.1 * Added a trivial note * Implemented \`autoflask\` directive. (\`sphinxcontrib.autohttp.flask\`) * Ignore .\*.swp (vim swap file) * Added the httpdomain extension into list of extensions * merged * Added tag httpdomain-1.0 for changeset 3eee9a1f8b20 * Initial commit of sphinxcontrib.httpdomain * Adding tests for issue #15 * Added tag spelling-1.1.1 for changeset b85d8bab6f70 1.1.1 ----- * bump version number of spelling * fix initialization; closes #17 * snapshot of my work - I've reached the limits of the Tocree node and ahve to try something else i think * tests for a trivial latest directive * update announcement with details for 1.1 * Add spelling directive to docs * Added tag spelling-1.1 for changeset 619e36732079 1.1 --- * tag docs as 1.1 * fix syntax in makefile * Added tag spelling-1.1 for changeset a7808988433b * tag previous release of spelling * Added tag spelling-1.0 for changeset 2aebbd8ac99b * prepare 1.1 release * add target to check spelling of documentation * update configuration section of documentation * skeleton of a Latest directive * \* Revirt r596 * \* Add favicon.ico * \* Display node.address on desctable * \* Fix failure with :desctable: option * Added tag nwdiag-0.1.1 for changeset 244a59313f8d * Added tag actdiag-0.1.1 for changeset 92a4bf93a052 * Added tag seqdiag-0.1.1 for changeset 85be0d64d859 * Added tag blockdiag-0.8.3 for changeset 67905415d701 * \* Update version * Added tag blockdiag-0.8.2 for changeset 491d8c49584b * \* nwdiag\_fontpath allows array of fontpaths * \* actdiag\_fontpath allows array of fontpaths * \* seqdiag\_fontpath allows array of fontpaths * \* blockdiag\_fontpath allows array of fontpaths * Merging with upstream * \* Fix :desctable: option is not worked * Merged * Added "requirements" to AUTHORS * Added tag seqdiag-0.1.0 for changeset 06c6e6bc5b4c * \* Add sphinxcontrib-seqdiag package * Merged * \* Add sphinxcontrib-nwdiag package * \* Update long description * Added tag actdiag-0.1.0 for changeset 348532172692 * \* Add sphinxcontrib-actdiag package * Added tag blockdiag-0.8.0 for changeset e75d87a32828 * Removed tag 0.8.0 * Added tag blockdiag-0.8.1 for changeset 461fa170a9f4 * \* Update version * \* Add blockdiag to REAMDE and AUTHORS * \* Add LICENSE and AUTHORS * include URLs in README. Oops * test Keegan's feed\_title works * revamp test suite to run correctly, including dependencies, from python setup.py tests * rewrite README to include Keegan Carruthers-Smith as contributor, and generally tidy the document * Feed extension only works on python-dateutil 1.x * Remove beautifulsoup from the feed extension's requirements * Added config option "feed\_title" to feed extension * Added tag 0.8.0 for changeset e75d87a32828 * Added extension "requirements" * \* Update version * \* Support new interface of blockdiag-0.8.0 * sadisplay. render link to image, support module list * upload packages to pypi for distribution * upload packages to pypi for distribution * fix javascript in cheeseshop to work with chrome * add better contraction support * implement 'spelling' directive to pass local overrides to the spelling checker * Add filters for PyPI packages, wiki words, python builtins, acronyms, and importable modules * update version in the documentation and add announcement post text 1.0 --- * Added tag sphinxcontrib-1.0 for changeset d2191ad4fce1 * fix version number * Added tag sphinxcontrib-1.0 for changeset 7289d79c921e * rewrite sphinxcontrib.spelling to be easier to understand and produce nicer output * merge heads * beautifulsoup 3.2 is out * Use a custom parameter separator * add a role for linking to bitbucket users * Added tag blockdiag-0.7.2 for changeset 026d48070cdb * \* Update version * \* Initialize NodeGroup for blockdiag-0.7.7 or later * Added tag plantuml-0.1 for changeset c89fc5f3fa40 * plantuml: shorter package version * plantuml: make setup.py read README for long\_desc * add sadisplay extension * Updating setup.py for a quick fix * Updating documentation to include interfaces. Updating setup.py and setup.cfg. Updating changelog for new point release * Fixing text to say namespace instead of module * Fixing issues where globals following classes were treated as part of the class. This issue still exists with constants, but there isn't really a way to discern class and global constants right now * Added tag programoutput-0.4.1 for changeset 63319595dba1 * programoutput 0.4.1 * Extract docs version from sources, and updated copyright * Configured doc upload * Skip ansi tests if ansi extension is missing * Improved documention of configuration values * Missing license header * Update pytest imports * Enforce versions of test dependencies * Do not use a general python environment anymore * Fixed #10: Corrected installation instructions * Bump to 0.4.1 * Removed unused imports * Read version number from source code * Include tox configuration in source tarball * Enforce specific versions of testsuite dependencies * Forgot to add license document * Updated link to lxml * Added credits * Include license text into generated documentation * Added reference to issue to changelog * Added tag issuetracker-0.7.2 for changeset 04a09127f2c6 * issuetracker 0.7.2 * Hide transformer test helpers in assertion tracebacks * Restructured transformer tests * Reword and restructure test data in transformer test * Ignore references in literal blocks and inline literals * Fixed extraction of issue state from bitbucket * issuetracker itself is not an external dependency for building its own docs * Do not use a special python environment, but instead rely on the standard environments defined by tox * Read version number directly from issuetracker.py instead of importing it * tip is 0.7.2 now * Require a recent sphinx version * Added tag blockdiag-0.7.1 for changeset 10d03cc086cc * \* Update version to blockdiag-0.7.1 * \* Add \par tag to above and below of diagrams * Fixing static method being omitted from the index * Fixing interfaces not reseting the class properties, and incorrectly stacking with other class names * Removing all the $ in front of properties. They made the index have all propeties in one section * Merging changes from 'heavenshell' in. There are some problems with interfaces not resetting the class stack * Bumping version number, and adding alias for return type * Add interface to PHPDomain * Adding another test * Fixing issues with static methods. Making non indented class definintions work * Include tests in sdist again, closes #13 * Sphinx is a dependency for testing * Fixing missing string interpolation. Updating files for packaging * Adding a LICENSE file, I forgot it earlier * Adding tests for constants in namespaces. Cleaned up all the bare '\\' everywhere Fixed logic around constants/functions * Adding more reference, and a few tests * Adding a file for changelogs * Starting to add reference docs for the module * Adding content to the readme. Adding note about how the rubydomain helped me do most of the work * Added namespace index * Fixing tilde links, adding tests for them * Adding in cross referencing, with some tests * Adding support for exceptions and namespaces * Fixed class attributes and constant doc generation * Adding PHP classes to the domain * Using the rubydomain as a starting point, some basic PHP global objects are working * Adding files for the acceptance tests based on the rubydomain * Adding the very beginnings of a domain for PHP documentation * Change to print function to work towards Python3 compatibility * Add a release checklist to make sure I don't miss anything * Added tag doxylink-1.1 for changeset ff2a57ae39a4 * Update version to 1.1 * Update information about linking to files * Make sure filenames end with .html * Allow to link to functions etc. which are in a header/source file but not a member of a class * Add support for linking to structs * Added tag blockdiag-0.7.0 for changeset bb84b0519b19 * \* Raise error for PDF exportion without reportlab * \* Update version * \* Add blockdiag\_tex\_image\_format to configuration to embed PDF image into TeX document * \* Update to new blockdiag API (>= 0.6.6) * \* Do not rebuild images without changes of code-block and options * Simulate a python console. Issue #12 * Fixed a small bug with documented inherited interface elements * Fixes #11 * Correct classifier * Update \`setup.cfg\` aliases * First commit of \`sphinxcontrib-email\` Sphinx extension on behalf of Kevin Teague * Added tag spelling-0.2 for changeset 6da7f29db015 0.2 --- * warn but ignore unknown node types in spelling checker * Added tag issuetracker-0.7.1 for changeset f245f6c4d64b * issuetracker 0.7.1 * Removed some markup cruft * Copy stylesheet after build again, reverts dbe55921aec2, fixes #8 * Version bump * Removed unused name * Added tag blockdiag-0.6.3 for changeset a29ca2bff55f * \* Update version * \* Fix tex processor was broken * Added tag blockdiag-0.6.2 for changeset 65392c61ad6b * \* Update version * \* Fix errors with maxwidth parameter * \* Fix large image was generated with blockdiag\_antialias option * Added tag blockdiag-0.6.1 for changeset c6a0b4a58548 * \* Init blockdiag objects at first * Removed tag blockdiag-0.6.1 * Added tag blockdiag-0.6.1 for changeset b48842f018e8 * \* Update version * \* Merge to heads * configured default doc upload directory * Added tag issuetracker-0.7 for changeset 86e0d93f374a * Release issuetracker 0.7 * Copy the issuetracker stylesheet at builder initialization * Reworked issue resolving to happen at doctree reading * Fixed import of issuetracker module in doc config and setup.py to really import the module from the source tree * Added missing licence headers * Added tests for cached issue lookup * Split single test module into multiple files, and added cache assertions to resolver tests * \* import blockdiag\_sphinxhelper to support python 2.4 * Issue information is now cached * Moved node creation into separate function * Fixed resolver test with no issue information * Skip resolver tests on missing dependencies * Updated pytest imports to recommended form * Fixed URIs in bitbucket resolver tests * tip is version 0.7 now * \* Reverted * \* Merge long\_desc to README * \* Merge local changes for blockdiag * Updated doc version and copyright * Removed unused imports * Removed markup cruft * Fixed url of sphinx-contrib issue tracker * Mention Debian BTS in the readme file * Added tag issuetracker-0.6 for changeset 3d5a1f7c5070 * Release issuetracker 0.6 * Use https urls in documentation where required * Bitbucket also uses https for its interface now * Fixed spelling: It's a BTS, not a PTS! * Fixed case in changelog * Added documentation for debian issuetracker * Give useful names to mock objects to ease debugging * Also test the call signature of get\_issue\_information (using "mocksignature") * Fixed NameError in launchpad resolver * Added a test for launchpad issue reference resolver * Fixed tests: reference resolvers get the application and not the environment as argument * tip is 0.6 now, and updated a changelog * Removed unused import * Style fixes * Add tests for Debian bugtracking integration * Add support for debian bugtracker through python-debianbts * convert setup.py to work under python 2.5 (at least); remove last print statement from extension setup function * Added tag spelling-0.1 for changeset 5a74b8f2870c 0.1 --- * remove dev mode flags from spelling setup * add some instructions and example output to the spelling readme * add tests for the spelling builder; use info() instead of printing to stdout directly; ignore the wordlist file created by pyenchant when the tests run * Add a few configuration options and tests to spelling checker 0.0 --- * start the spelling checker builder * Added tag paverutils-1.4 for changeset efba344aec85 * merge in bug fix for #6 * move the line adjustment code into its own function * Added tag doxylink-1.0 for changeset 17a383a11be6 * Prepare for 1.0 release * Start preparation for 1.0 * Add info about ambiguity and reporting bugs * ...and remove debug statement * Force use of Unix slash when joining URL parts to fix http://thermite3d.org/phpBB3/viewtopic.php?p=678#p678 * Add 'enum' and 'struct' to list of function argument qualifiers * Add test for multiple namespaces * Small performance increase from change to parsing code. Thanks to the PyParsing author Paul McGuire for the help * Update manual for new parser * Fixed build path for paverutils's pdf task * py.test is separate package now, update tox configurations accordingly * add continue mode; change argument to include an explicit mode name * add wrap\_lines\_at option * plantuml: fix handling of non-ascii characters * plantuml: make test decorators keep the original function name * plantuml: fix test case to clean outdir on each run * Added tag blockdiag-0.6 for changeset d74a27ac552e * \* Update version * \* Add describe option. \* Follow newest blockdiag's interface * plantuml: basic support for embedding PlantUML diagram as png * Added tag issuetracker-0.5.4 for changeset 2f80ac282958 * Release issuetracker-0.5.4 * Use https scheme for github now * Added tag issuetracker-0.5.3 for changeset 14171abf7cec * Release issuetracker 0.5.3 with licence text in source tarball * use 'pdf' bundle when looking for options in the pdf() task; handle blank lines in script output * first version of OmegaT support extension * Added tag blockdiag-0.5 for changeset 58cc39db5445 * \* Update version * \* Update blockdiag/README * \* blockdiag directive supports external file * Added tag blockdiag-0.4 for changeset 32df03ad2297 * \* Update version * \* Follow application interface of blockdiag 0.4 * Added tag blockdiag-0.3.1 for changeset 35f6355fdf9e * \* Update version * \* Fix blockdiag raises errors with M17N diagrams * \* Merged heads * Added tag blockdiag-0.3 for changeset 15e871a50c7c * \* Update version; sphinxcontrib-blockdiag 0.3 * \* Update thumbnail. \* Follow blockdiag-0.3.1 interface * \* Add :maxwidth: option to blockdiag directive * fed url wasn't picked up in every page, but only syndicated ones. now global * allows feed\_url links * trim some unised django cruft * use django 1.2 feed generator for more compliant output * Added tag blockdiag-0.2 for changeset 5653485b7c9e * \* Update version * \* Add blockdiag\_antialias option * \* Add blockdiag\_fontpath config option * \* Fix ttfont was not used * \* Fix package info * \* sphinxcontrib-blockdiag run with blockdiag 0.2.2 * \* Update to latest version * \* Fix description * \* Add blockdiag extension * Added tag issuetracker-0.5.2 for changeset 0265fc546096 * Release issuetracker 0.5.2 * Fixed launchpad link * Do not warn about 404, which simply means, that the issue doesn't exist * Warn about unexpected HTTP status codes * Issue reference resolvers get the application object instead of the environment now * Updated changelog * Test error message when using a pattern with too many groups * Catch issue patterns with too many groups with an informative and explanatory error message * Credit for Denis help * Updated changelog * Test builtin resolvers (except for launchpad) * issuetracker: google code: fix url ("html5lib" project was hardcoded) and make sure closed issues are properly recognized as such * Only include necessary information in the return value of github resolver * Added support for an 'interface' role and directive. - Fixes issue 1 * Add copyright header * Add plain function name also to the index * Fix function arguments and add an extra space after function/procedure names * Add initial version of Ada domain * erlangdomain: 0.1 released * alter testcase to catch variable capitalization * pull upstream goodness * ignore MacOS .DS\_Store cruft * handle publication times as well as dates * update docs from feedparser.org notes * handle absolutifying URLs for feed reader happiness * breaking tests for absolute URL creation * Rename the environment to 'test' * Better description * Move things around in here to make it look nicer * Rather than parsing the function as we scan the tag file, push them into a list so we can quickly fly through it as we need. This has given a ~12% speedup * Minor tweaks. Add a currently unused function to parse a list. This could be useful for concurrent processing * Add some keywods to setup.py * Improve error messages. Remove more spare print statements. Re-order import statements to follow PEP 8 * Return the error messages in the correct way. This way they are grouped correctly * Slightly improve speed by not passing unnecessary variables around * Improve documentation for functions * Comment out some debug statements * Split tests up a little more for more fine-grained testing * About a 1.6x speed-up for small files and about a 1.2x speed-up for large files * Fix test * Add some exception handling around the normalise() function * Use the environment cache rather than pickling the files myself * Cache the mapping to a pickled file * Add a profile environment to tox to test normalise() * Make normalise about 2.1 time faster * Add a cProfile benchmark * Move the function reference to a different page in the documentation * Move doxylink.py and parsing.py into a module directory * Added tag doxylink-0.4 for changeset 32f4c6292b3f * Prepare for 0.4 release * Update documentation * Added tests for run\_programs * Add space only, if extra arguments were given * Enabled intersphinx to link to Sphinx docs * Re-ordered functions to group tests and funcargs together * More parsing tests into a proper test module * Don't add parentheses if the user provided their own * Fix some quoting in the documentation * Add some documentation to the normalise funtion * Remove this line which was added by mistake. We don't want to run this new version yet * Add pyparsing to the dependencies * Add a parsing module to normalise the function signatures * Add info about function matching to the documentation * Add function documentation to the Sphinx docs * Change doc strings to triple-quoted format * Return the error message rather than printing it manually. Split up the requested symbol into symbol and argument list. Allow for function overloading in the symbol mapping * Move the documentation into a Sphinx project * Allow URLs as base paths * Change the PyPI link and remove the changelog include in the readme since it breaks on PyPI * Added tag doxylink-0.3 for changeset 191fe6687bc4 * Prepare for release 0.3 * Add parentheses to functions if the add\_function\_parentheses config value is set * Add the function argument list to the mapping * Return the kind of symbol as well as the URL from the find\_url function * Reorganise the filters and split them out into separate functions * Fixed exclude patterns setting in conf.py * Added tag paverutils-1.3 for changeset 1574d3a92197 * merge heads after paverutils change * add break\_lines\_at argument to run\_script * Add a find\_url2 function to scan the mapping file * Add some documentation for the new funtion * Parse the tag file into an (as yet unused) mapping dictionary * Make sure only the relevant warning is shown * Only parse the tag file once per run * Use env specific test prefixes * \* [rubydomain]: fix minor bug about module function/method \* [rubydomain]: add README contents \* [rubydomain]: published sphinxcontrib-rubydomain to PyPI * Tag version 0.2 * Added tag doxylink-0.2 for changeset c6403ab574b2 * Improve documentation about generating the Doxygen tag file * Allow doxylink to work when called from a documentation subdirectory and using a relative HTML path * Added tests for programoutput and use tox for running them * Use a better fitting return value * Improved error message * Require sphinx 1.0 * Converted intersphinx linking to 1.0 format * Added tests for issuetracker and use tox for running them * Use raw string for regex pattern * Removed superfluous, unused issue\_reference class * Include tests in manifests * Re-enabled intersphinx linking with sphinx * Use tox for testing * Added pyqt4 tests * Simplified call checking * Removed separate environments for different docutils versions * Added shebang to allow direct execution of the test script * Simplified code * Test extension setup * Use mock library for application mock object * Converted intersphinx mapping to sphinx 1.0 format and removed broken sphinx 1.0 inventory * Use tox for test execution * Tests for epydoc extension * Moved filename generation into separate function * Added tox configuration to extension template * Fixed hard-coded template filename * Added tag ansi-0.5.1 for changeset 9ccb32d8f5ea * Release 0.5.1 * Include tests in sdist * Update for Sphinx 1.0 intersphinx format and remove broken Sphinx inventory * Fixed broken ordering with nested colors * Use tox for testing * Added some basic tests * Ignore tox build files * Add docs, correct URL, bump to 0.2 * Use sphinxcontrib- prefix * Add authors for cheeseshop extension * Add readme to template * Add class option to pypi-release; allow linking to specific versions in pypi role * Merge * Added tag ansi-0.5 for changeset a4498fcaf565 * Release ansi 0.5 * Ignore ANSI colors in non-html output * tip is ansi 0.5 * Added tag programoutput-0.4 for changeset 9be29ec83802 * Initial import of the programoutput extension * Added tag issuetracker-0.5.1 for changeset 64706e5cf5b2 * Release issuetracker 0.5.1 * Removed all forgotten references to lunar.sphinx.ext * Updated reference sphinx website and fix reference to sphinx-contrib issue tracker * Updated and cleaned doc configuration * Initial version of cheeseshop ext * pull upstream updates * updating dateutil to be 'python-dateutil' * When a target cannot be found, make the node an \`inline\` node so there's no link created * Added tag doxylink-0.1 for changeset fb4622a05ec3 * Finalise for 0.1 release * Prep for PyPi submission * Fixed formatting of build message * Added tag issuetracker-0.5 for changeset 97e5a3997167 * Release issuetracker 0.5 * Updated documentation * Closed issues are automatically struck through in HTML output * Enable issuetracker extension in issuetracker docs * Updated changelog * Really require Sphinx 1.0 now * Little style fix * issuetracker 0.5 * Added tag ansi-0.4.1 for changeset 08054161d994 * Release ansi 0.4.1 * actually generate guids and test accordingly * merge upstream * Fixed #2: Remove trailing slashes in manifests for the sake of windows compatibility * code to include item links and tests for same * Added tag ansi-0.4 for changeset bd73af2f2114 * Initial import of the ansi extension * Include documentation in package * Added tag pyqt4-0.5 for changeset 7afa3beecbfa * pyqt4 0.5 * Document the pyqt4:signal role * Renamed pyqt4:sig role to pyqt4:signal * Changed signature prefix to "PyQt4 signal" * pyqt4 is version 0.5 now * Initial commit of doxylink extension * Added tag pyqt4-0.4 for changeset 602eda17f60d * Initial import of pyqt4 extension * Little case fix * Fixed short description * Added tag epydoc-0.4 for changeset 4b64025e2e61 * Initial import of epydoc extension * Added tag issuetracker-0.4 for changeset 16737d7973b2 * Initial import of the issuetracker extension * tidy up config variables in preparation for actually injecting RSS links later on * change docs to reflect new Sphinx features * given up for the moment the battle to create a test that detects file deletion cleanup * adapt to actually include files that haven't been recently modified into the RSS feed * merge in upstream * new tests to capture nastiness around preserving RSS across sessions * better date parse error handling * handling date parse errors better * remove unneccesary import * get rid of Publish DAte nonsesne * Added tag traclinks-0.1 for changeset f2d7c92915b3 * \* adjust default config value * Initial traclinks import * initial commit for google analytics ext * Adapt get\_objects() of Erlang domain to API change * Adapt get\_objects() of Ruby domain to API change * Cleaned up README: Note this is displayed as a wiki so not all sphinx markup works. Check the displayed version to see if there are any errors * added ref to ZopeInterface website * Initial commit of zopeext extension * Erlang Domain: first alpha version(not implemented some funcitons yet) * Added tag bitbucket-1.0 for changeset 8348f54ac9d7 * add bitbucket extension * remove extra files * add extension names to list * first version of Ruby Domain * osaka: first version * Added tag paverutils-1.2 for changeset bf0e1d56c6e3 * switch to distribute for packaging * Added tag paverutils-1.2 for changeset ae10f103f453 * re-raise exceptions in run\_script * autorun: Add basic info about autorun * autorun: Execute code in a runblock directive * Fix a typo in a docstring * add info about gnuplot extension * tests fixed to create empty dirs so as to work on fresh checkout * tidyied up test cruft; made run.py actually work * suprious nose import * naming consistency * setup.py should probably contain project name * making licensing explicit * update docs * corrected date handling tests * Some handy help methods for nose are the secret sauce that make this test suite manageable. I feel a passing test suite approach * updating tests to only rely upon assert and no n * initial addition of feedgenerator from my site repo * aafig: Clean and improve the maintainer documentation * Tag mscgen-0.4 * mscgen: Make release development previews by default * mscgen: Update CHANGES * mscgen: Add maintainer documentation * aafig: Add maintainer documentation * aafig: Fix "Development Status" classifier in setup.py * Tag aafig-1.0 * aafig: Update CHANGES file for 1.0 release * gnuplot: Add gnuplot Sphinx extension * update document import #2 patch * refactoring document and fix URL * merge sdedit into sphinx-contrib * aafig: Improve error reporting when aafigure package is missing * aafig: Add VIM magic line to match the file format * aafig: Fix HTML builder rendering * Whooshindex back to development * Added tag whooshindex-0.1 for changeset b1417fd103aa * Whooshindex 0.1 * Fix wrong author * Ignore emacs .\*~ files * Move Whoosh indexer files around * Add Whoosh indexer * aafig: Bump version to 1.0 * Tag aafig-0.3 * mscgen: Change license to BOLA * mscgen: Remove unused 'options' node attribute * mscgen: Add sphinx website/manual * aafig: Change license to BOLA * aafig: Add Sphinx website/manual * aafig: Only try code that is expected to raise an exception * aafig: Don't override Image directive unchanged attributes * aafig: Don't override width and height for SVG images * aafig: Make aspect option behave properly * aafig: Add partial format redefinition for \`\`aafig\_format\`\` * aafig: Update aafigure link and dependency version in the docs * aafig: Update CHANGES file * aafig: Support builders for text format * aafig: Support missing aafigure module * aafig: Use ASCII art when can't render the image * aafig: Add TODO list * aafig: Use percentage for aspect option * aafig: Make Aafig directive inherit from the Image * Added tag context-0.1 for changeset 4a85a2b54f65 * Added tag lilypond-1.0 for changeset 38518c51732a * Added tag sword-1.0 for changeset 7ab6daf74946 * sword,lilypond: Add links in README * Added tag paverutils-1.1 for changeset 39a956e52160 * add run\_script function to sphinxcontrib.paverutils * aafig: Remove debug print * aafig: Merge default options before calculating the hash * aafig: Update CHANGES file * aafig: Don't break if a SVG metadata file is missing * aafig: Put SVG metadata files in the build directory * aafig: Add missing format operator when rendering to SVG * aafig: Fix typo in package description * aafig: Update CHANGES file * aafig: Add a simple example to package description * aafig: Change dependency to new aafigure package * aafig: Raise the right exception when aafigure.render() fails * aafig: Add docutils-aafigure (>=0.2) dependency * aafig: Start version 0.3 * Tag aafig-0.2 * aafigure: Fix SVG output for HTML writer * aafig: Add aafig\_default\_options configuration option \* \* \* amend: new option \* \* \* fix * aafig: Fix aafig\_format option documentation * aafig: Start version 0.2 \* \* \* amend: increase version * aafig: Add release date to versions in CHANGES * Add aafig-0.1 tag * aafig: Improve package short and long description * aafig: Improve About documentation * aafig: Rename package as sphinxcontrib-aafig \* \* \* aafig: Fix package name in PYPI URL * aafig: Don't use dev and date tags in setup.cfg * mscgen: Fix package name in the PYPI URL * Add mscgen-0.3 tag * mscgen: Improve package short and long descriptions * mscgen: Change package name to sphinxcontrib-mscgen * mscgen: Don't use dev and date tags in setup.cfg * fix urls for paverutils, again * Added tag paverutils-1-0 for changeset 788d8ee0f4e2 * fix urls for paverutils * add task information to paverutils readme * Added tag paverutils-1-0 for changeset bb1d543c692b * update paverutils docs * first version of paverutils * context, sword: Add packages * Add sword extension * Add ConTeXt builder, which is very primative * Add mscgen extension * mscgen: Add e-mail after the author name * Add mscgen extension * Add lilypond extension * Switch to separate distribution per extension * Add initial file infrastructure ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1619810322.0 sphinxcontrib-spelling-7.2.1/LICENSE0000644000175100001710000000242200000000000016573 0ustar00runnerdockerCopyright (c) 2010 by Doug Hellmann. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1619810322.0 sphinxcontrib-spelling-7.2.1/MANIFEST.in0000644000175100001710000000003700000000000017324 0ustar00runnerdockerinclude README include LICENSE ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1619810322.0 sphinxcontrib-spelling-7.2.1/Makefile0000644000175100001710000000170500000000000017231 0ustar00runnerdocker# Default target is to show help help: @echo "sdist - Source distribution" @echo "html - HTML documentation" @echo "spelling - Check spelling of documentation" @echo "upload - upload a new release to PyPI" @echo "installwebsite - deploy web version of docs" @echo "develop - install development version" @echo "test - run the test suite" .PHONY: sdist sdist: html python setup.py sdist .PHONY: upload upload: html python setup.py sdist upload # Documentation .PHONY: html html: (cd docs && $(MAKE) html) .PHONY: spelling spelling: (cd docs && $(MAKE) spelling) installwebsite: html (cd docs/build/html && rsync --rsh=ssh --archive --delete --verbose . www.doughellmann.com:/var/www/doughellmann/DocumentRoot/docs/sphinxcontrib.spelling/) # Register the new version on pypi .PHONY: register register: python setup.py register # Testing .PHONY: test test: tox develop: python setup.py develop ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1619810330.6768272 sphinxcontrib-spelling-7.2.1/PKG-INFO0000644000175100001710000000552500000000000016672 0ustar00runnerdockerMetadata-Version: 2.1 Name: sphinxcontrib-spelling Version: 7.2.1 Summary: Sphinx spelling extension Home-page: https://github.com/sphinx-contrib/spelling Author: Doug Hellmann Author-email: doug@doughellmann.com License: UNKNOWN Description: .. -*- mode: rst -*- ========================= sphinxcontrib-spelling ========================= This package contains sphinxcontrb.spelling, a spelling checker for Sphinx-based documentation. It uses PyEnchant_ to produce a report showing misspelled words. Refer to the `main documentation page `__ for installation and setup details. License ======= Copyright Doug Hellmann, All Rights Reserved Permission to use, copy, modify, and distribute this software and its documentation for any purpose and without fee is hereby granted, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation, and that the name of Doug Hellmann not be used in advertising or publicity pertaining to distribution of the software without specific, written prior permission. DOUG HELLMANN DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL DOUG HELLMANN BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. .. _PyEnchant: https://github.com/pyenchant/pyenchant Platform: UNKNOWN Classifier: Development Status :: 5 - Production/Stable Classifier: Environment :: Console Classifier: Environment :: Web Environment Classifier: Framework :: Sphinx :: Extension Classifier: Intended Audience :: Developers Classifier: License :: OSI Approved :: BSD License Classifier: Operating System :: OS Independent Classifier: Programming Language :: Python Classifier: Programming Language :: Python :: 3 Classifier: Programming Language :: Python :: 3 :: Only Classifier: Programming Language :: Python :: 3.6 Classifier: Programming Language :: Python :: 3.7 Classifier: Programming Language :: Python :: 3.8 Classifier: Programming Language :: Python :: 3.9 Classifier: Programming Language :: Python :: Implementation :: CPython Classifier: Programming Language :: Python :: Implementation :: PyPy Classifier: Topic :: Documentation Classifier: Topic :: Utilities Requires-Python: >=3.6 Provides-Extra: test ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1619810322.0 sphinxcontrib-spelling-7.2.1/README0000644000175100001710000000261700000000000016454 0ustar00runnerdocker.. -*- mode: rst -*- ========================= sphinxcontrib-spelling ========================= This package contains sphinxcontrb.spelling, a spelling checker for Sphinx-based documentation. It uses PyEnchant_ to produce a report showing misspelled words. Refer to the `main documentation page `__ for installation and setup details. License ======= Copyright Doug Hellmann, All Rights Reserved Permission to use, copy, modify, and distribute this software and its documentation for any purpose and without fee is hereby granted, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation, and that the name of Doug Hellmann not be used in advertising or publicity pertaining to distribution of the software without specific, written prior permission. DOUG HELLMANN DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL DOUG HELLMANN BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. .. _PyEnchant: https://github.com/pyenchant/pyenchant ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1619810330.6768272 sphinxcontrib-spelling-7.2.1/docs/0000755000175100001710000000000000000000000016516 5ustar00runnerdocker././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1619810322.0 sphinxcontrib-spelling-7.2.1/docs/Makefile0000644000175100001710000001117300000000000020161 0ustar00runnerdocker# Makefile for Sphinx documentation # # You can set these variables from the command line. SPHINXOPTS = SPHINXBUILD = sphinx-build PAPER = BUILDDIR = build # Internal variables. PAPEROPT_a4 = -D latex_paper_size=a4 PAPEROPT_letter = -D latex_paper_size=letter ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source .PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest help: @echo "Please use \`make ' where is one of" @echo " html to make standalone HTML files" @echo " dirhtml to make HTML files named index.html in directories" @echo " singlehtml to make a single large HTML file" @echo " pickle to make pickle files" @echo " json to make JSON files" @echo " htmlhelp to make HTML files and a HTML help project" @echo " qthelp to make HTML files and a qthelp project" @echo " devhelp to make HTML files and a Devhelp project" @echo " epub to make an epub" @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" @echo " latexpdf to make LaTeX files and run them through pdflatex" @echo " text to make text files" @echo " man to make manual pages" @echo " changes to make an overview of all changed/added/deprecated items" @echo " linkcheck to check all external links for integrity" @echo " doctest to run all doctests embedded in the documentation (if enabled)" clean: -rm -rf $(BUILDDIR)/* html: $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html @echo @echo "Build finished. The HTML pages are in $(BUILDDIR)/html." dirhtml: $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml @echo @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml." singlehtml: $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml @echo @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml." pickle: $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle @echo @echo "Build finished; now you can process the pickle files." json: $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json @echo @echo "Build finished; now you can process the JSON files." htmlhelp: $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp @echo @echo "Build finished; now you can run HTML Help Workshop with the" \ ".hhp project file in $(BUILDDIR)/htmlhelp." qthelp: $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp @echo @echo "Build finished; now you can run "qcollectiongenerator" with the" \ ".qhcp project file in $(BUILDDIR)/qthelp, like this:" @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/sphinxcontribspelling.qhcp" @echo "To view the help file:" @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/sphinxcontribspelling.qhc" devhelp: $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp @echo @echo "Build finished." @echo "To view the help file:" @echo "# mkdir -p $$HOME/.local/share/devhelp/sphinxcontribspelling" @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/sphinxcontribspelling" @echo "# devhelp" epub: $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub @echo @echo "Build finished. The epub file is in $(BUILDDIR)/epub." latex: $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex @echo @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex." @echo "Run \`make' in that directory to run these through (pdf)latex" \ "(use \`make latexpdf' here to do that automatically)." latexpdf: $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex @echo "Running LaTeX files through pdflatex..." make -C $(BUILDDIR)/latex all-pdf @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." text: $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text @echo @echo "Build finished. The text files are in $(BUILDDIR)/text." man: $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man @echo @echo "Build finished. The manual pages are in $(BUILDDIR)/man." changes: $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes @echo @echo "The overview file is in $(BUILDDIR)/changes." linkcheck: $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck @echo @echo "Link check complete; look for any errors in the above output " \ "or in $(BUILDDIR)/linkcheck/output.txt." spelling: $(SPHINXBUILD) -b spelling $(ALLSPHINXOPTS) $(BUILDDIR)/spelling doctest: $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest @echo "Testing of doctests in the sources finished, look at the " \ "results in $(BUILDDIR)/doctest/output.txt." ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1619810322.0 sphinxcontrib-spelling-7.2.1/docs/requirements.txt0000644000175100001710000000006700000000000022005 0ustar00runnerdocker# This file is only needed for readthedocs.org .[docs] ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1619810330.6768272 sphinxcontrib-spelling-7.2.1/docs/source/0000755000175100001710000000000000000000000020016 5ustar00runnerdocker././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1619810322.0 sphinxcontrib-spelling-7.2.1/docs/source/conf.py0000644000175100001710000001613200000000000021320 0ustar00runnerdocker# sphinxcontrib.spelling documentation build configuration file, created by # sphinx-quickstart on Sun Apr 17 15:33:23 2011. # # This file is execfile()d with the current directory set to its containing dir. # # Note that not all possible configuration values are present in this # autogenerated file. # # All configuration values have a default; values that are commented out # serve to show the default. import os import sys # If extensions (or modules to document with autodoc) are in another directory, # add these directories to sys.path here. If the directory is relative to the # documentation root, use os.path.abspath to make it absolute, like shown here. #sys.path.insert(0, os.path.abspath('.')) # -- General configuration ----------------------------------------------------- # If your documentation needs a minimal Sphinx version, state it here. #needs_sphinx = '1.0' # Add any Sphinx extension module names here, as strings. They can be extensions # coming with Sphinx (named 'sphinx.ext.*') or your custom ones. extensions = [ 'sphinxcontrib.spelling', ] spelling_word_list_filename = [ 'spelling_wordlist.txt', ] spelling_show_suggestions = True spelling_ignore_pypi_package_names = True spelling_ignore_contributor_names = True # Add any paths that contain templates here, relative to this directory. templates_path = ['_templates'] # The suffix of source filenames. source_suffix = '.rst' # The encoding of source files. #source_encoding = 'utf-8-sig' # The master toctree document. master_doc = 'index' # General information about the project. project = 'sphinxcontrib.spelling' copyright = '2011, Doug Hellmann' # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the # built documents. # # The short X.Y version. version = '1.4' # The full version, including alpha/beta/rc tags. release = version # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. #language = None # There are two options for replacing |today|: either, you set today to some # non-false value, then it is used: #today = '' # Else, today_fmt is used as the format for a strftime call. #today_fmt = '%B %d, %Y' # List of patterns, relative to source directory, that match files and # directories to ignore when looking for source files. exclude_patterns = [] # The reST default role (used for this markup: `text`) to use for all documents. #default_role = None # If true, '()' will be appended to :func: etc. cross-reference text. #add_function_parentheses = True # If true, the current module name will be prepended to all description # unit titles (such as .. function::). #add_module_names = True # If true, sectionauthor and moduleauthor directives will be shown in the # output. They are ignored by default. #show_authors = False # The name of the Pygments (syntax highlighting) style to use. pygments_style = 'sphinx' # A list of ignored prefixes for module index sorting. #modindex_common_prefix = [] # -- Options for HTML output --------------------------------------------------- # The theme to use for HTML and HTML Help pages. See the documentation for # a list of builtin themes. html_theme = 'default' # Theme options are theme-specific and customize the look and feel of a theme # further. For a list of options available for each theme, see the # documentation. #html_theme_options = {} # Add any paths that contain custom themes here, relative to this directory. #html_theme_path = [] # The name for this set of Sphinx documents. If None, it defaults to # " v documentation". #html_title = None # A shorter title for the navigation bar. Default is the same as html_title. #html_short_title = None # The name of an image file (relative to this directory) to place at the top # of the sidebar. #html_logo = None # The name of an image file (within the static path) to use as favicon of the # docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 # pixels large. #html_favicon = None # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, # so a file named "default.css" will overwrite the builtin "default.css". #html_static_path = ['_static'] # If not '', a 'Last updated on:' timestamp is inserted at every page bottom, # using the given strftime format. #html_last_updated_fmt = '%b %d, %Y' # If true, SmartyPants will be used to convert quotes and dashes to # typographically correct entities. #html_use_smartypants = True # Custom sidebar templates, maps document names to template names. #html_sidebars = {} # Additional templates that should be rendered to pages, maps page names to # template names. #html_additional_pages = {} # If false, no module index is generated. #html_domain_indices = True # If false, no index is generated. #html_use_index = True # If true, the index is split into individual pages for each letter. #html_split_index = False # If true, links to the reST sources are added to the pages. #html_show_sourcelink = True # If true, "Created using Sphinx" is shown in the HTML footer. Default is True. #html_show_sphinx = True # If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. #html_show_copyright = True # If true, an OpenSearch description file will be output, and all pages will # contain a tag referring to it. The value of this option must be the # base URL from which the finished HTML is served. #html_use_opensearch = '' # This is the file name suffix for HTML files (e.g. ".xhtml"). #html_file_suffix = None # Output file base name for HTML help builder. htmlhelp_basename = 'sphinxcontribspellingdoc' # -- Options for LaTeX output -------------------------------------------------- # The paper size ('letter' or 'a4'). #latex_paper_size = 'letter' # The font size ('10pt', '11pt' or '12pt'). #latex_font_size = '10pt' # Grouping the document tree into LaTeX files. List of tuples # (source start file, target name, title, author, documentclass [howto/manual]). latex_documents = [ ('index', 'sphinxcontribspelling.tex', 'sphinxcontrib.spelling Documentation', 'Doug Hellmann', 'manual'), ] # The name of an image file (relative to this directory) to place at the top of # the title page. #latex_logo = None # For "manual" documents, if this is true, then toplevel headings are parts, # not chapters. #latex_use_parts = False # If true, show page references after internal links. #latex_show_pagerefs = False # If true, show URL addresses after external links. #latex_show_urls = False # Additional stuff for the LaTeX preamble. #latex_preamble = '' # Documents to append as an appendix to all manuals. #latex_appendices = [] # If false, no module index is generated. #latex_domain_indices = True # -- Options for manual page output -------------------------------------------- # One entry per manual page. List of tuples # (source start file, name, description, authors, manual section). man_pages = [ ('index', 'sphinxcontribspelling', 'sphinxcontrib.spelling Documentation', ['Doug Hellmann'], 1) ] ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1619810322.0 sphinxcontrib-spelling-7.2.1/docs/source/customize.rst0000644000175100001710000001463100000000000022577 0ustar00runnerdocker.. spelling:: wikis ======================= Configuration Options ======================= These options can be set in ``conf.py`` along with the other Sphinx configuration settings. Input Options ============= ``spelling_lang='en_US'`` String specifying the language, as understood by PyEnchant and enchant. Defaults to ``en_US`` for US English. ``tokenizer_lang='en_US'`` String specifying the tokenizer language as understood by PyEnchant and enchant. Defaults to ``en_US`` for US English. ``spelling_word_list_filename='spelling_wordlist.txt'`` String specifying a file containing a list of words known to be spelled correctly but that do not appear in the language dictionary selected by ``spelling_lang``. The file should contain one word per line. Refer to the `PyEnchant tutorial`_ for details. Use a list to add multiple files. ``spelling_word_list_filename=['spelling_wordlist.txt','another_list.txt']`` Same as above, but with several files of correctly spelled words. ``spelling_exclude_patterns=['ignored_*']`` A list of glob-style patterns that should be ignored when checking spelling. They are matched against the source file names relative to the source directory, using slashes as directory separators on all platforms. See Sphinx's `exclude_patterns`_ option for more details on glob-style patterns. .. _PyEnchant tutorial: https://github.com/rfk/pyenchant/blob/master/website/content/tutorial.rst .. _exclude_patterns : https://www.sphinx-doc.org/en/master/usage/configuration.html#confval-exclude_patterns .. _output-options: Output Options ============== ``spelling_show_suggestions=False`` Boolean controlling whether suggestions for misspelled words are printed. Defaults to False. ``spelling_show_whole_line=True`` Boolean controlling whether the contents of the line containing each misspelled word is printed, for more context about the location of each word. Defaults to True. ``spelling_warning=False`` Boolean controlling whether a misspelling is emitted as a sphinx warning or as an info message. Defaults to False. ``spelling_verbose=True`` Choose whether or not the misspelled words should be displayed in the terminal. Defaults to True. Word Filters ============ Enable or disable the built-in filters to control which words are returned by the tokenizer to be checked. ``spelling_ignore_pypi_package_names=False`` Boolean controlling whether words that look like package names from PyPI are treated as spelled properly. When ``True``, the current list of package names is downloaded at the start of the build and used to extend the list of known words in the dictionary. Defaults to ``False``. ``spelling_ignore_wiki_words=True`` Boolean controlling whether words that follow the CamelCase conventions used for page names in wikis should be treated as spelled properly. Defaults to ``True``. ``spelling_ignore_acronyms=True`` Boolean controlling treatment of words that appear in all capital letters, or all capital letters followed by a lower case ``s``. When ``True``, acronyms are assumed to be spelled properly. Defaults to ``True``. ``spelling_ignore_python_builtins=True`` Boolean controlling whether names built in to Python should be treated as spelled properly. Defaults to ``True``. ``spelling_ignore_importable_modules=True`` Boolean controlling whether words that are names of modules found on ``sys.path`` are treated as spelled properly. Defaults to ``True``. ``spelling_ignore_contributor_names=True`` Boolean controlling whether contributor names taken from the git history for the repository are considered as spelled correctly. ``spelling_filters=[]`` List of importable filter classes to be added to the tokenizer that produces words to be checked. For example, ``["enchant.tokenize.MentionFilter"]``. The classes should be derived from ``enchant.tokenize.Filter``. Refer to the `PyEnchant tutorial`_ for examples. Private Dictionaries ==================== There are two ways to provide a list of known good words. The ``spelling_word_list_filename`` option (described above) specifies the name of a plain text file containing one word per line. All of the words in the file are assumed to be spelled correctly and may appear in any part of the document being processed. You can use multiple text files with words to be added to the dictionary, to do this all you need to do is use a list and include the name of your text files. For example:: spelling_word_list_filename = ['spelling_wordlist.txt', 'my_wordlist.txt'] The ``spelling`` directive can be used to create a list of words known to be spelled correctly within a single file. For example, if a document refers to a person or project by name, the name can be added to the list of known words for just that document. :: .. spelling:: Docutils Goodger .. _PyEnchant: https://github.com/rfk/pyenchant Custom Word Filters =================== The PyEnchant tokenizer supports a "filtering" API for processing words from the input. Filters can alter the stream of words by adding, replacing, or dropping values. New filters should be derived from ``enchant.tokenize.Filter`` and implement either the ``_split()`` method (to add or replace words) or ``_skip()`` (to treat words as being spelled correctly). For example, this :class:`AcronymFilter` skips words that are all uppercase letters or all uppercase with a trailing lowercase "s". :: class AcronymFilter(Filter): """If a word looks like an acronym (all upper case letters), ignore it. """ def _skip(self, word): return (word.isupper() # all caps or # pluralized acronym ("URLs") (word[-1].lower() == 's' and word[:-1].isupper() ) ) To be used in a document, the custom filter needs to be installed somewhere that Sphinx can import it while processing the input files. The Sphinx project's ``conf.py`` then needs two changes. 1. Import the filter class. 2. Add the import string for the filter class to the ``spelling_filters`` configuration variable. :: spelling_filters = ['mymodule.MyFilter'] .. seealso:: * `Creating a Spelling Checker for reStructuredText Documents `_ * `PyEnchant tutorial`_ ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1619810322.0 sphinxcontrib-spelling-7.2.1/docs/source/developers.rst0000644000175100001710000000270400000000000022723 0ustar00runnerdocker.. spelling:: sphinxcontrib reStructuredText ============ Developers ============ If you would like to contribute to sphinxcontrib.spelling directly, these instructions should help you get started. Patches, bug reports, and feature requests are all welcome through the `GitHub site `__. Contributions in the form of patches or pull requests are easier to integrate and will receive priority attention. Running tests ============= To run the tests, you need ``tox`` installed, then just run ``tox``. This should run the unit tests, the source code linter, and try to build the current documentation. Coding style ============ Python imports are formatted and sorted using `isort `__. To format all files, run: .. code-block:: console $ tox -e style Building Documentation ====================== The documentation for sphinxcontrib.spelling is written in reStructuredText and converted to HTML using Sphinx. The build is driven by ``tox``. To build only the documentation, run ``tox -e docs``. Contributing ============ Please submit changes as pull requests using the `GitHub repository `__. In the pull request description, link to any issues closed by the changes using ``Fixes #NUM``, replacing ``NUM`` with the issue number. Release Notes ============= Please add a release note for each pull request to ``docs/history.rst``. ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1619810322.0 sphinxcontrib-spelling-7.2.1/docs/source/history.rst0000644000175100001710000002104100000000000022247 0ustar00runnerdocker================= Release History ================= .. spelling:: unmaintained 7.2.0 ===== New Features ------------ - `#123 `__ adds the ``spelling_verbose`` configuration option for controlling whether misspelled words are printed to the console as well as the output log files. See :ref:`output-options` for details. 7.1.0 ===== New Features ------------ - `#116 `__ adds a config option `spelling_warning` that makes individual messages about misspellings warnings. The same change also updates the formatting of the message to make it easier for IDEs to parse, allowing the editor to navigate to the location of the misspelled word. See :ref:`output-options` for details. Contributed by Robert Cohn. 7.0.1 ===== Bug Fixes --------- - `#105 `__ reverts a change that switched from `imp` to `importlib`. Using `importlib.find_spec() `__ is not safe at runtime as it can import modules which will cause side effects within environments. 7.0.0 ===== This major release drops support for Python 3.5. This version `is not maintained anymore `__. Bug Fixes --------- - Fixes an issue with ellipsis incorrectly being interpreted as relative imports and triggering a `ValueError` in the `ImportableModuleFilter`. See `#96 `__ for details. 6.0.0 ===== With this release, sphinxcontrib-spelling moves from beta to stable. It also updates the use of Python 3, including packaging metadata, code style, and test configuration. New Features ------------ - Add packaging metadata declaring the project stable. - Add packaging metadata declaring support for Python 3 only. - Add packaging metadata indicating that this is a sphinx extension. Bug Fixes --------- - Replace use of deprecated `imp` module with `importlib`. - Update use of `pyenchant.get_tokenizer()` to pass filters argument as a keyword and avoid a runtime warning message. - Remove unused test dependency on `fixtures`. - Use `pyupgrade` to modernize the source code. 5.4.0 ===== New Features ------------ - Added a new filter (``sphinxcontrib.spelling.filters.ContributorFilter``) that treats contributor names extracted from the git history as spelled correctly, making it easier to refer to the names in acknowledgments . Includes a new configuration option, ``spelling_ignore_contributor_names`` to enable it. 5.3.0 ===== New Features ------------ - Add a configuration option ``spelling_exclude_patterns`` to manage skipping spell checking for some input files. The option uses a list of glob-style patterns that are matched against the source file names relative to the source directory. See :doc:`/customize` for more details. Contributed by sdelliot. 5.2.2 ===== Bug Fixes --------- - Updated to only create ``.spelling`` output files for inputs that generate spelling warnings. Fixes #63. 5.2.0 ===== New Features ------------ - The builder is now registered using an entry point, so that if the ``spelling`` directive is not used in a project ``sphinxcontrib.spelling`` does not need to be included explicitly in the ``extensions`` list in ``conf.py`` in order to use it with the project on the command line. - PyEnchant is an optional dependency. If it is not installed, the spell checker will not work, but the extension can still be initialized. This allows projects that use spell checking to publish their documentation to ``readthedocs.org``, where it is not possible to install PyEnchant. - Restore support for parallel builds. Words that do not appear in any configured dictionary are written to a file named based on the input file, with the ``.rst`` extension replaced with ``.spelling``. 5.1.2 ===== - Mark as unsafe for parallel builds (contributed by Jared Dillard) - Add -W arg to sphinx-build in docs so warnings cause error (contributed by Elsa Gonsiorowski, PhD) 5.1.0 ===== - Add an option to show the line containing a misspelling for context (contributed by Huon Wilson) 5.0.0 ===== - Drop Python 2.7 support. (contributed by Johannes Raggam) - `allow customizing with classes using import strings `__ - pyenchant is now maintained (contributed by Adam Johnson 4.3.0 ===== - Logging: use warning() instead of its deprecated alias (contributed by Sergey Kolosov) - Support additional contractions (contributed by David Baumgold) - require Sphinx >= 2.0.0 - declare support for Python 3.6 4.2.1 ===== - fix remaining logging issue (contributed by Timotheus Kampik) - Remove usage of deprecated logging API (contributed by Tim Graham) 4.2.0 ===== - Fix a bug with empty word lists (contributed by FabioRosado) - Update dependency management to use setuptools extras - Document how to create multiple wordfiles (contributed by FabioRosado) - Note that PyEnchant is unmaintained and fix links (contributed by Marti Raudsepp) - Don’t use mutable default argument (contributed by Daniele Tricoli) 4.1.0 ===== - Make it possible to provide several wordlists (contributed by Tobias Olausson) - Update developer documentation (contributed by Tobias Olausson) - Update home page link (contributed by Devin Sevilla) 4.0.1 ===== - use the right method to emit warnings - disable smart quotes so that we can recognize contractions/possessives correctly (contributed by Alex Gaynor) 4.0.0 ===== - Don’t fail by default (contributed by Stephen Finucane) - Mark the extension as safe for parallel reading (contributed by Alex Gaynor) - be more verbose about configuration options - switch to testrepository for running tests - update Python 3.3 to 3.5 2.3.0 ===== - make it possible to specify tokenizer #7 (contributed by Timotheus Kampik) 2.2.0 ===== - Use ``https`` with ``pypi.python.org`` package name checker (contributed by John-Scott Atlakson) - Removed unnecessary shebang lines from non-script files (contributed by Avram Lubkin) - Re-enable the PyEnchant dependency (contributed by Julian Berman) 2.1.2 ===== - Fixed issue with six under Python 3.4 2.1.1 ===== - Use ``str.isupper()`` instead of ad-hoc method - fix syntax for tags directive - Removed no more used CHANGES file 2.1 === - Fix unicode error in ``PythonBuiltinsFilter``. - Make error output useful in emacs compiler mode - Only show the words being added to a local dictionary if debugging is enabled. 2.0 === - Add Python 3.3 support. - Add PyPy support. - Use pbr for packaging. - Update tox config to work with forked version of PyEnchant until changes are accepted upstream. 1.4 === - Fixed detection of builtins under PyPy, contributed by Hong Minhee (https://bitbucket.org/dahlia). 1.3 === - Handle text nodes without parents. (#19) - Include the input document name in the console output. - Use the Sphinx wrapper for registering a directive. 1.2 === - Add the document name to the messages showing the contents of a local dictionary created by the ``spelling`` directive. - Add title nodes to the list of node types checked for spelling. Resolves issue #17. - Add test/test_wordlist.txt to the manifest so it is included in the source distribution and the tests will pass. Resolves issue #17. - Documentation patch from Hank Gay. 1.1.1 ===== - Fix initialization so the per-document filters work even if no ``spelling`` directive is used. 1.1 === - Add an option treat the names of packages on PyPI as spelled properly. - Add an option to treat CamelCase names as spelled properly. - Add an option to treat acronyms as spelled properly. - Add an option to treat Python built-ins as spelled properly. - Add an option to treat names that can be found as modules as spelled properly. - Add an option to let the user provide a list of other filter classes for the tokenizer. - Add ``spelling`` directive for passing local configuration settings to the spelling checker. This version allows setting a list of words known to be spelled correctly. 1.0 === - Re-implement using just a Builder, without a separate visitor class. - Show the file and line number of any words not appearing in the dictionary, instead of the section title. - Log the file, line, and unknown words as the documents are processed. 0.2 === - Warn but otherwise ignore unknown node types. 0.1 === - First public release. ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1619810322.0 sphinxcontrib-spelling-7.2.1/docs/source/index.rst0000644000175100001710000000172400000000000021663 0ustar00runnerdocker.. spelling:: sphinxcontrib .. sphinxcontrib.spelling documentation master file, created by sphinx-quickstart on Sun Apr 17 15:33:23 2011. You can adapt this file completely to your liking, but it should at least contain the root `toctree` directive. ======================== sphinxcontrib.spelling ======================== ``sphinxcontrib.spelling`` is a spelling checker for Sphinx_. It uses PyEnchant_ to produce a report showing misspelled words. Features ======== 1. Supports multiple source languages using the standard enchant dictionaries. 2. Supports project-specific dictionaries for localized jargon and other terminology that may not appear in the global dictionaries. 3. Suggests alternatives to words not found in the dictionary, when possible. Details ======= .. toctree:: :maxdepth: 2 install customize run developers history .. _PyEnchant: https://github.com/rfk/pyenchant .. _Sphinx: http://sphinx.pocoo.org/ ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1619810322.0 sphinxcontrib-spelling-7.2.1/docs/source/install.rst0000644000175100001710000000073400000000000022222 0ustar00runnerdocker.. spelling:: sphinxcontrib ============== Installation ============== 1. Install the extension with pip: ``pip install sphinxcontrib-spelling`` 2. Add ``'sphinxcontrib.spelling'`` to the ``extensions`` list in ``conf.py``. .. code-block:: python extensions = [ 'sphinxcontrib.spelling' ] 3. Then pass ``"spelling"`` as the builder argument to ``sphinx-build``. .. code-block:: shell-session $ sphinx-build -b spelling docs/source docs/build ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1619810322.0 sphinxcontrib-spelling-7.2.1/docs/source/run.rst0000644000175100001710000000772500000000000021367 0ustar00runnerdocker========= Running ========= To process a document with the spell checker, use ``sphinx-build`` and specify ``spelling`` as the builder name using the ``-b`` option. The output includes the headings from the document and any misspelled words. If suggestions are enabled, they are shown on the same line as the misspelling. A log of the words in each input file not found in the dictionary is saved to the file ``.spelling`` under the build directory. .. code-block:: console $ tox -e spelling -r spelling create: .../sphinxcontrib-spelling/.tox/spelling spelling installdeps: .[docs] spelling develop-inst: .../sphinxcontrib-spelling spelling installed: -f /Users/dhellmann/.pip/wheelhouse,alabaster==0.7.12,Babel==2.8.0,certifi==2020.6.20,chardet==3.0.4,docutils==0.16,dulwich==0.20.5,idna==2.10,imagesize==1.2.0,importlib-metadata==1.7.0,Jinja2==2.11.2,MarkupSafe==1.1.1,packaging==20.4,pbr==5.4.5,pyenchant==3.1.1,Pygments==2.6.1,pyparsing==2.4.7,pytz==2020.1,PyYAML==5.3.1,reno==3.1.0,requests==2.24.0,six==1.15.0,snowballstemmer==2.0.0,Sphinx==3.2.0,sphinxcontrib-applehelp==1.0.2,sphinxcontrib-devhelp==1.0.2,sphinxcontrib-htmlhelp==1.0.3,sphinxcontrib-jsmath==1.0.1,sphinxcontrib-qthelp==1.0.3,sphinxcontrib-serializinghtml==1.1.4,-e git+git@github.com:sphinx-contrib/spelling.git@b0b3e2a8c935701cfcbbc76ea1aa501a03ae4e22#egg=sphinxcontrib_spelling,urllib3==1.25.10,zipp==3.1.0 spelling run-test-pre: PYTHONHASHSEED='1632297322' spelling run-test: commands[0] | sphinx-build -W -j auto -b spelling -d docs/build/doctrees docs/source docs/build/spelling Running Sphinx v3.2.0 Initializing Spelling Checker 5.2.1.dev2 Ignoring wiki words Ignoring acronyms Adding package names from PyPI to local dictionary… Ignoring Python builtins Ignoring importable module names Adding contents of .../sphinxcontrib-spelling/docs/source/spelling_wordlist.txt to custom word list Adding contents of .../sphinxcontrib-spelling/docs/source/spelling_people.txt to custom word list Looking for custom word list in /var/folders/5q/8gk0wq888xlggz008k8dr7180000hg/T/tmphsetrn0s/spelling_wordlist.txt building [mo]: targets for 0 po files that are out of date building [spelling]: all documents updating environment: [new config] 6 added, 0 changed, 0 removed reading sources... [ 16%] customize reading sources... [ 33%] developers reading sources... [ 50%] history reading sources... [ 66%] index reading sources... [ 83%] install reading sources... [100%] run waiting for workers... scanning .../sphinxcontrib-spelling/releasenotes/notes for current branch release notes got versions ['5.2.0'] looking for now-outdated files... none found pickling environment... done checking consistency... done preparing documents... done writing output... [ 16%] customize Extending local dictionary for customize writing output... [ 33%] developers Extending local dictionary for developers writing output... [ 50%] history Extending local dictionary for history writing output... [ 66%] index Extending local dictionary for index index.rst:17:speel:["Peel", "peel", "spell", "spiel", "Speer", "speed", "steel", "sepal", "spill", "spoil", "spool", "speller", "Pele", "supple", "Perl", "spew", "spree", "suppl", "repel", "spells", "spiels", "spleen", "peal", "seal", "seep", "sell", "Aspell", "Ispell", "sleep", "spell's", "spiel's"]:I can't speel. Writing .../sphinxcontrib-spelling/docs/build/spelling/index.spelling writing output... [ 83%] install Extending local dictionary for install writing output... [100%] run Warning, treated as error: Found 1 misspelled words ERROR: InvocationError for command .../sphinxcontrib-spelling/.tox/spelling/bin/sphinx-build -W -j auto -b spelling -d docs/build/doctrees docs/source docs/build/spelling (exited with code 2) __________________________________________________ summary ___________________________________________________ ERROR: spelling: commands failed ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1619810322.0 sphinxcontrib-spelling-7.2.1/docs/source/spelling_wordlist.txt0000644000175100001710000000016100000000000024321 0ustar00runnerdockerbuiltins hoc linter linters pypi reStructuredText sphinxcontrib tokenizer txt wikis wordfiles wordlist wordlists ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1619810330.6768272 sphinxcontrib-spelling-7.2.1/integration_tests/0000755000175100001710000000000000000000000021333 5ustar00runnerdocker././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1619810322.0 sphinxcontrib-spelling-7.2.1/integration_tests/build_django.py0000755000175100001710000000377400000000000024344 0ustar00runnerdocker#!/usr/bin/env python # """Try to build the Django documentation. """ import argparse import os import subprocess import sys import tempfile def doit(*cmd, description='', cwd=None): print(f'\n[{description}]\nrunning: {" ".join(cmd)}') completed = subprocess.run(cmd, cwd=cwd) try: completed.check_returncode() except subprocess.CalledProcessError as err: raise RuntimeError(f'command failed {description}') from err def try_build(workdir, srcdir, django_repo): print(f'working in {workdir}') doit('git', 'clone', '--depth', '1', django_repo, 'django', description='clone django', cwd=workdir, ) djangodir = workdir + '/django' doit('tox', '-e', 'docs', '--notest', description='build django docs virtualenv', cwd=djangodir, ) doit('.tox/docs/bin/pip', 'uninstall', '-y', 'sphinxcontrib-spelling', description='uninstall packaged sphinxcontrib-spelling', cwd=djangodir, ) doit('.tox/docs/bin/pip', 'install', srcdir, description='install sphinxcontrib-spelling from source', cwd=djangodir, ) doit('tox', '-e', 'docs', description='build django docs', cwd=djangodir, ) def main(args=sys.argv[1:]): parser = argparse.ArgumentParser() parser.add_argument('--debug', action='store_true', default=False, help='show full tracebacks') parser.add_argument('--src', help='source directory') parser.add_argument('--django-repo', default='https://github.com/django/django.git') parsed = parser.parse_args(args) srcdir = parsed.src if not srcdir: srcdir = os.path.realpath(os.path.dirname(os.path.dirname(sys.argv[0]))) try: with tempfile.TemporaryDirectory() as dirname: try_build(dirname, srcdir, parsed.django_repo) except Exception as err: if parsed.debug: raise print(f'ERROR: {err}') return 1 return 0 if __name__ == '__main__': sys.exit(main()) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1619810322.0 sphinxcontrib-spelling-7.2.1/requirements.txt0000644000175100001710000000011600000000000021050 0ustar00runnerdockerPyEnchant>=3.1.1 Sphinx>=3.0.0 importlib_metadata>=1.7.0;python_version<'3.8' ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1619810330.6768272 sphinxcontrib-spelling-7.2.1/setup.cfg0000644000175100001710000000235300000000000017412 0ustar00runnerdocker[metadata] name = sphinxcontrib-spelling description-file = README author = Doug Hellmann author-email = doug@doughellmann.com summary = Sphinx spelling extension home-page = https://github.com/sphinx-contrib/spelling python_requires = >=3.6 classifier = Development Status :: 5 - Production/Stable Environment :: Console Environment :: Web Environment Framework :: Sphinx :: Extension Intended Audience :: Developers License :: OSI Approved :: BSD License Operating System :: OS Independent Programming Language :: Python Programming Language :: Python :: 3 Programming Language :: Python :: 3 :: Only Programming Language :: Python :: 3.6 Programming Language :: Python :: 3.7 Programming Language :: Python :: 3.8 Programming Language :: Python :: 3.9 Programming Language :: Python :: Implementation :: CPython Programming Language :: Python :: Implementation :: PyPy Topic :: Documentation Topic :: Utilities [global] setup-hooks = pbr.hooks.setup_hook [files] packages = sphinxcontrib namespace_packages = sphinxcontrib [extras] test = pytest pytest-cov coverage!=4.4,>=4.0 [entry_points] sphinx.builders = spelling = sphinxcontrib.spelling [egg_info] tag_build = tag_date = 0 [aliases] release = egg_info -RDb '' ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1619810322.0 sphinxcontrib-spelling-7.2.1/setup.py0000644000175100001710000000014500000000000017300 0ustar00runnerdocker#!/usr/bin/env python import setuptools setuptools.setup( setup_requires=['pbr'], pbr=True) ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1619810330.6768272 sphinxcontrib-spelling-7.2.1/sphinxcontrib/0000755000175100001710000000000000000000000020460 5ustar00runnerdocker././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1619810322.0 sphinxcontrib-spelling-7.2.1/sphinxcontrib/__init__.py0000644000175100001710000000052500000000000022573 0ustar00runnerdocker""" sphinxcontrib ~~~~~~~~~~~~~ This package is a namespace package that contains all extensions distributed in the ``sphinx-contrib`` distribution. :copyright: Copyright 2007-2009 by the Sphinx team, see AUTHORS. :license: BSD, see LICENSE for details. """ __import__('pkg_resources').declare_namespace(__name__) ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1619810330.6768272 sphinxcontrib-spelling-7.2.1/sphinxcontrib/spelling/0000755000175100001710000000000000000000000022275 5ustar00runnerdocker././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1619810322.0 sphinxcontrib-spelling-7.2.1/sphinxcontrib/spelling/__init__.py0000644000175100001710000000552100000000000024411 0ustar00runnerdockertry: # For Python 3.8 and later import importlib.metadata as importlib_metadata except ImportError: # For everyone else import importlib_metadata from sphinx.util import logging from .asset import SpellingCollector from .builder import SpellingBuilder from .directive import SpellingDirective logger = logging.getLogger(__name__) def setup(app): version = importlib_metadata.version('sphinxcontrib-spelling') logger.info('Initializing Spelling Checker %s', version) app.add_builder(SpellingBuilder) # Register the 'spelling' directive for setting parameters within # a document app.add_directive('spelling', SpellingDirective) # Register an environment collector to merge data gathered by the # directive in parallel builds app.add_env_collector(SpellingCollector) # Report guesses about correct spelling app.add_config_value('spelling_show_suggestions', False, 'env') # Report the whole line that has the error app.add_config_value('spelling_show_whole_line', True, 'env') # Emit misspelling as a sphinx warning instead of info message app.add_config_value('spelling_warning', False, 'env') # Set the language for the text app.add_config_value('spelling_lang', 'en_US', 'env') # Set the language for the tokenizer app.add_config_value('tokenizer_lang', 'en_US', 'env') # Set a user-provided list of words known to be spelled properly app.add_config_value('spelling_word_list_filename', None, 'env') # Assume anything that looks like a PyPI package name is spelled properly app.add_config_value('spelling_ignore_pypi_package_names', False, 'env') # Assume words that look like wiki page names are spelled properly app.add_config_value('spelling_ignore_wiki_words', True, 'env') # Assume words that are all caps, or all caps with trailing s, are # spelled properly app.add_config_value('spelling_ignore_acronyms', True, 'env') # Assume words that are part of __builtins__ are spelled properly app.add_config_value('spelling_ignore_python_builtins', True, 'env') # Assume words that look like the names of importable modules are # spelled properly app.add_config_value('spelling_ignore_importable_modules', True, 'env') # Treat contributor names from git history as spelled correctly app.add_config_value('spelling_ignore_contributor_names', True, 'env') # Add any user-defined filter classes app.add_config_value('spelling_filters', [], 'env') # Set a user-provided list of files to ignore app.add_config_value('spelling_exclude_patterns', [], 'env') # Choose whether or not the misspelled output should be displayed # in the terminal app.add_config_value('spelling_verbose', True, 'env') return { "parallel_read_safe": True, "parallel_write_safe": True, "version": version, } ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1619810322.0 sphinxcontrib-spelling-7.2.1/sphinxcontrib/spelling/asset.py0000644000175100001710000000163600000000000023774 0ustar00runnerdocker# # Copyright (c) 2020 Doug Hellmann. All rights reserved. # """Asset collector for additional spelling terms.""" import collections import contextlib from sphinx.environment.collectors import EnvironmentCollector from sphinx.util import logging logger = logging.getLogger(__name__) class SpellingCollector(EnvironmentCollector): def clear_doc(self, app, env, docname) -> None: with contextlib.suppress(AttributeError, KeyError): del env.spelling_document_words[docname] def merge_other(self, app, env, docnames, other): try: other_words = other.spelling_document_words except AttributeError: other_words = {} if not hasattr(env, 'spelling_document_words'): env.spelling_document_words = collections.defaultdict(list) env.spelling_document_words.update(other_words) def process_doc(self, app, doctree): pass ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1619810322.0 sphinxcontrib-spelling-7.2.1/sphinxcontrib/spelling/builder.py0000644000175100001710000002147700000000000024310 0ustar00runnerdocker# # Copyright (c) 2010 Doug Hellmann. All rights reserved. # """Spelling checker extension for Sphinx. """ import collections import importlib import os import tempfile import docutils.nodes from sphinx.builders import Builder from sphinx.util import logging from sphinx.util.console import red from sphinx.util.matching import Matcher from sphinx.util.osutil import ensuredir try: from enchant.tokenize import EmailFilter, WikiWordFilter except ImportError as imp_exc: enchant_import_error = imp_exc else: enchant_import_error = None from . import checker, filters logger = logging.getLogger(__name__) # TODO - Words with multiple uppercase letters treated as classes and ignored class SpellingBuilder(Builder): """ Spell checks a document """ name = 'spelling' def init(self): if enchant_import_error is not None: raise RuntimeError( 'Cannot initialize spelling builder ' 'without PyEnchant installed') from enchant_import_error self.misspelling_count = 0 self.env.settings["smart_quotes"] = False # Initialize the per-document filters if not hasattr(self.env, 'spelling_document_words'): self.env.spelling_document_words = collections.defaultdict(list) # Initialize the global filters f = [ filters.ContractionFilter, EmailFilter, ] if self.config.spelling_ignore_wiki_words: logger.info('Ignoring wiki words') f.append(WikiWordFilter) if self.config.spelling_ignore_acronyms: logger.info('Ignoring acronyms') f.append(filters.AcronymFilter) if self.config.spelling_ignore_pypi_package_names: logger.info('Adding package names from PyPI to local dictionary…') f.append(filters.PyPIFilterFactory()) if self.config.spelling_ignore_python_builtins: logger.info('Ignoring Python builtins') f.append(filters.PythonBuiltinsFilter) if self.config.spelling_ignore_importable_modules: logger.info('Ignoring importable module names') f.append(filters.ImportableModuleFilter) if self.config.spelling_ignore_contributor_names: logger.info('Ignoring contributor names') f.append(filters.ContributorFilter) f.extend(self._load_filter_classes(self.config.spelling_filters)) if not os.path.isdir(self.outdir): os.mkdir(self.outdir) word_list = self.get_wordlist_filename() logger.info(f'Looking for custom word list in {word_list}') self.checker = checker.SpellingChecker( lang=self.config.spelling_lang, tokenizer_lang=self.config.tokenizer_lang, suggest=self.config.spelling_show_suggestions, word_list_filename=word_list, filters=f, context_line=self.config.spelling_show_whole_line, ) def _load_filter_classes(self, filters): # Filters may be expressed in the configuration file using # names, so look through them and import the referenced class # and use that in the checker. for filter in filters: if not isinstance(filter, str): yield filter continue module_name, _, class_name = filter.rpartition('.') mod = importlib.import_module(module_name) yield getattr(mod, class_name) def get_wordlist_filename(self): word_list = self.config.spelling_word_list_filename if word_list is None: word_list = 'spelling_wordlist.txt' if not isinstance(word_list, list): filename = os.path.join(self.srcdir, word_list) return filename # In case the user has multiple word lists, we combine them # into one large list that we pass on to the checker. return self._build_combined_wordlist() def _build_combined_wordlist(self): # If we have a list, the combined list is the first list plus all words # from the other lists. Otherwise, word_list is assumed to just be a # string. temp_dir = tempfile.mkdtemp() combined_word_list = os.path.join(temp_dir, 'spelling_wordlist.txt') word_list = self.config.spelling_word_list_filename with open(combined_word_list, 'w', encoding='UTF-8') as outfile: for word_file in word_list: # Paths are relative long_word_file = os.path.join(self.srcdir, word_file) logger.info('Adding contents of {} to custom word list'.format( long_word_file)) with open(long_word_file, encoding='UTF-8') as infile: infile_contents = infile.readlines() outfile.writelines(infile_contents) # Check for newline, and add one if not present if infile and not infile_contents[-1].endswith('\n'): outfile.write('\n') return combined_word_list def get_outdated_docs(self): return 'all documents' def prepare_writing(self, docnames): return def get_target_uri(self, docname, typ=None): return '' def format_suggestions(self, suggestions): if not self.config.spelling_show_suggestions or not suggestions: return '' return '[' + ', '.join('"%s"' % s for s in suggestions) + ']' TEXT_NODES = { 'block_quote', 'paragraph', 'list_item', 'term', 'definition_list_item', 'title', } def write_doc(self, docname, doctree): lines = list(self._find_misspellings(docname, doctree)) self.misspelling_count += len(lines) if lines: output_filename = os.path.join(self.outdir, docname + '.spelling') logger.info('Writing %s', output_filename) ensuredir(os.path.dirname(output_filename)) with open(output_filename, 'w', encoding='UTF-8') as output: output.writelines(lines) def _find_misspellings(self, docname, doctree): excluded = Matcher(self.config.spelling_exclude_patterns) if excluded(self.env.doc2path(docname, None)): return # Build the document-specific word filter based on any good # words listed in spelling directives. If we have no such # words, we want to push an empty list of filters so that we # can always safely pop the filter stack when we are done with # this document. doc_filters = [] good_words = self.env.spelling_document_words.get(docname) if good_words: logger.info('Extending local dictionary for %s', docname) doc_filters.append(filters.IgnoreWordsFilterFactory(good_words)) self.checker.push_filters(doc_filters) for node in doctree.traverse(docutils.nodes.Text): if (node.tagname == '#text' and node.parent and node.parent.tagname in self.TEXT_NODES): # Figure out the line number for this node by climbing the # tree until we find a node that has a line number. lineno = None parent = node seen = set() while lineno is None: # logger.info('looking for line number on %r' % node) seen.add(parent) parent = node.parent if parent is None or parent in seen: break lineno = parent.line # Check the text of the node. misspellings = self.checker.check(node.astext()) for word, suggestions, context_line in misspellings: msg_parts = ['Spell check', red(word)] if self.format_suggestions(suggestions) != '': msg_parts.append(self.format_suggestions(suggestions)) msg_parts.append(context_line) msg = ': '.join(msg_parts) + '.' loc = (docname, lineno) if lineno else docname if self.config.spelling_warning: logger.warning(msg, location=loc) elif self.config.spelling_verbose: logger.info(msg, location=loc) yield "%s:%s: (%s) %s %s\n" % ( self.env.doc2path(docname, None), lineno, word, self.format_suggestions(suggestions), context_line, ) self.checker.pop_filters() return def finish(self): if self.misspelling_count: logger.warning('Found %d misspelled words' % self.misspelling_count) return ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1619810322.0 sphinxcontrib-spelling-7.2.1/sphinxcontrib/spelling/checker.py0000644000175100001710000000432700000000000024261 0ustar00runnerdocker# # Copyright (c) 2010 Doug Hellmann. All rights reserved. # """Spelling checker extension for Sphinx. """ try: import enchant from enchant.tokenize import get_tokenizer except ImportError as imp_exc: enchant_import_error = imp_exc else: enchant_import_error = None class SpellingChecker: """Checks the spelling of blocks of text. Uses options defined in the sphinx configuration file to control the checking and filtering behavior. """ def __init__(self, lang, suggest, word_list_filename, tokenizer_lang='en_US', filters=None, context_line=False): if enchant_import_error is not None: raise RuntimeError( 'Cannot instantiate SpellingChecker ' 'without PyEnchant installed', ) from enchant_import_error if filters is None: filters = [] self.dictionary = enchant.DictWithPWL(lang, word_list_filename) self.tokenizer = get_tokenizer(tokenizer_lang, filters=filters) self.original_tokenizer = self.tokenizer self.suggest = suggest self.context_line = context_line def push_filters(self, new_filters): """Add a filter to the tokenizer chain. """ t = self.tokenizer for f in new_filters: t = f(t) self.tokenizer = t def pop_filters(self): """Remove the filters pushed during the last call to push_filters(). """ self.tokenizer = self.original_tokenizer def check(self, text): """Yields bad words and suggested alternate spellings. """ for word, pos in self.tokenizer(text): correct = self.dictionary.check(word) if correct: continue suggestions = self.dictionary.suggest(word) if self.suggest else [] line = line_of_index(text, pos) if self.context_line else "" yield word, suggestions, line return def line_of_index(text, index): try: line_start = text.rindex("\n", 0, index) + 1 except ValueError: line_start = 0 try: line_end = text.index("\n", index) except ValueError: line_end = len(text) return text[line_start:line_end] ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1619810322.0 sphinxcontrib-spelling-7.2.1/sphinxcontrib/spelling/directive.py0000644000175100001710000000211500000000000024624 0ustar00runnerdocker# # Copyright (c) 2010 Doug Hellmann. All rights reserved. # """Spelling checker extension for Sphinx. """ import collections from docutils.parsers import rst from sphinx.util import logging logger = logging.getLogger(__name__) class SpellingDirective(rst.Directive): """Custom directive for passing instructions to the spelling checker. .. spelling:: word1 word2 """ has_content = True def run(self): env = self.state.document.settings.env # Initialize the per-document good words list if not hasattr(env, 'spelling_document_words'): env.spelling_document_words = collections.defaultdict(list) good_words = [] for entry in self.content: if not entry: continue good_words.extend(entry.split()) if good_words: logger.debug( 'Extending local dictionary for %s with %s' % ( env.docname, str(good_words)) ) env.spelling_document_words[env.docname].extend(good_words) return [] ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1619810322.0 sphinxcontrib-spelling-7.2.1/sphinxcontrib/spelling/filters.py0000644000175100001710000001471700000000000024331 0ustar00runnerdocker# # Copyright (c) 2010 Doug Hellmann. All rights reserved. # """Spelling checker extension for Sphinx. """ # TODO - Words with multiple uppercase letters treated as classes and ignored import builtins import imp import subprocess from xmlrpc import client as xmlrpc_client from enchant.tokenize import Filter, get_tokenizer, tokenize, unit_tokenize from sphinx.util import logging logger = logging.getLogger(__name__) class AcronymFilter(Filter): """If a word looks like an acronym (all upper case letters), ignore it. """ def _skip(self, word): return ( word.isupper() or # all caps # pluralized acronym ("URLs") (word[-1].lower() == 's' and word[:-1].isupper()) ) class list_tokenize(tokenize): def __init__(self, words): super().__init__('') self._words = words def next(self): if not self._words: raise StopIteration() word = self._words.pop(0) return (word, 0) class ContractionFilter(Filter): """Strip common contractions from words. """ splits = { "aren't": ["are", "not"], "can't": ["can", "not"], "could've": ["could", "have"], "couldn't": ["could", "not"], "didn't": ["did", "not"], "doesn't": ["does", "not"], "don't": ["do", "not"], "hadn't": ["had", "not"], "hasn't": ["has", "not"], "haven't": ["have", "not"], "he'd": ["he", "would"], "he'll": ["he", "will"], "he's": ["he", "is"], "how'd": ["how", "would"], "how'll": ["how", "will"], "how's": ["how", "is"], "i'd": ["I", "would"], "i'll": ["I", "will"], "i'm": ["I", "am"], "i've": ["I", "have"], "isn't": ["is", "not"], "it'd": ["it", "would"], "it'll": ["it", "will"], "it's": ["it", "is"], "ma'am": ["madam"], "might've": ["might", "have"], "mightn't": ["might", "not"], "must've": ["must", "have"], "mustn't": ["must", "not"], "o'": ["of"], "o'clock": ["of", "the", "clock"], "she'd": ["she", "would"], "she'll": ["she", "will"], "she's": ["she", "is"], "should've": ["should", "have"], "shouldn't": ["should", "not"], "that'd": ["that", "would"], "that'll": ["that", "will"], "that's": ["that", "is"], "they'd": ["they", "would"], "they'll": ["they", "will"], "they're": ["they", "are"], "they've": ["they", "have"], "wasn't": ["was", "not"], "we'd": ["we", "would"], "we'll": ["we", "will"], "we're": ["we", "are"], "we've": ["we", "have"], "weren't": ["were", "not"], "what'd": ["what", "would"], "what'll": ["what", "will"], "what're": ["what", "are"], "what's": ["what", "is"], "when'd": ["when", "would"], "when'll": ["when", "will"], "when's": ["when", "is"], "where'd": ["where", "would"], "where'll": ["where", "will"], "where's": ["where", "is"], "who'd": ["who", "would"], "who'll": ["who", "will"], "who's": ["who", "is"], "why'd": ["why", "would"], "why'll": ["why", "will"], "why's": ["why", "is"], "won't": ["will", "not"], "would've": ["would", "have"], "wouldn't": ["would", "not"], "you'd": ["you", "would"], "you'll": ["you", "will"], "you're": ["you", "are"], "you've": ["you", "have"], } def _split(self, word): # Fixed responses if word.lower() in self.splits: return list_tokenize(self.splits[word.lower()]) # Possessive if word.lower().endswith("'s"): return unit_tokenize(word[:-2]) # * not if word.lower().endswith("n't"): return unit_tokenize(word[:-3]) return unit_tokenize(word) class IgnoreWordsFilter(Filter): """Given a set of words, ignore them all. """ def __init__(self, tokenizer, word_set): self.word_set = set(word_set) super().__init__(tokenizer) def _skip(self, word): return word in self.word_set class IgnoreWordsFilterFactory: def __init__(self, words): self.words = words def __call__(self, tokenizer): return IgnoreWordsFilter(tokenizer, self.words) class PyPIFilterFactory(IgnoreWordsFilterFactory): """Build an IgnoreWordsFilter for all of the names of packages on PyPI. """ def __init__(self): client = xmlrpc_client.ServerProxy('https://pypi.python.org/pypi') super().__init__(client.list_packages()) class PythonBuiltinsFilter(Filter): """Ignore names of built-in Python symbols. """ def _skip(self, word): return hasattr(builtins, word) class ImportableModuleFilter(Filter): """Ignore names of modules that we could import. """ def __init__(self, tokenizer): super().__init__(tokenizer) self.found_modules = set() self.sought_modules = set() def _skip(self, word): if word not in self.sought_modules: self.sought_modules.add(word) try: imp.find_module(word) except ImportError: return False self.found_modules.add(word) return True return word in self.found_modules class ContributorFilter(IgnoreWordsFilter): """Accept information about contributors as spelled correctly. Look in the git history for authors and committers and accept tokens that are in the set. """ _pretty_format = ( '%(trailers:key=Co-Authored-By,separator=%x0A)%x0A%an%x0A%cn' ) def __init__(self, tokenizer): contributors = self._get_contributors() super().__init__(tokenizer, contributors) def _get_contributors(self): logger.info('Scanning contributors') cmd = [ 'git', 'log', '--quiet', '--no-color', '--pretty=format:' + self._pretty_format, ] try: p = subprocess.run(cmd, check=True, stdout=subprocess.PIPE) except subprocess.CalledProcessError as err: logger.warning('Called: {}'.format(' '.join(cmd))) logger.warning(f'Failed to scan contributors: {err}') return set() output = p.stdout.decode('utf-8') tokenizer = get_tokenizer('en_US', filters=[]) return {word for word, pos in tokenizer(output)} ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1619810330.6768272 sphinxcontrib-spelling-7.2.1/sphinxcontrib_spelling.egg-info/0000755000175100001710000000000000000000000024047 5ustar00runnerdocker././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1619810330.0 sphinxcontrib-spelling-7.2.1/sphinxcontrib_spelling.egg-info/PKG-INFO0000644000175100001710000000552500000000000025153 0ustar00runnerdockerMetadata-Version: 2.1 Name: sphinxcontrib-spelling Version: 7.2.1 Summary: Sphinx spelling extension Home-page: https://github.com/sphinx-contrib/spelling Author: Doug Hellmann Author-email: doug@doughellmann.com License: UNKNOWN Description: .. -*- mode: rst -*- ========================= sphinxcontrib-spelling ========================= This package contains sphinxcontrb.spelling, a spelling checker for Sphinx-based documentation. It uses PyEnchant_ to produce a report showing misspelled words. Refer to the `main documentation page `__ for installation and setup details. License ======= Copyright Doug Hellmann, All Rights Reserved Permission to use, copy, modify, and distribute this software and its documentation for any purpose and without fee is hereby granted, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation, and that the name of Doug Hellmann not be used in advertising or publicity pertaining to distribution of the software without specific, written prior permission. DOUG HELLMANN DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL DOUG HELLMANN BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. .. _PyEnchant: https://github.com/pyenchant/pyenchant Platform: UNKNOWN Classifier: Development Status :: 5 - Production/Stable Classifier: Environment :: Console Classifier: Environment :: Web Environment Classifier: Framework :: Sphinx :: Extension Classifier: Intended Audience :: Developers Classifier: License :: OSI Approved :: BSD License Classifier: Operating System :: OS Independent Classifier: Programming Language :: Python Classifier: Programming Language :: Python :: 3 Classifier: Programming Language :: Python :: 3 :: Only Classifier: Programming Language :: Python :: 3.6 Classifier: Programming Language :: Python :: 3.7 Classifier: Programming Language :: Python :: 3.8 Classifier: Programming Language :: Python :: 3.9 Classifier: Programming Language :: Python :: Implementation :: CPython Classifier: Programming Language :: Python :: Implementation :: PyPy Classifier: Topic :: Documentation Classifier: Topic :: Utilities Requires-Python: >=3.6 Provides-Extra: test ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1619810330.0 sphinxcontrib-spelling-7.2.1/sphinxcontrib_spelling.egg-info/SOURCES.txt0000644000175100001710000000237600000000000025743 0ustar00runnerdocker.readthedocs.yml .testr.conf AUTHORS ChangeLog LICENSE MANIFEST.in Makefile README requirements.txt setup.cfg setup.py tox.ini .github/workflows/check.yml .github/workflows/integration.yaml .github/workflows/python-publish.yaml .github/workflows/test.yml docs/Makefile docs/requirements.txt docs/source/conf.py docs/source/customize.rst docs/source/developers.rst docs/source/history.rst docs/source/index.rst docs/source/install.rst docs/source/run.rst docs/source/spelling_wordlist.txt integration_tests/build_django.py sphinxcontrib/__init__.py sphinxcontrib/spelling/__init__.py sphinxcontrib/spelling/asset.py sphinxcontrib/spelling/builder.py sphinxcontrib/spelling/checker.py sphinxcontrib/spelling/directive.py sphinxcontrib/spelling/filters.py sphinxcontrib_spelling.egg-info/PKG-INFO sphinxcontrib_spelling.egg-info/SOURCES.txt sphinxcontrib_spelling.egg-info/dependency_links.txt sphinxcontrib_spelling.egg-info/entry_points.txt sphinxcontrib_spelling.egg-info/namespace_packages.txt sphinxcontrib_spelling.egg-info/not-zip-safe sphinxcontrib_spelling.egg-info/pbr.json sphinxcontrib_spelling.egg-info/requires.txt sphinxcontrib_spelling.egg-info/top_level.txt tests/__init__.py tests/test_builder.py tests/test_checker.py tests/test_filter.py tests/test_wordlist.txt././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1619810330.0 sphinxcontrib-spelling-7.2.1/sphinxcontrib_spelling.egg-info/dependency_links.txt0000644000175100001710000000000100000000000030115 0ustar00runnerdocker ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1619810330.0 sphinxcontrib-spelling-7.2.1/sphinxcontrib_spelling.egg-info/entry_points.txt0000644000175100001710000000006500000000000027346 0ustar00runnerdocker[sphinx.builders] spelling = sphinxcontrib.spelling ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1619810330.0 sphinxcontrib-spelling-7.2.1/sphinxcontrib_spelling.egg-info/namespace_packages.txt0000644000175100001710000000001600000000000030377 0ustar00runnerdockersphinxcontrib ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1619810330.0 sphinxcontrib-spelling-7.2.1/sphinxcontrib_spelling.egg-info/not-zip-safe0000644000175100001710000000000100000000000026275 0ustar00runnerdocker ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1619810330.0 sphinxcontrib-spelling-7.2.1/sphinxcontrib_spelling.egg-info/pbr.json0000644000175100001710000000005700000000000025527 0ustar00runnerdocker{"git_version": "84f8b67", "is_release": false}././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1619810330.0 sphinxcontrib-spelling-7.2.1/sphinxcontrib_spelling.egg-info/requires.txt0000644000175100001710000000020200000000000026441 0ustar00runnerdockerPyEnchant>=3.1.1 Sphinx>=3.0.0 [:(python_version<'3.8')] importlib_metadata>=1.7.0 [test] pytest pytest-cov coverage!=4.4,>=4.0 ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1619810330.0 sphinxcontrib-spelling-7.2.1/sphinxcontrib_spelling.egg-info/top_level.txt0000644000175100001710000000001600000000000026576 0ustar00runnerdockersphinxcontrib ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1619810330.6768272 sphinxcontrib-spelling-7.2.1/tests/0000755000175100001710000000000000000000000016730 5ustar00runnerdocker././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1619810322.0 sphinxcontrib-spelling-7.2.1/tests/__init__.py0000644000175100001710000000000000000000000021027 0ustar00runnerdocker././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1619810322.0 sphinxcontrib-spelling-7.2.1/tests/test_builder.py0000644000175100001710000001017100000000000021767 0ustar00runnerdocker# # Copyright (c) 2010 Doug Hellmann. All rights reserved. # """Tests for SpellingBuilder """ import codecs import io import os import textwrap import pytest from sphinx.application import Sphinx @pytest.fixture def sphinx_project(tmpdir): srcdir = tmpdir.mkdir('src') outdir = tmpdir.mkdir('out') add_file(srcdir, 'conf.py', ''' extensions = [ 'sphinxcontrib.spelling' ] ''') yield (srcdir, outdir) def add_file(thedir, filename, content): with open(thedir.join(filename), 'w') as f: f.write(textwrap.dedent(content)) def get_sphinx_output(srcdir, outdir, docname): stdout = io.StringIO() stderr = io.StringIO() app = Sphinx( srcdir, srcdir, outdir, outdir, 'spelling', status=stdout, warning=stderr, freshenv=True, ) app.build() path = os.path.join(outdir, docname + '.spelling') try: with open(path, 'r') as f: output_text = f.read() except FileNotFoundError: output_text = None return (stdout, stderr, output_text) def test_setup(sphinx_project): srcdir, outdir = sphinx_project stdout = io.StringIO() stderr = io.StringIO() # If the spelling builder is not properly initialized, # trying to use it with the Sphinx app class will # generate an exception. Sphinx( str(srcdir), str(srcdir), str(outdir), str(outdir), 'spelling', status=stdout, warning=stderr, freshenv=True, ) def test_title(sphinx_project): srcdir, outdir = sphinx_project add_file(srcdir, 'contents.rst', ''' Welcome to Speeling Checker documentation! ========================================== ''') stdout, stderr, output_text = get_sphinx_output(srcdir, outdir, 'contents') assert '(Speeling)' in output_text def test_body(sphinx_project): srcdir, outdir = sphinx_project add_file(srcdir, 'contents.rst', ''' Welcome to Spelling Checker documentation! ========================================== There are several mispelled words in this txt. ''') stdout, stderr, output_text = get_sphinx_output(srcdir, outdir, 'contents') assert '(mispelled)' in output_text assert '(txt)' in output_text def test_ignore_literals(sphinx_project): srcdir, outdir = sphinx_project add_file(srcdir, 'contents.rst', ''' Welcome to Spelling Checker documentation! ========================================== There are several misspelled words in this text. :: Literal blocks are ignoreed. Inline ``litterals`` are ignored, too. ''') stdout, stderr, output_text = get_sphinx_output(srcdir, outdir, 'contents') # The 'contents.spelling' output file should not have been # created, because the errors are ignored. assert output_text is None def test_several_word_lists(sphinx_project): srcdir, outdir = sphinx_project add_file(srcdir, 'conf.py', ''' extensions = ['sphinxcontrib.spelling'] spelling_word_list_filename=['test_wordlist.txt','test_wordlist2.txt'] ''') add_file(srcdir, 'contents.rst', ''' Welcome to Spelling Checker documentation! ========================================== There are several mispelled words in tihs txt. ''') add_file(srcdir, 'test_wordlist.txt', ''' txt ''') add_file(srcdir, 'test_wordlist2.txt', ''' mispelled ''') stdout, stderr, output_text = get_sphinx_output(srcdir, outdir, 'contents') # Both of these should be fine now assert '(mispelled)' not in output_text assert '(txt)' not in output_text # But not this one assert '(tihs)' in output_text def test_ignore_file(sphinx_project): srcdir, outdir = sphinx_project add_file(srcdir, 'conf.py', ''' extensions = ['sphinxcontrib.spelling'] spelling_exclude_patterns=['con*'] ''') add_file(srcdir, 'contents.rst', ''' Welcome to Speeling Checker documentation! ========================================== ''') stdout, stderr, output_text = get_sphinx_output(srcdir, outdir, 'contents') # The 'contents.spelling' output file should not have been # created, because the file is ignored. assert output_text is None ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1619810322.0 sphinxcontrib-spelling-7.2.1/tests/test_checker.py0000644000175100001710000000466600000000000021761 0ustar00runnerdocker# # Copyright (c) 2010 Doug Hellmann. All rights reserved. # """Tests for SpellingChecker. """ import os from sphinxcontrib.spelling.checker import SpellingChecker, line_of_index def test_errors_only(): checker = SpellingChecker(lang='en_US', suggest=False, word_list_filename=None, ) for word, suggestions, line in checker.check('This txt is wrong'): assert not suggestions, 'Suggesting' assert word == 'txt' assert line == "" def test_with_suggestions(): checker = SpellingChecker(lang='en_US', suggest=True, word_list_filename=None, ) for word, suggestions, line in checker.check('This txt is wrong'): assert suggestions, 'Not suggesting' assert word == 'txt' assert line == "" def test_with_wordlist(): checker = SpellingChecker( lang='en_US', suggest=False, word_list_filename=os.path.join(os.path.dirname(__file__), 'test_wordlist.txt') ) words = [w for w, s, l in checker.check('This txt is wrong')] assert not words, 'Did not use personal word list file' def test_with_context_line(): checker = SpellingChecker(lang='en_US', suggest=False, word_list_filename=None, context_line=True, ) text = 'Line one\nThis txt is wrong\nLine two' for word, suggestions, line in checker.check(text): assert not suggestions, 'Suggesting' assert word == 'txt' assert line == "This txt is wrong" def test_line_of_index_one_line(): text = "foo bar baz" assert line_of_index(text, 0) == text assert line_of_index(text, 5) == text assert line_of_index(text, len(text)) == text def test_line_of_index_multi_line(): text = "\nfoo\n\nbar baz\n" assert line_of_index(text, 0) == "" assert line_of_index(text, 1) == "foo" assert line_of_index(text, 2) == "foo" assert line_of_index(text, 3) == "foo" assert line_of_index(text, 4) == "foo" assert line_of_index(text, 5) == "" assert line_of_index(text, 6) == "bar baz" assert line_of_index(text, 12) == "bar baz" assert line_of_index(text, 13) == "bar baz" assert line_of_index(text, 14) == "" ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1619810322.0 sphinxcontrib-spelling-7.2.1/tests/test_filter.py0000644000175100001710000000400600000000000021626 0ustar00runnerdocker# # Copyright (c) 2010 Doug Hellmann. All rights reserved. # """Tests for filters. """ import pytest from enchant.tokenize import get_tokenizer from sphinxcontrib.spelling import filters def test_builtin_unicode(): f = filters.PythonBuiltinsFilter(None) assert not f._skip('passé') def test_builtin_regular(): f = filters.PythonBuiltinsFilter(None) assert f._skip('print') def test_acronym(): text = 'a front-end for DBM-style databases' t = get_tokenizer('en_US', []) f = filters.AcronymFilter(t) words = [w[0] for w in f(text)] assert 'DBM' not in words, 'Failed to filter out acronym' def test_acronym_unicode(): text = 'a front-end for DBM-style databases' t = get_tokenizer('en_US', []) f = filters.AcronymFilter(t) words = [w[0] for w in f(text)] assert 'DBM' not in words, 'Failed to filter out acronym' @pytest.mark.parametrize( "name", [ "Alex", "Atlakson", "Avram", "Baumgold", "Berman", "Daniele", "Doug", "Finucane", "Gaynor", "Gonsiorowski", "Hong", "Hong", "Huon", "Kampik", "Kolosov", "Lubkin", "Marti", "Minhee", "Olausson", "Raggam", "Raudsepp", "sdelliot", "Sergey", "Sevilla", "Timotheus", "Tobias", "Tricoli", ] ) def test_contributors(name): f = filters.ContributorFilter(None) assert f._skip(name) @pytest.mark.parametrize( "word,expected", [ ('os', True), ('os.name', False), ('__main__', False), ] ) def test_importable_module_skip(word, expected): f = filters.ImportableModuleFilter(None) assert f._skip(word) is expected def test_importable_module_with_side_effets(tmpdir): with tmpdir.as_cwd(): path = tmpdir.join('setup.py') path.write('raise SystemExit\n') f = filters.ImportableModuleFilter(None) assert f._skip('setup.cfg') is False ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1619810322.0 sphinxcontrib-spelling-7.2.1/tests/test_wordlist.txt0000644000175100001710000000000400000000000022371 0ustar00runnerdockertxt ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1619810322.0 sphinxcontrib-spelling-7.2.1/tox.ini0000644000175100001710000000211400000000000017077 0ustar00runnerdocker[tox] minversion = 3.2.0 envlist=py{36,37,38,39,py3},linter,docs [testenv] extras = test commands= pytest -v \ --cov=sphinxcontrib.spelling \ --cov-report term-missing [testenv:style] deps = isort>=5.0.1 commands = isort . skip_install = true [testenv:linter] deps= flake8==3.8.2 isort>=5.0.1 setenv = BUILD=linter commands = flake8 sphinxcontrib setup.py isort --check --diff . skip_install = true [testenv:pkglint] deps= twine commands= python setup.py sdist bdist_wheel twine check dist/*.tar.gz dist/*.whl skip_install = true [flake8] show-source = True exclude = .tox,dist,doc,*.egg,build ignore = W504 [testenv:docs] setenv = BUILD=docs ENABLE_SPELLING=1 commands = sphinx-build -W -j auto -b html -d docs/build/doctrees docs/source docs/build/html sphinx-build -W -j auto -b spelling -d docs/build/doctrees docs/source docs/build/spelling [testenv:spelling] setenv = BUILD=docs ENABLE_SPELLING=1 commands = sphinx-build -W -j auto -b spelling -d docs/build/doctrees docs/source docs/build/spelling