Showing 508 of 508 total issues
File exchange.py
has 2476 lines of code (exceeds 250 allowed). Consider refactoring. Open
Open
# pragma pylint: disable=W0603
"""
Cryptocurrency Exchanges support
"""
import asyncio
File freqtradebot.py
has 1705 lines of code (exceeds 250 allowed). Consider refactoring. Open
Open
"""
Freqtrade is the main module of this bot. It contains the class Freqtrade()
"""
import logging
import traceback
File telegram.py
has 1597 lines of code (exceeds 250 allowed). Consider refactoring. Open
Open
# pragma pylint: disable=unused-argument, unused-variable, protected-access, invalid-name
"""
This module manage Telegram communication
"""
File trade_model.py
has 1538 lines of code (exceeds 250 allowed). Consider refactoring. Open
Open
"""
This module contains the class to persist trades into SQLite
"""
import logging
from collections import defaultdict
File rpc.py
has 1132 lines of code (exceeds 250 allowed). Consider refactoring. Open
Open
"""
This module contains class to define a RPC communications
"""
import logging
from abc import abstractmethod
File interface.py
has 1128 lines of code (exceeds 250 allowed). Consider refactoring. Open
Open
"""
IStrategy interface
This module defines the interface to apply for strategies
"""
import logging
File backtesting.py
has 1096 lines of code (exceeds 250 allowed). Consider refactoring. Open
Open
# pragma pylint: disable=missing-docstring, W0212, too-many-arguments
"""
This module contains the backtesting logic
"""
File freqai_interface.py
has 830 lines of code (exceeds 250 allowed). Consider refactoring. Open
Open
import logging
import threading
import time
from abc import ABC, abstractmethod
from collections import deque
File data_kitchen.py
has 818 lines of code (exceeds 250 allowed). Consider refactoring. Open
Open
import copy
import inspect
import logging
import random
import shutil
File cli_options.py
has 694 lines of code (exceeds 250 allowed). Consider refactoring. Open
Open
"""
Definition of cli arguments used in arguments.py
"""
from argparse import SUPPRESS, ArgumentTypeError
File constants.py
has 683 lines of code (exceeds 250 allowed). Consider refactoring. Open
Open
# pragma pylint: disable=too-few-public-methods
"""
bot constants
"""
File plotting.py
has 592 lines of code (exceeds 250 allowed). Consider refactoring. Open
Open
import logging
from datetime import datetime, timezone
from pathlib import Path
from typing import Dict, List, Optional
File data_drawer.py
has 590 lines of code (exceeds 250 allowed). Consider refactoring. Open
Open
import collections
import importlib
import logging
import re
import shutil
File hyperopt.py
has 494 lines of code (exceeds 250 allowed). Consider refactoring. Open
Open
# pragma pylint: disable=too-many-instance-attributes, pointless-string-statement
"""
This module contains the hyperopt logic
"""
Function _rpc_status_table
has a Cognitive Complexity of 48 (exceeds 5 allowed). Consider refactoring. Open
Open
def _rpc_status_table(self, stake_currency: str,
fiat_display_currency: str) -> Tuple[List, List, float]:
trades: List[Trade] = Trade.get_open_trades()
nonspot = self._config.get('trading_mode', TradingMode.SPOT) != TradingMode.SPOT
if not trades:
- Read upRead up
Cognitive Complexity
Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.
A method's cognitive complexity is based on a few simple rules:
- Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
- Code is considered more complex for each "break in the linear flow of the code"
- Code is considered more complex when "flow breaking structures are nested"
Further reading
File optimize_reports.py
has 475 lines of code (exceeds 250 allowed). Consider refactoring. Open
Open
import logging
from copy import deepcopy
from datetime import datetime, timedelta, timezone
from typing import Any, Dict, List, Tuple, Union
File history_utils.py
has 449 lines of code (exceeds 250 allowed). Consider refactoring. Open
Open
import logging
import operator
from datetime import datetime, timedelta
from pathlib import Path
from typing import Dict, List, Optional, Tuple
IStrategy
has 48 functions (exceeds 20 allowed). Consider refactoring. Open
Open
class IStrategy(ABC, HyperStrategyMixin):
"""
Interface for freqtrade strategies
Defines the mandatory structure must follow any custom strategies
File dataprovider.py
has 438 lines of code (exceeds 250 allowed). Consider refactoring. Open
Open
"""
Dataprovider
Responsible to provide data to the bot
including ticker and orderbook data, live and historical candle (OHLCV) data
Common Interface for bot and strategy to access data.
File hyperopt_tools.py
has 434 lines of code (exceeds 250 allowed). Consider refactoring. Open
Open
import logging
from copy import deepcopy
from datetime import datetime, timezone
from pathlib import Path
from typing import Any, Dict, Iterator, List, Optional, Tuple