forecasting-tools 0.3.2__tar.gz → 0.3.3__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.3.2 → forecasting_tools-0.3.3}/PKG-INFO +6 -12
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/README.md +5 -11
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/__init__.py +3 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/helpers/metaculus_client.py +32 -3
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/pyproject.toml +1 -1
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/LICENSE +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/agents_and_tools/__init__.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/agents_and_tools/ai_congress_v2/__init__.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/agents_and_tools/ai_congress_v2/congress_member_agent.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/agents_and_tools/ai_congress_v2/congress_orchestrator.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/agents_and_tools/ai_congress_v2/data_models.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/agents_and_tools/ai_congress_v2/member_profiles.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/agents_and_tools/ai_congress_v2/tools.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/agents_and_tools/base_rates/base_rate_researcher.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/agents_and_tools/base_rates/deduplicator.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/agents_and_tools/base_rates/estimator.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/agents_and_tools/base_rates/niche_list_researcher.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/agents_and_tools/deprecated/configured_llms.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/agents_and_tools/deprecated/general_researcher.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/agents_and_tools/deprecated/question_generator.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/agents_and_tools/deprecated/question_responder.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/agents_and_tools/deprecated/question_router.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/agents_and_tools/deprecated/research_coordinator.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/agents_and_tools/minor_tools.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/agents_and_tools/other/data_analyzer.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/agents_and_tools/other/hosted_file.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/agents_and_tools/question_generators/generated_question.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/agents_and_tools/question_generators/harmful_question_identifier.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/agents_and_tools/question_generators/q3_q4_quarterly_questions.json +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/agents_and_tools/question_generators/question_decomposer.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/agents_and_tools/question_generators/question_operationalizer.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/agents_and_tools/question_generators/simple_question.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/agents_and_tools/question_generators/topic_generator.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/agents_and_tools/research/computer_use.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/agents_and_tools/research/find_a_dataset.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/agents_and_tools/research/key_factors_researcher.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/agents_and_tools/research/smart_searcher.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/agents_and_tools/situation_simulator/__init__.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/agents_and_tools/situation_simulator/agent_runner.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/agents_and_tools/situation_simulator/data_models.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/agents_and_tools/situation_simulator/effect_engine.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/agents_and_tools/situation_simulator/example_situations/industrial_basin.json +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/agents_and_tools/situation_simulator/example_situations/milbrook.json +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/agents_and_tools/situation_simulator/example_situations/simple_business.json +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/agents_and_tools/situation_simulator/example_situations/simple_dnd.json +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/agents_and_tools/situation_simulator/example_situations/simple_election.json +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/agents_and_tools/situation_simulator/example_situations/willowbrook.json +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/agents_and_tools/situation_simulator/example_situations/z_broken_mafia.json +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/agents_and_tools/situation_simulator/intervention_testing/__init__.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/agents_and_tools/situation_simulator/intervention_testing/data_models.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/agents_and_tools/situation_simulator/intervention_testing/forecast_resolver.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/agents_and_tools/situation_simulator/intervention_testing/intervention_policy_agent.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/agents_and_tools/situation_simulator/intervention_testing/intervention_runner.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/agents_and_tools/situation_simulator/intervention_testing/intervention_storage.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/agents_and_tools/situation_simulator/simulator.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/agents_and_tools/situation_simulator/situation_generator.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/agents_and_tools/source_archive/README.md +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/agents_and_tools/source_archive/__init__.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/agents_and_tools/source_archive/benchmark.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/agents_and_tools/source_archive/canonicalize.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/agents_and_tools/source_archive/catalog.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/agents_and_tools/source_archive/cli.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/agents_and_tools/source_archive/config.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/agents_and_tools/source_archive/content_store.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/agents_and_tools/source_archive/cost.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/agents_and_tools/source_archive/coverage.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/agents_and_tools/source_archive/fetchers/__init__.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/agents_and_tools/source_archive/fetchers/base.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/agents_and_tools/source_archive/fetchers/cloakbrowser_fetcher.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/agents_and_tools/source_archive/fetchers/firecrawl_fetcher.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/agents_and_tools/source_archive/fetchers/hyperbrowser_fetcher.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/agents_and_tools/source_archive/fetchers/pdf_fetcher.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/agents_and_tools/source_archive/fetchers/playwright_fetcher.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/agents_and_tools/source_archive/fetchers/tiered.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/agents_and_tools/source_archive/ingest/__init__.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/agents_and_tools/source_archive/ingest/trace_extraction.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/agents_and_tools/source_archive/ingest/url_extraction.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/agents_and_tools/source_archive/layout.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/agents_and_tools/source_archive/manifest.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/agents_and_tools/source_archive/models.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/agents_and_tools/source_archive/pipeline.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/agents_and_tools/source_archive/quality.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/agents_and_tools/source_archive/reindex.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/agents_and_tools/source_archive/reports.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/agents_and_tools/source_archive/storage/__init__.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/agents_and_tools/source_archive/storage/blob_store.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/agents_and_tools/source_archive/storage/local_store.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/agents_and_tools/source_archive/storage/s3_store.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/agents_and_tools/source_archive/viewer.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/ai_models/__init__.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/ai_models/agent_wrappers.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/ai_models/ai_utils/__init__.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/ai_models/ai_utils/openai_utils.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/ai_models/ai_utils/response_types.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/ai_models/deprecated_model_classes/README.md +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/ai_models/deprecated_model_classes/claude35sonnet.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/ai_models/deprecated_model_classes/deepseek_r1.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/ai_models/deprecated_model_classes/gpt4o.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/ai_models/deprecated_model_classes/gpt4ovision.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/ai_models/deprecated_model_classes/gpto1.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/ai_models/deprecated_model_classes/gpto1preview.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/ai_models/deprecated_model_classes/metaculus4o.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/ai_models/deprecated_model_classes/perplexity.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/ai_models/exa_searcher.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/ai_models/general_llm.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/ai_models/model_interfaces/__init__.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/ai_models/model_interfaces/ai_model.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/ai_models/model_interfaces/combined_llm_archetype.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/ai_models/model_interfaces/incurs_cost.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/ai_models/model_interfaces/named_model.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/ai_models/model_interfaces/outputs_text.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/ai_models/model_interfaces/priced_per_request.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/ai_models/model_interfaces/request_limited_model.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/ai_models/model_interfaces/retryable_model.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/ai_models/model_interfaces/time_limited_model.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/ai_models/model_interfaces/token_limited_model.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/ai_models/model_interfaces/tokens_are_calculatable.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/ai_models/model_interfaces/tokens_incur_cost.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/ai_models/model_tracker.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/ai_models/resource_managers/__init__.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/ai_models/resource_managers/hard_limit_manager.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/ai_models/resource_managers/monetary_cost_manager.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/ai_models/resource_managers/refreshing_bucket_rate_limiter.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/auto_optimizers/bot_evaluator.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/auto_optimizers/bot_optimizer.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/auto_optimizers/control_prompt.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/auto_optimizers/customizable_bot.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/auto_optimizers/prompt_data_models.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/auto_optimizers/prompt_optimizer.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/auto_optimizers/question_plus_research.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/calibration_adjustment/.gitignore +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/calibration_adjustment/__init__.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/calibration_adjustment/_training_data.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/calibration_adjustment/benchmark.ipynb +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/calibration_adjustment/calibration_adjuster.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/calibration_adjustment/constant_shift_adjuster.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/calibration_adjustment/decision_tree_adjuster.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/calibration_adjustment/k_means_adjuster.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/calibration_adjustment/logistic_recalibration_adjuster.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/calibration_adjustment/step_adjuster.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/cp_benchmarking/benchmark_displayer.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/cp_benchmarking/benchmark_for_bot.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/cp_benchmarking/benchmarker.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/data_models/__init__.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/data_models/binary_report.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/data_models/coherence_link.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/data_models/conditional_models.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/data_models/conditional_report.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/data_models/data_organizer.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/data_models/forecast_report.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/data_models/markdown_tree.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/data_models/multiple_choice_report.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/data_models/numeric_report.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/data_models/questions.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/data_models/timestamped_predictions.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/data_models/user_response.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/forecast_bots/__init__.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/forecast_bots/bot_lists.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/forecast_bots/experiments/__init__.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/forecast_bots/experiments/q1_veritas_bot.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/forecast_bots/experiments/q1t_w_convert_to_binary.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/forecast_bots/experiments/q1t_w_personas_and_exa.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/forecast_bots/experiments/q2t_w_decomposition.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/forecast_bots/experiments/q3t_w_asknews.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/forecast_bots/experiments/q3t_w_exa.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/forecast_bots/experiments/q3t_w_q4vbinary.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/forecast_bots/experiments/q4_veritas_bot.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/forecast_bots/experiments/q4v_w_exa.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/forecast_bots/experiments/q4v_w_exa_and_dseekr1.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/forecast_bots/experiments/q4v_w_exa_and_o1_preview.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/forecast_bots/forecast_bot.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/forecast_bots/main_bot.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/forecast_bots/official_bots/__init__.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/forecast_bots/official_bots/gpt_4_1_optimized_bot.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/forecast_bots/official_bots/no_research_one_shot_bot.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/forecast_bots/official_bots/q1_template_bot.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/forecast_bots/official_bots/q2_template_bot.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/forecast_bots/official_bots/q3_template_bot.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/forecast_bots/official_bots/q4_template_bot.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/forecast_bots/official_bots/research_only_bot_2025_fall.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/forecast_bots/official_bots/template_bot_2025_fall.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/forecast_bots/official_bots/template_bot_2026_fall.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/forecast_bots/official_bots/template_bot_2026_spring.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/forecast_bots/official_bots/template_bot_2026_summer.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/forecast_bots/official_bots/uniform_probability_bot.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/forecast_bots/template_bot.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/front_end/Home.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/front_end/__init__.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/front_end/app_pages/base_rate_page.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/front_end/app_pages/benchmark_page.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/front_end/app_pages/chat_page.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/front_end/app_pages/congress_v2_page.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/front_end/app_pages/csv_agent.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/front_end/app_pages/estimator_page.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/front_end/app_pages/forecaster_page.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/front_end/app_pages/intervention_leaderboard_page.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/front_end/app_pages/key_factors_page.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/front_end/app_pages/niche_list_researcher_page.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/front_end/app_pages/simulator_page.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/front_end/example_outputs/base_rate_page_examples.json +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/front_end/example_outputs/congress_page_example.json +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/front_end/example_outputs/congress_v2_page_example.json +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/front_end/example_outputs/estimator_page_examples.json +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/front_end/example_outputs/forecast_page_examples.json +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/front_end/example_outputs/key_factors_page_examples.json +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/front_end/example_outputs/niche_list_page_examples.json +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/front_end/example_outputs/question_generator_page_examples.json +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/front_end/helpers/app_page.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/front_end/helpers/custom_auth.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/front_end/helpers/report_displayer.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/front_end/helpers/tool_page.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/helpers/__init__.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/helpers/asknews_cache.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/helpers/asknews_searcher.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/helpers/forecast_database_manager.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/helpers/metaculus_api.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/helpers/prediction_extractor.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/helpers/structure_output.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/helpers/works_cited_creator.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/util/__init__.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/util/async_batching.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/util/coda_utils.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/util/custom_logger.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/util/file_manipulation.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/util/jsonable.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/util/misc.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/util/optional_imports.py +0 -0
- {forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/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.3.
|
|
3
|
+
Version: 0.3.3
|
|
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
|
|
@@ -207,7 +207,7 @@ Note: You'll need to have your environment variables set up (see the section bel
|
|
|
207
207
|
|
|
208
208
|
## Customizing the Bot
|
|
209
209
|
### General Customization
|
|
210
|
-
Generally all you have to do to make your own bot is inherit from the TemplateBot and override any combination of the 3 forecasting methods and the 1 research method. This saves you the headache of interacting with the Metaculus API, implementing aggregation of predictions,
|
|
210
|
+
Generally all you have to do to make your own bot is inherit from the TemplateBot and override any combination of the 3 forecasting methods and the 1 research method. This saves you the headache of interacting with the Metaculus API, implementing aggregation of predictions, etc. Below is an example. It may also be helpful to look at the `TemplateBot` code (`forecasting_tools/forecast_bots/template_bot.py`) for a more complete example.
|
|
211
211
|
|
|
212
212
|
|
|
213
213
|
```python
|
|
@@ -380,11 +380,6 @@ file_path = "temp/questions.json"
|
|
|
380
380
|
DataOrganizer.save_questions_to_file_path(questions, file_path) # Overwrites the file if it already exists
|
|
381
381
|
questions = DataOrganizer.load_questions_from_file_path(file_path)
|
|
382
382
|
|
|
383
|
-
benchmark_questions = metaculus_client.get_benchmark_questions(
|
|
384
|
-
num_of_questions_to_return=20
|
|
385
|
-
)
|
|
386
|
-
print(f"Num benchmark questions: {len(benchmark_questions)}")
|
|
387
|
-
|
|
388
383
|
metaculus_client.post_binary_question_prediction(
|
|
389
384
|
question_id=578, # Note that the question ID is not always the same as the post ID
|
|
390
385
|
prediction_in_decimal=0.012, # Must be between 0.001 and 0.999
|
|
@@ -402,7 +397,6 @@ print("Posted comment")
|
|
|
402
397
|
Question found with url: https://www.metaculus.com/questions/578
|
|
403
398
|
Num tournament questions: 11
|
|
404
399
|
Num filtered questions: 50
|
|
405
|
-
Num benchmark questions: 20
|
|
406
400
|
Posted prediction
|
|
407
401
|
Posted comment
|
|
408
402
|
|
|
@@ -413,7 +407,7 @@ Several of the methods above accept a `group_question_mode` parameter that contr
|
|
|
413
407
|
- `"exclude"` — drop group questions from the result.
|
|
414
408
|
- `"unpack_subquestions"` — turn each subquestion into a separate normal question.
|
|
415
409
|
|
|
416
|
-
For backwards compatibility, the default is `"exclude"` for `get_question_by_post_id`, `get_question_by_url`, `ApiFilter` (used by `get_questions_matching_filter`)
|
|
410
|
+
For backwards compatibility, the default is `"exclude"` for `get_question_by_post_id`, `get_question_by_url`, and `ApiFilter` (used by `get_questions_matching_filter`). The exception is `get_all_open_questions_from_tournament`, which defaults to `"unpack_subquestions"` so all subquestions are forecasted as normal questions.
|
|
417
411
|
|
|
418
412
|
```python
|
|
419
413
|
from forecasting_tools import MetaculusClient, ApiFilter
|
|
@@ -572,8 +566,8 @@ Some features need heavier dependencies that a bot does not, so they are opt-in.
|
|
|
572
566
|
|
|
573
567
|
| Extra | You need it for |
|
|
574
568
|
| --- | --- |
|
|
575
|
-
| `agents` | Anything built on the agent SDK: `QuestionDecomposer`, `QuestionOperationalizer`, `TopicGenerator`, `DataAnalyzer`, `
|
|
576
|
-
| `front-end` | The Streamlit app in `forecasting_tools/front_end/`
|
|
569
|
+
| `agents` | Anything built on the agent SDK: `QuestionDecomposer`, `QuestionOperationalizer`, `TopicGenerator`, `DataAnalyzer`, `BotOptimizer`, `CustomizableBot`, `ComputerUse` (browser-driving agent), and the AI Congress tools |
|
|
570
|
+
| `front-end` | The Streamlit app in `forecasting_tools/front_end/` |
|
|
577
571
|
| `stats` | `forecasting_tools.util.stats` and the calibration adjusters in `forecasting_tools/calibration_adjustment/` |
|
|
578
572
|
| `all` | Everything above |
|
|
579
573
|
|
|
@@ -624,7 +618,7 @@ If you choose not to run Docker, you can use poetry to set up a local virtual en
|
|
|
624
618
|
|
|
625
619
|
|
|
626
620
|
## Installing dependencies
|
|
627
|
-
Local development uses the optional extras (the tests cover the front end
|
|
621
|
+
Local development uses the optional extras (the tests cover the front end and the agent tools), so install with:
|
|
628
622
|
|
|
629
623
|
```bash
|
|
630
624
|
poetry install --all-extras
|
|
@@ -145,7 +145,7 @@ Note: You'll need to have your environment variables set up (see the section bel
|
|
|
145
145
|
|
|
146
146
|
## Customizing the Bot
|
|
147
147
|
### General Customization
|
|
148
|
-
Generally all you have to do to make your own bot is inherit from the TemplateBot and override any combination of the 3 forecasting methods and the 1 research method. This saves you the headache of interacting with the Metaculus API, implementing aggregation of predictions,
|
|
148
|
+
Generally all you have to do to make your own bot is inherit from the TemplateBot and override any combination of the 3 forecasting methods and the 1 research method. This saves you the headache of interacting with the Metaculus API, implementing aggregation of predictions, etc. Below is an example. It may also be helpful to look at the `TemplateBot` code (`forecasting_tools/forecast_bots/template_bot.py`) for a more complete example.
|
|
149
149
|
|
|
150
150
|
|
|
151
151
|
```python
|
|
@@ -318,11 +318,6 @@ file_path = "temp/questions.json"
|
|
|
318
318
|
DataOrganizer.save_questions_to_file_path(questions, file_path) # Overwrites the file if it already exists
|
|
319
319
|
questions = DataOrganizer.load_questions_from_file_path(file_path)
|
|
320
320
|
|
|
321
|
-
benchmark_questions = metaculus_client.get_benchmark_questions(
|
|
322
|
-
num_of_questions_to_return=20
|
|
323
|
-
)
|
|
324
|
-
print(f"Num benchmark questions: {len(benchmark_questions)}")
|
|
325
|
-
|
|
326
321
|
metaculus_client.post_binary_question_prediction(
|
|
327
322
|
question_id=578, # Note that the question ID is not always the same as the post ID
|
|
328
323
|
prediction_in_decimal=0.012, # Must be between 0.001 and 0.999
|
|
@@ -340,7 +335,6 @@ print("Posted comment")
|
|
|
340
335
|
Question found with url: https://www.metaculus.com/questions/578
|
|
341
336
|
Num tournament questions: 11
|
|
342
337
|
Num filtered questions: 50
|
|
343
|
-
Num benchmark questions: 20
|
|
344
338
|
Posted prediction
|
|
345
339
|
Posted comment
|
|
346
340
|
|
|
@@ -351,7 +345,7 @@ Several of the methods above accept a `group_question_mode` parameter that contr
|
|
|
351
345
|
- `"exclude"` — drop group questions from the result.
|
|
352
346
|
- `"unpack_subquestions"` — turn each subquestion into a separate normal question.
|
|
353
347
|
|
|
354
|
-
For backwards compatibility, the default is `"exclude"` for `get_question_by_post_id`, `get_question_by_url`, `ApiFilter` (used by `get_questions_matching_filter`)
|
|
348
|
+
For backwards compatibility, the default is `"exclude"` for `get_question_by_post_id`, `get_question_by_url`, and `ApiFilter` (used by `get_questions_matching_filter`). The exception is `get_all_open_questions_from_tournament`, which defaults to `"unpack_subquestions"` so all subquestions are forecasted as normal questions.
|
|
355
349
|
|
|
356
350
|
```python
|
|
357
351
|
from forecasting_tools import MetaculusClient, ApiFilter
|
|
@@ -510,8 +504,8 @@ Some features need heavier dependencies that a bot does not, so they are opt-in.
|
|
|
510
504
|
|
|
511
505
|
| Extra | You need it for |
|
|
512
506
|
| --- | --- |
|
|
513
|
-
| `agents` | Anything built on the agent SDK: `QuestionDecomposer`, `QuestionOperationalizer`, `TopicGenerator`, `DataAnalyzer`, `
|
|
514
|
-
| `front-end` | The Streamlit app in `forecasting_tools/front_end/`
|
|
507
|
+
| `agents` | Anything built on the agent SDK: `QuestionDecomposer`, `QuestionOperationalizer`, `TopicGenerator`, `DataAnalyzer`, `BotOptimizer`, `CustomizableBot`, `ComputerUse` (browser-driving agent), and the AI Congress tools |
|
|
508
|
+
| `front-end` | The Streamlit app in `forecasting_tools/front_end/` |
|
|
515
509
|
| `stats` | `forecasting_tools.util.stats` and the calibration adjusters in `forecasting_tools/calibration_adjustment/` |
|
|
516
510
|
| `all` | Everything above |
|
|
517
511
|
|
|
@@ -562,7 +556,7 @@ If you choose not to run Docker, you can use poetry to set up a local virtual en
|
|
|
562
556
|
|
|
563
557
|
|
|
564
558
|
## Installing dependencies
|
|
565
|
-
Local development uses the optional extras (the tests cover the front end
|
|
559
|
+
Local development uses the optional extras (the tests cover the front end and the agent tools), so install with:
|
|
566
560
|
|
|
567
561
|
```bash
|
|
568
562
|
poetry install --all-extras
|
|
@@ -172,6 +172,9 @@ from forecasting_tools.helpers.asknews_searcher import (
|
|
|
172
172
|
from forecasting_tools.helpers.metaculus_api import MetaculusApi as MetaculusApi
|
|
173
173
|
from forecasting_tools.helpers.metaculus_api import MetaculusClient as MetaculusClient
|
|
174
174
|
from forecasting_tools.helpers.metaculus_client import ApiFilter as ApiFilter
|
|
175
|
+
from forecasting_tools.helpers.metaculus_client import (
|
|
176
|
+
AuthorMismatchError as AuthorMismatchError,
|
|
177
|
+
)
|
|
175
178
|
from forecasting_tools.helpers.prediction_extractor import (
|
|
176
179
|
PredictionExtractor as PredictionExtractor,
|
|
177
180
|
)
|
{forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/helpers/metaculus_client.py
RENAMED
|
@@ -101,6 +101,10 @@ class ApiFilter(BaseModel):
|
|
|
101
101
|
return add_timezone_to_dates_in_base_model(self)
|
|
102
102
|
|
|
103
103
|
|
|
104
|
+
class AuthorMismatchError(ValueError):
|
|
105
|
+
pass
|
|
106
|
+
|
|
107
|
+
|
|
104
108
|
class MetaculusClient:
|
|
105
109
|
"""
|
|
106
110
|
Documentation for the API can be found at https://www.metaculus.com/api/
|
|
@@ -1212,8 +1216,14 @@ class MetaculusClient:
|
|
|
1212
1216
|
logger.info(f"Unresolved question ID {question_id}")
|
|
1213
1217
|
|
|
1214
1218
|
@retry_with_exponential_backoff()
|
|
1215
|
-
def create_question(
|
|
1216
|
-
|
|
1219
|
+
def create_question(
|
|
1220
|
+
self, question: MetaculusQuestion, author_username: str | None = None
|
|
1221
|
+
) -> MetaculusQuestion:
|
|
1222
|
+
"""
|
|
1223
|
+
Setting author_username creates the post as that user, which requires
|
|
1224
|
+
the API token to belong to a Metaculus superuser.
|
|
1225
|
+
"""
|
|
1226
|
+
question_data = self._get_post_create_data(question, author_username)
|
|
1217
1227
|
self._sleep_between_requests()
|
|
1218
1228
|
response = requests.post(
|
|
1219
1229
|
f"{self.base_url}/posts/create/",
|
|
@@ -1241,6 +1251,16 @@ class MetaculusClient:
|
|
|
1241
1251
|
single_created_question.id_of_post
|
|
1242
1252
|
)
|
|
1243
1253
|
|
|
1254
|
+
if author_username is not None:
|
|
1255
|
+
actual_author = full_created_question.api_json.get("author_username")
|
|
1256
|
+
if actual_author != author_username:
|
|
1257
|
+
raise AuthorMismatchError(
|
|
1258
|
+
f"Post {full_created_question.id_of_post} was created with author "
|
|
1259
|
+
f"{actual_author!r} instead of {author_username!r} and has not been "
|
|
1260
|
+
"approved. Either the API token is not a superuser or the server "
|
|
1261
|
+
"ignored the author override."
|
|
1262
|
+
)
|
|
1263
|
+
|
|
1244
1264
|
return full_created_question
|
|
1245
1265
|
|
|
1246
1266
|
@retry_with_exponential_backoff()
|
|
@@ -1286,12 +1306,20 @@ class MetaculusClient:
|
|
|
1286
1306
|
logger.info(f"Approved question {question.page_url}")
|
|
1287
1307
|
|
|
1288
1308
|
@staticmethod
|
|
1289
|
-
def _get_post_create_data(
|
|
1309
|
+
def _get_post_create_data(
|
|
1310
|
+
question: MetaculusQuestion, author_username: str | None = None
|
|
1311
|
+
) -> dict:
|
|
1290
1312
|
if question.published_time is None:
|
|
1291
1313
|
publish_time = question.open_time
|
|
1292
1314
|
else:
|
|
1293
1315
|
publish_time = question.published_time
|
|
1294
1316
|
|
|
1317
|
+
author_override_fields = (
|
|
1318
|
+
{"author_username": author_username, "is_staff_override": True}
|
|
1319
|
+
if author_username is not None
|
|
1320
|
+
else {}
|
|
1321
|
+
)
|
|
1322
|
+
|
|
1295
1323
|
return {
|
|
1296
1324
|
"title": question.question_text,
|
|
1297
1325
|
"short_title": question.custom_metadata.get("short_name", None)
|
|
@@ -1355,4 +1383,5 @@ class MetaculusClient:
|
|
|
1355
1383
|
"fine_print": question.fine_print or "",
|
|
1356
1384
|
"group_rank": None, # only group questions
|
|
1357
1385
|
},
|
|
1386
|
+
**author_override_fields,
|
|
1358
1387
|
}
|
|
File without changes
|
{forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/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
|
|
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.3.2 → forecasting_tools-0.3.3}/forecasting_tools/ai_models/agent_wrappers.py
RENAMED
|
File without changes
|
{forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/ai_models/ai_utils/__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
|
{forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/ai_models/exa_searcher.py
RENAMED
|
File without changes
|
{forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/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.3.2 → forecasting_tools-0.3.3}/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
|
|
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.3.2 → forecasting_tools-0.3.3}/forecasting_tools/cp_benchmarking/benchmarker.py
RENAMED
|
File without changes
|
{forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/data_models/__init__.py
RENAMED
|
File without changes
|
{forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/data_models/binary_report.py
RENAMED
|
File without changes
|
{forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/data_models/coherence_link.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/data_models/data_organizer.py
RENAMED
|
File without changes
|
{forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/data_models/forecast_report.py
RENAMED
|
File without changes
|
{forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/data_models/markdown_tree.py
RENAMED
|
File without changes
|
|
File without changes
|
{forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/data_models/numeric_report.py
RENAMED
|
File without changes
|
{forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/data_models/questions.py
RENAMED
|
File without changes
|
|
File without changes
|
{forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/data_models/user_response.py
RENAMED
|
File without changes
|
{forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/forecast_bots/__init__.py
RENAMED
|
File without changes
|
{forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/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
|
{forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/forecast_bots/forecast_bot.py
RENAMED
|
File without changes
|
{forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/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
|
{forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/forecast_bots/template_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
|
{forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/front_end/helpers/app_page.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/front_end/helpers/tool_page.py
RENAMED
|
File without changes
|
|
File without changes
|
{forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/helpers/asknews_cache.py
RENAMED
|
File without changes
|
{forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/helpers/asknews_searcher.py
RENAMED
|
File without changes
|
|
File without changes
|
{forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/helpers/metaculus_api.py
RENAMED
|
File without changes
|
|
File without changes
|
{forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/helpers/structure_output.py
RENAMED
|
File without changes
|
{forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/helpers/works_cited_creator.py
RENAMED
|
File without changes
|
|
File without changes
|
{forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/util/async_batching.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/util/file_manipulation.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{forecasting_tools-0.3.2 → forecasting_tools-0.3.3}/forecasting_tools/util/optional_imports.py
RENAMED
|
File without changes
|
|
File without changes
|