Commit ee068bf
refactor: remove dead ops, legacy env paths, unused deps (#2)
* refactor: remove dead ops, legacy env paths, unused deps
Comprehensive sweep:
- Drop unsupported graph/runtime operators: SwitchOp, MergeOp, EnterOp,
ExitOp, FutureOp, CacheFetchOp, LLMCompletionOp, AppendMessageOp,
LastMessageOp + their factories, registry entries, runtime dispatch
branches, and the orphan runtime/functional/ module (zero importers).
- Strip dead helpers: deploy.shell.host_ip, cli.core.logging.get_level/
set_level, HttpClient.put/patch/delete, BaseClient/BaseAsyncClient
put/patch/delete, utils.io_locations.write_output_location and its
internal DB/S3 write helpers, schemas.worker.WorkerElasticStateResponse
and HardwareUsage.
- Clean legacy env paths: delete .env.template duplicate; drop the
S3_CERT_LOCATION alias and migrate readers to S3_CERT_FILE; remove
dead envs.py bindings (S3_PUBLIC_DATA_PREFIX, LUMILAKE_TIMEOUT,
LUMILAKE_BASE_URL); update README and error message to point at
.env.example.
- Drop unused server-extra deps: backoff, cachetools, sqlglot, tabulate
(+ types-cachetools); refresh uv.lock and bump urllib3 to 2.7.0 to
clear pip-audit CVEs.
- CI: replace stale .gitleaksignore with a .gitleaks.toml regex
allowlist for envs.S3_* config reads; add commit-message.prefix
"build" + scope to dependabot.yml so its PR titles satisfy
check_pr_title.
Verified: 237 tests pass, pre-commit clean (isort/black/ruff/codespell/
mypy), pip-audit clean, gitleaks clean, registry trimmed to 12 live ops.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Signed-off-by: Zhengyuan Su <su.zhengyuan@u.nus.edu>
* chore: drop repo-local agent_space + obsolete gitleaks allowlist
- AGENTS.md: drop the agent_space/ pointer; the rule is now just
"never commit throwaway scripts / experiments".
- pyproject.toml: drop "agent_space" from the Ruff exclude list.
- Delete .gitleaks.toml. CI scans with --no-git
(.github/workflows/security.yml:49) and the working tree passes
Gitleaks without any allowlist; the allowlist also referenced
envs.S3_SECRET_KEY, a legacy name no longer present in source.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Signed-off-by: Zhengyuan Su <su.zhengyuan@u.nus.edu>
* refactor: drop more zero-callsite functions (round 2)
Comprehensive sweep round 2 — every function below has zero callers
outside its own definition file (verified via grep across src/, tests/,
and examples/).
Medium (definitions only, no callsites):
- graphs/utils.py:partition_op — delete the file. Cascades into
ops/util_ops.py:SliceOp/ConcatOp + slice_op/concat factories (which
were only used by partition_op) and their entries in ops/__init__.py.
- runtime/runtime_graph.py:_build_sql_template — also strips the
helpers it was the sole consumer of: _quote_column_ref,
_quote_table_ref, _quote_identifier, _sql_param_label,
_decode_ref_token, and the REF_TOKEN_PREFIX constant.
- runtime/server.py:_workflow_graph_merge_signature
- runtime/server.py:_parent_workflow_id_for_group
- runtime/runtime_manager/flowmesh.py:
_validate_shard_intent_cardinality_contract,
_promote_shard_dependencies
- server/routes/jobs.py:_serialize_output_locations
Low (definitions only, no production callsites):
- deploy/docker_client.py:container_remove
- deploy/shell.py:run_output
- utils/utils.py:indices_to_list
- utils/parsing.py:parse_bool, build_database_url
237 tests still pass; pre-commit clean.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Signed-off-by: Zhengyuan Su <su.zhengyuan@u.nus.edu>
* refactor: round 3 — dead modules, helpers, and private cascades
state_manager.py and llm_info.py have no importers anywhere — entire
modules removed. Within utils/, scheduler/, and io_locations/, more
top-level helpers had no callers (iter_batch, execute_unordered,
run_coroutine_blocking, detect_sccs, calculate_node_depths,
default_worker_filter, filtered_dependencies, ExecutionPlan,
GraphValidationError, plus the four io_locations top-level entry
points: normalize_location_key, load_input_location,
ensure_input_location_exists, ensure_output_location_available).
Their removal cascades: the io_locations DB chain (_db_conn,
_split_table, _ensure_db_*, _read_db_column) and the S3 single-object
chain (_is_s3_folder_prefix, _is_s3_image_object,
_ensure_s3_object_*, _read_s3_object, _list_s3_objects) only existed
to support those entry points, so they go too — and with them the
psycopg / sql / DBLocation imports. The sharded S3 path
(write_sharded_index, read_s3_bytes, read_s3_json, list_sharded_index)
stays; it has external callers.
build_dependency_list in schedule/models.py was only used by the
removed filtered_dependencies and follows it out.
Left intact (push-back on review):
- tests/runtime/server/test_run_batch.py:FakeContext.Queue(maxsize=...).
The parameter is intentional API parity — production code calls
ctx.Queue(maxsize=1) at runtime/server.py:2400, so the mock has to
accept the kwarg even though FakeQueue ignores capacity.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Signed-off-by: Zhengyuan Su <su.zhengyuan@u.nus.edu>
* refactor: drop prefix/radix-tree feature surface and cascading dead helpers
The prefix/radix-tree machinery belongs to the remote optimizer, not the
OSS runtime. Removing it lets every method, helper, and type that only
existed to serve that machinery follow it out.
What that pulls along, verified zero non-self callers in src/, tests/,
and examples/:
- The full Op-side prefix surface: get_input_slice (abstract +
every override), signature / _state_signature / _input_signature,
replace_input, plus the LLMChatOp _structural_outputs_signature
helper it owned.
- The Graph/CompiledGraph prefix surface: build_input_slices,
build_llm_dependencies, _get_llm_dependencies, the input_slices /
data_size properties, plus merge, disjoint_subgraphs, recompile,
apply_to_data, visualize, save, load — and the module-level from_ops
/ from_json / save / load wrappers.
- Slice (lumilake.common) and its supporting partition / identity in
utils.utils, detect_wccs in utils.graph.
- Optimizer leftovers from the same theme: QueryPlanOption,
DBQuery.plans, QueryPlanChoice.samples, the
_split_bonus_aware_exec_cost helper.
- Round-4 follow-ons unrelated to the prefix removal but in the same
comprehensive sweep: runtime/data.py (orphan), runtime/utils/pool.py
(no importers after the loop-variant trim), MPQueue, the three MP /
concurrent EventLoop variants, the cli/core/query.parse_query_filters
helper (zero callers).
routes/trace.py grows a small fast path: when job storage is an
in-memory backend, skip asyncio.to_thread — the threading hop only
helps for I/O-backed storages. (Behavior unchanged for real S3-backed
deployments; tests run with the in-memory backend now skip the thread
hop.)
237 → 235 tests passing (two removed with utils/prefix/). pre-commit
clean (isort/black/ruff/codespell/mypy).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Signed-off-by: Zhengyuan Su <su.zhengyuan@u.nus.edu>
* ci: add env and package validation workflows
Signed-off-by: Zhengyuan Su <su.zhengyuan@u.nus.edu>
---------
Signed-off-by: Zhengyuan Su <su.zhengyuan@u.nus.edu>
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>1 parent 0f3cb76 commit ee068bf
61 files changed
Lines changed: 305 additions & 7254 deletions
File tree
- .github
- workflows
- scripts
- ci
- dev
- src/lumilake
- cli/core
- deploy
- graphs
- ops
- runtime
- functional
- optimizer
- schedule
- runtime_manager
- utils
- schemas
- sdk
- server
- parser
- routes
- utils
- prefix
- tests/utils/prefix
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
This file was deleted.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
8 | 11 | | |
9 | 12 | | |
10 | 13 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
This file was deleted.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
7 | 7 | | |
8 | 8 | | |
9 | 9 | | |
10 | | - | |
| 10 | + | |
11 | 11 | | |
12 | 12 | | |
13 | 13 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
86 | 86 | | |
87 | 87 | | |
88 | 88 | | |
89 | | - | |
| 89 | + | |
90 | 90 | | |
91 | 91 | | |
92 | 92 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
12 | 12 | | |
13 | 13 | | |
14 | 14 | | |
15 | | - | |
16 | 15 | | |
17 | 16 | | |
18 | 17 | | |
| |||
21 | 20 | | |
22 | 21 | | |
23 | 22 | | |
24 | | - | |
25 | 23 | | |
26 | 24 | | |
27 | 25 | | |
28 | | - | |
29 | 26 | | |
30 | | - | |
31 | 27 | | |
32 | 28 | | |
33 | 29 | | |
| |||
59 | 55 | | |
60 | 56 | | |
61 | 57 | | |
62 | | - | |
63 | 58 | | |
64 | 59 | | |
65 | 60 | | |
| |||
91 | 86 | | |
92 | 87 | | |
93 | 88 | | |
94 | | - | |
| 89 | + | |
95 | 90 | | |
96 | 91 | | |
97 | 92 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
0 commit comments