{
  "ml": {
    "v": "7",
    "eng": "2.9.1",
    "lvl": -1,
    "conf": 0,
    "mods": [
      {
        "cls": 0,
        "raw": 0.00006919106,
        "rte": "az",
        "prob": 0.00006919106
      },
      {
        "cls": 0,
        "raw": 0.013359507,
        "rte": "az/python_sdist",
        "prob": 0.013359507
      }
    ],
    "prob": 0.00006919106,
    "files": [
      {
        "id": 0,
        "lvl": -1,
        "conf": 0,
        "prob": 0.00006919106090208516,
        "type": "python_sdist"
      },
      {
        "id": 1,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000010877847671508789,
        "type": "pkg_info"
      },
      {
        "id": 2,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000013977289199829102,
        "type": "python"
      },
      {
        "id": 8,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000010033448234025855,
        "type": "registry"
      }
    ],
    "version": "v18.18",
    "analyzed_at": "2026-09-11T03:31:31Z"
  },
  "path": "visitor-0.1.1.tar.gz",
  "raw": {
    "files": [
      {
        "id": 0,
        "ctx": [
          {
            "b": "abZyg^Y*8U0@(!BB966Ux(!0gz/NA-e?[$ke{7Jx0ps4\u003ez@J.([6y!WYO{@-t]B6m{jPPDw7(4EeRKL}+-cj8g:Apr6xioRW1Cx?ZY02g5\u003eBDF/Zk]LiZlQNAH@*3ZbZUmN+\u003exj2{76c8d/NF",
            "ln": 0
          }
        ],
        "mol": "H₂(Cm₂Db)Md(Bk)",
        "sha": "8cc3a246b8e35cee727b91c191fdfcbf669743b2025fe8283006e4cf925627a9",
        "path": "visitor-0.1.1.tar.gz",
        "risk": 3,
        "size": 3096,
        "type": "python_sdist",
        "facts": {
          "metrics": {
            "file": {
              "size": 3096,
              "entropy": 7.91
            },
            "parse": {
              "error_count": 1
            },
            "binary": {
              "peak_region_bytes": 3072,
              "peak_region_entropy": 7.79
            },
            "consistency": {
              "cloned_summary": 0,
              "name_typosquat": 0,
              "metadata_identity_mismatch": 0
            }
          }
        },
        "ident": {
          "name": {
            "value": "visitor",
            "source": "python.name",
            "verified": false
          },
          "urls": [
            {
              "url": "http://github.com/mbr/visitor",
              "kind": "homepage",
              "source": "python.homepage"
            }
          ],
          "trust": "unsigned",
          "emails": [
            "git@marcbrinkmann.de"
          ],
          "authors": [
            {
              "name": "Marc Brinkmann",
              "role": "author",
              "email": "git@marcbrinkmann.de",
              "source": "python.author"
            }
          ],
          "version": {
            "value": "0.1.1",
            "source": "python.version",
            "verified": false
          },
          "identifier": {
            "value": "visitor",
            "source": "python.name",
            "verified": false
          }
        },
        "traits": [
          {
            "id": "metadata/package/manifest/ecosystem::pkginfo-core-metadata",
            "conf": 1.0,
            "crit": 1,
            "desc": "Declares Python Core Metadata version",
            "from": [
              {
                "file": 1
              }
            ]
          },
          {
            "id": "micro-behaviors/fs/read/file::file-open-content",
            "atk": "T1005",
            "mbc": "E1005",
            "conf": 0.86,
            "crit": 2,
            "desc": "Opens file in default read mode"
          },
          {
            "id": "micro-behaviors/fs/read/file::file-read-content",
            "atk": "T1005",
            "mbc": "E1005",
            "conf": 0.6,
            "crit": 2,
            "desc": "Reads file content (Python)",
            "from": [
              {
                "file": 2
              }
            ]
          },
          {
            "id": "metadata/build/pip::packaging-setuptools-import",
            "conf": 0.95,
            "crit": 3,
            "desc": "setuptools packaging import",
            "from": [
              {
                "file": 2
              }
            ]
          },
          {
            "id": "metadata/build/pip::root-setup-py-path",
            "conf": 0.98,
            "crit": 1,
            "desc": "Shallow setup.py path candidate",
            "from": [
              {
                "file": 2
              }
            ]
          },
          {
            "id": "metadata/build/pip::packaging-setup-api-import",
            "conf": 0.95,
            "crit": 3,
            "desc": "Packaging setup API import or call",
            "from": [
              {
                "off": 57,
                "file": 2,
                "line": 5
              }
            ],
            "uses": [
              3
            ]
          },
          {
            "id": "micro-behaviors/communications/http/url/scheme::cleartext-http-url-code-literal",
            "atk": "T1071.001",
            "mbc": "C0002",
            "conf": 0.9,
            "crit": 3,
            "desc": "Code embeds cleartext HTTP URL literal",
            "from": [
              {
                "file": 2
              }
            ]
          },
          {
            "id": "micro-behaviors/communications/http/url/forge::public-code-forge-url",
            "conf": 0.9,
            "crit": 3,
            "desc": "References a public code-forge URL",
            "from": [
              {
                "file": 2
              }
            ]
          },
          {
            "id": "metadata/package/manifest/ecosystem::pkginfo-version-field",
            "conf": 0.9,
            "crit": 1,
            "desc": "Declares Python package version",
            "from": [
              {
                "file": 1
              }
            ]
          },
          {
            "id": "metadata/build/pip::packaging-setuptools-imported-setup-call",
            "conf": 0.95,
            "crit": 3,
            "desc": "Imported setuptools setup call",
            "from": [
              {
                "file": 2
              }
            ]
          },
          {
            "id": "metadata/package/manifest/ecosystem::pkginfo-summary-field",
            "conf": 0.9,
            "crit": 1,
            "desc": "Declares Python package summary",
            "from": [
              {
                "file": 1
              }
            ]
          },
          {
            "id": "metadata/build/pip::root-setup-py",
            "conf": 0.98,
            "crit": 3,
            "desc": "Root Python setup.py packaging file",
            "from": [
              {
                "file": 2
              }
            ],
            "uses": [
              4,
              5
            ]
          },
          {
            "id": "metadata/package/manifest/ecosystem::pkginfo-name-field",
            "conf": 0.9,
            "crit": 1,
            "desc": "Declares Python package name",
            "from": [
              {
                "file": 1
              }
            ]
          },
          {
            "id": "micro-behaviors/data/control-flow/module-exec::module-level-side-effect-call",
            "conf": 0.82,
            "crit": 3,
            "desc": "Python module-level function call"
          }
        ]
      },
      {
        "ctx": [
          {
            "b": "o\u003ewAPwmoN*eMMC6B7]MgiV{dff:ZV:zdL:JC4(2iBz(gbr+lq)x(v(IattA5e?)YiB.$#7A^oX*k{gn-zH0vzD30.rzFrP6C4(2iBz(gxx(d*9wO(0@Byxo9z/dfmnn\u0026uRePtchwJy@EBAzE.fe3%LBzb/ae[n*pfkUfsflR5Jx([ol3pe/RxM4]LawDo+v\u003c19Ux(mZ6vqY@\u0026l3mo.z/NBvzddc{iV@6HBu\u003cXKA:@N0x(mZ6vqY@",
            "ln": 0,
            "col": 1,
            "line": 1
          }
        ],
        "depth": 1,
        "facts": {
          "metrics": {
            "file": {
              "size": 3244,
              "entropy": 3.71
            },
            "binary": {
              "peak_region_bytes": 1196,
              "peak_region_entropy": 4.27
            }
          }
        },
        "id": 1,
        "path": "visitor-0.1.1.tar.gz!!visitor-0.1.1/PKG-INFO",
        "pid": 0,
        "risk": 1,
        "sha": "f33644064251250d600b23892303300c748a09721a447dd2645ad4e5707b4ee3",
        "size": 3244,
        "traits": [
          {
            "id": "metadata/package/files/wheel-sdist::unknown-platform",
            "conf": 0.7,
            "crit": 2,
            "desc": "PKG-INFO has UNKNOWN platform"
          },
          {
            "id": "metadata/package/manifest/ecosystem::pkginfo-core-metadata",
            "conf": 1.0,
            "crit": 1,
            "desc": "Declares Python Core Metadata version",
            "spans": [
              [
                0,
                0
              ]
            ]
          },
          {
            "id": "metadata/package/manifest/ecosystem::pkginfo-name-field",
            "conf": 0.9,
            "crit": 1,
            "desc": "Declares Python package name",
            "spans": [
              [
                22,
                0
              ]
            ]
          },
          {
            "id": "metadata/package/manifest/ecosystem::pkginfo-summary-field",
            "conf": 0.9,
            "crit": 1,
            "desc": "Declares Python package summary",
            "spans": [
              [
                51,
                0
              ]
            ]
          },
          {
            "id": "metadata/package/manifest/ecosystem::pkginfo-version-field",
            "conf": 0.9,
            "crit": 1,
            "desc": "Declares Python package version",
            "spans": [
              [
                36,
                0
              ]
            ]
          },
          {
            "id": "metadata/package/dependencies/manifest::pypi-no-runtime-deps",
            "conf": 0.7,
            "crit": 2,
            "desc": "PyPI metadata omits runtime dependencies"
          },
          {
            "id": "metadata/package/manifest/ecosystem::pypi-basic-metadata",
            "conf": 0.95,
            "crit": 2,
            "desc": "PyPI package declares name, version, summary",
            "uses": [
              1,
              2,
              3,
              4
            ],
            "spans": [
              [
                22,
                0
              ]
            ]
          }
        ],
        "type": "pkg_info"
      },
      {
        "ctx": [
          {
            "b": "boXZ.B8\u0026{yx(kOnzGWdwD30.rzvdQheH\u0026s{v@C)(zF80MB-.jEi3o!5eEz\u00260ze:AlBrCHy3jpx=z/3RrwPS6lBz(8lB0bglAbP=saAIaoB-n(Ow[=c[uVoB-yHH\u003c!A%-lYwmYu}A+eV\u0026c$Wv9zdLdS3lQDlaAz4nB-Ivxz/xo9c#TeVAa9\u003c4e]2rszyxBAe]UlvxF9?fA=br5wHH[)w[=6)uTClkazbI1zdLdBe]\u003eJiwge(l3jp\u0026=BAIKJ3lQDlaz$R8wJ.z:x(!0gz/NiR3lQDlaA?spB7]MgjTR{of!Lgded9HxarUiaB7ol8Acb/jzAPvkaARsnC{46KBzbPgx\u003e5oex(!0gz/M$mze:r5zdNQbvruj4zz0p/3lQDlaz+$lxj2gXB7ol8Acb/jzAS2KvpQ=lqBJ(to*{WPB95=Ued9HxarU9nBzbPkjTS%jA:{jUA+PAbzdds1cObPEarR!nB-.qnA:Jx{vqfKvcUEdnkY6}Iv}6E)zFK8$zF?7qwHx2oarR^HB-IpYcUNQzA5]T9xk8E3BZ=$kz/4dAvSBbBx(!0gz/NiR3lQDlaz++4wO#N2jTS@}r3%j7arR^HAa9l(vp%d)j.wzCwm6p:v@2H=wPGnhCW\u003eMjwmW]dcV\u0026{vBAn*ndj+/GarR!vzGx]dy\u00260E0wPq\u003cbA+fqPtu@=!arR^Hv@bN{B7]l2wPz\u0026Ptm8F}arR^HarS4dA=kPhvqP\u003c}zF77=vqY.2vp%c]iYXxWD30.rzxH#3atLq}3lQDlarR^Hasy0az!B90zeB08xco(RzFa92xjShDiV}mABzbPgauzLagBBZXao",
            "ln": 0,
            "col": 1,
            "line": 1
          }
        ],
        "depth": 1,
        "facts": {
          "imp": [
            [
              "",
              "open(os.path.join(os.path.dirname(__file__), fname)).read"
            ],
            [
              "",
              "open"
            ],
            [
              "",
              "os.path.join"
            ],
            [
              "",
              "os.path.dirname"
            ],
            [
              "",
              "setup"
            ],
            [
              "",
              "read"
            ],
            [
              "",
              "find_packages"
            ],
            [
              "",
              "find_packages"
            ],
            [
              "",
              "os"
            ],
            [
              "",
              "setup"
            ],
            [
              "",
              "setuptools"
            ]
          ],
          "mbr": [
            "open().read",
            "os.path",
            "os.path.dirname",
            "os.path.join"
          ],
          "tgt": [
            "find_packages",
            "open",
            "open().read",
            "os.path.dirname",
            "os.path.join",
            "read",
            "setup"
          ],
          "funcs": [
            [
              "read",
              104
            ]
          ],
          "metrics": {
            "ast": {
              "max_depth": 13,
              "call_count": 7,
              "node_count": 182,
              "member_count": 4,
              "max_array_len": 2,
              "member_depth_max": 3
            },
            "file": {
              "size": 664,
              "entropy": 4.93
            },
            "text": {
              "lines": 28,
              "top_char": 105,
              "max_ws_run": 1,
              "digit_ratio": 0.01,
              "space_count": 96,
              "char_entropy": 4.93,
              "unique_chars": 57,
              "top_char_null": 0,
              "string_density": 0.39,
              "top_char_ratio": 0.05,
              "avg_line_length": 22.71,
              "max_line_length": 70,
              "empty_line_ratio": 0.21,
              "last_line_length": 1,
              "whitespace_ratio": 0.19,
              "identifier_density": 1.11,
              "line_length_stddev": 19.75,
              "normalized_string_count": 2.08,
              "normalized_unique_identifiers": 4.78
            },
            "binary": {
              "peak_region_bytes": 664,
              "peak_region_entropy": 4.93
            },
            "source": {
              "function_count": 1
            },
            "imports": {
              "count": 4,
              "stdlib_count": 1,
              "stdlib_ratio": 0.25,
              "third_party_count": 3,
              "third_party_ratio": 0.75
            },
            "strings": {
              "bytes": 202,
              "count": 11,
              "url_count": 1,
              "avg_length": 18.36,
              "max_length": 39,
              "avg_entropy": 2.95,
              "email_count": 1,
              "entropy_stddev": 0.95
            },
            "comments": {
              "chars": 42,
              "count": 2,
              "lines": 2,
              "to_code_ratio": 0.08
            },
            "functions": {
              "count": 1,
              "density": 3.57,
              "avg_params": 1,
              "code_ratio": 0.07,
              "max_params": 1,
              "avg_name_length": 4,
              "avg_length_lines": 2,
              "max_length_lines": 2,
              "min_length_lines": 2,
              "avg_param_name_length": 5
            },
            "identifiers": {
              "count": 31,
              "unique": 23,
              "avg_length": 7.57,
              "max_length": 16,
              "min_length": 2,
              "avg_entropy": 2.52,
              "reuse_ratio": 0.74,
              "length_stddev": 3.92,
              "high_entropy_count": 2,
              "high_entropy_ratio": 0.09,
              "all_lowercase_ratio": 1,
              "double_underscore_count": 1,
              "underscore_prefix_count": 1
            }
          }
        },
        "id": 2,
        "mol": "H₂(Cm₂Db)Md(Bk)",
        "path": "visitor-0.1.1.tar.gz!!visitor-0.1.1/setup.py",
        "pid": 0,
        "risk": 3,
        "sha": "078684f3abd20084d1bb42bb66af4db1d8eb9d1e425831b26d21ca5bdb94398e",
        "size": 664,
        "traits": [
          {
            "id": "metadata/build/pip::packaging-setuptools-import",
            "conf": 0.95,
            "crit": 3,
            "desc": "setuptools packaging import",
            "spans": [
              [
                57,
                16
              ]
            ]
          },
          {
            "id": "metadata/build/pip::packaging-setuptools-imported-setup-call",
            "conf": 0.95,
            "crit": 3,
            "desc": "Imported setuptools setup call",
            "spans": [
              [
                57,
                143
              ]
            ]
          },
          {
            "id": "metadata/build/pip::root-setup-py-path",
            "conf": 0.98,
            "crit": 1,
            "desc": "Shallow setup.py path candidate",
            "spans": [
              [
                0,
                0
              ]
            ]
          },
          {
            "id": "micro-behaviors/communications/http/url/forge::public-code-forge-url",
            "conf": 0.9,
            "crit": 3,
            "desc": "References a public code-forge URL",
            "spans": [
              [
                421,
                18
              ]
            ]
          },
          {
            "id": "micro-behaviors/fs/read/file::file-open-content",
            "atk": "T1005",
            "mbc": "E1005",
            "conf": 0.86,
            "crit": 2,
            "desc": "Opens file in default read mode",
            "spans": [
              [
                137,
                0
              ]
            ]
          },
          {
            "id": "micro-behaviors/fs/read/file::file-read-content",
            "atk": "T1005",
            "mbc": "E1005",
            "conf": 0.6,
            "crit": 2,
            "desc": "Reads file content (Python)",
            "spans": [
              [
                184,
                0
              ]
            ]
          },
          {
            "id": "micro-behaviors/communications/http/url/scheme::cleartext-http-url-code-literal",
            "atk": "T1071.001",
            "mbc": "C0002",
            "conf": 0.9,
            "crit": 3,
            "desc": "Code embeds cleartext HTTP URL literal",
            "spans": [
              [
                421,
                29
              ]
            ]
          },
          {
            "id": "micro-behaviors/data/control-flow/module-exec::module-level-side-effect-call",
            "conf": 0.82,
            "crit": 3,
            "desc": "Python module-level function call",
            "spans": [
              [
                194,
                103
              ]
            ]
          },
          {
            "id": "metadata/build/pip::packaging-setup-api-import",
            "conf": 0.95,
            "crit": 3,
            "desc": "Packaging setup API import or call",
            "uses": [
              0
            ],
            "spans": [
              [
                57,
                16
              ]
            ]
          },
          {
            "id": "metadata/build/pip::root-setup-py",
            "conf": 0.98,
            "crit": 3,
            "desc": "Root Python setup.py packaging file",
            "uses": [
              2,
              8
            ],
            "spans": [
              [
                0,
                22
              ],
              [
                57,
                16
              ]
            ]
          }
        ],
        "type": "python"
      },
      {
        "ctx": [
          {
            "b": "DM)3hz/ZhBBy/qkiWeJ*Aa{HEb5Q?awG\u003ceVC4(2iBz(gzefYmGA=U@kzx.a=fFk7jf^nd)AckSax(^%0wm5+!b04CngDdrFh8c%EefXInwNw$RD2\u003ee\u003cg+Z*AefX)",
            "ln": 0,
            "col": 1,
            "line": 1
          }
        ],
        "depth": 1,
        "facts": {
          "metrics": {
            "file": {
              "size": 833,
              "entropy": 4.75
            },
            "binary": {
              "peak_region_bytes": 833,
              "peak_region_entropy": 4.75
            },
            "registry": {
              "age_days": 4064,
              "published_at": 1437905157,
              "releases_24h": 0,
              "releases_48h": 0,
              "is_deprecated": 0,
              "release_count": 4,
              "package_age_days": 4088,
              "first_published_at": 1435851142,
              "vulnerability_count": 0,
              "previous_published_at": 1435851142,
              "days_since_previous_release": 23
            }
          }
        },
        "id": 8,
        "path": "visitor@0.1.1.registry.json",
        "pid": 0,
        "rel": "registry",
        "role": "sidecar",
        "sha": "fad7e3fdff4fa943c6093020c6f8a8d9bd4b3ef15e3e0f1dabef179ea9beff2c",
        "size": 833,
        "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": "71e24",
    "v": "8"
  }
}