forecasting-tools 0.2.88__tar.gz → 0.2.89__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.
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/PKG-INFO +6 -6
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/data_models/numeric_report.py +22 -4
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/data_models/questions.py +8 -4
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/pyproject.toml +7 -7
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/LICENSE +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/README.md +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/__init__.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/agents_and_tools/__init__.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/agents_and_tools/ai_congress_v2/__init__.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/agents_and_tools/ai_congress_v2/congress_member_agent.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/agents_and_tools/ai_congress_v2/congress_orchestrator.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/agents_and_tools/ai_congress_v2/data_models.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/agents_and_tools/ai_congress_v2/member_profiles.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/agents_and_tools/ai_congress_v2/tools.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/agents_and_tools/base_rates/base_rate_researcher.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/agents_and_tools/base_rates/deduplicator.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/agents_and_tools/base_rates/estimator.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/agents_and_tools/base_rates/niche_list_researcher.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/agents_and_tools/deprecated/configured_llms.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/agents_and_tools/deprecated/general_researcher.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/agents_and_tools/deprecated/question_generator.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/agents_and_tools/deprecated/question_responder.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/agents_and_tools/deprecated/question_router.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/agents_and_tools/deprecated/research_coordinator.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/agents_and_tools/minor_tools.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/agents_and_tools/other/data_analyzer.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/agents_and_tools/other/hosted_file.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/agents_and_tools/question_generators/generated_question.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/agents_and_tools/question_generators/harmful_question_identifier.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/agents_and_tools/question_generators/q3_q4_quarterly_questions.json +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/agents_and_tools/question_generators/question_decomposer.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/agents_and_tools/question_generators/question_operationalizer.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/agents_and_tools/question_generators/simple_question.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/agents_and_tools/question_generators/topic_generator.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/agents_and_tools/research/computer_use.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/agents_and_tools/research/find_a_dataset.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/agents_and_tools/research/key_factors_researcher.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/agents_and_tools/research/smart_searcher.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/agents_and_tools/situation_simulator/__init__.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/agents_and_tools/situation_simulator/agent_runner.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/agents_and_tools/situation_simulator/data_models.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/agents_and_tools/situation_simulator/effect_engine.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/agents_and_tools/situation_simulator/example_situations/industrial_basin.json +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/agents_and_tools/situation_simulator/example_situations/milbrook.json +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/agents_and_tools/situation_simulator/example_situations/simple_business.json +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/agents_and_tools/situation_simulator/example_situations/simple_dnd.json +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/agents_and_tools/situation_simulator/example_situations/simple_election.json +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/agents_and_tools/situation_simulator/example_situations/willowbrook.json +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/agents_and_tools/situation_simulator/example_situations/z_broken_mafia.json +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/agents_and_tools/situation_simulator/intervention_testing/__init__.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/agents_and_tools/situation_simulator/intervention_testing/data_models.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/agents_and_tools/situation_simulator/intervention_testing/forecast_resolver.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/agents_and_tools/situation_simulator/intervention_testing/intervention_policy_agent.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/agents_and_tools/situation_simulator/intervention_testing/intervention_runner.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/agents_and_tools/situation_simulator/intervention_testing/intervention_storage.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/agents_and_tools/situation_simulator/simulator.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/agents_and_tools/situation_simulator/situation_generator.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/ai_models/__init__.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/ai_models/agent_wrappers.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/ai_models/ai_utils/__init__.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/ai_models/ai_utils/openai_utils.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/ai_models/ai_utils/response_types.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/ai_models/deprecated_model_classes/README.md +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/ai_models/deprecated_model_classes/claude35sonnet.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/ai_models/deprecated_model_classes/deepseek_r1.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/ai_models/deprecated_model_classes/gpt4o.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/ai_models/deprecated_model_classes/gpt4ovision.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/ai_models/deprecated_model_classes/gpto1.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/ai_models/deprecated_model_classes/gpto1preview.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/ai_models/deprecated_model_classes/metaculus4o.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/ai_models/deprecated_model_classes/perplexity.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/ai_models/exa_searcher.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/ai_models/general_llm.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/ai_models/model_interfaces/__init__.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/ai_models/model_interfaces/ai_model.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/ai_models/model_interfaces/combined_llm_archetype.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/ai_models/model_interfaces/incurs_cost.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/ai_models/model_interfaces/named_model.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/ai_models/model_interfaces/outputs_text.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/ai_models/model_interfaces/priced_per_request.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/ai_models/model_interfaces/request_limited_model.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/ai_models/model_interfaces/retryable_model.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/ai_models/model_interfaces/time_limited_model.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/ai_models/model_interfaces/token_limited_model.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/ai_models/model_interfaces/tokens_are_calculatable.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/ai_models/model_interfaces/tokens_incur_cost.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/ai_models/model_tracker.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/ai_models/resource_managers/__init__.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/ai_models/resource_managers/hard_limit_manager.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/ai_models/resource_managers/monetary_cost_manager.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/ai_models/resource_managers/refreshing_bucket_rate_limiter.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/auto_optimizers/bot_evaluator.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/auto_optimizers/bot_optimizer.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/auto_optimizers/control_prompt.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/auto_optimizers/customizable_bot.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/auto_optimizers/prompt_data_models.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/auto_optimizers/prompt_optimizer.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/auto_optimizers/question_plus_research.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/cp_benchmarking/benchmark_displayer.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/cp_benchmarking/benchmark_for_bot.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/cp_benchmarking/benchmarker.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/data_models/__init__.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/data_models/binary_report.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/data_models/coherence_link.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/data_models/conditional_models.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/data_models/conditional_report.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/data_models/data_organizer.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/data_models/forecast_report.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/data_models/markdown_tree.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/data_models/multiple_choice_report.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/data_models/timestamped_predictions.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/data_models/user_response.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/forecast_bots/__init__.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/forecast_bots/bot_lists.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/forecast_bots/experiments/__init__.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/forecast_bots/experiments/q1_veritas_bot.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/forecast_bots/experiments/q1t_w_convert_to_binary.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/forecast_bots/experiments/q1t_w_personas_and_exa.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/forecast_bots/experiments/q2t_w_decomposition.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/forecast_bots/experiments/q3t_w_asknews.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/forecast_bots/experiments/q3t_w_exa.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/forecast_bots/experiments/q3t_w_q4vbinary.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/forecast_bots/experiments/q4_veritas_bot.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/forecast_bots/experiments/q4v_w_exa.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/forecast_bots/experiments/q4v_w_exa_and_dseekr1.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/forecast_bots/experiments/q4v_w_exa_and_o1_preview.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/forecast_bots/forecast_bot.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/forecast_bots/main_bot.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/forecast_bots/official_bots/__init__.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/forecast_bots/official_bots/gpt_4_1_optimized_bot.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/forecast_bots/official_bots/q1_template_bot.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/forecast_bots/official_bots/q2_template_bot.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/forecast_bots/official_bots/q3_template_bot.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/forecast_bots/official_bots/q4_template_bot.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/forecast_bots/official_bots/research_only_bot_2025_fall.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/forecast_bots/official_bots/template_bot_2025_fall.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/forecast_bots/official_bots/template_bot_2026_spring.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/forecast_bots/official_bots/uniform_probability_bot.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/forecast_bots/template_bot.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/front_end/Home.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/front_end/app_pages/base_rate_page.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/front_end/app_pages/benchmark_page.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/front_end/app_pages/chat_page.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/front_end/app_pages/congress_v2_page.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/front_end/app_pages/csv_agent.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/front_end/app_pages/estimator_page.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/front_end/app_pages/forecaster_page.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/front_end/app_pages/intervention_leaderboard_page.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/front_end/app_pages/key_factors_page.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/front_end/app_pages/niche_list_researcher_page.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/front_end/app_pages/simulator_page.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/front_end/example_outputs/base_rate_page_examples.json +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/front_end/example_outputs/congress_page_example.json +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/front_end/example_outputs/congress_v2_page_example.json +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/front_end/example_outputs/estimator_page_examples.json +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/front_end/example_outputs/forecast_page_examples.json +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/front_end/example_outputs/key_factors_page_examples.json +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/front_end/example_outputs/niche_list_page_examples.json +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/front_end/example_outputs/question_generator_page_examples.json +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/front_end/helpers/app_page.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/front_end/helpers/custom_auth.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/front_end/helpers/report_displayer.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/front_end/helpers/tool_page.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/helpers/__init__.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/helpers/asknews_cache.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/helpers/asknews_searcher.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/helpers/forecast_database_manager.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/helpers/metaculus_api.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/helpers/metaculus_client.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/helpers/prediction_extractor.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/helpers/structure_output.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/helpers/works_cited_creator.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/util/__init__.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/util/async_batching.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/util/coda_utils.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/util/custom_logger.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/util/file_manipulation.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/util/jsonable.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/util/misc.py +0 -0
- {forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/util/stats.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: forecasting-tools
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.89
|
|
4
4
|
Summary: AI forecasting and research tools to help humans reason about and forecast the future
|
|
5
5
|
License: MIT
|
|
6
6
|
License-File: LICENSE
|
|
@@ -26,19 +26,19 @@ Requires-Dist: asknews (>=0.9.1,<0.14.0)
|
|
|
26
26
|
Requires-Dist: asyncio (>=3.0.0,<5.0.0)
|
|
27
27
|
Requires-Dist: exceptiongroup (>=1.2.2,<2.0.0)
|
|
28
28
|
Requires-Dist: faker (>=37.0.0,<41.0.0)
|
|
29
|
-
Requires-Dist: hyperbrowser (>=0.53.0,<0.
|
|
30
|
-
Requires-Dist: litellm (>=1.59.1,<
|
|
29
|
+
Requires-Dist: hyperbrowser (>=0.53.0,<1.0.0)
|
|
30
|
+
Requires-Dist: litellm (>=1.59.1,<2.0.0,!=1.76.*,!=1.77.*,!=1.82.7,!=1.82.8)
|
|
31
31
|
Requires-Dist: nest-asyncio (>=1.5.8,<2.0.0)
|
|
32
32
|
Requires-Dist: numpy (>=1.26.0,<3.0.0)
|
|
33
33
|
Requires-Dist: openai (>=1.51.0,<3.0.0)
|
|
34
|
-
Requires-Dist: openai-agents[litellm] (>=0.2.0,<0.
|
|
34
|
+
Requires-Dist: openai-agents[litellm] (>=0.2.0,<0.14.0)
|
|
35
35
|
Requires-Dist: pandas (>=2.2.3,<4.0.0)
|
|
36
36
|
Requires-Dist: pendulum (>=3.1.0,<4.0.0)
|
|
37
|
-
Requires-Dist: pillow (>=9.0.0,<
|
|
37
|
+
Requires-Dist: pillow (>=9.0.0,<13.0.0)
|
|
38
38
|
Requires-Dist: plotly (>=5.24.1,<7.0.0)
|
|
39
39
|
Requires-Dist: pydantic (>=2.9.2,<3.0.0)
|
|
40
40
|
Requires-Dist: python-dotenv (>=1.0.0,<2.0.0)
|
|
41
|
-
Requires-Dist: regex (>=2024.11.6,<
|
|
41
|
+
Requires-Dist: regex (>=2024.11.6,<2027.0.0)
|
|
42
42
|
Requires-Dist: requests (>=2.32.3,<3.0.0)
|
|
43
43
|
Requires-Dist: scikit-learn (>=1.5.2,<2.0.0)
|
|
44
44
|
Requires-Dist: streamlit (>=1.20.0,<2.0.0)
|
|
@@ -84,8 +84,11 @@ class DatePercentile(BaseModel):
|
|
|
84
84
|
|
|
85
85
|
class NumericDistribution(BaseModel):
|
|
86
86
|
declared_percentiles: list[Percentile]
|
|
87
|
-
open_upper_bound: bool
|
|
88
|
-
open_lower_bound: bool
|
|
87
|
+
open_upper_bound: bool # If False, cdf[-1] must be 1.0 (no mass above upper bound)
|
|
88
|
+
open_lower_bound: bool # If False, cdf[0] must be 0.0 (no mass strictly below lower
|
|
89
|
+
# bound). Note: cdf[0] = P(outcome < lower_bound), so a closed lower bound does not
|
|
90
|
+
# prevent assigning probability to the outcome equalling lower_bound exactly —
|
|
91
|
+
# that mass goes in the first inbound bucket: cdf[1] - cdf[0].
|
|
89
92
|
upper_bound: float
|
|
90
93
|
lower_bound: float
|
|
91
94
|
zero_point: float | None
|
|
@@ -344,12 +347,22 @@ class NumericDistribution(BaseModel):
|
|
|
344
347
|
between upper and lower bound (taking into account probability assigned above and below the bounds)
|
|
345
348
|
that is compatible with Metaculus questions.
|
|
346
349
|
|
|
347
|
-
cdf stands for '
|
|
350
|
+
cdf stands for 'cumulative distribution function'
|
|
348
351
|
|
|
349
352
|
At Metaculus CDFs are often represented with 201 points. Each point has:
|
|
350
|
-
- percentile (
|
|
353
|
+
- percentile (the y axis of the cdf graph — see boundary notes below)
|
|
351
354
|
- 'value' or 'nominal location' (The real world number that answers the question)
|
|
352
355
|
- cdf location (a number between 0 and 1 representing where the point is on the cdf x axis, where 0 is range min, and 1 is range max)
|
|
356
|
+
|
|
357
|
+
Important boundary semantics (note the asymmetry):
|
|
358
|
+
- cdf[0].percentile = P(outcome < lower_bound) — strictly less than (not equal to)
|
|
359
|
+
- cdf[-1].percentile = P(outcome <= upper_bound) — less than or equal to
|
|
360
|
+
For questions with a closed lower bound, cdf[0].percentile must be 0.0 because
|
|
361
|
+
outcomes strictly below the lower bound are impossible. This does NOT mean zero
|
|
362
|
+
probability at the lower bound itself — probability of the outcome equalling
|
|
363
|
+
lower_bound belongs in the first inbound bucket: cdf[1].percentile - cdf[0].percentile.
|
|
364
|
+
For example, to express an 80% chance the outcome is exactly lower_bound, set
|
|
365
|
+
cdf[1].percentile = 0.8 (and cdf[0].percentile = 0.0).
|
|
353
366
|
"""
|
|
354
367
|
|
|
355
368
|
cdf_size = self.cdf_size or NumericDefaults.DEFAULT_CDF_SIZE
|
|
@@ -527,6 +540,11 @@ class NumericDistribution(BaseModel):
|
|
|
527
540
|
- caps the maximum growth to 0.2
|
|
528
541
|
|
|
529
542
|
Note, thresholds change with different `inbound_outcome_count`s
|
|
543
|
+
|
|
544
|
+
Boundary convention: cdf[0] is P(outcome < lower_bound) — strictly less than.
|
|
545
|
+
For closed lower bounds this is forced to 0.0 after standardization; probability
|
|
546
|
+
of landing exactly on lower_bound belongs in the first inbound bucket (cdf[1]).
|
|
547
|
+
cdf[-1] is P(outcome <= upper_bound) — less than or equal to (standard convention).
|
|
530
548
|
"""
|
|
531
549
|
|
|
532
550
|
lower_open = self.open_lower_bound
|
{forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/data_models/questions.py
RENAMED
|
@@ -474,8 +474,10 @@ class DateQuestion(MetaculusQuestion, BoundedQuestionMixin):
|
|
|
474
474
|
question_type: Literal["date"] = "date"
|
|
475
475
|
upper_bound: datetime
|
|
476
476
|
lower_bound: datetime
|
|
477
|
-
open_upper_bound: bool
|
|
478
|
-
open_lower_bound: bool
|
|
477
|
+
open_upper_bound: bool # If False, cdf[-1] must be 1.0 (no mass above upper bound)
|
|
478
|
+
open_lower_bound: bool # If False, cdf[0] must be 0.0. Note: cdf[0] = P(outcome <
|
|
479
|
+
# lower_bound) strictly, so probability of landing exactly on lower_bound belongs
|
|
480
|
+
# in the first inbound bucket (cdf[1]), not in cdf[0].
|
|
479
481
|
zero_point: float | None = None
|
|
480
482
|
cdf_size: int = 201
|
|
481
483
|
|
|
@@ -530,8 +532,10 @@ class NumericQuestion(MetaculusQuestion, BoundedQuestionMixin):
|
|
|
530
532
|
question_type: Literal["numeric"] = "numeric"
|
|
531
533
|
upper_bound: float
|
|
532
534
|
lower_bound: float
|
|
533
|
-
open_upper_bound: bool
|
|
534
|
-
open_lower_bound: bool
|
|
535
|
+
open_upper_bound: bool # If False, cdf[-1] must be 1.0 (no mass above upper bound)
|
|
536
|
+
open_lower_bound: bool # If False, cdf[0] must be 0.0. Note: cdf[0] = P(outcome <
|
|
537
|
+
# lower_bound) strictly, so probability of landing exactly on lower_bound belongs
|
|
538
|
+
# in the first inbound bucket (cdf[1]), not in cdf[0].
|
|
535
539
|
zero_point: float | None = None
|
|
536
540
|
cdf_size: int = (
|
|
537
541
|
201 # Normal numeric questions have 201 points, but discrete questions have fewer
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[tool.poetry]
|
|
2
2
|
name = "forecasting-tools"
|
|
3
|
-
version = "0.2.
|
|
3
|
+
version = "0.2.89"
|
|
4
4
|
description = "AI forecasting and research tools to help humans reason about and forecast the future"
|
|
5
5
|
authors = ["Benjamin Wilson <ben@metaculus.com>"]
|
|
6
6
|
license = "MIT"
|
|
@@ -33,12 +33,12 @@ nest-asyncio = "^1.5.8"
|
|
|
33
33
|
requests = "^2.32.3"
|
|
34
34
|
pydantic = "^2.9.2"
|
|
35
35
|
python-dotenv = "^1.0.0"
|
|
36
|
-
regex = ">=2024.11.6,<
|
|
36
|
+
regex = ">=2024.11.6,<2027.0.0"
|
|
37
37
|
tenacity = ">=8.0.0,<10.0.0"
|
|
38
|
-
pillow = ">=9.0.0,<
|
|
38
|
+
pillow = ">=9.0.0,<13.0.0"
|
|
39
39
|
typeguard = "^4.3.0"
|
|
40
40
|
scikit-learn = "^1.5.2"
|
|
41
|
-
litellm = ">=1.59.1,<
|
|
41
|
+
litellm = ">=1.59.1,<2.0.0,!=1.76.*,!=1.77.*,!=1.82.7,!=1.82.8"
|
|
42
42
|
numpy = ">=1.26.0,<3.0.0"
|
|
43
43
|
exceptiongroup = "^1.2.2"
|
|
44
44
|
faker = ">=37.0.0,<41.0.0"
|
|
@@ -47,15 +47,15 @@ pandas = ">=2.2.3,<4.0.0"
|
|
|
47
47
|
streamlit = "^1.20.0"
|
|
48
48
|
asknews = ">=0.9.1,<0.14.0"
|
|
49
49
|
unidecode = "^1.4.0"
|
|
50
|
-
hyperbrowser = ">=0.53.0,<0.
|
|
50
|
+
hyperbrowser = ">=0.53.0,<1.0.0"
|
|
51
51
|
pendulum = "^3.1.0"
|
|
52
|
-
openai-agents = {extras = ["litellm"], version = ">=0.2.0,<0.
|
|
52
|
+
openai-agents = {extras = ["litellm"], version = ">=0.2.0,<0.14.0"}
|
|
53
53
|
|
|
54
54
|
[tool.poetry.group.dev.dependencies]
|
|
55
55
|
time-machine = ">=2.19.0,<4.0.0"
|
|
56
56
|
pre-commit = "^4.0.1"
|
|
57
57
|
matplotlib = "^3.9.2"
|
|
58
|
-
ipykernel = "
|
|
58
|
+
ipykernel = ">=6.29.5,<8.0.0"
|
|
59
59
|
notebook = "^7.2.2"
|
|
60
60
|
pytest = ">=8.3.2,<10.0.0"
|
|
61
61
|
pytest-xdist = "^3.3.1"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/agents_and_tools/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/ai_models/__init__.py
RENAMED
|
File without changes
|
{forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/ai_models/agent_wrappers.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/ai_models/exa_searcher.py
RENAMED
|
File without changes
|
{forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/ai_models/general_llm.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/ai_models/model_tracker.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/data_models/__init__.py
RENAMED
|
File without changes
|
{forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/data_models/binary_report.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/data_models/markdown_tree.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/data_models/user_response.py
RENAMED
|
File without changes
|
{forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/forecast_bots/__init__.py
RENAMED
|
File without changes
|
{forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/forecast_bots/bot_lists.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/forecast_bots/main_bot.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/helpers/asknews_cache.py
RENAMED
|
File without changes
|
{forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/helpers/asknews_searcher.py
RENAMED
|
File without changes
|
|
File without changes
|
{forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/helpers/metaculus_api.py
RENAMED
|
File without changes
|
{forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/helpers/metaculus_client.py
RENAMED
|
File without changes
|
|
File without changes
|
{forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/helpers/structure_output.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/util/async_batching.py
RENAMED
|
File without changes
|
|
File without changes
|
{forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/util/custom_logger.py
RENAMED
|
File without changes
|
{forecasting_tools-0.2.88 → forecasting_tools-0.2.89}/forecasting_tools/util/file_manipulation.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|