a little task queue for python
This report summarizes scanner evidence for coleifer/huey, a Python project with 6,045 GitHub stars. SynthScan examined 16,576 lines of code across 99 source files, recording 259 pattern matches distributed across 11 syntactic categories. The legacy adjusted pattern signal is 23.1 (Elevated pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Can maintainers explain intent, assumptions, and trade-offs? 138 finding(s).
Are imports declared and package/API names verified? 68 finding(s).
Are wrappers, guards, and repeated structures necessary? 171 finding(s).
Which changes need focused human review? 259 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 259 distinct pattern matches across 11 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | huey/consumer.py | 656 | def _set_child_signal_handlers(self): | CODE |
| LOW | huey/consumer.py | 668 | def _handle_stop_signal_worker(self, sig_num, frame): | CODE |
| LOW | huey/tests/test_registry.py | 62 | def test_user_task_kwarg_preserved(self): | CODE |
| LOW | huey/tests/test_registry.py | 75 | def test_context_task_reserialization(self): | CODE |
| LOW | huey/tests/test_utils.py | 107 | def test_construct_preserves_lock_file(self): | CODE |
| LOW | huey/tests/test_stats.py | 53 | def test_init_closes_own_connection(self): | CODE |
| LOW | huey/tests/test_stats.py | 57 | def test_init_preserves_open_connection(self): | CODE |
| LOW | huey/tests/test_stats.py | 80 | def test_close_drains_what_the_writer_left_behind(self): | CODE |
| LOW | huey/tests/test_stats.py | 126 | def test_attempt_enders_clear_inflight(self): | CODE |
| LOW | huey/tests/test_stats.py | 142 | def test_recorder_failure_logged_not_raised(self): | CODE |
| LOW | huey/tests/test_stats.py | 148 | def test_unrepresentable_args_still_record_the_event(self): | CODE |
| LOW | huey/tests/test_stats.py | 168 | def test_error_then_retry_duration_attributed_once(self): | CODE |
| LOW | huey/tests/test_stats.py | 194 | def test_max_events_scoped_per_queue(self): | CODE |
| LOW | huey/tests/test_stats.py | 224 | def test_unregistered_tasks_still_listed(self): | CODE |
| LOW | huey/tests/test_stats.py | 242 | def test_registered_tasks_are_marked(self): | CODE |
| LOW | huey/tests/test_stats.py | 268 | def test_no_filters_returns_everything_newest_first(self): | CODE |
| LOW | huey/tests/test_stats.py | 289 | def test_search_matches_error_task_and_id(self): | CODE |
| LOW | huey/tests/test_stats.py | 320 | def test_ordered_by_event_time_not_insert_order(self): | CODE |
| LOW | huey/tests/test_stats.py | 340 | def test_search_treats_wildcards_literally(self): | CODE |
| LOW | huey/tests/test_stats.py | 371 | def test_scoped_to_this_queue(self): | CODE |
| LOW | huey/tests/test_stats.py | 398 | def test_writer_restarted_in_child(self): | CODE |
| LOW | huey/tests/test_stats.py | 423 | def test_buffered_rows_written_by_parent_alone(self): | CODE |
| LOW | huey/tests/test_stats.py | 439 | def test_shutdown_hook_flushes_in_child(self): | CODE |
| LOW | huey/tests/test_stats.py | 451 | def test_closed_recorder_not_revived(self): | CODE |
| LOW | huey/tests/test_signals.py | 42 | def test_signal_complete_result_ready(self): | CODE |
| LOW | huey/tests/test_signals.py | 280 | def test_handler_error_does_not_block_others(self): | CODE |
| LOW⚡ | huey/tests/test_django_tasks.py | 168 | def test_unserializable_return(self): | CODE |
| LOW⚡ | huey/tests/test_django_tasks.py | 176 | def test_unsupported_priority(self): | CODE |
| LOW⚡ | huey/tests/test_django_tasks.py | 183 | def test_moved_function_marks_failed(self): | CODE |
| LOW | huey/tests/test_django_tasks.py | 222 | def test_consumer_integration(self): | CODE |
| LOW | huey/tests/test_serializer.py | 40 | def test_mismatched_compression(self): | CODE |
| LOW | huey/tests/test_sql_huey.py | 111 | def test_consumer_integration(self): | CODE |
| LOW | huey/tests/test_crontab.py | 86 | def test_crontab_all_together(self): | CODE |
| LOW | huey/tests/test_crontab.py | 139 | def test_crontab_wrap_around_hour(self): | CODE |
| LOW | huey/tests/test_crontab.py | 145 | def test_crontab_wrap_around_day_of_week(self): | CODE |
| LOW | huey/tests/test_storage.py | 74 | def test_result_items_str_keys(self): | CODE |
| LOW | huey/tests/test_storage.py | 150 | def test_result_store_methods(self): | CODE |
| LOW | huey/tests/test_storage.py | 238 | def test_consumer_integration(self): | CODE |
| LOW | huey/tests/test_storage.py | 270 | def test_put_if_empty_concurrent(self): | CODE |
| LOW | huey/tests/test_storage.py | 299 | def test_put_if_empty_ttl_unsupported(self): | CODE |
| LOW | huey/tests/test_storage.py | 307 | def test_conflicting_init_args(self): | CODE |
| LOW | huey/tests/test_storage.py | 350 | def test_wait_result_multiple_waiters(self): | CODE |
| LOW | huey/tests/test_storage.py | 462 | def test_dequeue_error_handling(self): | CODE |
| LOW | huey/tests/test_storage.py | 480 | def test_wait_result_timeout_clamp(self): | CODE |
| LOW | huey/tests/test_storage.py | 506 | def test_enqueued_items_limit(self): | CODE |
| LOW | huey/tests/test_storage.py | 587 | def test_dequeue_multithreaded(self): | CODE |
| LOW | huey/tests/test_storage.py | 639 | def test_sqlite_params_normalized(self): | CODE |
| LOW | huey/tests/test_storage.py | 694 | def test_filesystem_result_store(self): | CODE |
| LOW | huey/tests/test_storage.py | 722 | def test_filesystem_result_items_truncated(self): | CODE |
| LOW | huey/tests/test_storage.py | 783 | def test_fs_threaded_file_lock(self): | CODE |
| LOW | huey/tests/test_storage.py | 806 | def test_consumer_integration(self): | CODE |
| LOW | huey/tests/test_helpers.py | 50 | def test_semaphore_contention(self): | CODE |
| LOW | huey/tests/test_helpers.py | 73 | def test_semaphore_expiration(self): | CODE |
| LOW | huey/tests/test_helpers.py | 91 | def test_semaphore_renewed_while_running(self): | CODE |
| LOW | huey/tests/test_helpers.py | 108 | def test_semaphore_storage_types(self): | CODE |
| LOW | huey/tests/test_api.py | 134 | def test_result_readiness_reads_result(self): | CODE |
| LOW | huey/tests/test_api.py | 271 | def test_revoke_task_instance(self): | CODE |
| LOW | huey/tests/test_api.py | 321 | def test_revoke_task_instance_persistent(self): | CODE |
| LOW | huey/tests/test_api.py | 537 | def test_blocking_result_no_sentinel_leak(self): | CODE |
| LOW | huey/tests/test_api.py | 773 | def test_timeout_coop_helpers(self): | CODE |
| 49 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH⚡ | huey/storage.py | 889 | 'queue text not null, key text not null, value blob not null, ' | CODE |
| HIGH⚡ | huey/storage.py | 892 | 'id integer not null primary key, queue text not null, ' | CODE |
| HIGH⚡ | huey/storage.py | 893 | 'data blob not null, timestamp real not null)') | CODE |
| HIGH⚡ | huey/storage.py | 897 | 'id integer not null primary key, queue text not null, ' | CODE |
| HIGH⚡ | huey/storage.py | 898 | 'data blob not null, priority real not null default 0.0)') | CODE |
| HIGH⚡ | huey/storage.py | 903 | 'queue text not null, key text not null, ' | CODE |
| HIGH⚡ | huey/storage.py | 1184 | 'queue text not null, key text not null, value bytea not null, ' | CODE |
| HIGH⚡ | huey/storage.py | 1188 | 'id bigserial primary key, queue text not null, ' | CODE |
| HIGH⚡ | huey/storage.py | 1189 | 'data bytea not null, timestamp double precision not null)', | CODE |
| HIGH⚡ | huey/storage.py | 1195 | 'id bigserial primary key, queue text not null, ' | CODE |
| HIGH⚡ | huey/storage.py | 1196 | 'data bytea not null, ' | CODE |
| HIGH⚡ | huey/storage.py | 1203 | 'queue text not null, key text not null, ' | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | huey/__init__.py | 5 | CODE | |
| LOW | huey/__init__.py | 6 | CODE | |
| LOW | huey/__init__.py | 7 | CODE | |
| LOW | huey/__init__.py | 8 | CODE | |
| LOW | huey/__init__.py | 9 | CODE | |
| LOW | huey/__init__.py | 10 | CODE | |
| LOW | huey/__init__.py | 11 | CODE | |
| LOW | huey/__init__.py | 12 | CODE | |
| LOW | huey/__init__.py | 13 | CODE | |
| LOW | huey/__init__.py | 14 | CODE | |
| LOW | huey/__init__.py | 15 | CODE | |
| LOW | huey/__init__.py | 16 | CODE | |
| LOW | huey/__init__.py | 17 | CODE | |
| LOW | huey/__init__.py | 18 | CODE | |
| LOW | huey/__init__.py | 19 | CODE | |
| LOW | huey/__init__.py | 20 | CODE | |
| LOW | huey/__init__.py | 21 | CODE | |
| LOW | huey/__init__.py | 22 | CODE | |
| LOW | huey/tests/test_stats.py | 2 | CODE | |
| LOW | huey/tests/test_signals.py | 5 | CODE | |
| LOW | huey/tests/__init__.py | 1 | CODE | |
| LOW | huey/tests/__init__.py | 2 | CODE | |
| LOW | huey/tests/__init__.py | 3 | CODE | |
| LOW | huey/tests/__init__.py | 4 | CODE | |
| LOW | huey/tests/__init__.py | 5 | CODE | |
| LOW | huey/tests/__init__.py | 6 | CODE | |
| LOW | huey/tests/__init__.py | 7 | CODE | |
| LOW | huey/tests/__init__.py | 8 | CODE | |
| LOW | huey/tests/__init__.py | 9 | CODE | |
| LOW | huey/tests/__init__.py | 10 | CODE | |
| LOW | huey/tests/__init__.py | 11 | CODE | |
| LOW | huey/tests/__init__.py | 12 | CODE | |
| LOW | huey/tests/__init__.py | 13 | CODE | |
| LOW | huey/tests/__init__.py | 14 | CODE | |
| LOW | huey/tests/__init__.py | 15 | CODE | |
| LOW | huey/tests/__init__.py | 16 | CODE | |
| LOW | huey/tests/__init__.py | 17 | CODE | |
| LOW | huey/tests/__init__.py | 18 | CODE | |
| LOW | huey/tests/test_mini.py | 11 | CODE | |
| LOW | huey/tests/__main__.py | 4 | CODE | |
| LOW | huey/contrib/sql_huey.py | 4 | CODE | |
| LOW | huey/contrib/mini.py | 16 | CODE | |
| LOW | huey/contrib/djhuey/__init__.py | 164 | CODE | |
| LOW | huey/contrib/djhuey/__init__.py | 158 | CODE | |
| LOW | huey/contrib/djhuey/__init__.py | 161 | CODE | |
| LOW | huey/contrib/flask_admin/__init__.py | 1 | CODE | |
| LOW | huey/contrib/flask_admin/__init__.py | 2 | CODE | |
| LOW | huey/contrib/flask_admin/__init__.py | 5 | CODE | |
| LOW | examples/mini/mini.py | 2 | CODE | |
| LOW | examples/simple/amain.py | 10 | CODE | |
| LOW | examples/simple/tasks.py | 6 | CODE | |
| LOW | examples/simple/main.py | 6 | CODE | |
| LOW | examples/flask_ex/main.py | 2 | CODE | |
| LOW | examples/flask_ex/main.py | 3 | CODE | |
| LOW | examples/flask_ex/main.py | 4 | CODE | |
| LOW | examples/django_ex/djangoex/test_app/apps.py | 10 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | huey/signals.py | 50 | except Exception: | CODE |
| LOW | huey/api.py | 513 | except Exception as exc: | CODE |
| LOW | huey/api.py | 634 | except Exception: | CODE |
| LOW | huey/api.py | 643 | except Exception: | CODE |
| LOW | huey/api.py | 765 | except Exception: | CODE |
| LOW⚡ | huey/consumer.py | 105 | except Exception: | CODE |
| LOW⚡ | huey/consumer.py | 113 | except Exception: | CODE |
| LOW⚡ | huey/consumer.py | 120 | except Exception: | CODE |
| LOW⚡ | huey/consumer.py | 128 | except Exception: | CODE |
| LOW | huey/consumer.py | 178 | except Exception: | CODE |
| LOW | huey/consumer.py | 185 | except Exception: | CODE |
| LOW | huey/consumer.py | 204 | except Exception: | CODE |
| MEDIUM | huey/storage.py | 1241 | def _close_quiet(self, conn): | CODE |
| LOW | huey/storage.py | 520 | except Exception: | CODE |
| LOW | huey/storage.py | 861 | except Exception: | CODE |
| LOW | huey/storage.py | 1244 | except Exception: | CODE |
| LOW | huey/storage.py | 1675 | except Exception: | CODE |
| LOW | huey/bin/huey_consumer.py | 20 | except Exception: | CODE |
| MEDIUM | huey/bin/huey_consumer.py | 17 | def load_huey(path): | CODE |
| LOW | huey/tests/test_storage.py | 50 | except Exception: | CODE |
| LOW | huey/tests/test_consumer.py | 275 | except Exception: | CODE |
| LOW | huey/tests/test_postgres.py | 26 | except Exception: | CODE |
| LOW | huey/tests/test_postgres.py | 163 | except Exception: | CODE |
| LOW | huey/contrib/mini.py | 96 | except Exception as exc: | CODE |
| LOW | huey/contrib/mini.py | 130 | except Exception: | CODE |
| LOW | huey/contrib/stats.py | 159 | except Exception: | CODE |
| LOW | huey/contrib/stats.py | 166 | except Exception: | CODE |
| LOW | huey/contrib/stats.py | 203 | except Exception: | CODE |
| LOW | huey/contrib/stats.py | 231 | except Exception: | CODE |
| LOW⚡ | huey/contrib/stats.py | 370 | except Exception: | CODE |
| LOW⚡ | huey/contrib/stats.py | 379 | except Exception: | CODE |
| LOW⚡ | huey/contrib/stats.py | 387 | except Exception: | CODE |
| LOW⚡ | huey/contrib/stats.py | 396 | except Exception: | CODE |
| MEDIUM | huey/contrib/stats.py | 135 | def _on_signal(self, signal, task, exc=None): | CODE |
| MEDIUM | huey/contrib/stats.py | 375 | def pending_tasks(huey, limit=50): | CODE |
| MEDIUM | huey/contrib/stats.py | 383 | def scheduled_tasks(huey, limit=50): | CODE |
| LOW | huey/contrib/djhuey/tasks_backend.py | 167 | except Exception as exc: | CODE |
| LOW | huey/contrib/djhuey/stats/apps.py | 54 | except Exception: | CODE |
| LOW | huey/contrib/djhuey/stats/admin.py | 153 | except Exception: | CODE |
| LOW | huey/contrib/flask_admin/panel.py | 50 | except Exception: | CODE |
| LOW | huey/contrib/flask_admin/panel.py | 96 | except Exception: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | huey/signals.py | 41 | except ValueError: | CODE |
| HIGH | huey/consumer.py | 426 | except KeyboardInterrupt: | CODE |
| HIGH | huey/consumer.py | 515 | except OSError: | CODE |
| HIGH | huey/storage.py | 1244 | except Exception: | CODE |
| HIGH | huey/storage.py | 355 | except IndexError: | CODE |
| HIGH | huey/contrib/djhuey/__init__.py | 83 | except KeyError: | CODE |
| HIGH | huey/contrib/djhuey/management/commands/run_huey.py | 53 | except AttributeError: | CODE |
| HIGH | huey/contrib/djhuey/stats/admin.py | 153 | except Exception: | CODE |
| HIGH | huey/contrib/flask_admin/panel.py | 96 | except Exception: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | huey/api.py | 82 | # Create a huey instance. | STRING |
| MEDIUM | huey/consumer.py | 344 | # Create the execution environment helper. | COMMENT |
| MEDIUM | huey/consumer.py | 350 | # Create the event used to signal the process should terminate. We'll | COMMENT |
| MEDIUM | huey/consumer.py | 369 | # Create the scheduler process (but don't start it yet). | COMMENT |
| MEDIUM | huey/consumer.py | 373 | # Create the worker process(es) (also not started yet). | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | huey/api.py | 1421 | CODE | |
| LOW | huey/api.py | 1053 | CODE | |
| LOW | huey/consumer.py | 116 | CODE | |
| LOW | huey/consumer.py | 503 | CODE | |
| LOW | huey/utils.py | 99 | CODE | |
| LOW | huey/storage.py | 1041 | CODE | |
| LOW | huey/contrib/sql_huey.py | 19 | CODE | |
| LOW | huey/contrib/mini.py | 107 | CODE | |
| LOW | huey/contrib/stats.py | 135 | CODE | |
| LOW | huey/contrib/stats.py | 177 | CODE | |
| LOW | huey/contrib/djhuey/stats/admin.py | 129 | CODE | |
| LOW | huey/contrib/flask_admin/panel.py | 74 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | huey/api.py | 95 | CODE | |
| LOW | huey/api.py | 175 | CODE | |
| LOW | huey/api.py | 193 | CODE | |
| LOW | huey/api.py | 853 | CODE | |
| LOW | huey/api.py | 1053 | CODE | |
| LOW | huey/consumer.py | 301 | CODE | |
| LOW | huey/storage.py | 469 | CODE | |
| LOW | huey/storage.py | 909 | CODE | |
| LOW | huey/contrib/valkey_glide.py | 18 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | huey/storage.py | 921 | # is needed, then we will utilize Sqlite's AUTOINCREMENT functionality, | COMMENT |
| LOW | huey/tests/test_api.py | 891 | # it to re-read. Attempting to read again will just return the cached | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | huey/utils.py | 25 | logger = logging.getLogger(__name__) | CODE |
| LOW | huey/contrib/djhuey/management/commands/run_huey.py | 11 | logger = logging.getLogger(__name__) | CODE |
| LOW | huey/contrib/flask_admin/__init__.py | 14 | __all__ = ['HueyPanel', 'HueyStats', 'enable_stats'] | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | huey/consumer.py | 446 | # Check if gevent is used, and if monkey-patch applied properly. | COMMENT |