From 9f6c0e51e4fd283bc02b1915d81e481a0681997c Mon Sep 17 00:00:00 2001 From: edX requirements bot Date: Thu, 12 Dec 2024 00:06:28 -0500 Subject: [PATCH] chore: Upgrade Python requirements --- requirements/base.txt | 24 +++---- requirements/ci.txt | 24 +++---- requirements/dev.txt | 128 +++++++++++++++---------------------- requirements/doc.txt | 100 ++++++++++++----------------- requirements/pip-tools.txt | 21 ++---- requirements/pip.txt | 12 ++-- requirements/quality.txt | 68 ++++++++------------ requirements/test.txt | 47 ++++++-------- 8 files changed, 171 insertions(+), 253 deletions(-) diff --git a/requirements/base.txt b/requirements/base.txt index 29f9ba2..6cfc280 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -1,22 +1,20 @@ # -# This file is autogenerated by pip-compile with Python 3.8 +# This file is autogenerated by pip-compile with Python 3.11 # by the following command: # # make upgrade # -exceptiongroup==1.2.0 - # via pytest iniconfig==2.0.0 # via pytest -numpy==1.24.4 +numpy==2.2.0 # via pandas -packaging==23.2 +packaging==24.2 # via pytest -pandas==2.0.3 +pandas==2.2.3 # via -r requirements/base.in -pluggy==1.4.0 +pluggy==1.5.0 # via pytest -pytest==8.0.2 +pytest==8.3.4 # via # -r requirements/base.in # pytest-json-report @@ -25,13 +23,11 @@ pytest-json-report==1.5.0 # via -r requirements/base.in pytest-metadata==3.1.1 # via pytest-json-report -python-dateutil==2.8.2 +python-dateutil==2.9.0.post0 # via pandas -pytz==2024.1 +pytz==2024.2 # via pandas -six==1.16.0 +six==1.17.0 # via python-dateutil -tomli==2.0.1 - # via pytest -tzdata==2024.1 +tzdata==2024.2 # via pandas diff --git a/requirements/ci.txt b/requirements/ci.txt index 88a39ff..2474d09 100644 --- a/requirements/ci.txt +++ b/requirements/ci.txt @@ -1,38 +1,34 @@ # -# This file is autogenerated by pip-compile with Python 3.8 +# This file is autogenerated by pip-compile with Python 3.11 # by the following command: # # make upgrade # -cachetools==5.3.3 +cachetools==5.5.0 # via tox chardet==5.2.0 # via tox colorama==0.4.6 # via tox -distlib==0.3.8 +distlib==0.3.9 # via virtualenv -filelock==3.13.1 +filelock==3.16.1 # via # tox # virtualenv -packaging==23.2 +packaging==24.2 # via # pyproject-api # tox -platformdirs==4.2.0 +platformdirs==4.3.6 # via # tox # virtualenv -pluggy==1.4.0 +pluggy==1.5.0 # via tox -pyproject-api==1.6.1 +pyproject-api==1.8.0 # via tox -tomli==2.0.1 - # via - # pyproject-api - # tox -tox==4.13.0 +tox==4.23.2 # via -r requirements/ci.in -virtualenv==20.25.1 +virtualenv==20.28.0 # via tox diff --git a/requirements/dev.txt b/requirements/dev.txt index 1de4f4c..8e30cd4 100644 --- a/requirements/dev.txt +++ b/requirements/dev.txt @@ -1,21 +1,21 @@ # -# This file is autogenerated by pip-compile with Python 3.8 +# This file is autogenerated by pip-compile with Python 3.11 # by the following command: # # make upgrade # -asgiref==3.7.2 +asgiref==3.8.1 # via django -astroid==3.1.0 +astroid==3.3.6 # via # -r requirements/quality.txt # pylint # pylint-celery -build==1.0.3 +build==1.2.2.post1 # via # -r requirements/pip-tools.txt # pip-tools -cachetools==5.3.3 +cachetools==5.5.0 # via # -r requirements/ci.txt # tox @@ -36,7 +36,7 @@ click-log==0.4.0 # via # -r requirements/quality.txt # edx-lint -code-annotations==1.6.0 +code-annotations==2.0.0 # via # -r requirements/quality.txt # edx-lint @@ -44,41 +44,33 @@ colorama==0.4.6 # via # -r requirements/ci.txt # tox -coverage[toml]==7.4.3 +coverage[toml]==7.6.9 # via # -r requirements/quality.txt # pytest-cov -diff-cover==8.0.3 +diff-cover==9.2.0 # via -r requirements/dev.in -dill==0.3.8 +dill==0.3.9 # via # -r requirements/quality.txt # pylint -distlib==0.3.8 +distlib==0.3.9 # via # -r requirements/ci.txt # virtualenv -django==3.2.24 +django==4.2.17 # via # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt # edx-i18n-tools -edx-i18n-tools==1.3.0 +edx-i18n-tools==1.6.3 # via -r requirements/dev.in -edx-lint==5.3.6 +edx-lint==5.4.1 # via -r requirements/quality.txt -exceptiongroup==1.2.0 - # via - # -r requirements/quality.txt - # pytest -filelock==3.13.1 +filelock==3.16.1 # via # -r requirements/ci.txt # tox # virtualenv -importlib-metadata==7.0.1 - # via - # -r requirements/pip-tools.txt - # build iniconfig==2.0.0 # via # -r requirements/quality.txt @@ -87,14 +79,18 @@ isort==5.13.2 # via # -r requirements/quality.txt # pylint -jinja2==3.1.3 +jinja2==3.1.4 # via # -r requirements/quality.txt # code-annotations # diff-cover -lxml==5.1.0 - # via edx-i18n-tools -markupsafe==2.1.5 +lxml[html-clean,html_clean]==5.3.0 + # via + # edx-i18n-tools + # lxml-html-clean +lxml-html-clean==0.4.1 + # via lxml +markupsafe==3.0.2 # via # -r requirements/quality.txt # jinja2 @@ -102,11 +98,11 @@ mccabe==0.7.0 # via # -r requirements/quality.txt # pylint -numpy==1.24.4 +numpy==2.2.0 # via # -r requirements/quality.txt # pandas -packaging==23.2 +packaging==24.2 # via # -r requirements/ci.txt # -r requirements/pip-tools.txt @@ -115,24 +111,24 @@ packaging==23.2 # pyproject-api # pytest # tox -pandas==2.0.3 +pandas==2.2.3 # via -r requirements/quality.txt -path==16.10.0 +path==16.16.0 # via edx-i18n-tools -pbr==6.0.0 +pbr==6.1.0 # via # -r requirements/quality.txt # stevedore -pip-tools==7.4.0 +pip-tools==7.4.1 # via -r requirements/pip-tools.txt -platformdirs==4.2.0 +platformdirs==4.3.6 # via # -r requirements/ci.txt # -r requirements/quality.txt # pylint # tox # virtualenv -pluggy==1.4.0 +pluggy==1.5.0 # via # -r requirements/ci.txt # -r requirements/quality.txt @@ -141,13 +137,13 @@ pluggy==1.4.0 # tox polib==1.2.0 # via edx-i18n-tools -pycodestyle==2.11.1 +pycodestyle==2.12.1 # via -r requirements/quality.txt pydocstyle==6.3.0 # via -r requirements/quality.txt -pygments==2.17.2 +pygments==2.18.0 # via diff-cover -pylint==3.1.0 +pylint==3.3.2 # via # -r requirements/quality.txt # edx-lint @@ -158,7 +154,7 @@ pylint-celery==0.3 # via # -r requirements/quality.txt # edx-lint -pylint-django==2.5.5 +pylint-django==2.6.1 # via # -r requirements/quality.txt # edx-lint @@ -167,25 +163,25 @@ pylint-plugin-utils==0.8.2 # -r requirements/quality.txt # pylint-celery # pylint-django -pyproject-api==1.6.1 +pyproject-api==1.8.0 # via # -r requirements/ci.txt # tox -pyproject-hooks==1.0.0 +pyproject-hooks==1.2.0 # via # -r requirements/pip-tools.txt # build # pip-tools -pytest==8.0.2 +pytest==8.3.4 # via # -r requirements/quality.txt # pytest-cov # pytest-django # pytest-json-report # pytest-metadata -pytest-cov==4.1.0 +pytest-cov==6.0.0 # via -r requirements/quality.txt -pytest-django==4.8.0 +pytest-django==4.9.0 # via -r requirements/quality.txt pytest-json-report==1.5.0 # via -r requirements/quality.txt @@ -193,7 +189,7 @@ pytest-metadata==3.1.1 # via # -r requirements/quality.txt # pytest-json-report -python-dateutil==2.8.2 +python-dateutil==2.9.0.post0 # via # -r requirements/quality.txt # pandas @@ -201,17 +197,16 @@ python-slugify==8.0.4 # via # -r requirements/quality.txt # code-annotations -pytz==2024.1 +pytz==2024.2 # via # -r requirements/quality.txt - # django # pandas -pyyaml==6.0.1 +pyyaml==6.0.2 # via # -r requirements/quality.txt # code-annotations # edx-i18n-tools -six==1.16.0 +six==1.17.0 # via # -r requirements/quality.txt # edx-lint @@ -220,9 +215,9 @@ snowballstemmer==2.2.0 # via # -r requirements/quality.txt # pydocstyle -sqlparse==0.4.4 +sqlparse==0.5.3 # via django -stevedore==5.2.0 +stevedore==5.4.0 # via # -r requirements/quality.txt # code-annotations @@ -230,47 +225,24 @@ text-unidecode==1.3 # via # -r requirements/quality.txt # python-slugify -tomli==2.0.1 - # via - # -r requirements/ci.txt - # -r requirements/pip-tools.txt - # -r requirements/quality.txt - # build - # coverage - # pip-tools - # pylint - # pyproject-api - # pyproject-hooks - # pytest - # tox -tomlkit==0.12.4 +tomlkit==0.13.2 # via # -r requirements/quality.txt # pylint -tox==4.13.0 +tox==4.23.2 # via -r requirements/ci.txt -typing-extensions==4.10.0 - # via - # -r requirements/quality.txt - # asgiref - # astroid - # pylint -tzdata==2024.1 +tzdata==2024.2 # via # -r requirements/quality.txt # pandas -virtualenv==20.25.1 +virtualenv==20.28.0 # via # -r requirements/ci.txt # tox -wheel==0.42.0 +wheel==0.45.1 # via # -r requirements/pip-tools.txt # pip-tools -zipp==3.17.0 - # via - # -r requirements/pip-tools.txt - # importlib-metadata # The following packages are considered to be unsafe in a requirements file: # pip diff --git a/requirements/doc.txt b/requirements/doc.txt index d2f67f4..67733a4 100644 --- a/requirements/doc.txt +++ b/requirements/doc.txt @@ -1,106 +1,99 @@ # -# This file is autogenerated by pip-compile with Python 3.8 +# This file is autogenerated by pip-compile with Python 3.11 # by the following command: # # make upgrade # -accessible-pygments==0.0.4 +accessible-pygments==0.0.5 # via pydata-sphinx-theme -alabaster==0.7.13 +alabaster==1.0.0 # via sphinx -babel==2.14.0 +babel==2.16.0 # via # pydata-sphinx-theme # sphinx beautifulsoup4==4.12.3 # via pydata-sphinx-theme -certifi==2024.2.2 +certifi==2024.8.30 # via requests -charset-normalizer==3.3.2 +charset-normalizer==3.4.0 # via requests click==8.1.7 # via # -r requirements/test.txt # code-annotations -code-annotations==1.6.0 +code-annotations==2.0.0 # via -r requirements/test.txt -coverage[toml]==7.4.3 +coverage[toml]==7.6.9 # via # -r requirements/test.txt # pytest-cov -doc8==1.1.1 +doc8==1.1.2 # via -r requirements/doc.in -docutils==0.19 +docutils==0.21.2 # via # doc8 # pydata-sphinx-theme # readme-renderer # restructuredtext-lint # sphinx -exceptiongroup==1.2.0 - # via - # -r requirements/test.txt - # pytest -idna==3.6 +idna==3.10 # via requests imagesize==1.4.1 # via sphinx -importlib-metadata==7.0.1 - # via sphinx iniconfig==2.0.0 # via # -r requirements/test.txt # pytest -jinja2==3.1.3 +jinja2==3.1.4 # via # -r requirements/test.txt # code-annotations # sphinx -markupsafe==2.1.5 +markupsafe==3.0.2 # via # -r requirements/test.txt # jinja2 -nh3==0.2.15 +nh3==0.2.19 # via readme-renderer -numpy==1.24.4 +numpy==2.2.0 # via # -r requirements/test.txt # pandas -packaging==23.2 +packaging==24.2 # via # -r requirements/test.txt - # pydata-sphinx-theme # pytest # sphinx -pandas==2.0.3 +pandas==2.2.3 # via -r requirements/test.txt -pbr==6.0.0 +pbr==6.1.0 # via # -r requirements/test.txt # stevedore -pluggy==1.4.0 +pluggy==1.5.0 # via # -r requirements/test.txt # pytest -pydata-sphinx-theme==0.14.4 +pydata-sphinx-theme==0.16.0 # via sphinx-book-theme -pygments==2.17.2 +pygments==2.18.0 # via # accessible-pygments # doc8 # pydata-sphinx-theme # readme-renderer # sphinx -pytest==8.0.2 +pytest==8.3.4 # via # -r requirements/test.txt # pytest-cov # pytest-django # pytest-json-report # pytest-metadata -pytest-cov==4.1.0 +pytest-cov==6.0.0 # via -r requirements/test.txt -pytest-django==4.8.0 +pytest-django==4.9.0 # via -r requirements/test.txt pytest-json-report==1.5.0 # via -r requirements/test.txt @@ -108,7 +101,7 @@ pytest-metadata==3.1.1 # via # -r requirements/test.txt # pytest-json-report -python-dateutil==2.8.2 +python-dateutil==2.9.0.post0 # via # -r requirements/test.txt # pandas @@ -116,49 +109,48 @@ python-slugify==8.0.4 # via # -r requirements/test.txt # code-annotations -pytz==2024.1 +pytz==2024.2 # via # -r requirements/test.txt - # babel # pandas -pyyaml==6.0.1 +pyyaml==6.0.2 # via # -r requirements/test.txt # code-annotations -readme-renderer==43.0 +readme-renderer==44.0 # via -r requirements/doc.in -requests==2.31.0 +requests==2.32.3 # via sphinx restructuredtext-lint==1.4.0 # via doc8 -six==1.16.0 +six==1.17.0 # via # -r requirements/test.txt # python-dateutil snowballstemmer==2.2.0 # via sphinx -soupsieve==2.5 +soupsieve==2.6 # via beautifulsoup4 -sphinx==6.2.1 +sphinx==8.1.3 # via # -r requirements/doc.in # pydata-sphinx-theme # sphinx-book-theme -sphinx-book-theme==1.0.1 +sphinx-book-theme==1.1.3 # via -r requirements/doc.in -sphinxcontrib-applehelp==1.0.4 +sphinxcontrib-applehelp==2.0.0 # via sphinx -sphinxcontrib-devhelp==1.0.2 +sphinxcontrib-devhelp==2.0.0 # via sphinx -sphinxcontrib-htmlhelp==2.0.1 +sphinxcontrib-htmlhelp==2.1.0 # via sphinx sphinxcontrib-jsmath==1.0.1 # via sphinx -sphinxcontrib-qthelp==1.0.3 +sphinxcontrib-qthelp==2.0.0 # via sphinx -sphinxcontrib-serializinghtml==1.1.5 +sphinxcontrib-serializinghtml==2.0.0 # via sphinx -stevedore==5.2.0 +stevedore==5.4.0 # via # -r requirements/test.txt # code-annotations @@ -167,19 +159,11 @@ text-unidecode==1.3 # via # -r requirements/test.txt # python-slugify -tomli==2.0.1 - # via - # -r requirements/test.txt - # coverage - # doc8 - # pytest -typing-extensions==4.10.0 +typing-extensions==4.12.2 # via pydata-sphinx-theme -tzdata==2024.1 +tzdata==2024.2 # via # -r requirements/test.txt # pandas -urllib3==2.2.1 +urllib3==2.2.3 # via requests -zipp==3.17.0 - # via importlib-metadata diff --git a/requirements/pip-tools.txt b/requirements/pip-tools.txt index 44c48d9..8308278 100644 --- a/requirements/pip-tools.txt +++ b/requirements/pip-tools.txt @@ -1,32 +1,23 @@ # -# This file is autogenerated by pip-compile with Python 3.8 +# This file is autogenerated by pip-compile with Python 3.11 # by the following command: # # make upgrade # -build==1.0.3 +build==1.2.2.post1 # via pip-tools click==8.1.7 # via pip-tools -importlib-metadata==7.0.1 +packaging==24.2 # via build -packaging==23.2 - # via build -pip-tools==7.4.0 +pip-tools==7.4.1 # via -r requirements/pip-tools.in -pyproject-hooks==1.0.0 - # via - # build - # pip-tools -tomli==2.0.1 +pyproject-hooks==1.2.0 # via # build # pip-tools - # pyproject-hooks -wheel==0.42.0 +wheel==0.45.1 # via pip-tools -zipp==3.17.0 - # via importlib-metadata # The following packages are considered to be unsafe in a requirements file: # pip diff --git a/requirements/pip.txt b/requirements/pip.txt index 6665603..25d1d69 100644 --- a/requirements/pip.txt +++ b/requirements/pip.txt @@ -1,14 +1,16 @@ # -# This file is autogenerated by pip-compile with Python 3.8 +# This file is autogenerated by pip-compile with Python 3.11 # by the following command: # # make upgrade # -wheel==0.42.0 +wheel==0.45.1 # via -r requirements/pip.in # The following packages are considered to be unsafe in a requirements file: -pip==24.0 - # via -r requirements/pip.in -setuptools==69.1.1 +pip==24.2 + # via + # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt + # -r requirements/pip.in +setuptools==75.6.0 # via -r requirements/pip.in diff --git a/requirements/quality.txt b/requirements/quality.txt index 0e15b87..757c67f 100644 --- a/requirements/quality.txt +++ b/requirements/quality.txt @@ -1,10 +1,10 @@ # -# This file is autogenerated by pip-compile with Python 3.8 +# This file is autogenerated by pip-compile with Python 3.11 # by the following command: # # make upgrade # -astroid==3.1.0 +astroid==3.3.6 # via # pylint # pylint-celery @@ -16,22 +16,18 @@ click==8.1.7 # edx-lint click-log==0.4.0 # via edx-lint -code-annotations==1.6.0 +code-annotations==2.0.0 # via # -r requirements/test.txt # edx-lint -coverage[toml]==7.4.3 +coverage[toml]==7.6.9 # via # -r requirements/test.txt # pytest-cov -dill==0.3.8 +dill==0.3.9 # via pylint -edx-lint==5.3.6 +edx-lint==5.4.1 # via -r requirements/quality.in -exceptiongroup==1.2.0 - # via - # -r requirements/test.txt - # pytest iniconfig==2.0.0 # via # -r requirements/test.txt @@ -40,41 +36,41 @@ isort==5.13.2 # via # -r requirements/quality.in # pylint -jinja2==3.1.3 +jinja2==3.1.4 # via # -r requirements/test.txt # code-annotations -markupsafe==2.1.5 +markupsafe==3.0.2 # via # -r requirements/test.txt # jinja2 mccabe==0.7.0 # via pylint -numpy==1.24.4 +numpy==2.2.0 # via # -r requirements/test.txt # pandas -packaging==23.2 +packaging==24.2 # via # -r requirements/test.txt # pytest -pandas==2.0.3 +pandas==2.2.3 # via -r requirements/test.txt -pbr==6.0.0 +pbr==6.1.0 # via # -r requirements/test.txt # stevedore -platformdirs==4.2.0 +platformdirs==4.3.6 # via pylint -pluggy==1.4.0 +pluggy==1.5.0 # via # -r requirements/test.txt # pytest -pycodestyle==2.11.1 +pycodestyle==2.12.1 # via -r requirements/quality.in pydocstyle==6.3.0 # via -r requirements/quality.in -pylint==3.1.0 +pylint==3.3.2 # via # edx-lint # pylint-celery @@ -82,22 +78,22 @@ pylint==3.1.0 # pylint-plugin-utils pylint-celery==0.3 # via edx-lint -pylint-django==2.5.5 +pylint-django==2.6.1 # via edx-lint pylint-plugin-utils==0.8.2 # via # pylint-celery # pylint-django -pytest==8.0.2 +pytest==8.3.4 # via # -r requirements/test.txt # pytest-cov # pytest-django # pytest-json-report # pytest-metadata -pytest-cov==4.1.0 +pytest-cov==6.0.0 # via -r requirements/test.txt -pytest-django==4.8.0 +pytest-django==4.9.0 # via -r requirements/test.txt pytest-json-report==1.5.0 # via -r requirements/test.txt @@ -105,7 +101,7 @@ pytest-metadata==3.1.1 # via # -r requirements/test.txt # pytest-json-report -python-dateutil==2.8.2 +python-dateutil==2.9.0.post0 # via # -r requirements/test.txt # pandas @@ -113,22 +109,22 @@ python-slugify==8.0.4 # via # -r requirements/test.txt # code-annotations -pytz==2024.1 +pytz==2024.2 # via # -r requirements/test.txt # pandas -pyyaml==6.0.1 +pyyaml==6.0.2 # via # -r requirements/test.txt # code-annotations -six==1.16.0 +six==1.17.0 # via # -r requirements/test.txt # edx-lint # python-dateutil snowballstemmer==2.2.0 # via pydocstyle -stevedore==5.2.0 +stevedore==5.4.0 # via # -r requirements/test.txt # code-annotations @@ -136,19 +132,9 @@ text-unidecode==1.3 # via # -r requirements/test.txt # python-slugify -tomli==2.0.1 - # via - # -r requirements/test.txt - # coverage - # pylint - # pytest -tomlkit==0.12.4 +tomlkit==0.13.2 # via pylint -typing-extensions==4.10.0 - # via - # astroid - # pylint -tzdata==2024.1 +tzdata==2024.2 # via # -r requirements/test.txt # pandas diff --git a/requirements/test.txt b/requirements/test.txt index 54340a7..9b90168 100644 --- a/requirements/test.txt +++ b/requirements/test.txt @@ -1,53 +1,49 @@ # -# This file is autogenerated by pip-compile with Python 3.8 +# This file is autogenerated by pip-compile with Python 3.11 # by the following command: # # make upgrade # click==8.1.7 # via code-annotations -code-annotations==1.6.0 +code-annotations==2.0.0 # via -r requirements/test.in -coverage[toml]==7.4.3 +coverage[toml]==7.6.9 # via pytest-cov -exceptiongroup==1.2.0 - # via - # -r requirements/base.txt - # pytest iniconfig==2.0.0 # via # -r requirements/base.txt # pytest -jinja2==3.1.3 +jinja2==3.1.4 # via code-annotations -markupsafe==2.1.5 +markupsafe==3.0.2 # via jinja2 -numpy==1.24.4 +numpy==2.2.0 # via # -r requirements/base.txt # pandas -packaging==23.2 +packaging==24.2 # via # -r requirements/base.txt # pytest -pandas==2.0.3 +pandas==2.2.3 # via -r requirements/base.txt -pbr==6.0.0 +pbr==6.1.0 # via stevedore -pluggy==1.4.0 +pluggy==1.5.0 # via # -r requirements/base.txt # pytest -pytest==8.0.2 +pytest==8.3.4 # via # -r requirements/base.txt # pytest-cov # pytest-django # pytest-json-report # pytest-metadata -pytest-cov==4.1.0 +pytest-cov==6.0.0 # via -r requirements/test.in -pytest-django==4.8.0 +pytest-django==4.9.0 # via -r requirements/test.in pytest-json-report==1.5.0 # via -r requirements/base.txt @@ -55,32 +51,27 @@ pytest-metadata==3.1.1 # via # -r requirements/base.txt # pytest-json-report -python-dateutil==2.8.2 +python-dateutil==2.9.0.post0 # via # -r requirements/base.txt # pandas python-slugify==8.0.4 # via code-annotations -pytz==2024.1 +pytz==2024.2 # via # -r requirements/base.txt # pandas -pyyaml==6.0.1 +pyyaml==6.0.2 # via code-annotations -six==1.16.0 +six==1.17.0 # via # -r requirements/base.txt # python-dateutil -stevedore==5.2.0 +stevedore==5.4.0 # via code-annotations text-unidecode==1.3 # via python-slugify -tomli==2.0.1 - # via - # -r requirements/base.txt - # coverage - # pytest -tzdata==2024.1 +tzdata==2024.2 # via # -r requirements/base.txt # pandas