File: bp5dbg.py

package info (click to toggle)
adios2 2.10.2%2Bdfsg1-2
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 33,764 kB
  • sloc: cpp: 175,964; ansic: 160,510; f90: 14,630; yacc: 12,668; python: 7,275; perl: 7,126; sh: 2,825; lisp: 1,106; xml: 1,049; makefile: 579; lex: 557
file content (164 lines) | stat: -rwxr-xr-x 4,963 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
#!/usr/bin/env python3

import argparse
import glob
from os.path import basename, exists, isdir

from adios2.bp5dbg import DumpIndexTable, DumpMetaData, DumpMetaMetaData

MetadataIndexTable = []
WriterMap = []
status = True


def SetupArgs():
    parser = argparse.ArgumentParser()
    parser.add_argument(
        "FILE", help="Name of the input file (.bp, .bp/md.idx, " +
        ".bp/md.0 or .bp/data.XXX)")
    # parser.add_argument("--printdata", "-p",
    #                    help="Dump data of this variable as well", default="")
    parser.add_argument("--verbose", "-v",
                        help="More verbosity", action="count")
    parser.add_argument("--no-indextable", "-x",
                        help="Do not print index table md.idx",
                        action="store_true")
    parser.add_argument("--no-metadata", "-m",
                        help="Do not print metadata md.0",
                        action="store_true")
    parser.add_argument("--no-metametadata", "-M",
                        help="Do not print meta-metadata mmd.0",
                        action="store_true")
    parser.add_argument("--no-data", "-d",
                        help="Do not print data data.*", action="store_true")
    args = parser.parse_args()

    # default values
    args.idxFileName = ""
    args.dumpIdx = False
    args.metametadataFileName = ""
    args.dumpMetaMetadata = False
    args.metadataFileName = ""
    args.dumpMetadata = False
    args.dataFileName = ""
    args.dumpData = False

    # print("Verbosity = {0}".format(args.verbose))
    return args


def CheckFileName(args):
    if not exists(args.FILE):
        print("ERROR: File " + args.FILE + " does not exist", flush=True)
        exit(1)
    if isdir(args.FILE):
        if not args.no_indextable:
            args.idxFileName = args.FILE + "/" + "md.idx"
            args.dumpIdx = True
        if not args.no_metadata:
            args.metadataFileName = args.FILE + "/" + "md.[0-9]*"
            args.dumpMetadata = True
        if not args.no_metametadata:
            args.metametadataFileName = args.FILE + "/" + "mmd.[0-9]*"
            args.dumpMetaMetadata = True
        if not args.no_data:
            args.dataFileName = args.FILE + "/" + "data.[0-9]*"
            args.dumpData = True
        return

    name = basename(args.FILE)
    if name.startswith("data."):
        args.dataFileName = args.FILE
        args.dumpData = True

    elif name == "md.idx":
        args.idxFileName = args.FILE
        args.dumpIdx = True

    elif name.startswith("md."):
        args.metadataFileName = args.FILE
        args.dumpMetadata = True

    elif name.startswith("mmd."):
        args.metametadataFileName = args.FILE
        args.dumpMetaMetadata = True


def DumpIndexTableFile(args):
    global MetadataIndexTable
    global WriterMap
    global status
    indexFileList = glob.glob(args.idxFileName)
    if len(indexFileList) > 0:
        status, MetadataIndexTable, WriterMap = DumpIndexTable(
            indexFileList[0], True)
    else:
        print("There is  no BP% Index Table file as " + args.idxFileName)
        status = False
    return status


def DumpMetaMetadataFiles(args):
    global status
    mdFileList = glob.glob(args.metametadataFileName)
    if len(mdFileList) > 0:
        for fname in mdFileList:
            status = DumpMetaMetaData(fname)
    else:
        print("There are no BP% MetaMetadata files in   " +
              args.metametadataFileName)
        status = False
    return status


# xxx/md.X to xxx/md.idx
def GetIndexFileName(MDFileName):
    return MDFileName.rsplit('.', 1)[0] + ".idx"


def DumpMetadataFiles(args):
    global MetadataIndexTable
    global WriterMap
    global status
    mdFileList = glob.glob(args.metadataFileName)
    if len(mdFileList) > 0:
        if len(MetadataIndexTable) == 0:
            # need to parse index first
            IndexFileName = GetIndexFileName(mdFileList[0])
            status, MetadataIndexTable, WriterMap = DumpIndexTable(
                IndexFileName, False)

        if status:
            for fname in mdFileList:
                DumpMetaData(fname, MetadataIndexTable, WriterMap)
    else:
        print("There are no BP% Metadata files in   " + args.metadataFileName)
        status = False
    return status

# def DumpDataFiles(args):
#    dataFileList = glob.glob(args.dataFileName)
#    if len(dataFileList) > 0:
#        for fname in dataFileList:
#            DumpData(fname)
#    else:
#        print("There are no BP5 Data files in       " + args.dataFileName)


if __name__ == "__main__":

    args = SetupArgs()
    CheckFileName(args)
    # print(args)

    if args.dumpIdx:
        status = DumpIndexTableFile(args)

    if args.dumpMetaMetadata and status:
        status = DumpMetaMetadataFiles(args)

    if args.dumpMetadata and status:
        status = DumpMetadataFiles(args)

#    if args.dumpData:
#        DumpDataFiles(args)