Universal scientific data I/O with a plugin format registry
Drift inferred · capture-to-capture
- HIGH code analysis flagged dynamic code execution ×3 in ywatanabe1989/scitex-io
- HIGH code analysis flagged dynamic code execution ×5 in ywatanabe1989/scitex-io
- HIGH code analysis flagged dynamic code execution ×4 in ywatanabe1989/scitex-io
- HIGH code analysis flagged dynamic code execution ×4 in ywatanabe1989/scitex-io
- HIGH code analysis flagged dynamic code execution ×4 in ywatanabe1989/scitex-io
- HIGH code analysis flagged dynamic code execution ×4 in ywatanabe1989/scitex-io
- HIGH code analysis flagged dynamic code execution ×4 in ywatanabe1989/scitex-io
- HIGH code analysis flagged dynamic code execution ×4 in ywatanabe1989/scitex-io
transport stdio counts 22 tools · 0 res
· 0 prompts
permission surface via code analysis
tools
-
io_clear_load_cache
-
io_configure_cache
-
io_embed_metadata
-
io_explore_h5
-
io_explore_zarr
-
io_get_cache_info
-
io_get_loader
-
io_get_saver
-
io_glob
-
io_has_h5_key
-
io_has_metadata
-
io_has_zarr_key
-
io_json2md
-
io_list_formats
-
io_load
-
io_load_configs
-
io_parse_glob
-
io_read_metadata
-
io_register_info
-
io_save
-
io_skills_get
-
io_skills_list
prompt-surface
shipped agent-instruction files + hidden-content / dangerous-code findings —
quoted from the analyzed source
analyzed commit 984cea0 · analyzer v33 · 4d ago
skills & prompt files 1
danger signals5
- dynamic code execution eval()/exec() scitex-ai-scitex-io-984cea0/src/scitex_io/_glob.py :67
found_paths = _natsorted(_glob(eval(glob_pattern), recursive=recursive)) - dynamic code execution pickle.loads() scitex-ai-scitex-io-984cea0/src/scitex_io/_load_modules/_H5Explorer.py :137
return pickle.loads(data.tobytes()) - dynamic code execution pickle.loads() scitex-ai-scitex-io-984cea0/src/scitex_io/_load_modules/_hdf5.py :65
return pickle.loads(data.tobytes()) - dynamic code execution pickle.loads() scitex-ai-scitex-io-984cea0/src/scitex_io/_load_modules/_zarr.py :110
return pickle.loads(pickled_bytes.tobytes()) - dynamic code execution unsafe yaml.load() scitex-ai-scitex-io-984cea0/tests/scitex_io/_save_modules/test__yaml.py :136
loaded = yaml.load(f)
evidence-backed
findings quoted directly from the published source artifact — not inferred
code files: 391
filesystem 149
- fs (weak) scitex-ai-scitex-io-984cea0/examples/02_custom_format.py :22
with open(path, "w") as f: - fs (weak) scitex-ai-scitex-io-984cea0/examples/03_load_configs.py :16
import shutil - fs (weak) scitex-ai-scitex-io-984cea0/examples/05_metadata_embedding.py :55
with open(path, "wb") as f: - fs scitex-ai-scitex-io-984cea0/src/scitex_io/_cache.py :10
from pathlib import Path - fs scitex-ai-scitex-io-984cea0/src/scitex_io/_cli/_skills.py :11
from pathlib import Path - fs scitex-ai-scitex-io-984cea0/src/scitex_io/_glob.py :10
from pathlib import Path - fs scitex-ai-scitex-io-984cea0/src/scitex_io/_json2md.py :45
with open(args.input, "r") as f: - fs scitex-ai-scitex-io-984cea0/src/scitex_io/_linter/plugin.py :155
message="`open()` detected — use `stx.io.save()`/`stx.io.load()` which includes auto-logging", - fs scitex-ai-scitex-io-984cea0/src/scitex_io/_load_modules/_ZarrExplorer.py :23
self.store = zarr.open(storepath, mode=mode) - fs scitex-ai-scitex-io-984cea0/src/scitex_io/_load_modules/_bibtex.py :52
with open(lpath, "r", encoding=encoding) as f: - fs scitex-ai-scitex-io-984cea0/src/scitex_io/_load_modules/_image.py :41
return Image.open(lpath, **pil_kwargs) - fs scitex-ai-scitex-io-984cea0/src/scitex_io/_load_modules/_joblib.py :15
with open(lpath, "rb") as f:
show 28 more
- fs scitex-ai-scitex-io-984cea0/src/scitex_io/_load_modules/_json.py :16
with open(lpath, "r") as f: - fs scitex-ai-scitex-io-984cea0/src/scitex_io/_load_modules/_markdown.py :44
with open(lpath_md, "r") as file: - fs scitex-ai-scitex-io-984cea0/src/scitex_io/_load_modules/_pdf_content_extractors.py :69
with pdfplumber.open(lpath) as pdf: - fs scitex-ai-scitex-io-984cea0/src/scitex_io/_load_modules/_pdf_text_extractors.py :48
doc = fitz.open(lpath) - fs scitex-ai-scitex-io-984cea0/src/scitex_io/_load_modules/_pdf_utils.py :142
with open(lpath, "rb") as f: - fs scitex-ai-scitex-io-984cea0/src/scitex_io/_load_modules/_pickle.py :14
with gzip.open(lpath, "rb") as f: - fs scitex-ai-scitex-io-984cea0/src/scitex_io/_load_modules/_txt.py :25
# with open(lpath, "r", encoding="utf-8") as f: - fs scitex-ai-scitex-io-984cea0/src/scitex_io/_load_modules/_yaml.py :16
with open(lpath) as f: - fs scitex-ai-scitex-io-984cea0/src/scitex_io/_load_modules/_zarr.py :32
from pathlib import Path - fs scitex-ai-scitex-io-984cea0/src/scitex_io/_loading/_load.py :15
from pathlib import Path - fs scitex-ai-scitex-io-984cea0/src/scitex_io/_loading/_load_configs.py :14
from pathlib import Path - fs scitex-ai-scitex-io-984cea0/src/scitex_io/_mcp/_resources.py :50
with open(path, "w") as f: - fs scitex-ai-scitex-io-984cea0/src/scitex_io/_mcp/_tools_extra.py :20
"""Glob filesystem paths with natural sort and optional placeholder parsing. Drop-in upgrade for `glob.glob`/`pathlib.Path.glob` that returns natsort-ordered hits and (with `parse=True`) extracts `{na - fs scitex-ai-scitex-io-984cea0/src/scitex_io/_mcp/server.py :182
' with open(path, "w") as f:\n' - fs scitex-ai-scitex-io-984cea0/src/scitex_io/_metadata_modules/embed_metadata_jpeg.py :29
img = Image.open(image_path) - fs scitex-ai-scitex-io-984cea0/src/scitex_io/_metadata_modules/embed_metadata_pdf.py :49
with open(image_path, "wb") as output_file: - fs scitex-ai-scitex-io-984cea0/src/scitex_io/_metadata_modules/embed_metadata_png.py :19
img = Image.open(image_path) - fs scitex-ai-scitex-io-984cea0/src/scitex_io/_metadata_modules/embed_metadata_svg.py :21
with open(image_path, encoding="utf-8") as f: - fs scitex-ai-scitex-io-984cea0/src/scitex_io/_metadata_modules/read_metadata_jpeg.py :24
img = Image.open(image_path) - fs scitex-ai-scitex-io-984cea0/src/scitex_io/_metadata_modules/read_metadata_png.py :24
img = Image.open(image_path) - fs scitex-ai-scitex-io-984cea0/src/scitex_io/_metadata_modules/read_metadata_svg.py :24
with open(image_path, encoding="utf-8") as f: - fs scitex-ai-scitex-io-984cea0/src/scitex_io/_observers/__init__.py :26
from pathlib import Path - fs scitex-ai-scitex-io-984cea0/src/scitex_io/_path_modules/_mv_to_tmp.py :6
from shutil import move - fs scitex-ai-scitex-io-984cea0/src/scitex_io/_path_modules/_path.py :172
import pathlib - fs scitex-ai-scitex-io-984cea0/src/scitex_io/_path_modules/_symlink.py :17
from pathlib import Path - fs scitex-ai-scitex-io-984cea0/src/scitex_io/_registry.py :30
... with open(path, "w") as f: - fs scitex-ai-scitex-io-984cea0/src/scitex_io/_save.py :33
from pathlib import Path - fs scitex-ai-scitex-io-984cea0/src/scitex_io/_save_modules/_bibtex.py :72
with open(spath, "w", encoding=encoding) as f:
109 more not shown — this panel samples each group; the count above is the real total.
shell / exec 13
- shell scitex-ai-scitex-io-984cea0/src/scitex_io/_path_modules/_symlink.py :16
import subprocess - shell scitex-ai-scitex-io-984cea0/src/scitex_io/bundle/kinds/_table/_latex/_editor/_app.py :24
import subprocess - shell scitex-ai-scitex-io-984cea0/src/scitex_io/bundle/kinds/_table/_latex/_validator.py :8
import subprocess - shell (weak) scitex-ai-scitex-io-984cea0/tests/examples/test_01_basic_save_load.py :3
import subprocess - shell (weak) scitex-ai-scitex-io-984cea0/tests/examples/test_02_custom_format.py :3
import subprocess - shell (weak) scitex-ai-scitex-io-984cea0/tests/examples/test_03_load_configs.py :3
import subprocess - shell (weak) scitex-ai-scitex-io-984cea0/tests/examples/test_04_dotdict.py :3
import subprocess - shell (weak) scitex-ai-scitex-io-984cea0/tests/examples/test_05_metadata_embedding.py :3
import subprocess - shell (weak) scitex-ai-scitex-io-984cea0/tests/examples/test_scitex_io_lint.py :17
import subprocess - shell (weak) scitex-ai-scitex-io-984cea0/tests/scitex_io/test___main__.py :11
import subprocess - shell (weak) scitex-ai-scitex-io-984cea0/tests/scitex_io/test__glob.py :641
pattern = str(tmp_path / "test.txt'; import os; os.system('echo hacked')") - shell (weak) scitex-ai-scitex-io-984cea0/tests/scitex_io/test__save.py :843
import subprocess as _subproc
show 1 more
- shell (weak) scitex-ai-scitex-io-984cea0/tests/scitex_io/test__utils.py :900
import subprocess as _subproc_dt
network 1
- net scitex-ai-scitex-io-984cea0/src/scitex_io/bundle/kinds/_table/_latex/_editor/_app.py :23
import socket
database 1
- db (weak) scitex-ai-scitex-io-984cea0/tests/scitex_io/test__optional_providers_db.py :22
import sqlite3
tool registrations 22
- io_glob scitex-ai-scitex-io-984cea0/src/scitex_io/_mcp/_tools_extra.py :16
- io_parse_glob scitex-ai-scitex-io-984cea0/src/scitex_io/_mcp/_tools_extra.py :42
- io_get_loader scitex-ai-scitex-io-984cea0/src/scitex_io/_mcp/_tools_extra.py :64
- io_get_saver scitex-ai-scitex-io-984cea0/src/scitex_io/_mcp/_tools_extra.py :83
- io_read_metadata scitex-ai-scitex-io-984cea0/src/scitex_io/_mcp/_tools_extra.py :102
- io_has_metadata scitex-ai-scitex-io-984cea0/src/scitex_io/_mcp/_tools_extra.py :119
- io_embed_metadata scitex-ai-scitex-io-984cea0/src/scitex_io/_mcp/_tools_extra.py :136
- io_get_cache_info scitex-ai-scitex-io-984cea0/src/scitex_io/_mcp/_tools_extra.py :156
- io_clear_load_cache scitex-ai-scitex-io-984cea0/src/scitex_io/_mcp/_tools_extra.py :164
- io_configure_cache scitex-ai-scitex-io-984cea0/src/scitex_io/_mcp/_tools_extra.py :173
- io_explore_h5 scitex-ai-scitex-io-984cea0/src/scitex_io/_mcp/_tools_extra.py :196
- io_explore_zarr scitex-ai-scitex-io-984cea0/src/scitex_io/_mcp/_tools_extra.py :214
show 10 more
- io_has_h5_key scitex-ai-scitex-io-984cea0/src/scitex_io/_mcp/_tools_extra.py :232
- io_has_zarr_key scitex-ai-scitex-io-984cea0/src/scitex_io/_mcp/_tools_extra.py :251
- io_json2md scitex-ai-scitex-io-984cea0/src/scitex_io/_mcp/_tools_extra.py :270
- io_list_formats scitex-ai-scitex-io-984cea0/src/scitex_io/_mcp/server.py :28
- io_load scitex-ai-scitex-io-984cea0/src/scitex_io/_mcp/server.py :43
- io_save scitex-ai-scitex-io-984cea0/src/scitex_io/_mcp/server.py :92
- io_load_configs scitex-ai-scitex-io-984cea0/src/scitex_io/_mcp/server.py :127
- io_register_info scitex-ai-scitex-io-984cea0/src/scitex_io/_mcp/server.py :167
- io_skills_list scitex-ai-scitex-io-984cea0/src/scitex_io/_mcp/server.py :197
- io_skills_get scitex-ai-scitex-io-984cea0/src/scitex_io/_mcp/server.py :219
declared dependencies 39
- fastmcp@>=2.0
- tqdm@*
- PyYAML@*
- ruamel.yaml@*
- scitex-io@*
- mne@*
- scipy@*
- h5py@*
- zarr@>=3
- numcodecs@*
- matplotlib@*
- optuna@*
show 27 more
- figrecipe@>=0.28
- scitex-db@>=0.1.11
- pytest@>=7.0
- pytest-cov@*
- plotly@*
- Pillow@*
- pymatreader@*
- openpyxl@*
- pyarrow@*
- torch@*
- joblib@*
- PyPDF2@*
- pypdf@*
- pdfplumber@*
- PyMuPDF@*
- scikit-learn@*
- piexif@*
- markdown@*
- html2text@*
- kaleido@*
- python-docx@*
- scitex-stats@>=0.2.22
- sphinx@>=7.0
- sphinx-rtd-theme@>=2.0
- myst-parser@>=2.0
- sphinx-copybutton@>=0.5
- sphinx-autodoc-typehints@>=1.25