diff --git a/news/89.dep b/news/89.dep new file mode 100644 index 0000000000000000000000000000000000000000..a9d51923d65cf8bbe6576274aa088a295b84b60a --- /dev/null +++ b/news/89.dep @@ -0,0 +1,2 @@ +Update dependencies `pythonfinder`, `python-cfonts`, `pip-shims` and many others. +Drop dependency `vistir`. diff --git a/pdm.lock b/pdm.lock index d93b1a74c2194a81abf4bf546b8153bdb0f85fad..38e2f5cd6c767aa4af5e1f03ed9a2df24366e26d 100644 --- a/pdm.lock +++ b/pdm.lock @@ -35,7 +35,7 @@ summary = "A decorator for caching properties in classes." [[package]] name = "click" sections = ["default", "dev", "doc"] -version = "7.0" +version = "7.1.1" marker = "python_version >= \"2.7\"" summary = "Composable command line interface toolkit" @@ -49,20 +49,10 @@ summary = "Cross-platform colored terminal text." [[package]] name = "coverage" sections = ["dev"] -version = "4.4.2" -marker = "python_version >= \"2.7\" and python_version not in \"3.0, 3.1, 3.2, 3.3\"" +version = "5.0.4" +marker = "python_version >= \"2.7\" and python_version < \"4.0\" and python_version not in \"3.0, 3.1, 3.2, 3.3, 3.4\"" summary = "Code coverage measurement for Python" -[[package]] -name = "crayons" -sections = ["default"] -version = "0.3.0" -marker = "python_version >= \"2.7\" and python_version not in \"3.0, 3.1, 3.2, 3.3\"" -summary = "TextUI colors for Python." - -[package.dependencies] -colorama = "*" - [[package]] name = "cursor" sections = ["default"] @@ -95,32 +85,22 @@ summary = "Clean single-source support for Python 3 and 2" [[package]] name = "halo" sections = ["default"] -version = "0.0.28" +version = "0.0.29" summary = "Beautiful terminal spinners in Python" [package.dependencies] -log-symbols = ">=0.0.13" -spinners = ">=0.0.23" +log-symbols = ">=0.0.14" +spinners = ">=0.0.24" cursor = ">=1.2.0" termcolor = ">=1.1.0" colorama = ">=0.3.9" six = ">=1.12.0" -[[package]] -name = "importlib-metadata" -sections = ["dev"] -version = "1.5.0" -marker = "python_version >= \"3.5\" and python_version < \"3.8\"" -summary = "Read metadata from Python packages" - -[package.dependencies] -zipp = ">=0.5" - [[package]] name = "incremental" sections = ["dev"] version = "17.5.0" -summary = "" +summary = "UNKNOWN" [[package]] name = "jinja2" @@ -139,6 +119,10 @@ version = "2.6.1" marker = "python_version >= \"3.5\"" summary = "Python LiveReload is an awesome tool for web developers" +[package.dependencies] +tornado = "*" +six = "*" + [[package]] name = "log-symbols" sections = ["default"] @@ -189,6 +173,9 @@ sections = ["doc"] version = "0.5.1" summary = "This is an extension to Python-Markdown which provides an \"include\" function, similar to that found in LaTeX (and also the C pre-processor and Fortran). I originally wrote it for my FORD Fortran auto-documentation generator." +[package.dependencies] +markdown = "*" + [[package]] name = "MarkupSafe" sections = ["dev", "doc"] @@ -238,10 +225,13 @@ version = "3.4.5" marker = "python_version >= \"3.5\"" summary = "Natural Language Toolkit" +[package.dependencies] +six = "*" + [[package]] name = "packaging" sections = ["default", "dev"] -version = "20.1" +version = "20.3" marker = "python_version >= \"2.7\"" summary = "Core utilities for Python packages" @@ -259,7 +249,7 @@ summary = "The PyPA recommended tool for installing Python packages." [[package]] name = "pip-shims" sections = ["default"] -version = "0.5.0" +version = "0.5.1" marker = "python_version >= \"2.7\" and python_full_version not in \"3.0.0, 3.1.0, 3.2.0, 3.3.0, 3.4.0\"" summary = "Compatibility shims for pip versions 8 thru current." @@ -277,9 +267,6 @@ version = "0.13.1" marker = "python_version >= \"3.5\"" summary = "plugin and hook calling mechanisms for python" -[package.dependencies] -importlib-metadata = {marker = "python_version < \"3.8\"", version = ">=0.12"} - [[package]] name = "py" sections = ["dev"] @@ -290,8 +277,8 @@ summary = "library with cross-python path, ini-parsing, io, code, log facilities [[package]] name = "Pygments" sections = ["doc"] -version = "2.5.2" -marker = "python_version >= \"2.7\" and python_version not in \"3.0, 3.1, 3.2, 3.3, 3.4\"" +version = "2.6.1" +marker = "python_version >= \"3.5\"" summary = "Pygments is a syntax highlighting package written in Python." [[package]] @@ -301,6 +288,9 @@ version = "6.3" marker = "python_version >= \"2.7\" and python_version not in \"3.0, 3.1, 3.2, 3.3, 3.4\"" summary = "Extension pack for Python Markdown." +[package.dependencies] +Markdown = ">=3.2" + [[package]] name = "pyparsing" sections = ["default", "dev"] @@ -311,7 +301,7 @@ summary = "Python parsing module" [[package]] name = "pytest" sections = ["dev"] -version = "5.3.5" +version = "5.4.1" marker = "python_version >= \"3.5\"" summary = "pytest: simple powerful testing with Python" @@ -322,7 +312,6 @@ attrs = ">=17.4.0" more-itertools = ">=4.0.0" pluggy = "<1.0,>=0.12" wcwidth = "*" -importlib-metadata = {marker = "python_version < \"3.8\"", version = ">=0.12"} atomicwrites = {marker = "sys_platform == \"win32\"", version = ">=1.0"} colorama = {marker = "sys_platform == \"win32\"", version = "*"} @@ -357,12 +346,6 @@ summary = "Thin-wrapper around the mock package for easier use with py.test" [package.dependencies] pytest = ">=2.7" -[[package]] -name = "pytest-sugar" -sections = ["dev"] -version = "0.9.2" -summary = "pytest-sugar is a plugin for pytest that changes the default look and feel of pytest (e.g. progressbar, show tests that fail instantly)." - [[package]] name = "pytest-xdist" sections = ["dev"] @@ -379,7 +362,7 @@ six = "*" [[package]] name = "python-cfonts" sections = ["default"] -version = "1.1.0" +version = "1.2.0" marker = "python_version >= \"2.7\" and python_version not in \"3.0, 3.1, 3.2, 3.3, 3.4\"" summary = "Sexy fonts for the console" @@ -389,7 +372,7 @@ colorama = "*" [[package]] name = "pythonfinder" sections = ["default"] -version = "1.2.1" +version = "1.2.2" marker = "python_version >= \"2.7\" and python_version not in \"3.0, 3.1, 3.2, 3.3\"" summary = "A cross-platform python discovery tool to help locate python on any system." @@ -397,22 +380,20 @@ summary = "A cross-platform python discovery tool to help locate python on any s attrs = "*" cached-property = "*" click = "*" -crayons = "*" six = "*" packaging = "*" -vistir = {extras = ["spinner"], version = ">=0.4"} [[package]] name = "PyYAML" sections = ["doc"] -version = "5.3" +version = "5.3.1" marker = "python_version >= \"3.5\"" summary = "YAML parser and emitter for Python" [[package]] name = "setuptools" sections = ["default", "doc"] -version = "45.2.0" +version = "46.1.3" marker = "python_version >= \"3.5\"" summary = "Easily download, build, install, upgrade, and uninstall Python packages" @@ -426,7 +407,7 @@ summary = "Python 2 and 3 compatibility utilities" [[package]] name = "spinners" sections = ["default"] -version = "0.0.23" +version = "0.0.24" summary = "Spinners for terminals" [[package]] @@ -451,7 +432,7 @@ summary = "Style preserving TOML library" [[package]] name = "tornado" sections = ["doc"] -version = "6.0.3" +version = "6.0.4" marker = "python_version >= \"3.5\"" summary = "Tornado is a Python web framework and asynchronous networking library, originally developed at FriendFeed." @@ -467,35 +448,10 @@ incremental = "*" jinja2 = "*" toml = "*" -[[package]] -name = "vistir" -sections = ["default"] -version = "0.5.0" -marker = "python_version >= \"2.7\" and python_version not in \"3.0, 3.1, 3.2, 3.3\"" -summary = "Miscellaneous utilities for dealing with filesystems, paths, projects, subprocesses, and more." - -[package.dependencies] -colorama = "!=0.4.2,>=0.3.4" -six = "*" - -[[package]] -name = "vistir" -sections = ["default"] -version = "0.5.0" -extras = ["spinner"] -marker = "python_version >= \"2.7\" and python_version not in \"3.0, 3.1, 3.2, 3.3\"" -summary = "Miscellaneous utilities for dealing with filesystems, paths, projects, subprocesses, and more." - -[package.dependencies] -colorama = "!=0.4.2,>=0.3.4" -six = "*" -yaspin = "*" -vistir = {marker = "python_version >= \"2.7\" and python_version not in \"3.0, 3.1, 3.2, 3.3\"", version = "==0.5.0"} - [[package]] name = "wcwidth" sections = ["dev"] -version = "0.1.8" +version = "0.1.9" marker = "python_version >= \"3.5\"" summary = "Measures number of Terminal column cells of wide-character codes" @@ -506,86 +462,67 @@ version = "0.34.2" marker = "python_version >= \"2.7\" and python_version not in \"3.0, 3.1, 3.2, 3.3, 3.4\"" summary = "A built-package format for Python" -[[package]] -name = "yaspin" -sections = ["default"] -version = "0.16.0" -marker = "python_version >= \"2.7\" and python_version not in \"3.0, 3.1, 3.2, 3.3\"" -summary = "Yet Another Terminal Spinner" - -[[package]] -name = "zipp" -sections = ["dev"] -version = "3.0.0" -marker = "python_version >= \"3.6\" and python_version < \"3.8\"" -summary = "Backport of pathlib-compatible object wrapper for zip files" - [metadata] "apipkg 1.5" = [ - {file = "apipkg-1.5-py2.py3-none-any.whl", hash = "sha256:58587dd4dc3daefad0487f6d9ae32b4542b185e1c36db6993290e7c41ca2b47c"}, {file = "apipkg-1.5.tar.gz", hash = "sha256:37228cda29411948b422fae072f57e31d3396d2ee1c9783775980ee9c9990af6"}, + {file = "apipkg-1.5-py2.py3-none-any.whl", hash = "sha256:58587dd4dc3daefad0487f6d9ae32b4542b185e1c36db6993290e7c41ca2b47c"}, ] "appdirs 1.4.3" = [ - {file = "appdirs-1.4.3-py2.py3-none-any.whl", hash = "sha256:d8b24664561d0d34ddfaec54636d502d7cea6e29c3eaf68f3df6180863e2166e"}, {file = "appdirs-1.4.3.tar.gz", hash = "sha256:9e5896d1372858f8dd3344faf4e5014d21849c756c8d5701f78f8a103b372d92"}, + {file = "appdirs-1.4.3-py2.py3-none-any.whl", hash = "sha256:d8b24664561d0d34ddfaec54636d502d7cea6e29c3eaf68f3df6180863e2166e"}, ] "atomicwrites 1.3.0" = [ - {file = "atomicwrites-1.3.0-py2.py3-none-any.whl", hash = "sha256:03472c30eb2c5d1ba9227e4c2ca66ab8287fbfbbda3888aa93dc2e28fc6811b4"}, {file = "atomicwrites-1.3.0.tar.gz", hash = "sha256:75a9445bac02d8d058d5e1fe689654ba5a6556a1dfd8ce6ec55a0ed79866cfa6"}, + {file = "atomicwrites-1.3.0-py2.py3-none-any.whl", hash = "sha256:03472c30eb2c5d1ba9227e4c2ca66ab8287fbfbbda3888aa93dc2e28fc6811b4"}, ] "attrs 19.3.0" = [ - {file = "attrs-19.3.0-py2.py3-none-any.whl", hash = "sha256:08a96c641c3a74e44eb59afb61a24f2cb9f4d7188748e76ba4bb5edfa3cb7d1c"}, {file = "attrs-19.3.0.tar.gz", hash = "sha256:f7b7ce16570fe9965acd6d30101a28f62fb4a7f9e926b3bbc9b61f8b04247e72"}, + {file = "attrs-19.3.0-py2.py3-none-any.whl", hash = "sha256:08a96c641c3a74e44eb59afb61a24f2cb9f4d7188748e76ba4bb5edfa3cb7d1c"}, ] "cached-property 1.5.1" = [ {file = "cached-property-1.5.1.tar.gz", hash = "sha256:9217a59f14a5682da7c4b8829deadbfc194ac22e9908ccf7c8820234e80a1504"}, {file = "cached_property-1.5.1-py2.py3-none-any.whl", hash = "sha256:3a026f1a54135677e7da5ce819b0c690f156f37976f3e30c5430740725203d7f"}, ] -"click 7.0" = [ - {file = "Click-7.0.tar.gz", hash = "sha256:5b94b49521f6456670fdb30cd82a4eca9412788a93fa6dd6df72c94d5a8ff2d7"}, - {file = "Click-7.0-py2.py3-none-any.whl", hash = "sha256:2335065e6395b9e67ca716de5f7526736bfa6ceead690adf616d925bdc622b13"}, +"click 7.1.1" = [ + {file = "click-7.1.1.tar.gz", hash = "sha256:8a18b4ea89d8820c5d0c7da8a64b2c324b4dabb695804dbfea19b9be9d88c0cc"}, + {file = "click-7.1.1-py2.py3-none-any.whl", hash = "sha256:e345d143d80bf5ee7534056164e5e112ea5e22716bbb1ce727941f4c8b471b9a"}, ] "colorama 0.4.3" = [ {file = "colorama-0.4.3.tar.gz", hash = "sha256:e96da0d330793e2cb9485e9ddfd918d456036c7149416295932478192f4436a1"}, {file = "colorama-0.4.3-py2.py3-none-any.whl", hash = "sha256:7d73d2a99753107a36ac6b455ee49046802e59d9d076ef8e47b61499fa29afff"}, ] -"coverage 4.4.2" = [ - {file = "coverage-4.4.2-cp26-cp26m-macosx_10_10_x86_64.whl", hash = "sha256:d1ee76f560c3c3e8faada866a07a32485445e16ed2206ac8378bd90dadffb9f0"}, - {file = "coverage-4.4.2-cp26-cp26m-manylinux1_i686.whl", hash = "sha256:007eeef7e23f9473622f7d94a3e029a45d55a92a1f083f0f3512f5ab9a669b05"}, - {file = "coverage-4.4.2-cp26-cp26m-manylinux1_x86_64.whl", hash = "sha256:17307429935f96c986a1b1674f78079528833410750321d22b5fb35d1883828e"}, - {file = "coverage-4.4.2-cp26-cp26mu-manylinux1_i686.whl", hash = "sha256:845fddf89dca1e94abe168760a38271abfc2e31863fbb4ada7f9a99337d7c3dc"}, - {file = "coverage-4.4.2-cp26-cp26mu-manylinux1_x86_64.whl", hash = "sha256:3f4d0b3403d3e110d2588c275540649b1841725f5a11a7162620224155d00ba2"}, - {file = "coverage-4.4.2-cp27-cp27m-macosx_10_12_intel.whl", hash = "sha256:4c4f368ffe1c2e7602359c2c50233269f3abe1c48ca6b288dcd0fb1d1c679733"}, - {file = "coverage-4.4.2-cp27-cp27m-macosx_10_12_x86_64.whl", hash = "sha256:f8c55dd0f56d3d618dfacf129e010cbe5d5f94b6951c1b2f13ab1a2f79c284da"}, - {file = "coverage-4.4.2-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:cdd92dd9471e624cd1d8c1a2703d25f114b59b736b0f1f659a98414e535ffb3d"}, - {file = "coverage-4.4.2-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:2ad357d12971e77360034c1596011a03f50c0f9e1ecd12e081342b8d1aee2236"}, - {file = "coverage-4.4.2-cp27-cp27m-win32.whl", hash = "sha256:700d7579995044dc724847560b78ac786f0ca292867447afda7727a6fbaa082e"}, - {file = "coverage-4.4.2-cp27-cp27m-win_amd64.whl", hash = "sha256:66f393e10dd866be267deb3feca39babba08ae13763e0fc7a1063cbe1f8e49f6"}, - {file = "coverage-4.4.2-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:e9a0e1caed2a52f15c96507ab78a48f346c05681a49c5b003172f8073da6aa6b"}, - {file = "coverage-4.4.2-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:eea9135432428d3ca7ee9be86af27cb8e56243f73764a9b6c3e0bda1394916be"}, - {file = "coverage-4.4.2-cp33-cp33m-macosx_10_10_x86_64.whl", hash = "sha256:5ff16548492e8a12e65ff3d55857ccd818584ed587a6c2898a9ebbe09a880674"}, - {file = "coverage-4.4.2-cp33-cp33m-manylinux1_i686.whl", hash = "sha256:d00e29b78ff610d300b2c37049a41234d48ea4f2d2581759ebcf67caaf731c31"}, - {file = "coverage-4.4.2-cp33-cp33m-manylinux1_x86_64.whl", hash = "sha256:87d942863fe74b1c3be83a045996addf1639218c2cb89c5da18c06c0fe3917ea"}, - {file = "coverage-4.4.2-cp34-cp34m-macosx_10_10_x86_64.whl", hash = "sha256:358d635b1fc22a425444d52f26287ae5aea9e96e254ff3c59c407426f44574f4"}, - {file = "coverage-4.4.2-cp34-cp34m-manylinux1_i686.whl", hash = "sha256:81912cfe276e0069dca99e1e4e6be7b06b5fc8342641c6b472cb2fed7de7ae18"}, - {file = "coverage-4.4.2-cp34-cp34m-manylinux1_x86_64.whl", hash = "sha256:079248312838c4c8f3494934ab7382a42d42d5f365f0cf7516f938dbb3f53f3f"}, - {file = "coverage-4.4.2-cp34-cp34m-win32.whl", hash = "sha256:b0059630ca5c6b297690a6bf57bf2fdac1395c24b7935fd73ee64190276b743b"}, - {file = "coverage-4.4.2-cp34-cp34m-win_amd64.whl", hash = "sha256:493082f104b5ca920e97a485913de254cbe351900deed72d4264571c73464cd0"}, - {file = "coverage-4.4.2-cp35-cp35m-macosx_10_10_x86_64.whl", hash = "sha256:e3ba9b14607c23623cf38f90b23f5bed4a3be87cbfa96e2e9f4eabb975d1e98b"}, - {file = "coverage-4.4.2-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:82cbd3317320aa63c65555aa4894bf33a13fb3a77f079059eb5935eea415938d"}, - {file = "coverage-4.4.2-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:9721f1b7275d3112dc7ccf63f0553c769f09b5c25a26ee45872c7f5c09edf6c1"}, - {file = "coverage-4.4.2-cp35-cp35m-win32.whl", hash = "sha256:bd4800e32b4c8d99c3a2c943f1ac430cbf80658d884123d19639bcde90dad44a"}, - {file = "coverage-4.4.2-cp35-cp35m-win_amd64.whl", hash = "sha256:f29841e865590af72c4b90d7b5b8e93fd560f5dea436c1d5ee8053788f9285de"}, - {file = "coverage-4.4.2-cp36-cp36m-macosx_10_12_x86_64.whl", hash = "sha256:f3a5c6d054c531536a83521c00e5d4004f1e126e2e2556ce399bef4180fbe540"}, - {file = "coverage-4.4.2-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:dd707a21332615108b736ef0b8513d3edaf12d2a7d5fc26cd04a169a8ae9b526"}, - {file = "coverage-4.4.2-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:2e1a5c6adebb93c3b175103c2f855eda957283c10cf937d791d81bef8872d6ca"}, - {file = "coverage-4.4.2-cp36-cp36m-win32.whl", hash = "sha256:f87f522bde5540d8a4b11df80058281ac38c44b13ce29ced1e294963dd51a8f8"}, - {file = "coverage-4.4.2-cp36-cp36m-win_amd64.whl", hash = "sha256:a7cfaebd8f24c2b537fa6a271229b051cdac9c1734bb6f939ccfc7c055689baa"}, - {file = "coverage-4.4.2.tar.gz", hash = "sha256:309d91bd7a35063ec7a0e4d75645488bfab3f0b66373e7722f23da7f5b0f34cc"}, -] -"crayons 0.3.0" = [ - {file = "crayons-0.3.0-py2.py3-none-any.whl", hash = "sha256:8c9e4a3a607bc10e9a9140d496ecd16c6805088dd16c852c378f1f1d5db7aeb6"}, - {file = "crayons-0.3.0.tar.gz", hash = "sha256:50e5fa729d313e2c607ae8bf7b53bb487652e10bd8e7a1e08c4bc8bf62755ffc"}, +"coverage 5.0.4" = [ + {file = "coverage-5.0.4.tar.gz", hash = "sha256:1b60a95fc995649464e0cd48cecc8288bac5f4198f21d04b8229dc4097d76823"}, + {file = "coverage-5.0.4-cp27-cp27m-macosx_10_12_x86_64.whl", hash = "sha256:8a620767b8209f3446197c0e29ba895d75a1e272a36af0786ec70fe7834e4307"}, + {file = "coverage-5.0.4-cp27-cp27m-macosx_10_13_intel.whl", hash = "sha256:73aa6e86034dad9f00f4bbf5a666a889d17d79db73bc5af04abd6c20a014d9c8"}, + {file = "coverage-5.0.4-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:408ce64078398b2ee2ec08199ea3fcf382828d2f8a19c5a5ba2946fe5ddc6c31"}, + {file = "coverage-5.0.4-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:cda33311cb9fb9323958a69499a667bd728a39a7aa4718d7622597a44c4f1441"}, + {file = "coverage-5.0.4-cp27-cp27m-win32.whl", hash = "sha256:5f587dfd83cb669933186661a351ad6fc7166273bc3e3a1531ec5c783d997aac"}, + {file = "coverage-5.0.4-cp27-cp27m-win_amd64.whl", hash = "sha256:9fad78c13e71546a76c2f8789623eec8e499f8d2d799f4b4547162ce0a4df435"}, + {file = "coverage-5.0.4-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:2e08c32cbede4a29e2a701822291ae2bc9b5220a971bba9d1e7615312efd3037"}, + {file = "coverage-5.0.4-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:922fb9ef2c67c3ab20e22948dcfd783397e4c043a5c5fa5ff5e9df5529074b0a"}, + {file = "coverage-5.0.4-cp35-cp35m-macosx_10_12_x86_64.whl", hash = "sha256:c3fc325ce4cbf902d05a80daa47b645d07e796a80682c1c5800d6ac5045193e5"}, + {file = "coverage-5.0.4-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:046a1a742e66d065d16fb564a26c2a15867f17695e7f3d358d7b1ad8a61bca30"}, + {file = "coverage-5.0.4-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:6ad6ca45e9e92c05295f638e78cd42bfaaf8ee07878c9ed73e93190b26c125f7"}, + {file = "coverage-5.0.4-cp35-cp35m-win32.whl", hash = "sha256:eda55e6e9ea258f5e4add23bcf33dc53b2c319e70806e180aecbff8d90ea24de"}, + {file = "coverage-5.0.4-cp35-cp35m-win_amd64.whl", hash = "sha256:4a8a259bf990044351baf69d3b23e575699dd60b18460c71e81dc565f5819ac1"}, + {file = "coverage-5.0.4-cp36-cp36m-macosx_10_13_x86_64.whl", hash = "sha256:f372cdbb240e09ee855735b9d85e7f50730dcfb6296b74b95a3e5dea0615c4c1"}, + {file = "coverage-5.0.4-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:a37c6233b28e5bc340054cf6170e7090a4e85069513320275a4dc929144dccf0"}, + {file = "coverage-5.0.4-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:443be7602c790960b9514567917af538cac7807a7c0c0727c4d2bbd4014920fd"}, + {file = "coverage-5.0.4-cp36-cp36m-win32.whl", hash = "sha256:165a48268bfb5a77e2d9dbb80de7ea917332a79c7adb747bd005b3a07ff8caf0"}, + {file = "coverage-5.0.4-cp36-cp36m-win_amd64.whl", hash = "sha256:0a907199566269e1cfa304325cc3b45c72ae341fbb3253ddde19fa820ded7a8b"}, + {file = "coverage-5.0.4-cp37-cp37m-macosx_10_13_x86_64.whl", hash = "sha256:513e6526e0082c59a984448f4104c9bf346c2da9961779ede1fc458e8e8a1f78"}, + {file = "coverage-5.0.4-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:3844c3dab800ca8536f75ae89f3cf566848a3eb2af4d9f7b1103b4f4f7a5dad6"}, + {file = "coverage-5.0.4-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:641e329e7f2c01531c45c687efcec8aeca2a78a4ff26d49184dce3d53fc35014"}, + {file = "coverage-5.0.4-cp37-cp37m-win32.whl", hash = "sha256:db1d4e38c9b15be1521722e946ee24f6db95b189d1447fa9ff18dd16ba89f732"}, + {file = "coverage-5.0.4-cp37-cp37m-win_amd64.whl", hash = "sha256:62061e87071497951155cbccee487980524d7abea647a1b2a6eb6b9647df9006"}, + {file = "coverage-5.0.4-cp38-cp38-macosx_10_13_x86_64.whl", hash = "sha256:65a7e00c00472cd0f59ae09d2fb8a8aaae7f4a0cf54b2b74f3138d9f9ceb9cb2"}, + {file = "coverage-5.0.4-cp38-cp38-manylinux1_i686.whl", hash = "sha256:1f66cf263ec77af5b8fe14ef14c5e46e2eb4a795ac495ad7c03adc72ae43fafe"}, + {file = "coverage-5.0.4-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:85596aa5d9aac1bf39fe39d9fa1051b0f00823982a1de5766e35d495b4a36ca9"}, + {file = "coverage-5.0.4-cp38-cp38-win32.whl", hash = "sha256:86a0ea78fd851b313b2e712266f663e13b6bc78c2fb260b079e8b67d970474b1"}, + {file = "coverage-5.0.4-cp38-cp38-win_amd64.whl", hash = "sha256:03f630aba2b9b0d69871c2e8d23a69b7fe94a1e2f5f10df5049c0df99db639a0"}, + {file = "coverage-5.0.4-cp39-cp39-win32.whl", hash = "sha256:7c9762f80a25d8d0e4ab3cb1af5d9dffbddb3ee5d21c43e3474c84bf5ff941f7"}, + {file = "coverage-5.0.4-cp39-cp39-win_amd64.whl", hash = "sha256:4482f69e0701139d0f2c44f3c395d1d1d37abd81bfafbf9b6efbe2542679d892"}, ] "cursor 1.3.4" = [ {file = "cursor-1.3.4.tar.gz", hash = "sha256:33f279a17789c04efd27a92501a0dad62bb011f8a4cdff93867c798d26508940"}, @@ -594,23 +531,19 @@ summary = "Backport of pathlib-compatible object wrapper for zip files" {file = "distlib-0.3.0.zip", hash = "sha256:2e166e231a26b36d6dfe35a48c4464346620f8645ed0ace01ee31822b288de21"}, ] "execnet 1.7.1" = [ - {file = "execnet-1.7.1-py2.py3-none-any.whl", hash = "sha256:d4efd397930c46415f62f8a31388d6be4f27a91d7550eb79bc64a756e0056547"}, {file = "execnet-1.7.1.tar.gz", hash = "sha256:cacb9df31c9680ec5f95553976c4da484d407e85e41c83cb812aa014f0eddc50"}, + {file = "execnet-1.7.1-py2.py3-none-any.whl", hash = "sha256:d4efd397930c46415f62f8a31388d6be4f27a91d7550eb79bc64a756e0056547"}, ] "future 0.18.2" = [ {file = "future-0.18.2.tar.gz", hash = "sha256:b1bead90b70cf6ec3f0710ae53a525360fa360d306a86583adc6bf83a4db537d"}, ] -"halo 0.0.28" = [ - {file = "halo-0.0.28-py3-none-any.whl", hash = "sha256:9adbfe0a23ae7198a17895aac8845685eb0abeaa13c6a56b60410b347d0f503a"}, - {file = "halo-0.0.28.tar.gz", hash = "sha256:9ebf98b94a43f3b68e18c6d74dcb1ea58446b8457ce6fb1b2b4cac8d83733f80"}, -] -"importlib-metadata 1.5.0" = [ - {file = "importlib_metadata-1.5.0-py2.py3-none-any.whl", hash = "sha256:b97607a1a18a5100839aec1dc26a1ea17ee0d93b20b0f008d80a5a050afb200b"}, - {file = "importlib_metadata-1.5.0.tar.gz", hash = "sha256:06f5b3a99029c7134207dd882428a66992a9de2bef7c2b699b5641f9886c3302"}, +"halo 0.0.29" = [ + {file = "halo-0.0.29.tar.gz", hash = "sha256:a8aeb0164e269d7c96fb7444b2a4caaa09b8989fa0c85e6a26e8b2c6d1af3b9d"}, + {file = "halo-0.0.29-py3-none-any.whl", hash = "sha256:67996649083229a9b7a93fe7c871c97d40bd2f1a988540eccf948a6b1844f644"}, ] "incremental 17.5.0" = [ - {file = "incremental-17.5.0-py2.py3-none-any.whl", hash = "sha256:717e12246dddf231a349175f48d74d93e2897244939173b01974ab6661406b9f"}, {file = "incremental-17.5.0.tar.gz", hash = "sha256:7b751696aaf36eebfab537e458929e194460051ccad279c72b755a167eebd4b3"}, + {file = "incremental-17.5.0-py2.py3-none-any.whl", hash = "sha256:717e12246dddf231a349175f48d74d93e2897244939173b01974ab6661406b9f"}, ] "jinja2 2.11.1" = [ {file = "Jinja2-2.11.1.tar.gz", hash = "sha256:93187ffbc7808079673ef52771baa950426fd664d3aad1d0fa3e95644360e250"}, @@ -621,8 +554,8 @@ summary = "Backport of pathlib-compatible object wrapper for zip files" {file = "livereload-2.6.1-py2.py3-none-any.whl", hash = "sha256:78d55f2c268a8823ba499305dcac64e28ddeb9a92571e12d543cd304faf5817b"}, ] "log-symbols 0.0.14" = [ - {file = "log_symbols-0.0.14-py3-none-any.whl", hash = "sha256:4952106ff8b605ab7d5081dd2c7e6ca7374584eff7086f499c06edd1ce56dcca"}, {file = "log_symbols-0.0.14.tar.gz", hash = "sha256:cf0bbc6fe1a8e53f0d174a716bc625c4f87043cc21eb55dd8a740cfe22680556"}, + {file = "log_symbols-0.0.14-py3-none-any.whl", hash = "sha256:4952106ff8b605ab7d5081dd2c7e6ca7374584eff7086f499c06edd1ce56dcca"}, ] "lunr 0.5.6" = [ {file = "lunr-0.5.6.tar.gz", hash = "sha256:7be69d7186f65784a4f2adf81e5c58efd6a9921aa95966babcb1f2f2ada75c20"}, @@ -689,41 +622,41 @@ summary = "Backport of pathlib-compatible object wrapper for zip files" "nltk 3.4.5" = [ {file = "nltk-3.4.5.zip", hash = "sha256:bed45551259aa2101381bbdd5df37d44ca2669c5c3dad72439fa459b29137d94"}, ] -"packaging 20.1" = [ - {file = "packaging-20.1-py2.py3-none-any.whl", hash = "sha256:170748228214b70b672c581a3dd610ee51f733018650740e98c7df862a583f73"}, - {file = "packaging-20.1.tar.gz", hash = "sha256:e665345f9eef0c621aa0bf2f8d78cf6d21904eef16a93f020240b704a57f1334"}, +"packaging 20.3" = [ + {file = "packaging-20.3.tar.gz", hash = "sha256:3c292b474fda1671ec57d46d739d072bfd495a4f51ad01a055121d81e952b7a3"}, + {file = "packaging-20.3-py2.py3-none-any.whl", hash = "sha256:82f77b9bee21c1bafbf35a84905d604d5d1223801d639cf3ed140bd651c08752"}, ] "pip 20.0.2" = [ - {file = "pip-20.0.2-py2.py3-none-any.whl", hash = "sha256:4ae14a42d8adba3205ebeb38aa68cfc0b6c346e1ae2e699a0b3bad4da19cef5c"}, {file = "pip-20.0.2.tar.gz", hash = "sha256:7db0c8ea4c7ea51c8049640e8e6e7fde949de672bfa4949920675563a5a6967f"}, + {file = "pip-20.0.2-py2.py3-none-any.whl", hash = "sha256:4ae14a42d8adba3205ebeb38aa68cfc0b6c346e1ae2e699a0b3bad4da19cef5c"}, ] -"pip-shims 0.5.0" = [ - {file = "pip_shims-0.5.0-py2.py3-none-any.whl", hash = "sha256:b5bb01c4394a2e0260bddb4cfdc7e6fdd9d6e61c8febd18c3594e2ea2596c190"}, - {file = "pip_shims-0.5.0.tar.gz", hash = "sha256:1cc3e2e4e5d5863edd4760d2032b180a6ef81719277fe95404df1bb0e58b7261"}, +"pip-shims 0.5.1" = [ + {file = "pip_shims-0.5.1.tar.gz", hash = "sha256:2b9a88ff0fd31e7d27a362d3e36e6e75d8fbc339c9c4367f4a97b72b22e6f4f4"}, + {file = "pip_shims-0.5.1-py2.py3-none-any.whl", hash = "sha256:5861da6f48e60b55d40b984795c63681e4db7ac576c1c3b05f4b54a9d508e3da"}, ] "pluggy 0.13.1" = [ - {file = "pluggy-0.13.1-py2.py3-none-any.whl", hash = "sha256:966c145cd83c96502c3c3868f50408687b38434af77734af1e9ca461a4081d2d"}, {file = "pluggy-0.13.1.tar.gz", hash = "sha256:15b2acde666561e1298d71b523007ed7364de07029219b604cf808bfa1c765b0"}, + {file = "pluggy-0.13.1-py2.py3-none-any.whl", hash = "sha256:966c145cd83c96502c3c3868f50408687b38434af77734af1e9ca461a4081d2d"}, ] "py 1.8.1" = [ - {file = "py-1.8.1-py2.py3-none-any.whl", hash = "sha256:c20fdd83a5dbc0af9efd622bee9a5564e278f6380fffcacc43ba6f43db2813b0"}, {file = "py-1.8.1.tar.gz", hash = "sha256:5e27081401262157467ad6e7f851b7aa402c5852dbcb3dae06768434de5752aa"}, + {file = "py-1.8.1-py2.py3-none-any.whl", hash = "sha256:c20fdd83a5dbc0af9efd622bee9a5564e278f6380fffcacc43ba6f43db2813b0"}, ] -"pygments 2.5.2" = [ - {file = "Pygments-2.5.2.tar.gz", hash = "sha256:98c8aa5a9f778fcd1026a17361ddaf7330d1b7c62ae97c3bb0ae73e0b9b6b0fe"}, - {file = "Pygments-2.5.2-py2.py3-none-any.whl", hash = "sha256:2a3fe295e54a20164a9df49c75fa58526d3be48e14aceba6d6b1e8ac0bfd6f1b"}, +"pygments 2.6.1" = [ + {file = "Pygments-2.6.1.tar.gz", hash = "sha256:647344a061c249a3b74e230c739f434d7ea4d8b1d5f3721bc0f3558049b38f44"}, + {file = "Pygments-2.6.1-py3-none-any.whl", hash = "sha256:ff7a40b4860b727ab48fad6360eb351cc1b33cbf9b15a0f689ca5353e9463324"}, ] "pymdown-extensions 6.3" = [ {file = "pymdown-extensions-6.3.tar.gz", hash = "sha256:cb879686a586b22292899771f5e5bc3382808e92aa938f71b550ecdea709419f"}, {file = "pymdown_extensions-6.3-py2.py3-none-any.whl", hash = "sha256:66fae2683c7a1dac53184f7de57f51f8dad73f9ead2f453e94e85096cb811335"}, ] "pyparsing 2.4.6" = [ - {file = "pyparsing-2.4.6-py2.py3-none-any.whl", hash = "sha256:c342dccb5250c08d45fd6f8b4a559613ca603b57498511740e65cd11a2e7dcec"}, {file = "pyparsing-2.4.6.tar.gz", hash = "sha256:4c830582a84fb022400b85429791bc551f1f4871c33f23e44f353119e92f969f"}, + {file = "pyparsing-2.4.6-py2.py3-none-any.whl", hash = "sha256:c342dccb5250c08d45fd6f8b4a559613ca603b57498511740e65cd11a2e7dcec"}, ] -"pytest 5.3.5" = [ - {file = "pytest-5.3.5-py3-none-any.whl", hash = "sha256:ff615c761e25eb25df19edddc0b970302d2a9091fbce0e7213298d85fb61fef6"}, - {file = "pytest-5.3.5.tar.gz", hash = "sha256:0d5fe9189a148acc3c3eb2ac8e1ac0742cb7618c084f3d228baaec0c254b318d"}, +"pytest 5.4.1" = [ + {file = "pytest-5.4.1.tar.gz", hash = "sha256:84dde37075b8805f3d1f392cc47e38a0e59518fb46a431cfdaf7cf1ce805f970"}, + {file = "pytest-5.4.1-py3-none-any.whl", hash = "sha256:0e5b30f5cb04e887b91b1ee519fa3d89049595f428c1db76e73bd7f17b09b172"}, ] "pytest-cov 2.8.1" = [ {file = "pytest-cov-2.8.1.tar.gz", hash = "sha256:cc6742d8bac45070217169f5f72ceee1e0e55b0221f54bcf24845972d3a47f2b"}, @@ -737,95 +670,78 @@ summary = "Backport of pathlib-compatible object wrapper for zip files" {file = "pytest-mock-2.0.0.tar.gz", hash = "sha256:b35eb281e93aafed138db25c8772b95d3756108b601947f89af503f8c629413f"}, {file = "pytest_mock-2.0.0-py2.py3-none-any.whl", hash = "sha256:cb67402d87d5f53c579263d37971a164743dc33c159dfb4fb4a86f37c5552307"}, ] -"pytest-sugar 0.9.2" = [ - {file = "pytest-sugar-0.9.2.tar.gz", hash = "sha256:fcd87a74b2bce5386d244b49ad60549bfbc4602527797fac167da147983f58ab"}, - {file = "pytest_sugar-0.9.2-py2.py3-none-any.whl", hash = "sha256:26cf8289fe10880cbbc130bd77398c4e6a8b936d8393b116a5c16121d95ab283"}, -] "pytest-xdist 1.31.0" = [ {file = "pytest-xdist-1.31.0.tar.gz", hash = "sha256:7dc0d027d258cd0defc618fb97055fbd1002735ca7a6d17037018cf870e24011"}, {file = "pytest_xdist-1.31.0-py2.py3-none-any.whl", hash = "sha256:0f46020d3d9619e6d17a65b5b989c1ebbb58fc7b1da8fb126d70f4bac4dfeed1"}, ] -"python-cfonts 1.1.0" = [ - {file = "python-cfonts-1.1.0.tar.gz", hash = "sha256:e8803d3713d1b179eda51562ca8108c9a3fdd27d745cfc5e0aa982e6f16c97e0"}, - {file = "python_cfonts-1.1.0-py2.py3-none-any.whl", hash = "sha256:f82863f9d6f60d62d8fe2f584b0ef8aa994d0527e063ac275b0b1bfccdd9d5f6"}, -] -"pythonfinder 1.2.1" = [ - {file = "pythonfinder-1.2.1-py2.py3-none-any.whl", hash = "sha256:cfbfe61b7bfc3b45b24f156e2bab76621ebc6ba92f69afbc16f76482d69d9802"}, - {file = "pythonfinder-1.2.1.tar.gz", hash = "sha256:0a4f585abb76aa2fc97479cd12d10f7644aa1ab42b919747e04d33d7f9379425"}, -] -"pyyaml 5.3" = [ - {file = "PyYAML-5.3.tar.gz", hash = "sha256:e9f45bd5b92c7974e59bcd2dcc8631a6b6cc380a904725fce7bc08872e691615"}, - {file = "PyYAML-5.3-cp27-cp27m-win32.whl", hash = "sha256:940532b111b1952befd7db542c370887a8611660d2b9becff75d39355303d82d"}, - {file = "PyYAML-5.3-cp27-cp27m-win_amd64.whl", hash = "sha256:059b2ee3194d718896c0ad077dd8c043e5e909d9180f387ce42012662a4946d6"}, - {file = "PyYAML-5.3-cp35-cp35m-win32.whl", hash = "sha256:4fee71aa5bc6ed9d5f116327c04273e25ae31a3020386916905767ec4fc5317e"}, - {file = "PyYAML-5.3-cp35-cp35m-win_amd64.whl", hash = "sha256:dbbb2379c19ed6042e8f11f2a2c66d39cceb8aeace421bfc29d085d93eda3689"}, - {file = "PyYAML-5.3-cp36-cp36m-win32.whl", hash = "sha256:e3a057b7a64f1222b56e47bcff5e4b94c4f61faac04c7c4ecb1985e18caa3994"}, - {file = "PyYAML-5.3-cp36-cp36m-win_amd64.whl", hash = "sha256:74782fbd4d4f87ff04159e986886931456a1894c61229be9eaf4de6f6e44b99e"}, - {file = "PyYAML-5.3-cp37-cp37m-win32.whl", hash = "sha256:24521fa2890642614558b492b473bee0ac1f8057a7263156b02e8b14c88ce6f5"}, - {file = "PyYAML-5.3-cp37-cp37m-win_amd64.whl", hash = "sha256:1cf708e2ac57f3aabc87405f04b86354f66799c8e62c28c5fc5f88b5521b2dbf"}, - {file = "PyYAML-5.3-cp38-cp38-win32.whl", hash = "sha256:70024e02197337533eef7b85b068212420f950319cc8c580261963aefc75f811"}, - {file = "PyYAML-5.3-cp38-cp38-win_amd64.whl", hash = "sha256:cb1f2f5e426dc9f07a7681419fe39cee823bb74f723f36f70399123f439e9b20"}, -] -"setuptools 45.2.0" = [ - {file = "setuptools-45.2.0.zip", hash = "sha256:89c6e6011ec2f6d57d43a3f9296c4ef022c2cbf49bab26b407fe67992ae3397f"}, - {file = "setuptools-45.2.0-py3-none-any.whl", hash = "sha256:316484eebff54cc18f322dea09ed031b7e3eb00811b19dcedb09bc09bba7d93d"}, +"python-cfonts 1.2.0" = [ + {file = "python-cfonts-1.2.0.tar.gz", hash = "sha256:27c5ac08fdb0a46a7d1a8ef9031cc9456475a29921a721555fad1f59715e5d37"}, + {file = "python_cfonts-1.2.0-py2.py3-none-any.whl", hash = "sha256:b5f0657fee522afc294a2311738cbfaaebcc11b703d7c96ce31ae064b3ac43bd"}, +] +"pythonfinder 1.2.2" = [ + {file = "pythonfinder-1.2.2.tar.gz", hash = "sha256:6cab0773cb811e946b4eb76b1f2e4faf7c657c848f0e0682f6f8291cd1091a2a"}, + {file = "pythonfinder-1.2.2-py2.py3-none-any.whl", hash = "sha256:73cf4cdcb4a6754fd29a5b96120679bde7c1f587bd1fb63b748d3a5fef6e4090"}, +] +"pyyaml 5.3.1" = [ + {file = "PyYAML-5.3.1.tar.gz", hash = "sha256:b8eac752c5e14d3eca0e6dd9199cd627518cb5ec06add0de9d32baeee6fe645d"}, + {file = "PyYAML-5.3.1-cp27-cp27m-win32.whl", hash = "sha256:74809a57b329d6cc0fdccee6318f44b9b8649961fa73144a98735b0aaf029f1f"}, + {file = "PyYAML-5.3.1-cp27-cp27m-win_amd64.whl", hash = "sha256:240097ff019d7c70a4922b6869d8a86407758333f02203e0fc6ff79c5dcede76"}, + {file = "PyYAML-5.3.1-cp35-cp35m-win32.whl", hash = "sha256:4f4b913ca1a7319b33cfb1369e91e50354d6f07a135f3b901aca02aa95940bd2"}, + {file = "PyYAML-5.3.1-cp35-cp35m-win_amd64.whl", hash = "sha256:cc8955cfbfc7a115fa81d85284ee61147059a753344bc51098f3ccd69b0d7e0c"}, + {file = "PyYAML-5.3.1-cp36-cp36m-win32.whl", hash = "sha256:7739fc0fa8205b3ee8808aea45e968bc90082c10aef6ea95e855e10abf4a37b2"}, + {file = "PyYAML-5.3.1-cp36-cp36m-win_amd64.whl", hash = "sha256:69f00dca373f240f842b2931fb2c7e14ddbacd1397d57157a9b005a6a9942648"}, + {file = "PyYAML-5.3.1-cp37-cp37m-win32.whl", hash = "sha256:d13155f591e6fcc1ec3b30685d50bf0711574e2c0dfffd7644babf8b5102ca1a"}, + {file = "PyYAML-5.3.1-cp37-cp37m-win_amd64.whl", hash = "sha256:73f099454b799e05e5ab51423c7bcf361c58d3206fa7b0d555426b1f4d9a3eaf"}, + {file = "PyYAML-5.3.1-cp38-cp38-win32.whl", hash = "sha256:06a0d7ba600ce0b2d2fe2e78453a470b5a6e000a985dd4a4e54e436cc36b0e97"}, + {file = "PyYAML-5.3.1-cp38-cp38-win_amd64.whl", hash = "sha256:95f71d2af0ff4227885f7a6605c37fd53d3a106fcab511b8860ecca9fcf400ee"}, +] +"setuptools 46.1.3" = [ + {file = "setuptools-46.1.3.zip", hash = "sha256:795e0475ba6cd7fa082b1ee6e90d552209995627a2a227a47c6ea93282f4bfb1"}, + {file = "setuptools-46.1.3-py3-none-any.whl", hash = "sha256:4fe404eec2738c20ab5841fa2d791902d2a645f32318a7850ef26f8d7215a8ee"}, ] "six 1.14.0" = [ {file = "six-1.14.0.tar.gz", hash = "sha256:236bdbdce46e6e6a3d61a337c0f8b763ca1e8717c03b369e87a7ec7ce1319c0a"}, {file = "six-1.14.0-py2.py3-none-any.whl", hash = "sha256:8f3cd2e254d8f793e7f3d6d9df77b92252b52637291d0f0da013c76ea2724b6c"}, ] -"spinners 0.0.23" = [ - {file = "spinners-0.0.23.tar.gz", hash = "sha256:f396fea1ee00c0622988d7d2bf2895d26dd6f70850ca2ce94eaca52ca4873560"}, +"spinners 0.0.24" = [ + {file = "spinners-0.0.24.tar.gz", hash = "sha256:1eb6aeb4781d72ab42ed8a01dcf20f3002bf50740d7154d12fb8c9769bf9e27f"}, + {file = "spinners-0.0.24-py3-none-any.whl", hash = "sha256:2fa30d0b72c9650ad12bbe031c9943b8d441e41b4f5602b0ec977a19f3290e98"}, ] "termcolor 1.1.0" = [ {file = "termcolor-1.1.0.tar.gz", hash = "sha256:1d6d69ce66211143803fbc56652b41d73b4a400a2891d7bf7a1cdf4c02de613b"}, ] "toml 0.10.0" = [ - {file = "toml-0.10.0-py2.py3-none-any.whl", hash = "sha256:235682dd292d5899d361a811df37e04a8828a5b1da3115886b73cf81ebc9100e"}, {file = "toml-0.10.0.tar.gz", hash = "sha256:229f81c57791a41d65e399fc06bf0848bab550a9dfd5ed66df18ce5f05e73d5c"}, + {file = "toml-0.10.0-py2.py3-none-any.whl", hash = "sha256:235682dd292d5899d361a811df37e04a8828a5b1da3115886b73cf81ebc9100e"}, ] "tomlkit 0.5.11" = [ {file = "tomlkit-0.5.11.tar.gz", hash = "sha256:f044eda25647882e5ef22b43a1688fb6ab12af2fc50e8456cdfc751c873101cf"}, {file = "tomlkit-0.5.11-py2.py3-none-any.whl", hash = "sha256:4e1bd6c9197d984528f9ff0cc9db667c317d8881288db50db20eeeb0f6b0380b"}, ] -"tornado 6.0.3" = [ - {file = "tornado-6.0.3.tar.gz", hash = "sha256:c845db36ba616912074c5b1ee897f8e0124df269468f25e4fe21fe72f6edd7a9"}, - {file = "tornado-6.0.3-cp35-cp35m-win32.whl", hash = "sha256:c9399267c926a4e7c418baa5cbe91c7d1cf362d505a1ef898fde44a07c9dd8a5"}, - {file = "tornado-6.0.3-cp35-cp35m-win_amd64.whl", hash = "sha256:398e0d35e086ba38a0427c3b37f4337327231942e731edaa6e9fd1865bbd6f60"}, - {file = "tornado-6.0.3-cp36-cp36m-win32.whl", hash = "sha256:4e73ef678b1a859f0cb29e1d895526a20ea64b5ffd510a2307b5998c7df24281"}, - {file = "tornado-6.0.3-cp36-cp36m-win_amd64.whl", hash = "sha256:349884248c36801afa19e342a77cc4458caca694b0eda633f5878e458a44cb2c"}, - {file = "tornado-6.0.3-cp37-cp37m-win32.whl", hash = "sha256:559bce3d31484b665259f50cd94c5c28b961b09315ccd838f284687245f416e5"}, - {file = "tornado-6.0.3-cp37-cp37m-win_amd64.whl", hash = "sha256:abbe53a39734ef4aba061fca54e30c6b4639d3e1f59653f0da37a0003de148c7"}, +"tornado 6.0.4" = [ + {file = "tornado-6.0.4.tar.gz", hash = "sha256:0fe2d45ba43b00a41cd73f8be321a44936dc1aba233dee979f17a042b83eb6dc"}, + {file = "tornado-6.0.4-cp35-cp35m-win32.whl", hash = "sha256:5217e601700f24e966ddab689f90b7ea4bd91ff3357c3600fa1045e26d68e55d"}, + {file = "tornado-6.0.4-cp35-cp35m-win_amd64.whl", hash = "sha256:c98232a3ac391f5faea6821b53db8db461157baa788f5d6222a193e9456e1740"}, + {file = "tornado-6.0.4-cp36-cp36m-win32.whl", hash = "sha256:5f6a07e62e799be5d2330e68d808c8ac41d4a259b9cea61da4101b83cb5dc673"}, + {file = "tornado-6.0.4-cp36-cp36m-win_amd64.whl", hash = "sha256:c952975c8ba74f546ae6de2e226ab3cc3cc11ae47baf607459a6728585bb542a"}, + {file = "tornado-6.0.4-cp37-cp37m-win32.whl", hash = "sha256:2c027eb2a393d964b22b5c154d1a23a5f8727db6fda837118a776b29e2b8ebc6"}, + {file = "tornado-6.0.4-cp37-cp37m-win_amd64.whl", hash = "sha256:5618f72e947533832cbc3dec54e1dffc1747a5cb17d1fd91577ed14fa0dc081b"}, + {file = "tornado-6.0.4-cp38-cp38-win32.whl", hash = "sha256:22aed82c2ea340c3771e3babc5ef220272f6fd06b5108a53b4976d0d722bcd52"}, + {file = "tornado-6.0.4-cp38-cp38-win_amd64.whl", hash = "sha256:c58d56003daf1b616336781b26d184023ea4af13ae143d9dda65e31e534940b9"}, ] "towncrier 19.2.0" = [ - {file = "towncrier-19.2.0-py2.py3-none-any.whl", hash = "sha256:de19da8b8cb44f18ea7ed3a3823087d2af8fcf497151bb9fd1e1b092ff56ed8d"}, {file = "towncrier-19.2.0.tar.gz", hash = "sha256:48251a1ae66d2cf7e6fa5552016386831b3e12bb3b2d08eb70374508c17a8196"}, + {file = "towncrier-19.2.0-py2.py3-none-any.whl", hash = "sha256:de19da8b8cb44f18ea7ed3a3823087d2af8fcf497151bb9fd1e1b092ff56ed8d"}, ] -"vistir 0.5.0" = [ - {file = "vistir-0.5.0-py2.py3-none-any.whl", hash = "sha256:e47afdec8baf35032a8d17116765f751ecd2f2146d47e5af457c5de1fe5a334e"}, - {file = "vistir-0.5.0.tar.gz", hash = "sha256:33f8e905d40a77276b3d5310c8b57c1479a4e46930042b4894fcf7ed60ad76c4"}, -] -"vistir[spinner] 0.5.0" = [ - {file = "vistir-0.5.0-py2.py3-none-any.whl", hash = "sha256:e47afdec8baf35032a8d17116765f751ecd2f2146d47e5af457c5de1fe5a334e"}, - {file = "vistir-0.5.0.tar.gz", hash = "sha256:33f8e905d40a77276b3d5310c8b57c1479a4e46930042b4894fcf7ed60ad76c4"}, -] -"wcwidth 0.1.8" = [ - {file = "wcwidth-0.1.8-py2.py3-none-any.whl", hash = "sha256:8fd29383f539be45b20bd4df0dc29c20ba48654a41e661925e612311e9f3c603"}, - {file = "wcwidth-0.1.8.tar.gz", hash = "sha256:f28b3e8a6483e5d49e7f8949ac1a78314e740333ae305b4ba5defd3e74fb37a8"}, +"wcwidth 0.1.9" = [ + {file = "wcwidth-0.1.9.tar.gz", hash = "sha256:ee73862862a156bf77ff92b09034fc4825dd3af9cf81bc5b360668d425f3c5f1"}, + {file = "wcwidth-0.1.9-py2.py3-none-any.whl", hash = "sha256:cafe2186b3c009a04067022ce1dcd79cb38d8d65ee4f4791b8888d6599d1bbe1"}, ] "wheel 0.34.2" = [ - {file = "wheel-0.34.2-py2.py3-none-any.whl", hash = "sha256:df277cb51e61359aba502208d680f90c0493adec6f0e848af94948778aed386e"}, {file = "wheel-0.34.2.tar.gz", hash = "sha256:8788e9155fe14f54164c1b9eb0a319d98ef02c160725587ad60f14ddc57b6f96"}, -] -"yaspin 0.16.0" = [ - {file = "yaspin-0.16.0-py2.py3-none-any.whl", hash = "sha256:e88bf9c9fe4ac588e3620588aadae655dfc20f1f7460338394ef4693bdc2b800"}, - {file = "yaspin-0.16.0.tar.gz", hash = "sha256:efca3eb7162e575d3ab2e49743cd9bd1f5ec2adc7d85b9489ab145a3f6460ed4"}, -] -"zipp 3.0.0" = [ - {file = "zipp-3.0.0-py3-none-any.whl", hash = "sha256:12248a63bbdf7548f89cb4c7cda4681e537031eda29c02ea29674bc6854460c2"}, - {file = "zipp-3.0.0.tar.gz", hash = "sha256:7c0f8e91abc0dc07a5068f315c52cb30c66bfbc581e5b50704c8a2f6ebae794a"}, + {file = "wheel-0.34.2-py2.py3-none-any.whl", hash = "sha256:df277cb51e61359aba502208d680f90c0493adec6f0e848af94948778aed386e"}, ] [root] -content_hash = "md5:3562ef521736c4819cd24da3c3c54235" +content_hash = "md5:fbac358de4e5b0747e3a27154febb055" meta_version = "0.0.1" diff --git a/pdm/installers.py b/pdm/installers.py index a41889784543997cc18fc70a286bc60bcc9d5284..3f8b06ee882ed719b2f9598b69483562cf741513 100644 --- a/pdm/installers.py +++ b/pdm/installers.py @@ -14,13 +14,13 @@ from distlib.wheel import Wheel from pip._internal.utils import logging as pip_logging from pip._vendor.pkg_resources import Distribution, EggInfoDistribution, safe_name from pip_shims import shims -from vistir import cd from pdm.exceptions import InstallationError from pdm.iostream import stream from pdm.models.candidates import Candidate from pdm.models.environment import Environment from pdm.models.requirements import parse_requirement, strip_extras +from pdm.utils import cd def _is_dist_editable(dist: Distribution) -> bool: diff --git a/pdm/models/caches.py b/pdm/models/caches.py index 2c345df8391fcf9fdaf5f11228d91798f8232f48..cf972f6719065f643fe9fcd144031ba91f0b4064 100644 --- a/pdm/models/caches.py +++ b/pdm/models/caches.py @@ -5,10 +5,10 @@ from typing import TYPE_CHECKING, Any, Dict, Optional import pip_shims from pip._vendor import requests -from vistir.contextmanagers import open_file from pdm._types import CandidateInfo from pdm.exceptions import CorruptedCacheError +from pdm.utils import open_file if TYPE_CHECKING: from pdm.models.candidates import Candidate diff --git a/pdm/models/environment.py b/pdm/models/environment.py index 735a1a24f177f007ba9bba3cf53dc46f93a88360..fb320cee5b5aba7a38d7b51e63afb7a0e20453b0 100644 --- a/pdm/models/environment.py +++ b/pdm/models/environment.py @@ -15,8 +15,6 @@ from pip._vendor import packaging, pkg_resources from pip_shims import shims from pythonfinder import Finder from pythonfinder.environment import PYENV_INSTALLED, PYENV_ROOT -from vistir.contextmanagers import temp_environ -from vistir.path import normalize_path from pdm.exceptions import NoPythonVersion from pdm.iostream import stream @@ -31,6 +29,7 @@ from pdm.utils import ( get_python_version, get_sys_config_paths, get_venv_python, + temp_environ, ) if TYPE_CHECKING: @@ -181,8 +180,8 @@ class Environment: def is_local(self, path) -> bool: """PEP 582 version of ``is_local()`` function.""" - return normalize_path(path).startswith( - normalize_path(self.packages_path.as_posix()) + return misc.normalize_path(path).startswith( + misc.normalize_path(self.packages_path.as_posix()) ) def evaluate_marker(self, text: str, extra=None) -> bool: @@ -356,8 +355,8 @@ class GlobalEnvironment(Environment): return paths def is_local(self, path) -> bool: - return normalize_path(path).startswith( - normalize_path(self.get_paths()["prefix"]) + return misc.normalize_path(path).startswith( + misc.normalize_path(self.get_paths()["prefix"]) ) @property diff --git a/pdm/project/core.py b/pdm/project/core.py index d8a668161f891eba209e98462e7c73fa327e5145..2bca76dbc56e685a7aa3320e4ce90c067a413d63 100644 --- a/pdm/project/core.py +++ b/pdm/project/core.py @@ -11,7 +11,6 @@ import halo import tomlkit from pip._vendor.pkg_resources import safe_name from pip_shims import shims -from vistir.contextmanagers import atomic_open_for_write from pdm._types import Source from pdm.exceptions import ProjectError @@ -26,7 +25,12 @@ from pdm.project.config import Config from pdm.project.meta import PackageMeta from pdm.resolver import BaseProvider, EagerUpdateProvider, ReusePinProvider from pdm.resolver.reporters import SpinnerReporter -from pdm.utils import cached_property, find_project_root, get_venv_python +from pdm.utils import ( + atomic_open_for_write, + cached_property, + find_project_root, + get_venv_python, +) if TYPE_CHECKING: from tomlkit.container import Container diff --git a/pdm/project/meta.py b/pdm/project/meta.py index ac1e9936c4a3958b3d2f53fd421ba2bf90b96027..7fefd964b767d678af642abfaf3a331c33be69f7 100644 --- a/pdm/project/meta.py +++ b/pdm/project/meta.py @@ -6,11 +6,11 @@ import re from typing import TYPE_CHECKING, Dict, List, Union import setuptools -import vistir from pkg_resources import safe_name from pdm.exceptions import ProjectError from pdm.models.markers import Marker +from pdm.utils import cd if TYPE_CHECKING: from pdm.project import Project @@ -148,7 +148,7 @@ class PackageMeta: package_data = {"": ["*"]} exclude_package_data = {} - with vistir.cd(self.project.root.as_posix()): + with cd(self.project.root.as_posix()): if not self.includes: if os.path.isdir("src"): package_dir[""] = "src" diff --git a/pdm/utils.py b/pdm/utils.py index 91b187ff3b9f40b4d0ff68343d8d3af413fde903..705b3e99311b10798b8a8a89705a556a0fde792d 100644 --- a/pdm/utils.py +++ b/pdm/utils.py @@ -14,10 +14,10 @@ import tempfile import urllib.parse as parse from contextlib import contextmanager from pathlib import Path -from typing import TYPE_CHECKING, Any, Dict, List, Optional, Tuple +from typing import TYPE_CHECKING, Any, Dict, List, Optional, Tuple, Union from distlib.wheel import Wheel -from pip_shims.shims import InstallCommand, PackageFinder, TargetPython +from pip_shims.shims import InstallCommand, PackageFinder, TargetPython, url_to_path from pdm._types import Source @@ -418,3 +418,66 @@ def get_venv_python() -> Optional[str]: suffix = "" scripts = "bin" return os.path.join(venv, scripts, f"python{suffix}") + + +@contextmanager +def atomic_open_for_write(filename: Union[Path, str], *, encoding: str = "utf-8"): + fd, name = tempfile.mkstemp("-atomic-write", "pdm-") + try: + f = open(fd, "w", encoding=encoding) + yield f + except Exception: + f.close() + os.unlink(name) + raise + else: + f.close() + try: + os.unlink(filename) + except OSError: + pass + os.rename(name, filename) + + +@contextmanager +def cd(path: str): + _old_cwd = os.getcwd() + os.chdir(path) + try: + yield + finally: + os.chdir(_old_cwd) + + +@contextmanager +def temp_environ(): + environ = os.environ.copy() + try: + yield + finally: + os.environ.clear() + os.environ.update(environ) + + +@contextmanager +def open_file(url, session=None): + if url.startswith("file://"): + local_path = url_to_path(url) + if os.path.isdir(local_path): + raise ValueError("Cannot open directory for read: {}".format(url)) + else: + with open(local_path, "rb") as local_file: + yield local_file + else: + headers = {"Accept-Encoding": "identity"} + with session.get(url, headers=headers, stream=True) as resp: + try: + raw = getattr(resp, "raw", None) + result = raw if raw else resp + yield result + finally: + if raw: + conn = getattr(raw, "_connection") + if conn is not None: + conn.close() + result.close() diff --git a/pyproject.toml b/pyproject.toml index a0ab0e0c9bae308b7b8ac47e9024b5f0a7aae2a0..d87789d50ab5a5044df7807000c5fe4df71fda7d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -39,7 +39,6 @@ pytest = "*" pytest-cov = "*" pytest-mock = "*" towncrier = "<20.0.0,>=19.2.0" -pytest-sugar = "<1.0.0,>=0.9.2" pytest-xdist = "<2.0.0,>=1.31.0" [tool.pdm.doc-dependencies] diff --git a/setup.cfg b/setup.cfg index 758c431fcaa22ac2fab5730f31d8ecbac2e97c05..689c8e7d20284558cff33d6088ba985fe7a8a4eb 100644 --- a/setup.cfg +++ b/setup.cfg @@ -46,7 +46,6 @@ known_first_party = pdm known_third_party = click halo - vistir distlib pythonfinder pytest diff --git a/setup_dev.py b/setup_dev.py index d965804c3cedc71d5818455fdc4bd745d4e4576b..528c741f74f7d187dc4c29550041275fae76cebb 100644 --- a/setup_dev.py +++ b/setup_dev.py @@ -28,7 +28,16 @@ def main(): subprocess.check_call([venv_python.as_posix(), "-m", "pip", "install", "pdm"]) subprocess.check_call( - [venv_python.as_posix(), "-m", "pip", "install", "pip", "pip_shims", "-U"] + [ + venv_python.as_posix(), + "-m", + "pip", + "install", + "-U", + "pip", + "pip_shims", + "vistir", + ] ) print("Setup project for development...", flush=True) diff --git a/tests/cli/test_actions.py b/tests/cli/test_actions.py index 4ec13cfb71cfa4ea02d5f989c70f324827ddd0c2..b38a9e3129ed19bdf972e33ba1fce22ec1245080 100644 --- a/tests/cli/test_actions.py +++ b/tests/cli/test_actions.py @@ -357,7 +357,7 @@ def test_list_dependency_graph(capsys): project = Project() actions.do_list(project, True) content, _ = capsys.readouterr() - assert "halo 0.0.28 [ required: <1.0.0,>=0.0.28 ]" in content + assert "halo 0.0.29 [ required: <1.0.0,>=0.0.28 ]" in content assert "six 1.14.0 [ required: >=1.12.0 ]" in content diff --git a/tests/cli/test_cli.py b/tests/cli/test_cli.py index fa6f043bb21619b00fce46eda603aa2654f27093..f9fca914d7482b01a893e84d0daaf40a9801e238 100644 --- a/tests/cli/test_cli.py +++ b/tests/cli/test_cli.py @@ -4,11 +4,10 @@ import sys from pathlib import Path import pytest -from vistir.contextmanagers import temp_environ from pdm.cli import actions from pdm.models.requirements import parse_requirement -from pdm.utils import get_python_version +from pdm.utils import get_python_version, temp_environ def test_help_option(invoke): diff --git a/tests/test_project.py b/tests/test_project.py index ff8f2ecb3898f1a31c56b9985189cc3940d23329..93aed0cd5487fda37405c2c3fd0a62e026fb34c9 100644 --- a/tests/test_project.py +++ b/tests/test_project.py @@ -2,9 +2,9 @@ import os from pathlib import Path import pytest -from vistir import temp_environ from pdm.project import Project +from pdm.utils import temp_environ def test_project_python_with_pyenv_support(project, mocker):