| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| py_data_juicer-1.5.5-py3-none-any.whl | 2026-08-07 | 2.4 MB | |
| README.md | 2026-08-07 | 5.4 kB | |
| Release v1.5.5_ External OP Plugins_ HDFS I_O _ Ray Data Optimizations_ Elastic Multi-node Sharding source code.tar.gz | 2026-08-07 | 60.2 MB | |
| Release v1.5.5_ External OP Plugins_ HDFS I_O _ Ray Data Optimizations_ Elastic Multi-node Sharding source code.zip | 2026-08-07 | 61.2 MB | |
| Totals: 4 Items | 123.8 MB | 2 | |
Major Updates
๐ Stats: 18 PRs merged, from 5 contributors
๐ Code diff: 84 files changed, with 11,991 insertions and 389 deletions
๐งฉ External operator plugins โ Support loading external operators via Python entry points, allowing third-party OPs to be shipped as independent pip packages and used with zero extra config. [#1026]
๐๏ธ HDFS protocol support โ Data-Juicer can now read datasets from and export processed results to HDFS (hdfs://), consistent with the existing S3 remote-storage workflow. [#1014]
โก Leaner & faster Ray Data โ Removed eager count()/columns()/schema() actions that triggered premature Ray Dataset execution, replaced the private get_compute_strategy helper with the public TaskPoolStrategy/ActorPoolStrategy APIs, and made PartitionedRayExecutor run partitions concurrently. [#1022] [#1024] [#1025] [#1032] [#1036]
๐ Elastic multi-node sharding โ Available as a runnable reference workflow (scripts + sample configs under demos/elastic_sharding/) that pre-splits a large JSONL dataset into shards and processes them elastically across multiple nodes with a node-local Data-Juicer Ray executor, including retries, stale-claim recovery, status inspection, and ordered merge. [#1015]
๐ RayAnalyzer for distributed analysis โ New RayAnalyzer computes filter stats via Ray map_batches and aggregates overall statistics (count/mean/std/min/max) using Ray native aggregation operators, without pandas materialization. It is the distributed counterpart to the local Analyzer. [#1016]
Enhancements
- External operator plugins via entry points: third-party OPs can be shipped as independent pip packages and are loaded into the global
OPERATORSregistry atimport data_juicer.opstime. [#1026] - HDFS protocol support for dataset loading and exporting. [#1014]
- Public Ray compute strategies: replaced the private
get_compute_strategyhelper with the publicTaskPoolStrategy/ActorPoolStrategyAPIs. [#1024] - Reduced eager Ray dataset actions: removed premature
count(), switched totake(k)/take_all(), and avoided repeatedcolumns()/schema()calls. [#1025] - Elastic multi-node sharding: available as a runnable reference workflow (scripts + sample configs under
demos/elastic_sharding/) that pre-splits a large JSONL dataset into shards and processes them elastically across multiple nodes with a node-local Data-Juicer Ray executor (retries, stale-claim recovery, status inspection, and ordered merge). [#1015] - RayAnalyzer for distributed data analysis: computes filter stats via Ray
map_batchesand aggregates overall statistics without pandas materialization. [#1016] - Membership operators (
in/not in) ingeneral_field_filterfor expressions likelang in ['en', 'zh']. [#1000] - Streamed n-gram frequency counting: count character and word n-grams as they are generated instead of retaining an occurrence-sized intermediate list, cutting peak memory in
character_repetition_filterandword_repetition_filterwhile preserving ratios, caching, and filtering decisions. [#1029] - Bounded MinHash permutation workspace: reduce token-by-permutation matrices in 8 MiB blocks and fold exact minima in
document_minhash_deduplicator, cutting RSS from 768.0 to 271.9 MiB at 4x while preserving byte signatures. [#1035] - Test refactor & coverage: enhanced tests for
base_op, job utils, and config. [#1018]
Fixed Bugs
- Concurrent partitioned Ray execution:
PartitionedRayExecutornow drives partitions concurrently via a driver-sideThreadPoolExecutorinstead of serially, preserving partition order. [#1022] - Elastic actor pool concurrency:
ActorPoolStrategynow honors(min, max)num_procranges instead of collapsing them to a fixed size. [#1032] - Partition checkpoint preservation: partition checkpoints now survive Ray block-layout changes, so resumed runs no longer reprocess completed partitions. [#1036]
text_chunk_mappervisible delimiters:split_patternno longer emits visible delimiters (e.g._@@@_) as standalone chunks. [#999]calibrate_response_mapperoutput pattern: now honorsoutput_patternfor regex extraction instead of ignoring it. [#1017]image_diffusion_mappernull captions: handles missing or empty caption fields gracefully instead of crashing. [#1020]- Silent no-op on empty OP list:
DefaultExecutorandRayExecutornow warn when the process operator list is empty. [#1020] - pandas 3 incompatibility with Ray Data: pinned
pandas<3in thedistributedextra to avoidAttributeErrorduring JSON export. [#1023] - pyarrow>=17 compatibility: bumped
fsspecaccordingly. [#1020] - Python 3.13+ dependency resolution: removed the
numpy<2.0upper bound (blockedtf-keras/ml-dtypesneedingnumpy>=2.1.0) and upgradedlabel-studioto>=1.23.0. [#1027]
Acknowledgements
- @LiuGuH contributed HDFS protocol support for dataset loading and exporting. [#1014]
- @macroguo-ghy contributed streamed n-gram frequency counting and a bounded MinHash permutation workspace to cut peak memory. [#1029] [#1035]
New Contributors
- @LiuGuH made their first contribution in [#1014]
Full Changelog: https://github.com/datajuicer/data-juicer/compare/v1.5.4...v1.5.5