Skip to content

Conversation

@bfi-bot
Copy link

@bfi-bot bfi-bot commented Dec 23, 2025

This PR was automatically created from branch: stora_epg

@bfi-bot
Copy link
Author

bfi-bot commented Dec 23, 2025

Automated Pylint Report 🧑‍💻

Here is the formatted Pylint report:

************* Module stora_epg_match
helpers/stora_epg_match.py:16:0: 🎨 C0301: Line too long (112/100) (line-too-long)
helpers/stora_epg_match.py:55:0: 🎨 C0301: Line too long (121/100) (line-too-long)
helpers/stora_epg_match.py:187:0: ⚠️ W0311: Bad indentation. Found 13 spaces, expected 12 (bad-indentation)
helpers/stora_epg_match.py:191:0: ⚠️ W0311: Bad indentation. Found 10 spaces, expected 12 (bad-indentation)
helpers/stora_epg_match.py:194:0: ⚠️ W0311: Bad indentation. Found 11 spaces, expected 12 (bad-indentation)
helpers/stora_epg_match.py:199:0: ⚠️ W0311: Bad indentation. Found 11 spaces, expected 12 (bad-indentation)
helpers/stora_epg_match.py:252:0: 🎨 C0301: Line too long (125/100) (line-too-long)
helpers/stora_epg_match.py:264:0: 🎨 C0301: Line too long (142/100) (line-too-long)
helpers/stora_epg_match.py:269:0: ⚠️ W0311: Bad indentation. Found 12 spaces, expected 8 (bad-indentation)
helpers/stora_epg_match.py:270:0: ⚠️ W0311: Bad indentation. Found 12 spaces, expected 8 (bad-indentation)
helpers/stora_epg_match.py:271:0: ⚠️ W0311: Bad indentation. Found 12 spaces, expected 8 (bad-indentation)
helpers/stora_epg_match.py:273:0: ⚠️ W0311: Bad indentation. Found 12 spaces, expected 8 (bad-indentation)
helpers/stora_epg_match.py:275:0: ⚠️ W0311: Bad indentation. Found 9 spaces, expected 8 (bad-indentation)
helpers/stora_epg_match.py:276:0: ⚠️ W0311: Bad indentation. Found 9 spaces, expected 8 (bad-indentation)
helpers/stora_epg_match.py:277:0: ⚠️ W0311: Bad indentation. Found 13 spaces, expected 12 (bad-indentation)
helpers/stora_epg_match.py:278:0: ⚠️ W0311: Bad indentation. Found 9 spaces, expected 8 (bad-indentation)
helpers/stora_epg_match.py:279:0: ⚠️ W0311: Bad indentation. Found 13 spaces, expected 12 (bad-indentation)
helpers/stora_epg_match.py:284:0: ⚠️ W0311: Bad indentation. Found 12 spaces, expected 8 (bad-indentation)
helpers/stora_epg_match.py:285:0: ⚠️ W0311: Bad indentation. Found 12 spaces, expected 8 (bad-indentation)
helpers/stora_epg_match.py:286:0: ⚠️ W0311: Bad indentation. Found 16 spaces, expected 12 (bad-indentation)
helpers/stora_epg_match.py:287:0: ⚠️ W0311: Bad indentation. Found 20 spaces, expected 16 (bad-indentation)
helpers/stora_epg_match.py:288:0: ⚠️ W0311: Bad indentation. Found 20 spaces, expected 16 (bad-indentation)
helpers/stora_epg_match.py:289:0: ⚠️ W0311: Bad indentation. Found 20 spaces, expected 16 (bad-indentation)
helpers/stora_epg_match.py:291:0: 🎨 C0301: Line too long (147/100) (line-too-long)
helpers/stora_epg_match.py:304:0: ⚠️ W0311: Bad indentation. Found 11 spaces, expected 8 (bad-indentation)
helpers/stora_epg_match.py:305:0: ⚠️ W0311: Bad indentation. Found 11 spaces, expected 8 (bad-indentation)
helpers/stora_epg_match.py:324:0: 🎨 C0301: Line too long (110/100) (line-too-long)
helpers/stora_epg_match.py:325:0: 🎨 C0301: Line too long (135/100) (line-too-long)
helpers/stora_epg_match.py:331:0: 🎨 C0303: Trailing whitespace (trailing-whitespace)
helpers/stora_epg_match.py:334:0: 🎨 C0305: Trailing newlines (trailing-newlines)
helpers/stora_epg_match.py:1:0: 🎨 C0114: Missing module docstring (missing-module-docstring)
helpers/stora_epg_match.py:7:0: 🚨 E0401: Unable to import 'adlib_v3' (import-error)
helpers/stora_epg_match.py:7:0: 🎨 C0413: Import "import adlib_v3 as adlib" should be placed at the top of the module (wrong-import-position)
helpers/stora_epg_match.py:9:0: 🎨 C0413: Import "import glob" should be placed at the top of the module (wrong-import-position)
helpers/stora_epg_match.py:10:0: 🚨 E0401: Unable to import 'pandas' (import-error)
helpers/stora_epg_match.py:10:0: 🎨 C0413: Import "import pandas as pd" should be placed at the top of the module (wrong-import-position)
helpers/stora_epg_match.py:12:0: ⚠️ W0105: String statement has no effect (pointless-string-statement)
helpers/stora_epg_match.py:106:16: ⚠️ W0621: Redefining name 'title_article' from outer scope (line 280) (redefined-outer-name)
helpers/stora_epg_match.py:158:8: ⚠️ W0621: Redefining name 'title' from outer scope (line 280) (redefined-outer-name)
helpers/stora_epg_match.py:164:0: 🎨 C0116: Missing function or method docstring (missing-function-docstring)
helpers/stora_epg_match.py:164:0: ♻️ R0914: Too many local variables (22/15) (too-many-locals)
helpers/stora_epg_match.py:168:8: ⚠️ W0621: Redefining name 'key' from outer scope (line 285) (redefined-outer-name)
helpers/stora_epg_match.py:168:13: ⚠️ W0621: Redefining name 'val' from outer scope (line 285) (redefined-outer-name)
helpers/stora_epg_match.py:171:16: ⚠️ W0621: Redefining name 'channel' from outer scope (line 264) (redefined-outer-name)
helpers/stora_epg_match.py:180:8: ⚠️ W0621: Redefining name 'date' from outer scope (line 264) (redefined-outer-name)
helpers/stora_epg_match.py:181:8: ⚠️ W0621: Redefining name 'time' from outer scope (line 264) (redefined-outer-name)
helpers/stora_epg_match.py:183:8: ⚠️ W0621: Redefining name 'title' from outer scope (line 280) (redefined-outer-name)
helpers/stora_epg_match.py:184:8: ⚠️ W0621: Redefining name 'duration' from outer scope (line 264) (redefined-outer-name)
helpers/stora_epg_match.py:185:8: ⚠️ W0621: Redefining name 'asset_title' from outer scope (line 264) (redefined-outer-name)
helpers/stora_epg_match.py:188:8: ⚠️ W0621: Redefining name 'asset_id' from outer scope (line 264) (redefined-outer-name)
helpers/stora_epg_match.py:189:8: ⚠️ W0621: Redefining name 'certification' from outer scope (line 264) (redefined-outer-name)
helpers/stora_epg_match.py:200:8: ⚠️ W0621: Redefining name 'list_attributes' from outer scope (line 264) (redefined-outer-name)
helpers/stora_epg_match.py:203:12: ⚠️ W0621: Redefining name 'broadcast_company' from outer scope (line 264) (redefined-outer-name)
helpers/stora_epg_match.py:176:9: ⚠️ W1514: Using open without explicitly specifying an encoding (unspecified-encoding)
helpers/stora_epg_match.py:164:0: ♻️ R0912: Too many branches (24/12) (too-many-branches)
helpers/stora_epg_match.py:164:0: ♻️ R0915: Too many statements (84/50) (too-many-statements)
helpers/stora_epg_match.py:261:4: 🎨 C0103: Constant name "path" doesn't conform to UPPER_CASE naming style (invalid-name)
helpers/stora_epg_match.py:271:12: 🎨 C0103: Constant name "generic" doesn't conform to UPPER_CASE naming style (invalid-name)
helpers/stora_epg_match.py:275:9: 🎨 C0103: Constant name "title_bare" doesn't conform to UPPER_CASE naming style (invalid-name)
helpers/stora_epg_match.py:302:4: 🎨 C0103: Constant name "duration_secs" doesn't conform to UPPER_CASE naming style (invalid-name)
helpers/stora_epg_match.py:306:16: ⚠️ W0109: Duplicate key 'title.article' in dictionary (duplicate-key)
helpers/stora_epg_match.py:306:16: ⚠️ W0109: Duplicate key 'title' in dictionary (duplicate-key)
helpers/stora_epg_match.py:306:16: ⚠️ W0109: Duplicate key 'title.language' in dictionary (duplicate-key)
helpers/stora_epg_match.py:306:16: ⚠️ W0109: Duplicate key 'title.type' in dictionary (duplicate-key)
helpers/stora_epg_match.py:9:0: 🎨 C0411: standard import "glob" should be placed before first party import "adlib_v3"  (wrong-import-order)
helpers/stora_epg_match.py:10:0: 🎨 C0411: third party import "pandas" should be placed before first party import "adlib_v3"  (wrong-import-order)
helpers/stora_epg_match.py:2:0: ⚠️ W0611: Unused timezone imported from datetime (unused-import)
helpers/stora_epg_match.py:9:0: ⚠️ W0611: Unused import glob (unused-import)

-----------------------------------
Your code has been rated at 4.90/10

Note: 🚨 Errors need immediate attention! ⚠️ Warnings should be reviewed, but are less critical. ℹ️ Information messages are for your reference.

@bfi-bot
Copy link
Author

bfi-bot commented Dec 23, 2025

Automated Pylint Report 🧑‍💻

Here is the formatted Pylint report:

