#!/usr/bin/env python3 """ Setup script for Northern Thailand Ping River Monitor """ from setuptools import setup, find_packages import os # Read the README file with open("README.md", "r", encoding="utf-8") as fh: long_description = fh.read() # Read requirements try: with open("requirements.txt", "r", encoding="utf-8") as fh: requirements = [line.strip() for line in fh if line.strip() and not line.startswith("#")] except FileNotFoundError: # Fallback to minimal requirements if file not found requirements = [ "requests>=2.31.0", "schedule>=1.2.0", "pandas>=2.1.0", "fastapi>=0.104.0", "uvicorn>=0.24.0", ] # Extract core requirements (exclude dev dependencies) core_requirements = [] for req in requirements: if not any(dev_keyword in req.lower() for dev_keyword in ['pytest', 'black', 'flake8', 'mypy', 'sphinx']): core_requirements.append(req) setup( name="northern-thailand-ping-river-monitor", version="3.1.3", author="Ping River Monitor Team", author_email="contact@example.com", description="Real-time water level monitoring system for the Ping River Basin in Northern Thailand", long_description=long_description, long_description_content_type="text/markdown", url="https://git.b4l.co.th/B4L/Northern-Thailand-Ping-River-Monitor", project_urls={ "Bug Tracker": "https://git.b4l.co.th/B4L/Northern-Thailand-Ping-River-Monitor/issues", "Documentation": "https://git.b4l.co.th/B4L/Northern-Thailand-Ping-River-Monitor/wiki", "Source Code": "https://git.b4l.co.th/B4L/Northern-Thailand-Ping-River-Monitor", }, packages=find_packages(), classifiers=[ "Development Status :: 4 - Beta", "Intended Audience :: Science/Research", "Intended Audience :: System Administrators", "Topic :: Scientific/Engineering :: Hydrology", "Topic :: System :: Monitoring", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Operating System :: OS Independent", "Environment :: Web Environment", "Framework :: FastAPI", ], python_requires=">=3.9", install_requires=core_requirements, extras_require={ "dev": [ "pytest>=7.4.3", "pytest-cov>=4.1.0", "black>=23.11.0", "flake8>=6.1.0", "mypy>=1.7.1", "pre-commit>=3.5.0", ], "docs": [ "sphinx>=7.2.6", "sphinx-rtd-theme>=1.3.0", ], "all": [ "influxdb>=5.3.1", "pymysql>=1.1.0", "psycopg2-binary>=2.9.9", ], }, entry_points={ "console_scripts": [ "ping-river-monitor=src.main:main", "ping-river-api=src.web_api:main", ], }, include_package_data=True, package_data={ "src": ["*.py"], }, keywords=[ "water monitoring", "hydrology", "thailand", "ping river", "environmental monitoring", "time series", "fastapi", "real-time data", ], zip_safe=False, )