Skip to content
Snippets Groups Projects
Commit ec98e09e authored by s200545's avatar s200545
Browse files

trying

parent 0bb3f8b1
No related branches found
No related tags found
No related merge requests found
%% Cell type:code id:8b5f44ad tags:
``` python
import pandas as pd
```
%% Cell type:code id:986ed693 tags:
``` python
mapping = pd.read_csv("mapping.csv")
lookup = { mapping.iloc[i]["from"]: mapping.iloc[i]["to"] for i in mapping.index}
lookup
```
%% Output
{'8a3399aec8341c0766a49826a023bb6b24562ec1': 'be9474a1320a2585581151aa211cf662595f593e',
'a1e77a023e1449d6f1d6bb4fc321e537c1c91432': '566fe922671b6a1941400d381e63ce20c04d953a',
'7ee02cf2e1405fb376a7f0d9f10c53628ba18373': '1c0a15bde391be864031fabdfb0389a2d5e5d8df',
'9f0a5c0e2efd594dfc93a7440f8965860b0fcfe0': 'ae9b5426c6c3da90531945dd539dee95f7a35cff',
'38443e531a68d35f9c3be2fcdbe749b3da232963': '130f2baf932c7ea9c2885581b92b420091c7ce63',
'379714315d504754bc5ad0bc17ab6d224adf4ae6': '7d866c4b30d7b7c8c31a347dcf57c7955ab1082b',
'1b4b4c68c4ede676834ce62eb2d1f014fe3489a7': '8bf99138fb408c0dd7a1a5943501e663a0b6869f',
'ac66a6b3dca0510e3e01eec02395966ef3e073fb': '493ea74d5ad644d33ddf1b3471e9f6bb73c4ad95',
'1015838d6236681eee5655117636eda4d1156430': '6d0790cfa73049e6e99be7ccc7cff7ee2bda35c5',
'710dd9ab31c32670b0657d30b7b7a222b2d07593': '873bf59b46df636cf9a228455ce47bacbf98f566',
'0c688cf10cba27a4b603fe51257ce80cc9cb8589': '9a92e6f75686a564aae4632e5518d6a942cd0b58',
'05de44d435b198e643a2f84928c3ffa473e9fa91': 'c019ddd02d6a5fdf32128a900bc4062a6fba41d2',
'b91b163ac356a423b7b308efca96fc793da4a582': 'badc9adfbbf203abc1b9147191fea55e17729477',
'718ab80b0ff677a7a469175e2400a07ec44f62bd': 'ebc7a192dc2702bcf6d92d56e5dedb195a4ee953',
'b09968e7dc17567757f00d5f9a848d30231d12c2': 'eccc2bafe472b5db9da91df47fcfce05d2eaa8c8',
'78d978fb88e5987d44137c69647ab0c9f972a3d8': '96fe880dbc28560bc0b00201fea88fd455e12360',
'4d332bcfac027ef8c1ccf50a5f4a34b4ac653196': '0b7b5f428e4f05255f3e89ee13c7805e7381effd',
'0edb59e4c6051ca2b68f2d4f1321bb11bc849979': '0002735e5fb4df5a94e799c2ee37fc2eaf4a22ba',
'9ec56e6505f581ebd5bc538e3904b4d60ec22d53': '67614f92b94337fe9afed962f779b5b9d9a248c9',
'2dd23f668854bf818cfa872bbb0929e59d7dfe01': '9da1bf8590869304548a9d58b8fda553f62f4681',
'153076191650ae84d447f9f841dcf2366e418b9e': '5de4cf2c40a2ef5e6598182c3557fba8b80bd08e',
'5c0550da855904ac4a19f4de3526ddc406f72adf': '20c5b2248fec099d072a004a41bea6dc2bbb434c',
'93a8c9d509e797a17f5961e1b90e6b2e4a7a3581': '11823a4c509c19c58a98ae136d39ab68f4e733a0',
'ecb6dff8ab4e723a66dd715e928bc6e19a10f053': '522cca84719dfe65c9b0bfa9010fb2b9dc1a9b8c',
'33a359b4a37f32192fe60dcc86b4e8e2e1971769': '58ed73630d9e775bad6160b9aba5390b5bce1b83',
'54b775f07f20e37c233367d12dfe47abd689f858': 'd3274b4a28a26f6b3f189ef60b90e788be6eba3c',
'77c433b2c2d53fec73f1d3a8ab9d7355e2940013': '2f587e54b4f14b8617b1e196df422d39bb110348',
'12f04a23e5183129546416688525bf1e5b294f6e': 'f5752e4a2100c9a9e84bd104f59f6f3fdbb0af5f',
'3090be560d116c083eb4bd46908cebd9a9ca4094': '922c8dfaaaa05ef5943d559fdaa90e111bed6021',
'93ad50fb4da5924f851da683b6802df37c4ce450': '6d3b7d934e7467591e8ac450e3f2b9e3a08019ab',
'35efe37fbe76c99591072c99ed4e34d7f6ef4333': '6d97ecfaa26bc31c5143eb71a8c442c8aa241f54',
'ae814897adb9fa98038456fd3d6fd7a54f7191af': '797008af3c88b03237fff3c952d7f4281a5b8b6a',
'35d289f123e2830c96afed55d6a1c1baeb92abce': 'b46c18fca28241ed8751bafb72464cba0db5c93d',
'8c685c737896297eb22614b0821cdb470431325a': '7befcc6b80eee6e0f6cf0e1a6a98905eb212900a',
'01db061505662ad6da55e360e76c791caca17d45': 'a99dc6811b0df8b4833dd469213c124494112113',
'8c0811fd7347f0b60bae8e24a061d7f98ab42f6e': '4297318ec6ef0c0c2fd3a8cdef927956b13c0dba',
'1ba3e2c094c65c29b1d10dc20f67312564e2aad3': '813c11c6960aad54e731a5cbe56c8db9cbe3c7ba',
'd0630f8451eb75836fdaee78cf0673f7b37da8cf': '669b00f104ff7860b89c202e6cfea1ea6bbfaa1f',
'c98cb07500b2a726ed76c3b63c99f6cecd1975f2': 'c8df5efd3d417adfbaecc2ecdce0f283250bc78a',
'b633cf353f4ef73f7d707f46f5cf47c753979d2a': 'a258fda29c5868938cdf58f7be1adc76a2cbd1c9',
'fd644b23ea9a5df255c8b2ee3ceda56b7a010c7b': '9a80f577dbd76429ba627a473a12eda246ad9499',
'898a6e3e0065903cc330de74fc66c50b64502496': 'cdf92b5bf65afae6b3f445f68d979aa3af962ee5',
'779d44f710978bad686fb2adfd01bc4ec5ab6271': '4f88de16a13f5522e32f97523ef3cbff2503cce5',
'5710819bda1b946fecea4a2e3d2e3f2b9e56d97f': '1feb0b65deda5d706f3e0e6befe10a92a7550d63',
'0fcec26daedee9565c818745389649af0b68b054': 'c2e9d2c2cf3fb09eeeeadb842b623a29a0e5b54b',
'8eb72782121ef4c7e8df907fad7ebaa10369404d': '0126d6610a79406081e83eb47963f19e466397ac',
'd1e6703ef1566f7c87e63653ae7dd4661da3e340': '9ce59470c76e3c0b81682ffe7fc93162463704b1',
'349d4c61f12081a92fb19276b76f7d73c7044c0c': '3c6011ce326492b8a256fa3060efdf56b2ec4b34',
'c8b1587a88c63853d085ce0e65502e2f4749a82b': '056cc37fdc6296586c0fbd3b479cf2290224e655',
'100d50018e3631406c275da30ca933b2fba3720b': 'b5d74a5058ea0ef3bff63f254d57f604c50879e0',
'8c8c76b2b5d698769b555898626c7032e6d739bf': '9607d154cd655eb07bfae173f2cce44cdeec9258',
'c3daf8a4e419193e2945ccab129bedd290a5d8c1': 'f4baa750a6f04682160e292e085dca39b3a6cfb0',
'3fe64233d446cc4c7296d71249e149cf2eb22453': 'bb848f04af51fd9dea0173941a5471a293269019',
'9a0db509ff86bb0a844e5185f89e705e5b8e4b1f': '76ebfd87b30cb3ca1d655d72657ce31c4f93dfbb',
'3ba24c57878038e9167a35aed956f0a8af91f610': 'cc4ded93885ee12eabba4660ef0f98ae91425c8f',
'34df97049825d1466fe1650ee67a3cfdd12b688a': 'f7cd01d3d1a329d1c39188dfc1e17782aeaddf2f',
'04a3eae65c8ec95df58b84b9daf56bef6c54d29c': '4be2707bc085bcbd3caf381dfa8bf7d3f49ca592',
'2f2949108b4ba48a5237211bbd8a09402aa9a5d8': 'f036dc8e6289ffdb49c352e6aaeb534a600d29c9',
'6d95bc1623fddeca4df402dd0884b7c4c9f73d2c': '5633eb78ebb7442919599b93dc8e00661c1e1f69',
'f3aa58ac0bf41c031f004caa8deda4555e0b7a54': '2fc8a0dc10326fd29770e7a239bbe9cc2c2d6184',
'22b14a1e08376458b32d280365d03f5e6ef8309b': '3a5cadaf42e27f81e3c608a81b2954bd9265408d',
'7b8494f9afb92c505d9dc173eb1bf6d22ccb5c44': '5409999db7ad7836cc614b7742878cc813365c1f',
'60fb31c444a157c3e69e53f599132c04c513a4c7': '6b2063ac3f47bb26a5ad393f41a50a6d631a9f8e',
'13eb10f8a021cadb7df14c1847d66c84c14c6ae2': '0fad2e9996b1ee52de93547ef7b42d4bbfb3c0ec',
'1082a06a9056be0aa46a75bbf6469e1113d60822': '3c1209cee7240d5acd447f0d70a253d683d6c230',
'4e6e56a4c94966255808798316312bb5c31d2e75': '0050092e782fbae9ad9628a0acf714f29d9fe886',
'cae53570875b772b7377f0645063fd1b99586994': '6a6be67fe7551ebffbf9feec7c198ec77402de78',
'520a8c6f9266f4fc32e48f0114d60bbc0e9e7739': 'f3f3e599dc726ecd7aa13232406f5a705dc7a67f',
'bd90c600683f8299fd6faf3eed142f68986f0c95': '86aac8c7a57254ed02fc846ca71ebde70984aea1',
'd3c29c706cb794cac0a617f8d23fbfcee6b9635e': '1a5f0d63c110b4f1d0bdba6f8f2ab3b28a0c95fa',
'24ad22649e16a35558ff36e7a0fcf59ea374a62c': '9e3cdea1c3774aa16b0b72c17e3e2a7724441af8',
'c190a1a217cfd1c8b20fd019869fa00585befd8e': 'ab21224fa4c3b45fa45daf0e2a92be780c50ac93',
'11cc00426d36b7650543e3fd2e1d43fb622f1cbd': '3444560a7ab59f054acad44ebaee0af811369608',
'2c41475bb2a631c1e551ddfa7e4da2f5221ced77': '10ec4ef45acbe1977936d87b88a4eba2ae85eb09',
'9e10be9f4590136d71d7e18bf967d141fd21f08b': 'c88b1bdfb821285a0bfdb97c2c3ca786fb75e295',
'45edd52796dc2025b46c9592678dc9be5f2b4178': '90c6abda2d11dd3809e9a65cc4ef3d7a52750b76',
'e99a9aa0f2a18ed7b7238d675bc8f0e6b69f5558': '64b2a268f9a21ef28002e896a3ed566a48c4b9ce',
'575c7fa688b3c82ea1b933f3a7ca29cce61f0f91': 'a2d43c49b170f88fa33aca59d60593e3d57b4e33',
'dfc52bf18596ab170eb0c81870394f0e8c7bbd15': '7a577c4604e3572c2979c1bfd3647eca4c7eb5db',
'ea1ee39e85e6d75aecede02aa0ad6e56c7106c50': 'a1a466c1cfef688f9a115db1f4491706eba6fecb',
'c073ae40dae8dd60359e6b87c0a326ba0f19dd37': 'ec532ffd9c69a6372e85beb2c6c8f358f47599e1',
'f058b754b4e913458a4eaee4b236c0652286ec7d': '4de001f2d342a7dee2576ee2f443252010e78e97',
'2041c637b6ddb0fb4cf021667b3d16e915822b1d': '1f967134f5fc04c8ceb5a3f3192cd3c50d3ac2c8',
'5ff2863f65b95115e5921282df17c40367887be8': 'ddc221566401d57677572c4969dcca5312b9a1ca',
'45f8d4e2b5d877543d0e327c4062d40ad23ba436': '151440a3eeefefe025753fdafdca98e4e55b1ce1',
'3fc31b72bbc03aca2231cb6e3c72d2570fd7b686': 'e9dd46d0b18fcc607148145f9f9539eb255e2b02',
'823f43f84747679b7f805c6962502b650068af1f': '80f6b04961090e67f4dc03464eca0bc8efb546a6',
'd292b12a491eb9e0903db8b3e43adfc500c5df12': '51a02ab956d50e62baff83489c7c5265169df514',
'a58219f8c1eb9d54f04c11522a69179d6a474d4a': '3314bedccc22868974c5676a9dbded81150932a3',
'65cabe5524ecc79cff553966fbdbffff22f7e4dc': 'c05cda2bd46542cfda12ab4c7ba37d77ee1de1e2',
'25a05a6470347a69c76159bc249f0985f1ea0a4f': '852280a503d15edf5c46dc48911857c12d6b9960',
'c9cf5d1e841727e02fdb3d38fd5d01bf9f67d44c': 'b7092e44f83bb2eb174857f486bb0fe704d65f91',
'bac13a9702b03509cc938bf09898a2a8a84be0ec': '9436bd9b542f1ae5e645c4b851af81ded226fe66',
'ac0a9f0b0891a80013707136c2bccce2d14d9320': '73f4de7a08ae7ffc10c9da744a5201b245b0044e',
'2380c80d685f11cc67dc17ee56a521aafbd37de2': '096b0d144d16d56c5c4fefa10e4834ef5344b09c',
'0c58e879a348111dbc6cbc7fbebf9ab89f6d0af5': 'fc8cd6268be7d52df507e6e0166b0245d8bd87ed',
'cfa841e5260735ee8999d2465a5ce6038f652389': '0fdacfc94aa4e0ce493939242cd716337695277b',
'd41299022c6a0b31f62fbff65c394e20c0907b8b': '3f2655c9c35ac4f939013f147de9fd871d7a640d',
'00a7b7898e8b47514fa665a4aefcda3afe18728c': 'c6f7d3c3272859280c7db4918532c0e1d7d3c6cf',
'b11915dd7d770d26dfefa7fc50073173ef40e6fb': 'd08638661a7bda36efe7837caebe03e78ddb6da7',
'6327b22a49fe3ca8e4eaf8f814d5cf45721d24f1': '882bded0e101cd957265d46efe9a1794a5710ec8',
'4c438cccebe8795e46ef9ea51304ce6613cbbd1e': '46984f1878238924bd6f62b2a9692e231a3054e1',
'5db9e98c2f875530bfda1334490b9fc37dec2a33': '9429f33eaa15007a34fd52560e165b3ffc14f327',
'4e1032eac6f97d71f7d6da8f7e9693e636d2b551': 'fd828d85610659baf11d0fbbcd3c1303795b28f4',
'bdc3504783897c9df75408c3b0b09426f46f3b26': 'a3850f94fb73d897988e8203a6d9dff6ed5ba8a8',
'6a9d338fb0fc66ef7c1dbb161e954a198b3fb815': '100fd1738256294689a4bef1d9957c8753353cc4',
'5291effe50acb4cfb7f81c31c545c396fb2fb2ca': 'bea00476856fc989aee9323e9b0982d42dbc6d3c',
'098fe44d8842b49954f7fca42210f16638df8a48': '2cdce5ed664ed9a18233139a30e2093f9897b13e',
'8741842e43506ca6dad2b74d13efd52859e30b77': '691964242e08f141d3f610611aad09147a8b33d7',
'ba2371e84bae32d0184df25f991435b42feadbe9': 'e0c7ab695d759d433b1c22ad2e29576de4c01fc2',
'202b58a87caf050d998df6172ec5fe5000e777b0': 'da5b061d7f458dc830c5189c0c3f6e2d46a0d7a9',
'fcebedf83508739c2af857e928bd29e81bae229e': '0b32035d175f06ff35f98e2e65a86d07313e707d',
'2823d37c0ad7b50d7ee7dec600453ef6f6de556e': '7db3699d00588cf3058717313dc08948f2979f89',
'f5acccceeb6b3fb6a940c86ee6ce41c1f2e4cbf9': 'dcb1611f23538297f76202f5739d3011365ba0b2',
'3b452d39bfd0208565afdd884718c8ad3a08d77f': '23b58c34967a7765f119a5a9f27063a7c0692302',
'f6c7c422c333c0878b823b61edb4e48c0fc93544': '66d522a555a662e546fe8393eabeab3dc288552f',
'bfc449ad461fc77091500467bb493fdb06cf7df8': '487fdf60cb7ebe996286c25354e8020fed279a55',
'3366a8fe5532ca9ca0b48744f5720d3b838cbcd6': '998064fc642792a5ab025e5832c7240c5fae05e3',
'ea9551ce6629b92a957fc14125b5eb76a1e01236': 'fec7ceac78fe206290772439a30603391fd8d2eb',
'b2e4e0dec4a8fbb26fa369037e073d56198073f9': '4f6ff4a4134c192a03848f10cd45b51c365f1e58',
'2611ac5bc9560cb39692349f33ef4fff8bb2bf96': 'fc9a0d53909a1f072245350311bb2616ae562337',
'abfb8eaecd32dd5f524bc52a24e50ec83c462128': '3c50a190ae71d72c2627e9face8bcb966f04baf5',
'cb21184e74b76db5d13106475824235fdcdb9232': 'a6e1ceac282015e4049dd1e03a29206194e79ab7',
'1bab13c706ab3486565c3ca74029ef391c56a7f1': '244bb8dd1c5c2cfb4a548e36d74c1a954ce7d2f1',
'd04a3df1bc11ada5d89eda7d038e5b48eb17b059': '5d35edbdd6c35747a3c29246457b9fba8a2fec6a',
'5fd8daaf483c06ced9465341610df754438d57d1': 'e97852e01f6edeee7875b50145fe209890585e8b',
'9e360f4846a029d438ebd9c0da067f01716f785e': 'b045d2940c0ca8b135137f7ab6f36b112525ee8b',
'aa7bda81f5cda062e7749f5b23c8ab9238d3310e': '12a2f89072772157807edb2d5f900178aecdc68c',
'5c926f0aab24e4861c43500fe4af5343ece0e652': '2e7aff0f2b850009614a36bc10ef6029a9afc467',
'7fd8f8c0250a3b7087be3dc14f1440be52b78e54': '255e8bb8b609c1f21aa14a775a11537dcf246f75',
'b183f8a707676b6be9b809779281c8140baa54b5': '288ee2acbe37324e9bdcaf6d180059221e17e45e',
'361b6a355011765f07755a5d02d39aea17c7b13c': 'a74580601c5adf87ec4e743c50e3be34c80fa936',
'0d8b6a1c503cb5ef127710c5be5de2debe5e7f85': '268a269510478f8971adb4805c5a03c38f3c5b63',
'cf063f4446cd67fc0a9f5deb9f126a24412a4d19': '4835fe0abaa28965ef6627715667558b47fef132',
'23f31405b5bbc961be3359ddc9dc65e1900e910b': 'dc9059c5494a61df69452c7b14b66a9e472fe7c9',
'c0f8aaf8ad1b7d3e9c38489c2f0ba9f3bb9a3d94': 'f53c169b253a374d3f21083914dbd14084376a48',
'6a7f7e5d427e0f08319a7e6fea561a4f1686eb7e': '931a86a36f8c77b43078af1978874efb1c53b9d7',
'483b42b334a8099b155dd83bd0dd7f3456b5ffe4': '49176f115cddf894b99b3cb688e5f15c240dab0e',
'7b36f55008164f2a03bf9a1f5737619a9d381338': '0d79907061ff0c4f90bcb538e3e7da0b695f9772',
'd6de1c038259fff1f011b3fe26343b8cf34ffc7f': '4d8c2ecc9445baf4b41f111dbf7e7696dff2dd3d',
'1730e2f8ea44d2b3a05eba2ee0f4a9cec07afd38': 'bd3f60759a88edf377984ab39a99b6ce91718c5b',
'4f086eff98a60697578c43475c1d3bbf1c4c9f4a': '65762e932d6571cc462a85e135af666b3be74cc9',
'17bafcff59f1aa4ec1ce20d732a878480cd64407': 'e39b91eb9584626b3da298b147d5bf82d0a33678',
'5708372ad139701a297b6c3ab2a2d9d72c0ef528': '4e1bc85298356ccfd1f7f4311e7000a0daf4f3fd',
'd7583a8473e99ac99ffc9c75d4b01611cffabe23': '130cd7c7321b1ace586e842561782e13d44877a2',
'fad4c98b7993d8604bbc5dae9a0809c974c0f9e8': '8f8f1cf1b55be17a7c0d20762a47016b5661c9e7',
'33b4178ff678632ebee886fb4573a0c3f4744921': '68ab64d77c523ea8fde2a405072fda28f7a0443f',
'636cedf5a969371e87891424b85cdc395e8c02f1': '333b3900ccef55ef1322f349e623ea26b2b85764',
'cf7305d378fbc5f773a3ddbf05991693fde6ffd9': '043b334bc699a9b5abfa96d466ca7c709319bb46',
'425a890eeda38f0fe65161fa9e1480c53440de06': 'ba729bec87b3e12c21bfef91588c7c34fa66f8b9',
'895efdec72daf938de4f5f0a1be36d0c2354e94a': 'c7e0aa81a7a0078edba70b9eac505290d928b685',
'67af06a58bd44ee4b208b8ac7b14e184661bb207': '1bdedc06f56d359f07300b13ac316f69c8e0216d',
'cbd17562080602e48c79278ae28f7cb120ddd6a9': '4922184c00a07f57b50c817ffc8a5f4f1a1b21af',
'99b3c617cc06c7b0f43d66f94ab7f02173498af9': '23627c4c21bf9bb1d75ca0ee2346c8f942f8ea29',
'e1f593987acdc912c1e28d83dac919b8bbb109b0': '6ffe3eb87ccc81651e1c3f2033457b42b6239ce4',
'5f96561f488ea53dacda12e2396b5baf467d580a': '8d4cf5fe32a008b67c70d4c2de614f2d98f48f9d',
'611d2126ac238932ee96a251e888243f53730ab7': 'c0002ca786e992535f4b1f21ba9ccc5f98ae8f76',
'1225f9cdd9e1c5b82c0b488503851e61887e6b08': '87001f3c9035e8c74676b9e9df67f6d1074744b2',
'ee9b3a66254a9f8030fba862151370071a830e1a': '925f7672c919d7c62d6683fb93cc470adc5162a6',
'716732f92c142e5e064eb91007bff972037c36bb': 'f049596de0439406655329ec1ba1fec58c5e550d',
'a2c5dfb20b75962a3f8520eb63f223b79b82c0bc': '8778b26fb5824b2bc7a2b5bcd5f7ff9312ed27c5',
'e979b65d2641439f6533ed934715e6aefd48dda7': '5e6390b78ff7c955872ae39980990a466837f160',
'fad3501514c004535e0f18d9575c2a1af9f724be': '3ec3c11bfc5294810fcd195c7546145d4c11d31a',
'5085b156acd0f5e6080843d7529fab27aa07844e': 'aa6203d49a557b5a5e19aee8f96c74b75bf8bec9',
'd6a3ef6a50d7b4fe2bc258c90b7258ae95786a4f': '9411f9a5a9681cea9e4b420413cd9851fd0ec3f2',
'1a7c915114658366031cf681156842835628b7e4': '4f7d2b1024f8093f4d7d73c816245f1cb261e5e0',
'81af04554880f72813db468c99ea9ea747ba4ca1': 'd3fb90128e3447102900f84adae4caf331048641',
'629aaf4c48233ad012a42b9d931a34936f1df756': '3dfc2ada7a2c45ea395b7c51782b7ac7246f7c69',
'5a301fa9c7ee3240ba020c608f02df1274c514db': '41d6a106a6697c6d08f0ae811ed8ad584d9a335a',
'9c5aaece593946f75ff8ac1173378c0283d3fbea': '9c65343f7035554812f2811d72dc9c646d5ab0bb',
'aab31d5d465922612088e2ac9f64c1232c42cd35': '3f515dfac7eb7e3dc117864f884bb22154533670',
'6f026f7624fd69f65a80f50574a7405e5df22231': '5270a1895ca3888c5f8361f1b68c20945c9593f1',
'4d2160c9a46df1e1686001a5b78649587eaa6a4f': '2a3cc5c92379cd03de1e84e0564dd21133ee762a',
'e376b0a5c631b2747896fdc9d37c1b05ccbf45aa': '527dc987b16bdcd4224107e412e6bc0dc5d17ed3',
'3e24449df1f320d220c0d20dedada8fcb69c4fcc': '329a63c9c0deea86dfe7a5f22ecc617edfe39f63',
'a63aebd42925d46aa4fdd469bca7cde7689415f2': 'cc41ec5dff69b1d55c109a1b5e641c900b262155',
'f4da33d4e49d67b15ca26c920d7bd3189087c6f7': 'e0fead23dd8efa62dd4184c63f52047e726b5281',
'25ea00539c2148b2e7521b18c900288f7ca97884': '1a1f3fc805aece79f9514c0e8ff8dfdbf9737be2',
'5d0fb783450d71fb8905da346b20fc0cbbde2c5d': '33d7b0f17732f4edcfd556ebc6cb204dd0d3e92f',
'489f4f07b41eb891b42385f651c9b869452245fa': '520b9b689b560693383adb47af3c24f9ecdb70f3',
'4a307fabea604be9cb5bf92a5c65c29e9f0028f4': 'e3d8b50c7727770671f6861b92c275c12ba997bc',
'2c09462e3198843acecb1be04007ca7ad256ef64': 'e38ddee07dbda816dcb2ce645f75545b81ea6746',
'4e03872a5b14589b632cec525165514d2b1c05a5': '0095d29e5f196469f3c35530477a7b009ad30519',
'e46ad824f62d1b400c69e05a15d70518fdaadd51': 'a2b51b92e09d0e2f1f709d4b3f7f015f82aa11f5',
'408ef28e190e86375d96bae5277a5fb04b7522bf': '677be7a363b79ce841a4097f1eb48fd470fa179c',
'ba5e7a6d5df4ca95e2306c062947e5df3b1026cd': '6d9f297e07979146698fda3e9a3a84acb16cf72d',
'2e7168a0de7650eb3dfb57b1dcf0bb1c637c4aa6': 'f2fcbdc36def7d8851d733d570f00e2e94b68155',
'668f6fb87f546fdb6d61b19913868ae6cb37c588': '97ccb69cc4c2f730a5050b8d4d0f2c058089f51d',
'ad8f2fa5c14b9c2eda1bab19fc0eb7f33a9ece44': '7826b9725d893b2423fecd7c5840911f07707893',
'c3a17ad68b4b55e5feb6f194de6754535b1bac69': '7e5833a5983388975b1fb26ec611a09807ba3c38',
'59e4f86a4d265dd166aaabb5fd3277b07668881f': '29db0fdb898d8e9a67ba6d9d606f2e8e7bcf26b0',
'04bfbd44fc64324dceab22b069c90bb723ea9c49': 'e9d12bae3cc9fd9c856575e3f15a180b4ab37dc7',
'7f69dcee1135798e8b06e2fbf8539f7f04adb6d6': '673aaee97c59baaccc653a37e6989bd01297e78c',
'011fad3dc5cd82ee511b196130f5ea7b54cc6ea0': 'c8876b959f65f3eedcc4b35700398d8aaece0452',
'd604f45e28e56be479a20c2e0a52fbe3a757e2c5': '7fa53863f8275b8bdba21a792d1167d2a8b28b7a'}
%% Cell type:code id:df9f07bf tags:
``` python
before = pd.read_csv("outputt2.csv")
after = pd.read_csv("outputt.csv")
```
%% Cell type:code id:03edfc9c tags:
``` python
lookup['011fad3dc5cd82ee511b196130f5ea7b54cc6ea0']
```
%% Output
'c8876b959f65f3eedcc4b35700398d8aaece0452'
%% Cell type:code id:24fff2a5 tags:
``` python
before
```
%% Output
commit_hash num_additions num_deletions \
0 011fad3dc5cd82ee511b196130f5ea7b54cc6ea0 23 2
1 011fad3dc5cd82ee511b196130f5ea7b54cc6ea0 15 5
2 011fad3dc5cd82ee511b196130f5ea7b54cc6ea0 48 17
3 7f69dcee1135798e8b06e2fbf8539f7f04adb6d6 8 6
4 59e4f86a4d265dd166aaabb5fd3277b07668881f 3 3
.. ... ... ...
540 a1e77a023e1449d6f1d6bb4fc321e537c1c91432 75 0
541 a1e77a023e1449d6f1d6bb4fc321e537c1c91432 39 0
542 a1e77a023e1449d6f1d6bb4fc321e537c1c91432 42 0
543 a1e77a023e1449d6f1d6bb4fc321e537c1c91432 47 0
544 a1e77a023e1449d6f1d6bb4fc321e537c1c91432 64 0
filename
0 src/main/java/com/bittercode/util/StoreUtil.java
1 src/main/java/servlets/CartServlet.java
2 src/main/java/servlets/ViewBookServlet.java
3 README.md
4 WebContent/Sample.html
.. ...
540 OnlineBookStore/src/test/ReceiptServlet.java
541 OnlineBookStore/src/test/RemoveBookServlet.java
542 OnlineBookStore/src/test/UserLoginServlet.java
543 OnlineBookStore/src/test/UserRegisterServlet.java
544 OnlineBookStore/src/test/ViewBookServlet.java
[545 rows x 4 columns]
%% Cell type:code id:daa1d55d tags:
``` python
after = after.set_index("commit_hash","filename")
after
```
%% Output
num_additions \
commit_hash filename
c8876b959f65f3eedcc4b35700398d8aaece0452 src/main/java/com/bittercode/util/StoreUtil.java 21
src/main/java/servlets/CartServlet.java 12
src/main/java/servlets/ViewBookServlet.java 65
673aaee97c59baaccc653a37e6989bd01297e78c README.md 8
29db0fdb898d8e9a67ba6d9d606f2e8e7bcf26b0 WebContent/Sample.html 3
... ...
566fe922671b6a1941400d381e63ce20c04d953a OnlineBookStore/src/test/ReceiptServlet.java 450
OnlineBookStore/src/test/RemoveBookServlet.java 208
OnlineBookStore/src/test/UserLoginServlet.java 240
OnlineBookStore/src/test/UserRegisterServlet.java 313
OnlineBookStore/src/test/ViewBookServlet.java 302
num_deletions
commit_hash filename
c8876b959f65f3eedcc4b35700398d8aaece0452 src/main/java/com/bittercode/util/StoreUtil.java 0
src/main/java/servlets/CartServlet.java 6
src/main/java/servlets/ViewBookServlet.java 49
673aaee97c59baaccc653a37e6989bd01297e78c README.md 6
29db0fdb898d8e9a67ba6d9d606f2e8e7bcf26b0 WebContent/Sample.html 3
... ...
566fe922671b6a1941400d381e63ce20c04d953a OnlineBookStore/src/test/ReceiptServlet.java 0
OnlineBookStore/src/test/RemoveBookServlet.java 0
OnlineBookStore/src/test/UserLoginServlet.java 0
OnlineBookStore/src/test/UserRegisterServlet.java 0
OnlineBookStore/src/test/ViewBookServlet.java 0
[537 rows x 2 columns]
%% Cell type:code id:d30ac1fc tags:
``` python
# set type of num_additions and num_deletions to int in after, setting bad cases to 0
after["num_additions"] = pd.to_numeric(after["num_additions"], errors='coerce')
after["num_deletions"] = pd.to_numeric(after["num_deletions"], errors='coerce')
```
%% Output
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
Cell In[18], line 4
2 after["num_additions"] = pd.to_numeric(after["num_additions"], errors='coerce')
3 after["num_deletions"] = pd.to_numeric(after["num_deletions"], errors='coerce')
----> 4 after.sort("num_additions").plot()
File c:\Users\boran\OneDrive\DTU\BSc Thesis\formastfolder\formast\.venv\lib\site-packages\pandas\core\generic.py:5902, in NDFrame.__getattr__(self, name)
5895 if (
5896 name not in self._internal_names_set
5897 and name not in self._metadata
5898 and name not in self._accessors
5899 and self._info_axis._can_hold_identifiers_and_holds_name(name)
5900 ):
5901 return self[name]
-> 5902 return object.__getattribute__(self, name)
AttributeError: 'DataFrame' object has no attribute 'sort'
%% Cell type:code id:81e8ba81 tags:
``` python
after.plot()
```
%% Output
<Axes: xlabel='commit_hash,filename'>
%% Cell type:code id:7e665576 tags:
``` python
```
import csv
import git
import click
#import getfile as gf
from tqdm import tqdm
@click.command()
@click.argument("repo")
@click.argument("output")
def main(repo, output):
# Open the output CSV file for writing
with open(output, "w") as f:
repo = git.Repo(repo)
writer = csv.writer(f)
# Write the header row
writer.writerow(["commit_hash", "num_additions", "num_deletions", "filename"])
# Loop through the commits and get the diff stats
for commit in tqdm(list(repo.iter_commits())):
if len(parrent := commit.parents) != 1:
continue
diff = repo.git.diff(parrent, commit, numstat=True)
for line in diff.splitlines():
num_additions, num_deletions, filename = line.split("\t")
writer.writerow([commit.hexsha, num_additions, num_deletions, filename])
if __name__ == "__main__":
main()
\ No newline at end of file
from contextlib import contextmanager
from pathlib import Path
import shutil
from typing import Callable
import click
import csv
import git
import os
import git_filter_repo as fr
import tempfile
import subprocess
import logging
from dataclasses import dataclass, field
log = logging.getLogger("regit")
# Some code borrowed from https://github.com/newren/git-filter-repo/blob/main/contrib/filter-repo-demos/lint-history
class Executable(click.ParamType):
name = "executable"
def convert(self, value, param, ctx):
if "/" in value:
exe = Path(value)
exe = exe.absolute()
if not os.access(exe, os.X_OK):
self.fail(f"{value!r} is not an executable file", param, ctx)
else:
pp = shutil.which(value)
if pp is None:
self.fail(
f"Could not find {value!r} on path, add './' if it is a file.",
param,
ctx,
)
exe = Path(pp)
return exe
@contextmanager
def blob_reader():
process = subprocess.Popen(
["git", "cat-file", "--batch"], stdin=subprocess.PIPE, stdout=subprocess.PIPE
)
def reader(blob_id):
assert process.stdin is not None
assert process.stdout is not None
process.stdin.write(blob_id + b"\n")
process.stdin.flush()
_, _, objsize = process.stdout.readline().split()
return process.stdout.read(int(objsize) + 1)[:-1]
yield reader
if process.stdin is not None:
process.stdin.close()
process.wait()
@dataclass
class BlobHandler:
reader: Callable[[str], bytes]
filter: fr.RepoFilter | None = None
blobs_handled: dict[int, int] = field(default_factory=dict)
is_relevant: Callable[[Path], bool] = lambda _: True
transform: Callable[[Path, bytes], bytes] = lambda _, b: b
def __call__(self, commit: fr.Commit, metadata):
assert self.filter is not None
for change in commit.file_changes:
filename = Path(change.filename.decode("utf-8"))
if change.type == b"D" or not self.is_relevant(filename):
continue
if change.blob_id not in self.blobs_handled:
content = self.reader(change.blob_id)
blob = fr.Blob(self.transform(filename, content))
self.filter.insert(blob)
# Record our handling of the blob and use it for this change
self.blobs_handled[change.blob_id] = blob.id
change.blob_id = self.blobs_handled[change.blob_id]
@contextmanager
def tfile(folder, filename, content):
tmp_file = folder / filename
with open(tmp_file, "wb") as f:
f.write(content)
yield tmp_file
os.remove(tmp_file)
def transform_program(program: Path, args: tuple[str], folder: Path):
def callback(file: Path, content: bytes):
pargs = list(args)
try:
ix = pargs.index("{}")
except ValueError:
cmd = [program] + pargs
log.debug("Running cmd %s", cmd)
return subprocess.run(
cmd, input=content, capture_output=True, check=True
).stdout
else:
with tfile(folder, file.name, content) as tmp_file:
pargs[ix] = str(tmp_file)
cmd = [program] + pargs
log.debug("Running cmd %s", cmd)
subprocess.run(cmd, check=True)
with open(tmp_file, "rb") as f:
return f.read()
return callback
@click.command()
@click.option("--repo", help="the repo to clone and change", default=None)
@click.option(
"-o",
"--output",
help="The name of the resulting repo",
type=click.Path(exists=False, path_type=Path),
)
@click.option(
"-p",
"--pattern",
help="the glob-pattern to match files.",
type=str,
)
@click.option(
"-m",
"--mapping",
help="The file to output the csv mapping to",
type=click.File("w", lazy=False),
)
@click.option(
"-v",
"--verbose",
help="The verbosity of logging",
count=True,
)
@click.argument(
"program",
# help="The program to execute on each file",
type=Executable(),
)
@click.argument(
"args",
# help="The argurments, choose '{}' to mean the file in question, omit a '{}' to use stdin",
nargs=-1,
type=str,
)
def regit(
repo,
pattern: str | None,
output: Path,
mapping,
program: Path,
args: tuple[str],
verbose: int,
):
"""A simple program that runs a command on every commit on a repo."""
logging.basicConfig(level=verbose)
log.debug("Setting verbosity %s", verbose)
if output is None:
output = Path(tempfile.mkdtemp())
if repo is None:
repo = git.Repo().clone(path=output)
else:
repo = git.Repo.clone_from(url=repo, to_path=output)
os.chdir(output)
options = fr.FilteringOptions.parse_args([], error_on_empty=False)
with blob_reader() as br, tempfile.TemporaryDirectory() as folder:
handler = BlobHandler(
br,
is_relevant=lambda a: pattern is None or a.match(pattern),
transform=transform_program(program, args, Path(folder)),
)
filter = fr.RepoFilter(options, commit_callback=handler)
handler.filter = filter
filter.run()
if mapping:
writer = csv.writer(mapping)
writer.writerow(["from", "to"])
for fm, to in filter._commit_renames.items():
def handle(a):
if isinstance(a, bytes):
return a.decode()
else:
log.warning("Unexpected result %s", a)
return str(a)
writer.writerow([handle(m) for m in [fm, to]])
print(output)
if __name__ == "__main__":
regit()
import click
import os
from git import Repo
@click.command()
def main():
repo = get_repo()
# Get all Java files in the repository
java_files = []
for root, dirs, files in os.walk(repo.working_tree_dir):
for file in files:
if file.endswith(".java"):
java_files.append(file)
# List the Java files from the repository if there are any
# if java_files:
# click.echo("The Java files in the repository are:")
# for file in java_files:
# click.echo(file)
# click.echo("Total number of Java files: " + str(len(java_files)))
# else:
# click.echo("No Java files found in the repository.")
click.echo("Total number of Java files: " + str(len(java_files)))
# Get commit history of the repository
for commit in repo.iter_commits():
print(f"commit: {commit.hexsha}")
print(f"author: {commit.author}")
print(f"date: {commit.committed_datetime}")
print(f"message: {commit.message}")
print()
return java_files
def get_repo():
choice = click.prompt("Clone a new repository or choose a local repository", type=click.Choice(['clone', 'local'], case_sensitive=False))
# User chooses to clone a new repository
if choice == 'clone':
url = click.prompt("Enter URL for GitHub repository")
default_path = os.path.expanduser("~") + "/repos"
path = click.prompt("Enter path to clone the repository or press enter to use the default path", default=default_path, type=click.Path(exists=True, file_okay=False, dir_okay=True, writable=True))
repo = Repo.clone_from(url, path)
click.echo(f"Repository cloned to {repo.working_tree_dir}")
# User chooses to use a local repository
elif choice == 'local':
path = click.prompt("Enter path to local repository", type=click.Path(exists=True, file_okay=False, dir_okay=True))
repo = Repo(path)
click.echo(f"Repository at {repo.working_tree_dir}")
return repo
# Get all the java files in the repository
def get_java_files(repo):
java_files = []
for root, dirs, files in os.walk(repo.working_tree_dir):
for file in files:
if file.endswith(".java"):
java_files.append(file)
return java_files
if __name__ == '__main__':
main()
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment