Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
sagemathinc
GitHub Repository: sagemathinc/wapython
Path: blob/main/python/py-pandas/Makefile
1067 views
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!"