nlalpha-data 0.3.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. nlalpha_data-0.3.0/.dockerignore +7 -0
  2. nlalpha_data-0.3.0/.gitignore +32 -0
  3. nlalpha_data-0.3.0/Dockerfile +40 -0
  4. nlalpha_data-0.3.0/LICENSE +661 -0
  5. nlalpha_data-0.3.0/PKG-INFO +149 -0
  6. nlalpha_data-0.3.0/README.md +125 -0
  7. nlalpha_data-0.3.0/README.zh.md +125 -0
  8. nlalpha_data-0.3.0/pyproject.toml +38 -0
  9. nlalpha_data-0.3.0/src/nlalpha_data/__init__.py +30 -0
  10. nlalpha_data-0.3.0/src/nlalpha_data/bars_aligner.py +82 -0
  11. nlalpha_data-0.3.0/src/nlalpha_data/base.py +90 -0
  12. nlalpha_data-0.3.0/src/nlalpha_data/calendar/__init__.py +15 -0
  13. nlalpha_data-0.3.0/src/nlalpha_data/calendar/cn_equity.py +27 -0
  14. nlalpha_data-0.3.0/src/nlalpha_data/calendar/futures.py +54 -0
  15. nlalpha_data-0.3.0/src/nlalpha_data/calendar/us_equity.py +24 -0
  16. nlalpha_data-0.3.0/src/nlalpha_data/calendar_base.py +201 -0
  17. nlalpha_data-0.3.0/src/nlalpha_data/calendar_tools.py +133 -0
  18. nlalpha_data-0.3.0/src/nlalpha_data/discovery.py +129 -0
  19. nlalpha_data-0.3.0/src/nlalpha_data/knowledge/loading.md +17 -0
  20. nlalpha_data-0.3.0/src/nlalpha_data/knowledge/local-provider.md +17 -0
  21. nlalpha_data-0.3.0/src/nlalpha_data/loader.py +210 -0
  22. nlalpha_data-0.3.0/src/nlalpha_data/local_provider.py +407 -0
  23. nlalpha_data-0.3.0/src/nlalpha_data/mock_provider.py +123 -0
  24. nlalpha_data-0.3.0/src/nlalpha_data/parquet_store.py +134 -0
  25. nlalpha_data-0.3.0/src/nlalpha_data/server.py +392 -0
  26. nlalpha_data-0.3.0/src/nlalpha_data/sqlite_store.py +174 -0
  27. nlalpha_data-0.3.0/src/nlalpha_data/store.py +316 -0
  28. nlalpha_data-0.3.0/tests/test_cache_contract.py +128 -0
  29. nlalpha_data-0.3.0/tests/test_confess_contract.py +49 -0
  30. nlalpha_data-0.3.0/tests/test_discovery.py +95 -0
  31. nlalpha_data-0.3.0/tests/test_failure_envelope.py +64 -0
  32. nlalpha_data-0.3.0/tests/test_loader.py +326 -0
  33. nlalpha_data-0.3.0/tests/test_mock_provider.py +90 -0
  34. nlalpha_data-0.3.0/tests/test_self_description.py +91 -0
  35. nlalpha_data-0.3.0/tests/test_server_artifacts.py +400 -0
@@ -0,0 +1,7 @@
1
+ .git/
2
+ .venv/
3
+ __pycache__/
4
+ *.pyc
5
+ dist/
6
+ .pytest_cache/
7
+ .env
@@ -0,0 +1,32 @@
1
+ # Python
2
+ __pycache__/
3
+ *.py[cod]
4
+ *$py.class
5
+ *.so
6
+ .venv/
7
+ venv/
8
+
9
+ # Build / Distribution
10
+ dist/
11
+ build/
12
+ *.egg-info/
13
+ .eggs/
14
+ wheels/
15
+
16
+ # Test / Coverage
17
+ .pytest_cache/
18
+ .coverage
19
+ .tox/
20
+ .mypy_cache/
21
+ htmlcov/
22
+
23
+ # IDE
24
+ .idea/
25
+ .vscode/
26
+ *.swp
27
+ *.swo
28
+ *~
29
+
30
+ # OS
31
+ .DS_Store
32
+ Thumbs.db
@@ -0,0 +1,40 @@
1
+ ARG PYTHON_BASE_IMAGE=python:3.12-slim
2
+
3
+ FROM ghcr.io/astral-sh/uv:0.11.2 AS uv-tool
4
+ FROM ${PYTHON_BASE_IMAGE} AS builder
5
+ COPY --from=uv-tool /uv /usr/local/bin/uv
6
+ ENV UV_PROJECT_ENVIRONMENT=/opt/venv \
7
+ UV_PYTHON_DOWNLOADS=never \
8
+ UV_LINK_MODE=copy
9
+ WORKDIR /workspace
10
+ COPY . /workspace/
11
+ ARG ARTIFACT_BACKEND=redis
12
+ RUN case "$ARTIFACT_BACKEND" in \
13
+ redis) set -- ;; \
14
+ s3) set -- --extra s3 ;; \
15
+ *) echo "Unsupported ARTIFACT_BACKEND: $ARTIFACT_BACKEND" >&2; exit 1 ;; \
16
+ esac && \
17
+ uv sync --locked --no-default-groups --no-editable \
18
+ --python /usr/local/bin/python "$@" \
19
+ --package nlalpha-data \
20
+ --package nlalpha-tushare \
21
+ && uv pip check --python /opt/venv/bin/python
22
+
23
+ FROM ${PYTHON_BASE_IMAGE} AS runtime
24
+ RUN apt-get update && apt-get install -y --no-install-recommends libstdc++6 libgomp1 && \
25
+ rm -rf /var/lib/apt/lists/* && \
26
+ groupadd -r appuser && useradd -r -g appuser appuser
27
+ WORKDIR /app
28
+ COPY --from=builder /opt/venv /opt/venv
29
+ RUN mkdir -p /app/workspace/cache /app/workspace/data && \
30
+ chown -R appuser:appuser /app/workspace
31
+ ENV PATH="/opt/venv/bin:${PATH}" \
32
+ NLALPHA_HOST=0.0.0.0 \
33
+ NLALPHA_PORT=8000 \
34
+ PYTHONUNBUFFERED=1 \
35
+ PYTHONDONTWRITEBYTECODE=1
36
+ USER appuser
37
+ EXPOSE 8000
38
+ HEALTHCHECK --interval=10s --timeout=5s --start-period=10s --retries=3 \
39
+ CMD python -c "import os, urllib.request; urllib.request.urlopen('http://127.0.0.1:' + os.environ['NLALPHA_PORT'] + '/ready', timeout=4)"
40
+ CMD ["python", "-m", "nlalpha_data.server"]