Exemplo n.º 1
0
 def __init__(self, logpath):
     self.patches = {}
     self.positions = {}
     self.steps = 0
     tpos = {}
     with open(logpath) as f:
         for value in parse(f):
             t = value['tag']
             if t == 'add':
                 if value['shape'] == 'circle':
                     pos = strToFTup(value['pos'])
                     k = value['id']
                     self.patches[k] = plt.Circle(pos, float(value['radius']), fc='y')
                     ax.add_patch(self.patches[k])
                     self.positions[k] = []
                     tpos[k] = pos
                 else:
                     print('Unknown shape ' + value['shape'])
             elif t == 'update':
                 tpos[value['id']] = strToFTup(value['pos'])
             elif t == 'step':
                 for k in self.patches.keys():
                     self.positions[k].append(tpos[k])
                 self.steps = self.steps + 1
             else:
                 print('Unknown tag ' + t)
Exemplo n.º 2
0
def _populate_lookup(path, lookup):
    with open(path, encoding="utf-8-sig") as f:
        reader = csv.DictReader(f)
        for row in reader:
            urn = row["urn"]
            kind = "person" if urn.count("pers") > 0 else "place"
            data = next(logfmt.parse([row.get("data", "")]), dict())
            named_entity, _ = NamedEntity.objects.get_or_create(
                urn=urn,
                defaults={
                    "title": row["label"],
                    "description": row["description"],
                    "url": row["link"],
                    "kind": kind,
                    "data": data,
                },
            )
            lookup[named_entity.urn] = named_entity
Exemplo n.º 3
0
    def parse_logs(self, df):
        for ind in df.index:
            logline = Log(0, 0, 0, "NULL", 0, 0, 0, 0)
            message = StringIO(df["events"][ind]["message"])
            for values in parse(message):
                for key, value in values.items():
                    if key == "path":
                        logline.path = value

                    elif key == "status":
                        logline.status_code = value

                    elif key == "time":
                        # convert it to IST
                        logline.time = value

                    elif key == "ip":
                        logline.ip = value

                    elif key == "latency":
                        logline.latency = value

                    elif key == "headers":
                        for ele in value[4:-1:].split("] "):
                            if "X-Tv-Sdk-Version" in ele:
                                logline.sdk_version = ele.replace(
                                    ":[", "").replace("]", "").replace(
                                        "X-Tv-Sdk-Version", "")

                            elif "X-Tv-Device-Model" in ele:
                                logline.model = ele.replace(" ", "_").replace(
                                    ":[", " ").replace("X-Tv-Device-Model", "")

                            elif "X-Tv-Transaction" in ele:
                                logline.transaction_id = ele.replace(
                                    ":[", " ").replace("]", "").replace(
                                        "X-Tv-Transaction", "")
                    else:
                        continue
            print(' '.join(logline.get_attributes()))
Exemplo n.º 4
0
 def _parse_msg(self, msg):
     msg = list(parse(io.StringIO(msg)))
     return msg[0]
Exemplo n.º 5
0
import sys
import pandas as pd
import json
from logfmt import parse
from io import StringIO

x = sys.stdin.readlines()
x = json.dumps(x)
df = pd.read_json(x)

message = StringIO(df[0][0])
for ele in parse(message):
    for k, v in ele.items():
        print(k, v)

# for ele in x:
#     print(ele)
#     break
# print((pd.DataFrame([x][0])))