{
  "ml": {
    "v": "7",
    "eng": "2.8.0",
    "lvl": -1,
    "conf": 0,
    "mods": [
      {
        "cls": 0,
        "raw": 0.00022657712,
        "rte": "az",
        "prob": 0.00022657712
      },
      {
        "cls": 0,
        "raw": 0.0023637414,
        "rte": "az/whl",
        "prob": 0.0023637414
      }
    ],
    "prob": 0.00022657712,
    "files": [
      {
        "id": 0,
        "lvl": -1,
        "conf": 0,
        "prob": 0.00022657711815554649,
        "type": "whl"
      },
      {
        "id": 2,
        "lvl": -1,
        "conf": 0,
        "prob": 0.00002362330815230962,
        "type": "python"
      },
      {
        "id": 6,
        "lvl": -1,
        "conf": 0,
        "prob": 0.00001424551010131836,
        "type": "registry"
      }
    ],
    "version": "v18.18",
    "analyzed_at": "2026-09-08T07:52:05Z"
  },
  "path": "com_digitalruiz_shopify_apis-0.0.4-py3-none-any.whl",
  "raw": {
    "files": [
      {
        "id": 0,
        "ctx": [
          {
            "b": "p!H([6Awak2MOG$c%V/M0006200000001zE003IEzc{*/xk8D@y\u0026TVjDs7-bz/xA5D0+00x(+}muUKy(ByexcAcRJ=p!H([6Awak2MOG$c%X/Out2=j008Kj001LI003IEzc{*/xk8D@y\u0026TVjDs7-bz/xA5D0+00x(+}GxM4\u003c7w{E-(Aa%wCAcYX",
            "ln": 0
          }
        ],
        "mol": "H₂(Db₂F)",
        "sha": "8e0589e4d3842b73a8a18c8fdf373424db574b9658e6ce49891311f095001839",
        "path": "com_digitalruiz_shopify_apis-0.0.4-py3-none-any.whl",
        "risk": 3,
        "size": 4621,
        "type": "whl",
        "facts": {
          "metrics": {
            "whl": {
              "native_extension_count": 0
            },
            "file": {
              "size": 4621,
              "entropy": 7.65
            },
            "binary": {
              "peak_region_bytes": 3072,
              "peak_region_entropy": 7.79
            },
            "archive": {
              "file_count": 7,
              "member_count": 7,
              "script_count": 2,
              "zip_bomb_ratio": 5.14,
              "compressed_size": 3353,
              "directory_count": 0,
              "executable_count": 0,
              "extra_field_size": 0,
              "noise_file_count": 0,
              "compression.ratio": 0.29,
              "hidden_file_count": 0,
              "uncompressed_size": 11591,
              "crc_collision_count": 0,
              "entry_comment_count": 0,
              "max_filename_length": 61,
              "rtlo_filename_count": 0,
              "format.regular_count": 7,
              "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": 2,
              "timing.mtime_unique_ratio": 0.29,
              "misplaced_executable_count": 0,
              "timing.mtime_outlier_count": 2,
              "timing.mtime_dominant_count": 5,
              "timing.mtime_spread_seconds": 18,
              "timing.sentinel_mtime_count": 0,
              "security.world_writable_count": 0,
              "timing.mtime_dominant_fraction": 0.71,
              "compression.method_counts.deflate": 7
            },
            "consistency": {
              "cloned_summary": 0,
              "name_typosquat": 0,
              "self_dependency": 0,
              "metadata_identity_mismatch": 0
            }
          }
        },
        "ident": {
          "name": {
            "value": "com_digitalruiz_shopify_apis",
            "source": "whl.distribution",
            "verified": false
          },
          "trust": "unsigned",
          "emails": [
            "reyes@digitalruiz.com"
          ],
          "authors": [
            {
              "name": "Reyes Ruiz",
              "role": "author",
              "email": "reyes@digitalruiz.com",
              "source": "whl.author"
            }
          ],
          "version": {
            "value": "0.0.4",
            "source": "whl.version",
            "verified": false
          }
        },
        "traits": [
          {
            "id": "metadata/package/manifest/ecosystem::pkginfo-requires-python",
            "conf": 0.9,
            "crit": 1,
            "desc": "Declares supported Python versions",
            "from": [
              {
                "file": 4
              }
            ]
          },
          {
            "id": "metadata/package/manifest/ecosystem::pypi-license-metadata",
            "conf": 0.94,
            "crit": 2,
            "desc": "PyPI package declares license information",
            "from": [
              {
                "file": 4
              }
            ],
            "uses": [
              8,
              10
            ]
          },
          {
            "id": "metadata/package/manifest/ecosystem::pkginfo-requires-dist",
            "conf": 0.9,
            "crit": 1,
            "desc": "Declares Python runtime dependencies",
            "from": [
              {
                "file": 4
              }
            ]
          },
          {
            "id": "micro-behaviors/fs/file/open::write-append-create-mode",
            "conf": 0.85,
            "crit": 3,
            "desc": "Python file opened for write or append"
          },
          {
            "id": "metadata/package/manifest/ecosystem::pkginfo-markdown-description",
            "conf": 0.9,
            "crit": 1,
            "desc": "Declares Markdown package description",
            "from": [
              {
                "file": 4
              }
            ]
          },
          {
            "id": "metadata/package/manifest/ecosystem::pypi-basic-metadata",
            "conf": 0.95,
            "crit": 2,
            "desc": "PyPI package declares name, version, summary",
            "from": [
              {
                "off": 57,
                "file": 4,
                "line": 3
              }
            ],
            "uses": [
              8,
              9,
              11,
              12
            ]
          },
          {
            "id": "micro-behaviors/data/serialize/json::json-loads-call",
            "conf": 0.9,
            "crit": 3,
            "desc": "Parses JSON data with Python",
            "from": [
              {
                "file": 2
              }
            ]
          },
          {
            "id": "micro-behaviors/data/serialize/json::json-load-call",
            "conf": 0.9,
            "crit": 3,
            "desc": "Python json.load call",
            "from": [
              {
                "file": 2
              }
            ]
          },
          {
            "id": "metadata/package/manifest/ecosystem::pkginfo-core-metadata",
            "conf": 1.0,
            "crit": 1,
            "desc": "Declares Python Core Metadata version",
            "from": [
              {
                "file": 4
              }
            ]
          },
          {
            "id": "metadata/package/manifest/ecosystem::pkginfo-summary-field",
            "conf": 0.9,
            "crit": 1,
            "desc": "Declares Python package summary",
            "from": [
              {
                "file": 4
              }
            ]
          },
          {
            "id": "metadata/package/manifest/ecosystem::pkginfo-license-file",
            "conf": 0.9,
            "crit": 1,
            "desc": "Declares Python package license file",
            "from": [
              {
                "file": 4
              }
            ]
          },
          {
            "id": "metadata/package/manifest/ecosystem::pkginfo-name-field",
            "conf": 0.9,
            "crit": 1,
            "desc": "Declares Python package name",
            "from": [
              {
                "file": 4
              }
            ]
          },
          {
            "id": "metadata/package/manifest/ecosystem::pkginfo-version-field",
            "conf": 0.9,
            "crit": 1,
            "desc": "Declares Python package version",
            "from": [
              {
                "file": 4
              }
            ]
          },
          {
            "id": "micro-behaviors/data/serialize/object::json-dump",
            "conf": 0.86,
            "crit": 3,
            "desc": "Serializes to a stream with json.dump()",
            "from": [
              {
                "file": 2
              }
            ]
          },
          {
            "id": "metadata/package/manifest/ecosystem::pypi-runtime-metadata",
            "conf": 0.94,
            "crit": 2,
            "desc": "PyPI package declares Python and dependencies",
            "from": [
              {
                "off": 534,
                "file": 4,
                "line": 14
              }
            ],
            "uses": [
              0,
              2,
              8
            ]
          }
        ]
      },
      {
        "ctx": [
          {
            "b": "cNQnGq!6\u0026ZAc9jDx([2hB7/Ghx\u003ezSkw{503BzkVhA%+oMAcVFrxj#xfgb7Etaw#=@wPF$(B.MdecNQnGx(d*cA=-BBD2\u003csbze:AlBrCstz/b[@ze:AlBrCWtzdK5*ze:AlBrCHy3tar%z6i!aBzbG8vJYx4AbP=saw=G*xBnu(z/3Rbz/5\u0026(x\u003eId4vqG$bx)KccxM4\u003c7w{E-%BAzFev@b\u003c\u003czGE1nze:AlBrCTrz/xA5D0+lbBz$O%yY",
            "ln": 0,
            "col": 1,
            "line": 1
          },
          {
            "b": "xj\u003e^@3joE5m[l0CauZ\u0026:D0+xaxj\u003e^@e]$PCuU\u003cT[xjV9izeS%cy?l%\u003evqPNsB9R*Vvrc17tqftlaz+$ey?m^3y=%dqpdw2bdgf0ApF:RLsZKD.o?w8!k#pcWrz(HkjS[/Vz/xA5D0+lbBz$O%y?WD#Bs}SCByf95z/xA5D0:#\u003cze0({B-IpDdge:AlQsWy",
            "ln": 245,
            "col": 44,
            "line": 11
          },
          {
            "b": "tt[6*p!sbVuQm7OnLSRUp!t1]qCnR:b4\u003e}8Aa\u003clce]2DCzx-vn3lQDlay/tcBy/uiauZ\u0026*xM4\u003c7w{E-%BAzFev@b\u003c\u003czGEHIz/Z1GB-IpHaAg+my\u0026r-)dgdguarUYoBAIRway/tcBy/ui3jprPw/$P7wNPW(uVp47wozy7c$D+dvjskAarR^HcNQnGarR^HlVM:DBy/IovixD0Coy%uz/xA5C{46Dz!a02Bp6ckarUutBz#pZfe4xWz/xA5C}JSsB$Woyx!J[9ze0(tA+frlfetjpga+jmflgSBz/{8gwPGIzA=kGhv@@@mz/Z1LAb](cBZ]Jm3lQDlaswJ:3lQDlaA.ZvauZ?{fdew!z!T8qtt[6*p!sbVuQm7OnLSRUp!t1]qCnR:b4\u003e}8Aa\u003clce]2DCzx-vn3lQDlay/tcBy/uiauZ\u0026*xM4\u003c7w{E-%BAzFe",
            "ln": 557,
            "col": 20,
            "line": 21
          },
          {
            "b": "vpS[QC42A9vqZfray[]5vjskAarR^HcNQnGarR^HlVM:DBy/IovixD0Coy\u003cBz!a02BrC:nA+O%1Bp6ckarUutBz#pZfe4xWz/xA5C}JSsB$Woyx!J[9ze0(tA+frlfetjpga+jmflgSBz/{8gwPGIzA=kGhv@%qCvrc6\u003czGEaxz/Z1LAb](cBZ]JmePt-Gwozy7eOO-EC42A9vqZgd3lQDlaswJ:3lQDlaA.ZvauZ?{fdew!z!T8qtt[6*p!sbVuQm7OnLSRUp!t1]qCnR:tNzO@arR^HarR^HarR\u003eEA=kGhv@#=oefFg8arR^HarR^HarR^HB98BJ",
            "ln": 987,
            "col": 32,
            "line": 34
          },
          {
            "b": "ByfffwmoN\u003ec$D+dvjskAarR^HcNQnGarR^HrD8FSBy/IoC42A9vqZe]arR^HxMOunB2\u003e%cB7/Ghx\u003ezSywmY{qvq]{lvpTj?zy])uB965\u003cfFUynf!+n3wPI^jA:@W4fk$@Iwozy7eP$Myx\u003c\u003e[3bxd^EeP$Myx\u003c\u003e[3B1IMzA+O%1Bs?iq3lQDlaswJ:3lQDlaA.ZvauZ?{fdew!z!T8qtt[6*p!sbVuQm7OnLSRUp!t1]qCnR:tNzO@arR^HarR^HarR\u003eKvrc6\u003czGG}zefFg8arR^HarR^HarR^HB98BJ",
            "ln": 1388,
            "col": 11,
            "line": 46
          },
          {
            "b": "arR!pz/fVdzGE0:aAIjmAa@{fuUBL6A9)9\u003ex\u003eqg7e]U@Pd0oMDefFFiByuQ9arR^HA+funA=91fz/fVdzGDi)wmYu}Ab](cBZ]J2B-p(1By=\u003etA=kGhv@#6(wgO\u003clvrt{biTM#LarS3VcKH$sarTW6wmoN\u003eaAhvtwozy73lQDlazt\u003esAc15[flp/BAa@{fe[wKpfjw*lfjwydx(kIywPI@Dgb7EseIO}jA+frgB-H#6B1.GMz!a02Br+:EBs?DLz!a02BAo3MA=kGhv@%qpwc%C4arS3VcKH$sarU/Ey-\u003e\u003e-cOD\u00261yhW*7c%GRvpF:RLsZKD.o?w8!k#pcWrz(Hway2l@arR^HarR^HarR^JAb](cBZ]Jma$K\u003cw3lQDlarR^HarR^HaAITBc\u0026",
            "ln": 1660,
            "col": 2,
            "line": 54
          },
          {
            "b": "vjskAarR^HcNQnGarR^HlVM:DBy/IovixD0Coy\u003cBz!a02BrCpmvp%cUarR^HxMOunB2\u003e%cB7/Ghx\u003ezSywmY{qvq]{lvpTj?zy])uB965\u003cfFUynf!+n3wPI^jA:@W4fk$@Iwozy7eOP6gxjSrbz/Z1LAb](cBZ]JmePt-Gwozy7eOO-Ex(do\u003ewPFh3arR^OcNPlzarR!HA+(\u003cYasw/\u0026e]2rszywZ/nkA5NmP\u003c7:l}{lFuQmHWuSx#$efFg8arR^HarR^HarR^Hb5?Nvwozy7B0rdTtNzO@arR^HarR^HarU-EAWQ",
            "ln": 2124,
            "col": 41,
            "line": 69
          },
          {
            "b": "x\u003ee+qwmoN*dlm!UarR^OcNPlzarR!3z!9M]C{46Dz!a02BrCpmvp%cUarR^HxMOunB2\u003e%cB7/Ghx\u003ezSywmY{qvq]{lvpTj?zy])uB965\u003cfFUynf!+n3wPI^jA:@W4fk$@Iwozy7eOP6gxjSrbB-YiOA=kGhv@#=zAb](cBZ]IBx\u003ee/fzdd6*B1I9yvp%d6x\u003edL[arR^OcNPlzarR!HA+(\u003cYasw/\u0026e]2rszywZ/nkA5NmP\u003c7:l}{lFuQmHWuSx#$efFg8arR^HarR^HarR^Hb5?Nvwozy7B0rdTtNzO@arR^HarR^HarU-EAWQ",
            "ln": 2523,
            "col": 44,
            "line": 82
          },
          {
            "b": "w[+*)woferA=kGhv@#6(wgoLDarR^HcNQnGarR^Hm}D^-az\u003eXivp\u003cj+y?dPfw]zYjvixJfz!a02Bp6ckarUutBz#pZfe4xWz/xA5C}JSsB$Woyx!J[9ze0(tA+frlfetjpga+jmflgSBz/{8gwPGIwwPRu)x\u003eq9\u003ebwgOfeN\u0026KmxlbUly\u0026r@rx\u003ee/jwPRu)x\u003eq9\u003eA%:3jarS3VcKH$sarU/Ey-\u003e\u003e-cOD\u00261yhW*7c%GRvpF:RLsZKD.o?w8!k#pcWrz(HwaszbGz!a02BAn/XaAITBc#:iBwozy7uUK41efDrSwPRu)x\u003eq9\u003eB1RiGzV",
            "ln": 2939,
            "col": 21,
            "line": 95
          },
          {
            "b": "x\u003ezS$xMOunuT)[^wO#PxxjVfkB-IpE3lQDlaz\u003eXivp\u003cj+y?dPfjS)%m3lQDlazbLjay/tcBy/uiazCZov@DmbwO#QhiTM#LarR^HarUJjByw=}wO+)#auZ\u0026:wPRu)x\u003eq9\u003eB08$Qyiarhe]kDmwofeez/fVdzGEsicV9Bpvp\u003cj+y?dPmt).X%arUYoBAIRwaz\u003eXivp\u003cj+y?dO]3s)ZWay/C6vru6/Ab](cBZ]J2zdN/$w[+*)wghzqz!a02Bye-)efFFiByuQV3lQDlaswJ:3lQDlavyfXvru74ayMygwP]noA=kGhv@@\u0026gwPRu)x\u003eq9\u003e3lQDlazt\u003esAc15[flp/BAa@{fe[wKpfjw*lfjwydx(kIywPI@Dgb7EseIO}jA+frgB-H#6B1.xwByw=}wO+)4AbP/teP26vvp\u003cj+y?dO]arR^HcNQnGarR^HB-IpvjS(a9cOxdLx(kt6q+fXXnK=\u0026\u0026k$1Bspg3p-nNCE}oE}q\u003e3lQDlarR^HarR^HaszbGz!a02BAn/Xay2l@arR^HarR^HarR!FBAe=",
            "ln": 3216,
            "col": 20,
            "line": 101
          },
          {
            "b": "wPw]9A=k!qy\u0026r/(y-)t7y?j-cAV/1aBrCWswO\u0026M4A=k!qB7/Ghx\u003ezR$arR^HvqYP#Bzbl6aAH$mwGV8dwO\u0026MizY\u0026\u003emv{%f@w[=6)3lQDlazt\u003esAc15[flp/BAa@{fe[wKpfjw*lfjwydx(kIywPI@Dgb7EseIO}jA+frgB-H#6B1.GMz!a02Br+z",
            "ln": 4807,
            "col": 41,
            "line": 152
          },
          {
            "b": "xEEFby?l%\u003evqPN8e[]xlw[=6)c[dg:arR^HarR^Hw[=6)uU%Z(x\u003ez6\u003cwm6B)zdK?MaA8rNAa9\u003c4e[X:qzffGewHIe8y?l%\u003evqPN83lQDlarR^HaARsmwNw$Zw[CQ{wO#0?auZ\u0026?x(dAlBzkP6c[cn\u003cazbt7wNxp)wnbT\u0026wN]d\u0026x(dz*arR^HarR^Hx\u003ewGfx(dA*wnbT/wPzv1v}u=BjS(WsfFCJ{arR^HarR^HarR^HCwhejaA8jgzyxahy?l%\u003evqPNbar\u003e?IefFIwv@C)(zF89WB-.jEi43c$vriMaB8L@6w[=6)iTM#LarR^HarR^HarR^HarUSzz!a02BAnM/azL$ozz2:zvpQ^3B8L@6w[=6)dgdguarR^HarR^HarR^HarUxgaAhvtwozy7B2\u003cTJarR^HarR^HarR^HarR^HarR!EwPS6nzxJ[sz!a02BAm^iarR!HA+(\u003cYasw/\u0026e]2rszywZ/nkA5NmP\u003c7:l}{lFuQmHWuSx#$efFg8arR^HarQ",
            "ln": 5038,
            "col": 11,
            "line": 158
          },
          {
            "b": "d\u003ceOFz/dgzz^^f$c$vgkBy/uido!fsA=kGhv@#=tt).X%arUxgaAhvtwozy7B2\u003cTJarR^HarR!Jx([2hz/xo9c$WgfwNxs-zdLmvb6LjZaz2C2z!9N1xfvR+By)9:cN*fDB0bjsz/e]]x(4uw3lQDlarR^HarR^HazL$ozz2ExzeZ[xA=kGhv@#=yazL$ozEm0\u0026y?k45arR^HarR^HA+funA=91sA=kGhv@#=0arR^HoIXeGmn+:FA+PSfv{%g4b2i50Ab](cBZ]Jma$i\u003cwarR!EwPS6nzxIzSy\u0026:d{3s)ZWayO!}B-RUix(n99zGG/qC{)xAC4CMkz/L",
            "ln": 5601,
            "col": 29,
            "line": 171
          },
          {
            "b": "f\u003cM*EarR^HarR^HarR^HB-IpvjS[MPzFH\u003eCAbolgc)}87do!Gie]#bPx(CEHe]\u003eJxy***+c)}b8egh!]e]\u003eJxy***+c)}haegh!]3lQDlarR^HarR^HaAz4mAbPSnwGTbUB7/Ghx\u003ezS$xMOunuT)[^wO#PxxjVfkB-IpE3lQDlarR^HarR^HazCBgA+frhzV",
            "ln": 8405,
            "col": 38,
            "line": 253
          }
        ],
        "depth": 1,
        "facts": {
          "imp": [
            [
              "",
              "my_logger.set_logger"
            ],
            [
              "",
              "shopify_http_client.set_shopify_admin_url"
            ],
            [
              "",
              "shopify_http_client.get_shopify_default_location"
            ],
            [
              "",
              "'/'.join"
            ],
            [
              "",
              "shopify_http_client.post"
            ],
            [
              "",
              "'/'.join"
            ],
            [
              "",
              "shopify_http_client.post"
            ],
            [
              "",
              "'/'.join"
            ],
            [
              "",
              "str"
            ],
            [
              "",
              "shopify_http_client.post"
            ],
            [
              "",
              "'/'.join"
            ],
            [
              "",
              "str"
            ],
            [
              "",
              "shopify_http_client.put"
            ],
            [
              "",
              "'/'.join"
            ],
            [
              "",
              "str"
            ],
            [
              "",
              "shopify_http_client.put"
            ],
            [
              "",
              "'/'.join"
            ],
            [
              "",
              "str"
            ],
            [
              "",
              "shopify_http_client.post"
            ],
            [
              "",
              "'/'.join"
            ],
            [
              "",
              "str"
            ],
            [
              "",
              "str"
            ],
            [
              "",
              "shopify_http_client.put"
            ],
            [
              "",
              "'/'.join"
            ],
            [
              "",
              "str"
            ],
            [
              "",
              "shopify_http_client.get"
            ],
            [
              "",
              "json.loads"
            ],
            [
              "",
              "'/'.join"
            ],
            [
              "",
              "str"
            ],
            [
              "",
              "shopify_http_client.post"
            ],
            [
              "",
              "json.loads"
            ],
            [
              "",
              "'/'.join"
            ],
            [
              "",
              "str"
            ],
            [
              "",
              "shopify_http_client.put"
            ],
            [
              "",
              "'/'.join"
            ],
            [
              "",
              "shopify_http_client.get"
            ],
            [
              "",
              "json.loads"
            ],
            [
              "",
              "Path(file_name).is_file"
            ],
            [
              "",
              "Path"
            ],
            [
              "",
              "os.path.getmtime"
            ],
            [
              "",
              "time.time"
            ],
            [
              "",
              "open"
            ],
            [
              "",
              "json.load"
            ],
            [
              "",
              "'/'.join"
            ],
            [
              "",
              "shopify_http_client.get"
            ],
            [
              "",
              "json.loads"
            ],
            [
              "",
              "open"
            ],
            [
              "",
              "json.dump"
            ],
            [
              "",
              "LOGGER.critical"
            ],
            [
              "",
              "'/'.join"
            ],
            [
              "",
              "shopify_http_client.post"
            ],
            [
              "",
              "LOGGER.debug"
            ],
            [
              "",
              "'/'.join"
            ],
            [
              "",
              "shopify_http_client.post"
            ],
            [
              "",
              "LOGGER.debug"
            ],
            [
              "",
              "'/'.join"
            ],
            [
              "",
              "str"
            ],
            [
              "",
              "shopify_http_client.get"
            ],
            [
              "",
              "json.loads"
            ],
            [
              "",
              "'/'.join"
            ],
            [
              "",
              "str"
            ],
            [
              "",
              "shopify_http_client.get"
            ],
            [
              "",
              "json.loads"
            ],
            [
              "",
              "'/'.join"
            ],
            [
              "",
              "str"
            ],
            [
              "",
              "shopify_http_client.get"
            ],
            [
              "",
              "json.loads"
            ],
            [
              "",
              "response.headers['Link'].split"
            ],
            [
              "",
              "link.split"
            ],
            [
              "",
              "link.split(';')[0].strip().replace('\u003c','').replace"
            ],
            [
              "",
              "link.split(';')[0].strip().replace"
            ],
            [
              "",
              "link.split(';')[0].strip"
            ],
            [
              "",
              "link.split"
            ],
            [
              "",
              "shopify_http_client.get"
            ],
            [
              "",
              "Path"
            ],
            [
              "",
              "com_digitalruiz_my_logger"
            ],
            [
              "",
              "com_digitalruiz_shopify_http_client"
            ],
            [
              "",
              "json"
            ],
            [
              "",
              "my_logger"
            ],
            [
              "",
              "os"
            ],
            [
              "",
              "pathlib"
            ],
            [
              "",
              "shopify_http_client"
            ],
            [
              "",
              "sys"
            ],
            [
              "",
              "time"
            ]
          ],
          "mbr": [
            "LOGGER.critical",
            "LOGGER.debug",
            "Path().is_file",
            "count_content.count",
            "data.available",
            "data.available_adjustment",
            "data.inventory_item_id",
            "data.location_id",
            "data.variant",
            "data.variant.id",
            "json.dump",
            "json.load",
            "json.loads",
            "json.loads().metafields",
            "json.loads().products",
            "link.split",
            "metafields.metafield",
            "metafields.metafield.id",
            "my_logger.set_logger",
            "os.path",
            "os.path.getmtime",
            "response.headers",
            "response.headers.Link",
            "response.headers.Link.split",
            "shopify_http_client.get",
            "shopify_http_client.get_shopify_default_location",
            "shopify_http_client.post",
            "shopify_http_client.put",
            "shopify_http_client.set_shopify_admin_url",
            "sys.argv",
            "time.time"
          ],
          "tgt": [
            "LOGGER.critical",
            "LOGGER.debug",
            "Path",
            "Path().is_file",
            "json.dump",
            "json.load",
            "json.loads",
            "link.split",
            "my_logger.set_logger",
            "open",
            "os.path.getmtime",
            "response.headers.Link.split",
            "shopify_http_client.get",
            "shopify_http_client.get_shopify_default_location",
            "shopify_http_client.post",
            "shopify_http_client.put",
            "shopify_http_client.set_shopify_admin_url",
            "str",
            "time.time"
          ],
          "funcs": [
            [
              "graphql_post",
              454
            ],
            [
              "create_product",
              671
            ],
            [
              "variants_create",
              956
            ],
            [
              "variant_update",
              1378
            ],
            [
              "product_update",
              1728
            ],
            [
              "create_product_image",
              2084
            ],
            [
              "update_product_image",
              2480
            ],
            [
              "get_product_metafields",
              2919
            ],
            [
              "create_product_metafield",
              3381
            ],
            [
              "update_product_metafield",
              3882
            ],
            [
              "get_product_count",
              4305
            ],
            [
              "get_all_products",
              4735
            ],
            [
              "adjust_inventory",
              5838
            ],
            [
              "set_inventory",
              6450
            ],
            [
              "get_shopify_product_data",
              6991
            ],
            [
              "get_shopify_images",
              7392
            ],
            [
              "get_products_by_collection_id",
              7813
            ],
            [
              "__get_paginated_url",
              8280
            ],
            [
              "__merge_dicts",
              8613
            ]
          ],
          "metrics": {
            "ast": {
              "op.add": 8,
              "op.bor": 1,
              "op.sub": 1,
              "max_depth": 19,
              "call_count": 74,
              "node_count": 1940,
              "member_count": 31,
              "max_array_len": 7,
              "op_density.add": 0,
              "op_density.bor": 0,
              "op_density.sub": 0,
              "max_concat_chain": 2,
              "member_depth_max": 4
            },
            "file": {
              "size": 8689,
              "entropy": 4.88
            },
            "text": {
              "lines": 262,
              "top_char": 116,
              "max_ws_run": 1,
              "digit_ratio": 0.02,
              "space_count": 1653,
              "char_entropy": 4.88,
              "unique_chars": 76,
              "top_char_null": 0,
              "string_density": 0.37,
              "top_char_ratio": 0.07,
              "avg_line_length": 32.16,
              "max_line_length": 110,
              "empty_line_ratio": 0.08,
              "last_line_length": 14,
              "long_token_count": 2,
              "whitespace_ratio": 0.22,
              "identifier_density": 1.37,
              "line_length_stddev": 24.33,
              "normalized_string_count": 5.99,
              "repeated_char_sequences": 41,
              "suspicious_string_ratio": 0.07,
              "normalized_unique_identifiers": 10.33
            },
            "binds": {
              "count": 62
            },
            "binary": {
              "peak_region_bytes": 8192,
              "peak_region_entropy": 5.1
            },
            "source": {
              "function_count": 19
            },
            "imports": {
              "count": 10,
              "stdlib_count": 5,
              "stdlib_ratio": 0.5,
              "third_party_count": 5,
              "third_party_ratio": 0.5
            },
            "strings": {
              "sql": 1,
              "bytes": 2871,
              "count": 97,
              "avg_length": 29.6,
              "max_length": 208,
              "avg_entropy": 2.44,
              "empty_count": 2,
              "entropy_stddev": 1.6,
              "embedded_code_candidates": 6
            },
            "functions": {
              "count": 19,
              "density": 7.25,
              "avg_params": 1.42,
              "code_ratio": 0.87,
              "max_params": 3,
              "length_stddev": 4.82,
              "avg_name_length": 18.11,
              "no_params_count": 2,
              "avg_length_lines": 11.95,
              "max_length_lines": 28,
              "min_length_lines": 3,
              "high_entropy_names": 10,
              "avg_param_name_length": 9.11
            },
            "identifiers": {
              "count": 359,
              "unique": 83,
              "avg_length": 11.23,
              "max_length": 35,
              "min_length": 2,
              "avg_entropy": 2.77,
              "reuse_ratio": 0.23,
              "length_stddev": 7.32,
              "high_entropy_count": 17,
              "high_entropy_ratio": 0.2,
              "all_lowercase_ratio": 0.95,
              "all_uppercase_ratio": 0.04,
              "underscore_prefix_count": 2
            }
          }
        },
        "id": 2,
        "mol": "H₂(Db₂F)",
        "path": "com_digitalruiz_shopify_apis-0.0.4-py3-none-any.whl!!com_digitalruiz_shopify_apis/shopify_apis.py",
        "pid": 0,
        "risk": 2,
        "sha": "fb494eaf112183dd9cb33e51e52eaf5c8f94edff1fc2274de86a8ca125cde9a9",
        "size": 8689,
        "traits": [
          {
            "id": "micro-behaviors/data/serialize/json::json-load-call",
            "conf": 0.9,
            "crit": 3,
            "desc": "Python json.load call",
            "spans": [
              [
                5311,
                9
              ]
            ]
          },
          {
            "id": "micro-behaviors/data/serialize/json::json-loads-call",
            "conf": 0.9,
            "crit": 3,
            "desc": "Parses JSON data with Python",
            "spans": [
              [
                3324,
                10
              ]
            ]
          },
          {
            "id": "micro-behaviors/data/serialize/object::json-dump",
            "conf": 0.86,
            "crit": 3,
            "desc": "Serializes to a stream with json.dump()",
            "spans": [
              [
                5730,
                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": [
              [
                5665,
                38
              ]
            ]
          }
        ],
        "type": "python"
      },
      {
        "ctx": [
          {
            "b": "DM)3hz/ZhBBy/qkiWeJ*Aa{HEb5Q?awG\u003ceVv@DiownbW\u003cByx0aB.MdNB7/Ghx\u003ezSxvq]}4a$K{YwPz\u003caz/c:Wa$$S6e\u0026j+6b5?Wly?W%7wN]dRBrS+2h-J=Rh8c%xhy{4XxjUBXvr(]riXS9ey*?A%B97=jwPz\u003caz/c:Wa$$S6e\u0026j+6b4kRoxM4]ni=o7Ry+c=Lx([f5b06Q:y?$TDwmY*(A+L",
            "ln": 0,
            "col": 1,
            "line": 1
          }
        ],
        "depth": 1,
        "facts": {
          "metrics": {
            "file": {
              "size": 810,
              "entropy": 4.72
            },
            "binary": {
              "peak_region_bytes": 810,
              "peak_region_entropy": 4.72
            },
            "registry": {
              "age_days": 0,
              "published_at": 1788851506,
              "releases_24h": 1,
              "releases_48h": 1,
              "is_deprecated": 0,
              "release_count": 4,
              "package_age_days": 1334,
              "first_published_at": 1673569749,
              "vulnerability_count": 0,
              "previous_published_at": 1693890250,
              "days_since_previous_release": 1099
            }
          }
        },
        "id": 6,
        "mol": "Md(Re)",
        "path": "com-digitalruiz-shopify-apis@0.0.4.registry.json",
        "pid": 0,
        "rel": "registry",
        "risk": 2,
        "role": "sidecar",
        "sha": "bb08685a53f4416d8c0544b0adddc8fdfacb2e13d5705ce1d20b01e5d592ea0b",
        "size": 810,
        "traits": [
          {
            "id": "metadata/registry::dormant-package-reawakened",
            "conf": 1.0,
            "crit": 3,
            "desc": "Package resumed releases after one year",
            "spans": [
              [
                0,
                46
              ]
            ]
          },
          {
            "id": "metadata/registry::freshly-published",
            "conf": 1.0,
            "crit": 3,
            "desc": "Release published within seven days",
            "spans": [
              [
                0,
                24
              ]
            ]
          },
          {
            "id": "objectives/supply-chain/impersonation/registry/publish::dormant-package-revived",
            "conf": 0.6,
            "crit": 3,
            "desc": "Dormant package suddenly published again",
            "uses": [
              0,
              1
            ],
            "spans": [
              [
                0,
                46
              ]
            ]
          }
        ],
        "type": "registry"
      }
    ],
    "rev": "479f3",
    "v": "8"
  }
}