************* Module archivematica_sip_utils
born_digital_workflows/archivematica_sip_utils.py:356:0: 🎨 C0301: Line too long (121/100) (line-too-long)
born_digital_workflows/archivematica_sip_utils.py:396:0: 🎨 C0301: Line too long (121/100) (line-too-long)
born_digital_workflows/archivematica_sip_utils.py:17:0: 🚨 E0401: Unable to import 'paramiko' (import-error)
born_digital_workflows/archivematica_sip_utils.py:18:0: 🚨 E0401: Unable to import 'requests' (import-error)
born_digital_workflows/archivematica_sip_utils.py:49:4: ♻️ R0916: Too many boolean expressions in if statement (7/5) (too-many-boolean-expressions)
born_digital_workflows/archivematica_sip_utils.py:87:0: ♻️ R0914: Too many local variables (19/15) (too-many-locals)
born_digital_workflows/archivematica_sip_utils.py:144:4: ♻️ R1705: Unnecessary "else" after "return", remove the "else" and de-indent the code inside it (no-else-return)
born_digital_workflows/archivematica_sip_utils.py:163:8: ♻️ R1705: Unnecessary "else" after "return", remove the "else" and de-indent the code inside it (no-else-return)
born_digital_workflows/archivematica_sip_utils.py:87:0: ♻️ R0911: Too many return statements (8/6) (too-many-return-statements)
born_digital_workflows/archivematica_sip_utils.py:87:0: ♻️ R0912: Too many branches (16/12) (too-many-branches)
born_digital_workflows/archivematica_sip_utils.py:87:0: ♻️ R0915: Too many statements (55/50) (too-many-statements)
born_digital_workflows/archivematica_sip_utils.py:174:0: ♻️ R0914: Too many local variables (18/15) (too-many-locals)
born_digital_workflows/archivematica_sip_utils.py:230:8: ♻️ R1705: Unnecessary "else" after "return", remove the "else" and de-indent the code inside it (no-else-return)
born_digital_workflows/archivematica_sip_utils.py:193:4: ⚠️ W0612: Unused variable 'check_folder' (unused-variable)
born_digital_workflows/archivematica_sip_utils.py:197:4: ⚠️ W0612: Unused variable 'err' (unused-variable)
born_digital_workflows/archivematica_sip_utils.py:241:0: ♻️ R1710: Either all return statements in a function should return an expression, or none of them should. (inconsistent-return-statements)
born_digital_workflows/archivematica_sip_utils.py:266:4: ⚠️ W0612: Unused variable 'err' (unused-variable)
born_digital_workflows/archivematica_sip_utils.py:286:16: ⚠️ W0612: Unused variable 'file' (unused-variable)
born_digital_workflows/archivematica_sip_utils.py:300:0: ♻️ R0913: Too many arguments (6/5) (too-many-arguments)
born_digital_workflows/archivematica_sip_utils.py:300:0: ♻️ R0917: Too many positional arguments (6/5) (too-many-positional-arguments)
born_digital_workflows/archivematica_sip_utils.py:309:4: 🎨 C0103: Variable name "PACKAGE_ENDPOINT" doesn't conform to snake_case naming style (invalid-name)
born_digital_workflows/archivematica_sip_utils.py:428:4: 🎨 C0103: Variable name "COMPLETED" doesn't conform to snake_case naming style (invalid-name)
born_digital_workflows/archivematica_sip_utils.py:437:8: ♻️ R1705: Unnecessary "else" after "return", remove the "else" and de-indent the code inside it (no-else-return)
born_digital_workflows/archivematica_sip_utils.py:452:4: 🎨 C0103: Variable name "SS_END" doesn't conform to snake_case naming style (invalid-name)
born_digital_workflows/archivematica_sip_utils.py:446:0: ♻️ R1710: Either all return statements in a function should return an expression, or none of them should. (inconsistent-return-statements)
born_digital_workflows/archivematica_sip_utils.py:534:14: ⚠️ W1309: Using an f-string that does not have any interpolated variables (f-string-without-interpolation)
born_digital_workflows/archivematica_sip_utils.py:556:8: ♻️ R1724: Unnecessary "elif" after "continue", remove the leading "el" from "elif" (no-else-continue)
born_digital_workflows/archivematica_sip_utils.py:568:4: 🎨 C0103: Variable name "ENDPOINT" doesn't conform to snake_case naming style (invalid-name)
born_digital_workflows/archivematica_sip_utils.py:590:30: ⚠️ W0622: Redefining built-in 'type' (redefined-builtin)
born_digital_workflows/archivematica_sip_utils.py:600:4: 🎨 C0103: Variable name "PACKAGE_ENDPOINT" doesn't conform to snake_case naming style (invalid-name)
born_digital_workflows/archivematica_sip_utils.py:637:4: 🎨 C0103: Variable name "ENDPOINT" doesn't conform to snake_case naming style (invalid-name)
born_digital_workflows/archivematica_sip_utils.py:676:4: ⚠️ W0621: Redefining name 'urlencode' from outer scope (line 15) (redefined-outer-name)
born_digital_workflows/archivematica_sip_utils.py:676:4: ⚠️ W0404: Reimport 'urlencode' (imported line 15) (reimported)
born_digital_workflows/archivematica_sip_utils.py:676:4: 🎨 C0415: Import outside toplevel (urllib.parse.urlencode) (import-outside-toplevel)
born_digital_workflows/archivematica_sip_utils.py:678:4: 🎨 C0103: Variable name "MDATA_ENDPOINT" doesn't conform to snake_case naming style (invalid-name)
born_digital_workflows/archivematica_sip_utils.py:712:4: 🎨 C0103: Variable name "END" doesn't conform to snake_case naming style (invalid-name)
born_digital_workflows/archivematica_sip_utils.py:741:4: 🎨 C0103: Variable name "GET_UNAPPROVED" doesn't conform to snake_case naming style (invalid-name)
born_digital_workflows/archivematica_sip_utils.py:742:4: 🎨 C0103: Variable name "APPROVE_TRANSFER" doesn't conform to snake_case naming style (invalid-name)
born_digital_workflows/archivematica_sip_utils.py:736:0: ♻️ R0912: Too many branches (13/12) (too-many-branches)
born_digital_workflows/archivematica_sip_utils.py:736:0: ♻️ R1710: Either all return statements in a function should return an expression, or none of them should. (inconsistent-return-statements)
************* Module special_collections_document_transfers_osh
born_digital_workflows/special_collections_document_transfers_osh.py:108:0: 🎨 C0301: Line too long (135/100) (line-too-long)
born_digital_workflows/special_collections_document_transfers_osh.py:109:0: 🎨 C0301: Line too long (127/100) (line-too-long)
born_digital_workflows/special_collections_document_transfers_osh.py:43:0: 🚨 E0401: Unable to import 'tenacity' (import-error)
born_digital_workflows/special_collections_document_transfers_osh.py:47:0: 🎨 C0413: Import "import adlib_v3 as adlib" should be placed at the top of the module (wrong-import-position)
born_digital_workflows/special_collections_document_transfers_osh.py:48:0: 🎨 C0413: Import "import utils" should be placed at the top of the module (wrong-import-position)
born_digital_workflows/special_collections_document_transfers_osh.py:175:0: ♻️ R0912: Too many branches (23/12) (too-many-branches)
born_digital_workflows/special_collections_document_transfers_osh.py:175:0: ♻️ R0915: Too many statements (55/50) (too-many-statements)
born_digital_workflows/special_collections_document_transfers_osh.py:255:0: ♻️ R0914: Too many local variables (26/15) (too-many-locals)
born_digital_workflows/special_collections_document_transfers_osh.py:255:0: ♻️ R0912: Too many branches (24/12) (too-many-branches)
born_digital_workflows/special_collections_document_transfers_osh.py:255:0: ♻️ R0915: Too many statements (110/50) (too-many-statements)
born_digital_workflows/special_collections_document_transfers_osh.py:440:0: ♻️ R0914: Too many local variables (19/15) (too-many-locals)
born_digital_workflows/special_collections_document_transfers_osh.py:440:0: ♻️ R0912: Too many branches (13/12) (too-many-branches)
born_digital_workflows/special_collections_document_transfers_osh.py:440:0: ♻️ R0915: Too many statements (70/50) (too-many-statements)
born_digital_workflows/special_collections_document_transfers_osh.py:535:4: ♻️ R1705: Unnecessary "else" after "return", remove the "else" and de-indent the code inside it (no-else-return)
born_digital_workflows/special_collections_document_transfers_osh.py:541:8: ⚠️ W0719: Raising too general exception: Exception (broad-exception-raised)
born_digital_workflows/special_collections_document_transfers_osh.py:552:4: ♻️ R1705: Unnecessary "else" after "return", remove the "else" and de-indent the code inside it (no-else-return)
born_digital_workflows/special_collections_document_transfers_osh.py:558:8: ⚠️ W0719: Raising too general exception: Exception (broad-exception-raised)
************* Module document_augmented_stora
document_en_15907/document_augmented_stora.py:11:0: 🎨 C0301: Line too long (104/100) (line-too-long)
document_en_15907/document_augmented_stora.py:23:0: 🎨 C0301: Line too long (101/100) (line-too-long)
document_en_15907/document_augmented_stora.py:111:0: 🎨 C0301: Line too long (121/100) (line-too-long)
document_en_15907/document_augmented_stora.py:256:0: 🎨 C0301: Line too long (101/100) (line-too-long)
document_en_15907/document_augmented_stora.py:384:0: 🎨 C0301: Line too long (104/100) (line-too-long)
document_en_15907/document_augmented_stora.py:433:0: 🎨 C0301: Line too long (101/100) (line-too-long)
document_en_15907/document_augmented_stora.py:443:0: 🎨 C0301: Line too long (110/100) (line-too-long)
document_en_15907/document_augmented_stora.py:531:0: 🎨 C0301: Line too long (105/100) (line-too-long)
document_en_15907/document_augmented_stora.py:902:0: 🎨 C0301: Line too long (103/100) (line-too-long)
document_en_15907/document_augmented_stora.py:995:0: 🎨 C0301: Line too long (115/100) (line-too-long)
document_en_15907/document_augmented_stora.py:998:0: 🎨 C0301: Line too long (111/100) (line-too-long)
document_en_15907/document_augmented_stora.py:1013:0: 🎨 C0301: Line too long (114/100) (line-too-long)
document_en_15907/document_augmented_stora.py:1049:0: 🎨 C0301: Line too long (103/100) (line-too-long)
document_en_15907/document_augmented_stora.py:1068:0: 🎨 C0301: Line too long (125/100) (line-too-long)
document_en_15907/document_augmented_stora.py:1091:0: 🎨 C0301: Line too long (115/100) (line-too-long)
document_en_15907/document_augmented_stora.py:1163:0: 🎨 C0301: Line too long (113/100) (line-too-long)
document_en_15907/document_augmented_stora.py:1173:0: 🎨 C0301: Line too long (147/100) (line-too-long)
document_en_15907/document_augmented_stora.py:1177:0: 🎨 C0301: Line too long (113/100) (line-too-long)
document_en_15907/document_augmented_stora.py:1226:0: 🎨 C0301: Line too long (108/100) (line-too-long)
document_en_15907/document_augmented_stora.py:1244:0: 🎨 C0301: Line too long (105/100) (line-too-long)
document_en_15907/document_augmented_stora.py:1386:0: 🎨 C0301: Line too long (120/100) (line-too-long)
document_en_15907/document_augmented_stora.py:1391:0: 🎨 C0301: Line too long (114/100) (line-too-long)
document_en_15907/document_augmented_stora.py:1398:0: 🎨 C0301: Line too long (112/100) (line-too-long)
document_en_15907/document_augmented_stora.py:1403:0: 🎨 C0301: Line too long (113/100) (line-too-long)
document_en_15907/document_augmented_stora.py:1663:0: 🎨 C0301: Line too long (104/100) (line-too-long)
document_en_15907/document_augmented_stora.py:2020:0: 🎨 C0301: Line too long (106/100) (line-too-long)
document_en_15907/document_augmented_stora.py:2075:0: 🎨 C0301: Line too long (117/100) (line-too-long)
document_en_15907/document_augmented_stora.py:2092:0: 🎨 C0301: Line too long (121/100) (line-too-long)
document_en_15907/document_augmented_stora.py:2114:0: 🎨 C0301: Line too long (117/100) (line-too-long)
document_en_15907/document_augmented_stora.py:2186:0: 🎨 C0301: Line too long (107/100) (line-too-long)
document_en_15907/document_augmented_stora.py:2290:0: 🎨 C0301: Line too long (120/100) (line-too-long)
document_en_15907/document_augmented_stora.py:1:0: 🎨 C0302: Too many lines in module (2309/1000) (too-many-lines)
document_en_15907/document_augmented_stora.py:39:0: 🚨 E0401: Unable to import 'tenacity' (import-error)
document_en_15907/document_augmented_stora.py:40:0: 🚨 E0401: Unable to import 'yaml' (import-error)
document_en_15907/document_augmented_stora.py:44:0: 🎨 C0413: Import "import adlib_v3 as adlib" should be placed at the top of the module (wrong-import-position)
document_en_15907/document_augmented_stora.py:45:0: 🎨 C0413: Import "import utils" should be placed at the top of the module (wrong-import-position)
document_en_15907/document_augmented_stora.py:46:0: 🎨 C0413: Import "from helpers import stora_helper" should be placed at the top of the module (wrong-import-position)
document_en_15907/document_augmented_stora.py:229:9: ⚠️ W1514: Using open without explicitly specifying an encoding (unspecified-encoding)
document_en_15907/document_augmented_stora.py:251:8: ⚠️ W0707: Consider explicitly re-raising using 'raise Exception from err' (raise-missing-from)
document_en_15907/document_augmented_stora.py:251:8: ⚠️ W0719: Raising too general exception: Exception (broad-exception-raised)
document_en_15907/document_augmented_stora.py:273:0: ♻️ R1710: Either all return statements in a function should return an expression, or none of them should. (inconsistent-return-statements)
document_en_15907/document_augmented_stora.py:332:0: ♻️ R0914: Too many local variables (16/15) (too-many-locals)
document_en_15907/document_augmented_stora.py:332:0: ♻️ R0915: Too many statements (56/50) (too-many-statements)
document_en_15907/document_augmented_stora.py:435:29: ⚠️ W1514: Using open without explicitly specifying an encoding (unspecified-encoding)
document_en_15907/document_augmented_stora.py:413:0: ♻️ R1710: Either all return statements in a function should return an expression, or none of them should. (inconsistent-return-statements)
document_en_15907/document_augmented_stora.py:537:0: ♻️ R0914: Too many local variables (51/15) (too-many-locals)
document_en_15907/document_augmented_stora.py:819:11: 🚨 E0606: Possibly using variable 'code_type' before assignment (possibly-used-before-assignment)
document_en_15907/document_augmented_stora.py:884:33: 🚨 E0606: Possibly using variable 'work_type' before assignment (possibly-used-before-assignment)
document_en_15907/document_augmented_stora.py:537:0: ♻️ R0912: Too many branches (79/12) (too-many-branches)
document_en_15907/document_augmented_stora.py:537:0: ♻️ R0915: Too many statements (302/50) (too-many-statements)
document_en_15907/document_augmented_stora.py:890:0: ♻️ R0914: Too many local variables (46/15) (too-many-locals)
document_en_15907/document_augmented_stora.py:993:8: ♻️ R1724: Unnecessary "elif" after "continue", remove the leading "el" from "elif" (no-else-continue)
document_en_15907/document_augmented_stora.py:1020:8: ⚠️ W0105: String statement has no effect (pointless-string-statement)
document_en_15907/document_augmented_stora.py:1064:49: 🚨 E0606: Possibly using variable 'series_id' before assignment (possibly-used-before-assignment)
document_en_15907/document_augmented_stora.py:1087:24: 🚨 E0606: Possibly using variable 'bbc_split' before assignment (possibly-used-before-assignment)
document_en_15907/document_augmented_stora.py:1161:12: ♻️ R1724: Unnecessary "else" after "continue", remove the "else" and de-indent the code inside it (no-else-continue)
document_en_15907/document_augmented_stora.py:1173:16: ⚠️ W1309: Using an f-string that does not have any interpolated variables (f-string-without-interpolation)
document_en_15907/document_augmented_stora.py:1175:12: ♻️ R1724: Unnecessary "else" after "continue", remove the "else" and de-indent the code inside it (no-else-continue)
document_en_15907/document_augmented_stora.py:1186:8: ⚠️ W0105: String statement has no effect (pointless-string-statement)
document_en_15907/document_augmented_stora.py:1198:15: ⚠️ W0718: Catching too general exception Exception (broad-exception-caught)
document_en_15907/document_augmented_stora.py:1214:15: ⚠️ W0718: Catching too general exception Exception (broad-exception-caught)
document_en_15907/document_augmented_stora.py:1234:19: ⚠️ W0718: Catching too general exception Exception (broad-exception-caught)
document_en_15907/document_augmented_stora.py:890:0: ♻️ R0912: Too many branches (45/12) (too-many-branches)
document_en_15907/document_augmented_stora.py:890:0: ♻️ R0915: Too many statements (195/50) (too-many-statements)
document_en_15907/document_augmented_stora.py:1248:0: ♻️ R0913: Too many arguments (7/5) (too-many-arguments)
document_en_15907/document_augmented_stora.py:1248:0: ♻️ R0917: Too many positional arguments (7/5) (too-many-positional-arguments)
document_en_15907/document_augmented_stora.py:1248:0: ♻️ R0914: Too many local variables (39/15) (too-many-locals)
document_en_15907/document_augmented_stora.py:1437:11: ⚠️ W0718: Catching too general exception Exception (broad-exception-caught)
document_en_15907/document_augmented_stora.py:1452:15: ⚠️ W0718: Catching too general exception Exception (broad-exception-caught)
document_en_15907/document_augmented_stora.py:1463:8: ⚠️ W0719: Raising too general exception: Exception (broad-exception-raised)
document_en_15907/document_augmented_stora.py:1501:12: ⚠️ W0719: Raising too general exception: Exception (broad-exception-raised)
document_en_15907/document_augmented_stora.py:1523:12: ⚠️ W0719: Raising too general exception: Exception (broad-exception-raised)
document_en_15907/document_augmented_stora.py:1570:12: ⚠️ W0719: Raising too general exception: Exception (broad-exception-raised)
document_en_15907/document_augmented_stora.py:1248:0: ♻️ R0912: Too many branches (56/12) (too-many-branches)
document_en_15907/document_augmented_stora.py:1248:0: ♻️ R0915: Too many statements (202/50) (too-many-statements)
document_en_15907/document_augmented_stora.py:1592:12: 🚨 E0602: Undefined variable 'LOGGER' (undefined-variable)
document_en_15907/document_augmented_stora.py:1606:40: 🚨 E0606: Possibly using variable 'bst_time' before assignment (possibly-used-before-assignment)
document_en_15907/document_augmented_stora.py:1650:29: 🚨 E0606: Possibly using variable 'bst_date' before assignment (possibly-used-before-assignment)
document_en_15907/document_augmented_stora.py:1730:0: ♻️ R0913: Too many arguments (6/5) (too-many-arguments)
document_en_15907/document_augmented_stora.py:1730:0: ♻️ R0917: Too many positional arguments (6/5) (too-many-positional-arguments)
document_en_15907/document_augmented_stora.py:1730:0: ♻️ R0914: Too many local variables (24/15) (too-many-locals)
document_en_15907/document_augmented_stora.py:1799:11: ⚠️ W0718: Catching too general exception Exception (broad-exception-caught)
document_en_15907/document_augmented_stora.py:1808:8: ⚠️ W0719: Raising too general exception: Exception (broad-exception-raised)
document_en_15907/document_augmented_stora.py:1818:15: ⚠️ W0718: Catching too general exception Exception (broad-exception-caught)
document_en_15907/document_augmented_stora.py:1859:12: ⚠️ W0719: Raising too general exception: Exception (broad-exception-raised)
document_en_15907/document_augmented_stora.py:1879:12: ⚠️ W0719: Raising too general exception: Exception (broad-exception-raised)
document_en_15907/document_augmented_stora.py:1924:12: ⚠️ W0719: Raising too general exception: Exception (broad-exception-raised)
document_en_15907/document_augmented_stora.py:1730:0: ♻️ R0912: Too many branches (41/12) (too-many-branches)
document_en_15907/document_augmented_stora.py:1730:0: ♻️ R0915: Too many statements (140/50) (too-many-statements)
document_en_15907/document_augmented_stora.py:1932:0: ♻️ R0914: Too many local variables (17/15) (too-many-locals)
document_en_15907/document_augmented_stora.py:1993:11: ⚠️ W0718: Catching too general exception Exception (broad-exception-caught)
document_en_15907/document_augmented_stora.py:2008:15: ⚠️ W0718: Catching too general exception Exception (broad-exception-caught)
document_en_15907/document_augmented_stora.py:2015:8: ⚠️ W0719: Raising too general exception: Exception (broad-exception-raised)
document_en_15907/document_augmented_stora.py:1932:0: ♻️ R0912: Too many branches (15/12) (too-many-branches)
document_en_15907/document_augmented_stora.py:1932:0: ♻️ R0915: Too many statements (66/50) (too-many-statements)
document_en_15907/document_augmented_stora.py:2037:0: ♻️ R0913: Too many arguments (8/5) (too-many-arguments)
document_en_15907/document_augmented_stora.py:2037:0: ♻️ R0917: Too many positional arguments (8/5) (too-many-positional-arguments)
document_en_15907/document_augmented_stora.py:2073:11: ⚠️ W0718: Catching too general exception Exception (broad-exception-caught)
document_en_15907/document_augmented_stora.py:2090:15: ⚠️ W0718: Catching too general exception Exception (broad-exception-caught)
document_en_15907/document_augmented_stora.py:2099:8: ⚠️ W0719: Raising too general exception: Exception (broad-exception-raised)
document_en_15907/document_augmented_stora.py:2153:11: ⚠️ W0718: Catching too general exception Exception (broad-exception-caught)
document_en_15907/document_augmented_stora.py:2184:15: ⚠️ W0718: Catching too general exception Exception (broad-exception-caught)
document_en_15907/document_augmented_stora.py:2203:4: ⚠️ W0603: Using the global statement (global-statement)
document_en_15907/document_augmented_stora.py:2207:11: ⚠️ W0718: Catching too general exception Exception (broad-exception-caught)
document_en_15907/document_augmented_stora.py:2196:0: ♻️ R1710: Either all return statements in a function should return an expression, or none of them should. (inconsistent-return-statements)
document_en_15907/document_augmented_stora.py:2239:0: ♻️ R0914: Too many local variables (17/15) (too-many-locals)
document_en_15907/document_augmented_stora.py:2273:9: ⚠️ W1514: Using open without explicitly specifying an encoding (unspecified-encoding)
document_en_15907/document_augmented_stora.py:2296:11: ⚠️ W0718: Catching too general exception Exception (broad-exception-caught)
document_en_15907/document_augmented_stora.py:2301:8: ⚠️ W0719: Raising too general exception: Exception (broad-exception-raised)
document_en_15907/document_augmented_stora.py:2302:4: ♻️ R1703: The if statement can be replaced with 'return bool(test)' (simplifiable-if-statement)
document_en_15907/document_augmented_stora.py:2302:4: ♻️ R1705: Unnecessary "else" after "return", remove the "else" and de-indent the code inside it (no-else-return)
************* Module metadata_clean_up
hashes/metadata_clean_up.py:296:0: 🎨 C0301: Line too long (104/100) (line-too-long)
hashes/metadata_clean_up.py:519:0: 🎨 C0301: Line too long (102/100) (line-too-long)
hashes/metadata_clean_up.py:557:0: 🎨 C0301: Line too long (102/100) (line-too-long)
hashes/metadata_clean_up.py:817:0: 🎨 C0301: Line too long (149/100) (line-too-long)
hashes/metadata_clean_up.py:823:0: 🎨 C0301: Line too long (113/100) (line-too-long)
hashes/metadata_clean_up.py:33:0: 🎨 C0413: Import "import adlib_v3 as adlib" should be placed at the top of the module (wrong-import-position)
hashes/metadata_clean_up.py:34:0: 🎨 C0413: Import "import utils" should be placed at the top of the module (wrong-import-position)
hashes/metadata_clean_up.py:196:11: ⚠️ W0718: Catching too general exception Exception (broad-exception-caught)
hashes/metadata_clean_up.py:181:0: ♻️ R1710: Either all return statements in a function should return an expression, or none of them should. (inconsistent-return-statements)
hashes/metadata_clean_up.py:200:0: ♻️ R0912: Too many branches (26/12) (too-many-branches)
hashes/metadata_clean_up.py:200:0: ♻️ R0915: Too many statements (86/50) (too-many-statements)
hashes/metadata_clean_up.py:330:9: ⚠️ W1514: Using open without explicitly specifying an encoding (unspecified-encoding)
hashes/metadata_clean_up.py:346:9: ⚠️ W1514: Using open without explicitly specifying an encoding (unspecified-encoding)
hashes/metadata_clean_up.py:396:0: ♻️ R1710: Either all return statements in a function should return an expression, or none of them should. (inconsistent-return-statements)
hashes/metadata_clean_up.py:440:0: ♻️ R0914: Too many local variables (36/15) (too-many-locals)
hashes/metadata_clean_up.py:445:13: ⚠️ W1514: Using open without explicitly specifying an encoding (unspecified-encoding)
hashes/metadata_clean_up.py:449:13: ⚠️ W1514: Using open without explicitly specifying an encoding (unspecified-encoding)
hashes/metadata_clean_up.py:440:0: ♻️ R0912: Too many branches (58/12) (too-many-branches)
hashes/metadata_clean_up.py:440:0: ♻️ R0915: Too many statements (130/50) (too-many-statements)
hashes/metadata_clean_up.py:637:4: ♻️ R1705: Unnecessary "elif" after "return", remove the leading "el" from "elif" (no-else-return)
hashes/metadata_clean_up.py:649:4: ♻️ R1705: Unnecessary "elif" after "return", remove the leading "el" from "elif" (no-else-return)
hashes/metadata_clean_up.py:611:0: ♻️ R0911: Too many return statements (25/6) (too-many-return-statements)
hashes/metadata_clean_up.py:611:0: ♻️ R0912: Too many branches (25/12) (too-many-branches)
hashes/metadata_clean_up.py:703:0: ♻️ R0912: Too many branches (14/12) (too-many-branches)
hashes/metadata_clean_up.py:710:4: ♻️ R1702: Too many nested blocks (6/5) (too-many-nested-blocks)
hashes/metadata_clean_up.py:790:15: ⚠️ W0718: Catching too general exception Exception (broad-exception-caught)
hashes/metadata_clean_up.py:794:0: ♻️ R0914: Too many local variables (16/15) (too-many-locals)
hashes/metadata_clean_up.py:819:19: ⚠️ W0718: Catching too general exception Exception (broad-exception-caught)
hashes/metadata_clean_up.py:836:4: ♻️ R1705: Unnecessary "elif" after "return", remove the leading "el" from "elif" (no-else-return)
hashes/metadata_clean_up.py:855:9: ⚠️ W1514: Using open without explicitly specifying an encoding (unspecified-encoding)
************* Module gy_qnap_copy_qnap_04
helpers/gy_qnap_copy_qnap_04.py:40:0: 🎨 C0413: Import "import utils" should be placed at the top of the module (wrong-import-position)
helpers/gy_qnap_copy_qnap_04.py:112:35: 🚨 E0602: Undefined variable 'STORA' (undefined-variable)
helpers/gy_qnap_copy_qnap_04.py:133:23: ⚠️ W0718: Catching too general exception Exception (broad-exception-caught)
helpers/gy_qnap_copy_qnap_04.py:169:23: ⚠️ W0718: Catching too general exception Exception (broad-exception-caught)
helpers/gy_qnap_copy_qnap_04.py:101:0: ♻️ R0912: Too many branches (13/12) (too-many-branches)
helpers/gy_qnap_copy_qnap_04.py:101:0: ♻️ R0915: Too many statements (56/50) (too-many-statements)
helpers/gy_qnap_copy_qnap_04.py:231:11: ⚠️ W0718: Catching too general exception Exception (broad-exception-caught)
************* Module stora_epg_match
helpers/stora_epg_match.py:16:0: 🎨 C0301: Line too long (112/100) (line-too-long)
helpers/stora_epg_match.py:55:0: 🎨 C0301: Line too long (121/100) (line-too-long)
helpers/stora_epg_match.py:314:0: 🎨 C0301: Line too long (146/100) (line-too-long)
helpers/stora_epg_match.py:349:0: 🎨 C0301: Line too long (111/100) (line-too-long)
helpers/stora_epg_match.py:350:0: 🎨 C0301: Line too long (136/100) (line-too-long)
helpers/stora_epg_match.py:1:0: 🎨 C0114: Missing module docstring (missing-module-docstring)
helpers/stora_epg_match.py:7:0: 🎨 C0413: Import "import adlib_v3 as adlib" should be placed at the top of the module (wrong-import-position)
helpers/stora_epg_match.py:9:0: 🎨 C0413: Import "import glob" should be placed at the top of the module (wrong-import-position)
helpers/stora_epg_match.py:10:0: 🚨 E0401: Unable to import 'pandas' (import-error)
helpers/stora_epg_match.py:10:0: 🎨 C0413: Import "import pandas as pd" should be placed at the top of the module (wrong-import-position)
helpers/stora_epg_match.py:12:0: ⚠️ W0105: String statement has no effect (pointless-string-statement)
helpers/stora_epg_match.py:107:16: ⚠️ W0621: Redefining name 'title_article' from outer scope (line 303) (redefined-outer-name)
helpers/stora_epg_match.py:159:8: ⚠️ W0621: Redefining name 'title' from outer scope (line 303) (redefined-outer-name)
helpers/stora_epg_match.py:166:0: 🎨 C0116: Missing function or method docstring (missing-function-docstring)
helpers/stora_epg_match.py:166:0: ♻️ R0914: Too many local variables (22/15) (too-many-locals)
helpers/stora_epg_match.py:170:8: ⚠️ W0621: Redefining name 'key' from outer scope (line 308) (redefined-outer-name)
helpers/stora_epg_match.py:170:13: ⚠️ W0621: Redefining name 'val' from outer scope (line 308) (redefined-outer-name)
helpers/stora_epg_match.py:173:16: ⚠️ W0621: Redefining name 'channel' from outer scope (line 281) (redefined-outer-name)
helpers/stora_epg_match.py:182:8: ⚠️ W0621: Redefining name 'date' from outer scope (line 277) (redefined-outer-name)
helpers/stora_epg_match.py:183:8: ⚠️ W0621: Redefining name 'time' from outer scope (line 278) (redefined-outer-name)
helpers/stora_epg_match.py:185:8: ⚠️ W0621: Redefining name 'title' from outer scope (line 303) (redefined-outer-name)
helpers/stora_epg_match.py:186:8: ⚠️ W0621: Redefining name 'duration' from outer scope (line 283) (redefined-outer-name)
helpers/stora_epg_match.py:187:8: ⚠️ W0621: Redefining name 'asset_title' from outer scope (line 280) (redefined-outer-name)
helpers/stora_epg_match.py:190:8: ⚠️ W0621: Redefining name 'asset_id' from outer scope (line 282) (redefined-outer-name)
helpers/stora_epg_match.py:191:8: ⚠️ W0621: Redefining name 'certification' from outer scope (line 284) (redefined-outer-name)
helpers/stora_epg_match.py:202:8: ⚠️ W0621: Redefining name 'list_attributes' from outer scope (line 285) (redefined-outer-name)
helpers/stora_epg_match.py:205:12: ⚠️ W0621: Redefining name 'broadcast_company' from outer scope (line 286) (redefined-outer-name)
helpers/stora_epg_match.py:178:9: ⚠️ W1514: Using open without explicitly specifying an encoding (unspecified-encoding)
helpers/stora_epg_match.py:166:0: ♻️ R0912: Too many branches (24/12) (too-many-branches)
helpers/stora_epg_match.py:166:0: ♻️ R0915: Too many statements (84/50) (too-many-statements)
helpers/stora_epg_match.py:273:4: 🎨 C0103: Constant name "path" doesn't conform to UPPER_CASE naming style (invalid-name)
helpers/stora_epg_match.py:294:8: 🎨 C0103: Constant name "generic" doesn't conform to UPPER_CASE naming style (invalid-name)
helpers/stora_epg_match.py:298:8: 🎨 C0103: Constant name "title_bare" doesn't conform to UPPER_CASE naming style (invalid-name)
helpers/stora_epg_match.py:327:4: 🎨 C0103: Constant name "duration_secs" doesn't conform to UPPER_CASE naming style (invalid-name)
helpers/stora_epg_match.py:331:12: ⚠️ W0109: Duplicate key 'title.article' in dictionary (duplicate-key)
helpers/stora_epg_match.py:331:12: ⚠️ W0109: Duplicate key 'title' in dictionary (duplicate-key)
helpers/stora_epg_match.py:331:12: ⚠️ W0109: Duplicate key 'title.language' in dictionary (duplicate-key)
helpers/stora_epg_match.py:331:12: ⚠️ W0109: Duplicate key 'title.type' in dictionary (duplicate-key)
helpers/stora_epg_match.py:9:0: 🎨 C0411: standard import "glob" should be placed before first party import "adlib_v3"  (wrong-import-order)
helpers/stora_epg_match.py:10:0: 🎨 C0411: third party import "pandas" should be placed before first party import "adlib_v3"  (wrong-import-order)
helpers/stora_epg_match.py:2:0: ⚠️ W0611: Unused timezone imported from datetime (unused-import)
helpers/stora_epg_match.py:9:0: ⚠️ W0611: Unused import glob (unused-import)
************* Module utils
utils.py:666:0: 🎨 C0301: Line too long (151/100) (line-too-long)
utils.py:25:0: 🚨 E0401: Unable to import 'ffmpeg' (import-error)
utils.py:26:0: 🚨 E0401: Unable to import 'yaml' (import-error)
utils.py:141:9: ⚠️ W1514: Using open without explicitly specifying an encoding (unspecified-encoding)
utils.py:143:8: ♻️ R1703: The if statement can be replaced with 'return bool(test)' (simplifiable-if-statement)
utils.py:143:8: ♻️ R1705: Unnecessary "else" after "return", remove the "else" and de-indent the code inside it (no-else-return)
utils.py:150:0: ♻️ R1710: Either all return statements in a function should return an expression, or none of them should. (inconsistent-return-statements)
utils.py:173:9: ⚠️ W1514: Using open without explicitly specifying an encoding (unspecified-encoding)
utils.py:185:9: ⚠️ W1514: Using open without explicitly specifying an encoding (unspecified-encoding)
utils.py:196:9: ⚠️ W1514: Using open without explicitly specifying an encoding (unspecified-encoding)
utils.py:203:0: ♻️ R0911: Too many return statements (7/6) (too-many-return-statements)
utils.py:261:11: ⚠️ W0718: Catching too general exception Exception (broad-exception-caught)
utils.py:267:0: ♻️ R1710: Either all return statements in a function should return an expression, or none of them should. (inconsistent-return-statements)
utils.py:324:15: ⚠️ W1510: 'subprocess.run' used without explicitly defining the value for 'check'. (subprocess-run-check)
utils.py:413:11: ⚠️ W0718: Catching too general exception Exception (broad-exception-caught)
utils.py:428:15: ⚠️ W0718: Catching too general exception Exception (broad-exception-caught)
utils.py:470:15: ⚠️ W0718: Catching too general exception Exception (broad-exception-caught)
utils.py:484:4: 🎨 C0103: Variable name "LOGGER" doesn't conform to snake_case naming style (invalid-name)
utils.py:485:4: 🎨 C0103: Variable name "HDLR" doesn't conform to snake_case naming style (invalid-name)
utils.py:486:4: 🎨 C0103: Variable name "FORMATTER" doesn't conform to snake_case naming style (invalid-name)
utils.py:536:11: ⚠️ W0718: Catching too general exception Exception (broad-exception-caught)
utils.py:549:9: ⚠️ W1514: Using open without explicitly specifying an encoding (unspecified-encoding)
utils.py:543:0: ♻️ R1710: Either all return statements in a function should return an expression, or none of them should. (inconsistent-return-statements)
utils.py:566:13: ⚠️ W1514: Using open without explicitly specifying an encoding (unspecified-encoding)
utils.py:572:8: ⚠️ W0707: Consider explicitly re-raising using 'raise Exception from e' (raise-missing-from)
utils.py:572:8: ⚠️ W0719: Raising too general exception: Exception (broad-exception-raised)
utils.py:619:8: ⚠️ W0707: Consider explicitly re-raising using 'raise Exception from e' (raise-missing-from)
utils.py:619:8: ⚠️ W0719: Raising too general exception: Exception (broad-exception-raised)
utils.py:624:4: ♻️ R1705: Unnecessary "else" after "return", remove the "else" and de-indent the code inside it (no-else-return)
utils.py:627:8: ⚠️ W0719: Raising too general exception: Exception (broad-exception-raised)
utils.py:630:0: ♻️ R1710: Either all return statements in a function should return an expression, or none of them should. (inconsistent-return-statements)
utils.py:680:11: ⚠️ W0718: Catching too general exception Exception (broad-exception-caught)
utils.py:691:4: ⚠️ W0622: Redefining built-in 'format' (redefined-builtin)
utils.py:698:8: ⚠️ W0707: Consider explicitly re-raising using 'raise ValueError(f"Invalid datetime string format: {err}. Expected '%Y-%m-%d %H:%M:%S'") from err' (raise-missing-from)
utils.py:717:13: ⚠️ W1514: Using open without explicitly specifying an encoding (unspecified-encoding)
utils.py:719:12: ♻️ R1705: Unnecessary "else" after "return", remove the "else" and de-indent the code inside it (no-else-return)
utils.py:735:9: ⚠️ W1514: Using open without explicitly specifying an encoding (unspecified-encoding)
utils.py:17:0: ⚠️ W0611: Unused timedelta imported from datetime (unused-import)
************* Module workflow_requests_record_creator
workflow/flask_app/workflow_requests_record_creator.py:375:0: 🎨 C0301: Line too long (126/100) (line-too-long)
workflow/flask_app/workflow_requests_record_creator.py:52:0: 🎨 C0413: Import "import adlib_v3 as adlib" should be placed at the top of the module (wrong-import-position)
workflow/flask_app/workflow_requests_record_creator.py:53:0: 🎨 C0413: Import "import utils" should be placed at the top of the module (wrong-import-position)
workflow/flask_app/workflow_requests_record_creator.py:185:8: ⚠️ W0622: Redefining built-in 'bool' (redefined-builtin)
workflow/flask_app/workflow_requests_record_creator.py:172:11: ⚠️ W0718: Catching too general exception Exception (broad-exception-caught)
workflow/flask_app/workflow_requests_record_creator.py:202:10: ⚠️ W0612: Unused variable 'rec' (unused-variable)
workflow/flask_app/workflow_requests_record_creator.py:212:0: ♻️ R0914: Too many local variables (16/15) (too-many-locals)
workflow/flask_app/workflow_requests_record_creator.py:212:0: ♻️ R0915: Too many statements (69/50) (too-many-statements)
workflow/flask_app/workflow_requests_record_creator.py:1:0: ♻️ R0801: Similar lines in 2 files
==document_augmented_stora:[96:226]
==stora_epg_match:[40:167]
    ],
    "bbcfourhd": [
        "BBC Four HD",
        "This is BBC Four",
        "Programmes start at 7:00pm. [HD]",
    ],
    "bbcnewshd": [
        "BBC NEWS HD",
        "BBC News HD close",
        "Programmes will resume shortly.",
    ],
    "cbbchd": [
        "CBBC HD",
        "This is CBBC!",
        "This is CBBC! Join the CBBC crew for all your favourite programmes. Tune into CBBC every day from 7.00am. [HD]",
    ],
    "cbeebieshd": ["CBeebies HD", "CBeebies HD", "Programmes start at 6.00am."],
    "itv1": ["ITV HD", "ITV Nightscreen", "Text-based information service."],
    "itv2": ["ITV2", "ITV2 Nightscreen", "Text-based information service."],
    "itv3": ["ITV3", "ITV3 Nightscreen", "Text-based information service."],
    "itv4": ["ITV4", "ITV4 Nightscreen", "Text-based information service."],
    "itvbe": ["ITV Be", "ITV Be Nightscreen", "Text-basd information service."],
    "citv": ["CiTV", "CiTV close", "Programmes start at 6:00am."],
    "channel4": [
        "Channel 4 HD",
        "Channel 4 HD close",
        "Programming will resume shortly.",
    ],
    "more4": ["More4", "More4 close", "Programmes will resume shortly."],
    "e4": ["E4", "E4 close", "Programmes will resume shortly."],
    "film4": ["Film4", "Film4 close", "Programmes will resume shortly."],
    "five": ["Channel 5 HD", "Channel 5 close", "Programmes will resume shortly."],
    "5star": ["5STAR", "5STAR close", "Programmes will resume shortly."],
    "al_jazeera": [
        "Al Jazeera",
        "Al Jazeera close",
        "This is a 24 hour broadcast news channel.",
    ],
    "gb_news": [
        "GB News",
        "GB News close",
        "This is a 24 hour broadcast news channel.",
    ],
    "sky_news": [
        "Sky News",
        "Sky News close",
        "This is a 24 hour broadcast news channel.",
    ],
    "skyarts": ["Sky Arts", "Sky Arts close", "Programmes will resume shortly."],
    "skymixhd": ["Sky Mix HD", "Sky Mix HD close", "Programmes will resume shortly."],
    "qvc": ["QVC", "QVC close", "Programmes will resume shortly."],
    "togethertv": [
        "Together TV",
        "Together TV close",
        "Programmes will resume shortly.",
    ],
    "u_dave": ["U&Dave", "U & Dave close", "Programmes will resume shortly."],
    "u_drama": ["U&Drama", "U & Drama close", "Programmes will resume shortly."],
    "u_yesterday": [
        "U&Yesterday",
        "U & Yesterday close",
        "Programmes will resume shortly.",
    ],
}


