a small, expressive orm -- supports postgresql, mysql, sqlite, now with asyncio
This report presents the forensic synthetic code analysis of coleifer/peewee, a Python project with 11,984 GitHub stars. SynthScan v2.0 examined 75,484 lines of code across 140 source files, recording 1386 pattern matches distributed across 13 syntactic categories. The overall adjusted score of 22.7 places this repository in the Moderate AI signal band.
The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).
This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.
Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.
This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.
The scanner identified 1386 distinct pattern matches across 13 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. 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 diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | peewee.py | 3209 | def _generate_name_from_fields(self, model, fields): | CODE |
| LOW | peewee.py | 3230 | def _truncate_constraint_name(constraint, maxlen=64): | CODE |
| LOW | peewee.py | 3976 | def _build_on_conflict_target(self, on_conflict): | CODE |
| LOW | peewee.py | 3992 | def _build_on_conflict_update(self, on_conflict, query): | CODE |
| LOW | peewee.py | 4420 | def unregister_window_function(self, name): | CODE |
| LOW | peewee.py | 8068 | def _populate_unsaved_relations(self, field_dict): | CODE |
| LOW | peewee.py | 8405 | def _get_model_cursor_wrapper(self, cursor): | CODE |
| LOW | peewee.py | 8520 | def _get_model_cursor_wrapper(self, cursor): | CODE |
| LOW | peewee.py | 8756 | def _get_model_cursor_wrapper(self, cursor): | CODE |
| LOW | tests/sqlcipher_ext.py | 51 | def test_good_and_bad_passphrases(self): | CODE |
| LOW | tests/sqlcipher_ext.py | 111 | def test_configuration_via_pragma(self): | CODE |
| LOW⚡ | tests/prefetch_tests.py | 746 | def test_prefetch_unrelated_model_error(self): | CODE |
| LOW⚡ | tests/prefetch_tests.py | 755 | def test_prefetch_empty_subqueries_passthrough(self): | CODE |
| LOW⚡ | tests/prefetch_tests.py | 762 | def test_prefetch_materialize_unsupported(self): | CODE |
| LOW | tests/prefetch_tests.py | 180 | def test_prefetch_reverse_with_parent_join(self): | CODE |
| LOW | tests/prefetch_tests.py | 201 | def test_prefetch_multi_depth(self): | CODE |
| LOW | tests/prefetch_tests.py | 243 | def test_prefetch_multi_depth_no_join(self): | CODE |
| LOW | tests/prefetch_tests.py | 275 | def test_prefetch_with_group_by(self): | CODE |
| LOW | tests/prefetch_tests.py | 333 | def test_prefetch_adjacency_list(self): | CODE |
| LOW | tests/prefetch_tests.py | 376 | def test_prefetch_specific_model(self): | CODE |
| LOW | tests/prefetch_tests.py | 410 | def test_multiple_foreign_keys(self): | CODE |
| LOW | tests/prefetch_tests.py | 498 | def test_prefetch_through_manytomany(self): | CODE |
| LOW | tests/prefetch_tests.py | 547 | def test_prefetch_mark_dirty_regression(self): | CODE |
| LOW | tests/prefetch_tests.py | 715 | def test_join_prefetch_multiple_fks(self): | CODE |
| LOW | tests/signals.py | 62 | def test_save_positional_force_insert(self): | CODE |
| LOW | tests/signals.py | 160 | def test_subclass_instance_receive_signals(self): | CODE |
| LOW | tests/test_utils.py | 61 | def test_assert_query_count_decorator(self): | CODE |
| LOW | tests/test_utils.py | 80 | def test_assert_query_count_ctx_mgr(self): | CODE |
| LOW | tests/pwasyncio_stress.py | 160 | async def test_connection_isolation(): | CODE |
| LOW⚡ | tests/models.py | 1945 | def test_empty_insert_lands_defaults(self): | CODE |
| LOW⚡ | tests/models.py | 1952 | def test_default_present_on_create(self): | CODE |
| LOW⚡ | tests/models.py | 1957 | def test_defaults_from_cursor(self): | CODE |
| LOW⚡ | tests/models.py | 7886 | def test_safe_python_value_catches_error(self): | CODE |
| LOW⚡ | tests/models.py | 7895 | def test_safe_python_value_passes_through_success(self): | CODE |
| LOW⚡ | tests/models.py | 7904 | def test_bound_models_context_restores_db(self): | CODE |
| LOW⚡ | tests/models.py | 7918 | def test_save_raises_when_no_fields_to_update(self): | CODE |
| LOW⚡ | tests/models.py | 7928 | def test_model_graph_no_refs_no_backrefs_error(self): | CODE |
| LOW⚡ | tests/models.py | 7932 | def test_metadata_table_setter_error(self): | CODE |
| LOW⚡ | tests/models.py | 7936 | def test_metadata_table_deleter_resets(self): | CODE |
| LOW⚡ | tests/models.py | 7944 | def test_get_database_instance(self): | CODE |
| LOW | tests/models.py | 137 | def test_column_field_translation(self): | CODE |
| LOW | tests/models.py | 197 | def test_insert_many_defaults_nullable(self): | CODE |
| LOW | tests/models.py | 291 | def test_bulk_create_batching(self): | CODE |
| LOW | tests/models.py | 315 | def test_bulk_create_composite_key(self): | CODE |
| LOW | tests/models.py | 406 | def test_populate_unsaved_relations(self): | CODE |
| LOW | tests/models.py | 460 | def test_bulk_update_foreign_key(self): | CODE |
| LOW | tests/models.py | 492 | def test_bulk_update_integrityerror(self): | CODE |
| LOW | tests/models.py | 534 | def test_bulk_update_apply_dbvalue(self): | CODE |
| LOW | tests/models.py | 659 | def test_model_select_get_or_none(self): | CODE |
| LOW | tests/models.py | 705 | def test_get_or_create_self_referential_fk(self): | CODE |
| LOW | tests/models.py | 713 | def test_get_or_create_defaults(self): | CODE |
| LOW | tests/models.py | 883 | def test_join_empty_intermediate_model(self): | CODE |
| LOW | tests/models.py | 912 | def test_join_empty_relations(self): | CODE |
| LOW | tests/models.py | 963 | def test_join_outer_no_related(self): | CODE |
| LOW | tests/models.py | 982 | def test_join_same_model_twice(self): | CODE |
| LOW | tests/models.py | 1011 | def test_join_multi_fk_rhs_predicate(self): | CODE |
| LOW | tests/models.py | 1079 | def test_alias_query_constructors(self): | CODE |
| LOW | tests/models.py | 1097 | def test_join_expression_attribute_name(self): | CODE |
| LOW | tests/models.py | 1294 | def test_join_from_cte_to_model(self): | CODE |
| LOW | tests/models.py | 1323 | def test_subquery_emulate_window(self): | CODE |
| 734 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tests/prefetch_tests.py | 27 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/prefetch_tests.py | 32 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/prefetch_tests.py | 77 | # =========================================================================== | COMMENT |
| MEDIUM | tests/prefetch_tests.py | 79 | # =========================================================================== | COMMENT |
| MEDIUM | tests/prefetch_tests.py | 566 | # =========================================================================== | COMMENT |
| MEDIUM | tests/prefetch_tests.py | 568 | # =========================================================================== | COMMENT |
| MEDIUM | tests/prefetch_tests.py | 702 | # =========================================================================== | COMMENT |
| MEDIUM | tests/prefetch_tests.py | 704 | # =========================================================================== | COMMENT |
| MEDIUM | tests/models.py | 46 | # =========================================================================== | COMMENT |
| MEDIUM | tests/models.py | 48 | # =========================================================================== | COMMENT |
| MEDIUM | tests/models.py | 2545 | # =========================================================================== | COMMENT |
| MEDIUM | tests/models.py | 2547 | # =========================================================================== | COMMENT |
| MEDIUM | tests/models.py | 3050 | # =========================================================================== | COMMENT |
| MEDIUM | tests/models.py | 3052 | # =========================================================================== | COMMENT |
| MEDIUM | tests/models.py | 3864 | # =========================================================================== | COMMENT |
| MEDIUM | tests/models.py | 3866 | # =========================================================================== | COMMENT |
| MEDIUM | tests/models.py | 4288 | # =========================================================================== | COMMENT |
| MEDIUM | tests/models.py | 4290 | # =========================================================================== | COMMENT |
| MEDIUM | tests/models.py | 4905 | # =========================================================================== | COMMENT |
| MEDIUM | tests/models.py | 4907 | # =========================================================================== | COMMENT |
| MEDIUM | tests/models.py | 5529 | # =========================================================================== | COMMENT |
| MEDIUM | tests/models.py | 5531 | # =========================================================================== | COMMENT |
| MEDIUM | tests/models.py | 5667 | # =========================================================================== | COMMENT |
| MEDIUM | tests/models.py | 5669 | # =========================================================================== | COMMENT |
| MEDIUM | tests/models.py | 6369 | # =========================================================================== | COMMENT |
| MEDIUM | tests/models.py | 6371 | # =========================================================================== | COMMENT |
| MEDIUM | tests/models.py | 6565 | # =========================================================================== | COMMENT |
| MEDIUM | tests/models.py | 6567 | # =========================================================================== | COMMENT |
| MEDIUM⚡ | tests/fields.py | 802 | # =========================================================================== | COMMENT |
| MEDIUM⚡ | tests/fields.py | 804 | # =========================================================================== | COMMENT |
| MEDIUM⚡ | tests/fields.py | 2379 | # =========================================================================== | COMMENT |
| MEDIUM⚡ | tests/fields.py | 2381 | # =========================================================================== | COMMENT |
| MEDIUM | tests/fields.py | 59 | # =========================================================================== | COMMENT |
| MEDIUM | tests/fields.py | 61 | # =========================================================================== | COMMENT |
| MEDIUM | tests/fields.py | 206 | # =========================================================================== | COMMENT |
| MEDIUM | tests/fields.py | 208 | # =========================================================================== | COMMENT |
| MEDIUM | tests/fields.py | 327 | # =========================================================================== | COMMENT |
| MEDIUM | tests/fields.py | 329 | # =========================================================================== | COMMENT |
| MEDIUM | tests/fields.py | 1057 | # =========================================================================== | COMMENT |
| MEDIUM | tests/fields.py | 1059 | # =========================================================================== | COMMENT |
| MEDIUM | tests/fields.py | 1492 | # =========================================================================== | COMMENT |
| MEDIUM | tests/fields.py | 1494 | # =========================================================================== | COMMENT |
| MEDIUM | tests/fields.py | 1701 | # =========================================================================== | COMMENT |
| MEDIUM | tests/fields.py | 1703 | # =========================================================================== | COMMENT |
| MEDIUM | tests/fields.py | 2693 | # =========================================================================== | COMMENT |
| MEDIUM | tests/fields.py | 2695 | # =========================================================================== | COMMENT |
| MEDIUM | tests/fields.py | 2906 | # =========================================================================== | COMMENT |
| MEDIUM | tests/fields.py | 2908 | # =========================================================================== | COMMENT |
| MEDIUM⚡ | tests/base_models.py | 38 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/base_models.py | 45 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/base_models.py | 52 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/base_models.py | 58 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/base_models.py | 65 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/base_models.py | 72 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/base_models.py | 78 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/base_models.py | 188 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/base_models.py | 195 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/base_models.py | 203 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/base_models.py | 211 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/base_models.py | 6 | # --------------------------------------------------------------------------- | COMMENT |
| 110 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | bench.py | 1 | CODE | |
| LOW | pwiz.py | 9 | CODE | |
| LOW | pwiz.py | 12 | CODE | |
| LOW | runtests.py | 87 | CODE | |
| LOW | tests/sqlcipher_ext.py | 6 | CODE | |
| LOW | tests/sqlcipher_ext.py | 7 | CODE | |
| LOW | tests/prefetch_tests.py | 13 | CODE | |
| LOW | tests/signals.py | 1 | CODE | |
| LOW | tests/test_utils.py | 1 | CODE | |
| LOW | tests/test_utils.py | 6 | CODE | |
| LOW | tests/pwasyncio_stress.py | 7 | CODE | |
| LOW | tests/models.py | 5 | CODE | |
| LOW | tests/models.py | 9 | CODE | |
| LOW | tests/models.py | 10 | CODE | |
| LOW | tests/models.py | 13 | CODE | |
| LOW | tests/models.py | 43 | CODE | |
| LOW | tests/fields.py | 32 | CODE | |
| LOW | tests/fields.py | 34 | CODE | |
| LOW | tests/base_models.py | 1 | CODE | |
| LOW | tests/db_url.py | 1 | CODE | |
| LOW | tests/manytomany.py | 15 | CODE | |
| LOW | tests/manytomany.py | 20 | CODE | |
| LOW | tests/results.py | 13 | CODE | |
| LOW | tests/results.py | 18 | CODE | |
| LOW | tests/apsw_ext.py | 1 | CODE | |
| LOW | tests/apsw_ext.py | 4 | CODE | |
| LOW | tests/shortcuts.py | 3 | CODE | |
| LOW | tests/shortcuts.py | 4 | CODE | |
| LOW | tests/hybrid.py | 1 | CODE | |
| LOW | tests/hybrid.py | 2 | CODE | |
| LOW | tests/reflection.py | 2 | CODE | |
| LOW | tests/reflection.py | 6 | CODE | |
| LOW | tests/reflection.py | 7 | CODE | |
| LOW | tests/reflection.py | 13 | CODE | |
| LOW | tests/reflection.py | 18 | CODE | |
| LOW | tests/reflection.py | 19 | CODE | |
| LOW | tests/json_field.py | 3 | CODE | |
| LOW | tests/json_field.py | 17 | CODE | |
| LOW | tests/transactions.py | 17 | CODE | |
| LOW | tests/transactions.py | 19 | CODE | |
| LOW | tests/pydantic_utils.py | 1 | CODE | |
| LOW | tests/pydantic_utils.py | 10 | CODE | |
| LOW | tests/pwasyncio.py | 2 | CODE | |
| LOW | tests/pwasyncio.py | 13 | CODE | |
| LOW | tests/pwasyncio.py | 15 | CODE | |
| LOW | tests/pwasyncio.py | 16 | CODE | |
| LOW | tests/sqliteq.py | 2 | CODE | |
| LOW | tests/sqliteq.py | 5 | CODE | |
| LOW | tests/sqliteq.py | 14 | CODE | |
| LOW | tests/pwiz_integration.py | 1 | CODE | |
| LOW | tests/pwiz_integration.py | 8 | CODE | |
| LOW | tests/pwiz_integration.py | 9 | CODE | |
| LOW | tests/pwiz_integration.py | 14 | CODE | |
| LOW | tests/__init__.py | 1 | CODE | |
| LOW | tests/__init__.py | 2 | CODE | |
| LOW | tests/__init__.py | 8 | CODE | |
| LOW | tests/__init__.py | 9 | CODE | |
| LOW | tests/__init__.py | 10 | CODE | |
| LOW | tests/__init__.py | 11 | CODE | |
| LOW | tests/__init__.py | 12 | CODE | |
| 136 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | peewee.py | 574 | self.push() | CODE |
| HIGH | peewee.py | 699 | self.alias_manager.push() | CODE |
| HIGH | peewee.py | 4906 | for name, null, dt, df, ft, ident in cursor.fetchall()] | CODE |
| HIGH | peewee.py | 5172 | for name, null, dt, df, ft, extra in cursor.fetchall(): | CODE |
| HIGH | peewee.py | 5179 | name, dt, null, name in pks, table, df, ft, | CODE |
| HIGH | tests/fields.py | 1858 | self.assertFalse(Photo.album.null) | CODE |
| HIGH | tests/fields.py | 1863 | self.assertTrue(Photo.alt_album.null) | CODE |
| HIGH | tests/manytomany.py | 116 | self.assertFalse(note_field.null) | CODE |
| HIGH | tests/manytomany.py | 120 | self.assertFalse(user_field.null) | CODE |
| HIGH⚡ | tests/reflection.py | 136 | self.assertFalse(relmodel.col_types.null) | CODE |
| HIGH⚡ | tests/reflection.py | 137 | self.assertTrue(relmodel.col_types_nullable.null) | CODE |
| HIGH | tests/json_field.py | 904 | L = JM.select(JM.data.length()).scalar() | CODE |
| HIGH | tests/db_tests.py | 403 | self.database.execute_sql('create table foo (data text not null)') | CODE |
| HIGH | tests/db_tests.py | 595 | data = [(c.name, c.null, c.primary_key, c.table) | CODE |
| HIGH | tests/db_tests.py | 604 | data = [(c.name, c.null, c.primary_key, c.table) | CODE |
| HIGH⚡ | tests/postgres.py | 1307 | self.assertEqual(JDoc.select(JDoc.data.length()).scalar(), 3) | CODE |
| HIGH⚡ | tests/postgres.py | 1308 | self.assertEqual(JBDoc.select(JBDoc.data.length()).scalar(), 3) | CODE |
| HIGH | tests/postgres.py | 875 | query = BJson.select(curr.length()).tuples() | CODE |
| HIGH⚡ | tests/migrations.py | 236 | self.assertFalse(column.null) | CODE |
| HIGH | tests/migrations.py | 254 | self.assertFalse(column.null) | CODE |
| HIGH | tests/migrations.py | 617 | self.assertFalse(karma.null) | CODE |
| HIGH⚡ | tests/sql.py | 3827 | am.push() | CODE |
| HIGH⚡ | tests/sql.py | 3842 | am.push() | CODE |
| HIGH | tests/schema_diff.py | 769 | # converges (unique) or silently comes out NOT NULL (null). | STRING |
| HIGH | tests/schema_diff.py | 783 | self.assertTrue(columns['editor_id'].null) | STRING |
| HIGH | tests/schema_diff.py | 784 | self.assertFalse(columns['user_id'].null) | STRING |
| HIGH | playhouse/reflection.py | 228 | nullable=column_data.null, | CODE |
| HIGH | playhouse/dataset.py | 474 | # CSV has no null, treat empty as NULL for non-text fields. | COMMENT |
| HIGH | playhouse/migrate.py | 352 | # present and the field is non-null, then we need to first add the | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | peewee.py | 1103 | # Define the table and its alias. | COMMENT |
| MEDIUM | peewee.py | 7737 | # Create a repr and error class before finalizing. | COMMENT |
| MEDIUM | peewee.py | 8313 | # Define the table and its alias. | COMMENT |
| MEDIUM | tests/pwasyncio_stress.py | 174 | # Create a user | COMMENT |
| MEDIUM | tests/pwasyncio_stress.py | 214 | # Create a small pool | COMMENT |
| MEDIUM | tests/models.py | 2800 | # Create the subquery. | COMMENT |
| MEDIUM | tests/models.py | 4075 | # Define the base case of our recursive CTE. This will be categories that | COMMENT |
| MEDIUM | tests/models.py | 4087 | # Define the recursive terms. | COMMENT |
| MEDIUM | tests/sqlite.py | 243 | # Create a row using the given test value. Verify we can read the value | COMMENT |
| MEDIUM | tests/dataset.py | 98 | # Create a new dataset instance with views enabled. | COMMENT |
| MEDIUM | tests/dataset.py | 642 | # Create a new table and load all data into it. | COMMENT |
| MEDIUM | tests/dataset.py | 711 | # Create a new table and load all data into it. | COMMENT |
| MEDIUM | tests/migrations.py | 199 | # Create a new tag model to represent the fields we added. | COMMENT |
| MEDIUM | tests/migrations.py | 563 | # Create a unique index on first and last names. | COMMENT |
| MEDIUM | tests/migrations.py | 625 | # Create a new tag model to represent the fields we added. | COMMENT |
| MEDIUM | tests/migrations.py | 641 | # Create a unique index. | COMMENT |
| MEDIUM | tests/migrations.py | 1013 | # Create a temporary table with the renamed column. | COMMENT |
| MEDIUM⚡ | tests/sql.py | 1477 | # Create an outer query and do grouping. | COMMENT |
| MEDIUM | tests/pool.py | 131 | # Create a test database with a very short stale timeout. | COMMENT |
| MEDIUM | tests/pool.py | 149 | # Create a test database with a very short stale timeout. | COMMENT |
| MEDIUM⚡ | tests/schema.py | 1255 | # Create a fake database that supports TRUNCATE. | COMMENT |
| MEDIUM | docs/conf.py | 6 | # This file is execfile()d with the current directory set to its containing dir. | COMMENT |
| MEDIUM | examples/anomaly_detection.py | 17 | # Create a user-defined aggregate function suitable for computing the standard | COMMENT |
| MEDIUM | examples/blog/app.py | 41 | # Create a Flask WSGI app and configure it using values from the module. | COMMENT |
| MEDIUM | playhouse/sqliteq.py | 223 | # Create the writer thread, optionally starting it. | COMMENT |
| MEDIUM⚡ | playhouse/migrate.py | 88 | # Create an index on the `pub_date` column. | STRING |
| MEDIUM⚡ | playhouse/migrate.py | 91 | # Create a multi-column index on the `pub_date` and `status` fields. | STRING |
| MEDIUM⚡ | playhouse/migrate.py | 94 | # Create a unique index on the category and title fields. | STRING |
| MEDIUM | playhouse/migrate.py | 848 | # Create a mapping of original columns to new columns. | STRING |
| MEDIUM | playhouse/migrate.py | 877 | # Create the new table. | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | peewee.py | 299 | def __getattr__(self, attr): | CODE |
| MEDIUM | peewee.py | 4029 | def rows_affected(self, cursor): | CODE |
| MEDIUM | peewee.py | 4962 | def get_binary_type(self): | CODE |
| LOW | peewee.py | 3914 | except Exception as exc: | CODE |
| LOW | peewee.py | 4269 | except Exception: | CODE |
| LOW | peewee.py | 4630 | except Exception: | CODE |
| LOW | peewee.py | 4644 | except Exception: | CODE |
| LOW | peewee.py | 5112 | except Exception: | CODE |
| LOW | peewee.py | 5363 | except Exception: | CODE |
| LOW | peewee.py | 5398 | except Exception: | CODE |
| LOW | peewee.py | 6129 | except Exception: | CODE |
| LOW | peewee.py | 8792 | except Exception: pass | CODE |
| MEDIUM | runtests.py | 123 | print('Error: could not import asyncio stress test: %s' % exc) | CODE |
| LOW | tests/pwasyncio_stress.py | 93 | except Exception as exc: | CODE |
| MEDIUM | tests/pwasyncio.py | 831 | def asyncSetUp(self): | CODE |
| LOW | tests/pwasyncio.py | 836 | except Exception as exc: | CODE |
| MEDIUM | tests/pool.py | 611 | def worker(): | CODE |
| LOW | tests/pool.py | 561 | except Exception as exc: | CODE |
| LOW | tests/pool.py | 619 | except Exception as exc: | CODE |
| LOW | tests/pool.py | 769 | except Exception as exc: | CODE |
| LOW | tests/base.py | 209 | except Exception as exc: | CODE |
| MEDIUM | tests/base.py | 206 | def assertRaisesCtx(self, exceptions): | CODE |
| MEDIUM | tests/schema.py | 1135 | def tearDown(self): | CODE |
| LOW⚡ | tests/schema.py | 1173 | except Exception as exc: | CODE |
| LOW | playhouse/shortcuts.py | 266 | except Exception as exc: | CODE |
| MEDIUM | playhouse/shortcuts.py | 263 | def _reconnect(self, func, *args, **kwargs): | CODE |
| MEDIUM | playhouse/pwasyncio.py | 167 | def _safe_release(self, conn): | CODE |
| MEDIUM | playhouse/pwasyncio.py | 194 | def reset(self): | CODE |
| MEDIUM | playhouse/pwasyncio.py | 476 | def is_closed(self): | CODE |
| MEDIUM | playhouse/pwasyncio.py | 823 | def cleanup(): | CODE |
| LOW | playhouse/pwasyncio.py | 170 | except Exception: | CODE |
| LOW | playhouse/pwasyncio.py | 260 | except Exception as exc: | CODE |
| LOW | playhouse/pwasyncio.py | 282 | except Exception: | CODE |
| LOW | playhouse/pwasyncio.py | 376 | except Exception: | CODE |
| LOW | playhouse/pwasyncio.py | 388 | except Exception: | CODE |
| LOW | playhouse/pwasyncio.py | 753 | except Exception: | CODE |
| LOW | playhouse/pwasyncio.py | 767 | except Exception: | CODE |
| LOW | playhouse/pwasyncio.py | 1007 | except Exception: | CODE |
| LOW | playhouse/pwasyncio.py | 1035 | except Exception: | CODE |
| LOW | playhouse/pwasyncio.py | 1090 | except Exception: | CODE |
| LOW | playhouse/pwasyncio.py | 1104 | except Exception: | CODE |
| LOW | playhouse/pwasyncio.py | 1157 | except Exception: | CODE |
| LOW | playhouse/pwasyncio.py | 1164 | except Exception: | CODE |
| LOW | playhouse/pwasyncio.py | 1277 | except Exception: | CODE |
| LOW | playhouse/sqliteq.py | 181 | except Exception as execute_err: | CODE |
| LOW | playhouse/cysqlite_ext.py | 94 | except Exception: | CODE |
| LOW | playhouse/migrations.py | 584 | except Exception as exc: | STRING |
| LOW | playhouse/pool.py | 144 | except Exception: | CODE |
| LOW | playhouse/pool.py | 249 | except Exception: | CODE |
| LOW | playhouse/pool.py | 251 | except Exception: | CODE |
| LOW | playhouse/pool.py | 265 | except Exception: | CODE |
| LOW | playhouse/pool.py | 299 | except Exception: | CODE |
| MEDIUM | playhouse/pool.py | 141 | def _close_raw(self, conn): | CODE |
| MEDIUM | playhouse/pool.py | 287 | def _is_closed(self, conn): | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | peewee.py | 772 | CODE | |
| LOW | peewee.py | 8524 | CODE | |
| LOW | peewee.py | 9006 | CODE | |
| LOW | peewee.py | 9478 | CODE | |
| LOW | peewee.py | 1853 | CODE | |
| LOW | peewee.py | 2164 | CODE | |
| LOW | peewee.py | 2483 | CODE | |
| LOW | peewee.py | 2820 | CODE | |
| LOW | peewee.py | 2907 | CODE | |
| LOW | peewee.py | 3040 | CODE | |
| LOW | peewee.py | 3856 | CODE | |
| LOW | peewee.py | 4016 | CODE | |
| LOW | peewee.py | 4554 | CODE | |
| LOW | peewee.py | 4971 | CODE | |
| LOW | peewee.py | 6087 | CODE | |
| LOW | peewee.py | 7586 | CODE | |
| LOW | peewee.py | 7660 | CODE | |
| LOW | peewee.py | 7840 | CODE | |
| LOW | peewee.py | 7909 | CODE | |
| LOW | peewee.py | 7939 | CODE | |
| LOW | peewee.py | 8133 | CODE | |
| LOW | peewee.py | 8388 | CODE | |
| LOW | peewee.py | 8498 | CODE | |
| LOW | peewee.py | 8574 | CODE | |
| LOW | peewee.py | 8585 | CODE | |
| LOW | peewee.py | 8770 | CODE | |
| LOW | peewee.py | 8805 | CODE | |
| LOW | peewee.py | 9175 | CODE | |
| LOW | tests/prefetch_tests.py | 201 | CODE | |
| LOW | tests/prefetch_tests.py | 243 | CODE | |
| LOW | tests/prefetch_tests.py | 376 | CODE | |
| LOW | tests/prefetch_tests.py | 498 | CODE | |
| LOW | tests/prefetch_tests.py | 547 | CODE | |
| LOW | tests/prefetch_tests.py | 600 | CODE | |
| LOW | tests/pwasyncio_stress.py | 30 | CODE | |
| LOW | tests/models.py | 2945 | CODE | |
| LOW | tests/fields.py | 2125 | CODE | |
| LOW | tests/json_field.py | 710 | CODE | |
| LOW | tests/transactions.py | 145 | CODE | |
| LOW | tests/transactions.py | 360 | CODE | |
| LOW | tests/transactions.py | 391 | CODE | |
| LOW | tests/transactions.py | 395 | CODE | |
| LOW | tests/with_related_tests.py | 337 | CODE | |
| LOW | tests/dataset.py | 379 | CODE | |
| LOW | tests/mysql_ext.py | 56 | CODE | |
| LOW | tests/db_tests.py | 118 | CODE | |
| LOW | tests/db_tests.py | 618 | CODE | |
| LOW | tests/base.py | 24 | CODE | |
| LOW | examples/graph.py | 54 | CODE | |
| LOW | examples/blog/app.py | 183 | CODE | |
| LOW | playhouse/db_url.py | 25 | CODE | |
| LOW | playhouse/shortcuts.py | 13 | CODE | |
| LOW | playhouse/shortcuts.py | 132 | CODE | |
| LOW | playhouse/reflection.py | 897 | CODE | |
| LOW | playhouse/reflection.py | 196 | CODE | |
| LOW | playhouse/reflection.py | 307 | CODE | |
| LOW | playhouse/reflection.py | 564 | CODE | |
| LOW | playhouse/reflection.py | 622 | CODE | |
| LOW | playhouse/reflection.py | 760 | CODE | |
| LOW | playhouse/reflection.py | 774 | CODE | |
| 21 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL⚡ | tests/pwasyncio.py | 2416 | self.assertFalse(self.db._state.conn.conn.is_in_transaction()) | CODE |
| CRITICAL | examples/blog/static/js/jquery-1.11.0.min.js | 4 | },a,b,arguments.length>1)},show:function(){return Wb(this,!0)},hide:function(){return Wb(this)},toggle:function(a){retur | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/base_models.py | 1 | from peewee import * | COMMENT |
| LOW | tests/base_models.py | 41 | # Exercises: ForeignKeyField('self'), CharField as primary_key, nullable | COMMENT |
| LOW | tests/base_models.py | 61 | from_person = ForeignKeyField(Person, backref='relations') | COMMENT |
| LOW | tests/base_models.py | 81 | # This is the most heavily used model group in the test suite (~66 TestCase | COMMENT |
| LOW | tests/base_models.py | 141 | sample = ForeignKeyField(Sample, backref='metadata') | COMMENT |
| LOW | tests/base_models.py | 201 | COMMENT | |
| LOW | docs/conf.py | 1 | # -*- coding: utf-8 -*- | COMMENT |
| LOW | docs/conf.py | 21 | #sys.path.insert(0, os.path.abspath('.')) | COMMENT |
| LOW | docs/conf.py | 61 | # for a list of supported languages. | COMMENT |
| LOW | docs/conf.py | 81 | # unit titles (such as .. function::). | COMMENT |
| LOW | docs/conf.py | 121 | #html_theme_path = ['_themes'] | COMMENT |
| LOW | docs/conf.py | 141 | # so a file named "default.css" will overwrite the builtin "default.css". | COMMENT |
| LOW | docs/conf.py | 161 | COMMENT | |
| LOW | docs/conf.py | 181 | # contain a <link> tag referring to it. The value of this option must be the | COMMENT |
| LOW | docs/conf.py | 201 | # (source start file, target name, title, author, documentclass [howto/manual]). | COMMENT |
| LOW | playhouse/sqlite_udf.py | 521 | COMMENT | |
| LOW | playhouse/sqlite_udf.py | 541 | # x002 -- rows with phrase0 in col0 at least once | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | peewee.py | 73 | __all__ = [ | CODE |
| LOW | playhouse/migrations.py | 45 | __all__ = ['Migration', 'MigrationError', 'Runner', 'run', 'template'] | CODE |
| LOW | playhouse/schema_diff.py | 36 | __all__ = ['IndexDiff', 'SchemaDiff', 'diff_models'] | CODE |
| LOW | playhouse/fts_parser.py | 40 | __all__ = ['parse'] | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | peewee.py | 1792 | CODE | |
| LOW | peewee.py | 2563 | CODE | |
| LOW | peewee.py | 5661 | CODE | |
| LOW | peewee.py | 6669 | CODE | |
| LOW | peewee.py | 7351 | CODE | |
| LOW | playhouse/shortcuts.py | 13 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/models.py | 2278 | # If we just set the pk and try to save, peewee issues an update which | COMMENT |
| LOW⚡ | tests/fields.py | 1974 | # Otherwise we just return None. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/json_field.py | 292 | JM.create(data={'k': 'placeholder'}, ident='t') | CODE |