+1
stack/dune-project
+1
stack/dune-project
···
···
+12
-1
stack/toru/bin/dune
+12
-1
stack/toru/bin/dune
···
···
+6
stack/toru/bin/toru_cli.ml
+6
stack/toru/bin/toru_cli.ml
+90
-109
stack/toru/lib/toru/cache.ml
+90
-109
stack/toru/lib/toru/cache.ml
······-(* For compatibility, we need to handle files that might be stored with their path structure *)-let total_size = List.fold_left (fun acc e -> Int64.add acc (Cacheio.Entry.size e)) 0L entries in
······
+44
-34
stack/toru/lib/toru/cache.mli
+44
-34
stack/toru/lib/toru/cache.mli
·········
·········
+221
-292
stack/toru/lib/toru/downloader.ml
+221
-292
stack/toru/lib/toru/downloader.ml
···-let doc = "Download tool to use. 'auto' detects available tools, 'http' uses built-in HTTP client." in
···+Error (Printf.sprintf "HTTP %d: %s" (Requests.Status.to_int status) (Requests.Status.to_string status))
+75
-64
stack/toru/lib/toru/downloader.mli
+75
-64
stack/toru/lib/toru/downloader.mli
···
···
+10
-1
stack/toru/lib/toru/dune
+10
-1
stack/toru/lib/toru/dune
······
+167
-19
stack/toru/lib/toru/processors.ml
+167
-19
stack/toru/lib/toru/processors.ml
···
···
+16
-2
stack/toru/lib/toru/processors.mli
+16
-2
stack/toru/lib/toru/processors.mli
······
······
+287
-107
stack/toru/lib/toru/toru.ml
+287
-107
stack/toru/lib/toru/toru.ml
···-let create ~sw ~env ~base_url ~cache_path ?version ?registry_file ?registry_url ?downloader () =-match D.download downloader_instance ~url:download_url ~dest:cache_path ~hash:entry_hash () with···
···+let create ~sw ~env ~base_url ~cache_path ?version ?registry_file ?registry_url ?downloader_config () =···
+17
-4
stack/toru/lib/toru/toru.mli
+17
-4
stack/toru/lib/toru/toru.mli
············
············
-193
stack/toru/test/CACHE_IMPLEMENTATION_REPORT.md
-193
stack/toru/test/CACHE_IMPLEMENTATION_REPORT.md
···-The Cache module has been fully implemented according to the CLAUDE.md specification with extensive additional management APIs. The implementation provides robust, cross-platform cache management with XDG Base Directory compliance and comprehensive file operations.-The Cache module implementation fully satisfies the CLAUDE.md specification and extends it with comprehensive management capabilities. It provides robust, cross-platform cache management that follows OS conventions and integrates well with the broader Toru library ecosystem.
···
-143
stack/toru/test/basic.t
-143
stack/toru/test/basic.t
···-$ dune exec bin/toru_main.exe -- inspect test/python/test_registry_sha256.txt --verbose --verbose 2>&1 | head -6-$ dune exec bin/toru_main.exe -- inspect --stats test/python/test_registry_sha256.txt | head -10-$ dune exec bin/toru_main.exe -- inspect --list test/python/test_registry_sha256.txt | head -10-$ dune exec bin/toru_main.exe -- inspect --search .txt test/python/test_registry_sha256.txt | head -10-$ dune exec bin/toru_main.exe -- convert test/python/test_registry_sha256.txt /tmp/converted.txt-$ XDG_CACHE_HOME=/tmp/xdg-test dune exec bin/toru_main.exe -- inspect test/python/test_registry_sha256.txt --verbose-$ TORU_CACHE_DIR=/tmp/app-test dune exec bin/toru_main.exe -- inspect test/python/test_registry_sha256.txt --verbose-$ dune exec bin/toru_main.exe -- --app-name testapp inspect test/python/test_registry_sha256.txt-$ dune exec bin/toru_main.exe -- --data-version v1.0 inspect test/python/test_registry_sha256.txt
···
-354
stack/toru/test/cli.t
-354
stack/toru/test/cli.t
···-$ XDG_CACHE_HOME=/tmp/xdg TORU_CACHE_DIR=/tmp/app toru inspect test_registry.txt --cache-dir /tmp/cli --verbose
···
-93
stack/toru/test/downloader_demo.ml
-93
stack/toru/test/downloader_demo.ml
···
···
-84
stack/toru/test/dune
-84
stack/toru/test/dune
···
···
-207
stack/toru/test/python/generate_pooch_registry.py
-207
stack/toru/test/python/generate_pooch_registry.py
···
···
-11
stack/toru/test/python/pyproject.toml
-11
stack/toru/test/python/pyproject.toml
-1
stack/toru/test/python/test_data/.hidden/secret.txt
-1
stack/toru/test/python/test_data/.hidden/secret.txt
···
···
-1
stack/toru/test/python/test_data/config.json
-1
stack/toru/test/python/test_data/config.json
···
···
-1
stack/toru/test/python/test_data/data/simple.txt
-1
stack/toru/test/python/test_data/data/simple.txt
···
···
-1
stack/toru/test/python/test_data/data/unicode.txt
-1
stack/toru/test/python/test_data/data/unicode.txt
···
···
-3
stack/toru/test/python/test_data/docs/readme.md
-3
stack/toru/test/python/test_data/docs/readme.md
stack/toru/test/python/test_data/empty.txt
stack/toru/test/python/test_data/empty.txt
This is a binary file and will not be displayed.
stack/toru/test/python/test_data/models/small.bin
stack/toru/test/python/test_data/models/small.bin
This is a binary file and will not be displayed.
-62
stack/toru/test/python/test_metadata.json
-62
stack/toru/test/python/test_metadata.json
···
···
-10
stack/toru/test/python/test_registry_md5.txt
-10
stack/toru/test/python/test_registry_md5.txt
···
···
-13
stack/toru/test/python/test_registry_mixed.txt
-13
stack/toru/test/python/test_registry_mixed.txt
···
···
-10
stack/toru/test/python/test_registry_sha1.txt
-10
stack/toru/test/python/test_registry_sha1.txt
···
···
-10
stack/toru/test/python/test_registry_sha256.txt
-10
stack/toru/test/python/test_registry_sha256.txt
···
···
-183
stack/toru/test/test_cache.ml
-183
stack/toru/test/test_cache.ml
···-| exn -> Printf.printf "Warning: Failed to create test file %s: %s\n" filename (Printexc.to_string exn)-create_test_file cache "test3.txt" "Another test file with different content for size testing.";
···
-159
stack/toru/test/test_cache_xdg.ml
-159
stack/toru/test/test_cache_xdg.ml
···-let expected_macos_path = Filename.concat (Filename.concat (Sys.getenv "HOME") "Library") "Caches" in-let cache_with_version = Cache.create ~sw ~fs:env#fs ~version:"v2.1" "test_cache_with_version" in
···
-39
stack/toru/test/test_curl_download.ml
-39
stack/toru/test/test_curl_download.ml
···
···
-272
stack/toru/test/test_downloader.ml
-272
stack/toru/test/test_downloader.ml
···-let wrong_hash = Hash.create Hash.SHA256 "deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef" in
···
-159
stack/toru/test/test_downloader_comprehensive.ml
-159
stack/toru/test/test_downloader_comprehensive.ml
···-let wrong_hash = Hash.create Hash.SHA256 "deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef" in
···
-134
stack/toru/test/test_hash.ml
-134
stack/toru/test/test_hash.ml
···
···
-28
stack/toru/test/test_hash_manual.ml
-28
stack/toru/test/test_hash_manual.ml
···
···
-367
stack/toru/test/test_make_registry.ml
-367
stack/toru/test/test_make_registry.ml
···
···
-218
stack/toru/test/test_python_cross_validation.ml
-218
stack/toru/test/test_python_cross_validation.ml
···-let expected_sha256 = Yojson.Safe.Util.member "sha256" file_meta |> Yojson.Safe.Util.to_string in
···
-270
stack/toru/test/test_registry.ml
-270
stack/toru/test/test_registry.ml
···-let hash1 = Hash.create Hash.SHA256 "abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef" in-let entry2 = Registry.create_entry ~filename:"test2.txt" ~hash:hash2 ~custom_url:"https://example.com/test2.txt" () in-let hash1 = Hash.create Hash.SHA256 "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" in-let malformed = "valid.txt sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\njust_filename_no_hash\n" in
···
-29
stack/toru/test/test_registry_real.ml
-29
stack/toru/test/test_registry_real.ml
···-let test_registry_content = "2024/grid_-5.05_50.05/grid_-5.05_50.05.npy e10d31df93ea3c907827aefce89950127f8de3f7a4b612b82d4445feedb7bc0b\n2024/grid_-5.05_50.05/grid_-5.05_50.05_scales.npy de016fd2674fc3e4562822c6ceb8c8ee671f1d04b842bf519cb37d89b725f48e\n# This is a comment\n\n2024/grid_-5.05_50.15/grid_-5.05_50.15.npy 2841b5c65699e4a355f9ab8ed6021b72ecdfdadf63d44d60e81380ceffd1a908" in
···
-275
stack/toru/test/test_tessera_integration.ml
-275
stack/toru/test/test_tessera_integration.ml
···-let embeddings_url = "https://raw.githubusercontent.com/ucam-eo/tessera-manifests/main/registry/embeddings/embeddings_2024_lon-10_lat50.txt"-let landmasks_url = "https://raw.githubusercontent.com/ucam-eo/tessera-manifests/main/registry/landmasks/landmasks_lon-10_lat50.txt"
···
-36
stack/toru/test/test_tessera_load.ml
-36
stack/toru/test/test_tessera_load.ml
···-let manifest_path = "/Users/avsm/src/git/ucam-eo/tessera-manifests/registry/embeddings/embeddings_2024_lon-10_lat50.txt" in
···
-52
stack/toru/test/test_toru.ml
-52
stack/toru/test/test_toru.ml
···
···
-112
stack/toru/test/test_xdg_integration.ml
-112
stack/toru/test/test_xdg_integration.ml
···
···