def split_title(title_article):
    """
    An exception needs adding for "Die " as German language content
    This list is not comprehensive.
    """
    if title_article.startswith(
        (
            "A ",
            "An ",
            "Am ",
            "Al-",
            "As ",
            "Az ",
            "Bir ",
            "Das ",
            "De ",
            "Dei ",
            "Den ",
            "Der ",
            "Det ",
            "Di ",
            "Dos ",
            "Een ",
            "Eene",
            "Ei ",
            "Ein ",
            "Eine",
            "Eit ",
            "El ",
            "el-",
            "En ",
            "Et ",
            "Ett ",
            "Het ",
            "Il ",
            "Na ",
            "A'",
            "L'",
            "La ",
            "Le ",
            "Les ",
            "Los ",
            "The ",
            "Un ",
            "Une ",
            "Uno ",
            "Y ",
            "Yr ",
        )
    ):
        title_split = title_article.split()
        ttl = title_split[1:]
        title = " ".join(ttl)
        title_art = title_split[0]
        return title, title_art

    return title_article, ""


def look_up_series_list(alternative_num):
    """
    Check if series requires annual series creation
    """
 (duplicate-code)
workflow/flask_app/workflow_requests_record_creator.py:1:0: ♻️ R0801: Similar lines in 2 files
==document_augmented_stora:[81:97]
==stora_epg_match:[20:36]
CHANNELS = {
    "bbconehd": [
        "BBC One HD",
        "BBC News",
        "BBC One joins the BBC's rolling news channel for a night of news [S][HD]",
    ],
    "bbctwohd": [
        "BBC Two HD",
        "This is BBC Two",
        "Highlights of programmes BBC Two. [HD]",
    ],
    "bbcthree": [
        "BBC Three HD",
        "This is BBC Three",
        "Programmes start at 7:00pm. [HD]",
    ], (duplicate-code)
workflow/flask_app/workflow_requests_record_creator.py:1:0: ♻️ R0801: Similar lines in 2 files
==document_augmented_stora:[822:827]
==stora_epg_match:[169:174]
    for key, val in CHANNELS.items():
        if f"/{key}/" in fullpath:
            try:
                channel = val[0]
                print(f"Broadcast channel is {channel}") (duplicate-code)

-----------------------------------
Your code has been rated at 8.95/10

Note: 🚨 Errors need immediate attention! ⚠️ Warnings should be reviewed, but are less critical. ℹ️ Information messages are for your reference.

@bfi-bot
Copy link
Author

bfi-bot commented Jan 5, 2026

Automated Pylint Report 🧑‍💻

Here is the formatted Pylint report:

************* Module archivematica_sip_utils
born_digital_workflows/archivematica_sip_utils.py:17:0: 🚨 E0401: Unable to import 'paramiko' (import-error)
born_digital_workflows/archivematica_sip_utils.py:18:0: 🚨 E0401: Unable to import 'requests' (import-error)
born_digital_workflows/archivematica_sip_utils.py:79:0: ♻️ R0914: Too many local variables (19/15) (too-many-locals)
born_digital_workflows/archivematica_sip_utils.py:142:4: ♻️ R1705: Unnecessary "else" after "return", remove the "else" and de-indent the code inside it (no-else-return)
born_digital_workflows/archivematica_sip_utils.py:161:8: ♻️ R1705: Unnecessary "else" after "return", remove the "else" and de-indent the code inside it (no-else-return)
born_digital_workflows/archivematica_sip_utils.py:79:0: ♻️ R0911: Too many return statements (8/6) (too-many-return-statements)
born_digital_workflows/archivematica_sip_utils.py:79:0: ♻️ R0912: Too many branches (16/12) (too-many-branches)
born_digital_workflows/archivematica_sip_utils.py:79:0: ♻️ R0915: Too many statements (55/50) (too-many-statements)
born_digital_workflows/archivematica_sip_utils.py:172:0: ♻️ R0914: Too many local variables (18/15) (too-many-locals)
born_digital_workflows/archivematica_sip_utils.py:229:8: ♻️ R1705: Unnecessary "else" after "return", remove the "else" and de-indent the code inside it (no-else-return)
born_digital_workflows/archivematica_sip_utils.py:192:4: ⚠️ W0612: Unused variable 'check_folder' (unused-variable)
born_digital_workflows/archivematica_sip_utils.py:196:4: ⚠️ W0612: Unused variable 'err' (unused-variable)
born_digital_workflows/archivematica_sip_utils.py:240:0: ♻️ R1710: Either all return statements in a function should return an expression, or none of them should. (inconsistent-return-statements)
born_digital_workflows/archivematica_sip_utils.py:267:4: ⚠️ W0612: Unused variable 'err' (unused-variable)
born_digital_workflows/archivematica_sip_utils.py:288:16: ⚠️ W0612: Unused variable 'file' (unused-variable)
born_digital_workflows/archivematica_sip_utils.py:302:0: ♻️ R0913: Too many arguments (6/5) (too-many-arguments)
born_digital_workflows/archivematica_sip_utils.py:302:0: ♻️ R0917: Too many positional arguments (6/5) (too-many-positional-arguments)
born_digital_workflows/archivematica_sip_utils.py:314:4: 🎨 C0103: Variable name "PACKAGE_ENDPOINT" doesn't conform to snake_case naming style (invalid-name)
born_digital_workflows/archivematica_sip_utils.py:417:4: 🎨 C0103: Variable name "COMPLETED" doesn't conform to snake_case naming style (invalid-name)
born_digital_workflows/archivematica_sip_utils.py:426:8: ♻️ R1705: Unnecessary "else" after "return", remove the "else" and de-indent the code inside it (no-else-return)
born_digital_workflows/archivematica_sip_utils.py:441:4: 🎨 C0103: Variable name "SS_END" doesn't conform to snake_case naming style (invalid-name)
born_digital_workflows/archivematica_sip_utils.py:435:0: ♻️ R1710: Either all return statements in a function should return an expression, or none of them should. (inconsistent-return-statements)
born_digital_workflows/archivematica_sip_utils.py:526:14: ⚠️ W1309: Using an f-string that does not have any interpolated variables (f-string-without-interpolation)
born_digital_workflows/archivematica_sip_utils.py:551:8: ♻️ R1724: Unnecessary "elif" after "continue", remove the leading "el" from "elif" (no-else-continue)
born_digital_workflows/archivematica_sip_utils.py:564:4: 🎨 C0103: Variable name "ENDPOINT" doesn't conform to snake_case naming style (invalid-name)
born_digital_workflows/archivematica_sip_utils.py:586:30: ⚠️ W0622: Redefining built-in 'type' (redefined-builtin)
born_digital_workflows/archivematica_sip_utils.py:596:4: 🎨 C0103: Variable name "PACKAGE_ENDPOINT" doesn't conform to snake_case naming style (invalid-name)
born_digital_workflows/archivematica_sip_utils.py:637:4: 🎨 C0103: Variable name "ENDPOINT" doesn't conform to snake_case naming style (invalid-name)
born_digital_workflows/archivematica_sip_utils.py:681:4: ⚠️ W0621: Redefining name 'urlencode' from outer scope (line 16) (redefined-outer-name)
born_digital_workflows/archivematica_sip_utils.py:681:4: ⚠️ W0404: Reimport 'urlencode' (imported line 16) (reimported)
born_digital_workflows/archivematica_sip_utils.py:681:4: 🎨 C0415: Import outside toplevel (urllib.parse.urlencode) (import-outside-toplevel)
born_digital_workflows/archivematica_sip_utils.py:683:4: 🎨 C0103: Variable name "MDATA_ENDPOINT" doesn't conform to snake_case naming style (invalid-name)
born_digital_workflows/archivematica_sip_utils.py:718:4: 🎨 C0103: Variable name "END" doesn't conform to snake_case naming style (invalid-name)
born_digital_workflows/archivematica_sip_utils.py:748:4: 🎨 C0103: Variable name "GET_UNAPPROVED" doesn't conform to snake_case naming style (invalid-name)
born_digital_workflows/archivematica_sip_utils.py:749:4: 🎨 C0103: Variable name "APPROVE_TRANSFER" doesn't conform to snake_case naming style (invalid-name)
born_digital_workflows/archivematica_sip_utils.py:742:0: ♻️ R0912: Too many branches (13/12) (too-many-branches)
born_digital_workflows/archivematica_sip_utils.py:742:0: ♻️ R1710: Either all return statements in a function should return an expression, or none of them should. (inconsistent-return-statements)
************* Module document_augmented_stora
document_en_15907/document_augmented_stora.py:11:0: 🎨 C0301: Line too long (104/100) (line-too-long)
document_en_15907/document_augmented_stora.py:23:0: 🎨 C0301: Line too long (101/100) (line-too-long)
document_en_15907/document_augmented_stora.py:111:0: 🎨 C0301: Line too long (121/100) (line-too-long)
document_en_15907/document_augmented_stora.py:256:0: 🎨 C0301: Line too long (101/100) (line-too-long)
document_en_15907/document_augmented_stora.py:384:0: 🎨 C0301: Line too long (104/100) (line-too-long)
document_en_15907/document_augmented_stora.py:433:0: 🎨 C0301: Line too long (101/100) (line-too-long)
document_en_15907/document_augmented_stora.py:443:0: 🎨 C0301: Line too long (110/100) (line-too-long)
document_en_15907/document_augmented_stora.py:531:0: 🎨 C0301: Line too long (105/100) (line-too-long)
document_en_15907/document_augmented_stora.py:902:0: 🎨 C0301: Line too long (103/100) (line-too-long)
document_en_15907/document_augmented_stora.py:995:0: 🎨 C0301: Line too long (115/100) (line-too-long)
document_en_15907/document_augmented_stora.py:998:0: 🎨 C0301: Line too long (111/100) (line-too-long)
document_en_15907/document_augmented_stora.py:1013:0: 🎨 C0301: Line too long (114/100) (line-too-long)
document_en_15907/document_augmented_stora.py:1049:0: 🎨 C0301: Line too long (103/100) (line-too-long)
document_en_15907/document_augmented_stora.py:1068:0: 🎨 C0301: Line too long (125/100) (line-too-long)
document_en_15907/document_augmented_stora.py:1091:0: 🎨 C0301: Line too long (115/100) (line-too-long)
document_en_15907/document_augmented_stora.py:1163:0: 🎨 C0301: Line too long (113/100) (line-too-long)
document_en_15907/document_augmented_stora.py:1173:0: 🎨 C0301: Line too long (147/100) (line-too-long)
document_en_15907/document_augmented_stora.py:1177:0: 🎨 C0301: Line too long (113/100) (line-too-long)
document_en_15907/document_augmented_stora.py:1226:0: 🎨 C0301: Line too long (108/100) (line-too-long)
document_en_15907/document_augmented_stora.py:1244:0: 🎨 C0301: Line too long (105/100) (line-too-long)
document_en_15907/document_augmented_stora.py:1386:0: 🎨 C0301: Line too long (120/100) (line-too-long)
document_en_15907/document_augmented_stora.py:1391:0: 🎨 C0301: Line too long (114/100) (line-too-long)
document_en_15907/document_augmented_stora.py:1398:0: 🎨 C0301: Line too long (112/100) (line-too-long)
document_en_15907/document_augmented_stora.py:1403:0: 🎨 C0301: Line too long (113/100) (line-too-long)
document_en_15907/document_augmented_stora.py:1663:0: 🎨 C0301: Line too long (104/100) (line-too-long)
document_en_15907/document_augmented_stora.py:2025:0: 🎨 C0301: Line too long (106/100) (line-too-long)
document_en_15907/document_augmented_stora.py:2080:0: 🎨 C0301: Line too long (117/100) (line-too-long)
document_en_15907/document_augmented_stora.py:2097:0: 🎨 C0301: Line too long (121/100) (line-too-long)
document_en_15907/document_augmented_stora.py:2119:0: 🎨 C0301: Line too long (117/100) (line-too-long)
document_en_15907/document_augmented_stora.py:2191:0: 🎨 C0301: Line too long (107/100) (line-too-long)
document_en_15907/document_augmented_stora.py:2295:0: 🎨 C0301: Line too long (120/100) (line-too-long)
document_en_15907/document_augmented_stora.py:1:0: 🎨 C0302: Too many lines in module (2314/1000) (too-many-lines)
document_en_15907/document_augmented_stora.py:39:0: 🚨 E0401: Unable to import 'tenacity' (import-error)
document_en_15907/document_augmented_stora.py:40:0: 🚨 E0401: Unable to import 'yaml' (import-error)
document_en_15907/document_augmented_stora.py:44:0: 🚨 E0401: Unable to import 'adlib_v3' (import-error)
document_en_15907/document_augmented_stora.py:44:0: 🎨 C0413: Import "import adlib_v3 as adlib" should be placed at the top of the module (wrong-import-position)
document_en_15907/document_augmented_stora.py:45:0: 🚨 E0401: Unable to import 'utils' (import-error)
document_en_15907/document_augmented_stora.py:45:0: 🎨 C0413: Import "import utils" should be placed at the top of the module (wrong-import-position)
document_en_15907/document_augmented_stora.py:46:0: 🚨 E0401: Unable to import 'helpers' (import-error)
document_en_15907/document_augmented_stora.py:46:0: 🎨 C0413: Import "from helpers import stora_helper" should be placed at the top of the module (wrong-import-position)
document_en_15907/document_augmented_stora.py:229:9: ⚠️ W1514: Using open without explicitly specifying an encoding (unspecified-encoding)
document_en_15907/document_augmented_stora.py:251:8: ⚠️ W0707: Consider explicitly re-raising using 'raise Exception from err' (raise-missing-from)
document_en_15907/document_augmented_stora.py:251:8: ⚠️ W0719: Raising too general exception: Exception (broad-exception-raised)
document_en_15907/document_augmented_stora.py:273:0: ♻️ R1710: Either all return statements in a function should return an expression, or none of them should. (inconsistent-return-statements)
document_en_15907/document_augmented_stora.py:332:0: ♻️ R0914: Too many local variables (16/15) (too-many-locals)
document_en_15907/document_augmented_stora.py:332:0: ♻️ R0915: Too many statements (56/50) (too-many-statements)
document_en_15907/document_augmented_stora.py:435:29: ⚠️ W1514: Using open without explicitly specifying an encoding (unspecified-encoding)
document_en_15907/document_augmented_stora.py:413:0: ♻️ R1710: Either all return statements in a function should return an expression, or none of them should. (inconsistent-return-statements)
document_en_15907/document_augmented_stora.py:537:0: ♻️ R0914: Too many local variables (51/15) (too-many-locals)
document_en_15907/document_augmented_stora.py:819:11: 🚨 E0606: Possibly using variable 'code_type' before assignment (possibly-used-before-assignment)
document_en_15907/document_augmented_stora.py:884:33: 🚨 E0606: Possibly using variable 'work_type' before assignment (possibly-used-before-assignment)
document_en_15907/document_augmented_stora.py:537:0: ♻️ R0912: Too many branches (79/12) (too-many-branches)
document_en_15907/document_augmented_stora.py:537:0: ♻️ R0915: Too many statements (302/50) (too-many-statements)
document_en_15907/document_augmented_stora.py:890:0: ♻️ R0914: Too many local variables (46/15) (too-many-locals)
document_en_15907/document_augmented_stora.py:993:8: ♻️ R1724: Unnecessary "elif" after "continue", remove the leading "el" from "elif" (no-else-continue)
document_en_15907/document_augmented_stora.py:1020:8: ⚠️ W0105: String statement has no effect (pointless-string-statement)
document_en_15907/document_augmented_stora.py:1064:49: 🚨 E0606: Possibly using variable 'series_id' before assignment (possibly-used-before-assignment)
document_en_15907/document_augmented_stora.py:1087:24: 🚨 E0606: Possibly using variable 'bbc_split' before assignment (possibly-used-before-assignment)
document_en_15907/document_augmented_stora.py:1161:12: ♻️ R1724: Unnecessary "else" after "continue", remove the "else" and de-indent the code inside it (no-else-continue)
document_en_15907/document_augmented_stora.py:1173:16: ⚠️ W1309: Using an f-string that does not have any interpolated variables (f-string-without-interpolation)
document_en_15907/document_augmented_stora.py:1175:12: ♻️ R1724: Unnecessary "else" after "continue", remove the "else" and de-indent the code inside it (no-else-continue)
document_en_15907/document_augmented_stora.py:1186:8: ⚠️ W0105: String statement has no effect (pointless-string-statement)
document_en_15907/document_augmented_stora.py:1198:15: ⚠️ W0718: Catching too general exception Exception (broad-exception-caught)
document_en_15907/document_augmented_stora.py:1214:15: ⚠️ W0718: Catching too general exception Exception (broad-exception-caught)
document_en_15907/document_augmented_stora.py:1234:19: ⚠️ W0718: Catching too general exception Exception (broad-exception-caught)
document_en_15907/document_augmented_stora.py:890:0: ♻️ R0912: Too many branches (45/12) (too-many-branches)
document_en_15907/document_augmented_stora.py:890:0: ♻️ R0915: Too many statements (195/50) (too-many-statements)
document_en_15907/document_augmented_stora.py:1248:0: ♻️ R0913: Too many arguments (7/5) (too-many-arguments)
document_en_15907/document_augmented_stora.py:1248:0: ♻️ R0917: Too many positional arguments (7/5) (too-many-positional-arguments)
document_en_15907/document_augmented_stora.py:1248:0: ♻️ R0914: Too many local variables (39/15) (too-many-locals)
document_en_15907/document_augmented_stora.py:1437:11: ⚠️ W0718: Catching too general exception Exception (broad-exception-caught)
document_en_15907/document_augmented_stora.py:1452:15: ⚠️ W0718: Catching too general exception Exception (broad-exception-caught)
document_en_15907/document_augmented_stora.py:1463:8: ⚠️ W0719: Raising too general exception: Exception (broad-exception-raised)
document_en_15907/document_augmented_stora.py:1501:12: ⚠️ W0719: Raising too general exception: Exception (broad-exception-raised)
document_en_15907/document_augmented_stora.py:1523:12: ⚠️ W0719: Raising too general exception: Exception (broad-exception-raised)
document_en_15907/document_augmented_stora.py:1570:12: ⚠️ W0719: Raising too general exception: Exception (broad-exception-raised)
document_en_15907/document_augmented_stora.py:1248:0: ♻️ R0912: Too many branches (56/12) (too-many-branches)
document_en_15907/document_augmented_stora.py:1248:0: ♻️ R0915: Too many statements (202/50) (too-many-statements)
document_en_15907/document_augmented_stora.py:1592:12: 🚨 E0602: Undefined variable 'LOGGER' (undefined-variable)
document_en_15907/document_augmented_stora.py:1606:40: 🚨 E0606: Possibly using variable 'bst_time' before assignment (possibly-used-before-assignment)
document_en_15907/document_augmented_stora.py:1650:29: 🚨 E0606: Possibly using variable 'bst_date' before assignment (possibly-used-before-assignment)
document_en_15907/document_augmented_stora.py:1730:0: ♻️ R0913: Too many arguments (6/5) (too-many-arguments)
document_en_15907/document_augmented_stora.py:1730:0: ♻️ R0917: Too many positional arguments (6/5) (too-many-positional-arguments)
document_en_15907/document_augmented_stora.py:1730:0: ♻️ R0914: Too many local variables (24/15) (too-many-locals)
document_en_15907/document_augmented_stora.py:1799:11: ⚠️ W0718: Catching too general exception Exception (broad-exception-caught)
document_en_15907/document_augmented_stora.py:1808:8: ⚠️ W0719: Raising too general exception: Exception (broad-exception-raised)
document_en_15907/document_augmented_stora.py:1818:15: ⚠️ W0718: Catching too general exception Exception (broad-exception-caught)
document_en_15907/document_augmented_stora.py:1859:12: ⚠️ W0719: Raising too general exception: Exception (broad-exception-raised)
document_en_15907/document_augmented_stora.py:1879:12: ⚠️ W0719: Raising too general exception: Exception (broad-exception-raised)
document_en_15907/document_augmented_stora.py:1924:12: ⚠️ W0719: Raising too general exception: Exception (broad-exception-raised)
document_en_15907/document_augmented_stora.py:1730:0: ♻️ R0912: Too many branches (41/12) (too-many-branches)
document_en_15907/document_augmented_stora.py:1730:0: ♻️ R0915: Too many statements (140/50) (too-many-statements)
document_en_15907/document_augmented_stora.py:1932:0: ♻️ R0914: Too many local variables (17/15) (too-many-locals)
document_en_15907/document_augmented_stora.py:1998:11: ⚠️ W0718: Catching too general exception Exception (broad-exception-caught)
document_en_15907/document_augmented_stora.py:2013:15: ⚠️ W0718: Catching too general exception Exception (broad-exception-caught)
document_en_15907/document_augmented_stora.py:2020:8: ⚠️ W0719: Raising too general exception: Exception (broad-exception-raised)
document_en_15907/document_augmented_stora.py:1932:0: ♻️ R0912: Too many branches (17/12) (too-many-branches)
document_en_15907/document_augmented_stora.py:1932:0: ♻️ R0915: Too many statements (70/50) (too-many-statements)
document_en_15907/document_augmented_stora.py:2042:0: ♻️ R0913: Too many arguments (8/5) (too-many-arguments)
document_en_15907/document_augmented_stora.py:2042:0: ♻️ R0917: Too many positional arguments (8/5) (too-many-positional-arguments)
document_en_15907/document_augmented_stora.py:2078:11: ⚠️ W0718: Catching too general exception Exception (broad-exception-caught)
document_en_15907/document_augmented_stora.py:2095:15: ⚠️ W0718: Catching too general exception Exception (broad-exception-caught)
document_en_15907/document_augmented_stora.py:2104:8: ⚠️ W0719: Raising too general exception: Exception (broad-exception-raised)
document_en_15907/document_augmented_stora.py:2158:11: ⚠️ W0718: Catching too general exception Exception (broad-exception-caught)
document_en_15907/document_augmented_stora.py:2189:15: ⚠️ W0718: Catching too general exception Exception (broad-exception-caught)
document_en_15907/document_augmented_stora.py:2208:4: ⚠️ W0603: Using the global statement (global-statement)
document_en_15907/document_augmented_stora.py:2212:11: ⚠️ W0718: Catching too general exception Exception (broad-exception-caught)
document_en_15907/document_augmented_stora.py:2201:0: ♻️ R1710: Either all return statements in a function should return an expression, or none of them should. (inconsistent-return-statements)
document_en_15907/document_augmented_stora.py:2244:0: ♻️ R0914: Too many local variables (17/15) (too-many-locals)
document_en_15907/document_augmented_stora.py:2278:9: ⚠️ W1514: Using open without explicitly specifying an encoding (unspecified-encoding)
document_en_15907/document_augmented_stora.py:2301:11: ⚠️ W0718: Catching too general exception Exception (broad-exception-caught)
document_en_15907/document_augmented_stora.py:2306:8: ⚠️ W0719: Raising too general exception: Exception (broad-exception-raised)
document_en_15907/document_augmented_stora.py:2307:4: ♻️ R1703: The if statement can be replaced with 'return bool(test)' (simplifiable-if-statement)
document_en_15907/document_augmented_stora.py:2307:4: ♻️ R1705: Unnecessary "else" after "return", remove the "else" and de-indent the code inside it (no-else-return)

-----------------------------------
Your code has been rated at 8.87/10

Note: 🚨 Errors need immediate attention! ⚠️ Warnings should be reviewed, but are less critical. ℹ️ Information messages are for your reference.

1 similar comment
@bfi-bot
Copy link
Author

bfi-bot commented Jan 5, 2026

Automated Pylint Report 🧑‍💻

Here is the formatted Pylint report:

************* Module archivematica_sip_utils
born_digital_workflows/archivematica_sip_utils.py:17:0: 🚨 E0401: Unable to import 'paramiko' (import-error)
born_digital_workflows/archivematica_sip_utils.py:18:0: 🚨 E0401: Unable to import 'requests' (import-error)
born_digital_workflows/archivematica_sip_utils.py:79:0: ♻️ R0914: Too many local variables (19/15) (too-many-locals)
born_digital_workflows/archivematica_sip_utils.py:142:4: ♻️ R1705: Unnecessary "else" after "return", remove the "else" and de-indent the code inside it (no-else-return)
born_digital_workflows/archivematica_sip_utils.py:161:8: ♻️ R1705: Unnecessary "else" after "return", remove the "else" and de-indent the code inside it (no-else-return)
born_digital_workflows/archivematica_sip_utils.py:79:0: ♻️ R0911: Too many return statements (8/6) (too-many-return-statements)
born_digital_workflows/archivematica_sip_utils.py:79:0: ♻️ R0912: Too many branches (16/12) (too-many-branches)
born_digital_workflows/archivematica_sip_utils.py:79:0: ♻️ R0915: Too many statements (55/50) (too-many-statements)
born_digital_workflows/archivematica_sip_utils.py:172:0: ♻️ R0914: Too many local variables (18/15) (too-many-locals)
born_digital_workflows/archivematica_sip_utils.py:229:8: ♻️ R1705: Unnecessary "else" after "return", remove the "else" and de-indent the code inside it (no-else-return)
born_digital_workflows/archivematica_sip_utils.py:192:4: ⚠️ W0612: Unused variable 'check_folder' (unused-variable)
born_digital_workflows/archivematica_sip_utils.py:196:4: ⚠️ W0612: Unused variable 'err' (unused-variable)
born_digital_workflows/archivematica_sip_utils.py:240:0: ♻️ R1710: Either all return statements in a function should return an expression, or none of them should. (inconsistent-return-statements)
born_digital_workflows/archivematica_sip_utils.py:267:4: ⚠️ W0612: Unused variable 'err' (unused-variable)
born_digital_workflows/archivematica_sip_utils.py:288:16: ⚠️ W0612: Unused variable 'file' (unused-variable)
born_digital_workflows/archivematica_sip_utils.py:302:0: ♻️ R0913: Too many arguments (6/5) (too-many-arguments)
born_digital_workflows/archivematica_sip_utils.py:302:0: ♻️ R0917: Too many positional arguments (6/5) (too-many-positional-arguments)
born_digital_workflows/archivematica_sip_utils.py:314:4: 🎨 C0103: Variable name "PACKAGE_ENDPOINT" doesn't conform to snake_case naming style (invalid-name)
born_digital_workflows/archivematica_sip_utils.py:417:4: 🎨 C0103: Variable name "COMPLETED" doesn't conform to snake_case naming style (invalid-name)
born_digital_workflows/archivematica_sip_utils.py:426:8: ♻️ R1705: Unnecessary "else" after "return", remove the "else" and de-indent the code inside it (no-else-return)
born_digital_workflows/archivematica_sip_utils.py:441:4: 🎨 C0103: Variable name "SS_END" doesn't conform to snake_case naming style (invalid-name)
born_digital_workflows/archivematica_sip_utils.py:435:0: ♻️ R1710: Either all return statements in a function should return an expression, or none of them should. (inconsistent-return-statements)
born_digital_workflows/archivematica_sip_utils.py:526:14: ⚠️ W1309: Using an f-string that does not have any interpolated variables (f-string-without-interpolation)
born_digital_workflows/archivematica_sip_utils.py:551:8: ♻️ R1724: Unnecessary "elif" after "continue", remove the leading "el" from "elif" (no-else-continue)
born_digital_workflows/archivematica_sip_utils.py:564:4: 🎨 C0103: Variable name "ENDPOINT" doesn't conform to snake_case naming style (invalid-name)
born_digital_workflows/archivematica_sip_utils.py:586:30: ⚠️ W0622: Redefining built-in 'type' (redefined-builtin)
born_digital_workflows/archivematica_sip_utils.py:596:4: 🎨 C0103: Variable name "PACKAGE_ENDPOINT" doesn't conform to snake_case naming style (invalid-name)
born_digital_workflows/archivematica_sip_utils.py:637:4: 🎨 C0103: Variable name "ENDPOINT" doesn't conform to snake_case naming style (invalid-name)
born_digital_workflows/archivematica_sip_utils.py:681:4: ⚠️ W0621: Redefining name 'urlencode' from outer scope (line 16) (redefined-outer-name)
born_digital_workflows/archivematica_sip_utils.py:681:4: ⚠️ W0404: Reimport 'urlencode' (imported line 16) (reimported)
born_digital_workflows/archivematica_sip_utils.py:681:4: 🎨 C0415: Import outside toplevel (urllib.parse.urlencode) (import-outside-toplevel)
born_digital_workflows/archivematica_sip_utils.py:683:4: 🎨 C0103: Variable name "MDATA_ENDPOINT" doesn't conform to snake_case naming style (invalid-name)
born_digital_workflows/archivematica_sip_utils.py:718:4: 🎨 C0103: Variable name "END" doesn't conform to snake_case naming style (invalid-name)
born_digital_workflows/archivematica_sip_utils.py:748:4: 🎨 C0103: Variable name "GET_UNAPPROVED" doesn't conform to snake_case naming style (invalid-name)
born_digital_workflows/archivematica_sip_utils.py:749:4: 🎨 C0103: Variable name "APPROVE_TRANSFER" doesn't conform to snake_case naming style (invalid-name)
born_digital_workflows/archivematica_sip_utils.py:742:0: ♻️ R0912: Too many branches (13/12) (too-many-branches)
born_digital_workflows/archivematica_sip_utils.py:742:0: ♻️ R1710: Either all return statements in a function should return an expression, or none of them should. (inconsistent-return-statements)
************* Module document_augmented_stora
document_en_15907/document_augmented_stora.py:11:0: 🎨 C0301: Line too long (104/100) (line-too-long)
document_en_15907/document_augmented_stora.py:23:0: 🎨 C0301: Line too long (101/100) (line-too-long)
document_en_15907/document_augmented_stora.py:111:0: 🎨 C0301: Line too long (121/100) (line-too-long)
document_en_15907/document_augmented_stora.py:256:0: 🎨 C0301: Line too long (101/100) (line-too-long)
document_en_15907/document_augmented_stora.py:384:0: 🎨 C0301: Line too long (104/100) (line-too-long)
document_en_15907/document_augmented_stora.py:433:0: 🎨 C0301: Line too long (101/100) (line-too-long)
document_en_15907/document_augmented_stora.py:443:0: 🎨 C0301: Line too long (110/100) (line-too-long)
document_en_15907/document_augmented_stora.py:531:0: 🎨 C0301: Line too long (105/100) (line-too-long)
document_en_15907/document_augmented_stora.py:902:0: 🎨 C0301: Line too long (103/100) (line-too-long)
document_en_15907/document_augmented_stora.py:995:0: 🎨 C0301: Line too long (115/100) (line-too-long)
document_en_15907/document_augmented_stora.py:998:0: 🎨 C0301: Line too long (111/100) (line-too-long)
document_en_15907/document_augmented_stora.py:1013:0: 🎨 C0301: Line too long (114/100) (line-too-long)
document_en_15907/document_augmented_stora.py:1049:0: 🎨 C0301: Line too long (103/100) (line-too-long)
document_en_15907/document_augmented_stora.py:1068:0: 🎨 C0301: Line too long (125/100) (line-too-long)
document_en_15907/document_augmented_stora.py:1091:0: 🎨 C0301: Line too long (115/100) (line-too-long)
document_en_15907/document_augmented_stora.py:1163:0: 🎨 C0301: Line too long (113/100) (line-too-long)
document_en_15907/document_augmented_stora.py:1173:0: 🎨 C0301: Line too long (147/100) (line-too-long)
document_en_15907/document_augmented_stora.py:1177:0: 🎨 C0301: Line too long (113/100) (line-too-long)
document_en_15907/document_augmented_stora.py:1226:0: 🎨 C0301: Line too long (108/100) (line-too-long)
document_en_15907/document_augmented_stora.py:1244:0: 🎨 C0301: Line too long (105/100) (line-too-long)
document_en_15907/document_augmented_stora.py:1386:0: 🎨 C0301: Line too long (120/100) (line-too-long)
document_en_15907/document_augmented_stora.py:1391:0: 🎨 C0301: Line too long (114/100) (line-too-long)
document_en_15907/document_augmented_stora.py:1398:0: 🎨 C0301: Line too long (112/100) (line-too-long)
document_en_15907/document_augmented_stora.py:1403:0: 🎨 C0301: Line too long (113/100) (line-too-long)
document_en_15907/document_augmented_stora.py:1663:0: 🎨 C0301: Line too long (104/100) (line-too-long)
document_en_15907/document_augmented_stora.py:2025:0: 🎨 C0301: Line too long (106/100) (line-too-long)
document_en_15907/document_augmented_stora.py:2080:0: 🎨 C0301: Line too long (117/100) (line-too-long)
document_en_15907/document_augmented_stora.py:2097:0: 🎨 C0301: Line too long (121/100) (line-too-long)
document_en_15907/document_augmented_stora.py:2119:0: 🎨 C0301: Line too long (117/100) (line-too-long)
document_en_15907/document_augmented_stora.py:2191:0: 🎨 C0301: Line too long (107/100) (line-too-long)
document_en_15907/document_augmented_stora.py:2295:0: 🎨 C0301: Line too long (120/100) (line-too-long)
document_en_15907/document_augmented_stora.py:1:0: 🎨 C0302: Too many lines in module (2314/1000) (too-many-lines)
document_en_15907/document_augmented_stora.py:39:0: 🚨 E0401: Unable to import 'tenacity' (import-error)
document_en_15907/document_augmented_stora.py:40:0: 🚨 E0401: Unable to import 'yaml' (import-error)
document_en_15907/document_augmented_stora.py:44:0: 🚨 E0401: Unable to import 'adlib_v3' (import-error)
document_en_15907/document_augmented_stora.py:44:0: 🎨 C0413: Import "import adlib_v3 as adlib" should be placed at the top of the module (wrong-import-position)
document_en_15907/document_augmented_stora.py:45:0: 🚨 E0401: Unable to import 'utils' (import-error)
document_en_15907/document_augmented_stora.py:45:0: 🎨 C0413: Import "import utils" should be placed at the top of the module (wrong-import-position)
document_en_15907/document_augmented_stora.py:46:0: 🚨 E0401: Unable to import 'helpers' (import-error)
document_en_15907/document_augmented_stora.py:46:0: 🎨 C0413: Import "from helpers import stora_helper" should be placed at the top of the module (wrong-import-position)
document_en_15907/document_augmented_stora.py:229:9: ⚠️ W1514: Using open without explicitly specifying an encoding (unspecified-encoding)
document_en_15907/document_augmented_stora.py:251:8: ⚠️ W0707: Consider explicitly re-raising using 'raise Exception from err' (raise-missing-from)
document_en_15907/document_augmented_stora.py:251:8: ⚠️ W0719: Raising too general exception: Exception (broad-exception-raised)
document_en_15907/document_augmented_stora.py:273:0: ♻️ R1710: Either all return statements in a function should return an expression, or none of them should. (inconsistent-return-statements)
document_en_15907/document_augmented_stora.py:332:0: ♻️ R0914: Too many local variables (16/15) (too-many-locals)
document_en_15907/document_augmented_stora.py:332:0: ♻️ R0915: Too many statements (56/50) (too-many-statements)
document_en_15907/document_augmented_stora.py:435:29: ⚠️ W1514: Using open without explicitly specifying an encoding (unspecified-encoding)
document_en_15907/document_augmented_stora.py:413:0: ♻️ R1710: Either all return statements in a function should return an expression, or none of them should. (inconsistent-return-statements)
document_en_15907/document_augmented_stora.py:537:0: ♻️ R0914: Too many local variables (51/15) (too-many-locals)
document_en_15907/document_augmented_stora.py:819:11: 🚨 E0606: Possibly using variable 'code_type' before assignment (possibly-used-before-assignment)
document_en_15907/document_augmented_stora.py:884:33: 🚨 E0606: Possibly using variable 'work_type' before assignment (possibly-used-before-assignment)
document_en_15907/document_augmented_stora.py:537:0: ♻️ R0912: Too many branches (79/12) (too-many-branches)
document_en_15907/document_augmented_stora.py:537:0: ♻️ R0915: Too many statements (302/50) (too-many-statements)
document_en_15907/document_augmented_stora.py:890:0: ♻️ R0914: Too many local variables (46/15) (too-many-locals)
document_en_15907/document_augmented_stora.py:993:8: ♻️ R1724: Unnecessary "elif" after "continue", remove the leading "el" from "elif" (no-else-continue)
document_en_15907/document_augmented_stora.py:1020:8: ⚠️ W0105: String statement has no effect (pointless-string-statement)
document_en_15907/document_augmented_stora.py:1064:49: 🚨 E0606: Possibly using variable 'series_id' before assignment (possibly-used-before-assignment)
document_en_15907/document_augmented_stora.py:1087:24: 🚨 E0606: Possibly using variable 'bbc_split' before assignment (possibly-used-before-assignment)
document_en_15907/document_augmented_stora.py:1161:12: ♻️ R1724: Unnecessary "else" after "continue", remove the "else" and de-indent the code inside it (no-else-continue)
document_en_15907/document_augmented_stora.py:1173:16: ⚠️ W1309: Using an f-string that does not have any interpolated variables (f-string-without-interpolation)
document_en_15907/document_augmented_stora.py:1175:12: ♻️ R1724: Unnecessary "else" after "continue", remove the "else" and de-indent the code inside it (no-else-continue)
document_en_15907/document_augmented_stora.py:1186:8: ⚠️ W0105: String statement has no effect (pointless-string-statement)
document_en_15907/document_augmented_stora.py:1198:15: ⚠️ W0718: Catching too general exception Exception (broad-exception-caught)
document_en_15907/document_augmented_stora.py:1214:15: ⚠️ W0718: Catching too general exception Exception (broad-exception-caught)
document_en_15907/document_augmented_stora.py:1234:19: ⚠️ W0718: Catching too general exception Exception (broad-exception-caught)
document_en_15907/document_augmented_stora.py:890:0: ♻️ R0912: Too many branches (45/12) (too-many-branches)
document_en_15907/document_augmented_stora.py:890:0: ♻️ R0915: Too many statements (195/50) (too-many-statements)
document_en_15907/document_augmented_stora.py:1248:0: ♻️ R0913: Too many arguments (7/5) (too-many-arguments)
document_en_15907/document_augmented_stora.py:1248:0: ♻️ R0917: Too many positional arguments (7/5) (too-many-positional-arguments)
document_en_15907/document_augmented_stora.py:1248:0: ♻️ R0914: Too many local variables (39/15) (too-many-locals)
document_en_15907/document_augmented_stora.py:1437:11: ⚠️ W0718: Catching too general exception Exception (broad-exception-caught)
document_en_15907/document_augmented_stora.py:1452:15: ⚠️ W0718: Catching too general exception Exception (broad-exception-caught)
document_en_15907/document_augmented_stora.py:1463:8: ⚠️ W0719: Raising too general exception: Exception (broad-exception-raised)
document_en_15907/document_augmented_stora.py:1501:12: ⚠️ W0719: Raising too general exception: Exception (broad-exception-raised)
document_en_15907/document_augmented_stora.py:1523:12: ⚠️ W0719: Raising too general exception: Exception (broad-exception-raised)
document_en_15907/document_augmented_stora.py:1570:12: ⚠️ W0719: Raising too general exception: Exception (broad-exception-raised)
document_en_15907/document_augmented_stora.py:1248:0: ♻️ R0912: Too many branches (56/12) (too-many-branches)
document_en_15907/document_augmented_stora.py:1248:0: ♻️ R0915: Too many statements (202/50) (too-many-statements)
document_en_15907/document_augmented_stora.py:1592:12: 🚨 E0602: Undefined variable 'LOGGER' (undefined-variable)
document_en_15907/document_augmented_stora.py:1606:40: 🚨 E0606: Possibly using variable 'bst_time' before assignment (possibly-used-before-assignment)
document_en_15907/document_augmented_stora.py:1650:29: 🚨 E0606: Possibly using variable 'bst_date' before assignment (possibly-used-before-assignment)
document_en_15907/document_augmented_stora.py:1730:0: ♻️ R0913: Too many arguments (6/5) (too-many-arguments)
document_en_15907/document_augmented_stora.py:1730:0: ♻️ R0917: Too many positional arguments (6/5) (too-many-positional-arguments)
document_en_15907/document_augmented_stora.py:1730:0: ♻️ R0914: Too many local variables (24/15) (too-many-locals)
document_en_15907/document_augmented_stora.py:1799:11: ⚠️ W0718: Catching too general exception Exception (broad-exception-caught)
document_en_15907/document_augmented_stora.py:1808:8: ⚠️ W0719: Raising too general exception: Exception (broad-exception-raised)
document_en_15907/document_augmented_stora.py:1818:15: ⚠️ W0718: Catching too general exception Exception (broad-exception-caught)
document_en_15907/document_augmented_stora.py:1859:12: ⚠️ W0719: Raising too general exception: Exception (broad-exception-raised)
document_en_15907/document_augmented_stora.py:1879:12: ⚠️ W0719: Raising too general exception: Exception (broad-exception-raised)
document_en_15907/document_augmented_stora.py:1924:12: ⚠️ W0719: Raising too general exception: Exception (broad-exception-raised)
document_en_15907/document_augmented_stora.py:1730:0: ♻️ R0912: Too many branches (41/12) (too-many-branches)
document_en_15907/document_augmented_stora.py:1730:0: ♻️ R0915: Too many statements (140/50) (too-many-statements)
document_en_15907/document_augmented_stora.py:1932:0: ♻️ R0914: Too many local variables (17/15) (too-many-locals)
document_en_15907/document_augmented_stora.py:1998:11: ⚠️ W0718: Catching too general exception Exception (broad-exception-caught)
document_en_15907/document_augmented_stora.py:2013:15: ⚠️ W0718: Catching too general exception Exception (broad-exception-caught)
document_en_15907/document_augmented_stora.py:2020:8: ⚠️ W0719: Raising too general exception: Exception (broad-exception-raised)
document_en_15907/document_augmented_stora.py:1932:0: ♻️ R0912: Too many branches (17/12) (too-many-branches)
document_en_15907/document_augmented_stora.py:1932:0: ♻️ R0915: Too many statements (70/50) (too-many-statements)
document_en_15907/document_augmented_stora.py:2042:0: ♻️ R0913: Too many arguments (8/5) (too-many-arguments)
document_en_15907/document_augmented_stora.py:2042:0: ♻️ R0917: Too many positional arguments (8/5) (too-many-positional-arguments)
document_en_15907/document_augmented_stora.py:2078:11: ⚠️ W0718: Catching too general exception Exception (broad-exception-caught)
document_en_15907/document_augmented_stora.py:2095:15: ⚠️ W0718: Catching too general exception Exception (broad-exception-caught)
document_en_15907/document_augmented_stora.py:2104:8: ⚠️ W0719: Raising too general exception: Exception (broad-exception-raised)
document_en_15907/document_augmented_stora.py:2158:11: ⚠️ W0718: Catching too general exception Exception (broad-exception-caught)
document_en_15907/document_augmented_stora.py:2189:15: ⚠️ W0718: Catching too general exception Exception (broad-exception-caught)
document_en_15907/document_augmented_stora.py:2208:4: ⚠️ W0603: Using the global statement (global-statement)
document_en_15907/document_augmented_stora.py:2212:11: ⚠️ W0718: Catching too general exception Exception (broad-exception-caught)
document_en_15907/document_augmented_stora.py:2201:0: ♻️ R1710: Either all return statements in a function should return an expression, or none of them should. (inconsistent-return-statements)
document_en_15907/document_augmented_stora.py:2244:0: ♻️ R0914: Too many local variables (17/15) (too-many-locals)
document_en_15907/document_augmented_stora.py:2278:9: ⚠️ W1514: Using open without explicitly specifying an encoding (unspecified-encoding)
document_en_15907/document_augmented_stora.py:2301:11: ⚠️ W0718: Catching too general exception Exception (broad-exception-caught)
document_en_15907/document_augmented_stora.py:2306:8: ⚠️ W0719: Raising too general exception: Exception (broad-exception-raised)
document_en_15907/document_augmented_stora.py:2307:4: ♻️ R1703: The if statement can be replaced with 'return bool(test)' (simplifiable-if-statement)
document_en_15907/document_augmented_stora.py:2307:4: ♻️ R1705: Unnecessary "else" after "return", remove the "else" and de-indent the code inside it (no-else-return)

-----------------------------------
Your code has been rated at 8.87/10

Note: 🚨 Errors need immediate attention! ⚠️ Warnings should be reviewed, but are less critical. ℹ️ Information messages are for your reference.

@digitensions digitensions merged commit 37cf36d into bfidatadigipres:main Jan 7, 2026
1 of 3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants