HumanSignal / HumanSignal/label-studio
io_storages/filesystem.py is a dead module — its `from .base import …` target doesn't exist
- Dominant language
- TypeScript
- Stars
- 28.3k
- Forks
- 3.7k
- Avg merge
- 14h
- Merged PRs (30d)
- 15
Description
**Describe the bug**
`label_studio/io_storages/filesystem.py:10` does `from .base import BaseForm, BaseStorage, CloudStorage`, but no `base` module exists in `io_storages/` (nearest is `base_models.py`, which does not define `BaseForm` or `CloudStorage`). Importing the module raises `ModuleNotFoundError` immediately.
A repo-wide search finds zero importers of this module, so nothing currently breaks — but it's a landmine: the first future import crashes. Suggest either deleting the file or fixing the import if it's meant to be live; happy to PR whichever you prefer.
**To Reproduce**
1. `python -c "import label_studio.io_storages.filesystem"` → `ModuleNotFoundError: No module named 'label_studio.io_storages.base'`
2. `ls label_studio/io_storages/` → no `base.py`
3. `grep -rn "io_storages.filesystem\|from .filesystem\|import filesystem" label_studio/` → zero importers
**Expected behavior**
Modules in the package either import cleanly or don't ship.
**Screenshots**
n/a
**Environment (please complete the following information):**
- OS: n/a (code-level finding)
- Label Studio Version: develop @ 63fdee07510d873e39920b1f75daedae721e71ca (2026-07-12)
**Additional context**
Found while validating DACIP, a static contract-analysis tool I'm building, against open-source codebases.
Contributor guide
Research direction
Start with label_studio/io_storages/filesystem.py and reproduce the failure with `python -c "import label_studio.io_storages.filesystem"`. Check the repository search results and nearby io_storages modules before choosing whether the unused module should be removed or its import corrected. Done means the dead module no longer ships broken, and the relevant import or package checks pass.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- backend
- Issue type
- Bug
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 72/100