示例#1
0
def parse_csv(csv, out, bench, bench_out):
    """Inspect a CSV file to figure out about the dialect, comment and header lines and the overall structure."""

    click.echo("Input CSV {}".format(csv))

    table = anycsv.reader(csv)

    if out:
        if out.endswith(".gz"):
           fout = gzip.open(out, 'wt', newline='')
        else:
            fout = open(out, "wt")
    else:
        fout=sys.stdout

    import csv
    writer = csv.writer(fout)

    for row in table:
        writer.writerow(row)

    if out:
        fout.close()

    if bench:
        click.echo("TIMING")
        click.echo(Timer.printStats())
    if bench_out:
        Timer.to_csv(bench_out)
示例#2
0
def showcase_pattern(local=None,
                     provider=None,
                     method=None,
                     size=10,
                     seed="ascd",
                     pattern1=True,
                     pattern2=False,
                     verbose=False):

    for l in list_locals():
        if not local or l == local:
            for pm in list_providers_methods(local=l,
                                             max_unqiue=size,
                                             only_max=True,
                                             seed=seed):
                p = "{}.{}".format(pm[0], pm[1])
                key = "{}-{}".format(l, p)
                try:

                    header, data = create_data_provider_list(
                        providers=[["{}".format(p), 1]],
                        size=size,
                        local=l,
                        seed=seed)

                    data = data[header[0]]
                    data = [str(d) for d in data]

                    #res=None
                    #if pattern1:
                    #    with Timer(key="{}.{}-m1".format(key, size)) as t1:
                    #        res=pattern(data)

                    print("\n### {}  - {}".format(key, pm[2]))
                    if verbose:
                        print_columns(data, 6)
                    #else:
                    #    print(" #=< {}".format(data))
                    #print(" #=> {}".format(res))
                    #print(" TIMING: {}".format(Timer.printStats(keys=["{}.{}-m1".format(key, size)], header=False)))
                except Exception as e:
                    print(" #- {}  - {}".format(key, pm[2]))
                    print(" #=> {} {}".format(type(e).__name__, e))

    print(Timer.printStats(keys=['pattern1']))
    print(Timer.printStats())
示例#3
0
def _pattern1(key, values):
    with Timer(key="p1-{}".format(key)) as t:
        pat = value_pattern_detection.pattern(values, pf=pf)
        print("---- value_pattern_detection.pattern(values, pf=pf) ----")
        print(" ", pat)
        print("   CALL: pattern_to_string(pat, collapse_level=2)")
        pat_str = pattern_to_string(pat, collapse_level=2)
        print("   P1>> {}".format(pat_str))
        print("-----------")
示例#4
0
def inspect_csv(csv, bench,bench_out):
    """Inspect a CSV file to figure out about the dialect, comment and header lines and the overall structure."""

    click.echo("Input CSV {}".format(csv))

    reader = anycsv.reader(csv)
    for i,row in enumerate(reader):
        pass

    click.echo("{:-^80}".format(" Table Info "))
    click.echo("    input: {}".format(reader.csv))
    click.echo(" encoding: {}".format(reader.encoding))
    click.echo("      md5: {}".format(reader.digest))
    click.echo("  dialect:")
    for k,v in reader.dialect._asdict().items():
        click.echo("    {}: {}".format(k,v))

    if bench:
        click.echo("TIMING")
        click.echo(Timer.printStats())
    if bench_out:
        Timer.to_csv(bench_out)
示例#5
0
def demo(size, provider, method, local, p1, p2, groups):
    """Showcase pattern generator based on mimesis data provider"""

    click.echo(
        "datagenerator(local={}, size={}, provider={}, method={})".format(
            local, size, provider, method))
    gen = datagenerator(local=local,
                        size=size,
                        provider=provider,
                        method=method)

    for key, values in gen:
        print("\n-- {}".format(key))
        print_columns(values, columns=None, max_rows=4, indent=1)
        if p1:
            _pattern1(key, values)
        if p2:
            _pattern2(key, values, groups)
        print(Timer.printStats(key=key))

    print("Overall timming stats")
    print(Timer.printStats())
示例#6
0
def pattern3(key, values):
    with Timer(key=key) as t:
        pat = value_pattern_detection.pattern(values, pf=pf)
    print(t.printStats(key=key))

    print(pat)
    pat_str = pattern_to_string(pat, collapse_level=0)
    print("PAT>> {} {}".format(pat_str, pat))
    pat_str = pattern_to_string(pat, collapse_level=1, with_gap=False)
    print("PATL1>> {} {}".format(pat_str, pat))
    pat_str = pattern_to_string(pat, collapse_level=2)
    print("PATL2>> {} {}".format(pat_str, pat))

    hl = higher_level(pat)
    hl_str = pattern_to_string(hl, collapse_level=2)
    print("HL>> {} {}".format(hl_str, hl))
示例#7
0
def demo(size, provider, method, local):
    """Showcase pattern generator based on mimesis data provider"""

    click.echo("datagenerator(local={}, size={}, provider={}, method={})".format(local, size, provider, method))
    gen = datagenerator(local=local, size=size, provider=provider, method=method)

    for key, values in gen:
        print("\n-- {}".format(key))
        print_columns(values, columns=None, max_rows=4, indent=1)

        with Timer(key=key) as t:
            pat = value_pattern_detection.pattern(values, pf=pf)


        print(" ",pat)
        print("  CALL: pattern_to_string(pat, collapse_level=0)")
        pat_str = pattern_to_string(pat, collapse_level=0)
        print("   >> {}".format(pat_str))

        print("  CALL: pattern_to_string(pat, collapse_level=1)")
        pat_str = pattern_to_string(pat, collapse_level=1)
        print("   >> {}".format(pat_str))

        print("  CALL: pattern_to_string(pat, collapse_level=2)")
        pat_str = pattern_to_string(pat, collapse_level=2)
        print("   >> {}".format(pat_str))

        print("  CALL: pattern_to_string( higher_level(pat), collapse_level=2)")
        hl = higher_level(pat)
        print("    ", hl)
        hl_str = pattern_to_string(hl, collapse_level=2)
        print("   >> {}".format(hl_str))

        print(t.printStats(key=key))

    print("Overall timming stats")
    print(t.printStats())
示例#8
0
    ('a', ['+10', '-20', '40']),
    ('a', ['10', '20', '40']),
    ('a', ['+10', '+20', '+40']),
    ('a', ['-10', '-20', '-40']),
]
#gen=datetime

max_pattern = 2
#provider, method=None, None

for key, values in gen:
    print("\n-- {}".format(key))
    print(" V: {}".format(values[:10]))

    patterns = translate_all(values,
                             trans_table=string_to_uc_level2,
                             trans_func=translate)
    print(" P: {}".format(patterns[:10]))

    # L1 = l1_aggregate(patterns)
    # print(" L1: {}".format(L1))
    #
    # L2 = l2_aggregate(grouped=L1)
    # print(" L2: {}".format(L2))

    patter2(values, max_pattern=max_pattern)

    pattern3(key, values)

print(Timer.printStats())
示例#9
0
def _pattern2(key, values, groups):
    with Timer(key="p2-{}".format(key)) as t:
        print("---- pattern2(values, max_pattern={}) ----".format(groups))
        pm = pattern2(values, max_pattern=groups)
        print("   P2>>  {}".format(pm.info()))
        print("-----------")