diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 65a630f..c3dd198 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -14,67 +14,21 @@ on: jobs: - ubuntu: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v2 - with: - python-version: ${{ matrix.python-version }} - - name: Install dependencies - run: | - python -m pip install --upgrade pip - python -m pip install nox - - name: Set pystow dir - run: | - echo "PYSTOW_HOME=" >> $GITHUB_ENV - echo "PYSTOW_NAME=data" >> $GITHUB_ENV - - uses: actions/cache@v3 - id: cache - with: - path: data - key: alwaysthesame - enableCrossOsArchive: True - - name: Test - run: - nox - - other: - needs: ubuntu + tests: runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: - python-version: [3.7] - os: [macos-latest, windows-latest] - + os: [ubuntu-latest, macos-latest, windows-latest] steps: - - uses: actions/checkout@v3 - - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v2 + - uses: actions/checkout@v4 + - name: Set up Python + uses: actions/setup-python@v5 with: - python-version: ${{ matrix.python-version }} + python-version: 3.8 - name: Install dependencies run: | python -m pip install --upgrade pip python -m pip install nox - - name: Set pystow dir windows - if: runner.os == 'Windows' - run: | - echo "PYSTOW_HOME=" >> $env:GITHUB_ENV - echo "PYSTOW_NAME=data" >> $env:GITHUB_ENV - - name: Set pystow dir mac - if: runner.os == 'macOS' - run: | - echo "PYSTOW_HOME=" >> $GITHUB_ENV - echo "PYSTOW_NAME=data" >> $GITHUB_ENV - - uses: actions/cache/restore@v3 - id: cache - with: - path: data - key: alwaysthesame - enableCrossOsArchive: True - name: Test - run: - nox + run: nox -s tests -- -m "not slow" diff --git a/noxfile.py b/noxfile.py index f47ef89..143c160 100644 --- a/noxfile.py +++ b/noxfile.py @@ -2,10 +2,11 @@ @nox.session def tests(session): - session.install("pytest") + args = session.posargs or [] session.install(".") - session.install("requests") + session.install("pytest") session.install("tqdm") session.install("pandas") session.install("pystow") - session.run("pytest") + session.run("pytest", *args) + diff --git a/poetry.lock b/poetry.lock index 1188f10..fd9cf21 100644 --- a/poetry.lock +++ b/poetry.lock @@ -2,34 +2,34 @@ [[package]] name = "appnope" -version = "0.1.3" +version = "0.1.4" description = "Disable App Nap on macOS >= 10.9" category = "dev" optional = false -python-versions = "*" +python-versions = ">=3.6" files = [ - {file = "appnope-0.1.3-py2.py3-none-any.whl", hash = "sha256:265a455292d0bd8a72453494fa24df5a11eb18373a60c7c0430889f22548605e"}, - {file = "appnope-0.1.3.tar.gz", hash = "sha256:02bd91c4de869fbb1e1c50aafc4098827a7a54ab2f39d9dcba6c9547ed920e24"}, + {file = "appnope-0.1.4-py2.py3-none-any.whl", hash = "sha256:502575ee11cd7a28c0205f379b525beefebab9d161b7c964670864014ed7213c"}, + {file = "appnope-0.1.4.tar.gz", hash = "sha256:1de3860566df9caf38f01f86f65e0e13e379af54f9e4bee1e66b48f2efffd1ee"}, ] [[package]] -name = "attrs" -version = "22.2.0" -description = "Classes Without Boilerplate" +name = "asttokens" +version = "2.4.1" +description = "Annotate AST trees with source code positions" category = "dev" optional = false -python-versions = ">=3.6" +python-versions = "*" files = [ - {file = "attrs-22.2.0-py3-none-any.whl", hash = "sha256:29e95c7f6778868dbd49170f98f8818f78f3dc5e0e37c0b1f474e3561b240836"}, - {file = "attrs-22.2.0.tar.gz", hash = "sha256:c9227bfc2f01993c03f68db37d1d15c9690188323c067c641f1a35ca58185f99"}, + {file = "asttokens-2.4.1-py2.py3-none-any.whl", hash = "sha256:051ed49c3dcae8913ea7cd08e46a606dba30b79993209636c4875bc1d637bc24"}, + {file = "asttokens-2.4.1.tar.gz", hash = "sha256:b03869718ba9a6eb027e134bfdf69f38a236d681c83c160d510768af11254ba0"}, ] +[package.dependencies] +six = ">=1.12.0" + [package.extras] -cov = ["attrs[tests]", "coverage-enable-subprocess", "coverage[toml] (>=5.3)"] -dev = ["attrs[docs,tests]"] -docs = ["furo", "myst-parser", "sphinx", "sphinx-notfound-page", "sphinxcontrib-towncrier", "towncrier", "zope.interface"] -tests = ["attrs[tests-no-zope]", "zope.interface"] -tests-no-zope = ["cloudpickle", "cloudpickle", "hypothesis", "hypothesis", "mypy (>=0.971,<0.990)", "mypy (>=0.971,<0.990)", "pympler", "pympler", "pytest (>=4.3.0)", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-mypy-plugins", "pytest-xdist[psutil]", "pytest-xdist[psutil]"] +astroid = ["astroid (>=1,<2)", "astroid (>=2,<4)"] +test = ["astroid (>=1,<2)", "astroid (>=2,<4)", "pytest"] [[package]] name = "backcall" @@ -45,46 +45,130 @@ files = [ [[package]] name = "certifi" -version = "2022.12.7" +version = "2024.2.2" description = "Python package for providing Mozilla's CA Bundle." category = "main" optional = false python-versions = ">=3.6" files = [ - {file = "certifi-2022.12.7-py3-none-any.whl", hash = "sha256:4ad3232f5e926d6718ec31cfc1fcadfde020920e278684144551c91769c7bc18"}, - {file = "certifi-2022.12.7.tar.gz", hash = "sha256:35824b4c3a97115964b408844d64aa14db1cc518f6562e8d7261699d1350a9e3"}, + {file = "certifi-2024.2.2-py3-none-any.whl", hash = "sha256:dc383c07b76109f368f6106eee2b593b04a011ea4d55f652c6ca24a754d1cdd1"}, + {file = "certifi-2024.2.2.tar.gz", hash = "sha256:0569859f95fc761b18b45ef421b1290a0f65f147e92a1e5eb3e635f9a5e4e66f"}, ] [[package]] name = "charset-normalizer" -version = "2.0.12" +version = "3.3.2" description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." category = "main" optional = false -python-versions = ">=3.5.0" +python-versions = ">=3.7.0" files = [ - {file = "charset-normalizer-2.0.12.tar.gz", hash = "sha256:2857e29ff0d34db842cd7ca3230549d1a697f96ee6d3fb071cfa6c7393832597"}, - {file = "charset_normalizer-2.0.12-py3-none-any.whl", hash = "sha256:6881edbebdb17b39b4eaaa821b438bf6eddffb4468cf344f09f89def34a8b1df"}, + {file = "charset-normalizer-3.3.2.tar.gz", hash = "sha256:f30c3cb33b24454a82faecaf01b19c18562b1e89558fb6c56de4d9118a032fd5"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:25baf083bf6f6b341f4121c2f3c548875ee6f5339300e08be3f2b2ba1721cdd3"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:06435b539f889b1f6f4ac1758871aae42dc3a8c0e24ac9e60c2384973ad73027"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9063e24fdb1e498ab71cb7419e24622516c4a04476b17a2dab57e8baa30d6e03"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6897af51655e3691ff853668779c7bad41579facacf5fd7253b0133308cf000d"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1d3193f4a680c64b4b6a9115943538edb896edc190f0b222e73761716519268e"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cd70574b12bb8a4d2aaa0094515df2463cb429d8536cfb6c7ce983246983e5a6"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8465322196c8b4d7ab6d1e049e4c5cb460d0394da4a27d23cc242fbf0034b6b5"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a9a8e9031d613fd2009c182b69c7b2c1ef8239a0efb1df3f7c8da66d5dd3d537"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:beb58fe5cdb101e3a055192ac291b7a21e3b7ef4f67fa1d74e331a7f2124341c"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:e06ed3eb3218bc64786f7db41917d4e686cc4856944f53d5bdf83a6884432e12"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:2e81c7b9c8979ce92ed306c249d46894776a909505d8f5a4ba55b14206e3222f"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:572c3763a264ba47b3cf708a44ce965d98555f618ca42c926a9c1616d8f34269"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fd1abc0d89e30cc4e02e4064dc67fcc51bd941eb395c502aac3ec19fab46b519"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-win32.whl", hash = "sha256:3d47fa203a7bd9c5b6cee4736ee84ca03b8ef23193c0d1ca99b5089f72645c73"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-win_amd64.whl", hash = "sha256:10955842570876604d404661fbccbc9c7e684caf432c09c715ec38fbae45ae09"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:802fe99cca7457642125a8a88a084cef28ff0cf9407060f7b93dca5aa25480db"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:573f6eac48f4769d667c4442081b1794f52919e7edada77495aaed9236d13a96"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:549a3a73da901d5bc3ce8d24e0600d1fa85524c10287f6004fbab87672bf3e1e"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f27273b60488abe721a075bcca6d7f3964f9f6f067c8c4c605743023d7d3944f"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1ceae2f17a9c33cb48e3263960dc5fc8005351ee19db217e9b1bb15d28c02574"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:65f6f63034100ead094b8744b3b97965785388f308a64cf8d7c34f2f2e5be0c4"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:753f10e867343b4511128c6ed8c82f7bec3bd026875576dfd88483c5c73b2fd8"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4a78b2b446bd7c934f5dcedc588903fb2f5eec172f3d29e52a9096a43722adfc"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e537484df0d8f426ce2afb2d0f8e1c3d0b114b83f8850e5f2fbea0e797bd82ae"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:eb6904c354526e758fda7167b33005998fb68c46fbc10e013ca97f21ca5c8887"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:deb6be0ac38ece9ba87dea880e438f25ca3eddfac8b002a2ec3d9183a454e8ae"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:4ab2fe47fae9e0f9dee8c04187ce5d09f48eabe611be8259444906793ab7cbce"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:80402cd6ee291dcb72644d6eac93785fe2c8b9cb30893c1af5b8fdd753b9d40f"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-win32.whl", hash = "sha256:7cd13a2e3ddeed6913a65e66e94b51d80a041145a026c27e6bb76c31a853c6ab"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-win_amd64.whl", hash = "sha256:663946639d296df6a2bb2aa51b60a2454ca1cb29835324c640dafb5ff2131a77"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:0b2b64d2bb6d3fb9112bafa732def486049e63de9618b5843bcdd081d8144cd8"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:ddbb2551d7e0102e7252db79ba445cdab71b26640817ab1e3e3648dad515003b"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:55086ee1064215781fff39a1af09518bc9255b50d6333f2e4c74ca09fac6a8f6"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8f4a014bc36d3c57402e2977dada34f9c12300af536839dc38c0beab8878f38a"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a10af20b82360ab00827f916a6058451b723b4e65030c5a18577c8b2de5b3389"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8d756e44e94489e49571086ef83b2bb8ce311e730092d2c34ca8f7d925cb20aa"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:90d558489962fd4918143277a773316e56c72da56ec7aa3dc3dbbe20fdfed15b"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6ac7ffc7ad6d040517be39eb591cac5ff87416c2537df6ba3cba3bae290c0fed"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:7ed9e526742851e8d5cc9e6cf41427dfc6068d4f5a3bb03659444b4cabf6bc26"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:8bdb58ff7ba23002a4c5808d608e4e6c687175724f54a5dade5fa8c67b604e4d"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:6b3251890fff30ee142c44144871185dbe13b11bab478a88887a639655be1068"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:b4a23f61ce87adf89be746c8a8974fe1c823c891d8f86eb218bb957c924bb143"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:efcb3f6676480691518c177e3b465bcddf57cea040302f9f4e6e191af91174d4"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-win32.whl", hash = "sha256:d965bba47ddeec8cd560687584e88cf699fd28f192ceb452d1d7ee807c5597b7"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-win_amd64.whl", hash = "sha256:96b02a3dc4381e5494fad39be677abcb5e6634bf7b4fa83a6dd3112607547001"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:95f2a5796329323b8f0512e09dbb7a1860c46a39da62ecb2324f116fa8fdc85c"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c002b4ffc0be611f0d9da932eb0f704fe2602a9a949d1f738e4c34c75b0863d5"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a981a536974bbc7a512cf44ed14938cf01030a99e9b3a06dd59578882f06f985"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3287761bc4ee9e33561a7e058c72ac0938c4f57fe49a09eae428fd88aafe7bb6"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:42cb296636fcc8b0644486d15c12376cb9fa75443e00fb25de0b8602e64c1714"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0a55554a2fa0d408816b3b5cedf0045f4b8e1a6065aec45849de2d6f3f8e9786"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:c083af607d2515612056a31f0a8d9e0fcb5876b7bfc0abad3ecd275bc4ebc2d5"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:87d1351268731db79e0f8e745d92493ee2841c974128ef629dc518b937d9194c"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:bd8f7df7d12c2db9fab40bdd87a7c09b1530128315d047a086fa3ae3435cb3a8"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:c180f51afb394e165eafe4ac2936a14bee3eb10debc9d9e4db8958fe36afe711"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:8c622a5fe39a48f78944a87d4fb8a53ee07344641b0562c540d840748571b811"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-win32.whl", hash = "sha256:db364eca23f876da6f9e16c9da0df51aa4f104a972735574842618b8c6d999d4"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-win_amd64.whl", hash = "sha256:86216b5cee4b06df986d214f664305142d9c76df9b6512be2738aa72a2048f99"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:6463effa3186ea09411d50efc7d85360b38d5f09b870c48e4600f63af490e56a"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6c4caeef8fa63d06bd437cd4bdcf3ffefe6738fb1b25951440d80dc7df8c03ac"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:37e55c8e51c236f95b033f6fb391d7d7970ba5fe7ff453dad675e88cf303377a"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fb69256e180cb6c8a894fee62b3afebae785babc1ee98b81cdf68bbca1987f33"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ae5f4161f18c61806f411a13b0310bea87f987c7d2ecdbdaad0e94eb2e404238"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b2b0a0c0517616b6869869f8c581d4eb2dd83a4d79e0ebcb7d373ef9956aeb0a"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:45485e01ff4d3630ec0d9617310448a8702f70e9c01906b0d0118bdf9d124cf2"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eb00ed941194665c332bf8e078baf037d6c35d7c4f3102ea2d4f16ca94a26dc8"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:2127566c664442652f024c837091890cb1942c30937add288223dc895793f898"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:a50aebfa173e157099939b17f18600f72f84eed3049e743b68ad15bd69b6bf99"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:4d0d1650369165a14e14e1e47b372cfcb31d6ab44e6e33cb2d4e57265290044d"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:923c0c831b7cfcb071580d3f46c4baf50f174be571576556269530f4bbd79d04"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:06a81e93cd441c56a9b65d8e1d043daeb97a3d0856d177d5c90ba85acb3db087"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-win32.whl", hash = "sha256:6ef1d82a3af9d3eecdba2321dc1b3c238245d890843e040e41e470ffa64c3e25"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-win_amd64.whl", hash = "sha256:eb8821e09e916165e160797a6c17edda0679379a4be5c716c260e836e122f54b"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:c235ebd9baae02f1b77bcea61bce332cb4331dc3617d254df3323aa01ab47bd4"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5b4c145409bef602a690e7cfad0a15a55c13320ff7a3ad7ca59c13bb8ba4d45d"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:68d1f8a9e9e37c1223b656399be5d6b448dea850bed7d0f87a8311f1ff3dabb0"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22afcb9f253dac0696b5a4be4a1c0f8762f8239e21b99680099abd9b2b1b2269"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e27ad930a842b4c5eb8ac0016b0a54f5aebbe679340c26101df33424142c143c"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1f79682fbe303db92bc2b1136016a38a42e835d932bab5b3b1bfcfbf0640e519"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b261ccdec7821281dade748d088bb6e9b69e6d15b30652b74cbbac25e280b796"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:122c7fa62b130ed55f8f285bfd56d5f4b4a5b503609d181f9ad85e55c89f4185"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:d0eccceffcb53201b5bfebb52600a5fb483a20b61da9dbc885f8b103cbe7598c"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:9f96df6923e21816da7e0ad3fd47dd8f94b2a5ce594e00677c0013018b813458"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:7f04c839ed0b6b98b1a7501a002144b76c18fb1c1850c8b98d458ac269e26ed2"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:34d1c8da1e78d2e001f363791c98a272bb734000fcef47a491c1e3b0505657a8"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:ff8fa367d09b717b2a17a052544193ad76cd49979c805768879cb63d9ca50561"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-win32.whl", hash = "sha256:aed38f6e4fb3f5d6bf81bfa990a07806be9d83cf7bacef998ab1a9bd660a581f"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-win_amd64.whl", hash = "sha256:b01b88d45a6fcb69667cd6d2f7a9aeb4bf53760d7fc536bf679ec94fe9f3ff3d"}, + {file = "charset_normalizer-3.3.2-py3-none-any.whl", hash = "sha256:3e4d1f6587322d2788836a99c69062fbb091331ec940e02d12d179c1d53e25fc"}, ] -[package.extras] -unicode-backport = ["unicodedata2"] - [[package]] name = "click" -version = "8.1.3" +version = "8.1.7" description = "Composable command line interface toolkit" category = "main" optional = false python-versions = ">=3.7" files = [ - {file = "click-8.1.3-py3-none-any.whl", hash = "sha256:bb4d8133cb15a609f44e8213d9b391b0809795062913b383c62be0ee95b1db48"}, - {file = "click-8.1.3.tar.gz", hash = "sha256:7682dc8afb30297001674575ea00d1814d808d6a36af415a82bd481d37ba7b8e"}, + {file = "click-8.1.7-py3-none-any.whl", hash = "sha256:ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28"}, + {file = "click-8.1.7.tar.gz", hash = "sha256:ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de"}, ] [package.dependencies] colorama = {version = "*", markers = "platform_system == \"Windows\""} -importlib-metadata = {version = "*", markers = "python_version < \"3.8\""} [[package]] name = "colorama" @@ -112,52 +196,46 @@ files = [ [[package]] name = "exceptiongroup" -version = "1.1.1" +version = "1.2.0" description = "Backport of PEP 654 (exception groups)" category = "dev" optional = false python-versions = ">=3.7" files = [ - {file = "exceptiongroup-1.1.1-py3-none-any.whl", hash = "sha256:232c37c63e4f682982c8b6459f33a8981039e5fb8756b2074364e5055c498c9e"}, - {file = "exceptiongroup-1.1.1.tar.gz", hash = "sha256:d484c3090ba2889ae2928419117447a14daf3c1231d5e30d0aae34f354f01785"}, + {file = "exceptiongroup-1.2.0-py3-none-any.whl", hash = "sha256:4bfd3996ac73b41e9b9628b04e079f193850720ea5945fc96a08633c66912f14"}, + {file = "exceptiongroup-1.2.0.tar.gz", hash = "sha256:91f5c769735f051a4290d52edd0858999b57e5876e9f85937691bd4c9fa3ed68"}, ] [package.extras] test = ["pytest (>=6)"] [[package]] -name = "idna" -version = "3.4" -description = "Internationalized Domain Names in Applications (IDNA)" -category = "main" +name = "executing" +version = "2.0.1" +description = "Get the currently executing AST node of a frame, and other information" +category = "dev" optional = false python-versions = ">=3.5" files = [ - {file = "idna-3.4-py3-none-any.whl", hash = "sha256:90b77e79eaa3eba6de819a0c442c0b4ceefc341a7a2ab77d7562bf49f425c5c2"}, - {file = "idna-3.4.tar.gz", hash = "sha256:814f528e8dead7d329833b91c5faa87d60bf71824cd12a7530b5526063d02cb4"}, + {file = "executing-2.0.1-py2.py3-none-any.whl", hash = "sha256:eac49ca94516ccc753f9fb5ce82603156e590b27525a8bc32cce8ae302eb61bc"}, + {file = "executing-2.0.1.tar.gz", hash = "sha256:35afe2ce3affba8ee97f2d69927fa823b08b472b7b994e36a52a964b93d16147"}, ] +[package.extras] +tests = ["asttokens (>=2.1.0)", "coverage", "coverage-enable-subprocess", "ipython", "littleutils", "pytest", "rich"] + [[package]] -name = "importlib-metadata" -version = "6.1.0" -description = "Read metadata from Python packages" +name = "idna" +version = "3.6" +description = "Internationalized Domain Names in Applications (IDNA)" category = "main" optional = false -python-versions = ">=3.7" +python-versions = ">=3.5" files = [ - {file = "importlib_metadata-6.1.0-py3-none-any.whl", hash = "sha256:ff80f3b5394912eb1b108fcfd444dc78b7f1f3e16b16188054bd01cb9cb86f09"}, - {file = "importlib_metadata-6.1.0.tar.gz", hash = "sha256:43ce9281e097583d758c2c708c4376371261a02c34682491a8e98352365aad20"}, + {file = "idna-3.6-py3-none-any.whl", hash = "sha256:c05567e9c24a6b9faaa835c4821bad0590fbb9d5779e7caa6e1cc4978e7eb24f"}, + {file = "idna-3.6.tar.gz", hash = "sha256:9ecdbbd083b06798ae1e86adcbfe8ab1479cf864e4ee30fe4e46a003d12491ca"}, ] -[package.dependencies] -typing-extensions = {version = ">=3.6.4", markers = "python_version < \"3.8\""} -zipp = ">=0.5" - -[package.extras] -docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] -perf = ["ipython"] -testing = ["flake8 (<5)", "flufl.flake8", "importlib-resources (>=1.3)", "packaging", "pyfakefs", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-flake8", "pytest-mypy (>=0.9.1)", "pytest-perf (>=0.9.2)"] - [[package]] name = "iniconfig" version = "2.0.0" @@ -189,14 +267,14 @@ tomli = {version = "*", markers = "python_version > \"3.6\" and python_version < [[package]] name = "ipython" -version = "7.34.0" +version = "8.12.3" description = "IPython: Productive Interactive Computing" category = "dev" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "ipython-7.34.0-py3-none-any.whl", hash = "sha256:c175d2440a1caff76116eb719d40538fbb316e214eda85c5515c303aacbfb23e"}, - {file = "ipython-7.34.0.tar.gz", hash = "sha256:af3bdb46aa292bce5615b1b2ebc76c2080c5f77f54bda2ec72461317273e7cd6"}, + {file = "ipython-8.12.3-py3-none-any.whl", hash = "sha256:b0340d46a933d27c657b211a329d0be23793c36595acf9e6ef4164bc01a1804c"}, + {file = "ipython-8.12.3.tar.gz", hash = "sha256:3910c4b54543c2ad73d06579aa771041b7d5707b033bd488669b4cf544e3b363"}, ] [package.dependencies] @@ -208,41 +286,44 @@ jedi = ">=0.16" matplotlib-inline = "*" pexpect = {version = ">4.3", markers = "sys_platform != \"win32\""} pickleshare = "*" -prompt-toolkit = ">=2.0.0,<3.0.0 || >3.0.0,<3.0.1 || >3.0.1,<3.1.0" -pygments = "*" -setuptools = ">=18.5" -traitlets = ">=4.2" +prompt-toolkit = ">=3.0.30,<3.0.37 || >3.0.37,<3.1.0" +pygments = ">=2.4.0" +stack-data = "*" +traitlets = ">=5" +typing-extensions = {version = "*", markers = "python_version < \"3.10\""} [package.extras] -all = ["Sphinx (>=1.3)", "ipykernel", "ipyparallel", "ipywidgets", "nbconvert", "nbformat", "nose (>=0.10.1)", "notebook", "numpy (>=1.17)", "pygments", "qtconsole", "requests", "testpath"] -doc = ["Sphinx (>=1.3)"] +all = ["black", "curio", "docrepr", "ipykernel", "ipyparallel", "ipywidgets", "matplotlib", "matplotlib (!=3.2.0)", "nbconvert", "nbformat", "notebook", "numpy (>=1.21)", "pandas", "pytest (<7)", "pytest (<7.1)", "pytest-asyncio", "qtconsole", "setuptools (>=18.5)", "sphinx (>=1.3)", "sphinx-rtd-theme", "stack-data", "testpath", "trio", "typing-extensions"] +black = ["black"] +doc = ["docrepr", "ipykernel", "matplotlib", "pytest (<7)", "pytest (<7.1)", "pytest-asyncio", "setuptools (>=18.5)", "sphinx (>=1.3)", "sphinx-rtd-theme", "stack-data", "testpath", "typing-extensions"] kernel = ["ipykernel"] nbconvert = ["nbconvert"] nbformat = ["nbformat"] notebook = ["ipywidgets", "notebook"] parallel = ["ipyparallel"] qtconsole = ["qtconsole"] -test = ["ipykernel", "nbformat", "nose (>=0.10.1)", "numpy (>=1.17)", "pygments", "requests", "testpath"] +test = ["pytest (<7.1)", "pytest-asyncio", "testpath"] +test-extra = ["curio", "matplotlib (!=3.2.0)", "nbformat", "numpy (>=1.21)", "pandas", "pytest (<7.1)", "pytest-asyncio", "testpath", "trio"] [[package]] name = "jedi" -version = "0.18.2" +version = "0.19.1" description = "An autocompletion tool for Python that can be used for text editors." category = "dev" optional = false python-versions = ">=3.6" files = [ - {file = "jedi-0.18.2-py2.py3-none-any.whl", hash = "sha256:203c1fd9d969ab8f2119ec0a3342e0b49910045abe6af0a3ae83a5764d54639e"}, - {file = "jedi-0.18.2.tar.gz", hash = "sha256:bae794c30d07f6d910d32a7048af09b5a39ed740918da923c6b780790ebac612"}, + {file = "jedi-0.19.1-py2.py3-none-any.whl", hash = "sha256:e983c654fe5c02867aef4cdfce5a2fbb4a50adc0af145f70504238f18ef5e7e0"}, + {file = "jedi-0.19.1.tar.gz", hash = "sha256:cf0496f3651bc65d7174ac1b7d043eff454892c708a87d1b683e57b569927ffd"}, ] [package.dependencies] -parso = ">=0.8.0,<0.9.0" +parso = ">=0.8.3,<0.9.0" [package.extras] docs = ["Jinja2 (==2.11.3)", "MarkupSafe (==1.1.1)", "Pygments (==2.8.1)", "alabaster (==0.7.12)", "babel (==2.9.1)", "chardet (==4.0.0)", "commonmark (==0.8.1)", "docutils (==0.17.1)", "future (==0.18.2)", "idna (==2.10)", "imagesize (==1.2.0)", "mock (==1.0.1)", "packaging (==20.9)", "pyparsing (==2.4.7)", "pytz (==2021.1)", "readthedocs-sphinx-ext (==2.1.4)", "recommonmark (==0.5.0)", "requests (==2.25.1)", "six (==1.15.0)", "snowballstemmer (==2.1.0)", "sphinx (==1.8.5)", "sphinx-rtd-theme (==0.4.3)", "sphinxcontrib-serializinghtml (==1.1.4)", "sphinxcontrib-websupport (==1.2.4)", "urllib3 (==1.26.4)"] -qa = ["flake8 (==3.8.3)", "mypy (==0.782)"] -testing = ["Django (<3.1)", "attrs", "colorama", "docopt", "pytest (<7.0.0)"] +qa = ["flake8 (==5.0.4)", "mypy (==0.971)", "types-setuptools (==67.2.0.1)"] +testing = ["Django", "attrs", "colorama", "docopt", "pytest (<7.0.0)"] [[package]] name = "matplotlib-inline" @@ -261,142 +342,167 @@ traitlets = "*" [[package]] name = "numpy" -version = "1.21.6" -description = "NumPy is the fundamental package for array computing with Python." +version = "1.24.4" +description = "Fundamental package for array computing in Python" category = "main" optional = false -python-versions = ">=3.7,<3.11" -files = [ - {file = "numpy-1.21.6-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:8737609c3bbdd48e380d463134a35ffad3b22dc56295eff6f79fd85bd0eeeb25"}, - {file = "numpy-1.21.6-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:fdffbfb6832cd0b300995a2b08b8f6fa9f6e856d562800fea9182316d99c4e8e"}, - {file = "numpy-1.21.6-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:3820724272f9913b597ccd13a467cc492a0da6b05df26ea09e78b171a0bb9da6"}, - {file = "numpy-1.21.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f17e562de9edf691a42ddb1eb4a5541c20dd3f9e65b09ded2beb0799c0cf29bb"}, - {file = "numpy-1.21.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5f30427731561ce75d7048ac254dbe47a2ba576229250fb60f0fb74db96501a1"}, - {file = "numpy-1.21.6-cp310-cp310-win32.whl", hash = "sha256:d4bf4d43077db55589ffc9009c0ba0a94fa4908b9586d6ccce2e0b164c86303c"}, - {file = "numpy-1.21.6-cp310-cp310-win_amd64.whl", hash = "sha256:d136337ae3cc69aa5e447e78d8e1514be8c3ec9b54264e680cf0b4bd9011574f"}, - {file = "numpy-1.21.6-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:6aaf96c7f8cebc220cdfc03f1d5a31952f027dda050e5a703a0d1c396075e3e7"}, - {file = "numpy-1.21.6-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:67c261d6c0a9981820c3a149d255a76918278a6b03b6a036800359aba1256d46"}, - {file = "numpy-1.21.6-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:a6be4cb0ef3b8c9250c19cc122267263093eee7edd4e3fa75395dfda8c17a8e2"}, - {file = "numpy-1.21.6-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7c4068a8c44014b2d55f3c3f574c376b2494ca9cc73d2f1bd692382b6dffe3db"}, - {file = "numpy-1.21.6-cp37-cp37m-win32.whl", hash = "sha256:7c7e5fa88d9ff656e067876e4736379cc962d185d5cd808014a8a928d529ef4e"}, - {file = "numpy-1.21.6-cp37-cp37m-win_amd64.whl", hash = "sha256:bcb238c9c96c00d3085b264e5c1a1207672577b93fa666c3b14a45240b14123a"}, - {file = "numpy-1.21.6-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:82691fda7c3f77c90e62da69ae60b5ac08e87e775b09813559f8901a88266552"}, - {file = "numpy-1.21.6-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:643843bcc1c50526b3a71cd2ee561cf0d8773f062c8cbaf9ffac9fdf573f83ab"}, - {file = "numpy-1.21.6-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:357768c2e4451ac241465157a3e929b265dfac85d9214074985b1786244f2ef3"}, - {file = "numpy-1.21.6-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:9f411b2c3f3d76bba0865b35a425157c5dcf54937f82bbeb3d3c180789dd66a6"}, - {file = "numpy-1.21.6-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:4aa48afdce4660b0076a00d80afa54e8a97cd49f457d68a4342d188a09451c1a"}, - {file = "numpy-1.21.6-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d6a96eef20f639e6a97d23e57dd0c1b1069a7b4fd7027482a4c5c451cd7732f4"}, - {file = "numpy-1.21.6-cp38-cp38-win32.whl", hash = "sha256:5c3c8def4230e1b959671eb959083661b4a0d2e9af93ee339c7dada6759a9470"}, - {file = "numpy-1.21.6-cp38-cp38-win_amd64.whl", hash = "sha256:bf2ec4b75d0e9356edea834d1de42b31fe11f726a81dfb2c2112bc1eaa508fcf"}, - {file = "numpy-1.21.6-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:4391bd07606be175aafd267ef9bea87cf1b8210c787666ce82073b05f202add1"}, - {file = "numpy-1.21.6-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:67f21981ba2f9d7ba9ade60c9e8cbaa8cf8e9ae51673934480e45cf55e953673"}, - {file = "numpy-1.21.6-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ee5ec40fdd06d62fe5d4084bef4fd50fd4bb6bfd2bf519365f569dc470163ab0"}, - {file = "numpy-1.21.6-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:1dbe1c91269f880e364526649a52eff93ac30035507ae980d2fed33aaee633ac"}, - {file = "numpy-1.21.6-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:d9caa9d5e682102453d96a0ee10c7241b72859b01a941a397fd965f23b3e016b"}, - {file = "numpy-1.21.6-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:58459d3bad03343ac4b1b42ed14d571b8743dc80ccbf27444f266729df1d6f5b"}, - {file = "numpy-1.21.6-cp39-cp39-win32.whl", hash = "sha256:7f5ae4f304257569ef3b948810816bc87c9146e8c446053539947eedeaa32786"}, - {file = "numpy-1.21.6-cp39-cp39-win_amd64.whl", hash = "sha256:e31f0bb5928b793169b87e3d1e070f2342b22d5245c755e2b81caa29756246c3"}, - {file = "numpy-1.21.6-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:dd1c8f6bd65d07d3810b90d02eba7997e32abbdf1277a481d698969e921a3be0"}, - {file = "numpy-1.21.6.zip", hash = "sha256:ecb55251139706669fdec2ff073c98ef8e9a84473e51e716211b41aa0f18e656"}, +python-versions = ">=3.8" +files = [ + {file = "numpy-1.24.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c0bfb52d2169d58c1cdb8cc1f16989101639b34c7d3ce60ed70b19c63eba0b64"}, + {file = "numpy-1.24.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ed094d4f0c177b1b8e7aa9cba7d6ceed51c0e569a5318ac0ca9a090680a6a1b1"}, + {file = "numpy-1.24.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:79fc682a374c4a8ed08b331bef9c5f582585d1048fa6d80bc6c35bc384eee9b4"}, + {file = "numpy-1.24.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7ffe43c74893dbf38c2b0a1f5428760a1a9c98285553c89e12d70a96a7f3a4d6"}, + {file = "numpy-1.24.4-cp310-cp310-win32.whl", hash = "sha256:4c21decb6ea94057331e111a5bed9a79d335658c27ce2adb580fb4d54f2ad9bc"}, + {file = "numpy-1.24.4-cp310-cp310-win_amd64.whl", hash = "sha256:b4bea75e47d9586d31e892a7401f76e909712a0fd510f58f5337bea9572c571e"}, + {file = "numpy-1.24.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f136bab9c2cfd8da131132c2cf6cc27331dd6fae65f95f69dcd4ae3c3639c810"}, + {file = "numpy-1.24.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e2926dac25b313635e4d6cf4dc4e51c8c0ebfed60b801c799ffc4c32bf3d1254"}, + {file = "numpy-1.24.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:222e40d0e2548690405b0b3c7b21d1169117391c2e82c378467ef9ab4c8f0da7"}, + {file = "numpy-1.24.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7215847ce88a85ce39baf9e89070cb860c98fdddacbaa6c0da3ffb31b3350bd5"}, + {file = "numpy-1.24.4-cp311-cp311-win32.whl", hash = "sha256:4979217d7de511a8d57f4b4b5b2b965f707768440c17cb70fbf254c4b225238d"}, + {file = "numpy-1.24.4-cp311-cp311-win_amd64.whl", hash = "sha256:b7b1fc9864d7d39e28f41d089bfd6353cb5f27ecd9905348c24187a768c79694"}, + {file = "numpy-1.24.4-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1452241c290f3e2a312c137a9999cdbf63f78864d63c79039bda65ee86943f61"}, + {file = "numpy-1.24.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:04640dab83f7c6c85abf9cd729c5b65f1ebd0ccf9de90b270cd61935eef0197f"}, + {file = "numpy-1.24.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a5425b114831d1e77e4b5d812b69d11d962e104095a5b9c3b641a218abcc050e"}, + {file = "numpy-1.24.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd80e219fd4c71fc3699fc1dadac5dcf4fd882bfc6f7ec53d30fa197b8ee22dc"}, + {file = "numpy-1.24.4-cp38-cp38-win32.whl", hash = "sha256:4602244f345453db537be5314d3983dbf5834a9701b7723ec28923e2889e0bb2"}, + {file = "numpy-1.24.4-cp38-cp38-win_amd64.whl", hash = "sha256:692f2e0f55794943c5bfff12b3f56f99af76f902fc47487bdfe97856de51a706"}, + {file = "numpy-1.24.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:2541312fbf09977f3b3ad449c4e5f4bb55d0dbf79226d7724211acc905049400"}, + {file = "numpy-1.24.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:9667575fb6d13c95f1b36aca12c5ee3356bf001b714fc354eb5465ce1609e62f"}, + {file = "numpy-1.24.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f3a86ed21e4f87050382c7bc96571755193c4c1392490744ac73d660e8f564a9"}, + {file = "numpy-1.24.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d11efb4dbecbdf22508d55e48d9c8384db795e1b7b51ea735289ff96613ff74d"}, + {file = "numpy-1.24.4-cp39-cp39-win32.whl", hash = "sha256:6620c0acd41dbcb368610bb2f4d83145674040025e5536954782467100aa8835"}, + {file = "numpy-1.24.4-cp39-cp39-win_amd64.whl", hash = "sha256:befe2bf740fd8373cf56149a5c23a0f601e82869598d41f8e188a0e9869926f8"}, + {file = "numpy-1.24.4-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:31f13e25b4e304632a4619d0e0777662c2ffea99fcae2029556b17d8ff958aef"}, + {file = "numpy-1.24.4-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:95f7ac6540e95bc440ad77f56e520da5bf877f87dca58bd095288dce8940532a"}, + {file = "numpy-1.24.4-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:e98f220aa76ca2a977fe435f5b04d7b3470c0a2e6312907b37ba6068f26787f2"}, + {file = "numpy-1.24.4.tar.gz", hash = "sha256:80f5e3a4e498641401868df4208b74581206afbee7cf7b8329daae82676d9463"}, ] [[package]] name = "numpy" -version = "1.24.2" +version = "1.26.4" description = "Fundamental package for array computing in Python" category = "main" optional = false -python-versions = ">=3.8" -files = [ - {file = "numpy-1.24.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:eef70b4fc1e872ebddc38cddacc87c19a3709c0e3e5d20bf3954c147b1dd941d"}, - {file = "numpy-1.24.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e8d2859428712785e8a8b7d2b3ef0a1d1565892367b32f915c4a4df44d0e64f5"}, - {file = "numpy-1.24.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6524630f71631be2dabe0c541e7675db82651eb998496bbe16bc4f77f0772253"}, - {file = "numpy-1.24.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a51725a815a6188c662fb66fb32077709a9ca38053f0274640293a14fdd22978"}, - {file = "numpy-1.24.2-cp310-cp310-win32.whl", hash = "sha256:2620e8592136e073bd12ee4536149380695fbe9ebeae845b81237f986479ffc9"}, - {file = "numpy-1.24.2-cp310-cp310-win_amd64.whl", hash = "sha256:97cf27e51fa078078c649a51d7ade3c92d9e709ba2bfb97493007103c741f1d0"}, - {file = "numpy-1.24.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:7de8fdde0003f4294655aa5d5f0a89c26b9f22c0a58790c38fae1ed392d44a5a"}, - {file = "numpy-1.24.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:4173bde9fa2a005c2c6e2ea8ac1618e2ed2c1c6ec8a7657237854d42094123a0"}, - {file = "numpy-1.24.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4cecaed30dc14123020f77b03601559fff3e6cd0c048f8b5289f4eeabb0eb281"}, - {file = "numpy-1.24.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9a23f8440561a633204a67fb44617ce2a299beecf3295f0d13c495518908e910"}, - {file = "numpy-1.24.2-cp311-cp311-win32.whl", hash = "sha256:e428c4fbfa085f947b536706a2fc349245d7baa8334f0c5723c56a10595f9b95"}, - {file = "numpy-1.24.2-cp311-cp311-win_amd64.whl", hash = "sha256:557d42778a6869c2162deb40ad82612645e21d79e11c1dc62c6e82a2220ffb04"}, - {file = "numpy-1.24.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:d0a2db9d20117bf523dde15858398e7c0858aadca7c0f088ac0d6edd360e9ad2"}, - {file = "numpy-1.24.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:c72a6b2f4af1adfe193f7beb91ddf708ff867a3f977ef2ec53c0ffb8283ab9f5"}, - {file = "numpy-1.24.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c29e6bd0ec49a44d7690ecb623a8eac5ab8a923bce0bea6293953992edf3a76a"}, - {file = "numpy-1.24.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2eabd64ddb96a1239791da78fa5f4e1693ae2dadc82a76bc76a14cbb2b966e96"}, - {file = "numpy-1.24.2-cp38-cp38-win32.whl", hash = "sha256:e3ab5d32784e843fc0dd3ab6dcafc67ef806e6b6828dc6af2f689be0eb4d781d"}, - {file = "numpy-1.24.2-cp38-cp38-win_amd64.whl", hash = "sha256:76807b4063f0002c8532cfeac47a3068a69561e9c8715efdad3c642eb27c0756"}, - {file = "numpy-1.24.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:4199e7cfc307a778f72d293372736223e39ec9ac096ff0a2e64853b866a8e18a"}, - {file = "numpy-1.24.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:adbdce121896fd3a17a77ab0b0b5eedf05a9834a18699db6829a64e1dfccca7f"}, - {file = "numpy-1.24.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:889b2cc88b837d86eda1b17008ebeb679d82875022200c6e8e4ce6cf549b7acb"}, - {file = "numpy-1.24.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f64bb98ac59b3ea3bf74b02f13836eb2e24e48e0ab0145bbda646295769bd780"}, - {file = "numpy-1.24.2-cp39-cp39-win32.whl", hash = "sha256:63e45511ee4d9d976637d11e6c9864eae50e12dc9598f531c035265991910468"}, - {file = "numpy-1.24.2-cp39-cp39-win_amd64.whl", hash = "sha256:a77d3e1163a7770164404607b7ba3967fb49b24782a6ef85d9b5f54126cc39e5"}, - {file = "numpy-1.24.2-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:92011118955724465fb6853def593cf397b4a1367495e0b59a7e69d40c4eb71d"}, - {file = "numpy-1.24.2-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f9006288bcf4895917d02583cf3411f98631275bc67cce355a7f39f8c14338fa"}, - {file = "numpy-1.24.2-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:150947adbdfeceec4e5926d956a06865c1c690f2fd902efede4ca6fe2e657c3f"}, - {file = "numpy-1.24.2.tar.gz", hash = "sha256:003a9f530e880cb2cd177cba1af7220b9aa42def9c4afc2a2fc3ee6be7eb2b22"}, +python-versions = ">=3.9" +files = [ + {file = "numpy-1.26.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:9ff0f4f29c51e2803569d7a51c2304de5554655a60c5d776e35b4a41413830d0"}, + {file = "numpy-1.26.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2e4ee3380d6de9c9ec04745830fd9e2eccb3e6cf790d39d7b98ffd19b0dd754a"}, + {file = "numpy-1.26.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d209d8969599b27ad20994c8e41936ee0964e6da07478d6c35016bc386b66ad4"}, + {file = "numpy-1.26.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ffa75af20b44f8dba823498024771d5ac50620e6915abac414251bd971b4529f"}, + {file = "numpy-1.26.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:62b8e4b1e28009ef2846b4c7852046736bab361f7aeadeb6a5b89ebec3c7055a"}, + {file = "numpy-1.26.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:a4abb4f9001ad2858e7ac189089c42178fcce737e4169dc61321660f1a96c7d2"}, + {file = "numpy-1.26.4-cp310-cp310-win32.whl", hash = "sha256:bfe25acf8b437eb2a8b2d49d443800a5f18508cd811fea3181723922a8a82b07"}, + {file = "numpy-1.26.4-cp310-cp310-win_amd64.whl", hash = "sha256:b97fe8060236edf3662adfc2c633f56a08ae30560c56310562cb4f95500022d5"}, + {file = "numpy-1.26.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4c66707fabe114439db9068ee468c26bbdf909cac0fb58686a42a24de1760c71"}, + {file = "numpy-1.26.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:edd8b5fe47dab091176d21bb6de568acdd906d1887a4584a15a9a96a1dca06ef"}, + {file = "numpy-1.26.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7ab55401287bfec946ced39700c053796e7cc0e3acbef09993a9ad2adba6ca6e"}, + {file = "numpy-1.26.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:666dbfb6ec68962c033a450943ded891bed2d54e6755e35e5835d63f4f6931d5"}, + {file = "numpy-1.26.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:96ff0b2ad353d8f990b63294c8986f1ec3cb19d749234014f4e7eb0112ceba5a"}, + {file = "numpy-1.26.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:60dedbb91afcbfdc9bc0b1f3f402804070deed7392c23eb7a7f07fa857868e8a"}, + {file = "numpy-1.26.4-cp311-cp311-win32.whl", hash = "sha256:1af303d6b2210eb850fcf03064d364652b7120803a0b872f5211f5234b399f20"}, + {file = "numpy-1.26.4-cp311-cp311-win_amd64.whl", hash = "sha256:cd25bcecc4974d09257ffcd1f098ee778f7834c3ad767fe5db785be9a4aa9cb2"}, + {file = "numpy-1.26.4-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:b3ce300f3644fb06443ee2222c2201dd3a89ea6040541412b8fa189341847218"}, + {file = "numpy-1.26.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:03a8c78d01d9781b28a6989f6fa1bb2c4f2d51201cf99d3dd875df6fbd96b23b"}, + {file = "numpy-1.26.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9fad7dcb1aac3c7f0584a5a8133e3a43eeb2fe127f47e3632d43d677c66c102b"}, + {file = "numpy-1.26.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:675d61ffbfa78604709862923189bad94014bef562cc35cf61d3a07bba02a7ed"}, + {file = "numpy-1.26.4-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:ab47dbe5cc8210f55aa58e4805fe224dac469cde56b9f731a4c098b91917159a"}, + {file = "numpy-1.26.4-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:1dda2e7b4ec9dd512f84935c5f126c8bd8b9f2fc001e9f54af255e8c5f16b0e0"}, + {file = "numpy-1.26.4-cp312-cp312-win32.whl", hash = "sha256:50193e430acfc1346175fcbdaa28ffec49947a06918b7b92130744e81e640110"}, + {file = "numpy-1.26.4-cp312-cp312-win_amd64.whl", hash = "sha256:08beddf13648eb95f8d867350f6a018a4be2e5ad54c8d8caed89ebca558b2818"}, + {file = "numpy-1.26.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:7349ab0fa0c429c82442a27a9673fc802ffdb7c7775fad780226cb234965e53c"}, + {file = "numpy-1.26.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:52b8b60467cd7dd1e9ed082188b4e6bb35aa5cdd01777621a1658910745b90be"}, + {file = "numpy-1.26.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d5241e0a80d808d70546c697135da2c613f30e28251ff8307eb72ba696945764"}, + {file = "numpy-1.26.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f870204a840a60da0b12273ef34f7051e98c3b5961b61b0c2c1be6dfd64fbcd3"}, + {file = "numpy-1.26.4-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:679b0076f67ecc0138fd2ede3a8fd196dddc2ad3254069bcb9faf9a79b1cebcd"}, + {file = "numpy-1.26.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:47711010ad8555514b434df65f7d7b076bb8261df1ca9bb78f53d3b2db02e95c"}, + {file = "numpy-1.26.4-cp39-cp39-win32.whl", hash = "sha256:a354325ee03388678242a4d7ebcd08b5c727033fcff3b2f536aea978e15ee9e6"}, + {file = "numpy-1.26.4-cp39-cp39-win_amd64.whl", hash = "sha256:3373d5d70a5fe74a2c1bb6d2cfd9609ecf686d47a2d7b1d37a8f3b6bf6003aea"}, + {file = "numpy-1.26.4-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:afedb719a9dcfc7eaf2287b839d8198e06dcd4cb5d276a3df279231138e83d30"}, + {file = "numpy-1.26.4-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:95a7476c59002f2f6c590b9b7b998306fba6a5aa646b1e22ddfeaf8f78c3a29c"}, + {file = "numpy-1.26.4-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:7e50d0a0cc3189f9cb0aeb3a6a6af18c16f59f004b866cd2be1c14b36134a4a0"}, + {file = "numpy-1.26.4.tar.gz", hash = "sha256:2a02aba9ed12e4ac4eb3ea9421c420301a0c6460d9830d74a9df87efa4912010"}, ] [[package]] name = "packaging" -version = "23.0" +version = "23.2" description = "Core utilities for Python packages" category = "dev" optional = false python-versions = ">=3.7" files = [ - {file = "packaging-23.0-py3-none-any.whl", hash = "sha256:714ac14496c3e68c99c29b00845f7a2b85f3bb6f1078fd9f72fd20f0570002b2"}, - {file = "packaging-23.0.tar.gz", hash = "sha256:b6ad297f8907de0fa2fe1ccbd26fdaf387f5f47c7275fedf8cce89f99446cf97"}, + {file = "packaging-23.2-py3-none-any.whl", hash = "sha256:8c491190033a9af7e1d931d0b5dacc2ef47509b34dd0de67ed209b5203fc88c7"}, + {file = "packaging-23.2.tar.gz", hash = "sha256:048fb0e9405036518eaaf48a55953c750c11e1a1b68e0dd1a9d62ed0c092cfc5"}, ] [[package]] name = "pandas" -version = "1.3.5" +version = "2.0.3" description = "Powerful data structures for data analysis, time series, and statistics" category = "main" optional = false -python-versions = ">=3.7.1" -files = [ - {file = "pandas-1.3.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:62d5b5ce965bae78f12c1c0df0d387899dd4211ec0bdc52822373f13a3a022b9"}, - {file = "pandas-1.3.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:adfeb11be2d54f275142c8ba9bf67acee771b7186a5745249c7d5a06c670136b"}, - {file = "pandas-1.3.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:60a8c055d58873ad81cae290d974d13dd479b82cbb975c3e1fa2cf1920715296"}, - {file = "pandas-1.3.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fd541ab09e1f80a2a1760032d665f6e032d8e44055d602d65eeea6e6e85498cb"}, - {file = "pandas-1.3.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2651d75b9a167cc8cc572cf787ab512d16e316ae00ba81874b560586fa1325e0"}, - {file = "pandas-1.3.5-cp310-cp310-win_amd64.whl", hash = "sha256:aaf183a615ad790801fa3cf2fa450e5b6d23a54684fe386f7e3208f8b9bfbef6"}, - {file = "pandas-1.3.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:344295811e67f8200de2390093aeb3c8309f5648951b684d8db7eee7d1c81fb7"}, - {file = "pandas-1.3.5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:552020bf83b7f9033b57cbae65589c01e7ef1544416122da0c79140c93288f56"}, - {file = "pandas-1.3.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5cce0c6bbeb266b0e39e35176ee615ce3585233092f685b6a82362523e59e5b4"}, - {file = "pandas-1.3.5-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7d28a3c65463fd0d0ba8bbb7696b23073efee0510783340a44b08f5e96ffce0c"}, - {file = "pandas-1.3.5-cp37-cp37m-win32.whl", hash = "sha256:a62949c626dd0ef7de11de34b44c6475db76995c2064e2d99c6498c3dba7fe58"}, - {file = "pandas-1.3.5-cp37-cp37m-win_amd64.whl", hash = "sha256:8025750767e138320b15ca16d70d5cdc1886e8f9cc56652d89735c016cd8aea6"}, - {file = "pandas-1.3.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:fe95bae4e2d579812865db2212bb733144e34d0c6785c0685329e5b60fcb85dd"}, - {file = "pandas-1.3.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5f261553a1e9c65b7a310302b9dbac31cf0049a51695c14ebe04e4bfd4a96f02"}, - {file = "pandas-1.3.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8b6dbec5f3e6d5dc80dcfee250e0a2a652b3f28663492f7dab9a24416a48ac39"}, - {file = "pandas-1.3.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d3bc49af96cd6285030a64779de5b3688633a07eb75c124b0747134a63f4c05f"}, - {file = "pandas-1.3.5-cp38-cp38-win32.whl", hash = "sha256:b6b87b2fb39e6383ca28e2829cddef1d9fc9e27e55ad91ca9c435572cdba51bf"}, - {file = "pandas-1.3.5-cp38-cp38-win_amd64.whl", hash = "sha256:a395692046fd8ce1edb4c6295c35184ae0c2bbe787ecbe384251da609e27edcb"}, - {file = "pandas-1.3.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:bd971a3f08b745a75a86c00b97f3007c2ea175951286cdda6abe543e687e5f2f"}, - {file = "pandas-1.3.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:37f06b59e5bc05711a518aa10beaec10942188dccb48918bb5ae602ccbc9f1a0"}, - {file = "pandas-1.3.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2c21778a688d3712d35710501f8001cdbf96eb70a7c587a3d5613573299fdca6"}, - {file = "pandas-1.3.5-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3345343206546545bc26a05b4602b6a24385b5ec7c75cb6059599e3d56831da2"}, - {file = "pandas-1.3.5-cp39-cp39-win32.whl", hash = "sha256:c69406a2808ba6cf580c2255bcf260b3f214d2664a3a4197d0e640f573b46fd3"}, - {file = "pandas-1.3.5-cp39-cp39-win_amd64.whl", hash = "sha256:32e1a26d5ade11b547721a72f9bfc4bd113396947606e00d5b4a5b79b3dcb006"}, - {file = "pandas-1.3.5.tar.gz", hash = "sha256:1e4285f5de1012de20ca46b188ccf33521bff61ba5c5ebd78b4fb28e5416a9f1"}, +python-versions = ">=3.8" +files = [ + {file = "pandas-2.0.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e4c7c9f27a4185304c7caf96dc7d91bc60bc162221152de697c98eb0b2648dd8"}, + {file = "pandas-2.0.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:f167beed68918d62bffb6ec64f2e1d8a7d297a038f86d4aed056b9493fca407f"}, + {file = "pandas-2.0.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ce0c6f76a0f1ba361551f3e6dceaff06bde7514a374aa43e33b588ec10420183"}, + {file = "pandas-2.0.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba619e410a21d8c387a1ea6e8a0e49bb42216474436245718d7f2e88a2f8d7c0"}, + {file = "pandas-2.0.3-cp310-cp310-win32.whl", hash = "sha256:3ef285093b4fe5058eefd756100a367f27029913760773c8bf1d2d8bebe5d210"}, + {file = "pandas-2.0.3-cp310-cp310-win_amd64.whl", hash = "sha256:9ee1a69328d5c36c98d8e74db06f4ad518a1840e8ccb94a4ba86920986bb617e"}, + {file = "pandas-2.0.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b084b91d8d66ab19f5bb3256cbd5ea661848338301940e17f4492b2ce0801fe8"}, + {file = "pandas-2.0.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:37673e3bdf1551b95bf5d4ce372b37770f9529743d2498032439371fc7b7eb26"}, + {file = "pandas-2.0.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b9cb1e14fdb546396b7e1b923ffaeeac24e4cedd14266c3497216dd4448e4f2d"}, + {file = "pandas-2.0.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d9cd88488cceb7635aebb84809d087468eb33551097d600c6dad13602029c2df"}, + {file = "pandas-2.0.3-cp311-cp311-win32.whl", hash = "sha256:694888a81198786f0e164ee3a581df7d505024fbb1f15202fc7db88a71d84ebd"}, + {file = "pandas-2.0.3-cp311-cp311-win_amd64.whl", hash = "sha256:6a21ab5c89dcbd57f78d0ae16630b090eec626360085a4148693def5452d8a6b"}, + {file = "pandas-2.0.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:9e4da0d45e7f34c069fe4d522359df7d23badf83abc1d1cef398895822d11061"}, + {file = "pandas-2.0.3-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:32fca2ee1b0d93dd71d979726b12b61faa06aeb93cf77468776287f41ff8fdc5"}, + {file = "pandas-2.0.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:258d3624b3ae734490e4d63c430256e716f488c4fcb7c8e9bde2d3aa46c29089"}, + {file = "pandas-2.0.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9eae3dc34fa1aa7772dd3fc60270d13ced7346fcbcfee017d3132ec625e23bb0"}, + {file = "pandas-2.0.3-cp38-cp38-win32.whl", hash = "sha256:f3421a7afb1a43f7e38e82e844e2bca9a6d793d66c1a7f9f0ff39a795bbc5e02"}, + {file = "pandas-2.0.3-cp38-cp38-win_amd64.whl", hash = "sha256:69d7f3884c95da3a31ef82b7618af5710dba95bb885ffab339aad925c3e8ce78"}, + {file = "pandas-2.0.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5247fb1ba347c1261cbbf0fcfba4a3121fbb4029d95d9ef4dc45406620b25c8b"}, + {file = "pandas-2.0.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:81af086f4543c9d8bb128328b5d32e9986e0c84d3ee673a2ac6fb57fd14f755e"}, + {file = "pandas-2.0.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1994c789bf12a7c5098277fb43836ce090f1073858c10f9220998ac74f37c69b"}, + {file = "pandas-2.0.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5ec591c48e29226bcbb316e0c1e9423622bc7a4eaf1ef7c3c9fa1a3981f89641"}, + {file = "pandas-2.0.3-cp39-cp39-win32.whl", hash = "sha256:04dbdbaf2e4d46ca8da896e1805bc04eb85caa9a82e259e8eed00254d5e0c682"}, + {file = "pandas-2.0.3-cp39-cp39-win_amd64.whl", hash = "sha256:1168574b036cd8b93abc746171c9b4f1b83467438a5e45909fed645cf8692dbc"}, + {file = "pandas-2.0.3.tar.gz", hash = "sha256:c02f372a88e0d17f36d3093a644c73cfc1788e876a7c4bcb4020a77512e2043c"}, ] [package.dependencies] numpy = [ - {version = ">=1.17.3", markers = "platform_machine != \"aarch64\" and platform_machine != \"arm64\" and python_version < \"3.10\""}, - {version = ">=1.19.2", markers = "platform_machine == \"aarch64\" and python_version < \"3.10\""}, - {version = ">=1.20.0", markers = "platform_machine == \"arm64\" and python_version < \"3.10\""}, + {version = ">=1.20.3", markers = "python_version < \"3.10\""}, {version = ">=1.21.0", markers = "python_version >= \"3.10\""}, + {version = ">=1.23.2", markers = "python_version >= \"3.11\""}, ] -python-dateutil = ">=2.7.3" -pytz = ">=2017.3" +python-dateutil = ">=2.8.2" +pytz = ">=2020.1" +tzdata = ">=2022.1" [package.extras] -test = ["hypothesis (>=3.58)", "pytest (>=6.0)", "pytest-xdist"] +all = ["PyQt5 (>=5.15.1)", "SQLAlchemy (>=1.4.16)", "beautifulsoup4 (>=4.9.3)", "bottleneck (>=1.3.2)", "brotlipy (>=0.7.0)", "fastparquet (>=0.6.3)", "fsspec (>=2021.07.0)", "gcsfs (>=2021.07.0)", "html5lib (>=1.1)", "hypothesis (>=6.34.2)", "jinja2 (>=3.0.0)", "lxml (>=4.6.3)", "matplotlib (>=3.6.1)", "numba (>=0.53.1)", "numexpr (>=2.7.3)", "odfpy (>=1.4.1)", "openpyxl (>=3.0.7)", "pandas-gbq (>=0.15.0)", "psycopg2 (>=2.8.6)", "pyarrow (>=7.0.0)", "pymysql (>=1.0.2)", "pyreadstat (>=1.1.2)", "pytest (>=7.3.2)", "pytest-asyncio (>=0.17.0)", "pytest-xdist (>=2.2.0)", "python-snappy (>=0.6.0)", "pyxlsb (>=1.0.8)", "qtpy (>=2.2.0)", "s3fs (>=2021.08.0)", "scipy (>=1.7.1)", "tables (>=3.6.1)", "tabulate (>=0.8.9)", "xarray (>=0.21.0)", "xlrd (>=2.0.1)", "xlsxwriter (>=1.4.3)", "zstandard (>=0.15.2)"] +aws = ["s3fs (>=2021.08.0)"] +clipboard = ["PyQt5 (>=5.15.1)", "qtpy (>=2.2.0)"] +compression = ["brotlipy (>=0.7.0)", "python-snappy (>=0.6.0)", "zstandard (>=0.15.2)"] +computation = ["scipy (>=1.7.1)", "xarray (>=0.21.0)"] +excel = ["odfpy (>=1.4.1)", "openpyxl (>=3.0.7)", "pyxlsb (>=1.0.8)", "xlrd (>=2.0.1)", "xlsxwriter (>=1.4.3)"] +feather = ["pyarrow (>=7.0.0)"] +fss = ["fsspec (>=2021.07.0)"] +gcp = ["gcsfs (>=2021.07.0)", "pandas-gbq (>=0.15.0)"] +hdf5 = ["tables (>=3.6.1)"] +html = ["beautifulsoup4 (>=4.9.3)", "html5lib (>=1.1)", "lxml (>=4.6.3)"] +mysql = ["SQLAlchemy (>=1.4.16)", "pymysql (>=1.0.2)"] +output-formatting = ["jinja2 (>=3.0.0)", "tabulate (>=0.8.9)"] +parquet = ["pyarrow (>=7.0.0)"] +performance = ["bottleneck (>=1.3.2)", "numba (>=0.53.1)", "numexpr (>=2.7.1)"] +plot = ["matplotlib (>=3.6.1)"] +postgresql = ["SQLAlchemy (>=1.4.16)", "psycopg2 (>=2.8.6)"] +spss = ["pyreadstat (>=1.1.2)"] +sql-other = ["SQLAlchemy (>=1.4.16)"] +test = ["hypothesis (>=6.34.2)", "pytest (>=7.3.2)", "pytest-asyncio (>=0.17.0)", "pytest-xdist (>=2.2.0)"] +xml = ["lxml (>=4.6.3)"] [[package]] name = "parso" @@ -416,56 +522,19 @@ testing = ["docopt", "pytest (<6.0.0)"] [[package]] name = "pexpect" -version = "4.8.0" +version = "4.9.0" description = "Pexpect allows easy control of interactive console applications." category = "dev" optional = false python-versions = "*" files = [ - {file = "pexpect-4.8.0-py2.py3-none-any.whl", hash = "sha256:0b48a55dcb3c05f3329815901ea4fc1537514d6ba867a152b581d69ae3710937"}, - {file = "pexpect-4.8.0.tar.gz", hash = "sha256:fc65a43959d153d0114afe13997d439c22823a27cefceb5ff35c2178c6784c0c"}, + {file = "pexpect-4.9.0-py2.py3-none-any.whl", hash = "sha256:7236d1e080e4936be2dc3e326cec0af72acf9212a7e1d060210e70a47e253523"}, + {file = "pexpect-4.9.0.tar.gz", hash = "sha256:ee7d41123f3c9911050ea2c2dac107568dc43b2d3b0c7557a33212c398ead30f"}, ] [package.dependencies] ptyprocess = ">=0.5" -[[package]] -name = "pickle5" -version = "0.0.12" -description = "Backport of the pickle 5 protocol (PEP 574) and other pickle changes" -category = "main" -optional = false -python-versions = ">=3.5, <3.8" -files = [ - {file = "pickle5-0.0.12-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:748a1252c86c9ba18778d2cc2d314ec36eec224acc1b965da4cdf74702086c88"}, - {file = "pickle5-0.0.12-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cc61c59343ad63745da4855846cfe459cf046ff669aad6373ea6b41f98ed835d"}, - {file = "pickle5-0.0.12-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3fbdc106ae5551cd808897d30582e65bd1efa44c3610b2aee37df34397316b4f"}, - {file = "pickle5-0.0.12-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:49a51f75132b76747ad7b54196bca1a6c4c814fec116b2909fccaabf1073d919"}, - {file = "pickle5-0.0.12-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2141be966d40c1e6bbe4d77c4ea38df3be6f35b611941acbb50405a247bcedde"}, - {file = "pickle5-0.0.12-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:5c7eb5a1b759bf0acf2cfb7ee3394b2935ec6de9174f4eb9044349cb06ca0ff7"}, - {file = "pickle5-0.0.12-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:d68731aae66b0727aca64fc4a7b11e637088a33c829db70f6e9749474174eab6"}, - {file = "pickle5-0.0.12-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:fa281642c1fe043fb3ad3cdfbdc9d4531ad47b1e9c0fdeaf76c54a7b84b3eb2d"}, - {file = "pickle5-0.0.12-cp36-cp36m-musllinux_1_1_ppc64le.whl", hash = "sha256:91464df7f22f40d656e6b73ebf042710ebf6ea6a3fb232bd70b1c384626abd69"}, - {file = "pickle5-0.0.12-cp36-cp36m-musllinux_1_1_s390x.whl", hash = "sha256:65297f87aef6aff5361a39d9f841437f08295e8dce985f08b97939ced749f3ff"}, - {file = "pickle5-0.0.12-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:8d3c9d8110eb775828a5a5a636eca5e9c63bf3f41c3fd1b05f97a0b46e1c5255"}, - {file = "pickle5-0.0.12-cp36-cp36m-win32.whl", hash = "sha256:167aa4cc2349513819267e8d8e84b1244e69132366830a2574889a3b5d3cacf8"}, - {file = "pickle5-0.0.12-cp36-cp36m-win_amd64.whl", hash = "sha256:b844af6e179163b40020f06ed45cebfb9a227077dc512cc40d9e9bc8b3aa62a6"}, - {file = "pickle5-0.0.12-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:c396073370353391ead10af3100234c9e4fe442e1719f49d469b70e6058589e9"}, - {file = "pickle5-0.0.12-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:251ba2c996ccbc36147ae18d7ed80020c4739f828fd3cd2833291c6f473c7070"}, - {file = "pickle5-0.0.12-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a77e6c9c760abfee6875779b675577e2516206d17d6f4e0e6af76798d84be4db"}, - {file = "pickle5-0.0.12-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9075a22b9ae42bb3f68b751561c152233529502ab91feab34ce87e0673530098"}, - {file = "pickle5-0.0.12-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:17352fbea99a77c179cbdc58406dff84948b7675acfa1adaab1c153949fbbb43"}, - {file = "pickle5-0.0.12-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:734ce538fdb441a78a40c333d744d66ca1fbf9803a14756ddad4bf9af8a82890"}, - {file = "pickle5-0.0.12-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:66df777711fe548210cf11685e36be8bbd2ed201cfd18518da261a0375e57fb3"}, - {file = "pickle5-0.0.12-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:ccda4c39b8beb3a58881c1a139b919e5b1644fa64f1b8596c6e3392b99cd191d"}, - {file = "pickle5-0.0.12-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:d8c0436ce4875133208fc458907466a631ac214d44e4e71b032b384d61599d97"}, - {file = "pickle5-0.0.12-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:c533bd89093ebb3e95465fbc45428082b68e1dca4ce039205c1530a4343dc792"}, - {file = "pickle5-0.0.12-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:403eec60bb72ae4e4a01ff0b092509bf3822fda406363be472e18e70c5397a02"}, - {file = "pickle5-0.0.12-cp37-cp37m-win32.whl", hash = "sha256:67c19d88cabce5c0730b6c09b0d0ade163b0881904cfc491790205f7d9a09a2b"}, - {file = "pickle5-0.0.12-cp37-cp37m-win_amd64.whl", hash = "sha256:880883674f0ce0785709bdacec244dcb10b86db2d4cd84770006c1ff2aa852b6"}, - {file = "pickle5-0.0.12.tar.gz", hash = "sha256:80143d4e4ea9d6cd70e841af8745dbc4d50adef5adf99e725d240bcb92e6f1e8"}, -] - [[package]] name = "pickleshare" version = "0.7.5" @@ -480,33 +549,30 @@ files = [ [[package]] name = "pluggy" -version = "1.0.0" +version = "1.4.0" description = "plugin and hook calling mechanisms for python" category = "dev" optional = false -python-versions = ">=3.6" +python-versions = ">=3.8" files = [ - {file = "pluggy-1.0.0-py2.py3-none-any.whl", hash = "sha256:74134bbf457f031a36d68416e1509f34bd5ccc019f0bcc952c7b909d06b37bd3"}, - {file = "pluggy-1.0.0.tar.gz", hash = "sha256:4224373bacce55f955a878bf9cfa763c1e360858e330072059e10bad68531159"}, + {file = "pluggy-1.4.0-py3-none-any.whl", hash = "sha256:7db9f7b503d67d1c5b95f59773ebb58a8c1c288129a88665838012cfb07b8981"}, + {file = "pluggy-1.4.0.tar.gz", hash = "sha256:8c85c2876142a764e5b7548e7d9a0e0ddb46f5185161049a79b7e974454223be"}, ] -[package.dependencies] -importlib-metadata = {version = ">=0.12", markers = "python_version < \"3.8\""} - [package.extras] dev = ["pre-commit", "tox"] testing = ["pytest", "pytest-benchmark"] [[package]] name = "prompt-toolkit" -version = "3.0.38" +version = "3.0.43" description = "Library for building powerful interactive command lines in Python" category = "dev" optional = false python-versions = ">=3.7.0" files = [ - {file = "prompt_toolkit-3.0.38-py3-none-any.whl", hash = "sha256:45ea77a2f7c60418850331366c81cf6b5b9cf4c7fd34616f733c5427e6abbb1f"}, - {file = "prompt_toolkit-3.0.38.tar.gz", hash = "sha256:23ac5d50538a9a38c8bde05fecb47d0b403ecd0662857a86f886f798563d5b9b"}, + {file = "prompt_toolkit-3.0.43-py3-none-any.whl", hash = "sha256:a11a29cb3bf0a28a387fe5122cdb649816a957cd9261dcedf8c9f1fef33eacf6"}, + {file = "prompt_toolkit-3.0.43.tar.gz", hash = "sha256:3527b7af26106cbc65a040bcc84839a3566ec1b051bb0bfe953631e704b0ff7d"}, ] [package.dependencies] @@ -524,36 +590,51 @@ files = [ {file = "ptyprocess-0.7.0.tar.gz", hash = "sha256:5c5d0a3b48ceee0b48485e0c26037c0acd7d29765ca3fbb5cb3831d347423220"}, ] +[[package]] +name = "pure-eval" +version = "0.2.2" +description = "Safely evaluate AST nodes without side effects" +category = "dev" +optional = false +python-versions = "*" +files = [ + {file = "pure_eval-0.2.2-py3-none-any.whl", hash = "sha256:01eaab343580944bc56080ebe0a674b39ec44a945e6d09ba7db3cb8cec289350"}, + {file = "pure_eval-0.2.2.tar.gz", hash = "sha256:2b45320af6dfaa1750f543d714b6d1c520a1688dec6fd24d339063ce0aaa9ac3"}, +] + +[package.extras] +tests = ["pytest"] + [[package]] name = "pygments" -version = "2.14.0" +version = "2.17.2" description = "Pygments is a syntax highlighting package written in Python." category = "dev" optional = false -python-versions = ">=3.6" +python-versions = ">=3.7" files = [ - {file = "Pygments-2.14.0-py3-none-any.whl", hash = "sha256:fa7bd7bd2771287c0de303af8bfdfc731f51bd2c6a47ab69d117138893b82717"}, - {file = "Pygments-2.14.0.tar.gz", hash = "sha256:b3ed06a9e8ac9a9aae5a6f5dbe78a8a58655d17b43b93c078f094ddc476ae297"}, + {file = "pygments-2.17.2-py3-none-any.whl", hash = "sha256:b27c2826c47d0f3219f29554824c30c5e8945175d888647acd804ddd04af846c"}, + {file = "pygments-2.17.2.tar.gz", hash = "sha256:da46cec9fd2de5be3a8a784f434e4c4ab670b4ff54d605c4c2717e9d49c4c367"}, ] [package.extras] plugins = ["importlib-metadata"] +windows-terminal = ["colorama (>=0.4.6)"] [[package]] name = "pystow" -version = "0.5.0" +version = "0.5.3" description = "Easily pick a place to store data for your python package." category = "main" optional = false python-versions = ">=3.7" files = [ - {file = "pystow-0.5.0-py3-none-any.whl", hash = "sha256:816a9da33cd8a3f8fbda577c3d2957cfc99d1fa3ea45032dbfa087b9a21b630f"}, - {file = "pystow-0.5.0.tar.gz", hash = "sha256:490e9ecbe4f947c72f63297f43f6584323c9ca2f2d48d47f2a22a815dc552bb4"}, + {file = "pystow-0.5.3-py3-none-any.whl", hash = "sha256:53106b299ae22fe5f3ae72f6410696ec9864523eb14f4e7192823bacffbe5722"}, + {file = "pystow-0.5.3.tar.gz", hash = "sha256:3747343be0b154aa15bc02b496f61d7c6f31179c1c210ab1d48b842c7a3aa064"}, ] [package.dependencies] click = "*" -pickle5 = {version = "*", markers = "python_version < \"3.8\""} requests = "*" tqdm = "*" @@ -567,39 +648,55 @@ xml = ["lxml"] [[package]] name = "pytest" -version = "7.2.2" +version = "8.0.2" description = "pytest: simple powerful testing with Python" category = "dev" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "pytest-7.2.2-py3-none-any.whl", hash = "sha256:130328f552dcfac0b1cec75c12e3f005619dc5f874f0a06e8ff7263f0ee6225e"}, - {file = "pytest-7.2.2.tar.gz", hash = "sha256:c99ab0c73aceb050f68929bc93af19ab6db0558791c6a0715723abe9d0ade9d4"}, + {file = "pytest-8.0.2-py3-none-any.whl", hash = "sha256:edfaaef32ce5172d5466b5127b42e0d6d35ebbe4453f0e3505d96afd93f6b096"}, + {file = "pytest-8.0.2.tar.gz", hash = "sha256:d4051d623a2e0b7e51960ba963193b09ce6daeb9759a451844a21e4ddedfc1bd"}, ] [package.dependencies] -attrs = ">=19.2.0" colorama = {version = "*", markers = "sys_platform == \"win32\""} exceptiongroup = {version = ">=1.0.0rc8", markers = "python_version < \"3.11\""} -importlib-metadata = {version = ">=0.12", markers = "python_version < \"3.8\""} iniconfig = "*" packaging = "*" -pluggy = ">=0.12,<2.0" +pluggy = ">=1.3.0,<2.0" tomli = {version = ">=1.0.0", markers = "python_version < \"3.11\""} [package.extras] -testing = ["argcomplete", "hypothesis (>=3.56)", "mock", "nose", "pygments (>=2.7.2)", "requests", "xmlschema"] +testing = ["argcomplete", "attrs (>=19.2.0)", "hypothesis (>=3.56)", "mock", "nose", "pygments (>=2.7.2)", "requests", "setuptools", "xmlschema"] + +[[package]] +name = "pytest-mock" +version = "3.12.0" +description = "Thin-wrapper around the mock package for easier use with pytest" +category = "dev" +optional = false +python-versions = ">=3.8" +files = [ + {file = "pytest-mock-3.12.0.tar.gz", hash = "sha256:31a40f038c22cad32287bb43932054451ff5583ff094bca6f675df2f8bc1a6e9"}, + {file = "pytest_mock-3.12.0-py3-none-any.whl", hash = "sha256:0972719a7263072da3a21c7f4773069bcc7486027d7e8e1f81d98a47e701bc4f"}, +] + +[package.dependencies] +pytest = ">=5.0" + +[package.extras] +dev = ["pre-commit", "pytest-asyncio", "tox"] [[package]] name = "python-dateutil" -version = "2.8.2" +version = "2.9.0.post0" description = "Extensions to the standard Python datetime module" category = "main" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" files = [ - {file = "python-dateutil-2.8.2.tar.gz", hash = "sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86"}, - {file = "python_dateutil-2.8.2-py2.py3-none-any.whl", hash = "sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9"}, + {file = "python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3"}, + {file = "python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427"}, ] [package.dependencies] @@ -607,54 +704,37 @@ six = ">=1.5" [[package]] name = "pytz" -version = "2022.7.1" +version = "2024.1" description = "World timezone definitions, modern and historical" category = "main" optional = false python-versions = "*" files = [ - {file = "pytz-2022.7.1-py2.py3-none-any.whl", hash = "sha256:78f4f37d8198e0627c5f1143240bb0206b8691d8d7ac6d78fee88b78733f8c4a"}, - {file = "pytz-2022.7.1.tar.gz", hash = "sha256:01a0681c4b9684a28304615eba55d1ab31ae00bf68ec157ec3708a8182dbbcd0"}, + {file = "pytz-2024.1-py2.py3-none-any.whl", hash = "sha256:328171f4e3623139da4983451950b28e95ac706e13f3f2630a879749e7a8b319"}, + {file = "pytz-2024.1.tar.gz", hash = "sha256:2a29735ea9c18baf14b448846bde5a48030ed267578472d8955cd0e7443a9812"}, ] [[package]] name = "requests" -version = "2.27.1" +version = "2.31.0" description = "Python HTTP for Humans." category = "main" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*" +python-versions = ">=3.7" files = [ - {file = "requests-2.27.1-py2.py3-none-any.whl", hash = "sha256:f22fa1e554c9ddfd16e6e41ac79759e17be9e492b3587efa038054674760e72d"}, - {file = "requests-2.27.1.tar.gz", hash = "sha256:68d7c56fd5a8999887728ef304a6d12edc7be74f1cfa47714fc8b414525c9a61"}, + {file = "requests-2.31.0-py3-none-any.whl", hash = "sha256:58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f"}, + {file = "requests-2.31.0.tar.gz", hash = "sha256:942c5a758f98d790eaed1a29cb6eefc7ffb0d1cf7af05c3d2791656dbd6ad1e1"}, ] [package.dependencies] certifi = ">=2017.4.17" -charset-normalizer = {version = ">=2.0.0,<2.1.0", markers = "python_version >= \"3\""} -idna = {version = ">=2.5,<4", markers = "python_version >= \"3\""} -urllib3 = ">=1.21.1,<1.27" +charset-normalizer = ">=2,<4" +idna = ">=2.5,<4" +urllib3 = ">=1.21.1,<3" [package.extras] -socks = ["PySocks (>=1.5.6,!=1.5.7)", "win-inet-pton"] -use-chardet-on-py3 = ["chardet (>=3.0.2,<5)"] - -[[package]] -name = "setuptools" -version = "67.6.0" -description = "Easily download, build, install, upgrade, and uninstall Python packages" -category = "dev" -optional = false -python-versions = ">=3.7" -files = [ - {file = "setuptools-67.6.0-py3-none-any.whl", hash = "sha256:b78aaa36f6b90a074c1fa651168723acbf45d14cb1196b6f02c0fd07f17623b2"}, - {file = "setuptools-67.6.0.tar.gz", hash = "sha256:2ee892cd5f29f3373097f5a814697e397cf3ce313616df0af11231e2ad118077"}, -] - -[package.extras] -docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-hoverxref (<2)", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (==0.8.3)", "sphinx-reredirects", "sphinxcontrib-towncrier"] -testing = ["build[virtualenv]", "filelock (>=3.4.0)", "flake8 (<5)", "flake8-2020", "ini2toml[lite] (>=0.9)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "pip (>=19.1)", "pip-run (>=8.8)", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-flake8", "pytest-mypy (>=0.9.1)", "pytest-perf", "pytest-timeout", "pytest-xdist", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"] -testing-integration = ["build[virtualenv]", "filelock (>=3.4.0)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "pytest", "pytest-enabler", "pytest-xdist", "tomli", "virtualenv (>=13.0.0)", "wheel"] +socks = ["PySocks (>=1.5.6,!=1.5.7)"] +use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] [[package]] name = "six" @@ -668,6 +748,26 @@ files = [ {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, ] +[[package]] +name = "stack-data" +version = "0.6.3" +description = "Extract data from python stack frames and tracebacks for informative displays" +category = "dev" +optional = false +python-versions = "*" +files = [ + {file = "stack_data-0.6.3-py3-none-any.whl", hash = "sha256:d5558e0c25a4cb0853cddad3d77da9891a08cb85dd9f9f91b9f8cd66e511e695"}, + {file = "stack_data-0.6.3.tar.gz", hash = "sha256:836a778de4fec4dcd1dcd89ed8abff8a221f58308462e1c4aa2a3cf30148f0b9"}, +] + +[package.dependencies] +asttokens = ">=2.1.0" +executing = ">=1.2.0" +pure-eval = "*" + +[package.extras] +tests = ["cython", "littleutils", "pygments", "pytest", "typeguard"] + [[package]] name = "tomli" version = "2.0.1" @@ -682,99 +782,96 @@ files = [ [[package]] name = "tqdm" -version = "4.65.0" +version = "4.66.2" description = "Fast, Extensible Progress Meter" category = "main" optional = false python-versions = ">=3.7" files = [ - {file = "tqdm-4.65.0-py3-none-any.whl", hash = "sha256:c4f53a17fe37e132815abceec022631be8ffe1b9381c2e6e30aa70edc99e9671"}, - {file = "tqdm-4.65.0.tar.gz", hash = "sha256:1871fb68a86b8fb3b59ca4cdd3dcccbc7e6d613eeed31f4c332531977b89beb5"}, + {file = "tqdm-4.66.2-py3-none-any.whl", hash = "sha256:1ee4f8a893eb9bef51c6e35730cebf234d5d0b6bd112b0271e10ed7c24a02bd9"}, + {file = "tqdm-4.66.2.tar.gz", hash = "sha256:6cd52cdf0fef0e0f543299cfc96fec90d7b8a7e88745f411ec33eb44d5ed3531"}, ] [package.dependencies] colorama = {version = "*", markers = "platform_system == \"Windows\""} [package.extras] -dev = ["py-make (>=0.1.0)", "twine", "wheel"] +dev = ["pytest (>=6)", "pytest-cov", "pytest-timeout", "pytest-xdist"] notebook = ["ipywidgets (>=6)"] slack = ["slack-sdk"] telegram = ["requests"] [[package]] name = "traitlets" -version = "5.9.0" +version = "5.14.1" description = "Traitlets Python configuration system" category = "dev" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "traitlets-5.9.0-py3-none-any.whl", hash = "sha256:9e6ec080259b9a5940c797d58b613b5e31441c2257b87c2e795c5228ae80d2d8"}, - {file = "traitlets-5.9.0.tar.gz", hash = "sha256:f6cde21a9c68cf756af02035f72d5a723bf607e862e7be33ece505abf4a3bad9"}, + {file = "traitlets-5.14.1-py3-none-any.whl", hash = "sha256:2e5a030e6eff91737c643231bfcf04a65b0132078dad75e4936700b213652e74"}, + {file = "traitlets-5.14.1.tar.gz", hash = "sha256:8585105b371a04b8316a43d5ce29c098575c2e477850b62b848b964f1444527e"}, ] [package.extras] docs = ["myst-parser", "pydata-sphinx-theme", "sphinx"] -test = ["argcomplete (>=2.0)", "pre-commit", "pytest", "pytest-mock"] +test = ["argcomplete (>=3.0.3)", "mypy (>=1.7.0)", "pre-commit", "pytest (>=7.0,<7.5)", "pytest-mock", "pytest-mypy-testing"] [[package]] name = "typing-extensions" -version = "4.5.0" -description = "Backported and Experimental Type Hints for Python 3.7+" +version = "4.10.0" +description = "Backported and Experimental Type Hints for Python 3.8+" +category = "dev" +optional = false +python-versions = ">=3.8" +files = [ + {file = "typing_extensions-4.10.0-py3-none-any.whl", hash = "sha256:69b1a937c3a517342112fb4c6df7e72fc39a38e7891a5730ed4985b5214b5475"}, + {file = "typing_extensions-4.10.0.tar.gz", hash = "sha256:b0abd7c89e8fb96f98db18d86106ff1d90ab692004eb746cf6eda2682f91b3cb"}, +] + +[[package]] +name = "tzdata" +version = "2024.1" +description = "Provider of IANA time zone data" category = "main" optional = false -python-versions = ">=3.7" +python-versions = ">=2" files = [ - {file = "typing_extensions-4.5.0-py3-none-any.whl", hash = "sha256:fb33085c39dd998ac16d1431ebc293a8b3eedd00fd4a32de0ff79002c19511b4"}, - {file = "typing_extensions-4.5.0.tar.gz", hash = "sha256:5cb5f4a79139d699607b3ef622a1dedafa84e115ab0024e0d9c044a9479ca7cb"}, + {file = "tzdata-2024.1-py2.py3-none-any.whl", hash = "sha256:9068bc196136463f5245e51efda838afa15aaeca9903f49050dfa2679db4d252"}, + {file = "tzdata-2024.1.tar.gz", hash = "sha256:2674120f8d891909751c38abcdfd386ac0a5a1127954fbc332af6b5ceae07efd"}, ] [[package]] name = "urllib3" -version = "1.26.15" +version = "2.2.1" description = "HTTP library with thread-safe connection pooling, file post, and more." category = "main" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*" +python-versions = ">=3.8" files = [ - {file = "urllib3-1.26.15-py2.py3-none-any.whl", hash = "sha256:aa751d169e23c7479ce47a0cb0da579e3ede798f994f5816a74e4f4500dcea42"}, - {file = "urllib3-1.26.15.tar.gz", hash = "sha256:8a388717b9476f934a21484e8c8e61875ab60644d29b9b39e11e4b9dc1c6b305"}, + {file = "urllib3-2.2.1-py3-none-any.whl", hash = "sha256:450b20ec296a467077128bff42b73080516e71b56ff59a60a02bef2232c4fa9d"}, + {file = "urllib3-2.2.1.tar.gz", hash = "sha256:d0570876c61ab9e520d776c38acbbb5b05a776d3f9ff98a5c8fd5162a444cf19"}, ] [package.extras] -brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)", "brotlipy (>=0.6.0)"] -secure = ["certifi", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "ipaddress", "pyOpenSSL (>=0.14)", "urllib3-secure-extra"] -socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"] +brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)"] +h2 = ["h2 (>=4,<5)"] +socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] +zstd = ["zstandard (>=0.18.0)"] [[package]] name = "wcwidth" -version = "0.2.6" +version = "0.2.13" description = "Measures the displayed width of unicode strings in a terminal" category = "dev" optional = false python-versions = "*" files = [ - {file = "wcwidth-0.2.6-py2.py3-none-any.whl", hash = "sha256:795b138f6875577cd91bba52baf9e445cd5118fd32723b460e30a0af30ea230e"}, - {file = "wcwidth-0.2.6.tar.gz", hash = "sha256:a5220780a404dbe3353789870978e472cfe477761f06ee55077256e509b156d0"}, + {file = "wcwidth-0.2.13-py2.py3-none-any.whl", hash = "sha256:3da69048e4540d84af32131829ff948f1e022c1c6bdb8d6102117aac784f6859"}, + {file = "wcwidth-0.2.13.tar.gz", hash = "sha256:72ea0c06399eb286d978fdedb6923a9eb47e1c486ce63e9b4e64fc18303972b5"}, ] -[[package]] -name = "zipp" -version = "3.15.0" -description = "Backport of pathlib-compatible object wrapper for zip files" -category = "main" -optional = false -python-versions = ">=3.7" -files = [ - {file = "zipp-3.15.0-py3-none-any.whl", hash = "sha256:48904fc76a60e542af151aded95726c1a5c34ed43ab4134b597665c86d7ad556"}, - {file = "zipp-3.15.0.tar.gz", hash = "sha256:112929ad649da941c23de50f356a2b5570c954b65150642bccdd66bf194d224b"}, -] - -[package.extras] -docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] -testing = ["big-O", "flake8 (<5)", "jaraco.functools", "jaraco.itertools", "more-itertools", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-flake8", "pytest-mypy (>=0.9.1)"] - [metadata] lock-version = "2.0" -python-versions = ">=3.7.1" -content-hash = "d9afa48231cbd0355b39aa85d86ffeb273905f2ecf9c7a0c2f748ebddc640519" +python-versions = ">=3.8" +content-hash = "637a638db9aec7e9871891dca2220a29dc28207e0628372fe8f057fe2dd35b54" diff --git a/pyproject.toml b/pyproject.toml index 59c39e3..3e39141 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -8,7 +8,7 @@ repository = "https://github.com/ScaDS/MovieGraphBenchmark" [tool.poetry.dependencies] -python = ">=3.7.1" +python = ">=3.8" requests = "*" tqdm = "*" pandas = "*" @@ -17,10 +17,16 @@ pystow = "*" [tool.poetry.scripts] moviegraphbenchmark = "moviegraphbenchmark.create_graph:create_graph_data" -[tool.poetry.dev-dependencies] +[tool.poetry.group.dev.dependencies] ipdb = "^0.13.9" -pytest = "^7.1.2" +pytest = "^8.0.0" +pytest-mock = "^3.12.0" [build-system] requires = ["poetry-core>=1.0.0"] build-backend = "poetry.core.masonry.api" + +[tool.pytest.ini_options] +markers = [ + "slow: mark test as slow" +] diff --git a/src/moviegraphbenchmark/create_graph.py b/src/moviegraphbenchmark/create_graph.py index 351d609..1988ed6 100644 --- a/src/moviegraphbenchmark/create_graph.py +++ b/src/moviegraphbenchmark/create_graph.py @@ -2,7 +2,7 @@ import logging import os import zipfile -from typing import List, Set, Tuple +from typing import List, Set, Tuple, Optional import click @@ -58,6 +58,15 @@ def get_excluded(path: str) -> Set[Tuple[str, str]]: } +def _read_row_tuples(path: str, exclusion: str, allowed: Set[str]): + with open(path, "r", encoding="utf8") as in_file: + for line in in_file: + if not line.startswith(exclusion): + row = line.strip().split("\t") + if row[0] in allowed: + yield row + + def _should_write( s: str, o: str, allowed: Set[str], exclude: Set[Tuple[str, str]] ) -> bool: @@ -83,7 +92,7 @@ def _should_write( return False -def _add_dtype(obj: str, dtype: str = None) -> str: +def _add_dtype(obj: str, dtype: Optional[str] = None) -> str: if dtype is None: return obj return '"' + obj + '"^^' + dtype @@ -106,7 +115,7 @@ def create_trips( multiple_possible: bool, allowed: Set[str], exclude: Set[Tuple[str, str]], - dtype: str = None, + dtype: Optional[str] = None, ) -> List[Tuple[str, str, str]]: if not (_sanity_check(s) and _sanity_check(p) and _sanity_check(o)): return [] @@ -156,70 +165,40 @@ def handle_name_basics( ) -> Tuple[List[Tuple[str, str, str]], List[Tuple[str, str, str]]]: attr_trips = [] rel_trips = [] - with open(path, "r", encoding="utf8") as in_file: - for line in in_file: - if not line.startswith("nconst\t"): - row = line.strip().split("\t") - if row[0] in allowed: - attr_trips.extend( - create_trips( - s=row[0], - p="primaryName", - o=row[1], - multiple_possible=False, - allowed=allowed, - exclude=exclude, - ) - ) - attr_trips.extend( - create_trips( - s=row[0], - p="birthYear", - o=row[2], - multiple_possible=False, - allowed=allowed, - exclude=exclude, - dtype=DTYPE_DATE, - ) - ) - attr_trips.extend( - create_trips( - s=row[0], - p="deathYear", - o=row[3], - multiple_possible=False, - allowed=allowed, - exclude=exclude, - dtype=DTYPE_DATE, - ) - ) - attr_trips.extend( - create_trips( - s=row[0], - p="primaryProfession", - o=row[4], - multiple_possible=True, - allowed=allowed, - exclude=exclude, - ) - ) - rel_trips.extend( - create_trips( - s=row[0], - p="knownForTitles", - o=row[5], - multiple_possible=True, - allowed=allowed, - exclude=exclude, - ) - ) - rel_trips.append( - ( - BENCHMARK_RESOURCE_PREFIX + row[0], - property_dict["type"], - PERSON_TYPE, - ) - ) + for row in _read_row_tuples(path, exclusion="nconst\t", allowed=allowed): + for p, o, multiple_possible in [ + ("primaryName", row[1], False), + ("birthYear", row[2], False), + ("deathYear", row[3], False), + ("primaryProfession", row[4], True), + ]: + attr_trips.extend( + create_trips( + s=row[0], + p=p, + o=o, + multiple_possible=multiple_possible, + allowed=allowed, + exclude=exclude, + ) + ) + rel_trips.extend( + create_trips( + s=row[0], + p="knownForTitles", + o=row[5], + multiple_possible=True, + allowed=allowed, + exclude=exclude, + ) + ) + rel_trips.append( + ( + BENCHMARK_RESOURCE_PREFIX + row[0], + property_dict["type"], + PERSON_TYPE, + ) + ) return attr_trips, rel_trips @@ -228,93 +207,37 @@ def handle_title_basics( ) -> Tuple[List[Tuple[str, str, str]], List[Tuple[str, str, str]]]: attr_trips = [] rel_trips = [] - with open(path, "r", encoding="utf8") as in_file: - for line in in_file: - if not line.startswith("tconst\t"): - row = line.strip().split("\t") - if row[0] in allowed: - rel_trips.extend( - create_trips( - s=row[0], - p="titleType", - o=row[1], - multiple_possible=False, - allowed=allowed, - exclude=exclude, - ) - ) - attr_trips.extend( - create_trips( - s=row[0], - p="primaryTitle", - o=row[2], - multiple_possible=False, - allowed=allowed, - exclude=exclude, - ) - ) - attr_trips.extend( - create_trips( - s=row[0], - p="originalTitle", - o=row[3], - multiple_possible=False, - allowed=allowed, - exclude=exclude, - ) - ) - attr_trips.extend( - create_trips( - s=row[0], - p="isAdult", - o=row[4], - multiple_possible=False, - allowed=allowed, - exclude=exclude, - ) - ) - attr_trips.extend( - create_trips( - s=row[0], - p="startYear", - o=row[5], - multiple_possible=False, - allowed=allowed, - exclude=exclude, - dtype=DTYPE_DATE, - ) - ) - attr_trips.extend( - create_trips( - s=row[0], - p="endYear", - o=row[6], - multiple_possible=False, - allowed=allowed, - exclude=exclude, - dtype=DTYPE_DATE, - ) - ) - attr_trips.extend( - create_trips( - s=row[0], - p="runtimeMinutes", - o=row[7], - multiple_possible=False, - allowed=allowed, - exclude=exclude, - ) - ) - attr_trips.extend( - create_trips( - s=row[0], - p="genres", - o=row[8], - multiple_possible=False, - allowed=allowed, - exclude=exclude, - ) - ) + for row in _read_row_tuples(path, exclusion="tconst\t", allowed=allowed): + rel_trips.extend( + create_trips( + s=row[0], + p="titleType", + o=row[1], + multiple_possible=False, + allowed=allowed, + exclude=exclude, + ) + ) + for p, o, multiple_possible, dtype in [ + ("primaryTitle", row[2], False, None), + ("originalTitle", row[3], False, None), + ("isAdult", row[4], False, None), + ("startYear", row[5], False, DTYPE_DATE), + ("endYear", row[6], False, DTYPE_DATE), + ("runtimeMinutes", row[7], False, None), + ("genres", row[8], False, None), + ]: + attr_trips.extend( + create_trips( + s=row[0], + p=p, + o=o, + multiple_possible=multiple_possible, + allowed=allowed, + exclude=exclude, + dtype=dtype, + ) + ) return attr_trips, rel_trips @@ -322,31 +245,19 @@ def handle_title_crew( path: str, allowed: Set[str], exclude: Set[Tuple[str, str]] ) -> Tuple[List[Tuple[str, str, str]], List[Tuple[str, str, str]]]: rel_trips = [] - with open(path, "r", encoding="utf8") as in_file: - for line in in_file: - if not line.startswith("tconst\t"): - row = line.strip().split("\t") - if row[0] in allowed: - rel_trips.extend( - create_trips( - s=row[0], - p="participatedIn", - o=row[1], - multiple_possible=True, - allowed=allowed, - exclude=exclude, - ) - ) - rel_trips.extend( - create_trips( - s=row[0], - p="participatedIn", - o=row[2], - multiple_possible=True, - allowed=allowed, - exclude=exclude, - ) - ) + + for row in _read_row_tuples(path, exclusion="tconst\t", allowed=allowed): + for o in [row[1], row[2]]: + rel_trips.extend( + create_trips( + s=row[0], + p="participatedIn", + o=o, + multiple_possible=True, + allowed=allowed, + exclude=exclude, + ) + ) return [], rel_trips @@ -355,53 +266,37 @@ def handle_title_episode( ) -> Tuple[List[Tuple[str, str, str]], List[Tuple[str, str, str]]]: attr_trips = [] rel_trips = [] - with open(path, "r", encoding="utf8") as in_file: - for line in in_file: - if not line.startswith("tconst\t"): - row = line.strip().split("\t") - if row[1] in allowed: - rel_trips.extend( - create_trips( - s=row[0], - p="episodeOf", - o=row[1], - multiple_possible=False, - allowed=allowed, - exclude=exclude, - ) - ) - rel_trips.extend( - create_trips( - s=row[0], - p="titleType", - o="tvEpisode", - multiple_possible=False, - allowed=allowed, - exclude=exclude, - ) - ) - attr_trips.extend( - create_trips( - s=row[0], - p="seasonNumber", - o=row[2], - multiple_possible=False, - allowed=allowed, - exclude=exclude, - dtype=DTYPE_NON_NEG_INT, - ) - ) - attr_trips.extend( - create_trips( - s=row[0], - p="episodeNumber", - o=row[3], - multiple_possible=False, - allowed=allowed, - exclude=exclude, - dtype=DTYPE_NON_NEG_INT, - ) - ) + for row in _read_row_tuples(path, exclusion="tconst\t", allowed=allowed): + for p, o in [ + ("episodeOf", row[1]), + ("titleType", "tvEpisode"), + ]: + rel_trips.extend( + create_trips( + s=row[0], + p=p, + o=o, + multiple_possible=False, + allowed=allowed, + exclude=exclude, + ) + ) + + for p, o in [ + ("seasonNumber", row[2]), + ("episodeNumber", row[3]), + ]: + attr_trips.extend( + create_trips( + s=row[0], + p=p, + o=o, + multiple_possible=False, + allowed=allowed, + exclude=exclude, + dtype=DTYPE_NON_NEG_INT, + ) + ) return attr_trips, rel_trips @@ -410,21 +305,17 @@ def handle_title_principals( ) -> Tuple[List[Tuple[str, str, str]], List[Tuple[str, str, str]]]: attr_trips: List[Tuple[str, str, str]] = [] rel_trips = [] - with open(path, "r", encoding="utf8") as in_file: - for line in in_file: - if not line.startswith("tconst\t"): - row = line.strip().split("\t") - if row[0] in allowed: - rel_trips.extend( - create_trips( - s=row[2], - p="participatedIn", - o=row[0], - multiple_possible=False, - allowed=allowed, - exclude=exclude, - ) - ) + for row in _read_row_tuples(path, exclusion="tconst\t", allowed=allowed): + rel_trips.extend( + create_trips( + s=row[2], + p="participatedIn", + o=row[0], + multiple_possible=False, + allowed=allowed, + exclude=exclude, + ) + ) return attr_trips, rel_trips @@ -442,7 +333,6 @@ def parse_files( file_handler_dict = { "name.basics.tsv": handle_name_basics, "title.basics.tsv": handle_title_basics, - # "title.crew.tsv": handle_title_crew, "title.episode.tsv": handle_title_episode, "title.principals.tsv": handle_title_principals, } @@ -497,7 +387,7 @@ def write_files( out_writer_rel.write("\t".join(t) + "\n") -def _download(data_path: str): +def _download_data(data_path: str): if not os.path.exists(data_path): os.makedirs(data_path) download_file( @@ -510,13 +400,13 @@ def _download(data_path: str): os.remove(zip_path) -def _data_path() -> str: +def _create_data_path() -> Tuple[str, bool]: file_path = os.path.abspath(__file__) repo_path = os.path.split(os.path.split(os.path.split(file_path)[0])[0])[0] data_path = os.path.join(repo_path, "data") # if repo was cloned this exists if os.path.exists(data_path): - return data_path + return data_path, True else: # else we use pystow try: @@ -525,24 +415,26 @@ def _data_path() -> str: data_path = pystow.join("moviegraphbenchmark", "data") except ImportError: logger.error("Please install pystow: pip install pystow") - return data_path + return data_path, False -def _create_graph_data(data_path: str = None) -> str: +def _create_graph_data(data_path: Optional[str] = None) -> str: """(Download and) create benchmark data on specified path. :param data_path: Path where data should be stored. :return: data_path """ + existing_data_path = False if data_path is None: - data_path = _data_path() + data_path, existing_data_path = _create_data_path() + print(data_path) # check if data was already created if os.path.exists(os.path.join(data_path, "imdb-tmdb", "rel_triples_1")): logger.info(f"Data already present in {data_path}") return data_path logger.info(f"Using data path: {data_path}") - if not os.path.exists(os.path.join(data_path, "imdb-tmdb", "rel_triples_2")): - _download(data_path) + if not existing_data_path or not os.path.exists(os.path.join(data_path, "imdb-tmdb", "rel_triples_2")): + _download_data(data_path) imdb_path = os.path.join(data_path, "imdb") download_if_needed(imdb_path) allowed = get_allowed(os.path.join(data_path, "imdb", "allowed")) @@ -555,7 +447,7 @@ def _create_graph_data(data_path: str = None) -> str: @click.command @click.option("--data-path", default=None, help="Path where data is stored") -def create_graph_data(data_path: str = None): +def create_graph_data(data_path: Optional[str] = None): """(Download and) create benchmark data on specified path. :param data_path: Path where data should be stored. diff --git a/src/moviegraphbenchmark/get_imdb_data.py b/src/moviegraphbenchmark/get_imdb_data.py index 13b065c..73e5938 100644 --- a/src/moviegraphbenchmark/get_imdb_data.py +++ b/src/moviegraphbenchmark/get_imdb_data.py @@ -2,15 +2,12 @@ import logging import os import shutil -import sys from moviegraphbenchmark.utils import download_file -import requests uris = { "https://web.archive.org/web/20200717014821/https://datasets.imdbws.com/name.basics.tsv.gz": "name.basics.tsv", "https://web.archive.org/web/20200717014801/https://datasets.imdbws.com/title.basics.tsv.gz": "title.basics.tsv", - # "https://datasets.imdbws.com/title.crew.tsv.gz": "title.crew.tsv", "https://web.archive.org/web/20200717014920/https://datasets.imdbws.com/title.episode.tsv.gz": "title.episode.tsv", "https://web.archive.org/web/20200717014706/https://datasets.imdbws.com/title.principals.tsv.gz": "title.principals.tsv", } @@ -18,6 +15,7 @@ logger = logging.getLogger("moviegraphbenchmark") + def unzip(filepath: str): with gzip.open(filepath + ".gz", "rb") as f_in: with open(filepath, "wb") as f_out: diff --git a/tests/read_allowed.py b/tests/read_allowed.py new file mode 100644 index 0000000..10790ac --- /dev/null +++ b/tests/read_allowed.py @@ -0,0 +1,10 @@ +import pathlib +import os + +def read_allowed_lists_from_resources(): + res_path = pathlib.Path(__file__).parent.joinpath("resources").absolute() + allowed_lists = [] + for allowed in ["allowed_episode","allowed_film", "allowed_name", "allowed_show"]: + with open(os.path.join(res_path, allowed), "r") as in_file: + allowed_lists.append([line.strip() for line in in_file]) + return allowed_lists diff --git a/tests/resources/allowed_episode b/tests/resources/allowed_episode new file mode 100644 index 0000000..030fafd --- /dev/null +++ b/tests/resources/allowed_episode @@ -0,0 +1,1082 @@ +tt0057585 +tt0067875 +tt0070816 +tt0249405 +tt0283984 +tt0284064 +tt0287423 +tt0287638 +tt0290529 +tt0290569 +tt0290573 +tt0290800 +tt0336480 +tt0352868 +tt0354167 +tt0372838 +tt0372839 +tt0372840 +tt0372841 +tt0372842 +tt0372843 +tt0372844 +tt0394763 +tt0394811 +tt0394812 +tt0394813 +tt0394814 +tt0394815 +tt0394816 +tt0394817 +tt0394818 +tt0394819 +tt0394820 +tt0394821 +tt0394822 +tt0394823 +tt0394824 +tt0394936 +tt0397919 +tt0504568 +tt0504569 +tt0504570 +tt0504571 +tt0504572 +tt0505623 +tt0505624 +tt0505625 +tt0505626 +tt0505627 +tt0505628 +tt0505629 +tt0505630 +tt0505631 +tt0505632 +tt0505633 +tt0505634 +tt0505635 +tt0505636 +tt0505637 +tt0505638 +tt0505639 +tt0505640 +tt0505641 +tt0505642 +tt0505643 +tt0505644 +tt0505645 +tt0505646 +tt0505647 +tt0505648 +tt0505649 +tt0505650 +tt0505651 +tt0505652 +tt0505653 +tt0505654 +tt0505655 +tt0505656 +tt0505657 +tt0505658 +tt0505659 +tt0505660 +tt0505661 +tt0505662 +tt0505663 +tt0505664 +tt0505665 +tt0505666 +tt0505667 +tt0505668 +tt0505669 +tt0505670 +tt0505671 +tt0505672 +tt0505673 +tt0505674 +tt0505675 +tt0505676 +tt0505677 +tt0505678 +tt0505679 +tt0505680 +tt0505681 +tt0505682 +tt0505683 +tt0505684 +tt0505685 +tt0505686 +tt0505687 +tt0505688 +tt0505689 +tt0505690 +tt0505691 +tt0505692 +tt0505693 +tt0505694 +tt0505695 +tt0505696 +tt0505697 +tt0505698 +tt0505699 +tt0505700 +tt0505701 +tt0505702 +tt0505703 +tt0505704 +tt0505705 +tt0505706 +tt0505707 +tt0520122 +tt0520123 +tt0520124 +tt0520125 +tt0520126 +tt0520127 +tt0520128 +tt0520129 +tt0520130 +tt0520131 +tt0520132 +tt0520133 +tt0520134 +tt0520135 +tt0520136 +tt0520137 +tt0520138 +tt0520139 +tt0520140 +tt0520141 +tt0520142 +tt0520143 +tt0520144 +tt0520145 +tt0520146 +tt0520147 +tt0520148 +tt0520149 +tt0520150 +tt0520151 +tt0520152 +tt0520153 +tt0520154 +tt0520155 +tt0520156 +tt0520157 +tt0520158 +tt0520159 +tt0520160 +tt0551381 +tt0551382 +tt0551383 +tt0551384 +tt0551385 +tt0551386 +tt0551387 +tt0551388 +tt0551389 +tt0551390 +tt0551391 +tt0551392 +tt0551393 +tt0551394 +tt0551395 +tt0551396 +tt0551397 +tt0551398 +tt0551399 +tt0551400 +tt0551401 +tt0551402 +tt0551403 +tt0551404 +tt0551405 +tt0551406 +tt0551407 +tt0551408 +tt0551409 +tt0551410 +tt0551411 +tt0551412 +tt0551413 +tt0551414 +tt0551415 +tt0551416 +tt0551417 +tt0551418 +tt0551419 +tt0551420 +tt0551421 +tt0551422 +tt0551423 +tt0551424 +tt0551425 +tt0551426 +tt0551427 +tt0551428 +tt0551429 +tt0551430 +tt0584701 +tt0584703 +tt0584705 +tt0584706 +tt0584707 +tt0584708 +tt0584710 +tt0584711 +tt0584712 +tt0584713 +tt0584714 +tt0584715 +tt0584716 +tt0584717 +tt0584718 +tt0584721 +tt0584722 +tt0584723 +tt0596817 +tt0596818 +tt0596819 +tt0596820 +tt0596821 +tt0596822 +tt0596823 +tt0596824 +tt0596825 +tt0596826 +tt0596827 +tt0596828 +tt0596829 +tt0596830 +tt0596831 +tt0596832 +tt0596833 +tt0596834 +tt0596835 +tt0596836 +tt0596837 +tt0596838 +tt0601235 +tt0604328 +tt0604329 +tt0604330 +tt0604331 +tt0604332 +tt0604333 +tt0604334 +tt0604335 +tt0604336 +tt0604337 +tt0604338 +tt0604339 +tt0604340 +tt0604341 +tt0604342 +tt0604343 +tt0604344 +tt0604345 +tt0604346 +tt0604347 +tt0604348 +tt0604349 +tt0604350 +tt0604351 +tt0604352 +tt0604353 +tt0604354 +tt0604355 +tt0604356 +tt0604357 +tt0604358 +tt0604359 +tt0604360 +tt0604361 +tt0604362 +tt0604363 +tt0604364 +tt0604365 +tt0604366 +tt0604367 +tt0604368 +tt0604369 +tt0604370 +tt0604371 +tt0604372 +tt0604373 +tt0604374 +tt0604375 +tt0604376 +tt0604377 +tt0604378 +tt0604379 +tt0604380 +tt0604381 +tt0604382 +tt0604383 +tt0604384 +tt0604385 +tt0604386 +tt0604387 +tt0604388 +tt0604389 +tt0604390 +tt0604391 +tt0604392 +tt0604393 +tt0604394 +tt0604395 +tt0604396 +tt0604397 +tt0604398 +tt0604399 +tt0604400 +tt0604401 +tt0604402 +tt0604403 +tt0604404 +tt0604405 +tt0604406 +tt0604407 +tt0604408 +tt0604409 +tt0604410 +tt0604411 +tt0604412 +tt0604413 +tt0604414 +tt0604415 +tt0604416 +tt0604417 +tt0604418 +tt0604419 +tt0604420 +tt0604421 +tt0604422 +tt0604423 +tt0604424 +tt0604425 +tt0604426 +tt0604427 +tt0604428 +tt0604429 +tt0604430 +tt0604431 +tt0604432 +tt0604433 +tt0604434 +tt0604435 +tt0604436 +tt0604437 +tt0604438 +tt0604439 +tt0604440 +tt0604441 +tt0604442 +tt0604443 +tt0604444 +tt0604445 +tt0604446 +tt0604447 +tt0604448 +tt0604449 +tt0630812 +tt0630813 +tt0630814 +tt0630815 +tt0630816 +tt0630817 +tt0630818 +tt0630819 +tt0630820 +tt0630821 +tt0630822 +tt0630823 +tt0630824 +tt0630825 +tt0630826 +tt0630827 +tt0630828 +tt0630829 +tt0630830 +tt0630832 +tt0630833 +tt0630834 +tt0630835 +tt0630836 +tt0630837 +tt0630838 +tt0630839 +tt0630840 +tt0630841 +tt0630842 +tt0630843 +tt0630844 +tt0630845 +tt0630846 +tt0630847 +tt0630848 +tt0630849 +tt0630850 +tt0630851 +tt0630852 +tt0630853 +tt0630854 +tt0630855 +tt0630856 +tt0630857 +tt0630858 +tt0630859 +tt0630860 +tt0630861 +tt0630862 +tt0630863 +tt0630864 +tt0630865 +tt0630866 +tt0630867 +tt0630868 +tt0630869 +tt0630870 +tt0630871 +tt0630872 +tt0630873 +tt0630874 +tt0630875 +tt0630876 +tt0630877 +tt0630878 +tt0630879 +tt0630880 +tt0630881 +tt0630882 +tt0630883 +tt0630884 +tt0630885 +tt0630886 +tt0630887 +tt0630888 +tt0630889 +tt0630890 +tt0630891 +tt0630892 +tt0630893 +tt0630894 +tt0630895 +tt0630896 +tt0630897 +tt0630898 +tt0630899 +tt0630900 +tt0630901 +tt0630902 +tt0630903 +tt0630904 +tt0630905 +tt0630906 +tt0630907 +tt0630908 +tt0630909 +tt0630910 +tt0630911 +tt0630912 +tt0630913 +tt0630914 +tt0630915 +tt0630916 +tt0630917 +tt0630918 +tt0630919 +tt0630920 +tt0630921 +tt0630922 +tt0630923 +tt0630924 +tt0630925 +tt0630926 +tt0630927 +tt0630928 +tt0630929 +tt0630930 +tt0630931 +tt0630932 +tt0630933 +tt0630934 +tt0630935 +tt0630936 +tt0630937 +tt0630938 +tt0630939 +tt0630940 +tt0630941 +tt0630942 +tt0630943 +tt0630944 +tt0630945 +tt0630946 +tt0630947 +tt0630948 +tt0630949 +tt0630950 +tt0630951 +tt0630952 +tt0630953 +tt0630954 +tt0630955 +tt0630956 +tt0630957 +tt0630958 +tt0630959 +tt0630960 +tt0630961 +tt0630962 +tt0630963 +tt0630964 +tt0630965 +tt0630966 +tt0630967 +tt0630968 +tt0630969 +tt0630970 +tt0630971 +tt0630972 +tt0630973 +tt0630974 +tt0630975 +tt0630976 +tt0630977 +tt0630978 +tt0630979 +tt0630980 +tt0630981 +tt0630982 +tt0630983 +tt0630984 +tt0630985 +tt0630986 +tt0630987 +tt0630988 +tt0630989 +tt0630990 +tt0630991 +tt0630992 +tt0630993 +tt0630994 +tt0630995 +tt0630996 +tt0630997 +tt0630998 +tt0630999 +tt0631000 +tt0631001 +tt0631002 +tt0631003 +tt0631004 +tt0631005 +tt0631006 +tt0631007 +tt0631008 +tt0631009 +tt0631010 +tt0631011 +tt0631012 +tt0631013 +tt0631014 +tt0631015 +tt0631016 +tt0631017 +tt0631018 +tt0631019 +tt0631020 +tt0631021 +tt0631022 +tt0631023 +tt0631024 +tt0631025 +tt0631026 +tt0631027 +tt0631028 +tt0631029 +tt0631030 +tt0631031 +tt0631032 +tt0631033 +tt0631034 +tt0631035 +tt0631036 +tt0631037 +tt0631038 +tt0631039 +tt0631040 +tt0631041 +tt0631042 +tt0631043 +tt0631044 +tt0631045 +tt0631046 +tt0631047 +tt0631048 +tt0631049 +tt0631050 +tt0631051 +tt0631052 +tt0631053 +tt0631054 +tt0631055 +tt0631056 +tt0631057 +tt0631058 +tt0631059 +tt0631060 +tt0631061 +tt0631062 +tt0631063 +tt0631064 +tt0631065 +tt0631066 +tt0631067 +tt0631068 +tt0642136 +tt0642137 +tt0642138 +tt0642139 +tt0642140 +tt0657664 +tt0657665 +tt0657666 +tt0657667 +tt0657668 +tt0657669 +tt0657670 +tt0657671 +tt0657672 +tt0657673 +tt0657674 +tt0657675 +tt0657676 +tt0657677 +tt0657678 +tt0657679 +tt0657680 +tt0657681 +tt0657682 +tt0657683 +tt0657684 +tt0657685 +tt0657686 +tt0657687 +tt0657688 +tt0657689 +tt0657690 +tt0657691 +tt0657692 +tt0657693 +tt0657694 +tt0657695 +tt0657696 +tt0657697 +tt0657698 +tt0657699 +tt0657700 +tt0657701 +tt0657702 +tt0657703 +tt0657704 +tt0657705 +tt0657706 +tt0657707 +tt0657708 +tt0657709 +tt0657710 +tt0657711 +tt0657712 +tt0657713 +tt0657714 +tt0657715 +tt0657716 +tt0657717 +tt0658758 +tt0658761 +tt0658769 +tt0658772 +tt0658775 +tt0710723 +tt0710724 +tt0710725 +tt0710726 +tt0710727 +tt0710728 +tt0710729 +tt0710730 +tt0710731 +tt0710732 +tt0710733 +tt0710734 +tt0710735 +tt0710736 +tt0710737 +tt0710738 +tt0710739 +tt0710740 +tt0710741 +tt0710742 +tt0710743 +tt0710744 +tt0710745 +tt0710746 +tt0710747 +tt0710748 +tt0710749 +tt0710750 +tt0710751 +tt0710752 +tt0710753 +tt0710754 +tt0716914 +tt0716915 +tt0716916 +tt0716917 +tt0716918 +tt0726129 +tt0726130 +tt0726131 +tt0726132 +tt0726133 +tt0726134 +tt0726135 +tt0726136 +tt0726137 +tt0726138 +tt0726139 +tt0726140 +tt0726141 +tt0726142 +tt0726143 +tt0726144 +tt0726145 +tt0726146 +tt0726147 +tt0739347 +tt0739348 +tt0739349 +tt0739350 +tt0739351 +tt0739352 +tt0739353 +tt0739354 +tt0739355 +tt0739356 +tt0739357 +tt0739358 +tt0739359 +tt0739360 +tt0739361 +tt0758518 +tt0759972 +tt0759973 +tt0759974 +tt0759975 +tt0773943 +tt0773944 +tt0787623 +tt0788607 +tt0788608 +tt0788609 +tt0788610 +tt0788611 +tt0788612 +tt0792825 +tt0818222 +tt0822286 +tt0822287 +tt0822288 +tt0825198 +tt0829691 +tt0829692 +tt0829693 +tt0829694 +tt0829695 +tt0829696 +tt0829697 +tt0829698 +tt0829699 +tt0829700 +tt0829701 +tt0829702 +tt0829703 +tt0829704 +tt0829705 +tt0829706 +tt0829707 +tt0829708 +tt0829709 +tt0829710 +tt0829711 +tt0829712 +tt0829713 +tt0829714 +tt0829715 +tt0829716 +tt0829717 +tt0830063 +tt0830064 +tt0833403 +tt0836070 +tt0836071 +tt0839676 +tt0843050 +tt0845936 +tt0847451 +tt0847452 +tt0847453 +tt0847454 +tt0849811 +tt0849907 +tt0849908 +tt0849909 +tt0849910 +tt0849911 +tt0855440 +tt0875496 +tt0875497 +tt0875498 +tt0875499 +tt0875500 +tt0878792 +tt0883873 +tt0883874 +tt0883875 +tt0883876 +tt0883877 +tt0883878 +tt0883879 +tt0883880 +tt0883881 +tt0883882 +tt0883883 +tt0883884 +tt0883885 +tt0883886 +tt0883887 +tt0883888 +tt0883889 +tt0883890 +tt0883891 +tt0883892 +tt0883893 +tt0883894 +tt0883895 +tt0883896 +tt0902552 +tt0908265 +tt0908266 +tt0911901 +tt0911902 +tt0911903 +tt0911904 +tt0911907 +tt0911909 +tt0911911 +tt0921004 +tt0921005 +tt0921006 +tt0921007 +tt0935150 +tt0935151 +tt0935329 +tt0941378 +tt0941379 +tt0941380 +tt0941381 +tt0941531 +tt0941532 +tt0941533 +tt0941534 +tt0941535 +tt0941536 +tt0941537 +tt0941538 +tt0941539 +tt0941540 +tt0941541 +tt0941542 +tt0941543 +tt0947227 +tt0948188 +tt0964779 +tt0966031 +tt0966032 +tt0966033 +tt0966034 +tt0966035 +tt0966036 +tt0966854 +tt0966855 +tt0968881 +tt0977996 +tt0977997 +tt0986592 +tt0989179 +tt0991827 +tt10100552 +tt10100556 +tt10100558 +tt10150308 +tt10150314 +tt10150318 +tt10150320 +tt10150324 +tt10241196 +tt10241200 +tt1024524 +tt10278898 +tt1028344 +tt1028345 +tt1028346 +tt1049249 +tt1049250 +tt1049251 +tt1083689 +tt1083691 +tt1104262 +tt1104264 +tt1110874 +tt1110876 +tt1110877 +tt1110878 +tt1110879 +tt1110881 +tt1110883 +tt1483868 +tt1484137 +tt1484410 +tt1484411 +tt1484548 +tt1485232 +tt1502370 +tt1506595 +tt1515099 +tt1515100 +tt1515101 +tt1515102 +tt1527329 +tt1640879 +tt1640882 +tt1640884 +tt1640885 +tt1640887 +tt1640888 +tt2187297 +tt2187299 +tt2187301 +tt2187303 +tt2187307 +tt2248422 +tt2248426 +tt2248444 +tt2250466 +tt2294870 +tt2440660 +tt2704380 +tt2790174 +tt2790238 +tt2790240 +tt2811510 +tt3001906 +tt3001926 +tt3147690 +tt3186026 +tt3221190 +tt3221232 +tt3221270 +tt3297502 +tt3326204 +tt3513862 +tt3689902 +tt3792838 +tt3828360 +tt3892086 +tt3892088 +tt3892094 +tt3897442 +tt3897454 +tt3918768 +tt4017802 +tt4017804 +tt4017810 +tt4024902 +tt4035250 +tt4057164 +tt4057166 +tt4057168 +tt4057170 +tt4057172 +tt4057176 +tt4128566 +tt4128572 +tt4128574 +tt4182496 +tt4498368 +tt4817660 +tt4817664 +tt4817670 +tt5024698 +tt5095720 +tt5095732 +tt5095742 +tt5218230 +tt5218240 +tt5218252 +tt5218278 +tt5218290 +tt5321340 +tt5419058 +tt5808896 +tt6010608 +tt6411836 +tt6411842 +tt6411844 +tt6411846 +tt6411854 +tt6411858 +tt6538206 +tt6618290 +tt6706428 +tt6710716 +tt6739316 +tt6764872 +tt6950376 +tt6950380 +tt6950386 +tt6950392 +tt6950398 +tt6950410 +tt7126476 +tt7126486 +tt7320854 +tt7320860 +tt7320868 +tt7320878 +tt7320886 +tt7525428 +tt7538918 +tt7576192 +tt7576194 +tt7576196 +tt7576198 +tt7576200 +tt7576206 +tt7709596 +tt7725192 +tt8215522 +tt8842110 +tt8980674 +tt9382476 +tt9382480 +tt9382488 +tt9382494 +tt9382502 +tt9741614 +tt9776606 +tt9837904 +tt9859874 +tt9914786 diff --git a/tests/resources/allowed_film b/tests/resources/allowed_film new file mode 100644 index 0000000..dc0b697 --- /dev/null +++ b/tests/resources/allowed_film @@ -0,0 +1,86 @@ +tt0018324 +tt0018528 +tt0037101 +tt0038902 +tt0043908 +tt0056663 +tt0057286 +tt0059529 +tt0064165 +tt0069097 +tt0070608 +tt0073558 +tt0084437 +tt0085905 +tt0089374 +tt0096499 +tt0100587 +tt0101468 +tt0103934 +tt0104103 +tt0111157 +tt0116177 +tt0116231 +tt0116417 +tt0119116 +tt0128856 +tt0155749 +tt0166894 +tt0184507 +tt0195855 +tt0197593 +tt0229007 +tt0235815 +tt0251919 +tt0255024 +tt0258330 +tt0266440 +tt0283332 +tt0289712 +tt0300476 +tt0313582 +tt0314679 +tt0314912 +tt0348360 +tt0353685 +tt0382577 +tt0399007 +tt0402050 +tt0417116 +tt0453066 +tt0488013 +tt0800099 +tt0855852 +tt0898917 +tt0922487 +tt0938282 +tt1023144 +tt1260381 +tt1403092 +tt1409869 +tt1546060 +tt1570357 +tt1641824 +tt1853668 +tt2065968 +tt2220152 +tt2404521 +tt2843544 +tt3024364 +tt3088882 +tt3450324 +tt3692610 +tt4852272 +tt5680808 +tt5906392 +tt5947404 +tt6118820 +tt6234736 +tt6949172 +tt7106762 +tt7385140 +tt7474430 +tt7670864 +tt8385352 +tt9474678 +tt9738198 diff --git a/tests/resources/allowed_name b/tests/resources/allowed_name new file mode 100644 index 0000000..8396812 --- /dev/null +++ b/tests/resources/allowed_name @@ -0,0 +1,3872 @@ +nm0000003 +nm0000008 +nm0000017 +nm0000021 +nm0000024 +nm0000095 +nm0000108 +nm0000114 +nm0000138 +nm0000149 +nm0000163 +nm0000164 +nm0000170 +nm0000177 +nm0000178 +nm0000190 +nm0000198 +nm0000217 +nm0000228 +nm0000246 +nm0000293 +nm0000305 +nm0000306 +nm0000314 +nm0000316 +nm0000317 +nm0000329 +nm0000336 +nm0000353 +nm0000367 +nm0000370 +nm0000380 +nm0000391 +nm0000399 +nm0000405 +nm0000407 +nm0000419 +nm0000437 +nm0000453 +nm0000454 +nm0000459 +nm0000473 +nm0000506 +nm0000548 +nm0000562 +nm0000592 +nm0000618 +nm0000632 +nm0000636 +nm0000681 +nm0000693 +nm0000705 +nm0000715 +nm0000719 +nm0000730 +nm0000734 +nm0000736 +nm0000799 +nm0000828 +nm0000832 +nm0000838 +nm0000839 +nm0000843 +nm0000844 +nm0000870 +nm0000890 +nm0000941 +nm0000951 +nm0000995 +nm0001007 +nm0001013 +nm0001041 +nm0001055 +nm0001067 +nm0001070 +nm0001072 +nm0001076 +nm0001079 +nm0001093 +nm0001101 +nm0001119 +nm0001130 +nm0001136 +nm0001149 +nm0001151 +nm0001171 +nm0001174 +nm0001193 +nm0001215 +nm0001219 +nm0001225 +nm0001226 +nm0001227 +nm0001247 +nm0001252 +nm0001290 +nm0001306 +nm0001308 +nm0001375 +nm0001394 +nm0001420 +nm0001433 +nm0001445 +nm0001446 +nm0001458 +nm0001469 +nm0001519 +nm0001544 +nm0001547 +nm0001551 +nm0001591 +nm0001637 +nm0001663 +nm0001665 +nm0001669 +nm0001687 +nm0001703 +nm0001708 +nm0001710 +nm0001714 +nm0001717 +nm0001737 +nm0001768 +nm0001772 +nm0001774 +nm0001775 +nm0001782 +nm0001811 +nm0001821 +nm0001827 +nm0001829 +nm0001842 +nm0001854 +nm0001868 +nm0001888 +nm0001893 +nm0001904 +nm0001919 +nm0001921 +nm0001922 +nm0001930 +nm0001938 +nm0001979 +nm0001982 +nm0001999 +nm0002025 +nm0002034 +nm0002038 +nm0002050 +nm0002053 +nm0002064 +nm0002079 +nm0002083 +nm0002103 +nm0002104 +nm0002140 +nm0002159 +nm0002202 +nm0002269 +nm0002399 +nm0002438 +nm0002769 +nm0002835 +nm0003049 +nm0003061 +nm0003110 +nm0003163 +nm0003167 +nm0003280 +nm0003282 +nm0003339 +nm0003447 +nm0003733 +nm0003756 +nm0004282 +nm0004332 +nm0004416 +nm0004417 +nm0004464 +nm0004517 +nm0004541 +nm0004631 +nm0004670 +nm0004787 +nm0004798 +nm0004974 +nm0005005 +nm0005024 +nm0005048 +nm0005062 +nm0005078 +nm0005212 +nm0005216 +nm0005265 +nm0005279 +nm0005280 +nm0005384 +nm0005385 +nm0005460 +nm0005596 +nm0005635 +nm0005636 +nm0005640 +nm0005651 +nm0005661 +nm0005719 +nm0005734 +nm0005771 +nm0005789 +nm0005792 +nm0005834 +nm0005845 +nm0005972 +nm0006021 +nm0006089 +nm0006098 +nm0006105 +nm0006166 +nm0006213 +nm0006227 +nm0006236 +nm0006249 +nm0006254 +nm0006258 +nm0006266 +nm0006321 +nm0006340 +nm0006471 +nm0006624 +nm0006670 +nm0006702 +nm0006809 +nm0006853 +nm0006889 +nm0006922 +nm0007016 +nm0007035 +nm0007051 +nm0007122 +nm0007183 +nm0007210 +nm0007234 +nm0007342 +nm0007808 +nm0007995 +nm0008041 +nm0008044 +nm0008066 +nm0008222 +nm0008231 +nm0008286 +nm0008489 +nm0009319 +nm0009902 +nm0009953 +nm0010268 +nm0010928 +nm0011105 +nm0011148 +nm0011195 +nm0011219 +nm0011244 +nm0011262 +nm0011482 +nm0011573 +nm0011727 +nm0011835 +nm0012443 +nm0012496 +nm0013878 +nm0013914 +nm0014217 +nm0014338 +nm0014493 +nm0014570 +nm0014873 +nm0014953 +nm0015370 +nm0015391 +nm0015826 +nm0015976 +nm0016402 +nm0016435 +nm0016646 +nm0016781 +nm0017030 +nm0017580 +nm0018368 +nm0018767 +nm0019346 +nm0019733 +nm0019885 +nm0020490 +nm0020511 +nm0020668 +nm0020802 +nm0021446 +nm0021532 +nm0021687 +nm0022367 +nm0023027 +nm0023832 +nm0024720 +nm0025045 +nm0026035 +nm0026039 +nm0026295 +nm0026426 +nm0026442 +nm0026841 +nm0026930 +nm0027011 +nm0027622 +nm0027882 +nm0027974 +nm0028293 +nm0028647 +nm0029642 +nm0029915 +nm0030194 +nm0030817 +nm0031193 +nm0031201 +nm0031277 +nm0032495 +nm0032536 +nm0033014 +nm0033079 +nm0033301 +nm0033691 +nm0033907 +nm0035024 +nm0035159 +nm0035348 +nm0035392 +nm0036206 +nm0036299 +nm0036663 +nm0036940 +nm0037115 +nm0037302 +nm0037600 +nm0037708 +nm0037735 +nm0038066 +nm0038355 +nm0038799 +nm0038816 +nm0039049 +nm0039051 +nm0040393 +nm0040739 +nm0041021 +nm0041136 +nm0041420 +nm0041598 +nm0042100 +nm0042342 +nm0043072 +nm0043564 +nm0044376 +nm0045241 +nm0046373 +nm0046532 +nm0046779 +nm0047035 +nm0047143 +nm0047316 +nm0047450 +nm0047810 +nm0047882 +nm0047896 +nm0048443 +nm0048939 +nm0049845 +nm0050482 +nm0050575 +nm0050672 +nm0051194 +nm0051253 +nm0051830 +nm0051987 +nm0052180 +nm0052308 +nm0052329 +nm0052657 +nm0052722 +nm0053267 +nm0053284 +nm0053697 +nm0053796 +nm0054253 +nm0054304 +nm0054374 +nm0054922 +nm0055615 +nm0055619 +nm0055645 +nm0055812 +nm0055899 +nm0055998 +nm0056187 +nm0057092 +nm0057412 +nm0057466 +nm0057637 +nm0057996 +nm0058001 +nm0058296 +nm0058438 +nm0058833 +nm0058840 +nm0058856 +nm0059165 +nm0059428 +nm0059431 +nm0059712 +nm0060184 +nm0060311 +nm0060378 +nm0060701 +nm0061510 +nm0062592 +nm0062736 +nm0062960 +nm0063094 +nm0063113 +nm0063143 +nm0063618 +nm0063619 +nm0064604 +nm0065336 +nm0065614 +nm0065975 +nm0066028 +nm0066098 +nm0066949 +nm0066986 +nm0067056 +nm0067176 +nm0067262 +nm0067391 +nm0067651 +nm0067801 +nm0068257 +nm0068666 +nm0069414 +nm0069608 +nm0070475 +nm0070511 +nm0070670 +nm0070983 +nm0071636 +nm0071739 +nm0071799 +nm0071890 +nm0071900 +nm0071913 +nm0071999 +nm0072124 +nm0073217 +nm0073688 +nm0075585 +nm0075666 +nm0077082 +nm0077366 +nm0077397 +nm0078046 +nm0078781 +nm0080276 +nm0080601 +nm0080867 +nm0080948 +nm0082376 +nm0082511 +nm0083081 +nm0083109 +nm0083345 +nm0083408 +nm0084219 +nm0084225 +nm0084267 +nm0084272 +nm0085270 +nm0085535 +nm0086091 +nm0086262 +nm0086323 +nm0086587 +nm0086627 +nm0086756 +nm0086830 +nm0087434 +nm0087476 +nm0088271 +nm0088748 +nm0089276 +nm0089458 +nm0089637 +nm0089760 +nm0089980 +nm0090253 +nm0090720 +nm0090840 +nm0092776 +nm0093147 +nm0093380 +nm0093472 +nm0093509 +nm0093961 +nm0094036 +nm0094221 +nm0094889 +nm0094915 +nm0095023 +nm0095326 +nm0096309 +nm0096458 +nm0096470 +nm0097449 +nm0097773 +nm0097848 +nm0097860 +nm0099071 +nm0099366 +nm0099435 +nm0100109 +nm0100615 +nm0100949 +nm0101179 +nm0101350 +nm0101633 +nm0101775 +nm0101910 +nm0102380 +nm0102570 +nm0102702 +nm0103056 +nm0103488 +nm0103659 +nm0103719 +nm0103722 +nm0103756 +nm0104476 +nm0104770 +nm0104806 +nm0104912 +nm0105462 +nm0105672 +nm0105881 +nm0105886 +nm0105965 +nm0105979 +nm0106073 +nm0106155 +nm0106172 +nm0106248 +nm0106599 +nm0106636 +nm0106728 +nm0107012 +nm0107268 +nm0107599 +nm0107746 +nm0108062 +nm0108415 +nm0108707 +nm0108881 +nm0109464 +nm0109495 +nm0110480 +nm0110748 +nm0111303 +nm0111458 +nm0111685 +nm0111754 +nm0111997 +nm0112014 +nm0112533 +nm0112923 +nm0114326 +nm0114847 +nm0115218 +nm0115393 +nm0115597 +nm0115689 +nm0115766 +nm0115834 +nm0116230 +nm0116483 +nm0117136 +nm0117194 +nm0117505 +nm0117918 +nm0118000 +nm0118927 +nm0119315 +nm0120002 +nm0120111 +nm0120326 +nm0121636 +nm0121720 +nm0121826 +nm0122439 +nm0122576 +nm0122731 +nm0122798 +nm0123037 +nm0123479 +nm0123643 +nm0123699 +nm0124930 +nm0124987 +nm0125111 +nm0125579 +nm0125733 +nm0126490 +nm0127093 +nm0127154 +nm0127158 +nm0127168 +nm0127351 +nm0128724 +nm0128845 +nm0130344 +nm0131713 +nm0132100 +nm0132225 +nm0132293 +nm0132709 +nm0132790 +nm0132819 +nm0132930 +nm0132954 +nm0133310 +nm0133361 +nm0133752 +nm0133802 +nm0134074 +nm0134201 +nm0134258 +nm0135031 +nm0136293 +nm0136520 +nm0137046 +nm0137965 +nm0137999 +nm0139292 +nm0139432 +nm0139705 +nm0140390 +nm0140518 +nm0140790 +nm0140924 +nm0141608 +nm0141776 +nm0142273 +nm0144071 +nm0144082 +nm0145260 +nm0145321 +nm0146530 +nm0146905 +nm0147298 +nm0147689 +nm0148061 +nm0149505 +nm0149832 +nm0150418 +nm0150424 +nm0151045 +nm0151228 +nm0151250 +nm0151334 +nm0151346 +nm0151405 +nm0151452 +nm0151606 +nm0151739 +nm0151905 +nm0152159 +nm0152839 +nm0153078 +nm0153206 +nm0153373 +nm0153384 +nm0153759 +nm0153791 +nm0153952 +nm0154164 +nm0154187 +nm0154240 +nm0154708 +nm0154947 +nm0155179 +nm0155895 +nm0155952 +nm0155961 +nm0156739 +nm0156885 +nm0156971 +nm0157115 +nm0157842 +nm0157893 +nm0158966 +nm0159258 +nm0159962 +nm0160417 +nm0160696 +nm0162470 +nm0162742 +nm0163390 +nm0163404 +nm0163710 +nm0163863 +nm0163974 +nm0164044 +nm0164793 +nm0164818 +nm0164883 +nm0165101 +nm0165493 +nm0165965 +nm0166265 +nm0166307 +nm0166490 +nm0166495 +nm0166498 +nm0166551 +nm0166979 +nm0167089 +nm0167368 +nm0168032 +nm0168215 +nm0168355 +nm0168939 +nm0170225 +nm0171173 +nm0171315 +nm0171413 +nm0171441 +nm0171824 +nm0171935 +nm0172130 +nm0173751 +nm0173815 +nm0174607 +nm0175020 +nm0175200 +nm0175472 +nm0175528 +nm0175651 +nm0175700 +nm0175788 +nm0176073 +nm0176420 +nm0176592 +nm0176673 +nm0176773 +nm0176866 +nm0177320 +nm0178066 +nm0178071 +nm0178137 +nm0178410 +nm0178674 +nm0179289 +nm0179321 +nm0179328 +nm0179408 +nm0179641 +nm0179786 +nm0179996 +nm0180083 +nm0180452 +nm0180486 +nm0181974 +nm0182500 +nm0182871 +nm0182873 +nm0183358 +nm0183486 +nm0183750 +nm0183764 +nm0184170 +nm0184578 +nm0184840 +nm0185281 +nm0185341 +nm0186280 +nm0186615 +nm0186776 +nm0186833 +nm0186844 +nm0186923 +nm0187004 +nm0189274 +nm0189528 +nm0189774 +nm0190779 +nm0190862 +nm0190940 +nm0191027 +nm0191737 +nm0191783 +nm0191832 +nm0192209 +nm0192514 +nm0192619 +nm0192746 +nm0193321 +nm0193338 +nm0193591 +nm0193802 +nm0194023 +nm0194036 +nm0195821 +nm0195888 +nm0196362 +nm0197108 +nm0197210 +nm0197269 +nm0197391 +nm0197656 +nm0197700 +nm0198132 +nm0198446 +nm0198944 +nm0198980 +nm0199070 +nm0199072 +nm0199325 +nm0199470 +nm0200022 +nm0200104 +nm0200122 +nm0200324 +nm0200455 +nm0200476 +nm0200488 +nm0200645 +nm0201281 +nm0202501 +nm0202590 +nm0202970 +nm0203008 +nm0203331 +nm0203481 +nm0203577 +nm0203694 +nm0204510 +nm0204745 +nm0204848 +nm0205369 +nm0206259 +nm0206478 +nm0206530 +nm0206754 +nm0206831 +nm0207794 +nm0208125 +nm0208140 +nm0208780 +nm0209037 +nm0209105 +nm0209142 +nm0209428 +nm0209491 +nm0209676 +nm0210117 +nm0211346 +nm0211402 +nm0211523 +nm0211808 +nm0212061 +nm0212541 +nm0212877 +nm0213664 +nm0214288 +nm0214529 +nm0214939 +nm0215000 +nm0215308 +nm0215853 +nm0215877 +nm0216195 +nm0216594 +nm0217093 +nm0217394 +nm0218793 +nm0218942 +nm0219666 +nm0220438 +nm0220693 +nm0220888 +nm0220976 +nm0221026 +nm0221058 +nm0222003 +nm0222277 +nm0222873 +nm0222878 +nm0223190 +nm0223195 +nm0223283 +nm0224187 +nm0224593 +nm0224636 +nm0224703 +nm0225246 +nm0225416 +nm0225515 +nm0225704 +nm0226026 +nm0226189 +nm0226889 +nm0227179 +nm0227399 +nm0227468 +nm0228201 +nm0229424 +nm0229645 +nm0229697 +nm0229906 +nm0230416 +nm0230648 +nm0231942 +nm0231978 +nm0232049 +nm0232278 +nm0232314 +nm0232338 +nm0232596 +nm0233014 +nm0233036 +nm0233209 +nm0233352 +nm0234732 +nm0235093 +nm0235096 +nm0235287 +nm0235703 +nm0235949 +nm0236217 +nm0236321 +nm0236413 +nm0236482 +nm0236494 +nm0236866 +nm0237025 +nm0237416 +nm0237951 +nm0237985 +nm0238445 +nm0238628 +nm0238719 +nm0239091 +nm0239210 +nm0239291 +nm0240072 +nm0241423 +nm0241484 +nm0241523 +nm0241795 +nm0241883 +nm0241899 +nm0241949 +nm0242362 +nm0242378 +nm0242459 +nm0242637 +nm0242750 +nm0242959 +nm0244296 +nm0244891 +nm0247459 +nm0247495 +nm0247720 +nm0247757 +nm0247818 +nm0247856 +nm0247939 +nm0248108 +nm0248759 +nm0248786 +nm0248942 +nm0249001 +nm0249080 +nm0249086 +nm0249421 +nm0250950 +nm0251432 +nm0251550 +nm0251739 +nm0251872 +nm0252111 +nm0252238 +nm0253021 +nm0253039 +nm0253140 +nm0253141 +nm0254006 +nm0254219 +nm0254453 +nm0254616 +nm0255056 +nm0255695 +nm0255914 +nm0255979 +nm0256146 +nm0256237 +nm0256364 +nm0256523 +nm0256658 +nm0257140 +nm0257269 +nm0257567 +nm0257678 +nm0257700 +nm0258121 +nm0258268 +nm0258425 +nm0258524 +nm0259004 +nm0259119 +nm0259152 +nm0259213 +nm0259589 +nm0259856 +nm0260300 +nm0261426 +nm0261435 +nm0261675 +nm0261824 +nm0262623 +nm0262720 +nm0262903 +nm0263091 +nm0263154 +nm0263330 +nm0263393 +nm0264009 +nm0264134 +nm0264551 +nm0264997 +nm0265276 +nm0266796 +nm0267076 +nm0267282 +nm0267868 +nm0268199 +nm0268313 +nm0268524 +nm0269514 +nm0269537 +nm0269899 +nm0270765 +nm0270808 +nm0270915 +nm0270931 +nm0271282 +nm0271922 +nm0272283 +nm0272401 +nm0272432 +nm0273178 +nm0273297 +nm0274371 +nm0274610 +nm0274716 +nm0275164 +nm0275835 +nm0275897 +nm0275986 +nm0275992 +nm0275997 +nm0276065 +nm0276100 +nm0276317 +nm0276392 +nm0276568 +nm0276818 +nm0276819 +nm0277001 +nm0277213 +nm0277830 +nm0278031 +nm0278241 +nm0278646 +nm0279241 +nm0279795 +nm0280157 +nm0280221 +nm0280293 +nm0280913 +nm0281207 +nm0281227 +nm0281284 +nm0281329 +nm0281534 +nm0281601 +nm0282057 +nm0282984 +nm0283130 +nm0283456 +nm0284538 +nm0284562 +nm0284564 +nm0284798 +nm0284822 +nm0284956 +nm0285264 +nm0285401 +nm0285451 +nm0285576 +nm0286665 +nm0286704 +nm0286911 +nm0286987 +nm0287195 +nm0287279 +nm0287719 +nm0287988 +nm0288003 +nm0288111 +nm0288304 +nm0288311 +nm0288929 +nm0288940 +nm0289611 +nm0289676 +nm0290155 +nm0290186 +nm0290475 +nm0290496 +nm0290809 +nm0290839 +nm0291242 +nm0291377 +nm0291515 +nm0291829 +nm0292140 +nm0292240 +nm0292433 +nm0293366 +nm0293466 +nm0293750 +nm0293989 +nm0295003 +nm0296180 +nm0296410 +nm0296618 +nm0297054 +nm0297293 +nm0297306 +nm0298231 +nm0299275 +nm0301305 +nm0301887 +nm0303056 +nm0303946 +nm0304530 +nm0304531 +nm0304681 +nm0306201 +nm0306405 +nm0306786 +nm0307531 +nm0307560 +nm0307750 +nm0307805 +nm0307819 +nm0308173 +nm0309588 +nm0309607 +nm0309641 +nm0309771 +nm0309914 +nm0310594 +nm0310846 +nm0311431 +nm0311621 +nm0311811 +nm0312695 +nm0312932 +nm0313434 +nm0313487 +nm0314253 +nm0314770 +nm0314787 +nm0314788 +nm0314867 +nm0314993 +nm0315041 +nm0315792 +nm0316602 +nm0317127 +nm0317510 +nm0317725 +nm0318023 +nm0318074 +nm0318106 +nm0318182 +nm0318349 +nm0318703 +nm0318935 +nm0318944 +nm0319308 +nm0319575 +nm0319978 +nm0320069 +nm0320637 +nm0320969 +nm0322495 +nm0322658 +nm0323112 +nm0323311 +nm0324005 +nm0324021 +nm0324305 +nm0324964 +nm0325135 +nm0325251 +nm0325267 +nm0325475 +nm0326371 +nm0327028 +nm0327064 +nm0327089 +nm0327137 +nm0328557 +nm0329029 +nm0329156 +nm0329551 +nm0330003 +nm0330050 +nm0330057 +nm0330324 +nm0330349 +nm0330360 +nm0330538 +nm0330704 +nm0331495 +nm0332490 +nm0333122 +nm0333654 +nm0333807 +nm0334040 +nm0334076 +nm0334353 +nm0334724 +nm0334986 +nm0335215 +nm0335883 +nm0336241 +nm0336474 +nm0336932 +nm0337802 +nm0337872 +nm0337945 +nm0338681 +nm0338812 +nm0339121 +nm0339428 +nm0339834 +nm0340037 +nm0340981 +nm0342120 +nm0344211 +nm0344872 +nm0347071 +nm0347257 +nm0348155 +nm0348886 +nm0349199 +nm0350334 +nm0350455 +nm0351089 +nm0351112 +nm0351425 +nm0351444 +nm0351757 +nm0351918 +nm0351947 +nm0352341 +nm0352664 +nm0352714 +nm0353628 +nm0354398 +nm0354853 +nm0354947 +nm0355112 +nm0355285 +nm0355339 +nm0355357 +nm0355608 +nm0356017 +nm0356159 +nm0356396 +nm0356490 +nm0357020 +nm0357262 +nm0357835 +nm0357975 +nm0358069 +nm0358452 +nm0358478 +nm0358723 +nm0358905 +nm0358925 +nm0359112 +nm0359322 +nm0360200 +nm0360889 +nm0361048 +nm0361350 +nm0362347 +nm0362496 +nm0362502 +nm0362683 +nm0362723 +nm0362815 +nm0362869 +nm0363528 +nm0363553 +nm0364359 +nm0364368 +nm0364441 +nm0364673 +nm0365201 +nm0365327 +nm0365795 +nm0366004 +nm0366035 +nm0366159 +nm0366359 +nm0367001 +nm0367067 +nm0367543 +nm0367670 +nm0367960 +nm0368048 +nm0369183 +nm0369444 +nm0369492 +nm0369617 +nm0369954 +nm0370049 +nm0370328 +nm0370386 +nm0370749 +nm0370904 +nm0371135 +nm0371238 +nm0371351 +nm0371846 +nm0371891 +nm0371906 +nm0371962 +nm0372416 +nm0372677 +nm0373324 +nm0373612 +nm0373668 +nm0373745 +nm0373830 +nm0375606 +nm0375738 +nm0375959 +nm0376209 +nm0376318 +nm0376465 +nm0376468 +nm0376967 +nm0377194 +nm0378015 +nm0378026 +nm0378517 +nm0378615 +nm0379383 +nm0379621 +nm0380155 +nm0380602 +nm0381440 +nm0381989 +nm0382718 +nm0382722 +nm0382859 +nm0383354 +nm0384309 +nm0384494 +nm0384502 +nm0384509 +nm0384578 +nm0384696 +nm0384787 +nm0385603 +nm0385644 +nm0385653 +nm0385922 +nm0385975 +nm0386294 +nm0386340 +nm0386375 +nm0386420 +nm0386650 +nm0386818 +nm0387337 +nm0388122 +nm0388268 +nm0388303 +nm0388554 +nm0389152 +nm0389214 +nm0389374 +nm0389585 +nm0389613 +nm0389809 +nm0389934 +nm0390155 +nm0390204 +nm0391318 +nm0391600 +nm0391818 +nm0391942 +nm0392067 +nm0392662 +nm0392945 +nm0393222 +nm0393661 +nm0393882 +nm0394037 +nm0394342 +nm0394670 +nm0394679 +nm0394873 +nm0395012 +nm0395097 +nm0395257 +nm0395842 +nm0397397 +nm0397739 +nm0397987 +nm0398167 +nm0398455 +nm0398466 +nm0399192 +nm0399647 +nm0399870 +nm0400403 +nm0400708 +nm0400828 +nm0401738 +nm0401742 +nm0402016 +nm0402129 +nm0402839 +nm0405042 +nm0405076 +nm0405082 +nm0405342 +nm0405859 +nm0406330 +nm0406669 +nm0407094 +nm0407392 +nm0407711 +nm0407947 +nm0407959 +nm0408586 +nm0410136 +nm0410369 +nm0410903 +nm0411113 +nm0411175 +nm0411696 +nm0412005 +nm0412124 +nm0412374 +nm0412818 +nm0413135 +nm0413575 +nm0414213 +nm0414233 +nm0414336 +nm0414836 +nm0415428 +nm0415468 +nm0415529 +nm0415586 +nm0416594 +nm0417136 +nm0417386 +nm0417505 +nm0417641 +nm0417669 +nm0418148 +nm0418593 +nm0420718 +nm0421028 +nm0421255 +nm0421300 +nm0422021 +nm0423173 +nm0423639 +nm0424044 +nm0424186 +nm0424318 +nm0424565 +nm0424759 +nm0424800 +nm0425593 +nm0426157 +nm0426297 +nm0427001 +nm0428216 +nm0428851 +nm0429289 +nm0429471 +nm0429495 +nm0429982 +nm0430047 +nm0430877 +nm0432031 +nm0432507 +nm0432793 +nm0433102 +nm0433867 +nm0434251 +nm0434654 +nm0434990 +nm0435550 +nm0436543 +nm0436757 +nm0436776 +nm0436778 +nm0438179 +nm0438856 +nm0439018 +nm0439344 +nm0440374 +nm0440397 +nm0440465 +nm0440542 +nm0440885 +nm0441059 +nm0441069 +nm0441161 +nm0441193 +nm0441227 +nm0441377 +nm0441656 +nm0442828 +nm0443051 +nm0443058 +nm0444198 +nm0444339 +nm0444607 +nm0444725 +nm0445523 +nm0445650 +nm0446037 +nm0446119 +nm0446120 +nm0446192 +nm0446343 +nm0446438 +nm0446544 +nm0446580 +nm0446672 +nm0446993 +nm0447190 +nm0447999 +nm0448004 +nm0448021 +nm0448125 +nm0448483 +nm0448801 +nm0449410 +nm0449754 +nm0449858 +nm0449902 +nm0449908 +nm0449969 +nm0450230 +nm0450270 +nm0450627 +nm0451054 +nm0451406 +nm0451940 +nm0451945 +nm0452663 +nm0452940 +nm0453705 +nm0454236 +nm0454660 +nm0455373 +nm0455389 +nm0455491 +nm0455497 +nm0455813 +nm0456017 +nm0456124 +nm0456290 +nm0456565 +nm0457929 +nm0458033 +nm0458372 +nm0458448 +nm0459252 +nm0459374 +nm0460238 +nm0460408 +nm0460711 +nm0460957 +nm0460974 +nm0461694 +nm0461945 +nm0462017 +nm0462097 +nm0462322 +nm0463344 +nm0463684 +nm0463894 +nm0464474 +nm0465546 +nm0465853 +nm0465932 +nm0466611 +nm0466814 +nm0467974 +nm0469574 +nm0470433 +nm0470598 +nm0470659 +nm0471549 +nm0471854 +nm0472270 +nm0472603 +nm0472622 +nm0472849 +nm0473068 +nm0473210 +nm0473218 +nm0473508 +nm0473861 +nm0474220 +nm0474246 +nm0474685 +nm0474699 +nm0474726 +nm0475610 +nm0475737 +nm0476142 +nm0476537 +nm0477370 +nm0477695 +nm0477702 +nm0477966 +nm0478286 +nm0478431 +nm0479351 +nm0479895 +nm0480379 +nm0481927 +nm0481997 +nm0482303 +nm0482647 +nm0482848 +nm0482936 +nm0482995 +nm0484162 +nm0484479 +nm0484829 +nm0484968 +nm0484981 +nm0485729 +nm0485977 +nm0486089 +nm0486132 +nm0486742 +nm0487135 +nm0488024 +nm0489138 +nm0489311 +nm0490287 +nm0491129 +nm0491591 +nm0492107 +nm0492251 +nm0492594 +nm0492798 +nm0493029 +nm0493275 +nm0493541 +nm0494452 +nm0494849 +nm0494903 +nm0496436 +nm0496628 +nm0496819 +nm0497247 +nm0497343 +nm0497567 +nm0498408 +nm0498436 +nm0498513 +nm0498608 +nm0499724 +nm0499939 +nm0499995 +nm0500140 +nm0500273 +nm0500494 +nm0500552 +nm0500837 +nm0501306 +nm0501402 +nm0502425 +nm0502630 +nm0502649 +nm0504064 +nm0504322 +nm0504460 +nm0504885 +nm0505274 +nm0505527 +nm0506087 +nm0506215 +nm0507112 +nm0507189 +nm0507659 +nm0507757 +nm0507830 +nm0508883 +nm0509327 +nm0510355 +nm0510857 +nm0510912 +nm0511798 +nm0512620 +nm0512894 +nm0513269 +nm0513512 +nm0513951 +nm0514308 +nm0516049 +nm0516646 +nm0517216 +nm0517509 +nm0517558 +nm0517747 +nm0518728 +nm0519101 +nm0519584 +nm0519618 +nm0519754 +nm0520064 +nm0520437 +nm0520467 +nm0521019 +nm0521070 +nm0521289 +nm0521438 +nm0521621 +nm0521937 +nm0522477 +nm0522481 +nm0523099 +nm0523225 +nm0523893 +nm0523900 +nm0524188 +nm0525019 +nm0525524 +nm0525570 +nm0525591 +nm0525859 +nm0525940 +nm0526008 +nm0526786 +nm0526999 +nm0527160 +nm0527193 +nm0527310 +nm0528658 +nm0528706 +nm0528927 +nm0528988 +nm0529056 +nm0529159 +nm0529365 +nm0529384 +nm0530048 +nm0530316 +nm0530943 +nm0531739 +nm0531932 +nm0532717 +nm0532984 +nm0533744 +nm0534016 +nm0534317 +nm0535804 +nm0537146 +nm0537784 +nm0538488 +nm0538677 +nm0538708 +nm0540215 +nm0541061 +nm0541635 +nm0542535 +nm0542642 +nm0543375 +nm0543576 +nm0543911 +nm0543939 +nm0544308 +nm0544347 +nm0544593 +nm0544718 +nm0544749 +nm0546209 +nm0546255 +nm0547130 +nm0547191 +nm0547892 +nm0548094 +nm0548221 +nm0548533 +nm0548579 +nm0549032 +nm0549325 +nm0549557 +nm0550342 +nm0550631 +nm0550694 +nm0551163 +nm0551337 +nm0551685 +nm0551793 +nm0551953 +nm0552064 +nm0552140 +nm0552185 +nm0552588 +nm0552683 +nm0552700 +nm0553604 +nm0554718 +nm0554987 +nm0555494 +nm0555500 +nm0556609 +nm0556739 +nm0557223 +nm0557339 +nm0558182 +nm0558553 +nm0558569 +nm0559039 +nm0559074 +nm0559127 +nm0559306 +nm0559461 +nm0559618 +nm0560554 +nm0560629 +nm0561260 +nm0561329 +nm0561765 +nm0561809 +nm0561860 +nm0562251 +nm0562310 +nm0562388 +nm0562947 +nm0563614 +nm0564167 +nm0564706 +nm0564759 +nm0564928 +nm0565104 +nm0565229 +nm0565277 +nm0565887 +nm0566166 +nm0567080 +nm0567129 +nm0567347 +nm0567377 +nm0567471 +nm0567599 +nm0567757 +nm0568587 +nm0569214 +nm0569410 +nm0569416 +nm0569568 +nm0569570 +nm0569685 +nm0569950 +nm0570971 +nm0571781 +nm0571901 +nm0571952 +nm0572649 +nm0572695 +nm0572783 +nm0572954 +nm0573640 +nm0573796 +nm0574376 +nm0575184 +nm0575389 +nm0575546 +nm0575756 +nm0575905 +nm0576127 +nm0576353 +nm0576465 +nm0577972 +nm0578064 +nm0578757 +nm0579698 +nm0579844 +nm0580263 +nm0581005 +nm0581085 +nm0581615 +nm0582019 +nm0582262 +nm0582988 +nm0583115 +nm0583376 +nm0583686 +nm0583734 +nm0583995 +nm0584461 +nm0585151 +nm0585557 +nm0586965 +nm0587036 +nm0587333 +nm0588721 +nm0588903 +nm0589248 +nm0589594 +nm0589957 +nm0590108 +nm0590889 +nm0590956 +nm0591629 +nm0591762 +nm0591788 +nm0592601 +nm0593170 +nm0593192 +nm0593196 +nm0593355 +nm0593383 +nm0593729 +nm0593775 +nm0594659 +nm0595040 +nm0596056 +nm0596598 +nm0597215 +nm0598213 +nm0598257 +nm0599656 +nm0599717 +nm0599894 +nm0600224 +nm0600488 +nm0600525 +nm0600781 +nm0600993 +nm0601095 +nm0601163 +nm0601369 +nm0601982 +nm0602828 +nm0603416 +nm0603425 +nm0604968 +nm0604980 +nm0605174 +nm0606179 +nm0606297 +nm0606593 +nm0606886 +nm0606998 +nm0607071 +nm0607465 +nm0607487 +nm0607504 +nm0607507 +nm0607545 +nm0607554 +nm0607584 +nm0607676 +nm0608962 +nm0611442 +nm0611766 +nm0611869 +nm0612621 +nm0612672 +nm0612706 +nm0613137 +nm0613284 +nm0613774 +nm0614217 +nm0614631 +nm0615103 +nm0615386 +nm0615540 +nm0615993 +nm0616153 +nm0616225 +nm0616475 +nm0618422 +nm0618603 +nm0618865 +nm0618988 +nm0619547 +nm0620018 +nm0620936 +nm0621002 +nm0621008 +nm0622214 +nm0622266 +nm0622435 +nm0622612 +nm0624809 +nm0624883 +nm0625343 +nm0625379 +nm0625458 +nm0626259 +nm0626350 +nm0626453 +nm0626456 +nm0627053 +nm0627203 +nm0627240 +nm0627492 +nm0627945 +nm0627950 +nm0628170 +nm0628305 +nm0628325 +nm0628406 +nm0628647 +nm0629237 +nm0630132 +nm0630795 +nm0631204 +nm0631946 +nm0633987 +nm0634282 +nm0634568 +nm0635564 +nm0636800 +nm0637041 +nm0637241 +nm0638395 +nm0638630 +nm0639385 +nm0639444 +nm0639613 +nm0639684 +nm0639895 +nm0640495 +nm0640761 +nm0641197 +nm0641358 +nm0641397 +nm0641713 +nm0641721 +nm0641729 +nm0641746 +nm0641876 +nm0641885 +nm0641929 +nm0641944 +nm0642001 +nm0642671 +nm0642718 +nm0642928 +nm0643000 +nm0643105 +nm0643219 +nm0643353 +nm0643451 +nm0643945 +nm0644022 +nm0644234 +nm0644265 +nm0644324 +nm0644829 +nm0647010 +nm0647322 +nm0647606 +nm0647615 +nm0647921 +nm0649055 +nm0649069 +nm0649649 +nm0652119 +nm0652533 +nm0652534 +nm0652631 +nm0653554 +nm0653899 +nm0653942 +nm0654239 +nm0654433 +nm0654475 +nm0655499 +nm0655605 +nm0655893 +nm0656980 +nm0657090 +nm0658885 +nm0660311 +nm0661118 +nm0661751 +nm0662164 +nm0662217 +nm0662504 +nm0662508 +nm0662511 +nm0662549 +nm0662700 +nm0663189 +nm0663325 +nm0663763 +nm0664605 +nm0665305 +nm0665327 +nm0665494 +nm0665886 +nm0665891 +nm0666247 +nm0666495 +nm0667326 +nm0668122 +nm0669004 +nm0669126 +nm0669217 +nm0670616 +nm0670658 +nm0670662 +nm0670856 +nm0671206 +nm0671210 +nm0671329 +nm0671906 +nm0672074 +nm0672522 +nm0672597 +nm0673156 +nm0673283 +nm0674225 +nm0674280 +nm0674759 +nm0674978 +nm0675413 +nm0675451 +nm0675728 +nm0677147 +nm0677954 +nm0678196 +nm0678241 +nm0678518 +nm0678671 +nm0679013 +nm0679361 +nm0679538 +nm0679642 +nm0679920 +nm0680061 +nm0680237 +nm0680698 +nm0680710 +nm0680795 +nm0681003 +nm0681055 +nm0681105 +nm0681319 +nm0681566 +nm0681608 +nm0681674 +nm0683434 +nm0683984 +nm0685221 +nm0685923 +nm0686096 +nm0686857 +nm0686864 +nm0687002 +nm0687152 +nm0687189 +nm0687504 +nm0687964 +nm0689763 +nm0690592 +nm0691780 +nm0692796 +nm0692872 +nm0693259 +nm0693288 +nm0693446 +nm0693493 +nm0694090 +nm0694173 +nm0695178 +nm0695489 +nm0695841 +nm0696305 +nm0696615 +nm0696785 +nm0696921 +nm0697488 +nm0698097 +nm0698744 +nm0699039 +nm0699120 +nm0700059 +nm0700084 +nm0701500 +nm0702536 +nm0702836 +nm0703379 +nm0704479 +nm0704719 +nm0704983 +nm0705225 +nm0705535 +nm0706417 +nm0706660 +nm0706703 +nm0707492 +nm0707518 +nm0709681 +nm0709695 +nm0709825 +nm0709869 +nm0709893 +nm0709951 +nm0710036 +nm0710250 +nm0710563 +nm0710589 +nm0710682 +nm0710941 +nm0711052 +nm0712374 +nm0713507 +nm0714050 +nm0714140 +nm0714236 +nm0714273 +nm0714496 +nm0714762 +nm0714769 +nm0714992 +nm0715748 +nm0716257 +nm0716658 +nm0717203 +nm0717256 +nm0717383 +nm0717395 +nm0717689 +nm0717709 +nm0717977 +nm0718553 +nm0718627 +nm0719037 +nm0719164 +nm0719592 +nm0720162 +nm0720184 +nm0720618 +nm0721073 +nm0721140 +nm0721582 +nm0721655 +nm0721745 +nm0722599 +nm0723126 +nm0723634 +nm0723731 +nm0723935 +nm0724111 +nm0724143 +nm0724268 +nm0724600 +nm0724915 +nm0725050 +nm0725052 +nm0725147 +nm0726153 +nm0726492 +nm0727497 +nm0728508 +nm0728547 +nm0730011 +nm0730027 +nm0731340 +nm0731392 +nm0731507 +nm0731634 +nm0732128 +nm0732468 +nm0732529 +nm0733142 +nm0733500 +nm0734352 +nm0734425 +nm0734660 +nm0735086 +nm0736595 +nm0736835 +nm0737406 +nm0737994 +nm0738180 +nm0738798 +nm0738951 +nm0739501 +nm0739677 +nm0739987 +nm0740718 +nm0741398 +nm0741739 +nm0742341 +nm0742538 +nm0742940 +nm0743364 +nm0743815 +nm0744029 +nm0744392 +nm0745218 +nm0745236 +nm0747657 +nm0747865 +nm0748014 +nm0749539 +nm0750023 +nm0750422 +nm0751032 +nm0751426 +nm0751637 +nm0751881 +nm0752177 +nm0753529 +nm0754240 +nm0754517 +nm0754526 +nm0754688 +nm0754779 +nm0754781 +nm0755133 +nm0755261 +nm0755338 +nm0755555 +nm0755684 +nm0755963 +nm0757096 +nm0757327 +nm0757544 +nm0757709 +nm0758475 +nm0758487 +nm0758590 +nm0758692 +nm0759022 +nm0759170 +nm0760131 +nm0760203 +nm0761823 +nm0761907 +nm0762289 +nm0762556 +nm0763523 +nm0763842 +nm0764588 +nm0764601 +nm0764678 +nm0765102 +nm0765256 +nm0766053 +nm0766558 +nm0767110 +nm0767396 +nm0769135 +nm0769791 +nm0769840 +nm0769974 +nm0770496 +nm0770748 +nm0770763 +nm0771622 +nm0771663 +nm0771841 +nm0772095 +nm0772480 +nm0772507 +nm0773533 +nm0773608 +nm0773663 +nm0774205 +nm0774678 +nm0775120 +nm0776117 +nm0776317 +nm0776563 +nm0776795 +nm0777215 +nm0777667 +nm0777768 +nm0777831 +nm0778150 +nm0778304 +nm0778405 +nm0778789 +nm0779059 +nm0779159 +nm0779261 +nm0779345 +nm0779507 +nm0779673 +nm0780005 +nm0780456 +nm0780585 +nm0781232 +nm0781543 +nm0783116 +nm0783336 +nm0783670 +nm0784038 +nm0784039 +nm0784238 +nm0785385 +nm0785816 +nm0785929 +nm0786193 +nm0786252 +nm0787033 +nm0787382 +nm0788288 +nm0788946 +nm0789093 +nm0789784 +nm0789947 +nm0790479 +nm0790642 +nm0790820 +nm0790948 +nm0791325 +nm0791774 +nm0791805 +nm0791814 +nm0792309 +nm0792561 +nm0792961 +nm0793430 +nm0793574 +nm0793715 +nm0793840 +nm0794027 +nm0794156 +nm0794297 +nm0795289 +nm0796062 +nm0797974 +nm0798002 +nm0798328 +nm0798826 +nm0799410 +nm0799591 +nm0799736 +nm0799875 +nm0799972 +nm0800108 +nm0800359 +nm0801703 +nm0802065 +nm0802296 +nm0802639 +nm0802933 +nm0802980 +nm0803030 +nm0803343 +nm0804160 +nm0804556 +nm0804671 +nm0804729 +nm0804995 +nm0805314 +nm0805380 +nm0805431 +nm0805509 +nm0805790 +nm0806041 +nm0806498 +nm0806819 +nm0806959 +nm0807032 +nm0807089 +nm0807188 +nm0807252 +nm0807649 +nm0808401 +nm0808523 +nm0808918 +nm0808949 +nm0809135 +nm0809657 +nm0810342 +nm0810413 +nm0810461 +nm0810488 +nm0811344 +nm0812071 +nm0812125 +nm0812149 +nm0812453 +nm0813940 +nm0814064 +nm0814355 +nm0814554 +nm0815718 +nm0815825 +nm0816388 +nm0816475 +nm0816657 +nm0816670 +nm0816719 +nm0817027 +nm0817748 +nm0818157 +nm0819179 +nm0820096 +nm0820289 +nm0821191 +nm0821252 +nm0821651 +nm0821792 +nm0822263 +nm0822570 +nm0823048 +nm0823313 +nm0823894 +nm0823898 +nm0824389 +nm0824440 +nm0824489 +nm0824997 +nm0825559 +nm0825731 +nm0826005 +nm0826479 +nm0826503 +nm0827267 +nm0827354 +nm0828447 +nm0828562 +nm0828594 +nm0828614 +nm0828735 +nm0828838 +nm0829270 +nm0829299 +nm0829716 +nm0830580 +nm0830799 +nm0830967 +nm0831580 +nm0831928 +nm0832187 +nm0832407 +nm0832495 +nm0832889 +nm0832990 +nm0833138 +nm0833185 +nm0833865 +nm0833988 +nm0834351 +nm0834626 +nm0835101 +nm0835329 +nm0835473 +nm0835651 +nm0835798 +nm0836146 +nm0836226 +nm0836724 +nm0837209 +nm0837959 +nm0837986 +nm0838068 +nm0838166 +nm0838236 +nm0839807 +nm0840547 +nm0840720 +nm0840894 +nm0840992 +nm0842483 +nm0842842 +nm0842934 +nm0842970 +nm0842985 +nm0843100 +nm0843568 +nm0844358 +nm0845189 +nm0845867 +nm0846192 +nm0846448 +nm0846552 +nm0847330 +nm0847358 +nm0847772 +nm0848087 +nm0848755 +nm0849028 +nm0849282 +nm0849477 +nm0850695 +nm0850841 +nm0851930 +nm0852076 +nm0852132 +nm0852305 +nm0852313 +nm0852412 +nm0852676 +nm0852766 +nm0853299 +nm0853792 +nm0854177 +nm0854673 +nm0854697 +nm0855065 +nm0855763 +nm0856677 +nm0857147 +nm0857187 +nm0857481 +nm0857776 +nm0858221 +nm0858683 +nm0858695 +nm0858826 +nm0858848 +nm0858889 +nm0859029 +nm0859049 +nm0859365 +nm0860471 +nm0860565 +nm0860741 +nm0860789 +nm0860918 +nm0860935 +nm0861021 +nm0861502 +nm0861538 +nm0861726 +nm0861885 +nm0862571 +nm0862937 +nm0863179 +nm0863267 +nm0863624 +nm0863999 +nm0864528 +nm0864851 +nm0864869 +nm0864879 +nm0865421 +nm0866055 +nm0866164 +nm0866319 +nm0866724 +nm0867538 +nm0867555 +nm0868039 +nm0869099 +nm0869390 +nm0869429 +nm0869664 +nm0869750 +nm0869927 +nm0869947 +nm0869988 +nm0870038 +nm0870094 +nm0871432 +nm0871502 +nm0871571 +nm0871695 +nm0872302 +nm0872456 +nm0872640 +nm0873200 +nm0873451 +nm0874133 +nm0874353 +nm0875543 +nm0877078 +nm0877764 +nm0878014 +nm0878354 +nm0878515 +nm0881501 +nm0881672 +nm0882298 +nm0884490 +nm0885221 +nm0885453 +nm0886657 +nm0887696 +nm0887700 +nm0888130 +nm0888441 +nm0888742 +nm0889405 +nm0889406 +nm0889942 +nm0889943 +nm0891550 +nm0892495 +nm0892589 +nm0893116 +nm0894204 +nm0895221 +nm0895504 +nm0896113 +nm0896621 +nm0896726 +nm0896801 +nm0896994 +nm0897227 +nm0898687 +nm0899403 +nm0899543 +nm0900034 +nm0900134 +nm0900387 +nm0901360 +nm0901566 +nm0901675 +nm0901881 +nm0901901 +nm0902226 +nm0902277 +nm0902545 +nm0902595 +nm0903160 +nm0903656 +nm0903721 +nm0904177 +nm0905061 +nm0905329 +nm0905564 +nm0906550 +nm0906943 +nm0907013 +nm0907863 +nm0908526 +nm0909040 +nm0910180 +nm0910555 +nm0911272 +nm0911316 +nm0911320 +nm0911966 +nm0912111 +nm0912911 +nm0912941 +nm0913094 +nm0913340 +nm0913717 +nm0914245 +nm0914349 +nm0915661 +nm0916434 +nm0916616 +nm0916660 +nm0917285 +nm0918659 +nm0919010 +nm0919012 +nm0919735 +nm0920130 +nm0920410 +nm0920826 +nm0920831 +nm0921051 +nm0921131 +nm0921202 +nm0921853 +nm0921942 +nm0922845 +nm0922967 +nm0923101 +nm0923404 +nm0923584 +nm0924115 +nm0924614 +nm0924668 +nm0924964 +nm0925873 +nm0925878 +nm0926247 +nm0926338 +nm0927043 +nm0927770 +nm0928068 +nm0928207 +nm0928258 +nm0928346 +nm0928603 +nm0929019 +nm0929442 +nm0931120 +nm0931525 +nm0932397 +nm0932565 +nm0932602 +nm0933452 +nm0933715 +nm0933778 +nm0934409 +nm0934750 +nm0934851 +nm0935161 +nm0935163 +nm0936115 +nm0936279 +nm0936476 +nm0936742 +nm0936771 +nm0936976 +nm0937129 +nm0937984 +nm0938923 +nm0938946 +nm0940579 +nm0940614 +nm0941315 +nm0941650 +nm0941986 +nm0942220 +nm0942436 +nm0942863 +nm0943469 +nm0943757 +nm0943894 +nm0944059 +nm0944543 +nm0944691 +nm0944995 +nm0945282 +nm0945290 +nm0946389 +nm0946753 +nm0947073 +nm0947204 +nm0948685 +nm0948839 +nm0948856 +nm0949025 +nm0949026 +nm0949045 +nm0949167 +nm0949355 +nm0949356 +nm0949835 +nm0949876 +nm0950150 +nm0951309 +nm0951441 +nm0951788 +nm0952352 +nm0952502 +nm0952778 +nm0954225 +nm0954498 +nm0954599 +nm0956239 +nm0956539 +nm0958886 +nm0958890 +nm0958910 +nm0958915 +nm0959112 +nm0959149 +nm0959567 +nm0960450 +nm0961283 +nm0961354 +nm0961577 +nm0961635 +nm0961709 +nm0962559 +nm0963340 +nm0963342 +nm0963353 +nm0963377 +nm0963391 +nm0968765 +nm0969429 +nm0970064 +nm0989438 +nm0989955 +nm0991369 +nm0991378 +nm0991810 +nm0991987 +nm0993478 +nm0993483 +nm0998801 +nm0999118 +nm1000499 +nm1002445 +nm1002610 +nm1007820 +nm1007880 +nm10110529 +nm1013087 +nm10138520 +nm10155058 +nm10155059 +nm10155060 +nm10155061 +nm1015557 +nm1015684 +nm1015886 +nm1017323 +nm1023689 +nm1023764 +nm1024386 +nm1025779 +nm1025983 +nm1026099 +nm1027122 +nm1027825 +nm1027890 +nm1028131 +nm1030827 +nm1032487 +nm1035854 +nm1037575 +nm1038341 +nm1038463 +nm1038792 +nm1040419 +nm1042831 +nm1046017 +nm1046097 +nm1049548 +nm1050237 +nm10512816 +nm10537538 +nm1056059 +nm10562564 +nm1057133 +nm1058720 +nm1058940 +nm1059458 +nm1059532 +nm1063229 +nm1064332 +nm1065229 +nm1065506 +nm1065830 +nm1066093 +nm1068206 +nm1071018 +nm1071256 +nm1071846 +nm1075468 +nm1079039 +nm1081420 +nm1088919 +nm1090997 +nm1098370 +nm1098886 +nm1099918 +nm1102252 +nm1103759 +nm1104057 +nm1109453 +nm1110975 +nm1111368 +nm1111922 +nm1114462 +nm1117019 +nm1125277 +nm1131132 +nm1131514 +nm1134619 +nm1135188 +nm1135513 +nm1137050 +nm1138169 +nm1140531 +nm1142722 +nm1143788 +nm1146456 +nm1153463 +nm1154650 +nm1157358 +nm1158273 +nm1160908 +nm1162194 +nm1169847 +nm1176592 +nm1178118 +nm1179803 +nm1183064 +nm1184338 +nm1184893 +nm1191618 +nm1192046 +nm1193590 +nm1194339 +nm1195914 +nm1199115 +nm1211617 +nm1212722 +nm1215067 +nm1217490 +nm1218483 +nm1225349 +nm1226269 +nm1226316 +nm1226699 +nm1229301 +nm1232599 +nm1238678 +nm1245204 +nm1246128 +nm1248247 +nm1249373 +nm1249380 +nm1253977 +nm1259871 +nm1262918 +nm1264521 +nm1268637 +nm1269050 +nm1273411 +nm1274585 +nm1277923 +nm1278376 +nm1279597 +nm1282936 +nm1293053 +nm1295177 +nm1298941 +nm1299030 +nm1299255 +nm1299311 +nm1301990 +nm1302115 +nm1309201 +nm1309831 +nm1315282 +nm1319244 +nm1320524 +nm1323078 +nm1325233 +nm1325870 +nm1326736 +nm1327197 +nm1328076 +nm1331902 +nm1332451 +nm1335704 +nm1347708 +nm1348400 +nm1348556 +nm1350122 +nm1354565 +nm1356578 +nm1357072 +nm1361889 +nm1364521 +nm1374680 +nm1380963 +nm1386066 +nm1391261 +nm1401324 +nm1402391 +nm1403574 +nm1403579 +nm1408427 +nm1419700 +nm1435971 +nm1440540 +nm1443841 +nm1450065 +nm1455452 +nm1456390 +nm1457379 +nm1463198 +nm1463757 +nm1466954 +nm1469236 +nm1469295 +nm1470885 +nm1477105 +nm1478534 +nm1483931 +nm1483969 +nm1484067 +nm1487136 +nm1490345 +nm1491281 +nm1491641 +nm1496153 +nm1501450 +nm1502425 +nm1506833 +nm1506852 +nm1506907 +nm1509963 +nm1510080 +nm1512645 +nm1515801 +nm1519446 +nm1519665 +nm1522141 +nm1522811 +nm1523588 +nm1524001 +nm1524146 +nm1524584 +nm1527190 +nm1527733 +nm1531914 +nm1532701 +nm1538188 +nm1541331 +nm1543296 +nm1543455 +nm1546603 +nm1546812 +nm1547144 +nm1548572 +nm1549594 +nm1553385 +nm1553567 +nm1557648 +nm1559456 +nm1559903 +nm1560977 +nm1561371 +nm1561411 +nm1561449 +nm1561463 +nm1561619 +nm1561620 +nm1561794 +nm1561797 +nm1561868 +nm1562757 +nm1577524 +nm1577584 +nm1582831 +nm1584656 +nm1592421 +nm1594540 +nm1597961 +nm1600085 +nm1600435 +nm1602035 +nm1604000 +nm1605155 +nm1605226 +nm1617479 +nm1618804 +nm1622780 +nm1631521 +nm1634320 +nm1635721 +nm1638197 +nm1639118 +nm1642950 +nm1649438 +nm1653596 +nm1655783 +nm1656134 +nm1658785 +nm1660955 +nm1661134 +nm1661410 +nm1661731 +nm1662410 +nm1666893 +nm1667543 +nm1667651 +nm1668066 +nm1671961 +nm1680347 +nm1691091 +nm1691971 +nm1707611 +nm1708355 +nm1710961 +nm1711253 +nm1714622 +nm1717668 +nm1717886 +nm1718181 +nm1731627 +nm1736364 +nm1739609 +nm1740357 +nm1741386 +nm1742630 +nm1745399 +nm1747633 +nm1761792 +nm1762726 +nm1763351 +nm1766739 +nm1775077 +nm1777415 +nm1778068 +nm1779842 +nm1782215 +nm1786121 +nm1789475 +nm1803552 +nm1807881 +nm1812560 +nm1821196 +nm1824244 +nm1831650 +nm1834382 +nm1836368 +nm1841448 +nm1844752 +nm1846099 +nm1847674 +nm1851209 +nm1853724 +nm1859588 +nm1869907 +nm1878854 +nm1879020 +nm1880485 +nm1889876 +nm1894653 +nm1908659 +nm1909316 +nm1911214 +nm1912181 +nm1917778 +nm1926427 +nm1928609 +nm1935337 +nm1942835 +nm1942896 +nm1961872 +nm1964116 +nm1982438 +nm2002689 +nm2004611 +nm2009282 +nm2017273 +nm2017762 +nm2018237 +nm2022559 +nm2031505 +nm2040088 +nm2044225 +nm2051179 +nm2054455 +nm2061020 +nm2067956 +nm2070427 +nm2071270 +nm2080385 +nm2080557 +nm2086943 +nm2088399 +nm2088684 +nm2092871 +nm2095244 +nm2102596 +nm2104116 +nm2115179 +nm2125623 +nm2129662 +nm2137749 +nm2156285 +nm2171329 +nm2175061 +nm2178458 +nm2180307 +nm2185894 +nm2197591 +nm2200514 +nm2206603 +nm2225222 +nm2226958 +nm2228424 +nm2233444 +nm2235310 +nm2241427 +nm2258060 +nm2259283 +nm2262141 +nm2264489 +nm2274369 +nm2276289 +nm2288234 +nm2294597 +nm2312987 +nm2326486 +nm2342638 +nm2351640 +nm2352667 +nm2353158 +nm2354970 +nm2355196 +nm2363419 +nm2364072 +nm2365141 +nm2365325 +nm2365345 +nm2365845 +nm2369895 +nm2371187 +nm2371196 +nm2376655 +nm2382505 +nm2385621 +nm2394812 +nm2395788 +nm2403279 +nm2408801 +nm2414110 +nm2415436 +nm2420679 +nm2422433 +nm2425028 +nm2425959 +nm2426092 +nm2431971 +nm2439697 +nm2441763 +nm2446931 +nm2450977 +nm2463625 +nm2464981 +nm2465823 +nm2474145 +nm2476236 +nm2478333 +nm2478992 +nm2488906 +nm2489701 +nm2493661 +nm2508881 +nm2509143 +nm2512405 +nm2520243 +nm2522310 +nm2538094 +nm2538459 +nm2541198 +nm2553371 +nm2554974 +nm2564938 +nm2569233 +nm2572092 +nm2573928 +nm2588289 +nm2594022 +nm2602754 +nm2608452 +nm2629549 +nm2664367 +nm2664800 +nm2664818 +nm2671972 +nm2686235 +nm2690496 +nm2706113 +nm2717849 +nm2718634 +nm2729026 +nm2730778 +nm2733049 +nm2735724 +nm2743127 +nm2789232 +nm2789995 +nm2791999 +nm2794938 +nm2796411 +nm2801306 +nm2802722 +nm2804914 +nm2807392 +nm2809560 +nm2810208 +nm2814247 +nm2818504 +nm2822853 +nm2825253 +nm2829788 +nm2830878 +nm2838091 +nm2842577 +nm2851012 +nm2860318 +nm2860783 +nm2863254 +nm2865708 +nm2870569 +nm2874514 +nm2881038 +nm2885728 +nm2909679 +nm2912619 +nm2920012 +nm2932996 +nm2947042 +nm2953537 +nm2963956 +nm2969591 +nm2997369 +nm2997868 +nm2998868 +nm3050429 +nm3071084 +nm3073087 +nm3073989 +nm3091084 +nm3091092 +nm3091480 +nm3091494 +nm3091526 +nm3091764 +nm3091804 +nm3091827 +nm3091839 +nm3091911 +nm3091999 +nm3092102 +nm3092159 +nm3092368 +nm3092453 +nm3092456 +nm3092566 +nm3092578 +nm3092877 +nm3093269 +nm3096810 +nm3096833 +nm3096883 +nm3096913 +nm3096925 +nm3096963 +nm3097020 +nm3097029 +nm3097271 +nm3097300 +nm3097504 +nm3097674 +nm3097682 +nm3097764 +nm3097881 +nm3097940 +nm3098140 +nm3098233 +nm3098239 +nm3098254 +nm3098297 +nm3098373 +nm3098402 +nm3098508 +nm3098621 +nm3098674 +nm3098704 +nm3098781 +nm3098953 +nm3105180 +nm3140698 +nm3144460 +nm3151565 +nm3155508 +nm3158163 +nm3163845 +nm3176656 +nm3221286 +nm3225654 +nm3235249 +nm3248988 +nm3279716 +nm3281996 +nm3291925 +nm3293948 +nm3302379 +nm3309461 +nm3313823 +nm3315598 +nm3316024 +nm3316279 +nm3316287 +nm3316961 +nm3333046 +nm3346698 +nm3346901 +nm3347131 +nm3347193 +nm3347305 +nm3347718 +nm3347724 +nm3347738 +nm3347828 +nm3350876 +nm3360725 +nm3361004 +nm3361266 +nm3361397 +nm3361486 +nm3361496 +nm3362153 +nm3362906 +nm3363190 +nm3368932 +nm3377090 +nm3382215 +nm3382700 +nm3384770 +nm3390584 +nm3392808 +nm3397141 +nm3397294 +nm3397736 +nm3411762 +nm3419214 +nm3427932 +nm3435229 +nm3438351 +nm3438571 +nm3438593 +nm3445994 +nm3451227 +nm3458490 +nm3463713 +nm3463732 +nm3471605 +nm3471784 +nm3501473 +nm3521294 +nm3530343 +nm3537913 +nm3542197 +nm3558834 +nm3578010 +nm3591434 +nm3620389 +nm3685187 +nm3686284 +nm3687598 +nm3692393 +nm3701064 +nm3707177 +nm3731457 +nm3736078 +nm3742712 +nm3747560 +nm3751266 +nm3777189 +nm3778000 +nm3789989 +nm3816157 +nm3825122 +nm3828381 +nm3881204 +nm3881514 +nm3896378 +nm3896454 +nm3896458 +nm3896621 +nm3897141 +nm3897330 +nm3897509 +nm3897818 +nm3899933 +nm3927701 +nm3950939 +nm3965682 +nm4006402 +nm4017790 +nm4096748 +nm4100750 +nm4109757 +nm4218031 +nm4230989 +nm4232071 +nm4232144 +nm4233093 +nm4250080 +nm4286363 +nm4286457 +nm4286987 +nm4296312 +nm4306831 +nm4307810 +nm4308305 +nm4334655 +nm4359566 +nm4360176 +nm4360193 +nm4360355 +nm4370778 +nm4402351 +nm4418303 +nm4423685 +nm4425773 +nm4446305 +nm4461520 +nm4564123 +nm4569665 +nm4569687 +nm4576260 +nm4584004 +nm4613188 +nm4618428 +nm4626817 +nm4630094 +nm4648426 +nm4656936 +nm4662536 +nm4715205 +nm4734152 +nm4744201 +nm4776767 +nm4796384 +nm4826100 +nm4836611 +nm4840307 +nm4840384 +nm4843834 +nm4844240 +nm4844388 +nm4844695 +nm4853104 +nm4858109 +nm4862023 +nm4865756 +nm4866699 +nm4905809 +nm4945419 +nm4964453 +nm4967543 +nm5010241 +nm5012151 +nm5030112 +nm5033886 +nm5042152 +nm5077243 +nm5114742 +nm5115842 +nm5115986 +nm5116252 +nm5116378 +nm5116508 +nm5116675 +nm5117878 +nm5157785 +nm5158074 +nm5171423 +nm5190863 +nm5194626 +nm5205537 +nm5226793 +nm5268257 +nm5302455 +nm5326471 +nm5337710 +nm5413605 +nm5437568 +nm5473949 +nm5474107 +nm5474269 +nm5474299 +nm5474300 +nm5474305 +nm5474312 +nm5474319 +nm5474321 +nm5474335 +nm5474463 +nm5474627 +nm5474677 +nm5474789 +nm5476724 +nm5477022 +nm5483164 +nm5483259 +nm5483289 +nm5483401 +nm5483874 +nm5483999 +nm5484345 +nm5484347 +nm5484426 +nm5484466 +nm5484584 +nm5494991 +nm5498746 +nm5553940 +nm5565659 +nm5600018 +nm5614781 +nm5620591 +nm5653539 +nm5660334 +nm5680560 +nm5723853 +nm5728813 +nm5742093 +nm5766624 +nm5773401 +nm5773402 +nm5775620 +nm5813285 +nm5816152 +nm5835987 +nm5851452 +nm5851453 +nm5851454 +nm5852010 +nm5901475 +nm5901476 +nm5907146 +nm5940483 +nm5966976 +nm5976287 +nm6088502 +nm6121413 +nm6181433 +nm6228316 +nm6229462 +nm6250894 +nm6274510 +nm6278806 +nm6278807 +nm6293278 +nm6318299 +nm6391581 +nm6406412 +nm6409334 +nm6416860 +nm6454346 +nm6464238 +nm6464249 +nm6470381 +nm6483545 +nm6489032 +nm6522366 +nm6600035 +nm6625388 +nm6752693 +nm6757627 +nm6791821 +nm6877011 +nm6886108 +nm6918393 +nm6918394 +nm6918396 +nm6918397 +nm7109993 +nm7114004 +nm7125386 +nm7134203 +nm7195328 +nm7271268 +nm7284820 +nm7298893 +nm7339884 +nm7372929 +nm7372930 +nm7372931 +nm7391753 +nm7450001 +nm7450907 +nm7504181 +nm7587109 +nm7660658 +nm7660728 +nm7660729 +nm7837795 +nm7890539 +nm7890540 +nm7963748 +nm8132424 +nm8132425 +nm8132426 +nm8170054 +nm8186630 +nm8200676 +nm8263949 +nm8310004 +nm8356281 +nm8358985 +nm8486666 +nm8486679 +nm8486683 +nm8486689 +nm8573778 +nm8615754 +nm8615755 +nm8616729 +nm8784832 +nm8831504 +nm8831519 +nm8831524 +nm8843687 +nm8851943 +nm9016782 +nm9018079 +nm9027209 +nm9027213 +nm9027214 +nm9027218 +nm9027219 +nm9027226 +nm9078080 +nm9325371 +nm9325377 +nm9331852 +nm9420714 +nm9443255 +nm9443256 +nm9443257 +nm9443258 +nm9471339 +nm9471340 +nm9471341 +nm9471342 +nm9471343 +nm9471344 +nm9474444 +nm9509506 +nm9605879 +nm9606591 +nm9640815 +nm9823488 +nm9823489 +nm9823490 +nm9889902 +nm9889903 +nm9889904 +nm9904416 diff --git a/tests/resources/allowed_show b/tests/resources/allowed_show new file mode 100644 index 0000000..934d7cc --- /dev/null +++ b/tests/resources/allowed_show @@ -0,0 +1,84 @@ +tt0045409 +tt0050024 +tt0052440 +tt0053526 +tt0055661 +tt0055705 +tt0069646 +tt0072513 +tt0073301 +tt0106028 +tt0112065 +tt0115230 +tt0120960 +tt0122579 +tt0122837 +tt0133316 +tt0137305 +tt0149314 +tt0157239 +tt0165592 +tt0204081 +tt0205659 +tt0220212 +tt0239158 +tt0242203 +tt0264235 +tt0267176 +tt0270141 +tt0279077 +tt0280123 +tt0283205 +tt0328731 +tt0343963 +tt0348904 +tt0358794 +tt0369945 +tt0416369 +tt0417373 +tt0428106 +tt0435976 +tt0437733 +tt0443399 +tt0447763 +tt0458259 +tt0475912 +tt0479654 +tt0486531 +tt0844653 +tt0852610 +tt0883073 +tt0954317 +tt10055748 +tt1116560 +tt1118535 +tt1124279 +tt1231602 +tt1246607 +tt1327791 +tt1370334 +tt1480925 +tt1552648 +tt1587301 +tt1843678 +tt1856010 +tt1956017 +tt2149331 +tt2298919 +tt2356777 +tt2582590 +tt3105532 +tt3351126 +tt4168292 +tt4176650 +tt4977374 +tt5709316 +tt5813728 +tt5952882 +tt6312916 +tt7531644 +tt8002676 +tt8183028 +tt9056536 +tt9377372 +tt9590698 diff --git a/tests/test_load.py b/tests/test_load.py index 3d94e80..aa3849e 100644 --- a/tests/test_load.py +++ b/tests/test_load.py @@ -1,7 +1,95 @@ import pytest +from shutil import copyfile +import pathlib +import random +from typing import Set from moviegraphbenchmark import load_data +from moviegraphbenchmark.create_graph import ( + get_allowed, + get_excluded, + _create_data_path, + parse_files, +) +import os +from read_allowed import read_allowed_lists_from_resources -@pytest.mark.parametrize("pair", [None, "imdb-tmdb","imdb-tvdb","tmdb-tvdb"]) +( + allowed_episode, + allowed_film, + allowed_name, + allowed_show, +) = read_allowed_lists_from_resources() + + +def noop(*args, **kwargs): + return + + +def mock_read_row_tuples(path: str, exclusion: str, allowed: Set[str]): + if "name.basics.tsv" in path: + for ent in allowed_name: + yield [ + ent, + "example mcexampleface", + "1990", + "2000", + "dummy", + "mocker the movie", + ] + if "title.basics.tsv" in path: + for ent in allowed_film: + yield [ + ent, + "movie", + "mocker the movie", + "mtm", + "1", + "1990", + "2000", + "222", + "fiction", + ] + for ent in allowed_show: + yield [ + ent, + "show", + "mocker the show", + "mtm", + "1", + "1990", + "2000", + "222", + "fiction", + ] + if "title.episode.tsv" in path: + for ent in allowed_episode: + yield [ + ent, + random.choice(allowed_show), + "1", + "3", + ] + if "title.principals.tsv" in path: + for ent in allowed_name: + episode_or_show_or_movie = random.choice( + [allowed_episode, allowed_film, allowed_show] + ) + yield [ent, "", random.choice(episode_or_show_or_movie)] + + +@pytest.mark.slow +def test_create_graph_existing_download(monkeypatch): + data_path, _ = _create_data_path() + imdb_path = os.path.join(data_path, "imdb") + allowed = get_allowed(os.path.join(data_path, "imdb", "allowed")) + exclude = get_excluded(os.path.join(data_path, "imdb", "exclude")) + cleaned_attr, rel_trips = parse_files(imdb_path, allowed, exclude) + assert len(cleaned_attr) == 20800 + assert len(rel_trips) == 17507 + + +@pytest.mark.slow +@pytest.mark.parametrize("pair", [None, "imdb-tmdb", "imdb-tvdb", "tmdb-tvdb"]) def test_load(pair): if pair is None: ds = load_data() @@ -16,3 +104,64 @@ def test_load(pair): assert not fold.train_links.empty assert not fold.valid_links.empty assert not ds.ent_links.empty + + +def copy_existing_data(data_path): + def _create_old_new_data_path(old_data_path, new_data_path, name): + return os.path.join(old_data_path, name), os.path.join(new_data_path, name) + + def _copy_old_new(old_path, new_path, file_name): + if not os.path.exists(new_path): + os.makedirs(new_path) + copyfile(os.path.join(old_path, file_name), os.path.join(new_path, file_name)) + + orig_data = pathlib.Path(__file__).parent.parent.joinpath("data").absolute() + orig_imdb_path, new_imdb_path = _create_old_new_data_path( + orig_data, data_path, "imdb" + ) + _copy_old_new(orig_imdb_path, new_imdb_path, "allowed") + _copy_old_new(orig_imdb_path, new_imdb_path, "exclude") + + for task_folder in ["imdb-tmdb", "imdb-tvdb", "tmdb-tvdb"]: + orig_task_path, new_task_path = _create_old_new_data_path( + orig_data, data_path, task_folder + ) + for fold_folder in range(1, 6): + old_fold, new_fold = _create_old_new_data_path( + orig_task_path, + new_task_path, + os.path.join("721_5fold", str(fold_folder)), + ) + for links in ["test_links", "train_links", "valid_links"]: + _copy_old_new(old_fold, new_fold, links) + + if task_folder == "tmdb-tvdb": + _copy_old_new(orig_task_path, new_task_path, "attr_triples_1") + _copy_old_new(orig_task_path, new_task_path, "rel_triples_1") + _copy_old_new(orig_task_path, new_task_path, "attr_triples_2") + _copy_old_new(orig_task_path, new_task_path, "rel_triples_2") + _copy_old_new(orig_task_path, new_task_path, "ent_links") + + +@pytest.mark.parametrize("pair", [None, "imdb-tmdb", "imdb-tvdb", "tmdb-tvdb"]) +def test_load_mocked_downloads(pair, monkeypatch, tmpdir): + data_path = tmpdir.mkdir("data") + copy_existing_data(data_path) + monkeypatch.setattr("moviegraphbenchmark.create_graph.download_if_needed", noop) + monkeypatch.setattr("moviegraphbenchmark.create_graph._download_data", noop) + monkeypatch.setattr( + "moviegraphbenchmark.create_graph._read_row_tuples", mock_read_row_tuples + ) + if pair is None: + ds = load_data(data_path=data_path) + else: + ds = load_data(pair=pair, data_path=data_path) + assert not ds.attr_triples_1.empty + assert not ds.attr_triples_2.empty + assert not ds.rel_triples_1.empty + assert not ds.rel_triples_2.empty + for fold in ds.folds: + assert not fold.test_links.empty + assert not fold.train_links.empty + assert not fold.valid_links.empty + assert not ds.ent_links.empty