diff --git a/epicbox-python/Dockerfile b/epicbox-python/3.10/Dockerfile similarity index 100% rename from epicbox-python/Dockerfile rename to epicbox-python/3.10/Dockerfile diff --git a/epicbox-python/requirements.in b/epicbox-python/3.10/requirements.in similarity index 100% rename from epicbox-python/requirements.in rename to epicbox-python/3.10/requirements.in diff --git a/epicbox-python/requirements.txt b/epicbox-python/3.10/requirements.txt similarity index 100% rename from epicbox-python/requirements.txt rename to epicbox-python/3.10/requirements.txt diff --git a/epicbox-python/3.12/Dockerfile b/epicbox-python/3.12/Dockerfile new file mode 100644 index 0000000..7b94dce --- /dev/null +++ b/epicbox-python/3.12/Dockerfile @@ -0,0 +1,48 @@ +FROM python:3.12.3-slim-bookworm +MAINTAINER Stepik Team + +ENV DEBIAN_FRONTEND=noninteractive +ENV PYTHONDONTWRITEBYTECODE=1 +ENV NLTK_DIR=/usr/local/nltk_data +ENV MYSTEM_DIR=/usr/local/bin + +RUN apt-get update && apt-get install -y --no-install-recommends \ + build-essential \ + default-libmysqlclient-dev \ + gfortran \ + libblas-dev \ + libbz2-dev \ + libffi-dev \ + libfreetype6-dev \ + libgdbm-dev \ + libgeos-dev \ + libjpeg-dev \ + liblapack-dev \ + liblzma-dev \ + libncursesw5-dev \ + libreadline-dev \ + libsqlite3-dev \ + libssl-dev \ + libxml2-dev \ + libxslt-dev \ + libz-dev \ + locales \ + pkg-config \ + uuid-dev \ + wget \ + zlib1g-dev \ + && rm -rf /var/lib/apt/lists/* \ + && sed -i '/\(en_US.UTF-8\|ru_RU.UTF-8\)/s/^# //g' /etc/locale.gen \ + && locale-gen + +COPY requirements.txt /tmp + +RUN pip install --no-cache-dir --root-user-action=ignore -r /tmp/requirements.txt \ + && python -m nltk.downloader -d ${NLTK_DIR} averaged_perceptron_tagger brown gutenberg movie_reviews omw-1.4 punkt treebank word2vec_sample wordnet \ + && wget -qO- https://download.cdn.yandex.net/mystem/mystem-3.1-linux-64bit.tar.gz | tar xvz -C ${MYSTEM_DIR} \ + && rm /tmp/requirements.txt \ + && rm -Rf /root/.cache/ + +RUN useradd -M -d /sandbox sandbox \ + && mkdir /sandbox \ + && chown sandbox:sandbox /sandbox diff --git a/epicbox-python/3.12/requirements.in b/epicbox-python/3.12/requirements.in new file mode 100644 index 0000000..bcfe94d --- /dev/null +++ b/epicbox-python/3.12/requirements.in @@ -0,0 +1,72 @@ +stepic_bioinformatics @ https://github.com/StepicOrg/stepik-bioinformatics/archive/1.0.0.zip#sha256=d467a0e6bef6f421d14f849f2aa461a151e8c8ff1ee58b473649fa07140ed415 +stepic_common @ https://github.com/StepicOrg/stepik-common/archive/1.0.0.zip#sha256=aef2548abd7c083a9dad77dc33f20b7aa0918c80d3177876d165973bcf19e254 +stepic_utils @ https://github.com/StepicOrg/stepik-utils/archive/1.2.0.zip#sha256=912598af26ac31b752a0ee26293a1fe529c0188c495ba6b11d769294d129a3ba +stepik_alignment @ https://github.com/StepicOrg/stepik-alignment/archive/1.1.0.zip#sha256=afcb3693fbef4b429b67d6651c4bd782bb26470821561ead0fb98e69ed45c10e + +sympy==1.12 +numpy==1.26.4 +scipy==1.12.0 +pandas==2.2.2 +lxml==5.2.1 +beautifulsoup4==4.12.3 +toolz==0.12.1 +# Cython is required by scikit-image +# Cython==0.29.26 ??? +matplotlib==3.8.4 +networkx==3.3 +scikit-image==0.23.2 +scikit-learn==1.4.2 +# rsa to check encrypted tokens +rsa==4.9 +# natural language processing +nltk==3.8.1 +pymorphy2==0.9.1 +pymorphy2-dicts-ru==2.4.417127.4579844 +pymystem3==0.2.0 +sumy==0.11.0 +gensim==4.3.2 +fasttext==0.9.2 + +mip==1.14.2 +shapely==2.0.4 +pycosat==0.6.6 + +# Hardware description and verification language for hardware engineers. +myhdl==0.11.45 + +# Hyperskill +Django==5.0.6 + +# Stepik Academy +djangorestframework==3.15.1 + +# For testing +factory-boy==3.3 +faker==25.0.1 +hypothesis==6.100.4 + +opencv-python-headless==4.9.0.80 + +pysqlite3-binary==0.5.2.post3 + +# required by admin quiz +pytest==8.2.0 +requests==2.31.0 + +# required by sql challenge +mysqlclient==2.2.4 + +SQLAlchemy==2.0.30 +prettytable==3.10.0 +pydantic==2.7.1 +loguru==0.7.2 +fastapi==0.111.0 +sqlmodel==0.0.18 +emoji==2.11.1 +python-sat==1.8.dev12 + +# Flask +Flask==3.0.3 +Flask-WTF==1.2.1 +Flask-RESTful==0.3.10 +flask-smorest==0.44.0 diff --git a/epicbox-python/3.12/requirements.txt b/epicbox-python/3.12/requirements.txt new file mode 100644 index 0000000..aa73e8e --- /dev/null +++ b/epicbox-python/3.12/requirements.txt @@ -0,0 +1,375 @@ +# +# This file is autogenerated by pip-compile with Python 3.12 +# by the following command: +# +# pip-compile requirements.in +# +aniso8601==9.0.1 + # via flask-restful +annotated-types==0.6.0 + # via pydantic +anyio==4.3.0 + # via + # httpx + # starlette + # watchfiles +apispec[marshmallow]==6.6.1 + # via flask-smorest +asgiref==3.8.1 + # via django +attrs==23.2.0 + # via hypothesis +beautifulsoup4==4.12.3 + # via -r requirements.in +biopython==1.83 + # via + # stepic-bioinformatics + # stepic-common +blinker==1.8.2 + # via flask +breadability==0.1.20 + # via sumy +certifi==2024.2.2 + # via + # httpcore + # httpx + # requests +cffi==1.15.0 + # via mip +chardet==5.2.0 + # via breadability +charset-normalizer==3.3.2 + # via requests +click==8.1.7 + # via + # flask + # nltk + # typer + # uvicorn +contourpy==1.2.1 + # via matplotlib +cycler==0.12.1 + # via matplotlib +dawg-python==0.7.2 + # via pymorphy2 +django==5.0.6 + # via + # -r requirements.in + # djangorestframework +djangorestframework==3.15.1 + # via -r requirements.in +dnspython==2.6.1 + # via email-validator +docopt==0.6.2 + # via + # breadability + # pymorphy2 + # sumy +email-validator==2.1.1 + # via fastapi +emoji==2.11.1 + # via -r requirements.in +factory-boy==3.3.0 + # via -r requirements.in +faker==25.0.1 + # via + # -r requirements.in + # factory-boy +fastapi==0.111.0 + # via -r requirements.in +fastapi-cli==0.0.4 + # via fastapi +fasttext==0.9.2 + # via -r requirements.in +flask==3.0.3 + # via + # -r requirements.in + # flask-restful + # flask-smorest + # flask-wtf +flask-restful==0.3.10 + # via -r requirements.in +flask-smorest==0.44.0 + # via -r requirements.in +flask-wtf==1.2.1 + # via -r requirements.in +fonttools==4.51.0 + # via matplotlib +gensim==4.3.2 + # via -r requirements.in +greenlet==3.0.3 + # via sqlalchemy +h11==0.14.0 + # via + # httpcore + # uvicorn +httpcore==1.0.5 + # via httpx +httptools==0.6.1 + # via uvicorn +httpx==0.27.0 + # via fastapi +hypothesis==6.100.4 + # via -r requirements.in +idna==3.7 + # via + # anyio + # email-validator + # httpx + # requests +imageio==2.34.1 + # via scikit-image +iniconfig==2.0.0 + # via pytest +itsdangerous==2.2.0 + # via + # flask + # flask-wtf +jinja2==3.1.4 + # via + # fastapi + # flask +joblib==1.4.2 + # via + # nltk + # scikit-learn +kiwisolver==1.4.5 + # via matplotlib +lazy-loader==0.4 + # via scikit-image +loguru==0.7.2 + # via -r requirements.in +lxml==5.2.1 + # via + # -r requirements.in + # breadability +markdown-it-py==3.0.0 + # via rich +markupsafe==2.1.5 + # via + # jinja2 + # werkzeug + # wtforms +marshmallow==3.21.2 + # via + # apispec + # flask-smorest + # webargs +matplotlib==3.8.4 + # via -r requirements.in +mdurl==0.1.2 + # via markdown-it-py +mip==1.14.2 + # via -r requirements.in +mpmath==1.3.0 + # via sympy +myhdl==0.11.45 + # via -r requirements.in +mysqlclient==2.2.4 + # via -r requirements.in +networkx==3.3 + # via + # -r requirements.in + # scikit-image +nltk==3.8.1 + # via + # -r requirements.in + # sumy +numpy==1.26.4 + # via + # -r requirements.in + # biopython + # contourpy + # fasttext + # gensim + # imageio + # matplotlib + # opencv-python-headless + # pandas + # scikit-image + # scikit-learn + # scipy + # shapely + # tifffile +opencv-python-headless==4.9.0.80 + # via -r requirements.in +orjson==3.10.3 + # via fastapi +packaging==24.0 + # via + # apispec + # lazy-loader + # marshmallow + # matplotlib + # pytest + # scikit-image + # webargs +pandas==2.2.2 + # via -r requirements.in +pillow==10.3.0 + # via + # imageio + # matplotlib + # scikit-image +pluggy==1.5.0 + # via pytest +prettytable==3.10.0 + # via -r requirements.in +pyasn1==0.6.0 + # via rsa +pybind11==2.12.0 + # via fasttext +pycosat==0.6.6 + # via -r requirements.in +pycountry==23.12.11 + # via sumy +pycparser==2.22 + # via cffi +pydantic==2.7.1 + # via + # -r requirements.in + # fastapi + # sqlmodel +pydantic-core==2.18.2 + # via pydantic +pygments==2.18.0 + # via rich +pymorphy2==0.9.1 + # via -r requirements.in +pymorphy2-dicts-ru==2.4.417127.4579844 + # via + # -r requirements.in + # pymorphy2 +pymystem3==0.2.0 + # via -r requirements.in +pyparsing==3.1.2 + # via matplotlib +pysqlite3-binary==0.5.2.post3 + # via -r requirements.in +pytest==8.2.0 + # via -r requirements.in +python-dateutil==2.9.0.post0 + # via + # faker + # matplotlib + # pandas +python-dotenv==1.0.1 + # via uvicorn +python-multipart==0.0.9 + # via fastapi +python-sat==1.8.dev12 + # via -r requirements.in +pytz==2024.1 + # via + # flask-restful + # pandas +pyyaml==6.0.1 + # via uvicorn +regex==2024.5.15 + # via nltk +requests==2.31.0 + # via + # -r requirements.in + # pymystem3 + # sumy +rich==13.7.1 + # via typer +rsa==4.9 + # via -r requirements.in +scikit-image==0.23.2 + # via -r requirements.in +scikit-learn==1.4.2 + # via -r requirements.in +scipy==1.12.0 + # via + # -r requirements.in + # gensim + # scikit-image + # scikit-learn +shapely==2.0.4 + # via -r requirements.in +shellingham==1.5.4 + # via typer +six==1.16.0 + # via + # flask-restful + # python-dateutil + # python-sat +smart-open==7.0.4 + # via gensim +sniffio==1.3.1 + # via + # anyio + # httpx +sortedcontainers==2.4.0 + # via hypothesis +soupsieve==2.5 + # via beautifulsoup4 +sqlalchemy==2.0.30 + # via + # -r requirements.in + # sqlmodel +sqlmodel==0.0.18 + # via -r requirements.in +sqlparse==0.5.0 + # via django +starlette==0.37.2 + # via fastapi +stepic-bioinformatics @ https://github.com/StepicOrg/stepik-bioinformatics/archive/1.0.0.zip#sha256=d467a0e6bef6f421d14f849f2aa461a151e8c8ff1ee58b473649fa07140ed415 + # via -r requirements.in +stepic-common @ https://github.com/StepicOrg/stepik-common/archive/1.0.0.zip#sha256=aef2548abd7c083a9dad77dc33f20b7aa0918c80d3177876d165973bcf19e254 + # via -r requirements.in +stepic-utils @ https://github.com/StepicOrg/stepik-utils/archive/1.2.0.zip#sha256=912598af26ac31b752a0ee26293a1fe529c0188c495ba6b11d769294d129a3ba + # via -r requirements.in +stepik-alignment @ https://github.com/StepicOrg/stepik-alignment/archive/1.1.0.zip#sha256=afcb3693fbef4b429b67d6651c4bd782bb26470821561ead0fb98e69ed45c10e + # via -r requirements.in +sumy==0.11.0 + # via -r requirements.in +sympy==1.12 + # via -r requirements.in +threadpoolctl==3.5.0 + # via scikit-learn +tifffile==2024.5.10 + # via scikit-image +toolz==0.12.1 + # via -r requirements.in +tqdm==4.66.4 + # via nltk +typer==0.12.3 + # via fastapi-cli +typing-extensions==4.11.0 + # via + # fastapi + # pydantic + # pydantic-core + # sqlalchemy + # typer +tzdata==2024.1 + # via pandas +ujson==5.10.0 + # via fastapi +urllib3==2.2.1 + # via requests +uvicorn[standard]==0.29.0 + # via fastapi +uvloop==0.19.0 + # via uvicorn +watchfiles==0.21.0 + # via uvicorn +wcwidth==0.2.13 + # via prettytable +webargs==8.4.0 + # via flask-smorest +websockets==12.0 + # via uvicorn +werkzeug==3.0.3 + # via + # flask + # flask-smorest +wrapt==1.16.0 + # via smart-open +wtforms==3.1.2 + # via flask-wtf + +# The following packages are considered to be unsafe in a requirements file: +# setuptools