Esempio n. 1
0
    def __init__(self, index):
        self.index = index
        self.currentIp = ""
        self.queue = MultiProcessingQueue()

        self.p = threading.Thread(target=crawl, args=(self, ))
        self.p.start()
Esempio n. 2
0
from faraday.client.model.controller import ModelController

from faraday.client.plugins.controller import PluginController
from faraday.client.plugins.manager import PluginManager

from faraday.client.managers.mapper_manager import MapperManager
from faraday.client.managers.reports_managers import ReportProcessor

from faraday.server.models import Workspace
from faraday.client.persistence.server import server

from faraday.config.configuration import getInstanceConfiguration

CONF = getInstanceConfiguration()
logger = logging.getLogger(__name__)
UPLOAD_REPORTS_QUEUE = MultiProcessingQueue()
UPLOAD_REPORTS_CMD_QUEUE = MultiProcessingQueue()
upload_api = Blueprint('upload_reports', __name__)


class RawReportProcessor(Thread):
    def __init__(self):

        super(RawReportProcessor, self).__init__()
        from faraday.client.start_client import setupPlugins
        setupPlugins()

        self.pending_actions = Queue()

        try:
            plugin_manager = PluginManager(
Esempio n. 3
0
def main(argv=None):  # IGNORE:C0111
    """Command line options."""

    if argv is not None:
        sys.argv.extend(argv)

    program_name = os.path.basename(sys.argv[0])
    program_version = "v%s" % __version__
    program_build_date = str(__updated__)
    program_version_message = '%%(prog)s %s (%s)' % (program_version, program_build_date)
    program_shortdesc = __import__('__main__').__doc__.split("\n")[1]
    program_license = '''%s - %s

  Created by user_name on %s.
  Copyright 2013 Freedom. All rights reserved.
  
  Licensed under the Apache License 2.0
  http://www.apache.org/licenses/LICENSE-2.0
  
  Distributed on an "AS IS" basis without warranties
  or conditions of any kind, either express or implied.

USAGE
''' % (program_name, program_shortdesc, str(__date__))

    # ----------------------------------------------------------------------------------------------------------------------
    enable_workers = (cpu_count() > 1)
    # ----------------------------------------------------------------------------------------------------------------------

    # Setup argument parser
    parser = ArgumentParser(description=program_license, formatter_class=RawDescriptionHelpFormatter)
    parser.add_argument("-v", "--verbose", dest="verbose", action="count",
                        help="set verbosity level [default: %(default)s]")
    parser.add_argument('-V', '--version', action='version', version=program_version_message)
    parser.add_argument('-g', '--grades', default='A,B,C,D,E,F,G',
                        help="Comma seperated list of credit grades to test [default: %(default)s]")
    parser.add_argument('-a', '--states', default='CA,AZ,FL,GA,IL,MD,NV,TX,NY',
                        help="Comma separated list of states to test [default: %(default)s]")
    parser.add_argument('-t', '--terms', default='36,60',
                        help="Comma separated list of loan terms to test [default: %(default)s]")
    parser.add_argument('-s', '--seed', default=100, help="Random Number Generator Seed [default: %(default)s]")
    parser.add_argument('-d', '--data',
                        default="https://resources.lendingclub.com/LoanStats3a.csv.zip,https://resources.lendingclub.com/LoanStats3b.csv.zip,https://resources.lendingclub.com/LoanStats3c.csv.zip",
                        help="Comma separated download paths for the notes data files [default: %(default)s]")
    parser.add_argument('-l', '--stats', default="LoanStats3a.csv.zip,LoanStats3b.csv.zip,LoanStats3c.csv.zip",
                        help="Comma separated list of input Loan Stats CSV files [default: %(default)s]")
    parser.add_argument('-c', '--csvresults', default="lc_best.csv",
                        help="Output best results CSV file [default: %(default)s]")
    parser.add_argument('-p', '--population_size', default=512, type=int, help="population size [default: %(default)s]")
    parser.add_argument('-i', '--iterations', default=4096, type=int,
                        help="how many Genetic Algorithm iterations to perform [default: %(default)s]")
    parser.add_argument('-e', '--elite_rate', default=0.05, type=float, help="elite rate [default: %(default)s]")
    parser.add_argument('-m', '--mutation_rate', default=0.05, type=float, help="mutation rate [default: %(default)s]")
    parser.add_argument('-k', '--check', default=False, action='store_true',
                        help="checking mode: open the CSV results file and filter the loans into a separate file [default: %(default)s]")
    parser.add_argument('-r', '--checkresults', default="LoanStatsNewFiltered.csv",
                        help="file name for the filtered results used during checking mode [default: %(default)s]")
    parser.add_argument('-z', '--zmq', default=True, action='store_true',
                        help="Use zmq libraries for multi-processing [default: %(default)s]")
    parser.add_argument('-q', '--sqlite', default=1, type=int,
                        help="Use sqlite as the core processing engine for the backtesting [default: %(default)s]")
    parser.add_argument('-f', '--fitness_sort_size', default=1000, type=int,
                        help="number of loans to limit the fitness sort size, the larger the longer and more optimal solution [default: %(default)s]")
    parser.add_argument('-y', '--young_loans_in_days', default=3 * 30, type=int,
                        help="filter young loans if they are younger than specified number of days [default: %(default)s]")
    parser.add_argument('-w', '--workers', default=enable_workers * cpu_count(), type=int,
                        help="number of workers defaults to the number of cpu cores [default: %(default)s]")
    parser.add_argument('-b', '--work_batch', default=75, type=int,
                        help="size of work batch size to give to each worker [default: %(default)s]")

    # Process arguments
    args = parser.parse_args()

    if args.population_size < args.workers:
        args.workers = 1
        enable_workers = 0

    if enable_workers > 0 and args.zmq:
        enable_zmq = utilities.check_for_pyzmq()
    else:
        enable_zmq = False

    random.seed(args.seed)

    csv_download_files = args.data.split(',')
    csv_stats_files = args.stats.split(',')

    for i in range(len(csv_stats_files)):
        if os.path.exists(csv_stats_files[i]):
            sys.stdout.write("Using %s as the stats file\n" % csv_stats_files[i])
        else:
            if i > len(csv_download_files):
                sys.stderr.write("This file does not exist locally: ", csv_stats_files[i],
                                 "but the corresponding download url does not exist either.",
                                 "Make sure the the number of comma separated download urls",
                                 "matches the comma seperate stats files", csv_stats_files)
                sys.exit(-1)
            sys.stdout.write("Downloading %s as data file\n" % csv_download_files[i])
            utilities.download_data(csv_download_files[i], csv_stats_files[i])

    if enable_workers:
        if enable_zmq:
            lcbt = ZmqLCBT(ConversionFilters, args, worker_idx=-1)
            lcbt.initialize()
            for worker_idx in range(args.workers):
                Process(target=zmq_worker, args=(worker_idx, args)).start()
            ga_test = ZmqGATest(BackTestFilters, lcbt, args)
            ga_test.run()
        else:
            # only need this one to initialize the data
            lcbt = LCBT(ConversionFilters, args, worker_idx=-1)
            lcbt.initialize()
            work_queue = MultiProcessingQueue()
            response_queue = MultiProcessingQueue()
            for worker_idx in range(args.workers):
                mp_worker(worker_idx, args, work_queue, response_queue)
            ga_test = ParallelGATest(BackTestFilters, lcbt, args, work_queue, response_queue)
            ga_test.run()
    else:
        lcbt = LCBT(ConversionFilters, args, worker_idx=-1)
        lcbt.initialize()
        ga_test = GATest(BackTestFilters, lcbt, args)
        ga_test.run()

    return 0