tooluniverse 1.0.6__py3-none-any.whl → 1.0.7__py3-none-any.whl
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.
Potentially problematic release.
This version of tooluniverse might be problematic. Click here for more details.
- tooluniverse/__init__.py +31 -0
- tooluniverse/agentic_tool.py +40 -4
- tooluniverse/arxiv_tool.py +2 -6
- tooluniverse/base_tool.py +174 -25
- tooluniverse/biorxiv_tool.py +35 -16
- tooluniverse/cellosaurus_tool.py +1332 -0
- tooluniverse/compose_scripts/enhanced_multi_agent_literature_search.py +310 -0
- tooluniverse/compose_scripts/multi_agent_literature_search.py +794 -0
- tooluniverse/compose_scripts/tool_graph_generation.py +68 -35
- tooluniverse/compose_scripts/tool_metadata_generator.py +205 -105
- tooluniverse/compose_tool.py +93 -8
- tooluniverse/core_tool.py +46 -44
- tooluniverse/crossref_tool.py +89 -4
- tooluniverse/data/agentic_tools.json +1271 -1179
- tooluniverse/data/alphafold_tools.json +356 -105
- tooluniverse/data/arxiv_tools.json +88 -81
- tooluniverse/data/biorxiv_tools.json +69 -64
- tooluniverse/data/cellosaurus_tools.json +260 -0
- tooluniverse/data/chembl_tools.json +27 -12
- tooluniverse/data/clinicaltrials_gov_tools.json +377 -302
- tooluniverse/data/compose_tools.json +123 -16
- tooluniverse/data/core_tools.json +107 -99
- tooluniverse/data/crossref_tools.json +131 -63
- tooluniverse/data/dailymed_tools.json +17 -3
- tooluniverse/data/dataset_tools.json +1031 -588
- tooluniverse/data/dblp_tools.json +135 -64
- tooluniverse/data/disease_target_score_tools.json +20 -10
- tooluniverse/data/doaj_tools.json +133 -87
- tooluniverse/data/embedding_tools.json +362 -299
- tooluniverse/data/enrichr_tools.json +34 -27
- tooluniverse/data/europe_pmc_tools.json +108 -16
- tooluniverse/data/fatcat_tools.json +71 -66
- tooluniverse/data/fda_drug_adverse_event_tools.json +1061 -445
- tooluniverse/data/fda_drug_labeling_tools.json +6858 -6901
- tooluniverse/data/finder_tools.json +32 -37
- tooluniverse/data/gene_ontology_tools.json +19 -7
- tooluniverse/data/gwas_tools.json +1720 -959
- tooluniverse/data/hal_tools.json +69 -64
- tooluniverse/data/hpa_tools.json +53 -14
- tooluniverse/data/humanbase_tools.json +51 -43
- tooluniverse/data/idmap_tools.json +76 -70
- tooluniverse/data/literature_search_tools.json +306 -0
- tooluniverse/data/mcp_client_tools_example.json +122 -107
- tooluniverse/data/medlineplus_tools.json +50 -10
- tooluniverse/data/medrxiv_tools.json +69 -64
- tooluniverse/data/molecule_2d_tools.json +134 -0
- tooluniverse/data/molecule_3d_tools.json +164 -0
- tooluniverse/data/monarch_tools.json +112 -110
- tooluniverse/data/odphp_tools.json +389 -119
- tooluniverse/data/openaire_tools.json +89 -79
- tooluniverse/data/openalex_tools.json +100 -31
- tooluniverse/data/opentarget_tools.json +1457 -1372
- tooluniverse/data/osf_preprints_tools.json +77 -73
- tooluniverse/data/packages/bioinformatics_core_tools.json +40 -10
- tooluniverse/data/packages/cheminformatics_tools.json +20 -5
- tooluniverse/data/packages/genomics_tools.json +36 -9
- tooluniverse/data/packages/machine_learning_tools.json +36 -9
- tooluniverse/data/packages/scientific_computing_tools.json +20 -5
- tooluniverse/data/packages/single_cell_tools.json +20 -5
- tooluniverse/data/packages/structural_biology_tools.json +16 -4
- tooluniverse/data/packages/visualization_tools.json +20 -5
- tooluniverse/data/pmc_tools.json +111 -103
- tooluniverse/data/protein_structure_3d_tools.json +138 -0
- tooluniverse/data/pubchem_tools.json +37 -12
- tooluniverse/data/pubmed_tools.json +126 -58
- tooluniverse/data/pubtator_tools.json +68 -60
- tooluniverse/data/rcsb_pdb_tools.json +1532 -1221
- tooluniverse/data/semantic_scholar_tools.json +55 -22
- tooluniverse/data/special_tools.json +8 -6
- tooluniverse/data/tool_composition_tools.json +112 -82
- tooluniverse/data/unified_guideline_tools.json +707 -0
- tooluniverse/data/url_fetch_tools.json +102 -82
- tooluniverse/data/uspto_tools.json +49 -30
- tooluniverse/data/wikidata_sparql_tools.json +42 -39
- tooluniverse/data/xml_tools.json +3274 -3113
- tooluniverse/data/zenodo_tools.json +84 -76
- tooluniverse/dblp_tool.py +76 -6
- tooluniverse/default_config.py +13 -0
- tooluniverse/doaj_tool.py +76 -17
- tooluniverse/doctor.py +48 -0
- tooluniverse/europe_pmc_tool.py +132 -17
- tooluniverse/exceptions.py +170 -0
- tooluniverse/execute_function.py +784 -362
- tooluniverse/fatcat_tool.py +0 -1
- tooluniverse/generate_tools.py +198 -0
- tooluniverse/hal_tool.py +1 -1
- tooluniverse/llm_clients.py +101 -124
- tooluniverse/mcp_tool_registry.py +4 -1
- tooluniverse/medrxiv_tool.py +32 -13
- tooluniverse/memory_manager.py +166 -0
- tooluniverse/molecule_2d_tool.py +274 -0
- tooluniverse/molecule_3d_tool.py +441 -0
- tooluniverse/odphp_tool.py +49 -14
- tooluniverse/openaire_tool.py +5 -20
- tooluniverse/openalex_tool.py +34 -0
- tooluniverse/osf_preprints_tool.py +1 -1
- tooluniverse/pmc_tool.py +54 -56
- tooluniverse/protein_structure_3d_tool.py +295 -0
- tooluniverse/pubmed_tool.py +69 -6
- tooluniverse/remote/boltz/boltz_mcp_server.py +3 -1
- tooluniverse/remote/uspto_downloader/uspto_downloader_mcp_server.py +3 -1
- tooluniverse/semantic_scholar_tool.py +40 -10
- tooluniverse/smcp.py +140 -205
- tooluniverse/smcp_server.py +97 -55
- tooluniverse/tool_registry.py +35 -3
- tooluniverse/tools/ADMETAI_predict_BBB_penetrance.py +46 -0
- tooluniverse/tools/ADMETAI_predict_CYP_interactions.py +46 -0
- tooluniverse/tools/ADMETAI_predict_bioavailability.py +46 -0
- tooluniverse/tools/ADMETAI_predict_clearance_distribution.py +49 -0
- tooluniverse/tools/ADMETAI_predict_nuclear_receptor_activity.py +49 -0
- tooluniverse/tools/ADMETAI_predict_physicochemical_properties.py +49 -0
- tooluniverse/tools/ADMETAI_predict_solubility_lipophilicity_hydration.py +49 -0
- tooluniverse/tools/ADMETAI_predict_stress_response.py +46 -0
- tooluniverse/tools/ADMETAI_predict_toxicity.py +46 -0
- tooluniverse/tools/AdvancedCodeQualityAnalyzer.py +63 -0
- tooluniverse/tools/AdverseEventICDMapper.py +46 -0
- tooluniverse/tools/AdverseEventPredictionQuestionGenerator.py +52 -0
- tooluniverse/tools/AdverseEventPredictionQuestionGeneratorWithContext.py +59 -0
- tooluniverse/tools/ArXiv_search_papers.py +63 -0
- tooluniverse/tools/ArgumentDescriptionOptimizer.py +55 -0
- tooluniverse/tools/BioRxiv_search_preprints.py +52 -0
- tooluniverse/tools/BiomarkerDiscoveryWorkflow.py +55 -0
- tooluniverse/tools/CORE_search_papers.py +67 -0
- tooluniverse/tools/CallAgent.py +46 -0
- tooluniverse/tools/ChEMBL_search_similar_molecules.py +59 -0
- tooluniverse/tools/CodeOptimizer.py +55 -0
- tooluniverse/tools/CodeQualityAnalyzer.py +71 -0
- tooluniverse/tools/ComprehensiveDrugDiscoveryPipeline.py +49 -0
- tooluniverse/tools/Crossref_search_works.py +55 -0
- tooluniverse/tools/DBLP_search_publications.py +52 -0
- tooluniverse/tools/DOAJ_search_articles.py +55 -0
- tooluniverse/tools/DailyMed_get_spl_by_setid.py +52 -0
- tooluniverse/tools/DailyMed_search_spls.py +79 -0
- tooluniverse/tools/DataAnalysisValidityReviewer.py +49 -0
- tooluniverse/tools/DescriptionAnalyzer.py +55 -0
- tooluniverse/tools/DescriptionQualityEvaluator.py +59 -0
- tooluniverse/tools/DomainExpertValidator.py +63 -0
- tooluniverse/tools/DrugSafetyAnalyzer.py +59 -0
- tooluniverse/tools/EthicalComplianceReviewer.py +49 -0
- tooluniverse/tools/EuropePMC_Guidelines_Search.py +52 -0
- tooluniverse/tools/EuropePMC_search_articles.py +52 -0
- tooluniverse/tools/ExperimentalDesignScorer.py +55 -0
- tooluniverse/tools/FAERS_count_additive_administration_routes.py +52 -0
- tooluniverse/tools/FAERS_count_additive_adverse_reactions.py +71 -0
- tooluniverse/tools/FAERS_count_additive_event_reports_by_country.py +63 -0
- tooluniverse/tools/FAERS_count_additive_reaction_outcomes.py +63 -0
- tooluniverse/tools/FAERS_count_additive_reports_by_reporter_country.py +63 -0
- tooluniverse/tools/FAERS_count_additive_seriousness_classification.py +63 -0
- tooluniverse/tools/FAERS_count_country_by_drug_event.py +63 -0
- tooluniverse/tools/FAERS_count_death_related_by_drug.py +49 -0
- tooluniverse/tools/FAERS_count_drug_routes_by_event.py +52 -0
- tooluniverse/tools/FAERS_count_drugs_by_drug_event.py +63 -0
- tooluniverse/tools/FAERS_count_outcomes_by_drug_event.py +63 -0
- tooluniverse/tools/FAERS_count_patient_age_distribution.py +49 -0
- tooluniverse/tools/FAERS_count_reactions_by_drug_event.py +71 -0
- tooluniverse/tools/FAERS_count_reportercountry_by_drug_event.py +63 -0
- tooluniverse/tools/FAERS_count_seriousness_by_drug_event.py +63 -0
- tooluniverse/tools/FDA_get_abuse_dependence_info_by_drug_name.py +55 -0
- tooluniverse/tools/FDA_get_abuse_info_by_drug_name.py +55 -0
- tooluniverse/tools/FDA_get_accessories_info_by_drug_name.py +55 -0
- tooluniverse/tools/FDA_get_active_ingredient_info_by_drug_name.py +55 -0
- tooluniverse/tools/FDA_get_adverse_reactions_by_drug_name.py +55 -0
- tooluniverse/tools/FDA_get_alarms_by_drug_name.py +55 -0
- tooluniverse/tools/FDA_get_animal_pharmacology_info_by_drug_name.py +55 -0
- tooluniverse/tools/FDA_get_assembly_installation_info_by_drug_name.py +55 -0
- tooluniverse/tools/FDA_get_boxed_warning_info_by_drug_name.py +55 -0
- tooluniverse/tools/FDA_get_brand_name_generic_name.py +52 -0
- tooluniverse/tools/FDA_get_calibration_instructions_by_drug_name.py +55 -0
- tooluniverse/tools/FDA_get_carcinogenic_mutagenic_fertility_by_drug_name.py +55 -0
- tooluniverse/tools/FDA_get_child_safety_info_by_drug_name.py +55 -0
- tooluniverse/tools/FDA_get_clinical_pharmacology_by_drug_name.py +55 -0
- tooluniverse/tools/FDA_get_clinical_studies_info_by_drug_name.py +55 -0
- tooluniverse/tools/FDA_get_contact_for_questions_info_by_drug_name.py +55 -0
- tooluniverse/tools/FDA_get_contraindications_by_drug_name.py +55 -0
- tooluniverse/tools/FDA_get_controlled_substance_DEA_schedule_info_by_drug_name.py +55 -0
- tooluniverse/tools/FDA_get_dear_health_care_provider_letter_info_by_drug_name.py +55 -0
- tooluniverse/tools/FDA_get_dependence_info_by_drug_name.py +55 -0
- tooluniverse/tools/FDA_get_disposal_info_by_drug_name.py +55 -0
- tooluniverse/tools/FDA_get_do_not_use_info_by_drug_name.py +55 -0
- tooluniverse/tools/FDA_get_document_id_by_drug_name.py +55 -0
- tooluniverse/tools/FDA_get_dosage_and_storage_information_by_drug_name.py +55 -0
- tooluniverse/tools/FDA_get_dosage_forms_and_strengths_by_drug_name.py +55 -0
- tooluniverse/tools/FDA_get_drug_generic_name.py +46 -0
- tooluniverse/tools/FDA_get_drug_interactions_by_drug_name.py +55 -0
- tooluniverse/tools/FDA_get_drug_name_by_SPL_ID.py +55 -0
- tooluniverse/tools/FDA_get_drug_name_by_adverse_reaction.py +59 -0
- tooluniverse/tools/FDA_get_drug_name_by_calibration_instructions.py +59 -0
- tooluniverse/tools/FDA_get_drug_name_by_dependence_info.py +59 -0
- tooluniverse/tools/FDA_get_drug_name_by_document_id.py +55 -0
- tooluniverse/tools/FDA_get_drug_name_by_dosage_info.py +55 -0
- tooluniverse/tools/FDA_get_drug_name_by_environmental_warning.py +59 -0
- tooluniverse/tools/FDA_get_drug_name_by_inactive_ingredient.py +59 -0
- tooluniverse/tools/FDA_get_drug_name_by_info_on_conditions_for_doctor_consultation.py +55 -0
- tooluniverse/tools/FDA_get_drug_name_by_labor_and_delivery_info.py +59 -0
- tooluniverse/tools/FDA_get_drug_name_by_microbiology.py +59 -0
- tooluniverse/tools/FDA_get_drug_name_by_other_safety_info.py +55 -0
- tooluniverse/tools/FDA_get_drug_name_by_pharmacodynamics.py +59 -0
- tooluniverse/tools/FDA_get_drug_name_by_pharmacogenomics.py +59 -0
- tooluniverse/tools/FDA_get_drug_name_by_precautions.py +55 -0
- tooluniverse/tools/FDA_get_drug_name_by_pregnancy_or_breastfeeding_info.py +59 -0
- tooluniverse/tools/FDA_get_drug_name_by_principal_display_panel.py +59 -0
- tooluniverse/tools/FDA_get_drug_name_by_reference.py +55 -0
- tooluniverse/tools/FDA_get_drug_name_by_set_id.py +55 -0
- tooluniverse/tools/FDA_get_drug_name_by_stop_use_info.py +55 -0
- tooluniverse/tools/FDA_get_drug_name_by_storage_and_handling_info.py +55 -0
- tooluniverse/tools/FDA_get_drug_name_by_warnings.py +55 -0
- tooluniverse/tools/FDA_get_drug_name_from_patient_package_insert.py +59 -0
- tooluniverse/tools/FDA_get_drug_names_by_abuse_dependence_info.py +55 -0
- tooluniverse/tools/FDA_get_drug_names_by_abuse_info.py +63 -0
- tooluniverse/tools/FDA_get_drug_names_by_accessories.py +63 -0
- tooluniverse/tools/FDA_get_drug_names_by_active_ingredient.py +63 -0
- tooluniverse/tools/FDA_get_drug_names_by_alarm.py +63 -0
- tooluniverse/tools/FDA_get_drug_names_by_animal_pharmacology_info.py +63 -0
- tooluniverse/tools/FDA_get_drug_names_by_application_number_NDC_number.py +59 -0
- tooluniverse/tools/FDA_get_drug_names_by_assembly_installation_info.py +63 -0
- tooluniverse/tools/FDA_get_drug_names_by_boxed_warning.py +63 -0
- tooluniverse/tools/FDA_get_drug_names_by_child_safety_info.py +63 -0
- tooluniverse/tools/FDA_get_drug_names_by_clinical_pharmacology.py +63 -0
- tooluniverse/tools/FDA_get_drug_names_by_clinical_studies.py +63 -0
- tooluniverse/tools/FDA_get_drug_names_by_consulting_doctor_pharmacist_info.py +63 -0
- tooluniverse/tools/FDA_get_drug_names_by_contraindications.py +63 -0
- tooluniverse/tools/FDA_get_drug_names_by_controlled_substance_DEA_schedule.py +63 -0
- tooluniverse/tools/FDA_get_drug_names_by_dear_health_care_provider_letter_info.py +63 -0
- tooluniverse/tools/FDA_get_drug_names_by_disposal_info.py +63 -0
- tooluniverse/tools/FDA_get_drug_names_by_dosage_forms_and_strengths_info.py +63 -0
- tooluniverse/tools/FDA_get_drug_names_by_drug_interactions.py +63 -0
- tooluniverse/tools/FDA_get_drug_names_by_effective_time.py +63 -0
- tooluniverse/tools/FDA_get_drug_names_by_food_safety_warnings.py +63 -0
- tooluniverse/tools/FDA_get_drug_names_by_general_precautions.py +63 -0
- tooluniverse/tools/FDA_get_drug_names_by_geriatric_use.py +63 -0
- tooluniverse/tools/FDA_get_drug_names_by_health_claim.py +63 -0
- tooluniverse/tools/FDA_get_drug_names_by_indication.py +55 -0
- tooluniverse/tools/FDA_get_drug_names_by_info_for_nursing_mothers.py +63 -0
- tooluniverse/tools/FDA_get_drug_names_by_information_for_owners_or_caregivers.py +63 -0
- tooluniverse/tools/FDA_get_drug_names_by_ingredient.py +63 -0
- tooluniverse/tools/FDA_get_drug_names_by_instructions_for_use.py +63 -0
- tooluniverse/tools/FDA_get_drug_names_by_lab_test_interference.py +63 -0
- tooluniverse/tools/FDA_get_drug_names_by_lab_tests.py +63 -0
- tooluniverse/tools/FDA_get_drug_names_by_mechanism_of_action.py +63 -0
- tooluniverse/tools/FDA_get_drug_names_by_medication_guide.py +63 -0
- tooluniverse/tools/FDA_get_drug_names_by_nonclinical_toxicology_info.py +63 -0
- tooluniverse/tools/FDA_get_drug_names_by_nonteratogenic_effects.py +63 -0
- tooluniverse/tools/FDA_get_drug_names_by_overdosage_info.py +63 -0
- tooluniverse/tools/FDA_get_drug_names_by_pediatric_use.py +63 -0
- tooluniverse/tools/FDA_get_drug_names_by_pharmacokinetics.py +63 -0
- tooluniverse/tools/FDA_get_drug_names_by_population_use.py +63 -0
- tooluniverse/tools/FDA_get_drug_names_by_pregnancy_effects_info.py +63 -0
- tooluniverse/tools/FDA_get_drug_names_by_residue_warning.py +63 -0
- tooluniverse/tools/FDA_get_drug_names_by_risk.py +63 -0
- tooluniverse/tools/FDA_get_drug_names_by_route.py +63 -0
- tooluniverse/tools/FDA_get_drug_names_by_safe_handling_warning.py +63 -0
- tooluniverse/tools/FDA_get_drug_names_by_safety_summary.py +63 -0
- tooluniverse/tools/FDA_get_drug_names_by_spl_indexing_data_elements.py +63 -0
- tooluniverse/tools/FDA_get_drug_names_by_teratogenic_effects.py +63 -0
- tooluniverse/tools/FDA_get_drug_names_by_user_safety_warning.py +63 -0
- tooluniverse/tools/FDA_get_drug_names_by_warnings_and_cautions.py +63 -0
- tooluniverse/tools/FDA_get_drugs_by_carcinogenic_mutagenic_fertility.py +63 -0
- tooluniverse/tools/FDA_get_effective_time_by_drug_name.py +55 -0
- tooluniverse/tools/FDA_get_environmental_warning_by_drug_name.py +55 -0
- tooluniverse/tools/FDA_get_general_precautions_by_drug_name.py +55 -0
- tooluniverse/tools/FDA_get_geriatric_use_info_by_drug_name.py +55 -0
- tooluniverse/tools/FDA_get_health_claims_by_drug_name.py +55 -0
- tooluniverse/tools/FDA_get_inactive_ingredient_info_by_drug_name.py +55 -0
- tooluniverse/tools/FDA_get_indications_by_drug_name.py +55 -0
- tooluniverse/tools/FDA_get_info_for_nursing_mothers_by_drug_name.py +55 -0
- tooluniverse/tools/FDA_get_info_for_patients_by_drug_name.py +55 -0
- tooluniverse/tools/FDA_get_info_on_conditions_for_doctor_consultation_by_drug_name.py +55 -0
- tooluniverse/tools/FDA_get_info_on_consulting_doctor_pharmacist_by_drug_name.py +55 -0
- tooluniverse/tools/FDA_get_information_for_owners_or_caregivers_by_drug_name.py +55 -0
- tooluniverse/tools/FDA_get_ingredients_by_drug_name.py +55 -0
- tooluniverse/tools/FDA_get_instructions_for_use_by_drug_name.py +55 -0
- tooluniverse/tools/FDA_get_lab_test_interference_info_by_drug_name.py +55 -0
- tooluniverse/tools/FDA_get_lab_tests_by_drug_name.py +55 -0
- tooluniverse/tools/FDA_get_labor_and_delivery_info_by_drug_name.py +55 -0
- tooluniverse/tools/FDA_get_manufacturer_name_NDC_number_by_drug_name.py +55 -0
- tooluniverse/tools/FDA_get_mechanism_of_action_by_drug_name.py +55 -0
- tooluniverse/tools/FDA_get_medication_guide_info_by_drug_name.py +55 -0
- tooluniverse/tools/FDA_get_microbiology_info_by_drug_name.py +55 -0
- tooluniverse/tools/FDA_get_nonclinical_toxicology_info_by_drug_name.py +55 -0
- tooluniverse/tools/FDA_get_nonteratogenic_effects_by_drug_name.py +55 -0
- tooluniverse/tools/FDA_get_other_safety_info_by_drug_name.py +55 -0
- tooluniverse/tools/FDA_get_overdosage_info_by_drug_name.py +55 -0
- tooluniverse/tools/FDA_get_patient_package_insert_from_drug_name.py +55 -0
- tooluniverse/tools/FDA_get_pediatric_use_info_by_drug_name.py +55 -0
- tooluniverse/tools/FDA_get_pharmacodynamics_by_drug_name.py +55 -0
- tooluniverse/tools/FDA_get_pharmacogenomics_info_by_drug_name.py +55 -0
- tooluniverse/tools/FDA_get_pharmacokinetics_by_drug_name.py +55 -0
- tooluniverse/tools/FDA_get_population_use_info_by_drug_name.py +55 -0
- tooluniverse/tools/FDA_get_precautions_by_drug_name.py +55 -0
- tooluniverse/tools/FDA_get_pregnancy_effects_info_by_drug_name.py +55 -0
- tooluniverse/tools/FDA_get_pregnancy_or_breastfeeding_info_by_drug_name.py +55 -0
- tooluniverse/tools/FDA_get_principal_display_panel_by_drug_name.py +55 -0
- tooluniverse/tools/FDA_get_purpose_info_by_drug_name.py +55 -0
- tooluniverse/tools/FDA_get_recent_changes_by_drug_name.py +55 -0
- tooluniverse/tools/FDA_get_reference_info_by_drug_name.py +55 -0
- tooluniverse/tools/FDA_get_residue_warning_by_drug_name.py +55 -0
- tooluniverse/tools/FDA_get_risk_info_by_drug_name.py +55 -0
- tooluniverse/tools/FDA_get_route_info_by_drug_name.py +55 -0
- tooluniverse/tools/FDA_get_safe_handling_warnings_by_drug_name.py +55 -0
- tooluniverse/tools/FDA_get_safety_summary_by_drug_name.py +55 -0
- tooluniverse/tools/FDA_get_spl_indexing_data_elements_by_drug_name.py +55 -0
- tooluniverse/tools/FDA_get_spl_unclassified_section_by_drug_name.py +55 -0
- tooluniverse/tools/FDA_get_stop_use_info_by_drug_name.py +55 -0
- tooluniverse/tools/FDA_get_storage_and_handling_info_by_drug_name.py +55 -0
- tooluniverse/tools/FDA_get_teratogenic_effects_by_drug_name.py +55 -0
- tooluniverse/tools/FDA_get_user_safety_warning_by_drug_names.py +55 -0
- tooluniverse/tools/FDA_get_warnings_and_cautions_by_drug_name.py +55 -0
- tooluniverse/tools/FDA_get_warnings_by_drug_name.py +55 -0
- tooluniverse/tools/FDA_get_when_using_info.py +55 -0
- tooluniverse/tools/FDA_retrieve_device_use_by_drug_name.py +55 -0
- tooluniverse/tools/FDA_retrieve_drug_name_by_device_use.py +59 -0
- tooluniverse/tools/FDA_retrieve_drug_names_by_patient_medication_info.py +55 -0
- tooluniverse/tools/FDA_retrieve_patient_medication_info_by_drug_name.py +55 -0
- tooluniverse/tools/Fatcat_search_scholar.py +52 -0
- tooluniverse/tools/Finish.py +44 -0
- tooluniverse/tools/GO_get_annotations_for_gene.py +46 -0
- tooluniverse/tools/GO_get_genes_for_term.py +55 -0
- tooluniverse/tools/GO_get_term_by_id.py +46 -0
- tooluniverse/tools/GO_get_term_details.py +46 -0
- tooluniverse/tools/GO_search_terms.py +46 -0
- tooluniverse/tools/HAL_search_archive.py +52 -0
- tooluniverse/tools/HPA_get_biological_processes_by_gene.py +52 -0
- tooluniverse/tools/HPA_get_cancer_prognostics_by_gene.py +49 -0
- tooluniverse/tools/HPA_get_comparative_expression_by_gene_and_cellline.py +52 -0
- tooluniverse/tools/HPA_get_comprehensive_gene_details_by_ensembl_id.py +63 -0
- tooluniverse/tools/HPA_get_contextual_biological_process_analysis.py +52 -0
- tooluniverse/tools/HPA_get_disease_expression_by_gene_tissue_disease.py +59 -0
- tooluniverse/tools/HPA_get_gene_basic_info_by_ensembl_id.py +49 -0
- tooluniverse/tools/HPA_get_gene_tsv_data_by_ensembl_id.py +49 -0
- tooluniverse/tools/HPA_get_protein_interactions_by_gene.py +49 -0
- tooluniverse/tools/HPA_get_rna_expression_by_source.py +59 -0
- tooluniverse/tools/HPA_get_rna_expression_in_specific_tissues.py +52 -0
- tooluniverse/tools/HPA_get_subcellular_location.py +46 -0
- tooluniverse/tools/HPA_search_genes_by_query.py +49 -0
- tooluniverse/tools/HypothesisGenerator.py +63 -0
- tooluniverse/tools/LabelGenerator.py +67 -0
- tooluniverse/tools/LiteratureContextReviewer.py +55 -0
- tooluniverse/tools/LiteratureSearchTool.py +49 -0
- tooluniverse/tools/MedRxiv_search_preprints.py +52 -0
- tooluniverse/tools/MedicalLiteratureReviewer.py +71 -0
- tooluniverse/tools/MedicalTermNormalizer.py +46 -0
- tooluniverse/tools/MedlinePlus_connect_lookup_by_code.py +67 -0
- tooluniverse/tools/MedlinePlus_get_genetics_condition_by_name.py +52 -0
- tooluniverse/tools/MedlinePlus_get_genetics_gene_by_name.py +52 -0
- tooluniverse/tools/MedlinePlus_get_genetics_index.py +44 -0
- tooluniverse/tools/MedlinePlus_search_topics_by_keyword.py +55 -0
- tooluniverse/tools/MethodologyRigorReviewer.py +49 -0
- tooluniverse/tools/MultiAgentLiteratureSearch.py +59 -0
- tooluniverse/tools/NICE_Clinical_Guidelines_Search.py +52 -0
- tooluniverse/tools/NICE_Guideline_Full_Text.py +46 -0
- tooluniverse/tools/NoveltySignificanceReviewer.py +59 -0
- tooluniverse/tools/OSF_search_preprints.py +59 -0
- tooluniverse/tools/OSL_get_efo_id_by_disease_name.py +46 -0
- tooluniverse/tools/OpenAIRE_search_publications.py +55 -0
- tooluniverse/tools/OpenAlex_Guidelines_Search.py +63 -0
- tooluniverse/tools/OpenTargets_drug_pharmacogenomics_data.py +52 -0
- tooluniverse/tools/OpenTargets_get_approved_indications_by_drug_chemblId.py +49 -0
- tooluniverse/tools/OpenTargets_get_associated_diseases_by_drug_chemblId.py +49 -0
- tooluniverse/tools/OpenTargets_get_associated_drugs_by_disease_efoId.py +52 -0
- tooluniverse/tools/OpenTargets_get_associated_drugs_by_target_ensemblID.py +55 -0
- tooluniverse/tools/OpenTargets_get_associated_phenotypes_by_disease_efoId.py +49 -0
- tooluniverse/tools/OpenTargets_get_associated_targets_by_disease_efoId.py +49 -0
- tooluniverse/tools/OpenTargets_get_associated_targets_by_drug_chemblId.py +49 -0
- tooluniverse/tools/OpenTargets_get_biological_mouse_models_by_ensemblID.py +49 -0
- tooluniverse/tools/OpenTargets_get_chemical_probes_by_target_ensemblID.py +49 -0
- tooluniverse/tools/OpenTargets_get_disease_ancestors_parents_by_efoId.py +49 -0
- tooluniverse/tools/OpenTargets_get_disease_descendants_children_by_efoId.py +49 -0
- tooluniverse/tools/OpenTargets_get_disease_description_by_efoId.py +49 -0
- tooluniverse/tools/OpenTargets_get_disease_id_description_by_name.py +49 -0
- tooluniverse/tools/OpenTargets_get_disease_ids_by_efoId.py +46 -0
- tooluniverse/tools/OpenTargets_get_disease_ids_by_name.py +46 -0
- tooluniverse/tools/OpenTargets_get_disease_locations_by_efoId.py +49 -0
- tooluniverse/tools/OpenTargets_get_disease_synonyms_by_efoId.py +49 -0
- tooluniverse/tools/OpenTargets_get_disease_therapeutic_areas_by_efoId.py +49 -0
- tooluniverse/tools/OpenTargets_get_diseases_phenotypes_by_target_ensembl.py +49 -0
- tooluniverse/tools/OpenTargets_get_drug_adverse_events_by_chemblId.py +52 -0
- tooluniverse/tools/OpenTargets_get_drug_approval_status_by_chemblId.py +49 -0
- tooluniverse/tools/OpenTargets_get_drug_chembId_by_generic_name.py +49 -0
- tooluniverse/tools/OpenTargets_get_drug_description_by_chemblId.py +49 -0
- tooluniverse/tools/OpenTargets_get_drug_id_description_by_name.py +49 -0
- tooluniverse/tools/OpenTargets_get_drug_indications_by_chemblId.py +49 -0
- tooluniverse/tools/OpenTargets_get_drug_mechanisms_of_action_by_chemblId.py +49 -0
- tooluniverse/tools/OpenTargets_get_drug_synonyms_by_chemblId.py +49 -0
- tooluniverse/tools/OpenTargets_get_drug_trade_names_by_chemblId.py +49 -0
- tooluniverse/tools/OpenTargets_get_drug_warnings_by_chemblId.py +49 -0
- tooluniverse/tools/OpenTargets_get_drug_withdrawn_blackbox_status_by_chemblId.py +49 -0
- tooluniverse/tools/OpenTargets_get_gene_ontology_terms_by_goID.py +49 -0
- tooluniverse/tools/OpenTargets_get_known_drugs_by_drug_chemblId.py +49 -0
- tooluniverse/tools/OpenTargets_get_parent_child_molecules_by_drug_chembl_ID.py +49 -0
- tooluniverse/tools/OpenTargets_get_publications_by_disease_efoId.py +71 -0
- tooluniverse/tools/OpenTargets_get_publications_by_drug_chemblId.py +71 -0
- tooluniverse/tools/OpenTargets_get_publications_by_target_ensemblID.py +71 -0
- tooluniverse/tools/OpenTargets_get_similar_entities_by_disease_efoId.py +55 -0
- tooluniverse/tools/OpenTargets_get_similar_entities_by_drug_chemblId.py +55 -0
- tooluniverse/tools/OpenTargets_get_similar_entities_by_target_ensemblID.py +55 -0
- tooluniverse/tools/OpenTargets_get_target_classes_by_ensemblID.py +49 -0
- tooluniverse/tools/OpenTargets_get_target_constraint_info_by_ensemblID.py +49 -0
- tooluniverse/tools/OpenTargets_get_target_enabling_packages_by_ensemblID.py +49 -0
- tooluniverse/tools/OpenTargets_get_target_gene_ontology_by_ensemblID.py +49 -0
- tooluniverse/tools/OpenTargets_get_target_genomic_location_by_ensemblID.py +49 -0
- tooluniverse/tools/OpenTargets_get_target_homologues_by_ensemblID.py +49 -0
- tooluniverse/tools/OpenTargets_get_target_id_description_by_name.py +49 -0
- tooluniverse/tools/OpenTargets_get_target_interactions_by_ensemblID.py +52 -0
- tooluniverse/tools/OpenTargets_get_target_safety_profile_by_ensemblID.py +49 -0
- tooluniverse/tools/OpenTargets_get_target_subcellular_locations_by_ensemblID.py +49 -0
- tooluniverse/tools/OpenTargets_get_target_synonyms_by_ensemblID.py +49 -0
- tooluniverse/tools/OpenTargets_get_target_tractability_by_ensemblID.py +49 -0
- tooluniverse/tools/OpenTargets_map_any_disease_id_to_all_other_ids.py +49 -0
- tooluniverse/tools/OpenTargets_multi_entity_search_by_query_string.py +59 -0
- tooluniverse/tools/OpenTargets_search_category_counts_by_query_string.py +49 -0
- tooluniverse/tools/OpenTargets_target_disease_evidence.py +52 -0
- tooluniverse/tools/OutputSummarizationComposer.py +71 -0
- tooluniverse/tools/PMC_search_papers.py +67 -0
- tooluniverse/tools/ProtocolOptimizer.py +49 -0
- tooluniverse/tools/PubChem_get_CID_by_SMILES.py +46 -0
- tooluniverse/tools/PubChem_get_CID_by_compound_name.py +46 -0
- tooluniverse/tools/PubChem_get_associated_patents_by_CID.py +46 -0
- tooluniverse/tools/PubChem_get_compound_2D_image_by_CID.py +52 -0
- tooluniverse/tools/PubChem_get_compound_properties_by_CID.py +46 -0
- tooluniverse/tools/PubChem_get_compound_synonyms_by_CID.py +46 -0
- tooluniverse/tools/PubChem_get_compound_xrefs_by_CID.py +52 -0
- tooluniverse/tools/PubChem_search_compounds_by_similarity.py +52 -0
- tooluniverse/tools/PubChem_search_compounds_by_substructure.py +49 -0
- tooluniverse/tools/PubMed_Guidelines_Search.py +55 -0
- tooluniverse/tools/PubMed_search_articles.py +55 -0
- tooluniverse/tools/PubTator3_EntityAutocomplete.py +59 -0
- tooluniverse/tools/PubTator3_LiteratureSearch.py +55 -0
- tooluniverse/tools/QuestionRephraser.py +52 -0
- tooluniverse/tools/Reactome_get_pathway_reactions.py +46 -0
- tooluniverse/tools/ReproducibilityTransparencyReviewer.py +49 -0
- tooluniverse/tools/ResultsInterpretationReviewer.py +55 -0
- tooluniverse/tools/ScientificTextSummarizer.py +59 -0
- tooluniverse/tools/SemanticScholar_search_papers.py +55 -0
- tooluniverse/tools/TRIP_Database_Guidelines_Search.py +55 -0
- tooluniverse/tools/TestCaseGenerator.py +46 -0
- tooluniverse/tools/ToolCompatibilityAnalyzer.py +59 -0
- tooluniverse/tools/ToolDescriptionOptimizer.py +67 -0
- tooluniverse/tools/ToolDiscover.py +63 -0
- tooluniverse/tools/ToolGraphComposer.py +71 -0
- tooluniverse/tools/ToolGraphGenerationPipeline.py +63 -0
- tooluniverse/tools/ToolImplementationGenerator.py +67 -0
- tooluniverse/tools/ToolMetadataGenerationPipeline.py +63 -0
- tooluniverse/tools/ToolMetadataGenerator.py +55 -0
- tooluniverse/tools/ToolMetadataStandardizer.py +52 -0
- tooluniverse/tools/ToolOptimizer.py +59 -0
- tooluniverse/tools/ToolOutputSummarizer.py +67 -0
- tooluniverse/tools/ToolQualityEvaluator.py +59 -0
- tooluniverse/tools/ToolRelationshipDetector.py +52 -0
- tooluniverse/tools/ToolSpecificationGenerator.py +67 -0
- tooluniverse/tools/ToolSpecificationOptimizer.py +63 -0
- tooluniverse/tools/Tool_Finder.py +67 -0
- tooluniverse/tools/Tool_Finder_Keyword.py +67 -0
- tooluniverse/tools/Tool_Finder_LLM.py +67 -0
- tooluniverse/tools/Tool_RAG.py +49 -0
- tooluniverse/tools/UniProt_get_alternative_names_by_accession.py +49 -0
- tooluniverse/tools/UniProt_get_disease_variants_by_accession.py +49 -0
- tooluniverse/tools/UniProt_get_entry_by_accession.py +49 -0
- tooluniverse/tools/UniProt_get_function_by_accession.py +49 -0
- tooluniverse/tools/UniProt_get_isoform_ids_by_accession.py +49 -0
- tooluniverse/tools/UniProt_get_organism_by_accession.py +49 -0
- tooluniverse/tools/UniProt_get_ptm_processing_by_accession.py +49 -0
- tooluniverse/tools/UniProt_get_recommended_name_by_accession.py +49 -0
- tooluniverse/tools/UniProt_get_sequence_by_accession.py +49 -0
- tooluniverse/tools/UniProt_get_subcellular_location_by_accession.py +49 -0
- tooluniverse/tools/Unpaywall_check_oa_status.py +52 -0
- tooluniverse/tools/WHO_Guideline_Full_Text.py +46 -0
- tooluniverse/tools/WHO_Guidelines_Search.py +52 -0
- tooluniverse/tools/Wikidata_SPARQL_query.py +52 -0
- tooluniverse/tools/WritingPresentationReviewer.py +49 -0
- tooluniverse/tools/Zenodo_search_records.py +59 -0
- tooluniverse/tools/__init__.py +1738 -0
- tooluniverse/tools/_shared_client.py +138 -0
- tooluniverse/tools/alphafold_get_annotations.py +52 -0
- tooluniverse/tools/alphafold_get_prediction.py +55 -0
- tooluniverse/tools/alphafold_get_summary.py +46 -0
- tooluniverse/tools/call_agentic_human.py +46 -0
- tooluniverse/tools/cancer_biomarkers_disease_target_score.py +52 -0
- tooluniverse/tools/cancer_gene_census_disease_target_score.py +52 -0
- tooluniverse/tools/cellosaurus_get_cell_line_info.py +55 -0
- tooluniverse/tools/cellosaurus_query_converter.py +52 -0
- tooluniverse/tools/cellosaurus_search_cell_lines.py +55 -0
- tooluniverse/tools/chembl_disease_target_score.py +52 -0
- tooluniverse/tools/dict_search.py +67 -0
- tooluniverse/tools/dili_search.py +67 -0
- tooluniverse/tools/diqt_search.py +67 -0
- tooluniverse/tools/disease_target_score.py +59 -0
- tooluniverse/tools/drugbank_filter_drugs_by_name.py +55 -0
- tooluniverse/tools/drugbank_full_search.py +67 -0
- tooluniverse/tools/drugbank_get_drug_basic_info_by_drug_name_or_drugbank_id.py +63 -0
- tooluniverse/tools/drugbank_get_drug_chemistry_by_drug_name_or_drugbank_id.py +63 -0
- tooluniverse/tools/drugbank_get_drug_interactions_by_drug_name_or_drugbank_id.py +63 -0
- tooluniverse/tools/drugbank_get_drug_name_and_description_by_indication.py +63 -0
- tooluniverse/tools/drugbank_get_drug_name_and_description_by_pathway_name.py +63 -0
- tooluniverse/tools/drugbank_get_drug_name_and_description_by_target_name.py +63 -0
- tooluniverse/tools/drugbank_get_drug_name_description_pharmacology_by_mechanism_of_action.py +63 -0
- tooluniverse/tools/drugbank_get_drug_pathways_and_reactions_by_drug_name_or_drugbank_id.py +63 -0
- tooluniverse/tools/drugbank_get_drug_products_by_name_or_drugbank_id.py +63 -0
- tooluniverse/tools/drugbank_get_drug_references_by_drug_name_or_drugbank_id.py +63 -0
- tooluniverse/tools/drugbank_get_indications_by_drug_name_or_drugbank_id.py +63 -0
- tooluniverse/tools/drugbank_get_pharmacology_by_drug_name_or_drugbank_id.py +63 -0
- tooluniverse/tools/drugbank_get_safety_by_drug_name_or_drugbank_id.py +63 -0
- tooluniverse/tools/drugbank_get_targets_by_drug_name_or_drugbank_id.py +63 -0
- tooluniverse/tools/drugbank_links_search.py +67 -0
- tooluniverse/tools/drugbank_vocab_filter.py +63 -0
- tooluniverse/tools/drugbank_vocab_search.py +67 -0
- tooluniverse/tools/embedding_database_add.py +63 -0
- tooluniverse/tools/embedding_database_create.py +71 -0
- tooluniverse/tools/embedding_database_load.py +63 -0
- tooluniverse/tools/embedding_database_search.py +67 -0
- tooluniverse/tools/embedding_sync_download.py +63 -0
- tooluniverse/tools/embedding_sync_upload.py +71 -0
- tooluniverse/tools/enrichr_gene_enrichment_analysis.py +52 -0
- tooluniverse/tools/europepmc_disease_target_score.py +52 -0
- tooluniverse/tools/eva_disease_target_score.py +52 -0
- tooluniverse/tools/eva_somatic_disease_target_score.py +52 -0
- tooluniverse/tools/expression_atlas_disease_target_score.py +52 -0
- tooluniverse/tools/extract_clinical_trial_adverse_events.py +59 -0
- tooluniverse/tools/extract_clinical_trial_outcomes.py +52 -0
- tooluniverse/tools/genomics_england_disease_target_score.py +52 -0
- tooluniverse/tools/get_HPO_ID_by_phenotype.py +55 -0
- tooluniverse/tools/get_albumentations_info.py +44 -0
- tooluniverse/tools/get_altair_info.py +44 -0
- tooluniverse/tools/get_anndata_info.py +49 -0
- tooluniverse/tools/get_arboreto_info.py +46 -0
- tooluniverse/tools/get_arxiv_info.py +46 -0
- tooluniverse/tools/get_ase_info.py +46 -0
- tooluniverse/tools/get_assembly_info_by_pdb_id.py +46 -0
- tooluniverse/tools/get_assembly_summary.py +46 -0
- tooluniverse/tools/get_astropy_info.py +44 -0
- tooluniverse/tools/get_binding_affinity_by_pdb_id.py +46 -0
- tooluniverse/tools/get_biopandas_info.py +49 -0
- tooluniverse/tools/get_biopython_info.py +49 -0
- tooluniverse/tools/get_bioservices_info.py +44 -0
- tooluniverse/tools/get_biotite_info.py +49 -0
- tooluniverse/tools/get_bokeh_info.py +44 -0
- tooluniverse/tools/get_brian2_info.py +44 -0
- tooluniverse/tools/get_cartopy_info.py +44 -0
- tooluniverse/tools/get_catboost_info.py +44 -0
- tooluniverse/tools/get_cellpose_info.py +49 -0
- tooluniverse/tools/get_cellrank_info.py +44 -0
- tooluniverse/tools/get_cellxgene_census_info.py +46 -0
- tooluniverse/tools/get_cftime_info.py +44 -0
- tooluniverse/tools/get_chem_comp_audit_info.py +46 -0
- tooluniverse/tools/get_chem_comp_charge_and_ambiguity.py +46 -0
- tooluniverse/tools/get_chembl_webresource_client_info.py +44 -0
- tooluniverse/tools/get_citation_info_by_pdb_id.py +46 -0
- tooluniverse/tools/get_clair3_info.py +46 -0
- tooluniverse/tools/get_clinical_trial_conditions_and_interventions.py +55 -0
- tooluniverse/tools/get_clinical_trial_descriptions.py +52 -0
- tooluniverse/tools/get_clinical_trial_eligibility_criteria.py +55 -0
- tooluniverse/tools/get_clinical_trial_locations.py +52 -0
- tooluniverse/tools/get_clinical_trial_outcome_measures.py +52 -0
- tooluniverse/tools/get_clinical_trial_references.py +52 -0
- tooluniverse/tools/get_clinical_trial_status_and_dates.py +52 -0
- tooluniverse/tools/get_cobra_info.py +46 -0
- tooluniverse/tools/get_cobrapy_info.py +46 -0
- tooluniverse/tools/get_cooler_info.py +49 -0
- tooluniverse/tools/get_core_refinement_statistics.py +46 -0
- tooluniverse/tools/get_cryosparc_tools_info.py +46 -0
- tooluniverse/tools/get_crystal_growth_conditions_by_pdb_id.py +49 -0
- tooluniverse/tools/get_crystallization_ph_by_pdb_id.py +46 -0
- tooluniverse/tools/get_crystallographic_properties_by_pdb_id.py +49 -0
- tooluniverse/tools/get_cupy_info.py +44 -0
- tooluniverse/tools/get_cyvcf2_info.py +49 -0
- tooluniverse/tools/get_dask_info.py +44 -0
- tooluniverse/tools/get_datamol_info.py +44 -0
- tooluniverse/tools/get_datashader_info.py +44 -0
- tooluniverse/tools/get_deepchem_info.py +49 -0
- tooluniverse/tools/get_deeppurpose_info.py +46 -0
- tooluniverse/tools/get_deeptools_info.py +46 -0
- tooluniverse/tools/get_deepxde_info.py +49 -0
- tooluniverse/tools/get_dendropy_info.py +44 -0
- tooluniverse/tools/get_descriptastorus_info.py +46 -0
- tooluniverse/tools/get_diffdock_info.py +46 -0
- tooluniverse/tools/get_dscribe_info.py +49 -0
- tooluniverse/tools/get_ec_number_by_entity_id.py +46 -0
- tooluniverse/tools/get_elephant_info.py +44 -0
- tooluniverse/tools/get_em_3d_fitting_and_reconstruction_details.py +49 -0
- tooluniverse/tools/get_emdb_ids_by_pdb_id.py +46 -0
- tooluniverse/tools/get_episcanpy_info.py +44 -0
- tooluniverse/tools/get_ete3_info.py +44 -0
- tooluniverse/tools/get_faiss_info.py +46 -0
- tooluniverse/tools/get_fanc_info.py +46 -0
- tooluniverse/tools/get_flask_info.py +46 -0
- tooluniverse/tools/get_flowio_info.py +46 -0
- tooluniverse/tools/get_flowkit_info.py +46 -0
- tooluniverse/tools/get_flowutils_info.py +46 -0
- tooluniverse/tools/get_freesasa_info.py +44 -0
- tooluniverse/tools/get_galpy_info.py +44 -0
- tooluniverse/tools/get_gene_name_by_entity_id.py +46 -0
- tooluniverse/tools/get_geopandas_info.py +44 -0
- tooluniverse/tools/get_gget_info.py +46 -0
- tooluniverse/tools/get_googlesearch_python_info.py +46 -0
- tooluniverse/tools/get_gseapy_info.py +49 -0
- tooluniverse/tools/get_h5py_info.py +46 -0
- tooluniverse/tools/get_harmony_pytorch_info.py +46 -0
- tooluniverse/tools/get_hmmlearn_info.py +46 -0
- tooluniverse/tools/get_holoviews_info.py +44 -0
- tooluniverse/tools/get_host_organism_by_pdb_id.py +46 -0
- tooluniverse/tools/get_htmd_info.py +44 -0
- tooluniverse/tools/get_hyperopt_info.py +49 -0
- tooluniverse/tools/get_igraph_info.py +49 -0
- tooluniverse/tools/get_imageio_info.py +44 -0
- tooluniverse/tools/get_imbalanced_learn_info.py +44 -0
- tooluniverse/tools/get_jcvi_info.py +46 -0
- tooluniverse/tools/get_joblib_info.py +44 -0
- tooluniverse/tools/get_joint_associated_diseases_by_HPO_ID_list.py +55 -0
- tooluniverse/tools/get_khmer_info.py +46 -0
- tooluniverse/tools/get_kipoiseq_info.py +44 -0
- tooluniverse/tools/get_lifelines_info.py +49 -0
- tooluniverse/tools/get_ligand_bond_count_by_pdb_id.py +46 -0
- tooluniverse/tools/get_ligand_smiles_by_chem_comp_id.py +49 -0
- tooluniverse/tools/get_lightgbm_info.py +44 -0
- tooluniverse/tools/get_loompy_info.py +46 -0
- tooluniverse/tools/get_mageck_info.py +46 -0
- tooluniverse/tools/get_matplotlib_info.py +49 -0
- tooluniverse/tools/get_mdanalysis_info.py +46 -0
- tooluniverse/tools/get_mdtraj_info.py +44 -0
- tooluniverse/tools/get_mne_info.py +44 -0
- tooluniverse/tools/get_molfeat_info.py +44 -0
- tooluniverse/tools/get_molvs_info.py +44 -0
- tooluniverse/tools/get_mordred_info.py +44 -0
- tooluniverse/tools/get_msprime_info.py +49 -0
- tooluniverse/tools/get_mudata_info.py +49 -0
- tooluniverse/tools/get_mutation_annotations_by_pdb_id.py +46 -0
- tooluniverse/tools/get_neo_info.py +44 -0
- tooluniverse/tools/get_netcdf4_info.py +44 -0
- tooluniverse/tools/get_networkx_info.py +46 -0
- tooluniverse/tools/get_nglview_info.py +44 -0
- tooluniverse/tools/get_nilearn_info.py +44 -0
- tooluniverse/tools/get_numba_info.py +46 -0
- tooluniverse/tools/get_numpy_info.py +46 -0
- tooluniverse/tools/get_oligosaccharide_descriptors_by_entity_id.py +49 -0
- tooluniverse/tools/get_openbabel_info.py +49 -0
- tooluniverse/tools/get_openchem_info.py +46 -0
- tooluniverse/tools/get_opencv_info.py +49 -0
- tooluniverse/tools/get_openmm_info.py +49 -0
- tooluniverse/tools/get_optlang_info.py +46 -0
- tooluniverse/tools/get_optuna_info.py +44 -0
- tooluniverse/tools/get_palantir_info.py +44 -0
- tooluniverse/tools/get_pandas_info.py +49 -0
- tooluniverse/tools/get_patsy_info.py +44 -0
- tooluniverse/tools/get_pdbfixer_info.py +46 -0
- tooluniverse/tools/get_phenotype_by_HPO_ID.py +46 -0
- tooluniverse/tools/get_pillow_info.py +44 -0
- tooluniverse/tools/get_plantcv_info.py +46 -0
- tooluniverse/tools/get_plip_info.py +46 -0
- tooluniverse/tools/get_plotly_info.py +44 -0
- tooluniverse/tools/get_poliastro_info.py +46 -0
- tooluniverse/tools/get_polymer_entity_annotations.py +49 -0
- tooluniverse/tools/get_polymer_entity_count_by_pdb_id.py +46 -0
- tooluniverse/tools/get_polymer_entity_ids_by_pdb_id.py +46 -0
- tooluniverse/tools/get_polymer_entity_type_by_entity_id.py +49 -0
- tooluniverse/tools/get_polymer_molecular_weight_by_entity_id.py +49 -0
- tooluniverse/tools/get_poretools_info.py +44 -0
- tooluniverse/tools/get_prody_info.py +46 -0
- tooluniverse/tools/get_protein_classification_by_pdb_id.py +49 -0
- tooluniverse/tools/get_protein_metadata_by_pdb_id.py +46 -0
- tooluniverse/tools/get_pubchempy_info.py +44 -0
- tooluniverse/tools/get_pybedtools_info.py +49 -0
- tooluniverse/tools/get_pybigwig_info.py +46 -0
- tooluniverse/tools/get_pydeseq2_info.py +46 -0
- tooluniverse/tools/get_pyensembl_info.py +44 -0
- tooluniverse/tools/get_pyephem_info.py +44 -0
- tooluniverse/tools/get_pyfaidx_info.py +49 -0
- tooluniverse/tools/get_pyfasta_info.py +44 -0
- tooluniverse/tools/get_pykalman_info.py +46 -0
- tooluniverse/tools/get_pyliftover_info.py +49 -0
- tooluniverse/tools/get_pymassspec_info.py +46 -0
- tooluniverse/tools/get_pymed_info.py +46 -0
- tooluniverse/tools/get_pymzml_info.py +46 -0
- tooluniverse/tools/get_pypdf2_info.py +46 -0
- tooluniverse/tools/get_pyranges_info.py +49 -0
- tooluniverse/tools/get_pyrosetta_info.py +44 -0
- tooluniverse/tools/get_pysam_info.py +46 -0
- tooluniverse/tools/get_pyscenic_info.py +46 -0
- tooluniverse/tools/get_pyscf_info.py +46 -0
- tooluniverse/tools/get_pyscreener_info.py +46 -0
- tooluniverse/tools/get_pytdc_info.py +46 -0
- tooluniverse/tools/get_python_libsbml_info.py +46 -0
- tooluniverse/tools/get_pytorch_info.py +49 -0
- tooluniverse/tools/get_pyvcf_info.py +44 -0
- tooluniverse/tools/get_pyvis_info.py +44 -0
- tooluniverse/tools/get_qutip_info.py +44 -0
- tooluniverse/tools/get_rasterio_info.py +44 -0
- tooluniverse/tools/get_rdkit_info.py +46 -0
- tooluniverse/tools/get_refinement_resolution_by_pdb_id.py +49 -0
- tooluniverse/tools/get_release_deposit_dates_by_pdb_id.py +49 -0
- tooluniverse/tools/get_reportlab_info.py +49 -0
- tooluniverse/tools/get_requests_info.py +49 -0
- tooluniverse/tools/get_ruptures_info.py +46 -0
- tooluniverse/tools/get_scanorama_info.py +44 -0
- tooluniverse/tools/get_scanpy_info.py +49 -0
- tooluniverse/tools/get_schnetpack_info.py +49 -0
- tooluniverse/tools/get_scholarly_info.py +46 -0
- tooluniverse/tools/get_scikit_bio_info.py +49 -0
- tooluniverse/tools/get_scikit_image_info.py +46 -0
- tooluniverse/tools/get_scikit_learn_info.py +49 -0
- tooluniverse/tools/get_scipy_info.py +46 -0
- tooluniverse/tools/get_scrublet_info.py +49 -0
- tooluniverse/tools/get_scvelo_info.py +49 -0
- tooluniverse/tools/get_scvi_tools_info.py +44 -0
- tooluniverse/tools/get_seaborn_info.py +49 -0
- tooluniverse/tools/get_sequence_by_pdb_id.py +46 -0
- tooluniverse/tools/get_sequence_lengths_by_pdb_id.py +46 -0
- tooluniverse/tools/get_sequence_positional_features_by_instance_id.py +49 -0
- tooluniverse/tools/get_skopt_info.py +44 -0
- tooluniverse/tools/get_souporcell_info.py +46 -0
- tooluniverse/tools/get_source_organism_by_pdb_id.py +46 -0
- tooluniverse/tools/get_space_group_by_pdb_id.py +46 -0
- tooluniverse/tools/get_statsmodels_info.py +49 -0
- tooluniverse/tools/get_structure_determination_software_by_pdb_id.py +49 -0
- tooluniverse/tools/get_structure_title_by_pdb_id.py +46 -0
- tooluniverse/tools/get_structure_validation_metrics_by_pdb_id.py +49 -0
- tooluniverse/tools/get_sunpy_info.py +44 -0
- tooluniverse/tools/get_sympy_info.py +46 -0
- tooluniverse/tools/get_target_cofactor_info.py +46 -0
- tooluniverse/tools/get_taxonomy_by_pdb_id.py +46 -0
- tooluniverse/tools/get_tiledb_info.py +46 -0
- tooluniverse/tools/get_tiledbsoma_info.py +46 -0
- tooluniverse/tools/get_torch_geometric_info.py +49 -0
- tooluniverse/tools/get_tqdm_info.py +46 -0
- tooluniverse/tools/get_trackpy_info.py +46 -0
- tooluniverse/tools/get_tskit_info.py +46 -0
- tooluniverse/tools/get_umap_learn_info.py +49 -0
- tooluniverse/tools/get_uniprot_accession_by_entity_id.py +49 -0
- tooluniverse/tools/get_velocyto_info.py +44 -0
- tooluniverse/tools/get_viennarna_info.py +49 -0
- tooluniverse/tools/get_webpage_text_from_url.py +52 -0
- tooluniverse/tools/get_webpage_title.py +49 -0
- tooluniverse/tools/get_xarray_info.py +44 -0
- tooluniverse/tools/get_xesmf_info.py +44 -0
- tooluniverse/tools/get_xgboost_info.py +44 -0
- tooluniverse/tools/get_zarr_info.py +44 -0
- tooluniverse/tools/gwas_get_association_by_id.py +49 -0
- tooluniverse/tools/gwas_get_associations_for_snp.py +67 -0
- tooluniverse/tools/gwas_get_associations_for_study.py +55 -0
- tooluniverse/tools/gwas_get_associations_for_trait.py +55 -0
- tooluniverse/tools/gwas_get_snp_by_id.py +46 -0
- tooluniverse/tools/gwas_get_snps_for_gene.py +55 -0
- tooluniverse/tools/gwas_get_studies_for_trait.py +75 -0
- tooluniverse/tools/gwas_get_study_by_id.py +46 -0
- tooluniverse/tools/gwas_get_variants_for_trait.py +55 -0
- tooluniverse/tools/gwas_search_associations.py +75 -0
- tooluniverse/tools/gwas_search_snps.py +63 -0
- tooluniverse/tools/gwas_search_studies.py +75 -0
- tooluniverse/tools/humanbase_ppi_analysis.py +67 -0
- tooluniverse/tools/mesh_get_subjects_by_pharmacological_action.py +63 -0
- tooluniverse/tools/mesh_get_subjects_by_subject_id.py +63 -0
- tooluniverse/tools/mesh_get_subjects_by_subject_name.py +63 -0
- tooluniverse/tools/mesh_get_subjects_by_subject_scope_or_definition.py +63 -0
- tooluniverse/tools/odphp_itemlist.py +49 -0
- tooluniverse/tools/odphp_myhealthfinder.py +67 -0
- tooluniverse/tools/odphp_outlink_fetch.py +59 -0
- tooluniverse/tools/odphp_topicsearch.py +67 -0
- tooluniverse/tools/openalex_literature_search.py +67 -0
- tooluniverse/tools/reactome_disease_target_score.py +52 -0
- tooluniverse/tools/search_clinical_trials.py +67 -0
- tooluniverse/tools/visualize_molecule_2d.py +83 -0
- tooluniverse/tools/visualize_molecule_3d.py +91 -0
- tooluniverse/tools/visualize_protein_structure_3d.py +79 -0
- tooluniverse/unified_guideline_tools.py +1210 -0
- tooluniverse/unpaywall_tool.py +0 -1
- tooluniverse/utils.py +71 -2
- tooluniverse/visualization_tool.py +897 -0
- tooluniverse/wikidata_sparql_tool.py +1 -2
- tooluniverse/zenodo_tool.py +1 -3
- {tooluniverse-1.0.6.dist-info → tooluniverse-1.0.7.dist-info}/METADATA +11 -2
- tooluniverse-1.0.7.dist-info/RECORD +855 -0
- {tooluniverse-1.0.6.dist-info → tooluniverse-1.0.7.dist-info}/entry_points.txt +3 -0
- tooluniverse/test/list_azure_openai_models.py +0 -210
- tooluniverse/test/mcp_server_test.py +0 -0
- tooluniverse/test/test_admetai_tool.py +0 -370
- tooluniverse/test/test_agentic_tool.py +0 -129
- tooluniverse/test/test_agentic_tool_azure_models.py +0 -91
- tooluniverse/test/test_alphafold_tool.py +0 -108
- tooluniverse/test/test_api_key_validation_min.py +0 -64
- tooluniverse/test/test_chem_tool.py +0 -37
- tooluniverse/test/test_claude_sdk.py +0 -93
- tooluniverse/test/test_compose_lieraturereview.py +0 -63
- tooluniverse/test/test_compose_tool.py +0 -448
- tooluniverse/test/test_dailymed.py +0 -69
- tooluniverse/test/test_dataset_tool.py +0 -200
- tooluniverse/test/test_disease_target_score.py +0 -56
- tooluniverse/test/test_drugbank_filter_examples.py +0 -179
- tooluniverse/test/test_efo.py +0 -31
- tooluniverse/test/test_enrichr_tool.py +0 -21
- tooluniverse/test/test_europe_pmc_tool.py +0 -20
- tooluniverse/test/test_fda_adv.py +0 -95
- tooluniverse/test/test_fda_drug_labeling.py +0 -91
- tooluniverse/test/test_gene_ontology_tools.py +0 -66
- tooluniverse/test/test_global_fallback.py +0 -288
- tooluniverse/test/test_gwas_tool.py +0 -139
- tooluniverse/test/test_hooks_direct.py +0 -219
- tooluniverse/test/test_hpa.py +0 -625
- tooluniverse/test/test_humanbase_tool.py +0 -20
- tooluniverse/test/test_idmap_tools.py +0 -61
- tooluniverse/test/test_list_built_in_tools.py +0 -33
- tooluniverse/test/test_mcp_server.py +0 -211
- tooluniverse/test/test_mcp_tool.py +0 -247
- tooluniverse/test/test_medlineplus.py +0 -220
- tooluniverse/test/test_odphp_tool.py +0 -166
- tooluniverse/test/test_openalex_tool.py +0 -32
- tooluniverse/test/test_openrouter_client.py +0 -288
- tooluniverse/test/test_opentargets.py +0 -28
- tooluniverse/test/test_pubchem_tool.py +0 -116
- tooluniverse/test/test_pubtator_tool.py +0 -37
- tooluniverse/test/test_rcsb_pdb_tool.py +0 -86
- tooluniverse/test/test_reactome.py +0 -54
- tooluniverse/test/test_semantic_scholar_tool.py +0 -24
- tooluniverse/test/test_software_tools.py +0 -147
- tooluniverse/test/test_stdio_hooks.py +0 -285
- tooluniverse/test/test_tool_description_optimizer.py +0 -49
- tooluniverse/test/test_tool_finder.py +0 -26
- tooluniverse/test/test_tool_finder_llm.py +0 -252
- tooluniverse/test/test_tools_find.py +0 -195
- tooluniverse/test/test_uniprot_tools.py +0 -74
- tooluniverse/test/test_uspto_tool.py +0 -72
- tooluniverse/test/test_xml_tool.py +0 -113
- tooluniverse-1.0.6.dist-info/RECORD +0 -230
- {tooluniverse-1.0.6.dist-info → tooluniverse-1.0.7.dist-info}/WHEEL +0 -0
- {tooluniverse-1.0.6.dist-info → tooluniverse-1.0.7.dist-info}/licenses/LICENSE +0 -0
- {tooluniverse-1.0.6.dist-info → tooluniverse-1.0.7.dist-info}/top_level.txt +0 -0
|
@@ -1,448 +0,0 @@
|
|
|
1
|
-
"""
|
|
2
|
-
ComposeTool Test File
|
|
3
|
-
|
|
4
|
-
This file tests the core functionality of ComposeTool:
|
|
5
|
-
1. Basic ComposeTool creation and execution
|
|
6
|
-
2. ComposeTool nested calling (one ComposeTool calling another ComposeTool)
|
|
7
|
-
3. Simple mathematical operations
|
|
8
|
-
|
|
9
|
-
ComposeTool is a composable tool that supports:
|
|
10
|
-
- Inline code definition (write Python code directly in JSON configuration)
|
|
11
|
-
- External file definition (define complex logic through Python files)
|
|
12
|
-
- Nested calling between tools (using call_tool function)
|
|
13
|
-
|
|
14
|
-
Usage:
|
|
15
|
-
1. Run the entire test: python test_compose_tool.py
|
|
16
|
-
2. View test results to confirm all functionality works properly
|
|
17
|
-
"""
|
|
18
|
-
|
|
19
|
-
import sys
|
|
20
|
-
import os
|
|
21
|
-
import json
|
|
22
|
-
|
|
23
|
-
# Add src directory to Python path to import tooluniverse modules
|
|
24
|
-
sys.path.insert(0, os.path.join(os.path.dirname(__file__), "src"))
|
|
25
|
-
|
|
26
|
-
from tooluniverse.execute_function import ToolUniverse # noqa: E402
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
def test_nested_calls():
|
|
30
|
-
"""
|
|
31
|
-
Test ComposeTool nested calling functionality
|
|
32
|
-
|
|
33
|
-
This test creates two ComposeTool instances:
|
|
34
|
-
1. TextTool: receives text, returns uppercase text and length
|
|
35
|
-
2. CallerTool: calls TextTool to process text, then wraps the result
|
|
36
|
-
|
|
37
|
-
Key verification points:
|
|
38
|
-
- ComposeTool can call other ComposeTool instances
|
|
39
|
-
- Correct usage of call_tool function
|
|
40
|
-
- Parameter passing and result return in nested calls
|
|
41
|
-
"""
|
|
42
|
-
print("Testing ComposeTool nested calling functionality")
|
|
43
|
-
print("=" * 40)
|
|
44
|
-
|
|
45
|
-
# Create a simple text processing tool
|
|
46
|
-
# This tool receives text and returns uppercase version and length
|
|
47
|
-
text_tool = {
|
|
48
|
-
"type": "ComposeTool",
|
|
49
|
-
"name": "TextTool",
|
|
50
|
-
"description": "Simple text processing tool",
|
|
51
|
-
"parameter": {
|
|
52
|
-
"type": "object",
|
|
53
|
-
"properties": {"text": {"type": "string", "description": "Input text"}},
|
|
54
|
-
"required": ["text"],
|
|
55
|
-
},
|
|
56
|
-
"composition_code": [
|
|
57
|
-
"# Get text from arguments",
|
|
58
|
-
"text = arguments['text']",
|
|
59
|
-
"# Return processing result: uppercase text and length",
|
|
60
|
-
"result = {'processed': text.upper(), 'length': len(text)}",
|
|
61
|
-
],
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
# Create a caller tool that calls the above TextTool
|
|
65
|
-
# This demonstrates the nested calling capability of ComposeTool
|
|
66
|
-
caller_tool = {
|
|
67
|
-
"type": "ComposeTool",
|
|
68
|
-
"name": "CallerTool",
|
|
69
|
-
"description": "Composite tool that calls text tool",
|
|
70
|
-
"parameter": {
|
|
71
|
-
"type": "object",
|
|
72
|
-
"properties": {"input": {"type": "string", "description": "Input text"}},
|
|
73
|
-
"required": ["input"],
|
|
74
|
-
},
|
|
75
|
-
"composition_code": [
|
|
76
|
-
"# Get input text",
|
|
77
|
-
"input_text = arguments['input']",
|
|
78
|
-
"# Use call_tool function to call TextTool",
|
|
79
|
-
"# call_tool(tool_name, arguments_dict) is the standard way to call other tools in ComposeTool",
|
|
80
|
-
"text_result = call_tool('TextTool', {'text': input_text})",
|
|
81
|
-
"# Wrap result, including original input and processing result",
|
|
82
|
-
"result = {'original': input_text, 'processed_result': text_result}",
|
|
83
|
-
],
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
# Initialize ToolUniverse engine
|
|
87
|
-
engine = ToolUniverse()
|
|
88
|
-
|
|
89
|
-
# Register tools to engine
|
|
90
|
-
# Need to add to both all_tools list and all_tool_dict dictionary
|
|
91
|
-
engine.all_tools.extend([text_tool, caller_tool])
|
|
92
|
-
engine.all_tool_dict["TextTool"] = text_tool
|
|
93
|
-
engine.all_tool_dict["CallerTool"] = caller_tool
|
|
94
|
-
|
|
95
|
-
# Run test: call CallerTool, which will internally call TextTool
|
|
96
|
-
result = engine.run_one_function(
|
|
97
|
-
{"name": "CallerTool", "arguments": {"input": "hello world"}}
|
|
98
|
-
)
|
|
99
|
-
|
|
100
|
-
print("Nested calling result:")
|
|
101
|
-
print(json.dumps(result, indent=2, ensure_ascii=False))
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
def test_simple_math():
|
|
105
|
-
"""
|
|
106
|
-
Test ComposeTool's mathematical operations functionality
|
|
107
|
-
|
|
108
|
-
This test creates a math tool that supports:
|
|
109
|
-
1. Array summation
|
|
110
|
-
2. Array element multiplication
|
|
111
|
-
3. Default handling for unknown operations
|
|
112
|
-
|
|
113
|
-
Key verification points:
|
|
114
|
-
- Conditional logic processing in ComposeTool
|
|
115
|
-
- Array data processing
|
|
116
|
-
- Support for multiple operation types
|
|
117
|
-
"""
|
|
118
|
-
print("\nTesting simple mathematical operations functionality")
|
|
119
|
-
print("=" * 40)
|
|
120
|
-
|
|
121
|
-
# Create a mathematical operations tool
|
|
122
|
-
# Supports sum or multiply operations on number arrays
|
|
123
|
-
math_tool = {
|
|
124
|
-
"type": "ComposeTool",
|
|
125
|
-
"name": "MathTool",
|
|
126
|
-
"description": "Simple mathematical operations tool",
|
|
127
|
-
"parameter": {
|
|
128
|
-
"type": "object",
|
|
129
|
-
"properties": {
|
|
130
|
-
"numbers": {"type": "array", "description": "Array of numbers"},
|
|
131
|
-
"op": {
|
|
132
|
-
"type": "string",
|
|
133
|
-
"description": "Operation type: sum (addition) or multiply (multiplication)",
|
|
134
|
-
},
|
|
135
|
-
},
|
|
136
|
-
"required": ["numbers", "op"],
|
|
137
|
-
},
|
|
138
|
-
"composition_code": [
|
|
139
|
-
"# Get number array and operation type from arguments",
|
|
140
|
-
"numbers = arguments['numbers']",
|
|
141
|
-
"op = arguments['op']",
|
|
142
|
-
"",
|
|
143
|
-
"# Execute different calculations based on operation type",
|
|
144
|
-
"if op == 'sum':",
|
|
145
|
-
" # Sum operation",
|
|
146
|
-
" result = {'result': sum(numbers), 'operation': 'sum'}",
|
|
147
|
-
"elif op == 'multiply':",
|
|
148
|
-
" # Multiply operation: start with 1, multiply sequentially",
|
|
149
|
-
" result = {'result': 1}",
|
|
150
|
-
" for n in numbers:",
|
|
151
|
-
" result['result'] *= n",
|
|
152
|
-
" result['operation'] = 'multiply'",
|
|
153
|
-
"else:",
|
|
154
|
-
" # Default handling for unknown operations",
|
|
155
|
-
" result = {'result': 0, 'operation': 'unknown'}",
|
|
156
|
-
],
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
# Initialize engine and register math tool
|
|
160
|
-
engine = ToolUniverse()
|
|
161
|
-
engine.all_tools.append(math_tool)
|
|
162
|
-
engine.all_tool_dict["MathTool"] = math_tool
|
|
163
|
-
|
|
164
|
-
# Test sum functionality
|
|
165
|
-
print("Testing sum operation:")
|
|
166
|
-
result = engine.run_one_function(
|
|
167
|
-
{"name": "MathTool", "arguments": {"numbers": [1, 2, 3, 4], "op": "sum"}}
|
|
168
|
-
)
|
|
169
|
-
print(" Input: [1, 2, 3, 4], Operation: sum")
|
|
170
|
-
print(f" Result: {result}")
|
|
171
|
-
|
|
172
|
-
# Test multiply functionality
|
|
173
|
-
print("\nTesting multiply operation:")
|
|
174
|
-
result = engine.run_one_function(
|
|
175
|
-
{"name": "MathTool", "arguments": {"numbers": [2, 3, 4], "op": "multiply"}}
|
|
176
|
-
)
|
|
177
|
-
print(" Input: [2, 3, 4], Operation: multiply")
|
|
178
|
-
print(f" Result: {result}")
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
def test_config_file_tools():
|
|
182
|
-
"""
|
|
183
|
-
Test ComposeTool loaded from configuration files
|
|
184
|
-
|
|
185
|
-
This test verifies:
|
|
186
|
-
1. Loading ComposeTool from JSON configuration files
|
|
187
|
-
2. Configuration file defined tools can run normally
|
|
188
|
-
3. Demonstrate how to use predefined composite tools
|
|
189
|
-
|
|
190
|
-
Configuration file location: src/tooluniverse/data/compose_tools.json
|
|
191
|
-
"""
|
|
192
|
-
print("\nTesting ComposeTool from configuration files")
|
|
193
|
-
print("=" * 40)
|
|
194
|
-
|
|
195
|
-
# Initialize ToolUniverse engine
|
|
196
|
-
engine = ToolUniverse()
|
|
197
|
-
|
|
198
|
-
# Load compose type tools from configuration files
|
|
199
|
-
# This automatically loads tools defined in src/tooluniverse/data/compose_tools.json
|
|
200
|
-
engine.load_tools(tool_type=["compose"])
|
|
201
|
-
|
|
202
|
-
# Test DrugSafetyAnalyzer tool from configuration file
|
|
203
|
-
print("Running DrugSafetyAnalyzer tool from configuration file:")
|
|
204
|
-
try:
|
|
205
|
-
result = engine.run_one_function(
|
|
206
|
-
{
|
|
207
|
-
"name": "DrugSafetyAnalyzer",
|
|
208
|
-
"arguments": {"drug_name": "aspirin", "serious_events_only": False},
|
|
209
|
-
}
|
|
210
|
-
)
|
|
211
|
-
|
|
212
|
-
print("DrugSafetyAnalyzer tool result:")
|
|
213
|
-
print(json.dumps(result, indent=2, ensure_ascii=False))
|
|
214
|
-
except Exception as e:
|
|
215
|
-
print(f"DrugSafetyAnalyzer test failed: {e}")
|
|
216
|
-
print("This is expected if the required atomic tools are not loaded.")
|
|
217
|
-
|
|
218
|
-
print(f"\nTotal tools loaded: {len(engine.callable_functions)}")
|
|
219
|
-
compose_tools = [
|
|
220
|
-
name
|
|
221
|
-
for name in engine.callable_functions.keys()
|
|
222
|
-
if any(
|
|
223
|
-
tool.get("name") == name and tool.get("type") == "ComposeTool"
|
|
224
|
-
for tool in engine.all_tools
|
|
225
|
-
)
|
|
226
|
-
]
|
|
227
|
-
print(f"ComposeTool instances: {compose_tools}")
|
|
228
|
-
|
|
229
|
-
# Check available composite tools and test them
|
|
230
|
-
print(f"\nTotal tools loaded: {len(engine.all_tools)}")
|
|
231
|
-
compose_tools = [
|
|
232
|
-
name
|
|
233
|
-
for name in engine.callable_functions.keys()
|
|
234
|
-
if any(
|
|
235
|
-
tool.get("name") == name and tool.get("type") == "ComposeTool"
|
|
236
|
-
for tool in engine.all_tools
|
|
237
|
-
)
|
|
238
|
-
]
|
|
239
|
-
print(f"ComposeTool instances available: {compose_tools}")
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
def test_external_file_tools():
|
|
243
|
-
"""
|
|
244
|
-
Test additional ComposeTool functionality
|
|
245
|
-
|
|
246
|
-
This test verifies:
|
|
247
|
-
1. Additional composite tools from configuration
|
|
248
|
-
2. Testing ProteinFunctionAnalyzer and LiteratureMetaAnalyzer
|
|
249
|
-
3. Demonstrate complex biomedical analysis workflows
|
|
250
|
-
"""
|
|
251
|
-
print("\nTesting additional composite tools")
|
|
252
|
-
print("=" * 40)
|
|
253
|
-
|
|
254
|
-
# Initialize ToolUniverse engine
|
|
255
|
-
engine = ToolUniverse()
|
|
256
|
-
|
|
257
|
-
# Load compose type tools from configuration files
|
|
258
|
-
engine.load_tools(tool_type=["compose"])
|
|
259
|
-
|
|
260
|
-
# Only test tools that are actually loaded
|
|
261
|
-
compose_tools = [
|
|
262
|
-
tool for tool in engine.all_tools if tool.get("type") == "ComposeTool"
|
|
263
|
-
]
|
|
264
|
-
print(f"Found {len(compose_tools)} composite tools:")
|
|
265
|
-
for tool in compose_tools:
|
|
266
|
-
print(f" - {tool['name']}: {tool['description']}")
|
|
267
|
-
|
|
268
|
-
# Test each available composite tool
|
|
269
|
-
for tool in compose_tools:
|
|
270
|
-
tool_name = tool["name"]
|
|
271
|
-
if tool_name in [
|
|
272
|
-
"DrugSafetyAnalyzer",
|
|
273
|
-
"SimpleExample",
|
|
274
|
-
"TestDependencyLoading",
|
|
275
|
-
]:
|
|
276
|
-
# Skip these as they are tested in other functions
|
|
277
|
-
continue
|
|
278
|
-
|
|
279
|
-
print(f"\nTesting {tool_name}:")
|
|
280
|
-
try:
|
|
281
|
-
# Create generic test arguments based on tool requirements
|
|
282
|
-
test_args = {}
|
|
283
|
-
if "parameter" in tool and "properties" in tool["parameter"]:
|
|
284
|
-
for param_name, param_info in tool["parameter"]["properties"].items():
|
|
285
|
-
if param_info["type"] == "string":
|
|
286
|
-
test_args[param_name] = "test_input"
|
|
287
|
-
elif param_info["type"] == "number":
|
|
288
|
-
test_args[param_name] = 1
|
|
289
|
-
elif param_info["type"] == "boolean":
|
|
290
|
-
test_args[param_name] = True
|
|
291
|
-
# Add other types as needed
|
|
292
|
-
|
|
293
|
-
result = engine.run_one_function(
|
|
294
|
-
{"name": tool_name, "arguments": test_args}
|
|
295
|
-
)
|
|
296
|
-
print(f"{tool_name} result:")
|
|
297
|
-
print(json.dumps(result, indent=2, ensure_ascii=False))
|
|
298
|
-
except Exception as e:
|
|
299
|
-
print(f"{tool_name} test failed: {e}")
|
|
300
|
-
print("This is expected if the required atomic tools are not loaded.")
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
def test_dependency_auto_loading():
|
|
304
|
-
"""
|
|
305
|
-
Test ComposeTool automatic dependency loading functionality
|
|
306
|
-
|
|
307
|
-
This test verifies:
|
|
308
|
-
1. Automatic detection of tool dependencies
|
|
309
|
-
2. Auto-loading of missing tool categories
|
|
310
|
-
3. Error handling for unavailable tools
|
|
311
|
-
4. Configuration options for dependency behavior
|
|
312
|
-
"""
|
|
313
|
-
print("\nTesting automatic dependency loading functionality")
|
|
314
|
-
print("=" * 40)
|
|
315
|
-
|
|
316
|
-
# Create a ComposeTool that depends on external tools
|
|
317
|
-
dependent_tool = {
|
|
318
|
-
"type": "ComposeTool",
|
|
319
|
-
"name": "DependentTool",
|
|
320
|
-
"description": "Tool that depends on external tools",
|
|
321
|
-
"parameter": {
|
|
322
|
-
"type": "object",
|
|
323
|
-
"properties": {"query": {"type": "string", "description": "Search query"}},
|
|
324
|
-
"required": ["query"],
|
|
325
|
-
},
|
|
326
|
-
"auto_load_dependencies": True,
|
|
327
|
-
"fail_on_missing_tools": False,
|
|
328
|
-
"required_tools": ["EuropePMC_search_articles"],
|
|
329
|
-
"composition_code": [
|
|
330
|
-
"# This tool tries to call EuropePMC tool",
|
|
331
|
-
"query = arguments['query']",
|
|
332
|
-
"",
|
|
333
|
-
"print(f'Testing with query: {query}')",
|
|
334
|
-
"",
|
|
335
|
-
"# Try to call external tool",
|
|
336
|
-
"literature_result = call_tool('EuropePMC_search_articles', {",
|
|
337
|
-
" 'query': query,",
|
|
338
|
-
" 'limit': 3",
|
|
339
|
-
"})",
|
|
340
|
-
"",
|
|
341
|
-
"result = {",
|
|
342
|
-
" 'query': query,",
|
|
343
|
-
" 'literature_result': literature_result,",
|
|
344
|
-
" 'success': True,",
|
|
345
|
-
" 'message': 'Dependency test completed'",
|
|
346
|
-
"}",
|
|
347
|
-
"",
|
|
348
|
-
"print(f'Dependency test completed for query: {query}')",
|
|
349
|
-
],
|
|
350
|
-
}
|
|
351
|
-
|
|
352
|
-
# Initialize engine without loading external tools initially
|
|
353
|
-
engine = ToolUniverse()
|
|
354
|
-
engine.all_tools.append(dependent_tool)
|
|
355
|
-
engine.all_tool_dict["DependentTool"] = dependent_tool
|
|
356
|
-
|
|
357
|
-
# Test the tool - it should attempt to auto-load dependencies
|
|
358
|
-
print("Testing tool with auto-loading enabled:")
|
|
359
|
-
result = engine.run_one_function(
|
|
360
|
-
{"name": "DependentTool", "arguments": {"query": "artificial intelligence"}}
|
|
361
|
-
)
|
|
362
|
-
|
|
363
|
-
print("Dependency auto-loading test result:")
|
|
364
|
-
print(json.dumps(result, indent=2, ensure_ascii=False))
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
def main():
|
|
368
|
-
"""
|
|
369
|
-
Main test function with enhanced dependency management testing
|
|
370
|
-
|
|
371
|
-
Run all ComposeTool tests:
|
|
372
|
-
1. Nested calling test - verify inter-tool calling capability
|
|
373
|
-
2. Mathematical operations test - verify data processing capability
|
|
374
|
-
3. Configuration file test - verify tool loading from files capability
|
|
375
|
-
4. Dependency auto-loading test - verify automatic dependency management
|
|
376
|
-
|
|
377
|
-
Summary information will be displayed after tests complete
|
|
378
|
-
"""
|
|
379
|
-
print("ComposeTool Functionality Tests (Enhanced with Dependency Management)")
|
|
380
|
-
print("=" * 70)
|
|
381
|
-
print("Test contents:")
|
|
382
|
-
print("1. Nested calling functionality - ComposeTool calling other ComposeTool")
|
|
383
|
-
print("2. Mathematical operations functionality - array sum and multiply")
|
|
384
|
-
print("3. Configuration file functionality - testing available composite tools:")
|
|
385
|
-
print(" - DrugSafetyAnalyzer: Drug safety analysis with FAERS, PubChem, ChEMBL")
|
|
386
|
-
print(" - SimpleExample: Simple tool with no external dependencies")
|
|
387
|
-
print(" - TestDependencyLoading: Tool that tests auto-loading dependencies")
|
|
388
|
-
print("4. Additional composite tools functionality")
|
|
389
|
-
print("5. Automatic dependency loading functionality")
|
|
390
|
-
print("=" * 70)
|
|
391
|
-
|
|
392
|
-
try:
|
|
393
|
-
# Run all tests
|
|
394
|
-
test_nested_calls()
|
|
395
|
-
test_simple_math()
|
|
396
|
-
test_config_file_tools()
|
|
397
|
-
test_external_file_tools()
|
|
398
|
-
test_dependency_auto_loading()
|
|
399
|
-
|
|
400
|
-
# Display success information
|
|
401
|
-
print("\n" + "=" * 70)
|
|
402
|
-
print("✅ All tests completed!")
|
|
403
|
-
print("=" * 70)
|
|
404
|
-
print("Enhanced dependency management features:")
|
|
405
|
-
print("- ✅ Automatic detection of tool dependencies from code")
|
|
406
|
-
print("- ✅ Auto-loading of missing tool categories")
|
|
407
|
-
print(
|
|
408
|
-
"- ✅ Configurable behavior (auto_load_dependencies, fail_on_missing_tools)"
|
|
409
|
-
)
|
|
410
|
-
print("- ✅ Graceful error handling for unavailable tools")
|
|
411
|
-
print("- ✅ Real-time dependency resolution during execution")
|
|
412
|
-
print(
|
|
413
|
-
"- ✅ Support for both explicit (required_tools) and implicit dependencies"
|
|
414
|
-
)
|
|
415
|
-
print("\nComposeTool capabilities:")
|
|
416
|
-
print("- Supports both inline code and external file definition methods")
|
|
417
|
-
print(
|
|
418
|
-
"- Can implement nested calling between tools through call_tool() function"
|
|
419
|
-
)
|
|
420
|
-
print(
|
|
421
|
-
"- Fully integrated into ToolUniverse framework, usage consistent with other tools"
|
|
422
|
-
)
|
|
423
|
-
print("- Supports complex data processing and logic control")
|
|
424
|
-
print(
|
|
425
|
-
"- New composite tools demonstrate real-world biomedical analysis workflows"
|
|
426
|
-
)
|
|
427
|
-
|
|
428
|
-
except Exception as e:
|
|
429
|
-
print(f"\n❌ Test failed: {e}")
|
|
430
|
-
import traceback
|
|
431
|
-
|
|
432
|
-
traceback.print_exc()
|
|
433
|
-
print("\nTroubleshooting tips:")
|
|
434
|
-
print("1. Ensure all dependency packages are correctly installed")
|
|
435
|
-
print("2. Check if src/tooluniverse/data/compose_tools.json file exists")
|
|
436
|
-
print(
|
|
437
|
-
"3. Check if the new composite tools are properly defined in compose_tools.json"
|
|
438
|
-
)
|
|
439
|
-
print(
|
|
440
|
-
"4. Confirm ComposeTool class is correctly integrated into execute_function.py"
|
|
441
|
-
)
|
|
442
|
-
print("5. Note: Auto-loading will attempt to load missing tools automatically")
|
|
443
|
-
print("6. Use auto_load_dependencies=false to disable automatic loading")
|
|
444
|
-
print("7. Use fail_on_missing_tools=true for strict dependency checking")
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
if __name__ == "__main__":
|
|
448
|
-
main()
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
# test_dailymed.py
|
|
2
|
-
|
|
3
|
-
from tooluniverse import ToolUniverse
|
|
4
|
-
|
|
5
|
-
# === test_dailymed.py ===
|
|
6
|
-
|
|
7
|
-
# Step 1: Initialize ToolUniverse and load all tools (including our DailyMed tools)
|
|
8
|
-
tooluni = ToolUniverse()
|
|
9
|
-
tooluni.load_tools()
|
|
10
|
-
|
|
11
|
-
# Step 2: Define test queries for DailyMed tools
|
|
12
|
-
# NOTE: Before running this script, please confirm that "DailyMed_search_spls" call returns at least one data element,
|
|
13
|
-
# and extract a valid setid from it. Then replace the example setid below to avoid 404 or 415 errors.
|
|
14
|
-
|
|
15
|
-
test_queries = [
|
|
16
|
-
# ---- Tests for DailyMed_search_spls ----
|
|
17
|
-
# 1. Only pass drug_name, use default pagesize=100, page=1
|
|
18
|
-
{
|
|
19
|
-
"name": "DailyMed_search_spls",
|
|
20
|
-
"arguments": {"drug_name": "TAMSULOSIN HYDROCHLORIDE"},
|
|
21
|
-
},
|
|
22
|
-
# 2. Specify drug_name + pagesize=2, check if returns no more than 2 records
|
|
23
|
-
{
|
|
24
|
-
"name": "DailyMed_search_spls",
|
|
25
|
-
"arguments": {"drug_name": "TAMSULOSIN HYDROCHLORIDE", "pagesize": 2},
|
|
26
|
-
},
|
|
27
|
-
# 3. Use published_date filter to get recent records
|
|
28
|
-
{
|
|
29
|
-
"name": "DailyMed_search_spls",
|
|
30
|
-
"arguments": {
|
|
31
|
-
"drug_name": "TAMSULOSIN HYDROCHLORIDE",
|
|
32
|
-
"published_date_gte": "2025-05-01",
|
|
33
|
-
"pagesize": 3,
|
|
34
|
-
},
|
|
35
|
-
},
|
|
36
|
-
# ---- Tests for DailyMed_get_spl_by_setid ----
|
|
37
|
-
# 4. Use setid from first record above (example setid), request XML format
|
|
38
|
-
{
|
|
39
|
-
"name": "DailyMed_get_spl_by_setid",
|
|
40
|
-
"arguments": {
|
|
41
|
-
# Example setid, please replace with actual first setid from query
|
|
42
|
-
"setid": "35bbb655-19e2-00c2-e063-6394a90afbe3",
|
|
43
|
-
"format": "xml",
|
|
44
|
-
},
|
|
45
|
-
},
|
|
46
|
-
]
|
|
47
|
-
|
|
48
|
-
# Step 3: Iterate over all test queries and print results
|
|
49
|
-
for idx, query in enumerate(test_queries):
|
|
50
|
-
name = query["name"]
|
|
51
|
-
args = query["arguments"]
|
|
52
|
-
print(f"\n[{idx+1}] Running tool: {name} with arguments: {args}")
|
|
53
|
-
try:
|
|
54
|
-
result = tooluni.run(query)
|
|
55
|
-
# Print brief results: if dict, print first few lines; otherwise print first 500 chars
|
|
56
|
-
if isinstance(result, dict):
|
|
57
|
-
# If contains 'error' key, print complete error dict; otherwise print first 500 chars
|
|
58
|
-
if "error" in result:
|
|
59
|
-
print("❌ Error returned:", result)
|
|
60
|
-
else:
|
|
61
|
-
snippet = str(result)[:500]
|
|
62
|
-
print("✅ Success. Result snippet (first 500 chars):")
|
|
63
|
-
print(snippet)
|
|
64
|
-
else:
|
|
65
|
-
snippet = str(result)[:500]
|
|
66
|
-
print("✅ Success. Result snippet (first 500 chars):")
|
|
67
|
-
print(snippet)
|
|
68
|
-
except Exception as e:
|
|
69
|
-
print(f"❌ Exception occurred: {e}")
|