tooluniverse 1.0.9.1__py3-none-any.whl → 1.0.11__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.

Files changed (191) hide show
  1. tooluniverse/__init__.py +57 -1
  2. tooluniverse/admetai_tool.py +1 -1
  3. tooluniverse/agentic_tool.py +65 -17
  4. tooluniverse/base_tool.py +19 -8
  5. tooluniverse/blast_tool.py +132 -0
  6. tooluniverse/boltz_tool.py +3 -3
  7. tooluniverse/cache/result_cache_manager.py +167 -12
  8. tooluniverse/cbioportal_tool.py +42 -0
  9. tooluniverse/clinvar_tool.py +268 -74
  10. tooluniverse/compose_scripts/drug_safety_analyzer.py +1 -1
  11. tooluniverse/compose_scripts/multi_agent_literature_search.py +1 -1
  12. tooluniverse/compose_scripts/output_summarizer.py +4 -4
  13. tooluniverse/compose_scripts/tool_discover.py +1941 -443
  14. tooluniverse/compose_scripts/tool_graph_composer.py +1 -1
  15. tooluniverse/compose_scripts/tool_metadata_generator.py +1 -1
  16. tooluniverse/compose_tool.py +9 -9
  17. tooluniverse/core_tool.py +2 -2
  18. tooluniverse/ctg_tool.py +4 -4
  19. tooluniverse/custom_tool.py +1 -1
  20. tooluniverse/data/agentic_tools.json +0 -370
  21. tooluniverse/data/alphafold_tools.json +6 -6
  22. tooluniverse/data/blast_tools.json +112 -0
  23. tooluniverse/data/cbioportal_tools.json +87 -0
  24. tooluniverse/data/clinvar_tools.json +235 -0
  25. tooluniverse/data/compose_tools.json +0 -89
  26. tooluniverse/data/dbsnp_tools.json +275 -0
  27. tooluniverse/data/emdb_tools.json +61 -0
  28. tooluniverse/data/ensembl_tools.json +259 -0
  29. tooluniverse/data/file_download_tools.json +275 -0
  30. tooluniverse/data/geo_tools.json +200 -48
  31. tooluniverse/data/gnomad_tools.json +109 -0
  32. tooluniverse/data/gtopdb_tools.json +68 -0
  33. tooluniverse/data/gwas_tools.json +32 -0
  34. tooluniverse/data/interpro_tools.json +199 -0
  35. tooluniverse/data/jaspar_tools.json +70 -0
  36. tooluniverse/data/kegg_tools.json +356 -0
  37. tooluniverse/data/mpd_tools.json +87 -0
  38. tooluniverse/data/ols_tools.json +314 -0
  39. tooluniverse/data/package_discovery_tools.json +64 -0
  40. tooluniverse/data/packages/categorized_tools.txt +0 -1
  41. tooluniverse/data/packages/machine_learning_tools.json +0 -47
  42. tooluniverse/data/paleobiology_tools.json +91 -0
  43. tooluniverse/data/pride_tools.json +62 -0
  44. tooluniverse/data/pypi_package_inspector_tools.json +158 -0
  45. tooluniverse/data/python_executor_tools.json +341 -0
  46. tooluniverse/data/regulomedb_tools.json +50 -0
  47. tooluniverse/data/remap_tools.json +89 -0
  48. tooluniverse/data/screen_tools.json +89 -0
  49. tooluniverse/data/tool_discovery_agents.json +428 -0
  50. tooluniverse/data/tool_discovery_agents.json.backup +1343 -0
  51. tooluniverse/data/uniprot_tools.json +77 -0
  52. tooluniverse/data/web_search_tools.json +250 -0
  53. tooluniverse/data/worms_tools.json +55 -0
  54. tooluniverse/dataset_tool.py +2 -2
  55. tooluniverse/dbsnp_tool.py +196 -58
  56. tooluniverse/default_config.py +36 -3
  57. tooluniverse/emdb_tool.py +30 -0
  58. tooluniverse/enrichr_tool.py +14 -14
  59. tooluniverse/ensembl_tool.py +140 -47
  60. tooluniverse/execute_function.py +594 -29
  61. tooluniverse/extended_hooks.py +4 -4
  62. tooluniverse/file_download_tool.py +269 -0
  63. tooluniverse/gene_ontology_tool.py +1 -1
  64. tooluniverse/generate_tools.py +3 -3
  65. tooluniverse/geo_tool.py +81 -28
  66. tooluniverse/gnomad_tool.py +100 -52
  67. tooluniverse/gtopdb_tool.py +41 -0
  68. tooluniverse/humanbase_tool.py +10 -10
  69. tooluniverse/interpro_tool.py +72 -0
  70. tooluniverse/jaspar_tool.py +30 -0
  71. tooluniverse/kegg_tool.py +230 -0
  72. tooluniverse/logging_config.py +2 -2
  73. tooluniverse/mcp_client_tool.py +57 -129
  74. tooluniverse/mcp_integration.py +52 -49
  75. tooluniverse/mcp_tool_registry.py +147 -528
  76. tooluniverse/mpd_tool.py +42 -0
  77. tooluniverse/ncbi_eutils_tool.py +96 -0
  78. tooluniverse/ols_tool.py +435 -0
  79. tooluniverse/openalex_tool.py +8 -8
  80. tooluniverse/openfda_tool.py +2 -2
  81. tooluniverse/output_hook.py +15 -15
  82. tooluniverse/package_discovery_tool.py +217 -0
  83. tooluniverse/package_tool.py +1 -1
  84. tooluniverse/paleobiology_tool.py +30 -0
  85. tooluniverse/pmc_tool.py +2 -2
  86. tooluniverse/pride_tool.py +30 -0
  87. tooluniverse/pypi_package_inspector_tool.py +593 -0
  88. tooluniverse/python_executor_tool.py +711 -0
  89. tooluniverse/regulomedb_tool.py +30 -0
  90. tooluniverse/remap_tool.py +44 -0
  91. tooluniverse/remote/boltz/boltz_mcp_server.py +1 -1
  92. tooluniverse/remote/depmap_24q2/depmap_24q2_mcp_tool.py +3 -3
  93. tooluniverse/remote/immune_compass/compass_tool.py +3 -3
  94. tooluniverse/remote/pinnacle/pinnacle_tool.py +2 -2
  95. tooluniverse/remote/transcriptformer/transcriptformer_tool.py +3 -3
  96. tooluniverse/remote/uspto_downloader/uspto_downloader_mcp_server.py +3 -3
  97. tooluniverse/remote_tool.py +4 -4
  98. tooluniverse/screen_tool.py +44 -0
  99. tooluniverse/scripts/filter_tool_files.py +2 -2
  100. tooluniverse/smcp.py +93 -12
  101. tooluniverse/smcp_server.py +100 -21
  102. tooluniverse/space/__init__.py +46 -0
  103. tooluniverse/space/loader.py +133 -0
  104. tooluniverse/space/validator.py +353 -0
  105. tooluniverse/tool_finder_embedding.py +5 -3
  106. tooluniverse/tool_finder_keyword.py +12 -10
  107. tooluniverse/tool_finder_llm.py +12 -8
  108. tooluniverse/tools/{UCSC_get_genes_by_region.py → BLAST_nucleotide_search.py} +22 -26
  109. tooluniverse/tools/BLAST_protein_search.py +63 -0
  110. tooluniverse/tools/ClinVar_search_variants.py +26 -15
  111. tooluniverse/tools/CodeQualityAnalyzer.py +3 -3
  112. tooluniverse/tools/EMDB_get_structure.py +46 -0
  113. tooluniverse/tools/GtoPdb_get_targets.py +52 -0
  114. tooluniverse/tools/InterPro_get_domain_details.py +46 -0
  115. tooluniverse/tools/InterPro_get_protein_domains.py +49 -0
  116. tooluniverse/tools/InterPro_search_domains.py +52 -0
  117. tooluniverse/tools/JASPAR_get_transcription_factors.py +52 -0
  118. tooluniverse/tools/MPD_get_phenotype_data.py +59 -0
  119. tooluniverse/tools/PRIDE_search_proteomics.py +52 -0
  120. tooluniverse/tools/PackageAnalyzer.py +55 -0
  121. tooluniverse/tools/Paleobiology_get_fossils.py +52 -0
  122. tooluniverse/tools/PyPIPackageInspector.py +59 -0
  123. tooluniverse/tools/ReMap_get_transcription_factor_binding.py +59 -0
  124. tooluniverse/tools/ReferenceInfoAnalyzer.py +55 -0
  125. tooluniverse/tools/RegulomeDB_query_variant.py +46 -0
  126. tooluniverse/tools/SCREEN_get_regulatory_elements.py +59 -0
  127. tooluniverse/tools/{ArgumentDescriptionOptimizer.py → TestResultsAnalyzer.py} +13 -13
  128. tooluniverse/tools/ToolDiscover.py +11 -11
  129. tooluniverse/tools/UniProt_id_mapping.py +63 -0
  130. tooluniverse/tools/UniProt_search.py +63 -0
  131. tooluniverse/tools/UnifiedToolGenerator.py +59 -0
  132. tooluniverse/tools/WoRMS_search_species.py +49 -0
  133. tooluniverse/tools/XMLToolOptimizer.py +55 -0
  134. tooluniverse/tools/__init__.py +119 -29
  135. tooluniverse/tools/_shared_client.py +3 -3
  136. tooluniverse/tools/alphafold_get_annotations.py +3 -3
  137. tooluniverse/tools/alphafold_get_prediction.py +3 -3
  138. tooluniverse/tools/alphafold_get_summary.py +3 -3
  139. tooluniverse/tools/cBioPortal_get_cancer_studies.py +46 -0
  140. tooluniverse/tools/cBioPortal_get_mutations.py +52 -0
  141. tooluniverse/tools/{gnomAD_query_variant.py → clinvar_get_clinical_significance.py} +8 -11
  142. tooluniverse/tools/clinvar_get_variant_details.py +49 -0
  143. tooluniverse/tools/dbSNP_get_variant_by_rsid.py +7 -7
  144. tooluniverse/tools/dbsnp_get_frequencies.py +46 -0
  145. tooluniverse/tools/dbsnp_search_by_gene.py +52 -0
  146. tooluniverse/tools/download_binary_file.py +66 -0
  147. tooluniverse/tools/download_file.py +71 -0
  148. tooluniverse/tools/download_text_content.py +55 -0
  149. tooluniverse/tools/dynamic_package_discovery.py +59 -0
  150. tooluniverse/tools/ensembl_get_sequence.py +52 -0
  151. tooluniverse/tools/{Ensembl_lookup_gene_by_symbol.py → ensembl_get_variants.py} +11 -11
  152. tooluniverse/tools/ensembl_lookup_gene.py +46 -0
  153. tooluniverse/tools/geo_get_dataset_info.py +46 -0
  154. tooluniverse/tools/geo_get_sample_info.py +46 -0
  155. tooluniverse/tools/geo_search_datasets.py +67 -0
  156. tooluniverse/tools/gnomad_get_gene_constraints.py +49 -0
  157. tooluniverse/tools/kegg_find_genes.py +52 -0
  158. tooluniverse/tools/kegg_get_gene_info.py +46 -0
  159. tooluniverse/tools/kegg_get_pathway_info.py +46 -0
  160. tooluniverse/tools/kegg_list_organisms.py +44 -0
  161. tooluniverse/tools/kegg_search_pathway.py +46 -0
  162. tooluniverse/tools/ols_find_similar_terms.py +63 -0
  163. tooluniverse/tools/{get_hyperopt_info.py → ols_get_ontology_info.py} +13 -10
  164. tooluniverse/tools/ols_get_term_ancestors.py +67 -0
  165. tooluniverse/tools/ols_get_term_children.py +67 -0
  166. tooluniverse/tools/{TestCaseGenerator.py → ols_get_term_info.py} +12 -9
  167. tooluniverse/tools/{CodeOptimizer.py → ols_search_ontologies.py} +22 -14
  168. tooluniverse/tools/ols_search_terms.py +71 -0
  169. tooluniverse/tools/python_code_executor.py +79 -0
  170. tooluniverse/tools/python_script_runner.py +79 -0
  171. tooluniverse/tools/web_api_documentation_search.py +63 -0
  172. tooluniverse/tools/web_search.py +71 -0
  173. tooluniverse/uniprot_tool.py +219 -16
  174. tooluniverse/url_tool.py +19 -1
  175. tooluniverse/uspto_tool.py +1 -1
  176. tooluniverse/utils.py +12 -12
  177. tooluniverse/web_search_tool.py +229 -0
  178. tooluniverse/worms_tool.py +64 -0
  179. {tooluniverse-1.0.9.1.dist-info → tooluniverse-1.0.11.dist-info}/METADATA +8 -3
  180. {tooluniverse-1.0.9.1.dist-info → tooluniverse-1.0.11.dist-info}/RECORD +184 -92
  181. tooluniverse/data/genomics_tools.json +0 -174
  182. tooluniverse/tools/ToolDescriptionOptimizer.py +0 -67
  183. tooluniverse/tools/ToolImplementationGenerator.py +0 -67
  184. tooluniverse/tools/ToolOptimizer.py +0 -59
  185. tooluniverse/tools/ToolSpecificationGenerator.py +0 -67
  186. tooluniverse/tools/ToolSpecificationOptimizer.py +0 -63
  187. tooluniverse/ucsc_tool.py +0 -60
  188. {tooluniverse-1.0.9.1.dist-info → tooluniverse-1.0.11.dist-info}/WHEEL +0 -0
  189. {tooluniverse-1.0.9.1.dist-info → tooluniverse-1.0.11.dist-info}/entry_points.txt +0 -0
  190. {tooluniverse-1.0.9.1.dist-info → tooluniverse-1.0.11.dist-info}/licenses/LICENSE +0 -0
  191. {tooluniverse-1.0.9.1.dist-info → tooluniverse-1.0.11.dist-info}/top_level.txt +0 -0
