{
  "ml": {
    "v": "7",
    "eng": "2.9.1",
    "lvl": -1,
    "conf": 0,
    "mods": [
      {
        "cls": 0,
        "raw": 0.00004222989,
        "rte": "az",
        "prob": 0.00004222989
      },
      {
        "cls": 0,
        "raw": 0.015866837,
        "rte": "az/python_sdist",
        "prob": 0.015866837
      }
    ],
    "prob": 0.00004222989,
    "files": [
      {
        "id": 0,
        "lvl": -1,
        "conf": 0,
        "prob": 0.00004222989082336426,
        "type": "python_sdist"
      },
      {
        "id": 1,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000010808308616105933,
        "type": "pkg_info"
      },
      {
        "id": 8,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000014632940292358398,
        "type": "python"
      },
      {
        "id": 10,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000010033448234025855,
        "type": "registry"
      }
    ],
    "version": "v18.18",
    "analyzed_at": "2026-09-12T16:50:26Z"
  },
  "path": "circuitbreaker-1.2.0.tar.gz",
  "raw": {
    "files": [
      {
        "id": 0,
        "ctx": [
          {
            "b": "abZygAwOIr0@(!BB966Bx(WZax()*8wNPv=AXf0#ga\u003emkByxg\u0026)lbla\u0026Z/mhs?*YZDMy:BKIPlJ?)7])MFpiG?#?:$9to8*ncJWhnur)afC\u003cGvfsdV7]AsJ??7#Ju^gEc(r-S*kw(^Fk*PS^+W1tLM](5s",
            "ln": 0
          }
        ],
        "mol": "H₂(Cm₂Db)Md(Bk)",
        "sha": "477defb0c9fef68f8e943a24b829570d63605d0441cf37934e342a6c131a4750",
        "path": "circuitbreaker-1.2.0.tar.gz",
        "risk": 3,
        "size": 5916,
        "type": "python_sdist",
        "facts": {
          "metrics": {
            "file": {
              "size": 5916,
              "entropy": 7.95
            },
            "parse": {
              "error_count": 1
            },
            "binary": {
              "peak_region_bytes": 5916,
              "peak_region_entropy": 7.81
            },
            "consistency": {
              "cloned_summary": 0,
              "name_typosquat": 0,
              "self_dependency": 0,
              "metadata_identity_mismatch": 0
            }
          }
        },
        "ident": {
          "name": {
            "value": "circuitbreaker",
            "source": "python.name",
            "verified": false
          },
          "urls": [
            {
              "url": "https://github.com/fabfuel/circuitbreaker",
              "kind": "homepage",
              "source": "python.homepage"
            }
          ],
          "trust": "unsigned",
          "emails": [
            "pypi@fabfuel.de"
          ],
          "authors": [
            {
              "name": "Fabian Fuelling",
              "role": "author",
              "email": "pypi@fabfuel.de",
              "source": "python.author"
            }
          ],
          "version": {
            "value": "1.2.0",
            "source": "python.version",
            "verified": false
          },
          "identifier": {
            "value": "circuitbreaker",
            "source": "python.name",
            "verified": false
          }
        },
        "traits": [
          {
            "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": 8
              }
            ]
          },
          {
            "id": "micro-behaviors/communications/http/download/url::archive-url-reference-b",
            "conf": 0.88,
            "crit": 3,
            "desc": "URL ends in .rar, .tar or .gz",
            "from": [
              {
                "file": 8
              }
            ]
          },
          {
            "id": "metadata/build/pip::packaging-setuptools-import",
            "conf": 0.95,
            "crit": 3,
            "desc": "setuptools packaging import",
            "from": [
              {
                "file": 8
              }
            ]
          },
          {
            "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": "metadata/package/manifest/ecosystem::pkginfo-name-field",
            "conf": 0.9,
            "crit": 1,
            "desc": "Declares Python package name",
            "from": [
              {
                "file": 1
              }
            ]
          },
          {
            "id": "metadata/build/pip::packaging-setup-api-import",
            "conf": 0.95,
            "crit": 3,
            "desc": "Packaging setup API import or call",
            "from": [
              {
                "off": 31,
                "file": 8,
                "line": 4
              }
            ],
            "uses": [
              2
            ]
          },
          {
            "id": "metadata/build/pip::root-setup-py-path",
            "conf": 0.98,
            "crit": 1,
            "desc": "Shallow setup.py path candidate",
            "from": [
              {
                "file": 8
              }
            ]
          },
          {
            "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::root-setup-py",
            "conf": 0.98,
            "crit": 3,
            "desc": "Root Python setup.py packaging file",
            "from": [
              {
                "file": 8
              }
            ],
            "uses": [
              5,
              6
            ]
          },
          {
            "id": "metadata/package/manifest/ecosystem::pkginfo-summary-field",
            "conf": 0.9,
            "crit": 1,
            "desc": "Declares Python package summary",
            "from": [
              {
                "file": 1
              }
            ]
          },
          {
            "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": 8
              }
            ]
          },
          {
            "id": "metadata/build/pip::packaging-setuptools-imported-setup-call",
            "conf": 0.95,
            "crit": 3,
            "desc": "Imported setuptools setup call",
            "from": [
              {
                "file": 8
              }
            ]
          },
          {
            "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/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:Jv}/%[B.L@bA+eV{wPwbUwPz\u003caz/dPUf!LjlfBy:3zeAZ4C@^6AD30.rzxIqXA:%laBrA[\u003cwNPv=AV/sfBAz8mzxJUgAbo95wO#P#BzkVh3p]8LwI4\u003efxjTaDxMOunB2\u003e%cxk8E3BZ=$kz/4dtvpA?\u003ewO:2fx(WZax()*8wNPv=ATC9PBzbPkiV{[2vRGm*avZG+y\u00260*6x9{}EBzbPkeOe^cx(2*MAcVzp",
            "ln": 0,
            "col": 1,
            "line": 1
          }
        ],
        "depth": 1,
        "facts": {
          "metrics": {
            "file": {
              "size": 7534,
              "entropy": 4.46
            },
            "binary": {
              "peak_region_bytes": 6510,
              "peak_region_entropy": 4.63
            }
          }
        },
        "id": 1,
        "path": "circuitbreaker-1.2.0.tar.gz!!circuitbreaker-1.2.0/PKG-INFO",
        "pid": 0,
        "risk": 1,
        "sha": "8330188e35dffc797f92b9e78e9fc5a7047a779c67398f4561ff3c239473f36f",
        "size": 7534,
        "traits": [
          {
            "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": [
              [
                58,
                0
              ]
            ]
          },
          {
            "id": "metadata/package/manifest/ecosystem::pkginfo-version-field",
            "conf": 0.9,
            "crit": 1,
            "desc": "Declares Python package version",
            "spans": [
              [
                43,
                0
              ]
            ]
          },
          {
            "id": "metadata/package/versioning::package-version-nonzero-major",
            "conf": 0.85,
            "crit": 1,
            "desc": "Package version has non-zero major"
          },
          {
            "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": [
              0,
              1,
              2,
              3
            ],
            "spans": [
              [
                22,
                0
              ]
            ]
          }
        ],
        "type": "pkg_info"
      },
      {
        "ctx": [
          {
            "b": "a%Firp\u003cEd@z/cW+x(WZax(\u003eE:A+eV{wPwb4a%EwaA=k!qB7GDoAcc2py\u0026Z.kze:AlBrCToBAIKf3jprPw/#b9vpTj^c[dg:arR^HCwhejaA8jgzyu(gml%somj@R4BseHWvriM6iTM#LarR^HarUYoBAIRwaz9lDwNP9$dgcy?wmYZ\u003ezE^r@v}/H}auZ\u0026KcV\u003cSMx(mMht)Z{WwPS6lc\u003c?7tarUMgzdL\u003cTv}/%[B.L@bA+eV{wPxdH3lQDlaA?spB7]MgjTR%pga\u003emded9HxarU/Ey=%dVBAzFyiXJd0x([3hvLheez7/HfvRf:]y+GpjA:%laByGo4vqxB{cObPEarR!qz*c8nz^^f-B-IpYcUNQzAc15[fk20vxMW=pv@Diqw)]dXB.bwxv}/%[B.L@bA+eV{wPxCjA:@=%C4ArYe\u002624ke{7Jxe[YFTed9HxarUGmv}xL0wJ.zcq:.#:3lQDlayPzmxM4]OcQ}JNx\u003c\u003e)4mS\u0026oUy?W^1cObPEarR!nB-.qnA:Jx{vqfKvcVBuIx*uosvRf:]y+xmfcObPEarR!qwPIv4x(Ffdz/dY=p\u003cEd@z/cW+x(WZax(\u003eE:A+eV{wPw)",
            "ln": 0,
            "col": 1,
            "line": 1
          },
          {
            "b": "mQZaOwH[fharR!Cy*?A$z/PYojTTVQC{+cIarR^Hx(n0lvqG:!A+flkx(W^aj.ebywO#3\u0026zEWx(B1vUvarR!py*?yax\u003ez6\u003cA=TxF3lQDlarR^Hasx-#By/u2wN(]HB.2h$zEWl2iYXxKwD",
            "ln": 614,
            "col": 14,
            "line": 26
          },
          {
            "b": "z6g(2axrq[CQC3HarR^HarR^HcS1\u00264xl4A$ze0)2awuiYxlvS}wGT2{aw^u9xM4=oed9HxarR^HarS4dA=kPhvqP\u003c}zF77=vqY.2vp%c]iYXxWD30.rzxH#3atLq}3lQDlarR^",
            "ln": 886,
            "col": 25,
            "line": 34
          }
        ],
        "depth": 1,
        "facts": {
          "imp": [
            [
              "",
              "open"
            ],
            [
              "",
              "f.read"
            ],
            [
              "",
              "setup"
            ],
            [
              "",
              "readme"
            ],
            [
              "",
              "setup"
            ],
            [
              "",
              "setuptools"
            ]
          ],
          "mbr": [
            "f.read"
          ],
          "tgt": [
            "f.read",
            "open",
            "readme",
            "setup"
          ],
          "funcs": [
            [
              "readme",
              62
            ]
          ],
          "metrics": {
            "ast": {
              "max_depth": 10,
              "call_count": 4,
              "node_count": 220,
              "member_count": 1,
              "max_array_len": 8,
              "member_depth_max": 2
            },
            "file": {
              "size": 1042,
              "entropy": 4.85
            },
            "text": {
              "lines": 39,
              "top_char": 101,
              "max_ws_run": 1,
              "digit_ratio": 0.01,
              "space_count": 188,
              "char_entropy": 4.85,
              "unique_chars": 60,
              "top_char_null": 0,
              "string_density": 0.54,
              "top_char_ratio": 0.07,
              "avg_line_length": 25.72,
              "max_line_length": 82,
              "empty_line_ratio": 0.13,
              "last_line_length": 1,
              "whitespace_ratio": 0.22,
              "identifier_density": 0.67,
              "line_length_stddev": 18.95,
              "normalized_string_count": 3.36,
              "suspicious_identifier_ratio": 0.05,
              "normalized_unique_identifiers": 4.16
            },
            "binds": {
              "count": 1
            },
            "binary": {
              "peak_region_bytes": 1024,
              "peak_region_entropy": 4.85
            },
            "source": {
              "function_count": 1
            },
            "imports": {
              "count": 2,
              "third_party_count": 2,
              "third_party_ratio": 1
            },
            "strings": {
              "bytes": 504,
              "count": 21,
              "url_count": 2,
              "avg_length": 24,
              "max_length": 62,
              "avg_entropy": 3.39,
              "email_count": 1,
              "entropy_stddev": 0.82
            },
            "functions": {
              "count": 1,
              "density": 2.56,
              "code_ratio": 0.08,
              "avg_name_length": 6,
              "no_params_count": 1,
              "avg_length_lines": 3,
              "max_length_lines": 3,
              "min_length_lines": 3
            },
            "identifiers": {
              "count": 26,
              "unique": 22,
              "avg_length": 8.82,
              "max_length": 20,
              "min_length": 1,
              "avg_entropy": 2.64,
              "reuse_ratio": 0.85,
              "length_stddev": 4.64,
              "sequential_names": 1,
              "single_char_count": 1,
              "single_char_ratio": 0.05,
              "high_entropy_count": 2,
              "high_entropy_ratio": 0.09,
              "all_lowercase_ratio": 1
            }
          }
        },
        "id": 8,
        "mol": "H₂(Cm₂Db)Md(Bk)",
        "path": "circuitbreaker-1.2.0.tar.gz!!circuitbreaker-1.2.0/setup.py",
        "pid": 0,
        "risk": 3,
        "sha": "028a6734eb3ba8dae363df7df8b4af889b6ea545abaf8c574174fe6624df5549",
        "size": 1042,
        "traits": [
          {
            "id": "metadata/build/pip::packaging-setuptools-import",
            "conf": 0.95,
            "crit": 3,
            "desc": "setuptools packaging import",
            "spans": [
              [
                31,
                15
              ]
            ]
          },
          {
            "id": "metadata/build/pip::packaging-setuptools-imported-setup-call",
            "conf": 0.95,
            "crit": 3,
            "desc": "Imported setuptools setup call",
            "spans": [
              [
                31,
                138
              ]
            ]
          },
          {
            "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": [
              [
                227,
                19
              ]
            ]
          },
          {
            "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": [
              [
                90,
                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": [
              [
                126,
                0
              ]
            ]
          },
          {
            "id": "micro-behaviors/communications/http/download/url::archive-url-reference-b",
            "conf": 0.88,
            "crit": 3,
            "desc": "URL ends in .rar, .tar or .gz",
            "spans": [
              [
                289,
                62
              ]
            ]
          },
          {
            "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": [
              [
                163,
                103
              ]
            ]
          },
          {
            "id": "metadata/build/pip::packaging-setup-api-import",
            "conf": 0.95,
            "crit": 3,
            "desc": "Packaging setup API import or call",
            "uses": [
              0
            ],
            "spans": [
              [
                31,
                15
              ]
            ]
          },
          {
            "id": "metadata/build/pip::root-setup-py",
            "conf": 0.98,
            "crit": 3,
            "desc": "Root Python setup.py packaging file",
            "uses": [
              2,
              8
            ],
            "spans": [
              [
                0,
                29
              ],
              [
                31,
                15
              ]
            ]
          }
        ],
        "type": "python"
      },
      {
        "ctx": [
          {
            "b": "DM)3hz/ZhBBy/qkiWeJ*Aa{HEb5Q?awG\u003ceVv}/%[B.L@bA+eV{wPw$Cb6EKrB7]Mgb03]5e\u002624ka$K{SBZ/f3B7/b}uTX42iX-GIf/R6Ig+*%vb4ka}uU0O\u003cB0rT",
            "ln": 0,
            "col": 1,
            "line": 1
          }
        ],
        "depth": 1,
        "facts": {
          "metrics": {
            "file": {
              "size": 867,
              "entropy": 4.78
            },
            "binary": {
              "peak_region_bytes": 867,
              "peak_region_entropy": 4.78
            },
            "registry": {
              "age_days": 2631,
              "published_at": 1561867418,
              "releases_24h": 0,
              "releases_48h": 0,
              "is_deprecated": 0,
              "release_count": 11,
              "package_age_days": 3604,
              "first_published_at": 1477810138,
              "vulnerability_count": 0,
              "previous_published_at": 1530944764,
              "days_since_previous_release": 357
            }
          }
        },
        "id": 10,
        "path": "circuitbreaker@1.2.0.registry.json",
        "pid": 0,
        "rel": "registry",
        "role": "sidecar",
        "sha": "c832a89f994f9f5d514256ae16dda618d88c5f9cc492dc8301786f664099092c",
        "size": 867,
        "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": "c7f7e",
    "v": "8"
  }
}