[project] name = "api-noticia" version = "0.1.0" description = "Datalake de notícias esportivas para previsão de bolão" readme = "README.md" requires-python = ">=3.11" dependencies = [ "httpx>=0.27.0", "feedparser>=6.0.11", "beautifulsoup4>=4.12.0", "lxml>=5.0.0", "pydantic>=2.6.0", "pydantic-settings>=2.2.0", "pandas>=2.2.0", "pyarrow>=15.0.0", "python-dateutil>=2.9.0", "structlog>=24.1.0", "fastapi>=0.110.0", "uvicorn[standard]>=0.27.0", "pyyaml>=6.0.0", ] [project.optional-dependencies] ml = [ "transformers>=4.40.0", "datasets>=2.18.0", "torch>=2.2.0", "peft>=0.12.0", "scikit-learn>=1.4.0", "mlflow>=2.14.0", "lightgbm>=4.0.0", ] gcp = [ "google-cloud-bigquery>=3.20.0", "google-cloud-storage>=2.16.0", ] ner = [ "transformers>=4.40.0", "torch>=2.2.0", ] orchestration = [ "prefect>=2.19.0", ] unsloth = [ "unsloth", "datasets>=2.18.0", "trl>=0.12.0", ] sofascore = [ "curl_cffi>=0.7.0", ] analytics = [ "duckdb>=1.0.0", ] dev = [ "pytest>=8.0.0", "pytest-asyncio>=0.23.0", "ruff>=0.3.0", "curl_cffi>=0.7.0", ] [project.scripts] collect-news = "ingest.cli:main" daily-sync = "ingest.daily:main" purge-news = "ingest.purge_news:main" import-brasileirao = "ingest.fixtures.cli:main" import-fixtures = "ingest.fixtures.import_cli:main" sync-gcp = "ingest.gcp.cli:main" upload-user-csv = "ingest.user_transactions.cli:main" retrain-with-feedback = "pipelines.feedback_retrain:main" run-daily-flow = "pipelines.flows.daily:main" enrich-gold = "pipelines.enrich_gold:main" train-bolao = "models.train_cli:main" import-world-cup = "ingest.fixtures.wc_cli:main" ingest-sofascore = "ingest.sofascore.cli:main" predict-corners = "pipelines.predict_corners:main" predict-round = "pipelines.current_round:main" predict-wc = "pipelines.predict_wc:main" study-wc-model = "pipelines.wc_study:main" value-wc-odds = "pipelines.wc_value:main" fetch-wc-odds = "pipelines.fetch_wc_odds:main" benchmark-wc-models = "pipelines.wc_benchmark:main" benchmark-bolao-models = "pipelines.bolao_benchmark:main" study-wc-calibration = "pipelines.wc_calibration:main" train-wc = "models.wc_artifact:main" walkforward-wc-models = "pipelines.wc_walkforward:main" tune-wc-hyperparams = "pipelines.wc_tune:main" tune-wc-kxl = "pipelines.wc_kxl_tune:main" run-pipeline = "pipelines.cli:main" lake-query = "pipelines.lake_query_cli:main" mlflow-ui = "pipelines.mlflow_ui:main" [build-system] requires = ["hatchling"] build-backend = "hatchling.build" [tool.hatch.build.targets.wheel] packages = ["ingest", "pipelines", "schemas", "models", "api"] [tool.ruff] line-length = 100 target-version = "py311" [tool.pytest.ini_options] asyncio_mode = "auto" testpaths = ["tests"]