{
  "llm": {
    "conf": 0.00005688091,
    "grade": "benign",
    "model": "Qwen/Qwen3.8-27B",
    "outcome": "benign",
    "interpretation": "legitimate ECS library"
  },
  "ml": {
    "v": "7",
    "eng": "2.8.0",
    "lvl": -1,
    "conf": 0,
    "mods": [
      {
        "cls": 0,
        "raw": 0.000084896885,
        "rte": "az",
        "prob": 0.000084896885
      },
      {
        "cls": 0,
        "raw": 0.0007600685,
        "rte": "az/whl",
        "prob": 0.0007600685
      }
    ],
    "prob": 0.000084896885,
    "files": [
      {
        "id": 0,
        "lvl": -1,
        "conf": 0,
        "prob": 0.00008489688480040058,
        "type": "whl"
      },
      {
        "id": 1,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000044027965486748144,
        "type": "python"
      },
      {
        "id": 2,
        "lvl": -1,
        "conf": 0,
        "prob": 0.00003045797348022461,
        "type": "pkg_info"
      },
      {
        "id": 3,
        "lvl": -1,
        "conf": 0,
        "prob": 0.00003126263618469238,
        "type": "registry"
      }
    ],
    "version": "v18.18",
    "analyzed_at": "2026-09-03T23:06:35Z"
  },
  "path": "punyecs-0.8.1-py3-none-any.whl",
  "raw": {
    "files": [
      {
        "id": 0,
        "ctx": [
          {
            "b": "p!H([6Awak00000aPIGx0000000000000o8003$XzH2/6B1Zu.0%xqr000o8001exh\u003eLV[9T\u00262GgB\u0026C96951jAcl5zwN/^muTEI+x()Y?e]V9H8EnA:W^\u0026g*v=xIuYII]a9U2Ty\u0026Hf($^Zh.3:IREg^?lJ/Ml(",
            "ln": 0
          }
        ],
        "mol": "H₂(Db₂F)",
        "sha": "219454ea74e2e1657230d44648098efe80c7b0887b019b6fdd739ca63a0f69e4",
        "path": "punyecs-0.8.1-py3-none-any.whl",
        "risk": 2,
        "size": 6337,
        "type": "whl",
        "facts": {
          "metrics": {
            "whl": {
              "native_extension_count": 0
            },
            "file": {
              "size": 6337,
              "entropy": 7.8
            },
            "binary": {
              "peak_region_bytes": 5120,
              "peak_region_entropy": 7.83
            },
            "archive": {
              "file_count": 5,
              "member_count": 7,
              "script_count": 1,
              "zip_bomb_ratio": 3.57,
              "compressed_size": 5467,
              "directory_count": 2,
              "executable_count": 0,
              "extra_field_size": 0,
              "noise_file_count": 0,
              "compression.ratio": 0.35,
              "hidden_file_count": 0,
              "uncompressed_size": 15672,
              "crc_collision_count": 0,
              "entry_comment_count": 0,
              "max_filename_length": 32,
              "rtlo_filename_count": 0,
              "format.regular_count": 5,
              "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,
              "format.directory_count": 2,
              "security.symlink_count": 0,
              "unicode_filename_count": 0,
              "homoglyph_filename_count": 0,
              "security.encrypted_count": 0,
              "timing.mtime_unique_count": 1,
              "timing.mtime_unique_ratio": 0.14,
              "misplaced_executable_count": 0,
              "timing.mtime_dominant_count": 7,
              "timing.mtime_spread_seconds": 0,
              "timing.sentinel_mtime_count": 0,
              "security.world_writable_count": 0,
              "timing.mtime_dominant_fraction": 1,
              "compression.method_counts.stored": 2,
              "compression.method_counts.deflate": 5
            }
          }
        },
        "ident": {
          "name": {
            "value": "punyecs",
            "source": "whl.distribution",
            "verified": false
          },
          "trust": "unsigned",
          "emails": [
            "csumnicht@berkeley.edu"
          ],
          "authors": [
            {
              "role": "author",
              "email": "csumnicht@berkeley.edu",
              "source": "whl.author"
            }
          ],
          "version": {
            "value": "0.8.1",
            "source": "whl.version",
            "verified": false
          }
        },
        "traits": [
          {
            "id": "micro-behaviors/fs/file/open::write-append-create-mode",
            "conf": 0.85,
            "crit": 3,
            "desc": "Python file opened for write or append"
          },
          {
            "id": "micro-behaviors/data/serialize/object::json-dump",
            "conf": 0.86,
            "crit": 3,
            "desc": "Serializes to a stream with json.dump()",
            "from": [
              {
                "file": 1
              }
            ]
          },
          {
            "id": "metadata/package/manifest/ecosystem::pkginfo-core-metadata",
            "conf": 1.0,
            "crit": 1,
            "desc": "Declares Python Core Metadata version",
            "from": [
              {
                "file": 2
              }
            ]
          },
          {
            "id": "metadata/package/manifest/ecosystem::pkginfo-summary-field",
            "conf": 0.9,
            "crit": 1,
            "desc": "Declares Python package summary",
            "from": [
              {
                "file": 2
              }
            ]
          },
          {
            "id": "metadata/package/manifest/ecosystem::pkginfo-version-field",
            "conf": 0.9,
            "crit": 1,
            "desc": "Declares Python package version",
            "from": [
              {
                "file": 2
              }
            ]
          },
          {
            "id": "metadata/package/manifest/ecosystem::pkginfo-name-field",
            "conf": 0.9,
            "crit": 1,
            "desc": "Declares Python package name",
            "from": [
              {
                "file": 2
              }
            ]
          },
          {
            "id": "micro-behaviors/data/serialize/json::json-load-call",
            "conf": 0.9,
            "crit": 3,
            "desc": "Python json.load call",
            "from": [
              {
                "file": 1
              }
            ]
          },
          {
            "id": "metadata/file/profile/metrics::archive-few-members",
            "conf": 0.85,
            "crit": 1,
            "desc": "Archive has at most five members",
            "spans": [
              [
                0,
                0
              ]
            ]
          },
          {
            "id": "metadata/package/manifest/ecosystem::wheel-archive-member",
            "conf": 0.98,
            "crit": 1,
            "desc": "Python wheel archive metadata"
          }
        ]
      },
      {
        "ctx": [
          {
            "b": "w].*bay/tay?m9#x(v)gazCXiz/P}xzEEx[woq%ky?i@=A=k!qwmoN*v@bN{B7Gznx(d*cA=-Bmvrt{/y*?yaefFLswO+(:x(d*cA=-BsB8L}6x(d*cA=-BxAaK5#Bz(gbw].*baAR)Fx(mMax(d*cA=-A\u0026zH0=QlT:!EvpB4:3jpq",
            "ln": 0,
            "col": 1,
            "line": 1
          },
          {
            "b": "B97#luV*l{A^q2gA42TziV{^#y\u00260J?y?l*Pl2H%NefEk@D0I\u003cW3lQDlar\u00260No\u003c}*GayMynzEENhaA8jgA::67z/cXuB75J]wGUA5ayMylBZ/8%v@#71zY?z=zGx]uvqfR3e^-ZzarSZ:vrb^[aA8iWaxi2=aA8jgA::67z/cXtzY\u0026LdzGYPiBs)[yarR^Ja%EvparR!qwO95%d05%ow*]+FarR^HarR^HA+funA=90!z/fSrA:-W1BsqoHvrcT2z/v\u003cTA4AbPvqEUYB7Gf1dgdguarUYoBAIRwaz7@/wmYu}A+e($B97#luT^.!uVf)iz/v-WlT:!EvpB4:tu:yhC}p77zH2Isavf)\u003ct}4/warR^Ha%Fj9vqxA%vix2[zEENhaA8jgA::67z/cXuB75J]wGUA5ayMylBZ/8%v@#71zY?z=zGx]uvqfR3e^-ZzarSZ:vrb^[aA8iWaxi2=aA8jgA::67z/cXtzY\u0026LdzGYPiBs)[yarR^Ja%EvparR!qwO95%d05%ow?k6yBzbladlm!UarR^HarR!vw/$#fBrCm9B76fjAWU\u003cFxK#inar\u003exuvqEbpiTM#LarR^HarR^HarUPAxK#ibjS)agzGx[Fz//T",
            "ln": 146,
            "col": 9,
            "line": 7
          },
          {
            "b": "arR^HBAhT/3lQDlarR^HarR^HarR^HaAz4nB-IvxxjVf[BAzKKz.92GdgdguarR^HarR^HarUluv}xR3avg9\u003eA+P09By^)YA=k$V3lQDlarR^HarR^HarR^HaAz4nB-Iv",
            "ln": 1010,
            "col": 9,
            "line": 37
          },
          {
            "b": "w?ECevRMkS3p5cgBywV}vrlF%v@bN{B09?*zGx[X3lQDlar\u00260Ns8}.*AaK5jw]zYjv@DmaByx6eaA?gfB.bRpx(k5mBZ/8%v@#71zY\u003c4xwPzG@B1OTXa{]CnarU\u0026oy=SX8zG#M@arR^HwmYu}wP?G#d05%ow*]+FarR^HarR^HA+funA=91vwO+@",
            "ln": 1491,
            "col": 19,
            "line": 50
          },
          {
            "b": "wO+%ciTM#LarR^HarUxgaAIagw?Fmny+^bEB0aj@zE\u003e\u003coarR^HarR^HarR^HvrlH3A=-ZJwO+%hB-7SdD0+GeazC)tzF%Rtph+2YdgdguarR^HarR^HarU9lB7Gxld05%ow?Fmny+W5DB0bvsBrBs%zE\u003em7arR^HarR^HarR^HA+funA=91vwO+%hB-7SdD0+Ged05%ow?Fmny+WLNC42hndjCPDarR^HarR!ry\u0026:eG3lQDlarR^HarR^HayPtjwPz(vB7Gf1e[eKjuVf)ax(+zmz/^9%z/fbn3lQDlarR^HarR^HayPtjwPz(vB7Gf1e{pVtf^7gKaz#atawM\u0026)wHN%earR^HarR^HarR!nB8$]kBsqiwy?tqyvqEXwx(+zmz/^9%z/fbn3lQDlarR^HarR^HaAz4nB-IvxB7Gf1e[eKjuVf)iB7Gf1e{pVtf!N3XvqEtvefG1By?tqyvqEXKwP?G#c[cOL3lQDlaywF[wOkvSauZ\u0026/wOkZ#By/G1B-7SdD0+Gec#T6oA::6dAXpZazE)D/uNVr?arR^HboP:1BrCyrxk7\u003c:y-)RlBsXLRxLzJgx(+zax([MkB7DFdzGYPiB7]MgaS%^awGUw*zF%S7u%\u003e9\u003ezGx]hvpQG)z/M$pz!A=]vqE7]arR^HuTEI+C4CYouTB{saAz4ax(!xcA:J%bvrcT2z/vayAaK4",
            "ln": 1960,
            "col": 15,
            "line": 72
          },
          {
            "b": "axiw\u0026x((xyarR^Ha%Fi%ay/tay?m9#x(v(iz!pb2BAzLqvS=^7B0a[cz/fhgCwhejaARpdx(UttvqH6$B0bNrvrrSgBzblaay/j@B8$]l3lQDlay!?$ayX[8xk8K2zy#nsarR^Ja%EvparR!qwO95(uUKy(Byex6B7Gf1efDz(yJ\u003cicxlbH.3lQDlarR^HaAIagw?EC5x\u003eq9\u003eB09Q*yJ\u003cicxlay!arR^HwmYu}uTEI?wPzc+d05%ow*]+FarR^HarR^Hw]zYjyH}=lx(k5mwO+%huUj1-y?dPtyH}^jc[dg:arR^HarR^HarR^HD1*\u0026awftV0C)T)3arR!qwO95(uTWFQuTCj5wO+%faA8vnwPxjX3lQDlarR^HaAz4nB-Ivxrb#zYBsnQ",
            "ln": 3368,
            "col": 6,
            "line": 106
          },
          {
            "b": "Bzblae)\u0026j8wO+)#djCPh3s)ZWaz2!8vruQic#SNfefF?szdLdS3lQDlar\u00260Nmr\u0026rUB.25avixJfz/xodBA]0yzxJvgB9g@bwN/*?Bz\u0026piy*?EcwIaq%arR^Hi=FIFvqNc9vRN}Dra]?=z^)D7Bz\u0026pkCW\u003eMjwmV((aAhvtAaK6iC{3Ztz/49larR^Hi=FIFvqNc8vqPNpaxi2=az$R8wGU]6aARpdaAhvtAaK6iC}GBDarR^Ja%EvparR!EwPS6nzxIq+zGx]uvqfR3c$l[duVf)Dy*?f\u0026wmlQ0efF*\u003eaz#atazth8vruQic#QTVzyEaVC42hwj-s!AefGaAy+!dvz/fSrc#JEgwHP5n3s)ZWazth8uTX4#AWU\u003cnyaHGBvqPN8iTM#LarR\u003cLb133Pv@0i3w/$I8Ab](owPz)razth8ayPdgvruQix\u003c#jbwGUY8ayMylBZ/8%v@#71zY\u0026LdzGx]uvqfR3e^.}darR^/Aa9=}z6i+ayc0FpxK@r8vRPE:BrCWzay/7@v@0X7arR^Hi=FIFvqNc8vqPNpaxi2=az$R8wGU]6aARpdaAhvtAaK6iC{4iEay/7@v@0X7arR^Ha%FirarR^HA+funA=90!z/fSrA:-W1BspQjzEms3j-1LzvQ@)\u0026z.92GiV@9AB76fjAWU\u0026Saz@RVaA?gff-",
            "ln": 3701,
            "col": 41,
            "line": 118
          },
          {
            "b": "BAoF=rb#zYBsXLCCW\u003eMjwmW]0z/fbqaA8BmA=L(8wJ-!bzE\u003emT3lQDlar\u00260NrDzZ]vriM1ay/j@B8@EmwN/U0vruBde*9U#C4CLlvix8{v@#B6zEENhaA7\u003cmvruQix\u003c#jbwGU(0zdK\u0026izY\u003cjiy\u0026%p@arR^HAa9E3B1wCPwPP56BAzLqvS=^7B0bykaz2.cA^n^CvRPE:BrCWzazC.6y\u0026%o1aARpnB7DF5B0a[kBAh88B-.hoe^-ZzarTc@A=+#aA=2-nwH[%rw/$Vfv@co#wGUYdaAIWAAbol1wgO\u003clzY*JEz/^DKx(mA%B.25aBzbPlwGUA6BAh88B-.hoe^-Zz",
            "ln": 4349,
            "col": 22,
            "line": 142
          },
          {
            "b": "x\u003ewG0CW\u003eMjwmV($B0aj@zE\u003e\u003coarR^HarR^HarR^HwQ4Z3B.25ajS[/SBsnNBarR^HarR^Hx\u003ewGaC4CYmx\u003eg=$x(+y(z/fbE3lQDlarR^HarR^HaA8BmA=L(8wGTbUwnbK}c[bGCarR^",
            "ln": 5098,
            "col": 9,
            "line": 158
          },
          {
            "b": "w[+*)wofwqBy/rgc[dg:arR^HarR^HarR^HarR^Hx\u003ewF@BAzKCzF%Rtx(k58CW\u003eMjwmW!earR^HarR^HarR^HarR^HarR^Hx\u003ewF@BAzKCzF%Rtx(k5iC4CYmx\u003eg^o3lQDlarR^HarR^HarR^HarR^",
            "ln": 5270,
            "col": 37,
            "line": 163
          },
          {
            "b": "arR^Ha%Fi%ay/j@B8@ECxKM09A+figwPI:2BAnNGxLy%\u0026ayPwlA+P09By/IovqYP#z^)D)v@#=mB7/Gmy?aU$wGUz$y\u0026sJewc%C4arS7JAV![bB75)3z*b=6diJtxayMy9A=l8te*qF-3lQDlayPd#uTX4#AYLsxA:-W73lQDlay/tcB98Chx(n1",
            "ln": 5568,
            "col": 1,
            "line": 175
          },
          {
            "b": "B.bPsc$Nprx([RYavf)\u003cefF}PwPA5Saw)n)A^o8ReJ$p^z/oCM3lQDlar\u00260NlUH4vyANt6ayPdgwO#Q7BA]0IxM53fwfrpsAV/Bpz/](baz#atdiJ8hayO!\u003ewN({9zY\u0026EhAa9^ex\u003e8p4vr8X$arR!tA=l8tayYQsvqYH\u0026D3TgxxcqqfwGU#nwPA5sB98CBv@#\u003clwIaq%arR^Hi=FIFvqNb#zGGPmC@^6ExK@q$zGGPmC{4iEaAqKnA^onAarR^Hi=FIFvqNcbB.bPsiV}ynwGU#nwPA5sBz\u0026pixK$W?azCBgBzbkdwO#Q7BA]0svqWh%wO=p5xcqqmazC{I3lQDl",
            "ln": 5765,
            "col": 23,
            "line": 180
          },
          {
            "b": "ay]4}aAhEAxKty)z/{1EB7Gf1efF}PwPA5Saw)n)A^o8{3lQDlarR^Har\u00260Nl1BHGBzbkdxl4{kA3eObwft]7BAIRwaARp9BrCjpz/{1K3jm)#arR^HarSZ:vrb^[aAqKnA^oX*ra]?=ADL\u0026kC{4iEayPtjz!0G\u0026By=Osx([2hBzbkdxl4{kA4RFuarR^HarR^Ja%EvparR^HarR!AwP}G]A=l8tauZ\u0026qA=l8tc#\u003cxvA^ohUtu@^5tu@V+arR^HarR^HB7Gf1e[YiyB-qyOvq{f%zE+ekwP}G]A=l8tdgdguarR^HarUYoBAIQ",
            "ln": 6671,
            "col": 4,
            "line": 211
          },
          {
            "b": "z/{1a3lQDlay]4}ayO!\u003ed05%ow?k6ozGGPmC@^6lzH0V(3lQDlarR^Har\u00260Nl1BHGvqWi0zGGPmC{4iEaARpdaA}:Ay?bdvrC(tUAV/EqwGUV8z!7ywwmY\u003c]A=2JdwPF#rxKM09xl4{kAb#vearR^HarR!GxK@q$zGGPmC{4fwz/](bayX[#z/fhgBz\u0026=s3lQDlarR^HauBEIA:-/cwO#Q7BA][\u0026ra]?=wO#Q7BA]0JzY\u0026F0wft#jaARpdaA}:Ay?bd9arR^HarR^Ha%FirarR^HarR^HB7Gf1e[F{xx([62B1Q)uAaJ]$c$Nprx([RH3lQDlarR^HazbLjaAqKn",
            "ln": 6930,
            "col": 22,
            "line": 218
          },
          {
            "b": "arR^HarR^HB7GxavqGU7wN]0?wO#Q7Bzkrcb3=*fAbYxawgh2bBzk\u0026xuU0\u003eXBsvLtarR^HarR!Jx([2hz/xo9c$D[gBsXKUCoOEUvriM6x(4uw3lQDlarR^HarR^HazL$ozz2ExzeZ[AwPzG[y?XibwgO\u003cnx(4uf3jm)#arUiaw/$R}B7GxavqGU7wHIRhy?tjvB8\u003e+KaAITBdlm!UarR^HarR^Ja%GZ0vpTB4vqYP#x(mTbx\u003c\u003e*(Ds.duz^)D)v@#=mz!pa:q+{dhw[=6)aARJAvR3W7xK@rgz/PV8e^.",
            "ln": 7746,
            "col": 5,
            "line": 241
          },
          {
            "b": "a%FirarR^HarR^HCwhejaA8jgzyxNDv\u003en-DAV#}PvriM6x(4uw3lQDlarR^HarR^Haz2Cjx([62B09Q*yiarhe]kDmwgh57y?k45arR^HarR^HarR^Hw]zYjwO#Q7BA]0yzxJIdBzk\u0026hwPI61wO#Q7Bzkrcb3^kparR^HarR^HarR^HarR^Hx(mTbx\u003c\u003e*(DsZR]wO#Q7BA[#(azkIevQT7]c[ewizGGPmD0qF5y\u0026-%3vqPN1u0N^WarR^Hao",
            "ln": 8066,
            "col": 9,
            "line": 249
          },
          {
            "b": "wJ-!bzE\u003emT3lQDlar\u00260NrDzZ]vriM1ay]4[z/Podz/NDMq*04#z/YFjD2E*FxKM6}ayMy8B-7Yhx(v(iu$H/#dpsouxKM09z/xodvru74aA8c8arR^HB8L]baz2Cjx([RyvqYP#D2E*FwmYm?A::63azC{uCwhejaA8deuVP[0Bs[XnxK@rbwPS6n",
            "ln": 10212,
            "col": 42,
            "line": 311
          }
        ],
        "depth": 1,
        "facts": {
          "imp": [
            [
              "",
              "Constraint"
            ],
            [
              "",
              "hasattr"
            ],
            [
              "",
              "Const"
            ],
            [
              "",
              "Constraint"
            ],
            [
              "",
              "Constraint"
            ],
            [
              "",
              "getattr"
            ],
            [
              "",
              "Constraint"
            ],
            [
              "",
              "get"
            ],
            [
              "",
              "Const"
            ],
            [
              "",
              "Constraint"
            ],
            [
              "",
              "Const"
            ],
            [
              "",
              "Constraint"
            ],
            [
              "",
              "Const"
            ],
            [
              "",
              "self.unary_op"
            ],
            [
              "",
              "self.val1.eval"
            ],
            [
              "",
              "self.bin_op"
            ],
            [
              "",
              "self.val1.eval"
            ],
            [
              "",
              "self.val2.eval"
            ],
            [
              "",
              "register_unary_op"
            ],
            [
              "",
              "register_unary_op"
            ],
            [
              "",
              "register_unary_op"
            ],
            [
              "",
              "register_bin_op"
            ],
            [
              "",
              "register_bin_op"
            ],
            [
              "",
              "register_bin_op"
            ],
            [
              "",
              "register_bin_op"
            ],
            [
              "",
              "register_bin_op"
            ],
            [
              "",
              "register_bin_op"
            ],
            [
              "",
              "register_bin_op"
            ],
            [
              "",
              "register_bin_op"
            ],
            [
              "",
              "register_bin_op"
            ],
            [
              "",
              "register_bin_op"
            ],
            [
              "",
              "register_bin_op"
            ],
            [
              "",
              "register_bin_op"
            ],
            [
              "",
              "register_bin_op"
            ],
            [
              "",
              "register_bin_op"
            ],
            [
              "",
              "register_bin_op"
            ],
            [
              "",
              "self._fields.keys"
            ],
            [
              "",
              "Trait"
            ],
            [
              "",
              "Constraint"
            ],
            [
              "",
              "hasattr"
            ],
            [
              "",
              "Const"
            ],
            [
              "",
              "Constraint"
            ],
            [
              "",
              "hasattr"
            ],
            [
              "",
              "Const"
            ],
            [
              "",
              "dataclass"
            ],
            [
              "",
              "set"
            ],
            [
              "",
              "dict"
            ],
            [
              "",
              "trait._fields.items"
            ],
            [
              "",
              "setattr"
            ],
            [
              "",
              "setattr"
            ],
            [
              "",
              "hasattr"
            ],
            [
              "",
              "query.constraint.eval"
            ],
            [
              "",
              "namedtuple"
            ],
            [
              "",
              "field"
            ],
            [
              "",
              "field"
            ],
            [
              "",
              "Group"
            ],
            [
              "",
              "self.groups.append"
            ],
            [
              "",
              "self.entities.append"
            ],
            [
              "",
              "entity_satisfies_query"
            ],
            [
              "",
              "group.append"
            ],
            [
              "",
              "entity.asdict"
            ],
            [
              "",
              "type"
            ],
            [
              "",
              "serialized[\"entities\"].append"
            ],
            [
              "",
              "open"
            ],
            [
              "",
              "json.dump"
            ],
            [
              "",
              "open"
            ],
            [
              "",
              "json.load"
            ],
            [
              "",
              "globals"
            ],
            [
              "",
              "self.add"
            ],
            [
              "",
              "self.add"
            ],
            [
              "",
              "enumerate"
            ],
            [
              "",
              "group.entities.pop"
            ],
            [
              "",
              "func"
            ],
            [
              "",
              "Query"
            ],
            [
              "",
              "world.push_group"
            ],
            [
              "",
              "func"
            ],
            [
              "",
              "group.systems.append"
            ],
            [
              "",
              "Query"
            ],
            [
              "",
              "world.push_group"
            ],
            [
              "",
              "func"
            ],
            [
              "",
              "Any"
            ],
            [
              "",
              "Callable"
            ],
            [
              "",
              "collections"
            ],
            [
              "",
              "dataclass"
            ],
            [
              "",
              "dataclasses"
            ],
            [
              "",
              "field"
            ],
            [
              "",
              "json"
            ],
            [
              "",
              "namedtuple"
            ],
            [
              "",
              "operator"
            ],
            [
              "",
              "typing"
            ]
          ],
          "mbr": [
            "c._obj",
            "entities.entities",
            "entity.__name__",
            "entity.asdict",
            "entity.cls_name",
            "entity.obj_name",
            "entity_dict.cls_name",
            "entity_dict.obj_name",
            "group.append",
            "group.entities",
            "group.entities.pop",
            "group.systems",
            "group.systems.append",
            "initialized_entity.__name__",
            "json.dump",
            "json.load",
            "operator.__abs__",
            "operator.__add__",
            "operator.__and__",
            "operator.__eq__",
            "operator.__floordiv__",
            "operator.__gt__",
            "operator.__invert__",
            "operator.__lt__",
            "operator.__mul__",
            "operator.__neg__",
            "operator.__or__",
            "operator.__sub__",
            "operator.__truediv__",
            "other._fields",
            "query.and_attr",
            "query.constraint",
            "query.constraint.eval",
            "self._fields",
            "self._fields.keys",
            "self._obj",
            "self.add",
            "self.bin_op",
            "self.entities",
            "self.entities.append",
            "self.groups",
            "self.groups.append",
            "self.unary_op",
            "self.val",
            "self.val1",
            "self.val1.eval",
            "self.val2",
            "self.val2.eval",
            "serialized.entities",
            "serialized.entities.append",
            "trait._fields",
            "trait._fields.items",
            "type().__name__",
            "world.push_group"
          ],
          "tgt": [
            "Const",
            "Constraint",
            "Group",
            "Query",
            "Trait",
            "c",
            "dataclass",
            "dict",
            "entity.asdict",
            "entity_satisfies_query",
            "enumerate",
            "field",
            "func",
            "get",
            "getattr",
            "globals",
            "group.append",
            "group.entities.pop",
            "group.systems.append",
            "hasattr",
            "json.dump",
            "json.load",
            "namedtuple",
            "open",
            "query.constraint.eval",
            "register_bin_op",
            "register_unary_op",
            "self._fields.keys",
            "self.add",
            "self.bin_op",
            "self.entities.append",
            "self.groups.append",
            "self.unary_op",
            "self.val1.eval",
            "self.val2.eval",
            "serialized.entities.append",
            "set",
            "setattr",
            "trait._fields.items",
            "type",
            "world.push_group"
          ],
          "funcs": [
            [
              "register_unary_op",
              138
            ],
            [
              "f",
              305
            ],
            [
              "register_bin_op",
              382
            ],
            [
              "f",
              553
            ],
            [
              "not_",
              719
            ],
            [
              "__getattr__",
              945
            ],
            [
              "get",
              987
            ],
            [
              "is_",
              1211
            ],
            [
              "isnot",
              1331
            ],
            [
              "eval",
              1457
            ],
            [
              "eval",
              1603
            ],
            [
              "eval",
              1950
            ],
            [
              "__init__",
              3483
            ],
            [
              "__iter__",
              3548
            ],
            [
              "__add__",
              3635
            ],
            [
              "ex_attr",
              3718
            ],
            [
              "has_attr",
              3986
            ],
            [
              "give_traits",
              4328
            ],
            [
              "wrapper",
              4992
            ],
            [
              "entity_satisfies_query",
              5743
            ],
            [
              "push_group",
              6672
            ],
            [
              "add",
              6939
            ],
            [
              "serialize",
              7331
            ],
            [
              "deserialize",
              7880
            ],
            [
              "extend",
              8377
            ],
            [
              "remove",
              8622
            ],
            [
              "update",
              9044
            ],
            [
              "requirements",
              9416
            ],
            [
              "req_dec",
              9848
            ],
            [
              "inner",
              9988
            ],
            [
              "one_shot",
              10114
            ],
            [
              "req_dec",
              10802
            ],
            [
              "inner",
              10935
            ]
          ],
          "metrics": {
            "ast": {
              "op.bor": 8,
              "max_depth": 18,
              "call_count": 81,
              "node_count": 2402,
              "member_count": 54,
              "max_array_len": 3,
              "op_density.bor": 0,
              "member_depth_max": 3
            },
            "file": {
              "size": 11059,
              "entropy": 4.46
            },
            "text": {
              "lines": 329,
              "top_char": 101,
              "max_ws_run": 1,
              "digit_ratio": 0,
              "space_count": 2742,
              "char_entropy": 4.46,
              "unique_chars": 70,
              "top_char_null": 0,
              "string_density": 0.11,
              "top_char_ratio": 0.07,
              "avg_line_length": 32.61,
              "max_line_length": 91,
              "empty_line_ratio": 0.17,
              "last_line_length": 18,
              "whitespace_ratio": 0.28,
              "identifier_density": 1.72,
              "line_length_stddev": 23.92,
              "normalized_string_count": 1.93,
              "repeated_char_sequences": 51,
              "suspicious_string_ratio": 0.26,
              "trailing_whitespace_lines": 7,
              "suspicious_identifier_ratio": 0.06,
              "normalized_unique_identifiers": 15.91
            },
            "binds": {
              "count": 48
            },
            "binary": {
              "peak_region_bytes": 10035,
              "peak_region_entropy": 4.53
            },
            "source": {
              "class_count": 6,
              "function_count": 28
            },
            "imports": {
              "count": 10,
              "stdlib_count": 5,
              "stdlib_ratio": 0.5,
              "third_party_count": 5,
              "third_party_ratio": 0.5
            },
            "strings": {
              "bytes": 3872,
              "count": 35,
              "shell": 4,
              "avg_length": 110.63,
              "max_length": 591,
              "avg_entropy": 3.33,
              "entropy_stddev": 1.15,
              "embedded_code_candidates": 5
            },
            "comments": {
              "chars": 141,
              "count": 4,
              "lines": 4,
              "to_code_ratio": 0.01
            },
            "functions": {
              "count": 34,
              "nested": 8,
              "density": 10.03,
              "avg_params": 1.7,
              "code_ratio": 0.82,
              "max_params": 3,
              "length_stddev": 6.3,
              "avg_name_length": 7.42,
              "no_params_count": 1,
              "avg_length_lines": 8.15,
              "max_length_lines": 29,
              "min_length_lines": 2,
              "avg_nesting_depth": 0.3,
              "max_nesting_depth": 2,
              "single_char_names": 2,
              "high_entropy_names": 1,
              "single_char_params": 3,
              "avg_param_name_length": 4.75
            },
            "identifiers": {
              "count": 565,
              "unique": 133,
              "avg_length": 6.5,
              "max_length": 22,
              "min_length": 1,
              "avg_entropy": 2.09,
              "reuse_ratio": 0.24,
              "length_stddev": 3.58,
              "has_digit_ratio": 0.02,
              "sequential_names": 8,
              "single_char_count": 7,
              "single_char_ratio": 0.05,
              "high_entropy_count": 2,
              "high_entropy_ratio": 0.02,
              "all_lowercase_ratio": 0.92,
              "all_uppercase_ratio": 0.01,
              "numeric_suffix_count": 2,
              "double_underscore_count": 22,
              "underscore_prefix_count": 25
            }
          }
        },
        "id": 1,
        "mol": "H₂(Db₂F)",
        "path": "punyecs-0.8.1-py3-none-any.whl!!punyecs/__init__.py",
        "pid": 0,
        "risk": 2,
        "sha": "d95250a9812f9009c11c1542272c016e7a85fc99876e400dda614d5142feec3a",
        "size": 11059,
        "traits": [
          {
            "id": "micro-behaviors/data/serialize/json::json-load-call",
            "conf": 0.9,
            "crit": 3,
            "desc": "Python json.load call",
            "spans": [
              [
                8130,
                9
              ]
            ]
          },
          {
            "id": "micro-behaviors/data/serialize/object::json-dump",
            "conf": 0.86,
            "crit": 3,
            "desc": "Serializes to a stream with json.dump()",
            "spans": [
              [
                7847,
                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": [
              [
                7810,
                15
              ]
            ]
          }
        ],
        "type": "python"
      },
      {
        "ctx": [
          {
            "b": "o\u003ewAPwmoN*eMMC6B7]MgiV{gggyu(=zdL:JAcl5zwN/=*r+lq)x(v(IattAce?)YiB.$#7A^oX*k{gk.ze:r5ayPwlA+P09By^4kvrl0\u003cayPkdA=kw@xDRznavOT@e^:)!BzbPkeOe^cx(2*Mv@(^fzFrP]Bu\u003cqDA+/l5wQb[twowkDy*?yax\u003ez6\u003cAYLstA=kPhvqP\u003c}zF77=vqY.2vp%c]iYXxWD30.rzxH#3atUS8f:Zo:vrlH7w=",
            "ln": 0,
            "col": 1,
            "line": 1
          },
          {
            "b": "ze0)2awuiYxlvS}wGT2{aw^u9xM4=hiYXxte?]9*qE%\u0026\u003cx(W^aeL{.mxM4=Hau?}Ae?]6/l$HBHA+PGmx(v(vlVl\u003c:wO#Pwrc-B]iV@JQCYUPQvrcc]z*c7a3oSnIvqGT\u003czAPgNwO#Q3AW0WOarS^Xzd:#jA:}lRAcl5zwN/^ky\u0026r%8e]#hGa%prgBuH*!B-8Fov@\u0026?T",
            "ln": 209,
            "col": 20,
            "line": 7
          },
          {
            "b": "v@#B6zGu}4z/PS9y\u0026sIuq/(C\u0026B-Q?pxMOunB2\u003e%cx(dGnB7/o0y?dPtx(tUqx([3hvLqe1BzkVhB1.-QA+/o6z*9\u003cQByxolB1ZmawozY%AXf^\u0026zdLp^z/6DizE)ZcB1.GPzH2/6B1W",
            "ln": 397,
            "col": 11,
            "line": 17
          }
        ],
        "depth": 1,
        "facts": {
          "metrics": {
            "file": {
              "size": 4180,
              "entropy": 5.06
            },
            "binary": {
              "peak_region_bytes": 4180,
              "peak_region_entropy": 5.03
            }
          }
        },
        "id": 2,
        "path": "punyecs-0.8.1-py3-none-any.whl!!punyecs-0.8.1.dist-info/METADATA",
        "pid": 0,
        "risk": 1,
        "sha": "b5bfb51d67b6061b781bcb498c667065be6054bf43dbf00ac0df17c71ef121b9",
        "size": 4180,
        "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-markdown-description",
            "conf": 0.9,
            "crit": 1,
            "desc": "Declares Markdown package description",
            "spans": [
              [
                265,
                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-requires-python",
            "conf": 0.9,
            "crit": 1,
            "desc": "Declares supported Python versions",
            "spans": [
              [
                241,
                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/manifest/ecosystem::pypi-basic-metadata",
            "conf": 0.95,
            "crit": 2,
            "desc": "PyPI package declares name, version, summary",
            "uses": [
              0,
              2,
              4,
              5
            ],
            "spans": [
              [
                51,
                0
              ]
            ]
          }
        ],
        "type": "pkg_info"
      },
      {
        "ctx": [
          {
            "b": "DM)3hz/ZhBBy/qkiWeJ*Aa{HEb5Q?awG\u003ceVAcl5zwN/^9efYmGA=U@kzx.a=fFksqf^nd)AckSax(^%0wm5+!b04Cqi5S-Iixo5PefXInwNw$RD2\u003ee\u003cfF1z:vru74Byfi5A=U@kzx.a=fFksqf^nd)vrDW9z/N3.zGP=iefYgIBzLIji=o7Ry+c=vwPIv4",
            "ln": 0,
            "col": 1,
            "line": 1
          }
        ],
        "depth": 1,
        "facts": {
          "metrics": {
            "file": {
              "size": 786,
              "entropy": 4.7
            },
            "binary": {
              "peak_region_bytes": 786,
              "peak_region_entropy": 4.7
            },
            "registry": {
              "age_days": 0,
              "published_at": 1786809983,
              "releases_24h": 1,
              "releases_48h": 1,
              "is_deprecated": 0,
              "release_count": 11,
              "package_age_days": 89,
              "first_published_at": 1779051448,
              "vulnerability_count": 0,
              "previous_published_at": 1786135287,
              "days_since_previous_release": 7
            }
          }
        },
        "id": 3,
        "mol": "Md",
        "path": "punyecs@0.8.1.registry.json",
        "pid": 0,
        "rel": "registry",
        "risk": 1,
        "role": "sidecar",
        "sha": "252603d0ce3345883e690ab46b975c1a5c4b7c63d630397c50d3e30f83167b1b",
        "size": 786,
        "traits": [
          {
            "id": "metadata/registry::freshly-published",
            "conf": 1.0,
            "crit": 3,
            "desc": "Release published within seven days",
            "spans": [
              [
                0,
                24
              ]
            ]
          }
        ],
        "type": "registry"
      }
    ],
    "rev": "479f3",
    "v": "8"
  }
}