# style report (check) - total: 48 - errors: 13 - warnings: 32 - fixed: 0 - unfixed: 48 ## Findings ### devplacepy/attachments.py - [warning] missing-type-annotations:109: Function 'allowed_extensions' missing return type annotation - [info] magic-number:106: Magic number 1024*1024 used repeatedly for bytes conversion; should use a named constant like BYTES_PER_MB - [info] magic-number:499: Repeated literal 1024 in format_file_size; should use named constant ### devplacepy/cli.py - [warning] missing-type-annotations:7: Function '_audit_cli' missing type annotations for all parameters and return type - [warning] missing-type-annotations-bulk:7: Many functions in devplacepy/cli.py, seo.py, attachments.py, templating.py, docs_api.py, docs_examples.py, database.py lack full type annotations on parameters and return types ### devplacepy/config.py - [error] missing-retoor-header:1: Missing mandatory retoor header as first line ### devplacepy/database.py - [warning] forbidden-prefix-my_:589: Variable name 'my_placeholders' uses forbidden prefix 'my_' - [warning] forbidden-prefix-my_:589: Variable name 'my_params' uses forbidden prefix 'my_' - [warning] forbidden-prefix-my_:646: Variable name 'my_choice' uses forbidden prefix 'my_' - [warning] forbidden-prefix-my_:692: Variable name 'my_votes' uses forbidden prefix 'my_' - [error] missing-retoor-header:1: Missing mandatory retoor header as first line - [warning] missing-type-annotations:94: Function '_index' missing type annotations for all parameters - [warning] missing-type-annotations:103: Function 'init_db' missing return type annotation ### devplacepy/main.py - [error] missing-retoor-header:1: Missing mandatory retoor header as first line in devplacepy core module - [warning] missing-type-annotations:97: Function 'init_lock' missing return type annotation ### devplacepy/models.py - [error] missing-retoor-header:1: Missing mandatory retoor header as first line ### devplacepy/project_files.py - [warning] use-pathlib:528: Uses os.walk instead of Path.rglob or Path.iterdir ### devplacepy/push.py - [warning] forbidden-suffix-_info:246: Variable name 'notification_info' uses forbidden suffix '_info' ### devplacepy/routers/admin.py - [warning] forbidden-suffix-_data:109: Function name 'admin_ai_usage_data' uses forbidden suffix '_data' - [error] missing-retoor-header:1: Missing mandatory retoor header - many files in devplacepy/routers/ directory missing header ### devplacepy/routers/avatar.py - [warning] magic-number:12: Magic number 4096 used as cache max_size; should be a named constant ### devplacepy/routers/containers.py - [warning] forbidden-suffix-_data:112: Function name 'containers_data' uses forbidden suffix '_data' ### devplacepy/routers/containers_admin.py - [warning] forbidden-suffix-_data:70: Function name 'containers_index_data' uses forbidden suffix '_data' ### devplacepy/routers/gists.py - [warning] forbidden-suffix-_data:91: Variable name 'gists_data' uses forbidden suffix '_data' ### devplacepy/routers/services.py - [warning] forbidden-suffix-_data:44: Function name 'services_data' uses forbidden suffix '_data' - [warning] forbidden-suffix-_data:84: Function name 'service_detail_data' uses forbidden suffix '_data' ### devplacepy/schemas.py - [warning] forbidden-prefix-my_:156: Field name 'my_choice' uses forbidden prefix 'my_' (public API field in PollOut schema) - [warning] forbidden-prefix-my_:265: Field name 'my_vote' uses forbidden prefix 'my_' (public API field repeated across multiple schemas) - [error] missing-retoor-header:1: Missing mandatory retoor header as first line ### devplacepy/seo.py - [warning] missing-type-annotations:20: Function 'truncate' missing type annotations for 'text' parameter and return type - [warning] missing-type-annotations:36: Function 'site_url' missing type annotations for 'request' parameter and return type ### devplacepy/services/base.py - [error] missing-retoor-header:1: Missing mandatory retoor header - many files in devplacepy/services/ directory missing header ### devplacepy/services/bot/bot.py - [error] missing-retoor-header:1: Missing mandatory retoor header - bot service files missing header ### devplacepy/services/bot/registry.py - [warning] use-pathlib:47: Uses os.path.getsize instead of Path.stat().st_size ### devplacepy/services/devii/actions/catalog.py - [warning] forbidden-suffix-_data:1046: Action name 'admin_services_data' uses forbidden suffix '_data' ### devplacepy/services/devii/session.py - [warning] forbidden-prefix-best_:264: Variable name 'best_rank' uses forbidden prefix 'best_' ### devplacepy/services/jobs/base.py - [warning] forbidden-suffix-_data:109: Parameter name 'result_data' uses forbidden suffix '_data' ### devplacepy/services/jobs/zip_worker.py - [warning] use-pathlib:22: Uses os.path.getsize, os.path.join, os.path.relpath, os.path.isdir instead of pathlib.Path equivalents - [warning] use-pathlib:18: Uses os.walk instead of pathlib.Path.rglob ### devplacepy/services/openai_gateway/gateway.py - [error] missing-retoor-header:1: Missing mandatory retoor header - gateway service files missing header ### devplacepy/static/css/base.css - [error] missing-retoor-header:1: Missing mandatory retoor header - many CSS files missing header (e.g., base.css, variables.css, post.css, auth.css, etc.) ### devplacepy/static/js/ApiDocs.js - [error] missing-retoor-header:1: Missing mandatory retoor header - many JS files in devplacepy/static/js/ missing header (e.g., ApiDocs.js, ApiKeyManager.js, ApiTester.js, Application.js, etc.) ### devplacepy/templates/base.html - [error] missing-retoor-header:1: Missing mandatory retoor header - HTML template files missing header ### devplacepy/templating.py - [warning] missing-type-annotations:21: Function 'guest_disabled' missing type annotations for 'user' parameter and return type - [warning] missing-type-annotations:27: Function 'login_hint' missing type annotations for 'user' parameter and return type ### devplacepy/utils.py - [warning] forbidden-suffix-_info:434: Function name 'badge_info' uses forbidden suffix '_info' - [error] missing-retoor-header:1: Missing mandatory retoor header as first line ### pyproject.toml - [info] no-pinning-convention: No version pinning found in pyproject.toml - dependencies use unversioned constraints (which is the desired pattern)