{
  "ml": {
    "v": "7",
    "eng": "2.8.0",
    "lvl": -1,
    "conf": 0,
    "mods": [
      {
        "cls": 0,
        "raw": 0.022274802,
        "rte": "az",
        "prob": 0.022274802
      },
      {
        "cls": 0,
        "raw": 0.010279626,
        "rte": "az/whl",
        "prob": 0.010279626
      }
    ],
    "prob": 0.022274802,
    "files": [
      {
        "id": 0,
        "lvl": -1,
        "conf": 0,
        "prob": 0.0222748015075922,
        "type": "whl"
      },
      {
        "id": 1,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000010589758858259302,
        "type": "python"
      },
      {
        "id": 2,
        "lvl": -1,
        "conf": 0,
        "prob": 0.00001868605613708496,
        "type": "python"
      },
      {
        "id": 7,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000009079773917619605,
        "type": "registry"
      }
    ],
    "version": "v18.18",
    "analyzed_at": "2026-09-01T22:28:01Z"
  },
  "path": "html_testRunner-1.0.2-py2.py3-none-any.whl",
  "raw": {
    "files": [
      {
        "id": 0,
        "ctx": [
          {
            "b": "p!H([6Awak2MRw!jXz2m}JDKi005.[000]q002Mizerf.B97r5zF\u003c3afje72zFsi1uOlqyccwHY.xoXC\u0026K=\u003e:.WY2arhQ1NJVB1I)jNzNcqqhH!dhDN*}pw\u0026VJE+8u#+WQX\u003cjxjjG\u003cD#GAh^L7-!eraextt@}U+-+i#C/-\u003cvSI=QX",
            "ln": 0
          }
        ],
        "mol": "H₂(DbF₂)",
        "sha": "1acb298399b0b034167f4e0765464ef14ac6c689a7ceeecef55af5264ebf3b9b",
        "path": "html_testRunner-1.0.2-py2.py3-none-any.whl",
        "risk": 4,
        "size": 10046,
        "type": "whl",
        "facts": {
          "metrics": {
            "whl": {
              "native_extension_count": 0
            },
            "file": {
              "size": 10046,
              "entropy": 7.88
            },
            "binary": {
              "peak_region_bytes": 9216,
              "peak_region_entropy": 7.81
            },
            "archive": {
              "file_count": 9,
              "member_count": 9,
              "script_count": 3,
              "zip_bomb_ratio": 3.71,
              "compressed_size": 8688,
              "directory_count": 0,
              "executable_count": 0,
              "extra_field_size": 0,
              "noise_file_count": 0,
              "compression.ratio": 0.34,
              "hidden_file_count": 0,
              "uncompressed_size": 25858,
              "crc_collision_count": 0,
              "entry_comment_count": 0,
              "max_filename_length": 47,
              "rtlo_filename_count": 0,
              "format.regular_count": 9,
              "nested_archive_count": 0,
              "path_traversal_count": 0,
              "symlink_escape_count": 0,
              "security.setgid_count": 0,
              "security.setuid_count": 0,
              "security.sticky_count": 0,
              "double_extension_count": 0,
              "duplicate_member_count": 0,
              "security.symlink_count": 0,
              "unicode_filename_count": 0,
              "homoglyph_filename_count": 0,
              "security.encrypted_count": 0,
              "timing.mtime_unique_count": 3,
              "timing.mtime_unique_ratio": 0.33,
              "misplaced_executable_count": 0,
              "timing.mtime_outlier_count": 4,
              "timing.mtime_dominant_count": 5,
              "timing.mtime_spread_seconds": 40,
              "timing.sentinel_mtime_count": 0,
              "security.world_writable_count": 0,
              "timing.mtime_dominant_fraction": 0.56,
              "compression.method_counts.deflate": 9
            }
          }
        },
        "ident": {
          "name": {
            "value": "html_testRunner",
            "source": "whl.distribution",
            "verified": false
          },
          "urls": [
            {
              "url": "https://github.com/oldani/HtmlTestRunner",
              "kind": "homepage",
              "source": "whl.home_page"
            }
          ],
          "trust": "unsigned",
          "emails": [
            "ordanisanchez@gmail.com"
          ],
          "authors": [
            {
              "name": "Ordanis Sanchez Suero",
              "role": "author",
              "email": "ordanisanchez@gmail.com",
              "source": "whl.author"
            }
          ],
          "version": {
            "value": "1.0.2",
            "source": "whl.version",
            "verified": false
          }
        },
        "traits": [
          {
            "id": "metadata/package/manifest/ecosystem::pkginfo-summary-field",
            "conf": 0.9,
            "crit": 1,
            "desc": "Declares Python package summary",
            "from": [
              {
                "file": 6
              }
            ]
          },
          {
            "id": "metadata/package/manifest/ecosystem::pkginfo-core-metadata",
            "conf": 1.0,
            "crit": 1,
            "desc": "Declares Python Core Metadata version",
            "from": [
              {
                "file": 6
              }
            ]
          },
          {
            "id": "micro-behaviors/fs/directory/cwd::python-os-getcwd",
            "conf": 0.9,
            "crit": 3,
            "desc": "Calls Python os.getcwd",
            "from": [
              {
                "file": 2
              }
            ]
          },
          {
            "id": "micro-behaviors/fs/file/open::write-append-create-mode",
            "conf": 0.85,
            "crit": 3,
            "desc": "Python file opened for write or append"
          },
          {
            "id": "metadata/package/manifest/ecosystem::pkginfo-name-field",
            "conf": 0.9,
            "crit": 1,
            "desc": "Declares Python package name",
            "from": [
              {
                "file": 6
              }
            ]
          },
          {
            "id": "micro-behaviors/communications/email/address::google-consumer-email-domain-suffix",
            "conf": 0.55,
            "crit": 3,
            "desc": "Gmail consumer email domain suffix",
            "from": [
              {
                "file": 1
              }
            ]
          },
          {
            "id": "metadata/package/manifest/ecosystem::pkginfo-version-field",
            "conf": 0.9,
            "crit": 1,
            "desc": "Declares Python package version",
            "from": [
              {
                "file": 6
              }
            ]
          },
          {
            "id": "micro-behaviors/data/source/dynamic/reflect::traceback-next-text",
            "conf": 0.88,
            "crit": 3,
            "desc": "Traverses to the next Python traceback",
            "from": [
              {
                "file": 2
              }
            ]
          }
        ]
      },
      {
        "ctx": [
          {
            "b": "boOM/eG!Lwwnb{]iV@M!w?t$+eH\u0026sVw].*batdXSzF\u003c3aazCXiz/P}xnk@qSraQb)qGV\u003e{wPwa+3svdGB-.qnA:Je@jS\u003e{)b2rk\u0026vqY!2ax8Y^v}YC1ax9z]A=icCa{}W:wO\u003e\u003c\u0026y*QJ(jS(a\u003cA+5P@x(^Z2v}YC1kXB}xx(2ziz/3\u003ceuTE$/A=U@kzEl-[jS(abe?![kcKG",
            "ln": 0,
            "col": 1,
            "line": 1
          }
        ],
        "depth": 1,
        "facts": {
          "imp": [
            [
              "",
              ".runner"
            ],
            [
              "",
              ".runner.HTMLTestRunner"
            ]
          ],
          "metrics": {
            "ast": {
              "max_depth": 4,
              "call_count": 0,
              "node_count": 36
            },
            "file": {
              "size": 162,
              "entropy": 4.91
            },
            "text": {
              "lines": 7,
              "top_char": 95,
              "max_ws_run": 1,
              "digit_ratio": 0.04,
              "space_count": 15,
              "char_entropy": 4.91,
              "unique_chars": 42,
              "top_char_null": 0,
              "string_density": 0.43,
              "top_char_ratio": 0.07,
              "avg_line_length": 22.14,
              "max_line_length": 40,
              "empty_line_ratio": 0.29,
              "last_line_length": 21,
              "whitespace_ratio": 0.14,
              "identifier_density": 0.71,
              "line_length_stddev": 15.41,
              "normalized_string_count": 1.13,
              "normalized_unique_identifiers": 1.78
            },
            "binds": {
              "count": 3
            },
            "binary": {
              "peak_region_bytes": 162,
              "peak_region_entropy": 4.91
            },
            "imports": {
              "count": 2,
              "relative": 2,
              "relative_ratio": 1,
              "third_party_count": 2,
              "third_party_ratio": 1
            },
            "strings": {
              "bytes": 53,
              "count": 3,
              "avg_length": 17.67,
              "max_length": 25,
              "avg_entropy": 3.22,
              "email_count": 1,
              "entropy_stddev": 0.92
            },
            "comments": {
              "chars": 22,
              "count": 1,
              "lines": 1,
              "to_code_ratio": 0.17
            },
            "identifiers": {
              "count": 5,
              "unique": 5,
              "avg_length": 10,
              "max_length": 14,
              "min_length": 6,
              "avg_entropy": 2.57,
              "reuse_ratio": 1,
              "length_stddev": 2.61,
              "all_lowercase_ratio": 0.8,
              "double_underscore_count": 3,
              "underscore_prefix_count": 3
            }
          }
        },
        "id": 1,
        "path": "html_testRunner-1.0.2-py2.py3-none-any.whl!!HtmlTestRunner/__init__.py",
        "pid": 0,
        "risk": 1,
        "sha": "01a89a4f3553c53389160f3f2f76609c4d5e753c01ec1268eb9a379f384cb4ca",
        "size": 162,
        "traits": [
          {
            "id": "micro-behaviors/communications/email/address::google-consumer-email-domain-suffix",
            "conf": 0.55,
            "crit": 3,
            "desc": "Gmail consumer email domain suffix",
            "spans": [
              [
                128,
                10
              ]
            ]
          }
        ],
        "type": "python"
      },
      {
        "ctx": [
          {
            "b": "x(d*cA=-BxA%=R#AbP=saAI*H3tBu@z/P}xBzkP63tBu@z/P}xBAg/1wNY7Tyyj=)AbP=sazLRdyge\u003e83tar%z6i$sx([DdB95Ksze:AlBrBK]B97q\u003eB9hqvefFq0wQ5q@wPI@\u003ewPJ0gBp8S2z/3RtzFsimwPI@CA+frmy\u0026*!lze:AlBrCg7x(4x\u0026B94-@By/rdy*?A%uU0\u003e\u003eauZ\u0026=B1RAuBz9pwz!T8qz/WKIvrufnwnc74vqPN7uTA",
            "ln": 0,
            "col": 1,
            "line": 1
          },
          {
            "b": "x(mo+e*rs-arR^HarR^HzeS%cy?j.Lar\u00260parR^HA+frmy\u0026*^.az(4cB.\u003eRid\u003ce}BB97]2B7D$huV6p?wNw^KarR^HA+funA=91uwPJ0gBp5uZv@bN{B0a*?wPI@+zF0/nz^)D)v@%dX3lQDlar\u00260Na%oJ\u0026wPhYkx(mK3A=2lbx(v(ivpBd$BrCWswGUMewN/\u003e8x(v(iz!pb2aARgoBrCBiBzbP6e*8tZa{[V1arR^Pq=MgLmn)boavXT*oJs$VefEwVqCQgwax7{8p:)IIaAy[dxjSFCefD/03jm)#arUiaw/$C/x-",
            "ln": 555,
            "col": 23,
            "line": 23
          },
          {
            "b": "arR^HB7Gf1e[G6zauZ\u0026UA=IHfarR^HarR!FwO+%hB97@hB-X-?aARgoByf61B9hqve)\u0026Wwwn=QjuU0O!vg1b1arR^HarU-py?tqvByX%6AV^H/By/JnuVG.0B.(dLuVQs1wPz/#wmoN*3jm)#arR^HarU-py?tqwwPI%2wmY*(A+PGmx(v(ijS[/Sy?tp",
            "ln": 1001,
            "col": 5,
            "line": 39
          },
          {
            "b": "ay]4}azCvmB7Gf1dlm!UarR^HarR!EwPS6nzxK1iy?tqwwPI%2x\u003edLTarR^HwmYu}By/JnuUj1\u0026x(^%0wghIgy?taS3lQDlarR^HaAIagw?EUhvq{p0wm6B)zdK?May2l@arR^HarR^HarR!FwO+%hBy/JnuVG.0B.(dLB98ttuVZ10wGSMEB7Gf1e{7VCByf61A@",
            "ln": 1536,
            "col": 4,
            "line": 54
          },
          {
            "b": "BspG}wQ5q@wPI@\u003ewPJ0gBsxlTarR^Ha%FiNk{gnXB95KBwPJ0gBrC7fvrlGjBzb98az2!pA+frkaARgoBrCQnB9hqvB0bgmav{P\u003ey+u?Oa%Ev3arR^HwmYu}uTEI+x()Y?d05%ow?k6CBAg@3z7D/uwPIv4x(Ffdz/fREaA?spvScs4BA]zWwO+^]",
            "ln": 1870,
            "col": 21,
            "line": 68
          },
          {
            "b": "l2Z^OzE^/hviu}izF0/fv@bN{B0\u00268LzY\u003cdnwGUS1C4CLlByxi5wPP5hx(!wsvqYP#B7GDmayLQ1arR^HarR^HarR!pvqG:?vpK6}zdN*5z!6#jzY\u0026I2ay!?@y?mc1vTf8qBz(a$wPI@ozdN*5z!7EAa%EvparR^HarR!Gvrc0(Bye\u0026#B963yAbYv",
            "ln": 2450,
            "col": 13,
            "line": 83
          },
          {
            "b": "wHP5narR^HarR^HarR^HwO=6)aAIagw?ERjBAoFIarR^HarR^HarR^HarR^HB7Gf1e]#bPwNPBdCxdztwHIRkz/P@bB98BK3lQDlarR^HaAIagw?EO4y\u00260M?v@0hIay!?@y*{*.yygy\u003earR!qwO95$wPQsKB7ol8Acb/jzyxNqy?tjvBy/Jndlm!UarR^HarR^Ja%FdcwPS6nzxK4mwGV8aB95KnwPIv4x(w9cz/cXiw/$#fBrCm9C4z!rwPI@ozEEx[e*8tZa{]CnarR^HarUikv{-?ZA=Vtfy?W=#auZ\u0026?wPI@CB7/GjBvoXYv@=p5BzkVhc[bGCarR^HarR!vw/#eay?tqgwPIv4x(Ffdz/fRsvqV",
            "ln": 2990,
            "col": 76,
            "line": 96
          },
          {
            "b": "v%8)8az1$\u003exDRe6BzbP6e*8tZa{]CnarR^HarU-py?tqvByxiiuVZ10wGTbUBzkP6e{7/AwHF#marR^HarR^HraQb)qE%](y\u0026?pJByxiiraQb)d05%ow?k6DwPI@x3jm)#arR^HarUxgaAIagw?Fdrz*aG-y=R[CarR^HarR^HarR!FwO+%hB98ClvqNSvAS",
            "ln": 3440,
            "col": 30,
            "line": 110
          },
          {
            "b": "k$K-)z/M%?qC{p*aARJABzbkdB98ClvqNR7arR^HarR^Ha%FirarR^HarR^Hw]zYjBy/JnuUKy\u0026z.92wB.$#vazCZowPz*fA=TnGarR^HarR^HarR^HB7Gf1e]#bPwNPBdCxdztwO=ljB7Gf1e]$Pyvrb^#z/NMY3lQDlarR^HarR^HaAIagw?Fc",
            "ln": 6094,
            "col": 39,
            "line": 185
          },
          {
            "b": "y?kjwa%Fir3lQDlarR^HaARgoBAp!#D0+V8B97]2B7DESaBwIz3lQDlarR^HazbLjaARgoBAnNszxHuGwO+%hB9g#5wPI{7B1wCPwO+%hw)]y\u0026B-I5mefG1By?tqhA=M8sB1wCPwO+%hB8bGeAaJMeiTM#LarR^HarR^HarUomAV/EnB97=6zF0/fx(k5nwPI%miTL",
            "ln": 6619,
            "col": 52,
            "line": 197
          },
          {
            "b": "wPI]N3lQDlarR^HarR^HaAITkBAITSvq{f%zE+dyp*[A^iV@=$cOx1HA=2lbd06Jvv}x.5djCPDarR^HarR!vw/$X]x(4{jwPG)tarR^HarR^HarR^HB97\u0026jB-Pfzz#",
            "ln": 7604,
            "col": 16,
            "line": 221
          },
          {
            "b": "B7D)BBy/JnuT)I=wPIi{x(!wBiTM#LarR^HarR\u003cLa%o={BAIRwayMyex(!wsCwhejaARgoBrCEfzdK\u0026dAV![7B7n{6BzkVhefG1QvruTkayPd#az2Olz/MgcarR^HarR^HarR!zB7VRfw/$X]x(1]gAV/Bsx(CWEa%FirarR^HarR^HBy/JnuV6p?",
            "ln": 8333,
            "col": 38,
            "line": 240
          },
          {
            "b": "B7ol8Acb/jzxJ\u003eraARgoBye]]zdK4YarR^HarR^HB97\u0026jB-OV*asFQUBZ[])B8@YWasyYdzF9K3cOcw/CvtJfx(mMhefDrOzF0/mdo*[9B96=TB7D$xB-.bizdLpNt)Z]YarR^HarR!rA=I",
            "ln": 8601,
            "col": 23,
            "line": 245
          },
          {
            "b": "By=OpxK@rbwPhNdBrCgfy?j-6zxK4mwGUS1C4CLlAa9\u003c4e*8tZa{]CnarR^HarUfpA=L-eByeM)AV^H/z/WKzwPRBawge(larR^HarR^Hwnc6\u003eBz\u0026o+aA8rNAa9\u003c4e]2rszyx1qA=L-eByeM)AX5sXA+fidA==vIefF\u003eNBz#wAdgdguarR^HarUxgaz#ataA8rNAa9\u003c4e[GowB98EKwnc6\u003eBz\u0026P?3lQDlarR^HarR^HaA8rNzddi\u003ewnc79c$E4juVZin3lQDlarR^HaAg+hxKtv=y?j.LaA8rNAa9\u003c4e]2rszyx4fA:J{befF$AAbP=suV6p?wHN%earR^HarR!Jx([2hz/xo9c#-QpxKtv=y?kducWc{!ayPslA+fidA=+V2x(4uw3lQDlarR^HarR^HaAz4jz/P@bw[=6)e{ztIBy=\u003evwPhNdBsvL7arR^HwmYu}uUaE(uUKy\u0026z^NQ8uVQsfx(mMiB7Gf1efFIAAX5tPwPI@xiTM#LarR^HarR\u003cLa%ol\u003ezGYPiBAnNkaAI*He[GoquUKy\u0026zZW4^B94",
            "ln": 11057,
            "col": 19,
            "line": 309
          },
          {
            "b": "BzbPgauR!fg9y^HC)UVparR^HarR)KarR^HarR^HAa9*e3jm)#arR^HarR)Kra]#!ay/tbwPF#8x(W={BzMjBw].*baAhQFxM4=zaA.NoBAz8nBp6ckarR^HarUluv%00nwH[%EvqH6$efG4zauZ\u0026UA=IHfarR^HarR^Kax95\u0026A3fmlB95KBB-88dAV/EAvpJ\u003eTvpK6}y?m^3y\u0026Y}aarR^HarR!JxLzo]aAR6nvqYP#B7Gf1e)\u0026sluVGZ]wP?H1Byfc0uU\u003cp%wO-=pvKTtBarR^HarR^HarR^HByDvQaAR6BByFP{wQ5q73lQDlarR^HazCBgwQ4ZbD2Nsqx(+zswPI@Cw)]y\u0026B-I4ZCW\u003er7BzkVhiTM#LarR^HarR^HarR)Kq!{8^ayPtjwPz(xc[coXA:-D?vQS+Zaz+RjwO=z{arR^HarR^HarR^Hy?mG%Bz8^WaAIagw?EC2z/]@tuVGY",
            "ln": 11814,
            "col": 54,
            "line": 326
          },
          {
            "b": "x(mH6ayPq4aAITB3lQDlarR^Haz2C2z!9N1xcotWxjVf[BAzKKB9R*VB97@hB-YeScUmg9z!9N1xd2kMcV%JyeJtab3lQDlarR^Haz++fwPF$Sax@aUarR^HarR^Hw]zX",
            "ln": 13124,
            "col": 53,
            "line": 361
          }
        ],
        "depth": 1,
        "facts": {
          "imp": [
            [
              "",
              "os.path.join"
            ],
            [
              "",
              "os.path.dirname"
            ],
            [
              "",
              "jinja2.Environment"
            ],
            [
              "",
              "jinja2.FileSystemLoader"
            ],
            [
              "",
              "jinja_env.get_template"
            ],
            [
              "",
              "loaded_template.render"
            ],
            [
              "",
              "type"
            ],
            [
              "",
              "range"
            ],
            [
              "",
              "self.test_result.getDescription"
            ],
            [
              "",
              "self.test_result._exc_info_to_string"
            ],
            [
              "",
              "testcase_name"
            ],
            [
              "",
              "test_method.id"
            ],
            [
              "",
              "subTest.id"
            ],
            [
              "",
              "TextTestResult.__init__"
            ],
            [
              "",
              "target_list.append"
            ],
            [
              "",
              "test_info.test_finished"
            ],
            [
              "",
              "self.stream.writeln"
            ],
            [
              "",
              "\"{} ({:3f})s\".format"
            ],
            [
              "",
              "self.stream.write"
            ],
            [
              "",
              "test.shortDescription"
            ],
            [
              "",
              "str"
            ],
            [
              "",
              "time.time"
            ],
            [
              "",
              "TestResult.startTest"
            ],
            [
              "",
              "self.stream.write"
            ],
            [
              "",
              "self.getDescription"
            ],
            [
              "",
              "self.stream.write"
            ],
            [
              "",
              "sys.stdout.getvalue"
            ],
            [
              "",
              "sys.stderr.getvalue"
            ],
            [
              "",
              "self._save_output_data"
            ],
            [
              "",
              "TextTestResult.stopTest"
            ],
            [
              "",
              "time.time"
            ],
            [
              "",
              "callable"
            ],
            [
              "",
              "self.callback"
            ],
            [
              "",
              "self._save_output_data"
            ],
            [
              "",
              "self._prepare_callback"
            ],
            [
              "",
              "self.infoclass"
            ],
            [
              "",
              "self._save_output_data"
            ],
            [
              "",
              "self.infoclass"
            ],
            [
              "",
              "self.failures.append"
            ],
            [
              "",
              "self._exc_info_to_string"
            ],
            [
              "",
              "self._prepare_callback"
            ],
            [
              "",
              "self._save_output_data"
            ],
            [
              "",
              "self.infoclass"
            ],
            [
              "",
              "self.errors.append"
            ],
            [
              "",
              "self._exc_info_to_string"
            ],
            [
              "",
              "self._prepare_callback"
            ],
            [
              "",
              "self._save_output_data"
            ],
            [
              "",
              "self.infoclass"
            ],
            [
              "",
              "self.errors.append"
            ],
            [
              "",
              "self._exc_info_to_string"
            ],
            [
              "",
              "self._prepare_callback"
            ],
            [
              "",
              "self._save_output_data"
            ],
            [
              "",
              "self.infoclass"
            ],
            [
              "",
              "self.skipped.append"
            ],
            [
              "",
              "self._prepare_callback"
            ],
            [
              "",
              "self.stream.writeln"
            ],
            [
              "",
              "self.stream.writeln"
            ],
            [
              "",
              "'{} [{:3f}s]: {}'.format"
            ],
            [
              "",
              "test_info.get_description"
            ],
            [
              "",
              "self.stream.writeln"
            ],
            [
              "",
              "self.stream.writeln"
            ],
            [
              "",
              "test_info.get_error_info"
            ],
            [
              "",
              "isinstance"
            ],
            [
              "",
              "tests_by_testcase[testcase_name].append"
            ],
            [
              "",
              "len"
            ],
            [
              "",
              "list"
            ],
            [
              "",
              "filter"
            ],
            [
              "",
              "len"
            ],
            [
              "",
              "list"
            ],
            [
              "",
              "filter"
            ],
            [
              "",
              "len"
            ],
            [
              "",
              "list"
            ],
            [
              "",
              "filter"
            ],
            [
              "",
              "len"
            ],
            [
              "",
              "list"
            ],
            [
              "",
              "filter"
            ],
            [
              "",
              "status.append"
            ],
            [
              "",
              "'Pass: {}'.format"
            ],
            [
              "",
              "status.append"
            ],
            [
              "",
              "'Fail: {}'.format"
            ],
            [
              "",
              "status.append"
            ],
            [
              "",
              "'Error: {}'.format"
            ],
            [
              "",
              "status.append"
            ],
            [
              "",
              "'Skip: {}'.format"
            ],
            [
              "",
              "str"
            ],
            [
              "",
              "str"
            ],
            [
              "",
              "test_id.split"
            ],
            [
              "",
              "self._test_method_name"
            ],
            [
              "",
              "test_cases_list.append"
            ],
            [
              "",
              "self._test_method_name"
            ],
            [
              "",
              "int"
            ],
            [
              "",
              "test_name.split"
            ],
            [
              "",
              "sorted"
            ],
            [
              "",
              "self.get_report_attributes"
            ],
            [
              "",
              "suite_name.split"
            ],
            [
              "",
              "self.sort_test_list"
            ],
            [
              "",
              "self._report_testcase"
            ],
            [
              "",
              "render_html"
            ],
            [
              "",
              "self._get_info_by_testcase"
            ],
            [
              "",
              "all_results.items"
            ],
            [
              "",
              "\"Test_{}_{}.html\".format"
            ],
            [
              "",
              "self._report_suite"
            ],
            [
              "",
              "self.generate_file"
            ],
            [
              "",
              "os.getcwd"
            ],
            [
              "",
              "os.path.join"
            ],
            [
              "",
              "os.path.exists"
            ],
            [
              "",
              "os.makedirs"
            ],
            [
              "",
              "os.path.join"
            ],
            [
              "",
              "open"
            ],
            [
              "",
              "report_file.write"
            ],
            [
              "",
              "self._is_relevant_tb_level"
            ],
            [
              "",
              "self._count_relevant_tb_levels"
            ],
            [
              "",
              "traceback.format_exception"
            ],
            [
              "",
              "traceback.format_exception"
            ],
            [
              "",
              "sys.stdout.getvalue"
            ],
            [
              "",
              "sys.stderr.getvalue"
            ],
            [
              "",
              "output.endswith"
            ],
            [
              "",
              "msgLines.append"
            ],
            [
              "",
              "error.endswith"
            ],
            [
              "",
              "msgLines.append"
            ],
            [
              "",
              "getattr"
            ],
            [
              "",
              "isinstance"
            ],
            [
              "",
              "line.encode"
            ],
            [
              "",
              "lines.append"
            ],
            [
              "",
              "''.join"
            ],
            [
              "",
              "TestResult"
            ],
            [
              "",
              "_TextTestResult"
            ],
            [
              "",
              "failfast"
            ],
            [
              "",
              "jinja2"
            ],
            [
              "",
              "os"
            ],
            [
              "",
              "sys"
            ],
            [
              "",
              "time"
            ],
            [
              "",
              "traceback"
            ],
            [
              "",
              "unittest"
            ],
            [
              "",
              "unittest.result"
            ]
          ],
          "mbr": [
            "TestResult.startTest",
            "_TextTestResult.__init__",
            "_TextTestResult.stopTest",
            "all_results.items",
            "e.ERROR",
            "e.FAILURE",
            "e.SKIP",
            "e.SUCCESS",
            "e.outcome",
            "error.endswith",
            "jinja2.Environment",
            "jinja2.FileSystemLoader",
            "jinja_env.get_template",
            "line.encode",
            "lines.append",
            "loaded_template.render",
            "msgLines.append",
            "os.getcwd",
            "os.makedirs",
            "os.path",
            "os.path.dirname",
            "os.path.exists",
            "os.path.join",
            "output.endswith",
            "report_file.write",
            "self.SKIP",
            "self.SUCCESS",
            "self._count_relevant_tb_levels",
            "self._exc_info_to_string",
            "self._get_info_by_testcase",
            "self._is_relevant_tb_level",
            "self._prepare_callback",
            "self._report_suite",
            "self._report_testcase",
            "self._save_output_data",
            "self._stderr_data",
            "self._stdout_data",
            "self._test_method_name",
            "self.buffer",
            "self.callback",
            "self.descriptions",
            "self.dots",
            "self.elapsed_time",
            "self.elapsed_times",
            "self.err",
            "self.errors",
            "self.errors.append",
            "self.failures",
            "self.failures.append",
            "self.generate_file",
            "self.getDescription",
            "self.get_report_attributes",
            "self.get_test_number",
            "self.infoclass",
            "self.infoclass.ERROR",
            "self.infoclass.FAILURE",
            "self.infoclass.SKIP",
            "self.outcome",
            "self.separator1",
            "self.separator2",
            "self.showAll",
            "self.skipped",
            "self.skipped.append",
            "self.sort_test_list",
            "self.start_time",
            "self.stderr",
            "self.stdout",
            "self.stop_time",
            "self.stream",
            "self.stream.write",
            "self.stream.writeln",
            "self.successes",
            "self.test_description",
            "self.test_exception_info",
            "self.test_id",
            "self.test_name",
            "self.test_result",
            "self.test_result._exc_info_to_string",
            "self.test_result.getDescription",
            "self.test_result.start_time",
            "self.test_result.stop_time",
            "status.append",
            "subTest.id",
            "suite_name.split",
            "sys.stderr",
            "sys.stderr.getvalue",
            "sys.stdout",
            "sys.stdout.getvalue",
            "target_list.append",
            "tb.tb_next",
            "test.failureException",
            "test.shortDescription",
            "test.test_id",
            "testCase.SKIP",
            "testCase.SUCCESS",
            "testCase.err",
            "testCase.outcome",
            "testCase.test_description",
            "testCase.test_id",
            "testRunner.output",
            "testRunner.outsuffix",
            "testRunner.report_title",
            "testRunner.start_time",
            "testRunner.time_taken",
            "test_cases_list.append",
            "test_id.split",
            "test_info.elapsed_time",
            "test_info.get_description",
            "test_info.get_error_info",
            "test_info.test_finished",
            "test_info.test_name",
            "test_method.id",
            "test_name.split",
            "test_result._stderr_data",
            "test_result._stdout_data",
            "testcase.__module__",
            "testcase.__name__",
            "time.time",
            "traceback.format_exception"
          ],
          "tgt": [
            "TestResult.startTest",
            "_TextTestResult.__init__",
            "_TextTestResult.stopTest",
            "all_results.items",
            "callable",
            "error.endswith",
            "filter",
            "getattr",
            "int",
            "isinstance",
            "jinja2.Environment",
            "jinja2.FileSystemLoader",
            "jinja_env.get_template",
            "len",
            "line.encode",
            "lines.append",
            "list",
            "loaded_template.render",
            "msgLines.append",
            "open",
            "os.getcwd",
            "os.makedirs",
            "os.path.dirname",
            "os.path.exists",
            "os.path.join",
            "output.endswith",
            "range",
            "render_html",
            "report_file.write",
            "self._count_relevant_tb_levels",
            "self._exc_info_to_string",
            "self._get_info_by_testcase",
            "self._is_relevant_tb_level",
            "self._prepare_callback",
            "self._report_suite",
            "self._report_testcase",
            "self._save_output_data",
            "self._test_method_name",
            "self.callback",
            "self.errors.append",
            "self.failures.append",
            "self.generate_file",
            "self.getDescription",
            "self.get_report_attributes",
            "self.infoclass",
            "self.skipped.append",
            "self.sort_test_list",
            "self.stream.write",
            "self.stream.writeln",
            "self.test_result._exc_info_to_string",
            "self.test_result.getDescription",
            "sorted",
            "status.append",
            "str",
            "subTest.id",
            "suite_name.split",
            "sys.stderr.getvalue",
            "sys.stdout.getvalue",
            "target_list.append",
            "test.shortDescription",
            "test_cases_list.append",
            "test_id.split",
            "test_info.get_description",
            "test_info.get_error_info",
            "test_info.test_finished",
            "test_method.id",
            "test_name.split",
            "testcase_name",
            "time.time",
            "traceback.format_exception",
            "type"
          ],
          "funcs": [
            [
              "render_html",
              298
            ],
            [
              "testcase_name",
              428
            ],
            [
              "__init__",
              793
            ],
            [
              "id",
              1537
            ],
            [
              "test_finished",
              1584
            ],
            [
              "get_description",
              1713
            ],
            [
              "get_error_info",
              1782
            ],
            [
              "__init__",
              1962
            ],
            [
              "_prepare_callback",
              2335
            ],
            [
              "callback",
              2620
            ],
            [
              "getDescription",
              3105
            ],
            [
              "startTest",
              3384
            ],
            [
              "_save_output_data",
              3674
            ],
            [
              "stopTest",
              3877
            ],
            [
              "addSuccess",
              4193
            ],
            [
              "addFailure",
              4430
            ],
            [
              "addError",
              4817
            ],
            [
              "addSubTest",
              5201
            ],
            [
              "addSkip",
              5680
            ],
            [
              "printErrorList",
              6001
            ],
            [
              "_get_info_by_testcase",
              6535
            ],
            [
              "get_report_attributes",
              7146
            ],
            [
              "_test_method_name",
              8168
            ],
            [
              "_report_testcase",
              8300
            ],
            [
              "get_test_number",
              9051
            ],
            [
              "sort_test_list",
              9369
            ],
            [
              "_report_suite",
              9540
            ],
            [
              "generate_reports",
              10430
            ],
            [
              "generate_file",
              10985
            ],
            [
              "_exc_info_to_string",
              11413
            ]
          ],
          "metrics": {
            "ast": {
              "op.add": 8,
              "op.lor": 1,
              "op.mod": 1,
              "op.sub": 3,
              "op.land": 4,
              "max_depth": 16,
              "call_count": 125,
              "node_count": 3239,
              "member_count": 119,
              "max_array_len": 4,
              "op_density.add": 0,
              "op_density.lor": 0,
              "op_density.mod": 0,
              "op_density.sub": 0,
              "op_density.land": 0,
              "max_concat_chain": 4,
              "member_depth_max": 3
            },
            "file": {
              "size": 13457,
              "entropy": 4.29
            },
            "text": {
              "lines": 370,
              "top_char": 101,
              "max_ws_run": 13,
              "digit_ratio": 0,
              "space_count": 3788,
              "char_entropy": 4.29,
              "unique_chars": 78,
              "top_char_null": 0,
              "string_density": 0.19,
              "top_char_ratio": 0.09,
              "avg_line_length": 35.37,
              "max_line_length": 95,
              "empty_line_ratio": 0.18,
              "last_line_length": 29,
              "whitespace_ratio": 0.31,
              "identifier_density": 2.16,
              "line_length_stddev": 23.13,
              "normalized_string_count": 3.59,
              "repeated_char_sequences": 108,
              "suspicious_string_ratio": 0.03,
              "suspicious_identifier_ratio": 0.01,
              "normalized_unique_identifiers": 21.68
            },
            "binds": {
              "count": 86
            },
            "binary": {
              "peak_region_bytes": 7168,
              "peak_region_entropy": 4.67
            },
            "source": {
              "class_count": 2,
              "function_count": 29
            },
            "imports": {
              "count": 10,
              "stdlib_count": 6,
              "stdlib_ratio": 0.6,
              "third_party_count": 4,
              "third_party_ratio": 0.4
            },
            "strings": {
              "sql": 1,
              "bytes": 1534,
              "count": 69,
              "avg_length": 22.23,
              "max_length": 124,
              "avg_entropy": 2.4,
              "empty_count": 4,
              "entropy_stddev": 1.43,
              "embedded_code_candidates": 1
            },
            "comments": {
              "chars": 585,
              "count": 16,
              "lines": 16,
              "to_code_ratio": 0.05
            },
            "functions": {
              "count": 31,
              "nested": 1,
              "density": 8.11,
              "avg_params": 2.5,
              "code_ratio": 0.89,
              "max_params": 6,
              "length_stddev": 9.7,
              "avg_name_length": 12.7,
              "no_params_count": 1,
              "avg_length_lines": 10.93,
              "max_length_lines": 53,
              "min_length_lines": 2,
              "avg_nesting_depth": 0.03,
              "max_nesting_depth": 1,
              "high_entropy_names": 1,
              "avg_param_name_length": 6.01
            },
            "identifiers": {
              "count": 798,
              "unique": 185,
              "avg_length": 9.04,
              "max_length": 25,
              "min_length": 1,
              "avg_entropy": 2.55,
              "reuse_ratio": 0.23,
              "length_stddev": 4.32,
              "has_digit_ratio": 0.02,
              "sequential_names": 1,
              "single_char_count": 1,
              "single_char_ratio": 0.01,
              "high_entropy_count": 5,
              "high_entropy_ratio": 0.03,
              "all_lowercase_ratio": 0.83,
              "all_uppercase_ratio": 0.02,
              "numeric_suffix_count": 3,
              "double_underscore_count": 4,
              "underscore_prefix_count": 18
            }
          }
        },
        "id": 2,
        "mol": "H₂(DbF₂)",
        "path": "html_testRunner-1.0.2-py2.py3-none-any.whl!!HtmlTestRunner/result.py",
        "pid": 0,
        "risk": 3,
        "sha": "c7ea5b84c31faa596b60a76eeaf0ead8157dd76fe62e11aea0c3f0daaca4f82a",
        "size": 13457,
        "traits": [
          {
            "id": "micro-behaviors/data/source/dynamic/reflect::traceback-next-text",
            "conf": 0.88,
            "crit": 3,
            "desc": "Traverses to the next Python traceback",
            "spans": [
              [
                12054,
                7
              ]
            ]
          },
          {
            "id": "micro-behaviors/fs/directory/cwd::python-os-getcwd",
            "conf": 0.9,
            "crit": 3,
            "desc": "Calls Python os.getcwd",
            "spans": [
              [
                11121,
                9
              ]
            ]
          },
          {
            "id": "micro-behaviors/fs/file/open::write-append-create-mode",
            "conf": 0.85,
            "crit": 3,
            "desc": "Python file opened for write or append",
            "spans": [
              [
                11333,
                20
              ]
            ]
          }
        ],
        "type": "python"
      },
      {
        "ctx": [
          {
            "b": "DM)3hz/ZhBBy/qkiWeJ*Aa{HEb5Q?awG\u003ceVxMO9ceP+MBBAhIwzE)\u0026jefYmGA=U@kzx.a=f!Ldjg9Om[AckSax(^%0wm5+!b04Cni5JSGh-9rAefXInwNw$RD2\u003ee",
            "ln": 0,
            "col": 1,
            "line": 1
          }
        ],
        "depth": 1,
        "facts": {
          "metrics": {
            "file": {
              "size": 875,
              "entropy": 4.78
            },
            "binary": {
              "peak_region_bytes": 875,
              "peak_region_entropy": 4.78
            },
            "registry": {
              "age_days": 3502,
              "published_at": 1485707430,
              "releases_24h": 0,
              "releases_48h": 0,
              "is_deprecated": 0,
              "release_count": 7,
              "package_age_days": 3502,
              "first_published_at": 1485707430,
              "vulnerability_count": 0
            }
          }
        },
        "id": 7,
        "path": "html-testrunner@1.0.2.registry.json",
        "pid": 0,
        "rel": "registry",
        "role": "sidecar",
        "sha": "ccd381116dba13bd603d05ab803286e4716036853ecd79dd62de3cd281b9c1c3",
        "size": 875,
        "traits": [
          {
            "id": "metadata/registry::established-package",
            "conf": 1.0,
            "crit": 1,
            "desc": "Package is at least one year old",
            "spans": [
              [
                0,
                0
              ]
            ]
          }
        ],
        "type": "registry"
      }
    ],
    "rev": "01871",
    "v": "8"
  }
}