{
  "ml": {
    "v": "7",
    "id": 718,
    "lvl": -1,
    "conf": 0,
    "prob": 0.000011781851753767114,
    "type": "python",
    "version": "v18.18",
    "analyzed_at": "2026-09-21T11:15:54Z"
  },
  "path": "ksp-0.0.5-py3-none-any.whl",
  "raw": {
    "files": [
      {
        "id": 1080,
        "mol": "H(Cm)Md₂(Pa₂)",
        "pid": 0,
        "rel": "fetched",
        "sha": "51bbd9492aef69aaa56c1f0074599ef31662b8fe1e1af1be4d9d1039d8774c28",
        "via": "https://files.pythonhosted.org/packages/a1/a5/cc13bf9daf1cb6298ec79fa7f3443e542441e96d9b028dea72f557637849/ksp-0.0.5-py3-none-any.whl",
        "path": "pkg:pypi/ksp@0.0.5?checksum=blake2b-256:a1a5cc13bf9daf1cb6298ec79fa7f3443e542441e96d9b028dea72f557637849%2Cmd5:b803db37b4c59c5d75cd64cdbc27cd0f%2Csha256:51bbd9492aef69aaa56c1f0074599ef31662b8fe1e1af1be4d9d1039d8774c28\u0026file_name=ksp-0.0.5-py3-none-any.whl",
        "risk": 5,
        "size": 9116,
        "type": "whl",
        "depth": 1,
        "facts": {
          "metrics": {
            "whl": {
              "native_extension_count": 0
            },
            "file": {
              "size": 9116,
              "entropy": 7.65
            },
            "binary": {
              "peak_region_bytes": 6144,
              "peak_region_entropy": 7.81
            },
            "archive": {
              "file_count": 19,
              "member_count": 19,
              "script_count": 14,
              "zip_bomb_ratio": 3.51,
              "compressed_size": 6716,
              "directory_count": 0,
              "executable_count": 0,
              "extra_field_size": 0,
              "noise_file_count": 0,
              "compression.ratio": 0.45,
              "hidden_file_count": 0,
              "uncompressed_size": 15008,
              "crc_collision_count": 3,
              "entry_comment_count": 0,
              "max_filename_length": 33,
              "rtlo_filename_count": 0,
              "format.regular_count": 19,
              "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": 13,
              "timing.mtime_unique_ratio": 0.68,
              "misplaced_executable_count": 0,
              "timing.mtime_dominant_count": 5,
              "timing.mtime_spread_seconds": 4130672,
              "timing.sentinel_mtime_count": 0,
              "security.world_writable_count": 0,
              "timing.mtime_dominant_fraction": 0.26,
              "compression.method_counts.deflate": 19
            },
            "consistency": {
              "cloned_summary": 0,
              "name_typosquat": 0,
              "metadata_identity_mismatch": 0
            }
          }
        },
        "ident": {
          "name": {
            "value": "ksp",
            "source": "whl.distribution",
            "verified": false
          },
          "urls": [
            {
              "url": "https://gitlab.com/SumNeuron/ksp",
              "kind": "homepage",
              "source": "whl.home_page"
            }
          ],
          "trust": "unsigned",
          "emails": [
            "sumner.magruder@zmnh.uni-hamburg.de"
          ],
          "authors": [
            {
              "name": "Sumner Magruder",
              "role": "author",
              "email": "sumner.magruder@zmnh.uni-hamburg.de",
              "source": "whl.author"
            }
          ],
          "version": {
            "value": "0.0.5",
            "source": "whl.version",
            "verified": false
          }
        },
        "traits": [
          {
            "id": "metadata/import/python/random::random",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports random",
            "from": [
              {
                "file": 11
              }
            ]
          },
          {
            "id": "metadata/lang/natural::lang-english--atom-3",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"that\"",
            "from": [
              {
                "file": 11
              }
            ]
          },
          {
            "id": "metadata/import/python/relative/1/algorithms::relative/1/algorithms",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports .algorithms",
            "from": [
              {
                "file": 1
              }
            ]
          },
          {
            "id": "metadata/import/python/relative/1/algorithms/dijkstra::dijkstra",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports .algorithms.dijkstra from .algorithms",
            "from": [
              {
                "file": 1
              }
            ]
          },
          {
            "id": "metadata/import/python/relative/1/yen/yen::yen",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports .yen.yen from .yen",
            "from": [
              {
                "file": 2
              }
            ]
          },
          {
            "id": "metadata/import/python/relative/1/adjacency_dict::relative/1/adjacency_dict",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports .adjacency_dict",
            "from": [
              {
                "file": 3
              }
            ]
          },
          {
            "id": "metadata/package/ecosystem::pkginfo-version-field",
            "conf": 0.9,
            "crit": 2,
            "desc": "Declares Python package version",
            "from": [
              {
                "file": 16
              }
            ]
          },
          {
            "id": "metadata/file/line::python-under-120-lines",
            "conf": 0.65,
            "crit": 2,
            "desc": "Python file under 120 lines",
            "from": [
              {
                "file": 1
              }
            ]
          },
          {
            "id": "metadata/import/python/relative/2/datatypes/priority_dict/prioritydictionary::prioritydictionary",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports ..datatypes.priority_dict.PriorityDictionary from ..datatypes.priority_dict",
            "from": [
              {
                "file": 7
              }
            ]
          },
          {
            "id": "metadata/lang/natural::lang-english--atom-6",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"with\"",
            "from": [
              {
                "file": 9
              }
            ]
          },
          {
            "id": "micro-behaviors/data/control-flow/analysis::while-loop",
            "conf": 0.3,
            "crit": 2,
            "desc": "While-loop control flow",
            "from": [
              {
                "file": 8
              }
            ]
          },
          {
            "id": "metadata/import/python/relative/1/datatypes/prioritydictionary::prioritydictionary",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports .datatypes.PriorityDictionary from .datatypes",
            "from": [
              {
                "file": 1
              }
            ]
          },
          {
            "id": "micro-behaviors/communications/url/reference::python-comment-url-reference",
            "conf": 0.9,
            "crit": 3,
            "desc": "Python comment contains a URL",
            "from": [
              {
                "file": 12
              }
            ]
          },
          {
            "id": "metadata/lang/natural::lang-english--atom-5",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"for\"",
            "from": [
              {
                "file": 7
              }
            ]
          },
          {
            "id": "metadata/import/python/relative/2/utils/config/infinity::infinity",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports ..utils.config.INFINITY from ..utils.config",
            "from": [
              {
                "file": 7
              }
            ]
          },
          {
            "id": "metadata/package/ecosystem::pkginfo-markdown-description",
            "conf": 0.9,
            "crit": 3,
            "desc": "Declares Markdown package description",
            "from": [
              {
                "file": 16
              }
            ]
          },
          {
            "id": "metadata/import/python/relative/1/utils/path::path",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports .utils.path from .utils",
            "from": [
              {
                "file": 2
              }
            ]
          },
          {
            "id": "micro-behaviors/data/control-flow/membership::not-in-membership-check",
            "conf": 0.3,
            "crit": 3,
            "desc": "Python not-in membership check",
            "from": [
              {
                "file": 12
              }
            ]
          },
          {
            "id": "metadata/import/python/relative/1/utils/undefinded::undefinded",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports .utils.UNDEFINDED from .utils",
            "from": [
              {
                "file": 1
              }
            ]
          },
          {
            "id": "metadata/package/ecosystem::pypi-basic-metadata",
            "conf": 0.95,
            "crit": 2,
            "desc": "PyPI package declares name, version, summary",
            "from": [
              {
                "off": 0,
                "file": 1096,
                "line": 1
              }
            ],
            "uses": [
              6,
              45,
              48,
              52
            ]
          },
          {
            "id": "micro-behaviors/communications/url/encoded::encoded-url-benign-context",
            "atk": "T1027",
            "mbc": "B0032",
            "conf": 0.95,
            "crit": 1,
            "desc": "Encoded URL benign documentation or test context",
            "from": [
              {
                "off": 767,
                "file": 1092,
                "line": 18
              }
            ],
            "uses": [
              12
            ]
          },
          {
            "id": "metadata/import/python/relative/1/priority_dict/prioritydictionary::prioritydictionary",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports .priority_dict.PriorityDictionary from .priority_dict",
            "from": [
              {
                "file": 3
              }
            ]
          },
          {
            "id": "metadata/import/python/relative/2/utils/config/undefinded::undefinded",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports ..utils.config.UNDEFINDED from ..utils.config",
            "from": [
              {
                "file": 7
              }
            ]
          },
          {
            "id": "metadata/import/python/relative/2/utils/config::relative/2/utils/config",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports ..utils.config",
            "from": [
              {
                "file": 7
              }
            ]
          },
          {
            "id": "metadata/package/versioning/scheme::pkginfo-lowest-version",
            "conf": 0.65,
            "crit": 1,
            "desc": "Package metadata has a 0.0.x version marker"
          },
          {
            "id": "metadata/import/python/relative/1/utils::relative/1/utils",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports .utils",
            "from": [
              {
                "file": 1
              }
            ]
          },
          {
            "id": "metadata/import/python/relative/1/datatypes/adjacencydict::adjacencydict",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports .datatypes.AdjacencyDict from .datatypes",
            "from": [
              {
                "file": 1
              }
            ]
          },
          {
            "id": "metadata/lang/natural::lang-english--atom-4",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"have\"",
            "from": [
              {
                "file": 12
              }
            ]
          },
          {
            "id": "metadata/import/python/relative/2/datatypes/priority_dict::relative/2/datatypes/priority_dict",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports ..datatypes.priority_dict",
            "from": [
              {
                "file": 7
              }
            ]
          },
          {
            "id": "metadata/import/python/relative/1/config/infinity::infinity",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports .config.INFINITY from .config",
            "from": [
              {
                "file": 4
              }
            ]
          },
          {
            "id": "metadata/import/python/relative/1/adjacency_dict/adjacencydict::adjacencydict",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports .adjacency_dict.AdjacencyDict from .adjacency_dict",
            "from": [
              {
                "file": 3
              }
            ]
          },
          {
            "id": "metadata/file/extension/token-shape::bare-alphanumeric-script-basename",
            "conf": 0.9,
            "crit": 2,
            "desc": "Script filename is a bare alphanumeric token",
            "from": [
              {
                "file": 1
              }
            ]
          },
          {
            "id": "metadata/import/python/operator/itemgetter::itemgetter",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports itemgetter from operator",
            "from": [
              {
                "file": 9
              }
            ]
          },
          {
            "id": "metadata/import/python/relative/1/priority_dict::relative/1/priority_dict",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports .priority_dict",
            "from": [
              {
                "file": 3
              }
            ]
          },
          {
            "id": "metadata/lang/generated::automatically-generated-source-marker",
            "conf": 0.85,
            "crit": 2,
            "desc": "Generated source provenance marker",
            "from": [
              {
                "file": 11
              }
            ]
          },
          {
            "id": "metadata/import/python/relative/1/algorithms/yen::yen",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports .algorithms.yen from .algorithms",
            "from": [
              {
                "file": 1
              }
            ]
          },
          {
            "id": "metadata/file/size::small-no-imports",
            "conf": 0.75,
            "crit": 3,
            "desc": "Small Python source file with no imports",
            "from": [
              {
                "file": 14
              }
            ]
          },
          {
            "id": "metadata/lang/natural::lang-english--atom-7",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"this\"",
            "from": [
              {
                "file": 12
              }
            ]
          },
          {
            "id": "metadata/package/files/wheel-sdist::unknown-license",
            "conf": 0.75,
            "crit": 3,
            "desc": "PKG-INFO has UNKNOWN license"
          },
          {
            "id": "metadata/file/line::file-has-30-plus-lines",
            "conf": 0.9,
            "crit": 2,
            "desc": "File has 30 or more lines",
            "from": [
              {
                "file": 7
              }
            ]
          },
          {
            "id": "micro-behaviors/data/control-flow/analysis::for-loop-content",
            "conf": 0.3,
            "crit": 2,
            "desc": "for loop (content)",
            "from": [
              {
                "file": 7
              }
            ]
          },
          {
            "id": "metadata/import/python/operator::operator",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports operator",
            "from": [
              {
                "file": 9
              }
            ]
          },
          {
            "id": "metadata/lang/natural::lang-english--atom-1",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"the\"",
            "from": [
              {
                "file": 7
              }
            ]
          },
          {
            "id": "metadata/import/python/relative/1/datatypes::relative/1/datatypes",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports .datatypes",
            "from": [
              {
                "file": 1
              }
            ]
          },
          {
            "id": "metadata/lang/natural::lang-english--atom-2",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"and\"",
            "from": [
              {
                "file": 7
              }
            ]
          },
          {
            "id": "metadata/package/ecosystem::pkginfo-summary-field",
            "conf": 0.9,
            "crit": 2,
            "desc": "Declares Python package summary",
            "from": [
              {
                "file": 16
              }
            ]
          },
          {
            "id": "metadata/import/python/relative/1/config/undefinded::undefinded",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports .config.UNDEFINDED from .config",
            "from": [
              {
                "file": 4
              }
            ]
          },
          {
            "id": "metadata/import/python/relative/1/algorithms/path::path",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports .algorithms.path from .algorithms",
            "from": [
              {
                "file": 1
              }
            ]
          },
          {
            "id": "metadata/package/ecosystem::pkginfo-core-metadata",
            "conf": 1.0,
            "crit": 2,
            "desc": "Declares Python Core Metadata version",
            "from": [
              {
                "file": 16
              }
            ]
          },
          {
            "id": "metadata/import/python/relative/1/config::relative/1/config",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports .config",
            "from": [
              {
                "file": 4
              }
            ]
          },
          {
            "id": "metadata/import/python/relative/1/dijkstra/dijkstra::dijkstra",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports .dijkstra.dijkstra from .dijkstra",
            "from": [
              {
                "file": 2
              }
            ]
          },
          {
            "id": "metadata/import/python/relative/1/utils/infinity::infinity",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports .utils.INFINITY from .utils",
            "from": [
              {
                "file": 1
              }
            ]
          },
          {
            "id": "metadata/package/ecosystem::pkginfo-name-field",
            "conf": 0.9,
            "crit": 2,
            "desc": "Declares Python package name",
            "from": [
              {
                "file": 16
              }
            ]
          },
          {
            "id": "metadata/import/python/relative/1/dijkstra::relative/1/dijkstra",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports .dijkstra",
            "from": [
              {
                "file": 2
              }
            ]
          },
          {
            "id": "metadata/import/python/relative/1/yen::relative/1/yen",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports .yen",
            "from": [
              {
                "file": 2
              }
            ]
          },
          {
            "id": "metadata/package/ecosystem::wheel-archive-member",
            "conf": 0.98,
            "crit": 2,
            "desc": "Python wheel archive metadata"
          },
          {
            "id": "metadata/package/files/wheel-sdist::wheel-any-platform-tag",
            "conf": 0.98,
            "crit": 2,
            "desc": "Wheel uses platform-independent tag"
          }
        ]
      }
    ]
  }
}