Exemple #1
0
 def __init__(self) -> None:
     """Initializes the backend server
     May raise:
     - SystemPermissionError due to the given args containing a datadir
     that does not have the correct permissions
     """
     arg_parser = app_args(
         prog='rotki',
         description=
         ('Rotki, the portfolio tracker and accounting tool that respects your privacy'
          ),
     )
     self.args = arg_parser.parse_args()
     self.rotkehlchen = Rotkehlchen(self.args)
     self.stop_event = gevent.event.Event()
     domain_list = []
     if self.args.api_cors:
         if "," in self.args.api_cors:
             for domain in self.args.api_cors.split(","):
                 domain_list.append(str(domain))
         else:
             domain_list.append(str(self.args.api_cors))
     self.api_server = APIServer(
         rest_api=RestAPI(rotkehlchen=self.rotkehlchen),
         cors_domain_list=domain_list,
     )
Exemple #2
0
 def __init__(self):
     self.args = app_args()
     self.rotkehlchen = Rotkehlchen(self.args)
     self.stop_event = Event()
     mainloop_greenlet = self.rotkehlchen.start()
     mainloop_greenlet.link_exception(self.handle_killed_greenlets)
     self.greenlets = [mainloop_greenlet]
     self.task_lock = Semaphore()
     self.task_id = 0
     self.task_results = {}
Exemple #3
0
 def __init__(self):
     self.args = app_args()
     self.rotkehlchen = Rotkehlchen(self.args)
     self.stop_event = Event()
     mainloop_greenlet = self.rotkehlchen.start()
     mainloop_greenlet.link_exception(self.handle_killed_greenlets)
     # Greenlets that will be waited for when we shutdown
     self.waited_greenlets = [mainloop_greenlet]
     # Greenlets that can be killed instead of waited for when we shutdown
     self.killable_greenlets = []
     self.task_lock = Semaphore()
     self.task_id = 0
     self.task_results = {}
Exemple #4
0
 def __init__(self):
     arg_parser = app_args(
         prog='rotkehlchen',
         description='Rotkehlchen Crypto Portfolio Management',
     )
     self.args = arg_parser.parse_args()
     self.rotkehlchen = Rotkehlchen(self.args)
     self.stop_event = Event()
     mainloop_greenlet = self.rotkehlchen.start()
     mainloop_greenlet.link_exception(self.handle_killed_greenlets)
     # Greenlets that will be waited for when we shutdown
     self.waited_greenlets = [mainloop_greenlet]
     # Greenlets that can be killed instead of waited for when we shutdown
     self.killable_greenlets = []
     self.task_lock = Semaphore()
     self.task_id = 0
     self.task_results = {}
Exemple #5
0
 def __init__(self) -> None:
     arg_parser = app_args(
         prog='rotki',
         description=
         ('Rotki, the portfolio tracker and accounting tool that respects your privacy'
          ),
     )
     self.args = arg_parser.parse_args()
     self.rotkehlchen = Rotkehlchen(self.args)
     self.stop_event = gevent.event.Event()
     domain_list = []
     if self.args.api_cors:
         if "," in self.args.api_cors:
             for domain in self.args.api_cors.split(","):
                 domain_list.append(str(domain))
         else:
             domain_list.append(str(self.args.api_cors))
     self.api_server = APIServer(
         rest_api=RestAPI(rotkehlchen=self.rotkehlchen),
         cors_domain_list=domain_list,
     )
Exemple #6
0
def data_faker_args() -> argparse.ArgumentParser:
    """Append to the Rotkehlchen argument parser and return it"""
    p = app_args(
        prog='data_faker',
        description='Rotkehlchen fake data generation tool',
    )
    p.add_argument(
        '--user-name',
        help='The name for the new user',
    )
    p.add_argument(
        '--user-password',
        help='The password for the new user',
        required=True,
    )
    p.add_argument(
        '--trades-number',
        help='The number of trades to automatically generate',
        default=100,
    )

    return p
