All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
0.6.1 - 2026-01-28
- Ruff linting in CI (
ruff check+ruff format --check). - Pre-commit hooks with ruff for local development.
pre-commitadded to dev dependencies.
- Build Status badge in README (updated to new GitHub Actions format).
0.6.0 - 2026-01-28
- Flat directory support — input folders without class subdirectories are auto-detected and split directly (#47).
groupparameter with"stem","sibling", and callable support for flexible file grouping (#39, #41, #51).group="sibling"mode for splitting parallel directories (e.g.images/+annotations/) in lockstep (#51).shuffleparameter (Trueby default) to disable shuffling for time series data (#44).--group,--no-shuffle, and--kfoldCLI flags.- k-fold cross-validation split via
kfold()(#50). fixed="auto"to auto-compute validation size from the smallest class (#40).- File format filtering via
formatsparameter and--formatsCLI flag (#38). - Symlink support via
move="symlink"and--symlinkCLI flag (#48). - Migrated
pyproject.tomlto PEP 621 for Poetry 2.x. - Replaced
black/isortwithrufffor linting.
group_prefixno longer mismatches filenames with shared prefixes (e.g.image_130vsimage_1300) — now matches byPath.steminstead ofstartswith(#39).- Error message in
split_class_dir_fixed(#35). - Typo: "get get" → "get" (#33).
- Removed stray debugging
printstatement.
0.5.1 - 2022-02-03
shutil.movecompatibility for Python <= 3.8 (#32).
- Tests for
pathlib.Pathinputs.
0.5.0 - 2022-01-30
- Warn users if the input folder is not in the expected format (#13).
fixednow accepts 3 values to limit the number of training samples (#24).moveflag to move files instead of copying (#28).
- Missing items for oversampling with groups.
- Switched CI from Travis to GitHub Actions.
- Dropped Python 3.6, added Python 3.10 support.
tqdmmoved to optional extras (pip install split-folders[full]).
0.4.3 - 2020-11-01
- Integer
fixedparameter handling. - Documentation about
--ratioCLI usage.
0.4.2 - 2020-08-05
- Oversampling documentation and typos.
0.4.1 - 2020-08-05
- Renamed
shared_prefixtogroup_prefix.
0.4.0 - 2020-08-04
group_prefixoption to group files by shared filename prefix.__version__attribute.
- Switched build system to Poetry.
- CLI command is now
splitfolders(withsplit_foldersandsplit-foldersas aliases). - Input folder is now a positional CLI argument.
0.3.1 - 2019-07-30
- Require Python 3.6+.
0.3.0 - 2019-07-30
- Optional progress bar via
tqdm(#10).
- Graceful handling when
tqdmis not installed.
0.2.3 - 2019-07-05
- Assertion error due to floating-point imprecision in ratio calculations.
0.2.2 - 2019-05-12
- Improved error message when there are not enough files for
fixed.
0.2.1 - 2018-11-09
- One file going missing in certain split configurations (#1).
0.2.0 - 2018-10-18
- Randomized oversampling for imbalanced datasets.
- Ignore dotfiles during splitting.
0.1.0 - 2018-10-04
- Initial release.
- Split folders into train, validation, and test sets.
ratioandfixedsplit modes.- Seed for reproducible splits.
- CLI interface.