diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile new file mode 100644 index 0000000000..543e640968 --- /dev/null +++ b/.devcontainer/Dockerfile @@ -0,0 +1,18 @@ +FROM mcr.microsoft.com/vscode/devcontainers/python:3.10 + +RUN apt-get -y update \ + && export DEBIAN_FRONTEND=noninteractive \ + && apt-get -y install \ + curl make gcc g++ libfreetype6-dev libpng-dev libopenblas-dev liblapack-dev gfortran libhdf5-dev git \ + && apt-get clean \ + && curl -L https://downloads.sourceforge.net/project/ta-lib/ta-lib/0.4.0/ta-lib-0.4.0-src.tar.gz | tar xvz + +WORKDIR /ta-lib + +RUN pip install --upgrade --no-cache-dir pip \ + && ./configure --prefix=/usr \ + && make install + +USER vscode +COPY ./.devcontainer/requirements.txt /tmp/ +RUN pip install --user --no-cache-dir -r /tmp/requirements.txt \ No newline at end of file diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json new file mode 100644 index 0000000000..ddb2861bda --- /dev/null +++ b/.devcontainer/devcontainer.json @@ -0,0 +1,30 @@ +{ + "name": "Python 3", + "build": { "dockerfile": "Dockerfile", + "context": "..", + "args": {"VARIANT": "3.10"} +}, + // Set *default* container specific settings.json values on container create. + "settings": { + "python.linting.enabled": true, + "python.linting.pylintEnabled": true, + "python.formatting.blackPath": "/usr/local/py-utils/bin/black", + "python.linting.flake8Path": "/usr/local/py-utils/bin/flake8", + "python.linting.pylintPath": "/usr/local/py-utils/bin/pylint" + }, + // Features to add to the dev container. More info: https://containers.dev/features. + // "features": {}, + + // Use 'forwardPorts' to make a list of ports inside the container available locally. + // "forwardPorts": [], + + // Use 'postCreateCommand' to run commands after the container is created. + // In order to speed up install, we used a requirements.txt when building the Dockerfile + "postCreateCommand": "pip3 install --user -e .[dev,test]", + + // Configure tool-specific properties. + "customizations": {"vscode": {"extensions": ["ms-python.python","ms-python.vscode-pylance"]}} + + // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. + // "remoteUser": "root" +} diff --git a/.devcontainer/requirements.txt b/.devcontainer/requirements.txt new file mode 100644 index 0000000000..19cef2a7e9 --- /dev/null +++ b/.devcontainer/requirements.txt @@ -0,0 +1,88 @@ +alembic==1.8.1 +appdirs==1.4.4 +attrs==22.1.0 +bcolz-zipline==1.2.6 +black==22.10.0 +Bottleneck==1.3.5 +certifi==2022.9.24 +cfgv==3.3.1 +charset-normalizer==2.1.1 +click==8.0.4 +contourpy==1.0.6 +coverage==6.5.0 +cycler==0.11.0 +distlib==0.3.6 +empyrical-reloaded==0.5.8 +exchange-calendars==3.3 +execnet==1.9.0 +filelock==3.8.0 +flake8==5.0.4 +fonttools==4.38.0 +greenlet==2.0.1 +h5py==3.7.0 +identify==2.5.9 +idna==3.4 +iniconfig==1.1.1 +intervaltree==3.1.0 +iso3166==2.1.1 +iso4217==1.11.20220401 +kiwisolver==1.4.4 +korean-lunar-calendar==0.3.1 +Logbook==1.5.3 +lru-dict==1.1.8 +lxml==4.9.1 +Mako==1.2.4 +MarkupSafe==2.1.1 +matplotlib==3.6.2 +mccabe==0.7.0 +mock==4.0.3 +multipledispatch==0.6.0 +multitasking==0.0.11 +mypy-extensions==0.4.3 +networkx==2.8.8 +nodeenv==1.7.0 +numexpr==2.8.4 +numpy==1.23.5 +packaging==21.3 +pandas==1.5.1 +pandas-datareader==0.10.0 +parameterized==0.8.1 +pathspec==0.10.2 +patsy==0.5.3 +Pillow==9.3.0 +platformdirs==2.5.4 +pluggy==1.0.0 +pre-commit==2.20.0 +py==1.11.0 +pycodestyle==2.9.1 +pyflakes==2.5.0 +pyluach==2.0.2 +pyparsing==3.0.9 +pytest==6.2.5 +pytest-cov==4.0.0 +pytest-rerunfailures==10.3 +pytest-timeout==2.1.0 +pytest-xdist==3.0.2 +python-dateutil==2.8.2 +python-interface==1.6.1 +pytz==2022.6 +PyYAML==6.0 +requests==2.28.1 +responses==0.22.0 +scipy==1.9.3 +six==1.16.0 +sortedcontainers==2.4.0 +SQLAlchemy==1.4.44 +statsmodels==0.13.5 +TA-Lib==0.4.25 +tables==3.7.0 +testfixtures==7.0.3 +toml==0.10.2 +tomli==2.0.1 +toolz==0.12.0 +tox==3.27.1 +trading-calendars==2.1.1 +types-toml==0.10.8.1 +urllib3==1.26.12 +virtualenv==20.16.7 +yfinance==0.1.87 \ No newline at end of file