diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index bf2f790c5e2671a0ece0fb0cdcf4f9fa1550099e..1066f350da179be0bf046a87fde47ecf17a6539c 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,28 +1,62 @@ +# vim:ff=unix ts=2 sw=2 ai expandtab --- repos: -- repo: https://github.com/pre-commit/pre-commit-hooks - rev: v2.0.0 - hooks: - - id: check-added-large-files - - id: check-executables-have-shebangs - - id: check-merge-conflict - - id: check-yaml - - id: detect-private-key - - id: flake8 - args: - - '--max-line-length=79' -- repo: https://github.com/ambv/black - rev: 18.9b0 + - repo: https://github.com/pre-commit/pre-commit-hooks + rev: v2.2.3 + hooks: + - id: check-added-large-files + - id: check-executables-have-shebangs + - id: check-merge-conflict + - id: detect-private-key + - id: trailing-whitespace + - repo: https://github.com/ambv/black + rev: 19.3b0 hooks: - - id: black - language_version: python3.6 - args: + - id: black + args: - | --line-length=79 -- repo: https://github.com/pre-commit/mirrors-pylint.git - rev: v2.1.1 + - repo: https://github.com/PyCQA/prospector + rev: 1.1.6.4 hooks: - - id: pylint - args: - - | - --disable=invalid-name,import-error,missing-docstring + - id: prospector + args: + - |- + --max-line-length=79 + - |- + --tool=pyroma + - |- + --tool=dodgy + additional_dependencies: + - pyroma + - dodgy + - repo: https://gitlab.com/pycqa/flake8 + rev: 3.7.8 + hooks: + - id: flake8 + args: + - |- + --max-line-length=79 + additional_dependencies: + - flake8-bugbear + - repo: https://github.com/pre-commit/mirrors-pylint + rev: v2.3.1 + hooks: + - id: pylint + args: + - |- + --disable=R0801 + - repo: https://github.com/adrienverge/yamllint + rev: v1.16.0 + hooks: + - id: yamllint + - repo: https://github.com/PyCQA/bandit + rev: 1.6.2 + hooks: + - id: bandit + - repo: https://github.com/amperser/proselint/ + rev: 0.10.1 + hooks: + - id: proselint + types: [plain-text] + exclude: LICENSE|requirements diff --git a/Pipfile b/Pipfile index 5a940d9b83c6eb1bb5bc2d4652e4ea9702f722df..acbe752d744a80617bbd2a07d43ad74ffb604e54 100644 --- a/Pipfile +++ b/Pipfile @@ -11,4 +11,4 @@ parse = "*" pre-commit = "*" [requires] -python_version = "3.6" +python_version = "3.7" diff --git a/Pipfile.lock b/Pipfile.lock index b5732ceec1e812cb8c55811a121d817f9df81886..c68353a4f8b55ead7524505986697a936648167d 100644 --- a/Pipfile.lock +++ b/Pipfile.lock @@ -1,11 +1,11 @@ { "_meta": { "hash": { - "sha256": "98ebdd3e85cb2f22dd8d72ef5c193c6f12db85a2f7148433b5f04a12d5ed0517" + "sha256": "92df97661d736e2c6b9671d0e4eae148bb752099ecba90cdaaf43678ada40b22" }, "pipfile-spec": 6, "requires": { - "python_version": "3.6" + "python_version": "3.7" }, "sources": [ { @@ -18,10 +18,10 @@ "default": { "certifi": { "hashes": [ - "sha256:339dc09518b07e2fa7eda5450740925974815557727d6bd35d319c1524a04a4c", - "sha256:6d58c986d22b038c8c0df30d639f23a3e6d172a05c3583e766f4c0b785c0986a" + "sha256:046832c04d4e752f37383b628bc601a7ea7211496b4638f6514d0e5b9acc4939", + "sha256:945e3ba63a0b9f577b1395204e13c3a231f9bc0223888be653286534e5873695" ], - "version": "==2018.10.15" + "version": "==2019.6.16" }, "chardet": { "hashes": [ @@ -32,93 +32,99 @@ }, "idna": { "hashes": [ - "sha256:156a6814fb5ac1fc6850fb002e0852d56c0c8d2531923a51032d1b70760e186e", - "sha256:684a38a6f903c1d71d6d5fac066b58d7768af4de2b832e426ec79c30daa94a16" + "sha256:c357b3f628cf53ae2c4c05627ecc484553142ca23264e593d327bcde5e9c3407", + "sha256:ea8b7f6188e6fa117537c3df7da9fc686d485087abf6ac197f9c46432f7e4a3c" ], - "version": "==2.7" + "version": "==2.8" }, "parse": { "hashes": [ - "sha256:9dd6048ea212cd032a342f9f6aa2b7bc222f7407c7e37bdc2777fecd36897437" + "sha256:1b68657434d371e5156048ca4a0c5aea5afc6ca59a2fea4dd1a575354f617142" ], "index": "pypi", - "version": "==1.9.0" + "version": "==1.12.0" }, "requests": { "hashes": [ - "sha256:99dcfdaaeb17caf6e526f32b6a7b780461512ab3f1d992187801694cba42770c", - "sha256:a84b8c9ab6239b578f22d1c21d51b696dcfe004032bb80ea832398d6909d7279" + "sha256:11e007a8a2aa0323f5a921e9e6a2d7e4e67d9877e85773fba9ba6419025cbeb4", + "sha256:9cf5292fcd0f598c671cfc1e0d7d1a7f13bb8085e9a590f48c010551dc6c4b31" ], "index": "pypi", - "version": "==2.20.0" + "version": "==2.22.0" }, "urllib3": { "hashes": [ - "sha256:41c3db2fc01e5b907288010dec72f9d0a74e37d6994e6eb56849f59fea2265ae", - "sha256:8819bba37a02d143296a4d032373c4dd4aca11f6d4c9973335ca75f9c8475f59" + "sha256:b246607a25ac80bedac05c6f282e3cdaf3afb65420fd024ac94435cabe6e18d1", + "sha256:dbe59173209418ae49d485b87d1681aefa36252ee85884c31346debd19463232" ], - "version": "==1.24" + "version": "==1.25.3" } }, "develop": { "aspy.yaml": { "hashes": [ - "sha256:04d26279513618f1024e1aba46471db870b3b33aef204c2d09bcf93bea9ba13f", - "sha256:0a77e23fafe7b242068ffc0252cee130d3e509040908fc678d9d1060e7494baa" + "sha256:463372c043f70160a9ec950c3f1e4c3a82db5fca01d334b6bc89c7164d744bdc", + "sha256:e7c742382eff2caed61f87a39d13f99109088e5e93f04d76eb8d4b28aa143f45" ], - "version": "==1.1.1" + "version": "==1.3.0" }, - "cached-property": { + "cfgv": { "hashes": [ - "sha256:3a026f1a54135677e7da5ce819b0c690f156f37976f3e30c5430740725203d7f", - "sha256:9217a59f14a5682da7c4b8829deadbfc194ac22e9908ccf7c8820234e80a1504" + "sha256:edb387943b665bf9c434f717bf630fa78aecd53d5900d2e05da6ad6048553144", + "sha256:fbd93c9ab0a523bf7daec408f3be2ed99a980e20b2d19b50fc184ca6b820d289" ], - "version": "==1.5.1" + "version": "==2.0.1" }, - "cfgv": { + "identify": { "hashes": [ - "sha256:73f48a752bd7aab103c4b882d6596c6360b7aa63b34073dd2c35c7b4b8f93010", - "sha256:d1791caa9ff5c0c7bce80e7ecc1921752a2eb7c2463a08ed9b6c96b85a2f75aa" + "sha256:0a11379b46d06529795442742a043dc2fa14cd8c995ae81d1febbc5f1c014c87", + "sha256:43a5d24ffdb07bc7e21faf68b08e9f526a1f41f0056073f480291539ef961dfd" ], - "version": "==1.1.0" + "version": "==1.4.5" }, - "identify": { + "importlib-metadata": { "hashes": [ - "sha256:5e956558a9a1e3b3891d7c6609fc9709657a11878af288ace484d1a46a93922b", - "sha256:623086059219cc7b86c77a3891f3700cb175d4ce02b8fb8802b047301d71e783" + "sha256:6dfd58dfe281e8d240937776065dd3624ad5469c835248219bd16cf2e12dbeb7", + "sha256:cb6ee23b46173539939964df59d3d72c3e0c1b5d54b84f1d8a7e912fe43612db" ], - "version": "==1.1.7" + "version": "==0.18" }, "nodeenv": { "hashes": [ - "sha256:aa040ab5189bae17d272175609010be6c5b589ec4b8dbd832cc50c9e9cb7496f" + "sha256:ad8259494cf1c9034539f6cced78a1da4840a4b157e23640bc4a0c0546b0cb7a" ], - "version": "==1.3.2" + "version": "==1.3.3" }, "pre-commit": { "hashes": [ - "sha256:98ec318db1f255e3d5089ae416959ef3c775215a3509620027d446eeabbba740", - "sha256:b68f9219c56b50ebafb57f378c5325f9876d06fb29e9cd05daf5cbd6676ce8f2" + "sha256:92e406d556190503630fd801958379861c94884693a032ba66629d0351fdccd4", + "sha256:cccc39051bc2457b0c0f7152a411f8e05e3ba2fe1a5613e4ee0833c1c1985ce3" ], "index": "pypi", - "version": "==1.11.2" + "version": "==1.17.0" }, "pyyaml": { "hashes": [ - "sha256:254bf6fda2b7c651837acb2c718e213df29d531eebf00edb54743d10bcb694eb", - "sha256:3108529b78577327d15eec243f0ff348a0640b0c3478d67ad7f5648f93bac3e2", - "sha256:3c17fb92c8ba2f525e4b5f7941d850e7a48c3a59b32d331e2502a3cdc6648e76", - "sha256:8d6d96001aa7f0a6a4a95e8143225b5d06e41b1131044913fecb8f85a125714b", - "sha256:c8a88edd93ee29ede719080b2be6cb2333dfee1dccba213b422a9c8e97f2967b" + "sha256:57acc1d8533cbe51f6662a55434f0dbecfa2b9eaf115bede8f6fd00115a0c0d3", + "sha256:588c94b3d16b76cfed8e0be54932e5729cc185caffaa5a451e7ad2f7ed8b4043", + "sha256:68c8dd247f29f9a0d09375c9c6b8fdc64b60810ebf07ba4cdd64ceee3a58c7b7", + "sha256:70d9818f1c9cd5c48bb87804f2efc8692f1023dac7f1a1a5c61d454043c1d265", + "sha256:86a93cccd50f8c125286e637328ff4eef108400dd7089b46a7be3445eecfa391", + "sha256:a0f329125a926876f647c9fa0ef32801587a12328b4a3c741270464e3e4fa778", + "sha256:a3c252ab0fa1bb0d5a3f6449a4826732f3eb6c0270925548cac342bc9b22c225", + "sha256:b4bb4d3f5e232425e25dda21c070ce05168a786ac9eda43768ab7f3ac2770955", + "sha256:cd0618c5ba5bda5f4039b9398bb7fb6a317bb8298218c3de25c47c4740e4b95e", + "sha256:ceacb9e5f8474dcf45b940578591c7f3d960e82f926c707788a570b51ba59190", + "sha256:fe6a88094b64132c4bb3b631412e90032e8cfe9745a58370462240b8cb7553cd" ], - "version": "==4.2b4" + "version": "==5.1.1" }, "six": { "hashes": [ - "sha256:70e8a77beed4562e7f14fe23a786b54f6296e34344c23bc42f07b15018ff98e9", - "sha256:832dc0e10feb1aa2c68dcc57dbb658f1c7e65b9b61af69048abc87a2db00a0eb" + "sha256:3350809f0555b11f552448330d0b52d5f24c91a322ea4a15ef22629740f3761c", + "sha256:d16a0141ec1a18405cd4ce8b4613101da75da0e9a7aec5bdd4fa804d0e0eba73" ], - "version": "==1.11.0" + "version": "==1.12.0" }, "toml": { "hashes": [ @@ -129,10 +135,17 @@ }, "virtualenv": { "hashes": [ - "sha256:2ce32cd126117ce2c539f0134eb89de91a8413a29baac49cbab3eb50e2026669", - "sha256:ca07b4c0b54e14a91af9f34d0919790b016923d157afda5efdde55c96718f752" + "sha256:50e062b385b6e5fc6e5644ffe14e226550109a4c65e725b47ae7e3b978d320b5", + "sha256:fb528e20ecfce349de1dc2c8cbb394d1189b3f9507aea7273fbfb1c2167a4a4e" + ], + "version": "==16.7.0" + }, + "zipp": { + "hashes": [ + "sha256:4970c3758f4e89a7857a973b1e2a5d75bcdc47794442f2e2dd4fe8e0466e809a", + "sha256:8a5712cfd3bb4248015eb3b0b3c54a5f6ee3f2425963ef2a0125b8bc40aafaec" ], - "version": "==16.0.0" + "version": "==0.5.2" } } } diff --git a/README.md b/README.md index c02ee24425dce82ea7c0b91dfc116f6291102372..b0ac41219746b4f01fac164bc8bc2c207a5fe073 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,7 @@ reading this, my actual site is at <https://www.shore.co.il/blog>. 1. __Breadcrumbe challenge__: For this I wrote some Python. The code is in `breadcrumbs.py` and to run it -you need Python 3.6 and pipenv (I also use direnv for convience). To use it run +you need Python 3.7 and pipenv (I also use direnv for convience). To use it run `pipenv run ./breadcrumbs.py`. 1. __Monster challenge__: diff --git a/breadcrumbs.py b/breadcrumbs.py index a96eadb9f81088f94c0a5f21acc2070e90e67487..f59b959410a2cb18bb2e95af7fdd004d7d6fb6eb 100755 --- a/breadcrumbs.py +++ b/breadcrumbs.py @@ -1,4 +1,8 @@ #!/usr/bin/env python3 +# pylint: disable=import-error,invalid-name +""" +HiringSolved breadcrumb challenge solution. +""" from sys import stderr from requests import get from parse import ( # pylint: disable=redefined-builtin,no-name-in-module