diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml new file mode 100644 index 00000000..990e2781 --- /dev/null +++ b/.pre-commit-config.yaml @@ -0,0 +1,18 @@ +repos: +- repo: https://github.com/pre-commit/pre-commit-hooks + rev: master + hooks: + - id: check-ast + - id: check-json + - id: check-xml + - id: check-yaml +- repo: local + hooks: + - id: pylint + name: pylint + entry: pylint + language: system + types: [python] + exclude: '^(pyextra)|(external)/' + args: + - --disable=R,C,W diff --git a/.pylintrc b/.pylintrc index 64a55daf..9a55710c 100644 --- a/.pylintrc +++ b/.pylintrc @@ -3,7 +3,7 @@ # A comma-separated list of package or module names from where C extensions may # be loaded. Extensions are loading into the active Python interpreter and may # run arbitrary code -extension-pkg-whitelist=scipy +extension-pkg-whitelist=scipy cereal.messaging.messaging_pyx # Add files or directories to the blacklist. They should be base names, not # paths. diff --git a/Pipfile b/Pipfile index 1a49e702..d18512d0 100644 --- a/Pipfile +++ b/Pipfile @@ -72,6 +72,7 @@ scikit-image = "*" pygame = "==2.0.0.dev8" pprofile = "*" pyprof2calltree = "*" +pre-commit = "*" [packages] atomicwrites = "*" diff --git a/Pipfile.lock b/Pipfile.lock index e8c8955f..572eb9a0 100644 --- a/Pipfile.lock +++ b/Pipfile.lock @@ -1,7 +1,7 @@ { "_meta": { "hash": { - "sha256": "a274c1844cd5ad1f8cfb1cc523e51624c8f5d58bd1b9882f41534fd7bd75f3fb" + "sha256": "681eef4e45758b560f2f76736c039d051c62cc910e6bc7556b3add318110dea0" }, "pipfile-spec": 6, "requires": { @@ -21,6 +21,7 @@ "sha256:4c17cea3e592c21b6e222f673868961bad77e1f985cb1694ed077475a89229c1", "sha256:d8506842a3faf734b81599c8b98dcc423de863adcc1999248480b18bd31a0f38" ], + "markers": "python_version >= '3.5'", "version": "==2.4.1" }, "atomicwrites": { @@ -84,10 +85,14 @@ "sha256:d2b5255c7c6349bc1bd1e59e08cd12acbbd63ce649f2588755783aa94dfb6b1a", "sha256:dacca89f4bfadd5de3d7489b7c8a566eee0d3676333fbb50030263894c38c0dc" ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", "version": "==7.1.2" }, "crcmod": { "hashes": [ + "sha256:737fb308fa2ce9aed2e29075f0d5980d4a89bfbec48a368c607c5c63b3efb90e", + "sha256:69a2e5c6c36d0f096a7beb4cd34e5f882ec5fd232efb710cdb85d4ff196bd52e", + "sha256:50586ab48981f11e5b117523d97bb70864a2a1af246cf6e4f5c4a21ef4611cd1", "sha256:dc7051a0db5f2bd48665a990d3ec1cc305a466a77358ca4492826f41f283601e" ], "index": "pypi", @@ -192,6 +197,7 @@ "sha256:7588d1c14ae4c77d74036e8c22ff447b26d0fde8f007354fd48a7814db15b7cb", "sha256:a068a21ceac8a4d63dbfd964670474107f541babbd2250d61922f029858365fa" ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", "version": "==2.9" }, "isort": { @@ -199,6 +205,7 @@ "sha256:54da7e92468955c4fceacd0c86bd0ec997b0e1ee80d97f67c35a78b719dccab1", "sha256:6e811fcb295968434526407adb8796944f1988c5b65e8139058f2014cbe100fd" ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", "version": "==4.3.21" }, "itsdangerous": { @@ -206,6 +213,7 @@ "sha256:321b033d07f2a4136d3ec762eac9f16a10ccd60f53c0c91af90217ace7ba1f19", "sha256:b12271b2047cb23eeb98c8b5622e2e5c5e9abd9784a153e9d8ef9cb4dd09d749" ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", "version": "==1.1.0" }, "jinja2": { @@ -248,6 +256,7 @@ "sha256:efa1909120ce98bbb3777e8b6f92237f5d5c8ea6758efea36a473e1d38f7d3e4", "sha256:f3900e8a5de27447acbf900b4750b0ddfd7ec1ea7fbaf11dfa911141bc522af0" ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", "version": "==1.4.3" }, "libusb1": { @@ -259,7 +268,8 @@ }, "logentries": { "git": "https://github.com/commaai/le_python.git", - "ref": "feaeacb48f7f4bdb02c0a8fc092326d4e101b7f2" + "ref": "feaeacb48f7f4bdb02c0a8fc092326d4e101b7f2", + "version": "==0.8" }, "markupsafe": { "hashes": [ @@ -297,6 +307,7 @@ "sha256:e249096428b3ae81b08327a63a485ad0878de3fb939049038579ac0ef61e17e7", "sha256:e8313f01ba26fbbe36c7be1966a7b7424942f670f38e666995b88d012765b9be" ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", "version": "==1.1.1" }, "mccabe": { @@ -350,28 +361,29 @@ }, "pillow": { "hashes": [ - "sha256:04766c4930c174b46fd72d450674612ab44cca977ebbcc2dde722c6933290107", - "sha256:0e2a3bceb0fd4e0cb17192ae506d5f082b309ffe5fc370a5667959c9b2f85fa3", - "sha256:0f01e63c34f0e1e2580cc0b24e86a5ccbbfa8830909a52ee17624c4193224cd9", + "sha256:ccc9ad2460eb5bee5642eaf75a0438d7f8887d484490d5117b98edd7f33118b7", "sha256:12e4bad6bddd8546a2f9771485c7e3d2b546b458ae8ff79621214119ac244523", + "sha256:0e2a3bceb0fd4e0cb17192ae506d5f082b309ffe5fc370a5667959c9b2f85fa3", + "sha256:04766c4930c174b46fd72d450674612ab44cca977ebbcc2dde722c6933290107", "sha256:1f694e28c169655c50bb89a3fa07f3b854d71eb47f50783621de813979ba87f3", - "sha256:3d25dd8d688f7318dca6d8cd4f962a360ee40346c15893ae3b95c061cdbc4079", - "sha256:4b02b9c27fad2054932e89f39703646d0c543f21d3cc5b8e05434215121c28cd", - "sha256:9744350687459234867cbebfe9df8f35ef9e1538f3e729adbd8fde0761adb705", - "sha256:a0b49960110bc6ff5fead46013bcb8825d101026d466f3a4de3476defe0fb0dd", "sha256:ae2b270f9a0b8822b98655cb3a59cdb1bd54a34807c6c56b76dd2e786c3b7db3", "sha256:b37bb3bd35edf53125b0ff257822afa6962649995cbdfde2791ddb62b239f891", - "sha256:b532bcc2f008e96fd9241177ec580829dee817b090532f43e54074ecffdcd97f", "sha256:b67a6c47ed963c709ed24566daa3f95a18f07d3831334da570c71da53d97d088", - "sha256:b943e71c2065ade6fef223358e56c167fc6ce31c50bc7a02dd5c17ee4338e8ac", - "sha256:ccc9ad2460eb5bee5642eaf75a0438d7f8887d484490d5117b98edd7f33118b7", "sha256:d23e2aa9b969cf9c26edfb4b56307792b8b374202810bd949effd1c6e11ebd6d", - "sha256:eaa83729eab9c60884f362ada982d3a06beaa6cc8b084cf9f76cae7739481dfa", + "sha256:0f01e63c34f0e1e2580cc0b24e86a5ccbbfa8830909a52ee17624c4193224cd9", "sha256:ee94fce8d003ac9fd206496f2707efe9eadcb278d94c271f129ab36aa7181344", "sha256:f455efb7a98557412dc6f8e463c1faf1f1911ec2432059fa3e582b6000fc90e2", "sha256:f46e0e024346e1474083c729d50de909974237c72daca05393ee32389dabe457", + "sha256:b943e71c2065ade6fef223358e56c167fc6ce31c50bc7a02dd5c17ee4338e8ac", + "sha256:3d25dd8d688f7318dca6d8cd4f962a360ee40346c15893ae3b95c061cdbc4079", + "sha256:9744350687459234867cbebfe9df8f35ef9e1538f3e729adbd8fde0761adb705", + "sha256:f784aad988f12c80aacfa5b381ec21fd3f38f851720f652b9f33facc5101cf4d", + "sha256:eaa83729eab9c60884f362ada982d3a06beaa6cc8b084cf9f76cae7739481dfa", "sha256:f54be399340aa602066adb63a86a6a5d4f395adfdd9da2b9a0162ea808c7b276", - "sha256:f784aad988f12c80aacfa5b381ec21fd3f38f851720f652b9f33facc5101cf4d" + "sha256:b532bcc2f008e96fd9241177ec580829dee817b090532f43e54074ecffdcd97f", + "sha256:4b02b9c27fad2054932e89f39703646d0c543f21d3cc5b8e05434215121c28cd", + "sha256:70e3e0d99a0dcda66283a185f80697a9b08806963c6149c8e6c5f452b2aa59c0", + "sha256:a0b49960110bc6ff5fead46013bcb8825d101026d466f3a4de3476defe0fb0dd" ], "index": "pypi", "version": "==7.1.2" @@ -405,6 +417,7 @@ "sha256:2295e7b2f6b5bd100585ebcb1f616591b652db8a741695b3d8f5d28bdc934367", "sha256:c58a7d2815e0e8d7972bf1803331fb0152f867bd89adf8a01dfd55085434192e" ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", "version": "==2.6.0" }, "pycparser": { @@ -412,6 +425,7 @@ "sha256:2d475327684562c3a96cc71adf7dc8c4f0565175cf86b6d7a404ff4c771f15f0", "sha256:7582ad22678f0fcd81102833f60ef8d0e57288b6b5fb00323d101be910e35705" ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", "version": "==2.20" }, "pycryptodome": { @@ -455,6 +469,7 @@ "sha256:0d94e0e05a19e57a99444b6ddcf9a6eb2e5c68d3ca1e98e90707af8152c90a92", "sha256:35b2d75ee967ea93b55750aa9edbbf72813e06a66ba54438df2cfac9e3c27fc8" ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", "version": "==2.2.0" }, "pyjwt": { @@ -638,6 +653,7 @@ "sha256:2de2a5db0baeae7b2d2664949077c2ac63fbd16d98da0ff71837f7d1dea3fd43", "sha256:6c80b1e5ad3665290ea39320b91e1be1e0d5f60652b964a3070216de83d2e47c" ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", "version": "==1.0.1" }, "wrapt": { @@ -688,6 +704,13 @@ "index": "pypi", "version": "==3.6.2" }, + "appdirs": { + "hashes": [ + "sha256:7d5d0167b2b1ba821647616af46a749d1c653740dd0d2415100fe26e27afdf41", + "sha256:a841dacd6b99318a741b166adb07e19ee71a274450e68237b4650ca1055ab128" + ], + "version": "==1.4.4" + }, "applicationinsights": { "hashes": [ "sha256:30a11aafacea34f8b160fbdc35254c9029c7e325267874e3c68f6bdbcd6ed2c3", @@ -707,6 +730,7 @@ "sha256:4c17cea3e592c21b6e222f673868961bad77e1f985cb1694ed077475a89229c1", "sha256:d8506842a3faf734b81599c8b98dcc423de863adcc1999248480b18bd31a0f38" ], + "markers": "python_version >= '3.5'", "version": "==2.4.1" }, "astunparse": { @@ -721,6 +745,7 @@ "sha256:0c3c816a028d47f659d6ff5c745cb2acf1f966da1fe5c19c77a70282b25f4c5f", "sha256:4291ca197d287d274d0b6cb5d6f8f8f82d434ed288f962539ff18cc9012f9ea3" ], + "markers": "python_version >= '3.5.3'", "version": "==3.0.1" }, "attrs": { @@ -728,6 +753,7 @@ "sha256:08a96c641c3a74e44eb59afb61a24f2cb9f4d7188748e76ba4bb5edfa3cb7d1c", "sha256:f7b7ce16570fe9965acd6d30101a28f62fb4a7f9e926b3bbc9b61f8b04247e72" ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", "version": "==19.3.0" }, "azure-cli-core": { @@ -852,6 +878,7 @@ "sha256:d7bdc26475679dd073ba0ed2766445bb5b20ca4793ca0db32b399dccc6bc84b7", "sha256:ff032765bb8716d9387fd5376d987a937254b0619eff0972779515b5c98820bc" ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", "version": "==3.1.7" }, "bleach": { @@ -859,6 +886,7 @@ "sha256:2bce3d8fab545a6528c8fa5d9f9ae8ebc85a56da365c7f85180bfe96a35ef22f", "sha256:3c4c520fdb9db59ef139915a5db79f8b51bc2a7257ea0389f30c846883430a4b" ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", "version": "==3.1.5" }, "boto": { @@ -871,24 +899,25 @@ }, "boto3": { "hashes": [ - "sha256:2a97c9e8fd2c0f8d8a92262a0ccbd00aad8c4786acb74f620f54164070cb72ff", - "sha256:650d67b0d47b7bc0d79f04cc944506823dbbc2f76f60e64ce6d7cdd89f60a2eb" + "sha256:1bdab4f87ff39d5aab59b0aae69965bf604fa5608984c673877f4c62c1f16240", + "sha256:2b4924ccc1603d562969b9f3c8c74ff4a1f3bdbafe857c990422c73d8e2e229e" ], "index": "pypi", - "version": "==1.13.16" + "version": "==1.13.18" }, "botocore": { "hashes": [ - "sha256:0275023d023f0e3f9c27e5f23c437dd09ee715577cc628cf724e8bfbba2b459e", - "sha256:70d52f606bab2867971c0ea0c7723a769d81aa3cfd09f819d2b56e186e64ea0b" + "sha256:93574cf95a64c71d35c12c93a23f6214cf2f4b461be3bda3a436381cbe126a84", + "sha256:e65eb27cae262a510e335bc0c0e286e9e42381b1da0aafaa79fa13c1d8d74a95" ], - "version": "==1.16.16" + "version": "==1.16.18" }, "cachetools": { "hashes": [ "sha256:1d057645db16ca7fe1f3bd953558897603d6f0b9c51ed9d11eb4d071ec4e2aab", "sha256:de5d88f87781602201cde465d3afe837546663b168e8b39df67411b0bf10cefc" ], + "markers": "python_version ~= '3.5'", "version": "==4.1.0" }, "certifi": { @@ -932,6 +961,14 @@ "index": "pypi", "version": "==1.14.0" }, + "cfgv": { + "hashes": [ + "sha256:1ccf53320421aeeb915275a196e23b3b8ae87dea8ac6698b1638001d4a486d53", + "sha256:c8e8f552ffcc6194f4e18dd4f68d9aef0c0d58ae7e7be8c82bee3c5e9edfa513" + ], + "markers": "python_version >= '3.6.1'", + "version": "==3.1.0" + }, "chardet": { "hashes": [ "sha256:84ab92ed1c4d4f16916e05906b6b75a6c0fb5db821cc65e70cbd64a3e2a5eaae", @@ -944,6 +981,7 @@ "sha256:d2b5255c7c6349bc1bd1e59e08cd12acbbd63ce649f2588755783aa94dfb6b1a", "sha256:dacca89f4bfadd5de3d7489b7c8a566eee0d3676333fbb50030263894c38c0dc" ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", "version": "==7.1.2" }, "colorama": { @@ -951,6 +989,7 @@ "sha256:7d73d2a99753107a36ac6b455ee49046802e59d9d076ef8e47b61499fa29afff", "sha256:e96da0d330793e2cb9485e9ddfd918d456036c7149416295932478192f4436a1" ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", "version": "==0.4.3" }, "control": { @@ -1049,6 +1088,7 @@ "sha256:6687150770438374ab581bb7a1b327a847dd9c5749e396102de3fad4e8a3ef93", "sha256:f684034d135af4c6cbb949b8a4d2ed61634515257a67299e5f940fbaa34377f5" ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", "version": "==0.6.0" }, "dictdiffer": { @@ -1059,6 +1099,12 @@ "index": "pypi", "version": "==0.8.1" }, + "distlib": { + "hashes": [ + "sha256:2e166e231a26b36d6dfe35a48c4464346620f8645ed0ace01ee31822b288de21" + ], + "version": "==0.3.0" + }, "dlib": { "hashes": [ "sha256:d0eeaca07bc4c75973ad0f739a541d8fa4003af778f0dc1c2c595d470823819a" @@ -1072,21 +1118,23 @@ "sha256:9e4d7ecfc600058e07ba661411a2b7de2fd0fafa17d1a7f7361cd47b1175c827", "sha256:a2aeea129088da402665e92e0b25b04b073c04b2dce4ab65caaa38b7ce2e1a99" ], + "markers": "python_version >= '2.6' and python_version not in '3.0, 3.1, 3.2, 3.3'", "version": "==0.15.2" }, "elasticsearch": { "hashes": [ - "sha256:35de81968b78a1c708178773ccca56422661fc6e00905b81f48af8e8a9a2a6ba", - "sha256:eae591811e9bd82845ea22db3e891c30cad3d0f3e5dfd79cee80708872e5f626" + "sha256:9bfcb2bd137d6d7ca123e252b9d7261cfe4f7723f7b749a99c52b47766cf387c", + "sha256:e9138aa9de7624a6c6fbf5d0300bb11617cfe0a056fc6731665748731961d693" ], "index": "pypi", - "version": "==7.7.0" + "version": "==7.7.1" }, "entrypoints": { "hashes": [ "sha256:589f874b313739ad35be6e0cd7efde2a4e9b6fea91edcc34e58ecbb8dbe56d19", "sha256:c70dd71abe5a8c85e55e12c19bd91ccfeec11a6e99044204511f9ed547d48451" ], + "markers": "python_version >= '2.7'", "version": "==0.3" }, "fastcluster": { @@ -1118,6 +1166,13 @@ "index": "pypi", "version": "==1.1.26" }, + "filelock": { + "hashes": [ + "sha256:18d82244ee114f543149c66a6e0c14e9c4f8a1044b5cdaadd0f82159d6a6ff59", + "sha256:929b7d63ec5b7d6b71b0fa5ac14e030b3f70b75747cef1b10da9b879fef15836" + ], + "version": "==3.0.12" + }, "flask": { "hashes": [ "sha256:4efa1ae2d7c9865af48986de8aeb8504bf32c7f3d6fdc9353d34b21f4b127060", @@ -1146,6 +1201,7 @@ "hashes": [ "sha256:b1bead90b70cf6ec3f0710ae53a525360fa360d306a86583adc6bf83a4db537d" ], + "markers": "python_version >= '2.6' and python_version not in '3.0, 3.1, 3.2, 3.3'", "version": "==0.18.2" }, "gast": { @@ -1153,15 +1209,16 @@ "sha256:8f46f5be57ae6889a4e16e2ca113b1703ef17f2b0abceb83793eaba9e1351a45", "sha256:b881ef288a49aa81440d2c5eb8aeefd4c2bb8993d5f50edae7413a85bfdb3b57" ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", "version": "==0.3.3" }, "geoalchemy2": { "hashes": [ - "sha256:4c87177a570ed21307e255f22309e5e0a249e0b8fa9d800b9dc68a70af911074", - "sha256:85add5aa337ba697895a41608333088277144fa7ddb5eca2046a3794ade15f42" + "sha256:4385da5e24d01ee9d2af8ef0179994745d2a39931a84df04e74ebdb9a49c0c41", + "sha256:a5a2444d90ce7f2c6b2d7bd7346c8aed16fd32c3e190e631576a51814e8f7ee9" ], "index": "pypi", - "version": "==0.8.2" + "version": "==0.8.3" }, "git-pylint-commit-hook": { "hashes": [ @@ -1175,6 +1232,7 @@ "sha256:73b141d122942afe12e8bfdcb6900d5df35c27d39700f078363ba0b1298ad33b", "sha256:fbf25fee328c0828ef293459d9c649ef84ee44c0b932bb999d19df0ead1b40cf" ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", "version": "==1.15.0" }, "google-auth-oauthlib": { @@ -1283,42 +1341,25 @@ "sha256:bf52ec91244819c780341a3438d5d7b09f431d3f113a475147ac9b7b167a3d12", "sha256:e78960b31198511f45fd455534ae7645a6207d33e512d2e842c766d15d9c8080" ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", "version": "==8.2" }, + "identify": { + "hashes": [ + "sha256:be66b9673d59336acd18a3a0e0c10d35b8a780309561edf16c46b6b74b83f6af", + "sha256:ef6fa3d125c27516f8d1aaa2038c3263d741e8723825eb38350cdc0288ab35eb" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", + "version": "==1.4.17" + }, "idna": { "hashes": [ "sha256:7588d1c14ae4c77d74036e8c22ff447b26d0fde8f007354fd48a7814db15b7cb", "sha256:a068a21ceac8a4d63dbfd964670474107f541babbd2250d61922f029858365fa" ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", "version": "==2.9" }, - "imagecodecs": { - "hashes": [ - "sha256:0538f7a4def1f6745b2d83d21883dcd61e82bc8faaca810e3a35e6b551b455d1", - "sha256:22f3c39755752fe3a91a92fcf24002ca57a51efca1ab99e9919cf783f90b4026", - "sha256:286b87ee09506c35f099585e6b5ce245fb62c2a826aac4e0497cdfdfba631cc7", - "sha256:2bda6c7b13be73dfd202b3c23dc4b3003fdc02209835e348e4bd31ddca124d76", - "sha256:2c130b89fcb70bab3aa57ee0671423ab0e053c6ff7ed26646bf425592fa3116d", - "sha256:6275213bd611156fa2fd73ce81b29ca708c4344d36fe3686f567cd104ccf4d18", - "sha256:6f63ae2592086b1abbd40b699816c054dc7aad616df2b14c2e15cd2372b77653", - "sha256:91eb82b0167ff022a6a8dcf86e5871b635bfbe96801557e00d6b1e2a10ac25dd", - "sha256:9742b392640c1b2d05c6aaad956bd7e3bf461c7e0f403f7b25ee464a5c949c8c", - "sha256:9a9abc5498121f0005fb00dfbed57a062337445d32a39569e4378286b503125b", - "sha256:adc09e5f9af6927eccc35d60ae1ec422cd9791cee4d5456d39af6903dff19477", - "sha256:c019b19438dff31365fee3002b438992c16bc9955a036f466c600d80699cb5a2", - "sha256:c5667d4b8e97cf10b3754f5e8159d60620cdd35052ffc298346273d42284430f", - "sha256:c7367e01a199228b6526f05dc7fe7a85adac19f1b19e08a99edbdd2523cfcdc4", - "sha256:cf855a00bf5cb5a7cf1d608e7588ddc535d714e5422c3095dd811829b559f237", - "sha256:d1b0b2de7be918a8eada62c8d2339931381c86dbd43216a064e35ace5957e350", - "sha256:e0f3cfc2fc77c19118e173dca6af0dbed4a3cef75d3296762db687fd00fb7921", - "sha256:e8f460145258a28544d4119f58cab2daf87ac6653429ab9df7dff7d2cc30714f", - "sha256:eedf5be2c9c65a0d92970bda98dfd7e9525c137e631e1956753bb6ce369b08f9", - "sha256:f6722cd6a73501c508b361f485259f172898d3cf2530e6de71f3e89394a0a713", - "sha256:f6ac9dd40e1cdb72842fb72f147e8a51a1874c8f375629524566b388e841be20", - "sha256:fbdd0d42aa3c984377421767a892e77c40249870425aca0ba5629bdcd57d3ae4" - ], - "version": "==2020.2.18" - }, "imageio": { "hashes": [ "sha256:1e4ab29b3775bb093c7a35854a0412857145450183344678829b30e72263b001", @@ -1369,6 +1410,7 @@ "sha256:54da7e92468955c4fceacd0c86bd0ec997b0e1ee80d97f67c35a78b719dccab1", "sha256:6e811fcb295968434526407adb8796944f1988c5b65e8139058f2014cbe100fd" ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", "version": "==4.3.21" }, "itsdangerous": { @@ -1376,6 +1418,7 @@ "sha256:321b033d07f2a4136d3ec762eac9f16a10ccd60f53c0c91af90217ace7ba1f19", "sha256:b12271b2047cb23eeb98c8b5622e2e5c5e9abd9784a153e9d8ef9cb4dd09d749" ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", "version": "==1.1.0" }, "jedi": { @@ -1383,6 +1426,7 @@ "sha256:cd60c93b71944d628ccac47df9a60fec53150de53d42dc10a7fc4b5ba6aae798", "sha256:df40c97641cb943661d2db4c33c2e1ff75d491189423249e989bcea4464f3030" ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", "version": "==0.17.0" }, "jinja2": { @@ -1398,6 +1442,7 @@ "sha256:b85d0567b8666149a93172712e68920734333c0ce7e89b78b3e987f71e5ed4f9", "sha256:cdf6525904cc597730141d61b36f2e4b8ecc257c420fa2f4549bac2c2d0cb72f" ], + "markers": "python_version >= '2.6' and python_version not in '3.0, 3.1, 3.2, 3.3'", "version": "==0.10.0" }, "joblib": { @@ -1436,6 +1481,7 @@ "sha256:3a32fa4d0b16d1c626b30c3002a62dfd86d6863ed39eaba3f537fade197bb756", "sha256:cde8e83aab3ec1c614f221ae54713a9a46d3bf28292609d2db1b439bef5a8c8e" ], + "markers": "python_version >= '3.5'", "version": "==6.1.3" }, "jupyter-console": { @@ -1443,6 +1489,7 @@ "sha256:6f6ead433b0534909df789ea64f0a14cdf9b6b2360757756f08182be4b9e431b", "sha256:b392155112ec86a329df03b225749a0fa903aa80811e8eda55796a40b5e470d8" ], + "markers": "python_version >= '3.5'", "version": "==6.1.0" }, "jupyter-core": { @@ -1450,6 +1497,7 @@ "sha256:394fd5dd787e7c8861741880bdf8a00ce39f95de5d18e579c74b882522219e7e", "sha256:a4ee613c060fe5697d913416fc9d553599c05e4492d58fac1192c9a6844abb21" ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", "version": "==4.6.3" }, "keras-applications": { @@ -1486,6 +1534,7 @@ "sha256:efcf3397ae1e3c3a4a0a0636542bcad5adad3b1dd3e8e629d0b6e201347176c8", "sha256:fccefc0d36a38c57b7bd233a9b485e2f1eb71903ca7ad7adacad6c28a56d62d2" ], + "markers": "python_version >= '3.6'", "version": "==1.2.0" }, "knack": { @@ -1519,6 +1568,7 @@ "sha256:efa1909120ce98bbb3777e8b6f92237f5d5c8ea6758efea36a473e1d38f7d3e4", "sha256:f3900e8a5de27447acbf900b4750b0ddfd7ec1ea7fbaf11dfa911141bc522af0" ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", "version": "==1.4.3" }, "limits": { @@ -1540,6 +1590,7 @@ "sha256:1fafe3f1ecabfb514a5285fca634a53c1b32a81cb0feb154264d55bf2ff22c17", "sha256:c467cd6233885534bf0fe96e62e3cf46cfc1605112356c4f9981512b8174de59" ], + "markers": "python_version >= '3.5'", "version": "==3.2.2" }, "markupsafe": { @@ -1578,6 +1629,7 @@ "sha256:e249096428b3ae81b08327a63a485ad0878de3fb939049038579ac0ef61e17e7", "sha256:e8313f01ba26fbbe36c7be1966a7b7424942f670f38e666995b88d012765b9be" ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", "version": "==1.1.1" }, "matplotlib": { @@ -1684,6 +1736,7 @@ "sha256:fcfbb44c59af3f8ea984de67ec7c306f618a3ec771c2843804069917a8f2e255", "sha256:feed85993dbdb1dbc29102f50bca65bdc68f2c0c8d352468c25b54874f23c39d" ], + "markers": "python_version >= '3.5'", "version": "==4.7.6" }, "nbconvert": { @@ -1691,6 +1744,7 @@ "sha256:21fb48e700b43e82ba0e3142421a659d7739b65568cc832a13976a77be16b523", "sha256:f0d6ec03875f96df45aa13e21fd9b8450c42d7e1830418cccc008c0df725fcee" ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", "version": "==5.6.1" }, "nbformat": { @@ -1698,6 +1752,7 @@ "sha256:049af048ed76b95c3c44043620c17e56bc001329e07f83fec4f177f0e3d7b757", "sha256:276343c78a9660ab2a63c28cc33da5f7c58c092b3f3a40b6017ae2ce6689320d" ], + "markers": "python_version >= '3.5'", "version": "==5.0.6" }, "networkx": { @@ -1708,11 +1763,18 @@ "index": "pypi", "version": "==2.4" }, + "nodeenv": { + "hashes": [ + "sha256:5b2438f2e42af54ca968dd1b374d14a1194848955187b0e5e4be1f73813a5212" + ], + "version": "==1.3.5" + }, "notebook": { "hashes": [ "sha256:3edc616c684214292994a3af05eaea4cc043f6b4247d830f3a2f209fa7639a80", "sha256:47a9092975c9e7965ada00b9a20f0cf637d001db60d241d479f53c0be117ad48" ], + "markers": "python_version >= '3.5'", "version": "==6.0.3" }, "numpy": { @@ -1747,6 +1809,7 @@ "sha256:bee41cc35fcca6e988463cacc3bcb8a96224f470ca547e697b604cc697b2f889", "sha256:df884cd6cbe20e32633f1db1072e9356f53638e4361bef4e8b03c9127c9328ea" ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", "version": "==3.1.0" }, "opencv-python": { @@ -1780,6 +1843,7 @@ "sha256:83b76a98d18ae6a5cc7a0d88955a7f74881f0e567a0f4c949d24c942753eb998", "sha256:96f819d46da2f937eaf326336a114aaeccbcbdb9de460d42e8b5f480a69adca7" ], + "markers": "python_version >= '3.5'", "version": "==3.2.1" }, "osmium": { @@ -1817,6 +1881,7 @@ "sha256:4357f74f47b9c12db93624a82154e9b120fa8293699949152b22065d556079f8", "sha256:998416ba6962ae7fbd6596850b80e17859a5753ba17c32284f67bfff33784181" ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", "version": "==20.4" }, "pandas": { @@ -1838,6 +1903,7 @@ "sha256:ca84a44cf727f211752e91eab2d1c6c1ab0f0540d5636a8382a3af428542826e", "sha256:d234bcf669e8b4d6cbcd99e3ce7a8918414520aeb113e2a81aeb02d0a533d7f7" ], + "markers": "python_version >= '3.6.1'", "version": "==1.0.3" }, "pandocfilters": { @@ -1859,6 +1925,7 @@ "sha256:158c140fc04112dc45bca311633ae5033c2c2a7b732fa33d0955bad8152a8dd0", "sha256:908e9fae2144a076d72ae4e25539143d40b8e3eafbaeae03c1bfe226f4cdf12c" ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", "version": "==0.7.0" }, "pexpect": { @@ -1878,28 +1945,29 @@ }, "pillow": { "hashes": [ - "sha256:04766c4930c174b46fd72d450674612ab44cca977ebbcc2dde722c6933290107", - "sha256:0e2a3bceb0fd4e0cb17192ae506d5f082b309ffe5fc370a5667959c9b2f85fa3", - "sha256:0f01e63c34f0e1e2580cc0b24e86a5ccbbfa8830909a52ee17624c4193224cd9", + "sha256:ccc9ad2460eb5bee5642eaf75a0438d7f8887d484490d5117b98edd7f33118b7", "sha256:12e4bad6bddd8546a2f9771485c7e3d2b546b458ae8ff79621214119ac244523", + "sha256:0e2a3bceb0fd4e0cb17192ae506d5f082b309ffe5fc370a5667959c9b2f85fa3", + "sha256:04766c4930c174b46fd72d450674612ab44cca977ebbcc2dde722c6933290107", "sha256:1f694e28c169655c50bb89a3fa07f3b854d71eb47f50783621de813979ba87f3", - "sha256:3d25dd8d688f7318dca6d8cd4f962a360ee40346c15893ae3b95c061cdbc4079", - "sha256:4b02b9c27fad2054932e89f39703646d0c543f21d3cc5b8e05434215121c28cd", - "sha256:9744350687459234867cbebfe9df8f35ef9e1538f3e729adbd8fde0761adb705", - "sha256:a0b49960110bc6ff5fead46013bcb8825d101026d466f3a4de3476defe0fb0dd", "sha256:ae2b270f9a0b8822b98655cb3a59cdb1bd54a34807c6c56b76dd2e786c3b7db3", "sha256:b37bb3bd35edf53125b0ff257822afa6962649995cbdfde2791ddb62b239f891", - "sha256:b532bcc2f008e96fd9241177ec580829dee817b090532f43e54074ecffdcd97f", "sha256:b67a6c47ed963c709ed24566daa3f95a18f07d3831334da570c71da53d97d088", - "sha256:b943e71c2065ade6fef223358e56c167fc6ce31c50bc7a02dd5c17ee4338e8ac", - "sha256:ccc9ad2460eb5bee5642eaf75a0438d7f8887d484490d5117b98edd7f33118b7", "sha256:d23e2aa9b969cf9c26edfb4b56307792b8b374202810bd949effd1c6e11ebd6d", - "sha256:eaa83729eab9c60884f362ada982d3a06beaa6cc8b084cf9f76cae7739481dfa", + "sha256:0f01e63c34f0e1e2580cc0b24e86a5ccbbfa8830909a52ee17624c4193224cd9", "sha256:ee94fce8d003ac9fd206496f2707efe9eadcb278d94c271f129ab36aa7181344", "sha256:f455efb7a98557412dc6f8e463c1faf1f1911ec2432059fa3e582b6000fc90e2", "sha256:f46e0e024346e1474083c729d50de909974237c72daca05393ee32389dabe457", + "sha256:b943e71c2065ade6fef223358e56c167fc6ce31c50bc7a02dd5c17ee4338e8ac", + "sha256:3d25dd8d688f7318dca6d8cd4f962a360ee40346c15893ae3b95c061cdbc4079", + "sha256:9744350687459234867cbebfe9df8f35ef9e1538f3e729adbd8fde0761adb705", + "sha256:f784aad988f12c80aacfa5b381ec21fd3f38f851720f652b9f33facc5101cf4d", + "sha256:eaa83729eab9c60884f362ada982d3a06beaa6cc8b084cf9f76cae7739481dfa", "sha256:f54be399340aa602066adb63a86a6a5d4f395adfdd9da2b9a0162ea808c7b276", - "sha256:f784aad988f12c80aacfa5b381ec21fd3f38f851720f652b9f33facc5101cf4d" + "sha256:b532bcc2f008e96fd9241177ec580829dee817b090532f43e54074ecffdcd97f", + "sha256:4b02b9c27fad2054932e89f39703646d0c543f21d3cc5b8e05434215121c28cd", + "sha256:70e3e0d99a0dcda66283a185f80697a9b08806963c6149c8e6c5f452b2aa59c0", + "sha256:a0b49960110bc6ff5fead46013bcb8825d101026d466f3a4de3476defe0fb0dd" ], "index": "pypi", "version": "==7.1.2" @@ -1925,6 +1993,14 @@ "index": "pypi", "version": "==2.0.4" }, + "pre-commit": { + "hashes": [ + "sha256:5559e09afcac7808933951ffaf4ff9aac524f31efbc3f24d021540b6c579813c", + "sha256:703e2e34cbe0eedb0d319eff9f7b83e2022bb5a3ab5289a6a8841441076514d0" + ], + "index": "pypi", + "version": "==2.4.0" + }, "prometheus-client": { "hashes": [ "sha256:983c7ac4b47478720db338f1491ef67a100b474e3bc7dafcbaefb7d0b8f9b01c", @@ -1937,28 +2013,29 @@ "sha256:563d1a4140b63ff9dd587bda9557cffb2fe73650205ab6f4383092fb882e7dc8", "sha256:df7e9e63aea609b1da3a65641ceaf5bc7d05e0a04de5bd45d05dbeffbabf9e04" ], + "markers": "python_version >= '3.6.1'", "version": "==3.0.5" }, "protobuf": { "hashes": [ - "sha256:04d0b2bd99050d09393875a5a25fd12337b17f3ac2e29c0c1b8e65b277cbfe72", - "sha256:05288e44638e91498f13127a3699a6528dec6f9d3084d60959d721bfb9ea5b98", - "sha256:175d85370947f89e33b3da93f4ccdda3f326bebe3e599df5915ceb7f804cd9df", - "sha256:440a8c77531b3652f24999b249256ed01fd44c498ab0973843066681bd276685", - "sha256:49fb6fab19cd3f30fa0e976eeedcbf2558e9061e5fa65b4fe51ded1f4002e04d", - "sha256:4c7cae1f56056a4a2a2e3b00b26ab8550eae738bd9548f4ea0c2fcb88ed76ae5", - "sha256:519abfacbb421c3591d26e8daf7a4957763428db7267f7207e3693e29f6978db", - "sha256:60f32af25620abc4d7928d8197f9f25d49d558c5959aa1e08c686f974ac0b71a", - "sha256:613ac49f6db266fba243daf60fb32af107cfe3678e5c003bb40a381b6786389d", - "sha256:954bb14816edd24e746ba1a6b2d48c43576393bbde2fb8e1e3bd6d4504c7feac", - "sha256:9b1462c033a2cee7f4e8eb396905c69de2c532c3b835ff8f71f8e5fb77c38023", - "sha256:c0767f4d93ce4288475afe0571663c78870924f1f8881efd5406c10f070c75e4", - "sha256:c45f5980ce32879391144b5766120fd7b8803129f127ce36bd060dd38824801f", - "sha256:eeb7502f59e889a88bcb59f299493e215d1864f3d75335ea04a413004eb4fe24", - "sha256:fdb1742f883ee4662e39fcc5916f2725fec36a5191a52123fec60f8c53b70495", - "sha256:fe554066c4962c2db0a1d4752655223eb948d2bfa0fb1c4a7f2c00ec07324f1c" + "sha256:304e08440c4a41a0f3592d2a38934aad6919d692bb0edfb355548786728f9a5e", + "sha256:50b5fee674878b14baea73b4568dc478c46a31dd50157a5b5d2f71138243b1a9", + "sha256:5524c7020eb1fb7319472cb75c4c3206ef18b34d6034d2ee420a60f99cddeb07", + "sha256:612bc97e42b22af10ba25e4140963fbaa4c5181487d163f4eb55b0b15b3dfcd2", + "sha256:6f349adabf1c004aba53f7b4633459f8ca8a09654bf7e69b509c95a454755776", + "sha256:85b94d2653b0fdf6d879e39d51018bf5ccd86c81c04e18a98e9888694b98226f", + "sha256:87535dc2d2ef007b9d44e309d2b8ea27a03d2fa09556a72364d706fcb7090828", + "sha256:a7ab28a8f1f043c58d157bceb64f80e4d2f7f1b934bc7ff5e7f7a55a337ea8b0", + "sha256:b5a114ea9b7fc90c2cc4867a866512672a47f66b154c6d7ee7e48ddb68b68122", + "sha256:be04fe14ceed7f8641e30f36077c1a654ff6f17d0c7a5283b699d057d150d82a", + "sha256:bff02030bab8b969f4de597543e55bd05e968567acb25c0a87495a31eb09e925", + "sha256:c9ca9f76805e5a637605f171f6c4772fc4a81eced4e2f708f79c75166a2c99ea", + "sha256:e1464a4a2cf12f58f662c8e6421772c07947266293fb701cb39cd9c1e183f63c", + "sha256:e72736dd822748b0721f41f9aaaf6a5b6d5cfc78f6c8690263aef8bba4457f0e", + "sha256:eafe9fa19fcefef424ee089fb01ac7177ff3691af7cc2ae8791ae523eb6ca907", + "sha256:f4b73736108a416c76c17a8a09bc73af3d91edaa26c682aaa460ef91a47168d3" ], - "version": "==3.12.1" + "version": "==3.12.2" }, "ptyprocess": { "hashes": [ @@ -1970,40 +2047,72 @@ }, "pyasn1": { "hashes": [ + "sha256:014c0e9976956a08139dc0712ae195324a75e142284d5f87f1a87ee1b068a359", + "sha256:03840c999ba71680a131cfaee6fab142e1ed9bbd9c693e285cc6aca0d555e576", + "sha256:0458773cfe65b153891ac249bcf1b5f8f320b7c2ce462151f8fa74de8934becf", + "sha256:08c3c53b75eaa48d71cf8c710312316392ed40899cb34710d092e96745a358b7", "sha256:39c7e2ec30515947ff4e87fb6f456dfc6e84857d34be479c9d4a4ba4bf46aa5d", - "sha256:aef77c9fb94a3ac588e87841208bdec464471d9871bd5050a287cc9a475cd0ba" + "sha256:5c9414dcfede6e441f7e8f81b43b34e834731003427e5b09e4e00e3172a10f00", + "sha256:6e7545f1a61025a4e58bb336952c5061697da694db1cae97b116e9c46abcf7c8", + "sha256:78fa6da68ed2727915c4767bb386ab32cdba863caa7dbe473eaae45f9959da86", + "sha256:7ab8a544af125fb704feadb008c99a88805126fb525280b2270bb25cc1d78a12", + "sha256:99fcc3c8d804d1bc6d9a099921e39d827026409a58f2a720dcdb89374ea0c776", + "sha256:aef77c9fb94a3ac588e87841208bdec464471d9871bd5050a287cc9a475cd0ba", + "sha256:e89bf84b5437b532b0803ba5c9a5e054d21fec423a89952a74f87fa2c9b7bce2", + "sha256:fec3e9d8e36808a28efb59b489e4528c10ad0f480e57dcc32b4de5c9d8c9fdf3" ], "version": "==0.4.8" }, "pyasn1-modules": { "hashes": [ + "sha256:0845a5582f6a02bb3e1bde9ecfc4bfcae6ec3210dd270522fee602365430c3f8", + "sha256:0fe1b68d1e486a1ed5473f1302bd991c1611d319bba158e98b106ff86e1d7199", + "sha256:15b7c67fabc7fc240d87fb9aabf999cf82311a6d6fb2c70d00d3d0604878c811", + "sha256:426edb7a5e8879f1ec54a1864f16b882c2837bfd06eee62f2c982315ee2473ed", + "sha256:65cebbaffc913f4fe9e4808735c95ea22d7a7775646ab690518c056784bc21b4", "sha256:905f84c712230b2c592c19470d3ca8d552de726050d1d1716282a1f6146be65e", - "sha256:a50b808ffeb97cb3601dd25981f6b016cbb3d31fbf57a8b8a87428e6158d0c74" + "sha256:a50b808ffeb97cb3601dd25981f6b016cbb3d31fbf57a8b8a87428e6158d0c74", + "sha256:a99324196732f53093a84c4369c996713eb8c89d360a496b599fb1a9c47fc3eb", + "sha256:b80486a6c77252ea3a3e9b1e360bc9cf28eaac41263d173c032581ad2f20fe45", + "sha256:c29a5e5cc7a3f05926aff34e097e84f8589cd790ce0ed41b67aed6857b26aafd", + "sha256:cbac4bc38d117f2a49aeedec4407d23e8866ea4ac27ff2cf7fb3e5b570df19e0", + "sha256:f39edd8c4ecaa4556e989147ebf219227e2cd2e8a43c7e7fcb1f1c18c5fd6a3d", + "sha256:fe0644d9ab041506b62782e92b06b8c68cca799e1a9636ec398675459e031405" ], "version": "==0.2.8" }, "pycocotools": { "git": "https://github.com/cocodataset/cocoapi.git", "ref": "8c9bcc3cf640524c4c20a9c40e89cb6a2f2fa0e9", - "subdirectory": "PythonAPI" + "subdirectory": "PythonAPI", + "version": "==2.0" }, "pycparser": { "hashes": [ "sha256:2d475327684562c3a96cc71adf7dc8c4f0565175cf86b6d7a404ff4c771f15f0", "sha256:7582ad22678f0fcd81102833f60ef8d0e57288b6b5fb00323d101be910e35705" ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", "version": "==2.20" }, "pycurl": { "hashes": [ "sha256:1957c867e2a341f5526c107c7bbc5014d6e75fdc2a14294fcb8a47663fbd2e15", + "sha256:404862665c4e2dbe814c9495d1193a65ae0f291a7074ae1ef1f0bffd93c14ea6", "sha256:50aee0469511a9708a1f1a50d510b5ec2013fc6f5e720c32bbcb3b9c7b0f45b1", "sha256:667db26516e50ce4a853745906f3b149c24756d85061b9d966eb7ec43a8c48a4", + "sha256:789a76e9265cdb7c947ec0afde2330492ccc0f2cee8e3ca8c0822082b6ae213e", "sha256:7cc13d3421cbd31921d77e22d1f57c0e1a8d0fb461938a587689a93162ccef2f", "sha256:a0c62dbc66b9b947832307d6cf7bdb5e4da906ce7b3efe6f74292e8f3dc5abe3", "sha256:a6966e8d9ccda31c6d077c4f8673aaa88141cc73d50e110e93e627b816d17fd1", + "sha256:b393aa90abf07ddd51d750c0c6a801155af07f938af6ec8b89ea00ff3f892887", + "sha256:b58e4d7888edd74dce40b9481962f0537dc77a44d99b5cc3385c3ffdaf2abf93", + "sha256:b6512b864466b242ffc3997e982d4590e035d056d37e63136fa137a4044ce2f1", + "sha256:b651f47c61c051ea93299b0e7a341860d33bfe2cf524237be0fb56399f026d98", "sha256:beadfa7f052626864d70eb33cec8f2aeece12dfb483c2424cc07b057f83b7d35", "sha256:c5c379c8cc777dda397f86f0d0049480250ae84a82a9d99d668f461d368fb39c", + "sha256:daa017e8dc887129e4a2cd88b7be8c431e434b89737348eaa12096026020756a", + "sha256:e1aea68b1d39dbcafc7298214f51f6ebd5f188c06aa418e9c046dfe419fe7ecf", "sha256:ec7dd291545842295b7b56c12c90ffad2976cc7070c98d7b1517b7b6cd5994b3" ], "index": "pypi", @@ -2017,13 +2126,16 @@ "sha256:0b3b26f6ad21a651301acf48c48fdc541bd3dbbdeb214d82bbad5c9403ed71e8", "sha256:10743ba4d4d07fb2437f7399fe65b99b99202b92899b0b8f085d3f97bdd408e0", "sha256:10ea85a1a2a06de7e9ee4b52c391f574104017bdc8a5569d92a95d4b6e4df9cc", + "sha256:1162be5304d72e84d173c1c0cfa68ba742a6d20f166095e945ee8f3952a25a25", "sha256:1361dbc180786f17fe399f632a0809881bbaa588c094a613a5d139f0a9f5bb17", + "sha256:1f2d9df9374677a963d41e3247eea9a9da768a8556d055ffbd55fff0a48d8a1a", "sha256:1f648ee199a7359b8bdd9534fbbb6d046910ed821ca565d23083eb4e128b38ce", "sha256:370202bbc33b5747986eee24f44e2e84d5fb18a48398ec944018c288e9298874", "sha256:56eefff1c9c4338533673f4cb00c975b1a807d41b429a66ecd6e0cae274b99b2", "sha256:660ab9e8dd960d312f0bd1b0b7b62d22891fb6e188ebd980cc78d57336d067d2", "sha256:68c3a9224bb9e878f244aad9cd842ccef10e9c074c6284b61ec2fd9931e67def", "sha256:71d629fae5b20a88cdbf541abc4f2025b823731ee73b8b2380d9c86160640d11", + "sha256:7ae141466b6783abeaf66e10884a2824b3e47ab681f411e83b5c9884e15ba81b", "sha256:7df846da4d24e85a38240e1bcc1d5579d72e4a8b675b4bc77aad899cb8d53feb", "sha256:7fd14b068e784b118b51eda271a8fc3bfe2b0c54b6146ac6e34f66858ac27834", "sha256:8068af05b2a2fc9984e55ad05f9131ec767b2fc312df0f50972e88c4485f5d8e", @@ -2032,10 +2144,13 @@ "sha256:8a80cff2fd8818daec3b084b4caa5c5ecbe2a2460d9c10f96682350032c3b5fe", "sha256:921d6565b40ff3da1e505efa1f75f0438214ca0d6b413e19a481fb52bff1ca7a", "sha256:96bc63d8e56998f079d1d92e077213935f3dea800300912e4176c2a300135e13", + "sha256:a0fe0dcdbba303cd5dd01d46231cbeabf0bbe2f9c88e6066458c8eeb584352de", "sha256:b47875c58b507b74361cecd0083411e0b19ae15dff7da45e104da86d8a1fefcb", "sha256:bdeb5399d90d352a393c2461ff19f2d627c602706be7ea1415021b4862ce720d", + "sha256:d4e0cd3392ebc88c321175b205ebeb0c3247ceb2468d940d90fcb849075b468f", "sha256:d72e3a583b081058107e5157b706cc409b3afdae892f560481ef298fd4154a29", "sha256:d76183fa2a6070006d0f8e95fb707edface752564248f63267bdd98464b55feb", + "sha256:da1d869fb24e2f852c259b79e80f47c6f38a1176f872bb79aa866ca79b052867", "sha256:e63c0d05c384337b3354e6368769204f0b965b092d167f55eea26e13e97208d8", "sha256:ecad810029f8058712ae649588fc0b2faaf0746be84aa225de285b2a000aba8f", "sha256:f6d0ea74b97a487e1f491c75386d494ecd573851af4e08090eacfa707ba43428" @@ -2115,10 +2230,12 @@ "sha256:a60756d55f0887023b3899e6c2923ba5f0042fb11b1d17810b4e07395404f33e", "sha256:a676bd2fbc2309092b9bbb0083d35718b5420af3a42135ebb1e4c3633f56604d", "sha256:a732838c78554c1257ff2492f5c8c4c7312d0aecd7f732149e255f3749edd5ee", + "sha256:ad3dc88dfe61f0f1f9b99c6bc833ea2f45203a937a18f0d2faa57c6952656012", "sha256:ae65d65fde4135ef423a2608587c9ef585a3551fc2e4e431e7c7e527047581be", "sha256:b070a4f064a9edb70f921bfdc270725cff7a78c22036dd37a767c51393fb956f", "sha256:b6da85949aa91e9f8c521681344bd2e163de894a5492337fba8b05c409225a4f", "sha256:bbf47110765b2a999803a7de457567389253f8670f7daafb98e059c899ce9764", + "sha256:bd9c1e6f92b4888ae3ef7ae23262c513b962f09f3fb3b48581dde5df7d7a860a", "sha256:c06b3f998d2d7160db58db69adfb807d2ec307e883e2f17f6b87a1ef6c723f11", "sha256:c318fb70542be16d3d4063cde6010b1e4d328993a793529c15a619251f517c39", "sha256:c4aef42e5fa4c9d5a99f751fb79caa880dac7eaf8a65121549318b984676a1b7", @@ -2128,6 +2245,7 @@ "sha256:e2b46e092ea54b732d98c476720386ff2ccd126de1e52076b470b117bff7e409", "sha256:e334c4f39a2863a239d38b5829e442a87f241a92da9941861ee6ec5d6380b7fe", "sha256:e5c54f04ca42bbb5153aec5d4f2e3d9f81e316945220ac318abd4083308143f5", + "sha256:f4d06764a06b137e48db6d569dc95614d9d225c89842c885669ee8abc9f28c7a", "sha256:f96333f9d2517c752c20a35ff95de5fc2763ac8cdb1653df0f6f45d281620606" ], "index": "pypi", @@ -2143,29 +2261,25 @@ }, "pynacl": { "hashes": [ - "sha256:05c26f93964373fc0abe332676cb6735f0ecad27711035b9472751faa8521255", - "sha256:0c6100edd16fefd1557da078c7a31e7b7d7a52ce39fdca2bec29d4f7b6e7600c", - "sha256:0d0a8171a68edf51add1e73d2159c4bc19fc0718e79dec51166e940856c2f28e", - "sha256:1c780712b206317a746ace34c209b8c29dbfd841dfbc02aa27f2084dd3db77ae", - "sha256:2424c8b9f41aa65bbdbd7a64e73a7450ebb4aa9ddedc6a081e7afcc4c97f7621", - "sha256:2d23c04e8d709444220557ae48ed01f3f1086439f12dbf11976e849a4926db56", - "sha256:30f36a9c70450c7878053fa1344aca0145fd47d845270b43a7ee9192a051bf39", - "sha256:37aa336a317209f1bb099ad177fef0da45be36a2aa664507c5d72015f956c310", - "sha256:4943decfc5b905748f0756fdd99d4f9498d7064815c4cf3643820c9028b711d1", - "sha256:53126cd91356342dcae7e209f840212a58dcf1177ad52c1d938d428eebc9fee5", - "sha256:57ef38a65056e7800859e5ba9e6091053cd06e1038983016effaffe0efcd594a", - "sha256:5bd61e9b44c543016ce1f6aef48606280e45f892a928ca7068fba30021e9b786", - "sha256:6482d3017a0c0327a49dddc8bd1074cc730d45db2ccb09c3bac1f8f32d1eb61b", - "sha256:7d3ce02c0784b7cbcc771a2da6ea51f87e8716004512493a2b69016326301c3b", - "sha256:a14e499c0f5955dcc3991f785f3f8e2130ed504fa3a7f44009ff458ad6bdd17f", - "sha256:a39f54ccbcd2757d1d63b0ec00a00980c0b382c62865b61a505163943624ab20", - "sha256:aabb0c5232910a20eec8563503c153a8e78bbf5459490c49ab31f6adf3f3a415", - "sha256:bd4ecb473a96ad0f90c20acba4f0bf0df91a4e03a1f4dd6a4bdc9ca75aa3a715", - "sha256:bf459128feb543cfca16a95f8da31e2e65e4c5257d2f3dfa8c0c1031139c9c92", - "sha256:e2da3c13307eac601f3de04887624939aca8ee3c9488a0bb0eca4fb9401fc6b1", - "sha256:f67814c38162f4deb31f68d590771a29d5ae3b1bd64b75cf232308e5c74777e0" + "sha256:06cbb4d9b2c4bd3c8dc0d267416aaed79906e7b33f114ddbf0911969794b1cc4", + "sha256:11335f09060af52c97137d4ac54285bcb7df0cef29014a1a4efe64ac065434c4", + "sha256:2fe0fc5a2480361dcaf4e6e7cea00e078fcda07ba45f811b167e3f99e8cff574", + "sha256:30f9b96db44e09b3304f9ea95079b1b7316b2b4f3744fe3aaecccd95d547063d", + "sha256:511d269ee845037b95c9781aa702f90ccc36036f95d0f31373a6a79bd8242e25", + "sha256:537a7ccbea22905a0ab36ea58577b39d1fa9b1884869d173b5cf111f006f689f", + "sha256:54e9a2c849c742006516ad56a88f5c74bf2ce92c9f67435187c3c5953b346505", + "sha256:757250ddb3bff1eecd7e41e65f7f833a8405fede0194319f87899690624f2122", + "sha256:7757ae33dae81c300487591c68790dfb5145c7d03324000433d9a2c141f82af7", + "sha256:7c6092102219f59ff29788860ccb021e80fffd953920c4a8653889c029b2d420", + "sha256:8122ba5f2a2169ca5da936b2e5a511740ffb73979381b4229d9188f6dcb22f1f", + "sha256:9c4a7ea4fb81536c1b1f5cc44d54a296f96ae78c1ebd2311bd0b60be45a48d96", + "sha256:cd401ccbc2a249a47a3a1724c2918fcd04be1f7b54eb2a5a71ff915db0ac51c6", + "sha256:d452a6746f0a7e11121e64625109bc4468fc3100452817001dbe018bb8b08514", + "sha256:ea6841bc3a76fa4942ce00f3bda7d436fda21e2d91602b9e21b7ca9ecab8f3ff", + "sha256:f8851ab9041756003119368c1e6cd0b9c631f46d686b3904b18c0139f4419f80" ], - "version": "==1.3.0" + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", + "version": "==1.4.0" }, "pynmea2": { "hashes": [ @@ -2187,6 +2301,7 @@ "sha256:c203ec8783bf771a155b207279b9bccb8dea02d8f0c9e5f8ead507bc3246ecc1", "sha256:ef9d7589ef3c200abe66653d3f1ab1033c3c419ae9b9bdb1240a85b024efc88b" ], + "markers": "python_version >= '2.6' and python_version not in '3.0, 3.1, 3.2, 3.3'", "version": "==2.4.7" }, "pyprof2calltree": { @@ -2299,6 +2414,7 @@ "sha256:d510aef84d9852653d079c84f2f81a82d5d09815e625f35c95714e7364570ad4", "sha256:e02a0558e0c2ac8b8bbe6a6ac18c136767ec56b96a321e0dfde2173adfa5a504" ], + "markers": "python_version >= '3.5'", "version": "==1.1.1" }, "pyyaml": { @@ -2385,7 +2501,8 @@ "requests-oauthlib": { "hashes": [ "sha256:7f71572defaecd16372f9006f33c2ec8c077c3cfa6f5911a9a90202beb513f3d", - "sha256:b4261601a71fd721a8bd6d7aa1cc1d6a8a93b4a9f5e96626f8e4d91e8beeaa6a" + "sha256:b4261601a71fd721a8bd6d7aa1cc1d6a8a93b4a9f5e96626f8e4d91e8beeaa6a", + "sha256:fa6c47b933f01060936d87ae9327fead68768b69c6c9ea2109c48be30f2d4dbc" ], "version": "==1.3.0" }, @@ -2509,17 +2626,29 @@ "sha256:0fe3994207485efb63d8f10a833ff31236ed27e3b23dadd0bf51c9900313f8f2", "sha256:17163e643dbf125bb552de17c826b0161c68c970335d270e174363d19e7ea882", "sha256:1d1e929cdd15151f3c0b2efe953b3281b2fd5ad5f234f77aca725f28486466f6", + "sha256:1d346c2c1d7dd79c118f0cc7ec5a1c4127e0c8ffc83e7b13fc5709ff78c9bb84", "sha256:1ea59f570b9d4916ae5540a9181f9c978e16863383738b69a70363bc5e63c4cb", + "sha256:1fbba86098bbfc1f85c5b69dc9a6d009055104354e0d9880bb00b692e30e0078", + "sha256:229edb079d5dd81bf12da952d4d825bd68d1241381b37d3acf961b384c9934de", "sha256:22a7acb81968a7c64eba7526af2cf566e7e2ded1cb5c83f0906b17ff1540f866", "sha256:2b4b2b738b3b99819a17feaf118265d0753d5536049ea570b3c43b51c4701e81", "sha256:4cf91aab51b02b3327c9d51897960c554f00891f9b31abd8a2f50fd4a0071ce8", + "sha256:4fd5f79590694ebff8dc980708e1c182d41ce1fda599a12189f0ca96bf41ad70", + "sha256:5cfd495527f8b85ce21db806567de52d98f5078a8e9427b18e251c68bd573a26", + "sha256:60aad424e47c5803276e332b2a861ed7a0d46560e8af53790c4c4fb3420c26c2", + "sha256:7739940d68b200877a15a5ff5149e1599737d6dd55e302625650629350466418", "sha256:7cce4bac7e0d66f3a080b80212c2238e063211fe327f98d764c6acbc214497fc", "sha256:8027bd5f1e633eb61b8239994e6fc3aba0346e76294beac22a892eb8faa92ba1", "sha256:86afc5b5cbd42d706efd33f280fec7bd7e2772ef54e3f34cf6b30777cd19a614", "sha256:87d349517b572964350cc1adc5a31b493bbcee284505e81637d0174b2758ba17", + "sha256:8de378d589eccbc75941e480b4d5b4db66f22e4232f87543b136b1f093fff342", "sha256:926bcbef9eb60e798eabda9cd0bbcb0fca70d2779aa0aa56845749d973eb7ad5", "sha256:9a126c3a91df5b1403e965ba63b304a50b53d8efc908a8c71545ed72535374a3", + "sha256:ad8dd3454d0c65c0f92945ac86f7b9efb67fa2040ba1b0189540e984df904378", + "sha256:d140e9376e7f73c1f9e0a8e3836caf5eec57bbafd99259d56979da05a6356388", + "sha256:da00675e5e483ead345429d4f1374ab8b949fba4429d60e71ee9d030ced64037", "sha256:daaf4d11db982791be74b23ff4729af2c7da79316de0bebf880fa2d60bcc8c5a", + "sha256:f4b64a1031acf33e281fd9052336d6dad4d35eee3404c95431c8c6bc7a9c0588", "sha256:fc046afda0ed8f5295212068266c92991ab1f4a50c6a7144b69364bdee4a0159", "sha256:fc9051d249dd5512e541f20330a74592f7a65b2d62e18122ca89bf71f94db748" ], @@ -2595,6 +2724,7 @@ "hashes": [ "sha256:9a2a2dc9856187679e93f3c95e5dc771dd47e3257db09767b4be118d734b4dc2" ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", "version": "==2.2.1" }, "tensorboard-plugin-wit": { @@ -2639,6 +2769,7 @@ "sha256:4804a774f802306a7d9af7322193c5390f1da0abb429e082a10ef1d46e6fb2c2", "sha256:a43dcb3e353bc680dd0783b1d9c3fc28d529f190bc54ba9a229f72fe6e7a54d7" ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", "version": "==0.8.3" }, "testpath": { @@ -2650,10 +2781,11 @@ }, "tifffile": { "hashes": [ - "sha256:2e110ea3a6381df534261a85091490a5678faa4535aa14cc11b8ea8379dcbf01", - "sha256:abfce379f2b4b97759796c1489ea0e73c349fc71bf09bea2a5d076cbe7cfd4eb" + "sha256:12a9ffc702de8f5ea6a7c39f69654143fb419059773e964be6293a16a0b2cbf9", + "sha256:b212b7eb7651208c79ec95899f0dfe5684d68f4254cf782247af4f56f8e00cc8" ], - "version": "==2020.5.11" + "markers": "python_version >= '3.6'", + "version": "==2020.5.25" }, "toml": { "hashes": [ @@ -2674,6 +2806,7 @@ "sha256:c952975c8ba74f546ae6de2e226ab3cc3cc11ae47baf607459a6728585bb542a", "sha256:c98232a3ac391f5faea6821b53db8db461157baa788f5d6222a193e9456e1740" ], + "markers": "python_version >= '3.5'", "version": "==6.0.4" }, "traitlets": { @@ -2691,6 +2824,14 @@ "index": "pypi", "version": "==1.25.9" }, + "virtualenv": { + "hashes": [ + "sha256:a116629d4e7f4d03433b8afa27f43deba09d48bc48f5ecefa4f015a178efb6cf", + "sha256:a730548b27366c5e6cbdf6f97406d861cccece2e22275e8e1a757aeff5e00c70" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", + "version": "==20.0.21" + }, "wcwidth": { "hashes": [ "sha256:cafe2186b3c009a04067022ce1dcd79cb38d8d65ee4f4791b8888d6599d1bbe1", @@ -2710,6 +2851,7 @@ "sha256:2de2a5db0baeae7b2d2664949077c2ac63fbd16d98da0ff71837f7d1dea3fd43", "sha256:6c80b1e5ad3665290ea39320b91e1be1e0d5f60652b964a3070216de83d2e47c" ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", "version": "==1.0.1" }, "wheel": { @@ -2753,6 +2895,7 @@ "sha256:d8cdee92bc930d8b09d8bd2043cedd544d9c8bd7436a77678dd602467a993080", "sha256:e15199cdb423316e15f108f51249e44eb156ae5dba232cb73be555324a1d49c2" ], + "markers": "python_version >= '3.5'", "version": "==1.4.2" } } diff --git a/common/url_file.py b/common/url_file.py index 1f6d4a08..184b7452 100644 --- a/common/url_file.py +++ b/common/url_file.py @@ -1,3 +1,5 @@ +# pylint: skip-file + import os import time import tempfile diff --git a/common/window.py b/common/window.py index 5af3d83c..7454a862 100644 --- a/common/window.py +++ b/common/window.py @@ -27,10 +27,10 @@ class Window(): def getkey(self): while 1: event = pygame.event.wait() - if event.type == QUIT: + if event.type == pygame.QUIT: pygame.quit() sys.exit() - if event.type == KEYDOWN: + if event.type == pygame.KEYDOWN: return event.key def getclick(self): @@ -47,4 +47,3 @@ if __name__ == "__main__": print("draw") img += 1 win.draw(img) - diff --git a/scripts/waste.py b/scripts/waste.py index 55aeba06..2834dea1 100755 --- a/scripts/waste.py +++ b/scripts/waste.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 from multiprocessing import Process -from setproctitle import setproctitle +from setproctitle import setproctitle # pylint: disable=no-name-in-module import os import numpy as np from common.realtime import sec_since_boot @@ -32,4 +32,3 @@ def main(gctx=None): if __name__ == "__main__": main() - diff --git a/selfdrive/controls/tests/test_clustering.py b/selfdrive/controls/tests/test_clustering.py index e899ff7d..290b2670 100644 --- a/selfdrive/controls/tests/test_clustering.py +++ b/selfdrive/controls/tests/test_clustering.py @@ -1,3 +1,5 @@ +# pylint: skip-file + import time import unittest import numpy as np diff --git a/selfdrive/debug/internal/cycle_alerts.py b/selfdrive/debug/internal/cycle_alerts.py deleted file mode 100644 index cc073aaa..00000000 --- a/selfdrive/debug/internal/cycle_alerts.py +++ /dev/null @@ -1,50 +0,0 @@ -# USAGE: python cycle_alerts.py [duration_millis=1000] -# Then start manager - -import argparse -import time - -import cereal.messaging as messaging -from selfdrive.controls.lib.alerts import ALERTS - -def now_millis(): return time.time() * 1000 - -default_alerts = sorted(ALERTS, key=lambda alert: (alert.alert_size, len(alert.alert_text_2))) - -def cycle_alerts(duration_millis, alerts=None): - if alerts is None: - alerts = default_alerts - - controls_state = messaging.pub_sock('controlsState') - - last_pop_millis = now_millis() - alert = alerts.pop() - while 1: - if (now_millis() - last_pop_millis) > duration_millis: - alerts.insert(0, alert) - alert = alerts.pop() - last_pop_millis = now_millis() - print('sending {}'.format(str(alert))) - - dat = messaging.new_message('controlsState') - - dat.controlsState.alertType = alert.alert_type - dat.controlsState.alertText1 = alert.alert_text_1 - dat.controlsState.alertText2 = alert.alert_text_2 - dat.controlsState.alertSize = alert.alert_size - dat.controlsState.alertStatus = alert.alert_status - dat.controlsState.alertSound = alert.audible_alert - controls_state.send(dat.to_bytes()) - - time.sleep(0.01) - -if __name__ == '__main__': - parser = argparse.ArgumentParser() - parser.add_argument('--duration', type=int, default=1000) - parser.add_argument('--alert-types', nargs='+') - args = parser.parse_args() - alerts = None - if args.alert_types: - alerts = [next(a for a in ALERTS if a.alert_type==alert_type) for alert_type in args.alert_types] - - cycle_alerts(args.duration, alerts=alerts) diff --git a/selfdrive/debug/internal/sounds/test_sound_stability.py b/selfdrive/debug/internal/sounds/test_sound_stability.py index 18b87abb..2b866220 100755 --- a/selfdrive/debug/internal/sounds/test_sound_stability.py +++ b/selfdrive/debug/internal/sounds/test_sound_stability.py @@ -6,7 +6,7 @@ import datetime import random from common.basedir import BASEDIR -from selfdrive import messaging +import cereal.messaging as messaging if __name__ == "__main__": diff --git a/selfdrive/debug/internal/test_paramsd.py b/selfdrive/debug/internal/test_paramsd.py index 356edfae..3553949a 100755 --- a/selfdrive/debug/internal/test_paramsd.py +++ b/selfdrive/debug/internal/test_paramsd.py @@ -1,4 +1,6 @@ #!/usr/bin/env python3 +# pylint: skip-file + import numpy as np import math from tqdm import tqdm diff --git a/selfdrive/locationd/models/loc_kf.py b/selfdrive/locationd/models/loc_kf.py index f1834b14..fbb6b1b5 100755 --- a/selfdrive/locationd/models/loc_kf.py +++ b/selfdrive/locationd/models/loc_kf.py @@ -443,8 +443,6 @@ class LocKalman(): r = self.predict_and_update_orb_features(data, t, kind) elif kind == ObservationKind.MSCKF_TEST: r = self.predict_and_update_msckf_test(data, t, kind) - elif kind == ObservationKind.FEATURE_TRACK_TEST: - r = self.predict_and_update_feature_track_test(data, t, kind) elif kind == ObservationKind.ODOMETRIC_SPEED: r = self.predict_and_update_odo_speed(data, t, kind) else: diff --git a/selfdrive/loggerd/ethernetsniffer.py b/selfdrive/loggerd/ethernetsniffer.py index 023dacc9..3c3ffb33 100755 --- a/selfdrive/loggerd/ethernetsniffer.py +++ b/selfdrive/loggerd/ethernetsniffer.py @@ -1,4 +1,6 @@ #!/usr/bin/env python3 +# pylint: skip-file + import cereal.messaging as messaging import pcap @@ -13,4 +15,3 @@ def main(): if __name__ == "__main__": main() - diff --git a/selfdrive/test/process_replay/inject_model.py b/selfdrive/test/process_replay/inject_model.py index 08fd74a6..38647b45 100755 --- a/selfdrive/test/process_replay/inject_model.py +++ b/selfdrive/test/process_replay/inject_model.py @@ -85,8 +85,3 @@ def inject_model(msgs, segment_name): assert abs(len(new_msgs) - len(list(msgs))) < 2 return new_msgs - - - -if __name__ == "__main__": - inject_model("0375fdf7b1ce594d|2019-06-13--08-32-25/3") diff --git a/selfdrive/test/test_eon_fan.py b/selfdrive/test/test_eon_fan.py index 4d683cf4..c7e43574 100755 --- a/selfdrive/test/test_eon_fan.py +++ b/selfdrive/test/test_eon_fan.py @@ -2,7 +2,7 @@ import sys import time -from selfdrive.thermald import setup_eon_fan, set_eon_fan +from selfdrive.thermald.thermald import setup_eon_fan, set_eon_fan if __name__ == "__main__": val = 0 @@ -18,5 +18,3 @@ if __name__ == "__main__": time.sleep(2) val += 1 val %= 4 - - diff --git a/selfdrive/test/test_leeco_alt_fan.py b/selfdrive/test/test_leeco_alt_fan.py index 882ca787..c10ede34 100755 --- a/selfdrive/test/test_leeco_alt_fan.py +++ b/selfdrive/test/test_leeco_alt_fan.py @@ -1,4 +1,6 @@ #!/usr/bin/env python3 +# pylint: skip-file + import time from smbus2 import SMBus @@ -18,4 +20,3 @@ def setup_leon_fan(): bus.close() setup_leon_fan() - diff --git a/selfdrive/test/test_leeco_fan.py b/selfdrive/test/test_leeco_fan.py index 2ecccf30..55267285 100755 --- a/selfdrive/test/test_leeco_fan.py +++ b/selfdrive/test/test_leeco_fan.py @@ -1,4 +1,6 @@ #!/usr/bin/env python3 +# pylint: skip-file + import time from smbus2 import SMBus @@ -20,4 +22,3 @@ def setup_leon_fan(): bus.close() setup_leon_fan() - diff --git a/tools/lib/framereader.py b/tools/lib/framereader.py index 87c6d6e9..741f51da 100644 --- a/tools/lib/framereader.py +++ b/tools/lib/framereader.py @@ -1,3 +1,5 @@ +# pylint: skip-file + import os import sys import json diff --git a/tools/lib/kbhit.py b/tools/lib/kbhit.py index 30587590..99b88bfb 100644 --- a/tools/lib/kbhit.py +++ b/tools/lib/kbhit.py @@ -1,18 +1,17 @@ #!/usr/bin/env python -import os import sys import termios import atexit from select import select + class KBHit: - def __init__(self): '''Creates a KBHit object that you can call to do various keyboard things. ''' - self.set_kbhit_terminal() - + self.set_kbhit_terminal() + def set_kbhit_terminal(self): # Save the terminal settings self.fd = sys.stdin.fileno() @@ -29,12 +28,8 @@ class KBHit: def set_normal_term(self): ''' Resets to normal terminal. On Windows this is a no-op. ''' - - if os.name == 'nt': - pass - - else: - termios.tcsetattr(self.fd, termios.TCSAFLUSH, self.old_term) + + termios.tcsetattr(self.fd, termios.TCSAFLUSH, self.old_term) def getch(self): @@ -42,7 +37,7 @@ class KBHit: Should not be called in the same program as getarrow(). ''' return sys.stdin.read(1) - + def getarrow(self): ''' Returns an arrow-key code after kbhit() has been called. Codes are @@ -52,29 +47,23 @@ class KBHit: 3 : left Should not be called in the same program as getch(). ''' - - if os.name == 'nt': - msvcrt.getch() # skip 0xE0 - c = msvcrt.getch() - vals = [72, 77, 80, 75] - - else: - c = sys.stdin.read(3)[2] - vals = [65, 67, 66, 68] - + + c = sys.stdin.read(3)[2] + vals = [65, 67, 66, 68] + return vals.index(ord(c.decode('utf-8'))) - + def kbhit(self): ''' Returns True if keyboard character was hit, False otherwise. - ''' + ''' dr,dw,de = select([sys.stdin], [], [], 0) return dr != [] - - -# Test + + +# Test if __name__ == "__main__": - + kb = KBHit() print('Hit any key, or ESC to exit') @@ -86,7 +75,5 @@ if __name__ == "__main__": if ord(c) == 27: # ESC break print(c) - - kb.set_normal_term() - + kb.set_normal_term() diff --git a/tools/lib/mkvparse/mkvgen.py b/tools/lib/mkvparse/mkvgen.py index 963d60d0..df178127 100755 --- a/tools/lib/mkvparse/mkvgen.py +++ b/tools/lib/mkvparse/mkvgen.py @@ -4,7 +4,7 @@ import random import math # Simple hacky Matroska generator -# Reads mp3 file "q.mp3" and jpeg images from img/0.jpg, img/1.jpg and so on and +# Reads mp3 file "q.mp3" and jpeg images from img/0.jpg, img/1.jpg and so on and # writes Matroska file with mjpeg and mp3 to stdout # License=MIT @@ -71,7 +71,7 @@ def random_uid(): def rint(): return int(random.random()*(0x100**4)) return ben(rint()) + ben(rint()) + ben(rint()) + ben(rint()) - + def example(): write_ebml_header(sys.stdout, "matroska", 2, 2) @@ -133,7 +133,7 @@ def example(): def mp3framesgenerator(f): debt="" while True: - for i in xrange(0,len(debt)+1): + for i in range(0,len(debt)+1): if i >= len(debt)-1: debt = debt + f.read(8192) break @@ -144,13 +144,13 @@ def example(): # sys.stderr.write("len="+str(i)+"\n") debt = debt[i:] break - + mp3 = mp3framesgenerator(mp3file) - mp3.next() + next(mp3) - for i in xrange(0,530): + for i in range(0,530): framefile = open("img/"+str(i)+".jpg", "rb") framedata = framefile.read() framefile.close() @@ -168,8 +168,8 @@ def example(): + framedata ))) - for u in xrange(0,4): - mp3f=mp3.next() + for u in range(0,4): + mp3f=next(mp3) if random.random()<1: sys.stdout.write(ebml_element(0x1F43B675, "" # Cluster + ebml_element(0xE7, ben(i*26*4+u*26)) # TimeCode, uint, milliseconds diff --git a/tools/lib/mkvparse/mkvindex.py b/tools/lib/mkvparse/mkvindex.py index c0542300..694965fb 100644 --- a/tools/lib/mkvparse/mkvindex.py +++ b/tools/lib/mkvparse/mkvindex.py @@ -1,5 +1,5 @@ #!/usr/bin/env python -# Copyright (c) 2016, Comma.ai, Inc. +# flake8: noqa import re import binascii @@ -15,7 +15,7 @@ class MatroskaIndex(mkvparse.MatroskaHandler): self.frameindex = [] def tracks_available(self): - _, self.config_record = self.tracks[1]['CodecPrivate'] + _, self.config_record = self.tracks[1]['CodecPrivate'] # pylint: disable=no-member def frame(self, track_id, timestamp, pos, length, more_laced_frames, duration, keyframe, invisible, discardable): @@ -62,4 +62,3 @@ def simple_gen(of, config_record, w, h, framedata): + ebml_element(0xE7, ben(0)) # TimeCode, uint, milliseconds # + ebml_element(0xA7, ben(0)) # Position, uint + ''.join(blocks))) - diff --git a/tools/lib/mkvparse/mkvparse.py b/tools/lib/mkvparse/mkvparse.py index 114fb4cc..ea4b7e01 100644 --- a/tools/lib/mkvparse/mkvparse.py +++ b/tools/lib/mkvparse/mkvparse.py @@ -7,6 +7,7 @@ # No proper EOF handling unfortunately # See "mkvuser.py" for the example +# pylint: skip-file import traceback from struct import unpack @@ -15,7 +16,7 @@ import sys import datetime if sys.version < '3': - range=xrange + range=xrange # pylint disable=undefined-variable else: #identity=lambda x:x def ord(something): @@ -159,7 +160,7 @@ def read_fixedlength_number(f, length, signed=False): buf = f.read(length) (r, pos) = parse_fixedlength_number(buf, 0, length, signed) return r - + def read_ebml_element_header(f): ''' Read Element ID and size @@ -180,10 +181,10 @@ class EbmlElementType: FLOAT=7 DATE=8 - JUST_GO_ON=10 # For "Segment". - # Actually MASTER, but don't build the tree for all subelements, + JUST_GO_ON=10 # For "Segment". + # Actually MASTER, but don't build the tree for all subelements, # interpreting all child elements as if they were top-level elements - + EET=EbmlElementType @@ -510,7 +511,7 @@ def read_ebml_element_tree(f, total_size): while(total_size>0): (id_, size, hsize) = read_ebml_element_header(f) if size == -1: - sys.stderr.write("mkvparse: Element %x without size? Damaged data? Skipping %d bytes\n" % (id_, size, total_size)) + sys.stderr.write("mkvparse: Element %x without size? Damaged data? Skipping %d bytes\n" % (id_, size, total_size)) # pylint disable=too-many-format-args f.read(total_size); break; if size>total_size: @@ -523,9 +524,9 @@ def read_ebml_element_tree(f, total_size): (type_, name) = element_types_names[id_] data = read_simple_element(f, type_, size) total_size-=(size+hsize) - childs.append((name, (type_, data))) + childs.append((name, (type_, data))) return childs - + class MatroskaHandler: """ User for mkvparse should override these methods """ @@ -569,7 +570,7 @@ def handle_block(buffer, buffer_pos, handler, cluster_timecode, timecode_scale=1 handler.frame(tracknum, block_timecode, buffer_pos+pos, len(buffer)-pos, 0, duration, f_keyframe, f_invisible, f_discardable) return - + numframes = ord(buffer[pos]); pos+=1 numframes+=1 @@ -628,9 +629,9 @@ def resync(f): if b2 == b"\x54\xAE\x6B": (seglen ,x )= read_matroska_number(f) return (0x1654AE6B, seglen, x+4) # tracks - - - + + + def mkvparse(f, handler): ''' @@ -655,14 +656,14 @@ def mkvparse(f, handler): (id_, size, hsize) = read_ebml_element_header(f) except StopIteration: break; - if not (id_ in element_types_names): + if not (id_ in element_types_names): sys.stderr.write("mkvparse: Unknown element with id %x and size %d\n"%(id_, size)) (resync_element_id, resync_element_size, resync_element_headersize) = resync(f) if resync_element_id: continue; else: break; - else: + else: id_ = resync_element_id size=resync_element_size hsize=resync_element_headersize @@ -686,7 +687,7 @@ def mkvparse(f, handler): continue; else: break; - + if name=="EBML" and type(data) == list: d = dict(tree) if 'EBMLReadVersion' in d: @@ -694,12 +695,12 @@ def mkvparse(f, handler): if 'DocTypeReadVersion' in d: if d['DocTypeReadVersion'][1]>2: sys.stderr.write("mkvparse: Warning: DocTypeReadVersion too big\n") dt = d['DocType'][1] - if dt != "matroska" and dt != "webm": + if dt != "matroska" and dt != "webm": sys.stderr.write("mkvparse: Warning: EBML DocType is not \"matroska\" or \"webm\"") elif name=="Info" and type(data) == list: handler.segment_info = tree handler.segment_info_available() - + d = dict(tree) if "TimecodeScale" in d: timecode_scale = d["TimecodeScale"][1] diff --git a/tools/replay/unlog_segment.py b/tools/replay/unlog_segment.py index cea3c969..1c80cd04 100755 --- a/tools/replay/unlog_segment.py +++ b/tools/replay/unlog_segment.py @@ -1,4 +1,6 @@ #!/usr/bin/env python3 +# pylint: skip-file + import argparse import bisect import select diff --git a/tools/replay/unlogger.py b/tools/replay/unlogger.py index 920d9d0b..3463660e 100755 --- a/tools/replay/unlogger.py +++ b/tools/replay/unlogger.py @@ -421,7 +421,7 @@ def main(argv): if not p.is_alive(): [p.terminate() for p in subprocesses.values()] exit() - signal.signal(signal.SIGCHLD, signal.SIGIGN) + signal.signal(signal.SIGCHLD, signal.SIG_IGN) signal.signal(signal.SIGCHLD, exit_if_children_dead) if args.interactive: diff --git a/tools/sim/bridge.py b/tools/sim/bridge.py index 0235e1d9..f2949239 100755 --- a/tools/sim/bridge.py +++ b/tools/sim/bridge.py @@ -79,7 +79,7 @@ def go(q): threading.Thread(target=health_function).start() threading.Thread(target=fake_driver_monitoring).start() - import carla + import carla # pylint: disable=import-error client = carla.Client("127.0.0.1", 2000) client.set_timeout(5.0) world = client.load_world('Town04') @@ -231,7 +231,7 @@ if __name__ == "__main__": print("WARNING: NO CARLA") while 1: time.sleep(1) - + from multiprocessing import Process, Queue q = Queue() p = Process(target=go, args=(q,)) @@ -246,4 +246,3 @@ if __name__ == "__main__": # start input poll for keyboard from lib.keyboard_ctrl import keyboard_poll_thread keyboard_poll_thread(q) - diff --git a/tools/sim/lib/can.py b/tools/sim/lib/can.py index 3948e818..a446d38c 100755 --- a/tools/sim/lib/can.py +++ b/tools/sim/lib/can.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 import cereal.messaging as messaging from opendbc.can.packer import CANPacker -from selfdrive.boardd.boardd_api_impl import can_list_to_can_capnp +from selfdrive.boardd.boardd_api_impl import can_list_to_can_capnp # pylint: disable=no-name-in-module from selfdrive.car.honda.values import FINGERPRINTS, CAR from selfdrive.car import crc8_pedal import math @@ -88,4 +88,3 @@ def sendcan_function(sendcan): steer_torque = 0.0 return (gas, brake, steer_torque) - diff --git a/tools/sim/lib/manual_ctrl.py b/tools/sim/lib/manual_ctrl.py index a32d606d..4c94c13f 100755 --- a/tools/sim/lib/manual_ctrl.py +++ b/tools/sim/lib/manual_ctrl.py @@ -132,8 +132,8 @@ def wheel_poll_thread(q): print('%d buttons found: %s' % (num_buttons, ', '.join(button_map))) # Enable FF - import evdev - from evdev import ecodes, InputDevice, ff + import evdev # pylint: disable=import-error + from evdev import ecodes, InputDevice, ff # pylint: disable=import-error device = evdev.list_devices()[0] evtdev = InputDevice(device) val = 24000 diff --git a/tools/streamer/streamerd.py b/tools/streamer/streamerd.py index 6ce940af..81b20fa2 100755 --- a/tools/streamer/streamerd.py +++ b/tools/streamer/streamerd.py @@ -1,4 +1,6 @@ #!/usr/bin/env python +# pylint: skip-file + import os import sys import zmq