Skip to content

Commit

Permalink
Optimize imports
Browse files Browse the repository at this point in the history
  • Loading branch information
MDUYN committed Apr 12, 2024
1 parent 5d559bd commit 269949c
Show file tree
Hide file tree
Showing 75 changed files with 273 additions and 269 deletions.
2 changes: 1 addition & 1 deletion examples/backtest/algorithm/strategy.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import tulipy as ti

from investing_algorithm_framework import TimeUnit, TradingStrategy, \
Algorithm, OrderSide, BACKTESTING_INDEX_DATETIME
Algorithm, OrderSide

"""
This strategy is based on the golden cross strategy. It will buy when the
Expand Down
8 changes: 3 additions & 5 deletions examples/backtest/backtest.py
Original file line number Diff line number Diff line change
@@ -1,13 +1,11 @@
from datetime import datetime, timedelta

from investing_algorithm_framework import PortfolioConfiguration, \
pretty_print_backtest

from app import app
from algorithm.algorithm import algorithm
from algorithm.data_sources import bitvavo_btc_eur_ohlcv_2h, \
bitvavo_dot_eur_ohlcv_2h, bitvavo_dot_eur_ticker, bitvavo_btc_eur_ticker

from app import app
from investing_algorithm_framework import PortfolioConfiguration, \
pretty_print_backtest

app.add_algorithm(algorithm)
app.add_market_data_source(bitvavo_btc_eur_ohlcv_2h)
Expand Down
1 change: 1 addition & 0 deletions examples/bitvavo_trading_bot/bitvavo.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import os

from investing_algorithm_framework import MarketCredential, TimeUnit, \
CCXTOHLCVMarketDataSource, CCXTTickerMarketDataSource, TradingStrategy, \
create_app, PortfolioConfiguration, Algorithm, SYMBOLS, RESOURCE_DIRECTORY
Expand Down
1 change: 1 addition & 0 deletions examples/coinbase_trading_bot/coinbase.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import os

from investing_algorithm_framework import MarketCredential, TimeUnit, \
CCXTOHLCVMarketDataSource, CCXTTickerMarketDataSource, TradingStrategy, \
create_app, PortfolioConfiguration, Algorithm, SYMBOLS, RESOURCE_DIRECTORY
Expand Down
8 changes: 3 additions & 5 deletions examples/crossover_moving_average_trading_bot/backtesting.py
Original file line number Diff line number Diff line change
@@ -1,13 +1,11 @@
from datetime import datetime, timedelta

from investing_algorithm_framework import PortfolioConfiguration, \
pretty_print_backtest

from app import app
from algorithm.algorithm import algorithm
from algorithm.data_sources import bitvavo_btc_eur_ohlcv_2h, \
bitvavo_dot_eur_ohlcv_2h, bitvavo_dot_eur_ticker, bitvavo_btc_eur_ticker

from app import app
from investing_algorithm_framework import PortfolioConfiguration, \
pretty_print_backtest

app.add_algorithm(algorithm)
app.add_market_data_source(bitvavo_btc_eur_ohlcv_2h)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
from investing_algorithm_framework import MarketCredential
from app import app
from investing_algorithm_framework import MarketCredential

# Configure your market credentials here
bitvavo_market_credential = MarketCredential(
Expand Down
6 changes: 3 additions & 3 deletions investing_algorithm_framework/__init__.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
from investing_algorithm_framework.app import App, Algorithm, AppHook
from .create_app import create_app
from investing_algorithm_framework.app import TradingStrategy, \
StatelessAction, Task
from investing_algorithm_framework.domain import ApiException, \
TradingDataType, TradingTimeFrame, OrderType, OperationalException, \
OrderStatus, OrderSide, Config, TimeUnit, TimeInterval, Order, Portfolio, \
Expand All @@ -9,12 +10,11 @@
TickerMarketDataSource, MarketService, BacktestReportsEvaluation, \
pretty_print_backtest_reports_evaluation, load_backtest_reports, \
RESERVED_BALANCES, APP_MODE, AppMode, DATETIME_FORMAT
from investing_algorithm_framework.app import TradingStrategy, \
StatelessAction, Task
from investing_algorithm_framework.infrastructure import \
CCXTOrderBookMarketDataSource, CCXTOHLCVMarketDataSource, \
CCXTTickerMarketDataSource, CSVOHLCVMarketDataSource, \
CSVTickerMarketDataSource
from .create_app import create_app

__all__ = [
"Algorithm",
Expand Down
4 changes: 2 additions & 2 deletions investing_algorithm_framework/app/__init__.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
from investing_algorithm_framework.app.app import App, AppHook
from investing_algorithm_framework.app.web import create_flask_app
from investing_algorithm_framework.app.strategy import TradingStrategy
from investing_algorithm_framework.app.stateless import StatelessAction
from investing_algorithm_framework.app.strategy import TradingStrategy
from investing_algorithm_framework.app.task import Task
from investing_algorithm_framework.app.web import create_flask_app
from .algorithm import Algorithm

__all__ = [
Expand Down
4 changes: 2 additions & 2 deletions investing_algorithm_framework/app/app.py
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
import inspect
import logging
import os
import shutil
import threading
from abc import abstractmethod
from datetime import datetime
from distutils.sysconfig import get_python_lib
from time import sleep
from typing import List, Optional, Tuple
import inspect

from abc import abstractmethod
from flask import Flask

from investing_algorithm_framework.app.algorithm import Algorithm
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import json

from investing_algorithm_framework.app.stateless.action_handlers \
.action_handler_strategy import ActionHandlerStrategy

Expand Down
2 changes: 1 addition & 1 deletion investing_algorithm_framework/app/strategy.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
from investing_algorithm_framework.domain import OperationalException
from investing_algorithm_framework.domain import \
TimeUnit, StrategyProfile, Trade
from .algorithm import Algorithm
from investing_algorithm_framework.domain import OperationalException


class TradingStrategy:
Expand Down
4 changes: 2 additions & 2 deletions investing_algorithm_framework/app/web/controllers/__init__.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
from investing_algorithm_framework.app.web.controllers.portfolio \
import blueprint as portfolio_blueprint
from investing_algorithm_framework.app.web.controllers.orders import \
blueprint as orders_blueprint
from investing_algorithm_framework.app.web.controllers.portfolio \
import blueprint as portfolio_blueprint
from investing_algorithm_framework.app.web.controllers.positions import \
blueprint as positions_blueprint

Expand Down
5 changes: 3 additions & 2 deletions investing_algorithm_framework/app/web/controllers/orders.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
import logging

from flask import Blueprint, request
from dependency_injector.wiring import inject, Provide
from investing_algorithm_framework.app.web.schemas import OrderSerializer
from flask import Blueprint, request

from investing_algorithm_framework.app.web.responses import create_response
from investing_algorithm_framework.app.web.schemas import OrderSerializer
from investing_algorithm_framework.dependency_container import \
DependencyContainer

Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
import logging

from flask import Blueprint, request
from dependency_injector.wiring import inject, Provide
from flask import Blueprint, request

from investing_algorithm_framework.app.web.schemas import PositionSerializer
from investing_algorithm_framework.app.web.responses import create_response
from investing_algorithm_framework.app.web.schemas import PositionSerializer

logger = logging.getLogger("investing_algorithm_framework")

Expand Down
1 change: 1 addition & 0 deletions investing_algorithm_framework/app/web/schemas/position.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
from marshmallow import Schema, fields

from investing_algorithm_framework.dependency_container import \
DependencyContainer

Expand Down
34 changes: 17 additions & 17 deletions investing_algorithm_framework/domain/__init__.py
Original file line number Diff line number Diff line change
@@ -1,34 +1,34 @@
from .config import Config, Environment
from .models import OrderStatus, OrderSide, OrderType, TimeInterval, \
TimeUnit, TimeFrame, TradingTimeFrame, TradingDataType, \
PortfolioConfiguration, Portfolio, Position, Order, TradeStatus, \
OrderFee, BacktestReport, PortfolioSnapshot, StrategyProfile, \
BacktestPosition, Trade, MarketCredential, PositionSnapshot, \
BacktestReportsEvaluation, AppMode
from .exceptions import OperationalException, ApiException, \
PermissionDeniedApiException, ImproperlyConfigured
from .constants import ITEMIZE, ITEMIZED, PER_PAGE, PAGE, ENVIRONMENT, \
DATABASE_DIRECTORY_PATH, DATABASE_NAME, DEFAULT_PER_PAGE_VALUE, \
DEFAULT_PAGE_VALUE, SQLALCHEMY_DATABASE_URI, RESOURCE_DIRECTORY, \
DATETIME_FORMAT, DATETIME_FORMAT_BACKTESTING, BACKTESTING_FLAG, \
BACKTESTING_INDEX_DATETIME, BACKTESTING_START_DATE, CCXT_DATETIME_FORMAT, \
BACKTEST_DATA_DIRECTORY_NAME, TICKER_DATA_TYPE, OHLCV_DATA_TYPE, \
CURRENT_UTC_DATETIME, BACKTESTING_END_DATE, SYMBOLS, \
CURRENT_UTC_DATETIME, BACKTESTING_END_DATE, SYMBOLS, \
CCXT_DATETIME_FORMAT_WITH_TIMEZONE, RESERVED_BALANCES, \
BACKTESTING_PENDING_ORDER_CHECK_INTERVAL, APP_MODE
from .singleton import Singleton
from .utils import random_string, append_dict_as_row_to_csv, \
add_column_headers_to_csv, get_total_amount_of_rows, \
csv_to_list, StoppableThread, pretty_print_backtest_reports_evaluation, \
pretty_print_backtest, load_csv_into_dict, load_backtest_reports
from .strategy import Strategy
from .stateless_actions import StatelessActions
from .data_structures import PeekableQueue
from .decimal_parsing import parse_decimal_to_string, parse_string_to_decimal
from .exceptions import OperationalException, ApiException, \
PermissionDeniedApiException, ImproperlyConfigured
from .models import OrderStatus, OrderSide, OrderType, TimeInterval, \
TimeUnit, TimeFrame, TradingTimeFrame, TradingDataType, \
PortfolioConfiguration, Portfolio, Position, Order, TradeStatus, \
OrderFee, BacktestReport, PortfolioSnapshot, StrategyProfile, \
BacktestPosition, Trade, MarketCredential, PositionSnapshot, \
BacktestReportsEvaluation, AppMode
from .services import TickerMarketDataSource, OrderBookMarketDataSource, \
OHLCVMarketDataSource, BacktestMarketDataSource, MarketDataSource, \
MarketService, MarketCredentialService, AbstractPortfolioSyncService, \
RoundingService
from .data_structures import PeekableQueue
from .singleton import Singleton
from .stateless_actions import StatelessActions
from .strategy import Strategy
from .utils import random_string, append_dict_as_row_to_csv, \
add_column_headers_to_csv, get_total_amount_of_rows, \
csv_to_list, StoppableThread, pretty_print_backtest_reports_evaluation, \
pretty_print_backtest, load_csv_into_dict, load_backtest_reports

__all__ = [
'Config',
Expand Down
16 changes: 8 additions & 8 deletions investing_algorithm_framework/domain/models/__init__.py
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
from .app_mode import AppMode
from .backtesting import BacktestReport, BacktestPosition, \
BacktestReportsEvaluation
from .market import MarketCredential
from .order import OrderStatus, OrderSide, OrderType, Order, OrderFee
from .portfolio import PortfolioConfiguration, Portfolio, PortfolioSnapshot
from .position import Position, PositionSnapshot
from .strategy_profile import StrategyProfile
from .time_frame import TimeFrame
from .time_interval import TimeInterval
from .time_unit import TimeUnit
from .market import MarketCredential
from .trade import Trade, TradeStatus
from .trading_data_types import TradingDataType
from .trading_time_frame import TradingTimeFrame
from .portfolio import PortfolioConfiguration, Portfolio, PortfolioSnapshot
from .position import Position, PositionSnapshot
from .backtesting import BacktestReport, BacktestPosition, \
BacktestReportsEvaluation
from .strategy_profile import StrategyProfile
from .trade import Trade, TradeStatus
from .app_mode import AppMode

__all__ = [
"OrderStatus",
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
from .backtest_report import BacktestReport
from .backtest_position import BacktestPosition
from .backtest_report import BacktestReport
from .backtest_reports_evaluation import BacktestReportsEvaluation

__all__ = [
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
from datetime import datetime

from investing_algorithm_framework.domain.models.base_model import BaseModel
from investing_algorithm_framework.domain.models.time_unit import TimeUnit

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
from typing import List, Dict, Tuple
from datetime import datetime
from typing import List, Dict, Tuple

from .backtest_report import BacktestReport


Expand Down
6 changes: 3 additions & 3 deletions investing_algorithm_framework/domain/models/order/__init__.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
from .order_type import OrderType
from .order_side import OrderSide
from .order_status import OrderStatus
from .order import Order
from .order_fee import OrderFee
from .order_side import OrderSide
from .order_status import OrderStatus
from .order_type import OrderType

__all__ = ["OrderType", "OrderStatus", "OrderSide", "Order", "OrderFee"]
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
from .portfolio_configuration import PortfolioConfiguration
from .portfolio import Portfolio
from .portfolio_configuration import PortfolioConfiguration
from .portfolio_snapshot import PortfolioSnapshot

__all__ = [
Expand Down
10 changes: 6 additions & 4 deletions investing_algorithm_framework/domain/models/trade/trade.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
from datetime import datetime
from typing import List
from polars import DataFrame

import polars as pl
from datetime import datetime
from investing_algorithm_framework.domain.models.base_model import BaseModel
from polars import DataFrame

from investing_algorithm_framework.domain.constants import DATETIME_FORMAT
from investing_algorithm_framework.domain.exceptions import \
OperationalException
from investing_algorithm_framework.domain.constants import DATETIME_FORMAT
from investing_algorithm_framework.domain.models.base_model import BaseModel


class Trade(BaseModel):
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
from enum import Enum
from datetime import timedelta, datetime
from enum import Enum

from investing_algorithm_framework.domain.exceptions import \
OperationalException
Expand Down
2 changes: 1 addition & 1 deletion investing_algorithm_framework/domain/services/__init__.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
from .market_credential_service import MarketCredentialService
from .market_data_sources import MarketDataSource, TickerMarketDataSource, \
OHLCVMarketDataSource, OrderBookMarketDataSource, BacktestMarketDataSource
from .market_service import MarketService
from .market_credential_service import MarketCredentialService
from .portfolios import AbstractPortfolioSyncService
from .rounding_service import RoundingService

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import csv
import logging
import os
import csv
from abc import abstractmethod, ABC
from datetime import datetime, timedelta
from typing import Callable
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
import logging
from typing import Dict
from abc import ABC, abstractmethod
from datetime import datetime
from typing import Dict

from polars import DataFrame

logger = logging.getLogger("investing_algorithm_framework")


Expand Down
8 changes: 4 additions & 4 deletions investing_algorithm_framework/domain/utils/__init__.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
from .backtesting import pretty_print_backtest, \
pretty_print_backtest_reports_evaluation, load_backtest_reports
from .csv import get_total_amount_of_rows, append_dict_as_row_to_csv, \
add_column_headers_to_csv, csv_to_list, load_csv_into_dict
from .random import random_string
from .stoppable_thread import StoppableThread
from .synchronized import synchronized
from .csv import get_total_amount_of_rows, append_dict_as_row_to_csv, \
add_column_headers_to_csv, csv_to_list, load_csv_into_dict
from .backtesting import pretty_print_backtest, \
pretty_print_backtest_reports_evaluation, load_backtest_reports

__all__ = [
'synchronized',
Expand Down
10 changes: 6 additions & 4 deletions investing_algorithm_framework/domain/utils/backtesting.py
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
import os
from datetime import datetime
from typing import List, Tuple

from tabulate import tabulate
from datetime import datetime
from investing_algorithm_framework.domain.models.backtesting import \
BacktestReportsEvaluation, BacktestReport

from investing_algorithm_framework.domain import DATETIME_FORMAT
from investing_algorithm_framework.domain.exceptions import \
OperationalException
from investing_algorithm_framework.domain import DATETIME_FORMAT
from investing_algorithm_framework.domain.models.backtesting import \
BacktestReportsEvaluation, BacktestReport
from .csv import load_csv_into_dict

COLOR_RED = '\033[91m'
Expand Down
8 changes: 4 additions & 4 deletions investing_algorithm_framework/infrastructure/__init__.py
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
from .repositories import SQLOrderRepository, SQLPositionRepository, \
SQLPortfolioRepository, SQLOrderFeeRepository, \
SQLPortfolioSnapshotRepository, SQLPositionSnapshotRepository
from .services import PerformanceService, CCXTMarketService
from .database import setup_sqlalchemy, Session, \
create_all_tables
from .models import SQLPortfolio, SQLOrder, SQLPosition, SQLOrderFee, \
SQLPortfolioSnapshot, SQLPositionSnapshot, \
CCXTOHLCVBacktestMarketDataSource, CCXTOrderBookMarketDataSource, \
CCXTTickerMarketDataSource, CCXTOHLCVMarketDataSource, \
CSVOHLCVMarketDataSource, CSVTickerMarketDataSource
from .repositories import SQLOrderRepository, SQLPositionRepository, \
SQLPortfolioRepository, SQLOrderFeeRepository, \
SQLPortfolioSnapshotRepository, SQLPositionSnapshotRepository
from .services import PerformanceService, CCXTMarketService

__all__ = [
"create_all_tables",
Expand Down
Loading

0 comments on commit 269949c

Please sign in to comment.