@@ -1,30 +1,27 @@
1
1
  """
2
- gnomAD_query_variant
2
+ clinvar_get_clinical_significance
3
3
 
4
- Query gnomAD GraphQL for a variant in a dataset (returns ID and genome allele counts/frequency).
4
+ Get clinical significance information for a variant from ClinVar. Returns pathogenicity classific...
5
5
  """
6
6
 
7
7
  from typing import Any, Optional, Callable
8
8
  from ._shared_client import get_shared_client
9
9
 
10
10
 
11
- def gnomAD_query_variant(
11
+ def clinvar_get_clinical_significance(
12
12
  variant_id: str,
13
- dataset: Optional[str] = "gnomad_r4",
14
13
  *,
15
14
  stream_callback: Optional[Callable[[str], None]] = None,
16
15
  use_cache: bool = False,
17
16
  validate: bool = True,
18
17
  ) -> dict[str, Any]:
19
18
  """
20
- Query gnomAD GraphQL for a variant in a dataset (returns ID and genome allele counts/frequency).
19
+ Get clinical significance information for a variant from ClinVar. Returns pathogenicity classific...
21
20
 
22
21
  Parameters
23
22
  ----------
24
23
  variant_id : str
25
- Variant ID like '1-230710048-A-G'.
26
- dataset : str
27
- Dataset ID (e.g., gnomad_r4).
24
+ ClinVar variant ID (e.g., '12345', '123456')
28
25
  stream_callback : Callable, optional
29
26
  Callback for streaming output
30
27
  use_cache : bool, default False
@@ -40,8 +37,8 @@ def gnomAD_query_variant(
40
37
 
41
38
  return get_shared_client().run_one_function(
42
39
  {
43
- "name": "gnomAD_query_variant",
44
- "arguments": {"variant_id": variant_id, "dataset": dataset},
40
+ "name": "clinvar_get_clinical_significance",
41
+ "arguments": {"variant_id": variant_id},
45
42
  },
46
43
  stream_callback=stream_callback,
47
44
  use_cache=use_cache,
@@ -49,4 +46,4 @@ def gnomAD_query_variant(
49
46
  )
50
47
 
51
48
 
52
- __all__ = ["gnomAD_query_variant"]
49
+ __all__ = ["clinvar_get_clinical_significance"]
@@ -0,0 +1,49 @@
1
+ """
2
+ clinvar_get_variant_details
3
+
4
+ Get detailed variant information from ClinVar by variant ID. Returns comprehensive variant data i...
5
+ """
6
+
7
+ from typing import Any, Optional, Callable
8
+ from ._shared_client import get_shared_client
9
+
10
+
11
+ def clinvar_get_variant_details(
12
+ variant_id: str,
13
+ *,
14
+ stream_callback: Optional[Callable[[str], None]] = None,
15
+ use_cache: bool = False,
16
+ validate: bool = True,
17
+ ) -> dict[str, Any]:
18
+ """
19
+ Get detailed variant information from ClinVar by variant ID. Returns comprehensive variant data i...
20
+
21
+ Parameters
22
+ ----------
23
+ variant_id : str
24
+ ClinVar variant ID (e.g., '12345', '123456')
25
+ stream_callback : Callable, optional
26
+ Callback for streaming output
27
+ use_cache : bool, default False
28
+ Enable caching
29
+ validate : bool, default True
30
+ Validate parameters
31
+
32
+ Returns
33
+ -------
34
+ dict[str, Any]
35
+ """
36
+ # Handle mutable defaults to avoid B006 linting error
37
+
38
+ return get_shared_client().run_one_function(
39
+ {
40
+ "name": "clinvar_get_variant_details",
41
+ "arguments": {"variant_id": variant_id},
42
+ },
43
+ stream_callback=stream_callback,
44
+ use_cache=use_cache,
45
+ validate=validate,
46
+ )
47
+
48
+
49
+ __all__ = ["clinvar_get_variant_details"]
@@ -1,14 +1,14 @@
1
1
  """
2
- dbSNP_get_variant_by_rsid
2
+ dbsnp_get_variant_by_rsid
3
3
 
4
- Fetch dbSNP variant by rsID using NCBI Variation Services (refsnp endpoint).
4
+ Get variant information from dbSNP by rsID. Returns genomic coordinates, alleles, and basic varia...
5
5
  """
6
6
 
7
7
  from typing import Any, Optional, Callable
8
8
  from ._shared_client import get_shared_client
9
9
 
10
10
 
11
- def dbSNP_get_variant_by_rsid(
11
+ def dbsnp_get_variant_by_rsid(
12
12
  rsid: str,
13
13
  *,
14
14
  stream_callback: Optional[Callable[[str], None]] = None,
@@ -16,12 +16,12 @@ def dbSNP_get_variant_by_rsid(
16
16
  validate: bool = True,
17
17
  ) -> dict[str, Any]:
18
18
  """
19
- Fetch dbSNP variant by rsID using NCBI Variation Services (refsnp endpoint).
19
+ Get variant information from dbSNP by rsID. Returns genomic coordinates, alleles, and basic varia...
20
20
 
21
21
  Parameters
22
22
  ----------
23
23
  rsid : str
24
- rsID without 'rs' prefix or with (e.g., rs699 or 699).
24
+ dbSNP rsID (e.g., 'rs12345', '12345')
25
25
  stream_callback : Callable, optional
26
26
  Callback for streaming output
27
27
  use_cache : bool, default False
@@ -36,11 +36,11 @@ def dbSNP_get_variant_by_rsid(
36
36
  # Handle mutable defaults to avoid B006 linting error
37
37
 
38
38
  return get_shared_client().run_one_function(
39
- {"name": "dbSNP_get_variant_by_rsid", "arguments": {"rsid": rsid}},
39
+ {"name": "dbsnp_get_variant_by_rsid", "arguments": {"rsid": rsid}},
40
40
  stream_callback=stream_callback,
41
41
  use_cache=use_cache,
42
42
  validate=validate,
43
43
  )
44
44
 
45
45
 
46
- __all__ = ["dbSNP_get_variant_by_rsid"]
46
+ __all__ = ["dbsnp_get_variant_by_rsid"]
@@ -0,0 +1,46 @@
1
+ """
2
+ dbsnp_get_frequencies
3
+
4
+ Get allele frequencies for a variant from dbSNP. Returns population-specific allele frequency data.
5
+ """
6
+
7
+ from typing import Any, Optional, Callable
8
+ from ._shared_client import get_shared_client
9
+
10
+
11
+ def dbsnp_get_frequencies(
12
+ rsid: str,
13
+ *,
14
+ stream_callback: Optional[Callable[[str], None]] = None,
15
+ use_cache: bool = False,
16
+ validate: bool = True,
17
+ ) -> dict[str, Any]:
18
+ """
19
+ Get allele frequencies for a variant from dbSNP. Returns population-specific allele frequency data.
20
+
21
+ Parameters
22
+ ----------
23
+ rsid : str
24
+ dbSNP rsID (e.g., 'rs12345', '12345')
25
+ stream_callback : Callable, optional
26
+ Callback for streaming output
27
+ use_cache : bool, default False
28
+ Enable caching
29
+ validate : bool, default True
30
+ Validate parameters
31
+
32
+ Returns
33
+ -------
34
+ dict[str, Any]
35
+ """
36
+ # Handle mutable defaults to avoid B006 linting error
37
+
38
+ return get_shared_client().run_one_function(
39
+ {"name": "dbsnp_get_frequencies", "arguments": {"rsid": rsid}},
40
+ stream_callback=stream_callback,
41
+ use_cache=use_cache,
42
+ validate=validate,
43
+ )
44
+
45
+
46
+ __all__ = ["dbsnp_get_frequencies"]
@@ -0,0 +1,52 @@
1
+ """
2
+ dbsnp_search_by_gene
3
+
4
+ Search for variants in a specific gene. Returns variants associated with the gene symbol.
5
+ """
6
+
7
+ from typing import Any, Optional, Callable
8
+ from ._shared_client import get_shared_client
9
+
10
+
11
+ def dbsnp_search_by_gene(
12
+ gene_symbol: str,
13
+ limit: Optional[int] = 20,
14
+ *,
15
+ stream_callback: Optional[Callable[[str], None]] = None,
16
+ use_cache: bool = False,
17
+ validate: bool = True,
18
+ ) -> dict[str, Any]:
19
+ """
20
+ Search for variants in a specific gene. Returns variants associated with the gene symbol.
21
+
22
+ Parameters
23
+ ----------
24
+ gene_symbol : str
25
+ Gene symbol (e.g., 'BRCA1', 'TP53', 'APOE')
26
+ limit : int
27
+ Maximum number of results to return
28
+ stream_callback : Callable, optional
29
+ Callback for streaming output
30
+ use_cache : bool, default False
31
+ Enable caching
32
+ validate : bool, default True
33
+ Validate parameters
34
+
35
+ Returns
36
+ -------
37
+ dict[str, Any]
38
+ """
39
+ # Handle mutable defaults to avoid B006 linting error
40
+
41
+ return get_shared_client().run_one_function(
42
+ {
43
+ "name": "dbsnp_search_by_gene",
44
+ "arguments": {"gene_symbol": gene_symbol, "limit": limit},
45
+ },
46
+ stream_callback=stream_callback,
47
+ use_cache=use_cache,
48
+ validate=validate,
49
+ )
50
+
51
+
52
+ __all__ = ["dbsnp_search_by_gene"]
@@ -0,0 +1,66 @@
1
+ """
2
+ download_binary_file
3
+
4
+ Download binary files (images, videos, executables) with chunked
5
+ streaming for better memory management.
6
+ """
7
+
8
+ from typing import Any, Optional, Callable
9
+ from ._shared_client import get_shared_client
10
+
11
+
12
+ def download_binary_file(
13
+ url: str,
14
+ output_path: str,
15
+ chunk_size: Optional[int] = 1048576,
16
+ timeout: Optional[int] = 30,
17
+ *,
18
+ stream_callback: Optional[Callable[[str], None]] = None,
19
+ use_cache: bool = False,
20
+ validate: bool = True,
21
+ ) -> Any:
22
+ """
23
+ Download binary files (images, videos, executables) with chunked
24
+ streaming for better memory management.
25
+
26
+ Parameters
27
+ ----------
28
+ url : str
29
+ HTTP or HTTPS URL to download from
30
+ output_path : str
31
+ Full path where to save the binary file
32
+ (e.g., /tmp/image.jpg or C:/Users/Downloads/file.pdf)
33
+ chunk_size : int
34
+ Download chunk size in bytes (default: 1MB for binary files)
35
+ timeout : int
36
+ Request timeout in seconds
37
+ stream_callback : Callable, optional
38
+ Callback for streaming output
39
+ use_cache : bool, default False
40
+ Enable caching
41
+ validate : bool, default True
42
+ Validate parameters
43
+
44
+ Returns
45
+ -------
46
+ Any
47
+ """
48
+ # Handle mutable defaults to avoid B006 linting error
49
+
50
+ return get_shared_client().run_one_function(
51
+ {
52
+ "name": "download_binary_file",
53
+ "arguments": {
54
+ "url": url,
55
+ "output_path": output_path,
56
+ "chunk_size": chunk_size,
57
+ "timeout": timeout,
58
+ },
59
+ },
60
+ stream_callback=stream_callback,
61
+ use_cache=use_cache,
62
+ validate=validate,
63
+ )
64
+
65
+
66
+ __all__ = ["download_binary_file"]
@@ -0,0 +1,71 @@
1
+ """
2
+ download_file
3
+
4
+ Download files from HTTP/HTTPS URLs with cross-platform support (Windows, Mac, Linux). Similar to...
5
+ """
6
+
7
+ from typing import Any, Optional, Callable
8
+ from ._shared_client import get_shared_client
9
+
10
+
11
+ def download_file(
12
+ url: str,
13
+ output_path: Optional[str] = None,
14
+ timeout: Optional[int] = 30,
15
+ return_content: Optional[bool] = False,
16
+ chunk_size: Optional[int] = 8192,
17
+ follow_redirects: Optional[bool] = True,
18
+ *,
19
+ stream_callback: Optional[Callable[[str], None]] = None,
20
+ use_cache: bool = False,
21
+ validate: bool = True,
22
+ ) -> Any:
23
+ """
24
+ Download files from HTTP/HTTPS URLs with cross-platform support (Windows, Mac, Linux). Similar to...
25
+
26
+ Parameters
27
+ ----------
28
+ url : str
29
+ HTTP or HTTPS URL to download from (e.g., https://example.com/file.txt)
30
+ output_path : str
31
+ Optional path to save the file. If not specified, file will be saved to syste...
32
+ timeout : int
33
+ Request timeout in seconds
34
+ return_content : bool
35
+ If true, return file content as text instead of saving to disk (default: false)
36
+ chunk_size : int
37
+ Download chunk size in bytes (default: 8192)
38
+ follow_redirects : bool
39
+ Follow HTTP redirects (default: true)
40
+ stream_callback : Callable, optional
41
+ Callback for streaming output
42
+ use_cache : bool, default False
43
+ Enable caching
44
+ validate : bool, default True
45
+ Validate parameters
46
+
47
+ Returns
48
+ -------
49
+ Any
50
+ """
51
+ # Handle mutable defaults to avoid B006 linting error
52
+
53
+ return get_shared_client().run_one_function(
54
+ {
55
+ "name": "download_file",
56
+ "arguments": {
57
+ "url": url,
58
+ "output_path": output_path,
59
+ "timeout": timeout,
60
+ "return_content": return_content,
61
+ "chunk_size": chunk_size,
62
+ "follow_redirects": follow_redirects,
63
+ },
64
+ },
65
+ stream_callback=stream_callback,
66
+ use_cache=use_cache,
67
+ validate=validate,
68
+ )
69
+
70
+
71
+ __all__ = ["download_file"]
@@ -0,0 +1,55 @@
1
+ """
2
+ download_text_content
3
+
4
+ Download and return text content from URLs. Optimized for text files with automatic encoding dete...
5
+ """
6
+
7
+ from typing import Any, Optional, Callable
8
+ from ._shared_client import get_shared_client
9
+
10
+
11
+ def download_text_content(
12
+ url: str,
13
+ encoding: Optional[str] = None,
14
+ timeout: Optional[int] = 30,
15
+ *,
16
+ stream_callback: Optional[Callable[[str], None]] = None,
17
+ use_cache: bool = False,
18
+ validate: bool = True,
19
+ ) -> Any:
20
+ """
21
+ Download and return text content from URLs. Optimized for text files with automatic encoding dete...
22
+
23
+ Parameters
24
+ ----------
25
+ url : str
26
+ HTTP or HTTPS URL to download text from
27
+ encoding : str
28
+ Text encoding (e.g., utf-8, latin1). Auto-detected if not specified.
29
+ timeout : int
30
+ Request timeout in seconds
31
+ stream_callback : Callable, optional
32
+ Callback for streaming output
33
+ use_cache : bool, default False
34
+ Enable caching
35
+ validate : bool, default True
36
+ Validate parameters
37
+
38
+ Returns
39
+ -------
40
+ Any
41
+ """
42
+ # Handle mutable defaults to avoid B006 linting error
43
+
44
+ return get_shared_client().run_one_function(
45
+ {
46
+ "name": "download_text_content",
47
+ "arguments": {"url": url, "encoding": encoding, "timeout": timeout},
48
+ },
49
+ stream_callback=stream_callback,
50
+ use_cache=use_cache,
51
+ validate=validate,
52
+ )
53
+
54
+
55
+ __all__ = ["download_text_content"]
@@ -0,0 +1,59 @@
1
+ """
2
+ dynamic_package_discovery
3
+
4
+ Dynamically searches PyPI and evaluates packages based on requirements
5
+ """
6
+
7
+ from typing import Any, Optional, Callable
8
+ from ._shared_client import get_shared_client
9
+
10
+
11
+ def dynamic_package_discovery(
12
+ requirements: str,
13
+ functionality: Optional[str] = None,
14
+ constraints: Optional[dict[str, Any]] = None,
15
+ *,
16
+ stream_callback: Optional[Callable[[str], None]] = None,
17
+ use_cache: bool = False,
18
+ validate: bool = True,
19
+ ) -> dict[str, Any]:
20
+ """
21
+ Dynamically searches PyPI and evaluates packages based on requirements
22
+
23
+ Parameters
24
+ ----------
25
+ requirements : str
26
+ Description of what the package should do
27
+ functionality : str
28
+ Specific functionality needed
29
+ constraints : dict[str, Any]
30
+ Constraints (python version, license, etc.)
31
+ stream_callback : Callable, optional
32
+ Callback for streaming output
33
+ use_cache : bool, default False
34
+ Enable caching
35
+ validate : bool, default True
36
+ Validate parameters
37
+
38
+ Returns
39
+ -------
40
+ dict[str, Any]
41
+ """
42
+ # Handle mutable defaults to avoid B006 linting error
43
+
44
+ return get_shared_client().run_one_function(
45
+ {
46
+ "name": "dynamic_package_discovery",
47
+ "arguments": {
48
+ "requirements": requirements,
49
+ "functionality": functionality,
50
+ "constraints": constraints,
51
+ },
52
+ },
53
+ stream_callback=stream_callback,
54
+ use_cache=use_cache,
55
+ validate=validate,
56
+ )
57
+
58
+
59
+ __all__ = ["dynamic_package_discovery"]
@@ -0,0 +1,52 @@
1
+ """
2
+ ensembl_get_sequence
3
+
4
+ Get DNA sequence for a gene, transcript, or genomic region. Returns sequence in FASTA format.
5
+ """
6
+
7
+ from typing import Any, Optional, Callable
8
+ from ._shared_client import get_shared_client
9
+
10
+
11
+ def ensembl_get_sequence(
12
+ sequence_id: str,
13
+ type: Optional[str] = "genomic",
14
+ *,
15
+ stream_callback: Optional[Callable[[str], None]] = None,
16
+ use_cache: bool = False,
17
+ validate: bool = True,
18
+ ) -> dict[str, Any]:
19
+ """
20
+ Get DNA sequence for a gene, transcript, or genomic region. Returns sequence in FASTA format.
21
+
22
+ Parameters
23
+ ----------
24
+ sequence_id : str
25
+ Ensembl gene/transcript ID or genomic region (e.g., 'ENSG00000139618' or '1:1...
26
+ type : str
27
+ Sequence type: 'genomic', 'cds', 'cdna', 'peptide'
28
+ stream_callback : Callable, optional
29
+ Callback for streaming output
30
+ use_cache : bool, default False
31
+ Enable caching
32
+ validate : bool, default True
33
+ Validate parameters
34
+
35
+ Returns
36
+ -------
37
+ dict[str, Any]
38
+ """
39
+ # Handle mutable defaults to avoid B006 linting error
40
+
41
+ return get_shared_client().run_one_function(
42
+ {
43
+ "name": "ensembl_get_sequence",
44
+ "arguments": {"sequence_id": sequence_id, "type": type},
45
+ },
46
+ stream_callback=stream_callback,
47
+ use_cache=use_cache,
48
+ validate=validate,
49
+ )
50
+
51
+
52
+ __all__ = ["ensembl_get_sequence"]
@@ -1,15 +1,15 @@
1
1
  """
2
- Ensembl_lookup_gene_by_symbol
2
+ ensembl_get_variants
3
3
 
4
- Lookup Ensembl gene by species and gene symbol, returning core metadata and coordinates (uses /xr...
4
+ Get genetic variants in a genomic region. Returns SNP and indel information.
5
5
  """
6
6
 
7
7
  from typing import Any, Optional, Callable
8
8
  from ._shared_client import get_shared_client
9
9
 
10
10
 
11
- def Ensembl_lookup_gene_by_symbol(
12
- symbol: str,
11
+ def ensembl_get_variants(
12
+ region: str,
13
13
  species: Optional[str] = "homo_sapiens",
14
14
  *,
15
15
  stream_callback: Optional[Callable[[str], None]] = None,
@@ -17,14 +17,14 @@ def Ensembl_lookup_gene_by_symbol(
17
17
  validate: bool = True,
18
18
  ) -> dict[str, Any]:
19
19
  """
20
- Lookup Ensembl gene by species and gene symbol, returning core metadata and coordinates (uses /xr...
20
+ Get genetic variants in a genomic region. Returns SNP and indel information.
21
21
 
22
22
  Parameters
23
23
  ----------
24
+ region : str
25
+ Genomic region in format 'chromosome:start-end' (e.g., '13:32315086-32400268')
24
26
  species : str
25
- Species name (e.g., 'homo_sapiens').
26
- symbol : str
27
- Gene symbol (e.g., BRCA1).
27
+ Species name
28
28
  stream_callback : Callable, optional
29
29
  Callback for streaming output
30
30
  use_cache : bool, default False
@@ -40,8 +40,8 @@ def Ensembl_lookup_gene_by_symbol(
40
40
 
41
41
  return get_shared_client().run_one_function(
42
42
  {
43
- "name": "Ensembl_lookup_gene_by_symbol",
44
- "arguments": {"species": species, "symbol": symbol},
43
+ "name": "ensembl_get_variants",
44
+ "arguments": {"region": region, "species": species},
45
45
  },
46
46
  stream_callback=stream_callback,
47
47
  use_cache=use_cache,
@@ -49,4 +49,4 @@ def Ensembl_lookup_gene_by_symbol(
49
49
  )
50
50
 
51
51
 
52
- __all__ = ["Ensembl_lookup_gene_by_symbol"]
52
+ __all__ = ["ensembl_get_variants"]
@@ -0,0 +1,46 @@
1
+ """
2
+ ensembl_lookup_gene
3
+
4
+ Lookup gene information by Ensembl gene ID or symbol. Returns gene details including location, de...
5
+ """
6
+
7
+ from typing import Any, Optional, Callable
8
+ from ._shared_client import get_shared_client
9
+
10
+
11
+ def ensembl_lookup_gene(
12
+ gene_id: str,
13
+ *,
14
+ stream_callback: Optional[Callable[[str], None]] = None,
15
+ use_cache: bool = False,
16
+ validate: bool = True,
17
+ ) -> dict[str, Any]:
18
+ """
19
+ Lookup gene information by Ensembl gene ID or symbol. Returns gene details including location, de...
20
+
21
+ Parameters
22
+ ----------
23
+ gene_id : str
24
+ Ensembl gene ID or symbol (e.g., 'ENSG00000139618' or 'BRCA1')
25
+ stream_callback : Callable, optional
26
+ Callback for streaming output
27
+ use_cache : bool, default False
28
+ Enable caching
29
+ validate : bool, default True
30
+ Validate parameters
31
+
32
+ Returns
33
+ -------
34
+ dict[str, Any]
35
+ """
36
+ # Handle mutable defaults to avoid B006 linting error
37
+
38
+ return get_shared_client().run_one_function(
39
+ {"name": "ensembl_lookup_gene", "arguments": {"gene_id": gene_id}},
40
+ stream_callback=stream_callback,
41
+ use_cache=use_cache,
42
+ validate=validate,
43
+ )
44
+
45
+
46
+ __all__ = ["ensembl_lookup_gene"]