diff --git a/.coveragerc b/.coveragerc new file mode 100644 index 0000000000000000000000000000000000000000..f1f0d805316265cd501992c55ebe5830fd2beeac --- /dev/null +++ b/.coveragerc @@ -0,0 +1,8 @@ +[run] +omit = */OldImporters/* + +[report] +fail_under = 88.6 + +[html] +directory = htmlcov diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 3dd8da098423a5332e80f1264d175410fb7b85f1..f91cceeea9ab21f3fb29bd3962a8d6c8328f90b7 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -48,7 +48,7 @@ test: - make test artifacts: paths: - - src/tests/htmlcov + - htmlcov expire_in: 30 days .codequality: diff --git a/Makefile b/Makefile index e1850db72758ec250dae64e3da72007ec8002bab..76e74aacfcd470f0910e747e6a8fb2d9f6da8df0 100644 --- a/Makefile +++ b/Makefile @@ -22,7 +22,7 @@ bdist: @export PYTHONPATH=`pwd`/src:$(PYTHONPATH); python3 setup.py bdist_wheel test: - @export PYTHONPATH=`pwd`/src:$(PYTHONPATH); cd src/tests; py.test -x --log-level=INFO --no-cov-on-fail --cov-fail-under=81 --cov-report=html . + @export PYTHONPATH=`pwd`/src:$(PYTHONPATH); py.test -x --log-level=INFO --no-cov-on-fail --cov-report=html src/tests mypy: @export PYTHONPATH=`pwd`/src:$(PYTHONPATH); mypy src diff --git a/Pipfile.lock b/Pipfile.lock index 7e401ffba6ad1e903322be793e70cb11d7ed9905..e3ade658157d4d6fcad1db58dd2cde7a6089d075 100644 --- a/Pipfile.lock +++ b/Pipfile.lock @@ -178,30 +178,30 @@ }, "numpy": { "hashes": [ - "sha256:0a7a1dd123aecc9f0076934288ceed7fd9a81ba3919f11a855a7887cbe82a02f", - "sha256:0c0763787133dfeec19904c22c7e358b231c87ba3206b211652f8cbe1241deb6", - "sha256:3d52298d0be333583739f1aec9026f3b09fdfe3ddf7c7028cb16d9d2af1cca7e", - "sha256:43bb4b70585f1c2d153e45323a886839f98af8bfa810f7014b20be714c37c447", - "sha256:475963c5b9e116c38ad7347e154e5651d05a2286d86455671f5b1eebba5feb76", - "sha256:64874913367f18eb3013b16123c9fed113962e75d809fca5b78ebfbb73ed93ba", - "sha256:683828e50c339fc9e68720396f2de14253992c495fdddef77a1e17de55f1decc", - "sha256:6ca4000c4a6f95a78c33c7dadbb9495c10880be9c89316aa536eac359ab820ae", - "sha256:75fd817b7061f6378e4659dd792c84c0b60533e867f83e0d1e52d5d8e53df88c", - "sha256:7d81d784bdbed30137aca242ab307f3e65c8d93f4c7b7d8f322110b2e90177f9", - "sha256:8d0af8d3664f142414fd5b15cabfd3b6cc3ef242a3c7a7493257025be5a6955f", - "sha256:9679831005fb16c6df3dd35d17aa31dc0d4d7573d84f0b44cc481490a65c7725", - "sha256:a8f67ebfae9f575d85fa859b54d3bdecaeece74e3274b0b5c5f804d7ca789fe1", - "sha256:acbf5c52db4adb366c064d0b7c7899e3e778d89db585feadd23b06b587d64761", - "sha256:ada4805ed51f5bcaa3a06d3dd94939351869c095e30a2b54264f5a5004b52170", - "sha256:c7354e8f0eca5c110b7e978034cd86ed98a7a5ffcf69ca97535445a595e07b8e", - "sha256:e2e9d8c87120ba2c591f60e32736b82b67f72c37ba88a4c23c81b5b8fa49c018", - "sha256:e467c57121fe1b78a8f68dd9255fbb3bb3f4f7547c6b9e109f31d14569f490c3", - "sha256:ede47b98de79565fcd7f2decb475e2dcc85ee4097743e551fe26cfc7eb3ff143", - "sha256:f58913e9227400f1395c7b800503ebfdb0772f1c33ff8cb4d6451c06cabdf316", - "sha256:fe39f5fd4103ec4ca3cb8600b19216cd1ff316b4990f4c0b6057ad982c0a34d5" + "sha256:2bc9c62dfc893626cdd50dce30f597f387c4aca11cd2cdffe3e7e06a4fe19ee6", + "sha256:3701ddb007a0549c12b26e90c82d520b9c4acf801705b9334654ade2a9550b75", + "sha256:4c51a496ec1ce170f2b5eb458c0441affc5b1fd1d7272cf322b443c90c69983a", + "sha256:6beebdc222e214bbbafab8f089a65821cff6cad25b349eabb653490dc25342fd", + "sha256:70319f4d4e0a0c94e04922aaaf8c9aca72d38b61cc69e338fb872e9ff27d94a2", + "sha256:73abd855401b9da6efb67490f4dd82226cf95f47d66b8dc9ebe4df523baaaeb2", + "sha256:76d92b0b86227c6dbc3f9030b8b865f41ae04f73daa161e4e3c5566e03d6ed41", + "sha256:787781333c1d69c7c23ccd85165cca732a5f3fd9d997b8ee40829b7c0c38db86", + "sha256:78ca6befab03c682bcb013241801e3b750e9de9b60664e9839e5b2098b5580ee", + "sha256:7b0b915190cf60e691c17147f5d955e273d4c482b795a7bb168ad4a2fe2fb180", + "sha256:9b369822f7681bc36b6ba624bc8ea0a1a456a9f72b324070d89ee2856cba62be", + "sha256:a8081de993fd47b9cb7376935bb1781118fd2c473a0e834601e28229275f78d6", + "sha256:c207646355d1d04c054d781ddcd100bbd5afc69f75f8a7623317b9db41a2015f", + "sha256:c9474a8fe03ca958e6fafefee13d6b4a45ea4ed7e35261abf61899c0f599a118", + "sha256:c9e73aa60166609c80f4285af8ba8b9b79e5a935df6927a174637c7c08fa8e67", + "sha256:cbd2e1c1fb61b17eca745d7f9f6d684fd7f7817bef6454890eb6fa3e1cd4905a", + "sha256:d7b16541a6e970d402587ff2f1cbd85753c8d982a0d5894991505fea9b81a52b", + "sha256:e89027b24027dade03929bc17adee23feec1f6f707f4ea366c5d5a342d4d81a1", + "sha256:e9907b5ea505dcd2cfaeb6ab08f241047ba651611f3974c9d624a7c5066ab3a6", + "sha256:f676739da486d1c7de2d9450dafca6dee04f4d3e881b8761b795865ef1872eaf", + "sha256:fa8851d10af0739adcae54acf5706953e2e45752f4a550006f6f3aff92335566" ], "index": "pypi", - "version": "==1.17.4" + "version": "==1.18.0rc1" }, "pandas": { "hashes": [ @@ -308,30 +308,30 @@ }, "scipy": { "hashes": [ - "sha256:0ab04d014258c81809e07f0379ecebd406bc9004006c7d342c5e40012037ddf9", - "sha256:0b4ffb335bf3de63c75502a1e574fa5a50f16dea22856ae79e6c24f42199244b", - "sha256:0c2b4c99561cbc8e590a6cea9244d3af2e1c429db77cd58253f5e7fc95654faa", - "sha256:2777bc70e9700619386161753f8642098cb274a1564d275cc4363bafc601af28", - "sha256:39ec6b1a6c1ee678a4bcfe66e37ca6fc432cb074f2f7b6f94e5ee45aa5f6cd21", - "sha256:3f21e988bfaebeb850ae8d6488ba6cd18ff91b1e7339fcc0a28bafbe876af871", - "sha256:64f9e49dddf97b635ebb1e513b99103db33842035142dd141a83d1dd95f31850", - "sha256:6c4deb6dee25f19867812a51af0551364d9e7bbf76b10389536f9c0a0633308d", - "sha256:6e218da2c038ad347d8e07bdcc89878c4e70ee115839551c6ae3c7d569f29ddf", - "sha256:7600ea58d37f3603c90d92f89244441021ed6aee0312c9ba9d2cfb73b7d5b72e", - "sha256:7654d6e6bd29f22585a9cea6d0b53d860eb344c6816b5f5a3b7954ebf44b40cd", - "sha256:b0e8a1e21c3c2e7dba71993544360f61998ac78bace70a98e0cc67e7a09bf197", - "sha256:bddd8aa1fed04e2e00a5f14703b1955e4b8f0c71bea8ceb926fda0b024666aef", - "sha256:c574920b788de11b19da2afbfa9c72907dc9789f1f7fc2ce779c5b24f94beca3", - "sha256:cbdb4c45bfd6fa474693328023a6da8e921a1919d078f046bda9de0fbc4d4e6f", - "sha256:cf4117db3568017b1c8621a0218e91c16e41ae68ebf456f7e9c7780f4ae28aba", - "sha256:d413d192d10629fbaec2dfbc7455b69e1f68ddf30e832e74461b0ed4e546e13a", - "sha256:d7e16527312df4175a151ea039d16913c28b108611080b34c7aea8fe4812c869", - "sha256:ddb942bc84306e4cd4d40fffc31340bafa91f871a3018ef326ac6654f57c7300", - "sha256:e6ff464bc277d23dbd29abb6f2013c0849b3108624b7227af00663959385abd2", - "sha256:f3af484a178e6021d48c5a3d99e35b49db3cf478edf013cac63fdaeb156d81f2" + "sha256:00e54b1097e4dc91347977874cfabd4bcc8285b2c3fee176e538588c0f84035c", + "sha256:04e10d4a758ddc6b83fa62469510b807901883760306d86db37921180d8366b7", + "sha256:08da7047f17e38d45e09bda565512a62808b1c896edb54abbcd2e39dfa0588f4", + "sha256:19ab29d38c3e574d631fc42487a1edc19c7f970269389a4debf7d8b12d808e20", + "sha256:1b2a564ea79da573cf9a481c71e70a7d6898ec59ab802b7fc46ce886baa4dbbf", + "sha256:2eb614a45a4bc35c1fd01602743b73c4b0798e46080f7099b8c247cabedba3bf", + "sha256:331d2bac603479ad845e6df136b1fab8c086eaef9da73c84cf22cd59ac9b2a14", + "sha256:37a2faa3aa6d9783e07aa52409bed0ba8bfc6e3e750ae7987bc038f1ee6854a6", + "sha256:433a549ad92d4ba96b3c11ca3b6a43346a50303f7b9423acd92d9fb2d43b9534", + "sha256:6dc2634ddc7968b55665b65f1e4fa970a7acdc44b0b8ec710c616d03018fe80b", + "sha256:7f84cd16a13423e5caf1d1c6265d4075313eff421251da7dbc9116c102f962c3", + "sha256:86ac119d107371194a9158b4d940a325de1d6f997acc70497b691f58e227e3c8", + "sha256:885f60ad9166acead66afb40d36b6c7f5bcc6ad495333e8a1eb5f2afdb4da098", + "sha256:acd81d06cc3c8ab3a0e514db3b844abccfbf455f77dc79b969431fd61f2b29ce", + "sha256:bd05f8a0c7e773a7e6102cbf6984f54e74f2f41af95cb007e81e7a313347a639", + "sha256:d07ea1bbe4e77835c266ea0e9108e6e3dc31327b734c003c203c6164f9c116cb", + "sha256:d45319e0c2218f50bce99b3c887fe6394f6a823786fd5b343de29be122efc253", + "sha256:db023118e60ed5a5b41e8851bb294d24196f01677a66f8b41b917f7e9fca3f6f", + "sha256:dc86610b8386e1a2f927271d0815eed2d27a498ee79a9729c50372f87e1eca2a", + "sha256:e29cf828929f1aadba8fb93a5dccc03703da139e5366fb57dc69f14417258bcd", + "sha256:fceb14784f3bc7471f9fb43474956fdf7e2d14357a07fba9ba90b7a7aa91e5f2" ], "index": "pypi", - "version": "==1.4.0rc1" + "version": "==1.4.0rc2" }, "six": { "hashes": [ @@ -582,37 +582,39 @@ }, "coverage": { "hashes": [ - "sha256:2358e685d0253125da42a48396038d4c7b4cd1448c00bbc4bda0cb8c43c2a870", - "sha256:25017cf384eeed2e6caf72efd3ec4124e32a8b7a4387600499104387975400c7", - "sha256:2e2de9423ff8b14303a97eafddd16c479fbcc9a0b8b0be3b7c3843a3e0cf6d69", - "sha256:324ed908e4e40a6e2451056fe502470ad4e79495cb7a03ecab94e6309c3e117e", - "sha256:34f865a0cf6255b694a46e4383a7131c61ea72c5b4c4f81d20e522fb1e440b4b", - "sha256:3a2bcc464b60a18f1f7167b95b2773ede93bf3722bfa59e0802717f652b6cc25", - "sha256:48d70865266d649b6602e2ba94820d7972ef470d3b72a8fd41a3d17321feed3a", - "sha256:50cf23523ab3a724c6905d3b60f87fa8250d9bae3995e09f49f63effa2b54f15", - "sha256:54c84a68abd8c4c5b71878b35eb85321df41f3d144c78181867d5b026ec74994", - "sha256:5b59d661ee7f3200aedd7b71882b7927ea7ed522df75e3853f316a79ad872a2e", - "sha256:5ffb39624bc573177888a21fb301ccee46838c600b27d58c3e9dae495f44d34a", - "sha256:699b3072b7f0e69ed175a88fa8b2ec7eefc4f34d490c54ed9a52feff21a15fdc", - "sha256:79ef4a2bb862110bd585174e551a783bee5c3aa461734a2ac7429193be357589", - "sha256:8210a6f93c4a8c6d460b402e20e38399529b99200c3318542faf6a520c9b6a5c", - "sha256:8d30c10cfd0a6fdf0a2d5023de00ef7b329cd6ead2310c9e53eab79c209acb70", - "sha256:97ac79ff28f2cda6ac00a803ee582b965951755f61ab43377482bfba450b619a", - "sha256:9fe4aacacff9028ed167db108bf013510654f148d83c4857fed61d2ce0588bf2", - "sha256:a5b6395d5957d638f8b1870561607e3c39b1a236ea6cff9eafe5b9bb1db913f2", - "sha256:ab32c5fad6905986a7e34e3acf01180a69bb60c2aa7331815b46e51c776a1943", - "sha256:ad67f0cfdfecbd49b9da46a7e488e6dc32a69388740b85c36a4ef4b33082cbad", - "sha256:aedad67c30326a1af324f45833a40b97180664912deb29942459ddbe9fa0ce19", - "sha256:b077cd0e70f41366ac1f9d09275258fa1906758a5d4f31cacc18b10dfcf90784", - "sha256:b8ea210810d3c14aec7561f8fe0d3eec582d1088100aaa0bb8153d53d867d20f", - "sha256:bf572722326ce6704e863447a070039a827072b7179352570859be899b9e6551", - "sha256:c0df57e189dacd2606cae6386acf127d01d85b2bf49acd9a65543b5d6c359ddc", - "sha256:d523e75f2a8a0b4a6a8be1287c0e0e3a561b8832b05ddd987d4cd7c62f3ad3bc", - "sha256:e10593c60c5f0bfd8b241bf9f27ef2191a3005b73dde8ada0424f642543a1e59", - "sha256:e9128444c83bc260aea988bf1ca6278a33ba730955bf94720468c656b61353eb", - "sha256:f7162f2e3711f3a08a8a741f92e1f63afd58d0713177979f2cf9723dd50161cf" - ], - "version": "==5.0b1" + "sha256:018e74df50a58fd2aaa7efeb301d1599d8fd3cc5c92388506e45a2bd0154c003", + "sha256:0e08415f35cc57b6eb93fb31ec48a2a169ab838e12ac22106cf9baee4938e46d", + "sha256:1f9c1d9692339a7ec5cf3ba4475fb648675f438db3413b3d98e2c9ed30ac956c", + "sha256:2643ec874d3aa30a65a36e42042424ce08f80a948e1c942d3d787489ae318a64", + "sha256:28a19392a6c4616a76e059a03118c8cca28af46d9e72032590ce329e6b30ac40", + "sha256:32c6be8ba90aa885a4900a0187de44f51730c0660c45de3b943c40f1547d47c2", + "sha256:4a8b839c3a5579502ffecd4519533d406ad2bec1488724cee4b2c79dd6cbea79", + "sha256:5061a8c4bba83b7613077d6cfa8e81381c80f134dc7f02853c3235b38f76b8a6", + "sha256:54770fe39bb4718b5a07665e1f4c676382d6927299ab736149618f0d37d72e85", + "sha256:5a237fa332721721545e88fbed42e79acbe9c77be8310c167ec5449df44dac7c", + "sha256:607ed848b1373b161629d0c8228d90dd47ecb342f1f800dc41ebd0bce2432e24", + "sha256:65929e8d15999450d09117114ee185948bc77637e868daff5f5ab47219e1e7b6", + "sha256:67a0f5c50503a6226e28fb7ee3c3aa1a104681460d5123eeb80e6afb65ba46a5", + "sha256:6a70362452ea9c09efe1a7faa365f6603f4a0ef54306a6e5a46e6e32913536fc", + "sha256:6cf4502b0087f06906059a718e02b231a9f611ae34794a955baa2e443d5064ad", + "sha256:73f596fcd93d76579b4aefa53b7cf5df90d953a8fd94ebfc9b36d0ba47db4236", + "sha256:77c90b0a221e6355c771f1b9a6ed45c384f9dff00836823a732f5fe4224cb43a", + "sha256:8524e47b78fc7eea96a25717e779c5e6657536515dd57dfd1110aff34dc747b6", + "sha256:85b8db2e8c7e9bdf44e4b5859be2cbeaf73e54cf7cecd6c6705f010110581840", + "sha256:90389fea98570dc1f155ceae40972fcf798954467c69d810e385b170c34205cd", + "sha256:9e48182563c7861c47593a4b931a6d57e4e499027913e5fdc61efc0d368e804a", + "sha256:a5a5f3a9167a5316d675932e455925e136b1e33d15ce48692b94af746736260e", + "sha256:a7f3be4952f25a0cb8c275cdf064c3ba1765e370f337b015e84a00bb6244c86b", + "sha256:b2de4918d6d4aea7fe2b6ef778190f60ff4355248045d7b1fbb35922e0ceb39e", + "sha256:b72f1b6f27cf67b74370cc9df6b7f47546669861aad660587a7c6f2a01728840", + "sha256:b9b8189f6f8c4a2a09142d95a11f91dff2cac30c9c0b5ab61e3e0a785e960b94", + "sha256:bd31b194b42e0de4c29fd2c56ad0c493639bcb792c48b694b18568f65f0c2c6d", + "sha256:be732dcc0e9ca31a15ab5ba116ed7af9b5a046d035a00555ad593f4ddfeb7a00", + "sha256:bf4131b04dc2bf35e091b2c759d9e741876a235427c001c6d20147cf29797691", + "sha256:d3021b26f86118c447afccbd53b443dc25b4848f9ae49ffb4b9588cb5110d360", + "sha256:d500eb1db73cd5cfe28755c790fcb4e3c653b70d30d0ddf79fde3cc603d3789f" + ], + "version": "==5.0b2" }, "cryptography": { "hashes": [ @@ -721,10 +723,10 @@ }, "keyring": { "hashes": [ - "sha256:9b80469783d3f6106bce1d389c6b8b20c8d4d739943b1b8cd0ddc2a45d065f9d", - "sha256:ee3d35b7f1ac3cb69e9a1e4323534649d3ab2fea402738a77e4250c152970fed" + "sha256:a3f71fc0cf6b74e201e70532879ba1d15db25cb2c7407dce52fe52a6d5fc7b66", + "sha256:fc9cadedae35b77141f670f84c10a657147d2e526348698c93dd77f039979729" ], - "version": "==19.3.0" + "version": "==20.0.0" }, "lazy-object-proxy": { "hashes": [ @@ -801,10 +803,10 @@ }, "more-itertools": { "hashes": [ - "sha256:53ff73f186307d9c8ef17a9600309154a6ae27f25579e80af4db8f047ba14bc2", - "sha256:a0ea684c39bc4315ba7aae406596ef191fd84f873d2d2751f84d64e81a7a2d45" + "sha256:b84b238cce0d9adad5ed87e745778d20a3f8487d0f0cb8b8a586816c7496458d", + "sha256:c833ef592a0324bcc6a60e48440da07645063c453880c9477ceb22490aec1564" ], - "version": "==8.0.0" + "version": "==8.0.2" }, "mypy": { "hashes": [ @@ -934,11 +936,11 @@ }, "pydocstyle": { "hashes": [ - "sha256:04c84e034ebb56eb6396c820442b8c4499ac5eb94a3bda88951ac3dc519b6058", - "sha256:66aff87ffe34b1e49bff2dd03a88ce6843be2f3346b0c9814410d34987fbab59" + "sha256:4167fe954b8f27ebbbef2fbcf73c6e8ad1e7bb31488fce44a69fdfc4b0cd0fae", + "sha256:a0de36e549125d0a16a72a8c8c6c9ba267750656e72e466e994c222f1b6e92cb" ], "index": "pypi", - "version": "==4.0.1" + "version": "==5.0.1" }, "pygments": { "hashes": [ @@ -1019,21 +1021,19 @@ }, "regex": { "hashes": [ - "sha256:15454b37c5a278f46f7aa2d9339bda450c300617ca2fca6558d05d870245edc7", - "sha256:1ad40708c255943a227e778b022c6497c129ad614bb7a2a2f916e12e8a359ee7", - "sha256:5e00f65cc507d13ab4dfa92c1232d004fa202c1d43a32a13940ab8a5afe2fb96", - "sha256:604dc563a02a74d70ae1f55208ddc9bfb6d9f470f6d1a5054c4bd5ae58744ab1", - "sha256:720e34a539a76a1fedcebe4397290604cc2bdf6f81eca44adb9fb2ea071c0c69", - "sha256:7caf47e4a9ac6ef08cabd3442cc4ca3386db141fb3c8b2a7e202d0470028e910", - "sha256:7faf534c1841c09d8fefa60ccde7b9903c9b528853ecf41628689793290ca143", - "sha256:b4e0406d822aa4993ac45072a584d57aa4931cf8288b5455bbf30c1d59dbad59", - "sha256:c31eaf28c6fe75ea329add0022efeed249e37861c19681960f99bbc7db981fb2", - "sha256:c7393597191fc2043c744db021643549061e12abe0b3ff5c429d806de7b93b66", - "sha256:d2b302f8cdd82c8f48e9de749d1d17f85ce9a0f082880b9a4859f66b07037dc6", - "sha256:e3d8dd0ec0ea280cf89026b0898971f5750a7bd92cb62c51af5a52abd020054a", - "sha256:ec032cbfed59bd5a4b8eab943c310acfaaa81394e14f44454ad5c9eba4f24a74" - ], - "version": "==2019.11.1" + "sha256:3dbd8333fd2ebd50977ac8747385a73aa1f546eb6b16fcd83d274470fe11f243", + "sha256:40b7d1291a56897927e08bb973f8c186c2feb14c7f708bfe7aaee09483e85a20", + "sha256:719978a9145d59fc78509ea1d1bb74243f93583ef2a34dcc5623cf8118ae9726", + "sha256:75cf3796f89f75f83207a5c6a6e14eaf57e0369ef0ffff8e22bf36bbcfa0f1de", + "sha256:77396cf80be8b2a35db863cca4c1a902d88ceeb183adab328b81184e71a5eafe", + "sha256:77a3799152951d6d14ae5720ca162c97c64f85d4755da585418eac216b736cad", + "sha256:91235c98283d2bddf1a588f0fbc2da8afa37959294bbd18b76297bdf316ba4d6", + "sha256:aaffd68c4c1ed891366d5c390081f4bf6337595e76a157baf453603d8e53fbcb", + "sha256:ad9e3c7260809c0d1ded100269f78ea0217c0704f1eaaf40a382008461848b45", + "sha256:c203c9ee755e9656d0af8fab82754d5a664ebaf707b3f883c7eff6a3dd5151cf", + "sha256:e865bc508e316a3a09d36c8621596e6599a203bc54f1cd41020a127ccdac468a" + ], + "version": "==2019.12.9" }, "requests": { "hashes": [ @@ -1165,10 +1165,10 @@ }, "tqdm": { "hashes": [ - "sha256:156a0565f09d1f0ef8242932a0e1302462c93827a87ba7b4423d90f01befe94c", - "sha256:c0ffb55959ea5f3eaeece8d2db0651ba9ced9c72f40a6cce3419330256234289" + "sha256:7543892c59720e36e4212180274d8f58dde36803bc1f6370fd09afa20b8f5892", + "sha256:f0ab01cf3ae5673d18f918700c0165e5fad0f26b5ebe4b34f62ead92686b5340" ], - "version": "==4.40.0" + "version": "==4.40.2" }, "traitlets": { "hashes": [ diff --git a/src/openqlab/io/importers/OldImporters/agilent.py b/src/openqlab/io/importers/OldImporters/agilent.py deleted file mode 100644 index 98fba388e9ab131f6db965696f6dc8c4ad8d40f9..0000000000000000000000000000000000000000 --- a/src/openqlab/io/importers/OldImporters/agilent.py +++ /dev/null @@ -1,159 +0,0 @@ -from openqlab.io.importers import utils - -try: - import numpy as np - - has_numpy = True -except ImportError: - has_numpy = False - - -def get_importers(): - if has_numpy: - return {"ag_binary": binary, "ag_csv": csv} - else: - return {} - - -def csv(file): - return np.loadtxt(file, delimiter=",", skiprows=2, usecols=(0, 1), unpack=True) - - -def binary(filename): - import struct - - def debug(s): - # print(s) - pass - - readuInt8 = lambda f: struct.unpack("<B", f.read(1))[0] - readInt16 = lambda f: struct.unpack("<h", f.read(2))[0] - readInt32 = lambda f: struct.unpack("<i", f.read(4))[0] - readuInt32 = lambda f: struct.unpack("<I", f.read(4))[0] - readFloat32 = lambda f: struct.unpack("<f", f.read(4))[0] - readDouble64 = lambda f: struct.unpack("<d", f.read(8))[0] - - with open(filename, "rb") as f: - # read file header - fileCookie = f.read(2) - debug(("fileCookie", fileCookie)) - # verify cookie - if fileCookie != b"AG": - raise utils.UnknownFileType("Keysight Binary: Missing 'AG' header") - - fileVersion = f.read(2) - debug(("fileVersion", fileVersion)) - fileSize = readInt32(f) - debug(("fileSize", fileSize)) - nWaveforms = readInt32(f) - debug(("nWaveforms", nWaveforms)) - - # stores voltage values from all waveforms and all buffers - voltageVectors = [] - - for waveformIndex in range(nWaveforms): - # read waveform header - headerSize = readInt32(f) - debug(("headerSize", headerSize)) - bytesLeft = headerSize - 4 - waveformType = readInt32(f) - debug(("waveformType", waveformType)) - bytesLeft -= 4 - nWaveformBuffers = readInt32(f) - debug(("nWaveformBuffers", nWaveformBuffers)) - bytesLeft -= 4 - nPoints = readInt32(f) - debug(("nPoints", nPoints)) - bytesLeft -= 4 - count = readInt32(f) - debug(("count", count)) - bytesLeft -= 4 - xDisplayRange = readFloat32(f) - debug(("xDisplayRange", xDisplayRange)) - bytesLeft -= 4 - xDisplayOrigin = readDouble64(f) - debug(("xDisplayOrigin", xDisplayOrigin)) - bytesLeft -= 8 - xIncrement = readDouble64(f) - debug(("xIncrement", xIncrement)) - bytesLeft -= 8 - xOrigin = readDouble64(f) - debug(("xOrigin", xOrigin)) - bytesLeft -= 8 - xUnits = readInt32(f) - debug(("xUnits", xUnits)) - bytesLeft -= 4 - yUnits = readInt32(f) - debug(("yUnits", yUnits)) - bytesLeft -= 4 - dateString = f.read(16) - debug(("dateString", dateString)) - bytesLeft -= 16 - timeString = f.read(16) - debug(("timeString", timeString)) - bytesLeft -= 16 - frameString = f.read(24) - debug(("frameString", frameString)) - bytesLeft -= 24 - waveformString = f.read(16) - debug(("waveformString", waveformString)) - bytesLeft -= 16 - timeTag = readDouble64(f) - debug(("timeTag", timeTag)) - bytesLeft -= 8 - segmentIndex = readuInt32(f) - debug(("segmentIndex", segmentIndex)) - bytesLeft -= 4 - - # skip over any remaining data in the header - f.seek(bytesLeft, 1) # 1 = relative to current position - - # generate time vector from xIncrement and xOrigin values - if waveformIndex == 0: - timeVector = xIncrement * np.arange(nPoints) + xOrigin - - for bufferIndex in range(nWaveformBuffers): - debug(("bufferIndex:", bufferIndex)) - # read waveform buffer header - headerSize = readInt32(f) - debug(("headerSize", headerSize)) - bytesLeft = headerSize - 4 - bufferType = readInt16(f) - debug(("bufferType", bufferType)) - bytesLeft -= 2 - bytesPerPoint = readInt16(f) - debug(("bytesPerPoint", bytesPerPoint)) - bytesLeft -= 2 - bufferSize = readInt32(f) - debug(("bufferSize", bufferSize)) - bytesLeft -= 4 - debug(("bytesLeft", bytesLeft)) - - # skip over any remaining data in the header - f.seek(bytesLeft, 1) # 1 = relative to current position - - debug(("BufferType:", bufferType)) - if (bufferType == 1) or (bufferType == 2) or (bufferType == 3): - # bufferType is PB_DATA_NORMAL, PB_DATA_MIN or PB_DATA_MAX (float) - voltageVector = np.zeros(nPoints, dtype=np.float32) - for ii in range(nPoints): - voltageVector[ii] = readFloat32(f) - else: - if bufferType == 4: - # bufferType is PB_DATA_COUNTS (int32) - voltageVector = np.zeros(nPoints, dtype=np.int32) - for ii in range(nPoints): - voltageVector[ii] = readInt32(f) - else: - if bufferType == 5: - # bufferType is PB_DATA_LOGIC (uint8) - voltageVector = np.zeros(nPoints, dtype=np.uint8) - for ii in range(nPoints): - voltageVector[ii] = readuInt8(f) - else: - # unrecognized bufferType read as unformatted bytes - voltageVector = np.zeros(nPoints, dtype=np.uint8) - for ii in range(nPoints): - voltageVector[ii] = readuInt8(f) - voltageVectors.append(voltageVector) - return (timeVector, voltageVectors)