Exemplo n.º 1
0
    def do_with(self, args):
        '''Changes or displays the working set.'''
        args = args.split()
        if args:
            self.files = []
            for arg in args:
                # So that if arg is not a glob, it won't get removed
                # because it doesn't exist on the fs:
                globbed = list(flatten(glob.glob(arg)))
                if globbed:
                    self.files += globbed
                else:
                    self.files.append(arg)

        msg("Working set is: " + list_preview(self.files))
Exemplo n.º 2
0
    def output(self):
        random.shuffle(self.words)

        self.coverages = defaultdict(list)
        for i in xrange(self.NFOLDS):
            split = train_and_test_for_fold(self.words, i, self.NFOLDS)
            for coverage_type, selector in (
                    ('category', operator.itemgetter(1)),
                    ('lex'     , operator.itemgetter(0))):
                #msg('Computing %s coverage for fold %d', coverage_type, i)
                for mode in ('type', 'token'):
                    self.coverages[coverage_type + '.' + mode].append(
                            get_coverage(train=split.train, test=split.test, selector=selector, mode=mode) )

        for coverage_type, coverages in self.coverages.iteritems():
            msg('%s: %.2f%%', coverage_type, avg(coverages) * 100.0)
Exemplo n.º 3
0
    def output(self):
        random.shuffle(self.words)

        self.coverages = defaultdict(list)
        for i in xrange(self.NFOLDS):
            split = train_and_test_for_fold(self.words, i, self.NFOLDS)
            for coverage_type, selector in (('category',
                                             operator.itemgetter(1)),
                                            ('lex', operator.itemgetter(0))):
                #msg('Computing %s coverage for fold %d', coverage_type, i)
                for mode in ('type', 'token'):
                    self.coverages[coverage_type + '.' + mode].append(
                        get_coverage(train=split.train,
                                     test=split.test,
                                     selector=selector,
                                     mode=mode))

        for coverage_type, coverages in self.coverages.iteritems():
            msg('%s: %.2f%%', coverage_type, avg(coverages) * 100.0)
Exemplo n.º 4
0
 def print_output_destination():
     if self.output_file is None:
         msg("Filter output will be sent to the console.")
     elif self.output_file == PagerFilename:
         msg("Filter output will be paged with %s.", self.pager_path)
     else:
         msg("Filter output will be redirected to: %s", self.output_file)
Exemplo n.º 5
0
    def do_load(self, args):
        '''Loads filter modules given as package names.'''
        modules = args.split()

        old_modules = set(self.tracer.available_filters_dict.keys())
        self.tracer.add_modules(modules)
        modules = set(self.tracer.available_filters_dict.keys())

        added_modules = modules.difference(old_modules)
        if added_modules:
            msg("%s modules added:", len(added_modules))
            for module in added_modules:
                msg("\t%s", module)
        else:
            msg("No modules added.")
Exemplo n.º 6
0
    def redirecting_stdout(self, action, filter_name, filter_args):
        '''Calls the given _action_ with stdout temporarily redirected to _self.output_file_ or
a pager program.'''
        try:
            old_stdout = sys.stdout

            pipe = None

            if self.output_file == PagerFilename:
                pipe = self.create_pager_pipe()
                sys.stdout = pipe.stdin
            elif self.output_file:
                sys.stdout = open(self.output_file, 'w')

            action()

            if self.output_file == PagerFilename:
                if pipe:
                    sys.stdout.close() # Signal EOF
                    pipe.wait()

        except KeyboardInterrupt:
            if pipe:
                pipe.stdin.close()
                pipe.wait()

            msg("\nFilter run %s halted by user.", filter_run_name(filter_name, filter_args))

        except Exception, e:
            if pipe:
                pipe.stdin.close()
                pipe.wait()

            msg("Filter run %s halted by framework:", filter_run_name(filter_name, filter_args))
            # TODO: Exception no longer has a message field in Python 3.0, produces a DeprecationWarning
            # under Python 2.7
            msg("\t%s (%s)", e.message, e.__class__.__name__)

            self.last_exception = sys.exc_info()
Exemplo n.º 7
0
 def do_verbose(self, args):
     '''Produces more output during processing.'''
     if not self._verbose:
         self.set_verbose(True)
         msg("Will generate more output.")
Exemplo n.º 8
0
 def do_quiet(self, args):
     '''Produces less output during processing.'''
     if self._verbose:
         self.set_verbose(False)
         msg("Will generate less output.")