diff --git a/.gitignore b/.gitignore index d7d123232..2e7940b31 100644 --- a/.gitignore +++ b/.gitignore @@ -178,6 +178,12 @@ security_audit.jsonl.* **/security_audit.jsonl.* app/security_audit.jsonl app/security_audit.jsonl.* +app/r_key.txt +app/r_secret.txt +app/r_key.enc +app/r_secret.enc +app/.pt_salt +app/.pt_cred_meta # Database files (SQLite, etc.) *.db diff --git a/app/pt_credentials.py b/app/pt_credentials.py index 137f9ef1f..38b19ac8c 100644 --- a/app/pt_credentials.py +++ b/app/pt_credentials.py @@ -15,7 +15,7 @@ import tempfile import threading import time -from dataclasses import dataclass, asdict +from dataclasses import asdict, dataclass, field from datetime import datetime from typing import Any, Callable, Dict, List, Optional, Set, Tuple @@ -25,6 +25,17 @@ logger = logging.getLogger(__name__) + +def _get_security_logger(): + """Return SecurityLogger singleton if available, else None.""" + try: + from pt_security_logger import get_security_logger + + return get_security_logger() + except Exception: + return None + + # --------------------------------------------------------------------------- # Constants # --------------------------------------------------------------------------- @@ -90,6 +101,7 @@ class PermissionAuditResult: missing_trading: List[str] audit_passed: bool message: str + excess_permissions: List[str] = field(default_factory=list) def to_dict(self) -> dict: return asdict(self) @@ -369,6 +381,9 @@ def decrypt_credentials(self) -> Optional[Tuple[str, str]]: cipher = Fernet(self._derive_key(self._get_machine_password(), salt)) api_key = cipher.decrypt(key_blob).decode("utf-8").strip() private_key = cipher.decrypt(secret_blob).decode("utf-8").strip() + sec_logger = _get_security_logger() + if sec_logger is not None: + sec_logger.log_credential_use("robinhood", "decrypt_credentials") return api_key, private_key except Exception as exc: logger.debug( @@ -410,6 +425,12 @@ def decrypt_credentials(self) -> Optional[Tuple[str, str]]: self._save_metadata(refreshed) except Exception as exc: logger.warning("Re-encrypt after legacy decrypt failed: %s", exc) + sec_logger = _get_security_logger() + if sec_logger is not None: + sec_logger.log_credential_use( + "robinhood", + "decrypt_credentials_legacy_migration", + ) return api_key, private_key # ------------------------------------------------------------------ @@ -483,12 +504,22 @@ def rotate_credentials( except OSError: pass logger.info("Credentials rotated successfully") + sec_logger = _get_security_logger() + if sec_logger is not None: + sec_logger.log_credential_rotation("robinhood", True) return True raise RuntimeError("encrypt_credentials returned False") except Exception as exc: logger.error("Credential rotation failed: %s", exc) + sec_logger = _get_security_logger() + if sec_logger is not None: + sec_logger.log_credential_rotation( + "robinhood", + False, + details={"error": str(exc)}, + ) if backed_up: try: # os.replace is atomic (POSIX rename): no partial-restore window @@ -644,6 +675,10 @@ def validate( missing_trading = ( sorted(TRADING_PERMISSIONS - granted) if require_trading else [] ) + required_now = set(REQUIRED_PERMISSIONS) + if require_trading: + required_now |= TRADING_PERMISSIONS + excess_permissions = sorted(granted - required_now) has_required = len(missing_required) == 0 has_trading = len(missing_trading) == 0 audit_passed = has_required and (has_trading if require_trading else True) @@ -662,6 +697,13 @@ def validate( f"Live trading will be unavailable." ) logger.warning(message) + if excess_permissions: + compliance = ( + f"PERMISSION COMPLIANCE WARNING: API key has more permissions than " + f"required: {excess_permissions}. Least-privilege is recommended." + ) + logger.warning(compliance) + message = f"{message} {compliance}" result = PermissionAuditResult( timestamp=now, @@ -670,12 +712,31 @@ def validate( granted_permissions=sorted(granted), missing_required=missing_required, missing_trading=missing_trading, + excess_permissions=excess_permissions, audit_passed=audit_passed, message=message, ) self._log_audit(result) + self._log_security_audit(result) return result + def _log_security_audit(self, result: PermissionAuditResult) -> None: + sec_logger = _get_security_logger() + if sec_logger is None: + return + sec_logger.log_credential_use("robinhood", "permission_validation") + for permission in result.missing_required + result.missing_trading: + sec_logger.log_permission_denied( + "robinhood", + permission, + details={"granted_permissions": result.granted_permissions}, + ) + if result.excess_permissions: + sec_logger.log_permission_compliance_warning( + "robinhood", + result.excess_permissions, + ) + def _log_audit(self, result: PermissionAuditResult) -> None: """Append audit result to JSONL log. Rotates when MAX_AUDIT_LINES is reached (renames active log to ``*.1``, drops older rotations). This @@ -856,38 +917,53 @@ def get_credentials() -> Optional[Tuple[str, str]]: Returns (api_key, private_key_b64) or None. """ manager = SecureCredentialManager() + sec_logger = _get_security_logger() + if sec_logger is None: + logger.warning( + "Security logger unavailable; credential access events will not be " + "recorded in security_audit.jsonl." + ) if manager.has_encrypted_credentials(): - return manager.decrypt_credentials() + creds = manager.decrypt_credentials() + if sec_logger is not None: + if creds: + sec_logger.log_credential_use("robinhood", "get_credentials_vault") + else: + sec_logger.log_auth_attempt( + "robinhood", + False, + details={"operation": "get_credentials_vault"}, + ) + return creds env_key = os.environ.get("POWERTRADER_ROBINHOOD_API_KEY") env_secret = os.environ.get("POWERTRADER_ROBINHOOD_PRIVATE_KEY") if env_key and env_secret: + if sec_logger is not None: + sec_logger.log_credential_use("robinhood", "get_credentials_environment") return env_key.strip(), env_secret.strip() if manager.has_plaintext_credentials(): if manager.migrate_from_plaintext(): - return manager.decrypt_credentials() - # Plaintext fallback: migration failed (e.g. vault write permission - # denied). Return plaintext creds rather than locking the user out. - # Logged at error level so the degraded security posture is visible. + creds = manager.decrypt_credentials() + if sec_logger is not None: + if creds: + sec_logger.log_credential_use( + "robinhood", "get_credentials_migrated" + ) + else: + sec_logger.log_auth_attempt( + "robinhood", + False, + details={"operation": "get_credentials_migrated"}, + ) + return creds logger.error( - "SECURITY DEGRADATION: encrypted vault write failed — returning " - "PLAINTEXT credentials. Callers cannot distinguish vault-backed " - "from plaintext via this API. Fix vault permissions and re-run " - "to migrate." + "SECURITY ALERT: Plaintext credentials were detected but migration " + "to encrypted storage failed. Refusing to use plaintext credentials." ) - try: - base_dir = os.path.dirname(os.path.abspath(__file__)) - with open(os.path.join(base_dir, "r_key.txt"), "r", encoding="utf-8") as f: - api_key = f.read().strip() - with open( - os.path.join(base_dir, "r_secret.txt"), "r", encoding="utf-8" - ) as f: - private_key = f.read().strip() - return api_key, private_key - except OSError: - pass + return None return None @@ -911,6 +987,58 @@ def validate_credentials_on_startup( manager = SecureCredentialManager(base_dir) validator = PermissionValidator(base_dir) messages = [] + sec_logger = _get_security_logger() + if sec_logger is None: + logger.warning( + "Security logger unavailable during startup validation; credential " + "access audit events will not be recorded." + ) + + env_key = os.environ.get("POWERTRADER_ROBINHOOD_API_KEY") + env_secret = os.environ.get("POWERTRADER_ROBINHOOD_PRIVATE_KEY") + has_env_credentials = bool(env_key and env_secret) + + if manager.has_encrypted_credentials(): + creds = manager.decrypt_credentials() + if creds is None: + return ( + False, + "SECURITY ALERT: Encrypted credential vault is present but unreadable " + "or corrupt. Startup rejected.", + ) + api_key, private_key = creds + if not api_key or not private_key: + return ( + False, + "SECURITY ALERT: Encrypted credential vault is present but unreadable " + "or corrupt. Startup rejected.", + ) + if sec_logger is not None: + sec_logger.log_credential_use("robinhood", "startup_validation_vault") + elif manager.has_plaintext_credentials(): + if not manager.migrate_from_plaintext(): + return ( + False, + "SECURITY ALERT: Plaintext credentials detected but migration failed. " + "Startup rejected to avoid insecure credential use.", + ) + creds = manager.decrypt_credentials() + if not creds: + return ( + False, + "SECURITY ALERT: Plaintext migration completed but encrypted vault " + "could not be read. Startup rejected.", + ) + if sec_logger is not None: + sec_logger.log_credential_use("robinhood", "startup_validation_migrated") + elif not has_env_credentials: + return ( + False, + "SECURITY ALERT: Missing API credentials. Configure encrypted credentials " + "or set POWERTRADER_ROBINHOOD_API_KEY / POWERTRADER_ROBINHOOD_PRIVATE_KEY.", + ) + elif sec_logger is not None: + sec_logger.log_credential_use("robinhood", "startup_validation_environment") warning = manager.check_rotation_warning() if warning: @@ -918,7 +1046,14 @@ def validate_credentials_on_startup( if notify_rotation: notify_rotation(warning) - audit = validator.validate(permission_fetcher, require_trading) - messages.append(audit.message) - - return audit.audit_passed, " | ".join(messages) + if permission_fetcher is None: + skip_msg = "Permission validation skipped: no permission_fetcher provided." + logger.warning(skip_msg) + messages.append(skip_msg) + audit_passed = True + else: + audit = validator.validate(permission_fetcher, require_trading) + messages.append(audit.message) + audit_passed = audit.audit_passed + + return audit_passed, " | ".join(messages) diff --git a/app/pt_security.py b/app/pt_security.py index 232d376ba..7fa1b97ba 100644 --- a/app/pt_security.py +++ b/app/pt_security.py @@ -8,7 +8,7 @@ import re import subprocess import sys -from typing import Dict, List, Optional, Tuple +from typing import Callable, Dict, List, Optional, Tuple from pkg_resources import parse_version @@ -292,5 +292,25 @@ def run_dependency_audit(): return results +def validate_startup_api_permissions( + permission_fetcher: Optional[Callable[[], List[str]]] = None, + require_trading: bool = True, + base_dir: Optional[str] = None, +) -> Tuple[bool, str]: + """ + Security startup hook for credential + API permission validation. + + Delegates to pt_credentials.validate_credentials_on_startup so callers of + this module can run startup checks from a security entry point. + """ + from pt_credentials import validate_credentials_on_startup + + return validate_credentials_on_startup( + permission_fetcher=permission_fetcher, + require_trading=require_trading, + base_dir=base_dir, + ) + + if __name__ == "__main__": run_dependency_audit() diff --git a/app/pt_security_logger.py b/app/pt_security_logger.py index b418b73f7..bdc732dd9 100644 --- a/app/pt_security_logger.py +++ b/app/pt_security_logger.py @@ -53,6 +53,9 @@ class SecurityEventType(Enum): CREDENTIAL_ROTATION = "credential_rotation" # Credential rotated SUSPICIOUS_ACTIVITY = "suspicious_activity" # Anomalous behavior detected PERMISSION_DENIED = "permission_denied" # Insufficient API permissions + PERMISSION_COMPLIANCE = ( + "permission_compliance_warning" # API key has excessive scope + ) RATE_LIMIT = "rate_limit" # Rate limit hit TRADE_EXECUTED = "trade_executed" # Order placed TRADE_REJECTED = "trade_rejected" # Order rejected @@ -406,6 +409,31 @@ def log_permission_denied( ) ) + def log_permission_compliance_warning( + self, + api_name: str, + excess_permissions: List[str], + details: Optional[Dict[str, Any]] = None, + ) -> None: + """Log least-privilege non-compliance for API key scope.""" + msg = ( + f"Permission compliance warning on {api_name}: " + f"excess permissions {sorted(excess_permissions)}" + ) + logger.warning("SECURITY: %s", msg) + self._emit( + self._make_event( + SecurityEventType.PERMISSION_COMPLIANCE, + msg, + source=api_name, + success=True, + details={ + **(details or {}), + "excess_permissions": sorted(excess_permissions), + }, + ) + ) + def log_trade_event( self, symbol: str, diff --git a/app/pt_trader.py b/app/pt_trader.py index 3c8cd0bd9..04cd376e2 100644 --- a/app/pt_trader.py +++ b/app/pt_trader.py @@ -15,7 +15,7 @@ from cryptography.hazmat.primitives.asymmetric import ed25519 from nacl.signing import SigningKey from pt_cost import CostManager, PerformanceTier -from pt_credentials import get_credentials +from pt_credentials import get_credentials, validate_credentials_on_startup from pt_logging import get_logger from pt_risk import RiskManager from pt_validation import InputValidator, ValidationError, validate_api_response @@ -255,6 +255,14 @@ def _load_credentials_if_needed(): BASE64_PRIVATE_KEY = "" return + startup_ok, startup_message = validate_credentials_on_startup(require_trading=True) + if startup_message: + print(f"[PowerTrader][Security] {startup_message}") + if not startup_ok: + API_KEY = "" + BASE64_PRIVATE_KEY = "" + return False + try: credentials = get_credentials() if credentials: diff --git a/app/test_credentials_rotation.py b/app/test_credentials_rotation.py index d7b716c18..5846afed2 100644 --- a/app/test_credentials_rotation.py +++ b/app/test_credentials_rotation.py @@ -14,6 +14,8 @@ CredentialRotationScheduler, PermissionValidator, SecureCredentialManager, + get_credentials, + validate_credentials_on_startup, ) @@ -313,6 +315,15 @@ def fetcher(): self.assertFalse(result.audit_passed) self.assertIn("failed", result.message.lower()) + def test_excess_permissions_warned(self): + result = self.validator.validate( + lambda: ["read_account", "read_positions", "buy", "sell", "withdraw"], + require_trading=True, + ) + self.assertTrue(result.audit_passed) + self.assertIn("withdraw", result.excess_permissions) + self.assertIn("more permissions than required", result.message) + def test_audit_log_written_and_secured(self): self.validator.validate(None) log_path = os.path.join(self.tmpdir, PermissionValidator.AUDIT_LOG_FILE) @@ -466,5 +477,42 @@ def test_tick_fires_on_warning_change(self): self.assertEqual(cb.call_count, 2) +class TestStartupCredentialValidation(unittest.TestCase): + def setUp(self): + self.tmpdir = tempfile.mkdtemp() + self.mgr = SecureCredentialManager(self.tmpdir) + + def tearDown(self): + shutil.rmtree(self.tmpdir, ignore_errors=True) + + def test_startup_rejects_missing_credentials(self): + with patch.dict(os.environ, {}, clear=True): + ok, msg = validate_credentials_on_startup(base_dir=self.tmpdir) + self.assertFalse(ok) + self.assertIn("Missing API credentials", msg) + + def test_startup_rejects_corrupt_vault(self): + self.assertTrue(self.mgr.encrypt_credentials("KEY123", "SECRET123")) + with open(self.mgr.encrypted_key_file, "wb") as f: + f.write(b"corrupted") + ok, msg = validate_credentials_on_startup(base_dir=self.tmpdir) + self.assertFalse(ok) + self.assertIn("unreadable", msg) + + def test_startup_passes_with_valid_vault_without_permission_fetcher(self): + self.assertTrue(self.mgr.encrypt_credentials("KEY123", "SECRET123")) + ok, msg = validate_credentials_on_startup(base_dir=self.tmpdir) + self.assertTrue(ok) + self.assertIn("Permission validation skipped", msg) + + @patch("pt_credentials.SecureCredentialManager") + def test_get_credentials_refuses_plaintext_on_failed_migration(self, manager_cls): + manager = manager_cls.return_value + manager.has_encrypted_credentials.return_value = False + manager.has_plaintext_credentials.return_value = True + manager.migrate_from_plaintext.return_value = False + self.assertIsNone(get_credentials()) + + if __name__ == "__main__": unittest.main() diff --git a/bandit-report.json b/bandit-report.json new file mode 100644 index 000000000..41f03a2ed --- /dev/null +++ b/bandit-report.json @@ -0,0 +1,12153 @@ +{ + "errors": [], + "generated_at": "2026-06-02T19:36:35Z", + "metrics": { + "_totals": { + "CONFIDENCE.HIGH": 428, + "CONFIDENCE.LOW": 40, + "CONFIDENCE.MEDIUM": 35, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 5, + "SEVERITY.LOW": 448, + "SEVERITY.MEDIUM": 50, + "SEVERITY.UNDEFINED": 0, + "loc": 59755, + "nosec": 0, + "skipped_tests": 0 + }, + "app/BNB/pt_trainer.py": { + "CONFIDENCE.HIGH": 6, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 0, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 0, + "SEVERITY.LOW": 6, + "SEVERITY.MEDIUM": 0, + "SEVERITY.UNDEFINED": 0, + "loc": 207, + "nosec": 0, + "skipped_tests": 0 + }, + "app/BNB/pt_trainer_standalone.py": { + "CONFIDENCE.HIGH": 0, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 0, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 0, + "SEVERITY.LOW": 0, + "SEVERITY.MEDIUM": 0, + "SEVERITY.UNDEFINED": 0, + "loc": 81, + "nosec": 0, + "skipped_tests": 0 + }, + "app/BTC/pt_trainer.py": { + "CONFIDENCE.HIGH": 0, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 0, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 0, + "SEVERITY.LOW": 0, + "SEVERITY.MEDIUM": 0, + "SEVERITY.UNDEFINED": 0, + "loc": 95, + "nosec": 0, + "skipped_tests": 0 + }, + "app/BTC/pt_trainer_standalone.py": { + "CONFIDENCE.HIGH": 0, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 0, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 0, + "SEVERITY.LOW": 0, + "SEVERITY.MEDIUM": 0, + "SEVERITY.UNDEFINED": 0, + "loc": 81, + "nosec": 0, + "skipped_tests": 0 + }, + "app/DOGE/pt_trainer.py": { + "CONFIDENCE.HIGH": 6, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 0, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 0, + "SEVERITY.LOW": 6, + "SEVERITY.MEDIUM": 0, + "SEVERITY.UNDEFINED": 0, + "loc": 207, + "nosec": 0, + "skipped_tests": 0 + }, + "app/DOGE/pt_trainer_standalone.py": { + "CONFIDENCE.HIGH": 0, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 0, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 0, + "SEVERITY.LOW": 0, + "SEVERITY.MEDIUM": 0, + "SEVERITY.UNDEFINED": 0, + "loc": 81, + "nosec": 0, + "skipped_tests": 0 + }, + "app/ETH/pt_trainer.py": { + "CONFIDENCE.HIGH": 6, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 0, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 0, + "SEVERITY.LOW": 6, + "SEVERITY.MEDIUM": 0, + "SEVERITY.UNDEFINED": 0, + "loc": 207, + "nosec": 0, + "skipped_tests": 0 + }, + "app/ETH/pt_trainer_standalone.py": { + "CONFIDENCE.HIGH": 0, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 0, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 0, + "SEVERITY.LOW": 0, + "SEVERITY.MEDIUM": 0, + "SEVERITY.UNDEFINED": 0, + "loc": 81, + "nosec": 0, + "skipped_tests": 0 + }, + "app/XRP/pt_trainer.py": { + "CONFIDENCE.HIGH": 6, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 0, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 0, + "SEVERITY.LOW": 6, + "SEVERITY.MEDIUM": 0, + "SEVERITY.UNDEFINED": 0, + "loc": 207, + "nosec": 0, + "skipped_tests": 0 + }, + "app/XRP/pt_trainer_standalone.py": { + "CONFIDENCE.HIGH": 0, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 0, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 0, + "SEVERITY.LOW": 0, + "SEVERITY.MEDIUM": 0, + "SEVERITY.UNDEFINED": 0, + "loc": 81, + "nosec": 0, + "skipped_tests": 0 + }, + "app/advanced_order_automation.py": { + "CONFIDENCE.HIGH": 0, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 0, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 0, + "SEVERITY.LOW": 0, + "SEVERITY.MEDIUM": 0, + "SEVERITY.UNDEFINED": 0, + "loc": 720, + "nosec": 0, + "skipped_tests": 0 + }, + "app/advanced_order_gui.py": { + "CONFIDENCE.HIGH": 0, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 0, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 0, + "SEVERITY.LOW": 0, + "SEVERITY.MEDIUM": 0, + "SEVERITY.UNDEFINED": 0, + "loc": 962, + "nosec": 0, + "skipped_tests": 0 + }, + "app/advanced_risk_management.py": { + "CONFIDENCE.HIGH": 0, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 0, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 0, + "SEVERITY.LOW": 0, + "SEVERITY.MEDIUM": 0, + "SEVERITY.UNDEFINED": 0, + "loc": 920, + "nosec": 0, + "skipped_tests": 0 + }, + "app/advanced_stop_loss.py": { + "CONFIDENCE.HIGH": 1, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 0, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 0, + "SEVERITY.LOW": 1, + "SEVERITY.MEDIUM": 0, + "SEVERITY.UNDEFINED": 0, + "loc": 583, + "nosec": 0, + "skipped_tests": 0 + }, + "app/advanced_take_profit.py": { + "CONFIDENCE.HIGH": 1, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 0, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 0, + "SEVERITY.LOW": 1, + "SEVERITY.MEDIUM": 0, + "SEVERITY.UNDEFINED": 0, + "loc": 801, + "nosec": 0, + "skipped_tests": 0 + }, + "app/backtesting_engine.py": { + "CONFIDENCE.HIGH": 0, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 0, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 0, + "SEVERITY.LOW": 0, + "SEVERITY.MEDIUM": 0, + "SEVERITY.UNDEFINED": 0, + "loc": 523, + "nosec": 0, + "skipped_tests": 0 + }, + "app/backtesting_gui.py": { + "CONFIDENCE.HIGH": 0, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 0, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 0, + "SEVERITY.LOW": 0, + "SEVERITY.MEDIUM": 0, + "SEVERITY.UNDEFINED": 0, + "loc": 927, + "nosec": 0, + "skipped_tests": 0 + }, + "app/compliance_audit_system.py": { + "CONFIDENCE.HIGH": 0, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 0, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 0, + "SEVERITY.LOW": 0, + "SEVERITY.MEDIUM": 0, + "SEVERITY.UNDEFINED": 0, + "loc": 693, + "nosec": 0, + "skipped_tests": 0 + }, + "app/conditional_order_logic.py": { + "CONFIDENCE.HIGH": 10, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 0, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 0, + "SEVERITY.LOW": 10, + "SEVERITY.MEDIUM": 0, + "SEVERITY.UNDEFINED": 0, + "loc": 935, + "nosec": 0, + "skipped_tests": 0 + }, + "app/dca_automation.py": { + "CONFIDENCE.HIGH": 4, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 0, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 0, + "SEVERITY.LOW": 4, + "SEVERITY.MEDIUM": 0, + "SEVERITY.UNDEFINED": 0, + "loc": 720, + "nosec": 0, + "skipped_tests": 0 + }, + "app/demo_phase3.py": { + "CONFIDENCE.HIGH": 0, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 0, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 0, + "SEVERITY.LOW": 0, + "SEVERITY.MEDIUM": 0, + "SEVERITY.UNDEFINED": 0, + "loc": 34, + "nosec": 0, + "skipped_tests": 0 + }, + "app/demo_phase3_features.py": { + "CONFIDENCE.HIGH": 0, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 0, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 0, + "SEVERITY.LOW": 0, + "SEVERITY.MEDIUM": 0, + "SEVERITY.UNDEFINED": 0, + "loc": 187, + "nosec": 0, + "skipped_tests": 0 + }, + "app/dependency_checker.py": { + "CONFIDENCE.HIGH": 0, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 0, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 0, + "SEVERITY.LOW": 0, + "SEVERITY.MEDIUM": 0, + "SEVERITY.UNDEFINED": 0, + "loc": 459, + "nosec": 0, + "skipped_tests": 0 + }, + "app/exchange_config_gui.py": { + "CONFIDENCE.HIGH": 0, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 2, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 0, + "SEVERITY.LOW": 2, + "SEVERITY.MEDIUM": 0, + "SEVERITY.UNDEFINED": 0, + "loc": 954, + "nosec": 0, + "skipped_tests": 0 + }, + "app/exchange_setup.py": { + "CONFIDENCE.HIGH": 0, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 1, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 0, + "SEVERITY.LOW": 1, + "SEVERITY.MEDIUM": 0, + "SEVERITY.UNDEFINED": 0, + "loc": 251, + "nosec": 0, + "skipped_tests": 0 + }, + "app/install_optional_deps.py": { + "CONFIDENCE.HIGH": 2, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 0, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 0, + "SEVERITY.LOW": 2, + "SEVERITY.MEDIUM": 0, + "SEVERITY.UNDEFINED": 0, + "loc": 130, + "nosec": 0, + "skipped_tests": 0 + }, + "app/institutional_trading.py": { + "CONFIDENCE.HIGH": 0, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 0, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 0, + "SEVERITY.LOW": 0, + "SEVERITY.MEDIUM": 0, + "SEVERITY.UNDEFINED": 0, + "loc": 555, + "nosec": 0, + "skipped_tests": 0 + }, + "app/institutional_trading_gui.py": { + "CONFIDENCE.HIGH": 0, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 0, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 0, + "SEVERITY.LOW": 0, + "SEVERITY.MEDIUM": 0, + "SEVERITY.UNDEFINED": 0, + "loc": 708, + "nosec": 0, + "skipped_tests": 0 + }, + "app/llm_research_engine.py": { + "CONFIDENCE.HIGH": 8, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 0, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 1, + "SEVERITY.LOW": 7, + "SEVERITY.MEDIUM": 0, + "SEVERITY.UNDEFINED": 0, + "loc": 820, + "nosec": 0, + "skipped_tests": 0 + }, + "app/llm_research_gui.py": { + "CONFIDENCE.HIGH": 1, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 0, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 0, + "SEVERITY.LOW": 1, + "SEVERITY.MEDIUM": 0, + "SEVERITY.UNDEFINED": 0, + "loc": 883, + "nosec": 0, + "skipped_tests": 0 + }, + "app/long_term_holdings.py": { + "CONFIDENCE.HIGH": 0, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 0, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 0, + "SEVERITY.LOW": 0, + "SEVERITY.MEDIUM": 0, + "SEVERITY.UNDEFINED": 0, + "loc": 357, + "nosec": 0, + "skipped_tests": 0 + }, + "app/long_term_holdings_gui.py": { + "CONFIDENCE.HIGH": 0, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 0, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 0, + "SEVERITY.LOW": 0, + "SEVERITY.MEDIUM": 0, + "SEVERITY.UNDEFINED": 0, + "loc": 648, + "nosec": 0, + "skipped_tests": 0 + }, + "app/migrations.py": { + "CONFIDENCE.HIGH": 0, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 0, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 0, + "SEVERITY.LOW": 0, + "SEVERITY.MEDIUM": 0, + "SEVERITY.UNDEFINED": 0, + "loc": 451, + "nosec": 0, + "skipped_tests": 0 + }, + "app/order_analytics_dashboard.py": { + "CONFIDENCE.HIGH": 1, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 0, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 0, + "SEVERITY.LOW": 1, + "SEVERITY.MEDIUM": 0, + "SEVERITY.UNDEFINED": 0, + "loc": 594, + "nosec": 0, + "skipped_tests": 0 + }, + "app/order_execution_engine.py": { + "CONFIDENCE.HIGH": 3, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 0, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 0, + "SEVERITY.LOW": 3, + "SEVERITY.MEDIUM": 0, + "SEVERITY.UNDEFINED": 0, + "loc": 388, + "nosec": 0, + "skipped_tests": 0 + }, + "app/order_management_db.py": { + "CONFIDENCE.HIGH": 0, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 0, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 0, + "SEVERITY.LOW": 0, + "SEVERITY.MEDIUM": 0, + "SEVERITY.UNDEFINED": 0, + "loc": 503, + "nosec": 0, + "skipped_tests": 0 + }, + "app/order_management_integration.py": { + "CONFIDENCE.HIGH": 0, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 0, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 0, + "SEVERITY.LOW": 0, + "SEVERITY.MEDIUM": 0, + "SEVERITY.UNDEFINED": 0, + "loc": 519, + "nosec": 0, + "skipped_tests": 0 + }, + "app/order_management_models.py": { + "CONFIDENCE.HIGH": 0, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 0, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 0, + "SEVERITY.LOW": 0, + "SEVERITY.MEDIUM": 0, + "SEVERITY.UNDEFINED": 0, + "loc": 315, + "nosec": 0, + "skipped_tests": 0 + }, + "app/order_risk_management.py": { + "CONFIDENCE.HIGH": 0, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 0, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 0, + "SEVERITY.LOW": 0, + "SEVERITY.MEDIUM": 0, + "SEVERITY.UNDEFINED": 0, + "loc": 945, + "nosec": 0, + "skipped_tests": 0 + }, + "app/performance_attribution.py": { + "CONFIDENCE.HIGH": 0, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 0, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 0, + "SEVERITY.LOW": 0, + "SEVERITY.MEDIUM": 0, + "SEVERITY.UNDEFINED": 0, + "loc": 584, + "nosec": 0, + "skipped_tests": 0 + }, + "app/performance_attribution_gui.py": { + "CONFIDENCE.HIGH": 0, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 0, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 0, + "SEVERITY.LOW": 0, + "SEVERITY.MEDIUM": 0, + "SEVERITY.UNDEFINED": 0, + "loc": 945, + "nosec": 0, + "skipped_tests": 0 + }, + "app/phase3_live_demo.py": { + "CONFIDENCE.HIGH": 0, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 0, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 0, + "SEVERITY.LOW": 0, + "SEVERITY.MEDIUM": 0, + "SEVERITY.UNDEFINED": 0, + "loc": 186, + "nosec": 0, + "skipped_tests": 0 + }, + "app/phase_completion.py": { + "CONFIDENCE.HIGH": 0, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 0, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 0, + "SEVERITY.LOW": 0, + "SEVERITY.MEDIUM": 0, + "SEVERITY.UNDEFINED": 0, + "loc": 151, + "nosec": 0, + "skipped_tests": 0 + }, + "app/portfolio_analytics.py": { + "CONFIDENCE.HIGH": 0, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 2, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 0, + "SEVERITY.LOW": 0, + "SEVERITY.MEDIUM": 2, + "SEVERITY.UNDEFINED": 0, + "loc": 380, + "nosec": 0, + "skipped_tests": 0 + }, + "app/portfolio_analytics_gui.py": { + "CONFIDENCE.HIGH": 0, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 0, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 0, + "SEVERITY.LOW": 0, + "SEVERITY.MEDIUM": 0, + "SEVERITY.UNDEFINED": 0, + "loc": 719, + "nosec": 0, + "skipped_tests": 0 + }, + "app/portfolio_optimizer.py": { + "CONFIDENCE.HIGH": 0, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 0, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 0, + "SEVERITY.LOW": 0, + "SEVERITY.MEDIUM": 0, + "SEVERITY.UNDEFINED": 0, + "loc": 489, + "nosec": 0, + "skipped_tests": 0 + }, + "app/portfolio_optimizer_gui.py": { + "CONFIDENCE.HIGH": 0, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 0, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 0, + "SEVERITY.LOW": 0, + "SEVERITY.MEDIUM": 0, + "SEVERITY.UNDEFINED": 0, + "loc": 753, + "nosec": 0, + "skipped_tests": 0 + }, + "app/production_deployment.py": { + "CONFIDENCE.HIGH": 2, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 0, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 0, + "SEVERITY.LOW": 1, + "SEVERITY.MEDIUM": 1, + "SEVERITY.UNDEFINED": 0, + "loc": 477, + "nosec": 0, + "skipped_tests": 0 + }, + "app/pt_api_server.py": { + "CONFIDENCE.HIGH": 2, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 0, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 0, + "SEVERITY.LOW": 2, + "SEVERITY.MEDIUM": 0, + "SEVERITY.UNDEFINED": 0, + "loc": 350, + "nosec": 0, + "skipped_tests": 0 + }, + "app/pt_async_patterns.py": { + "CONFIDENCE.HIGH": 2, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 0, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 0, + "SEVERITY.LOW": 2, + "SEVERITY.MEDIUM": 0, + "SEVERITY.UNDEFINED": 0, + "loc": 504, + "nosec": 0, + "skipped_tests": 0 + }, + "app/pt_backup.py": { + "CONFIDENCE.HIGH": 0, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 0, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 0, + "SEVERITY.LOW": 0, + "SEVERITY.MEDIUM": 0, + "SEVERITY.UNDEFINED": 0, + "loc": 336, + "nosec": 0, + "skipped_tests": 0 + }, + "app/pt_caching_system.py": { + "CONFIDENCE.HIGH": 6, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 0, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 2, + "SEVERITY.LOW": 2, + "SEVERITY.MEDIUM": 2, + "SEVERITY.UNDEFINED": 0, + "loc": 544, + "nosec": 0, + "skipped_tests": 0 + }, + "app/pt_circuit_breaker.py": { + "CONFIDENCE.HIGH": 0, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 0, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 0, + "SEVERITY.LOW": 0, + "SEVERITY.MEDIUM": 0, + "SEVERITY.UNDEFINED": 0, + "loc": 318, + "nosec": 0, + "skipped_tests": 0 + }, + "app/pt_config.py": { + "CONFIDENCE.HIGH": 0, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 0, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 0, + "SEVERITY.LOW": 0, + "SEVERITY.MEDIUM": 0, + "SEVERITY.UNDEFINED": 0, + "loc": 408, + "nosec": 0, + "skipped_tests": 0 + }, + "app/pt_cost.py": { + "CONFIDENCE.HIGH": 0, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 0, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 0, + "SEVERITY.LOW": 0, + "SEVERITY.MEDIUM": 0, + "SEVERITY.UNDEFINED": 0, + "loc": 452, + "nosec": 0, + "skipped_tests": 0 + }, + "app/pt_credentials.py": { + "CONFIDENCE.HIGH": 0, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 0, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 0, + "SEVERITY.LOW": 0, + "SEVERITY.MEDIUM": 0, + "SEVERITY.UNDEFINED": 0, + "loc": 893, + "nosec": 0, + "skipped_tests": 0 + }, + "app/pt_data_provider.py": { + "CONFIDENCE.HIGH": 0, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 0, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 0, + "SEVERITY.LOW": 0, + "SEVERITY.MEDIUM": 0, + "SEVERITY.UNDEFINED": 0, + "loc": 193, + "nosec": 0, + "skipped_tests": 0 + }, + "app/pt_database_manager.py": { + "CONFIDENCE.HIGH": 0, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 0, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 0, + "SEVERITY.LOW": 0, + "SEVERITY.MEDIUM": 0, + "SEVERITY.UNDEFINED": 0, + "loc": 420, + "nosec": 0, + "skipped_tests": 0 + }, + "app/pt_error_handler.py": { + "CONFIDENCE.HIGH": 0, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 0, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 0, + "SEVERITY.LOW": 0, + "SEVERITY.MEDIUM": 0, + "SEVERITY.UNDEFINED": 0, + "loc": 239, + "nosec": 0, + "skipped_tests": 0 + }, + "app/pt_errors.py": { + "CONFIDENCE.HIGH": 0, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 0, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 0, + "SEVERITY.LOW": 0, + "SEVERITY.MEDIUM": 0, + "SEVERITY.UNDEFINED": 0, + "loc": 406, + "nosec": 0, + "skipped_tests": 0 + }, + "app/pt_exchange_abstraction.py": { + "CONFIDENCE.HIGH": 1, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 1, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 0, + "SEVERITY.LOW": 2, + "SEVERITY.MEDIUM": 0, + "SEVERITY.UNDEFINED": 0, + "loc": 311, + "nosec": 0, + "skipped_tests": 0 + }, + "app/pt_exchanges.py": { + "CONFIDENCE.HIGH": 3, + "CONFIDENCE.LOW": 40, + "CONFIDENCE.MEDIUM": 1, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 0, + "SEVERITY.LOW": 4, + "SEVERITY.MEDIUM": 40, + "SEVERITY.UNDEFINED": 0, + "loc": 1668, + "nosec": 0, + "skipped_tests": 0 + }, + "app/pt_files.py": { + "CONFIDENCE.HIGH": 1, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 0, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 0, + "SEVERITY.LOW": 1, + "SEVERITY.MEDIUM": 0, + "SEVERITY.UNDEFINED": 0, + "loc": 156, + "nosec": 0, + "skipped_tests": 0 + }, + "app/pt_gui_integration.py": { + "CONFIDENCE.HIGH": 0, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 0, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 0, + "SEVERITY.LOW": 0, + "SEVERITY.MEDIUM": 0, + "SEVERITY.UNDEFINED": 0, + "loc": 478, + "nosec": 0, + "skipped_tests": 0 + }, + "app/pt_hub.py": { + "CONFIDENCE.HIGH": 181, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 2, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 0, + "SEVERITY.LOW": 182, + "SEVERITY.MEDIUM": 1, + "SEVERITY.UNDEFINED": 0, + "loc": 6870, + "nosec": 0, + "skipped_tests": 0 + }, + "app/pt_hub_chart_components.py": { + "CONFIDENCE.HIGH": 0, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 0, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 0, + "SEVERITY.LOW": 0, + "SEVERITY.MEDIUM": 0, + "SEVERITY.UNDEFINED": 0, + "loc": 763, + "nosec": 0, + "skipped_tests": 0 + }, + "app/pt_hub_gui_components.py": { + "CONFIDENCE.HIGH": 1, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 0, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 0, + "SEVERITY.LOW": 1, + "SEVERITY.MEDIUM": 0, + "SEVERITY.UNDEFINED": 0, + "loc": 366, + "nosec": 0, + "skipped_tests": 0 + }, + "app/pt_integration.py": { + "CONFIDENCE.HIGH": 16, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 1, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 0, + "SEVERITY.LOW": 17, + "SEVERITY.MEDIUM": 0, + "SEVERITY.UNDEFINED": 0, + "loc": 672, + "nosec": 0, + "skipped_tests": 0 + }, + "app/pt_live_monitor.py": { + "CONFIDENCE.HIGH": 0, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 1, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 0, + "SEVERITY.LOW": 1, + "SEVERITY.MEDIUM": 0, + "SEVERITY.UNDEFINED": 0, + "loc": 539, + "nosec": 0, + "skipped_tests": 0 + }, + "app/pt_logging.py": { + "CONFIDENCE.HIGH": 0, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 0, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 0, + "SEVERITY.LOW": 0, + "SEVERITY.MEDIUM": 0, + "SEVERITY.UNDEFINED": 0, + "loc": 390, + "nosec": 0, + "skipped_tests": 0 + }, + "app/pt_logging_system.py": { + "CONFIDENCE.HIGH": 2, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 0, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 0, + "SEVERITY.LOW": 2, + "SEVERITY.MEDIUM": 0, + "SEVERITY.UNDEFINED": 0, + "loc": 593, + "nosec": 0, + "skipped_tests": 0 + }, + "app/pt_model_evaluation.py": { + "CONFIDENCE.HIGH": 0, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 0, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 0, + "SEVERITY.LOW": 0, + "SEVERITY.MEDIUM": 0, + "SEVERITY.UNDEFINED": 0, + "loc": 363, + "nosec": 0, + "skipped_tests": 0 + }, + "app/pt_monitor.py": { + "CONFIDENCE.HIGH": 1, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 0, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 1, + "SEVERITY.LOW": 0, + "SEVERITY.MEDIUM": 0, + "SEVERITY.UNDEFINED": 0, + "loc": 264, + "nosec": 0, + "skipped_tests": 0 + }, + "app/pt_multi_exchange.py": { + "CONFIDENCE.HIGH": 0, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 1, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 0, + "SEVERITY.LOW": 1, + "SEVERITY.MEDIUM": 0, + "SEVERITY.UNDEFINED": 0, + "loc": 261, + "nosec": 0, + "skipped_tests": 0 + }, + "app/pt_neural_network.py": { + "CONFIDENCE.HIGH": 2, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 0, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 0, + "SEVERITY.LOW": 0, + "SEVERITY.MEDIUM": 2, + "SEVERITY.UNDEFINED": 0, + "loc": 454, + "nosec": 0, + "skipped_tests": 0 + }, + "app/pt_neural_processor.py": { + "CONFIDENCE.HIGH": 1, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 0, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 0, + "SEVERITY.LOW": 0, + "SEVERITY.MEDIUM": 1, + "SEVERITY.UNDEFINED": 0, + "loc": 530, + "nosec": 0, + "skipped_tests": 0 + }, + "app/pt_paper_mode.py": { + "CONFIDENCE.HIGH": 1, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 0, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 0, + "SEVERITY.LOW": 0, + "SEVERITY.MEDIUM": 1, + "SEVERITY.UNDEFINED": 0, + "loc": 297, + "nosec": 0, + "skipped_tests": 0 + }, + "app/pt_paper_trading.py": { + "CONFIDENCE.HIGH": 2, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 0, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 0, + "SEVERITY.LOW": 2, + "SEVERITY.MEDIUM": 0, + "SEVERITY.UNDEFINED": 0, + "loc": 456, + "nosec": 0, + "skipped_tests": 0 + }, + "app/pt_performance.py": { + "CONFIDENCE.HIGH": 0, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 0, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 0, + "SEVERITY.LOW": 0, + "SEVERITY.MEDIUM": 0, + "SEVERITY.UNDEFINED": 0, + "loc": 317, + "nosec": 0, + "skipped_tests": 0 + }, + "app/pt_process_manager.py": { + "CONFIDENCE.HIGH": 8, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 0, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 0, + "SEVERITY.LOW": 8, + "SEVERITY.MEDIUM": 0, + "SEVERITY.UNDEFINED": 0, + "loc": 500, + "nosec": 0, + "skipped_tests": 0 + }, + "app/pt_risk.py": { + "CONFIDENCE.HIGH": 0, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 0, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 0, + "SEVERITY.LOW": 0, + "SEVERITY.MEDIUM": 0, + "SEVERITY.UNDEFINED": 0, + "loc": 387, + "nosec": 0, + "skipped_tests": 0 + }, + "app/pt_security.py": { + "CONFIDENCE.HIGH": 4, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 0, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 0, + "SEVERITY.LOW": 4, + "SEVERITY.MEDIUM": 0, + "SEVERITY.UNDEFINED": 0, + "loc": 249, + "nosec": 0, + "skipped_tests": 0 + }, + "app/pt_security_logger.py": { + "CONFIDENCE.HIGH": 0, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 0, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 0, + "SEVERITY.LOW": 0, + "SEVERITY.MEDIUM": 0, + "SEVERITY.UNDEFINED": 0, + "loc": 482, + "nosec": 0, + "skipped_tests": 0 + }, + "app/pt_settings_manager.py": { + "CONFIDENCE.HIGH": 3, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 0, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 0, + "SEVERITY.LOW": 3, + "SEVERITY.MEDIUM": 0, + "SEVERITY.UNDEFINED": 0, + "loc": 522, + "nosec": 0, + "skipped_tests": 0 + }, + "app/pt_system.py": { + "CONFIDENCE.HIGH": 0, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 0, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 0, + "SEVERITY.LOW": 0, + "SEVERITY.MEDIUM": 0, + "SEVERITY.UNDEFINED": 0, + "loc": 401, + "nosec": 0, + "skipped_tests": 0 + }, + "app/pt_testing.py": { + "CONFIDENCE.HIGH": 23, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 0, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 0, + "SEVERITY.LOW": 23, + "SEVERITY.MEDIUM": 0, + "SEVERITY.UNDEFINED": 0, + "loc": 475, + "nosec": 0, + "skipped_tests": 0 + }, + "app/pt_theme_manager.py": { + "CONFIDENCE.HIGH": 19, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 0, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 0, + "SEVERITY.LOW": 19, + "SEVERITY.MEDIUM": 0, + "SEVERITY.UNDEFINED": 0, + "loc": 404, + "nosec": 0, + "skipped_tests": 0 + }, + "app/pt_thinker.py": { + "CONFIDENCE.HIGH": 13, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 1, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 0, + "SEVERITY.LOW": 14, + "SEVERITY.MEDIUM": 0, + "SEVERITY.UNDEFINED": 0, + "loc": 1273, + "nosec": 0, + "skipped_tests": 0 + }, + "app/pt_trader.py": { + "CONFIDENCE.HIGH": 36, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 0, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 1, + "SEVERITY.LOW": 35, + "SEVERITY.MEDIUM": 0, + "SEVERITY.UNDEFINED": 0, + "loc": 1868, + "nosec": 0, + "skipped_tests": 0 + }, + "app/pt_trainer.py": { + "CONFIDENCE.HIGH": 6, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 0, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 0, + "SEVERITY.LOW": 6, + "SEVERITY.MEDIUM": 0, + "SEVERITY.UNDEFINED": 0, + "loc": 207, + "nosec": 0, + "skipped_tests": 0 + }, + "app/pt_trainer_standalone.py": { + "CONFIDENCE.HIGH": 0, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 0, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 0, + "SEVERITY.LOW": 0, + "SEVERITY.MEDIUM": 0, + "SEVERITY.UNDEFINED": 0, + "loc": 81, + "nosec": 0, + "skipped_tests": 0 + }, + "app/pt_updater.py": { + "CONFIDENCE.HIGH": 2, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 0, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 0, + "SEVERITY.LOW": 2, + "SEVERITY.MEDIUM": 0, + "SEVERITY.UNDEFINED": 0, + "loc": 399, + "nosec": 0, + "skipped_tests": 0 + }, + "app/pt_utils.py": { + "CONFIDENCE.HIGH": 0, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 0, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 0, + "SEVERITY.LOW": 0, + "SEVERITY.MEDIUM": 0, + "SEVERITY.UNDEFINED": 0, + "loc": 227, + "nosec": 0, + "skipped_tests": 0 + }, + "app/pt_validation.py": { + "CONFIDENCE.HIGH": 0, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 0, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 0, + "SEVERITY.LOW": 0, + "SEVERITY.MEDIUM": 0, + "SEVERITY.UNDEFINED": 0, + "loc": 448, + "nosec": 0, + "skipped_tests": 0 + }, + "app/real_time_market_data.py": { + "CONFIDENCE.HIGH": 0, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 5, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 0, + "SEVERITY.LOW": 5, + "SEVERITY.MEDIUM": 0, + "SEVERITY.UNDEFINED": 0, + "loc": 770, + "nosec": 0, + "skipped_tests": 0 + }, + "app/real_time_market_data_gui.py": { + "CONFIDENCE.HIGH": 1, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 0, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 0, + "SEVERITY.LOW": 1, + "SEVERITY.MEDIUM": 0, + "SEVERITY.UNDEFINED": 0, + "loc": 684, + "nosec": 0, + "skipped_tests": 0 + }, + "app/start_powertrader.py": { + "CONFIDENCE.HIGH": 0, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 0, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 0, + "SEVERITY.LOW": 0, + "SEVERITY.MEDIUM": 0, + "SEVERITY.UNDEFINED": 0, + "loc": 39, + "nosec": 0, + "skipped_tests": 0 + }, + "app/test_advanced_features.py": { + "CONFIDENCE.HIGH": 11, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 0, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 0, + "SEVERITY.LOW": 11, + "SEVERITY.MEDIUM": 0, + "SEVERITY.UNDEFINED": 0, + "loc": 486, + "nosec": 0, + "skipped_tests": 0 + }, + "app/test_api.py": { + "CONFIDENCE.HIGH": 0, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 0, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 0, + "SEVERITY.LOW": 0, + "SEVERITY.MEDIUM": 0, + "SEVERITY.UNDEFINED": 0, + "loc": 88, + "nosec": 0, + "skipped_tests": 0 + }, + "app/test_backup_validation.py": { + "CONFIDENCE.HIGH": 0, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 0, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 0, + "SEVERITY.LOW": 0, + "SEVERITY.MEDIUM": 0, + "SEVERITY.UNDEFINED": 0, + "loc": 198, + "nosec": 0, + "skipped_tests": 0 + }, + "app/test_binance_exchange.py": { + "CONFIDENCE.HIGH": 0, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 16, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 0, + "SEVERITY.LOW": 16, + "SEVERITY.MEDIUM": 0, + "SEVERITY.UNDEFINED": 0, + "loc": 719, + "nosec": 0, + "skipped_tests": 0 + }, + "app/test_circuit_breaker.py": { + "CONFIDENCE.HIGH": 0, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 0, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 0, + "SEVERITY.LOW": 0, + "SEVERITY.MEDIUM": 0, + "SEVERITY.UNDEFINED": 0, + "loc": 215, + "nosec": 0, + "skipped_tests": 0 + }, + "app/test_comprehensive.py": { + "CONFIDENCE.HIGH": 0, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 0, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 0, + "SEVERITY.LOW": 0, + "SEVERITY.MEDIUM": 0, + "SEVERITY.UNDEFINED": 0, + "loc": 393, + "nosec": 0, + "skipped_tests": 0 + }, + "app/test_core.py": { + "CONFIDENCE.HIGH": 7, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 0, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 0, + "SEVERITY.LOW": 7, + "SEVERITY.MEDIUM": 0, + "SEVERITY.UNDEFINED": 0, + "loc": 130, + "nosec": 0, + "skipped_tests": 0 + }, + "app/test_credential_audit.py": { + "CONFIDENCE.HIGH": 0, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 0, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 0, + "SEVERITY.LOW": 0, + "SEVERITY.MEDIUM": 0, + "SEVERITY.UNDEFINED": 0, + "loc": 213, + "nosec": 0, + "skipped_tests": 0 + }, + "app/test_credentials_rotation.py": { + "CONFIDENCE.HIGH": 0, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 0, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 0, + "SEVERITY.LOW": 0, + "SEVERITY.MEDIUM": 0, + "SEVERITY.UNDEFINED": 0, + "loc": 415, + "nosec": 0, + "skipped_tests": 0 + }, + "app/test_database_manager.py": { + "CONFIDENCE.HIGH": 1, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 0, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 0, + "SEVERITY.LOW": 1, + "SEVERITY.MEDIUM": 0, + "SEVERITY.UNDEFINED": 0, + "loc": 267, + "nosec": 0, + "skipped_tests": 0 + }, + "app/test_dependencies.py": { + "CONFIDENCE.HIGH": 0, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 0, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 0, + "SEVERITY.LOW": 0, + "SEVERITY.MEDIUM": 0, + "SEVERITY.UNDEFINED": 0, + "loc": 72, + "nosec": 0, + "skipped_tests": 0 + }, + "app/test_error_handler.py": { + "CONFIDENCE.HIGH": 0, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 0, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 0, + "SEVERITY.LOW": 0, + "SEVERITY.MEDIUM": 0, + "SEVERITY.UNDEFINED": 0, + "loc": 232, + "nosec": 0, + "skipped_tests": 0 + }, + "app/test_exchanges.py": { + "CONFIDENCE.HIGH": 0, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 0, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 0, + "SEVERITY.LOW": 0, + "SEVERITY.MEDIUM": 0, + "SEVERITY.UNDEFINED": 0, + "loc": 89, + "nosec": 0, + "skipped_tests": 0 + }, + "app/test_gui_exchange_integration.py": { + "CONFIDENCE.HIGH": 0, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 0, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 0, + "SEVERITY.LOW": 0, + "SEVERITY.MEDIUM": 0, + "SEVERITY.UNDEFINED": 0, + "loc": 95, + "nosec": 0, + "skipped_tests": 0 + }, + "app/test_hub_trainer.py": { + "CONFIDENCE.HIGH": 6, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 0, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 0, + "SEVERITY.LOW": 6, + "SEVERITY.MEDIUM": 0, + "SEVERITY.UNDEFINED": 0, + "loc": 166, + "nosec": 0, + "skipped_tests": 0 + }, + "app/test_integration.py": { + "CONFIDENCE.HIGH": 2, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 0, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 0, + "SEVERITY.LOW": 2, + "SEVERITY.MEDIUM": 0, + "SEVERITY.UNDEFINED": 0, + "loc": 294, + "nosec": 0, + "skipped_tests": 0 + }, + "app/test_paper_mode.py": { + "CONFIDENCE.HIGH": 0, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 0, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 0, + "SEVERITY.LOW": 0, + "SEVERITY.MEDIUM": 0, + "SEVERITY.UNDEFINED": 0, + "loc": 121, + "nosec": 0, + "skipped_tests": 0 + }, + "app/test_paper_trading_integration.py": { + "CONFIDENCE.HIGH": 0, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 0, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 0, + "SEVERITY.LOW": 0, + "SEVERITY.MEDIUM": 0, + "SEVERITY.UNDEFINED": 0, + "loc": 127, + "nosec": 0, + "skipped_tests": 0 + }, + "app/test_phase1_phase2_integration.py": { + "CONFIDENCE.HIGH": 2, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 0, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 0, + "SEVERITY.LOW": 2, + "SEVERITY.MEDIUM": 0, + "SEVERITY.UNDEFINED": 0, + "loc": 384, + "nosec": 0, + "skipped_tests": 0 + }, + "app/test_phase3_integration.py": { + "CONFIDENCE.HIGH": 0, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 0, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 0, + "SEVERITY.LOW": 0, + "SEVERITY.MEDIUM": 0, + "SEVERITY.UNDEFINED": 0, + "loc": 293, + "nosec": 0, + "skipped_tests": 0 + }, + "app/test_real_app.py": { + "CONFIDENCE.HIGH": 0, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 0, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 0, + "SEVERITY.LOW": 0, + "SEVERITY.MEDIUM": 0, + "SEVERITY.UNDEFINED": 0, + "loc": 57, + "nosec": 0, + "skipped_tests": 0 + }, + "app/test_security_logger.py": { + "CONFIDENCE.HIGH": 0, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 0, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 0, + "SEVERITY.LOW": 0, + "SEVERITY.MEDIUM": 0, + "SEVERITY.UNDEFINED": 0, + "loc": 243, + "nosec": 0, + "skipped_tests": 0 + }, + "app/test_subprocess_trainer.py": { + "CONFIDENCE.HIGH": 3, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 0, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 0, + "SEVERITY.LOW": 3, + "SEVERITY.MEDIUM": 0, + "SEVERITY.UNDEFINED": 0, + "loc": 109, + "nosec": 0, + "skipped_tests": 0 + }, + "app/test_suite.py": { + "CONFIDENCE.HIGH": 2, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 1, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 0, + "SEVERITY.LOW": 3, + "SEVERITY.MEDIUM": 0, + "SEVERITY.UNDEFINED": 0, + "loc": 538, + "nosec": 0, + "skipped_tests": 0 + }, + "app/test_tabbed_interface.py": { + "CONFIDENCE.HIGH": 0, + "CONFIDENCE.LOW": 0, + "CONFIDENCE.MEDIUM": 0, + "CONFIDENCE.UNDEFINED": 0, + "SEVERITY.HIGH": 0, + "SEVERITY.LOW": 0, + "SEVERITY.MEDIUM": 0, + "SEVERITY.UNDEFINED": 0, + "loc": 87, + "nosec": 0, + "skipped_tests": 0 + } + }, + "results": [ + { + "code": "60 prices = [\n61 base_price + (i * 10) + random.uniform(-100, 100)\n62 for i in range(100)\n", + "col_offset": 44, + "end_col_offset": 69, + "filename": "app/BNB/pt_trainer.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 330, + "link": "https://cwe.mitre.org/data/definitions/330.html" + }, + "issue_severity": "LOW", + "issue_text": "Standard pseudo-random generators are not suitable for security/cryptographic purposes.", + "line_number": 61, + "line_range": [ + 61 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/blacklists/blacklist_calls.html#b311-random", + "test_id": "B311", + "test_name": "blacklist" + }, + { + "code": "67 prices = [\n68 base_price + (i * 10) + random.uniform(-100, 100) for i in range(100)\n69 ]\n", + "col_offset": 40, + "end_col_offset": 65, + "filename": "app/BNB/pt_trainer.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 330, + "link": "https://cwe.mitre.org/data/definitions/330.html" + }, + "issue_severity": "LOW", + "issue_text": "Standard pseudo-random generators are not suitable for security/cryptographic purposes.", + "line_number": 68, + "line_range": [ + 68 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/blacklists/blacklist_calls.html#b311-random", + "test_id": "B311", + "test_name": "blacklist" + }, + { + "code": "79 while len(memories) < 50:\n80 memories.append(f\"{random.uniform(-2.0, 2.0):.6f}\")\n81 \n", + "col_offset": 31, + "end_col_offset": 56, + "filename": "app/BNB/pt_trainer.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 330, + "link": "https://cwe.mitre.org/data/definitions/330.html" + }, + "issue_severity": "LOW", + "issue_text": "Standard pseudo-random generators are not suitable for security/cryptographic purposes.", + "line_number": 80, + "line_range": [ + 80 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/blacklists/blacklist_calls.html#b311-random", + "test_id": "B311", + "test_name": "blacklist" + }, + { + "code": "87 weights = [\n88 f\"{0.5 + (final_accuracy/100.0) * 0.3 + random.uniform(-0.1, 0.1):.6f}\"\n89 for _ in range(50)\n", + "col_offset": 52, + "end_col_offset": 77, + "filename": "app/BNB/pt_trainer.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 330, + "link": "https://cwe.mitre.org/data/definitions/330.html" + }, + "issue_severity": "LOW", + "issue_text": "Standard pseudo-random generators are not suitable for security/cryptographic purposes.", + "line_number": 88, + "line_range": [ + 88 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/blacklists/blacklist_calls.html#b311-random", + "test_id": "B311", + "test_name": "blacklist" + }, + { + "code": "90 ]\n91 weights_high = [f\"{float(w) + random.uniform(0.05, 0.15):.6f}\" for w in weights]\n92 weights_low = [f\"{float(w) - random.uniform(0.05, 0.15):.6f}\" for w in weights]\n", + "col_offset": 38, + "end_col_offset": 64, + "filename": "app/BNB/pt_trainer.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 330, + "link": "https://cwe.mitre.org/data/definitions/330.html" + }, + "issue_severity": "LOW", + "issue_text": "Standard pseudo-random generators are not suitable for security/cryptographic purposes.", + "line_number": 91, + "line_range": [ + 91 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/blacklists/blacklist_calls.html#b311-random", + "test_id": "B311", + "test_name": "blacklist" + }, + { + "code": "91 weights_high = [f\"{float(w) + random.uniform(0.05, 0.15):.6f}\" for w in weights]\n92 weights_low = [f\"{float(w) - random.uniform(0.05, 0.15):.6f}\" for w in weights]\n93 \n", + "col_offset": 37, + "end_col_offset": 63, + "filename": "app/BNB/pt_trainer.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 330, + "link": "https://cwe.mitre.org/data/definitions/330.html" + }, + "issue_severity": "LOW", + "issue_text": "Standard pseudo-random generators are not suitable for security/cryptographic purposes.", + "line_number": 92, + "line_range": [ + 92 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/blacklists/blacklist_calls.html#b311-random", + "test_id": "B311", + "test_name": "blacklist" + }, + { + "code": "60 prices = [\n61 base_price + (i * 10) + random.uniform(-100, 100)\n62 for i in range(100)\n", + "col_offset": 44, + "end_col_offset": 69, + "filename": "app/DOGE/pt_trainer.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 330, + "link": "https://cwe.mitre.org/data/definitions/330.html" + }, + "issue_severity": "LOW", + "issue_text": "Standard pseudo-random generators are not suitable for security/cryptographic purposes.", + "line_number": 61, + "line_range": [ + 61 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/blacklists/blacklist_calls.html#b311-random", + "test_id": "B311", + "test_name": "blacklist" + }, + { + "code": "67 prices = [\n68 base_price + (i * 10) + random.uniform(-100, 100) for i in range(100)\n69 ]\n", + "col_offset": 40, + "end_col_offset": 65, + "filename": "app/DOGE/pt_trainer.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 330, + "link": "https://cwe.mitre.org/data/definitions/330.html" + }, + "issue_severity": "LOW", + "issue_text": "Standard pseudo-random generators are not suitable for security/cryptographic purposes.", + "line_number": 68, + "line_range": [ + 68 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/blacklists/blacklist_calls.html#b311-random", + "test_id": "B311", + "test_name": "blacklist" + }, + { + "code": "79 while len(memories) < 50:\n80 memories.append(f\"{random.uniform(-2.0, 2.0):.6f}\")\n81 \n", + "col_offset": 31, + "end_col_offset": 56, + "filename": "app/DOGE/pt_trainer.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 330, + "link": "https://cwe.mitre.org/data/definitions/330.html" + }, + "issue_severity": "LOW", + "issue_text": "Standard pseudo-random generators are not suitable for security/cryptographic purposes.", + "line_number": 80, + "line_range": [ + 80 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/blacklists/blacklist_calls.html#b311-random", + "test_id": "B311", + "test_name": "blacklist" + }, + { + "code": "87 weights = [\n88 f\"{0.5 + (final_accuracy/100.0) * 0.3 + random.uniform(-0.1, 0.1):.6f}\"\n89 for _ in range(50)\n", + "col_offset": 52, + "end_col_offset": 77, + "filename": "app/DOGE/pt_trainer.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 330, + "link": "https://cwe.mitre.org/data/definitions/330.html" + }, + "issue_severity": "LOW", + "issue_text": "Standard pseudo-random generators are not suitable for security/cryptographic purposes.", + "line_number": 88, + "line_range": [ + 88 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/blacklists/blacklist_calls.html#b311-random", + "test_id": "B311", + "test_name": "blacklist" + }, + { + "code": "90 ]\n91 weights_high = [f\"{float(w) + random.uniform(0.05, 0.15):.6f}\" for w in weights]\n92 weights_low = [f\"{float(w) - random.uniform(0.05, 0.15):.6f}\" for w in weights]\n", + "col_offset": 38, + "end_col_offset": 64, + "filename": "app/DOGE/pt_trainer.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 330, + "link": "https://cwe.mitre.org/data/definitions/330.html" + }, + "issue_severity": "LOW", + "issue_text": "Standard pseudo-random generators are not suitable for security/cryptographic purposes.", + "line_number": 91, + "line_range": [ + 91 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/blacklists/blacklist_calls.html#b311-random", + "test_id": "B311", + "test_name": "blacklist" + }, + { + "code": "91 weights_high = [f\"{float(w) + random.uniform(0.05, 0.15):.6f}\" for w in weights]\n92 weights_low = [f\"{float(w) - random.uniform(0.05, 0.15):.6f}\" for w in weights]\n93 \n", + "col_offset": 37, + "end_col_offset": 63, + "filename": "app/DOGE/pt_trainer.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 330, + "link": "https://cwe.mitre.org/data/definitions/330.html" + }, + "issue_severity": "LOW", + "issue_text": "Standard pseudo-random generators are not suitable for security/cryptographic purposes.", + "line_number": 92, + "line_range": [ + 92 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/blacklists/blacklist_calls.html#b311-random", + "test_id": "B311", + "test_name": "blacklist" + }, + { + "code": "60 prices = [\n61 base_price + (i * 10) + random.uniform(-100, 100)\n62 for i in range(100)\n", + "col_offset": 44, + "end_col_offset": 69, + "filename": "app/ETH/pt_trainer.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 330, + "link": "https://cwe.mitre.org/data/definitions/330.html" + }, + "issue_severity": "LOW", + "issue_text": "Standard pseudo-random generators are not suitable for security/cryptographic purposes.", + "line_number": 61, + "line_range": [ + 61 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/blacklists/blacklist_calls.html#b311-random", + "test_id": "B311", + "test_name": "blacklist" + }, + { + "code": "67 prices = [\n68 base_price + (i * 10) + random.uniform(-100, 100) for i in range(100)\n69 ]\n", + "col_offset": 40, + "end_col_offset": 65, + "filename": "app/ETH/pt_trainer.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 330, + "link": "https://cwe.mitre.org/data/definitions/330.html" + }, + "issue_severity": "LOW", + "issue_text": "Standard pseudo-random generators are not suitable for security/cryptographic purposes.", + "line_number": 68, + "line_range": [ + 68 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/blacklists/blacklist_calls.html#b311-random", + "test_id": "B311", + "test_name": "blacklist" + }, + { + "code": "79 while len(memories) < 50:\n80 memories.append(f\"{random.uniform(-2.0, 2.0):.6f}\")\n81 \n", + "col_offset": 31, + "end_col_offset": 56, + "filename": "app/ETH/pt_trainer.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 330, + "link": "https://cwe.mitre.org/data/definitions/330.html" + }, + "issue_severity": "LOW", + "issue_text": "Standard pseudo-random generators are not suitable for security/cryptographic purposes.", + "line_number": 80, + "line_range": [ + 80 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/blacklists/blacklist_calls.html#b311-random", + "test_id": "B311", + "test_name": "blacklist" + }, + { + "code": "87 weights = [\n88 f\"{0.5 + (final_accuracy/100.0) * 0.3 + random.uniform(-0.1, 0.1):.6f}\"\n89 for _ in range(50)\n", + "col_offset": 52, + "end_col_offset": 77, + "filename": "app/ETH/pt_trainer.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 330, + "link": "https://cwe.mitre.org/data/definitions/330.html" + }, + "issue_severity": "LOW", + "issue_text": "Standard pseudo-random generators are not suitable for security/cryptographic purposes.", + "line_number": 88, + "line_range": [ + 88 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/blacklists/blacklist_calls.html#b311-random", + "test_id": "B311", + "test_name": "blacklist" + }, + { + "code": "90 ]\n91 weights_high = [f\"{float(w) + random.uniform(0.05, 0.15):.6f}\" for w in weights]\n92 weights_low = [f\"{float(w) - random.uniform(0.05, 0.15):.6f}\" for w in weights]\n", + "col_offset": 38, + "end_col_offset": 64, + "filename": "app/ETH/pt_trainer.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 330, + "link": "https://cwe.mitre.org/data/definitions/330.html" + }, + "issue_severity": "LOW", + "issue_text": "Standard pseudo-random generators are not suitable for security/cryptographic purposes.", + "line_number": 91, + "line_range": [ + 91 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/blacklists/blacklist_calls.html#b311-random", + "test_id": "B311", + "test_name": "blacklist" + }, + { + "code": "91 weights_high = [f\"{float(w) + random.uniform(0.05, 0.15):.6f}\" for w in weights]\n92 weights_low = [f\"{float(w) - random.uniform(0.05, 0.15):.6f}\" for w in weights]\n93 \n", + "col_offset": 37, + "end_col_offset": 63, + "filename": "app/ETH/pt_trainer.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 330, + "link": "https://cwe.mitre.org/data/definitions/330.html" + }, + "issue_severity": "LOW", + "issue_text": "Standard pseudo-random generators are not suitable for security/cryptographic purposes.", + "line_number": 92, + "line_range": [ + 92 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/blacklists/blacklist_calls.html#b311-random", + "test_id": "B311", + "test_name": "blacklist" + }, + { + "code": "60 prices = [\n61 base_price + (i * 10) + random.uniform(-100, 100)\n62 for i in range(100)\n", + "col_offset": 44, + "end_col_offset": 69, + "filename": "app/XRP/pt_trainer.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 330, + "link": "https://cwe.mitre.org/data/definitions/330.html" + }, + "issue_severity": "LOW", + "issue_text": "Standard pseudo-random generators are not suitable for security/cryptographic purposes.", + "line_number": 61, + "line_range": [ + 61 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/blacklists/blacklist_calls.html#b311-random", + "test_id": "B311", + "test_name": "blacklist" + }, + { + "code": "67 prices = [\n68 base_price + (i * 10) + random.uniform(-100, 100) for i in range(100)\n69 ]\n", + "col_offset": 40, + "end_col_offset": 65, + "filename": "app/XRP/pt_trainer.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 330, + "link": "https://cwe.mitre.org/data/definitions/330.html" + }, + "issue_severity": "LOW", + "issue_text": "Standard pseudo-random generators are not suitable for security/cryptographic purposes.", + "line_number": 68, + "line_range": [ + 68 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/blacklists/blacklist_calls.html#b311-random", + "test_id": "B311", + "test_name": "blacklist" + }, + { + "code": "79 while len(memories) < 50:\n80 memories.append(f\"{random.uniform(-2.0, 2.0):.6f}\")\n81 \n", + "col_offset": 31, + "end_col_offset": 56, + "filename": "app/XRP/pt_trainer.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 330, + "link": "https://cwe.mitre.org/data/definitions/330.html" + }, + "issue_severity": "LOW", + "issue_text": "Standard pseudo-random generators are not suitable for security/cryptographic purposes.", + "line_number": 80, + "line_range": [ + 80 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/blacklists/blacklist_calls.html#b311-random", + "test_id": "B311", + "test_name": "blacklist" + }, + { + "code": "87 weights = [\n88 f\"{0.5 + (final_accuracy/100.0) * 0.3 + random.uniform(-0.1, 0.1):.6f}\"\n89 for _ in range(50)\n", + "col_offset": 52, + "end_col_offset": 77, + "filename": "app/XRP/pt_trainer.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 330, + "link": "https://cwe.mitre.org/data/definitions/330.html" + }, + "issue_severity": "LOW", + "issue_text": "Standard pseudo-random generators are not suitable for security/cryptographic purposes.", + "line_number": 88, + "line_range": [ + 88 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/blacklists/blacklist_calls.html#b311-random", + "test_id": "B311", + "test_name": "blacklist" + }, + { + "code": "90 ]\n91 weights_high = [f\"{float(w) + random.uniform(0.05, 0.15):.6f}\" for w in weights]\n92 weights_low = [f\"{float(w) - random.uniform(0.05, 0.15):.6f}\" for w in weights]\n", + "col_offset": 38, + "end_col_offset": 64, + "filename": "app/XRP/pt_trainer.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 330, + "link": "https://cwe.mitre.org/data/definitions/330.html" + }, + "issue_severity": "LOW", + "issue_text": "Standard pseudo-random generators are not suitable for security/cryptographic purposes.", + "line_number": 91, + "line_range": [ + 91 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/blacklists/blacklist_calls.html#b311-random", + "test_id": "B311", + "test_name": "blacklist" + }, + { + "code": "91 weights_high = [f\"{float(w) + random.uniform(0.05, 0.15):.6f}\" for w in weights]\n92 weights_low = [f\"{float(w) - random.uniform(0.05, 0.15):.6f}\" for w in weights]\n93 \n", + "col_offset": 37, + "end_col_offset": 63, + "filename": "app/XRP/pt_trainer.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 330, + "link": "https://cwe.mitre.org/data/definitions/330.html" + }, + "issue_severity": "LOW", + "issue_text": "Standard pseudo-random generators are not suitable for security/cryptographic purposes.", + "line_number": 92, + "line_range": [ + 92 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/blacklists/blacklist_calls.html#b311-random", + "test_id": "B311", + "test_name": "blacklist" + }, + { + "code": "358 # Add some random movement\n359 return base * (1 + random.uniform(-0.02, 0.02))\n360 \n", + "col_offset": 27, + "end_col_offset": 54, + "filename": "app/advanced_stop_loss.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 330, + "link": "https://cwe.mitre.org/data/definitions/330.html" + }, + "issue_severity": "LOW", + "issue_text": "Standard pseudo-random generators are not suitable for security/cryptographic purposes.", + "line_number": 359, + "line_range": [ + 359 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/blacklists/blacklist_calls.html#b311-random", + "test_id": "B311", + "test_name": "blacklist" + }, + { + "code": "562 # Add some random movement with slight upward bias for testing\n563 return base * (1 + random.uniform(-0.01, 0.03))\n564 \n", + "col_offset": 27, + "end_col_offset": 54, + "filename": "app/advanced_take_profit.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 330, + "link": "https://cwe.mitre.org/data/definitions/330.html" + }, + "issue_severity": "LOW", + "issue_text": "Standard pseudo-random generators are not suitable for security/cryptographic purposes.", + "line_number": 563, + "line_range": [ + 563 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/blacklists/blacklist_calls.html#b311-random", + "test_id": "B311", + "test_name": "blacklist" + }, + { + "code": "789 self.volumes = {\n790 symbol: random.uniform(1000000, 5000000) for symbol in self.prices\n791 }\n", + "col_offset": 20, + "end_col_offset": 52, + "filename": "app/conditional_order_logic.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 330, + "link": "https://cwe.mitre.org/data/definitions/330.html" + }, + "issue_severity": "LOW", + "issue_text": "Standard pseudo-random generators are not suitable for security/cryptographic purposes.", + "line_number": 790, + "line_range": [ + 790 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/blacklists/blacklist_calls.html#b311-random", + "test_id": "B311", + "test_name": "blacklist" + }, + { + "code": "796 base = self.prices.get(symbol, 100)\n797 return base * (1 + random.uniform(-0.02, 0.02))\n798 \n", + "col_offset": 27, + "end_col_offset": 54, + "filename": "app/conditional_order_logic.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 330, + "link": "https://cwe.mitre.org/data/definitions/330.html" + }, + "issue_severity": "LOW", + "issue_text": "Standard pseudo-random generators are not suitable for security/cryptographic purposes.", + "line_number": 797, + "line_range": [ + 797 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/blacklists/blacklist_calls.html#b311-random", + "test_id": "B311", + "test_name": "blacklist" + }, + { + "code": "802 base = self.volumes.get(symbol, 1000000)\n803 return base * (1 + random.uniform(-0.1, 0.1))\n804 \n", + "col_offset": 27, + "end_col_offset": 52, + "filename": "app/conditional_order_logic.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 330, + "link": "https://cwe.mitre.org/data/definitions/330.html" + }, + "issue_severity": "LOW", + "issue_text": "Standard pseudo-random generators are not suitable for security/cryptographic purposes.", + "line_number": 803, + "line_range": [ + 803 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/blacklists/blacklist_calls.html#b311-random", + "test_id": "B311", + "test_name": "blacklist" + }, + { + "code": "807 \n808 return random.uniform(20, 80)\n809 \n", + "col_offset": 15, + "end_col_offset": 37, + "filename": "app/conditional_order_logic.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 330, + "link": "https://cwe.mitre.org/data/definitions/330.html" + }, + "issue_severity": "LOW", + "issue_text": "Standard pseudo-random generators are not suitable for security/cryptographic purposes.", + "line_number": 808, + "line_range": [ + 808 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/blacklists/blacklist_calls.html#b311-random", + "test_id": "B311", + "test_name": "blacklist" + }, + { + "code": "815 \n816 return current_price * (1 + random.uniform(-0.05, 0.05))\n817 \n", + "col_offset": 36, + "end_col_offset": 63, + "filename": "app/conditional_order_logic.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 330, + "link": "https://cwe.mitre.org/data/definitions/330.html" + }, + "issue_severity": "LOW", + "issue_text": "Standard pseudo-random generators are not suitable for security/cryptographic purposes.", + "line_number": 816, + "line_range": [ + 816 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/blacklists/blacklist_calls.html#b311-random", + "test_id": "B311", + "test_name": "blacklist" + }, + { + "code": "830 \n831 return current_price * (1 + random.uniform(-0.1, 0.1))\n832 \n", + "col_offset": 36, + "end_col_offset": 61, + "filename": "app/conditional_order_logic.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 330, + "link": "https://cwe.mitre.org/data/definitions/330.html" + }, + "issue_severity": "LOW", + "issue_text": "Standard pseudo-random generators are not suitable for security/cryptographic purposes.", + "line_number": 831, + "line_range": [ + 831 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/blacklists/blacklist_calls.html#b311-random", + "test_id": "B311", + "test_name": "blacklist" + }, + { + "code": "836 statuses = [\"pending\", \"filled\", \"cancelled\", \"partially_filled\"]\n837 return random.choice(statuses)\n838 \n", + "col_offset": 15, + "end_col_offset": 38, + "filename": "app/conditional_order_logic.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 330, + "link": "https://cwe.mitre.org/data/definitions/330.html" + }, + "issue_severity": "LOW", + "issue_text": "Standard pseudo-random generators are not suitable for security/cryptographic purposes.", + "line_number": 837, + "line_range": [ + 837 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/blacklists/blacklist_calls.html#b311-random", + "test_id": "B311", + "test_name": "blacklist" + }, + { + "code": "841 \n842 return random.uniform(0, 10)\n843 \n", + "col_offset": 15, + "end_col_offset": 36, + "filename": "app/conditional_order_logic.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 330, + "link": "https://cwe.mitre.org/data/definitions/330.html" + }, + "issue_severity": "LOW", + "issue_text": "Standard pseudo-random generators are not suitable for security/cryptographic purposes.", + "line_number": 842, + "line_range": [ + 842 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/blacklists/blacklist_calls.html#b311-random", + "test_id": "B311", + "test_name": "blacklist" + }, + { + "code": "846 \n847 return random.uniform(-1000, 1000)\n848 \n", + "col_offset": 15, + "end_col_offset": 42, + "filename": "app/conditional_order_logic.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 330, + "link": "https://cwe.mitre.org/data/definitions/330.html" + }, + "issue_severity": "LOW", + "issue_text": "Standard pseudo-random generators are not suitable for security/cryptographic purposes.", + "line_number": 847, + "line_range": [ + 847 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/blacklists/blacklist_calls.html#b311-random", + "test_id": "B311", + "test_name": "blacklist" + }, + { + "code": "851 \n852 return random.uniform(0, 0.2) # 0-20%\n853 \n", + "col_offset": 15, + "end_col_offset": 37, + "filename": "app/conditional_order_logic.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 330, + "link": "https://cwe.mitre.org/data/definitions/330.html" + }, + "issue_severity": "LOW", + "issue_text": "Standard pseudo-random generators are not suitable for security/cryptographic purposes.", + "line_number": 852, + "line_range": [ + 852 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/blacklists/blacklist_calls.html#b311-random", + "test_id": "B311", + "test_name": "blacklist" + }, + { + "code": "547 base = base_prices.get(symbol, 100)\n548 return base * (1 + random.uniform(-0.02, 0.02))\n549 \n", + "col_offset": 27, + "end_col_offset": 54, + "filename": "app/dca_automation.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 330, + "link": "https://cwe.mitre.org/data/definitions/330.html" + }, + "issue_severity": "LOW", + "issue_text": "Standard pseudo-random generators are not suitable for security/cryptographic purposes.", + "line_number": 548, + "line_range": [ + 548 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/blacklists/blacklist_calls.html#b311-random", + "test_id": "B311", + "test_name": "blacklist" + }, + { + "code": "554 return {\n555 \"rsi\": random.uniform(20, 80),\n556 \"volume\": random.uniform(1000000, 5000000),\n", + "col_offset": 19, + "end_col_offset": 41, + "filename": "app/dca_automation.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 330, + "link": "https://cwe.mitre.org/data/definitions/330.html" + }, + "issue_severity": "LOW", + "issue_text": "Standard pseudo-random generators are not suitable for security/cryptographic purposes.", + "line_number": 555, + "line_range": [ + 555 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/blacklists/blacklist_calls.html#b311-random", + "test_id": "B311", + "test_name": "blacklist" + }, + { + "code": "555 \"rsi\": random.uniform(20, 80),\n556 \"volume\": random.uniform(1000000, 5000000),\n557 \"avg_volume\": 2000000,\n", + "col_offset": 22, + "end_col_offset": 54, + "filename": "app/dca_automation.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 330, + "link": "https://cwe.mitre.org/data/definitions/330.html" + }, + "issue_severity": "LOW", + "issue_text": "Standard pseudo-random generators are not suitable for security/cryptographic purposes.", + "line_number": 556, + "line_range": [ + 556 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/blacklists/blacklist_calls.html#b311-random", + "test_id": "B311", + "test_name": "blacklist" + }, + { + "code": "557 \"avg_volume\": 2000000,\n558 \"volatility\": random.uniform(0.01, 0.05),\n559 }\n", + "col_offset": 26, + "end_col_offset": 52, + "filename": "app/dca_automation.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 330, + "link": "https://cwe.mitre.org/data/definitions/330.html" + }, + "issue_severity": "LOW", + "issue_text": "Standard pseudo-random generators are not suitable for security/cryptographic purposes.", + "line_number": 558, + "line_range": [ + 558 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/blacklists/blacklist_calls.html#b311-random", + "test_id": "B311", + "test_name": "blacklist" + }, + { + "code": "754 api_key = \"\"\n755 api_secret = \"\"\n756 passphrase = \"\"\n", + "col_offset": 21, + "end_col_offset": 23, + "filename": "app/exchange_config_gui.py", + "issue_confidence": "MEDIUM", + "issue_cwe": { + "id": 259, + "link": "https://cwe.mitre.org/data/definitions/259.html" + }, + "issue_severity": "LOW", + "issue_text": "Possible hardcoded password: ''", + "line_number": 755, + "line_range": [ + 755 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b105_hardcoded_password_string.html", + "test_id": "B105", + "test_name": "hardcoded_password_string" + }, + { + "code": "755 api_secret = \"\"\n756 passphrase = \"\"\n757 \n", + "col_offset": 21, + "end_col_offset": 23, + "filename": "app/exchange_config_gui.py", + "issue_confidence": "MEDIUM", + "issue_cwe": { + "id": 259, + "link": "https://cwe.mitre.org/data/definitions/259.html" + }, + "issue_severity": "LOW", + "issue_text": "Possible hardcoded password: ''", + "line_number": 756, + "line_range": [ + 756 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b105_hardcoded_password_string.html", + "test_id": "B105", + "test_name": "hardcoded_password_string" + }, + { + "code": "131 \n132 passphrase = \"\"\n133 if exchange_name == \"kucoin\":\n", + "col_offset": 17, + "end_col_offset": 19, + "filename": "app/exchange_setup.py", + "issue_confidence": "MEDIUM", + "issue_cwe": { + "id": 259, + "link": "https://cwe.mitre.org/data/definitions/259.html" + }, + "issue_severity": "LOW", + "issue_text": "Possible hardcoded password: ''", + "line_number": 132, + "line_range": [ + 132 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b105_hardcoded_password_string.html", + "test_id": "B105", + "test_name": "hardcoded_password_string" + }, + { + "code": "6 import importlib\n7 import subprocess\n8 import sys\n", + "col_offset": 0, + "end_col_offset": 17, + "filename": "app/install_optional_deps.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 78, + "link": "https://cwe.mitre.org/data/definitions/78.html" + }, + "issue_severity": "LOW", + "issue_text": "Consider possible security implications associated with the subprocess module.", + "line_number": 7, + "line_range": [ + 7 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/blacklists/blacklist_imports.html#b404-import-subprocess", + "test_id": "B404", + "test_name": "blacklist" + }, + { + "code": "26 print(f\"Installing {package_name}...\")\n27 subprocess.check_call([sys.executable, \"-m\", \"pip\", \"install\", package_name])\n28 print(f\"\u2705 {package_name} installed successfully!\")\n", + "col_offset": 8, + "end_col_offset": 85, + "filename": "app/install_optional_deps.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 78, + "link": "https://cwe.mitre.org/data/definitions/78.html" + }, + "issue_severity": "LOW", + "issue_text": "subprocess call - check for execution of untrusted input.", + "line_number": 27, + "line_range": [ + 27 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b603_subprocess_without_shell_equals_true.html", + "test_id": "B603", + "test_name": "subprocess_without_shell_equals_true" + }, + { + "code": "404 for article in articles:\n405 title_hash = hashlib.md5(article.title.lower().encode()).hexdigest()\n406 if title_hash not in seen_titles:\n", + "col_offset": 29, + "end_col_offset": 72, + "filename": "app/llm_research_engine.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 327, + "link": "https://cwe.mitre.org/data/definitions/327.html" + }, + "issue_severity": "HIGH", + "issue_text": "Use of weak MD5 hash for security. Consider usedforsecurity=False", + "line_number": 405, + "line_range": [ + 405 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b324_hashlib.html", + "test_id": "B324", + "test_name": "hashlib" + }, + { + "code": "831 base_price = base_prices.get(symbol, 100)\n832 current_price = base_price * (1 + random.uniform(-0.05, 0.05))\n833 price_change_24h = random.uniform(-10, 10)\n", + "col_offset": 50, + "end_col_offset": 77, + "filename": "app/llm_research_engine.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 330, + "link": "https://cwe.mitre.org/data/definitions/330.html" + }, + "issue_severity": "LOW", + "issue_text": "Standard pseudo-random generators are not suitable for security/cryptographic purposes.", + "line_number": 832, + "line_range": [ + 832 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/blacklists/blacklist_calls.html#b311-random", + "test_id": "B311", + "test_name": "blacklist" + }, + { + "code": "832 current_price = base_price * (1 + random.uniform(-0.05, 0.05))\n833 price_change_24h = random.uniform(-10, 10)\n834 \n", + "col_offset": 35, + "end_col_offset": 58, + "filename": "app/llm_research_engine.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 330, + "link": "https://cwe.mitre.org/data/definitions/330.html" + }, + "issue_severity": "LOW", + "issue_text": "Standard pseudo-random generators are not suitable for security/cryptographic purposes.", + "line_number": 833, + "line_range": [ + 833 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/blacklists/blacklist_calls.html#b311-random", + "test_id": "B311", + "test_name": "blacklist" + }, + { + "code": "839 price_change_pct_24h=price_change_24h,\n840 volume_24h=random.uniform(1000000, 10000000),\n841 market_cap=current_price * random.uniform(1000000, 100000000),\n", + "col_offset": 31, + "end_col_offset": 64, + "filename": "app/llm_research_engine.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 330, + "link": "https://cwe.mitre.org/data/definitions/330.html" + }, + "issue_severity": "LOW", + "issue_text": "Standard pseudo-random generators are not suitable for security/cryptographic purposes.", + "line_number": 840, + "line_range": [ + 840 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/blacklists/blacklist_calls.html#b311-random", + "test_id": "B311", + "test_name": "blacklist" + }, + { + "code": "840 volume_24h=random.uniform(1000000, 10000000),\n841 market_cap=current_price * random.uniform(1000000, 100000000),\n842 high_24h=current_price * 1.05,\n", + "col_offset": 47, + "end_col_offset": 81, + "filename": "app/llm_research_engine.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 330, + "link": "https://cwe.mitre.org/data/definitions/330.html" + }, + "issue_severity": "LOW", + "issue_text": "Standard pseudo-random generators are not suitable for security/cryptographic purposes.", + "line_number": 841, + "line_range": [ + 841 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/blacklists/blacklist_calls.html#b311-random", + "test_id": "B311", + "test_name": "blacklist" + }, + { + "code": "843 low_24h=current_price * 0.95,\n844 rsi=random.uniform(20, 80),\n845 ma_50=current_price * random.uniform(0.95, 1.05),\n", + "col_offset": 24, + "end_col_offset": 46, + "filename": "app/llm_research_engine.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 330, + "link": "https://cwe.mitre.org/data/definitions/330.html" + }, + "issue_severity": "LOW", + "issue_text": "Standard pseudo-random generators are not suitable for security/cryptographic purposes.", + "line_number": 844, + "line_range": [ + 844 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/blacklists/blacklist_calls.html#b311-random", + "test_id": "B311", + "test_name": "blacklist" + }, + { + "code": "844 rsi=random.uniform(20, 80),\n845 ma_50=current_price * random.uniform(0.95, 1.05),\n846 ma_200=current_price * random.uniform(0.9, 1.1),\n", + "col_offset": 42, + "end_col_offset": 68, + "filename": "app/llm_research_engine.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 330, + "link": "https://cwe.mitre.org/data/definitions/330.html" + }, + "issue_severity": "LOW", + "issue_text": "Standard pseudo-random generators are not suitable for security/cryptographic purposes.", + "line_number": 845, + "line_range": [ + 845 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/blacklists/blacklist_calls.html#b311-random", + "test_id": "B311", + "test_name": "blacklist" + }, + { + "code": "845 ma_50=current_price * random.uniform(0.95, 1.05),\n846 ma_200=current_price * random.uniform(0.9, 1.1),\n847 )\n", + "col_offset": 43, + "end_col_offset": 67, + "filename": "app/llm_research_engine.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 330, + "link": "https://cwe.mitre.org/data/definitions/330.html" + }, + "issue_severity": "LOW", + "issue_text": "Standard pseudo-random generators are not suitable for security/cryptographic purposes.", + "line_number": 846, + "line_range": [ + 846 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/blacklists/blacklist_calls.html#b311-random", + "test_id": "B311", + "test_name": "blacklist" + }, + { + "code": "206 ).pack(expand=True, fill=\"both\", padx=20, pady=20)\n207 except:\n208 pass\n209 \n", + "col_offset": 12, + "end_col_offset": 20, + "filename": "app/llm_research_gui.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 207, + "line_range": [ + 207, + 208 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "262 \n263 exit_price = entry_price * (1 + random.uniform(-0.05, 0.05))\n264 \n", + "col_offset": 44, + "end_col_offset": 71, + "filename": "app/order_analytics_dashboard.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 330, + "link": "https://cwe.mitre.org/data/definitions/330.html" + }, + "issue_severity": "LOW", + "issue_text": "Standard pseudo-random generators are not suitable for security/cryptographic purposes.", + "line_number": 263, + "line_range": [ + 263 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/blacklists/blacklist_calls.html#b311-random", + "test_id": "B311", + "test_name": "blacklist" + }, + { + "code": "42 if symbol == \"BTCUSDT\":\n43 return round(45000 + random.uniform(-5000, 5000), 2)\n44 elif symbol == \"ETHUSDT\":\n", + "col_offset": 33, + "end_col_offset": 60, + "filename": "app/order_execution_engine.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 330, + "link": "https://cwe.mitre.org/data/definitions/330.html" + }, + "issue_severity": "LOW", + "issue_text": "Standard pseudo-random generators are not suitable for security/cryptographic purposes.", + "line_number": 43, + "line_range": [ + 43 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/blacklists/blacklist_calls.html#b311-random", + "test_id": "B311", + "test_name": "blacklist" + }, + { + "code": "44 elif symbol == \"ETHUSDT\":\n45 return round(3000 + random.uniform(-500, 500), 2)\n46 else:\n", + "col_offset": 32, + "end_col_offset": 57, + "filename": "app/order_execution_engine.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 330, + "link": "https://cwe.mitre.org/data/definitions/330.html" + }, + "issue_severity": "LOW", + "issue_text": "Standard pseudo-random generators are not suitable for security/cryptographic purposes.", + "line_number": 45, + "line_range": [ + 45 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/blacklists/blacklist_calls.html#b311-random", + "test_id": "B311", + "test_name": "blacklist" + }, + { + "code": "46 else:\n47 return round(100 + random.uniform(-50, 50), 2)\n48 \n", + "col_offset": 31, + "end_col_offset": 54, + "filename": "app/order_execution_engine.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 330, + "link": "https://cwe.mitre.org/data/definitions/330.html" + }, + "issue_severity": "LOW", + "issue_text": "Standard pseudo-random generators are not suitable for security/cryptographic purposes.", + "line_number": 47, + "line_range": [ + 47 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/blacklists/blacklist_calls.html#b311-random", + "test_id": "B311", + "test_name": "blacklist" + }, + { + "code": "204 # Get historical snapshots\n205 cursor.execute(\"\"\"\n206 SELECT timestamp, total_value, total_cost\n207 FROM portfolio_snapshots\n208 WHERE datetime(timestamp) >= datetime('now', '-{} days')\n209 ORDER BY timestamp\n210 \"\"\".format(days))\n211 \n", + "col_offset": 31, + "end_col_offset": 19, + "filename": "app/portfolio_analytics.py", + "issue_confidence": "MEDIUM", + "issue_cwe": { + "id": 89, + "link": "https://cwe.mitre.org/data/definitions/89.html" + }, + "issue_severity": "MEDIUM", + "issue_text": "Possible SQL injection vector through string-based query construction.", + "line_number": 205, + "line_range": [ + 205, + 206, + 207, + 208, + 209, + 210 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b608_hardcoded_sql_expressions.html", + "test_id": "B608", + "test_name": "hardcoded_sql_expressions" + }, + { + "code": "423 cursor = conn.cursor()\n424 cursor.execute(\"\"\"\n425 SELECT timestamp, allocations_json\n426 FROM portfolio_snapshots\n427 WHERE datetime(timestamp) >= datetime('now', '-{} days')\n428 ORDER BY timestamp\n429 \"\"\".format(days))\n430 \n", + "col_offset": 31, + "end_col_offset": 19, + "filename": "app/portfolio_analytics.py", + "issue_confidence": "MEDIUM", + "issue_cwe": { + "id": 89, + "link": "https://cwe.mitre.org/data/definitions/89.html" + }, + "issue_severity": "MEDIUM", + "issue_text": "Possible SQL injection vector through string-based query construction.", + "line_number": 424, + "line_range": [ + 424, + 425, + 426, + 427, + 428, + 429 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b608_hardcoded_sql_expressions.html", + "test_id": "B608", + "test_name": "hardcoded_sql_expressions" + }, + { + "code": "575 try:\n576 os.chmod(startup_script, 0o755)\n577 except:\n", + "col_offset": 12, + "end_col_offset": 43, + "filename": "app/production_deployment.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 732, + "link": "https://cwe.mitre.org/data/definitions/732.html" + }, + "issue_severity": "MEDIUM", + "issue_text": "Chmod setting a permissive mask 0o755 on file (startup_script).", + "line_number": 576, + "line_range": [ + 576 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b103_set_bad_file_permissions.html", + "test_id": "B103", + "test_name": "set_bad_file_permissions" + }, + { + "code": "576 os.chmod(startup_script, 0o755)\n577 except:\n578 pass # Windows doesn't use chmod\n579 \n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/production_deployment.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 577, + "line_range": [ + 577, + 578 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "315 metrics[\"daily_return_pct\"] = round(daily_return_pct, 4)\n316 except Exception:\n317 pass\n318 \n", + "col_offset": 20, + "end_col_offset": 28, + "filename": "app/pt_api_server.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 316, + "line_range": [ + 316, + 317 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "384 self._httpd.server_close()\n385 except Exception:\n386 pass\n387 self._httpd = None\n", + "col_offset": 20, + "end_col_offset": 28, + "filename": "app/pt_api_server.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 385, + "line_range": [ + 385, + 386 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "369 callback(async_result)\n370 except Exception:\n371 pass # Don't let callback errors break the worker\n372 \n", + "col_offset": 24, + "end_col_offset": 32, + "filename": "app/pt_async_patterns.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 370, + "line_range": [ + 370, + 371 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "376 continue\n377 except Exception:\n378 continue\n379 \n", + "col_offset": 12, + "end_col_offset": 24, + "filename": "app/pt_async_patterns.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Continue detected.", + "line_number": 377, + "line_range": [ + 377, + 378 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b112_try_except_continue.html", + "test_id": "B112", + "test_name": "try_except_continue" + }, + { + "code": "7 import os\n8 import pickle\n9 import threading\n", + "col_offset": 0, + "end_col_offset": 13, + "filename": "app/pt_caching_system.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 502, + "link": "https://cwe.mitre.org/data/definitions/502.html" + }, + "issue_severity": "LOW", + "issue_text": "Consider possible security implications associated with pickle module.", + "line_number": 8, + "line_range": [ + 8 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/blacklists/blacklist_imports.html#b403-import-pickle", + "test_id": "B403", + "test_name": "blacklist" + }, + { + "code": "393 # Hash the key to create a valid filename\n394 key_hash = hashlib.md5(key.encode()).hexdigest()\n395 return self.cache_dir / f\"{key_hash}.cache\"\n", + "col_offset": 19, + "end_col_offset": 44, + "filename": "app/pt_caching_system.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 327, + "link": "https://cwe.mitre.org/data/definitions/327.html" + }, + "issue_severity": "HIGH", + "issue_text": "Use of weak MD5 hash for security. Consider usedforsecurity=False", + "line_number": 394, + "line_range": [ + 394 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b324_hashlib.html", + "test_id": "B324", + "test_name": "hashlib" + }, + { + "code": "409 with open(file_path, \"rb\") as f:\n410 entry_data = pickle.load(f)\n411 \n", + "col_offset": 37, + "end_col_offset": 51, + "filename": "app/pt_caching_system.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 502, + "link": "https://cwe.mitre.org/data/definitions/502.html" + }, + "issue_severity": "MEDIUM", + "issue_text": "Pickle and modules that wrap it can be unsafe when used to deserialize untrusted data, possible security issue.", + "line_number": 410, + "line_range": [ + 410 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/blacklists/blacklist_calls.html#b301-pickle", + "test_id": "B301", + "test_name": "blacklist" + }, + { + "code": "508 file_path.unlink()\n509 except Exception:\n510 pass\n511 \n", + "col_offset": 16, + "end_col_offset": 24, + "filename": "app/pt_caching_system.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 509, + "line_range": [ + 509, + 510 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "519 with open(file_path, \"rb\") as f:\n520 entry_data = pickle.load(f)\n521 \n", + "col_offset": 37, + "end_col_offset": 51, + "filename": "app/pt_caching_system.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 502, + "link": "https://cwe.mitre.org/data/definitions/502.html" + }, + "issue_severity": "MEDIUM", + "issue_text": "Pickle and modules that wrap it can be unsafe when used to deserialize untrusted data, possible security issue.", + "line_number": 520, + "line_range": [ + 520 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/blacklists/blacklist_calls.html#b301-pickle", + "test_id": "B301", + "test_name": "blacklist" + }, + { + "code": "651 }\n652 key = hashlib.md5(str(key_data).encode()).hexdigest()\n653 \n", + "col_offset": 18, + "end_col_offset": 53, + "filename": "app/pt_caching_system.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 327, + "link": "https://cwe.mitre.org/data/definitions/327.html" + }, + "issue_severity": "HIGH", + "issue_text": "Use of weak MD5 hash for security. Consider usedforsecurity=False", + "line_number": 652, + "line_range": [ + 652 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b324_hashlib.html", + "test_id": "B324", + "test_name": "hashlib" + }, + { + "code": "176 \n177 def __init__(self, api_key: str = \"\", api_secret: str = \"\", **kwargs):\n178 self.api_key = api_key\n179 self.api_secret = api_secret\n180 self.exchange_name = self.get_exchange_name()\n181 \n", + "col_offset": 4, + "end_col_offset": 53, + "filename": "app/pt_exchange_abstraction.py", + "issue_confidence": "MEDIUM", + "issue_cwe": { + "id": 259, + "link": "https://cwe.mitre.org/data/definitions/259.html" + }, + "issue_severity": "LOW", + "issue_text": "Possible hardcoded password: ''", + "line_number": 177, + "line_range": [ + 177, + 178, + 179, + 180 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b107_hardcoded_password_default.html", + "test_id": "B107", + "test_name": "hardcoded_password_default" + }, + { + "code": "371 prices.append((price, exchange_type))\n372 except Exception:\n373 continue\n374 \n", + "col_offset": 12, + "end_col_offset": 24, + "filename": "app/pt_exchange_abstraction.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Continue detected.", + "line_number": 372, + "line_range": [ + 372, + 373 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b112_try_except_continue.html", + "test_id": "B112", + "test_name": "try_except_continue" + }, + { + "code": "104 \n105 response = requests.get(f\"{self.base_url}/0/public/Ticker?pair={kraken_symbol}\")\n106 data = response.json()\n", + "col_offset": 19, + "end_col_offset": 88, + "filename": "app/pt_exchanges.py", + "issue_confidence": "LOW", + "issue_cwe": { + "id": 400, + "link": "https://cwe.mitre.org/data/definitions/400.html" + }, + "issue_severity": "MEDIUM", + "issue_text": "Call to requests without timeout", + "line_number": 105, + "line_range": [ + 105 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b113_request_without_timeout.html", + "test_id": "B113", + "test_name": "request_without_timeout" + }, + { + "code": "116 \n117 response = requests.get(f\"{self.base_url}/0/public/Ticker?pair={kraken_symbol}\")\n118 data = response.json()\n", + "col_offset": 19, + "end_col_offset": 88, + "filename": "app/pt_exchanges.py", + "issue_confidence": "LOW", + "issue_cwe": { + "id": 400, + "link": "https://cwe.mitre.org/data/definitions/400.html" + }, + "issue_severity": "MEDIUM", + "issue_text": "Call to requests without timeout", + "line_number": 117, + "line_range": [ + 117 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b113_request_without_timeout.html", + "test_id": "B113", + "test_name": "request_without_timeout" + }, + { + "code": "217 \n218 def __init__(\n219 self,\n220 api_key: str = \"\",\n221 api_secret: str = \"\",\n222 testnet: bool = False,\n223 recv_window: int = 5000,\n224 **kwargs,\n225 ):\n226 super().__init__(api_key, api_secret, **kwargs)\n227 self.testnet = bool(testnet)\n228 self.base_url = _BINANCE_TESTNET_REST if self.testnet else _BINANCE_PROD_REST\n229 self.ws_base = _BINANCE_TESTNET_WS if self.testnet else _BINANCE_PROD_WS\n230 # Per Binance docs: default 5000ms, max 60000ms\n231 self.recv_window = max(1, min(int(recv_window), 60000))\n232 # Per-symbol filter cache: {binance_symbol: {\"stepSize\": Decimal,\n233 # \"tickSize\": Decimal, \"minQty\": Decimal, \"minNotional\": Decimal}}.\n234 # Populated lazily by _get_symbol_filters() to avoid per-order REST.\n235 self._symbol_filters: Dict[str, Dict[str, Decimal]] = {}\n236 # Server-time offset in ms: server_ms - local_ms. Refreshed lazily and\n237 # again on -1021 retry. Keeps timestamps inside recvWindow without a\n238 # round-trip on every order.\n239 self._time_offset_ms: int = 0\n240 self._time_synced: bool = False\n241 # Last-seen rate-limit headers, keyed by header name (e.g.\n242 # \"X-MBX-USED-WEIGHT-1M\"). Exposed for monitoring; not consulted to\n243 # decide throttling \u2014 Binance's 429 + Retry-After is authoritative.\n244 self.last_rate_limit_headers: Dict[str, str] = {}\n245 \n", + "col_offset": 4, + "end_col_offset": 57, + "filename": "app/pt_exchanges.py", + "issue_confidence": "MEDIUM", + "issue_cwe": { + "id": 259, + "link": "https://cwe.mitre.org/data/definitions/259.html" + }, + "issue_severity": "LOW", + "issue_text": "Possible hardcoded password: ''", + "line_number": 218, + "line_range": [ + 218, + 219, + 220, + 221, + 222, + 223, + 224, + 225, + 226, + 227, + 228, + 229, + 230, + 231, + 232, + 233, + 234, + 235, + 236, + 237, + 238, + 239, + 240, + 241, + 242, + 243, + 244 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b107_hardcoded_password_default.html", + "test_id": "B107", + "test_name": "hardcoded_password_default" + }, + { + "code": "273 \n274 response = requests.get(\n275 f\"{self.base_url}/api/v3/ticker/price?symbol={binance_symbol}\"\n276 )\n277 data = response.json()\n", + "col_offset": 19, + "end_col_offset": 9, + "filename": "app/pt_exchanges.py", + "issue_confidence": "LOW", + "issue_cwe": { + "id": 400, + "link": "https://cwe.mitre.org/data/definitions/400.html" + }, + "issue_severity": "MEDIUM", + "issue_text": "Call to requests without timeout", + "line_number": 274, + "line_range": [ + 274, + 275, + 276 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b113_request_without_timeout.html", + "test_id": "B113", + "test_name": "request_without_timeout" + }, + { + "code": "287 # Get ticker data\n288 ticker_response = requests.get(\n289 f\"{self.base_url}/api/v3/ticker/24hr?symbol={binance_symbol}\"\n290 )\n291 ticker_data = ticker_response.json()\n", + "col_offset": 26, + "end_col_offset": 9, + "filename": "app/pt_exchanges.py", + "issue_confidence": "LOW", + "issue_cwe": { + "id": 400, + "link": "https://cwe.mitre.org/data/definitions/400.html" + }, + "issue_severity": "MEDIUM", + "issue_text": "Call to requests without timeout", + "line_number": 288, + "line_range": [ + 288, + 289, + 290 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b113_request_without_timeout.html", + "test_id": "B113", + "test_name": "request_without_timeout" + }, + { + "code": "293 # Get order book for bid/ask\n294 book_response = requests.get(\n295 f\"{self.base_url}/api/v3/ticker/bookTicker?symbol={binance_symbol}\"\n296 )\n297 book_data = book_response.json()\n", + "col_offset": 24, + "end_col_offset": 9, + "filename": "app/pt_exchanges.py", + "issue_confidence": "LOW", + "issue_cwe": { + "id": 400, + "link": "https://cwe.mitre.org/data/definitions/400.html" + }, + "issue_severity": "MEDIUM", + "issue_text": "Call to requests without timeout", + "line_number": 294, + "line_range": [ + 294, + 295, + 296 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b113_request_without_timeout.html", + "test_id": "B113", + "test_name": "request_without_timeout" + }, + { + "code": "370 self.sync_time()\n371 except Exception:\n372 pass\n373 \n", + "col_offset": 12, + "end_col_offset": 20, + "filename": "app/pt_exchanges.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 371, + "line_range": [ + 371, + 372 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "403 }\n404 except Exception:\n405 pass\n406 \n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/pt_exchanges.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 404, + "line_range": [ + 404, + 405 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "412 msg = response.json().get(\"msg\", \"\")\n413 except Exception:\n414 pass\n415 raise BinanceRateLimitError(status, retry_after, msg)\n", + "col_offset": 12, + "end_col_offset": 20, + "filename": "app/pt_exchanges.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 413, + "line_range": [ + 413, + 414 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "965 \n966 response = requests.get(f\"{self.base_url}/products/{coinbase_symbol}/ticker\")\n967 data = response.json()\n", + "col_offset": 19, + "end_col_offset": 85, + "filename": "app/pt_exchanges.py", + "issue_confidence": "LOW", + "issue_cwe": { + "id": 400, + "link": "https://cwe.mitre.org/data/definitions/400.html" + }, + "issue_severity": "MEDIUM", + "issue_text": "Call to requests without timeout", + "line_number": 966, + "line_range": [ + 966 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b113_request_without_timeout.html", + "test_id": "B113", + "test_name": "request_without_timeout" + }, + { + "code": "976 \n977 response = requests.get(f\"{self.base_url}/products/{coinbase_symbol}/ticker\")\n978 data = response.json()\n", + "col_offset": 19, + "end_col_offset": 85, + "filename": "app/pt_exchanges.py", + "issue_confidence": "LOW", + "issue_cwe": { + "id": 400, + "link": "https://cwe.mitre.org/data/definitions/400.html" + }, + "issue_severity": "MEDIUM", + "issue_text": "Call to requests without timeout", + "line_number": 977, + "line_range": [ + 977 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b113_request_without_timeout.html", + "test_id": "B113", + "test_name": "request_without_timeout" + }, + { + "code": "1026 \n1027 response = requests.get(\n1028 f\"{self.base_url}/api/v1/market/orderbook/level1?symbol={kucoin_symbol}\"\n1029 )\n1030 data = response.json()\n", + "col_offset": 19, + "end_col_offset": 9, + "filename": "app/pt_exchanges.py", + "issue_confidence": "LOW", + "issue_cwe": { + "id": 400, + "link": "https://cwe.mitre.org/data/definitions/400.html" + }, + "issue_severity": "MEDIUM", + "issue_text": "Call to requests without timeout", + "line_number": 1027, + "line_range": [ + 1027, + 1028, + 1029 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b113_request_without_timeout.html", + "test_id": "B113", + "test_name": "request_without_timeout" + }, + { + "code": "1040 # Get ticker data\n1041 ticker_response = requests.get(\n1042 f\"{self.base_url}/api/v1/market/stats?symbol={kucoin_symbol}\"\n1043 )\n1044 ticker_data = ticker_response.json()[\"data\"]\n", + "col_offset": 26, + "end_col_offset": 9, + "filename": "app/pt_exchanges.py", + "issue_confidence": "LOW", + "issue_cwe": { + "id": 400, + "link": "https://cwe.mitre.org/data/definitions/400.html" + }, + "issue_severity": "MEDIUM", + "issue_text": "Call to requests without timeout", + "line_number": 1041, + "line_range": [ + 1041, + 1042, + 1043 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b113_request_without_timeout.html", + "test_id": "B113", + "test_name": "request_without_timeout" + }, + { + "code": "1046 # Get order book\n1047 book_response = requests.get(\n1048 f\"{self.base_url}/api/v1/market/orderbook/level1?symbol={kucoin_symbol}\"\n1049 )\n1050 book_data = book_response.json()[\"data\"]\n", + "col_offset": 24, + "end_col_offset": 9, + "filename": "app/pt_exchanges.py", + "issue_confidence": "LOW", + "issue_cwe": { + "id": 400, + "link": "https://cwe.mitre.org/data/definitions/400.html" + }, + "issue_severity": "MEDIUM", + "issue_text": "Call to requests without timeout", + "line_number": 1047, + "line_range": [ + 1047, + 1048, + 1049 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b113_request_without_timeout.html", + "test_id": "B113", + "test_name": "request_without_timeout" + }, + { + "code": "1106 huobi_symbol = self._convert_symbol(symbol)\n1107 response = requests.get(\n1108 f\"{self.base_url}/market/detail/merged?symbol={huobi_symbol}\"\n1109 )\n1110 data = response.json()\n", + "col_offset": 19, + "end_col_offset": 9, + "filename": "app/pt_exchanges.py", + "issue_confidence": "LOW", + "issue_cwe": { + "id": 400, + "link": "https://cwe.mitre.org/data/definitions/400.html" + }, + "issue_severity": "MEDIUM", + "issue_text": "Call to requests without timeout", + "line_number": 1107, + "line_range": [ + 1107, + 1108, + 1109 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b113_request_without_timeout.html", + "test_id": "B113", + "test_name": "request_without_timeout" + }, + { + "code": "1120 huobi_symbol = self._convert_symbol(symbol)\n1121 response = requests.get(\n1122 f\"{self.base_url}/market/detail/merged?symbol={huobi_symbol}\"\n1123 )\n1124 data = response.json()[\"tick\"]\n", + "col_offset": 19, + "end_col_offset": 9, + "filename": "app/pt_exchanges.py", + "issue_confidence": "LOW", + "issue_cwe": { + "id": 400, + "link": "https://cwe.mitre.org/data/definitions/400.html" + }, + "issue_severity": "MEDIUM", + "issue_text": "Call to requests without timeout", + "line_number": 1121, + "line_range": [ + 1121, + 1122, + 1123 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b113_request_without_timeout.html", + "test_id": "B113", + "test_name": "request_without_timeout" + }, + { + "code": "1169 gate_symbol = self._convert_symbol(symbol)\n1170 response = requests.get(\n1171 f\"{self.base_url}/spot/tickers?currency_pair={gate_symbol}\"\n1172 )\n1173 data = response.json()\n", + "col_offset": 19, + "end_col_offset": 9, + "filename": "app/pt_exchanges.py", + "issue_confidence": "LOW", + "issue_cwe": { + "id": 400, + "link": "https://cwe.mitre.org/data/definitions/400.html" + }, + "issue_severity": "MEDIUM", + "issue_text": "Call to requests without timeout", + "line_number": 1170, + "line_range": [ + 1170, + 1171, + 1172 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b113_request_without_timeout.html", + "test_id": "B113", + "test_name": "request_without_timeout" + }, + { + "code": "1181 gate_symbol = self._convert_symbol(symbol)\n1182 response = requests.get(\n1183 f\"{self.base_url}/spot/tickers?currency_pair={gate_symbol}\"\n1184 )\n1185 data = response.json()[0]\n", + "col_offset": 19, + "end_col_offset": 9, + "filename": "app/pt_exchanges.py", + "issue_confidence": "LOW", + "issue_cwe": { + "id": 400, + "link": "https://cwe.mitre.org/data/definitions/400.html" + }, + "issue_severity": "MEDIUM", + "issue_text": "Call to requests without timeout", + "line_number": 1182, + "line_range": [ + 1182, + 1183, + 1184 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b113_request_without_timeout.html", + "test_id": "B113", + "test_name": "request_without_timeout" + }, + { + "code": "1231 bitget_symbol = self._convert_symbol(symbol)\n1232 response = requests.get(\n1233 f\"{self.base_url}/api/spot/v1/market/ticker?symbol={bitget_symbol}\"\n1234 )\n1235 data = response.json()\n", + "col_offset": 19, + "end_col_offset": 9, + "filename": "app/pt_exchanges.py", + "issue_confidence": "LOW", + "issue_cwe": { + "id": 400, + "link": "https://cwe.mitre.org/data/definitions/400.html" + }, + "issue_severity": "MEDIUM", + "issue_text": "Call to requests without timeout", + "line_number": 1232, + "line_range": [ + 1232, + 1233, + 1234 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b113_request_without_timeout.html", + "test_id": "B113", + "test_name": "request_without_timeout" + }, + { + "code": "1243 bitget_symbol = self._convert_symbol(symbol)\n1244 response = requests.get(\n1245 f\"{self.base_url}/api/spot/v1/market/ticker?symbol={bitget_symbol}\"\n1246 )\n1247 data = response.json()[\"data\"]\n", + "col_offset": 19, + "end_col_offset": 9, + "filename": "app/pt_exchanges.py", + "issue_confidence": "LOW", + "issue_cwe": { + "id": 400, + "link": "https://cwe.mitre.org/data/definitions/400.html" + }, + "issue_severity": "MEDIUM", + "issue_text": "Call to requests without timeout", + "line_number": 1244, + "line_range": [ + 1244, + 1245, + 1246 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b113_request_without_timeout.html", + "test_id": "B113", + "test_name": "request_without_timeout" + }, + { + "code": "1292 mexc_symbol = self._convert_symbol(symbol)\n1293 response = requests.get(\n1294 f\"{self.base_url}/api/v3/ticker/price?symbol={mexc_symbol}\"\n1295 )\n1296 data = response.json()\n", + "col_offset": 19, + "end_col_offset": 9, + "filename": "app/pt_exchanges.py", + "issue_confidence": "LOW", + "issue_cwe": { + "id": 400, + "link": "https://cwe.mitre.org/data/definitions/400.html" + }, + "issue_severity": "MEDIUM", + "issue_text": "Call to requests without timeout", + "line_number": 1293, + "line_range": [ + 1293, + 1294, + 1295 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b113_request_without_timeout.html", + "test_id": "B113", + "test_name": "request_without_timeout" + }, + { + "code": "1304 mexc_symbol = self._convert_symbol(symbol)\n1305 ticker_response = requests.get(\n1306 f\"{self.base_url}/api/v3/ticker/24hr?symbol={mexc_symbol}\"\n1307 )\n1308 ticker_data = ticker_response.json()\n", + "col_offset": 26, + "end_col_offset": 9, + "filename": "app/pt_exchanges.py", + "issue_confidence": "LOW", + "issue_cwe": { + "id": 400, + "link": "https://cwe.mitre.org/data/definitions/400.html" + }, + "issue_severity": "MEDIUM", + "issue_text": "Call to requests without timeout", + "line_number": 1305, + "line_range": [ + 1305, + 1306, + 1307 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b113_request_without_timeout.html", + "test_id": "B113", + "test_name": "request_without_timeout" + }, + { + "code": "1309 \n1310 book_response = requests.get(\n1311 f\"{self.base_url}/api/v3/ticker/bookTicker?symbol={mexc_symbol}\"\n1312 )\n1313 book_data = book_response.json()\n", + "col_offset": 24, + "end_col_offset": 9, + "filename": "app/pt_exchanges.py", + "issue_confidence": "LOW", + "issue_cwe": { + "id": 400, + "link": "https://cwe.mitre.org/data/definitions/400.html" + }, + "issue_severity": "MEDIUM", + "issue_text": "Call to requests without timeout", + "line_number": 1310, + "line_range": [ + 1310, + 1311, + 1312 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b113_request_without_timeout.html", + "test_id": "B113", + "test_name": "request_without_timeout" + }, + { + "code": "1358 bitfinex_symbol = self._convert_symbol(symbol)\n1359 response = requests.get(f\"{self.base_url}/ticker/t{bitfinex_symbol}\")\n1360 data = response.json()\n", + "col_offset": 19, + "end_col_offset": 77, + "filename": "app/pt_exchanges.py", + "issue_confidence": "LOW", + "issue_cwe": { + "id": 400, + "link": "https://cwe.mitre.org/data/definitions/400.html" + }, + "issue_severity": "MEDIUM", + "issue_text": "Call to requests without timeout", + "line_number": 1359, + "line_range": [ + 1359 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b113_request_without_timeout.html", + "test_id": "B113", + "test_name": "request_without_timeout" + }, + { + "code": "1368 bitfinex_symbol = self._convert_symbol(symbol)\n1369 response = requests.get(f\"{self.base_url}/ticker/t{bitfinex_symbol}\")\n1370 data = response.json()\n", + "col_offset": 19, + "end_col_offset": 77, + "filename": "app/pt_exchanges.py", + "issue_confidence": "LOW", + "issue_cwe": { + "id": 400, + "link": "https://cwe.mitre.org/data/definitions/400.html" + }, + "issue_severity": "MEDIUM", + "issue_text": "Call to requests without timeout", + "line_number": 1369, + "line_range": [ + 1369 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b113_request_without_timeout.html", + "test_id": "B113", + "test_name": "request_without_timeout" + }, + { + "code": "1417 token_address = self._get_token_address(symbol)\n1418 response = requests.get(\n1419 f\"{self.base_url}/quote?fromTokenAddress={token_address}&toTokenAddress=0xA0b86a33E6bF6BC15Ac361e8C37f3E3B7AC3E80f&amount=1000000000000000000\"\n1420 )\n1421 data = response.json()\n", + "col_offset": 19, + "end_col_offset": 9, + "filename": "app/pt_exchanges.py", + "issue_confidence": "LOW", + "issue_cwe": { + "id": 400, + "link": "https://cwe.mitre.org/data/definitions/400.html" + }, + "issue_severity": "MEDIUM", + "issue_text": "Call to requests without timeout", + "line_number": 1418, + "line_range": [ + 1418, + 1419, + 1420 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b113_request_without_timeout.html", + "test_id": "B113", + "test_name": "request_without_timeout" + }, + { + "code": "1493 \n1494 response = requests.post(self.base_url, json={\"query\": query})\n1495 data = response.json()\n", + "col_offset": 19, + "end_col_offset": 70, + "filename": "app/pt_exchanges.py", + "issue_confidence": "LOW", + "issue_cwe": { + "id": 400, + "link": "https://cwe.mitre.org/data/definitions/400.html" + }, + "issue_severity": "MEDIUM", + "issue_text": "Call to requests without timeout", + "line_number": 1494, + "line_range": [ + 1494 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b113_request_without_timeout.html", + "test_id": "B113", + "test_name": "request_without_timeout" + }, + { + "code": "1562 cdc_symbol = self._convert_symbol(symbol)\n1563 response = requests.get(\n1564 f\"{self.base_url}/public/get-ticker?instrument_name={cdc_symbol}\"\n1565 )\n1566 data = response.json()\n", + "col_offset": 19, + "end_col_offset": 9, + "filename": "app/pt_exchanges.py", + "issue_confidence": "LOW", + "issue_cwe": { + "id": 400, + "link": "https://cwe.mitre.org/data/definitions/400.html" + }, + "issue_severity": "MEDIUM", + "issue_text": "Call to requests without timeout", + "line_number": 1563, + "line_range": [ + 1563, + 1564, + 1565 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b113_request_without_timeout.html", + "test_id": "B113", + "test_name": "request_without_timeout" + }, + { + "code": "1574 cdc_symbol = self._convert_symbol(symbol)\n1575 response = requests.get(\n1576 f\"{self.base_url}/public/get-ticker?instrument_name={cdc_symbol}\"\n1577 )\n1578 data = response.json()[\"result\"][\"data\"]\n", + "col_offset": 19, + "end_col_offset": 9, + "filename": "app/pt_exchanges.py", + "issue_confidence": "LOW", + "issue_cwe": { + "id": 400, + "link": "https://cwe.mitre.org/data/definitions/400.html" + }, + "issue_severity": "MEDIUM", + "issue_text": "Call to requests without timeout", + "line_number": 1575, + "line_range": [ + 1575, + 1576, + 1577 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b113_request_without_timeout.html", + "test_id": "B113", + "test_name": "request_without_timeout" + }, + { + "code": "1624 etoro_symbol = self._convert_symbol(symbol)\n1625 response = requests.get(f\"{self.base_url}/instruments/{etoro_symbol}\")\n1626 data = response.json()\n", + "col_offset": 19, + "end_col_offset": 78, + "filename": "app/pt_exchanges.py", + "issue_confidence": "LOW", + "issue_cwe": { + "id": 400, + "link": "https://cwe.mitre.org/data/definitions/400.html" + }, + "issue_severity": "MEDIUM", + "issue_text": "Call to requests without timeout", + "line_number": 1625, + "line_range": [ + 1625 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b113_request_without_timeout.html", + "test_id": "B113", + "test_name": "request_without_timeout" + }, + { + "code": "1631 etoro_symbol = self._convert_symbol(symbol)\n1632 response = requests.get(f\"{self.base_url}/instruments/{etoro_symbol}\")\n1633 data = response.json()\n", + "col_offset": 19, + "end_col_offset": 78, + "filename": "app/pt_exchanges.py", + "issue_confidence": "LOW", + "issue_cwe": { + "id": 400, + "link": "https://cwe.mitre.org/data/definitions/400.html" + }, + "issue_severity": "MEDIUM", + "issue_text": "Call to requests without timeout", + "line_number": 1632, + "line_range": [ + 1632 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b113_request_without_timeout.html", + "test_id": "B113", + "test_name": "request_without_timeout" + }, + { + "code": "1678 upbit_symbol = self._convert_symbol(symbol)\n1679 response = requests.get(f\"{self.base_url}/ticker?markets={upbit_symbol}\")\n1680 data = response.json()\n", + "col_offset": 19, + "end_col_offset": 81, + "filename": "app/pt_exchanges.py", + "issue_confidence": "LOW", + "issue_cwe": { + "id": 400, + "link": "https://cwe.mitre.org/data/definitions/400.html" + }, + "issue_severity": "MEDIUM", + "issue_text": "Call to requests without timeout", + "line_number": 1679, + "line_range": [ + 1679 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b113_request_without_timeout.html", + "test_id": "B113", + "test_name": "request_without_timeout" + }, + { + "code": "1688 upbit_symbol = self._convert_symbol(symbol)\n1689 response = requests.get(f\"{self.base_url}/ticker?markets={upbit_symbol}\")\n1690 data = response.json()[0]\n", + "col_offset": 19, + "end_col_offset": 81, + "filename": "app/pt_exchanges.py", + "issue_confidence": "LOW", + "issue_cwe": { + "id": 400, + "link": "https://cwe.mitre.org/data/definitions/400.html" + }, + "issue_severity": "MEDIUM", + "issue_text": "Call to requests without timeout", + "line_number": 1689, + "line_range": [ + 1689 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b113_request_without_timeout.html", + "test_id": "B113", + "test_name": "request_without_timeout" + }, + { + "code": "1737 dydx_symbol = self._convert_symbol(symbol)\n1738 response = requests.get(f\"{self.base_url}/v3/markets/{dydx_symbol}\")\n1739 data = response.json()\n", + "col_offset": 19, + "end_col_offset": 76, + "filename": "app/pt_exchanges.py", + "issue_confidence": "LOW", + "issue_cwe": { + "id": 400, + "link": "https://cwe.mitre.org/data/definitions/400.html" + }, + "issue_severity": "MEDIUM", + "issue_text": "Call to requests without timeout", + "line_number": 1738, + "line_range": [ + 1738 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b113_request_without_timeout.html", + "test_id": "B113", + "test_name": "request_without_timeout" + }, + { + "code": "1744 dydx_symbol = self._convert_symbol(symbol)\n1745 response = requests.get(f\"{self.base_url}/v3/markets/{dydx_symbol}\")\n1746 data = response.json()[\"market\"]\n", + "col_offset": 19, + "end_col_offset": 76, + "filename": "app/pt_exchanges.py", + "issue_confidence": "LOW", + "issue_cwe": { + "id": 400, + "link": "https://cwe.mitre.org/data/definitions/400.html" + }, + "issue_severity": "MEDIUM", + "issue_text": "Call to requests without timeout", + "line_number": 1745, + "line_range": [ + 1745 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b113_request_without_timeout.html", + "test_id": "B113", + "test_name": "request_without_timeout" + }, + { + "code": "1799 \n1800 response = requests.get(f\"{self.base_url}/getPools\")\n1801 data = response.json()\n", + "col_offset": 19, + "end_col_offset": 60, + "filename": "app/pt_exchanges.py", + "issue_confidence": "LOW", + "issue_cwe": { + "id": 400, + "link": "https://cwe.mitre.org/data/definitions/400.html" + }, + "issue_severity": "MEDIUM", + "issue_text": "Call to requests without timeout", + "line_number": 1800, + "line_range": [ + 1800 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b113_request_without_timeout.html", + "test_id": "B113", + "test_name": "request_without_timeout" + }, + { + "code": "1855 phemex_symbol = self._convert_symbol(symbol)\n1856 response = requests.get(\n1857 f\"{self.base_url}/md/ticker/24hr?symbol={phemex_symbol}\"\n1858 )\n1859 data = response.json()\n", + "col_offset": 19, + "end_col_offset": 9, + "filename": "app/pt_exchanges.py", + "issue_confidence": "LOW", + "issue_cwe": { + "id": 400, + "link": "https://cwe.mitre.org/data/definitions/400.html" + }, + "issue_severity": "MEDIUM", + "issue_text": "Call to requests without timeout", + "line_number": 1856, + "line_range": [ + 1856, + 1857, + 1858 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b113_request_without_timeout.html", + "test_id": "B113", + "test_name": "request_without_timeout" + }, + { + "code": "1867 phemex_symbol = self._convert_symbol(symbol)\n1868 response = requests.get(\n1869 f\"{self.base_url}/md/ticker/24hr?symbol={phemex_symbol}\"\n1870 )\n1871 data = response.json()[\"result\"]\n", + "col_offset": 19, + "end_col_offset": 9, + "filename": "app/pt_exchanges.py", + "issue_confidence": "LOW", + "issue_cwe": { + "id": 400, + "link": "https://cwe.mitre.org/data/definitions/400.html" + }, + "issue_severity": "MEDIUM", + "issue_text": "Call to requests without timeout", + "line_number": 1868, + "line_range": [ + 1868, + 1869, + 1870 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b113_request_without_timeout.html", + "test_id": "B113", + "test_name": "request_without_timeout" + }, + { + "code": "1929 bitso_symbol = self._convert_symbol(symbol)\n1930 response = requests.get(f\"{self.base_url}/ticker?book={bitso_symbol}\")\n1931 data = response.json()[\"payload\"]\n", + "col_offset": 19, + "end_col_offset": 78, + "filename": "app/pt_exchanges.py", + "issue_confidence": "LOW", + "issue_cwe": { + "id": 400, + "link": "https://cwe.mitre.org/data/definitions/400.html" + }, + "issue_severity": "MEDIUM", + "issue_text": "Call to requests without timeout", + "line_number": 1930, + "line_range": [ + 1930 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b113_request_without_timeout.html", + "test_id": "B113", + "test_name": "request_without_timeout" + }, + { + "code": "1980 # Get lending/borrowing rates for asset\n1981 response = requests.get(f\"{self.base_url}/reserves/{symbol}\")\n1982 data = response.json()\n", + "col_offset": 19, + "end_col_offset": 69, + "filename": "app/pt_exchanges.py", + "issue_confidence": "LOW", + "issue_cwe": { + "id": 400, + "link": "https://cwe.mitre.org/data/definitions/400.html" + }, + "issue_severity": "MEDIUM", + "issue_text": "Call to requests without timeout", + "line_number": 1981, + "line_range": [ + 1981 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b113_request_without_timeout.html", + "test_id": "B113", + "test_name": "request_without_timeout" + }, + { + "code": "2039 # Get vault information\n2040 response = requests.get(f\"{self.base_url}/vaults/{symbol}\")\n2041 data = response.json()\n", + "col_offset": 19, + "end_col_offset": 67, + "filename": "app/pt_exchanges.py", + "issue_confidence": "LOW", + "issue_cwe": { + "id": 400, + "link": "https://cwe.mitre.org/data/definitions/400.html" + }, + "issue_severity": "MEDIUM", + "issue_text": "Call to requests without timeout", + "line_number": 2040, + "line_range": [ + 2040 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b113_request_without_timeout.html", + "test_id": "B113", + "test_name": "request_without_timeout" + }, + { + "code": "2097 def get_market_data(self, symbol: str) -> MarketData:\n2098 response = requests.get(\n2099 f\"{self.base_url}/public/get_book_summary_by_instrument?instrument_name={symbol}\"\n2100 )\n2101 data = response.json()[\"result\"][0]\n", + "col_offset": 19, + "end_col_offset": 9, + "filename": "app/pt_exchanges.py", + "issue_confidence": "LOW", + "issue_cwe": { + "id": 400, + "link": "https://cwe.mitre.org/data/definitions/400.html" + }, + "issue_severity": "MEDIUM", + "issue_text": "Call to requests without timeout", + "line_number": 2098, + "line_range": [ + 2098, + 2099, + 2100 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b113_request_without_timeout.html", + "test_id": "B113", + "test_name": "request_without_timeout" + }, + { + "code": "2148 # Get stETH information\n2149 response = requests.get(f\"{self.base_url}/protocol/steth/apr\")\n2150 apr_data = response.json()\n", + "col_offset": 19, + "end_col_offset": 70, + "filename": "app/pt_exchanges.py", + "issue_confidence": "LOW", + "issue_cwe": { + "id": 400, + "link": "https://cwe.mitre.org/data/definitions/400.html" + }, + "issue_severity": "MEDIUM", + "issue_text": "Call to requests without timeout", + "line_number": 2149, + "line_range": [ + 2149 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b113_request_without_timeout.html", + "test_id": "B113", + "test_name": "request_without_timeout" + }, + { + "code": "2152 # Get stETH price\n2153 price_response = requests.get(f\"{self.base_url}/protocol/steth/price\")\n2154 price_data = price_response.json()\n", + "col_offset": 25, + "end_col_offset": 78, + "filename": "app/pt_exchanges.py", + "issue_confidence": "LOW", + "issue_cwe": { + "id": 400, + "link": "https://cwe.mitre.org/data/definitions/400.html" + }, + "issue_severity": "MEDIUM", + "issue_text": "Call to requests without timeout", + "line_number": 2153, + "line_range": [ + 2153 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b113_request_without_timeout.html", + "test_id": "B113", + "test_name": "request_without_timeout" + }, + { + "code": "47 os.remove(temp_file)\n48 except:\n49 pass\n50 return False\n", + "col_offset": 12, + "end_col_offset": 20, + "filename": "app/pt_files.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 48, + "line_range": [ + 48, + 49 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "10 import shutil\n11 import subprocess\n12 import sys\n", + "col_offset": 0, + "end_col_offset": 17, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 78, + "link": "https://cwe.mitre.org/data/definitions/78.html" + }, + "issue_severity": "LOW", + "issue_text": "Consider possible security implications associated with the subprocess module.", + "line_number": 11, + "line_range": [ + 11 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/blacklists/blacklist_imports.html#b404-import-subprocess", + "test_id": "B404", + "test_name": "blacklist" + }, + { + "code": "250 os.replace(tmp, path) # Atomic operation on Windows/Unix\n251 except Exception:\n252 pass\n253 \n", + "col_offset": 4, + "end_col_offset": 12, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 251, + "line_range": [ + 251, + 252 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "261 os.replace(tmp, path) # Atomic operation on Windows/Unix\n262 except Exception:\n263 pass\n264 \n", + "col_offset": 4, + "end_col_offset": 12, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 262, + "line_range": [ + 262, + 263 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "288 it.w.grid_forget()\n289 except Exception:\n290 pass\n291 if destroy_widgets:\n", + "col_offset": 12, + "end_col_offset": 20, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 289, + "line_range": [ + 289, + 290 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "293 it.w.destroy()\n294 except Exception:\n295 pass\n296 self._items = []\n", + "col_offset": 16, + "end_col_offset": 24, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 294, + "line_range": [ + 294, + 295 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "467 self.value_lbl.configure(foreground=self._normal_fg)\n468 except Exception:\n469 pass\n470 \n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 468, + "line_range": [ + 468, + 469 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "495 self.canvas.coords(self._trade_line_short, x2, y, x3, y)\n496 except Exception:\n497 pass\n498 \n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 496, + "line_range": [ + 496, + 497 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "651 out.append(obj)\n652 except Exception:\n653 continue\n654 except Exception:\n", + "col_offset": 20, + "end_col_offset": 32, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Continue detected.", + "line_number": 652, + "line_range": [ + 652, + 653 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b112_try_except_continue.html", + "test_id": "B112", + "test_name": "try_except_continue" + }, + { + "code": "653 continue\n654 except Exception:\n655 pass\n656 return out\n", + "col_offset": 4, + "end_col_offset": 12, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 654, + "line_range": [ + 654, + 655 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "798 vals.append(v)\n799 except Exception:\n800 pass\n801 \n", + "col_offset": 12, + "end_col_offset": 20, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 799, + "line_range": [ + 799, + 800 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "1047 self.after_cancel(self._tf_after_id)\n1048 except Exception:\n1049 pass\n1050 \n", + "col_offset": 12, + "end_col_offset": 20, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 1048, + "line_range": [ + 1048, + 1049 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "1054 self.event_generate(\"<>\", when=\"tail\")\n1055 except Exception:\n1056 pass\n1057 \n", + "col_offset": 16, + "end_col_offset": 24, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 1055, + "line_range": [ + 1055, + 1056 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "1119 self.after_cancel(self._resize_after_id)\n1120 except Exception:\n1121 pass\n1122 self._resize_after_id = self.after_idle(self.canvas.draw_idle)\n", + "col_offset": 20, + "end_col_offset": 28, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 1120, + "line_range": [ + 1120, + 1121 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "1122 self._resize_after_id = self.after_idle(self.canvas.draw_idle)\n1123 except Exception:\n1124 pass\n1125 \n", + "col_offset": 12, + "end_col_offset": 20, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 1123, + "line_range": [ + 1123, + 1124 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "1138 self.ax.grid(True, color=DARK_BORDER, linewidth=0.6, alpha=0.35)\n1139 except Exception:\n1140 pass\n1141 \n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 1139, + "line_range": [ + 1139, + 1140 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "1176 os.remove(tmp_path)\n1177 except Exception:\n1178 pass\n1179 except Exception:\n", + "col_offset": 20, + "end_col_offset": 28, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 1177, + "line_range": [ + 1177, + 1178 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "1278 self.ax.set_ylim(y_low - pad, y_high + pad)\n1279 except Exception:\n1280 pass\n1281 \n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 1279, + "line_range": [ + 1279, + 1280 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "1285 self.ax.axhline(y=float(lv), linewidth=1, color=\"blue\", alpha=0.8)\n1286 except Exception:\n1287 pass\n1288 \n", + "col_offset": 12, + "end_col_offset": 20, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 1286, + "line_range": [ + 1286, + 1287 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "1291 self.ax.axhline(y=float(lv), linewidth=1, color=\"orange\", alpha=0.8)\n1292 except Exception:\n1293 pass\n1294 \n", + "col_offset": 12, + "end_col_offset": 20, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 1292, + "line_range": [ + 1292, + 1293 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "1300 )\n1301 except Exception:\n1302 pass\n1303 \n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 1301, + "line_range": [ + 1301, + 1302 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "1308 )\n1309 except Exception:\n1310 pass\n1311 \n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 1309, + "line_range": [ + 1309, + 1310 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "1317 )\n1318 except Exception:\n1319 pass\n1320 \n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 1318, + "line_range": [ + 1318, + 1319 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "1329 )\n1330 except Exception:\n1331 pass\n1332 \n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 1330, + "line_range": [ + 1330, + 1331 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "1337 )\n1338 except Exception:\n1339 pass\n1340 \n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 1338, + "line_range": [ + 1338, + 1339 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "1389 \n1390 except Exception:\n1391 pass\n1392 \n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 1390, + "line_range": [ + 1390, + 1391 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "1427 tts = float(tts)\n1428 except Exception:\n1429 continue\n1430 if tts < t_min or tts > t_max:\n", + "col_offset": 20, + "end_col_offset": 32, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Continue detected.", + "line_number": 1428, + "line_range": [ + 1428, + 1429 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b112_try_except_continue.html", + "test_id": "B112", + "test_name": "try_except_continue" + }, + { + "code": "1472 )\n1473 except Exception:\n1474 pass\n1475 \n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 1473, + "line_range": [ + 1473, + 1474 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "1510 self.ax.tick_params(axis=\"x\", labelsize=8)\n1511 except Exception:\n1512 pass\n1513 \n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 1511, + "line_range": [ + 1511, + 1512 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "1612 self.after_cancel(self._resize_after_id)\n1613 except Exception:\n1614 pass\n1615 self._resize_after_id = self.after_idle(self.canvas.draw_idle)\n", + "col_offset": 20, + "end_col_offset": 28, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 1613, + "line_range": [ + 1613, + 1614 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "1615 self._resize_after_id = self.after_idle(self.canvas.draw_idle)\n1616 except Exception:\n1617 pass\n1618 \n", + "col_offset": 12, + "end_col_offset": 20, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 1616, + "line_range": [ + 1616, + 1617 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "1628 self.ax.grid(True, color=DARK_BORDER, linewidth=0.6, alpha=0.35)\n1629 except Exception:\n1630 pass\n1631 \n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 1629, + "line_range": [ + 1629, + 1630 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "1684 points.append((tsf, vf))\n1685 except Exception:\n1686 continue\n1687 except Exception:\n", + "col_offset": 20, + "end_col_offset": 32, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Continue detected.", + "line_number": 1685, + "line_range": [ + 1685, + 1686 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b112_try_except_continue.html", + "test_id": "B112", + "test_name": "try_except_continue" + }, + { + "code": "1808 tts = float(tts)\n1809 except Exception:\n1810 continue\n1811 if tts < t_min or tts > t_max:\n", + "col_offset": 20, + "end_col_offset": 32, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Continue detected.", + "line_number": 1809, + "line_range": [ + 1809, + 1810 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b112_try_except_continue.html", + "test_id": "B112", + "test_name": "try_except_continue" + }, + { + "code": "1841 \n1842 except Exception:\n1843 pass\n1844 \n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 1842, + "line_range": [ + 1842, + 1843 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "1849 )\n1850 except Exception:\n1851 pass\n1852 \n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 1850, + "line_range": [ + 1850, + 1851 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "1880 self.ax.tick_params(axis=\"x\", labelsize=8)\n1881 except Exception:\n1882 pass\n1883 \n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 1881, + "line_range": [ + 1881, + 1882 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "1977 _atomic_write_json(status_path, status_data)\n1978 except Exception:\n1979 pass # Non-critical status write failure\n1980 \n", + "col_offset": 12, + "end_col_offset": 20, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 1978, + "line_range": [ + 1978, + 1979 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "2113 self.configure(bg=DARK_BG)\n2114 except Exception:\n2115 pass\n2116 \n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 2114, + "line_range": [ + 2114, + 2115 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "2133 self.option_add(\"*Menu.activeForeground\", DARK_SELECT_FG)\n2134 except Exception:\n2135 pass\n2136 \n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 2134, + "line_range": [ + 2134, + 2135 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "2141 style.theme_use(\"clam\")\n2142 except Exception:\n2143 pass\n2144 \n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 2142, + "line_range": [ + 2142, + 2143 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "2147 style.configure(\".\", background=DARK_BG, foreground=DARK_FG)\n2148 except Exception:\n2149 pass\n2150 \n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 2148, + "line_range": [ + 2148, + 2149 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "2154 style.configure(name, background=DARK_BG, foreground=DARK_FG)\n2155 except Exception:\n2156 pass\n2157 \n", + "col_offset": 12, + "end_col_offset": 20, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 2155, + "line_range": [ + 2155, + 2156 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "2167 )\n2168 except Exception:\n2169 pass\n2170 \n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 2168, + "line_range": [ + 2168, + 2169 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "2172 style.configure(\"TSeparator\", background=DARK_BORDER)\n2173 except Exception:\n2174 pass\n2175 \n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 2173, + "line_range": [ + 2173, + 2174 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "2202 )\n2203 except Exception:\n2204 pass\n2205 \n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 2203, + "line_range": [ + 2203, + 2204 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "2214 )\n2215 except Exception:\n2216 pass\n2217 \n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 2215, + "line_range": [ + 2215, + 2216 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "2235 )\n2236 except Exception:\n2237 pass\n2238 \n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 2236, + "line_range": [ + 2236, + 2237 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "2303 )\n2304 except Exception:\n2305 pass\n2306 \n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 2304, + "line_range": [ + 2304, + 2305 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "2334 )\n2335 except Exception:\n2336 pass\n2337 \n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 2335, + "line_range": [ + 2335, + 2336 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "2340 style.configure(\"TPanedwindow\", background=DARK_BG)\n2341 except Exception:\n2342 pass\n2343 \n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 2341, + "line_range": [ + 2341, + 2342 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "2352 )\n2353 except Exception:\n2354 pass\n2355 \n", + "col_offset": 12, + "end_col_offset": 20, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 2353, + "line_range": [ + 2353, + 2354 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "2577 shutil.copy2(src_trainer_path, dst_trainer_path)\n2578 except Exception:\n2579 pass\n2580 \n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 2578, + "line_range": [ + 2578, + 2579 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "2658 outer.paneconfigure(right, minsize=520)\n2659 except Exception:\n2660 pass\n2661 \n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 2659, + "line_range": [ + 2659, + 2660 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "2729 self._did_init_outer_sash = True\n2730 except Exception:\n2731 pass\n2732 \n", + "col_offset": 12, + "end_col_offset": 20, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 2730, + "line_range": [ + 2730, + 2731 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "2958 )\n2959 except Exception:\n2960 pass\n2961 \n", + "col_offset": 12, + "end_col_offset": 20, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 2959, + "line_range": [ + 2959, + 2960 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "2967 )\n2968 except Exception:\n2969 pass\n2970 _fit_neural_canvas()\n", + "col_offset": 12, + "end_col_offset": 20, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 2968, + "line_range": [ + 2968, + 2969 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "2985 self.after_idle(self._fit_neural_canvas_height)\n2986 except Exception:\n2987 pass\n2988 \n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 2986, + "line_range": [ + 2986, + 2987 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "3157 left_split.paneconfigure(logs_frame, minsize=80)\n3158 except Exception:\n3159 pass\n3160 \n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 3158, + "line_range": [ + 3158, + 3159 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "3174 self._did_init_left_split_sash = True\n3175 except Exception:\n3176 pass\n3177 \n", + "col_offset": 12, + "end_col_offset": 20, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 3175, + "line_range": [ + 3175, + 3176 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "3209 f.pack_forget()\n3210 except Exception:\n3211 pass\n3212 # show selected\n", + "col_offset": 16, + "end_col_offset": 24, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 3210, + "line_range": [ + 3210, + 3211 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "3226 )\n3227 except Exception:\n3228 pass\n3229 \n", + "col_offset": 16, + "end_col_offset": 24, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 3227, + "line_range": [ + 3227, + 3228 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "3254 )\n3255 except Exception:\n3256 pass\n3257 \n", + "col_offset": 32, + "end_col_offset": 40, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 3255, + "line_range": [ + 3255, + 3256 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "3277 \n3278 except Exception:\n3279 pass\n3280 \n", + "col_offset": 28, + "end_col_offset": 36, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 3278, + "line_range": [ + 3278, + 3279 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "3281 self.after(1, _do_refresh_visible)\n3282 except Exception:\n3283 pass\n3284 \n", + "col_offset": 12, + "end_col_offset": 20, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 3282, + "line_range": [ + 3282, + 3283 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "3619 right_split.paneconfigure(self.bottom_notebook, minsize=220)\n3620 except Exception:\n3621 pass\n3622 \n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 3620, + "line_range": [ + 3620, + 3621 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "3690 self._paned_clamp_after_ids.pop(key, None)\n3691 except Exception:\n3692 pass\n3693 self._clamp_panedwindow_sashes(pw)\n", + "col_offset": 12, + "end_col_offset": 20, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 3691, + "line_range": [ + 3691, + 3692 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "3696 self._paned_clamp_after_ids[key] = self.after(1, _run)\n3697 except Exception:\n3698 pass\n3699 \n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 3697, + "line_range": [ + 3697, + 3698 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "3756 cur = int(pw.sashpos(i))\n3757 except Exception:\n3758 continue\n3759 \n", + "col_offset": 20, + "end_col_offset": 32, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Continue detected.", + "line_number": 3757, + "line_range": [ + 3757, + 3758 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b112_try_except_continue.html", + "test_id": "B112", + "test_name": "try_except_continue" + }, + { + "code": "3763 pw.sashpos(i, new)\n3764 except Exception:\n3765 pass\n3766 \n", + "col_offset": 24, + "end_col_offset": 32, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 3764, + "line_range": [ + 3764, + 3765 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "3766 \n3767 except Exception:\n3768 pass\n3769 \n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 3767, + "line_range": [ + 3767, + 3768 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "3784 q.put(f\"{prefix}{line.rstrip()}\")\n3785 except Exception:\n3786 pass\n3787 finally:\n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 3785, + "line_range": [ + 3785, + 3786 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "3802 try:\n3803 p.proc = subprocess.Popen(\n3804 [sys.executable, \"-u\", p.path], # -u for unbuffered prints\n3805 cwd=self.project_dir,\n3806 env=env,\n3807 stdout=subprocess.PIPE,\n3808 stderr=subprocess.STDOUT,\n3809 text=True,\n3810 bufsize=1,\n3811 )\n3812 if log_q is not None:\n", + "col_offset": 21, + "end_col_offset": 13, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 78, + "link": "https://cwe.mitre.org/data/definitions/78.html" + }, + "issue_severity": "LOW", + "issue_text": "subprocess call - check for execution of untrusted input.", + "line_number": 3803, + "line_range": [ + 3803, + 3804, + 3805, + 3806, + 3807, + 3808, + 3809, + 3810, + 3811 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b603_subprocess_without_shell_equals_true.html", + "test_id": "B603", + "test_name": "subprocess_without_shell_equals_true" + }, + { + "code": "3826 p.proc.terminate()\n3827 except Exception:\n3828 pass\n3829 \n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 3827, + "line_range": [ + 3827, + 3828 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "4021 order_paned.pane(right_frame, minsize=400)\n4022 except Exception:\n4023 # Fallback for different tkinter versions\n4024 pass\n4025 \n", + "col_offset": 12, + "end_col_offset": 20, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 4022, + "line_range": [ + 4022, + 4023, + 4024 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "4436 ).pack(expand=True, fill=\"both\", padx=20, pady=20)\n4437 except Exception:\n4438 pass\n4439 print(f\"Error creating LLM Research tab: {e}\")\n", + "col_offset": 12, + "end_col_offset": 20, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 4437, + "line_range": [ + 4437, + 4438 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "4477 ).pack(expand=True, fill=\"both\", padx=20, pady=20)\n4478 except Exception:\n4479 pass\n4480 print(f\"Error creating Holdings Management tab: {e}\")\n", + "col_offset": 12, + "end_col_offset": 20, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 4478, + "line_range": [ + 4478, + 4479 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "4518 ).pack(expand=True, fill=\"both\", padx=20, pady=20)\n4519 except Exception:\n4520 pass\n4521 print(f\"Error creating Portfolio Analytics tab: {e}\")\n", + "col_offset": 12, + "end_col_offset": 20, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 4519, + "line_range": [ + 4519, + 4520 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "4559 ).pack(expand=True, fill=\"both\", padx=20, pady=20)\n4560 except Exception:\n4561 pass\n4562 print(f\"Error creating Advanced Order Types tab: {e}\")\n", + "col_offset": 12, + "end_col_offset": 20, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 4560, + "line_range": [ + 4560, + 4561 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "4600 ).pack(expand=True, fill=\"both\", padx=20, pady=20)\n4601 except Exception:\n4602 pass\n4603 print(f\"Error creating Real-time Market Data tab: {e}\")\n", + "col_offset": 12, + "end_col_offset": 20, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 4601, + "line_range": [ + 4601, + 4602 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "4644 ).pack(expand=True, fill=\"both\", padx=20, pady=20)\n4645 except Exception:\n4646 pass\n4647 print(f\"Error creating Portfolio Optimization tab: {e}\")\n", + "col_offset": 12, + "end_col_offset": 20, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 4645, + "line_range": [ + 4645, + 4646 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "4685 ).pack(expand=True, fill=\"both\", padx=20, pady=20)\n4686 except Exception:\n4687 pass\n4688 print(f\"Error creating Backtesting Framework tab: {e}\")\n", + "col_offset": 12, + "end_col_offset": 20, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 4686, + "line_range": [ + 4686, + 4687 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "4730 ).pack(expand=True, fill=\"both\", padx=20, pady=20)\n4731 except Exception:\n4732 pass\n4733 print(f\"Error creating Performance Attribution tab: {e}\")\n", + "col_offset": 12, + "end_col_offset": 20, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 4731, + "line_range": [ + 4731, + 4732 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "4771 ).pack(expand=True, fill=\"both\", padx=20, pady=20)\n4772 except Exception:\n4773 pass\n4774 print(f\"Error creating Institutional Trading tab: {e}\")\n", + "col_offset": 12, + "end_col_offset": 20, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 4772, + "line_range": [ + 4772, + 4773 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "5082 )\n5083 except Exception:\n5084 pass\n5085 \n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 5083, + "line_range": [ + 5083, + 5084 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "5138 return data\n5139 except Exception:\n5140 pass\n5141 return {\"ready\": False}\n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 5139, + "line_range": [ + 5139, + 5140 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "5164 self.after(250, self._poll_runner_ready_then_start_trader)\n5165 except Exception:\n5166 pass\n5167 \n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 5165, + "line_range": [ + 5165, + 5166 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "5186 self.after(250, self._poll_runner_ready_then_start_trader)\n5187 except Exception:\n5188 pass\n5189 \n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 5187, + "line_range": [ + 5187, + 5188 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "5208 return False\n5209 except Exception:\n5210 pass\n5211 \n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 5209, + "line_range": [ + 5209, + 5210 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "5237 running.append(c)\n5238 except Exception:\n5239 pass\n5240 \n", + "col_offset": 12, + "end_col_offset": 20, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 5238, + "line_range": [ + 5238, + 5239 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "5263 continue\n5264 except Exception:\n5265 pass\n5266 \n", + "col_offset": 20, + "end_col_offset": 28, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 5264, + "line_range": [ + 5264, + 5265 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "5267 running.append(coin)\n5268 except Exception:\n5269 pass\n5270 \n", + "col_offset": 12, + "end_col_offset": 20, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 5268, + "line_range": [ + 5268, + 5269 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "5314 self.status.config(text=\"No coin selected for neural thinking\")\n5315 except Exception:\n5316 pass\n5317 return\n", + "col_offset": 12, + "end_col_offset": 20, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 5315, + "line_range": [ + 5315, + 5316 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "5338 )\n5339 except Exception:\n5340 pass\n5341 return\n", + "col_offset": 16, + "end_col_offset": 24, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 5339, + "line_range": [ + 5339, + 5340 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "5360 # Start the process with the coin argument\n5361 import subprocess\n5362 \n", + "col_offset": 12, + "end_col_offset": 29, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 78, + "link": "https://cwe.mitre.org/data/definitions/78.html" + }, + "issue_severity": "LOW", + "issue_text": "Consider possible security implications associated with the subprocess module.", + "line_number": 5361, + "line_range": [ + 5361 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/blacklists/blacklist_imports.html#b404-import-subprocess", + "test_id": "B404", + "test_name": "blacklist" + }, + { + "code": "5362 \n5363 proc = subprocess.Popen(\n5364 [sys.executable, script_path, coin],\n5365 cwd=proc_info.cwd,\n5366 stdout=subprocess.PIPE,\n5367 stderr=subprocess.STDOUT,\n5368 text=True,\n5369 bufsize=1,\n5370 universal_newlines=True,\n5371 )\n5372 \n", + "col_offset": 19, + "end_col_offset": 13, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 78, + "link": "https://cwe.mitre.org/data/definitions/78.html" + }, + "issue_severity": "LOW", + "issue_text": "subprocess call - check for execution of untrusted input.", + "line_number": 5363, + "line_range": [ + 5363, + 5364, + 5365, + 5366, + 5367, + 5368, + 5369, + 5370, + 5371 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b603_subprocess_without_shell_equals_true.html", + "test_id": "B603", + "test_name": "subprocess_without_shell_equals_true" + }, + { + "code": "5389 self.status.config(text=f\"Neural thinking started for {coin}\")\n5390 except Exception:\n5391 pass\n5392 \n", + "col_offset": 12, + "end_col_offset": 20, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 5390, + "line_range": [ + 5390, + 5391 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "5396 self.status.config(text=f\"Failed to start neural thinking for {coin}\")\n5397 except Exception:\n5398 pass\n5399 \n", + "col_offset": 12, + "end_col_offset": 20, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 5397, + "line_range": [ + 5397, + 5398 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "5419 self.status.config(text=f\"Stopped neural thinking for {coin}\")\n5420 except Exception:\n5421 pass\n5422 except Exception as e:\n", + "col_offset": 20, + "end_col_offset": 28, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 5420, + "line_range": [ + 5420, + 5421 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "5490 self.status.config(text=f\"Stopped {stopped_count} trainer(s)\")\n5491 except Exception:\n5492 pass\n5493 else:\n", + "col_offset": 12, + "end_col_offset": 20, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 5491, + "line_range": [ + 5491, + 5492 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "5496 self.status.config(text=\"No trainers were running\")\n5497 except Exception:\n5498 pass\n5499 \n", + "col_offset": 12, + "end_col_offset": 20, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 5497, + "line_range": [ + 5497, + 5498 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "5508 self.status.config(text=\"No coin selected\")\n5509 except Exception:\n5510 pass\n5511 return\n", + "col_offset": 12, + "end_col_offset": 20, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 5509, + "line_range": [ + 5509, + 5510 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "5516 self.status.config(text=f\"No trainer running for {coin}\")\n5517 except Exception:\n5518 pass\n5519 return\n", + "col_offset": 12, + "end_col_offset": 20, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 5517, + "line_range": [ + 5517, + 5518 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "5539 self.status.config(text=f\"Stopped trainer for {coin}\")\n5540 except Exception:\n5541 pass\n5542 else:\n", + "col_offset": 16, + "end_col_offset": 24, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 5540, + "line_range": [ + 5540, + 5541 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "5545 self.status.config(text=f\"Trainer for {coin} not running\")\n5546 except Exception:\n5547 pass\n5548 except Exception as e:\n", + "col_offset": 16, + "end_col_offset": 24, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 5546, + "line_range": [ + 5546, + 5547 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "5551 self.status.config(text=f\"Error stopping {coin}: {e}\")\n5552 except Exception:\n5553 pass\n5554 \n", + "col_offset": 12, + "end_col_offset": 20, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 5552, + "line_range": [ + 5552, + 5553 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "5592 shutil.copy2(src_trainer_path, dst_trainer_path)\n5593 except Exception:\n5594 pass\n5595 \n", + "col_offset": 12, + "end_col_offset": 20, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 5593, + "line_range": [ + 5593, + 5594 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "5631 deleted += 1\n5632 except Exception:\n5633 pass\n5634 \n", + "col_offset": 20, + "end_col_offset": 28, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 5632, + "line_range": [ + 5632, + 5633 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "5639 )\n5640 except Exception:\n5641 pass\n5642 except Exception:\n", + "col_offset": 16, + "end_col_offset": 24, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 5640, + "line_range": [ + 5640, + 5641 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "5641 pass\n5642 except Exception:\n5643 pass\n5644 \n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 5642, + "line_range": [ + 5642, + 5643 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "5662 )\n5663 info.proc = subprocess.Popen(\n5664 cmd_args,\n5665 cwd=coin_cwd,\n5666 env=env,\n5667 stdout=subprocess.PIPE,\n5668 stderr=subprocess.STDOUT,\n5669 text=True,\n5670 bufsize=1,\n5671 )\n5672 print(f\"DEBUG: Process started with PID: {info.proc.pid}\")\n", + "col_offset": 24, + "end_col_offset": 13, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 78, + "link": "https://cwe.mitre.org/data/definitions/78.html" + }, + "issue_severity": "LOW", + "issue_text": "subprocess call - check for execution of untrusted input.", + "line_number": 5663, + "line_range": [ + 5663, + 5664, + 5665, + 5666, + 5667, + 5668, + 5669, + 5670, + 5671 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b603_subprocess_without_shell_equals_true.html", + "test_id": "B603", + "test_name": "subprocess_without_shell_equals_true" + }, + { + "code": "5766 root_widget.after_cancel(self.auto_retrain_timers[coin])\n5767 except Exception:\n5768 pass\n5769 \n", + "col_offset": 12, + "end_col_offset": 20, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 5767, + "line_range": [ + 5767, + 5768 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "5782 self.status.config(text=f\"Auto-retraining {coin} (stale data)\")\n5783 except Exception:\n5784 pass\n5785 except Exception as e:\n", + "col_offset": 16, + "end_col_offset": 24, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 5783, + "line_range": [ + 5783, + 5784 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "5946 url = f\"https://cdn.jsdelivr.net/gh/vadimmalykhin/binance-icons/crypto/{coin_symbol.lower()}.svg\"\n5947 with urllib.request.urlopen(url, timeout=5) as response:\n5948 if response.status == 200:\n", + "col_offset": 17, + "end_col_offset": 55, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 22, + "link": "https://cwe.mitre.org/data/definitions/22.html" + }, + "issue_severity": "MEDIUM", + "issue_text": "Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.", + "line_number": 5947, + "line_range": [ + 5947 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/blacklists/blacklist_calls.html#b310-urllib-urlopen", + "test_id": "B310", + "test_name": "blacklist" + }, + { + "code": "6041 )\n6042 except Exception:\n6043 pass\n6044 \n", + "col_offset": 16, + "end_col_offset": 24, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 6042, + "line_range": [ + 6042, + 6043 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "6100 print(f\"DEBUG: Cancelled auto-retrain timer for {coin}\")\n6101 except Exception:\n6102 pass\n6103 self.auto_retrain_timers.clear()\n", + "col_offset": 12, + "end_col_offset": 20, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 6101, + "line_range": [ + 6101, + 6102 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "6111 lp.info.proc.terminate()\n6112 except Exception:\n6113 pass\n6114 \n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 6112, + "line_range": [ + 6112, + 6113 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "6130 )\n6131 except Exception:\n6132 pass\n6133 \n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 6131, + "line_range": [ + 6131, + 6132 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "6173 self._last_chart_refresh = time.time()\n6174 except Exception:\n6175 pass\n6176 \n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 6174, + "line_range": [ + 6174, + 6175 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "6188 pass\n6189 except Exception:\n6190 pass\n6191 \n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 6189, + "line_range": [ + 6189, + 6190 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "6197 txt.delete(\"1.0\", f\"{current - max_lines}.0\")\n6198 except Exception:\n6199 pass\n6200 txt.see(\"end\")\n", + "col_offset": 12, + "end_col_offset": 20, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 6198, + "line_range": [ + 6198, + 6199 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "6233 self.btn_stop_trader.config(state=\"disabled\")\n6234 except Exception:\n6235 pass\n6236 \n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 6234, + "line_range": [ + 6234, + 6235 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "6252 self.btn_stop_neural.config(state=\"disabled\")\n6253 except Exception:\n6254 pass\n6255 \n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 6253, + "line_range": [ + 6253, + 6254 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "6281 self.btn_start_trader.configure(state=\"disabled\")\n6282 except Exception:\n6283 pass\n6284 \n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 6282, + "line_range": [ + 6282, + 6283 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "6296 )\n6297 except Exception:\n6298 pass\n6299 \n", + "col_offset": 12, + "end_col_offset": 20, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 6297, + "line_range": [ + 6297, + 6298 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "6336 self.account_chart.refresh()\n6337 except Exception:\n6338 pass\n6339 \n", + "col_offset": 12, + "end_col_offset": 20, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 6337, + "line_range": [ + 6337, + 6338 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "6352 )\n6353 except Exception:\n6354 pass\n6355 \n", + "col_offset": 16, + "end_col_offset": 24, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 6353, + "line_range": [ + 6353, + 6354 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "6396 )\n6397 except Exception:\n6398 pass\n6399 \n", + "col_offset": 20, + "end_col_offset": 28, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 6397, + "line_range": [ + 6397, + 6398 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "6424 self._drain_queue_to_text(lp.log_q, self.trainer_text)\n6425 except Exception:\n6426 pass\n6427 \n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 6425, + "line_range": [ + 6425, + 6426 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "6455 self.lbl_acct_dca_single.config(text=\"DCA Levels (single): N/A\")\n6456 except Exception:\n6457 pass\n6458 \n", + "col_offset": 12, + "end_col_offset": 20, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 6456, + "line_range": [ + 6456, + 6457 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "6543 \n6544 except Exception:\n6545 pass\n6546 \n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 6544, + "line_range": [ + 6544, + 6545 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "6577 tsf = float(tr.get(\"ts\", 0))\n6578 except Exception:\n6579 continue\n6580 \n", + "col_offset": 16, + "end_col_offset": 28, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Continue detected.", + "line_number": 6578, + "line_range": [ + 6578, + 6579 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b112_try_except_continue.html", + "test_id": "B112", + "test_name": "try_except_continue" + }, + { + "code": "6600 tsf = float(tr.get(\"ts\", 0))\n6601 except Exception:\n6602 continue\n6603 \n", + "col_offset": 16, + "end_col_offset": 28, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Continue detected.", + "line_number": 6601, + "line_range": [ + 6601, + 6602 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b112_try_except_continue.html", + "test_id": "B112", + "test_name": "try_except_continue" + }, + { + "code": "6621 continue\n6622 except Exception:\n6623 continue\n6624 \n", + "col_offset": 12, + "end_col_offset": 24, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Continue detected.", + "line_number": 6622, + "line_range": [ + 6622, + 6623 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b112_try_except_continue.html", + "test_id": "B112", + "test_name": "try_except_continue" + }, + { + "code": "6653 self.trades_tree.heading(\"dca_24h\", text=f\"DCA 24h (max {max_dca_24h})\")\n6654 except Exception:\n6655 pass\n6656 dca_24h_display = f\"{dca_24h}/{max_dca_24h}\"\n", + "col_offset": 12, + "end_col_offset": 20, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 6654, + "line_range": [ + 6654, + 6655 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "6684 )\n6685 except Exception:\n6686 pass\n6687 \n", + "col_offset": 12, + "end_col_offset": 20, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 6685, + "line_range": [ + 6685, + 6686 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "6858 self.trainer_coin_var.set(self.train_coin_var.get())\n6859 except Exception:\n6860 pass\n6861 \n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 6859, + "line_range": [ + 6859, + 6860 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "6866 self._refresh_neural_overview()\n6867 except Exception:\n6868 pass\n6869 \n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 6867, + "line_range": [ + 6867, + 6868 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "6876 self._rebuild_coin_chart_tabs()\n6877 except Exception:\n6878 pass\n6879 \n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 6877, + "line_range": [ + 6877, + 6878 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "6895 ch.destroy()\n6896 except Exception:\n6897 pass\n6898 \n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 6896, + "line_range": [ + 6896, + 6897 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "6911 t.set_hover(True)\n6912 except Exception:\n6913 pass\n6914 \n", + "col_offset": 16, + "end_col_offset": 24, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 6912, + "line_range": [ + 6912, + 6913 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "6924 w = getattr(w, \"master\", None)\n6925 except Exception:\n6926 pass\n6927 \n", + "col_offset": 16, + "end_col_offset": 24, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 6925, + "line_range": [ + 6925, + 6926 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "6929 t.set_hover(False)\n6930 except Exception:\n6931 pass\n6932 \n", + "col_offset": 16, + "end_col_offset": 24, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 6930, + "line_range": [ + 6930, + 6931 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "6938 w.bind(\"\", _on_leave, add=\"+\")\n6939 except Exception:\n6940 pass\n6941 \n", + "col_offset": 12, + "end_col_offset": 20, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 6939, + "line_range": [ + 6939, + 6940 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "6963 w.bind(\"\", _start_coin_thinking, add=\"+\")\n6964 except Exception:\n6965 pass\n6966 \n", + "col_offset": 12, + "end_col_offset": 20, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 6964, + "line_range": [ + 6964, + 6965 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "6972 fn(str(c).strip().upper())\n6973 except Exception:\n6974 pass\n6975 \n", + "col_offset": 16, + "end_col_offset": 24, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 6973, + "line_range": [ + 6973, + 6974 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "6979 w.bind(\"\", _open_coin_chart, add=\"+\")\n6980 except Exception:\n6981 pass\n6982 \n", + "col_offset": 12, + "end_col_offset": 20, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 6980, + "line_range": [ + 6980, + 6981 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "6988 self.neural_wrap._schedule_reflow()\n6989 except Exception:\n6990 pass\n6991 \n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 6989, + "line_range": [ + 6989, + 6990 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "6995 self.after_idle(fn)\n6996 except Exception:\n6997 pass\n6998 \n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 6996, + "line_range": [ + 6996, + 6997 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "7017 )\n7018 except Exception:\n7019 pass\n7020 \n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 7018, + "line_range": [ + 7018, + 7019 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "7099 self.lbl_neural_overview_last.config(text=\"Last: N/A\")\n7100 except Exception:\n7101 pass\n7102 \n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 7100, + "line_range": [ + 7100, + 7101 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "7122 self.chart_tabs_bar.destroy()\n7123 except Exception:\n7124 pass\n7125 \n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 7123, + "line_range": [ + 7123, + 7124 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "7131 self.chart_pages_container.destroy()\n7132 except Exception:\n7133 pass\n7134 \n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 7132, + "line_range": [ + 7132, + 7133 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "7150 f.pack_forget()\n7151 except Exception:\n7152 pass\n7153 f = self.chart_pages.get(name)\n", + "col_offset": 16, + "end_col_offset": 24, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 7151, + "line_range": [ + 7151, + 7152 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "7165 )\n7166 except Exception:\n7167 pass\n7168 \n", + "col_offset": 16, + "end_col_offset": 24, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 7166, + "line_range": [ + 7166, + 7167 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "7274 c.yview_moveto(0)\n7275 except Exception:\n7276 pass\n7277 except Exception:\n", + "col_offset": 20, + "end_col_offset": 28, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 7275, + "line_range": [ + 7275, + 7276 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "7276 pass\n7277 except Exception:\n7278 pass\n7279 \n", + "col_offset": 12, + "end_col_offset": 20, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 7277, + "line_range": [ + 7277, + 7278 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "7283 settings_canvas.itemconfigure(settings_window, width=int(e.width))\n7284 except Exception:\n7285 pass\n7286 _update_settings_scrollbars()\n", + "col_offset": 12, + "end_col_offset": 20, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 7284, + "line_range": [ + 7284, + 7285 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "7295 settings_canvas.yview_scroll(int(-1 * (e.delta / 120)), \"units\")\n7296 except Exception:\n7297 pass\n7298 \n", + "col_offset": 12, + "end_col_offset": 20, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 7296, + "line_range": [ + 7296, + 7297 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "7680 if os.name == \"nt\":\n7681 os.startfile(folder) # type: ignore[attr-defined]\n7682 return\n", + "col_offset": 20, + "end_col_offset": 40, + "filename": "app/pt_hub.py", + "issue_confidence": "MEDIUM", + "issue_cwe": { + "id": 78, + "link": "https://cwe.mitre.org/data/definitions/78.html" + }, + "issue_severity": "LOW", + "issue_text": "Starting a process without a shell.", + "line_number": 7681, + "line_range": [ + 7681 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b606_start_process_with_no_shell.html", + "test_id": "B606", + "test_name": "start_process_with_no_shell" + }, + { + "code": "7683 if sys.platform == \"darwin\":\n7684 subprocess.Popen([\"open\", folder])\n7685 return\n", + "col_offset": 20, + "end_col_offset": 54, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 78, + "link": "https://cwe.mitre.org/data/definitions/78.html" + }, + "issue_severity": "LOW", + "issue_text": "Starting a process with a partial executable path", + "line_number": 7684, + "line_range": [ + 7684 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b607_start_process_with_partial_path.html", + "test_id": "B607", + "test_name": "start_process_with_partial_path" + }, + { + "code": "7683 if sys.platform == \"darwin\":\n7684 subprocess.Popen([\"open\", folder])\n7685 return\n", + "col_offset": 20, + "end_col_offset": 54, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 78, + "link": "https://cwe.mitre.org/data/definitions/78.html" + }, + "issue_severity": "LOW", + "issue_text": "subprocess call - check for execution of untrusted input.", + "line_number": 7684, + "line_range": [ + 7684 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b603_subprocess_without_shell_equals_true.html", + "test_id": "B603", + "test_name": "subprocess_without_shell_equals_true" + }, + { + "code": "7685 return\n7686 subprocess.Popen([\"xdg-open\", folder])\n7687 except Exception as e:\n", + "col_offset": 16, + "end_col_offset": 54, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 78, + "link": "https://cwe.mitre.org/data/definitions/78.html" + }, + "issue_severity": "LOW", + "issue_text": "Starting a process with a partial executable path", + "line_number": 7686, + "line_range": [ + 7686 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b607_start_process_with_partial_path.html", + "test_id": "B607", + "test_name": "start_process_with_partial_path" + }, + { + "code": "7685 return\n7686 subprocess.Popen([\"xdg-open\", folder])\n7687 except Exception as e:\n", + "col_offset": 16, + "end_col_offset": 54, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 78, + "link": "https://cwe.mitre.org/data/definitions/78.html" + }, + "issue_severity": "LOW", + "issue_text": "subprocess call - check for execution of untrusted input.", + "line_number": 7686, + "line_range": [ + 7686 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b603_subprocess_without_shell_equals_true.html", + "test_id": "B603", + "test_name": "subprocess_without_shell_equals_true" + }, + { + "code": "7806 c.yview_moveto(0)\n7807 except Exception:\n7808 pass\n7809 except Exception:\n", + "col_offset": 24, + "end_col_offset": 32, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 7807, + "line_range": [ + 7807, + 7808 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "7808 pass\n7809 except Exception:\n7810 pass\n7811 \n", + "col_offset": 16, + "end_col_offset": 24, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 7809, + "line_range": [ + 7809, + 7810 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "7815 wiz_canvas.itemconfigure(wiz_window, width=int(e.width))\n7816 except Exception:\n7817 pass\n7818 _update_wiz_scrollbars()\n", + "col_offset": 16, + "end_col_offset": 24, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 7816, + "line_range": [ + 7816, + 7817 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "7826 wiz_canvas.yview_scroll(int(-1 * (e.delta / 120)), \"units\")\n7827 except Exception:\n7828 pass\n7829 \n", + "col_offset": 16, + "end_col_offset": 24, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 7827, + "line_range": [ + 7827, + 7828 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "7856 shutil.copy2(secret_path, backup_secret)\n7857 except Exception:\n7858 pass\n7859 \n", + "col_offset": 16, + "end_col_offset": 24, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 7857, + "line_range": [ + 7857, + 7858 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "7882 if os.name == \"nt\":\n7883 os.startfile(p) # type: ignore[attr-defined]\n7884 return\n", + "col_offset": 24, + "end_col_offset": 39, + "filename": "app/pt_hub.py", + "issue_confidence": "MEDIUM", + "issue_cwe": { + "id": 78, + "link": "https://cwe.mitre.org/data/definitions/78.html" + }, + "issue_severity": "LOW", + "issue_text": "Starting a process without a shell.", + "line_number": 7883, + "line_range": [ + 7883 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b606_start_process_with_no_shell.html", + "test_id": "B606", + "test_name": "start_process_with_no_shell" + }, + { + "code": "7885 if sys.platform == \"darwin\":\n7886 subprocess.Popen([\"open\", p])\n7887 return\n", + "col_offset": 24, + "end_col_offset": 53, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 78, + "link": "https://cwe.mitre.org/data/definitions/78.html" + }, + "issue_severity": "LOW", + "issue_text": "Starting a process with a partial executable path", + "line_number": 7886, + "line_range": [ + 7886 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b607_start_process_with_partial_path.html", + "test_id": "B607", + "test_name": "start_process_with_partial_path" + }, + { + "code": "7885 if sys.platform == \"darwin\":\n7886 subprocess.Popen([\"open\", p])\n7887 return\n", + "col_offset": 24, + "end_col_offset": 53, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 78, + "link": "https://cwe.mitre.org/data/definitions/78.html" + }, + "issue_severity": "LOW", + "issue_text": "subprocess call - check for execution of untrusted input.", + "line_number": 7886, + "line_range": [ + 7886 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b603_subprocess_without_shell_equals_true.html", + "test_id": "B603", + "test_name": "subprocess_without_shell_equals_true" + }, + { + "code": "7887 return\n7888 subprocess.Popen([\"xdg-open\", p])\n7889 except Exception as e:\n", + "col_offset": 20, + "end_col_offset": 53, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 78, + "link": "https://cwe.mitre.org/data/definitions/78.html" + }, + "issue_severity": "LOW", + "issue_text": "Starting a process with a partial executable path", + "line_number": 7888, + "line_range": [ + 7888 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b607_start_process_with_partial_path.html", + "test_id": "B607", + "test_name": "start_process_with_partial_path" + }, + { + "code": "7887 return\n7888 subprocess.Popen([\"xdg-open\", p])\n7889 except Exception as e:\n", + "col_offset": 20, + "end_col_offset": 53, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 78, + "link": "https://cwe.mitre.org/data/definitions/78.html" + }, + "issue_severity": "LOW", + "issue_text": "subprocess call - check for execution of untrusted input.", + "line_number": 7888, + "line_range": [ + 7888 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b603_subprocess_without_shell_equals_true.html", + "test_id": "B603", + "test_name": "subprocess_without_shell_equals_true" + }, + { + "code": "7898 messagebox.showinfo(title, \"Copied to clipboard.\")\n7899 except Exception:\n7900 pass\n7901 \n", + "col_offset": 16, + "end_col_offset": 24, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 7899, + "line_range": [ + 7899, + 7900 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "8007 pub_box.insert(\"1.0\", txt or \"\")\n8008 except Exception:\n8009 pass\n8010 \n", + "col_offset": 16, + "end_col_offset": 24, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 8008, + "line_range": [ + 8008, + 8009 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "8136 shutil.copy2(secret_path, backup_secret)\n8137 except Exception:\n8138 pass # Non-critical backup failure\n8139 \n", + "col_offset": 16, + "end_col_offset": 24, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 8137, + "line_range": [ + 8137, + 8138 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "8204 ask = data[\"results\"][0].get(\"ask_inclusive_of_buy_spread\")\n8205 except Exception:\n8206 pass\n8207 \n", + "col_offset": 20, + "end_col_offset": 28, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 8205, + "line_range": [ + 8205, + 8206 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "8308 shutil.copy2(secret_path, f\"{secret_path}.bak_{ts}\")\n8309 except Exception:\n8310 pass\n8311 \n", + "col_offset": 16, + "end_col_offset": 24, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 8309, + "line_range": [ + 8309, + 8310 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "8530 dca_levels.append(float(tok))\n8531 except Exception:\n8532 pass\n8533 if not dca_levels:\n", + "col_offset": 20, + "end_col_offset": 28, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 8531, + "line_range": [ + 8531, + 8532 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "8667 self._api_server.stop_server()\n8668 except Exception:\n8669 pass\n8670 self._api_server = None\n", + "col_offset": 24, + "end_col_offset": 32, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 8668, + "line_range": [ + 8668, + 8669 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "8716 shutil.copy2(src_trainer_path, dst_trainer_path)\n8717 except Exception:\n8718 pass\n8719 \n", + "col_offset": 16, + "end_col_offset": 24, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 8717, + "line_range": [ + 8717, + 8718 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "8896 )\n8897 except Exception:\n8898 pass\n8899 \n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 8897, + "line_range": [ + 8897, + 8898 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "8914 self.stop_all_scripts()\n8915 except Exception:\n8916 pass\n8917 self.destroy()\n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/pt_hub.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 8915, + "line_range": [ + 8915, + 8916 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "212 self.signal_bar.configure(style=style)\n213 except:\n214 pass # Style might not exist\n215 \n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/pt_hub_gui_components.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 213, + "line_range": [ + 213, + 214 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "163 position_size = risk_manager.calculate_position_size(50000, 0.02)\n164 assert position_size > 0, \"Position size calculation failed\"\n165 \n", + "col_offset": 12, + "end_col_offset": 72, + "filename": "app/pt_integration.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Use of assert detected. The enclosed code will be removed when compiling to optimised byte code.", + "line_number": 164, + "line_range": [ + 164 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b101_assert_used.html", + "test_id": "B101", + "test_name": "assert_used" + }, + { + "code": "186 monthly_costs = cost_manager.calculate_monthly_costs()\n187 assert monthly_costs.total_monthly > 0, \"Cost calculation failed\"\n188 \n", + "col_offset": 12, + "end_col_offset": 77, + "filename": "app/pt_integration.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Use of assert detected. The enclosed code will be removed when compiling to optimised byte code.", + "line_number": 187, + "line_range": [ + 187 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b101_assert_used.html", + "test_id": "B101", + "test_name": "assert_used" + }, + { + "code": "209 amount = InputValidator.validate_amount(1000.0)\n210 assert symbol == \"BTC\", \"Symbol validation failed\"\n211 assert amount > 0, \"Amount validation failed\"\n", + "col_offset": 12, + "end_col_offset": 62, + "filename": "app/pt_integration.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Use of assert detected. The enclosed code will be removed when compiling to optimised byte code.", + "line_number": 210, + "line_range": [ + 210 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b101_assert_used.html", + "test_id": "B101", + "test_name": "assert_used" + }, + { + "code": "210 assert symbol == \"BTC\", \"Symbol validation failed\"\n211 assert amount > 0, \"Amount validation failed\"\n212 \n", + "col_offset": 12, + "end_col_offset": 57, + "filename": "app/pt_integration.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Use of assert detected. The enclosed code will be removed when compiling to optimised byte code.", + "line_number": 211, + "line_range": [ + 211 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b101_assert_used.html", + "test_id": "B101", + "test_name": "assert_used" + }, + { + "code": "305 max_position = portfolio_value * risk_percent\n306 assert (\n307 position_size <= max_position\n308 ), f\"Position size too large for {scenario}\"\n309 \n", + "col_offset": 16, + "end_col_offset": 60, + "filename": "app/pt_integration.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Use of assert detected. The enclosed code will be removed when compiling to optimised byte code.", + "line_number": 306, + "line_range": [ + 306, + 307, + 308 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b101_assert_used.html", + "test_id": "B101", + "test_name": "assert_used" + }, + { + "code": "343 # Validate cost progression\n344 assert monthly_costs.total_monthly > 0, f\"Invalid costs for {tier.name}\"\n345 \n", + "col_offset": 16, + "end_col_offset": 88, + "filename": "app/pt_integration.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Use of assert detected. The enclosed code will be removed when compiling to optimised byte code.", + "line_number": 344, + "line_range": [ + 344 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b101_assert_used.html", + "test_id": "B101", + "test_name": "assert_used" + }, + { + "code": "377 result = InputValidator.validate_crypto_symbol(value)\n378 assert result == value\n379 elif test_type == \"trade amount\":\n", + "col_offset": 20, + "end_col_offset": 42, + "filename": "app/pt_integration.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Use of assert detected. The enclosed code will be removed when compiling to optimised byte code.", + "line_number": 378, + "line_range": [ + 378 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b101_assert_used.html", + "test_id": "B101", + "test_name": "assert_used" + }, + { + "code": "380 result = InputValidator.validate_amount(value)\n381 assert result == value\n382 \n", + "col_offset": 20, + "end_col_offset": 42, + "filename": "app/pt_integration.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Use of assert detected. The enclosed code will be removed when compiling to optimised byte code.", + "line_number": 381, + "line_range": [ + 381 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b101_assert_used.html", + "test_id": "B101", + "test_name": "assert_used" + }, + { + "code": "412 \n413 assert duration is not None and duration >= 100, \"Timer not working\"\n414 \n", + "col_offset": 12, + "end_col_offset": 80, + "filename": "app/pt_integration.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Use of assert detected. The enclosed code will be removed when compiling to optimised byte code.", + "line_number": 413, + "line_range": [ + 413 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b101_assert_used.html", + "test_id": "B101", + "test_name": "assert_used" + }, + { + "code": "417 summary = perf_monitor.get_metric_summary(\"test_metric\")\n418 assert summary is not None, \"Metric collection failed\"\n419 \n", + "col_offset": 12, + "end_col_offset": 66, + "filename": "app/pt_integration.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Use of assert detected. The enclosed code will be removed when compiling to optimised byte code.", + "line_number": 418, + "line_range": [ + 418 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b101_assert_used.html", + "test_id": "B101", + "test_name": "assert_used" + }, + { + "code": "443 config_manager = ConfigurationManager()\n444 assert config_manager is not None, \"Config manager creation failed\"\n445 \n", + "col_offset": 12, + "end_col_offset": 79, + "filename": "app/pt_integration.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Use of assert detected. The enclosed code will be removed when compiling to optimised byte code.", + "line_number": 444, + "line_range": [ + 444 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b101_assert_used.html", + "test_id": "B101", + "test_name": "assert_used" + }, + { + "code": "486 \n487 assert error_count == len(\n488 invalid_tests\n489 ), \"Error handling not working properly\"\n490 \n", + "col_offset": 12, + "end_col_offset": 52, + "filename": "app/pt_integration.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Use of assert detected. The enclosed code will be removed when compiling to optimised byte code.", + "line_number": 487, + "line_range": [ + 487, + 488, + 489 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b101_assert_used.html", + "test_id": "B101", + "test_name": "assert_used" + }, + { + "code": "527 account = PaperTradingAccount(initial_balance=Decimal(\"10000\"))\n528 assert float(account.cash_balance) == 10000.0\n529 self._add_result(\n", + "col_offset": 12, + "end_col_offset": 57, + "filename": "app/pt_integration.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Use of assert detected. The enclosed code will be removed when compiling to optimised byte code.", + "line_number": 528, + "line_range": [ + 528 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b101_assert_used.html", + "test_id": "B101", + "test_name": "assert_used" + }, + { + "code": "585 summary = account.get_account_summary()\n586 assert \"total_value\" in summary\n587 assert \"positions\" in summary\n", + "col_offset": 12, + "end_col_offset": 43, + "filename": "app/pt_integration.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Use of assert detected. The enclosed code will be removed when compiling to optimised byte code.", + "line_number": 586, + "line_range": [ + 586 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b101_assert_used.html", + "test_id": "B101", + "test_name": "assert_used" + }, + { + "code": "586 assert \"total_value\" in summary\n587 assert \"positions\" in summary\n588 assert summary[\"total_trades\"] >= 0\n", + "col_offset": 12, + "end_col_offset": 41, + "filename": "app/pt_integration.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Use of assert detected. The enclosed code will be removed when compiling to optimised byte code.", + "line_number": 587, + "line_range": [ + 587 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b101_assert_used.html", + "test_id": "B101", + "test_name": "assert_used" + }, + { + "code": "587 assert \"positions\" in summary\n588 assert summary[\"total_trades\"] >= 0\n589 self._add_result(\n", + "col_offset": 12, + "end_col_offset": 47, + "filename": "app/pt_integration.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Use of assert detected. The enclosed code will be removed when compiling to optimised byte code.", + "line_number": 588, + "line_range": [ + 588 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b101_assert_used.html", + "test_id": "B101", + "test_name": "assert_used" + }, + { + "code": "639 # Count results by status\n640 status_counts = {\"PASS\": 0, \"FAIL\": 0, \"WARNING\": 0, \"SKIP\": 0}\n641 for result in self.test_results:\n", + "col_offset": 25, + "end_col_offset": 31, + "filename": "app/pt_integration.py", + "issue_confidence": "MEDIUM", + "issue_cwe": { + "id": 259, + "link": "https://cwe.mitre.org/data/definitions/259.html" + }, + "issue_severity": "LOW", + "issue_text": "Possible hardcoded password: '0'", + "line_number": 640, + "line_range": [ + 640 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b105_hardcoded_password_string.html", + "test_id": "B105", + "test_name": "hardcoded_password_string" + }, + { + "code": "162 \"username\": \"\",\n163 \"password\": \"\",\n164 },\n165 },\n166 }\n167 self._save_config(default_config)\n168 return default_config\n169 except Exception as e:\n", + "col_offset": 28, + "end_col_offset": 38, + "filename": "app/pt_live_monitor.py", + "issue_confidence": "MEDIUM", + "issue_cwe": { + "id": 259, + "link": "https://cwe.mitre.org/data/definitions/259.html" + }, + "issue_severity": "LOW", + "issue_text": "Possible hardcoded password: ''", + "line_number": 163, + "line_range": [ + 159, + 160, + 161, + 162, + 163, + 164 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b105_hardcoded_password_string.html", + "test_id": "B105", + "test_name": "hardcoded_password_string" + }, + { + "code": "366 continue\n367 except Exception:\n368 continue\n369 \n", + "col_offset": 12, + "end_col_offset": 24, + "filename": "app/pt_logging_system.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Continue detected.", + "line_number": 367, + "line_range": [ + 367, + 368 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b112_try_except_continue.html", + "test_id": "B112", + "test_name": "try_except_continue" + }, + { + "code": "404 continue\n405 except Exception:\n406 continue\n407 \n", + "col_offset": 12, + "end_col_offset": 24, + "filename": "app/pt_logging_system.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Continue detected.", + "line_number": 405, + "line_range": [ + 405, + 406 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b112_try_except_continue.html", + "test_id": "B112", + "test_name": "try_except_continue" + }, + { + "code": "42 \"\"\"Clear the terminal screen\"\"\"\n43 os.system(\"cls\" if os.name == \"nt\" else \"clear\")\n44 \n", + "col_offset": 8, + "end_col_offset": 56, + "filename": "app/pt_monitor.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 78, + "link": "https://cwe.mitre.org/data/definitions/78.html" + }, + "issue_severity": "HIGH", + "issue_text": "Starting a process with a shell, possible injection detected, security issue.", + "line_number": 43, + "line_range": [ + 43 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b605_start_process_with_a_shell.html", + "test_id": "B605", + "test_name": "start_process_with_a_shell" + }, + { + "code": "158 \n159 def update_exchange_credentials(\n160 self, exchange_name: str, api_key: str, api_secret: str, passphrase: str = \"\"\n161 ):\n162 \"\"\"Update credentials for an exchange\"\"\"\n163 if not self.config:\n164 return\n165 \n166 for ex in self.config.exchanges:\n167 if ex.exchange_type == exchange_name:\n168 ex.api_key = api_key\n169 ex.api_secret = api_secret\n170 ex.passphrase = passphrase\n171 break\n172 \n173 self.save_config(self.config)\n174 \n", + "col_offset": 4, + "end_col_offset": 37, + "filename": "app/pt_multi_exchange.py", + "issue_confidence": "MEDIUM", + "issue_cwe": { + "id": 259, + "link": "https://cwe.mitre.org/data/definitions/259.html" + }, + "issue_severity": "LOW", + "issue_text": "Possible hardcoded password: ''", + "line_number": 159, + "line_range": [ + 159, + 160, + 161, + 162, + 163, + 164, + 165, + 166, + 167, + 168, + 169, + 170, + 171, + 172, + 173 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b107_hardcoded_password_default.html", + "test_id": "B107", + "test_name": "hardcoded_password_default" + }, + { + "code": "506 # Load best model\n507 self.model.load_state_dict(torch.load(\"data/best_model.pth\"))\n508 \n", + "col_offset": 35, + "end_col_offset": 68, + "filename": "app/pt_neural_network.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 502, + "link": "https://cwe.mitre.org/data/definitions/502.html" + }, + "issue_severity": "MEDIUM", + "issue_text": "Use of unsafe PyTorch load", + "line_number": 507, + "line_range": [ + 507 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b614_pytorch_load.html", + "test_id": "B614", + "test_name": "pytorch_load" + }, + { + "code": "583 \"\"\"Load a previously trained model\"\"\"\n584 checkpoint = torch.load(filepath, map_location=self.device)\n585 \n", + "col_offset": 21, + "end_col_offset": 67, + "filename": "app/pt_neural_network.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 502, + "link": "https://cwe.mitre.org/data/definitions/502.html" + }, + "issue_severity": "MEDIUM", + "issue_text": "Use of unsafe PyTorch load", + "line_number": 584, + "line_range": [ + 584 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b614_pytorch_load.html", + "test_id": "B614", + "test_name": "pytorch_load" + }, + { + "code": "440 )\n441 model.load_state_dict(torch.load(model_path, map_location=\"cpu\"))\n442 self.models[symbol] = model\n", + "col_offset": 38, + "end_col_offset": 80, + "filename": "app/pt_neural_processor.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 502, + "link": "https://cwe.mitre.org/data/definitions/502.html" + }, + "issue_severity": "MEDIUM", + "issue_text": "Use of unsafe PyTorch load", + "line_number": 441, + "line_range": [ + 441 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b614_pytorch_load.html", + "test_id": "B614", + "test_name": "pytorch_load" + }, + { + "code": "100 if opener is None:\n101 with urllib.request.urlopen(url, timeout=timeout) as resp:\n102 payload = json.loads(resp.read().decode(\"utf-8\"))\n", + "col_offset": 17, + "end_col_offset": 61, + "filename": "app/pt_paper_mode.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 22, + "link": "https://cwe.mitre.org/data/definitions/22.html" + }, + "issue_severity": "MEDIUM", + "issue_text": "Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.", + "line_number": 101, + "line_range": [ + 101 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/blacklists/blacklist_calls.html#b310-urllib-urlopen", + "test_id": "B310", + "test_name": "blacklist" + }, + { + "code": "164 current = self.current_prices[symbol]\n165 change_percent = Decimal(str(random.uniform(-0.005, 0.005)))\n166 new_price = current * (Decimal(\"1\") + change_percent)\n", + "col_offset": 37, + "end_col_offset": 66, + "filename": "app/pt_paper_trading.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 330, + "link": "https://cwe.mitre.org/data/definitions/330.html" + }, + "issue_severity": "LOW", + "issue_text": "Standard pseudo-random generators are not suitable for security/cryptographic purposes.", + "line_number": 165, + "line_range": [ + 165 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/blacklists/blacklist_calls.html#b311-random", + "test_id": "B311", + "test_name": "blacklist" + }, + { + "code": "181 \"price\": float(price),\n182 \"volume\": random.randint(100, 10000), # Simulated volume\n183 }\n", + "col_offset": 26, + "end_col_offset": 52, + "filename": "app/pt_paper_trading.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 330, + "link": "https://cwe.mitre.org/data/definitions/330.html" + }, + "issue_severity": "LOW", + "issue_text": "Standard pseudo-random generators are not suitable for security/cryptographic purposes.", + "line_number": 182, + "line_range": [ + 182 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/blacklists/blacklist_calls.html#b311-random", + "test_id": "B311", + "test_name": "blacklist" + }, + { + "code": "6 import os\n7 import subprocess\n8 import threading\n", + "col_offset": 0, + "end_col_offset": 17, + "filename": "app/pt_process_manager.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 78, + "link": "https://cwe.mitre.org/data/definitions/78.html" + }, + "issue_severity": "LOW", + "issue_text": "Consider possible security implications associated with the subprocess module.", + "line_number": 7, + "line_range": [ + 7 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/blacklists/blacklist_imports.html#b404-import-subprocess", + "test_id": "B404", + "test_name": "blacklist" + }, + { + "code": "91 # Start process\n92 self.process = subprocess.Popen(\n93 cmd,\n94 stdout=subprocess.PIPE,\n95 stderr=subprocess.PIPE,\n96 text=True,\n97 cwd=working_dir,\n98 env=env,\n99 bufsize=1, # Line buffered\n100 universal_newlines=True,\n101 )\n102 \n", + "col_offset": 31, + "end_col_offset": 17, + "filename": "app/pt_process_manager.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 78, + "link": "https://cwe.mitre.org/data/definitions/78.html" + }, + "issue_severity": "LOW", + "issue_text": "subprocess call - check for execution of untrusted input.", + "line_number": 92, + "line_range": [ + 92, + 93, + 94, + 95, + 96, + 97, + 98, + 99, + 100, + 101 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b603_subprocess_without_shell_equals_true.html", + "test_id": "B603", + "test_name": "subprocess_without_shell_equals_true" + }, + { + "code": "248 stream.close()\n249 except Exception:\n250 pass\n251 \n", + "col_offset": 12, + "end_col_offset": 20, + "filename": "app/pt_process_manager.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 249, + "line_range": [ + 249, + 250 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "298 self.process.stderr.close()\n299 except Exception:\n300 pass\n301 \n", + "col_offset": 12, + "end_col_offset": 20, + "filename": "app/pt_process_manager.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 299, + "line_range": [ + 299, + 300 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "341 callback(\"started\" if success else \"failed\", log_proc)\n342 except Exception:\n343 pass\n344 \n", + "col_offset": 16, + "end_col_offset": 24, + "filename": "app/pt_process_manager.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 342, + "line_range": [ + 342, + 343 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "359 callback(\"stopped\", log_proc)\n360 except Exception:\n361 pass\n362 \n", + "col_offset": 16, + "end_col_offset": 24, + "filename": "app/pt_process_manager.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 360, + "line_range": [ + 360, + 361 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "548 callback(log_line)\n549 except Exception:\n550 pass\n551 \n", + "col_offset": 36, + "end_col_offset": 44, + "filename": "app/pt_process_manager.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 549, + "line_range": [ + 549, + 550 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "659 os.unlink(test_script_path)\n660 except Exception:\n661 pass\n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/pt_process_manager.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 660, + "line_range": [ + 660, + 661 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "8 import re\n9 import subprocess\n10 import sys\n", + "col_offset": 0, + "end_col_offset": 17, + "filename": "app/pt_security.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 78, + "link": "https://cwe.mitre.org/data/definitions/78.html" + }, + "issue_severity": "LOW", + "issue_text": "Consider possible security implications associated with the subprocess module.", + "line_number": 9, + "line_range": [ + 9 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/blacklists/blacklist_imports.html#b404-import-subprocess", + "test_id": "B404", + "test_name": "blacklist" + }, + { + "code": "75 requirements.append((package, None))\n76 except Exception:\n77 pass\n78 \n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/pt_security.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 76, + "line_range": [ + 76, + 77 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "221 # Use pip list to get installed packages\n222 result = subprocess.run(\n223 [sys.executable, \"-m\", \"pip\", \"list\", \"--format=json\"],\n224 capture_output=True,\n225 text=True,\n226 timeout=30,\n227 )\n228 if result.returncode == 0:\n", + "col_offset": 21, + "end_col_offset": 13, + "filename": "app/pt_security.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 78, + "link": "https://cwe.mitre.org/data/definitions/78.html" + }, + "issue_severity": "LOW", + "issue_text": "subprocess call - check for execution of untrusted input.", + "line_number": 222, + "line_range": [ + 222, + 223, + 224, + 225, + 226, + 227 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b603_subprocess_without_shell_equals_true.html", + "test_id": "B603", + "test_name": "subprocess_without_shell_equals_true" + }, + { + "code": "234 installed[name] = version\n235 except Exception:\n236 pass\n237 \n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/pt_security.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 235, + "line_range": [ + 235, + 236 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "602 os.unlink(backup_path)\n603 except Exception:\n604 pass\n605 \n", + "col_offset": 16, + "end_col_offset": 24, + "filename": "app/pt_settings_manager.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 603, + "line_range": [ + 603, + 604 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "605 \n606 except Exception:\n607 pass\n608 \n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/pt_settings_manager.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 606, + "line_range": [ + 606, + 607 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "691 print(\"Test file cleaned up.\")\n692 except Exception:\n693 pass\n", + "col_offset": 4, + "end_col_offset": 12, + "filename": "app/pt_settings_manager.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 692, + "line_range": [ + 692, + 693 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "75 # Occasionally change trend\n76 if random.random() < 0.05:\n77 self.trend = random.gauss(0, 0.01)\n", + "col_offset": 11, + "end_col_offset": 26, + "filename": "app/pt_testing.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 330, + "link": "https://cwe.mitre.org/data/definitions/330.html" + }, + "issue_severity": "LOW", + "issue_text": "Standard pseudo-random generators are not suitable for security/cryptographic purposes.", + "line_number": 76, + "line_range": [ + 76 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/blacklists/blacklist_calls.html#b311-random", + "test_id": "B311", + "test_name": "blacklist" + }, + { + "code": "90 # Generate intra-period price movements\n91 for _ in range(random.randint(5, 20)):\n92 price = self.next_price()\n", + "col_offset": 27, + "end_col_offset": 48, + "filename": "app/pt_testing.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 330, + "link": "https://cwe.mitre.org/data/definitions/330.html" + }, + "issue_severity": "LOW", + "issue_text": "Standard pseudo-random generators are not suitable for security/cryptographic purposes.", + "line_number": 91, + "line_range": [ + 91 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/blacklists/blacklist_calls.html#b311-random", + "test_id": "B311", + "test_name": "blacklist" + }, + { + "code": "96 close = self.current_price\n97 volume = random.uniform(100, 10000)\n98 \n", + "col_offset": 21, + "end_col_offset": 47, + "filename": "app/pt_testing.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 330, + "link": "https://cwe.mitre.org/data/definitions/330.html" + }, + "issue_severity": "LOW", + "issue_text": "Standard pseudo-random generators are not suitable for security/cryptographic purposes.", + "line_number": 97, + "line_range": [ + 97 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/blacklists/blacklist_calls.html#b311-random", + "test_id": "B311", + "test_name": "blacklist" + }, + { + "code": "223 \"\"\"Randomly raise API errors based on error rate.\"\"\"\n224 if random.random() < self.error_rate:\n225 raise APIError(\"Simulated API error for testing\")\n", + "col_offset": 11, + "end_col_offset": 26, + "filename": "app/pt_testing.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 330, + "link": "https://cwe.mitre.org/data/definitions/330.html" + }, + "issue_severity": "LOW", + "issue_text": "Standard pseudo-random generators are not suitable for security/cryptographic purposes.", + "line_number": 224, + "line_range": [ + 224 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/blacklists/blacklist_calls.html#b311-random", + "test_id": "B311", + "test_name": "blacklist" + }, + { + "code": "346 \"close\": market_price,\n347 \"volume\": random.uniform(100, 1000),\n348 }\n", + "col_offset": 34, + "end_col_offset": 59, + "filename": "app/pt_testing.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 330, + "link": "https://cwe.mitre.org/data/definitions/330.html" + }, + "issue_severity": "LOW", + "issue_text": "Standard pseudo-random generators are not suitable for security/cryptographic purposes.", + "line_number": 347, + "line_range": [ + 347 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/blacklists/blacklist_calls.html#b311-random", + "test_id": "B311", + "test_name": "blacklist" + }, + { + "code": "441 # Test symbol validation\n442 assert validator.validate_symbol(\"BTC-USD\") == True\n443 assert validator.validate_symbol(\"invalid\") == False\n", + "col_offset": 12, + "end_col_offset": 63, + "filename": "app/pt_testing.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Use of assert detected. The enclosed code will be removed when compiling to optimised byte code.", + "line_number": 442, + "line_range": [ + 442 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b101_assert_used.html", + "test_id": "B101", + "test_name": "assert_used" + }, + { + "code": "442 assert validator.validate_symbol(\"BTC-USD\") == True\n443 assert validator.validate_symbol(\"invalid\") == False\n444 assert validator.validate_symbol(\"\") == False\n", + "col_offset": 12, + "end_col_offset": 64, + "filename": "app/pt_testing.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Use of assert detected. The enclosed code will be removed when compiling to optimised byte code.", + "line_number": 443, + "line_range": [ + 443 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b101_assert_used.html", + "test_id": "B101", + "test_name": "assert_used" + }, + { + "code": "443 assert validator.validate_symbol(\"invalid\") == False\n444 assert validator.validate_symbol(\"\") == False\n445 \n", + "col_offset": 12, + "end_col_offset": 57, + "filename": "app/pt_testing.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Use of assert detected. The enclosed code will be removed when compiling to optimised byte code.", + "line_number": 444, + "line_range": [ + 444 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b101_assert_used.html", + "test_id": "B101", + "test_name": "assert_used" + }, + { + "code": "446 # Test timeframe validation\n447 assert validator.validate_timeframe(\"1h\") == True\n448 assert validator.validate_timeframe(\"5m\") == True\n", + "col_offset": 12, + "end_col_offset": 61, + "filename": "app/pt_testing.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Use of assert detected. The enclosed code will be removed when compiling to optimised byte code.", + "line_number": 447, + "line_range": [ + 447 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b101_assert_used.html", + "test_id": "B101", + "test_name": "assert_used" + }, + { + "code": "447 assert validator.validate_timeframe(\"1h\") == True\n448 assert validator.validate_timeframe(\"5m\") == True\n449 assert validator.validate_timeframe(\"invalid\") == False\n", + "col_offset": 12, + "end_col_offset": 61, + "filename": "app/pt_testing.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Use of assert detected. The enclosed code will be removed when compiling to optimised byte code.", + "line_number": 448, + "line_range": [ + 448 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b101_assert_used.html", + "test_id": "B101", + "test_name": "assert_used" + }, + { + "code": "448 assert validator.validate_timeframe(\"5m\") == True\n449 assert validator.validate_timeframe(\"invalid\") == False\n450 \n", + "col_offset": 12, + "end_col_offset": 67, + "filename": "app/pt_testing.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Use of assert detected. The enclosed code will be removed when compiling to optimised byte code.", + "line_number": 449, + "line_range": [ + 449 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b101_assert_used.html", + "test_id": "B101", + "test_name": "assert_used" + }, + { + "code": "451 # Test amount validation\n452 assert validator.validate_amount(100.0) == True\n453 assert validator.validate_amount(-10.0) == False\n", + "col_offset": 12, + "end_col_offset": 59, + "filename": "app/pt_testing.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Use of assert detected. The enclosed code will be removed when compiling to optimised byte code.", + "line_number": 452, + "line_range": [ + 452 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b101_assert_used.html", + "test_id": "B101", + "test_name": "assert_used" + }, + { + "code": "452 assert validator.validate_amount(100.0) == True\n453 assert validator.validate_amount(-10.0) == False\n454 assert validator.validate_amount(\"invalid\") == False\n", + "col_offset": 12, + "end_col_offset": 60, + "filename": "app/pt_testing.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Use of assert detected. The enclosed code will be removed when compiling to optimised byte code.", + "line_number": 453, + "line_range": [ + 453 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b101_assert_used.html", + "test_id": "B101", + "test_name": "assert_used" + }, + { + "code": "453 assert validator.validate_amount(-10.0) == False\n454 assert validator.validate_amount(\"invalid\") == False\n455 \n", + "col_offset": 12, + "end_col_offset": 64, + "filename": "app/pt_testing.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Use of assert detected. The enclosed code will be removed when compiling to optimised byte code.", + "line_number": 454, + "line_range": [ + 454 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b101_assert_used.html", + "test_id": "B101", + "test_name": "assert_used" + }, + { + "code": "488 result = SafeFileHandler.read_file(temp_path)\n489 assert result.success == True\n490 assert result.data == test_content\n", + "col_offset": 12, + "end_col_offset": 41, + "filename": "app/pt_testing.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Use of assert detected. The enclosed code will be removed when compiling to optimised byte code.", + "line_number": 489, + "line_range": [ + 489 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b101_assert_used.html", + "test_id": "B101", + "test_name": "assert_used" + }, + { + "code": "489 assert result.success == True\n490 assert result.data == test_content\n491 \n", + "col_offset": 12, + "end_col_offset": 46, + "filename": "app/pt_testing.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Use of assert detected. The enclosed code will be removed when compiling to optimised byte code.", + "line_number": 490, + "line_range": [ + 490 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b101_assert_used.html", + "test_id": "B101", + "test_name": "assert_used" + }, + { + "code": "493 result = SafeFileHandler.read_file(\"non_existent_file.txt\")\n494 assert result.success == False\n495 assert result.error is not None\n", + "col_offset": 12, + "end_col_offset": 42, + "filename": "app/pt_testing.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Use of assert detected. The enclosed code will be removed when compiling to optimised byte code.", + "line_number": 494, + "line_range": [ + 494 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b101_assert_used.html", + "test_id": "B101", + "test_name": "assert_used" + }, + { + "code": "494 assert result.success == False\n495 assert result.error is not None\n496 \n", + "col_offset": 12, + "end_col_offset": 43, + "filename": "app/pt_testing.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Use of assert detected. The enclosed code will be removed when compiling to optimised byte code.", + "line_number": 495, + "line_range": [ + 495 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b101_assert_used.html", + "test_id": "B101", + "test_name": "assert_used" + }, + { + "code": "530 \n531 assert duration is not None\n532 assert duration >= 100 # Should be at least 100ms\n", + "col_offset": 12, + "end_col_offset": 39, + "filename": "app/pt_testing.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Use of assert detected. The enclosed code will be removed when compiling to optimised byte code.", + "line_number": 531, + "line_range": [ + 531 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b101_assert_used.html", + "test_id": "B101", + "test_name": "assert_used" + }, + { + "code": "531 assert duration is not None\n532 assert duration >= 100 # Should be at least 100ms\n533 \n", + "col_offset": 12, + "end_col_offset": 34, + "filename": "app/pt_testing.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Use of assert detected. The enclosed code will be removed when compiling to optimised byte code.", + "line_number": 532, + "line_range": [ + 532 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b101_assert_used.html", + "test_id": "B101", + "test_name": "assert_used" + }, + { + "code": "535 monitor.increment_counter(\"test_counter\", 5)\n536 assert monitor.get_counter(\"test_counter\") == 5\n537 \n", + "col_offset": 12, + "end_col_offset": 59, + "filename": "app/pt_testing.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Use of assert detected. The enclosed code will be removed when compiling to optimised byte code.", + "line_number": 536, + "line_range": [ + 536 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b101_assert_used.html", + "test_id": "B101", + "test_name": "assert_used" + }, + { + "code": "540 summary = monitor.get_metric_summary(\"test_metric\")\n541 assert summary is not None\n542 assert summary[\"latest\"] == 42.0\n", + "col_offset": 12, + "end_col_offset": 38, + "filename": "app/pt_testing.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Use of assert detected. The enclosed code will be removed when compiling to optimised byte code.", + "line_number": 541, + "line_range": [ + 541 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b101_assert_used.html", + "test_id": "B101", + "test_name": "assert_used" + }, + { + "code": "541 assert summary is not None\n542 assert summary[\"latest\"] == 42.0\n543 \n", + "col_offset": 12, + "end_col_offset": 44, + "filename": "app/pt_testing.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Use of assert detected. The enclosed code will be removed when compiling to optimised byte code.", + "line_number": 542, + "line_range": [ + 542 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b101_assert_used.html", + "test_id": "B101", + "test_name": "assert_used" + }, + { + "code": "78 self.root.configure(bg=self.config.get_color(\"bg\"))\n79 except Exception:\n80 pass\n81 \n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/pt_theme_manager.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 79, + "line_range": [ + 79, + 80 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "92 self.root.option_add(\"*Text.selectForeground\", colors[\"select_fg\"])\n93 except Exception:\n94 pass\n95 \n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/pt_theme_manager.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 93, + "line_range": [ + 93, + 94 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "101 self.root.option_add(\"*Listbox.selectForeground\", colors[\"select_fg\"])\n102 except Exception:\n103 pass\n104 \n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/pt_theme_manager.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 102, + "line_range": [ + 102, + 103 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "110 self.root.option_add(\"*Menu.activeForeground\", colors[\"select_fg\"])\n111 except Exception:\n112 pass\n113 \n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/pt_theme_manager.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 111, + "line_range": [ + 111, + 112 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "120 self.style.theme_use(\"clam\")\n121 except Exception:\n122 pass\n123 \n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/pt_theme_manager.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 121, + "line_range": [ + 121, + 122 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "138 self.style.configure(\".\", background=colors[\"bg\"], foreground=colors[\"fg\"])\n139 except Exception:\n140 pass\n141 \n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/pt_theme_manager.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 139, + "line_range": [ + 139, + 140 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "151 )\n152 except Exception:\n153 pass\n154 \n", + "col_offset": 12, + "end_col_offset": 20, + "filename": "app/pt_theme_manager.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 152, + "line_range": [ + 152, + 153 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "167 )\n168 except Exception:\n169 pass\n170 \n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/pt_theme_manager.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 168, + "line_range": [ + 168, + 169 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "173 self.style.configure(\"TSeparator\", background=colors[\"border\"])\n174 except Exception:\n175 pass\n176 \n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/pt_theme_manager.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 174, + "line_range": [ + 174, + 175 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "179 self.style.configure(\"TPanedwindow\", background=colors[\"bg\"])\n180 except Exception:\n181 pass\n182 \n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/pt_theme_manager.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 180, + "line_range": [ + 180, + 181 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "195 )\n196 except Exception:\n197 pass\n198 \n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/pt_theme_manager.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 196, + "line_range": [ + 196, + 197 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "217 )\n218 except Exception:\n219 pass\n220 \n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/pt_theme_manager.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 218, + "line_range": [ + 218, + 219 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "252 )\n253 except Exception:\n254 pass\n255 \n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/pt_theme_manager.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 253, + "line_range": [ + 253, + 254 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "283 )\n284 except Exception:\n285 pass\n286 \n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/pt_theme_manager.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 284, + "line_range": [ + 284, + 285 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "303 )\n304 except Exception:\n305 pass\n306 \n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/pt_theme_manager.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 304, + "line_range": [ + 304, + 305 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "324 )\n325 except Exception:\n326 pass\n327 \n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/pt_theme_manager.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 325, + "line_range": [ + 325, + 326 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "336 )\n337 except Exception:\n338 pass\n339 \n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/pt_theme_manager.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 337, + "line_range": [ + 337, + 338 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "370 )\n371 except Exception:\n372 pass\n373 \n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/pt_theme_manager.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 371, + "line_range": [ + 371, + 372 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "386 )\n387 except Exception:\n388 pass\n389 \n", + "col_offset": 12, + "end_col_offset": 20, + "filename": "app/pt_theme_manager.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 387, + "line_range": [ + 387, + 388 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "257 try:\n258 os.execv(sys.executable, [sys.executable, os.path.abspath(__file__)])\n259 except Exception as e:\n", + "col_offset": 8, + "end_col_offset": 77, + "filename": "app/pt_thinker.py", + "issue_confidence": "MEDIUM", + "issue_cwe": { + "id": 78, + "link": "https://cwe.mitre.org/data/definitions/78.html" + }, + "issue_severity": "LOW", + "issue_text": "Starting a process without a shell.", + "line_number": 258, + "line_range": [ + 258 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b606_start_process_with_no_shell.html", + "test_id": "B606", + "test_name": "start_process_with_no_shell" + }, + { + "code": "438 os.makedirs(HUB_DIR, exist_ok=True)\n439 except Exception:\n440 pass\n441 \n", + "col_offset": 0, + "end_col_offset": 8, + "filename": "app/pt_thinker.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 439, + "line_range": [ + 439, + 440 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "450 os.replace(tmp, path)\n451 except Exception:\n452 pass\n453 \n", + "col_offset": 4, + "end_col_offset": 12, + "filename": "app/pt_thinker.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 451, + "line_range": [ + 451, + 452 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "544 _ready_coins.discard(sym)\n545 except Exception:\n546 pass\n547 try:\n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/pt_thinker.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 545, + "line_range": [ + 545, + 546 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "548 display_cache.pop(sym, None)\n549 except Exception:\n550 pass\n551 \n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/pt_thinker.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 549, + "line_range": [ + 549, + 550 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "555 os.makedirs(coin_folder(sym), exist_ok=True)\n556 except Exception:\n557 pass\n558 try:\n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/pt_thinker.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 556, + "line_range": [ + 556, + 557 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "559 display_cache[sym] = f\"{sym} (starting.)\"\n560 except Exception:\n561 pass\n562 try:\n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/pt_thinker.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 560, + "line_range": [ + 560, + 561 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "568 os.chdir(BASE_DIR)\n569 except Exception:\n570 pass\n571 \n", + "col_offset": 12, + "end_col_offset": 20, + "filename": "app/pt_thinker.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 569, + "line_range": [ + 569, + 570 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "656 f.write(\"0\")\n657 except Exception:\n658 pass\n659 try:\n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/pt_thinker.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 657, + "line_range": [ + 657, + 658 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "660 display_cache[sym] = sym + \" (NOT TRAINED / OUTDATED - run trainer)\"\n661 except Exception:\n662 pass\n663 try:\n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/pt_thinker.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 661, + "line_range": [ + 661, + 662 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "672 \n673 except Exception:\n674 pass\n675 return\n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/pt_thinker.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 673, + "line_range": [ + 673, + 674 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "741 break\n742 except Exception:\n743 continue\n744 \n", + "col_offset": 8, + "end_col_offset": 20, + "filename": "app/pt_thinker.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Continue detected.", + "line_number": 742, + "line_range": [ + 742, + 743 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b112_try_except_continue.html", + "test_id": "B112", + "test_name": "try_except_continue" + }, + { + "code": "1300 )\n1301 except:\n1302 pass\n1303 try:\n", + "col_offset": 12, + "end_col_offset": 20, + "filename": "app/pt_thinker.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 1301, + "line_range": [ + 1301, + 1302 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "1306 )\n1307 except:\n1308 pass\n1309 og_index += 1\n", + "col_offset": 12, + "end_col_offset": 20, + "filename": "app/pt_thinker.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 1307, + "line_range": [ + 1307, + 1308 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "131 out[sym] = sub\n132 except Exception:\n133 pass\n134 return out\n", + "col_offset": 4, + "end_col_offset": 12, + "filename": "app/pt_trader.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 132, + "line_range": [ + 132, + 133 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "367 os.replace(tmp, path)\n368 except Exception:\n369 pass\n370 \n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/pt_trader.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 368, + "line_range": [ + 368, + 369 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "374 f.write(json.dumps(obj) + \"\\n\")\n375 except Exception:\n376 pass\n377 \n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/pt_trader.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 375, + "line_range": [ + 375, + 376 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "392 return data\n393 except Exception:\n394 pass\n395 return {\n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/pt_trader.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 393, + "line_range": [ + 393, + 394 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "405 self._atomic_write_json(PNL_LEDGER_PATH, self._pnl_ledger)\n406 except Exception:\n407 pass\n408 \n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/pt_trader.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 406, + "line_range": [ + 406, + 407 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "421 obj = json.loads(line)\n422 except Exception:\n423 continue\n424 if str(obj.get(\"order_id\", \"\")).strip() == str(order_id).strip():\n", + "col_offset": 20, + "end_col_offset": 32, + "filename": "app/pt_trader.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Continue detected.", + "line_number": 422, + "line_range": [ + 422, + 423 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b112_try_except_continue.html", + "test_id": "B112", + "test_name": "try_except_continue" + }, + { + "code": "434 return float(acct.get(\"buying_power\", 0.0) or 0.0)\n435 except Exception:\n436 pass\n437 return 0.0\n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/pt_trader.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 435, + "line_range": [ + 435, + 436 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "446 return o\n447 except Exception:\n448 continue\n449 except Exception:\n", + "col_offset": 16, + "end_col_offset": 28, + "filename": "app/pt_trader.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Continue detected.", + "line_number": 447, + "line_range": [ + 447, + 448 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b112_try_except_continue.html", + "test_id": "B112", + "test_name": "try_except_continue" + }, + { + "code": "448 continue\n449 except Exception:\n450 pass\n451 return None\n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/pt_trader.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 449, + "line_range": [ + 449, + 450 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "465 total_notional += q * p\n466 except Exception:\n467 continue\n468 \n", + "col_offset": 16, + "end_col_offset": 28, + "filename": "app/pt_trader.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Continue detected.", + "line_number": 466, + "line_range": [ + 466, + 467 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b112_try_except_continue.html", + "test_id": "B112", + "test_name": "try_except_continue" + }, + { + "code": "488 break\n489 except Exception:\n490 continue\n491 \n", + "col_offset": 24, + "end_col_offset": 36, + "filename": "app/pt_trader.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Continue detected.", + "line_number": 489, + "line_range": [ + 489, + 490 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b112_try_except_continue.html", + "test_id": "B112", + "test_name": "try_except_continue" + }, + { + "code": "499 break\n500 except Exception:\n501 continue\n502 \n", + "col_offset": 24, + "end_col_offset": 36, + "filename": "app/pt_trader.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Continue detected.", + "line_number": 500, + "line_range": [ + 500, + 501 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b112_try_except_continue.html", + "test_id": "B112", + "test_name": "try_except_continue" + }, + { + "code": "594 \n595 except Exception:\n596 continue\n597 \n", + "col_offset": 20, + "end_col_offset": 32, + "filename": "app/pt_trader.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Continue detected.", + "line_number": 595, + "line_range": [ + 595, + 596 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b112_try_except_continue.html", + "test_id": "B112", + "test_name": "try_except_continue" + }, + { + "code": "600 \n601 except Exception:\n602 pass\n603 \n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/pt_trader.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 601, + "line_range": [ + 601, + 602 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "636 self._pnl_ledger.setdefault(\"pending_orders\", {})\n637 except Exception:\n638 pass\n639 \n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/pt_trader.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 637, + "line_range": [ + 637, + 638 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "713 \n714 except Exception:\n715 pass\n716 \n", + "col_offset": 16, + "end_col_offset": 24, + "filename": "app/pt_trader.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 714, + "line_range": [ + 714, + 715 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "882 vals.append(float(p))\n883 except Exception:\n884 continue\n885 \n", + "col_offset": 16, + "end_col_offset": 28, + "filename": "app/pt_trader.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Continue detected.", + "line_number": 883, + "line_range": [ + 883, + 884 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b112_try_except_continue.html", + "test_id": "B112", + "test_name": "try_except_continue" + }, + { + "code": "1016 obj = json.loads(line)\n1017 except Exception:\n1018 continue\n1019 \n", + "col_offset": 20, + "end_col_offset": 32, + "filename": "app/pt_trader.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Continue detected.", + "line_number": 1017, + "line_range": [ + 1017, + 1018 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b112_try_except_continue.html", + "test_id": "B112", + "test_name": "try_except_continue" + }, + { + "code": "1029 ts_f = float(ts)\n1030 except Exception:\n1031 continue\n1032 \n", + "col_offset": 20, + "end_col_offset": 32, + "filename": "app/pt_trader.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Continue detected.", + "line_number": 1030, + "line_range": [ + 1030, + 1031 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b112_try_except_continue.html", + "test_id": "B112", + "test_name": "try_except_continue" + }, + { + "code": "1303 }\n1304 except Exception:\n1305 pass\n1306 else:\n", + "col_offset": 16, + "end_col_offset": 24, + "filename": "app/pt_trader.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 1304, + "line_range": [ + 1304, + 1305 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "1417 self._save_pnl_ledger()\n1418 except Exception:\n1419 pass\n1420 \n", + "col_offset": 20, + "end_col_offset": 28, + "filename": "app/pt_trader.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 1418, + "line_range": [ + 1418, + 1419 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "1435 self._save_pnl_ledger()\n1436 except Exception:\n1437 pass\n1438 return None\n", + "col_offset": 28, + "end_col_offset": 36, + "filename": "app/pt_trader.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 1436, + "line_range": [ + 1436, + 1437 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "1477 self._save_pnl_ledger()\n1478 except Exception:\n1479 pass\n1480 \n", + "col_offset": 24, + "end_col_offset": 32, + "filename": "app/pt_trader.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 1478, + "line_range": [ + 1478, + 1479 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "1482 \n1483 except Exception:\n1484 pass # print(traceback.format_exc())\n1485 \n", + "col_offset": 12, + "end_col_offset": 20, + "filename": "app/pt_trader.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 1483, + "line_range": [ + 1483, + 1484 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "1583 self._save_pnl_ledger()\n1584 except Exception:\n1585 pass\n1586 \n", + "col_offset": 12, + "end_col_offset": 20, + "filename": "app/pt_trader.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 1584, + "line_range": [ + 1584, + 1585 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "1605 return float(v[k])\n1606 except Exception:\n1607 continue\n1608 return 0.0\n", + "col_offset": 32, + "end_col_offset": 44, + "filename": "app/pt_trader.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Continue detected.", + "line_number": 1606, + "line_range": [ + 1606, + 1607 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b112_try_except_continue.html", + "test_id": "B112", + "test_name": "try_except_continue" + }, + { + "code": "1624 self._save_pnl_ledger()\n1625 except Exception:\n1626 pass\n1627 return response\n", + "col_offset": 24, + "end_col_offset": 32, + "filename": "app/pt_trader.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 1625, + "line_range": [ + 1625, + 1626 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "1650 fee_total += _fee_to_float(ex.get(fk))\n1651 except Exception:\n1652 continue\n1653 \n", + "col_offset": 24, + "end_col_offset": 36, + "filename": "app/pt_trader.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Continue detected.", + "line_number": 1651, + "line_range": [ + 1651, + 1652 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b112_try_except_continue.html", + "test_id": "B112", + "test_name": "try_except_continue" + }, + { + "code": "1664 \n1665 except Exception:\n1666 pass # print(traceback.format_exc())\n1667 \n", + "col_offset": 12, + "end_col_offset": 20, + "filename": "app/pt_trader.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 1665, + "line_range": [ + 1665, + 1666 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "1673 pnl_pct = ((float(actual_price) - acb) / acb) * 100.0\n1674 except Exception:\n1675 pass\n1676 \n", + "col_offset": 16, + "end_col_offset": 24, + "filename": "app/pt_trader.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 1674, + "line_range": [ + 1674, + 1675 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "1702 self._save_pnl_ledger()\n1703 except Exception:\n1704 pass\n1705 \n", + "col_offset": 12, + "end_col_offset": 20, + "filename": "app/pt_trader.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 1703, + "line_range": [ + 1703, + 1704 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "1737 self._last_trailing_settings_sig = new_sig\n1738 except Exception:\n1739 pass\n1740 \n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/pt_trader.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 1738, + "line_range": [ + 1738, + 1739 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "1842 \n1843 os.system(\"cls\" if os.name == \"nt\" else \"clear\")\n1844 print(\"\\n--- Account Summary ---\")\n", + "col_offset": 8, + "end_col_offset": 56, + "filename": "app/pt_trader.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 78, + "link": "https://cwe.mitre.org/data/definitions/78.html" + }, + "issue_severity": "HIGH", + "issue_text": "Starting a process with a shell, possible injection detected, security issue.", + "line_number": 1843, + "line_range": [ + 1843 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b605_start_process_with_a_shell.html", + "test_id": "B605", + "test_name": "start_process_with_a_shell" + }, + { + "code": "2244 file.close()\n2245 except Exception:\n2246 pass\n2247 \n", + "col_offset": 16, + "end_col_offset": 24, + "filename": "app/pt_trader.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 2245, + "line_range": [ + 2245, + 2246 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "2267 }\n2268 except Exception:\n2269 pass\n2270 \n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/pt_trader.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 2268, + "line_range": [ + 2268, + 2269 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "2372 self._write_trader_status(status)\n2373 except Exception:\n2374 pass\n2375 \n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/pt_trader.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 2373, + "line_range": [ + 2373, + 2374 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "60 prices = [\n61 base_price + (i * 10) + random.uniform(-100, 100)\n62 for i in range(100)\n", + "col_offset": 44, + "end_col_offset": 69, + "filename": "app/pt_trainer.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 330, + "link": "https://cwe.mitre.org/data/definitions/330.html" + }, + "issue_severity": "LOW", + "issue_text": "Standard pseudo-random generators are not suitable for security/cryptographic purposes.", + "line_number": 61, + "line_range": [ + 61 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/blacklists/blacklist_calls.html#b311-random", + "test_id": "B311", + "test_name": "blacklist" + }, + { + "code": "67 prices = [\n68 base_price + (i * 10) + random.uniform(-100, 100) for i in range(100)\n69 ]\n", + "col_offset": 40, + "end_col_offset": 65, + "filename": "app/pt_trainer.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 330, + "link": "https://cwe.mitre.org/data/definitions/330.html" + }, + "issue_severity": "LOW", + "issue_text": "Standard pseudo-random generators are not suitable for security/cryptographic purposes.", + "line_number": 68, + "line_range": [ + 68 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/blacklists/blacklist_calls.html#b311-random", + "test_id": "B311", + "test_name": "blacklist" + }, + { + "code": "79 while len(memories) < 50:\n80 memories.append(f\"{random.uniform(-2.0, 2.0):.6f}\")\n81 \n", + "col_offset": 31, + "end_col_offset": 56, + "filename": "app/pt_trainer.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 330, + "link": "https://cwe.mitre.org/data/definitions/330.html" + }, + "issue_severity": "LOW", + "issue_text": "Standard pseudo-random generators are not suitable for security/cryptographic purposes.", + "line_number": 80, + "line_range": [ + 80 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/blacklists/blacklist_calls.html#b311-random", + "test_id": "B311", + "test_name": "blacklist" + }, + { + "code": "87 weights = [\n88 f\"{0.5 + (final_accuracy/100.0) * 0.3 + random.uniform(-0.1, 0.1):.6f}\"\n89 for _ in range(50)\n", + "col_offset": 52, + "end_col_offset": 77, + "filename": "app/pt_trainer.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 330, + "link": "https://cwe.mitre.org/data/definitions/330.html" + }, + "issue_severity": "LOW", + "issue_text": "Standard pseudo-random generators are not suitable for security/cryptographic purposes.", + "line_number": 88, + "line_range": [ + 88 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/blacklists/blacklist_calls.html#b311-random", + "test_id": "B311", + "test_name": "blacklist" + }, + { + "code": "90 ]\n91 weights_high = [f\"{float(w) + random.uniform(0.05, 0.15):.6f}\" for w in weights]\n92 weights_low = [f\"{float(w) - random.uniform(0.05, 0.15):.6f}\" for w in weights]\n", + "col_offset": 38, + "end_col_offset": 64, + "filename": "app/pt_trainer.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 330, + "link": "https://cwe.mitre.org/data/definitions/330.html" + }, + "issue_severity": "LOW", + "issue_text": "Standard pseudo-random generators are not suitable for security/cryptographic purposes.", + "line_number": 91, + "line_range": [ + 91 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/blacklists/blacklist_calls.html#b311-random", + "test_id": "B311", + "test_name": "blacklist" + }, + { + "code": "91 weights_high = [f\"{float(w) + random.uniform(0.05, 0.15):.6f}\" for w in weights]\n92 weights_low = [f\"{float(w) - random.uniform(0.05, 0.15):.6f}\" for w in weights]\n93 \n", + "col_offset": 37, + "end_col_offset": 63, + "filename": "app/pt_trainer.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 330, + "link": "https://cwe.mitre.org/data/definitions/330.html" + }, + "issue_severity": "LOW", + "issue_text": "Standard pseudo-random generators are not suitable for security/cryptographic purposes.", + "line_number": 92, + "line_range": [ + 92 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/blacklists/blacklist_calls.html#b311-random", + "test_id": "B311", + "test_name": "blacklist" + }, + { + "code": "11 import shutil\n12 import subprocess\n13 import sys\n", + "col_offset": 0, + "end_col_offset": 17, + "filename": "app/pt_updater.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 78, + "link": "https://cwe.mitre.org/data/definitions/78.html" + }, + "issue_severity": "LOW", + "issue_text": "Consider possible security implications associated with the subprocess module.", + "line_number": 12, + "line_range": [ + 12 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/blacklists/blacklist_imports.html#b404-import-subprocess", + "test_id": "B404", + "test_name": "blacklist" + }, + { + "code": "46 return data.get(\"version\", \"4.0.0\")\n47 except Exception:\n48 pass\n49 return \"4.0.0\"\n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/pt_updater.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 47, + "line_range": [ + 47, + 48 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "388 \"apiKey\": \"\",\n389 \"secret\": \"\",\n390 \"sandbox\": False,\n391 \"enableRateLimit\": True,\n392 }\n393 )\n394 \n395 # Binance Futures\n", + "col_offset": 20, + "end_col_offset": 28, + "filename": "app/real_time_market_data.py", + "issue_confidence": "MEDIUM", + "issue_cwe": { + "id": 259, + "link": "https://cwe.mitre.org/data/definitions/259.html" + }, + "issue_severity": "LOW", + "issue_text": "Possible hardcoded password: ''", + "line_number": 389, + "line_range": [ + 387, + 388, + 389, + 390, + 391, + 392 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b105_hardcoded_password_string.html", + "test_id": "B105", + "test_name": "hardcoded_password_string" + }, + { + "code": "398 \"apiKey\": \"\",\n399 \"secret\": \"\",\n400 \"sandbox\": False,\n401 \"enableRateLimit\": True,\n402 \"options\": {\"defaultType\": \"future\"},\n403 }\n404 )\n405 \n406 # Coinbase Pro\n", + "col_offset": 20, + "end_col_offset": 28, + "filename": "app/real_time_market_data.py", + "issue_confidence": "MEDIUM", + "issue_cwe": { + "id": 259, + "link": "https://cwe.mitre.org/data/definitions/259.html" + }, + "issue_severity": "LOW", + "issue_text": "Possible hardcoded password: ''", + "line_number": 399, + "line_range": [ + 397, + 398, + 399, + 400, + 401, + 402, + 403 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b105_hardcoded_password_string.html", + "test_id": "B105", + "test_name": "hardcoded_password_string" + }, + { + "code": "409 \"apiKey\": \"\",\n410 \"secret\": \"\",\n411 \"passphrase\": \"\",\n412 \"sandbox\": False,\n413 \"enableRateLimit\": True,\n414 }\n415 )\n416 \n417 # Kraken\n", + "col_offset": 20, + "end_col_offset": 28, + "filename": "app/real_time_market_data.py", + "issue_confidence": "MEDIUM", + "issue_cwe": { + "id": 259, + "link": "https://cwe.mitre.org/data/definitions/259.html" + }, + "issue_severity": "LOW", + "issue_text": "Possible hardcoded password: ''", + "line_number": 410, + "line_range": [ + 408, + 409, + 410, + 411, + 412, + 413, + 414 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b105_hardcoded_password_string.html", + "test_id": "B105", + "test_name": "hardcoded_password_string" + }, + { + "code": "410 \"secret\": \"\",\n411 \"passphrase\": \"\",\n412 \"sandbox\": False,\n413 \"enableRateLimit\": True,\n414 }\n415 )\n416 \n417 # Kraken\n418 self.exchanges[DataSource.KRAKEN] = ccxt.kraken(\n", + "col_offset": 20, + "end_col_offset": 32, + "filename": "app/real_time_market_data.py", + "issue_confidence": "MEDIUM", + "issue_cwe": { + "id": 259, + "link": "https://cwe.mitre.org/data/definitions/259.html" + }, + "issue_severity": "LOW", + "issue_text": "Possible hardcoded password: ''", + "line_number": 411, + "line_range": [ + 408, + 409, + 410, + 411, + 412, + 413, + 414 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b105_hardcoded_password_string.html", + "test_id": "B105", + "test_name": "hardcoded_password_string" + }, + { + "code": "420 \"apiKey\": \"\",\n421 \"secret\": \"\",\n422 \"enableRateLimit\": True,\n423 }\n424 )\n425 \n426 except Exception as e:\n", + "col_offset": 20, + "end_col_offset": 28, + "filename": "app/real_time_market_data.py", + "issue_confidence": "MEDIUM", + "issue_cwe": { + "id": 259, + "link": "https://cwe.mitre.org/data/definitions/259.html" + }, + "issue_severity": "LOW", + "issue_text": "Possible hardcoded password: ''", + "line_number": 421, + "line_range": [ + 419, + 420, + 421, + 422, + 423 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b105_hardcoded_password_string.html", + "test_id": "B105", + "test_name": "hardcoded_password_string" + }, + { + "code": "837 self.market_manager.stop()\n838 except:\n839 pass\n840 \n", + "col_offset": 12, + "end_col_offset": 20, + "filename": "app/real_time_market_data_gui.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 838, + "line_range": [ + 838, + 839 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "147 \n148 except Exception:\n149 # Should handle gracefully if optimization fails\n150 pass\n151 \n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/test_advanced_features.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 148, + "line_range": [ + 148, + 149, + 150 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "239 \n240 except Exception as e:\n241 # Should handle missing data gracefully\n242 pass\n243 \n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/test_advanced_features.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 240, + "line_range": [ + 240, + 241, + 242 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "258 \n259 except Exception:\n260 # Should handle missing data or indicators gracefully\n261 pass\n262 \n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/test_advanced_features.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 259, + "line_range": [ + 259, + 260, + 261 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "309 \n310 except Exception:\n311 # Monte Carlo may not work with all data\n312 pass\n313 \n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/test_advanced_features.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 310, + "line_range": [ + 310, + 311, + 312 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "371 \n372 except Exception as e:\n373 # Should handle calculation errors\n374 pass\n375 \n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/test_advanced_features.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 372, + "line_range": [ + 372, + 373, + 374 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "390 \n391 except Exception:\n392 pass\n393 \n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/test_advanced_features.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 391, + "line_range": [ + 391, + 392 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "408 \n409 except Exception:\n410 pass\n411 \n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/test_advanced_features.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 409, + "line_range": [ + 409, + 410 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "422 \n423 except Exception:\n424 pass\n425 \n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/test_advanced_features.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 423, + "line_range": [ + 423, + 424 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "468 self.assertIsNotNone(gui)\n469 except Exception:\n470 # GUI creation may fail without proper environment\n471 pass\n472 \n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/test_advanced_features.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 469, + "line_range": [ + 469, + 470, + 471 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "483 self.assertIsNotNone(gui)\n484 except Exception:\n485 pass\n486 \n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/test_advanced_features.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 484, + "line_range": [ + 484, + 485 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "497 self.assertIsNotNone(gui)\n498 except Exception:\n499 pass\n500 \n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/test_advanced_features.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 498, + "line_range": [ + 498, + 499 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "21 \n22 def _make_exchange(key=\"test_key\", secret=\"test_secret\", testnet=False):\n23 ex = BinanceExchange(api_key=key, api_secret=secret, testnet=testnet)\n24 # Skip /api/v3/time round-trip in tests; offset stays at 0 (good enough).\n25 ex._time_synced = True\n26 return ex\n27 \n", + "col_offset": 0, + "end_col_offset": 13, + "filename": "app/test_binance_exchange.py", + "issue_confidence": "MEDIUM", + "issue_cwe": { + "id": 259, + "link": "https://cwe.mitre.org/data/definitions/259.html" + }, + "issue_severity": "LOW", + "issue_text": "Possible hardcoded password: 'test_secret'", + "line_number": 22, + "line_range": [ + 22, + 23, + 24, + 25, + 26 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b107_hardcoded_password_default.html", + "test_id": "B107", + "test_name": "hardcoded_password_default" + }, + { + "code": "50 \"\"\"Verify against a known HMAC-SHA256 value.\"\"\"\n51 secret = \"NhqPtmdSJYdKjVHjA7PZj4Mge3R5YNiP1e3UZjInClVN65XAbvqqM6A7H5fATj0j\"\n52 ex = BinanceExchange(api_key=\"key\", api_secret=secret)\n", + "col_offset": 17, + "end_col_offset": 83, + "filename": "app/test_binance_exchange.py", + "issue_confidence": "MEDIUM", + "issue_cwe": { + "id": 259, + "link": "https://cwe.mitre.org/data/definitions/259.html" + }, + "issue_severity": "LOW", + "issue_text": "Possible hardcoded password: 'NhqPtmdSJYdKjVHjA7PZj4Mge3R5YNiP1e3UZjInClVN65XAbvqqM6A7H5fATj0j'", + "line_number": 51, + "line_range": [ + 51 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b105_hardcoded_password_string.html", + "test_id": "B105", + "test_name": "hardcoded_password_string" + }, + { + "code": "145 def test_missing_credentials_raises(self):\n146 ex = BinanceExchange(api_key=\"\", api_secret=\"\")\n147 with self.assertRaises(RuntimeError):\n", + "col_offset": 13, + "end_col_offset": 55, + "filename": "app/test_binance_exchange.py", + "issue_confidence": "MEDIUM", + "issue_cwe": { + "id": 259, + "link": "https://cwe.mitre.org/data/definitions/259.html" + }, + "issue_severity": "LOW", + "issue_text": "Possible hardcoded password: ''", + "line_number": 146, + "line_range": [ + 146 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b106_hardcoded_password_funcarg.html", + "test_id": "B106", + "test_name": "hardcoded_password_funcarg" + }, + { + "code": "283 def test_missing_credentials_raises(self):\n284 ex = BinanceExchange(api_key=\"\", api_secret=\"\")\n285 with self.assertRaises(RuntimeError):\n", + "col_offset": 13, + "end_col_offset": 55, + "filename": "app/test_binance_exchange.py", + "issue_confidence": "MEDIUM", + "issue_cwe": { + "id": 259, + "link": "https://cwe.mitre.org/data/definitions/259.html" + }, + "issue_severity": "LOW", + "issue_text": "Possible hardcoded password: ''", + "line_number": 284, + "line_range": [ + 284 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b106_hardcoded_password_funcarg.html", + "test_id": "B106", + "test_name": "hardcoded_password_funcarg" + }, + { + "code": "327 def test_missing_credentials_raises(self):\n328 ex = BinanceExchange(api_key=\"\", api_secret=\"\")\n329 with self.assertRaises(RuntimeError):\n", + "col_offset": 13, + "end_col_offset": 55, + "filename": "app/test_binance_exchange.py", + "issue_confidence": "MEDIUM", + "issue_cwe": { + "id": 259, + "link": "https://cwe.mitre.org/data/definitions/259.html" + }, + "issue_severity": "LOW", + "issue_text": "Possible hardcoded password: ''", + "line_number": 328, + "line_range": [ + 328 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b106_hardcoded_password_funcarg.html", + "test_id": "B106", + "test_name": "hardcoded_password_funcarg" + }, + { + "code": "363 def test_missing_credentials_raises(self):\n364 ex = BinanceExchange(api_key=\"\", api_secret=\"\")\n365 with self.assertRaises(RuntimeError):\n", + "col_offset": 13, + "end_col_offset": 55, + "filename": "app/test_binance_exchange.py", + "issue_confidence": "MEDIUM", + "issue_cwe": { + "id": 259, + "link": "https://cwe.mitre.org/data/definitions/259.html" + }, + "issue_severity": "LOW", + "issue_text": "Possible hardcoded password: ''", + "line_number": 364, + "line_range": [ + 364 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b106_hardcoded_password_funcarg.html", + "test_id": "B106", + "test_name": "hardcoded_password_funcarg" + }, + { + "code": "381 def test_default_is_production(self):\n382 ex = BinanceExchange(api_key=\"k\", api_secret=\"s\")\n383 self.assertEqual(ex.base_url, \"https://api.binance.com\")\n", + "col_offset": 13, + "end_col_offset": 57, + "filename": "app/test_binance_exchange.py", + "issue_confidence": "MEDIUM", + "issue_cwe": { + "id": 259, + "link": "https://cwe.mitre.org/data/definitions/259.html" + }, + "issue_severity": "LOW", + "issue_text": "Possible hardcoded password: 's'", + "line_number": 382, + "line_range": [ + 382 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b106_hardcoded_password_funcarg.html", + "test_id": "B106", + "test_name": "hardcoded_password_funcarg" + }, + { + "code": "387 def test_testnet_flag_switches_urls(self):\n388 ex = BinanceExchange(api_key=\"k\", api_secret=\"s\", testnet=True)\n389 self.assertEqual(ex.base_url, \"https://testnet.binance.vision\")\n", + "col_offset": 13, + "end_col_offset": 71, + "filename": "app/test_binance_exchange.py", + "issue_confidence": "MEDIUM", + "issue_cwe": { + "id": 259, + "link": "https://cwe.mitre.org/data/definitions/259.html" + }, + "issue_severity": "LOW", + "issue_text": "Possible hardcoded password: 's'", + "line_number": 388, + "line_range": [ + 388 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b106_hardcoded_password_funcarg.html", + "test_id": "B106", + "test_name": "hardcoded_password_funcarg" + }, + { + "code": "393 def test_recv_window_clamped_to_max(self):\n394 ex = BinanceExchange(api_key=\"k\", api_secret=\"s\", recv_window=99999)\n395 self.assertEqual(ex.recv_window, 60000)\n", + "col_offset": 13, + "end_col_offset": 76, + "filename": "app/test_binance_exchange.py", + "issue_confidence": "MEDIUM", + "issue_cwe": { + "id": 259, + "link": "https://cwe.mitre.org/data/definitions/259.html" + }, + "issue_severity": "LOW", + "issue_text": "Possible hardcoded password: 's'", + "line_number": 394, + "line_range": [ + 394 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b106_hardcoded_password_funcarg.html", + "test_id": "B106", + "test_name": "hardcoded_password_funcarg" + }, + { + "code": "397 def test_recv_window_clamped_to_min(self):\n398 ex = BinanceExchange(api_key=\"k\", api_secret=\"s\", recv_window=0)\n399 self.assertEqual(ex.recv_window, 1)\n", + "col_offset": 13, + "end_col_offset": 72, + "filename": "app/test_binance_exchange.py", + "issue_confidence": "MEDIUM", + "issue_cwe": { + "id": 259, + "link": "https://cwe.mitre.org/data/definitions/259.html" + }, + "issue_severity": "LOW", + "issue_text": "Possible hardcoded password: 's'", + "line_number": 398, + "line_range": [ + 398 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b106_hardcoded_password_funcarg.html", + "test_id": "B106", + "test_name": "hardcoded_password_funcarg" + }, + { + "code": "744 def test_oco_missing_credentials_raises(self):\n745 ex = BinanceExchange(api_key=\"\", api_secret=\"\")\n746 with self.assertRaises(RuntimeError):\n", + "col_offset": 13, + "end_col_offset": 55, + "filename": "app/test_binance_exchange.py", + "issue_confidence": "MEDIUM", + "issue_cwe": { + "id": 259, + "link": "https://cwe.mitre.org/data/definitions/259.html" + }, + "issue_severity": "LOW", + "issue_text": "Possible hardcoded password: ''", + "line_number": 745, + "line_range": [ + 745 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b106_hardcoded_password_funcarg.html", + "test_id": "B106", + "test_name": "hardcoded_password_funcarg" + }, + { + "code": "797 def test_create_without_key_raises(self):\n798 ex = BinanceExchange(api_key=\"\", api_secret=\"\")\n799 with self.assertRaises(RuntimeError):\n", + "col_offset": 13, + "end_col_offset": 55, + "filename": "app/test_binance_exchange.py", + "issue_confidence": "MEDIUM", + "issue_cwe": { + "id": 259, + "link": "https://cwe.mitre.org/data/definitions/259.html" + }, + "issue_severity": "LOW", + "issue_text": "Possible hardcoded password: ''", + "line_number": 798, + "line_range": [ + 798 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b106_hardcoded_password_funcarg.html", + "test_id": "B106", + "test_name": "hardcoded_password_funcarg" + }, + { + "code": "806 def test_masked_api_key_shows_last_four(self):\n807 ex = BinanceExchange(api_key=\"abcdefghij1234\", api_secret=\"x\")\n808 self.assertEqual(ex.get_masked_api_key(), \"****1234\")\n", + "col_offset": 13, + "end_col_offset": 70, + "filename": "app/test_binance_exchange.py", + "issue_confidence": "MEDIUM", + "issue_cwe": { + "id": 259, + "link": "https://cwe.mitre.org/data/definitions/259.html" + }, + "issue_severity": "LOW", + "issue_text": "Possible hardcoded password: 'x'", + "line_number": 807, + "line_range": [ + 807 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b106_hardcoded_password_funcarg.html", + "test_id": "B106", + "test_name": "hardcoded_password_funcarg" + }, + { + "code": "810 def test_masked_api_key_short_key(self):\n811 ex = BinanceExchange(api_key=\"ab\", api_secret=\"x\")\n812 self.assertEqual(ex.get_masked_api_key(), \"****ab\")\n", + "col_offset": 13, + "end_col_offset": 58, + "filename": "app/test_binance_exchange.py", + "issue_confidence": "MEDIUM", + "issue_cwe": { + "id": 259, + "link": "https://cwe.mitre.org/data/definitions/259.html" + }, + "issue_severity": "LOW", + "issue_text": "Possible hardcoded password: 'x'", + "line_number": 811, + "line_range": [ + 811 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b106_hardcoded_password_funcarg.html", + "test_id": "B106", + "test_name": "hardcoded_password_funcarg" + }, + { + "code": "814 def test_masked_api_key_empty(self):\n815 ex = BinanceExchange(api_key=\"\", api_secret=\"\")\n816 self.assertEqual(ex.get_masked_api_key(), \"Not configured\")\n", + "col_offset": 13, + "end_col_offset": 55, + "filename": "app/test_binance_exchange.py", + "issue_confidence": "MEDIUM", + "issue_cwe": { + "id": 259, + "link": "https://cwe.mitre.org/data/definitions/259.html" + }, + "issue_severity": "LOW", + "issue_text": "Possible hardcoded password: ''", + "line_number": 815, + "line_range": [ + 815 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b106_hardcoded_password_funcarg.html", + "test_id": "B106", + "test_name": "hardcoded_password_funcarg" + }, + { + "code": "818 def test_test_connection_no_creds_returns_false(self):\n819 ex = BinanceExchange(api_key=\"\", api_secret=\"\")\n820 self.assertFalse(ex.test_connection())\n", + "col_offset": 13, + "end_col_offset": 55, + "filename": "app/test_binance_exchange.py", + "issue_confidence": "MEDIUM", + "issue_cwe": { + "id": 259, + "link": "https://cwe.mitre.org/data/definitions/259.html" + }, + "issue_severity": "LOW", + "issue_text": "Possible hardcoded password: ''", + "line_number": 819, + "line_range": [ + 819 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b106_hardcoded_password_funcarg.html", + "test_id": "B106", + "test_name": "hardcoded_password_funcarg" + }, + { + "code": "53 # Check tabbed interface\n54 assert hasattr(app, \"bottom_notebook\"), \"Tabbed notebook missing\"\n55 assert len(app.bottom_notebook.tabs()) >= 3, \"Not enough tabs\"\n", + "col_offset": 8, + "end_col_offset": 73, + "filename": "app/test_core.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Use of assert detected. The enclosed code will be removed when compiling to optimised byte code.", + "line_number": 54, + "line_range": [ + 54 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b101_assert_used.html", + "test_id": "B101", + "test_name": "assert_used" + }, + { + "code": "54 assert hasattr(app, \"bottom_notebook\"), \"Tabbed notebook missing\"\n55 assert len(app.bottom_notebook.tabs()) >= 3, \"Not enough tabs\"\n56 assert hasattr(app, \"lth_tree\"), \"LTH table missing\"\n", + "col_offset": 8, + "end_col_offset": 70, + "filename": "app/test_core.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Use of assert detected. The enclosed code will be removed when compiling to optimised byte code.", + "line_number": 55, + "line_range": [ + 55 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b101_assert_used.html", + "test_id": "B101", + "test_name": "assert_used" + }, + { + "code": "55 assert len(app.bottom_notebook.tabs()) >= 3, \"Not enough tabs\"\n56 assert hasattr(app, \"lth_tree\"), \"LTH table missing\"\n57 assert hasattr(app, \"hist_filter_var\"), \"History filter missing\"\n", + "col_offset": 8, + "end_col_offset": 60, + "filename": "app/test_core.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Use of assert detected. The enclosed code will be removed when compiling to optimised byte code.", + "line_number": 56, + "line_range": [ + 56 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b101_assert_used.html", + "test_id": "B101", + "test_name": "assert_used" + }, + { + "code": "56 assert hasattr(app, \"lth_tree\"), \"LTH table missing\"\n57 assert hasattr(app, \"hist_filter_var\"), \"History filter missing\"\n58 \n", + "col_offset": 8, + "end_col_offset": 72, + "filename": "app/test_core.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Use of assert detected. The enclosed code will be removed when compiling to optimised byte code.", + "line_number": 57, + "line_range": [ + 57 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b101_assert_used.html", + "test_id": "B101", + "test_name": "assert_used" + }, + { + "code": "65 for exp_tab in expected:\n66 assert exp_tab in tab_names, f\"Missing tab: {exp_tab}\"\n67 \n", + "col_offset": 12, + "end_col_offset": 66, + "filename": "app/test_core.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Use of assert detected. The enclosed code will be removed when compiling to optimised byte code.", + "line_number": 66, + "line_range": [ + 66 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b101_assert_used.html", + "test_id": "B101", + "test_name": "assert_used" + }, + { + "code": "91 coins_tested.append(coin)\n92 except:\n93 pass # Some coins may not have subdirs\n94 \n", + "col_offset": 12, + "end_col_offset": 20, + "filename": "app/test_core.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 92, + "line_range": [ + 92, + 93 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "117 \n118 assert total > 50, f\"Only {total} exchanges configured (expected >50)\"\n119 print(f\"\u2705 Exchange system configured with {total} exchanges\")\n", + "col_offset": 8, + "end_col_offset": 78, + "filename": "app/test_core.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Use of assert detected. The enclosed code will be removed when compiling to optimised byte code.", + "line_number": 118, + "line_range": [ + 118 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b101_assert_used.html", + "test_id": "B101", + "test_name": "assert_used" + }, + { + "code": "139 ) # duplicate PK \u2192 OperationalError\n140 except Exception:\n141 pass\n142 row = self.conn.execute(\"SELECT * FROM t WHERE id=5\").fetchone()\n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/test_database_manager.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 140, + "line_range": [ + 140, + 141 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "6 import os\n7 import subprocess\n8 import sys\n", + "col_offset": 0, + "end_col_offset": 17, + "filename": "app/test_hub_trainer.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 78, + "link": "https://cwe.mitre.org/data/definitions/78.html" + }, + "issue_severity": "LOW", + "issue_text": "Consider possible security implications associated with the subprocess module.", + "line_number": 7, + "line_range": [ + 7 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/blacklists/blacklist_imports.html#b404-import-subprocess", + "test_id": "B404", + "test_name": "blacklist" + }, + { + "code": "55 print(f\"DEBUG: Final output from {coin}: {remaining_output}\")\n56 except:\n57 pass\n58 return proc.returncode\n", + "col_offset": 12, + "end_col_offset": 20, + "filename": "app/test_hub_trainer.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 56, + "line_range": [ + 56, + 57 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "133 deleted += 1\n134 except Exception:\n135 pass\n136 \n", + "col_offset": 16, + "end_col_offset": 24, + "filename": "app/test_hub_trainer.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 134, + "line_range": [ + 134, + 135 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "138 print(f\"Deleted {deleted} training file(s) for {coin} before training\")\n139 except Exception:\n140 pass\n141 \n", + "col_offset": 4, + "end_col_offset": 12, + "filename": "app/test_hub_trainer.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 139, + "line_range": [ + 139, + 140 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "156 \n157 info.proc = subprocess.Popen(\n158 cmd_args,\n159 cwd=coin_cwd,\n160 env=env,\n161 stdout=subprocess.PIPE,\n162 stderr=subprocess.STDOUT,\n163 text=True,\n164 bufsize=1,\n165 )\n166 print(f\"DEBUG: Process started with PID: {info.proc.pid}\")\n", + "col_offset": 20, + "end_col_offset": 9, + "filename": "app/test_hub_trainer.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 78, + "link": "https://cwe.mitre.org/data/definitions/78.html" + }, + "issue_severity": "LOW", + "issue_text": "subprocess call - check for execution of untrusted input.", + "line_number": 157, + "line_range": [ + 157, + 158, + 159, + 160, + 161, + 162, + 163, + 164, + 165 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b603_subprocess_without_shell_equals_true.html", + "test_id": "B603", + "test_name": "subprocess_without_shell_equals_true" + }, + { + "code": "178 print(f\"DEBUG: Process stderr: {stderr}\")\n179 except:\n180 pass\n181 return info.proc.returncode\n", + "col_offset": 12, + "end_col_offset": 20, + "filename": "app/test_hub_trainer.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 179, + "line_range": [ + 179, + 180 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "171 self.assertGreaterEqual(tab_count, 0)\n172 except:\n173 pass # Tab operations may fail but shouldn't crash\n174 \n", + "col_offset": 16, + "end_col_offset": 24, + "filename": "app/test_integration.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 172, + "line_range": [ + 172, + 173 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "193 os.unlink(file_path)\n194 except:\n195 pass\n196 \n", + "col_offset": 12, + "end_col_offset": 20, + "filename": "app/test_integration.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 194, + "line_range": [ + 194, + 195 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "339 os.unlink(test_script_path)\n340 except Exception:\n341 pass\n342 \n", + "col_offset": 12, + "end_col_offset": 20, + "filename": "app/test_phase1_phase2_integration.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 340, + "line_range": [ + 340, + 341 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "403 os.unlink(temp_file)\n404 except Exception:\n405 pass\n406 \n", + "col_offset": 12, + "end_col_offset": 20, + "filename": "app/test_phase1_phase2_integration.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 404, + "line_range": [ + 404, + 405 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "7 import os\n8 import subprocess\n9 import sys\n", + "col_offset": 0, + "end_col_offset": 17, + "filename": "app/test_subprocess_trainer.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 78, + "link": "https://cwe.mitre.org/data/definitions/78.html" + }, + "issue_severity": "LOW", + "issue_text": "Consider possible security implications associated with the subprocess module.", + "line_number": 8, + "line_range": [ + 8 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/blacklists/blacklist_imports.html#b404-import-subprocess", + "test_id": "B404", + "test_name": "blacklist" + }, + { + "code": "57 # Launch subprocess exactly like the hub\n58 proc = subprocess.Popen(\n59 cmd_args,\n60 cwd=coin_cwd,\n61 env=env,\n62 stdout=subprocess.PIPE,\n63 stderr=subprocess.STDOUT,\n64 text=True,\n65 bufsize=1,\n66 )\n67 print(f\"Process started with PID: {proc.pid}\")\n", + "col_offset": 15, + "end_col_offset": 9, + "filename": "app/test_subprocess_trainer.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 78, + "link": "https://cwe.mitre.org/data/definitions/78.html" + }, + "issue_severity": "LOW", + "issue_text": "subprocess call - check for execution of untrusted input.", + "line_number": 58, + "line_range": [ + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b603_subprocess_without_shell_equals_true.html", + "test_id": "B603", + "test_name": "subprocess_without_shell_equals_true" + }, + { + "code": "118 output_lines.append(line)\n119 except:\n120 pass\n121 \n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/test_subprocess_trainer.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 119, + "line_range": [ + 119, + 120 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "189 \"api_key\": \"test_key\",\n190 \"api_secret\": \"test_secret\",\n191 }\n192 \n193 # Test that enabled exchanges can be retrieved (valid method)\n194 enabled = config_manager.get_enabled_exchanges()\n195 self.assertIsInstance(enabled, list)\n", + "col_offset": 16, + "end_col_offset": 28, + "filename": "app/test_suite.py", + "issue_confidence": "MEDIUM", + "issue_cwe": { + "id": 259, + "link": "https://cwe.mitre.org/data/definitions/259.html" + }, + "issue_severity": "LOW", + "issue_text": "Possible hardcoded password: 'test_secret'", + "line_number": 190, + "line_range": [ + 187, + 188, + 189, + 190, + 191 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b105_hardcoded_password_string.html", + "test_id": "B105", + "test_name": "hardcoded_password_string" + }, + { + "code": "545 self.assertIsNotNone(holdings_gui)\n546 except Exception:\n547 pass\n548 \n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/test_suite.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 546, + "line_range": [ + 546, + 547 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + }, + { + "code": "554 self.assertIsNotNone(analytics_gui)\n555 except Exception:\n556 pass\n557 \n", + "col_offset": 8, + "end_col_offset": 16, + "filename": "app/test_suite.py", + "issue_confidence": "HIGH", + "issue_cwe": { + "id": 703, + "link": "https://cwe.mitre.org/data/definitions/703.html" + }, + "issue_severity": "LOW", + "issue_text": "Try, Except, Pass detected.", + "line_number": 555, + "line_range": [ + 555, + 556 + ], + "more_info": "https://bandit.readthedocs.io/en/1.9.4/plugins/b110_try_except_pass.html", + "test_id": "B110", + "test_name": "try_except_pass" + } + ] +} \ No newline at end of file diff --git a/docs/setup/CREDENTIAL_SETUP.md b/docs/setup/CREDENTIAL_SETUP.md index a2aa48118..5cbc718fb 100644 --- a/docs/setup/CREDENTIAL_SETUP.md +++ b/docs/setup/CREDENTIAL_SETUP.md @@ -52,7 +52,7 @@ PowerTraderAI+ now supports **dual credential modes** for different use cases: **Credential Loading Priority:** 1. **Encrypted files** (desktop): `r_key.enc`, `r_secret.enc` 2. **Environment variables** (CI/CD): `POWERTRADER_ROBINHOOD_API_KEY`, `POWERTRADER_ROBINHOOD_PRIVATE_KEY` -3. **Plaintext files** (legacy): `r_key.txt`, `r_secret.txt` +3. **Legacy migration only**: if `r_key.txt` / `r_secret.txt` are detected, startup migrates them to encrypted storage and deletes plaintext files. If migration fails, startup is rejected. ## ✅ **Verification** @@ -64,7 +64,7 @@ PowerTraderAI+ now supports **dual credential modes** for different use cases: - **Desktop:** Credentials are encrypted with machine-specific keys - **CI/CD:** Secrets are encrypted by GitHub and only available during workflow execution -- **Never commit** `.txt`, `.enc` credential files to git +- **Never commit** `.txt`, `.enc`, `.pt_salt`, or `.pt_cred_meta` credential files to git - **Keep private keys secure** - they provide full trading access ## 🆘 **Troubleshooting**