diff --git a/Pipfile b/Pipfile index ac538467e..4fde29cd4 100644 --- a/Pipfile +++ b/Pipfile @@ -4,29 +4,33 @@ url = "https://pypi.org/simple" verify_ssl = true [dev-packages] -bandit = "==1.5.1" -coveralls = "==1.5.1" # The Cython dependency of pymssql is not correctly resolved on all systems # so it is explicitly included here. cython = "==0.29.2" -flake8 = "==3.6.0" -flake8-print = "==3.1.0" -flake8-quotes = "==1.0.0" + +# Test requirements that are not otherwise necessary when using the package. frozendict = "==1.2" -isort = "==4.3.4" mysqlclient = "==1.3.14" neo4j = ">=1.7.4,<2" -parameterized = "==0.6.1" psycopg2 = "==2.7.5" -pydocstyle = "==2.1.1" -pylint = "==1.8.2" pymssql = "==2.1.4" pyorient = "==1.5.5" -pytest = "==4.1.0" -pytest-cov = "==2.6.1" redis = ">=3.2.1,<4" redisgraph = ">=1.7,<1.9" -snapshottest = "==0.5.0" + +# Linters and other development tools +bandit = ">=1.5.1,<2" +coveralls = ">=1.5.1,<2" +flake8 = ">=3.6.0,<4" +flake8-print = ">=3.1.0,<4" +flake8-quotes = ">=1.0.0,<2" +isort = ">=4.3.4,<5" +parameterized = ">=0.6.1,<1" +pydocstyle = ">=2.1.1,<3" +pylint = "==1.9.4" # v1.9.5 is marked as "python_requires < 3.7", update this after we're Py3+ only +pytest = ">=4.1.0,<5" +pytest-cov = ">=2.6.1,<3" +snapshottest = ">=0.5.1,<1" [packages] arrow = ">=0.10.0,<1" diff --git a/Pipfile.lock b/Pipfile.lock index befeb3f8b..b474648bb 100644 --- a/Pipfile.lock +++ b/Pipfile.lock @@ -1,7 +1,7 @@ { "_meta": { "hash": { - "sha256": "2f8be489b9400a280445a4bd1f1455ddc40bcda518cef0ff99df9d209bd004ec" + "sha256": "7ed038dfda5270ca76bc060db9e331da8cb47254c7ae4de8493c97c2662f6c00" }, "pipfile-spec": 6, "requires": { @@ -18,11 +18,11 @@ "default": { "arrow": { "hashes": [ - "sha256:03404b624e89ac5e4fc19c52045fa0f3203419fd4dd64f6e8958c522580a574a", - "sha256:41be7ea4c53c2cf57bf30f2d614f60c411160133f7a0a8c49111c30fb7e725b5" + "sha256:157dee94b557ffe9a2e13e05669bf48820064cb37d416f547f59baa0d25301d4", + "sha256:47f37968afeaefd0ba3fe4d0c70dc830985f9ab11beeb381d4fc0e8f8151d3d6" ], "index": "pypi", - "version": "==0.14.2" + "version": "==0.14.4" }, "funcy": { "hashes": [ @@ -34,11 +34,11 @@ }, "graphql-core": { "hashes": [ - "sha256:60ef8277b82aaad49e87154a0288a9542a82a63909568375712f826b1c280ef5", - "sha256:6288fe97c32d2f868a2dfe62e766dc85d48c96c1d085294edf44714190f2e4f3" + "sha256:1488f2a5c2272dc9ba66e3042a6d1c30cea0db4c80bd1e911c6791ad6187d91b", + "sha256:da64c472d720da4537a2e8de8ba859210b62841bd47a9be65ca35177f62fe0e4" ], "index": "pypi", - "version": "==2.2" + "version": "==2.2.1" }, "promise": { "hashes": [ @@ -56,18 +56,18 @@ }, "pytz": { "hashes": [ - "sha256:303879e36b721603cc54604edcac9d20401bdbe31e1e4fdee5b9f98d5d31dfda", - "sha256:d747dd3d23d77ef44c6a3526e274af6efeb0a6f1afd5a69ba4d5be4098c8e141" + "sha256:26c0b32e437e54a18161324a2fca3c4b9846b74a8dccddd843113109e1116b32", + "sha256:c894d57500a4cd2d5c71114aaab77dbab5eabd9022308ce5ac9bb93a60a6f0c7" ], "index": "pypi", - "version": "==2019.1" + "version": "==2019.2" }, "rx": { "hashes": [ - "sha256:69e7dc76a4391910972f20316f9ccd4664b9694f21dace5a16519d56869e5d35", - "sha256:7ad01944a6b86ed2ef9f38d785c61d5074c40bbb0d60c72c55aaf6da13af1475" + "sha256:13a1d8d9e252625c173dc795471e614eadfe1cf40ffc684e08b8fff0d9748c23", + "sha256:7357592bc7e881a95e0c2013b73326f704953301ab551fbc8133a6fadab84105" ], - "version": "==3.0.0" + "version": "==1.6.1" }, "six": { "hashes": [ @@ -79,10 +79,10 @@ }, "sqlalchemy": { "hashes": [ - "sha256:c30925d60af95443458ebd7525daf791f55762b106049ae71e18f8dd58084c2f" + "sha256:217e7fc52199a05851eee9b6a0883190743c4fb9c8ac4313ccfceaffd852b0ff" ], "index": "pypi", - "version": "==1.3.5" + "version": "==1.3.6" } }, "develop": { @@ -109,11 +109,11 @@ }, "bandit": { "hashes": [ - "sha256:6102b5d6afd9d966df5054e0bdfc2e73a24d0fea400ec25f2e54c134412158d7", - "sha256:9413facfe9de1e1bd291d525c784e1beb1a55c9916b51dae12979af63a69ba4c" + "sha256:336620e220cf2d3115877685e264477ff9d9abaeb0afe3dc7264f55fa17a3952", + "sha256:41e75315853507aa145d62a78a2a6c5e3240fe14ee7c601459d0df9418196065" ], "index": "pypi", - "version": "==1.5.1" + "version": "==1.6.2" }, "certifi": { "hashes": [ @@ -131,47 +131,48 @@ }, "coverage": { "hashes": [ - "sha256:3684fabf6b87a369017756b551cef29e505cb155ddb892a7a29277b978da88b9", - "sha256:39e088da9b284f1bd17c750ac672103779f7954ce6125fd4382134ac8d152d74", - "sha256:3c205bc11cc4fcc57b761c2da73b9b72a59f8d5ca89979afb0c1c6f9e53c7390", - "sha256:465ce53a8c0f3a7950dfb836438442f833cf6663d407f37d8c52fe7b6e56d7e8", - "sha256:48020e343fc40f72a442c8a1334284620f81295256a6b6ca6d8aa1350c763bbe", - "sha256:5296fc86ab612ec12394565c500b412a43b328b3907c0d14358950d06fd83baf", - "sha256:5f61bed2f7d9b6a9ab935150a6b23d7f84b8055524e7be7715b6513f3328138e", - "sha256:68a43a9f9f83693ce0414d17e019daee7ab3f7113a70c79a3dd4c2f704e4d741", - "sha256:6b8033d47fe22506856fe450470ccb1d8ba1ffb8463494a15cfc96392a288c09", - "sha256:7ad7536066b28863e5835e8cfeaa794b7fe352d99a8cded9f43d1161be8e9fbd", - "sha256:7bacb89ccf4bedb30b277e96e4cc68cd1369ca6841bde7b005191b54d3dd1034", - "sha256:839dc7c36501254e14331bcb98b27002aa415e4af7ea039d9009409b9d2d5420", - "sha256:8f9a95b66969cdea53ec992ecea5406c5bd99c9221f539bca1e8406b200ae98c", - "sha256:932c03d2d565f75961ba1d3cec41ddde00e162c5b46d03f7423edcb807734eab", - "sha256:988529edadc49039d205e0aa6ce049c5ccda4acb2d6c3c5c550c17e8c02c05ba", - "sha256:998d7e73548fe395eeb294495a04d38942edb66d1fa61eb70418871bc621227e", - "sha256:9de60893fb447d1e797f6bf08fdf0dbcda0c1e34c1b06c92bd3a363c0ea8c609", - "sha256:9e80d45d0c7fcee54e22771db7f1b0b126fb4a6c0a2e5afa72f66827207ff2f2", - "sha256:a545a3dfe5082dc8e8c3eb7f8a2cf4f2870902ff1860bd99b6198cfd1f9d1f49", - "sha256:a5d8f29e5ec661143621a8f4de51adfb300d7a476224156a39a392254f70687b", - "sha256:aca06bfba4759bbdb09bf52ebb15ae20268ee1f6747417837926fae990ebc41d", - "sha256:bb23b7a6fd666e551a3094ab896a57809e010059540ad20acbeec03a154224ce", - "sha256:bfd1d0ae7e292105f29d7deaa9d8f2916ed8553ab9d5f39ec65bcf5deadff3f9", - "sha256:c62ca0a38958f541a73cf86acdab020c2091631c137bd359c4f5bddde7b75fd4", - "sha256:c709d8bda72cf4cd348ccec2a4881f2c5848fd72903c185f363d361b2737f773", - "sha256:c968a6aa7e0b56ecbd28531ddf439c2ec103610d3e2bf3b75b813304f8cb7723", - "sha256:df785d8cb80539d0b55fd47183264b7002077859028dfe3070cf6359bf8b2d9c", - "sha256:f406628ca51e0ae90ae76ea8398677a921b36f0bd71aab2099dfed08abd0322f", - "sha256:f46087bbd95ebae244a0eda01a618aff11ec7a069b15a3ef8f6b520db523dcf1", - "sha256:f8019c5279eb32360ca03e9fac40a12667715546eed5c5eb59eb381f2f501260", - "sha256:fc5f4d209733750afd2714e9109816a29500718b32dd9a5db01c0cb3a019b96a" - ], - "version": "==4.5.3" + "sha256:08907593569fe59baca0bf152c43f3863201efb6113ecb38ce7e97ce339805a6", + "sha256:0be0f1ed45fc0c185cfd4ecc19a1d6532d72f86a2bac9de7e24541febad72650", + "sha256:141f08ed3c4b1847015e2cd62ec06d35e67a3ac185c26f7635f4406b90afa9c5", + "sha256:19e4df788a0581238e9390c85a7a09af39c7b539b29f25c89209e6c3e371270d", + "sha256:23cc09ed395b03424d1ae30dcc292615c1372bfba7141eb85e11e50efaa6b351", + "sha256:245388cda02af78276b479f299bbf3783ef0a6a6273037d7c60dc73b8d8d7755", + "sha256:331cb5115673a20fb131dadd22f5bcaf7677ef758741312bee4937d71a14b2ef", + "sha256:386e2e4090f0bc5df274e720105c342263423e77ee8826002dcffe0c9533dbca", + "sha256:3a794ce50daee01c74a494919d5ebdc23d58873747fa0e288318728533a3e1ca", + "sha256:60851187677b24c6085248f0a0b9b98d49cba7ecc7ec60ba6b9d2e5574ac1ee9", + "sha256:63a9a5fc43b58735f65ed63d2cf43508f462dc49857da70b8980ad78d41d52fc", + "sha256:6b62544bb68106e3f00b21c8930e83e584fdca005d4fffd29bb39fb3ffa03cb5", + "sha256:6ba744056423ef8d450cf627289166da65903885272055fb4b5e113137cfa14f", + "sha256:7494b0b0274c5072bddbfd5b4a6c6f18fbbe1ab1d22a41e99cd2d00c8f96ecfe", + "sha256:826f32b9547c8091679ff292a82aca9c7b9650f9fda3e2ca6bf2ac905b7ce888", + "sha256:93715dffbcd0678057f947f496484e906bf9509f5c1c38fc9ba3922893cda5f5", + "sha256:9a334d6c83dfeadae576b4d633a71620d40d1c379129d587faa42ee3e2a85cce", + "sha256:af7ed8a8aa6957aac47b4268631fa1df984643f07ef00acd374e456364b373f5", + "sha256:bf0a7aed7f5521c7ca67febd57db473af4762b9622254291fbcbb8cd0ba5e33e", + "sha256:bf1ef9eb901113a9805287e090452c05547578eaab1b62e4ad456fcc049a9b7e", + "sha256:c0afd27bc0e307a1ffc04ca5ec010a290e49e3afbe841c5cafc5c5a80ecd81c9", + "sha256:dd579709a87092c6dbee09d1b7cfa81831040705ffa12a1b248935274aee0437", + "sha256:df6712284b2e44a065097846488f66840445eb987eb81b3cc6e4149e7b6982e1", + "sha256:e07d9f1a23e9e93ab5c62902833bf3e4b1f65502927379148b6622686223125c", + "sha256:e2ede7c1d45e65e209d6093b762e98e8318ddeff95317d07a27a2140b80cfd24", + "sha256:e4ef9c164eb55123c62411f5936b5c2e521b12356037b6e1c2617cef45523d47", + "sha256:eca2b7343524e7ba246cab8ff00cab47a2d6d54ada3b02772e908a45675722e2", + "sha256:eee64c616adeff7db37cc37da4180a3a5b6177f5c46b187894e633f088fb5b28", + "sha256:ef824cad1f980d27f26166f86856efe11eff9912c4fed97d3804820d43fa550c", + "sha256:efc89291bd5a08855829a3c522df16d856455297cf35ae827a37edac45f466a7", + "sha256:fa964bae817babece5aa2e8c1af841bebb6d0b9add8e637548809d040443fee0", + "sha256:ff37757e068ae606659c28c3bd0d923f9d29a85de79bf25b2b34b148473b5025" + ], + "version": "==4.5.4" }, "coveralls": { "hashes": [ - "sha256:ab638e88d38916a6cedbf80a9cd8992d5fa55c77ab755e262e00b36792b7cd6d", - "sha256:b2388747e2529fa4c669fb1e3e2756e4e07b6ee56c7d9fce05f35ccccc913aa0" + "sha256:9bc5a1f92682eef59f688a8f280207190d9a6afb84cef8f567fa47631a784060", + "sha256:fb51cddef4bc458de347274116df15d641a735d3f0a580a9472174e2e62f408c" ], "index": "pypi", - "version": "==1.5.1" + "version": "==1.8.2" }, "cython": { "hashes": [ @@ -213,13 +214,26 @@ ], "version": "==0.6.2" }, + "entrypoints": { + "hashes": [ + "sha256:589f874b313739ad35be6e0cd7efde2a4e9b6fea91edcc34e58ecbb8dbe56d19", + "sha256:c70dd71abe5a8c85e55e12c19bd91ccfeec11a6e99044204511f9ed547d48451" + ], + "version": "==0.3" + }, + "fastdiff": { + "hashes": [ + "sha256:623ad3d9055ab78e014d0d10767cb033d98d5d4f66052abf498350c8e42e29aa" + ], + "version": "==0.2.0" + }, "flake8": { "hashes": [ - "sha256:6a35f5b8761f45c5513e3405f110a86bea57982c3b75b766ce7b65217abe1670", - "sha256:c01f8a3963b3571a8e6bd7a4063359aff90749e160778e03817cd9b71c9e07d2" + "sha256:19241c1cbc971b9962473e4438a2ca19749a7dd002dd1a946eaba171b4114548", + "sha256:8e9dfa3cecb2400b3738a42c54c3043e821682b9c840b0448c0503f781130696" ], "index": "pypi", - "version": "==3.6.0" + "version": "==3.7.8" }, "flake8-print": { "hashes": [ @@ -251,10 +265,10 @@ }, "gitpython": { "hashes": [ - "sha256:563221e5a44369c6b79172f455584c9ebbb122a13368cc82cb4b5addff788f82", - "sha256:8237dc5bfd6f1366abeee5624111b9d6879393d84745a507de0fda86043b65a8" + "sha256:c15c55ff890cd3a6a8330059e80885410a328f645551b55a91d858bfb3eb2573", + "sha256:df752b6b6f06f11213e91c4925aea7eaf9e37e88fb71c8a7a1aa0a5c10852120" ], - "version": "==2.1.11" + "version": "==2.1.13" }, "idna": { "hashes": [ @@ -265,19 +279,18 @@ }, "importlib-metadata": { "hashes": [ - "sha256:6dfd58dfe281e8d240937776065dd3624ad5469c835248219bd16cf2e12dbeb7", - "sha256:cb6ee23b46173539939964df59d3d72c3e0c1b5d54b84f1d8a7e912fe43612db" + "sha256:23d3d873e008a513952355379d93cbcab874c58f4f034ff657c7a87422fa64e8", + "sha256:80d2de76188eabfbfcf27e6a37342c2827801e59c4cc14b0371c56fed43820e3" ], - "version": "==0.18" + "version": "==0.19" }, "isort": { "hashes": [ - "sha256:1153601da39a25b14ddc54955dbbacbb6b2d19135386699e2ad58517953b34af", - "sha256:b9c40e9750f3d77e6e4d441d8b0266cf555e7cdabdcff33c4fd06366ca761ef8", - "sha256:ec9ef8f4a9bc6f71eec99e1806bfa2de401650d996c59330782b89a5555c1497" + "sha256:54da7e92468955c4fceacd0c86bd0ec997b0e1ee80d97f67c35a78b719dccab1", + "sha256:6e811fcb295968434526407adb8796944f1988c5b65e8139058f2014cbe100fd" ], "index": "pypi", - "version": "==4.3.4" + "version": "==4.3.21" }, "lazy-object-proxy": { "hashes": [ @@ -311,10 +324,11 @@ }, "more-itertools": { "hashes": [ - "sha256:3ad685ff8512bf6dc5a8b82ebf73543999b657eded8c11803d9ba6b648986f4d", - "sha256:8bb43d1f51ecef60d81854af61a3a880555a14643691cc4b64a6ee269c78f09a" + "sha256:409cd48d4db7052af495b09dec721011634af3753ae1ef92d2b32f73a745f832", + "sha256:92b8c4b06dac4f0611c0729b2f2ede52b2e1bac1ab48f089c7ddc12e26bb60c4" ], - "version": "==7.1.0" + "markers": "python_version > '2.7'", + "version": "==7.2.0" }, "mysqlclient": { "hashes": [ @@ -344,20 +358,27 @@ ], "version": "==1.7.4" }, + "packaging": { + "hashes": [ + "sha256:a7ac867b97fdc07ee80a8058fe4435ccd274ecc3b0ed61d852d7d53055528cf9", + "sha256:c491ca87294da7cc01902edbe30a5bc6c4c28172b5138ab4e4aa1b9d7bfaeafe" + ], + "version": "==19.1" + }, "parameterized": { "hashes": [ - "sha256:caf58e717097735de0d7e15386a46ffa5ce25bb6a13a43716a8854a8d34841e2", - "sha256:cf5fa4f295dfb823cebdb27a00566113f2fbb71c7d5ca7b7a1019fd20c8a0811" + "sha256:020343a281efcfe9b71b9028a91817f981202c14d72104b5a2fbe401dee25a18", + "sha256:d8c8837fb677ed2d5a93b9e2308ce0da3aeb58cf513120d501e0b7af14da78d5" ], "index": "pypi", - "version": "==0.6.1" + "version": "==0.7.0" }, "pbr": { "hashes": [ - "sha256:36ebd78196e8c9588c972f5571230a059ff83783fabbbbedecc07be263ccd7e6", - "sha256:5a03f59455ad54f01a94c15829b8b70065462b7bd8d5d7e983306b59127fc841" + "sha256:0ca44dc9fd3b04a22297c2a91082d8df2894862e8f4c86a49dac69eae9e85ca0", + "sha256:4aed6c1b1fa5020def0f22aed663d87b81bb3235f112490b07d2643d7a98c5b5" ], - "version": "==5.4.0" + "version": "==5.4.1" }, "pluggy": { "hashes": [ @@ -417,10 +438,10 @@ }, "pycodestyle": { "hashes": [ - "sha256:cbc619d09254895b0d12c2c691e237b2e91e9b2ecf5e84c26b35400f93dcfb83", - "sha256:cbfca99bd594a10f674d0cd97a3d802a1fdef635d4361e1a2658de47ed261e3a" + "sha256:95a2219d12372f05704562a14ec30bc76b05a5b297b21a5dfe3f6fac3491ae56", + "sha256:e40a936c9a450ad81df37f549d676d127b1b66000a6c500caa2b085bc0ca976c" ], - "version": "==2.4.0" + "version": "==2.5.0" }, "pydocstyle": { "hashes": [ @@ -433,18 +454,18 @@ }, "pyflakes": { "hashes": [ - "sha256:9a7662ec724d0120012f6e29d6248ae3727d821bba522a0e6b356eff19126a49", - "sha256:f661252913bc1dbe7fcfcbf0af0db3f42ab65aabd1a6ca68fe5d466bace94dae" + "sha256:17dbeb2e3f4d772725c777fabc446d5634d1038f234e77343108ce445ea69ce0", + "sha256:d976835886f8c5b31d47970ed689944a0262b5f3afa00a5a7b4dc81e5449f8a2" ], - "version": "==2.0.0" + "version": "==2.1.1" }, "pylint": { "hashes": [ - "sha256:156839bedaa798febee72893beef00c650c2e7abafb5586fc7a6a56be7f80412", - "sha256:4fe3b99da7e789545327b75548cee6b511e4faa98afe268130fea1af4b5ec022" + "sha256:02c2b6d268695a8b64ad61847f92e611e6afcff33fd26c3a2125370c4662905d", + "sha256:ee1e85575587c5b58ddafa25e1c1b01691ef172e139fc25585e5d3f02451da93" ], "index": "pypi", - "version": "==1.8.2" + "version": "==1.9.4" }, "pymssql": { "hashes": [ @@ -482,53 +503,62 @@ "index": "pypi", "version": "==1.5.5" }, + "pyparsing": { + "hashes": [ + "sha256:6f98a7b9397e206d78cc01df10131398f1c8b8510a2f4d97d9abd82e1aacdd80", + "sha256:d9338df12903bbf5d65a0e4e87c2161968b10d2e489652bb47001d82a9b028b4" + ], + "version": "==2.4.2" + }, "pytest": { "hashes": [ - "sha256:3e65a22eb0d4f1bdbc1eacccf4a3198bf8d4049dea5112d70a0c61b00e748d02", - "sha256:5924060b374f62608a078494b909d341720a050b5224ff87e17e12377486a71d" + "sha256:6aa9bc2f6f6504d7949e9df2a756739ca06e58ffda19b5e53c725f7b03fb4aae", + "sha256:b77ae6f2d1a760760902a7676887b665c086f71e3461c64ed2a312afcedc00d6" ], "index": "pypi", - "version": "==4.1.0" + "version": "==4.6.4" }, "pytest-cov": { "hashes": [ - "sha256:0ab664b25c6aa9716cbf203b17ddb301932383046082c081b9848a0edf5add33", - "sha256:230ef817450ab0699c6cc3c9c8f7a829c34674456f2ed8df1fe1d39780f7c87f" + "sha256:2b097cde81a302e1047331b48cadacf23577e431b61e9c6f49a1170bbe3d3da6", + "sha256:e00ea4fdde970725482f1f35630d12f074e121a23801aabf2ae154ec6bdd343a" ], "index": "pypi", - "version": "==2.6.1" + "version": "==2.7.1" }, "pytz": { "hashes": [ - "sha256:303879e36b721603cc54604edcac9d20401bdbe31e1e4fdee5b9f98d5d31dfda", - "sha256:d747dd3d23d77ef44c6a3526e274af6efeb0a6f1afd5a69ba4d5be4098c8e141" + "sha256:26c0b32e437e54a18161324a2fca3c4b9846b74a8dccddd843113109e1116b32", + "sha256:c894d57500a4cd2d5c71114aaab77dbab5eabd9022308ce5ac9bb93a60a6f0c7" ], "index": "pypi", - "version": "==2019.1" + "version": "==2019.2" }, "pyyaml": { "hashes": [ - "sha256:57acc1d8533cbe51f6662a55434f0dbecfa2b9eaf115bede8f6fd00115a0c0d3", - "sha256:588c94b3d16b76cfed8e0be54932e5729cc185caffaa5a451e7ad2f7ed8b4043", - "sha256:68c8dd247f29f9a0d09375c9c6b8fdc64b60810ebf07ba4cdd64ceee3a58c7b7", - "sha256:70d9818f1c9cd5c48bb87804f2efc8692f1023dac7f1a1a5c61d454043c1d265", - "sha256:86a93cccd50f8c125286e637328ff4eef108400dd7089b46a7be3445eecfa391", - "sha256:a0f329125a926876f647c9fa0ef32801587a12328b4a3c741270464e3e4fa778", - "sha256:a3c252ab0fa1bb0d5a3f6449a4826732f3eb6c0270925548cac342bc9b22c225", - "sha256:b4bb4d3f5e232425e25dda21c070ce05168a786ac9eda43768ab7f3ac2770955", - "sha256:cd0618c5ba5bda5f4039b9398bb7fb6a317bb8298218c3de25c47c4740e4b95e", - "sha256:ceacb9e5f8474dcf45b940578591c7f3d960e82f926c707788a570b51ba59190", - "sha256:fe6a88094b64132c4bb3b631412e90032e8cfe9745a58370462240b8cb7553cd" - ], - "version": "==5.1.1" + "sha256:0113bc0ec2ad727182326b61326afa3d1d8280ae1122493553fd6f4397f33df9", + "sha256:01adf0b6c6f61bd11af6e10ca52b7d4057dd0be0343eb9283c878cf3af56aee4", + "sha256:5124373960b0b3f4aa7df1707e63e9f109b5263eca5976c66e08b1c552d4eaf8", + "sha256:5ca4f10adbddae56d824b2c09668e91219bb178a1eee1faa56af6f99f11bf696", + "sha256:7907be34ffa3c5a32b60b95f4d95ea25361c951383a894fec31be7252b2b6f34", + "sha256:7ec9b2a4ed5cad025c2278a1e6a19c011c80a3caaac804fd2d329e9cc2c287c9", + "sha256:87ae4c829bb25b9fe99cf71fbb2140c448f534e24c998cc60f39ae4f94396a73", + "sha256:9de9919becc9cc2ff03637872a440195ac4241c80536632fffeb6a1e25a74299", + "sha256:a5a85b10e450c66b49f98846937e8cfca1db3127a9d5d1e31ca45c3d0bef4c5b", + "sha256:b0997827b4f6a7c286c01c5f60384d218dca4ed7d9efa945c3e1aa623d5709ae", + "sha256:b631ef96d3222e62861443cc89d6563ba3eeb816eeb96b2629345ab795e53681", + "sha256:bf47c0607522fdbca6c9e817a6e81b08491de50f3766a7a0e6a5be7905961b41", + "sha256:f81025eddd0327c7d4cfe9b62cf33190e1e736cc6e97502b3ec425f574b3e7a8" + ], + "version": "==5.1.2" }, "redis": { "hashes": [ - "sha256:6946b5dca72e86103edc8033019cc3814c031232d339d5f4533b02ea85685175", - "sha256:8ca418d2ddca1b1a850afa1680a7d2fd1f3322739271de4b704e0d4668449273" + "sha256:1f2493b72f669a096c59ca7cf7f4067b1ab58a0a3c6bef51d5d8fd384298c6a2", + "sha256:b851b0ef53b6d416f1dc692dc168f3d390b37995925bfe29351b3a869976598c" ], "index": "pypi", - "version": "==3.2.1" + "version": "==3.3.4" }, "redisgraph": { "hashes": [ @@ -561,10 +591,10 @@ }, "snapshottest": { "hashes": [ - "sha256:215c28eb397fd171a25a0e7d8b7b82d39619bf38d0e44de97c38842e8495b40c" + "sha256:2cc7157e77674ea8ebeb2351466ff50cd4b5ad8e213adc06df9c16a75ab5bafc" ], "index": "pypi", - "version": "==0.5.0" + "version": "==0.5.1" }, "snowballstemmer": { "hashes": [ @@ -592,6 +622,26 @@ ], "version": "==1.25.3" }, + "wasmer": { + "hashes": [ + "sha256:1d2c337425721fd9ac6c6b17698ef8a9795b236a38b0e3c85872a5845ffb0d90", + "sha256:2edb87608daa3b46bd2520e0b5b90580fde9c805be4d92eeb98c22b29a21abc6", + "sha256:4fe592b764fc09d535757682d0ced6da1037976a7eb97986fce3523779a89682", + "sha256:75d854cb5acdc32f289ceb310a72d66190fa531dd126eac970ed6788939a5d40", + "sha256:7b5235dd4ee1cf48d054e7216a1fefe15b8b1a48ffe5e9bb2655724cf84d7a31", + "sha256:e547b1074e52c10f0581de415b509aa61e577f5248340a68b356938393d773c8", + "sha256:fcfe2c7a9fbf323f3520ef9766b82e80cd433d7f8c87ff084b18bcde716923af" + ], + "markers": "python_version >= '3.5' and platform_machine == 'x86_64' and sys_platform == 'darwin'", + "version": "==0.3.0" + }, + "wcwidth": { + "hashes": [ + "sha256:3df37372226d6e63e1b1e1eda15c594bca98a22d33a23832a90998faa96bc65e", + "sha256:f4ebe71925af7b40a864553f761ed559b43544f8f71746c2d756c7fe788ade7c" + ], + "version": "==0.1.7" + }, "wrapt": { "hashes": [ "sha256:565a021fd19419476b9362b05eeaa094178de64f8361e44468f9e9d7843901e1" diff --git a/Pipfile.py2.lock b/Pipfile.py2.lock index f9f0a0006..f81b718e1 100644 --- a/Pipfile.py2.lock +++ b/Pipfile.py2.lock @@ -1,7 +1,7 @@ { "_meta": { "hash": { - "sha256": "2f8be489b9400a280445a4bd1f1455ddc40bcda518cef0ff99df9d209bd004ec" + "sha256": "7ed038dfda5270ca76bc060db9e331da8cb47254c7ae4de8493c97c2662f6c00" }, "pipfile-spec": 6, "requires": { @@ -18,11 +18,11 @@ "default": { "arrow": { "hashes": [ - "sha256:03404b624e89ac5e4fc19c52045fa0f3203419fd4dd64f6e8958c522580a574a", - "sha256:41be7ea4c53c2cf57bf30f2d614f60c411160133f7a0a8c49111c30fb7e725b5" + "sha256:157dee94b557ffe9a2e13e05669bf48820064cb37d416f547f59baa0d25301d4", + "sha256:47f37968afeaefd0ba3fe4d0c70dc830985f9ab11beeb381d4fc0e8f8151d3d6" ], "index": "pypi", - "version": "==0.14.2" + "version": "==0.14.4" }, "backports.functools-lru-cache": { "hashes": [ @@ -42,11 +42,11 @@ }, "graphql-core": { "hashes": [ - "sha256:60ef8277b82aaad49e87154a0288a9542a82a63909568375712f826b1c280ef5", - "sha256:6288fe97c32d2f868a2dfe62e766dc85d48c96c1d085294edf44714190f2e4f3" + "sha256:1488f2a5c2272dc9ba66e3042a6d1c30cea0db4c80bd1e911c6791ad6187d91b", + "sha256:da64c472d720da4537a2e8de8ba859210b62841bd47a9be65ca35177f62fe0e4" ], "index": "pypi", - "version": "==2.2" + "version": "==2.2.1" }, "promise": { "hashes": [ @@ -64,11 +64,11 @@ }, "pytz": { "hashes": [ - "sha256:303879e36b721603cc54604edcac9d20401bdbe31e1e4fdee5b9f98d5d31dfda", - "sha256:d747dd3d23d77ef44c6a3526e274af6efeb0a6f1afd5a69ba4d5be4098c8e141" + "sha256:26c0b32e437e54a18161324a2fca3c4b9846b74a8dccddd843113109e1116b32", + "sha256:c894d57500a4cd2d5c71114aaab77dbab5eabd9022308ce5ac9bb93a60a6f0c7" ], "index": "pypi", - "version": "==2019.1" + "version": "==2019.2" }, "rx": { "hashes": [ @@ -87,10 +87,10 @@ }, "sqlalchemy": { "hashes": [ - "sha256:c30925d60af95443458ebd7525daf791f55762b106049ae71e18f8dd58084c2f" + "sha256:217e7fc52199a05851eee9b6a0883190743c4fb9c8ac4313ccfceaffd852b0ff" ], "index": "pypi", - "version": "==1.3.5" + "version": "==1.3.6" }, "typing": { "hashes": [ @@ -141,11 +141,11 @@ }, "bandit": { "hashes": [ - "sha256:6102b5d6afd9d966df5054e0bdfc2e73a24d0fea400ec25f2e54c134412158d7", - "sha256:9413facfe9de1e1bd291d525c784e1beb1a55c9916b51dae12979af63a69ba4c" + "sha256:336620e220cf2d3115877685e264477ff9d9abaeb0afe3dc7264f55fa17a3952", + "sha256:41e75315853507aa145d62a78a2a6c5e3240fe14ee7c601459d0df9418196065" ], "index": "pypi", - "version": "==1.5.1" + "version": "==1.6.2" }, "certifi": { "hashes": [ @@ -199,7 +199,7 @@ "sha256:8be81d89d6e7b4c0d4e44bcc525845f6da25821de80cb5e06e7e0238a2899e32", "sha256:da60d0014fd8c55eb48c1c5354352e363e2d30bbf7057e5e171a468390184c75" ], - "markers": "python_version < '3.2'", + "markers": "python_version == '2.7'", "version": "==3.7.4" }, "contextlib2": { @@ -212,47 +212,48 @@ }, "coverage": { "hashes": [ - "sha256:3684fabf6b87a369017756b551cef29e505cb155ddb892a7a29277b978da88b9", - "sha256:39e088da9b284f1bd17c750ac672103779f7954ce6125fd4382134ac8d152d74", - "sha256:3c205bc11cc4fcc57b761c2da73b9b72a59f8d5ca89979afb0c1c6f9e53c7390", - "sha256:465ce53a8c0f3a7950dfb836438442f833cf6663d407f37d8c52fe7b6e56d7e8", - "sha256:48020e343fc40f72a442c8a1334284620f81295256a6b6ca6d8aa1350c763bbe", - "sha256:5296fc86ab612ec12394565c500b412a43b328b3907c0d14358950d06fd83baf", - "sha256:5f61bed2f7d9b6a9ab935150a6b23d7f84b8055524e7be7715b6513f3328138e", - "sha256:68a43a9f9f83693ce0414d17e019daee7ab3f7113a70c79a3dd4c2f704e4d741", - "sha256:6b8033d47fe22506856fe450470ccb1d8ba1ffb8463494a15cfc96392a288c09", - "sha256:7ad7536066b28863e5835e8cfeaa794b7fe352d99a8cded9f43d1161be8e9fbd", - "sha256:7bacb89ccf4bedb30b277e96e4cc68cd1369ca6841bde7b005191b54d3dd1034", - "sha256:839dc7c36501254e14331bcb98b27002aa415e4af7ea039d9009409b9d2d5420", - "sha256:8f9a95b66969cdea53ec992ecea5406c5bd99c9221f539bca1e8406b200ae98c", - "sha256:932c03d2d565f75961ba1d3cec41ddde00e162c5b46d03f7423edcb807734eab", - "sha256:988529edadc49039d205e0aa6ce049c5ccda4acb2d6c3c5c550c17e8c02c05ba", - "sha256:998d7e73548fe395eeb294495a04d38942edb66d1fa61eb70418871bc621227e", - "sha256:9de60893fb447d1e797f6bf08fdf0dbcda0c1e34c1b06c92bd3a363c0ea8c609", - "sha256:9e80d45d0c7fcee54e22771db7f1b0b126fb4a6c0a2e5afa72f66827207ff2f2", - "sha256:a545a3dfe5082dc8e8c3eb7f8a2cf4f2870902ff1860bd99b6198cfd1f9d1f49", - "sha256:a5d8f29e5ec661143621a8f4de51adfb300d7a476224156a39a392254f70687b", - "sha256:aca06bfba4759bbdb09bf52ebb15ae20268ee1f6747417837926fae990ebc41d", - "sha256:bb23b7a6fd666e551a3094ab896a57809e010059540ad20acbeec03a154224ce", - "sha256:bfd1d0ae7e292105f29d7deaa9d8f2916ed8553ab9d5f39ec65bcf5deadff3f9", - "sha256:c62ca0a38958f541a73cf86acdab020c2091631c137bd359c4f5bddde7b75fd4", - "sha256:c709d8bda72cf4cd348ccec2a4881f2c5848fd72903c185f363d361b2737f773", - "sha256:c968a6aa7e0b56ecbd28531ddf439c2ec103610d3e2bf3b75b813304f8cb7723", - "sha256:df785d8cb80539d0b55fd47183264b7002077859028dfe3070cf6359bf8b2d9c", - "sha256:f406628ca51e0ae90ae76ea8398677a921b36f0bd71aab2099dfed08abd0322f", - "sha256:f46087bbd95ebae244a0eda01a618aff11ec7a069b15a3ef8f6b520db523dcf1", - "sha256:f8019c5279eb32360ca03e9fac40a12667715546eed5c5eb59eb381f2f501260", - "sha256:fc5f4d209733750afd2714e9109816a29500718b32dd9a5db01c0cb3a019b96a" - ], - "version": "==4.5.3" + "sha256:08907593569fe59baca0bf152c43f3863201efb6113ecb38ce7e97ce339805a6", + "sha256:0be0f1ed45fc0c185cfd4ecc19a1d6532d72f86a2bac9de7e24541febad72650", + "sha256:141f08ed3c4b1847015e2cd62ec06d35e67a3ac185c26f7635f4406b90afa9c5", + "sha256:19e4df788a0581238e9390c85a7a09af39c7b539b29f25c89209e6c3e371270d", + "sha256:23cc09ed395b03424d1ae30dcc292615c1372bfba7141eb85e11e50efaa6b351", + "sha256:245388cda02af78276b479f299bbf3783ef0a6a6273037d7c60dc73b8d8d7755", + "sha256:331cb5115673a20fb131dadd22f5bcaf7677ef758741312bee4937d71a14b2ef", + "sha256:386e2e4090f0bc5df274e720105c342263423e77ee8826002dcffe0c9533dbca", + "sha256:3a794ce50daee01c74a494919d5ebdc23d58873747fa0e288318728533a3e1ca", + "sha256:60851187677b24c6085248f0a0b9b98d49cba7ecc7ec60ba6b9d2e5574ac1ee9", + "sha256:63a9a5fc43b58735f65ed63d2cf43508f462dc49857da70b8980ad78d41d52fc", + "sha256:6b62544bb68106e3f00b21c8930e83e584fdca005d4fffd29bb39fb3ffa03cb5", + "sha256:6ba744056423ef8d450cf627289166da65903885272055fb4b5e113137cfa14f", + "sha256:7494b0b0274c5072bddbfd5b4a6c6f18fbbe1ab1d22a41e99cd2d00c8f96ecfe", + "sha256:826f32b9547c8091679ff292a82aca9c7b9650f9fda3e2ca6bf2ac905b7ce888", + "sha256:93715dffbcd0678057f947f496484e906bf9509f5c1c38fc9ba3922893cda5f5", + "sha256:9a334d6c83dfeadae576b4d633a71620d40d1c379129d587faa42ee3e2a85cce", + "sha256:af7ed8a8aa6957aac47b4268631fa1df984643f07ef00acd374e456364b373f5", + "sha256:bf0a7aed7f5521c7ca67febd57db473af4762b9622254291fbcbb8cd0ba5e33e", + "sha256:bf1ef9eb901113a9805287e090452c05547578eaab1b62e4ad456fcc049a9b7e", + "sha256:c0afd27bc0e307a1ffc04ca5ec010a290e49e3afbe841c5cafc5c5a80ecd81c9", + "sha256:dd579709a87092c6dbee09d1b7cfa81831040705ffa12a1b248935274aee0437", + "sha256:df6712284b2e44a065097846488f66840445eb987eb81b3cc6e4149e7b6982e1", + "sha256:e07d9f1a23e9e93ab5c62902833bf3e4b1f65502927379148b6622686223125c", + "sha256:e2ede7c1d45e65e209d6093b762e98e8318ddeff95317d07a27a2140b80cfd24", + "sha256:e4ef9c164eb55123c62411f5936b5c2e521b12356037b6e1c2617cef45523d47", + "sha256:eca2b7343524e7ba246cab8ff00cab47a2d6d54ada3b02772e908a45675722e2", + "sha256:eee64c616adeff7db37cc37da4180a3a5b6177f5c46b187894e633f088fb5b28", + "sha256:ef824cad1f980d27f26166f86856efe11eff9912c4fed97d3804820d43fa550c", + "sha256:efc89291bd5a08855829a3c522df16d856455297cf35ae827a37edac45f466a7", + "sha256:fa964bae817babece5aa2e8c1af841bebb6d0b9add8e637548809d040443fee0", + "sha256:ff37757e068ae606659c28c3bd0d923f9d29a85de79bf25b2b34b148473b5025" + ], + "version": "==4.5.4" }, "coveralls": { "hashes": [ - "sha256:ab638e88d38916a6cedbf80a9cd8992d5fa55c77ab755e262e00b36792b7cd6d", - "sha256:b2388747e2529fa4c669fb1e3e2756e4e07b6ee56c7d9fce05f35ccccc913aa0" + "sha256:9bc5a1f92682eef59f688a8f280207190d9a6afb84cef8f567fa47631a784060", + "sha256:fb51cddef4bc458de347274116df15d641a735d3f0a580a9472174e2e62f408c" ], "index": "pypi", - "version": "==1.5.1" + "version": "==1.8.2" }, "cryptography": { "hashes": [ @@ -315,6 +316,13 @@ ], "version": "==0.6.2" }, + "entrypoints": { + "hashes": [ + "sha256:589f874b313739ad35be6e0cd7efde2a4e9b6fea91edcc34e58ecbb8dbe56d19", + "sha256:c70dd71abe5a8c85e55e12c19bd91ccfeec11a6e99044204511f9ed547d48451" + ], + "version": "==0.3" + }, "enum34": { "hashes": [ "sha256:2d81cbbe0e73112bdfe6ef8576f2238f2ba27dd0d55752a776c41d38b7da2850", @@ -322,16 +330,22 @@ "sha256:6bd0f6ad48ec2aa117d3d141940d484deccda84d4fcd884f5c3d93c23ecd8c79", "sha256:8ad8c4783bf61ded74527bffb48ed9b54166685e4230386a9ed9b1279e2df5b1" ], - "markers": "python_version < '3.4'", + "markers": "python_version < '3'", "version": "==1.1.6" }, + "fastdiff": { + "hashes": [ + "sha256:623ad3d9055ab78e014d0d10767cb033d98d5d4f66052abf498350c8e42e29aa" + ], + "version": "==0.2.0" + }, "flake8": { "hashes": [ - "sha256:6a35f5b8761f45c5513e3405f110a86bea57982c3b75b766ce7b65217abe1670", - "sha256:c01f8a3963b3571a8e6bd7a4063359aff90749e160778e03817cd9b71c9e07d2" + "sha256:19241c1cbc971b9962473e4438a2ca19749a7dd002dd1a946eaba171b4114548", + "sha256:8e9dfa3cecb2400b3738a42c54c3043e821682b9c840b0448c0503f781130696" ], "index": "pypi", - "version": "==3.6.0" + "version": "==3.7.8" }, "flake8-print": { "hashes": [ @@ -362,11 +376,20 @@ "markers": "python_version < '3.0'", "version": "==1.0.2" }, + "functools32": { + "hashes": [ + "sha256:89d824aa6c358c421a234d7f9ee0bd75933a67c29588ce50aaa3acdf4d403fa0", + "sha256:f6253dfbe0538ad2e387bd8fdfd9293c925d63553f5813c4e587745416501e6d" + ], + "markers": "python_version < '3.2'", + "version": "==3.2.3.post2" + }, "futures": { "hashes": [ "sha256:49b3f5b064b6e3afc3316421a3f25f66c137ae88f068abbf72830170033c5e16", "sha256:7e033af76a5e35f58e56da7a91e687706faf4e7bdfb2cbc3f2cca6b9bcda9794" ], + "markers": "python_version < '3.2'", "version": "==3.3.0" }, "gitdb2": { @@ -378,10 +401,10 @@ }, "gitpython": { "hashes": [ - "sha256:563221e5a44369c6b79172f455584c9ebbb122a13368cc82cb4b5addff788f82", - "sha256:8237dc5bfd6f1366abeee5624111b9d6879393d84745a507de0fda86043b65a8" + "sha256:c15c55ff890cd3a6a8330059e80885410a328f645551b55a91d858bfb3eb2573", + "sha256:df752b6b6f06f11213e91c4925aea7eaf9e37e88fb71c8a7a1aa0a5c10852120" ], - "version": "==2.1.11" + "version": "==2.1.13" }, "idna": { "hashes": [ @@ -392,10 +415,10 @@ }, "importlib-metadata": { "hashes": [ - "sha256:6dfd58dfe281e8d240937776065dd3624ad5469c835248219bd16cf2e12dbeb7", - "sha256:cb6ee23b46173539939964df59d3d72c3e0c1b5d54b84f1d8a7e912fe43612db" + "sha256:23d3d873e008a513952355379d93cbcab874c58f4f034ff657c7a87422fa64e8", + "sha256:80d2de76188eabfbfcf27e6a37342c2827801e59c4cc14b0371c56fed43820e3" ], - "version": "==0.18" + "version": "==0.19" }, "ipaddress": { "hashes": [ @@ -407,12 +430,11 @@ }, "isort": { "hashes": [ - "sha256:1153601da39a25b14ddc54955dbbacbb6b2d19135386699e2ad58517953b34af", - "sha256:b9c40e9750f3d77e6e4d441d8b0266cf555e7cdabdcff33c4fd06366ca761ef8", - "sha256:ec9ef8f4a9bc6f71eec99e1806bfa2de401650d996c59330782b89a5555c1497" + "sha256:54da7e92468955c4fceacd0c86bd0ec997b0e1ee80d97f67c35a78b719dccab1", + "sha256:6e811fcb295968434526407adb8796944f1988c5b65e8139058f2014cbe100fd" ], "index": "pypi", - "version": "==4.3.4" + "version": "==4.3.21" }, "lazy-object-proxy": { "hashes": [ @@ -450,6 +472,7 @@ "sha256:c0a5785b1109a6bd7fac76d6837fd1feca158e54e521ccd2ae8bfe393cc9d4fc", "sha256:fe7a7cae1ccb57d33952113ff4fa1bc5f879963600ed74918f1236e212ee50b9" ], + "markers": "python_version <= '2.7'", "version": "==5.0.0" }, "mysqlclient": { @@ -480,13 +503,20 @@ ], "version": "==1.7.4" }, + "packaging": { + "hashes": [ + "sha256:a7ac867b97fdc07ee80a8058fe4435ccd274ecc3b0ed61d852d7d53055528cf9", + "sha256:c491ca87294da7cc01902edbe30a5bc6c4c28172b5138ab4e4aa1b9d7bfaeafe" + ], + "version": "==19.1" + }, "parameterized": { "hashes": [ - "sha256:caf58e717097735de0d7e15386a46ffa5ce25bb6a13a43716a8854a8d34841e2", - "sha256:cf5fa4f295dfb823cebdb27a00566113f2fbb71c7d5ca7b7a1019fd20c8a0811" + "sha256:020343a281efcfe9b71b9028a91817f981202c14d72104b5a2fbe401dee25a18", + "sha256:d8c8837fb677ed2d5a93b9e2308ce0da3aeb58cf513120d501e0b7af14da78d5" ], "index": "pypi", - "version": "==0.6.1" + "version": "==0.7.0" }, "pathlib2": { "hashes": [ @@ -498,10 +528,10 @@ }, "pbr": { "hashes": [ - "sha256:36ebd78196e8c9588c972f5571230a059ff83783fabbbbedecc07be263ccd7e6", - "sha256:5a03f59455ad54f01a94c15829b8b70065462b7bd8d5d7e983306b59127fc841" + "sha256:0ca44dc9fd3b04a22297c2a91082d8df2894862e8f4c86a49dac69eae9e85ca0", + "sha256:4aed6c1b1fa5020def0f22aed663d87b81bb3235f112490b07d2643d7a98c5b5" ], - "version": "==5.4.0" + "version": "==5.4.1" }, "pluggy": { "hashes": [ @@ -561,10 +591,10 @@ }, "pycodestyle": { "hashes": [ - "sha256:cbc619d09254895b0d12c2c691e237b2e91e9b2ecf5e84c26b35400f93dcfb83", - "sha256:cbfca99bd594a10f674d0cd97a3d802a1fdef635d4361e1a2658de47ed261e3a" + "sha256:95a2219d12372f05704562a14ec30bc76b05a5b297b21a5dfe3f6fac3491ae56", + "sha256:e40a936c9a450ad81df37f549d676d127b1b66000a6c500caa2b085bc0ca976c" ], - "version": "==2.4.0" + "version": "==2.5.0" }, "pycparser": { "hashes": [ @@ -583,18 +613,18 @@ }, "pyflakes": { "hashes": [ - "sha256:9a7662ec724d0120012f6e29d6248ae3727d821bba522a0e6b356eff19126a49", - "sha256:f661252913bc1dbe7fcfcbf0af0db3f42ab65aabd1a6ca68fe5d466bace94dae" + "sha256:17dbeb2e3f4d772725c777fabc446d5634d1038f234e77343108ce445ea69ce0", + "sha256:d976835886f8c5b31d47970ed689944a0262b5f3afa00a5a7b4dc81e5449f8a2" ], - "version": "==2.0.0" + "version": "==2.1.1" }, "pylint": { "hashes": [ - "sha256:156839bedaa798febee72893beef00c650c2e7abafb5586fc7a6a56be7f80412", - "sha256:4fe3b99da7e789545327b75548cee6b511e4faa98afe268130fea1af4b5ec022" + "sha256:02c2b6d268695a8b64ad61847f92e611e6afcff33fd26c3a2125370c4662905d", + "sha256:ee1e85575587c5b58ddafa25e1c1b01691ef172e139fc25585e5d3f02451da93" ], "index": "pypi", - "version": "==1.8.2" + "version": "==1.9.4" }, "pymssql": { "hashes": [ @@ -639,53 +669,62 @@ "index": "pypi", "version": "==1.5.5" }, + "pyparsing": { + "hashes": [ + "sha256:6f98a7b9397e206d78cc01df10131398f1c8b8510a2f4d97d9abd82e1aacdd80", + "sha256:d9338df12903bbf5d65a0e4e87c2161968b10d2e489652bb47001d82a9b028b4" + ], + "version": "==2.4.2" + }, "pytest": { "hashes": [ - "sha256:3e65a22eb0d4f1bdbc1eacccf4a3198bf8d4049dea5112d70a0c61b00e748d02", - "sha256:5924060b374f62608a078494b909d341720a050b5224ff87e17e12377486a71d" + "sha256:6aa9bc2f6f6504d7949e9df2a756739ca06e58ffda19b5e53c725f7b03fb4aae", + "sha256:b77ae6f2d1a760760902a7676887b665c086f71e3461c64ed2a312afcedc00d6" ], "index": "pypi", - "version": "==4.1.0" + "version": "==4.6.4" }, "pytest-cov": { "hashes": [ - "sha256:0ab664b25c6aa9716cbf203b17ddb301932383046082c081b9848a0edf5add33", - "sha256:230ef817450ab0699c6cc3c9c8f7a829c34674456f2ed8df1fe1d39780f7c87f" + "sha256:2b097cde81a302e1047331b48cadacf23577e431b61e9c6f49a1170bbe3d3da6", + "sha256:e00ea4fdde970725482f1f35630d12f074e121a23801aabf2ae154ec6bdd343a" ], "index": "pypi", - "version": "==2.6.1" + "version": "==2.7.1" }, "pytz": { "hashes": [ - "sha256:303879e36b721603cc54604edcac9d20401bdbe31e1e4fdee5b9f98d5d31dfda", - "sha256:d747dd3d23d77ef44c6a3526e274af6efeb0a6f1afd5a69ba4d5be4098c8e141" + "sha256:26c0b32e437e54a18161324a2fca3c4b9846b74a8dccddd843113109e1116b32", + "sha256:c894d57500a4cd2d5c71114aaab77dbab5eabd9022308ce5ac9bb93a60a6f0c7" ], "index": "pypi", - "version": "==2019.1" + "version": "==2019.2" }, "pyyaml": { "hashes": [ - "sha256:57acc1d8533cbe51f6662a55434f0dbecfa2b9eaf115bede8f6fd00115a0c0d3", - "sha256:588c94b3d16b76cfed8e0be54932e5729cc185caffaa5a451e7ad2f7ed8b4043", - "sha256:68c8dd247f29f9a0d09375c9c6b8fdc64b60810ebf07ba4cdd64ceee3a58c7b7", - "sha256:70d9818f1c9cd5c48bb87804f2efc8692f1023dac7f1a1a5c61d454043c1d265", - "sha256:86a93cccd50f8c125286e637328ff4eef108400dd7089b46a7be3445eecfa391", - "sha256:a0f329125a926876f647c9fa0ef32801587a12328b4a3c741270464e3e4fa778", - "sha256:a3c252ab0fa1bb0d5a3f6449a4826732f3eb6c0270925548cac342bc9b22c225", - "sha256:b4bb4d3f5e232425e25dda21c070ce05168a786ac9eda43768ab7f3ac2770955", - "sha256:cd0618c5ba5bda5f4039b9398bb7fb6a317bb8298218c3de25c47c4740e4b95e", - "sha256:ceacb9e5f8474dcf45b940578591c7f3d960e82f926c707788a570b51ba59190", - "sha256:fe6a88094b64132c4bb3b631412e90032e8cfe9745a58370462240b8cb7553cd" - ], - "version": "==5.1.1" + "sha256:0113bc0ec2ad727182326b61326afa3d1d8280ae1122493553fd6f4397f33df9", + "sha256:01adf0b6c6f61bd11af6e10ca52b7d4057dd0be0343eb9283c878cf3af56aee4", + "sha256:5124373960b0b3f4aa7df1707e63e9f109b5263eca5976c66e08b1c552d4eaf8", + "sha256:5ca4f10adbddae56d824b2c09668e91219bb178a1eee1faa56af6f99f11bf696", + "sha256:7907be34ffa3c5a32b60b95f4d95ea25361c951383a894fec31be7252b2b6f34", + "sha256:7ec9b2a4ed5cad025c2278a1e6a19c011c80a3caaac804fd2d329e9cc2c287c9", + "sha256:87ae4c829bb25b9fe99cf71fbb2140c448f534e24c998cc60f39ae4f94396a73", + "sha256:9de9919becc9cc2ff03637872a440195ac4241c80536632fffeb6a1e25a74299", + "sha256:a5a85b10e450c66b49f98846937e8cfca1db3127a9d5d1e31ca45c3d0bef4c5b", + "sha256:b0997827b4f6a7c286c01c5f60384d218dca4ed7d9efa945c3e1aa623d5709ae", + "sha256:b631ef96d3222e62861443cc89d6563ba3eeb816eeb96b2629345ab795e53681", + "sha256:bf47c0607522fdbca6c9e817a6e81b08491de50f3766a7a0e6a5be7905961b41", + "sha256:f81025eddd0327c7d4cfe9b62cf33190e1e736cc6e97502b3ec425f574b3e7a8" + ], + "version": "==5.1.2" }, "redis": { "hashes": [ - "sha256:6946b5dca72e86103edc8033019cc3814c031232d339d5f4533b02ea85685175", - "sha256:8ca418d2ddca1b1a850afa1680a7d2fd1f3322739271de4b704e0d4668449273" + "sha256:1f2493b72f669a096c59ca7cf7f4067b1ab58a0a3c6bef51d5d8fd384298c6a2", + "sha256:b851b0ef53b6d416f1dc692dc168f3d390b37995925bfe29351b3a869976598c" ], "index": "pypi", - "version": "==3.2.1" + "version": "==3.3.4" }, "redisgraph": { "hashes": [ @@ -743,10 +782,10 @@ }, "snapshottest": { "hashes": [ - "sha256:215c28eb397fd171a25a0e7d8b7b82d39619bf38d0e44de97c38842e8495b40c" + "sha256:2cc7157e77674ea8ebeb2351466ff50cd4b5ad8e213adc06df9c16a75ab5bafc" ], "index": "pypi", - "version": "==0.5.0" + "version": "==0.5.1" }, "snowballstemmer": { "hashes": [ @@ -767,6 +806,15 @@ ], "version": "==1.1.0" }, + "typing": { + "hashes": [ + "sha256:38566c558a0a94d6531012c8e917b1b8518a41e418f7f15f00e129cc80162ad3", + "sha256:53765ec4f83a2b720214727e319607879fec4acde22c4fbb54fa2604e79e44ce", + "sha256:84698954b4e6719e912ef9a42a2431407fe3755590831699debda6fba92aac55" + ], + "markers": "python_version < '3.5'", + "version": "==3.7.4" + }, "urllib3": { "extras": [ "secure" @@ -778,6 +826,13 @@ "markers": "python_version < '3'", "version": "==1.25.3" }, + "wcwidth": { + "hashes": [ + "sha256:3df37372226d6e63e1b1e1eda15c594bca98a22d33a23832a90998faa96bc65e", + "sha256:f4ebe71925af7b40a864553f761ed559b43544f8f71746c2d756c7fe788ade7c" + ], + "version": "==0.1.7" + }, "wrapt": { "hashes": [ "sha256:565a021fd19419476b9362b05eeaa094178de64f8361e44468f9e9d7843901e1" diff --git a/graphql_compiler/__init__.py b/graphql_compiler/__init__.py index 6a85ee8de..ebe55519d 100644 --- a/graphql_compiler/__init__.py +++ b/graphql_compiler/__init__.py @@ -1,27 +1,22 @@ # Copyright 2017-present Kensho Technologies, LLC. """Commonly-used functions and data types from this package.""" from .compiler import ( # noqa - CompilationResult, - OutputMetadata, - compile_graphql_to_gremlin, - compile_graphql_to_match, - compile_graphql_to_sql, - compile_graphql_to_cypher, + CompilationResult, OutputMetadata, compile_graphql_to_cypher, compile_graphql_to_gremlin, + compile_graphql_to_match, compile_graphql_to_sql ) -from .query_formatting import insert_arguments_into_query # noqa -from .query_formatting.graphql_formatting import pretty_print_graphql # noqa from .exceptions import ( # noqa GraphQLCompilationError, GraphQLError, GraphQLInvalidArgumentError, GraphQLParsingError, GraphQLValidationError ) +from .query_formatting import insert_arguments_into_query # noqa +from .query_formatting.graphql_formatting import pretty_print_graphql # noqa from .schema import ( # noqa DIRECTIVES, EXTENDED_META_FIELD_DEFINITIONS, GraphQLDate, GraphQLDateTime, GraphQLDecimal, insert_meta_fields_into_existing_schema, is_meta_field ) from .schema_generation.graphql_schema import get_graphql_schema_from_schema_graph -from .schema_generation.orientdb.schema_graph_builder import ( - get_orientdb_schema_graph -) +from .schema_generation.orientdb.schema_graph_builder import get_orientdb_schema_graph + __package_name__ = 'graphql-compiler' __version__ = '1.11.0' diff --git a/graphql_compiler/compiler/__init__.py b/graphql_compiler/compiler/__init__.py index 775cca16e..65d26bbf9 100644 --- a/graphql_compiler/compiler/__init__.py +++ b/graphql_compiler/compiler/__init__.py @@ -1,10 +1,7 @@ # Copyright 2017-present Kensho Technologies, LLC. -from .common import ( # noqa - CompilationResult, - compile_graphql_to_cypher, - compile_graphql_to_gremlin, - compile_graphql_to_match, - compile_graphql_to_sql, +from .common import ( # noqa; noqa + CYPHER_LANGUAGE, GREMLIN_LANGUAGE, MATCH_LANGUAGE, SQL_LANGUAGE, CompilationResult, + compile_graphql_to_cypher, compile_graphql_to_gremlin, compile_graphql_to_match, + compile_graphql_to_sql ) -from .common import CYPHER_LANGUAGE, GREMLIN_LANGUAGE, MATCH_LANGUAGE, SQL_LANGUAGE # noqa from .compiler_frontend import OutputMetadata # noqa diff --git a/graphql_compiler/compiler/ir_lowering_cypher/__init__.py b/graphql_compiler/compiler/ir_lowering_cypher/__init__.py index 97d84099a..d62c79f9e 100644 --- a/graphql_compiler/compiler/ir_lowering_cypher/__init__.py +++ b/graphql_compiler/compiler/ir_lowering_cypher/__init__.py @@ -1,14 +1,14 @@ # Copyright 2019-present Kensho Technologies, LLC. -from ..ir_sanity_checks import sanity_check_ir_blocks_from_frontend +from ..cypher_query import convert_to_cypher_query from ..ir_lowering_common.common import ( lower_context_field_existence, merge_consecutive_filter_clauses, optimize_boolean_expression_comparisons ) +from ..ir_sanity_checks import sanity_check_ir_blocks_from_frontend from .ir_lowering import ( insert_explicit_type_bounds, move_filters_in_optional_locations_to_global_operations, remove_mark_location_after_optional_backtrack, replace_local_fields_with_context_fields ) -from ..cypher_query import convert_to_cypher_query ############## diff --git a/graphql_compiler/compiler/ir_lowering_gremlin/__init__.py b/graphql_compiler/compiler/ir_lowering_gremlin/__init__.py index 7b647def4..4edc4aa5a 100644 --- a/graphql_compiler/compiler/ir_lowering_gremlin/__init__.py +++ b/graphql_compiler/compiler/ir_lowering_gremlin/__init__.py @@ -1,11 +1,13 @@ # Copyright 2018-present Kensho Technologies, LLC. -from .ir_lowering import (lower_coerce_type_block_type_data, lower_coerce_type_blocks, - lower_folded_outputs_and_context_fields, - rewrite_filters_in_optional_blocks) +from ..ir_lowering_common.common import ( + lower_context_field_existence, merge_consecutive_filter_clauses, + optimize_boolean_expression_comparisons +) from ..ir_sanity_checks import sanity_check_ir_blocks_from_frontend -from ..ir_lowering_common.common import (lower_context_field_existence, - merge_consecutive_filter_clauses, - optimize_boolean_expression_comparisons) +from .ir_lowering import ( + lower_coerce_type_block_type_data, lower_coerce_type_blocks, + lower_folded_outputs_and_context_fields, rewrite_filters_in_optional_blocks +) ############## diff --git a/graphql_compiler/compiler/ir_lowering_match/__init__.py b/graphql_compiler/compiler/ir_lowering_match/__init__.py index 702a519d6..49fcc47b4 100644 --- a/graphql_compiler/compiler/ir_lowering_match/__init__.py +++ b/graphql_compiler/compiler/ir_lowering_match/__init__.py @@ -2,29 +2,31 @@ import six from ..blocks import Filter -from ..ir_lowering_common.common import (extract_optional_location_root_info, - extract_simple_optional_location_info, - lower_context_field_existence, - merge_consecutive_filter_clauses, - optimize_boolean_expression_comparisons, - remove_end_optionals) -from .ir_lowering import (lower_backtrack_blocks, - lower_folded_coerce_types_into_filter_blocks, - lower_has_substring_binary_compositions, - remove_backtrack_blocks_from_fold, - rewrite_binary_composition_inside_ternary_conditional, - truncate_repeated_single_step_traversals, - truncate_repeated_single_step_traversals_in_sub_queries) +from ..ir_lowering_common.common import ( + extract_optional_location_root_info, extract_simple_optional_location_info, + lower_context_field_existence, merge_consecutive_filter_clauses, + optimize_boolean_expression_comparisons, remove_end_optionals +) from ..ir_sanity_checks import sanity_check_ir_blocks_from_frontend -from .between_lowering import lower_comparisons_to_between -from .optional_traversal import (collect_filters_to_first_location_occurrence, - convert_optional_traversals_to_compound_match_query, - lower_context_field_expressions, prune_non_existent_outputs) from ..match_query import convert_to_match_query -from ..workarounds import (orientdb_class_with_while, orientdb_eval_scheduling, - orientdb_query_execution) +from ..workarounds import ( + orientdb_class_with_while, orientdb_eval_scheduling, orientdb_query_execution +) +from .between_lowering import lower_comparisons_to_between +from .ir_lowering import ( + lower_backtrack_blocks, lower_folded_coerce_types_into_filter_blocks, + lower_has_substring_binary_compositions, remove_backtrack_blocks_from_fold, + rewrite_binary_composition_inside_ternary_conditional, truncate_repeated_single_step_traversals, + truncate_repeated_single_step_traversals_in_sub_queries +) +from .optional_traversal import ( + collect_filters_to_first_location_occurrence, + convert_optional_traversals_to_compound_match_query, lower_context_field_expressions, + prune_non_existent_outputs +) from .utils import construct_where_filter_predicate + ############## # Public API # ############## diff --git a/graphql_compiler/compiler/ir_lowering_sql/__init__.py b/graphql_compiler/compiler/ir_lowering_sql/__init__.py index db663c47f..753a23cc3 100644 --- a/graphql_compiler/compiler/ir_lowering_sql/__init__.py +++ b/graphql_compiler/compiler/ir_lowering_sql/__init__.py @@ -2,12 +2,13 @@ import six -from .sql_tree import SqlNode, SqlQueryTree from .. import blocks from ...compiler import expressions from ...compiler.helpers import Location from ..ir_lowering_sql import constants from ..metadata import LocationInfo +from .sql_tree import SqlNode, SqlQueryTree + ############## # Public API # diff --git a/graphql_compiler/cost_estimation/cardinality_estimator.py b/graphql_compiler/cost_estimation/cardinality_estimator.py index f52435b4d..e018fca12 100644 --- a/graphql_compiler/cost_estimation/cardinality_estimator.py +++ b/graphql_compiler/cost_estimation/cardinality_estimator.py @@ -115,16 +115,23 @@ def _estimate_children_per_parent( ) child_name_from_location = query_metadata.get_location_info(child_location).type.name if child_name_from_edge != child_name_from_location: + # False-positive bug in pylint: https://github.com/PyCQA/pylint/issues/3039 + # pylint: disable=old-division edge_counts *= ( float(lookup_class_counts(child_name_from_location)) / lookup_class_counts(child_name_from_edge) ) + # pylint: enable=old-division # Count the number of parents, over which we assume the edges are uniformly distributed. parent_counts = lookup_class_counts(parent_name_from_edge) + # False-positive bug in pylint: https://github.com/PyCQA/pylint/issues/3039 + # pylint: disable=old-division + # # TODO(evan): edges are not necessarily uniformly distributed, so record more statistics child_counts_per_parent = float(edge_counts) / parent_counts + # pylint: enable=old-division # Recursion always starts with depth = 0, so we should treat the parent result set itself as a # child result set to be expanded (so add 1 to child_counts). diff --git a/graphql_compiler/tests/integration_tests/integration_backend_config.py b/graphql_compiler/tests/integration_tests/integration_backend_config.py index 76a1346bd..d57be1580 100644 --- a/graphql_compiler/tests/integration_tests/integration_backend_config.py +++ b/graphql_compiler/tests/integration_tests/integration_backend_config.py @@ -4,8 +4,8 @@ from .. import test_backend -DEFAULT_ROOT_PASSWORD = u'root' -MSSQL_ROOT_PASSWORD = u'Root-secure1' # mssql has stricter root password restrictions +DEFAULT_ROOT_PASSWORD = u'root' # nosec +MSSQL_ROOT_PASSWORD = u'Root-secure1' # mssql has stricter root password restrictions # nosec SQL_BACKENDS = { test_backend.POSTGRES, diff --git a/graphql_compiler/tests/test_data_tools/neo4j_graph.py b/graphql_compiler/tests/test_data_tools/neo4j_graph.py index 33f2bafaf..d227f6655 100644 --- a/graphql_compiler/tests/test_data_tools/neo4j_graph.py +++ b/graphql_compiler/tests/test_data_tools/neo4j_graph.py @@ -6,7 +6,7 @@ NEO4J_SERVER = 'localhost' NEO4J_PORT = 7687 NEO4J_USER = 'neo4j' -NEO4J_PASSWORD = 'root' +NEO4J_PASSWORD = 'root' # nosec class Neo4jClient(object): diff --git a/graphql_compiler/tests/test_data_tools/orientdb_graph.py b/graphql_compiler/tests/test_data_tools/orientdb_graph.py index 4e7a498c3..79ef8d409 100644 --- a/graphql_compiler/tests/test_data_tools/orientdb_graph.py +++ b/graphql_compiler/tests/test_data_tools/orientdb_graph.py @@ -7,7 +7,7 @@ ORIENTDB_SERVER = 'localhost' ORIENTDB_PORT = 2424 ORIENTDB_USER = 'root' -ORIENTDB_PASSWORD = 'root' +ORIENTDB_PASSWORD = 'root' # nosec def get_orientdb_url(database_name):