Exemple #7
0
def data_faker_args() -> argparse.ArgumentParser:
    """Append to the Rotkehlchen argument parser and return it"""
    p = app_args(
        prog='data_faker',
        description='Rotkehlchen fake data generation tool',
    )
    p.add_argument(
        '--user-name',
        help='The name for the new user',
    )
    p.add_argument(
        '--user-password',
        help='The password for the new user',
        required=True,
    )
    p.add_argument(
        '--trades-number',
        type=int,
        help='The number of trades to automatically generate',
        default=100,
    )
    p.add_argument(
        '--seconds-between-trades',
        type=int,
        help='The min number of seconds between each trade. Default 1 day',
        default=86400,
    )
    p.add_argument(
        '--seconds-between-balance-save',
        type=int,
        help=
        'The min number of seconds between each balance save. Default 1 day',
        default=86400,
    )

    return p
Exemple #8
0
        # Success, save the result in the DB
        self.data.db.add_exchange(name, api_key, api_secret)
        return True, ''

    def delete_exchange_data(self, name):
        self.connected_exchanges.remove(name)
        self.trades_historian.set_exchange(name, None)
        delattr(self, name)
        setattr(self, name, None)

    def remove_exchange(self, name):
        if getattr(self, name) is None:
            return False, 'Exchange {} is not registered'.format(name)

        self.delete_exchange_data(name)
        # Success, remove it also from the DB
        self.data.db.remove_exchange(name)
        return True, ''

    def shutdown(self):
        log.info("Shutting Down")
        self.shutdown_event.set()


# For testing purposes only
if __name__ == '__main__':
    from rotkehlchen.args import app_args
    args = app_args()
    r = Rotkehlchen(args)
Exemple #9
0
def data_faker_args() -> argparse.ArgumentParser:
    """Append to the Rotkehlchen argument parser and return it"""
    p = app_args(
        prog='data_faker',
        description='Rotkehlchen fake data generation tool',
    )
    p.add_argument(
        '--user-name',
        help='The name for the new (or existing) user',
    )
    p.add_argument(
        '--user-password',
        help='The password for the new (or existing) user',
        required=True,
    )
    p.add_argument(
        '--trades-number',
        type=int,
        help='The number of trades to automatically generate',
        default=100,
    )
    p.add_argument(
        '--seconds-between-trades',
        type=int,
        help='The min number of seconds between each trade. Default 1 day',
        default=86400,
    )
    p.add_argument(
        '--seconds-between-balance-save',
        type=int,
        help='The min number of seconds between each balance save. Default 1 day',
        default=86400,
    )
    p.add_argument(
        '--command',
        type=str,
        choices=['mockall', 'statistics'],
        help='The type of operation data faken should do',
    )
    p.add_argument(
        '--from-timestamp',
        type=int,
        required=False,
        help='The time from which to create the fake statistics data generation',
    )
    p.add_argument(
        '--to-timestamp',
        type=int,
        required=False,
        help='The time until which to create the fake statistics data generation',
    )
    p.add_argument(
        '--assets',
        type=str,
        required=False,
        help='List of assets to generate for fake statistics',
    )
    p.add_argument(
        '--locations',
        type=str,
        required=False,
        help='List of locations to use for fake statistics',
    )
    p.add_argument(
        '--starting-amount',
        type=int,
        required=False,
        default=10000,
        help='The starting amount of net value in USD',
    )
    p.add_argument(
        '--max-amount',
        type=int,
        required=False,
        default=100000,
        help='The max amount of net value in USD to be able to get to',
    )
    p.add_argument(
        '--min-amount',
        type=int,
        required=False,
        default=1000,
        help='The min amount of net value in USD to be able to get to',
    )
    p.add_argument(
        '--go-up-probability',
        type=str,
        required=False,
        default='0.5',
        help='Number between 0 and 1.0 indicating probability that at each step number will go up',
    )
    return p