Universal scientific data I/O with a plugin format registry
Drift inferred · capture-to-capture
- HIGH code analysis flagged dynamic code execution ×4 in ywatanabe1989/scitex-io
transport stdio counts 0 tools · 0 res
· 0 prompts
permission surface via code analysis
no tools enumerated yet for this server.
prompt-surface
shipped agent-instruction files + hidden-content / dangerous-code findings —
quoted from the analyzed source
analyzed commit 838b652 · analyzer v18 · 2h ago
skills & prompt files 1
danger signals4
- dynamic code executioneval()/exec()ywatanabe1989-scitex-io-838b652/src/scitex_io/_glob.py:67
found_paths = _natsorted(_glob(eval(glob_pattern), recursive=recursive)) - dynamic code executionpickle.loads()ywatanabe1989-scitex-io-838b652/src/scitex_io/_load_modules/_H5Explorer.py:137
return pickle.loads(data.tobytes()) - dynamic code executionpickle.loads()ywatanabe1989-scitex-io-838b652/src/scitex_io/_load_modules/_hdf5.py:65
return pickle.loads(data.tobytes()) - dynamic code executionpickle.loads()ywatanabe1989-scitex-io-838b652/src/scitex_io/_load_modules/_zarr.py:110
return pickle.loads(pickled_bytes.tobytes())
evidence-backed
findings quoted directly from the published source artifact — not inferred
filesystem 72
- fs ywatanabe1989-scitex-io-838b652/src/scitex_io/_cache.py :10
from pathlib import Path - fs ywatanabe1989-scitex-io-838b652/src/scitex_io/_cli/_skills.py :11
from pathlib import Path - fs ywatanabe1989-scitex-io-838b652/src/scitex_io/_glob.py :10
from pathlib import Path - fs ywatanabe1989-scitex-io-838b652/src/scitex_io/_json2md.py :45
with open(args.input, "r") as f: - fs ywatanabe1989-scitex-io-838b652/src/scitex_io/_linter_plugin.py :357
message="`open()` detected — use `stx.io.save()`/`stx.io.load()` which includes auto-logging", - fs ywatanabe1989-scitex-io-838b652/src/scitex_io/_load_modules/_ZarrExplorer.py :23
self.store = zarr.open(storepath, mode=mode) - fs ywatanabe1989-scitex-io-838b652/src/scitex_io/_load_modules/_bibtex.py :52
with open(lpath, "r", encoding=encoding) as f: - fs ywatanabe1989-scitex-io-838b652/src/scitex_io/_load_modules/_image.py :41
return Image.open(lpath, **pil_kwargs) - fs ywatanabe1989-scitex-io-838b652/src/scitex_io/_load_modules/_joblib.py :15
with open(lpath, "rb") as f: - fs ywatanabe1989-scitex-io-838b652/src/scitex_io/_load_modules/_json.py :16
with open(lpath, "r") as f: - fs ywatanabe1989-scitex-io-838b652/src/scitex_io/_load_modules/_markdown.py :44
with open(lpath_md, "r") as file: - fs ywatanabe1989-scitex-io-838b652/src/scitex_io/_load_modules/_pdf_content_extractors.py :69
with pdfplumber.open(lpath) as pdf: - fs ywatanabe1989-scitex-io-838b652/src/scitex_io/_load_modules/_pdf_text_extractors.py :48
doc = fitz.open(lpath) - fs ywatanabe1989-scitex-io-838b652/src/scitex_io/_load_modules/_pdf_utils.py :142
with open(lpath, "rb") as f: - fs ywatanabe1989-scitex-io-838b652/src/scitex_io/_load_modules/_pickle.py :14
with gzip.open(lpath, "rb") as f: - fs ywatanabe1989-scitex-io-838b652/src/scitex_io/_load_modules/_txt.py :25
# with open(lpath, "r", encoding="utf-8") as f: - fs ywatanabe1989-scitex-io-838b652/src/scitex_io/_load_modules/_yaml.py :16
with open(lpath) as f: - fs ywatanabe1989-scitex-io-838b652/src/scitex_io/_load_modules/_zarr.py :32
from pathlib import Path - fs ywatanabe1989-scitex-io-838b652/src/scitex_io/_loading/_load.py :15
from pathlib import Path - fs ywatanabe1989-scitex-io-838b652/src/scitex_io/_loading/_load_configs.py :14
from pathlib import Path - fs ywatanabe1989-scitex-io-838b652/src/scitex_io/_mcp/_resources.py :50
with open(path, "w") as f: - fs ywatanabe1989-scitex-io-838b652/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 ywatanabe1989-scitex-io-838b652/src/scitex_io/_mcp/server.py :182
' with open(path, "w") as f:\n' - fs ywatanabe1989-scitex-io-838b652/src/scitex_io/_metadata_modules/embed_metadata_jpeg.py :29
img = Image.open(image_path) - fs ywatanabe1989-scitex-io-838b652/src/scitex_io/_metadata_modules/embed_metadata_pdf.py :49
with open(image_path, "wb") as output_file: - fs ywatanabe1989-scitex-io-838b652/src/scitex_io/_metadata_modules/embed_metadata_png.py :19
img = Image.open(image_path) - fs ywatanabe1989-scitex-io-838b652/src/scitex_io/_metadata_modules/embed_metadata_svg.py :21
with open(image_path, encoding="utf-8") as f: - fs ywatanabe1989-scitex-io-838b652/src/scitex_io/_metadata_modules/read_metadata_jpeg.py :24
img = Image.open(image_path) - fs ywatanabe1989-scitex-io-838b652/src/scitex_io/_metadata_modules/read_metadata_png.py :24
img = Image.open(image_path) - fs ywatanabe1989-scitex-io-838b652/src/scitex_io/_metadata_modules/read_metadata_svg.py :24
with open(image_path, encoding="utf-8") as f: - fs ywatanabe1989-scitex-io-838b652/src/scitex_io/_mv_to_tmp.py :6
from shutil import move - fs ywatanabe1989-scitex-io-838b652/src/scitex_io/_observers/__init__.py :26
from pathlib import Path - fs ywatanabe1989-scitex-io-838b652/src/scitex_io/_path.py :172
import pathlib - fs ywatanabe1989-scitex-io-838b652/src/scitex_io/_registry.py :30
... with open(path, "w") as f: - fs ywatanabe1989-scitex-io-838b652/src/scitex_io/_save.py :34
from pathlib import Path - fs ywatanabe1989-scitex-io-838b652/src/scitex_io/_save_modules/_bibtex.py :72
with open(spath, "w", encoding=encoding) as f: - fs ywatanabe1989-scitex-io-838b652/src/scitex_io/_save_modules/_hdf5.py :13
import shutil - fs ywatanabe1989-scitex-io-838b652/src/scitex_io/_save_modules/_html.py :43
with open(spath, "w") as f: - fs ywatanabe1989-scitex-io-838b652/src/scitex_io/_save_modules/_image.py :139
img = Image.open(buf) - fs ywatanabe1989-scitex-io-838b652/src/scitex_io/_save_modules/_joblib.py :24
with open(spath, "wb") as s: - fs ywatanabe1989-scitex-io-838b652/src/scitex_io/_save_modules/_json.py :69
with open(spath, "w") as f: - fs ywatanabe1989-scitex-io-838b652/src/scitex_io/_save_modules/_listed_dfs_as_csv.py :44
with open(spath_csv, mode="a") as f: - fs ywatanabe1989-scitex-io-838b652/src/scitex_io/_save_modules/_pickle.py :25
with open(spath, "wb") as s: - fs ywatanabe1989-scitex-io-838b652/src/scitex_io/_save_modules/_tex.py :153
with open(spath, "w") as f: - fs ywatanabe1989-scitex-io-838b652/src/scitex_io/_save_modules/_text.py :22
with open(spath, "w") as file: - fs ywatanabe1989-scitex-io-838b652/src/scitex_io/_save_modules/_yaml.py :6
from pathlib import Path - fs ywatanabe1989-scitex-io-838b652/src/scitex_io/_save_modules/_zarr.py :69
root = zarr.open(store, mode="w") - fs ywatanabe1989-scitex-io-838b652/src/scitex_io/_utils.py :8
from pathlib import Path - fs ywatanabe1989-scitex-io-838b652/src/scitex_io/bundle/_Bundle.py :15
from pathlib import Path - fs ywatanabe1989-scitex-io-838b652/src/scitex_io/bundle/_children.py :20
from pathlib import Path - fs ywatanabe1989-scitex-io-838b652/src/scitex_io/bundle/_core.py :16
import shutil - fs ywatanabe1989-scitex-io-838b652/src/scitex_io/bundle/_loader.py :18
from pathlib import Path - fs ywatanabe1989-scitex-io-838b652/src/scitex_io/bundle/_manifest.py :21
from pathlib import Path - fs ywatanabe1989-scitex-io-838b652/src/scitex_io/bundle/_mpl_helpers.py :379
from pathlib import Path - fs ywatanabe1989-scitex-io-838b652/src/scitex_io/bundle/_nested.py :31
from pathlib import Path - fs ywatanabe1989-scitex-io-838b652/src/scitex_io/bundle/_saver.py :35
from pathlib import Path - fs ywatanabe1989-scitex-io-838b652/src/scitex_io/bundle/_storage.py :20
from pathlib import Path - fs ywatanabe1989-scitex-io-838b652/src/scitex_io/bundle/_validation.py :24
from pathlib import Path - fs ywatanabe1989-scitex-io-838b652/src/scitex_io/bundle/_zip.py :19
import shutil - fs ywatanabe1989-scitex-io-838b652/src/scitex_io/bundle/kinds/_figure/_bundle.py :16
import shutil - fs ywatanabe1989-scitex-io-838b652/src/scitex_io/bundle/kinds/_image/__init__.py :15
from pathlib import Path - fs ywatanabe1989-scitex-io-838b652/src/scitex_io/bundle/kinds/_plot/_backend/_export.py :5
from pathlib import Path - fs ywatanabe1989-scitex-io-838b652/src/scitex_io/bundle/kinds/_plot/_legacy.py :19
import shutil - fs ywatanabe1989-scitex-io-838b652/src/scitex_io/bundle/kinds/_plot/_overview.py :18
from pathlib import Path - fs ywatanabe1989-scitex-io-838b652/src/scitex_io/bundle/kinds/_stats/_integration.py :22
from pathlib import Path - fs ywatanabe1989-scitex-io-838b652/src/scitex_io/bundle/kinds/_table/_latex/_editor/_app.py :27
from pathlib import Path - fs ywatanabe1989-scitex-io-838b652/src/scitex_io/bundle/kinds/_table/_latex/_export.py :8
from pathlib import Path - fs ywatanabe1989-scitex-io-838b652/src/scitex_io/bundle/kinds/_table/_latex/_figure_exporter.py :8
from pathlib import Path - fs ywatanabe1989-scitex-io-838b652/src/scitex_io/bundle/kinds/_table/_latex/_table_exporter.py :11
from pathlib import Path - fs ywatanabe1989-scitex-io-838b652/src/scitex_io/bundle/kinds/_table/_latex/_validator.py :12
from pathlib import Path - fs ywatanabe1989-scitex-io-838b652/src/scitex_io/bundle/schemas/__init__.py :9
from pathlib import Path - fs ywatanabe1989-scitex-io-838b652/src/scitex_io/utils/h5_to_zarr.py :10
from pathlib import Path
shell / exec 3
- shell ywatanabe1989-scitex-io-838b652/src/scitex_io/_save.py :33
import subprocess - shell ywatanabe1989-scitex-io-838b652/src/scitex_io/bundle/kinds/_table/_latex/_editor/_app.py :24
import subprocess - shell ywatanabe1989-scitex-io-838b652/src/scitex_io/bundle/kinds/_table/_latex/_validator.py :8
import subprocess
network 1
- net ywatanabe1989-scitex-io-838b652/src/scitex_io/bundle/kinds/_table/_latex/_editor/_app.py :23
import socket
database 1
- db ywatanabe1989-scitex-io-838b652/src/scitex_io/_load_modules/_sqlite3.py :12
import sqlite3
tool registrations 22
- io_glob ywatanabe1989-scitex-io-838b652/src/scitex_io/_mcp/_tools_extra.py :16
- io_parse_glob ywatanabe1989-scitex-io-838b652/src/scitex_io/_mcp/_tools_extra.py :42
- io_get_loader ywatanabe1989-scitex-io-838b652/src/scitex_io/_mcp/_tools_extra.py :64
- io_get_saver ywatanabe1989-scitex-io-838b652/src/scitex_io/_mcp/_tools_extra.py :83
- io_read_metadata ywatanabe1989-scitex-io-838b652/src/scitex_io/_mcp/_tools_extra.py :102
- io_has_metadata ywatanabe1989-scitex-io-838b652/src/scitex_io/_mcp/_tools_extra.py :119
- io_embed_metadata ywatanabe1989-scitex-io-838b652/src/scitex_io/_mcp/_tools_extra.py :136
- io_get_cache_info ywatanabe1989-scitex-io-838b652/src/scitex_io/_mcp/_tools_extra.py :156
- io_clear_load_cache ywatanabe1989-scitex-io-838b652/src/scitex_io/_mcp/_tools_extra.py :164
- io_configure_cache ywatanabe1989-scitex-io-838b652/src/scitex_io/_mcp/_tools_extra.py :173
- io_explore_h5 ywatanabe1989-scitex-io-838b652/src/scitex_io/_mcp/_tools_extra.py :196
- io_explore_zarr ywatanabe1989-scitex-io-838b652/src/scitex_io/_mcp/_tools_extra.py :214
- io_has_h5_key ywatanabe1989-scitex-io-838b652/src/scitex_io/_mcp/_tools_extra.py :232
- io_has_zarr_key ywatanabe1989-scitex-io-838b652/src/scitex_io/_mcp/_tools_extra.py :251
- io_json2md ywatanabe1989-scitex-io-838b652/src/scitex_io/_mcp/_tools_extra.py :270
- io_list_formats ywatanabe1989-scitex-io-838b652/src/scitex_io/_mcp/server.py :28
- io_load ywatanabe1989-scitex-io-838b652/src/scitex_io/_mcp/server.py :43
- io_save ywatanabe1989-scitex-io-838b652/src/scitex_io/_mcp/server.py :92
- io_load_configs ywatanabe1989-scitex-io-838b652/src/scitex_io/_mcp/server.py :127
- io_register_info ywatanabe1989-scitex-io-838b652/src/scitex_io/_mcp/server.py :167
- io_skills_list ywatanabe1989-scitex-io-838b652/src/scitex_io/_mcp/server.py :197
- io_skills_get ywatanabe1989-scitex-io-838b652/src/scitex_io/_mcp/server.py :219
declared dependencies 28
- tqdm@*
- PyYAML@*
- ruamel.yaml@*
- mne@*
- numpy@*
- pandas@*
- click@>=8.0.0
- rich@>=13.0.0
- scitex-dev@>=0.11.7
- scitex-logging@>=0.1.0
- natsort@>=8.0
- fastmcp@>=2.0
- scipy@*
- h5py@*
- zarr@>=3
- numcodecs@*
- matplotlib@*
- optuna@*
- figrecipe@>=0.28
- pytest@>=7.0
- pytest-cov@*
- plotly@*
- Pillow@*
- sphinx@>=7.0
- sphinx-rtd-theme@>=2.0
- myst-parser@>=2.0
- sphinx-copybutton@>=0.5
- sphinx-autodoc-typehints@>=1.25