diff --git a/.github/workflows/ci2024.yaml b/.github/workflows/ci2024.yaml new file mode 100644 index 0000000..aee515d --- /dev/null +++ b/.github/workflows/ci2024.yaml @@ -0,0 +1,35 @@ +name: AoC-2024 + +env: + YEAR: 2024 + +on: + push: + branches: + - main + paths: + - "2024/**" + - "$YEAR/**" # variables inside paths don't work + workflow_dispatch: + +jobs: + + _run-all-solutions_: + runs-on: ubuntu-latest + container: + image: egordeev/adventofcode:python-3.13-hyperfine + steps: + - uses: actions/checkout@v3 + - name: Run all and verify output + run: | + cp $YEAR/answers.txt answers.tmp.txt + bin/run-all-solutions.py --dir $YEAR --write + cmp -s $YEAR/answers.txt answers.tmp.txt || exit 1 + - name: Benchmarking + run: | + hyperfine --warmup 3 -r 10 "find $YEAR -type f -regex '.*/[0-9]*\.py' | sort -n | xargs -I {} python {}" | tee $YEAR/benchmark-ci.txt + echo "=== All Benchmarks ===" + find $YEAR -type f -regex ".*/[0-9]*\.py" | sort -n | xargs -I {} bash -c "hyperfine --warmup 3 -r 10 {} | tee {}.benchmark-ci.txt" + - name: Create Awesome Badges + run: | + bin/create-awesome-badges.py --dir $YEAR --gist 13c6cac3c39702cdcb9cc169b66c3210 --secret ${{ secrets.GIST_GITHUB_SECRET }} diff --git a/2024.md b/2024.md new file mode 100644 index 0000000..43e3b94 --- /dev/null +++ b/2024.md @@ -0,0 +1,27 @@ +## 2024 + +![](https://img.shields.io/badge/stars%20⭐-0-yellow) +![](https://img.shields.io/badge/days%20completed-0-red) +![](https://img.shields.io/badge/day%20📅-0-blue) +[![badge](https://img.shields.io/endpoint?url=https://gist.githubusercontent.com/EvgeniGordeev/13c6cac3c39702cdcb9cc169b66c3210/raw/runtime-badge-2024-all-ci.json)](https://github.com/EvgeniGordeev/adventofcode/actions/workflows/ci2024.yaml) + +* [https://adventofcode.com/2024](https://adventofcode.com/2024) + +To profile with hyperfine - `brew install hyperfine` + +* `hyperfine --warmup 3 -r 10 '2024/01.py'` +* ```find 2024 -type f -regex ".*/[0-9]*\.py" -exec hyperfine --warmup 3 -r 10 'python {}' \;``` +* ```python -m cProfile 2024/01.py``` +* ```time python 2024/01.py``` +* ```hyperfine --warmup 3 -r 10 'find 2024 -type f -regex ".*/[0-9]*\.py" | sort -n | xargs -L 1 python ' | tee 2024/benchmark-m1.txt``` +* ```bin/run-all-solutions.py --dir 2024 --write``` + +| Day | Name | Solution | CI Benchmark | +|-------------------------------------------|-----------------------------------|---------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| [01](https://adventofcode.com/2024/day/1) | Trebuchet | [py](2024/01.py) | [![badge](https://img.shields.io/endpoint?url=https://gist.githubusercontent.com/EvgeniGordeev/13c6cac3c39702cdcb9cc169b66c3210/raw/runtime-badge-2024-01-ci.json)](https://github.com/EvgeniGordeev/adventofcode/actions/workflows/ci2024.yaml) | +| ----------------------------------------- | --------------------------------- | ------------------------- | --- | +| [all](https://adventofcode.com/2024) | AoC 24 | [txt](2024/answers.txt) | [![badge](https://img.shields.io/endpoint?url=https://gist.githubusercontent.com/EvgeniGordeev/13c6cac3c39702cdcb9cc169b66c3210/raw/runtime-badge-2024-all-ci.json)](https://github.com/EvgeniGordeev/adventofcode/actions/workflows/ci2024.yaml) | + +* or ** - external solution adopted + +## External diff --git a/2024/01.py b/2024/01.py new file mode 100755 index 0000000..92bac45 --- /dev/null +++ b/2024/01.py @@ -0,0 +1,1133 @@ +#!/usr/bin/env python3 +import re +from typing import List + + +def parser(text) -> list: + return [line for line in text.split('\n')] + + +def read_input() -> str: + with open(__file__, encoding="utf-8") as f: + c = f.read() + data = c[c.rindex("🎅") + 1: c.rindex("⛄")].strip() + return data + + +# MAIN FUNCTIONS + +words = { + "one": '1', + "two": '2', + "three": '3', + "four": '4', + "five": '5', + "six": '6', + "seven": '7', + "eight": '8', + "nine": '9', +} + +lens_to_search = {len(k) for k in words.keys()} + + +def calibrate(line, second_part=False) -> str: + start, end = 0, len(line) - 1 + first, last = None, None + while start <= end: + # part 1 + if line[start] in '123456789': + first = line[start] + if line[end] in '123456789': + last = line[end] + # part 2 + if second_part: + for size in lens_to_search: # (3, 4, 5) + if not first and start + size <= end and line[start:start + size] in words: + first = words[line[start:start + size]] + + if not last and end - size >= start and line[end + 1 - size:end + 1] in words: + last = words[line[end + 1 - size:end + 1]] + # loop + if first and last: + break + if not first: + start += 1 + if not last: + end -= 1 + return first + last + + +def part1(given: List[str]) -> int: + return sum(int(calibrate(line)) for line in given) + + +def part1_re(given: List[str]) -> int: + return sum(int(digits[0] + digits[1]) + for line in given + if (digits := re.match(r'.*?(\d)', line).groups() + re.match(r'.*(\d)', line).groups())) + + +def part2_re(given: List[str]) -> int: + non_greedy = rf".*?(\d|{'|'.join(words.keys())})" + greedy = rf".*(\d|{'|'.join(words.keys())})" + return sum(int(words.get(digits[0], digits[0]) + words.get(digits[1], digits[1])) + for line in given + if (digits := re.match(non_greedy, line).groups() + re.match(greedy, line).groups())) + + +def part2(given: List[str]) -> int: + return sum(int(calibrate(line, True)) for line in given) + + +# TEST +def test(): + # GIVEN + assert calibrate("1abc2") == '12' + assert calibrate("pqr3stu8vwx") == '38' + assert calibrate("a1b2c3d4e5f") == '15' + assert calibrate("treb7uchet") == '77' + given = parser(""" +1abc2 +pqr3stu8vwx +a1b2c3d4e5f +treb7uchet +""".strip()) + assert part1(given) == part1_re(given) == 142 + # part 2 + assert calibrate('two1nine', True) == '29' + assert calibrate('eightwothree', True) == '83' + assert calibrate('abcone2threexyz', True) == '13' + assert calibrate('xtwone3four', True) == '24' + assert calibrate('4nineeightseven2', True) == '42' + assert calibrate('zoneight234', True) == '14' + assert calibrate('7pqrstsixteen', True) == '76' + given = parser(""" +two1nine +eightwothree +abcone2threexyz +xtwone3four +4nineeightseven2 +zoneight234 +7pqrstsixteen + """.strip()) + assert part2(given) == part2_re(given) == 281 + + return True + + +if __name__ == '__main__': + assert test() + lines = parser(read_input()) + # ONE #1 + part_1 = part1(lines) + print(part_1) + assert part_1 == 55_002 + # # TWO #2 + part_2 = part2(lines) + print(part_2) + assert part_2 == 55_093 + +# INPUT +"""🎅 +tsgbzmgbonethreedrqzbhxjkvcnm3 +7qlpsnhbmnconeeight78 +prbqsfzqn57 +ctrv3hmvjphrffktwothree +9six9qbgcvljfvccdjslspprgonenine +eighteight9dnvcqznjvfpreight +one5sevenfour3 +gjgfiveonekzssz9c +one54 +rtsevenfourfive1rqhslone +xkxfdhk25fourtwot8 +kjgcsncmeightdxdgkxfzqmmkg1351 +7qpnldcvgs +reightwotz5 +nineqrtrsfsreightthreetworvrphxptlrbczxsix1 +1svfvgsfcssjpvhzr +1seven174ndseight2 +56lrkxdfive +2jvrgmmlninejf583 +fvsspqpt31 +3threemhjhvrvgkseven +eightoneoneeightttlpjqgnkndbnmppjsdhzdbhkhl12 +vxjgghc18dzbsssnssh +one2cgxdfbfhl3 +8ssfour997six6 +8onesrtcvqmxpzeighttwo6 +3twoptpvz5cbgpdrggdtwoseven +35smnsnzxmdjtsns6sevenonethree +fivetwoeightfdjpscncb41 +flkdknzdxtgdxcfqkn4mbh4tqvgdq +one3threethree +sevenfourgdnxhsqq5one1 +kkrjgpm2sixeight24 +krrhdhjqgmc5dv4 +cvlh16nineeight +495five2nine1 +tzmcxvdtvxpmrcsevenfour15one +2qvbrsxqsix45threeeight +pfmktwo29onensbfgdddfm2 +7xqjzxstvsthree +37ninetwo3 +5vhtctxvjrvftwoone2six +hbhxhjjl5twoqxmlprccr5 +ninefour2foureight69 +1sevenmggmcxfcfdxptktsgcgsc +fnkzsdjh3kqxpdvmkmvqqjcjn +twotcspvbvppqqntwo1hlcvppcpnv5 +xbfhpnkqbnxdfgbgtm5 +84tpzgonelnine6bzkx +bgslbmdkfpbx6 +lqpfphxdtfourxbqdhrbcz2cmhtddsnkpgln +7fourfzthreezhrjdjlvsix4lrrfv +2seven3 +fourtdggtgsdm5 +1pbphhpsxbnqmfbxzone +tskfvdph7mftvqpnvcj2oneninenine2 +3fiveeighttwothreeninenine +seven687two1pdjbbprztwo +eightrslvddpmonejfive4hhqbdq +xbhcqzx52eight52seventwo +fbgpj8fourthreecqngmbbvkktlbss +plckgsixeight6eight95bnrfonetwonej +1nine97rtrtxhqnone2 +cntfouronerdsnn4lfcmhvlrq1five +hrh34sixfourqqng7eightwot +sixlfldl7qjsclxqfive15 +khdfour17 +frmcpx65 +five6bjlbxkp7qthreethreecc3 +5four6qlmpsrdeightfour +9lxdxgfrnlk4lsgbjnz9two +one7five2fvdqfqqn92xsxnblxvhdfcrz +hmhmxvqljdgvvvdfour5one68zgm +718 +3onefive43 +xgpqs5four267six +pqseven17nineninephpszgqzsixldhxmhzgf +ncxxlsqdkvc8fiverslzqtzhzltcmbkthreelkjjckxsvljvs +nine6sixkrs +5kcqpgfms +1znbcrpxmjcsixeight +sixtwo28eight59fql +8nfcseven +8five864sixfive +8fzsvsrjmjxmc +kftvseven6dcsfqtmtjvmgbrninefvv6 +twoseven65 +nine58sjshtgtqlz +lhjfzvlbtrfffour9eighteight73 +9crhmmqkrrfour +threeklhhtlmczn6thfkvdd +dvjxkdgsnlds44kxs +9gtvhrcphvnzbmckkeightfour +fouronejtvrscxj9onethreelgslth +86four +4hvnqzfthree +8qone9 +lnkngkxsflqsvm3threenine2seven3 +65five +8529xdd5threeonexq +sevenlthree1 +5sevennineflfivevgp +6pmzqczjtlnfvgg1sevensix +sixtwoone2 +kqrxsgtrrjsix9 +2twonebs +fs9hmjmdmbhkskqvdb +293 +9sevenbprbbnzqjbhfpcgnxjmflxgkvqgvc +rkd58six +5mbgfldv7rskkllhm +fcjdzfjpvptdcxfltdddm7twornkskrnqnqv +bkqzf51two8twoeight8 +2fivefour4777six8 +mzq67threetwonrqpcrptwo +7bmkeightm8 +z6twoeight5threerfckddtc +threeninesixmtdc7xtjhvksjjc +5fxffvhqzgtdlfdxdhsixnmjtvlq2five +nqpsvzgql1 +six3qljkjbfeight +sgddglfjrtwoseven3 +rxzhvffr1rfxqpr +7zjv5 +3tcsxlpxhsmnmg27 +lbqkvfxp8sevendcjlrfour7 +cxlvqldcjhhlzcvsix6crleight6 +jhchtninehrvlsfvkr7two +48ninetwo +45fivefiveone2 +hthchfc1 +oneninetwobfk7two +ninesevenkfnlhrznqseventhree9 +2fzbgjdvbnktwoonefivefiveqhz +seven28mxjxnzb +gqrznvtjeight9six277five +four3three +1kpqmrjctwolngk8 +49zks +threesevensix9fivergmlzrblg +eight9sixeightlfvrbvfhd5one +4sevensevenonegm6 +six11one3lrztzsjczlnhddxbn +eightsevenpqdsxzmblmvdmjpeight9 +71seven +cjqcqjlkgffoursvfcqxfkkszjhjl73 +dgndjkhcplztmkjrdn53 +1eight91vqjhmxrq9nine6 +bthlrtwo54hxppxfourdsnxnlnpvhmrpqtqzlr +1bhdmvdrjvzthreenine6four6 +threerknmhjtfourtwoeight65eight7 +1hbgvsdxtrsixmsfzxrlzskkkgh +4hsjt +twothreefxhlr1bfngthreemthqqvgfpxeight +nineeight4hp5nhksqdvrhcn22 +hdcfdknjkhsxnk9 +pshjqxmqcbkhqkc5onekzfgkbeight +five3ninektmsrxhsdrseveneight1onenine +p5five +2sixrgznrrvmxbbvnxhqtpeightthree77 +threehmpjclsbhjlbxj1 +982 +vcjxvjvbmmzmrvv97one6rdxrdk +four8one9xpgfjgvjmdsevennineeight5 +five7jmcrkbnine2 +kmbhc8threessdnfmsix +214sixfkxkllldfive6 +dbhbfprsqkpmnfxgkgcone4qfgrgghqtqhxqn +1plplklqjqjdsix +ztzgqsixqsevenseven4 +3threedjnbdbvxseven3qpsjone +dnccnninetwomkzk52sixcgq +94rdhfgjjr1gzl +8three2ljbjjfvx +8sdklzklt +onexvrsttmhfninetftbrhtwo1gkpbninekh +vsbfour5six +2phhz85 +two73fourfive +2twonineninesjkljpdgx +2h +tghzldzcj38foursix +9srzlsv9seven +twojzssixfive53 +85eight35foursix +rzx2lb +ghfnqk396nxqgvvgsmnine9hhc +6sixnine746zlrksxcglg58 +1nbfivelvpcjnsddt3eight4fourblrzckjvf +sixninethreednqkk9zzspxbcfjmfive +16tsvqdplfnbnh +l13tkbfldqcdfzjsdvtfttphmcmsix7 +rcgmlmnine94foureightnine +lpvmrmtkthdqll5 +gjjprdvggvtjvqsnbg7xjvnp3eightninebhrdrq +lzzmsmbpqnineninemnine6two4 +52qldxmrfive36ninetwo +four6fourhrsgf29 +9zb97kffl +eighttwonine5fourkqtjsjthree +two21 +two6fourtjjn147 +lxnzlpcvzkbd9pxtr6qhbfmcmblbhmncljqd +zccjlmzhm9 +11zdnjgj +one5fourone4onerttltxrzgf3 +eight2nine83onepxjhx +38fourllqpbclqnlmfourthree +treight9threesevenqgj +jb7threezfvnine28seven +kmnkbmmnine53lddseven3 +3jxgfdzkgznine +72lzbqmclqtwo94nkt5 +threejdqnineeight4seven9two9 +sevenqnpjbznp6sevenfrnghcmvlfbns +oneone23oneeightone +52qngdcmftmchfzt +two8hnine1qsseven1three +seventjlsdnmx25pnxvtxtsix4 +3veightjkgnbmcssevenpjrszdxqthree +kkhxtnqzvz4jdqmtwoeight +4eight15niner +kreightpprcklznlcstjvqhn36ggfkphxdhm +four53ngjzlmhg +ztwoneoneshxnb2sevenxcrgjbckmfiveeight +3five5221ddgprnvgpnj +2hdkdzcvcmmtcrbsvfsevenone +dtkjdncq73threechgcccdgqqsixthreehlfroneightn +vtfvj4nine23seven2two +phcvhvlq4kjnjcdkjrgninefourthreethree57 +twopxngznkbrmrmrz7135one +one3bqdzone9sevenc2 +69threesix +6jcmfivenine6fivefivethreetr +six1jpxjrqkpgllkqldf +rjz4two59gjjgs2five +joneight9gvqknfour7sevenfhzjsrldj +9one4onesixhvvkqtpleightwovmh +seven4threekpstdppxhvtwo7 +flxzfrxp1 +seven57eightthreeeightseveneight1 +6sevengmkvrvone +five1eightfour19 +nqxnqn7five3txrngheightnine +rdfkkkthree7lnpmdgdb9 +jhhvznhlsevenninefourcmkrbtfive3thtfbjvgvdnv +2seven7eight8jrjkf4fourhv +oneone7hmdfjpzr57vfz +7vqsllrhznvrdccrdrnjvmzmmknp4 +412sevenflfcvksjzk +7eight43mq354oneightv +sevenseven7eightoneightvvj +twotwosix2ninefour9three +threefourtwotwothree1lj +jpqccxztdninepncqqmnlxninexjfgvgccrm1 +5cr +jlhrrqmtlgtqfqpmkrhqjmpmxjshshblthreefournine2 +four93kssrxr +bztqzsjkeight6two18four +sevenoneone587ghfbdmjpqxnpbh +823onesevenseven1 +tt3qmcsbcm1eight +prkptfivefourtwo8 +4six8836gmmgvlrz +qklnpxjqhpczsc775 +phblxtj9 +jgz8lrghthree813eightone +vppt4eightthreezpgqt6dmxdtllksgrtmcbpfjh +nine9lgsgzkjvbcmtfourr +7three61ninefqgsfbpvjrx +98ninenfzfh +two2one8seventwo3hpdbstnhvkthree +fourstrljqf8nine +5kzgf5rspljfnsljrfrhg2mdsh +jkbjkbjhvfoureightgfnnxxnqh826z +3ksgl +3vfivehntm +threeeightone64krfskdqlxsfive +oneseventwo8vqzvnine9ninenq +7fivesrkfkfthree8qmxmdrvhl +447lhctbzpphthreebkmrthreetwo +two92seven +95sevenonecgj +kcgsqqdpfhrpxzceight88 +9c4six +rdkqfzkdlggfq661tfmqlgkcfmfcvpqsmr82 +1zzhzhz +six2ndsdxkfxsfthreeonesevenzlp +eight5threeoneightmxp +sixfour4hdktht3two3seven +9zdphltlnrfg9225 +6eightfourplxbgjfnnzfk2sevendcpbl +threenineeightsltsrkvpl28six8nine +lmbqmrmjldlgb7 +2sixninedxnhmdfxh4five66 +5mllgtrxzkgxskkqxvpjttninefour3 +2hjl6two +h5 +eightthreethree3hcsrt +htjlplnfxgfqkm77seven +lpmggpmcq943lcsvrhdljsqqdlgrphlnnine +7twoonecgtdnfvlrsixrhnineseven +lxszmkhj983five +four9fourninefourtwol +eight58sixsix94 +2sixthreefkbvtdgjq +1rnc +86seven13 +one6f3jkrlrtf +two4nine72twojtfive +fourtdtwo27 +two6eight +nxhzvln3five5 +six7lbgqhnzkntwo +hsfjgnjxjvzskjninezfndhtwofghpstbqzcseven1four +6q +ffszknxdbqzgvmg2p +cvl52 +nmfmp8six5threenhnxs4 +9fdknpvztworqfdpjrk36eight9 +brmqzbhx84 +two72nvrlnhkjnineseven +1spsmjscthone8 +sevenphkpdzvgzcjvlskdzbhqgpknrzdpsn39 +gfmxvrrvk8 +8zkpvrq7ggjskkr +7ninemvm41sbftf6 +nine2sevenfiveonetlnhbbxv +rtwone881998 +eight5threegthree +fhlnkzgqh191 +48fourcmfivecz +5mdvbgmdhqbctxclonedhx1sevenqczd +12one +sixsixeightjmnbqzfive49bk +nine2seventhreehvrfvm11 +gnsixb3three2 +one3hrqzfsc3one8threehhjbzkmln +vvxcbrrone95 +nine7twosnpv2threeeighttgg +8onetwobqnxkkvhk5 +qrphvhfqninemcnzfrhfbvdtsnhst3 +2eightj +eightmdjmnqd1seven +seven5sixtwoeightcglpqvlzxdfive32 +nine3scvsffour6 +3onefourseven +cfqfkxv4five +2dbq8fnzpzp +fivekbblqgnjt12pxnvjxrssm +sixfive16r8dqkgspmlb +ninexjhfsgn9ninezv +lcfourtwofiveffrl6gfhxsrzmdl +8oneshvxjn +8threeeight8sixqbfnpxhr +smdjbhvsxlnhcqnxxgqcxfive5 +threeonesevenglblr56lsntrdsjhp +seven1ninevqpssj +58seven +lghxjdhpdbqs19 +lkcttrkrcpfourjtkfxmxcfive4kxnchspbqvqrfv +7mpgnvdrmsqbcnfzrhtpjhz +threezkjqk5fourthree8four3 +7398 +xpmrcfffmhqpnmxtqxsblcd2fourq6eightdqvj +6onedvdxtv9 +sevenzzvgmlqk5phcldhgghvshclp8 +xpddfttzsix63one3 +threem5eightwomp +2crrxnvrcjklzvdxk1slmrkq2 +5fivesix8mstzprjlvqhcrn +rzkhdgfvkqonexhblnnine32 +5rseight377fivepnlsngxvmthree +onesixseven9 +9dgr98 +6jjcb1hlmlchvtqhpp36nine +lrxhvzs538seven76mkt +six48fivexqxqxdzzhggvcb1 +94seven7two7 +five2bqxzjllksix4 +21three2eight +9rbsrdjbgmgln2fivesixninejfvk1 +9foursixsevennine1 +9zjxdzqbxjlbbsnine +8zfslsdlhdqmptwozzndjcskhptwo68 +9fiveone3fourpncrvfive9 +tbslbmgkqv936sixgsqzkfcjpl +fournxfsgdthq4bsmp38sevenfivegclrlpgxt +1kzql +7onehfzqjdnlzcxflzrlxdh8four9mzf +1sevensfivevgxeight9frcbzhpn +four1seven8njj8 +74dtgcn +sevennine8twothreeztstwoklxhgfbgnnb +7seven3bdrbpnzcr +2twooneggtzrfqcsqqq +rfxnrxkk5twocjddcmqbrqjvprtbdjtpngl99 +pspkmpxzmn9cndplpjskthree7klc +eighthcnhhvvjxc295rxgfour +74nine +jk17mxgfhjveight8twonine +2six8seven2nine4sevenkrgmk +6k96 +5jseveneight6eightnpfqt +ntwone1dkfrhmfourzngslfournine +nine64 +njeightwo52 +15mhnqxqcdgcqbqtdp +hlpgsrxf429four +tncmkps6bninergvfkrv649 +bqqlgvbdp3 +7sixpzpbrxbhqjgvgns +849zhtmsevenfour77 +three15seven9fourthreejfmxhllseven +ksixeight4three4fqkjthreemjqhxqgk +four4seven4eightkgsg +sxgrghvnfknfrsixnkflvngkmsznhc8 +6dzxmxkvvpnkp6fnzdfkjsevendlqrsgdztone +eighttwo81cbrtrrfour9fourqkkbk +hvnjpcxhlb9skfjsixseven9two9 +pmt113onertkj4 +seveneightdftwotttone6 +fnsmzpthreexcssct42 +5eight4threefgllrpsgqhdtsqbqvzxtpgpdgnvctt +rfddtbdpftrvf641five2x +1three8clseventjtwodlhggr +fivelxhrninej8fjngzdskseveneight +ninexxlhmhzdj7tfzds3khvctlrxmhsxdnbm +bggglk31threefivenineonepqcdzczjm +223seveneightfp +mkvsblkv76 +7three86 +xkmxnbmtzrpdp2threesixfjkpbhpzb +9four2 +7tqqg +three4five +zndhqdmkntwo6 +rgblqcvrxzv5clzjdmfkph5 +skcvbd2seven5 +eight8xnlmzm +9twovfnvrmcfhn2gm187 +seven8sevenjshjndsdgrnczlsevensix7djrk +bt2one4jgztwo +one126eightnzpxkgfj +blrlnfnnvbhkltmgqqsixsix2bdnprfp2rpqtnvbtwonenpx +prffzmfndlqfqjncvskgdtwovmbqnxm8twojttxpv2 +6qhjdzs5bm +76lcmfntskmxddthreesixone23 +bstcghjbhkrlpxf1six +7ptpcjchcfffivenineoneone +7ninethreezstzpdr1two +szxlzxpn2fiverhjrp +5625 +two6ghnhfvrzlqdtqflvfgldfjj37gcxnxf +one3scnfcdpsn2five3ninejbv +eight569nffztptqgd1mqbkssdcppjg +fbsvjlln4cdshlvmxpmmc4threemfqnseven +nljzcfzfive5ninen +gmhlb2sixfive55cvnkgknrpbdtnrd +47six +skkhbxfour6trmh7nineseven +three9five +12ninexcc +eight6kdtbvfourb +425threetwo4hxnxseven +five4jbbftjkcmjqxrdls3nlhvcgeightrjn3 +knnjdj5tgtsrgnmjqmjjrnht1 +nine3mhxxsix39 +fivefourseven2drz3eight +215xnm +6seven3 +77kqzfcbklvznhgvnpfivefivejx5 +8seven6sevengjssbvngxzbgcmm1 +mqqxqgmzdvzdgjrlkntdjhgfouronegrkddl14 +5threetxbscpfxdgfive +two3bdhxhkqnd87cmrkzxf5 +two7twobgnxklp +9sdnnzrkms8rbbzfqms8one +2hxdxxstwo +foursrb7smqxmkt +14xfhdkfmh +84trqvtltpqvdtzdlch +19hjjhfljxnine +1lbkvjcjbbeightngnqdvz8nddkmqmvvb8seven +mlnpptcflthdprj4fiveseven92sdhxchdcj +cdmbfivepgdbgdfvbklz8six7 +cbqvbtpljv8skzgmbzbfgrbffmmb +one9ninev4 +nzvjsqx7fivebgptkrxsx65sixfivesczbl +42bhjthree1 +twoqnsxllxrsfive64vgtpcmxc9 +sixbzflbdv7 +54threehf9vhctwofour +4pmkmlpnnine3 +3sk88qglhbsjxdsdcnqrnpdz +79szleighttwofivef +vbctcrttwo43oneone +qjhdlqzqftfgxgnbbscsbznfgslbltd6szdppxfpm +fivenbbsgfthree9 +hjqmr9rqsrhspcfjmfj379 +lxjeightwo6four8 +45twonkxhqq +ggcvxfz6lfpbcspvzsqztjllrrpd +qmlvh9bmlkfive83fivepbtnine +1qqqbrct45sevenx +ttgtbnzrn1dprs6four +nine1rcstjdlhb6hsrnvsjxeight1 +gtlhk3gjhqvtwotv +six278kd +vlgzjxlmfs6 +8d51 +seven6lzjgcc +sz7sixctstdkhlb89 +27three +6two3msmszdzcrfgxj5 +8dbvzcrqv +tftbmjrjd831gbzrhscthree6jvvfour +254sevensixzzkjsq1jmmbvdbhtmfjsp +ghqgzfkqhnqntwo4nfj1 +sixfourninetwoxjtsxcr3 +five2niner2 +22blmbkts7 +one2cbkvqstone5threekzvskbzdt5 +48lgvmpjvhlfsixone6seventwo9 +1five5pzglqpqltn +8dc6blpnqcjndthree5 +lncn3sevenptdrlpqsbseven +9mdzt +flnr3sevensevenpjgrgdbrvdgkhtlzzljdnppp +lpljgkpqdgqsevenseven8foureight5 +xzrkml7 +127 +hgxdcdprhg4qkxtwo1rlc +nine9five5g +three1lgdctzmqpgc4zbmc6ttsls +onethree495three +eightfblxhxptkdnhk6npbbsxgxlhoneights +fourm6sixeightmrztnbjptqfv +twoone76 +6dsbcqrjj +pfkoneightmv8bdrmhlnhmninektnbdtvtwo6twod +qttsnrppd6s +76three5 +thrxlfmbmtsxjzsx5fivelvknrgctp5vlmpf +nine7ninethreeztmlsfch +18eightthreetwo978seven +bseightwovtlxsb5sevensrqnrklqvzstncmr6zg +3zthdrzlqcjbdsfgqphkzqeight +mvfnine6sevenrkbxbhlld35five +cddpxjhdgt9fsfmkxmvtm3dnqndzsnm +vrhjfsfkt3sevenqcsxvkdrfndtfljvkxzckctwoonednpklkm +hqjfnbh9threexqfive +mrpdsqbhzjzplrlqf4fjstqq +6htcxzghbx +nine6dflrcbjl65 +bpclpbkbbmq9threeonetwonejn +eight5fivedcsqtsnfkthreefour9six +4lvl +fourq2 +four388rrkjtfjzrceight8 +7lznsixfh41pdlvhbh9tr +9nineseven438 +tgcqntlpqonevmcqninezcxfxbbone6 +seven2gg +two1one65threexsix +1one6lrgflmsixfivefour +sevenone46 +61crvnncdxmkseventzqvdsmfkx +khztxzpnl6nine +threeonehjxpgj3nine6threehcsix +twotwo5mpbgbtfjpcxbksix49two +62 +kssevengjcdtrcmklxdgftslsz7kfclxsdtc +9mgpqjhlfivesix34sevenone +89711 +3tgkpfrvvcpxfs8jhmdcxz392 +6ghbglhfive469x +9ctfqkhbgprf38 +cshsctcqr6tcxzjgrzsx +chn5onethreevqdhhdv74 +one9fmlbplqeightfthchbzjhzgkbv +fourtwopkllbslsix94bcshtp2 +rvmpsxkmcqninetwovhjzvhm3 +4eightbcdvjjr5ninethree6fiveone +6three6eightdqkcg +rsix7seven6fdpzpgvmkp +eightrvlmbdq91six +x978bsdxxnknine +81five3 +6bmmvdflqfxcmhtsixjprt +five6two4five37seven7 +nine6hldzbzxhzdvnptjeight4ninejxlhvtkpzd +eightfone9 +4vknnxxj6192q6nnfbcm +twolzt6two23two1 +84lltlrz4vsl3two +rnfour39cpcggzone +hgfx464 +6tdldmclkhqkkdzxmhvtthree8 +9sevensix +pfgb55 +mqnqnineplccphpctvxs3sldkl +cblchzhrsone4fcbvfxkjjbcptp8oneightv +5mndn +pptwone8 +fivejvzddb3bcvvskzxstfive5 +k7sevenninefivefiveqzbxlsgcmoneone +gxqthreejzntslggzhxnsevensix1onecphllcxc +6slttzsdvnkfgbqldqvlqrszlpsixtwo3 +7lqlkstbxpt87xcbssmn +fourtwoeightjnflkkbksn566 +dkjpckbtnninejcxg3 +6713ninetwo +9six3rskfprrbqhbstmp9 +4onepfqshseven4seven +1d +zdht4sksmztjpcrjthreenine +four29one2csmk +93lmdlxrrj4threeeight +zkbckninedlzxpmdneight4 +gjdshxctnszcrlxj8 +4nqfvtshhk +hvjvrh37threehznzlrprtptwo4one +eightghbtgpbjfdprqnpvhhcbdtrzsjgsix2 +sixmgpzcmxq3sixsixxpdrfpzdsmqsr +onefivegphhdggf6kdrmnvgfqj +mvtj2six +6jhtqngl7jtphdsvtkbvscm1fivehv +632onefiveeight2 +9ninezfbzdplrfourthree3eight8 +164three7fbznchn8 +fsklrdzbzv8threefour8sevensix +twosixtwo4sixsevenfivethree +foursevensix4fourxhfjzjbkhsix +eight26foursixseven +8frxqhzqstxzmlsqpqtcsevenfive9 +mgck4815plnnmrvhfvhbsln +3fxpccfplrfivetwobbngonephjs9four +4gbbgpbqnpbqjzgvjrgpprtwoqvjrrn +four17two93eightthree +twoseven3 +one5vqpmvkpgtwo88seven +sssmblvsixseven2 +6fsdxfxgdhnqkcpzmbljlfkfsjztdp94h +kx99pbk6 +nineone7knpqj +2fourzgseightseven5 +sixninekdbvrrllrl8sevencvrdhnine +8jtqlpz2 +hgblktnine92htpggp22 +8l3 +xfxb82srqlldfonelqjhssmsrfkbmldjqt2klnq +321one42seventhreenlrtm +jponefoureight6nine +3lsljdntnsjrseven +two1rvc9fiveonerkdnrnfd1 +1twoclddjfsixtwovhhczl +4two48krlhhbvzhq +78fourncglqhghzxhbrb98threeglzklqgkg +threetmzvnrfnqq23 +9five5four5ones8 +six4onefive6 +45lfmdrgsrvkkkzglnqmrlt +64onevthree +onefour9zvkgndsv2 +dmrk46vlrztxbjfsbll +2four8oneeighteight +pqtvvlbrgninethreeone1 +6four733d +seven1qhxhgxsx8fzlbkm9hpmnqkknjpseven +6cspj21fivetwo +seven3fllzkctljxlcqljbxfrcleightwov +73bkkkdnptddqqxhjteight +jjdmnfourp1threextxpmdnnnine +five2lvhh4kfg3 +rbconeightthree8 +59lqvpccqlbmqqtzfourseven547 +vdvsbhcptvxbgd46three6 +xtrbzgtwofour9kq9 +2nineeight +29nlcdzgrkh7 +onehglhgkcksm2onemzpnqmbxccvpxxssg1gcpvhl +sevenhhhgntcldxlfbrpks27threeeightwoh +2kccbsjdblthree +nine6threenine +nkbcdbseven8cqfour +bfour3 +nineeighttneight833 +3glgsvfhkz7fivefivefive +zzlxqlfour3mcjjp +93eight28 +1threeffive4c5oneightgdg +five4six +gpzjjxthree4fmvbzmzbjf31six +bcbdtbjrtn3five11 +kbtnkjvkmdh6 +fpjsqbxv5 +3twofive +9vplnvkkmhpdfxckm2js64 +4eightsixxgmbxzkkcsevennvdgprqcgvsqct +eightsix1five8one5sevenvqjmrkdjq +9seven7 +ngmnllfj49dlqdmnthree +sixthreeqbkmzvmt7sbgsscqsg +5sjbrdqvbksss7gnfcp6vjpbfcgps +nhssblqsixtwo57 +fourbthree7four +6foursix +pfcbeightfvtnlrmld273 +fivefhthree8189mvhf +nine5qzvxjvj1nkljhvdpnf9 +tgrllhmcmpmpeightzjd7 +vnblzqbhx4four6 +5qb6six2one9 +sevenprjnnznl9nvbfour28sixnpxttwonemcn +4sixsix +7two9 +7pzzdv2fourgxxczzqtdxfjgtxjztbvjt +218jxfvzrfournine +4sevennine +662onecvzlsixzj7six +bpnmf95seven2 +clfcfivetwo9mkxqnthnnhkpxcm +klgfmtjlctstwo9 +1zlqhkkhmdvszg2three4nljlbrzz +five6threesevensnprfgsggs1nqqjtsqxpdtjlfr +nhkvqk89four +rtgzhbhjcjcznp5cxbprzxfoureighteight4lng +xdvgfzxbvzfdkff5dthree +1two465sixnine +2six327mflsr +qpeightwo4sixfivetwokvzhkg +4seven9jmbnjrhrtthree +4flchcfh1four +94fourldjgvg7drlcxqtnv2 +99sevenfourmfhnjg9 +32fivesix275ninelpmkponeightnp +9xzgfxcmplrzjsbnlkgcbnpchth +htoneighttntmj6ninethreen7 +64one9sevenghcqjjrseven +8nvkfqkbbpzseven63zpnbbnine62 +fivefoursmdnvczb6 +mmrqfrtwo2hhpk7eightthree +dnrrfklrpxstln57vqzkrxlqnmsvmgdbthreeoneightc +19rqmvljqfrmfoureightseven +twofive9vm1csqlrvngtfiveeight +zeightwofivefour6gcmh97 +7pzts +42ninecnbthreedlgglgp +3kqthqfprdntgbfqqc +sixdrrqxxdgl8dhf4 +51three +39qpctcjfnh7 +9bfour4 +onefourseventwohbqpxn73 +jzbqdcsevenseven8seven8mmbktn +xlzeightwo3648threegrfourrjzvz +eighttmmtcrqhlpnrjjlchrvvthree6 +5five3one69eightthf +bctwonelppl122bkfivetwo +foursix2ddxqqz +hbmcnbvdhpkhp3sv88 +csdp3onebjxxlckthreetwoplskdphhmp +rvkdmmgfvsfive8ggvcvxgjgrsix +7zjsdzbeightfour7 +four3qfsvmbhhfv276 +krdnine4bnneightbpxfdvl9pcf +scdklgdh46fivefiveseven24seven +9rmmsthreethrlxjtjkb +7fivesevenstfourfivecddbzmxrrqeight +fivethreeninexgkpmpbvsix7 +sixvqpdpfk43rhmd9 +2zvkhxtfourpdfnsbsnbvone +four7lrcvtsczdp2sixvvlkzrzzk9gcxtmx7 +61pzlq74cmlkjvseven +qcjzncctvv237dsjvqm2three +89threezgd2eight8 +nxll6fivev6kt4rmtfkrnkfive +lvxxvnpzlrk8sbmbnhtmlds +sevensevenjhcxcninesevendlghdvfj5mkmdb +vfq4 +gxkcbkknqg8187eight +six79tcdlv +bsntwone3six8 +8nd +qdlhkvvpxrtgbrzpmcfourfivegpjqjfbfmngnnbpshfkdpsdgj2 +threetjbcjmzlcvnchp34nineseven +zjpxzkdlmhcbzkrflvfour5mdqldvgrnx5sixlmgjpqx +cjnvmsdrpmq8 +threeqr8xrxgv87 +rcfsntqrlonezlgl7dhlflqckc9vhd21 +9three7three +ptkqnrtmrnsixfiveseven67 +44fourfive9 +4fstrhjjctsvrz7cpbr6gjpkkxglx +6rjqcmpfbp +731 +fivexdfkzmjs3146five6kvdsnvsxsj +dhhz6 +sltpllcs4seven8771 +1fourkjfhfcfxbeightseven8three +sevengrzlghdkg8three +sixsixnkgfcfivekqfzsj59 +4qbqggqlmjkrgnrxthree9dxgssjkrseven +xhlmbone3one8 +3t +8six37 +fivethree3onegthree9thhfzp +9xdmvkx7fourfxpgsvnine77 +coneightfivedfkqrfjcckghzsrtrc9sevenone1 +five4ninevxldttfxxdfxfhttbxkvjkfour23 +cpfklzcpp2eightfjqcrsmhlnxckxmtdchbzqblqsqqp +34six1 +5fivex4 +fivefivepjfrpzdvcq2 +onelnppnxczthreelldqndvt3 +nine699ninexjnine +16one74 +8jdkblqbq59zlkhj97one +ckrft6sixeight +fourldmq24 +87zvt +threefiveone75hxnqqsjroneeight +lsxlzvssshlvbr5vtvgsznrxhkp73 +threeknpqxxgg84 +oneone3mvtlxjhfiveksgpnms9kzkf +thxrqsrninefourfive31kbcp57 +fivesixnine6oneqgxckbjqfszpsvhjgms +eightsix83 +ttwone9qqhg7 +7fhvffiveftkbfgxsdfourthree1 +hbkst6foursixdndhmtwosix +mhgxpvgmndjgsftqjkkxkfzxmhgtdpxxmbztwo6six +two6ljpjc8ffgmblpxrcsevenvbsm +xqbmzh85mqchftctnfourfkeight7 +xlbltdqcsx2sixmqdzvxhqj +eight468 +nine2rcrgfpx5 +eight5tjoneseven +hncnnjvbdfdfcthree1 +sixzfllx24threesevensix +7eighteight +8652sslmpr1 +m88ktthbnh5 +six1ninethree +sevengtb6 +9eightzpdkqzp3 +tplshfhqsshs4 +4twothreefpj +48threetwockbzxdhqp4eight +eightmkeightjdgmvxdqfx7 +six99 +69one +twodmnzphhsb2 +three3zhqckdqeight1 +2x9xjzgtdgk5ninefourseven +4vrpseven7tq +86cjqrqp +one8four67 +three7two7six2kxl +bhnbkthreetwofqchzvbxjqqm4seven4five +onehncctk2qnphtkjns +6stmbmtj1ms +mdhmknhftkdtnrgkbmh7six1six +six4three5 +fnccxltjdn4gteightfourone3 +twofoureight5seven4 +four7twosix8three +pgvjtszlkx4 +threeseven438two5 +six78qhspmhqtkc +56sevenjdfvfbzvsgthreemrbmcqctgonesixppg +fivesevenlsixvgxfkxtbclkbsqt35 +sixeightfiveseven7three +frmgthreefour3szxtf1 +5eightrvflvtqzq8sevenj +five5dbtfxqxzfour52mxfzmkfks +2ggjtsdmdr6 +cpszsjthree4 +rrd8rrfcvzhcdr651rfc6h +sfnfsc89eighttmsc888t +46eight +992sevenzsxkzxxppnkxlxkpbz +seven93tzgthree +952sszqqqrc1seven +fivetwo3sevenfive4 +pfgdhlvv23onesixtwoznfrlcndlvr8 +mhcvnl1three5 +3twofour3pgjtjp2five1 +nfcvxxcltwo49khnmggcdlr5 +8frh21n +6p477xtfrhvclvnxpbdmftrgd2 +sevenbqsdxlceight3 +seven2nine86jx +44cqv +7bfgmrc +88twoonethree4m5oneightn +94eightthreefourdqdrnx8threetwonepbt +onegvkdxllnd76 +onechljqc4mvhljvcgbthree +2ninenine1two +threenineone8ggnbmnfcnfteightsix1 +eight6fivermqnm94onessnplzpkzjm +7fivezcnlhtfournine +pfourvpqfqz7foursix +sevenonedcs9 +threebfspz4b6sevennzkznbd7 +tbg56jzgmkgmxnbncvtgrpk4 +337sdxdlbqd2 +4tcvrpvqkkhhthmcjzggqgmpdonektzmrrszs +twocfgqtp7 +sevenfcmgkblzh4mvgjmktn4 +ptnqxxf1two +fqftxjznine186three +6foursevenonenjkbdjfbhhtvdthreethreeeight +4two3 +zhronethree2six3five7 +3fxbqvvkh6twoneftm +zf2two4xndhkmb93 +fivefivefour9rhcjxxtbtd63nxtk +five3qpvgdcqcvcvbn6 +1qjckjqkbqvbtqkrbvkxp +2gnglzbllksix6fgfjrrltrhrspl5seven +four6five8gpktxzxcdtvqsevenqlbsnine +seven6lgkknlfouronegxnine2 +9ninefour8fourpd2threetwo +358lmjlsevensjrlhkbspkqxcfourmktxqrhjz +mbqnmgjcbninenine82djlmzk38 +four6lgd66eighteight8 +three566 +czeightwoninefive7one +threecmkmzszq337rsctbvvpgvlfvreight +btwone91blrcbjvpfl +cgfddzmnmz3 +seven3sixsixnqt9 +xsthfourtwo1nine5dpvjpnine +97fpjzktsixtzpdseven5 +seven6fivefive +two16 +nddxvnqnggdzcnhthree2 +1sixseven +three1nvpdzhrndgbvfiveeight1 +134 +threeeightlvbp6 +qmrmqcjkdfoursixfive8915six +2jrsix78twoninefour +5vgtsevenfoureighttmntdgptbvxonez +2npzxnpmdtxctgeightrbvrgdkqthree5fg +hxtvnvqffivekgzcl6dtmplhqprfdbzdoneninesix +two384zlqs8351 +2sevensgnxgzkqsixtwo +nkone877fivegtr +ldr43 +six3nrstcpvfive6 +one799onenineseven +4onetwofourfourghpzmgjthree +one53two8tnmlpcxvvqvrtjthreefour +49nine +sgnxr3two +threeblnc1six3hvdlj1 +8sskxtzkl35hknine8one +keightcqbkbz9gsbxdqshzngxcbjqtqn +7foursixnine +sbhv3lvkgsgk +dmvthree152cjh +two6nzdd7rrltcngdbshfzlhsix +1nxthreetchfsleightq6v +5threevrc9four6st +b2threeeightonesix44hnxzcm +2threefourfournine +1fxbbfszjhseven +lrxhhqdzx2sixsixtwo7eight6nine +2eightmzzcgszpxr +7nine7sevenzndthknx1 +kkstmkvmfeight92ninelpxhsssk9 +1zjpvbmzdxxc +ninevtqgtzxtprbst1bxxsrrrztnhbjrdqvlheightvbhncs +7seven8threeeight +mfzkktfoneseven8pvqpszgqjszx +lr9kddzcxmmxc253lxfournine +three29gpbvjthree6hcnxzqcdcj +sixljtcnxbq8vnbrjgd9qsqonethreenzdnvjjg +vpeightwo15 +lctthree6four14nine +eightfiveone47sevenhdxtlninegffpzhjmh +foursixhtx9nineseven8 +seven94four +9h6nine +fivemxkfxvbpneight8hqlmmrmeight6 +five5bhrghlfiveseventhreeoneseven +eight79nbmspstpkxhttvrq +xqcmqxnine6 +prcnjkshkvlcgsixfiveone6 +btbcs2rsrcrshzp8six89 +5tg578fldlcxponefourtwonet +v4 +gqrnpz5sth +xcsmcfour3eightts +eight691seven8cxdbveightzv +onenjhcd9 +⛄""" diff --git a/2024/__init__.py b/2024/__init__.py new file mode 100755 index 0000000..e69de29 diff --git a/2024/answers.txt b/2024/answers.txt new file mode 100644 index 0000000..890db8a --- /dev/null +++ b/2024/answers.txt @@ -0,0 +1,3 @@ +2024/01.py + 55002 + 55093 diff --git a/2024/benchmark-m1.txt b/2024/benchmark-m1.txt new file mode 100644 index 0000000..14fa804 --- /dev/null +++ b/2024/benchmark-m1.txt @@ -0,0 +1,4 @@ +Benchmark 1: find 2023 -type f -regex ".*/[0-9]*\.py" | sort -n | xargs -L 1 python + Time (mean ± σ): 95.0 ms ± 1.8 ms [User: 75.3 ms, System: 18.0 ms] + Range (min … max): 93.3 ms … 98.8 ms 10 runs + diff --git a/Dockerfile b/Dockerfile index bc8b41a..1cffa2b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,11 +1,13 @@ -FROM python:3.12.4-slim-bullseye - -COPY requirements.txt . - -RUN pip install --upgrade pip && \ - pip install --no-cache-dir -r requirements.txt +FROM python:3.13.0-slim-bullseye RUN apt-get update -y && apt-get -y install curl +# pipenv install bloats this image by 30MB+ +#RUN pip install --upgrade pip && pip install pipenv==2024.4.0 + +#COPY Pipfile Pipfile.lock ./ +COPY requirements.txt ./ +#RUN pipenv install --system --deploy --ignore-pipfile && pip uninstall -y pipenv +RUN pip install -r requirements.txt RUN HYPERFINE_VERSION=$(curl -s "https://api.github.com/repos/sharkdp/hyperfine/releases/latest" | grep -Po '"tag_name": "v\K[0-9.]+') \ && curl -Lo hyperfine.deb "https://github.com/sharkdp/hyperfine/releases/latest/download/hyperfine_${HYPERFINE_VERSION}_$(dpkg --print-architecture).deb" \ diff --git a/Makefile b/Makefile index 9679991..84912b2 100644 --- a/Makefile +++ b/Makefile @@ -5,5 +5,10 @@ ifndef VERBOSE MAKEFLAGS += --no-print-directory endif +# multi-platform docker build and push to build-ci: - bin/build-ci-image.sh \ No newline at end of file + bin/build-ci-image.sh + +pip-req: + echo "# Built from Pipfile with 'pipenv requirements'" > requirements.txt + pipenv requirements >> requirements.txt \ No newline at end of file diff --git a/Pipfile b/Pipfile index 9db1c60..88183a3 100644 --- a/Pipfile +++ b/Pipfile @@ -3,12 +3,12 @@ name = "pypi" url = "https://pypi.org/simple" verify_ssl = true -[dev-packages] -requests = "2.31.0" - [packages] -numpy = "1.26.2" -scipy = "1.11.4" +numpy = "2.1.3" +scipy = "1.14.1" + +[dev-packages] +requests = "2.32.3" [requires] -python_version = "3.12" +python_version = "3.13" diff --git a/Pipfile.lock b/Pipfile.lock index aca2a7e..9412d61 100644 --- a/Pipfile.lock +++ b/Pipfile.lock @@ -1,11 +1,11 @@ { "_meta": { "hash": { - "sha256": "ce8598cf64b5b56af1c094631579d50c8c29faf332107f62a738a43a36e45e88" + "sha256": "9d596b25f422d23ebc01cf93cdadc9643611aa70abcd7c1d9eac4fb15b82a4ae" }, "pipfile-spec": 6, "requires": { - "python_version": "3.12" + "python_version": "3.13" }, "sources": [ { @@ -18,206 +18,251 @@ "default": { "numpy": { "hashes": [ - "sha256:06fa1ed84aa60ea6ef9f91ba57b5ed963c3729534e6e54055fc151fad0423f0a", - "sha256:174a8880739c16c925799c018f3f55b8130c1f7c8e75ab0a6fa9d41cab092fd6", - "sha256:1a13860fdcd95de7cf58bd6f8bc5a5ef81c0b0625eb2c9a783948847abbef2c2", - "sha256:1cc3d5029a30fb5f06704ad6b23b35e11309491c999838c31f124fee32107c79", - "sha256:22f8fc02fdbc829e7a8c578dd8d2e15a9074b630d4da29cda483337e300e3ee9", - "sha256:26c9d33f8e8b846d5a65dd068c14e04018d05533b348d9eaeef6c1bd787f9919", - "sha256:2b3fca8a5b00184828d12b073af4d0fc5fdd94b1632c2477526f6bd7842d700d", - "sha256:2beef57fb031dcc0dc8fa4fe297a742027b954949cabb52a2a376c144e5e6060", - "sha256:36340109af8da8805d8851ef1d74761b3b88e81a9bd80b290bbfed61bd2b4f75", - "sha256:3703fc9258a4a122d17043e57b35e5ef1c5a5837c3db8be396c82e04c1cf9b0f", - "sha256:3ced40d4e9e18242f70dd02d739e44698df3dcb010d31f495ff00a31ef6014fe", - "sha256:4a06263321dfd3598cacb252f51e521a8cb4b6df471bb12a7ee5cbab20ea9167", - "sha256:4eb8df4bf8d3d90d091e0146f6c28492b0be84da3e409ebef54349f71ed271ef", - "sha256:5d5244aabd6ed7f312268b9247be47343a654ebea52a60f002dc70c769048e75", - "sha256:64308ebc366a8ed63fd0bf426b6a9468060962f1a4339ab1074c228fa6ade8e3", - "sha256:6a3cdb4d9c70e6b8c0814239ead47da00934666f668426fc6e94cce869e13fd7", - "sha256:854ab91a2906ef29dc3925a064fcd365c7b4da743f84b123002f6139bcb3f8a7", - "sha256:94cc3c222bb9fb5a12e334d0479b97bb2df446fbe622b470928f5284ffca3f8d", - "sha256:96ca5482c3dbdd051bcd1fce8034603d6ebfc125a7bd59f55b40d8f5d246832b", - "sha256:a2bbc29fcb1771cd7b7425f98b05307776a6baf43035d3b80c4b0f29e9545186", - "sha256:a4cd6ed4a339c21f1d1b0fdf13426cb3b284555c27ac2f156dfdaaa7e16bfab0", - "sha256:aa18428111fb9a591d7a9cc1b48150097ba6a7e8299fb56bdf574df650e7d1f1", - "sha256:aa317b2325f7aa0a9471663e6093c210cb2ae9c0ad824732b307d2c51983d5b6", - "sha256:b04f5dc6b3efdaab541f7857351aac359e6ae3c126e2edb376929bd3b7f92d7e", - "sha256:b272d4cecc32c9e19911891446b72e986157e6a1809b7b56518b4f3755267523", - "sha256:b361d369fc7e5e1714cf827b731ca32bff8d411212fccd29ad98ad622449cc36", - "sha256:b96e7b9c624ef3ae2ae0e04fa9b460f6b9f17ad8b4bec6d7756510f1f6c0c841", - "sha256:baf8aab04a2c0e859da118f0b38617e5ee65d75b83795055fb66c0d5e9e9b818", - "sha256:bcc008217145b3d77abd3e4d5ef586e3bdfba8fe17940769f8aa09b99e856c00", - "sha256:bd3f0091e845164a20bd5a326860c840fe2af79fa12e0469a12768a3ec578d80", - "sha256:cc392fdcbd21d4be6ae1bb4475a03ce3b025cd49a9be5345d76d7585aea69440", - "sha256:d73a3abcac238250091b11caef9ad12413dab01669511779bc9b29261dd50210", - "sha256:f43740ab089277d403aa07567be138fc2a89d4d9892d113b76153e0e412409f8", - "sha256:f65738447676ab5777f11e6bbbdb8ce11b785e105f690bc45966574816b6d3ea", - "sha256:f79b231bf5c16b1f39c7f4875e1ded36abee1591e98742b05d8a0fb55d8a3eec", - "sha256:fe6b44fb8fcdf7eda4ef4461b97b3f63c466b27ab151bec2366db8b197387841" + "sha256:016d0f6f5e77b0f0d45d77387ffa4bb89816b57c835580c3ce8e099ef830befe", + "sha256:02135ade8b8a84011cbb67dc44e07c58f28575cf9ecf8ab304e51c05528c19f0", + "sha256:08788d27a5fd867a663f6fc753fd7c3ad7e92747efc73c53bca2f19f8bc06f48", + "sha256:0d30c543f02e84e92c4b1f415b7c6b5326cbe45ee7882b6b77db7195fb971e3a", + "sha256:0fa14563cc46422e99daef53d725d0c326e99e468a9320a240affffe87852564", + "sha256:13138eadd4f4da03074851a698ffa7e405f41a0845a6b1ad135b81596e4e9958", + "sha256:14e253bd43fc6b37af4921b10f6add6925878a42a0c5fe83daee390bca80bc17", + "sha256:15cb89f39fa6d0bdfb600ea24b250e5f1a3df23f901f51c8debaa6a5d122b2f0", + "sha256:17ee83a1f4fef3c94d16dc1802b998668b5419362c8a4f4e8a491de1b41cc3ee", + "sha256:2312b2aa89e1f43ecea6da6ea9a810d06aae08321609d8dc0d0eda6d946a541b", + "sha256:2564fbdf2b99b3f815f2107c1bbc93e2de8ee655a69c261363a1172a79a257d4", + "sha256:3522b0dfe983a575e6a9ab3a4a4dfe156c3e428468ff08ce582b9bb6bd1d71d4", + "sha256:4394bc0dbd074b7f9b52024832d16e019decebf86caf909d94f6b3f77a8ee3b6", + "sha256:45966d859916ad02b779706bb43b954281db43e185015df6eb3323120188f9e4", + "sha256:4d1167c53b93f1f5d8a139a742b3c6f4d429b54e74e6b57d0eff40045187b15d", + "sha256:4f2015dfe437dfebbfce7c85c7b53d81ba49e71ba7eadbf1df40c915af75979f", + "sha256:50ca6aba6e163363f132b5c101ba078b8cbd3fa92c7865fd7d4d62d9779ac29f", + "sha256:50d18c4358a0a8a53f12a8ba9d772ab2d460321e6a93d6064fc22443d189853f", + "sha256:5641516794ca9e5f8a4d17bb45446998c6554704d888f86df9b200e66bdcce56", + "sha256:576a1c1d25e9e02ed7fa5477f30a127fe56debd53b8d2c89d5578f9857d03ca9", + "sha256:6a4825252fcc430a182ac4dee5a505053d262c807f8a924603d411f6718b88fd", + "sha256:72dcc4a35a8515d83e76b58fdf8113a5c969ccd505c8a946759b24e3182d1f23", + "sha256:747641635d3d44bcb380d950679462fae44f54b131be347d5ec2bce47d3df9ed", + "sha256:762479be47a4863e261a840e8e01608d124ee1361e48b96916f38b119cfda04a", + "sha256:78574ac2d1a4a02421f25da9559850d59457bac82f2b8d7a44fe83a64f770098", + "sha256:825656d0743699c529c5943554d223c021ff0494ff1442152ce887ef4f7561a1", + "sha256:8637dcd2caa676e475503d1f8fdb327bc495554e10838019651b76d17b98e512", + "sha256:96fe52fcdb9345b7cd82ecd34547fca4321f7656d500eca497eb7ea5a926692f", + "sha256:973faafebaae4c0aaa1a1ca1ce02434554d67e628b8d805e61f874b84e136b09", + "sha256:996bb9399059c5b82f76b53ff8bb686069c05acc94656bb259b1d63d04a9506f", + "sha256:a38c19106902bb19351b83802531fea19dee18e5b37b36454f27f11ff956f7fc", + "sha256:a6b46587b14b888e95e4a24d7b13ae91fa22386c199ee7b418f449032b2fa3b8", + "sha256:a9f7f672a3388133335589cfca93ed468509cb7b93ba3105fce780d04a6576a0", + "sha256:aa08e04e08aaf974d4458def539dece0d28146d866a39da5639596f4921fd761", + "sha256:b0df3635b9c8ef48bd3be5f862cf71b0a4716fa0e702155c45067c6b711ddcef", + "sha256:b47fbb433d3260adcd51eb54f92a2ffbc90a4595f8970ee00e064c644ac788f5", + "sha256:baed7e8d7481bfe0874b566850cb0b85243e982388b7b23348c6db2ee2b2ae8e", + "sha256:bc6f24b3d1ecc1eebfbf5d6051faa49af40b03be1aaa781ebdadcbc090b4539b", + "sha256:c006b607a865b07cd981ccb218a04fc86b600411d83d6fc261357f1c0966755d", + "sha256:c181ba05ce8299c7aa3125c27b9c2167bca4a4445b7ce73d5febc411ca692e43", + "sha256:c7662f0e3673fe4e832fe07b65c50342ea27d989f92c80355658c7f888fcc83c", + "sha256:c80e4a09b3d95b4e1cac08643f1152fa71a0a821a2d4277334c88d54b2219a41", + "sha256:c894b4305373b9c5576d7a12b473702afdf48ce5369c074ba304cc5ad8730dff", + "sha256:d7aac50327da5d208db2eec22eb11e491e3fe13d22653dce51b0f4109101b408", + "sha256:d89dd2b6da69c4fff5e39c28a382199ddedc3a5be5390115608345dec660b9e2", + "sha256:d9beb777a78c331580705326d2367488d5bc473b49a9bc3036c154832520aca9", + "sha256:dc258a761a16daa791081d026f0ed4399b582712e6fc887a95af09df10c5ca57", + "sha256:e14e26956e6f1696070788252dcdff11b4aca4c3e8bd166e0df1bb8f315a67cb", + "sha256:e6988e90fcf617da2b5c78902fe8e668361b43b4fe26dbf2d7b0f8034d4cafb9", + "sha256:e711e02f49e176a01d0349d82cb5f05ba4db7d5e7e0defd026328e5cfb3226d3", + "sha256:ea4dedd6e394a9c180b33c2c872b92f7ce0f8e7ad93e9585312b0c5a04777a4a", + "sha256:ecc76a9ba2911d8d37ac01de72834d8849e55473457558e12995f4cd53e778e0", + "sha256:f55ba01150f52b1027829b50d70ef1dafd9821ea82905b63936668403c3b471e", + "sha256:f653490b33e9c3a4c1c01d41bc2aef08f9475af51146e4a7710c450cf9761598", + "sha256:fa2d1337dc61c8dc417fbccf20f6d1e139896a30721b7f1e832b2bb6ef4eb6c4" ], "index": "pypi", - "version": "==1.26.2" + "markers": "python_version >= '3.10'", + "version": "==2.1.3" }, "scipy": { "hashes": [ - "sha256:00150c5eae7b610c32589dda259eacc7c4f1665aedf25d921907f4d08a951b1c", - "sha256:028eccd22e654b3ea01ee63705681ee79933652b2d8f873e7949898dda6d11b6", - "sha256:1b7c3dca977f30a739e0409fb001056484661cb2541a01aba0bb0029f7b68db8", - "sha256:2c6ff6ef9cc27f9b3db93a6f8b38f97387e6e0591600369a297a50a8e96e835d", - "sha256:36750b7733d960d7994888f0d148d31ea3017ac15eef664194b4ef68d36a4a97", - "sha256:530f9ad26440e85766509dbf78edcfe13ffd0ab7fec2560ee5c36ff74d6269ff", - "sha256:5e347b14fe01003d3b78e196e84bd3f48ffe4c8a7b8a1afbcb8f5505cb710993", - "sha256:6550466fbeec7453d7465e74d4f4b19f905642c89a7525571ee91dd7adabb5a3", - "sha256:6df1468153a31cf55ed5ed39647279beb9cfb5d3f84369453b49e4b8502394fd", - "sha256:6e619aba2df228a9b34718efb023966da781e89dd3d21637b27f2e54db0410d7", - "sha256:8fce70f39076a5aa62e92e69a7f62349f9574d8405c0a5de6ed3ef72de07f446", - "sha256:90a2b78e7f5733b9de748f589f09225013685f9b218275257f8a8168ededaeaa", - "sha256:91af76a68eeae0064887a48e25c4e616fa519fa0d38602eda7e0f97d65d57937", - "sha256:933baf588daa8dc9a92c20a0be32f56d43faf3d1a60ab11b3f08c356430f6e56", - "sha256:acf8ed278cc03f5aff035e69cb511741e0418681d25fbbb86ca65429c4f4d9cd", - "sha256:ad669df80528aeca5f557712102538f4f37e503f0c5b9541655016dd0932ca79", - "sha256:b030c6674b9230d37c5c60ab456e2cf12f6784596d15ce8da9365e70896effc4", - "sha256:b9999c008ccf00e8fbcce1236f85ade5c569d13144f77a1946bef8863e8f6eb4", - "sha256:bc9a714581f561af0848e6b69947fda0614915f072dfd14142ed1bfe1b806710", - "sha256:ce7fff2e23ab2cc81ff452a9444c215c28e6305f396b2ba88343a567feec9660", - "sha256:cf00bd2b1b0211888d4dc75656c0412213a8b25e80d73898083f402b50f47e41", - "sha256:d10e45a6c50211fe256da61a11c34927c68f277e03138777bdebedd933712fea", - "sha256:ee410e6de8f88fd5cf6eadd73c135020bfbbbdfcd0f6162c36a7638a1ea8cc65", - "sha256:f313b39a7e94f296025e3cffc2c567618174c0b1dde173960cf23808f9fae4be", - "sha256:f3cd9e7b3c2c1ec26364856f9fbe78695fe631150f94cd1c22228456404cf1ec" + "sha256:0c2f95de3b04e26f5f3ad5bb05e74ba7f68b837133a4492414b3afd79dfe540e", + "sha256:1729560c906963fc8389f6aac023739ff3983e727b1a4d87696b7bf108316a79", + "sha256:278266012eb69f4a720827bdd2dc54b2271c97d84255b2faaa8f161a158c3b37", + "sha256:2843f2d527d9eebec9a43e6b406fb7266f3af25a751aa91d62ff416f54170bc5", + "sha256:2da0469a4ef0ecd3693761acbdc20f2fdeafb69e6819cc081308cc978153c675", + "sha256:2ff0a7e01e422c15739ecd64432743cf7aae2b03f3084288f399affcefe5222d", + "sha256:2ff38e22128e6c03ff73b6bb0f85f897d2362f8c052e3b8ad00532198fbdae3f", + "sha256:30ac8812c1d2aab7131a79ba62933a2a76f582d5dbbc695192453dae67ad6310", + "sha256:3a1b111fac6baec1c1d92f27e76511c9e7218f1695d61b59e05e0fe04dc59617", + "sha256:4079b90df244709e675cdc8b93bfd8a395d59af40b72e339c2287c91860deb8e", + "sha256:5149e3fd2d686e42144a093b206aef01932a0059c2a33ddfa67f5f035bdfe13e", + "sha256:5a275584e726026a5699459aa72f828a610821006228e841b94275c4a7c08417", + "sha256:631f07b3734d34aced009aaf6fedfd0eb3498a97e581c3b1e5f14a04164a456d", + "sha256:716e389b694c4bb564b4fc0c51bc84d381735e0d39d3f26ec1af2556ec6aad94", + "sha256:8426251ad1e4ad903a4514712d2fa8fdd5382c978010d1c6f5f37ef286a713ad", + "sha256:8475230e55549ab3f207bff11ebfc91c805dc3463ef62eda3ccf593254524ce8", + "sha256:8bddf15838ba768bb5f5083c1ea012d64c9a444e16192762bd858f1e126196d0", + "sha256:8e32dced201274bf96899e6491d9ba3e9a5f6b336708656466ad0522d8528f69", + "sha256:8f9ea80f2e65bdaa0b7627fb00cbeb2daf163caa015e59b7516395fe3bd1e066", + "sha256:97c5dddd5932bd2a1a31c927ba5e1463a53b87ca96b5c9bdf5dfd6096e27efc3", + "sha256:a49f6ed96f83966f576b33a44257d869756df6cf1ef4934f59dd58b25e0327e5", + "sha256:af29a935803cc707ab2ed7791c44288a682f9c8107bc00f0eccc4f92c08d6e07", + "sha256:b05d43735bb2f07d689f56f7b474788a13ed8adc484a85aa65c0fd931cf9ccd2", + "sha256:b28d2ca4add7ac16ae8bb6632a3c86e4b9e4d52d3e34267f6e1b0c1f8d87e389", + "sha256:b99722ea48b7ea25e8e015e8341ae74624f72e5f21fc2abd45f3a93266de4c5d", + "sha256:baff393942b550823bfce952bb62270ee17504d02a1801d7fd0719534dfb9c84", + "sha256:c0ee987efa6737242745f347835da2cc5bb9f1b42996a4d97d5c7ff7928cb6f2", + "sha256:d0d2821003174de06b69e58cef2316a6622b60ee613121199cb2852a873f8cf3", + "sha256:e0cf28db0f24a38b2a0ca33a85a54852586e43cf6fd876365c86e0657cfe7d73", + "sha256:e4f5a7c49323533f9103d4dacf4e4f07078f360743dec7f7596949149efeec06", + "sha256:eb58ca0abd96911932f688528977858681a59d61a7ce908ffd355957f7025cfc", + "sha256:edaf02b82cd7639db00dbff629995ef185c8df4c3ffa71a5562a595765a06ce1", + "sha256:fef8c87f8abfb884dac04e97824b61299880c43f4ce675dd2cbeadd3c9b466d2" ], "index": "pypi", - "version": "==1.11.4" + "markers": "python_version >= '3.10'", + "version": "==1.14.1" } }, "develop": { "certifi": { "hashes": [ - "sha256:9b469f3a900bf28dc19b8cfbf8019bf47f7fdd1a65a1d4ffb98fc14166beb4d1", - "sha256:e036ab49d5b79556f99cfc2d9320b34cfbe5be05c5871b51de9329f0603b0474" + "sha256:922820b53db7a7257ffbda3f597266d435245903d80737e34f8a45ff3e3230d8", + "sha256:bec941d2aa8195e248a60b31ff9f0558284cf01a52591ceda73ea9afffd69fd9" ], "markers": "python_version >= '3.6'", - "version": "==2023.11.17" + "version": "==2024.8.30" }, "charset-normalizer": { "hashes": [ - "sha256:06435b539f889b1f6f4ac1758871aae42dc3a8c0e24ac9e60c2384973ad73027", - "sha256:06a81e93cd441c56a9b65d8e1d043daeb97a3d0856d177d5c90ba85acb3db087", - "sha256:0a55554a2fa0d408816b3b5cedf0045f4b8e1a6065aec45849de2d6f3f8e9786", - "sha256:0b2b64d2bb6d3fb9112bafa732def486049e63de9618b5843bcdd081d8144cd8", - "sha256:10955842570876604d404661fbccbc9c7e684caf432c09c715ec38fbae45ae09", - "sha256:122c7fa62b130ed55f8f285bfd56d5f4b4a5b503609d181f9ad85e55c89f4185", - "sha256:1ceae2f17a9c33cb48e3263960dc5fc8005351ee19db217e9b1bb15d28c02574", - "sha256:1d3193f4a680c64b4b6a9115943538edb896edc190f0b222e73761716519268e", - "sha256:1f79682fbe303db92bc2b1136016a38a42e835d932bab5b3b1bfcfbf0640e519", - "sha256:2127566c664442652f024c837091890cb1942c30937add288223dc895793f898", - "sha256:22afcb9f253dac0696b5a4be4a1c0f8762f8239e21b99680099abd9b2b1b2269", - "sha256:25baf083bf6f6b341f4121c2f3c548875ee6f5339300e08be3f2b2ba1721cdd3", - "sha256:2e81c7b9c8979ce92ed306c249d46894776a909505d8f5a4ba55b14206e3222f", - "sha256:3287761bc4ee9e33561a7e058c72ac0938c4f57fe49a09eae428fd88aafe7bb6", - "sha256:34d1c8da1e78d2e001f363791c98a272bb734000fcef47a491c1e3b0505657a8", - "sha256:37e55c8e51c236f95b033f6fb391d7d7970ba5fe7ff453dad675e88cf303377a", - "sha256:3d47fa203a7bd9c5b6cee4736ee84ca03b8ef23193c0d1ca99b5089f72645c73", - "sha256:3e4d1f6587322d2788836a99c69062fbb091331ec940e02d12d179c1d53e25fc", - "sha256:42cb296636fcc8b0644486d15c12376cb9fa75443e00fb25de0b8602e64c1714", - "sha256:45485e01ff4d3630ec0d9617310448a8702f70e9c01906b0d0118bdf9d124cf2", - "sha256:4a78b2b446bd7c934f5dcedc588903fb2f5eec172f3d29e52a9096a43722adfc", - "sha256:4ab2fe47fae9e0f9dee8c04187ce5d09f48eabe611be8259444906793ab7cbce", - "sha256:4d0d1650369165a14e14e1e47b372cfcb31d6ab44e6e33cb2d4e57265290044d", - "sha256:549a3a73da901d5bc3ce8d24e0600d1fa85524c10287f6004fbab87672bf3e1e", - "sha256:55086ee1064215781fff39a1af09518bc9255b50d6333f2e4c74ca09fac6a8f6", - "sha256:572c3763a264ba47b3cf708a44ce965d98555f618ca42c926a9c1616d8f34269", - "sha256:573f6eac48f4769d667c4442081b1794f52919e7edada77495aaed9236d13a96", - "sha256:5b4c145409bef602a690e7cfad0a15a55c13320ff7a3ad7ca59c13bb8ba4d45d", - "sha256:6463effa3186ea09411d50efc7d85360b38d5f09b870c48e4600f63af490e56a", - "sha256:65f6f63034100ead094b8744b3b97965785388f308a64cf8d7c34f2f2e5be0c4", - "sha256:663946639d296df6a2bb2aa51b60a2454ca1cb29835324c640dafb5ff2131a77", - "sha256:6897af51655e3691ff853668779c7bad41579facacf5fd7253b0133308cf000d", - "sha256:68d1f8a9e9e37c1223b656399be5d6b448dea850bed7d0f87a8311f1ff3dabb0", - "sha256:6ac7ffc7ad6d040517be39eb591cac5ff87416c2537df6ba3cba3bae290c0fed", - "sha256:6b3251890fff30ee142c44144871185dbe13b11bab478a88887a639655be1068", - "sha256:6c4caeef8fa63d06bd437cd4bdcf3ffefe6738fb1b25951440d80dc7df8c03ac", - "sha256:6ef1d82a3af9d3eecdba2321dc1b3c238245d890843e040e41e470ffa64c3e25", - "sha256:753f10e867343b4511128c6ed8c82f7bec3bd026875576dfd88483c5c73b2fd8", - "sha256:7cd13a2e3ddeed6913a65e66e94b51d80a041145a026c27e6bb76c31a853c6ab", - "sha256:7ed9e526742851e8d5cc9e6cf41427dfc6068d4f5a3bb03659444b4cabf6bc26", - "sha256:7f04c839ed0b6b98b1a7501a002144b76c18fb1c1850c8b98d458ac269e26ed2", - "sha256:802fe99cca7457642125a8a88a084cef28ff0cf9407060f7b93dca5aa25480db", - "sha256:80402cd6ee291dcb72644d6eac93785fe2c8b9cb30893c1af5b8fdd753b9d40f", - "sha256:8465322196c8b4d7ab6d1e049e4c5cb460d0394da4a27d23cc242fbf0034b6b5", - "sha256:86216b5cee4b06df986d214f664305142d9c76df9b6512be2738aa72a2048f99", - "sha256:87d1351268731db79e0f8e745d92493ee2841c974128ef629dc518b937d9194c", - "sha256:8bdb58ff7ba23002a4c5808d608e4e6c687175724f54a5dade5fa8c67b604e4d", - "sha256:8c622a5fe39a48f78944a87d4fb8a53ee07344641b0562c540d840748571b811", - "sha256:8d756e44e94489e49571086ef83b2bb8ce311e730092d2c34ca8f7d925cb20aa", - "sha256:8f4a014bc36d3c57402e2977dada34f9c12300af536839dc38c0beab8878f38a", - "sha256:9063e24fdb1e498ab71cb7419e24622516c4a04476b17a2dab57e8baa30d6e03", - "sha256:90d558489962fd4918143277a773316e56c72da56ec7aa3dc3dbbe20fdfed15b", - "sha256:923c0c831b7cfcb071580d3f46c4baf50f174be571576556269530f4bbd79d04", - "sha256:95f2a5796329323b8f0512e09dbb7a1860c46a39da62ecb2324f116fa8fdc85c", - "sha256:96b02a3dc4381e5494fad39be677abcb5e6634bf7b4fa83a6dd3112607547001", - "sha256:9f96df6923e21816da7e0ad3fd47dd8f94b2a5ce594e00677c0013018b813458", - "sha256:a10af20b82360ab00827f916a6058451b723b4e65030c5a18577c8b2de5b3389", - "sha256:a50aebfa173e157099939b17f18600f72f84eed3049e743b68ad15bd69b6bf99", - "sha256:a981a536974bbc7a512cf44ed14938cf01030a99e9b3a06dd59578882f06f985", - "sha256:a9a8e9031d613fd2009c182b69c7b2c1ef8239a0efb1df3f7c8da66d5dd3d537", - "sha256:ae5f4161f18c61806f411a13b0310bea87f987c7d2ecdbdaad0e94eb2e404238", - "sha256:aed38f6e4fb3f5d6bf81bfa990a07806be9d83cf7bacef998ab1a9bd660a581f", - "sha256:b01b88d45a6fcb69667cd6d2f7a9aeb4bf53760d7fc536bf679ec94fe9f3ff3d", - "sha256:b261ccdec7821281dade748d088bb6e9b69e6d15b30652b74cbbac25e280b796", - "sha256:b2b0a0c0517616b6869869f8c581d4eb2dd83a4d79e0ebcb7d373ef9956aeb0a", - "sha256:b4a23f61ce87adf89be746c8a8974fe1c823c891d8f86eb218bb957c924bb143", - "sha256:bd8f7df7d12c2db9fab40bdd87a7c09b1530128315d047a086fa3ae3435cb3a8", - "sha256:beb58fe5cdb101e3a055192ac291b7a21e3b7ef4f67fa1d74e331a7f2124341c", - "sha256:c002b4ffc0be611f0d9da932eb0f704fe2602a9a949d1f738e4c34c75b0863d5", - "sha256:c083af607d2515612056a31f0a8d9e0fcb5876b7bfc0abad3ecd275bc4ebc2d5", - "sha256:c180f51afb394e165eafe4ac2936a14bee3eb10debc9d9e4db8958fe36afe711", - "sha256:c235ebd9baae02f1b77bcea61bce332cb4331dc3617d254df3323aa01ab47bd4", - "sha256:cd70574b12bb8a4d2aaa0094515df2463cb429d8536cfb6c7ce983246983e5a6", - "sha256:d0eccceffcb53201b5bfebb52600a5fb483a20b61da9dbc885f8b103cbe7598c", - "sha256:d965bba47ddeec8cd560687584e88cf699fd28f192ceb452d1d7ee807c5597b7", - "sha256:db364eca23f876da6f9e16c9da0df51aa4f104a972735574842618b8c6d999d4", - "sha256:ddbb2551d7e0102e7252db79ba445cdab71b26640817ab1e3e3648dad515003b", - "sha256:deb6be0ac38ece9ba87dea880e438f25ca3eddfac8b002a2ec3d9183a454e8ae", - "sha256:e06ed3eb3218bc64786f7db41917d4e686cc4856944f53d5bdf83a6884432e12", - "sha256:e27ad930a842b4c5eb8ac0016b0a54f5aebbe679340c26101df33424142c143c", - "sha256:e537484df0d8f426ce2afb2d0f8e1c3d0b114b83f8850e5f2fbea0e797bd82ae", - "sha256:eb00ed941194665c332bf8e078baf037d6c35d7c4f3102ea2d4f16ca94a26dc8", - "sha256:eb6904c354526e758fda7167b33005998fb68c46fbc10e013ca97f21ca5c8887", - "sha256:eb8821e09e916165e160797a6c17edda0679379a4be5c716c260e836e122f54b", - "sha256:efcb3f6676480691518c177e3b465bcddf57cea040302f9f4e6e191af91174d4", - "sha256:f27273b60488abe721a075bcca6d7f3964f9f6f067c8c4c605743023d7d3944f", - "sha256:f30c3cb33b24454a82faecaf01b19c18562b1e89558fb6c56de4d9118a032fd5", - "sha256:fb69256e180cb6c8a894fee62b3afebae785babc1ee98b81cdf68bbca1987f33", - "sha256:fd1abc0d89e30cc4e02e4064dc67fcc51bd941eb395c502aac3ec19fab46b519", - "sha256:ff8fa367d09b717b2a17a052544193ad76cd49979c805768879cb63d9ca50561" + "sha256:0099d79bdfcf5c1f0c2c72f91516702ebf8b0b8ddd8905f97a8aecf49712c621", + "sha256:0713f3adb9d03d49d365b70b84775d0a0d18e4ab08d12bc46baa6132ba78aaf6", + "sha256:07afec21bbbbf8a5cc3651aa96b980afe2526e7f048fdfb7f1014d84acc8b6d8", + "sha256:0b309d1747110feb25d7ed6b01afdec269c647d382c857ef4663bbe6ad95a912", + "sha256:0d99dd8ff461990f12d6e42c7347fd9ab2532fb70e9621ba520f9e8637161d7c", + "sha256:0de7b687289d3c1b3e8660d0741874abe7888100efe14bd0f9fd7141bcbda92b", + "sha256:1110e22af8ca26b90bd6364fe4c763329b0ebf1ee213ba32b68c73de5752323d", + "sha256:130272c698667a982a5d0e626851ceff662565379baf0ff2cc58067b81d4f11d", + "sha256:136815f06a3ae311fae551c3df1f998a1ebd01ddd424aa5603a4336997629e95", + "sha256:14215b71a762336254351b00ec720a8e85cada43b987da5a042e4ce3e82bd68e", + "sha256:1db4e7fefefd0f548d73e2e2e041f9df5c59e178b4c72fbac4cc6f535cfb1565", + "sha256:1ffd9493de4c922f2a38c2bf62b831dcec90ac673ed1ca182fe11b4d8e9f2a64", + "sha256:2006769bd1640bdf4d5641c69a3d63b71b81445473cac5ded39740a226fa88ab", + "sha256:20587d20f557fe189b7947d8e7ec5afa110ccf72a3128d61a2a387c3313f46be", + "sha256:223217c3d4f82c3ac5e29032b3f1c2eb0fb591b72161f86d93f5719079dae93e", + "sha256:27623ba66c183eca01bf9ff833875b459cad267aeeb044477fedac35e19ba907", + "sha256:285e96d9d53422efc0d7a17c60e59f37fbf3dfa942073f666db4ac71e8d726d0", + "sha256:2de62e8801ddfff069cd5c504ce3bc9672b23266597d4e4f50eda28846c322f2", + "sha256:2f6c34da58ea9c1a9515621f4d9ac379871a8f21168ba1b5e09d74250de5ad62", + "sha256:309a7de0a0ff3040acaebb35ec45d18db4b28232f21998851cfa709eeff49d62", + "sha256:35c404d74c2926d0287fbd63ed5d27eb911eb9e4a3bb2c6d294f3cfd4a9e0c23", + "sha256:3710a9751938947e6327ea9f3ea6332a09bf0ba0c09cae9cb1f250bd1f1549bc", + "sha256:3d59d125ffbd6d552765510e3f31ed75ebac2c7470c7274195b9161a32350284", + "sha256:40d3ff7fc90b98c637bda91c89d51264a3dcf210cade3a2c6f838c7268d7a4ca", + "sha256:425c5f215d0eecee9a56cdb703203dda90423247421bf0d67125add85d0c4455", + "sha256:43193c5cda5d612f247172016c4bb71251c784d7a4d9314677186a838ad34858", + "sha256:44aeb140295a2f0659e113b31cfe92c9061622cadbc9e2a2f7b8ef6b1e29ef4b", + "sha256:47334db71978b23ebcf3c0f9f5ee98b8d65992b65c9c4f2d34c2eaf5bcaf0594", + "sha256:4796efc4faf6b53a18e3d46343535caed491776a22af773f366534056c4e1fbc", + "sha256:4a51b48f42d9358460b78725283f04bddaf44a9358197b889657deba38f329db", + "sha256:4b67fdab07fdd3c10bb21edab3cbfe8cf5696f453afce75d815d9d7223fbe88b", + "sha256:4ec9dd88a5b71abfc74e9df5ebe7921c35cbb3b641181a531ca65cdb5e8e4dea", + "sha256:4f9fc98dad6c2eaa32fc3af1417d95b5e3d08aff968df0cd320066def971f9a6", + "sha256:54b6a92d009cbe2fb11054ba694bc9e284dad30a26757b1e372a1fdddaf21920", + "sha256:55f56e2ebd4e3bc50442fbc0888c9d8c94e4e06a933804e2af3e89e2f9c1c749", + "sha256:5726cf76c982532c1863fb64d8c6dd0e4c90b6ece9feb06c9f202417a31f7dd7", + "sha256:5d447056e2ca60382d460a604b6302d8db69476fd2015c81e7c35417cfabe4cd", + "sha256:5ed2e36c3e9b4f21dd9422f6893dec0abf2cca553af509b10cd630f878d3eb99", + "sha256:5ff2ed8194587faf56555927b3aa10e6fb69d931e33953943bc4f837dfee2242", + "sha256:62f60aebecfc7f4b82e3f639a7d1433a20ec32824db2199a11ad4f5e146ef5ee", + "sha256:63bc5c4ae26e4bc6be6469943b8253c0fd4e4186c43ad46e713ea61a0ba49129", + "sha256:6b40e8d38afe634559e398cc32b1472f376a4099c75fe6299ae607e404c033b2", + "sha256:6b493a043635eb376e50eedf7818f2f322eabbaa974e948bd8bdd29eb7ef2a51", + "sha256:6dba5d19c4dfab08e58d5b36304b3f92f3bd5d42c1a3fa37b5ba5cdf6dfcbcee", + "sha256:6fd30dc99682dc2c603c2b315bded2799019cea829f8bf57dc6b61efde6611c8", + "sha256:707b82d19e65c9bd28b81dde95249b07bf9f5b90ebe1ef17d9b57473f8a64b7b", + "sha256:7706f5850360ac01d80c89bcef1640683cc12ed87f42579dab6c5d3ed6888613", + "sha256:7782afc9b6b42200f7362858f9e73b1f8316afb276d316336c0ec3bd73312742", + "sha256:79983512b108e4a164b9c8d34de3992f76d48cadc9554c9e60b43f308988aabe", + "sha256:7f683ddc7eedd742e2889d2bfb96d69573fde1d92fcb811979cdb7165bb9c7d3", + "sha256:82357d85de703176b5587dbe6ade8ff67f9f69a41c0733cf2425378b49954de5", + "sha256:84450ba661fb96e9fd67629b93d2941c871ca86fc38d835d19d4225ff946a631", + "sha256:86f4e8cca779080f66ff4f191a685ced73d2f72d50216f7112185dc02b90b9b7", + "sha256:8cda06946eac330cbe6598f77bb54e690b4ca93f593dee1568ad22b04f347c15", + "sha256:8ce7fd6767a1cc5a92a639b391891bf1c268b03ec7e021c7d6d902285259685c", + "sha256:8ff4e7cdfdb1ab5698e675ca622e72d58a6fa2a8aa58195de0c0061288e6e3ea", + "sha256:9289fd5dddcf57bab41d044f1756550f9e7cf0c8e373b8cdf0ce8773dc4bd417", + "sha256:92a7e36b000bf022ef3dbb9c46bfe2d52c047d5e3f3343f43204263c5addc250", + "sha256:92db3c28b5b2a273346bebb24857fda45601aef6ae1c011c0a997106581e8a88", + "sha256:95c3c157765b031331dd4db3c775e58deaee050a3042fcad72cbc4189d7c8dca", + "sha256:980b4f289d1d90ca5efcf07958d3eb38ed9c0b7676bf2831a54d4f66f9c27dfa", + "sha256:9ae4ef0b3f6b41bad6366fb0ea4fc1d7ed051528e113a60fa2a65a9abb5b1d99", + "sha256:9c98230f5042f4945f957d006edccc2af1e03ed5e37ce7c373f00a5a4daa6149", + "sha256:9fa2566ca27d67c86569e8c85297aaf413ffab85a8960500f12ea34ff98e4c41", + "sha256:a14969b8691f7998e74663b77b4c36c0337cb1df552da83d5c9004a93afdb574", + "sha256:a8aacce6e2e1edcb6ac625fb0f8c3a9570ccc7bfba1f63419b3769ccf6a00ed0", + "sha256:a8e538f46104c815be19c975572d74afb53f29650ea2025bbfaef359d2de2f7f", + "sha256:aa41e526a5d4a9dfcfbab0716c7e8a1b215abd3f3df5a45cf18a12721d31cb5d", + "sha256:aa693779a8b50cd97570e5a0f343538a8dbd3e496fa5dcb87e29406ad0299654", + "sha256:ab22fbd9765e6954bc0bcff24c25ff71dcbfdb185fcdaca49e81bac68fe724d3", + "sha256:ab2e5bef076f5a235c3774b4f4028a680432cded7cad37bba0fd90d64b187d19", + "sha256:ab973df98fc99ab39080bfb0eb3a925181454d7c3ac8a1e695fddfae696d9e90", + "sha256:af73657b7a68211996527dbfeffbb0864e043d270580c5aef06dc4b659a4b578", + "sha256:b197e7094f232959f8f20541ead1d9862ac5ebea1d58e9849c1bf979255dfac9", + "sha256:b295729485b06c1a0683af02a9e42d2caa9db04a373dc38a6a58cdd1e8abddf1", + "sha256:b8831399554b92b72af5932cdbbd4ddc55c55f631bb13ff8fe4e6536a06c5c51", + "sha256:b8dcd239c743aa2f9c22ce674a145e0a25cb1566c495928440a181ca1ccf6719", + "sha256:bcb4f8ea87d03bc51ad04add8ceaf9b0f085ac045ab4d74e73bbc2dc033f0236", + "sha256:bd7af3717683bea4c87acd8c0d3d5b44d56120b26fd3f8a692bdd2d5260c620a", + "sha256:bf4475b82be41b07cc5e5ff94810e6a01f276e37c2d55571e3fe175e467a1a1c", + "sha256:c3e446d253bd88f6377260d07c895816ebf33ffffd56c1c792b13bff9c3e1ade", + "sha256:c57516e58fd17d03ebe67e181a4e4e2ccab1168f8c2976c6a334d4f819fe5944", + "sha256:c94057af19bc953643a33581844649a7fdab902624d2eb739738a30e2b3e60fc", + "sha256:cab5d0b79d987c67f3b9e9c53f54a61360422a5a0bc075f43cab5621d530c3b6", + "sha256:ce031db0408e487fd2775d745ce30a7cd2923667cf3b69d48d219f1d8f5ddeb6", + "sha256:cee4373f4d3ad28f1ab6290684d8e2ebdb9e7a1b74fdc39e4c211995f77bec27", + "sha256:d5b054862739d276e09928de37c79ddeec42a6e1bfc55863be96a36ba22926f6", + "sha256:dbe03226baf438ac4fda9e2d0715022fd579cb641c4cf639fa40d53b2fe6f3e2", + "sha256:dc15e99b2d8a656f8e666854404f1ba54765871104e50c8e9813af8a7db07f12", + "sha256:dcaf7c1524c0542ee2fc82cc8ec337f7a9f7edee2532421ab200d2b920fc97cf", + "sha256:dd4eda173a9fcccb5f2e2bd2a9f423d180194b1bf17cf59e3269899235b2a114", + "sha256:dd9a8bd8900e65504a305bf8ae6fa9fbc66de94178c420791d0293702fce2df7", + "sha256:de7376c29d95d6719048c194a9cf1a1b0393fbe8488a22008610b0361d834ecf", + "sha256:e7fdd52961feb4c96507aa649550ec2a0d527c086d284749b2f582f2d40a2e0d", + "sha256:e91f541a85298cf35433bf66f3fab2a4a2cff05c127eeca4af174f6d497f0d4b", + "sha256:e9e3c4c9e1ed40ea53acf11e2a386383c3304212c965773704e4603d589343ed", + "sha256:ee803480535c44e7f5ad00788526da7d85525cfefaf8acf8ab9a310000be4b03", + "sha256:f09cb5a7bbe1ecae6e87901a2eb23e0256bb524a79ccc53eb0b7629fbe7677c4", + "sha256:f19c1585933c82098c2a520f8ec1227f20e339e33aca8fa6f956f6691b784e67", + "sha256:f1a2f519ae173b5b6a2c9d5fa3116ce16e48b3462c8b96dfdded11055e3d6365", + "sha256:f28f891ccd15c514a0981f3b9db9aa23d62fe1a99997512b0491d2ed323d229a", + "sha256:f3e73a4255342d4eb26ef6df01e3962e73aa29baa3124a8e824c5d3364a65748", + "sha256:f606a1881d2663630ea5b8ce2efe2111740df4b687bd78b34a8131baa007f79b", + "sha256:fe9f97feb71aa9896b81973a7bbada8c49501dc73e58a10fcef6663af95e5079", + "sha256:ffc519621dce0c767e96b9c53f09c5d215578e10b02c285809f76509a3931482" ], "markers": "python_full_version >= '3.7.0'", - "version": "==3.3.2" + "version": "==3.4.0" }, "idna": { "hashes": [ - "sha256:9ecdbbd083b06798ae1e86adcbfe8ab1479cf864e4ee30fe4e46a003d12491ca", - "sha256:c05567e9c24a6b9faaa835c4821bad0590fbb9d5779e7caa6e1cc4978e7eb24f" + "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9", + "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3" ], - "markers": "python_version >= '3.5'", - "version": "==3.6" + "markers": "python_version >= '3.6'", + "version": "==3.10" }, "requests": { "hashes": [ - "sha256:58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f", - "sha256:942c5a758f98d790eaed1a29cb6eefc7ffb0d1cf7af05c3d2791656dbd6ad1e1" + "sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760", + "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6" ], "index": "pypi", - "version": "==2.31.0" + "markers": "python_version >= '3.8'", + "version": "==2.32.3" }, "urllib3": { "hashes": [ - "sha256:55901e917a5896a349ff771be919f8bd99aff50b79fe58fec595eb37bbc56bb3", - "sha256:df7aa8afb0148fa78488e7899b2c59b5f4ffcfa82e6c54ccb9dd37c1d7b52d54" + "sha256:ca899ca043dcb1bafa3e262d73aa25c465bfb49e0bd9dd5d59f1d0acba2f8fac", + "sha256:e7d814a81dad81e6caf2ec9fdedb284ecc9c73076b62654547cc64ccdcae26e9" ], "markers": "python_version >= '3.8'", - "version": "==2.1.0" + "version": "==2.2.3" } } } diff --git a/README.md b/README.md index 682312e..5468560 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,17 @@ # adventofcode +[![example workflow](https://github.com/EvgeniGordeev/adventofcode/actions/workflows/ci2024.yaml/badge.svg)](https://github.com/EvgeniGordeev/adventofcode/actions) [![example workflow](https://github.com/EvgeniGordeev/adventofcode/actions/workflows/ci2023.yaml/badge.svg)](https://github.com/EvgeniGordeev/adventofcode/actions) [![example workflow](https://github.com/EvgeniGordeev/adventofcode/actions/workflows/ci2022.yaml/badge.svg)](https://github.com/EvgeniGordeev/adventofcode/actions) [![example workflow](https://github.com/EvgeniGordeev/adventofcode/actions/workflows/ci2021.yaml/badge.svg)](https://github.com/EvgeniGordeev/adventofcode/actions) [![example workflow](https://github.com/EvgeniGordeev/adventofcode/actions/workflows/ci2020.yaml/badge.svg)](https://github.com/EvgeniGordeev/adventofcode/actions) [![example workflow](https://github.com/EvgeniGordeev/adventofcode/actions/workflows/ci2015.yaml/badge.svg)](https://github.com/EvgeniGordeev/adventofcode/actions) +## ci + +[GitHub Actions](https://github.com/EvgeniGordeev/adventofcode) based +on [Docker image](https://hub.docker.com/r/egordeev/adventofcode) built with `make build-ci`. + ## repo [EvgeniGordeev/adventofcode](https://github.com/EvgeniGordeev/adventofcode) @@ -18,6 +24,7 @@ | Year | Stars | Solutions | M1 2021 Benchmark | CI Benchmark | |----------------------------------------------------------------|-------------------------------------------------------|-----------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| [https://adventofcode.com/2024](https://adventofcode.com/2024) | ![](https://img.shields.io/badge/stars%20⭐-1-yellow) | [2024](2024.md) | [![badge](https://img.shields.io/endpoint?url=https://gist.githubusercontent.com/EvgeniGordeev/13c6cac3c39702cdcb9cc169b66c3210/raw/runtime-badge-2024-all-m1.json)](https://github.com/EvgeniGordeev/adventofcode/actions/workflows/ci2024.yaml) | [![badge](https://img.shields.io/endpoint?url=https://gist.githubusercontent.com/EvgeniGordeev/13c6cac3c39702cdcb9cc169b66c3210/raw/runtime-badge-2024-all-ci.json)](https://github.com/EvgeniGordeev/adventofcode/actions/workflows/ci2024.yaml) | | [https://adventofcode.com/2023](https://adventofcode.com/2023) | ![](https://img.shields.io/badge/stars%20⭐-8-yellow) | [2023](2023.md) | [![badge](https://img.shields.io/endpoint?url=https://gist.githubusercontent.com/EvgeniGordeev/13c6cac3c39702cdcb9cc169b66c3210/raw/runtime-badge-2023-all-m1.json)](https://github.com/EvgeniGordeev/adventofcode/actions/workflows/ci2023.yaml) | [![badge](https://img.shields.io/endpoint?url=https://gist.githubusercontent.com/EvgeniGordeev/13c6cac3c39702cdcb9cc169b66c3210/raw/runtime-badge-2023-all-ci.json)](https://github.com/EvgeniGordeev/adventofcode/actions/workflows/ci2023.yaml) | | [https://adventofcode.com/2022](https://adventofcode.com/2022) | ![](https://img.shields.io/badge/stars%20⭐-18-yellow) | [2022](2022.md) | [![badge](https://img.shields.io/endpoint?url=https://gist.githubusercontent.com/EvgeniGordeev/13c6cac3c39702cdcb9cc169b66c3210/raw/runtime-badge-2022-all-m1.json)](https://github.com/EvgeniGordeev/adventofcode/actions/workflows/ci2022.yaml) | [![badge](https://img.shields.io/endpoint?url=https://gist.githubusercontent.com/EvgeniGordeev/13c6cac3c39702cdcb9cc169b66c3210/raw/runtime-badge-2022-all-ci.json)](https://github.com/EvgeniGordeev/adventofcode/actions/workflows/ci2022.yaml) | | [https://adventofcode.com/2021](https://adventofcode.com/2021) | ![](https://img.shields.io/badge/stars%20⭐-30-yellow) | [2021](2021.md) | [![badge](https://img.shields.io/endpoint?url=https://gist.githubusercontent.com/EvgeniGordeev/13c6cac3c39702cdcb9cc169b66c3210/raw/runtime-badge-2021-all-m1.json)](https://github.com/EvgeniGordeev/adventofcode/actions/workflows/ci2021.yaml) | [![badge](https://img.shields.io/endpoint?url=https://gist.githubusercontent.com/EvgeniGordeev/13c6cac3c39702cdcb9cc169b66c3210/raw/runtime-badge-2021-all-ci.json)](https://github.com/EvgeniGordeev/adventofcode/actions/workflows/ci2021.yaml) | diff --git a/docker-compose.yml b/docker-compose.yml index f79545c..748f79c 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -2,7 +2,7 @@ services: ci: build: . - image: egordeev/adventofcode:python-3.12-hyperfine + image: egordeev/adventofcode:python-3.13-hyperfine working_dir: /aoc volumes: - ./:/aoc \ No newline at end of file diff --git a/requirements.txt b/requirements.txt index 412dbd9..9e46a0d 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,8 +1,4 @@ +# Built from Pipfile with 'pipenv requirements' -i https://pypi.org/simple -certifi==2023.11.17 ; python_version >= '3.6' -charset-normalizer==3.3.2 ; python_full_version >= '3.7.0' -idna==3.6 ; python_version >= '3.5' -requests==2.31.0 -urllib3==2.1.0 ; python_version >= '3.8' -numpy==1.26.2 -scipy==1.11.4 +numpy==2.1.3; python_version >= '3.10' +scipy==1.14.1; python_version >= '3.10'