Files
Serendipity ceddbdd559 Add lecture materials for Model-Free, Control, and Value topics
- Added Lecture4 - ModelFree.pdf (3013 KB)
- Added Lecture5 - Control.pdf (2575 KB)
- Added Lecture6 - Value.pdf (3320 KB)
2026-04-28 20:28:00 +08:00

139 lines
2.8 KiB
TOML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
[project]
name = "insurance-premium-risk"
version = "0.1.0"
description = "DTS304TC Coursework 1 - 健康保险保费风险预测"
requires-python = ">=3.10"
dependencies = [
# 基础科学计算
"numpy>=2.2.6",
"pandas>=2.3.3",
"scipy>=1.15.3",
# 机器学习核心
"scikit-learn>=1.7.2",
"xgboost>=3.2.0",
# 超参数优化
"optuna>=4.8.0",
# 可视化
"matplotlib>=3.10.8",
"seaborn>=0.13.2",
# 数据预处理
"imbalanced-learn>=0.14.1",
"shap>=0.49.1",
# 实用工具
"joblib>=1.5.3",
"tqdm>=4.67.1",
]
# 开发依赖
[project.optional-dependencies]
dev = ["pytest>=7.4.0", "black>=23.7.0", "ruff>=0.0.290", "mypy>=1.5.0"]
docs = ["sphinx>=7.1.0", "nbsphinx>=0.9.0", "sphinx-rtd-theme>=1.3.0"]
[tool.uv]
# Python 环境设置 - 使用 Anaconda 的 my_env 环境
python-version = "3.10"
# 显式指定 Python 路径(确保使用 anaconda my_env
python-path = "D:\\ProgramData\\anaconda3\\envs\\my_env\\python.exe"
# 包索引配置(使用清华镜像源加速下载)
index-url = "https://pypi.tuna.tsinghua.edu.cn/simple"
# 备用索引源(按优先级排列)
extra-index-url = [
"https://pypi.org/simple",
"https://mirrors.aliyun.com/pypi/simple/",
]
# 并行安装(加快安装速度)
parallel = true
# 不自动管理 Python 版本(使用已有的 anaconda 环境)
managed = false
# 不允许自动下载 Python
python-downloads = false
# 预发布版本(如果需要测试最新功能)
# prerelease = false
# 排除特定包(如果有兼容性问题)
# exclude-newer = "2025-01-01T00:00:00Z"
# 环境变量
[tool.uv.env]
# 设置网络超时(秒)
UV_HTTP_TIMEOUT = "300"
# 设置并发下载数
UV_CONCURRENT_DOWNLOADS = "8"
[tool.black]
line-length = 100
target-version = ['py310']
include = '\.pyi?$'
exclude = '''
/(
\.git
| \.venv
| build
| dist
| __pycache__
)/
'''
[tool.ruff]
line-length = 100
target-version = "py310"
[tool.ruff.lint]
select = [
"E", # pycodestyle errors
"W", # pycodestyle warnings
"F", # pyflakes
"I", # isort
"B", # flake8-bugbear
"C4", # flake8-comprehensions
"UP", # pyupgrade
]
ignore = [
"E501", # line too long (handled by black)
"B008", # do not perform function calls in argument defaults
"C901", # too complex
]
[tool.pytest.ini_options]
testpaths = ["tests"]
python_files = ["test_*.py"]
python_classes = ["Test*"]
python_functions = ["test_*"]
addopts = "-v --tb=short"
[tool.mypy]
python_version = "3.10"
warn_return_any = true
warn_unused_configs = true
disallow_untyped_defs = false
ignore_missing_imports = true
[tool.jupyter]
# Jupyter 相关配置
kernel_name = "my_env"
[tool.jupyter.lab]
# JupyterLab 相关配置
autoreload = true
[tool.lazy-logs]
# 日志配置
level = "INFO"
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"