.gitignore
.pre-commit-config.yaml
.readthedocs.yml
CHANGES.rst
LICENSE
MANIFEST.in
Makefile
NOTICE.txt
README.rst
codecov.yml
howto.txt
pyproject.toml
tox-test.ini
tox.ini
.github/dependabot.yml
.github/workflows/codeql-analysis.yml
.github/workflows/dependency-review.yml
.github/workflows/gh-pages.yml
.github/workflows/kit.yml
.github/workflows/python-nightly.yml
.github/workflows/quality.yml
.github/workflows/release.yml
.github/workflows/test-coverage.yml
.github/workflows/testsuite.yml
_req_links/backend.py
docs/.gitattributes
docs/Makefile
docs/_toc.yml
docs/article-version-specifiers.rst
docs/conf.py
docs/getting-help.rst
docs/index.rst
docs/objects-black.inv
docs/objects-black.txt
docs/objects-packaging.inv
docs/objects-packaging.txt
docs/objects-pluggy.inv
docs/objects-pluggy.txt
docs/objects-python-missing.inv
docs/objects-python-missing.txt
docs/objects-python.inv
docs/objects-setuptools-scm.inv
docs/objects-setuptools-scm.txt
docs/objects-setuptools.inv
docs/objects-setuptools.txt
docs/objects-snip.inv
docs/objects-snip.txt
docs/overview.rst
docs/requirements.in
docs/requirements.lnk
docs/requirements.lock
docs/requirements.unlock
docs/LICENSE/LICENSE-agplv3.txt
docs/LICENSE/closed-source-license.rst
docs/LICENSE/donation.rst
docs/LICENSE/index.rst
docs/LICENSE/license-decision-diagram.png
docs/_static/apple-touch-icon-180x180.png
docs/_static/asset-monkey.svg
docs/_static/asset-octopus-realistic.svg
docs/_static/asset-scissor-cut-down.svg
docs/_static/asset-scissor-cut-up.png
docs/_static/asset-scissor-cut-up.svg
docs/_static/credit.txt
docs/_static/drain-swamp-banner-640-320.png
docs/_static/drain-swamp-banner-640-320.svg
docs/_static/icon-drain-swamp-200x200.svg
docs/_static/snip-logo.png
docs/_static/snip-logo.svg
docs/_static/css/custom.css
docs/api/drain-swamp-build.rst
docs/api/drain-swamp-cheats.rst
docs/api/drain-swamp-current.rst
docs/api/drain-swamp-list.rst
docs/api/drain-swamp-pretag.rst
docs/api/drain-swamp-seed.rst
docs/api/index.rst
docs/api/pipenv-unlock-is_lock.rst
docs/api/pipenv-unlock-lock.rst
docs/api/pipenv-unlock-unlock.rst
docs/code/cli_igor.rst
docs/code/cli_scm_version.rst
docs/code/cli_unlock.rst
docs/code/index.rst
docs/code/snip.rst
docs/code/ext/index.rst
docs/code/ext/drain_swamp/igor_utils.rst
docs/code/ext/drain_swamp/index.rst
docs/code/ext/drain_swamp/sphinx_conf.rst
docs/code/ext/pipenv_unlock/backend_abc.rst
docs/code/ext/pipenv_unlock/backend_setuptools.rst
docs/code/ext/pipenv_unlock/index.rst
docs/code/ext/pipenv_unlock/lock_toggle.rst
docs/code/ext/pipenv_unlock/snippet_pyproject_toml.rst
docs/code/general/check_type.rst
docs/code/general/constants.rst
docs/code/general/constants_maybe.rst
docs/code/general/exceptions.rst
docs/code/general/index.rst
docs/code/general/package_installed.rst
docs/code/general/package_metadata.rst
docs/code/general/parser_in.rst
docs/code/general/pep518_read.rst
docs/code/general/run_cmd.rst
docs/code/general/version_file.rst
docs/code/general/version_semantic.rst
docs/code/monkey/config_settings.rst
docs/code/monkey/index.rst
docs/code/monkey/patch_pyproject_reading.rst
docs/code/monkey/wrap_get_version.rst
docs/code/monkey/wrap_infer_version.rst
docs/code/monkey/wrap_version_keyword.rst
docs/code/monkey/hooks/index.rst
docs/code/monkey/hooks/manager.rst
docs/code/monkey/hooks/markers.rst
docs/code/monkey/hooks/pm_constants.rst
docs/code/monkey/hooks/specs.rst
docs/code/monkey/plugins/index.rst
docs/code/monkey/plugins/refresh_links.rst
docs/code/monkey/plugins/scm_version.rst
docs/code/version_file/dump_version.rst
docs/code/version_file/index.rst
docs/code/version_file/overrides.rst
docs/getting_started/build-package.rst
docs/getting_started/drain-swamp-files.rst
docs/getting_started/from-source.rst
docs/getting_started/index.rst
docs/getting_started/installation.rst
docs/getting_started/pipenv-unlock.rst
docs/getting_started/setuptools-scm.rst
docs/snippets/index.rst
docs/snippets/snippets.rst
docs/troubleshooting/build-fail.rst
docs/troubleshooting/index.rst
docs/why/about_authors.rst
docs/why/cringe-culture.rst
docs/why/index.rst
integration/README.rst
integration/__init__.py
integration/test_pep366.py
integration/test_upstream_click_issue.py
requirements/dev.in
requirements/dev.lnk
requirements/dev.lock
requirements/dev.unlock
requirements/kit.in
requirements/kit.lnk
requirements/kit.lock
requirements/kit.unlock
requirements/manage.in
requirements/manage.lnk
requirements/manage.lock
requirements/manage.unlock
requirements/mypy.in
requirements/mypy.lnk
requirements/mypy.lock
requirements/mypy.unlock
requirements/pins.in
requirements/pip-tools.in
requirements/pip-tools.lnk
requirements/pip-tools.lock
requirements/pip-tools.unlock
requirements/pip.in
requirements/pip.lnk
requirements/pip.lock
requirements/pip.unlock
requirements/prod.in
requirements/prod.lnk
requirements/prod.lock
requirements/prod.unlock
requirements/tox.in
requirements/tox.lnk
requirements/tox.lock
requirements/tox.unlock
src/drain_swamp/__init__.py
src/drain_swamp/__init__.pyi
src/drain_swamp/_package_installed.py
src/drain_swamp/_package_installed.pyi
src/drain_swamp/_run_cmd.py
src/drain_swamp/_run_cmd.pyi
src/drain_swamp/_version.py
src/drain_swamp/_version.pyi
src/drain_swamp/backend_abc.py
src/drain_swamp/backend_abc.pyi
src/drain_swamp/backend_setuptools.py
src/drain_swamp/backend_setuptools.pyi
src/drain_swamp/check_type.py
src/drain_swamp/check_type.pyi
src/drain_swamp/cli_igor.py
src/drain_swamp/cli_igor.pyi
src/drain_swamp/cli_scm_version.py
src/drain_swamp/cli_scm_version.pyi
src/drain_swamp/cli_unlock.py
src/drain_swamp/cli_unlock.pyi
src/drain_swamp/constants.py
src/drain_swamp/constants.pyi
src/drain_swamp/constants_maybe.py
src/drain_swamp/constants_maybe.pyi
src/drain_swamp/exceptions.py
src/drain_swamp/exceptions.pyi
src/drain_swamp/igor_utils.py
src/drain_swamp/igor_utils.pyi
src/drain_swamp/lock_toggle.py
src/drain_swamp/lock_toggle.pyi
src/drain_swamp/package_metadata.py
src/drain_swamp/package_metadata.pyi
src/drain_swamp/parser_in.py
src/drain_swamp/parser_in.pyi
src/drain_swamp/pep518_read.py
src/drain_swamp/pep518_read.pyi
src/drain_swamp/py.typed
src/drain_swamp/snip.py
src/drain_swamp/snip.pyi
src/drain_swamp/snippet_pyproject_toml.py
src/drain_swamp/snippet_pyproject_toml.pyi
src/drain_swamp/snippet_sphinx_conf.py
src/drain_swamp/snippet_sphinx_conf.pyi
src/drain_swamp/version_semantic.py
src/drain_swamp/version_semantic.pyi
src/drain_swamp.egg-info/PKG-INFO
src/drain_swamp.egg-info/SOURCES.txt
src/drain_swamp.egg-info/dependency_links.txt
src/drain_swamp.egg-info/entry_points.txt
src/drain_swamp.egg-info/requires.txt
src/drain_swamp.egg-info/top_level.txt
src/drain_swamp/monkey/__init__.py
src/drain_swamp/monkey/config_settings.py
src/drain_swamp/monkey/config_settings.pyi
src/drain_swamp/monkey/patch_pyproject_reading.py
src/drain_swamp/monkey/patch_pyproject_reading.pyi
src/drain_swamp/monkey/wrap_get_version.py
src/drain_swamp/monkey/wrap_get_version.pyi
src/drain_swamp/monkey/wrap_infer_version.py
src/drain_swamp/monkey/wrap_infer_version.pyi
src/drain_swamp/monkey/wrap_version_keyword.py
src/drain_swamp/monkey/wrap_version_keyword.pyi
src/drain_swamp/monkey/hooks/__init__.py
src/drain_swamp/monkey/hooks/__init__.pyi
src/drain_swamp/monkey/hooks/constants.py
src/drain_swamp/monkey/hooks/constants.pyi
src/drain_swamp/monkey/hooks/manager.py
src/drain_swamp/monkey/hooks/manager.pyi
src/drain_swamp/monkey/hooks/markers.py
src/drain_swamp/monkey/hooks/markers.pyi
src/drain_swamp/monkey/hooks/specs.py
src/drain_swamp/monkey/hooks/specs.pyi
src/drain_swamp/monkey/plugins/__init__.py
src/drain_swamp/monkey/plugins/ds_refresh_links.py
src/drain_swamp/monkey/plugins/ds_refresh_links.pyi
src/drain_swamp/monkey/plugins/ds_scm_version.py
src/drain_swamp/monkey/plugins/ds_scm_version.pyi
src/drain_swamp/version_file/__init__.py
src/drain_swamp/version_file/_overrides.py
src/drain_swamp/version_file/_overrides.pyi
src/drain_swamp/version_file/dump_version.py
src/drain_swamp/version_file/dump_version.pyi
tests/__init__.py
tests/conftest.py
tests/test_backend_abc.py
tests/test_backend_setuptools.py
tests/test_build_plugin_manager.py
tests/test_check_type.py
tests/test_cli_igor.py
tests/test_cli_scm_version.py
tests/test_cli_unlock.py
tests/test_config_settings.py
tests/test_igor_utils.py
tests/test_lock_toggle.py
tests/test_package_installed.py
tests/test_package_metadata.py
tests/test_parser_in.py
tests/test_patch_pyproject_reading.py
tests/test_pep518_read.py
tests/test_plugin_refresh_links.py
tests/test_plugin_scm_version.py
tests/test_run_cmd.py
tests/test_snip.py
tests/test_snippet_sphinx_conf.py
tests/test_version_file_dump.py
tests/test_version_file_overrides.py
tests/test_versioning_integration.py
tests/test_versioning_unittest.py
tests/test_wrap_infer_version.py
tests/test_wrap_version_keyword.py
tests/wd_wrapper.py
tests/_bad_files/backend_only.pyproject_toml
tests/_bad_files/complete-version-other.pyproject_toml
tests/_bad_files/snippet-nested.pyproject_toml
tests/_bad_files/static-version.pyproject_toml
tests/_bad_files/static_dependencies.pyproject_toml
tests/_bad_snips/nested-snips.txt
tests/_bad_snips/out-of-order-abrupt-end.txt
tests/_bad_snips/out-of-order-double-end-tag.txt
tests/_bad_snips/out-of-order-starts-with-end-tag.txt
tests/_changelog_files/CHANGES-empty.rst
tests/_changelog_files/NOTICE-empty.txt
tests/_good_files/backend-only.pyproject_toml
tests/_good_files/backend-unsupported.pyproject_toml
tests/_good_files/complete-lnk-files.pyproject_toml
tests/_good_files/complete-manage-pip-prod-unlock.pyproject_toml
tests/_good_files/complete-version-txt.pyproject_toml
tests/_good_files/complete.pyproject_toml
tests/_good_files/no_copyright.pyproject_toml
tests/_good_files/no_project_name.pyproject_toml
tests/_good_files/nonsense-keys.pyproject_toml
tests/_good_files/requires-none.pyproject_toml
tests/_good_files/thin-wrap-backend.pyproject_toml
tests/_good_files/weird_copyright-2.pyproject_toml
tests/_good_files/weird_copyright.pyproject_toml
tests/_project/install_minimum.pyproject_toml
tests/_project/src/complete_awesome_perfect/__init__.py
tests/_project/src/complete_awesome_perfect/__main__.py
tests/test_snip/test_snip_harden_No_snippet__Nothing_to_do_.txt
tests/test_snip/test_snip_harden_one_snip__with_id_.txt
tests/test_snip/test_snip_harden_one_snip__with_id__Key_no_key_.txt
tests/test_snip/test_snip_harden_one_snip__with_id__No_key__No_match_.txt
tests/test_snip/test_snip_harden_one_snip__with_id__key___no_key_.txt
tests/test_snip/test_snip_harden_one_snip__with_id__no_change_.txt
tests/test_snip/test_snip_harden_one_snip__with_id__no_key___key_.txt
tests/test_snip/test_snip_harden_one_snip__with_id__no_key_key_.txt
tests/test_snip/test_snip_harden_one_snip__with_id__snippet_empty_.txt
tests/test_snip/test_snip_harden_one_snip__without_id_empty_excess_whitespace_.txt
tests/test_snip/test_snip_harden_one_snip__without_id_empty_none_.txt
tests/test_snip/test_snip_harden_one_snip__without_id_empty_not_a_str_.txt
tests/test_snip/test_snip_harden_one_snip__without_id_empty_str_.txt
tests/test_snip/test_snip_harden_three_snips__All_have_id__match_1st_and_3rd_.txt
tests/test_snip/test_snip_harden_two_snippets__one_with_one_without_id__key__invalid_to_mix_.txt
tests/test_snip/test_snip_harden_two_snips__both_have_id__match_1st_.txt
tests/test_snip/test_snip_harden_two_snips__both_have_id__match_2nd_.txt