From a3b8f03b47d4a33f48da69d3c2019421b67e7628 Mon Sep 17 00:00:00 2001 From: "Gregory M. Kapfhammer" Date: Sun, 19 Jan 2020 21:22:51 -0500 Subject: [PATCH] chore: Add .gitattributes, re-format, and fix dev deps and AppVeyor. --- .appveyor.yml | 2 +- .gitattributes | 2 + Pipfile.lock | 472 +++++++++++++++++++++------------------- README.md | 2 +- gator/invoke.py | 66 ++++-- tests/test_checkers.py | 2 +- tests/test_files.py | 2 +- tests/test_fragments.py | 78 +++---- tests/test_markdown.py | 90 ++++---- 9 files changed, 389 insertions(+), 327 deletions(-) create mode 100644 .gitattributes diff --git a/.appveyor.yml b/.appveyor.yml index 93c630b77..e5caaeb24 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -17,7 +17,7 @@ environment: # build and test with two versions of Python matrix: # Use Python 3.7 - - PYTHON_VERSION: 3.7.4 + - PYTHON_VERSION: 3.7.5 PYTHON_PATH: C:\Python37 # Use Python 3.6 - PYTHON_VERSION: 3.6.8 diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 000000000..5a78f6369 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,2 @@ +# Convert line endings to be LF, following the Unix standard +* text eol=lf diff --git a/Pipfile.lock b/Pipfile.lock index e8ead4a7c..69771503d 100644 --- a/Pipfile.lock +++ b/Pipfile.lock @@ -16,10 +16,10 @@ "default": { "certifi": { "hashes": [ - "sha256:046832c04d4e752f37383b628bc601a7ea7211496b4638f6514d0e5b9acc4939", - "sha256:945e3ba63a0b9f577b1395204e13c3a231f9bc0223888be653286534e5873695" + "sha256:017c25db2a153ce562900032d5bc68e9f191e44e9a0f762f373977de9df1fbb3", + "sha256:25b64c7da4cd7479594d035c08c2d809eb4aab3a26e5a990ea98cc450c320f1f" ], - "version": "==2019.6.16" + "version": "==2019.11.28" }, "chardet": { "hashes": [ @@ -30,18 +30,11 @@ }, "commonmark": { "hashes": [ - "sha256:14c3df31e8c9c463377e287b2a1eefaa6019ab97b22dad36e2f32be59d61d68d", - "sha256:867fc5db078ede373ab811e16b6789e9d033b15ccd7296f370ca52d1ee792ce0" + "sha256:452f9dc859be7f06631ddcb328b6919c67984aca654e5fefb3914d54691aed60", + "sha256:da2f38c92590f83de410ba1a3cbceafbc74fee9def35f9251ba9a971d6d66fd9" ], "index": "pypi", - "version": "==0.9.0" - }, - "ddt": { - "hashes": [ - "sha256:474546b4020ce8a2f9550ba8899c28aa2c284c7bbf175bddede98be949d1ca7c", - "sha256:d13e6af8f36238e89d00f4ebccf2bda4f6d1878be560a6600689e42077e164e3" - ], - "version": "==1.2.1" + "version": "==0.9.1" }, "docopt": { "hashes": [ @@ -49,26 +42,20 @@ ], "version": "==0.6.2" }, - "future": { - "hashes": [ - "sha256:67045236dcfd6816dc439556d009594abf643e5eb48992e36beac09c2ca659b8" - ], - "version": "==0.17.1" - }, "gitdb2": { "hashes": [ - "sha256:83361131a1836661a155172932a13c08bda2db3674e4caa32368aa6eb02f38c2", - "sha256:e3a0141c5f2a3f635c7209d56c496ebe1ad35da82fe4d3ec4aaa36278d70648a" + "sha256:1b6df1433567a51a4a9c1a5a0de977aa351a405cc56d7d35f3388bad1f630350", + "sha256:96bbb507d765a7f51eb802554a9cfe194a174582f772e0d89f4e87288c288b7b" ], - "version": "==2.0.5" + "version": "==2.0.6" }, "gitpython": { "hashes": [ - "sha256:259a8b6d6a4a118738c4a65fa990f8c8c91525bb43970aed2868952ebb86ceb8", - "sha256:73aa7b59e58dd3435121421c33c284e5ef51bc7b2f4373e1a1e4cc06e9c928ec" + "sha256:9c2398ffc3dcb3c40b27324b316f08a4f93ad646d5a6328cafbb871aa79f5e42", + "sha256:c155c6a2653593ccb300462f6ef533583a913e17857cfef8fc617c246b6dc245" ], "index": "pypi", - "version": "==3.0.1" + "version": "==3.0.5" }, "idna": { "hashes": [ @@ -109,10 +96,10 @@ }, "urllib3": { "hashes": [ - "sha256:b246607a25ac80bedac05c6f282e3cdaf3afb65420fd024ac94435cabe6e18d1", - "sha256:dbe59173209418ae49d485b87d1681aefa36252ee85884c31346debd19463232" + "sha256:a8a318824cc77d1fd4b2bec2ded92646630d7fe8619497b142c84a9e6f5a7293", + "sha256:f3c5fd51747d450d4dcf6f923c81f78f811aab8205fda64b0aba34a4e48b0745" ], - "version": "==1.25.3" + "version": "==1.25.7" } }, "develop": { @@ -125,31 +112,24 @@ }, "astroid": { "hashes": [ - "sha256:6560e1e1749f68c64a4b5dee4e091fce798d2f0d84ebe638cf0e0585a343acf4", - "sha256:b65db1bbaac9f9f4d190199bb8680af6f6f84fd3769a5ea883df8a91fe68b4c4" + "sha256:71ea07f44df9568a75d0f354c49143a4575d90645e9fead6dfb52c26a85ed13a", + "sha256:840947ebfa8b58f318d42301cf8c0a20fd794a33b61cc4638e28e9e61ba32f42" ], - "version": "==2.2.5" + "version": "==2.3.3" }, "asttokens": { "hashes": [ - "sha256:0e7d99e7221b7b937200383b26620803083d71cc065c967e20c756aaf0acfdaf", - "sha256:55c00658f9e0fa7e031529c719e8bb2cdbad0ad973aaff08faf6bfdaa96ca4ed" - ], - "version": "==1.1.13" - }, - "atomicwrites": { - "hashes": [ - "sha256:03472c30eb2c5d1ba9227e4c2ca66ab8287fbfbbda3888aa93dc2e28fc6811b4", - "sha256:75a9445bac02d8d058d5e1fe689654ba5a6556a1dfd8ce6ec55a0ed79866cfa6" + "sha256:284831ac3e33be743ca6ac018316b66abfd8b1a49d6366ce6c7b1fd07504a21b", + "sha256:f58af645756597143629a4ac1fe78bc670b4429018ad741ac1f4cfd4504fc436" ], - "version": "==1.3.0" + "version": "==2.0.3" }, "attrs": { "hashes": [ - "sha256:69c0dbf2ed392de1cb5ec704444b08a5ef81680a61cb899dc08127123af36a79", - "sha256:f0b870f674851ecbfbbbd364d6b5cbdff9dcedbc7f3f5e18a6891057f21fe399" + "sha256:08a96c641c3a74e44eb59afb61a24f2cb9f4d7188748e76ba4bb5edfa3cb7d1c", + "sha256:f7b7ce16570fe9965acd6d30101a28f62fb4a7f9e926b3bbc9b61f8b04247e72" ], - "version": "==19.1.0" + "version": "==19.3.0" }, "bandit": { "hashes": [ @@ -161,18 +141,18 @@ }, "black": { "hashes": [ - "sha256:09a9dcb7c46ed496a9850b76e4e825d6049ecd38b611f1224857a79bd985a8cf", - "sha256:68950ffd4d9169716bcb8719a56c07a2f4485354fec061cdd5910aa07369731c" + "sha256:1b30e59be925fafc1ee4565e5e08abef6b03fe455102883820fe5ee2e4734e0b", + "sha256:c2edb73a08e9e0e6f65a0e6af18b059b8b1cdd5bef997d7a0b181df93dc81539" ], "index": "pypi", - "version": "==19.3b0" + "version": "==19.10b0" }, "certifi": { "hashes": [ - "sha256:046832c04d4e752f37383b628bc601a7ea7211496b4638f6514d0e5b9acc4939", - "sha256:945e3ba63a0b9f577b1395204e13c3a231f9bc0223888be653286534e5873695" + "sha256:017c25db2a153ce562900032d5bc68e9f191e44e9a0f762f373977de9df1fbb3", + "sha256:25b64c7da4cd7479594d035c08c2d809eb4aab3a26e5a990ea98cc450c320f1f" ], - "version": "==2019.6.16" + "version": "==2019.11.28" }, "chardet": { "hashes": [ @@ -212,49 +192,46 @@ }, "colorama": { "hashes": [ - "sha256:463f8483208e921368c9f306094eb6f725c6ca42b0f97e313cb5d5512459feda", - "sha256:48eb22f4f8461b1df5734a074b57042430fb06e1d61bd1e11b078c0fe6d7a1f1" + "sha256:7d73d2a99753107a36ac6b455ee49046802e59d9d076ef8e47b61499fa29afff", + "sha256:e96da0d330793e2cb9485e9ddfd918d456036c7149416295932478192f4436a1" ], - "version": "==0.3.9" + "version": "==0.4.3" }, "coverage": { "hashes": [ - "sha256:108efa19b676e62590a7a13084098e35183479c0d9608131c20b0921c5a72dc0", - "sha256:16fe3ef881eff27bab287f91dadb4ff0ce4388b9e928d84cbf148a83cc70b3a1", - "sha256:1d0bbc11421827d1100da82ac8dc929532b97ad464038475a0f6505cbf83d6ea", - "sha256:23a8ca5b3c9673f775cc151e85a737f1a967df2ec02b09e8c5a3b606ff2050bf", - "sha256:24b890e51455276762b55cb06fa1c922066e8fc18d1deb1a6399b4d24dfa8ea2", - "sha256:2f0041757ca4801f3c6a74d1660862fdb18a25aea302dd0ce9b067ddbb06b667", - "sha256:3169aba03baddfccdab7cc04cf0878dbf76fc06d300bc35639129a6b794d6484", - "sha256:364fb1bf0f999af2e7f4b1a1e614b2af8c3e0017d11af716aad25f911b7cd0c7", - "sha256:5256856d23f3e45959e7e3a8f9d4cbad3d1613e5660cb8117cd1417798efc395", - "sha256:5b26daa1e1a1147455bf62cd682e504e68f1d1e04235374d50a5248a3c792b1c", - "sha256:60247c8f0c756732e2cfe21f03e6847b923b9a9eaff61f04dc64d3047ec1b669", - "sha256:6463d51507308eb3973340d903537f17ece2ee1e6513aa0c27548fc3a09b0471", - "sha256:64cbadf7a884b299794238bc4391752130e74f71e919993b50c1c431786ef2a2", - "sha256:6de85748ea39ce819ad6d90e660da43964457a1f5cd25262e962a7c7c87945b3", - "sha256:6f95b4794bd84f64aeca25087d8e3abc416aad76842afcac34fa6c3a6f61c62e", - "sha256:778fa184aa3079fa3cbd240e2f5b36771c3382db26bc7bf78aea9d06212c6c66", - "sha256:790a9c5e2dbdf6c41eec9776ed663e99bd36c1604e3bf2e8ae3b123181bfee9f", - "sha256:7d97c1aec0b68b4ea5e3c9edb9fc3f951e8a52360f4bad3aacab9a77defe5b17", - "sha256:93cefddcc0b541d3c52981a232947bf085a38092b0812317f1adb56f02869bcb", - "sha256:95e49867ac616ec63ecd69ea005e65e4b896a48b8db7f9f3ad69f37be29324b7", - "sha256:aca423563eafba66a7c15125391b267befd1e45238de5e1a119ae1fb4ea83b5c", - "sha256:baef7c35e7fce738d9637e9c7a6aa79cb79085e4de49c2ec517ce19239a660f6", - "sha256:c10ccf0797ffce85e93a40aff3a96a3adb63c734f95b59384a7c9522ed25c9e2", - "sha256:ca39704a05bba1886c384a4d7944fda72c53fe5e61979cd933d22084678ad4c1", - "sha256:f6e96d5eee578187f5b7e9266bf646b73de29e2dd7adca8bd83e383680ce1f4c", - "sha256:fc6524511fa664cb4e91401229eedd0dad4ba6ded9c4423fee2f698d78908d9c", - "sha256:fdf2e7e5f074495ad6ea796ca0d245aa6a8b9e4c546ffbf8d30aaaee6601af0f" - ], - "version": "==5.0a6" - }, - "ddt": { - "hashes": [ - "sha256:474546b4020ce8a2f9550ba8899c28aa2c284c7bbf175bddede98be949d1ca7c", - "sha256:d13e6af8f36238e89d00f4ebccf2bda4f6d1878be560a6600689e42077e164e3" - ], - "version": "==1.2.1" + "sha256:15cf13a6896048d6d947bf7d222f36e4809ab926894beb748fc9caa14605d9c3", + "sha256:1daa3eceed220f9fdb80d5ff950dd95112cd27f70d004c7918ca6dfc6c47054c", + "sha256:1e44a022500d944d42f94df76727ba3fc0a5c0b672c358b61067abb88caee7a0", + "sha256:25dbf1110d70bab68a74b4b9d74f30e99b177cde3388e07cc7272f2168bd1477", + "sha256:3230d1003eec018ad4a472d254991e34241e0bbd513e97a29727c7c2f637bd2a", + "sha256:3dbb72eaeea5763676a1a1efd9b427a048c97c39ed92e13336e726117d0b72bf", + "sha256:5012d3b8d5a500834783689a5d2292fe06ec75dc86ee1ccdad04b6f5bf231691", + "sha256:51bc7710b13a2ae0c726f69756cf7ffd4362f4ac36546e243136187cfcc8aa73", + "sha256:527b4f316e6bf7755082a783726da20671a0cc388b786a64417780b90565b987", + "sha256:722e4557c8039aad9592c6a4213db75da08c2cd9945320220634f637251c3894", + "sha256:76e2057e8ffba5472fd28a3a010431fd9e928885ff480cb278877c6e9943cc2e", + "sha256:77afca04240c40450c331fa796b3eab6f1e15c5ecf8bf2b8bee9706cd5452fef", + "sha256:7afad9835e7a651d3551eab18cbc0fdb888f0a6136169fbef0662d9cdc9987cf", + "sha256:9bea19ac2f08672636350f203db89382121c9c2ade85d945953ef3c8cf9d2a68", + "sha256:a8b8ac7876bc3598e43e2603f772d2353d9931709345ad6c1149009fd1bc81b8", + "sha256:b0840b45187699affd4c6588286d429cd79a99d509fe3de0f209594669bb0954", + "sha256:b26aaf69713e5674efbde4d728fb7124e429c9466aeaf5f4a7e9e699b12c9fe2", + "sha256:b63dd43f455ba878e5e9f80ba4f748c0a2156dde6e0e6e690310e24d6e8caf40", + "sha256:be18f4ae5a9e46edae3f329de2191747966a34a3d93046dbdf897319923923bc", + "sha256:c312e57847db2526bc92b9bfa78266bfbaabac3fdcd751df4d062cd4c23e46dc", + "sha256:c60097190fe9dc2b329a0eb03393e2e0829156a589bd732e70794c0dd804258e", + "sha256:c62a2143e1313944bf4a5ab34fd3b4be15367a02e9478b0ce800cb510e3bbb9d", + "sha256:cc1109f54a14d940b8512ee9f1c3975c181bbb200306c6d8b87d93376538782f", + "sha256:cd60f507c125ac0ad83f05803063bed27e50fa903b9c2cfee3f8a6867ca600fc", + "sha256:d513cc3db248e566e07a0da99c230aca3556d9b09ed02f420664e2da97eac301", + "sha256:d649dc0bcace6fcdb446ae02b98798a856593b19b637c1b9af8edadf2b150bea", + "sha256:d7008a6796095a79544f4da1ee49418901961c97ca9e9d44904205ff7d6aa8cb", + "sha256:da93027835164b8223e8e5af2cf902a4c80ed93cb0909417234f4a9df3bcd9af", + "sha256:e69215621707119c6baf99bda014a45b999d37602cb7043d943c76a59b05bf52", + "sha256:ea9525e0fef2de9208250d6c5aeeee0138921057cd67fcef90fbed49c4d62d37", + "sha256:fca1669d464f0c9831fd10be2eef6b86f5ebd76c724d1e0706ebdff86bb4adf0" + ], + "version": "==5.0.3" }, "entrypoints": { "hashes": [ @@ -265,17 +242,17 @@ }, "executing": { "hashes": [ - "sha256:41588d9f8e0ebf6333b37da4f944ac22ba7cb3545ab47612d3ba1722f1fdb0b4" + "sha256:b180cd26e6bc23305a20a7cbd228a6bab94ae359e0a304dfc58425e3b0bdf6be" ], - "version": "==0.2.0" + "version": "==0.4.1" }, "flake8": { "hashes": [ - "sha256:19241c1cbc971b9962473e4438a2ca19749a7dd002dd1a946eaba171b4114548", - "sha256:8e9dfa3cecb2400b3738a42c54c3043e821682b9c840b0448c0503f781130696" + "sha256:45681a117ecc81e870cbf1262835ae4af5e7a8b08e40b944a8a6e6b895914cfb", + "sha256:49356e766643ad15072a789a20915d3c91dc89fd313ccd71802303fd67e4deca" ], "index": "pypi", - "version": "==3.7.8" + "version": "==3.7.9" }, "flake8-polyfill": { "hashes": [ @@ -284,20 +261,26 @@ ], "version": "==1.0.2" }, + "future": { + "hashes": [ + "sha256:b1bead90b70cf6ec3f0710ae53a525360fa360d306a86583adc6bf83a4db537d" + ], + "version": "==0.18.2" + }, "gitdb2": { "hashes": [ - "sha256:83361131a1836661a155172932a13c08bda2db3674e4caa32368aa6eb02f38c2", - "sha256:e3a0141c5f2a3f635c7209d56c496ebe1ad35da82fe4d3ec4aaa36278d70648a" + "sha256:1b6df1433567a51a4a9c1a5a0de977aa351a405cc56d7d35f3388bad1f630350", + "sha256:96bbb507d765a7f51eb802554a9cfe194a174582f772e0d89f4e87288c288b7b" ], - "version": "==2.0.5" + "version": "==2.0.6" }, "gitpython": { "hashes": [ - "sha256:259a8b6d6a4a118738c4a65fa990f8c8c91525bb43970aed2868952ebb86ceb8", - "sha256:73aa7b59e58dd3435121421c33c284e5ef51bc7b2f4373e1a1e4cc06e9c928ec" + "sha256:9c2398ffc3dcb3c40b27324b316f08a4f93ad646d5a6328cafbb871aa79f5e42", + "sha256:c155c6a2653593ccb300462f6ef533583a913e17857cfef8fc617c246b6dc245" ], "index": "pypi", - "version": "==3.0.1" + "version": "==3.0.5" }, "greenlet": { "hashes": [ @@ -332,11 +315,11 @@ }, "importlib-metadata": { "hashes": [ - "sha256:23d3d873e008a513952355379d93cbcab874c58f4f034ff657c7a87422fa64e8", - "sha256:80d2de76188eabfbfcf27e6a37342c2827801e59c4cc14b0371c56fed43820e3" + "sha256:bdd9b7c397c273bcc9a11d6629a38487cd07154fa255a467bf704cd2c258e359", + "sha256:f17c015735e1a88296994c0697ecea7e11db24290941983b08c9feb30921e6d8" ], "markers": "python_version < '3.8'", - "version": "==0.19" + "version": "==1.4.0" }, "isort": { "hashes": [ @@ -347,26 +330,29 @@ }, "lazy-object-proxy": { "hashes": [ - "sha256:159a745e61422217881c4de71f9eafd9d703b93af95618635849fe469a283661", - "sha256:23f63c0821cc96a23332e45dfaa83266feff8adc72b9bcaef86c202af765244f", - "sha256:3b11be575475db2e8a6e11215f5aa95b9ec14de658628776e10d96fa0b4dac13", - "sha256:3f447aff8bc61ca8b42b73304f6a44fa0d915487de144652816f950a3f1ab821", - "sha256:4ba73f6089cd9b9478bc0a4fa807b47dbdb8fad1d8f31a0f0a5dbf26a4527a71", - "sha256:4f53eadd9932055eac465bd3ca1bd610e4d7141e1278012bd1f28646aebc1d0e", - "sha256:64483bd7154580158ea90de5b8e5e6fc29a16a9b4db24f10193f0c1ae3f9d1ea", - "sha256:6f72d42b0d04bfee2397aa1862262654b56922c20a9bb66bb76b6f0e5e4f9229", - "sha256:7c7f1ec07b227bdc561299fa2328e85000f90179a2f44ea30579d38e037cb3d4", - "sha256:7c8b1ba1e15c10b13cad4171cfa77f5bb5ec2580abc5a353907780805ebe158e", - "sha256:8559b94b823f85342e10d3d9ca4ba5478168e1ac5658a8a2f18c991ba9c52c20", - "sha256:a262c7dfb046f00e12a2bdd1bafaed2408114a89ac414b0af8755c696eb3fc16", - "sha256:acce4e3267610c4fdb6632b3886fe3f2f7dd641158a843cf6b6a68e4ce81477b", - "sha256:be089bb6b83fac7f29d357b2dc4cf2b8eb8d98fe9d9ff89f9ea6012970a853c7", - "sha256:bfab710d859c779f273cc48fb86af38d6e9210f38287df0069a63e40b45a2f5c", - "sha256:c10d29019927301d524a22ced72706380de7cfc50f767217485a912b4c8bd82a", - "sha256:dd6e2b598849b3d7aee2295ac765a578879830fb8966f70be8cd472e6069932e", - "sha256:e408f1eacc0a68fed0c08da45f31d0ebb38079f043328dce69ff133b95c29dc1" + "sha256:0c4b206227a8097f05c4dbdd323c50edf81f15db3b8dc064d08c62d37e1a504d", + "sha256:194d092e6f246b906e8f70884e620e459fc54db3259e60cf69a4d66c3fda3449", + "sha256:1be7e4c9f96948003609aa6c974ae59830a6baecc5376c25c92d7d697e684c08", + "sha256:4677f594e474c91da97f489fea5b7daa17b5517190899cf213697e48d3902f5a", + "sha256:48dab84ebd4831077b150572aec802f303117c8cc5c871e182447281ebf3ac50", + "sha256:5541cada25cd173702dbd99f8e22434105456314462326f06dba3e180f203dfd", + "sha256:59f79fef100b09564bc2df42ea2d8d21a64fdcda64979c0fa3db7bdaabaf6239", + "sha256:8d859b89baf8ef7f8bc6b00aa20316483d67f0b1cbf422f5b4dc56701c8f2ffb", + "sha256:9254f4358b9b541e3441b007a0ea0764b9d056afdeafc1a5569eee1cc6c1b9ea", + "sha256:9651375199045a358eb6741df3e02a651e0330be090b3bc79f6d0de31a80ec3e", + "sha256:97bb5884f6f1cdce0099f86b907aa41c970c3c672ac8b9c8352789e103cf3156", + "sha256:9b15f3f4c0f35727d3a0fba4b770b3c4ebbb1fa907dbcc046a1d2799f3edd142", + "sha256:a2238e9d1bb71a56cd710611a1614d1194dc10a175c1e08d75e1a7bcc250d442", + "sha256:a6ae12d08c0bf9909ce12385803a543bfe99b95fe01e752536a60af2b7797c62", + "sha256:ca0a928a3ddbc5725be2dd1cf895ec0a254798915fb3a36af0964a0a4149e3db", + "sha256:cb2c7c57005a6804ab66f106ceb8482da55f5314b7fcb06551db1edae4ad1531", + "sha256:d74bb8693bf9cf75ac3b47a54d716bbb1a92648d5f781fc799347cfc95952383", + "sha256:d945239a5639b3ff35b70a88c5f2f491913eb94871780ebfabb2568bd58afc5a", + "sha256:eba7011090323c1dadf18b3b689845fd96a61ba0a1dfbd7f24b921398affc357", + "sha256:efa1909120ce98bbb3777e8b6f92237f5d5c8ea6758efea36a473e1d38f7d3e4", + "sha256:f3900e8a5de27447acbf900b4750b0ddfd7ec1ea7fbaf11dfa911141bc522af0" ], - "version": "==1.4.1" + "version": "==1.4.3" }, "mando": { "hashes": [ @@ -384,32 +370,24 @@ }, "more-itertools": { "hashes": [ - "sha256:409cd48d4db7052af495b09dec721011634af3753ae1ef92d2b32f73a745f832", - "sha256:92b8c4b06dac4f0611c0729b2f2ede52b2e1bac1ab48f089c7ddc12e26bb60c4" + "sha256:1a2a32c72400d365000412fe08eb4a24ebee89997c18d3d147544f70f5403b39", + "sha256:c468adec578380b6281a114cb8a5db34eb1116277da92d7c46f904f0b52d3288" ], - "version": "==7.2.0" + "version": "==8.1.0" }, "msgpack": { "hashes": [ - "sha256:26cb40116111c232bc235ce131cc3b4e76549088cb154e66a2eb8ff6fcc907ec", - "sha256:300fd3f2c664a3bf473d6a952f843b4a71454f4c592ed7e74a36b205c1782d28", - "sha256:3129c355342853007de4a2a86e75eab966119733eb15748819b6554363d4e85c", - "sha256:31f6d645ee5a97d59d3263fab9e6be76f69fa131cddc0d94091a3c8aca30d67a", - "sha256:3ce7ef7ee2546c3903ca8c934d09250531b80c6127e6478781ae31ed835aac4c", - "sha256:4008c72f5ef2b7936447dcb83db41d97e9791c83221be13d5e19db0796df1972", - "sha256:62bd8e43d204580308d477a157b78d3fee2fb4c15d32578108dc5d89866036c8", - "sha256:70cebfe08fb32f83051971264466eadf183101e335d8107b80002e632f425511", - "sha256:72cb7cf85e9df5251abd7b61a1af1fb77add15f40fa7328e924a9c0b6bc7a533", - "sha256:7c55649965c35eb32c499d17dadfb8f53358b961582846e1bc06f66b9bccc556", - "sha256:86b963a5de11336ec26bc4f839327673c9796b398b9f1fe6bb6150c2a5d00f0f", - "sha256:8c73c9bcdfb526247c5e4f4f6cf581b9bb86b388df82cfcaffde0a6e7bf3b43a", - "sha256:8e68c76c6aff4849089962d25346d6784d38e02baa23ffa513cf46be72e3a540", - "sha256:97ac6b867a8f63debc64f44efdc695109d541ecc361ee2dce2c8884ab37360a1", - "sha256:9d4f546af72aa001241d74a79caec278bcc007b4bcde4099994732e98012c858", - "sha256:a28e69fe5468c9f5251c7e4e7232286d71b7dfadc74f312006ebe984433e9746", - "sha256:fd509d4aa95404ce8d86b4e32ce66d5d706fd6646c205e1c2a715d87078683a2" + "sha256:27d4950bb1ce5ce6f95f8e1c36e789ac44f4c5662d9d8eaac88dae83dfdccd25", + "sha256:315c9d398359d6e41278f7b9882efe0f26ae469ec5d9c85e06a81d0f6c589f1c", + "sha256:4e1bc8e65425999b3231205d94c7bfc9d9a73c7e1032fccb3d90e77a9d01cc1e", + "sha256:a5c8bb6967d838a0f0ad689b09f54c75230f877a3b240001663a970a12c976b2", + "sha256:ac47b8cef1a5838de5f20e0e44d174d79e4b77b5678252c8fc795bf44bcd6150", + "sha256:ae65c7060c7d08aca19cac8fe7650443970478c3ec392daa612d6eb2ee5f77d4", + "sha256:bc17fccdf8f1bc61cfca1ef8de549ce52f6f78a9c99b948d7c822595f8288a5a", + "sha256:d41306262d677d755bde2300ecccbccbe0aec022eb6faea8d8df550f02fb20c4", + "sha256:d715bd7e8f6e1488f2ad195719de8af24ab3bf0f394873a4f74579468243d014" ], - "version": "==0.6.1" + "version": "==1.0.0rc1" }, "neovim": { "hashes": [ @@ -420,31 +398,38 @@ }, "packaging": { "hashes": [ - "sha256:a7ac867b97fdc07ee80a8058fe4435ccd274ecc3b0ed61d852d7d53055528cf9", - "sha256:c491ca87294da7cc01902edbe30a5bc6c4c28172b5138ab4e4aa1b9d7bfaeafe" + "sha256:aec3fdbb8bc9e4bb65f0634b9f551ced63983a529d6a8931817d52fdd0816ddb", + "sha256:fe1d8331dfa7cc0a883b49d75fc76380b2ab2734b220fbb87d774e4fd4b851f8" + ], + "version": "==20.0" + }, + "pathspec": { + "hashes": [ + "sha256:163b0632d4e31cef212976cf57b43d9fd6b0bac6e67c26015d611a647d5e7424", + "sha256:562aa70af2e0d434367d9790ad37aed893de47f1693e4201fd1d3dca15d19b96" ], - "version": "==19.1" + "version": "==0.7.0" }, "pbr": { "hashes": [ - "sha256:56e52299170b9492513c64be44736d27a512fa7e606f21942160b68ce510b4bc", - "sha256:9b321c204a88d8ab5082699469f52cc94c5da45c51f114113d01b3d993c24cdf" + "sha256:139d2625547dbfa5fb0b81daebb39601c478c21956dc57e2e07b74450a8c506b", + "sha256:61aa52a0f18b71c5cc58232d2cf8f8d09cd67fcad60b742a60124cb8d6951488" ], - "version": "==5.4.2" + "version": "==5.4.4" }, "pluggy": { "hashes": [ - "sha256:0825a152ac059776623854c1543d65a4ad408eb3d33ee114dff91e57ec6ae6fc", - "sha256:b9817417e95936bf75d85d3f8767f7df6cdde751fc40aed3bb3074cbcb77757c" + "sha256:15b2acde666561e1298d71b523007ed7364de07029219b604cf808bfa1c765b0", + "sha256:966c145cd83c96502c3c3868f50408687b38434af77734af1e9ca461a4081d2d" ], - "version": "==0.12.0" + "version": "==0.13.1" }, "py": { "hashes": [ - "sha256:64f65755aee5b381cea27766a3a147c3f15b9b6b9ac88676de66ba2ae36793fa", - "sha256:dc639b046a6e2cff5bbe40194ad65936d6ba360b52b3c3fe1d08a82dd50b5e53" + "sha256:5e27081401262157467ad6e7f851b7aa402c5852dbcb3dae06768434de5752aa", + "sha256:c20fdd83a5dbc0af9efd622bee9a5564e278f6380fffcacc43ba6f43db2813b0" ], - "version": "==1.8.0" + "version": "==1.8.1" }, "pycodestyle": { "hashes": [ @@ -455,11 +440,11 @@ }, "pydocstyle": { "hashes": [ - "sha256:04c84e034ebb56eb6396c820442b8c4499ac5eb94a3bda88951ac3dc519b6058", - "sha256:66aff87ffe34b1e49bff2dd03a88ce6843be2f3346b0c9814410d34987fbab59" + "sha256:da7831660b7355307b32778c4a0dbfb137d89254ef31a2b2978f50fc0b4d7586", + "sha256:f4f5d210610c2d153fae39093d44224c17429e2ad7da12a8b419aba5c2f614b5" ], "index": "pypi", - "version": "==4.0.1" + "version": "==5.0.2" }, "pyflakes": { "hashes": [ @@ -470,47 +455,47 @@ }, "pygments": { "hashes": [ - "sha256:71e430bc85c88a430f000ac1d9b331d2407f681d6f6aec95e8bcfbc3df5b0127", - "sha256:881c4c157e45f30af185c1ffe8d549d48ac9127433f2c380c24b84572ad66297" + "sha256:2a3fe295e54a20164a9df49c75fa58526d3be48e14aceba6d6b1e8ac0bfd6f1b", + "sha256:98c8aa5a9f778fcd1026a17361ddaf7330d1b7c62ae97c3bb0ae73e0b9b6b0fe" ], - "version": "==2.4.2" + "version": "==2.5.2" }, "pylint": { "hashes": [ - "sha256:5d77031694a5fb97ea95e828c8d10fc770a1df6eb3906067aaed42201a8a6a09", - "sha256:723e3db49555abaf9bf79dc474c6b9e2935ad82230b10c1138a71ea41ac0fff1" + "sha256:3db5468ad013380e987410a8d6956226963aed94ecb5f9d3a28acca6d9ac36cd", + "sha256:886e6afc935ea2590b462664b161ca9a5e40168ea99e5300935f6591ad467df4" ], "index": "pypi", - "version": "==2.3.1" + "version": "==2.4.4" }, "pynvim": { "hashes": [ - "sha256:cf6490c4e586c9da01a32f3e0ae21c61342d7ea171e06025bda210bdc95cbe05" + "sha256:71fd8bb3285deeda8c259383066214e0d522a96bfb3ca4871333adfcb454e9d6" ], - "version": "==0.3.2" + "version": "==0.4.0" }, "pyparsing": { "hashes": [ - "sha256:6f98a7b9397e206d78cc01df10131398f1c8b8510a2f4d97d9abd82e1aacdd80", - "sha256:d9338df12903bbf5d65a0e4e87c2161968b10d2e489652bb47001d82a9b028b4" + "sha256:4c830582a84fb022400b85429791bc551f1f4871c33f23e44f353119e92f969f", + "sha256:c342dccb5250c08d45fd6f8b4a559613ca603b57498511740e65cd11a2e7dcec" ], - "version": "==2.4.2" + "version": "==2.4.6" }, "pytest": { "hashes": [ - "sha256:95b1f6db806e5b1b5b443efeb58984c24945508f93a866c1719e1a507a957d7c", - "sha256:c3d5020755f70c82eceda3feaf556af9a341334414a8eca521a18f463bcead88" + "sha256:9f8d44f4722b3d06b41afaeb8d177cfbe0700f8351b1fc755dd27eedaa3eb9e0", + "sha256:f5d3d0e07333119fe7d4af4ce122362dc4053cdd34a71d2766290cf5369c64ad" ], "index": "pypi", - "version": "==5.1.1" + "version": "==5.3.3" }, "pytest-cov": { "hashes": [ - "sha256:2b097cde81a302e1047331b48cadacf23577e431b61e9c6f49a1170bbe3d3da6", - "sha256:e00ea4fdde970725482f1f35630d12f074e121a23801aabf2ae154ec6bdd343a" + "sha256:cc6742d8bac45070217169f5f72ceee1e0e55b0221f54bcf24845972d3a47f2b", + "sha256:cdbdef4f870408ebdbfeb44e63e07eb18bb4619fae852f6e760645fa36172626" ], "index": "pypi", - "version": "==2.7.1" + "version": "==2.8.1" }, "pytest-sugar": { "hashes": [ @@ -522,21 +507,53 @@ }, "pyyaml": { "hashes": [ - "sha256:254bf6fda2b7c651837acb2c718e213df29d531eebf00edb54743d10bcb694eb", - "sha256:3108529b78577327d15eec243f0ff348a0640b0c3478d67ad7f5648f93bac3e2", - "sha256:3c17fb92c8ba2f525e4b5f7941d850e7a48c3a59b32d331e2502a3cdc6648e76", - "sha256:8d6d96001aa7f0a6a4a95e8143225b5d06e41b1131044913fecb8f85a125714b", - "sha256:c8a88edd93ee29ede719080b2be6cb2333dfee1dccba213b422a9c8e97f2967b" + "sha256:059b2ee3194d718896c0ad077dd8c043e5e909d9180f387ce42012662a4946d6", + "sha256:1cf708e2ac57f3aabc87405f04b86354f66799c8e62c28c5fc5f88b5521b2dbf", + "sha256:24521fa2890642614558b492b473bee0ac1f8057a7263156b02e8b14c88ce6f5", + "sha256:4fee71aa5bc6ed9d5f116327c04273e25ae31a3020386916905767ec4fc5317e", + "sha256:70024e02197337533eef7b85b068212420f950319cc8c580261963aefc75f811", + "sha256:74782fbd4d4f87ff04159e986886931456a1894c61229be9eaf4de6f6e44b99e", + "sha256:940532b111b1952befd7db542c370887a8611660d2b9becff75d39355303d82d", + "sha256:cb1f2f5e426dc9f07a7681419fe39cee823bb74f723f36f70399123f439e9b20", + "sha256:dbbb2379c19ed6042e8f11f2a2c66d39cceb8aeace421bfc29d085d93eda3689", + "sha256:e3a057b7a64f1222b56e47bcff5e4b94c4f61faac04c7c4ecb1985e18caa3994", + "sha256:e9f45bd5b92c7974e59bcd2dcc8631a6b6cc380a904725fce7bc08872e691615" ], - "version": "==4.2b4" + "version": "==5.3" }, "radon": { "hashes": [ - "sha256:38e495a4aa4c1d7293d3c1733393961fb52209c9bc2d75163c3ba8124d8bbbaa", - "sha256:f893f2faa632a060f6d0f01843d10a0395515bde865c759c0dd3f15239caf11b" + "sha256:20f799949e42e6899bc9304539de222d3bdaeec276f38fbd4034859ccd548b46", + "sha256:32ac2f86bfacbddade5c79f0e927e97f90a5cda5b86f880511dd849c4a0096e3" ], "index": "pypi", - "version": "==2.4.0" + "version": "==4.0.0" + }, + "regex": { + "hashes": [ + "sha256:07b39bf943d3d2fe63d46281d8504f8df0ff3fe4c57e13d1656737950e53e525", + "sha256:0932941cdfb3afcbc26cc3bcf7c3f3d73d5a9b9c56955d432dbf8bbc147d4c5b", + "sha256:0e182d2f097ea8549a249040922fa2b92ae28be4be4895933e369a525ba36576", + "sha256:10671601ee06cf4dc1bc0b4805309040bb34c9af423c12c379c83d7895622bb5", + "sha256:23e2c2c0ff50f44877f64780b815b8fd2e003cda9ce817a7fd00dea5600c84a0", + "sha256:26ff99c980f53b3191d8931b199b29d6787c059f2e029b2b0c694343b1708c35", + "sha256:27429b8d74ba683484a06b260b7bb00f312e7c757792628ea251afdbf1434003", + "sha256:3e77409b678b21a056415da3a56abfd7c3ad03da71f3051bbcdb68cf44d3c34d", + "sha256:4e8f02d3d72ca94efc8396f8036c0d3bcc812aefc28ec70f35bb888c74a25161", + "sha256:4eae742636aec40cf7ab98171ab9400393360b97e8f9da67b1867a9ee0889b26", + "sha256:6a6ae17bf8f2d82d1e8858a47757ce389b880083c4ff2498dba17c56e6c103b9", + "sha256:6a6ba91b94427cd49cd27764679024b14a96874e0dc638ae6bdd4b1a3ce97be1", + "sha256:7bcd322935377abcc79bfe5b63c44abd0b29387f267791d566bbb566edfdd146", + "sha256:98b8ed7bb2155e2cbb8b76f627b2fd12cf4b22ab6e14873e8641f266e0fb6d8f", + "sha256:bd25bb7980917e4e70ccccd7e3b5740614f1c408a642c245019cff9d7d1b6149", + "sha256:d0f424328f9822b0323b3b6f2e4b9c90960b24743d220763c7f07071e0778351", + "sha256:d58e4606da2a41659c84baeb3cfa2e4c87a74cec89a1e7c56bee4b956f9d7461", + "sha256:e3cd21cc2840ca67de0bbe4071f79f031c81418deb544ceda93ad75ca1ee9f7b", + "sha256:e6c02171d62ed6972ca8631f6f34fa3281d51db8b326ee397b9c83093a6b7242", + "sha256:e7c7661f7276507bce416eaae22040fd91ca471b5b33c13f8ff21137ed6f248c", + "sha256:ecc6de77df3ef68fee966bb8cb4e067e84d4d1f397d0ef6fce46913663540d77" + ], + "version": "==2020.1.8" }, "requests": { "hashes": [ @@ -548,11 +565,11 @@ }, "six": { "hashes": [ - "sha256:3350809f0555b11f552448330d0b52d5f24c91a322ea4a15ef22629740f3761c", - "sha256:d16a0141ec1a18405cd4ce8b4613101da75da0e9a7aec5bdd4fa804d0e0eba73" + "sha256:236bdbdce46e6e6a3d61a337c0f8b763ca1e8717c03b369e87a7ec7ce1319c0a", + "sha256:8f3cd2e254d8f793e7f3d6d9df77b92252b52637291d0f0da013c76ea2724b6c" ], "index": "pypi", - "version": "==1.12.0" + "version": "==1.14.0" }, "smmap2": { "hashes": [ @@ -563,23 +580,24 @@ }, "snoop": { "hashes": [ - "sha256:2a55c9b65dfcab471b3dea56efe634ed2d25df80a8109e86587afa9fb56aab9f" + "sha256:89a60f95fac717cd7e4af7674478c6c31d33e40a159452a6db7c609993e535c9" ], "index": "pypi", - "version": "==0.2.1" + "version": "==0.2.4" }, "snowballstemmer": { "hashes": [ - "sha256:9f3b9ffe0809d174f7047e121431acf99c89a7040f0ca84f94ba53a498e6d0c9" + "sha256:209f257d7533fdb3cb73bdbd24f436239ca3b2fa67d56f6ff88e86be08cc5ef0", + "sha256:df3bac3df4c2c01363f3dd2cfa78cce2840a79b9f1c2d2de9ce8d31683992f52" ], - "version": "==1.9.0" + "version": "==2.0.0" }, "stevedore": { "hashes": [ - "sha256:7be098ff53d87f23d798a7ce7ae5c31f094f3deb92ba18059b1aeb1ca9fec0a0", - "sha256:7d1ce610a87d26f53c087da61f06f9b7f7e552efad2a7f6d2322632b5f932ea2" + "sha256:01d9f4beecf0fbd070ddb18e5efb10567801ba7ef3ddab0074f54e3cd4e91730", + "sha256:e0739f9739a681c7a1fda76a102b65295e96a144ccdb552f2ae03c5f0abe8a14" ], - "version": "==1.30.1" + "version": "==1.31.0" }, "termcolor": { "hashes": [ @@ -596,38 +614,44 @@ }, "typed-ast": { "hashes": [ - "sha256:18511a0b3e7922276346bcb47e2ef9f38fb90fd31cb9223eed42c85d1312344e", - "sha256:262c247a82d005e43b5b7f69aff746370538e176131c32dda9cb0f324d27141e", - "sha256:2b907eb046d049bcd9892e3076c7a6456c93a25bebfe554e931620c90e6a25b0", - "sha256:354c16e5babd09f5cb0ee000d54cfa38401d8b8891eefa878ac772f827181a3c", - "sha256:4e0b70c6fc4d010f8107726af5fd37921b666f5b31d9331f0bd24ad9a088e631", - "sha256:630968c5cdee51a11c05a30453f8cd65e0cc1d2ad0d9192819df9978984529f4", - "sha256:66480f95b8167c9c5c5c87f32cf437d585937970f3fc24386f313a4c97b44e34", - "sha256:71211d26ffd12d63a83e079ff258ac9d56a1376a25bc80b1cdcdf601b855b90b", - "sha256:95bd11af7eafc16e829af2d3df510cecfd4387f6453355188342c3e79a2ec87a", - "sha256:bc6c7d3fa1325a0c6613512a093bc2a2a15aeec350451cbdf9e1d4bffe3e3233", - "sha256:cc34a6f5b426748a507dd5d1de4c1978f2eb5626d51326e43280941206c209e1", - "sha256:d755f03c1e4a51e9b24d899561fec4ccaf51f210d52abdf8c07ee2849b212a36", - "sha256:d7c45933b1bdfaf9f36c579671fec15d25b06c8398f113dab64c18ed1adda01d", - "sha256:d896919306dd0aa22d0132f62a1b78d11aaf4c9fc5b3410d3c666b818191630a", - "sha256:ffde2fbfad571af120fcbfbbc61c72469e72f550d676c3342492a9dfdefb8f12" - ], - "markers": "implementation_name == 'cpython'", - "version": "==1.4.0" + "sha256:0666aa36131496aed8f7be0410ff974562ab7eeac11ef351def9ea6fa28f6355", + "sha256:0c2c07682d61a629b68433afb159376e24e5b2fd4641d35424e462169c0a7919", + "sha256:249862707802d40f7f29f6e1aad8d84b5aa9e44552d2cc17384b209f091276aa", + "sha256:24995c843eb0ad11a4527b026b4dde3da70e1f2d8806c99b7b4a7cf491612652", + "sha256:269151951236b0f9a6f04015a9004084a5ab0d5f19b57de779f908621e7d8b75", + "sha256:4083861b0aa07990b619bd7ddc365eb7fa4b817e99cf5f8d9cf21a42780f6e01", + "sha256:498b0f36cc7054c1fead3d7fc59d2150f4d5c6c56ba7fb150c013fbc683a8d2d", + "sha256:4e3e5da80ccbebfff202a67bf900d081906c358ccc3d5e3c8aea42fdfdfd51c1", + "sha256:6daac9731f172c2a22ade6ed0c00197ee7cc1221aa84cfdf9c31defeb059a907", + "sha256:715ff2f2df46121071622063fc7543d9b1fd19ebfc4f5c8895af64a77a8c852c", + "sha256:73d785a950fc82dd2a25897d525d003f6378d1cb23ab305578394694202a58c3", + "sha256:8c8aaad94455178e3187ab22c8b01a3837f8ee50e09cf31f1ba129eb293ec30b", + "sha256:8ce678dbaf790dbdb3eba24056d5364fb45944f33553dd5869b7580cdbb83614", + "sha256:aaee9905aee35ba5905cfb3c62f3e83b3bec7b39413f0a7f19be4e547ea01ebb", + "sha256:bcd3b13b56ea479b3650b82cabd6b5343a625b0ced5429e4ccad28a8973f301b", + "sha256:c9e348e02e4d2b4a8b2eedb48210430658df6951fa484e59de33ff773fbd4b41", + "sha256:d205b1b46085271b4e15f670058ce182bd1199e56b317bf2ec004b6a44f911f6", + "sha256:d43943ef777f9a1c42bf4e552ba23ac77a6351de620aa9acf64ad54933ad4d34", + "sha256:d5d33e9e7af3b34a40dc05f498939f0ebf187f07c385fd58d591c533ad8562fe", + "sha256:fc0fea399acb12edbf8a628ba8d2312f583bdbdb3335635db062fa98cf71fca4", + "sha256:fe460b922ec15dd205595c9b5b99e2f056fd98ae8f9f56b888e7a17dc2b757e7" + ], + "markers": "implementation_name == 'cpython' and python_version < '3.8'", + "version": "==1.4.1" }, "urllib3": { "hashes": [ - "sha256:b246607a25ac80bedac05c6f282e3cdaf3afb65420fd024ac94435cabe6e18d1", - "sha256:dbe59173209418ae49d485b87d1681aefa36252ee85884c31346debd19463232" + "sha256:a8a318824cc77d1fd4b2bec2ded92646630d7fe8619497b142c84a9e6f5a7293", + "sha256:f3c5fd51747d450d4dcf6f923c81f78f811aab8205fda64b0aba34a4e48b0745" ], - "version": "==1.25.3" + "version": "==1.25.7" }, "wcwidth": { "hashes": [ - "sha256:3df37372226d6e63e1b1e1eda15c594bca98a22d33a23832a90998faa96bc65e", - "sha256:f4ebe71925af7b40a864553f761ed559b43544f8f71746c2d756c7fe788ade7c" + "sha256:8fd29383f539be45b20bd4df0dc29c20ba48654a41e661925e612311e9f3c603", + "sha256:f28b3e8a6483e5d49e7f8949ac1a78314e740333ae305b4ba5defd3e74fb37a8" ], - "version": "==0.1.7" + "version": "==0.1.8" }, "wrapt": { "hashes": [ @@ -637,18 +661,18 @@ }, "xenon": { "hashes": [ - "sha256:26f65adb5d411ba3efc361dc5ab6cd341a243a33b5a526c89350240c765899b9", - "sha256:ff4bbecf0da99a7f60033e5e9616e28eb2a52d78dc154d90736f8c0124ec3e76" + "sha256:5e6433c9297d965bf666256a0a030b6e13660ab87680220c4eb07241f101625b", + "sha256:83e98f67b7077c95c25c3402aea6203dd2ed6256708b76ed9751e9dbf1aba125" ], "index": "pypi", - "version": "==0.5.5" + "version": "==0.7.0" }, "zipp": { "hashes": [ - "sha256:4970c3758f4e89a7857a973b1e2a5d75bcdc47794442f2e2dd4fe8e0466e809a", - "sha256:8a5712cfd3bb4248015eb3b0b3c54a5f6ee3f2425963ef2a0125b8bc40aafaec" + "sha256:57147f6b0403b59f33fd357f169f860e031303415aeb7d04ede4839d23905ab8", + "sha256:7ae5ccaca427bafa9760ac3cd8f8c244bfc259794b5b6bb9db4dda2241575d09" ], - "version": "==0.5.2" + "version": "==2.0.0" } } } diff --git a/README.md b/README.md index 5e9638610..ec189cc97 100644 --- a/README.md +++ b/README.md @@ -207,7 +207,7 @@ Want to learn about our linting checks? Check us out on our website, descriptions of our linting checks and more! To get an idea of the linting checks we offer, here is a quick list: -1. ConfirmFileExists +1. ConfirmFileExists 2. CountCommandOutput diff --git a/gator/invoke.py b/gator/invoke.py index 84f18285a..05b17e04a 100644 --- a/gator/invoke.py +++ b/gator/invoke.py @@ -93,7 +93,11 @@ def invoke_all_comment_checks( if comment_type == constants.comments.Single_Line: # check comments in Java if language == constants.languages.Java: - met_or_exceeded_count, actual_count, comment_count_details = entities.entity_greater_than_count( + ( + met_or_exceeded_count, + actual_count, + comment_count_details, + ) = entities.entity_greater_than_count( filecheck, directory, expected_count, @@ -102,7 +106,11 @@ def invoke_all_comment_checks( ) # check comments in Python if language == constants.languages.Python: - met_or_exceeded_count, actual_count, comment_count_details = entities.entity_greater_than_count( + ( + met_or_exceeded_count, + actual_count, + comment_count_details, + ) = entities.entity_greater_than_count( filecheck, directory, expected_count, @@ -113,7 +121,11 @@ def invoke_all_comment_checks( elif comment_type == constants.comments.Multiple_Line: # check comments in Java if language == constants.languages.Java: - met_or_exceeded_count, actual_count, comment_count_details = entities.entity_greater_than_count( + ( + met_or_exceeded_count, + actual_count, + comment_count_details, + ) = entities.entity_greater_than_count( filecheck, directory, expected_count, @@ -122,7 +134,11 @@ def invoke_all_comment_checks( ) # check comments in Python if language == constants.languages.Python: - met_or_exceeded_count, actual_count, comment_count_details = entities.entity_greater_than_count( + ( + met_or_exceeded_count, + actual_count, + comment_count_details, + ) = entities.entity_greater_than_count( filecheck, directory, expected_count, @@ -213,7 +229,11 @@ def invoke_all_comment_checks( def invoke_all_paragraph_checks(filecheck, directory, expected_count, exact=False): """Perform the paragraph check and return the results.""" met_or_exceeded_count = 0 - met_or_exceeded_count, actual_count, actual_count_dictionary = entities.entity_greater_than_count( + ( + met_or_exceeded_count, + actual_count, + actual_count_dictionary, + ) = entities.entity_greater_than_count( filecheck, directory, expected_count, fragments.count_paragraphs, exact ) # create the message and the diagnostic @@ -266,7 +286,11 @@ def invoke_all_minimum_word_count_checks( ): """Perform the word count check and return the results.""" met_or_exceeded_count = 0 - met_or_exceeded_count, actual_count, actual_count_dictionary = entities.entity_greater_than_count( + ( + met_or_exceeded_count, + actual_count, + actual_count_dictionary, + ) = entities.entity_greater_than_count( filecheck, directory, expected_count, count_function, exact ) # create the message and the diagnostic @@ -346,7 +370,11 @@ def invoke_all_total_word_count_checks( ): """Perform the word count check and return the results.""" met_or_exceeded_count = False - met_or_exceeded_count, actual_count, actual_count_dictionary = entities.entity_greater_than_count_total( + ( + met_or_exceeded_count, + actual_count, + actual_count_dictionary, + ) = entities.entity_greater_than_count_total( filecheck, directory, expected_count, count_function, exact ) met_or_exceeded_count = util.greater_than_equal_exacted( @@ -431,7 +459,11 @@ def invoke_all_fragment_checks( ): """Perform the check for a fragment existence in file or contents and return the results.""" met_or_exceeded_count = 0 - met_or_exceeded_count, actual_count, actual_count_dictionary = fragments.specified_entity_greater_than_count( + ( + met_or_exceeded_count, + actual_count, + actual_count_dictionary, + ) = fragments.specified_entity_greater_than_count( fragment, fragments.count_specified_fragment, expected_count, @@ -526,7 +558,11 @@ def invoke_all_regex_checks( ): """Perform the check for a regex existence in file or contents and return the results.""" met_or_exceeded_count = 0 - met_or_exceeded_count, actual_count, actual_count_dictionary = fragments.specified_entity_greater_than_count( + ( + met_or_exceeded_count, + actual_count, + actual_count_dictionary, + ) = fragments.specified_entity_greater_than_count( regex, fragments.count_specified_regex, expected_count, @@ -693,9 +729,9 @@ def invoke_all_markdown_checks( # perform the count, saving the details in a way that preserves information if the # filecheck was given as a wildcard (i.e., "*.py") ( - met_or_exceeded_count, - actual_count, - ), count_dictionary = markdown.specified_tag_greater_than_count( + (met_or_exceeded_count, actual_count,), + count_dictionary, + ) = markdown.specified_tag_greater_than_count( markdown_tag, markdown.count_specified_tag, expected_count, @@ -759,9 +795,9 @@ def invoke_all_count_checks( """Perform the check for the count of lines in file or contents and return the results.""" met_or_exceeded_count = 0 ( - met_or_exceeded_count, - actual_count, - ), actual_count_dictionary = fragments.specified_source_greater_than_count( + (met_or_exceeded_count, actual_count,), + actual_count_dictionary, + ) = fragments.specified_source_greater_than_count( expected_count, filecheck, directory, contents, exact ) # create a message for a file in directory diff --git a/tests/test_checkers.py b/tests/test_checkers.py index 57953ab34..11269b56b 100644 --- a/tests/test_checkers.py +++ b/tests/test_checkers.py @@ -278,7 +278,7 @@ def test_check_extraction_from_commandline_arguments_has_help_single_checker(): def test_check_extraction_from_commandline_arguments_has_help_two_checkers_one_invalid( - tmpdir + tmpdir, ): """Ensure that checker finding and help extraction works for a provided checker.""" testargs = [os.getcwd()] diff --git a/tests/test_files.py b/tests/test_files.py index e8f36267f..3cb51897f 100644 --- a/tests/test_files.py +++ b/tests/test_files.py @@ -123,7 +123,7 @@ def test_garbage_glob_ext_returns_no_matching_paths(tmpdir): def test_garbage_glob_file_returns_no_matching_paths_more_garbage_markdown_names( - tmpdir + tmpdir, ): """Ensure that creating a garbage globbed path returns no matches.""" hello_file_one = tmpdir.join("hello1.txt") diff --git a/tests/test_fragments.py b/tests/test_fragments.py index b9ebe2884..85c10a961 100644 --- a/tests/test_fragments.py +++ b/tests/test_fragments.py @@ -549,15 +549,15 @@ def test_count_single_line_from_file_with_threshold(tmpdir): directory = tmpdir.dirname + "/" + tmpdir.basename + "/" + "subdirectory" hello_file = "Hello.java" ( - exceeds_threshold, - actual_count, - ), _ = fragments.specified_source_greater_than_count(1, hello_file, directory, "") + (exceeds_threshold, actual_count,), + _, + ) = fragments.specified_source_greater_than_count(1, hello_file, directory, "") assert actual_count == 1 assert exceeds_threshold[0] is True ( - exceeds_threshold, - actual_count, - ), _ = fragments.specified_source_greater_than_count(100, hello_file, directory, "") + (exceeds_threshold, actual_count,), + _, + ) = fragments.specified_source_greater_than_count(100, hello_file, directory, "") assert actual_count == 1 assert exceeds_threshold[0] is False @@ -571,28 +571,28 @@ def test_count_single_line_from_file_with_threshold_and_wildcards(tmpdir): directory = tmpdir.dirname + "/" + tmpdir.basename + "/" + "subdirectory" hello_file = "*.java" ( - exceeds_threshold, - actual_count, - ), _ = fragments.specified_source_greater_than_count(1, hello_file, directory, "") + (exceeds_threshold, actual_count,), + _, + ) = fragments.specified_source_greater_than_count(1, hello_file, directory, "") assert actual_count == 1 assert exceeds_threshold[0] is True ( - exceeds_threshold, - actual_count, - ), _ = fragments.specified_source_greater_than_count(100, hello_file, directory, "") + (exceeds_threshold, actual_count,), + _, + ) = fragments.specified_source_greater_than_count(100, hello_file, directory, "") assert actual_count == 1 assert exceeds_threshold[0] is False hello_file = "*.*" ( - exceeds_threshold, - actual_count, - ), _ = fragments.specified_source_greater_than_count(1, hello_file, directory, "") + (exceeds_threshold, actual_count,), + _, + ) = fragments.specified_source_greater_than_count(1, hello_file, directory, "") assert actual_count == 1 assert exceeds_threshold[0] is True ( - exceeds_threshold, - actual_count, - ), _ = fragments.specified_source_greater_than_count(100, hello_file, directory, "") + (exceeds_threshold, actual_count,), + _, + ) = fragments.specified_source_greater_than_count(100, hello_file, directory, "") assert actual_count == 1 assert exceeds_threshold[0] is False @@ -606,9 +606,9 @@ def test_count_no_line_from_incorrect_file(tmpdir): directory = tmpdir.dirname + "/" + tmpdir.basename + "/" + "subdirectory" hello_file = "#$#@ll*.java&&@@@" ( - exceeds_threshold, - actual_count, - ), _ = fragments.specified_source_greater_than_count(1, hello_file, directory, "") + (exceeds_threshold, actual_count,), + _, + ) = fragments.specified_source_greater_than_count(1, hello_file, directory, "") assert actual_count == 0 assert exceeds_threshold[0] is False @@ -636,21 +636,21 @@ def test_count_multiple_lines_from_file_with_threshold(tmpdir): directory = tmpdir.dirname + "/" + tmpdir.basename + "/" + "subdirectory" hello_file = "Hello.java" ( - exceeds_threshold, - actual_count, - ), _ = fragments.specified_source_greater_than_count(2, hello_file, directory, "") + (exceeds_threshold, actual_count,), + _, + ) = fragments.specified_source_greater_than_count(2, hello_file, directory, "") assert actual_count == 3 assert exceeds_threshold[0] is True ( - exceeds_threshold, - actual_count, - ), _ = fragments.specified_source_greater_than_count(3, hello_file, directory, "") + (exceeds_threshold, actual_count,), + _, + ) = fragments.specified_source_greater_than_count(3, hello_file, directory, "") assert actual_count == 3 assert exceeds_threshold[0] is True ( - exceeds_threshold, - actual_count, - ), _ = fragments.specified_source_greater_than_count(100, hello_file, directory, "") + (exceeds_threshold, actual_count,), + _, + ) = fragments.specified_source_greater_than_count(100, hello_file, directory, "") assert actual_count == 3 assert exceeds_threshold[0] is False @@ -688,21 +688,21 @@ def test_count_multiple_lines_from_contents_with_threshold(): '/* hello world */\nString s = new String("hello");\n//this is a comment' ) ( - exceeds_threshold, - actual_count, - ), _ = fragments.specified_source_greater_than_count(2, "", "", hello_contents) + (exceeds_threshold, actual_count,), + _, + ) = fragments.specified_source_greater_than_count(2, "", "", hello_contents) assert actual_count == 3 assert exceeds_threshold[0] is True ( - exceeds_threshold, - actual_count, - ), _ = fragments.specified_source_greater_than_count(3, "", "", hello_contents) + (exceeds_threshold, actual_count,), + _, + ) = fragments.specified_source_greater_than_count(3, "", "", hello_contents) assert actual_count == 3 assert exceeds_threshold[0] is True ( - exceeds_threshold, - actual_count, - ), _ = fragments.specified_source_greater_than_count(100, "", "", hello_contents) + (exceeds_threshold, actual_count,), + _, + ) = fragments.specified_source_greater_than_count(100, "", "", hello_contents) assert actual_count == 3 assert exceeds_threshold[0] is False diff --git a/tests/test_markdown.py b/tests/test_markdown.py index b8510ea55..492546c08 100644 --- a/tests/test_markdown.py +++ b/tests/test_markdown.py @@ -88,36 +88,36 @@ def test_count_fragments_from_file(tmpdir): hello_file = "Hello.md" ( - exceeds_threshold, - actual_count, - ), count_dictionary = markdown.specified_tag_greater_than_count( + (exceeds_threshold, actual_count,), + count_dictionary, + ) = markdown.specified_tag_greater_than_count( "code", markdown.count_specified_tag, 3, hello_file, directory ) assert actual_count == 2 assert exceeds_threshold is False ( - exceeds_threshold, - actual_count, - ), count_dictionary = markdown.specified_tag_greater_than_count( + (exceeds_threshold, actual_count,), + count_dictionary, + ) = markdown.specified_tag_greater_than_count( "code", markdown.count_specified_tag, 1, hello_file, directory, False ) assert actual_count == 2 assert exceeds_threshold is True ( - exactly, - actual_count, - ), count_dictionary = markdown.specified_tag_greater_than_count( + (exactly, actual_count,), + count_dictionary, + ) = markdown.specified_tag_greater_than_count( "code", markdown.count_specified_tag, 1, hello_file, directory, True ) assert actual_count == 2 assert exactly is False ( - exactly, - actual_count, - ), count_dictionary = markdown.specified_tag_greater_than_count( + (exactly, actual_count,), + count_dictionary, + ) = markdown.specified_tag_greater_than_count( "code", markdown.count_specified_tag, 2, hello_file, directory, True ) assert actual_count == 2 @@ -144,36 +144,36 @@ def test_count_fragments_from_file_wildcard(tmpdir): hello_file = "*.md" ( - exceeds_threshold, - actual_count, - ), count_dictionary = markdown.specified_tag_greater_than_count( + (exceeds_threshold, actual_count,), + count_dictionary, + ) = markdown.specified_tag_greater_than_count( "code", markdown.count_specified_tag, 3, hello_file, directory ) assert actual_count == 2 assert exceeds_threshold is False ( - exceeds_threshold, - actual_count, - ), count_dictionary = markdown.specified_tag_greater_than_count( + (exceeds_threshold, actual_count,), + count_dictionary, + ) = markdown.specified_tag_greater_than_count( "code", markdown.count_specified_tag, 1, hello_file, directory, False ) assert actual_count == 2 assert exceeds_threshold is True ( - exactly, - actual_count, - ), count_dictionary = markdown.specified_tag_greater_than_count( + (exactly, actual_count,), + count_dictionary, + ) = markdown.specified_tag_greater_than_count( "code", markdown.count_specified_tag, 1, hello_file, directory, True ) assert actual_count == 2 assert exactly is False ( - exactly, - actual_count, - ), count_dictionary = markdown.specified_tag_greater_than_count( + (exactly, actual_count,), + count_dictionary, + ) = markdown.specified_tag_greater_than_count( "code", markdown.count_specified_tag, 2, hello_file, directory, True ) assert actual_count == 2 @@ -187,9 +187,9 @@ def test_count_fragments_from_empty_file(tmpdir): directory = tmpdir.dirname + "/" + tmpdir.basename + "/" + "subdirectory" hello_file = "Hello.md" ( - exceeds_threshold, - actual_count, - ), count_dictionary = markdown.specified_tag_greater_than_count( + (exceeds_threshold, actual_count,), + count_dictionary, + ) = markdown.specified_tag_greater_than_count( "code", markdown.count_specified_tag, 3, hello_file, directory ) assert actual_count == 0 @@ -203,9 +203,9 @@ def test_count_fragments_from_empty_file_wildcard(tmpdir): directory = tmpdir.dirname + "/" + tmpdir.basename + "/" + "subdirectory" hello_file = "*.md" ( - exceeds_threshold, - actual_count, - ), count_dictionary = markdown.specified_tag_greater_than_count( + (exceeds_threshold, actual_count,), + count_dictionary, + ) = markdown.specified_tag_greater_than_count( "code", markdown.count_specified_tag, 3, hello_file, directory ) assert actual_count == 0 @@ -219,9 +219,9 @@ def test_count_fragments_from_incorrect_file(tmpdir): directory = tmpdir.dirname + "/" + tmpdir.basename + "/" + "subdirectory" hello_file = "HelloWrong.md" ( - exceeds_threshold, - actual_count, - ), count_dictionary = markdown.specified_tag_greater_than_count( + (exceeds_threshold, actual_count,), + count_dictionary, + ) = markdown.specified_tag_greater_than_count( "code", markdown.count_specified_tag, 3, hello_file, directory ) assert actual_count == 0 @@ -235,18 +235,18 @@ def test_count_fragments_from_incorrect_file_wildcard(tmpdir): directory = tmpdir.dirname + "/" + tmpdir.basename + "/" + "subdirectory" hello_file = "Wrong*.md" ( - exceeds_threshold, - actual_count, - ), count_dictionary = markdown.specified_tag_greater_than_count( + (exceeds_threshold, actual_count,), + count_dictionary, + ) = markdown.specified_tag_greater_than_count( "code", markdown.count_specified_tag, 3, hello_file, directory ) assert actual_count == 0 assert exceeds_threshold is False hello_file = "Wrong*.*" ( - exceeds_threshold, - actual_count, - ), count_dictionary = markdown.specified_tag_greater_than_count( + (exceeds_threshold, actual_count,), + count_dictionary, + ) = markdown.specified_tag_greater_than_count( "code", markdown.count_specified_tag, 3, hello_file, directory ) assert actual_count == 0 @@ -260,18 +260,18 @@ def test_count_fragments_from_incorrect_wildcard(tmpdir): directory = tmpdir.dirname + "/" + tmpdir.basename + "/" + "subdirectory" hello_file = "%*#@@--(*.md)Hello.md" ( - exceeds_threshold, - actual_count, - ), count_dictionary = markdown.specified_tag_greater_than_count( + (exceeds_threshold, actual_count,), + count_dictionary, + ) = markdown.specified_tag_greater_than_count( "code", markdown.count_specified_tag, 3, hello_file, directory ) assert actual_count == 0 assert exceeds_threshold is False hello_file = "Hello.md%*#@@--(*.md)" ( - exceeds_threshold, - actual_count, - ), count_dictionary = markdown.specified_tag_greater_than_count( + (exceeds_threshold, actual_count,), + count_dictionary, + ) = markdown.specified_tag_greater_than_count( "code", markdown.count_specified_tag, 3, hello_file, directory ) assert actual_count == 0