include ../build/Makefile-vars
# https://github.com/pandas-dev/pandas/releases
VERSION=1.5.3
URL = https://github.com/pandas-dev/pandas/releases/download/v${VERSION}/pandas-${VERSION}.tar.gz
TARBALL = ${UPSTREAM}/pandas-${VERSION}.tar.gz
all: deps wasm
include ../build/Makefile-rules
PYTHONPATH = $(shell cowasm-package-path @cowasm/py-cython):$(shell cowasm-package-path @cowasm/py-numpy):$(shell cowasm-package-path @cowasm/py-pip)
# Attempting to use fully wasm and new pip, etc. It's all broken though.
# TODO: this is a horrible hack right now, but it **works somewhat.**
# - first do the install with setup.py install
# - then install deps by doing "pip install pandas", which installs the
# deps because pandas is already installed.
# This would break if pypi pandas is updated, but we haven't updated our
# package here yet, etc. Not ideal. This is just a first step.
${BUILD_WASM}/.install: ${BUILD_WASM}/.build
cd ../build && make zig
# TODO: Now install pandas first via setup.py, then using pip to install
# just the remaining dependencies.
cd ${BUILD_WASM} \
&& PYTHONPATH="${PYTHONPATH}" pnpm-exec cpython setup.py build
PYTHONPATH="${PYTHONPATH}" pnpm-exec cpython -m pip install --target ${BUILD_WASM}/site-packages python-dateutil pytz
touch ${BUILD_WASM}/.install
${DIST_WASM}/.built: ${BUILD_WASM}/.install
rm -rf ${DIST_WASM} && mkdir -p ${DIST_WASM}
cd ${BUILD_WASM} \
&& pnpm-exec cpython -m cowasm_bundler pandas
cd ${BUILD_WASM}/site-packages \
&& pnpm-exec cpython -m cowasm_bundler pytz pytz/zoneinfo \
&& pnpm-exec cpython -m cowasm_bundler dateutil dateutil/zoneinfo \
&& mkdir -p six && cp six.py six/__init__.py && pnpm-exec cpython -m cowasm_bundler six
cd ${DIST_WASM} && tar xf ${BUILD_WASM}/pandas.tar.xz
cd ${DIST_WASM} && tar xf ${BUILD_WASM}/site-packages/pytz.tar.xz
cd ${DIST_WASM} && tar xf ${BUILD_WASM}/site-packages/dateutil.tar.xz
cd ${DIST_WASM} && tar xf ${BUILD_WASM}/site-packages/six.tar.xz
touch ${DIST_WASM}/.built
# Just a trivial test for now.
test: deps ${DIST_WASM}/.built
@PYTHONPATH="${DIST_WASM}:${PYTHONPATH}" pnpm-exec cpython -c "import pandas" && echo "Trivial PANDAS TEST PASSED!"