{
  "ml": {
    "v": "7",
    "eng": "2.8.0",
    "lvl": -1,
    "conf": 0,
    "mods": [
      {
        "cls": 0,
        "raw": 0.0005419751,
        "rte": "az",
        "prob": 0.0005419751
      },
      {
        "cls": 0,
        "raw": 0.0020550091,
        "rte": "az/whl",
        "prob": 0.0020550091
      }
    ],
    "prob": 0.0005419751,
    "files": [
      {
        "id": 0,
        "lvl": -1,
        "conf": 0,
        "prob": 0.0005419750814326108,
        "type": "whl"
      },
      {
        "id": 1,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000013063351616438013,
        "type": "python"
      },
      {
        "id": 3,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000014503796592180151,
        "type": "python"
      },
      {
        "id": 4,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000028292337447055615,
        "type": "python"
      },
      {
        "id": 5,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000021437803297885694,
        "type": "python"
      },
      {
        "id": 6,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000021507343262783252,
        "type": "python"
      },
      {
        "id": 7,
        "lvl": -1,
        "conf": 0,
        "prob": 0.00002909700015152339,
        "type": "python"
      },
      {
        "id": 8,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000024725994080654345,
        "type": "python"
      },
      {
        "id": 9,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000022510686903842725,
        "type": "python"
      },
      {
        "id": 10,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000022143125534057617,
        "type": "python"
      },
      {
        "id": 11,
        "lvl": -1,
        "conf": 0,
        "prob": 0.0000199278201762354,
        "type": "python"
      },
      {
        "id": 12,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000027706226319423877,
        "type": "python"
      },
      {
        "id": 13,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000022957721739658155,
        "type": "python"
      },
      {
        "id": 14,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000028133392333984375,
        "type": "python"
      },
      {
        "id": 15,
        "lvl": -1,
        "conf": 0,
        "prob": 0.00002463658711349126,
        "type": "python"
      },
      {
        "id": 16,
        "lvl": -1,
        "conf": 0,
        "prob": 0.00002388159373367671,
        "type": "python"
      },
      {
        "id": 17,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000020931163817294873,
        "type": "python"
      },
      {
        "id": 18,
        "lvl": -1,
        "conf": 0,
        "prob": 0.00002232193946838379,
        "type": "python"
      },
      {
        "id": 19,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000025113424271694385,
        "type": "python"
      },
      {
        "id": 20,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000016997257262119092,
        "type": "python"
      },
      {
        "id": 21,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000021656354874721728,
        "type": "python"
      },
      {
        "id": 22,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000022937854737392627,
        "type": "python"
      },
      {
        "id": 23,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000023891529053798877,
        "type": "python"
      },
      {
        "id": 24,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000021219253540039062,
        "type": "python"
      },
      {
        "id": 25,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000023146470994106494,
        "type": "python"
      },
      {
        "id": 26,
        "lvl": -1,
        "conf": 0,
        "prob": 0.00002559026142989751,
        "type": "python"
      },
      {
        "id": 27,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000020404657334438525,
        "type": "python"
      },
      {
        "id": 30,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000019222497940063477,
        "type": "python"
      },
      {
        "id": 32,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000020285448044887744,
        "type": "python"
      },
      {
        "id": 33,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000018795331925502978,
        "type": "python"
      },
      {
        "id": 34,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000017116466551669873,
        "type": "python"
      },
      {
        "id": 35,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000019629796952358447,
        "type": "python"
      },
      {
        "id": 39,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000014543533325195312,
        "type": "registry"
      }
    ],
    "version": "v18.18",
    "analyzed_at": "2026-09-08T03:55:08Z"
  },
  "path": "interpolatepy-3.2.2-py3-none-any.whl",
  "raw": {
    "files": [
      {
        "id": 0,
        "ctx": [
          {
            "b": "p!H([6Awak2MP(:cTBkDw7oJv005-4000(p003.JBy/Giz!@\u003c7wPh]FuTEI+x()Y?e]V9zr)uVVhw0Q*dg2WhaL)o+v$tQtCIrtOctExu2.Cxoq):/5\u0026Wu7GJDswL]A\u003eyu9A1dK*ClA%CcM?M{Ka1\u003e\u003exyNBs[bJ}U3m1q",
            "ln": 0
          }
        ],
        "mol": "H₂(DbOs)",
        "sha": "f764a562ab68d2dd8f6b63fca8f0bef0a47c750fbab660ffa39dba411da0c0d0",
        "path": "interpolatepy-3.2.2-py3-none-any.whl",
        "risk": 3,
        "size": 118659,
        "type": "whl",
        "facts": {
          "metrics": {
            "whl": {
              "native_extension_count": 0
            },
            "file": {
              "size": 118659,
              "entropy": 7.98
            },
            "binary": {
              "peak_region_bytes": 115712,
              "peak_region_entropy": 7.84
            },
            "archive": {
              "file_count": 40,
              "member_count": 40,
              "script_count": 35,
              "zip_bomb_ratio": 6.22,
              "compressed_size": 113119,
              "directory_count": 0,
              "executable_count": 0,
              "extra_field_size": 0,
              "noise_file_count": 0,
              "compression.ratio": 0.24,
              "hidden_file_count": 0,
              "uncompressed_size": 479076,
              "crc_collision_count": 0,
              "entry_comment_count": 0,
              "max_filename_length": 46,
              "rtlo_filename_count": 0,
              "format.regular_count": 40,
              "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.05,
              "misplaced_executable_count": 0,
              "timing.mtime_outlier_count": 5,
              "timing.mtime_dominant_count": 35,
              "timing.mtime_spread_seconds": 2,
              "timing.sentinel_mtime_count": 0,
              "security.world_writable_count": 0,
              "timing.mtime_dominant_fraction": 0.88,
              "compression.method_counts.deflate": 40
            },
            "consistency": {
              "cloned_summary": 0,
              "name_typosquat": 0,
              "self_dependency": 0,
              "metadata_identity_mismatch": 0
            }
          }
        },
        "ident": {
          "name": {
            "value": "interpolatepy",
            "source": "whl.distribution",
            "verified": false
          },
          "trust": "unsigned",
          "emails": [
            "giorgio.medico11@gmail.com"
          ],
          "authors": [
            {
              "name": "Giorgio Medico",
              "role": "author",
              "email": "giorgio.medico11@gmail.com",
              "source": "whl.author"
            }
          ],
          "version": {
            "value": "3.2.2",
            "source": "whl.version",
            "verified": false
          }
        },
        "traits": [
          {
            "id": "micro-behaviors/data/manipulation::numpy-array-operations--arange",
            "conf": 0.85,
            "crit": 1,
            "desc": "NumPy array operation (arange)",
            "from": [
              {
                "file": 7
              }
            ]
          },
          {
            "id": "metadata/package/manifest/ecosystem::pypi-basic-metadata",
            "conf": 0.95,
            "crit": 2,
            "desc": "PyPI package declares name, version, summary",
            "from": [
              {
                "off": 42,
                "file": 37,
                "line": 3
              }
            ],
            "uses": [
              2,
              3,
              17,
              23
            ]
          },
          {
            "id": "metadata/package/manifest/ecosystem::pkginfo-version-field",
            "conf": 0.9,
            "crit": 1,
            "desc": "Declares Python package version",
            "from": [
              {
                "file": 37
              }
            ]
          },
          {
            "id": "metadata/package/manifest/ecosystem::pkginfo-name-field",
            "conf": 0.9,
            "crit": 1,
            "desc": "Declares Python package name",
            "from": [
              {
                "file": 37
              }
            ]
          },
          {
            "id": "metadata/package/manifest/ecosystem::pypi-license-metadata",
            "conf": 0.94,
            "crit": 2,
            "desc": "PyPI package declares license information",
            "from": [
              {
                "off": 1680,
                "file": 37,
                "line": 36
              }
            ],
            "uses": [
              20,
              22,
              23
            ]
          },
          {
            "id": "micro-behaviors/data/manipulation::scipy-import",
            "conf": 0.9,
            "crit": 3,
            "desc": "Imports a SciPy scientific module",
            "from": [
              {
                "file": 7
              }
            ]
          },
          {
            "id": "micro-behaviors/data/manipulation::numpy-array-operations--zeros",
            "conf": 0.85,
            "crit": 1,
            "desc": "NumPy array operation (zeros)",
            "from": [
              {
                "file": 4
              }
            ]
          },
          {
            "id": "micro-behaviors/os/env/vars/access::python-os-getenv-call",
            "conf": 0.92,
            "crit": 3,
            "desc": "Python reads an environment variable",
            "from": [
              {
                "file": 3
              }
            ]
          },
          {
            "id": "micro-behaviors/data/manipulation::numeric-computation-library",
            "conf": 0.95,
            "crit": 3,
            "desc": "Module built on the numeric Python stack",
            "from": [
              {
                "file": 4
              }
            ],
            "uses": [
              5,
              15,
              18
            ]
          },
          {
            "id": "micro-behaviors/data/manipulation::numpy-array-operations--array",
            "conf": 0.85,
            "crit": 1,
            "desc": "NumPy array operation (array)",
            "from": [
              {
                "file": 4
              }
            ]
          },
          {
            "id": "micro-behaviors/data/manipulation::numpy-array-operations--clip",
            "conf": 0.85,
            "crit": 1,
            "desc": "NumPy array operation (clip)",
            "from": [
              {
                "file": 4
              }
            ]
          },
          {
            "id": "metadata/package/manifest/ecosystem::pkginfo-markdown-description",
            "conf": 0.9,
            "crit": 1,
            "desc": "Declares Markdown package description",
            "from": [
              {
                "file": 37
              }
            ]
          },
          {
            "id": "micro-behaviors/data/manipulation::numpy-array-operations--ndarray",
            "conf": 0.85,
            "crit": 1,
            "desc": "NumPy array operation (ndarray)",
            "from": [
              {
                "file": 4
              }
            ]
          },
          {
            "id": "metadata/package/manifest/ecosystem::pypi-runtime-metadata",
            "conf": 0.94,
            "crit": 2,
            "desc": "PyPI package declares Python and dependencies",
            "from": [
              {
                "off": 1702,
                "file": 37,
                "line": 37
              }
            ],
            "uses": [
              19,
              23,
              24
            ]
          },
          {
            "id": "micro-behaviors/data/manipulation::numpy-array-operations--sum",
            "conf": 0.85,
            "crit": 1,
            "desc": "NumPy array operation (sum)",
            "from": [
              {
                "file": 5
              }
            ]
          },
          {
            "id": "micro-behaviors/data/manipulation::numpy-array-operations",
            "conf": 0.85,
            "crit": 3,
            "desc": "Dense NumPy array construction and reduction",
            "from": [
              {
                "file": 4
              }
            ],
            "uses": [
              0,
              6,
              9,
              10,
              12,
              14,
              16
            ]
          },
          {
            "id": "micro-behaviors/data/manipulation::numpy-array-operations--ones",
            "conf": 0.85,
            "crit": 1,
            "desc": "NumPy array operation (ones)",
            "from": [
              {
                "file": 5
              }
            ]
          },
          {
            "id": "metadata/package/manifest/ecosystem::pkginfo-summary-field",
            "conf": 0.9,
            "crit": 1,
            "desc": "Declares Python package summary",
            "from": [
              {
                "file": 37
              }
            ]
          },
          {
            "id": "micro-behaviors/data/manipulation::numpy-import",
            "conf": 0.9,
            "crit": 3,
            "desc": "Imports the NumPy array library",
            "from": [
              {
                "file": 4
              }
            ]
          },
          {
            "id": "metadata/package/manifest/ecosystem::pkginfo-requires-python",
            "conf": 0.9,
            "crit": 1,
            "desc": "Declares supported Python versions",
            "from": [
              {
                "file": 37
              }
            ]
          },
          {
            "id": "metadata/package/manifest/ecosystem::pkginfo-license-expression",
            "conf": 0.9,
            "crit": 1,
            "desc": "Declares Python license expression",
            "from": [
              {
                "file": 37
              }
            ]
          },
          {
            "id": "micro-behaviors/os/api-resolution/dynamic::py-importlib-import-module",
            "conf": 0.6,
            "crit": 3,
            "desc": "Dynamically imports a Python module",
            "from": [
              {
                "file": 3
              }
            ]
          },
          {
            "id": "metadata/package/manifest/ecosystem::pkginfo-license-file",
            "conf": 0.9,
            "crit": 1,
            "desc": "Declares Python package license file",
            "from": [
              {
                "file": 37
              }
            ]
          },
          {
            "id": "metadata/package/manifest/ecosystem::pkginfo-core-metadata",
            "conf": 1.0,
            "crit": 1,
            "desc": "Declares Python Core Metadata version",
            "from": [
              {
                "file": 37
              }
            ]
          },
          {
            "id": "metadata/package/manifest/ecosystem::pkginfo-requires-dist",
            "conf": 0.9,
            "crit": 1,
            "desc": "Declares Python runtime dependencies",
            "from": [
              {
                "file": 37
              }
            ]
          }
        ]
      },
      {
        "depth": 1,
        "facts": {
          "imp": [
            [
              "",
              "._api"
            ],
            [
              "",
              "._api.ApproximationBSpline"
            ],
            [
              "",
              "._api.BSpline"
            ],
            [
              "",
              "._api.BSplineInterpolator"
            ],
            [
              "",
              "._api.BSplineParams"
            ],
            [
              "",
              "._api.BoundaryCondition"
            ],
            [
              "",
              "._api.CircularPath"
            ],
            [
              "",
              "._api.CubicBSplineInterpolation"
            ],
            [
              "",
              "._api.CubicSmoothingSpline"
            ],
            [
              "",
              "._api.CubicSpline"
            ],
            [
              "",
              "._api.CubicSplineWithAcceleration1"
            ],
            [
              "",
              "._api.CubicSplineWithAcceleration2"
            ],
            [
              "",
              "._api.DoubleSTrajectory"
            ],
            [
              "",
              "._api.LinearPath"
            ],
            [
              "",
              "._api.LogQuaternionInterpolation"
            ],
            [
              "",
              "._api.ModifiedLogQuaternionInterpolation"
            ],
            [
              "",
              "._api.ParabolicBlendTrajectory"
            ],
            [
              "",
              "._api.PolynomialTrajectory"
            ],
            [
              "",
              "._api.QuaternionSpline"
            ],
            [
              "",
              "._api.SmoothingCubicBSpline"
            ],
            [
              "",
              "._api.SplineConfig"
            ],
            [
              "",
              "._api.SplineParameters"
            ],
            [
              "",
              "._api.SquadC2"
            ],
            [
              "",
              "._api.StateParams"
            ],
            [
              "",
              "._api.TimeInterval"
            ],
            [
              "",
              "._api.TrajectoryBounds"
            ],
            [
              "",
              "._api.TrapezoidalTrajectory"
            ],
            [
              "",
              "._api.circular_trajectory_with_derivatives"
            ],
            [
              "",
              "._api.compute_trajectory_frames"
            ],
            [
              "",
              "._api.helicoidal_trajectory_with_derivatives"
            ],
            [
              "",
              "._api.linear_traj"
            ],
            [
              "",
              "._api.smoothing_spline_with_tolerance"
            ],
            [
              "",
              "._api.solve_tridiagonal"
            ],
            [
              "",
              "._backend"
            ],
            [
              "",
              "._backend.HAS_CPP"
            ],
            [
              "",
              ".frenet_frame"
            ],
            [
              "",
              ".frenet_frame.plot_frames"
            ],
            [
              "",
              ".polynomials"
            ],
            [
              "",
              ".polynomials.TrajectoryParams"
            ],
            [
              "",
              ".protocols"
            ],
            [
              "",
              ".protocols.CurveEvaluator"
            ],
            [
              "",
              ".protocols.GeometricPath"
            ],
            [
              "",
              ".protocols.QuaternionTrajectory"
            ],
            [
              "",
              ".protocols.ScalarTrajectory"
            ],
            [
              "",
              ".protocols.TrajectoryFunction"
            ],
            [
              "",
              ".quat_core"
            ],
            [
              "",
              ".quat_core.Quaternion"
            ],
            [
              "",
              ".trapezoidal"
            ],
            [
              "",
              ".trapezoidal.CalculationParams"
            ],
            [
              "",
              ".trapezoidal.InterpolationParams"
            ],
            [
              "",
              ".version"
            ],
            [
              "",
              ".version.__version__"
            ]
          ],
          "metrics": {
            "ast": {
              "max_depth": 5,
              "call_count": 0,
              "node_count": 462,
              "max_array_len": 44
            },
            "file": {
              "size": 3234,
              "entropy": 4.88
            },
            "text": {
              "lines": 111,
              "top_char": 111,
              "max_ws_run": 2,
              "digit_ratio": 0,
              "space_count": 411,
              "char_entropy": 4.88,
              "unique_chars": 67,
              "top_char_null": 0,
              "string_density": 0.41,
              "top_char_ratio": 0.07,
              "avg_line_length": 28.14,
              "max_line_length": 135,
              "non_ascii_ratio": 0.06,
              "empty_line_ratio": 0.07,
              "last_line_length": 1,
              "whitespace_ratio": 0.16,
              "identifier_density": 0.52,
              "line_length_stddev": 22.2,
              "encoded_string_ratio": 0.27,
              "normalized_string_count": 4.27,
              "repeated_char_sequences": 2,
              "suspicious_string_ratio": 0.02,
              "suspicious_identifier_ratio": 0.04,
              "normalized_unique_identifiers": 7.8
            },
            "binds": {
              "count": 1
            },
            "binary": {
              "peak_region_bytes": 3072,
              "peak_region_entropy": 4.91
            },
            "imports": {
              "count": 52,
              "relative": 52,
              "relative_ratio": 1,
              "third_party_count": 52,
              "third_party_ratio": 1
            },
            "strings": {
              "bytes": 1280,
              "count": 45,
              "shell": 1,
              "avg_length": 28.44,
              "max_length": 487,
              "avg_entropy": 3.49,
              "entropy_stddev": 0.39,
              "base64_candidates": 12
            },
            "comments": {
              "chars": 272,
              "count": 3,
              "lines": 3,
              "to_code_ratio": 0.03
            },
            "identifiers": {
              "count": 58,
              "unique": 53,
              "avg_length": 16.43,
              "max_length": 38,
              "min_length": 4,
              "avg_entropy": 3.34,
              "reuse_ratio": 0.91,
              "length_stddev": 7.8,
              "has_digit_ratio": 0.06,
              "base64_like_names": 2,
              "high_entropy_count": 23,
              "high_entropy_ratio": 0.43,
              "all_lowercase_ratio": 0.32,
              "all_uppercase_ratio": 0.02,
              "numeric_suffix_count": 3,
              "double_underscore_count": 2,
              "underscore_prefix_count": 4
            }
          }
        },
        "id": 1,
        "path": "interpolatepy-3.2.2-py3-none-any.whl!!interpolatepy/__init__.py",
        "pid": 0,
        "risk": 1,
        "sha": "3a9cf2a49a0853b6a6e7d7d0587aaf7aca8adbad90afc8b118ec96badf765821",
        "size": 3234,
        "traits": [
          {
            "id": "metadata/file/extension/identity::py",
            "conf": 1.0,
            "crit": 2,
            "desc": "File uses a Python artifact extension",
            "spans": [
              [
                0,
                0
              ]
            ]
          },
          {
            "id": "metadata/file/profile/locale::box-drawing-banner",
            "conf": 0.9,
            "crit": 2,
            "desc": "Contains a box-drawing text banner",
            "spans": [
              [
                601,
                0
              ]
            ]
          },
          {
            "id": "metadata/import/package::python-private-relative-import",
            "conf": 0.9,
            "crit": 2,
            "desc": "Python imports a private relative module",
            "spans": [
              [
                982,
                0
              ]
            ]
          }
        ],
        "type": "python"
      },
      {
        "ctx": [
          {
            "b": "a%Fi$vpK7:zE:(2wPRG[BzkVhazbLjaA8jvx(v($y-(7}d\u003cengv}xE/A::67z/dfm3rH[LzxK4mwGUG3ze:i9wN(]Jd\u003eq-NCYWImB7]MgayFO\u003ezGGDgAbPM3By!%3A9)Nfu%\u003e9\u003eB0a[mvqfK^vR/P#x(n0awmV)9xK}J\u0026vpK7YxjSh@x(W={Bz(hBefG4FwGU/6vG",
            "ln": 0,
            "col": 1,
            "line": 1
          },
          {
            "b": "aARpdaz2!twO#N6z/cXiB0bBxwPIB2Bs)[Aa%Ev3w].*baywF/B-.+DwNw^!x(d*cA=-BjzF\u003cxmvruj4zGuc(x(d*cA=-Brze:AlBzLV23tBu@z/P}xz/Vm$A=k!qBA}?tzF78aze:AlBrBK=p^[.Unjt)snLR+.3tB8{r9r3^uQEvMlRy0Cm(*#1arR!sA=k!qBA}?pB0bglAbP=sawD=+B.\u003eR*D2Ns43svpZA5]aoz!a0bwMi}]wGVvyph+2YauZ\u0026xz/fa[ni{fYlR{PuayYncy-\u003e\u003e-mQZaOwEn+KwmYu}xjVe",
            "ln": 315,
            "col": 35,
            "line": 6
          },
          {
            "b": "zf6tjjS\u003e}od\u003eq-KvpK7:zE:(cz/^agC4293vpB4:a{]CnarR^HarUYkx(^\u0026dnO@A+A=:-\u003cA=k$Dzf6ts3lQDlaAz4nB-IvxuT[4]3jmbOw/$#fBrCHye[F{zx(Xcfe[X:qc)zkTr7fXYpFs5NmnNb]petj:p/5t+iTM#LarU=DC@=oParR^HarR^Kaxi2=atd.Naz++nwPF#iwQ5qtBz\u0026pzxLzJgw[=6)azC.mx\u003eg=$Bzbkdx(n37A=t@kvru71C{46mv@2H=wIarjarR^HarR!lv@MxfjS[DQAbP=sy?Wuhx(d*cA=+V9z!a0bwHF-Px(n37A=t@kvru6\u003cAbYf6C{j^ZAa9l(vp%dmuTE+Xv@2H=wNw^[3lQDlarR^Hav[^%uQET^auZ\u0026DA=\u003e}2arR^HwQ4Y@Ac9i]ze:AlBvyj\u003cz/N(CarR^HarR^HAa9*e3i",
            "ln": 683,
            "col": 9,
            "line": 25
          }
        ],
        "depth": 1,
        "facts": {
          "imp": [
            [
              "",
              "ImportError"
            ],
            [
              "",
              "os.environ.get"
            ],
            [
              "",
              "importlib.import_module"
            ],
            [
              "",
              "ModuleType"
            ],
            [
              "",
              "TYPE_CHECKING"
            ],
            [
              "",
              "importlib"
            ],
            [
              "",
              "os"
            ],
            [
              "",
              "types"
            ],
            [
              "",
              "typing"
            ]
          ],
          "mbr": [
            "importlib.import_module",
            "os.environ",
            "os.environ.get"
          ],
          "tgt": [
            "ImportError",
            "importlib.import_module",
            "os.environ.get"
          ],
          "funcs": [
            [
              "get_cpp_module",
              551
            ]
          ],
          "metrics": {
            "ast": {
              "op.bor": 1,
              "max_depth": 10,
              "call_count": 3,
              "node_count": 160,
              "member_count": 3,
              "op_density.bor": 0.01,
              "member_depth_max": 3
            },
            "file": {
              "size": 1040,
              "entropy": 4.87
            },
            "text": {
              "lines": 36,
              "top_char": 101,
              "max_ws_run": 2,
              "digit_ratio": 0,
              "space_count": 170,
              "char_entropy": 4.87,
              "unique_chars": 59,
              "top_char_null": 0,
              "string_density": 0.14,
              "top_char_ratio": 0.08,
              "avg_line_length": 27.89,
              "max_line_length": 81,
              "empty_line_ratio": 0.25,
              "last_line_length": 12,
              "whitespace_ratio": 0.2,
              "identifier_density": 0.81,
              "line_length_stddev": 26.14,
              "normalized_string_count": 0.83,
              "suspicious_string_ratio": 0.2,
              "normalized_unique_identifiers": 3.48
            },
            "binds": {
              "count": 5
            },
            "binary": {
              "peak_region_bytes": 1024,
              "peak_region_entropy": 4.89
            },
            "source": {
              "function_count": 1
            },
            "imports": {
              "count": 6,
              "dynamic": 1,
              "stdlib_count": 4,
              "stdlib_ratio": 0.67,
              "third_party_count": 2,
              "third_party_ratio": 0.33
            },
            "strings": {
              "bytes": 466,
              "count": 5,
              "shell": 1,
              "avg_length": 93.2,
              "max_length": 343,
              "avg_entropy": 3.93,
              "entropy_stddev": 0.49
            },
            "comments": {
              "chars": 66,
              "count": 1,
              "lines": 1,
              "to_code_ratio": 0.03
            },
            "functions": {
              "count": 1,
              "density": 2.78,
              "code_ratio": 0.17,
              "avg_name_length": 14,
              "no_params_count": 1,
              "avg_length_lines": 6,
              "max_length_lines": 6,
              "min_length_lines": 6
            },
            "identifiers": {
              "count": 29,
              "unique": 18,
              "avg_length": 7.78,
              "max_length": 14,
              "min_length": 2,
              "avg_entropy": 2.41,
              "reuse_ratio": 0.62,
              "length_stddev": 3.74,
              "all_lowercase_ratio": 0.78,
              "all_uppercase_ratio": 0.11,
              "double_underscore_count": 1,
              "underscore_prefix_count": 2
            }
          }
        },
        "id": 3,
        "mol": "H(Os₂)",
        "path": "interpolatepy-3.2.2-py3-none-any.whl!!interpolatepy/_backend.py",
        "pid": 0,
        "risk": 3,
        "sha": "dce43f69c8870ac1931c49ed31e24da05af7cd23b9313b3f4f668ac54c523a41",
        "size": 1040,
        "traits": [
          {
            "id": "metadata/lang/natural::lang-english--atom-1",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"the\"",
            "spans": [
              [
                58,
                0
              ]
            ]
          },
          {
            "id": "metadata/lang/natural::lang-english--atom-5",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"for\"",
            "spans": [
              [
                21,
                0
              ]
            ]
          },
          {
            "id": "metadata/lang/natural::lang-english--atom-7",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"this\"",
            "spans": [
              [
                854,
                0
              ]
            ]
          },
          {
            "id": "micro-behaviors/data/control-flow/error-handling::python-import-error-handler",
            "atk": "T1027",
            "mbc": "C0027",
            "conf": 0.5,
            "crit": 3,
            "desc": "Handles a missing-module ImportError",
            "spans": [
              [
                1007,
                19
              ]
            ]
          },
          {
            "id": "micro-behaviors/os/env/secret-name::python-env-get-call",
            "conf": 0.8,
            "crit": 3,
            "desc": "Python reads an environment variable",
            "spans": [
              [
                773,
                14
              ]
            ]
          },
          {
            "id": "micro-behaviors/os/api-resolution/dynamic::py-importlib-import-module",
            "conf": 0.6,
            "crit": 3,
            "desc": "Dynamically imports a Python module",
            "spans": [
              [
                913,
                23
              ]
            ]
          },
          {
            "id": "micro-behaviors/os/env/read::python-os-getenv-call",
            "conf": 0.92,
            "crit": 3,
            "desc": "Python reads an environment variable",
            "spans": [
              [
                773,
                14
              ]
            ]
          }
        ],
        "type": "python"
      },
      {
        "ctx": [
          {
            "b": "w].*baywF/B-.+DwNw^!x(d*cA=-BjzF\u003cxmvruj4zGuc(x(d*cA=-BvvruE8z///fvLhRBAboDmayPslAboR6x(d*cA=-BwB.#8yayPslzG2}{A=k!qBA}?tzF78aze:AlBrBK=p^[.Unjt)snLR+.3tB8{r9r3^uQEvMlRy0Cm(*#1arR!sA=k!qze:q#Bz(8lyIv)ie]tMzz/^^CazCXiz/P}xl3M%ZgEIMS3s^)XB8@D\u003cq/DL!zE\u003e\u003coarR^Ha%FirarR^Hk{fVNvrlGjw]zYjA+figwPIB2BzkS9ayPd#az2.8y\u0026%fdx(mMalm)m$y?W=#ay/LmC4C.E3jm)#arTG?A:-/@By/Gl3lQDlat2e%eIeLaeIeKYarR^HwmYy]wN##BazC.n3lQDlarR^Haxi2=ay]4@A+e/8z!pblxK@qMePU(Ex(mGm3lQDlazU\u003ekBAnM=ayPqhvr(i@x\u003e}n!arR^HarR^Hra]?=yI[6jaA?saBz(gL3lQDlay/tcBAhqouVo{$zGG}xiV}\u003cK",
            "ln": 0,
            "col": 1,
            "line": 1
          },
          {
            "b": "jS(J/3lQDlay]4}aywF\u0026zFsi1uNMm7arR^HarR!FwO+%fay]4@A+e/yazC.nefF.Cz/*4Yaz++kBrC@NzG4jCwmoI0vr\u003cyDv@DmbA=k=3AbPDdBAoF=y?W%jaBCqHA4V3svrcx%C)UVparS9QeJ$pLz/fbE3lQDlarR^Har\u00260N3lQDlarR^Haw3D+Bzkf1x)Ktkviv(*B8U@fzE\u003c@2B-IUpe^.}darR^HarR!6vrb^[wPRH7A%:3jarR^HarQ",
            "ln": 960,
            "col": 11,
            "line": 42
          },
          {
            "b": "BrCpnAclnzaARJAzGP/nC{3KoA::lmazCBgBzblhcVS=vzF%RtvqG%}vpTS\u003carR^HarR^HyI[6jB09Q*zG4jpA=LPlc#iZsBAn#Qwor9owJ:{Ie[O{rvrsy:diJtpaz#atazC[hzGx]dzEWlayI[6jB1wCKA4V3svrcx%C{%\u003eEy\u0026:egyI[6jB1Q)xBA}?pc#J#Rw]8x]Bt+%83jm)#arR^HarUxgaz#atazC[hzGx]dzEWlav@DmbA=k=3",
            "ln": 1627,
            "col": 17,
            "line": 65
          },
          {
            "b": "Aa9=}zdN*2AV/ExaA?gfx\u003eeubvqYZ?aARJAxKL^?y?j-bB.$Ygx\u003e7N/azC[rB.bR3arR^HarR^HBS-*\u0026zG4jry?W\u0026pBU1URwO+%hBZG01zy=]KwO+%hBZF#]CQS$barR^HarR^HboPJ=zE^M{az2C3AbPDdBrC74B7DFhz/PziwObK*v}/H(BzMjfarR^HarR^Hx\u003ewF@vSJ@uat1ZSwO+%hBZF#]CQT:$jS[/Sy?tqhAc15EarR^HarR^",
            "ln": 4137,
            "col": 17,
            "line": 136
          },
          {
            "b": "wEoL5arR^HarUuixj@zJaz@qLatBigarR^HarR^HboPr!zEENhaAIa5A:@=9CwhejaAImlAbol2x\u003ep/$v@Dl}x([6czvdHearR^HarU(wx(4u6y\u0026sIujrOrKxj@ztatC[:arR^HarR^HarR^Hze0J6jS(d?z*9rOaztF4xEL5SfcA1SarR^HarR^HarR^Hx\u003ewGgau?}hB7Gf1e]buyBApV6x\u003egHg3lQDlarR^HarR^HarR^Haz+$uauZ?",
            "ln": 4637,
            "col": 25,
            "line": 148
          },
          {
            "b": "ar\u00260N3lQDlarR^Har@12zFsibvqGU7wGV8dwGUC\u003cB7]Xrw{503BzkVhB0a[iA::k2arR^HarR^HzxI7+zG4jOwPzZgd05%ow?ER9xl4M{as!M?efFFBD2NsTzG4juy\u0026r:7hz=\u0026\u00263lQDlarR^Har@12zFsibvqGU7wGU/2w]]e7zE:(gx\u003eIa3ayPqhvr(]3arR^HarR^Hy?mj2auZ\u0026+A4VDFA=l1EB7Gf1e[wKaA+e/8d\u003ccL$ay]OtAaIgI",
            "ln": 5411,
            "col": 8,
            "line": 178
          },
          {
            "b": "az1$\u003exDQ?%xl4M{efG7OwmoN\u003eaARpdayX=2x(+zeB-7Yhx(v)g3lQDlarR^HazbLjay(QezxJ$dzF9Jef!sC*wO+%hwmYy]wN##matCra3lQDlarR^HarR^Haz+R3Bx-oYauZ\u0026\u0026at1ZSwO+%hyI[6jB6AZ8vqYB^zE^s6as!M?at1ZDt).X%arR^HarR^HarQ",
            "ln": 5759,
            "col": 14,
            "line": 189
          },
          {
            "b": "arR^HarR^HarR^HarR^Hw*fPXzGG]qy-)Xnx(n3laz(mxBrC47atMtcw]zYjBzbxfaAhdnBrCgrzEW^5z/d9Gxk.(mDVJ+mw?ERdzdNQax(v)ql)q%XarR^HarR^HarR^Q3jm)#arR^HarR)Kl$G$sB.(dxB98XzwPFh3arR^HarR!qwObv[y\u0026\u003c2]",
            "ln": 15101,
            "col": 1,
            "line": 472
          }
        ],
        "depth": 1,
        "facts": {
          "imp": [
            [
              "",
              "np.array"
            ],
            [
              "",
              "isinstance"
            ],
            [
              "",
              "knots.astype"
            ],
            [
              "",
              "isinstance"
            ],
            [
              "",
              "np.array"
            ],
            [
              "",
              "control_points.astype"
            ],
            [
              "",
              "ValueError"
            ],
            [
              "",
              "np.all"
            ],
            [
              "",
              "np.diff"
            ],
            [
              "",
              "ValueError"
            ],
            [
              "",
              "len"
            ],
            [
              "",
              "len"
            ],
            [
              "",
              "ValueError"
            ],
            [
              "",
              "ValueError"
            ],
            [
              "",
              "np.clip"
            ],
            [
              "",
              "abs"
            ],
            [
              "",
              "len"
            ],
            [
              "",
              "len"
            ],
            [
              "",
              "np.zeros"
            ],
            [
              "",
              "np.zeros"
            ],
            [
              "",
              "np.zeros"
            ],
            [
              "",
              "range"
            ],
            [
              "",
              "range"
            ],
            [
              "",
              "abs"
            ],
            [
              "",
              "abs"
            ],
            [
              "",
              "self.control_points[0].copy"
            ],
            [
              "",
              "abs"
            ],
            [
              "",
              "self.control_points[-1].copy"
            ],
            [
              "",
              "np.clip"
            ],
            [
              "",
              "self.find_knot_span"
            ],
            [
              "",
              "self.basis_functions"
            ],
            [
              "",
              "np.dot"
            ],
            [
              "",
              "np.zeros"
            ],
            [
              "",
              "range"
            ],
            [
              "",
              "min"
            ],
            [
              "",
              "np.zeros"
            ],
            [
              "",
              "np.zeros"
            ],
            [
              "",
              "np.zeros"
            ],
            [
              "",
              "np.zeros"
            ],
            [
              "",
              "np.zeros"
            ],
            [
              "",
              "range"
            ],
            [
              "",
              "range"
            ],
            [
              "",
              "abs"
            ],
            [
              "",
              "range"
            ],
            [
              "",
              "range"
            ],
            [
              "",
              "range"
            ],
            [
              "",
              "range"
            ],
            [
              "",
              "range"
            ],
            [
              "",
              "range"
            ],
            [
              "",
              "ValueError"
            ],
            [
              "",
              "self.evaluate"
            ],
            [
              "",
              "np.clip"
            ],
            [
              "",
              "self.find_knot_span"
            ],
            [
              "",
              "self.basis_function_derivatives"
            ],
            [
              "",
              "np.dot"
            ],
            [
              "",
              "np.zeros"
            ],
            [
              "",
              "range"
            ],
            [
              "",
              "np.linspace"
            ],
            [
              "",
              "np.zeros"
            ],
            [
              "",
              "enumerate"
            ],
            [
              "",
              "self.evaluate"
            ],
            [
              "",
              "np.array"
            ],
            [
              "",
              "self.evaluate"
            ],
            [
              "",
              "ValueError"
            ],
            [
              "",
              "plt.subplots"
            ],
            [
              "",
              "self.generate_curve_points"
            ],
            [
              "",
              "ax.plot"
            ],
            [
              "",
              "ax.plot"
            ],
            [
              "",
              "np.unique"
            ],
            [
              "",
              "np.array"
            ],
            [
              "",
              "self.evaluate"
            ],
            [
              "",
              "ax.plot"
            ],
            [
              "",
              "ax.set_xlabel"
            ],
            [
              "",
              "ax.set_ylabel"
            ],
            [
              "",
              "ax.set_title"
            ],
            [
              "",
              "ax.legend"
            ],
            [
              "",
              "ax.grid"
            ],
            [
              "",
              "ValueError"
            ],
            [
              "",
              "plt.figure"
            ],
            [
              "",
              "fig.add_subplot"
            ],
            [
              "",
              "self.generate_curve_points"
            ],
            [
              "",
              "ax.plot"
            ],
            [
              "",
              "ax.plot"
            ],
            [
              "",
              "ax.set_xlabel"
            ],
            [
              "",
              "ax.set_ylabel"
            ],
            [
              "",
              "ax.set_zlabel"
            ],
            [
              "",
              "ax.set_title"
            ],
            [
              "",
              "ax.legend"
            ],
            [
              "",
              "ValueError"
            ],
            [
              "",
              "ValueError"
            ],
            [
              "",
              "np.zeros"
            ],
            [
              "",
              "np.linspace"
            ],
            [
              "",
              "ValueError"
            ],
            [
              "",
              "ValueError"
            ],
            [
              "",
              "np.linspace"
            ],
            [
              "",
              "np.zeros"
            ],
            [
              "",
              "range"
            ],
            [
              "",
              "len"
            ],
            [
              "",
              "range"
            ],
            [
              "",
              "len"
            ],
            [
              "",
              "len"
            ],
            [
              "",
              "Axes3D"
            ],
            [
              "",
              "TYPE_CHECKING"
            ],
            [
              "",
              "matplotlib.pyplot"
            ],
            [
              "",
              "mpl_toolkits.mplot3d"
            ],
            [
              "",
              "numpy"
            ],
            [
              "",
              "typing"
            ]
          ],
          "mbr": [
            "ax.grid",
            "ax.legend",
            "ax.plot",
            "ax.set_title",
            "ax.set_xlabel",
            "ax.set_ylabel",
            "ax.set_zlabel",
            "control_points.astype",
            "control_points.ndim",
            "control_points.shape",
            "default_control_style.color",
            "default_control_style.label",
            "default_control_style.linestyle",
            "default_control_style.linewidth",
            "default_control_style.marker",
            "default_control_style.markersize",
            "default_curve_style.color",
            "default_curve_style.label",
            "default_curve_style.linewidth",
            "default_knot_style.color",
            "default_knot_style.label",
            "default_knot_style.marker",
            "default_knot_style.markersize",
            "fig.add_subplot",
            "knots.astype",
            "np.all",
            "np.array",
            "np.clip",
            "np.diff",
            "np.dot",
            "np.float64",
            "np.linspace",
            "np.ndarray",
            "np.unique",
            "np.zeros",
            "plt.Axes",
            "plt.figure",
            "plt.subplots",
            "self.DIM_2",
            "self.DIM_3",
            "self._cached_spans",
            "self.basis_function_derivatives",
            "self.basis_functions",
            "self.control_points",
            "self.degree",
            "self.dimension",
            "self.eps",
            "self.evaluate",
            "self.find_knot_span",
            "self.generate_curve_points",
            "self.knots",
            "self.u_max",
            "self.u_min"
          ],
          "tgt": [
            "ValueError",
            "abs",
            "ax.grid",
            "ax.legend",
            "ax.plot",
            "ax.set_title",
            "ax.set_xlabel",
            "ax.set_ylabel",
            "ax.set_zlabel",
            "control_points.astype",
            "enumerate",
            "fig.add_subplot",
            "isinstance",
            "knots.astype",
            "len",
            "min",
            "np.all",
            "np.array",
            "np.clip",
            "np.diff",
            "np.dot",
            "np.linspace",
            "np.unique",
            "np.zeros",
            "plt.figure",
            "plt.subplots",
            "range",
            "self.basis_function_derivatives",
            "self.basis_functions",
            "self.evaluate",
            "self.find_knot_span",
            "self.generate_curve_points"
          ],
          "funcs": [
            [
              "__init__",
              969
            ],
            [
              "find_knot_span",
              3363
            ],
            [
              "basis_functions",
              4988
            ],
            [
              "evaluate",
              6510
            ],
            [
              "basis_function_derivatives",
              7955
            ],
            [
              "evaluate_derivative",
              11270
            ],
            [
              "generate_curve_points",
              12847
            ],
            [
              "plot_2d",
              14050
            ],
            [
              "plot_3d",
              17735
            ],
            [
              "create_uniform_knots",
              20537
            ],
            [
              "create_periodic_knots",
              22786
            ],
            [
              "__repr__",
              24802
            ]
          ],
          "metrics": {
            "ast": {
              "op.add": 69,
              "op.bor": 4,
              "op.div": 6,
              "op.lor": 1,
              "op.mul": 16,
              "op.sub": 45,
              "max_depth": 18,
              "call_count": 101,
              "node_count": 4525,
              "op.floordiv": 1,
              "member_count": 53,
              "max_array_len": 2,
              "op_density.add": 0.02,
              "op_density.bor": 0,
              "op_density.div": 0,
              "op_density.lor": 0,
              "op_density.mul": 0,
              "op_density.sub": 0.01,
              "max_concat_chain": 3,
              "member_depth_max": 2,
              "max_numeric_array": 2,
              "op_density.floordiv": 0
            },
            "file": {
              "size": 25164,
              "entropy": 4.28
            },
            "text": {
              "lines": 777,
              "top_char": 101,
              "max_ws_run": 1,
              "digit_ratio": 0.02,
              "space_count": 8269,
              "char_entropy": 4.28,
              "unique_chars": 83,
              "top_char_null": 0,
              "string_density": 0.12,
              "top_char_ratio": 0.07,
              "avg_line_length": 31.39,
              "max_line_length": 116,
              "empty_line_ratio": 0.18,
              "last_line_length": 9,
              "whitespace_ratio": 0.36,
              "identifier_density": 1.32,
              "line_length_stddev": 23.98,
              "normalized_string_count": 3.48,
              "repeated_char_sequences": 247,
              "suspicious_string_ratio": 0.09,
              "suspicious_identifier_ratio": 0.09,
              "normalized_unique_identifiers": 14.37
            },
            "binds": {
              "count": 89
            },
            "binary": {
              "peak_region_bytes": 23116,
              "peak_region_entropy": 4.47
            },
            "source": {
              "class_count": 1,
              "function_count": 12
            },
            "imports": {
              "count": 6,
              "aliased": 2,
              "stdlib_count": 1,
              "stdlib_ratio": 0.17,
              "third_party_count": 5,
              "third_party_ratio": 0.83
            },
            "strings": {
              "sql": 5,
              "bytes": 7963,
              "count": 97,
              "shell": 1,
              "avg_length": 82.09,
              "max_length": 784,
              "avg_entropy": 2.62,
              "entropy_stddev": 1.22,
              "embedded_code_candidates": 3
            },
            "comments": {
              "chars": 3391,
              "count": 86,
              "lines": 86,
              "to_code_ratio": 0.12
            },
            "functions": {
              "count": 13,
              "density": 1.54,
              "avg_params": 3.17,
              "code_ratio": 0.93,
              "max_params": 5,
              "length_stddev": 26.82,
              "over_100_lines": 2,
              "avg_name_length": 14.5,
              "avg_length_lines": 60.08,
              "max_length_lines": 111,
              "min_length_lines": 14,
              "high_entropy_names": 4,
              "single_char_params": 5,
              "avg_param_name_length": 7.16
            },
            "identifiers": {
              "count": 1026,
              "unique": 138,
              "avg_length": 7.43,
              "max_length": 26,
              "min_length": 1,
              "avg_entropy": 2.27,
              "reuse_ratio": 0.13,
              "length_stddev": 5.13,
              "has_digit_ratio": 0.08,
              "sequential_names": 12,
              "single_char_count": 9,
              "single_char_ratio": 0.07,
              "high_entropy_count": 8,
              "high_entropy_ratio": 0.06,
              "all_lowercase_ratio": 0.89,
              "all_uppercase_ratio": 0.01,
              "numeric_suffix_count": 7,
              "double_underscore_count": 2,
              "underscore_prefix_count": 4
            }
          }
        },
        "id": 4,
        "mol": "H(Db)",
        "path": "interpolatepy-3.2.2-py3-none-any.whl!!interpolatepy/b_spline.py",
        "pid": 0,
        "risk": 1,
        "sha": "10c493e0dfa2da63f3c5306a4946063bde1f405792652e3b61c628a2750b1efb",
        "size": 25164,
        "traits": [
          {
            "id": "micro-behaviors/data/manipulation::numpy-array-operations--array",
            "conf": 0.85,
            "crit": 1,
            "desc": "NumPy array operation (array)",
            "spans": [
              [
                1691,
                0
              ]
            ]
          },
          {
            "id": "micro-behaviors/data/manipulation::numpy-array-operations--clip",
            "conf": 0.85,
            "crit": 1,
            "desc": "NumPy array operation (clip)",
            "spans": [
              [
                4201,
                0
              ]
            ]
          },
          {
            "id": "micro-behaviors/data/manipulation::numpy-array-operations--ndarray",
            "conf": 0.85,
            "crit": 1,
            "desc": "NumPy array operation (ndarray)",
            "spans": [
              [
                1024,
                0
              ]
            ]
          },
          {
            "id": "micro-behaviors/data/manipulation::numpy-array-operations--zeros",
            "conf": 0.85,
            "crit": 1,
            "desc": "NumPy array operation (zeros)",
            "spans": [
              [
                5475,
                0
              ]
            ]
          },
          {
            "id": "micro-behaviors/data/manipulation::numpy-import",
            "conf": 0.9,
            "crit": 3,
            "desc": "Imports the NumPy array library",
            "spans": [
              [
                75,
                5
              ]
            ]
          },
          {
            "id": "micro-behaviors/data/manipulation::numpy-array-operations",
            "conf": 0.85,
            "crit": 3,
            "desc": "Dense NumPy array construction and reduction",
            "uses": [
              0,
              1,
              2,
              3
            ],
            "spans": [
              [
                1024,
                10
              ],
              [
                1691,
                8
              ],
              [
                4201,
                7
              ],
              [
                5475,
                8
              ]
            ]
          },
          {
            "id": "micro-behaviors/data/manipulation::numeric-computation-library",
            "conf": 0.95,
            "crit": 3,
            "desc": "Module built on the numeric Python stack",
            "uses": [
              4,
              5
            ],
            "spans": [
              [
                75,
                5
              ],
              [
                1024,
                10
              ],
              [
                1691,
                8
              ],
              [
                4201,
                7
              ],
              [
                5475,
                8
              ]
            ]
          }
        ],
        "type": "python"
      },
      {
        "ctx": [
          {
            "b": "a%Firlm)m$y?W=#ay/LmC4z!8AbY\u0026oCXI26BzkVhaA}KwxDRb5vrlJkB8=thA+fqmw[=vex(mMo3jo:Cx(+zlz!a0bwGU@jz*2\u00269wPF$XePU(Ex(mG8vq{gaz*k#kvruj4zxJw7xk.*8BzbJjaARp9BrCgfBrC7oA=#2naARJAwmoN*B7GDm3u{iaxDQ[#Cv+!qv@DmbA=k+pAbPDdBAnNDxKL^3wmoN*aAhmkzGG}Laxi2=ayPkdA=lhpzddK2z/cXbvqGv\u0026v}xZ7v@Dj6B-.5lx(v($yZK-=w[+:?wO#16aA}KwxDQ/cA=#1pADLYax([RyB-Rnmxcq24vrlJkB8=thA+fqmz/x/jze1r8BzkVhe^-^Da{[V\u003eze:AlBrCEzze:+yvriMeA0=}:A=k!qx(n37A=t@kvru71C}JMkB8U@fzE\u003c@8ze:AlBrA[GAbolawEn+Kv@bN{B09+/Ab](wx(dp2x(v(Qq/DL!zE\u003ej.q/DL!zE\u003emT3lQDlar\u00260Nk{fVNvrlGjw]zYjlm)m$y?W=#ay/LmC4z!8AbY\u0026oCXI26BzkVhaA7\u003cmvixS5BrCHlaAhmkzGG}L3jm)#arTl[xK#i#BAnNpA=k!qlq}\u0026tx(mG8v@bN{B1N!barR^Hra]?=wO#2",
            "ln": 0,
            "col": 1,
            "line": 1
          },
          {
            "b": "v@Dmbx(n6cBA[i2arR^Hl3di?x\u003c#jbwPFh3arR^UeIeLaeIeLaeEAQyarUPyx\u003eIc$vqGp\u0026z!T9hB09H^zG4jCwmoI0vr\u0026h5arR^HarR!axK@r8A+Pf2zEEu7AbPDdBAnNlwOD3{ayPkdA=lhpzddJ$wg!iiarR!BA+Pf2zEEu*Aa9=}zdN*2A=Su:az#cJzE^f@A::k2arR^HarR^Hra]?=Aa9=}zdN*2AV/Kly\u0026%rgay/tgA+frhz/f91zF5",
            "ln": 753,
            "col": 55,
            "line": 22
          },
          {
            "b": "wmoI0vr\u0026#lAV!a}zE\u003evwwmYvYB.(d.ph+2Y3lQDlarR^HarR^HaxJb*xj#ydazbLjaAhmkzGG}xx(k54AbY\u0026oCXI26BzkVhe*9.$awM\u0026)wH[%DzFrZ3A+#}ywOC^\u003cBzkS9azC)tB-Rb8e^-ZzarR^HarUJjBzbP6auyS^BAe]PwmYvYB.(d.b4Cq8A+5J[wO#d5xD^=",
            "ln": 1684,
            "col": 31,
            "line": 52
          },
          {
            "b": "arR^Hx\u003ewG9z/^aoB7]JkByx5%wHIIox(n3lefF?He]CidA=LPldlm!UarR^HarR^HarR!Cz!T9hB09Q*zG4jpA=LPlc#:9szGG}Jay]OtAaIgIA4U:sz^^-Cg:@+sarR^HarR^HboP]@BrCa9w)]*#BrC^sx\u003eIa3B0bgeaz#ataAhvtC4\u003eF#wfrpyzFrZ3A+#}ywOC^\u003cBAn(rarR^HarR^HzxI7+y?mGjAbPDdBAn(NeG=+\u003car@17B.$P0",
            "ln": 3041,
            "col": 5,
            "line": 86
          },
          {
            "b": "z!T9hB0bslzGQ1yf:Y3CarR^HarUxgaA}yhxj#ydazC)tph+2YiTM#LarR^HarR^HarU(tx\u003eIa3B09Q*zG4jDzE)(qzxHINf!1j/boPB1v@co#wGUP0A=VsBvqYP#y*?ybaAhmkzGG}barR^HarR^HwO=6)az#atazC[hzGx]dzEWlaCv+G3xMOqDaz#cJzE^f@A::kxiTM#LarR^HarR^HarU(tx\u003eIa3B09Q*zG4jpA=LPld0Glpxj#w",
            "ln": 3247,
            "col": 43,
            "line": 90
          },
          {
            "b": "y*?ybaAhmkzGDi)arR^HarR^HboPM}x([5$y?XibaARpdaAg+fvqPN$wPz\u00260arR^HarR^HBZFP^AV^H/zG4jOwPzZgc#HdTatCz\u0026wor9owJ:{Ie[O{rvrsy:dgcz8arR^HarR^Kax8\u0026[aARpdaz2C3AbPDdBAm^iarR^HarR!HuT^C:tqft9jS(BhfBw{BarR^HarU/lvQTpYzE1wFatCG53jm)#arR^HarUxgaz\u003eXixM4A7jV%]iwPq\u003c3",
            "ln": 5227,
            "col": 45,
            "line": 144
          },
          {
            "b": "arR^Q3jm)#arR^HarUxgazth8vruQid05%ow?k5GwmYj)xcF=EvqYP#B7Gf1e[wK5B.r-xarR^HarR^HarR^HAb]VgBsp-BtY9w7qBa2Cr7fXcrZxzVmn\u003erSB-Rnmx8",
            "ln": 6805,
            "col": 10,
            "line": 190
          },
          {
            "b": "x(n3ltw^.{a$i\u003caarR^HarR^HboPJ=zE^M{ay!\u00263wGVhgwPzu8Cv.[nzFTOvxKM6}atL6Hz/fVqz!{Lnz!T9hA%:3jarR^HarUxgaz\u0026k-jS(Eu3lQDlarR^HarR^HazCBgxKL%\u003cBAzKKB7Gf1efDcEwNY^{a$jTyzE:(hwO+%hwmYj)xf3wxarR^H",
            "ln": 11383,
            "col": 36,
            "line": 323
          },
          {
            "b": "arR^HarR^HboPuZy?4Q7vru66B8=thA+e=7wncabvqYN^3lQDlarR^HarR^HaAIKBvrb{\u0026uU0\u003e(BrAZ?zG4jHB.@JPAbPDdBrAdTB8U@fzE)f]z!T9hdiH8\u0026atLwMarR^HarR^HarR^HB9htbB8=thA+e=*wncabas/O$B8=thA+e=*wncab3jm)#arR^HarUYoBAIRwaAIWxuVQjfvrb{\u0026uU0\u003e(Bp5u$arR!qwO969wObT]wHE)darQ",
            "ln": 18712,
            "col": 5,
            "line": 501
          },
          {
            "b": "arR!rA=M8sauZ\u0026*wO+%hv{%g-B.\u003eGdwNw\u003e+Ab](wx(dp2x(v(@wPz*fAWSvz3lQDlarR^HaA}Hky?j-2A=M8sau*]+vr=c\u003cA=M8sayPd#az#ssuT[1(BAhqouVo{$zGG}xjrOGHCWB%0zGG]qy*Rd1x(n3liTM#LarR^HarR^HarR)KnP53UwNPT\u003eaARpdaz#ssvR6N5z!pb4z/fVqz!{Lnz!T9hA%:3jarR^HarR^HarUMAzc{^\u003ezGG]qy*Rd1x(n3las/O$f:XmgarR^Hao",
            "ln": 19689,
            "col": 6,
            "line": 531
          }
        ],
        "depth": 1,
        "facts": {
          "imp": [
            [
              "",
              "ValueError"
            ],
            [
              "",
              "ValueError"
            ],
            [
              "",
              "len"
            ],
            [
              "",
              "ValueError"
            ],
            [
              "",
              "print"
            ],
            [
              "",
              "print"
            ],
            [
              "",
              "print"
            ],
            [
              "",
              "print"
            ],
            [
              "",
              "print"
            ],
            [
              "",
              "len"
            ],
            [
              "",
              "print"
            ],
            [
              "",
              "print"
            ],
            [
              "",
              "isinstance"
            ],
            [
              "",
              "np.array"
            ],
            [
              "",
              "len"
            ],
            [
              "",
              "np.ones"
            ],
            [
              "",
              "isinstance"
            ],
            [
              "",
              "np.array"
            ],
            [
              "",
              "self._compute_parameters"
            ],
            [
              "",
              "self._compute_knots"
            ],
            [
              "",
              "len"
            ],
            [
              "",
              "self._approximate_control_points"
            ],
            [
              "",
              "super().__init__"
            ],
            [
              "",
              "super"
            ],
            [
              "",
              "print"
            ],
            [
              "",
              "print"
            ],
            [
              "",
              "print"
            ],
            [
              "",
              "len"
            ],
            [
              "",
              "print"
            ],
            [
              "",
              "print"
            ],
            [
              "",
              "enumerate"
            ],
            [
              "",
              "print"
            ],
            [
              "",
              "len"
            ],
            [
              "",
              "np.zeros"
            ],
            [
              "",
              "range"
            ],
            [
              "",
              "range"
            ],
            [
              "",
              "float"
            ],
            [
              "",
              "np.linalg.norm"
            ],
            [
              "",
              "range"
            ],
            [
              "",
              "float"
            ],
            [
              "",
              "np.linalg.norm"
            ],
            [
              "",
              "range"
            ],
            [
              "",
              "float"
            ],
            [
              "",
              "np.linalg.norm"
            ],
            [
              "",
              "range"
            ],
            [
              "",
              "np.linalg.norm"
            ],
            [
              "",
              "ValueError"
            ],
            [
              "",
              "hasattr"
            ],
            [
              "",
              "print"
            ],
            [
              "",
              "enumerate"
            ],
            [
              "",
              "print"
            ],
            [
              "",
              "hasattr"
            ],
            [
              "",
              "print"
            ],
            [
              "",
              "print"
            ],
            [
              "",
              "np.zeros"
            ],
            [
              "",
              "hasattr"
            ],
            [
              "",
              "print"
            ],
            [
              "",
              "range"
            ],
            [
              "",
              "int"
            ],
            [
              "",
              "hasattr"
            ],
            [
              "",
              "print"
            ],
            [
              "",
              "print"
            ],
            [
              "",
              "hasattr"
            ],
            [
              "",
              "print"
            ],
            [
              "",
              "print"
            ],
            [
              "",
              "len"
            ],
            [
              "",
              "hasattr"
            ],
            [
              "",
              "print"
            ],
            [
              "",
              "print"
            ],
            [
              "",
              "print"
            ],
            [
              "",
              "np.zeros"
            ],
            [
              "",
              "hasattr"
            ],
            [
              "",
              "print"
            ],
            [
              "",
              "print"
            ],
            [
              "",
              "print"
            ],
            [
              "",
              "hasattr"
            ],
            [
              "",
              "print"
            ],
            [
              "",
              "np.zeros"
            ],
            [
              "",
              "BSpline"
            ],
            [
              "",
              "np.zeros"
            ],
            [
              "",
              "np.zeros"
            ],
            [
              "",
              "hasattr"
            ],
            [
              "",
              "print"
            ],
            [
              "",
              "print"
            ],
            [
              "",
              "range"
            ],
            [
              "",
              "hasattr"
            ],
            [
              "",
              "print"
            ],
            [
              "",
              "np.zeros"
            ],
            [
              "",
              "temp_bspline.find_knot_span"
            ],
            [
              "",
              "hasattr"
            ],
            [
              "",
              "temp_bspline.basis_functions"
            ],
            [
              "",
              "hasattr"
            ],
            [
              "",
              "range"
            ],
            [
              "",
              "hasattr"
            ],
            [
              "",
              "enumerate"
            ],
            [
              "",
              "range"
            ],
            [
              "",
              "hasattr"
            ],
            [
              "",
              "hasattr"
            ],
            [
              "",
              "range"
            ],
            [
              "",
              "range"
            ],
            [
              "",
              "range"
            ],
            [
              "",
              "range"
            ],
            [
              "",
              "min"
            ],
            [
              "",
              "np.diag"
            ],
            [
              "",
              "hasattr"
            ],
            [
              "",
              "np.dot"
            ],
            [
              "",
              "np.dot"
            ],
            [
              "",
              "np.dot"
            ],
            [
              "",
              "hasattr"
            ],
            [
              "",
              "np.linalg.solve"
            ],
            [
              "",
              "hasattr"
            ],
            [
              "",
              "np.dot"
            ],
            [
              "",
              "np.linalg.pinv"
            ],
            [
              "",
              "hasattr"
            ],
            [
              "",
              "hasattr"
            ],
            [
              "",
              "range"
            ],
            [
              "",
              "enumerate"
            ],
            [
              "",
              "self.evaluate"
            ],
            [
              "",
              "np.sum"
            ],
            [
              "",
              "len"
            ],
            [
              "",
              "self.calculate_approximation_error"
            ],
            [
              "",
              "ApproximationBSpline"
            ],
            [
              "",
              "new_spline.calculate_approximation_error"
            ],
            [
              "",
              "ApproximationBSpline"
            ],
            [
              "",
              "min"
            ],
            [
              "",
              "BSpline"
            ],
            [
              "",
              "interpolatepy.b_spline"
            ],
            [
              "",
              "numpy"
            ]
          ],
          "mbr": [
            "b_matrix.T",
            "b_matrix.shape",
            "btw.shape",
            "btwb.shape",
            "btwr.shape",
            "new_spline.calculate_approximation_error",
            "np.array",
            "np.diag",
            "np.dot",
            "np.float64",
            "np.linalg",
            "np.linalg.LinAlgError",
            "np.linalg.norm",
            "np.linalg.pinv",
            "np.linalg.solve",
            "np.ndarray",
            "np.ones",
            "np.sum",
            "np.zeros",
            "points.shape",
            "r_matrix.shape",
            "self._approximate_control_points",
            "self._compute_knots",
            "self._compute_parameters",
            "self.calculate_approximation_error",
            "self.control_points",
            "self.debug",
            "self.degree",
            "self.evaluate",
            "self.original_parameters",
            "self.original_points",
            "super().__init__",
            "temp_bspline.basis_functions",
            "temp_bspline.find_knot_span"
          ],
          "tgt": [
            "ApproximationBSpline",
            "BSpline",
            "ValueError",
            "enumerate",
            "float",
            "hasattr",
            "int",
            "isinstance",
            "len",
            "min",
            "new_spline.calculate_approximation_error",
            "np.array",
            "np.diag",
            "np.dot",
            "np.linalg.norm",
            "np.linalg.pinv",
            "np.linalg.solve",
            "np.ones",
            "np.sum",
            "np.zeros",
            "print",
            "range",
            "self._approximate_control_points",
            "self._compute_knots",
            "self._compute_parameters",
            "self.calculate_approximation_error",
            "self.evaluate",
            "super",
            "super().__init__",
            "temp_bspline.basis_functions",
            "temp_bspline.find_knot_span"
          ],
          "funcs": [
            [
              "__init__",
              989
            ],
            [
              "_compute_parameters",
              4517
            ],
            [
              "_compute_knots",
              7047
            ],
            [
              "_approximate_control_points",
              9606
            ],
            [
              "calculate_approximation_error",
              17443
            ],
            [
              "refine",
              18895
            ]
          ],
          "metrics": {
            "ast": {
              "op.add": 32,
              "op.bor": 5,
              "op.div": 4,
              "op.mul": 8,
              "op.pow": 3,
              "op.sub": 40,
              "op.land": 21,
              "max_depth": 22,
              "call_count": 146,
              "node_count": 3752,
              "member_count": 34,
              "max_array_len": 2,
              "op_density.add": 0.01,
              "op_density.bor": 0,
              "op_density.div": 0,
              "op_density.mul": 0,
              "op_density.pow": 0,
              "op_density.sub": 0.01,
              "op_density.land": 0.01,
              "max_concat_chain": 4,
              "member_depth_max": 3
            },
            "file": {
              "size": 20655,
              "entropy": 4.39
            },
            "text": {
              "lines": 555,
              "top_char": 101,
              "max_ws_run": 6,
              "digit_ratio": 0.02,
              "space_count": 6504,
              "char_entropy": 4.39,
              "unique_chars": 88,
              "top_char_null": 0,
              "string_density": 0.19,
              "top_char_ratio": 0.05,
              "avg_line_length": 36.22,
              "max_line_length": 98,
              "non_ascii_ratio": 0,
              "empty_line_ratio": 0.18,
              "last_line_length": 9,
              "whitespace_ratio": 0.34,
              "identifier_density": 1.37,
              "line_length_stddev": 25.31,
              "encoded_string_ratio": 0.01,
              "normalized_string_count": 4.37,
              "repeated_char_sequences": 222,
              "suspicious_string_ratio": 0.07,
              "suspicious_comment_ratio": 0.01,
              "suspicious_identifier_ratio": 0.08,
              "normalized_unique_identifiers": 10.42
            },
            "binds": {
              "count": 65
            },
            "binary": {
              "peak_region_bytes": 19456,
              "peak_region_entropy": 4.5
            },
            "source": {
              "class_count": 1,
              "function_count": 6
            },
            "imports": {
              "count": 3,
              "aliased": 1,
              "third_party_count": 3,
              "third_party_ratio": 1
            },
            "strings": {
              "sql": 5,
              "bytes": 6884,
              "count": 103,
              "avg_length": 66.83,
              "max_length": 853,
              "avg_entropy": 3.19,
              "entropy_stddev": 1.19,
              "base64_candidates": 1,
              "embedded_code_candidates": 2
            },
            "comments": {
              "chars": 3353,
              "count": 83,
              "lines": 83,
              "high_entropy": 1,
              "to_code_ratio": 0.18
            },
            "functions": {
              "count": 7,
              "density": 1.08,
              "avg_params": 5.33,
              "code_ratio": 0.94,
              "max_params": 10,
              "length_stddev": 51.85,
              "over_100_lines": 1,
              "avg_name_length": 17.17,
              "avg_length_lines": 86.5,
              "max_length_lines": 196,
              "min_length_lines": 38,
              "many_params_count": 2,
              "high_entropy_names": 2,
              "single_char_params": 1,
              "avg_param_name_length": 8.72
            },
            "identifiers": {
              "count": 760,
              "unique": 95,
              "avg_length": 7.72,
              "max_length": 29,
              "min_length": 1,
              "avg_entropy": 2.26,
              "reuse_ratio": 0.13,
              "length_stddev": 5.81,
              "has_digit_ratio": 0.01,
              "sequential_names": 8,
              "single_char_count": 8,
              "single_char_ratio": 0.08,
              "high_entropy_count": 5,
              "high_entropy_ratio": 0.05,
              "all_lowercase_ratio": 0.94,
              "all_uppercase_ratio": 0.01,
              "numeric_suffix_count": 1,
              "double_underscore_count": 1,
              "underscore_prefix_count": 4
            }
          }
        },
        "id": 5,
        "mol": "H(Db)",
        "path": "interpolatepy-3.2.2-py3-none-any.whl!!interpolatepy/b_spline_approx.py",
        "pid": 0,
        "risk": 1,
        "sha": "3e895518e79215fc21813c5cded24a4a6d4825854fdbcd66713af29eaa45e4eb",
        "size": 20655,
        "traits": [
          {
            "id": "micro-behaviors/data/manipulation::numpy-array-operations--array",
            "conf": 0.85,
            "crit": 1,
            "desc": "NumPy array operation (array)",
            "spans": [
              [
                3105,
                0
              ]
            ]
          },
          {
            "id": "micro-behaviors/data/manipulation::numpy-array-operations--ndarray",
            "conf": 0.85,
            "crit": 1,
            "desc": "NumPy array operation (ndarray)",
            "spans": [
              [
                817,
                0
              ]
            ]
          },
          {
            "id": "micro-behaviors/data/manipulation::numpy-array-operations--ones",
            "conf": 0.85,
            "crit": 1,
            "desc": "NumPy array operation (ones)",
            "spans": [
              [
                3311,
                0
              ]
            ]
          },
          {
            "id": "micro-behaviors/data/manipulation::numpy-array-operations--sum",
            "conf": 0.85,
            "crit": 1,
            "desc": "NumPy array operation (sum)",
            "spans": [
              [
                18776,
                0
              ]
            ]
          },
          {
            "id": "micro-behaviors/data/manipulation::numpy-array-operations--zeros",
            "conf": 0.85,
            "crit": 1,
            "desc": "NumPy array operation (zeros)",
            "spans": [
              [
                5291,
                0
              ]
            ]
          },
          {
            "id": "micro-behaviors/data/manipulation::numpy-import",
            "conf": 0.9,
            "crit": 3,
            "desc": "Imports the NumPy array library",
            "spans": [
              [
                306,
                5
              ]
            ]
          },
          {
            "id": "micro-behaviors/data/manipulation::numpy-array-operations",
            "conf": 0.85,
            "crit": 3,
            "desc": "Dense NumPy array construction and reduction",
            "uses": [
              0,
              1,
              2,
              3,
              4
            ],
            "spans": [
              [
                817,
                10
              ],
              [
                3105,
                8
              ],
              [
                3311,
                7
              ],
              [
                5291,
                8
              ],
              [
                18776,
                6
              ]
            ]
          },
          {
            "id": "micro-behaviors/data/manipulation::numeric-computation-library",
            "conf": 0.95,
            "crit": 3,
            "desc": "Module built on the numeric Python stack",
            "uses": [
              5,
              6
            ],
            "spans": [
              [
                306,
                5
              ],
              [
                817,
                10
              ],
              [
                3105,
                8
              ],
              [
                3311,
                7
              ],
              [
                5291,
                8
              ],
              [
                18776,
                6
              ]
            ]
          }
        ],
        "type": "python"
      },
      {
        "ctx": [
          {
            "b": "x(d*cA=-BwB.#8yayPslzG2{\u0026w].*bazC.nwPz:dy*?A%AcT6BuVQg5x(mG8x(d*cA=-A\u003cq/DL!zE\u003ce!A=k!qx(n37A=t@kvru71C}KhVx\u003eg{^xk.V@y*Q)]B%7HoAbP=saAIEqC4C35A+P5#vp%H@vqDnT3s^)XB8@D\u003eBZ/5{lq}\u0026tx(mGNzGGDgAbPM3BzkVhc{*\u003cKy?W=#dlm!UarR^Ja%EvparR^)ay/j@B8@Eoz/M$gBZ/5{avmV3AbolawGUY8By/Giz!@\u003c7x(v(iz!pb2aAIaoaA7\u003cmAbPDdBAo5w3lQDlaxi2*B0a$evrlGjx(d*9wO(0@BAnNkazkIevQT6}x(n37A=t@kvruj4zxJw7xk.*8BzbIlw]zYjv@=c?BzkS9ayMy5BZ/5{3lQDlavmV3AbolawGUG9A=#1pBzb98aAg+gB7GznBzbYkB.twgvqG:5B8UY2x\u003ez6\u003cwft\u0026fx(n3laA}KwxDPWVVliT}zGGPgB.L@ye^-ZzarTl$azC.bwPzHbB0b7nz/3RsxK@qMq/DL!zE\u003c@2y*?yaayPd#az2!twO#41azC{uCwhejazC.nwPz:dy*?B1z/cXcvq]T:x(4H9x\u003equr3jm)#arTG?A:-/@By/Gl3lQDlat2e%eIeLaeIeKYarR^HAbPDdBAnM=ayPqhvr(i@",
            "ln": 0,
            "col": 1,
            "line": 1
          },
          {
            "b": "pc?L@jS(G!3lQDlay]4}aywF\u0026zFsi1uNMm7arR^HarR!FwO+%f3lQDlarR^HaAhmkzGG}Xaz++kBrC@NzG4jCwmoI0vr\u003cyharR^HarR^HB$+%1y?W%jaBCqHA4V3svrcx%C{4FSph+2YauZ\u0026xz/fbq3lQDlarR^HaA?S-az++kBrC@NzG4jCwmoI0vr\u0026#yawM\u0026)wGTbUph+2Yed9HxarR^HarUJjBzbP6iV@G=AV^H/b4Cq8A+5J[wO#d5xD^",
            "ln": 2290,
            "col": 28,
            "line": 59
          },
          {
            "b": "z!T9hB0bNyaz#ssAcSNmA=LPlayPd#az2CiB-I4ov@DydwN/*8w]zZbvrq\u00260arR^HarR!Cz!T9hB09Q*zG4jpA=LPlc#:9szGG}Jay]OtAaIgIA4U:sz^^-Cg:%LYw/$#fBrCpsx(n0lvqYN^c#:9szGG}Jaz#cJzE^f@A::kxaz2wgwGU@gx(n3le[5*yD2NsyzG4juy\u0026r:7hz=\u0026\u00263lQDlarR^Har@10wPP5pxK@r7B.$P0AV/pjaAhmk",
            "ln": 4106,
            "col": 20,
            "line": 101
          },
          {
            "b": "t}3)HaA.44x\u003ey@:arR^HarR^HarR^HarR^HwO=B0iTM#LarR^HarR^HarR^HarR^HarU-py?tqyfD-I3zG4jOwPzZgc$E4ewO#N6z/d9Gwor9owJ:{Ie[O{rvrsy:dgdguarR^HarR^HarUliB7ExtarR^HarR^HarR^HarR^HB7Gf1e{n]\u003ejS[SYe{.8Hz/Wsqx(dB0B7]MgefFFBD2NsTzG4juy\u0026r:7hz=\u0026\u0026arR^HarR^HwO=B0iTM#L",
            "ln": 5293,
            "col": 52,
            "line": 129
          },
          {
            "b": "3lQDlarR^HarR^Har@0$zGx@vwGUG3A=L-3BrCTrvq]=+arR^HarR^HarR^HvrlH3A=-BrB7]JkByx5%wHIZQefF?He]CidA=LPldiG-Tav{6WA3f1yAcSNGzE^s0B97\u0026dwfu4HazC)tvqWi9wmoI0vr\u0026h5arR^HarR^HarR!vw/#mJe]Cilz6g#8att\u00260ar@1Iv{%gZATA{iarR^HarR^HarR^Hao",
            "ln": 5657,
            "col": 1,
            "line": 137
          },
          {
            "b": "3lQDlarR^HarR^Har@0$zGx@vwGUG3A=L-3BrCTrvq]=+arR^HarR^HarR^HvrlH3A=-BrB7]JkByx5%wHI.tefF?He]CidA=LPldiG-Tav{6WA3f1yAcSNGzE^s0B97\u0026dwfu5kazC)tvqWi9wmoI0vr\u0026h5arR^HarR^HarR!vw/#nme]Cilz6g#8att\u00260ar@1Iv{%gZATA{iarR^HarR^HarR^Hao",
            "ln": 6838,
            "col": 1,
            "line": 161
          },
          {
            "b": "y\u003cvdAAa9l/wft\u00261A:-/@By/GlasH/vBZYxaz/cWSe?]ag3lQDlarR^HarR^HazbLjazS9lzxJ$dzF9Jef!sC+dlm!UarR^HarR^HarR^HarR!HuT^C:B6AA=auZ\u0026.atj\u003cP3jm)#arR^HarUlix\u003ewG8wPRQ7wfs2#ar\u003erez/Pw}y?mG%Bz8\u003cV3lQDlarR^HarQ",
            "ln": 9167,
            "col": 20,
            "line": 224
          }
        ],
        "depth": 1,
        "facts": {
          "imp": [
            [
              "",
              "np.array"
            ],
            [
              "",
              "isinstance"
            ],
            [
              "",
              "points.astype"
            ],
            [
              "",
              "len"
            ],
            [
              "",
              "points.reshape"
            ],
            [
              "",
              "self._calculate_parameters"
            ],
            [
              "",
              "abs"
            ],
            [
              "",
              "np.zeros"
            ],
            [
              "",
              "np.zeros"
            ],
            [
              "",
              "np.array"
            ],
            [
              "",
              "isinstance"
            ],
            [
              "",
              "v0.astype"
            ],
            [
              "",
              "isinstance"
            ],
            [
              "",
              "np.zeros"
            ],
            [
              "",
              "len"
            ],
            [
              "",
              "ValueError"
            ],
            [
              "",
              "abs"
            ],
            [
              "",
              "np.zeros"
            ],
            [
              "",
              "np.zeros"
            ],
            [
              "",
              "np.array"
            ],
            [
              "",
              "isinstance"
            ],
            [
              "",
              "vn.astype"
            ],
            [
              "",
              "isinstance"
            ],
            [
              "",
              "np.zeros"
            ],
            [
              "",
              "len"
            ],
            [
              "",
              "ValueError"
            ],
            [
              "",
              "self._calculate_knot_vector"
            ],
            [
              "",
              "self._calculate_control_points"
            ],
            [
              "",
              "super().__init__"
            ],
            [
              "",
              "super"
            ],
            [
              "",
              "np.zeros"
            ],
            [
              "",
              "range"
            ],
            [
              "",
              "range"
            ],
            [
              "",
              "float"
            ],
            [
              "",
              "np.linalg.norm"
            ],
            [
              "",
              "range"
            ],
            [
              "",
              "float"
            ],
            [
              "",
              "np.linalg.norm"
            ],
            [
              "",
              "range"
            ],
            [
              "",
              "float"
            ],
            [
              "",
              "np.linalg.norm"
            ],
            [
              "",
              "range"
            ],
            [
              "",
              "np.linalg.norm"
            ],
            [
              "",
              "ValueError"
            ],
            [
              "",
              "np.zeros"
            ],
            [
              "",
              "range"
            ],
            [
              "",
              "np.zeros"
            ],
            [
              "",
              "np.zeros"
            ],
            [
              "",
              "np.zeros"
            ],
            [
              "",
              "np.zeros"
            ],
            [
              "",
              "np.zeros"
            ],
            [
              "",
              "np.zeros"
            ],
            [
              "",
              "BSpline"
            ],
            [
              "",
              "range"
            ],
            [
              "",
              "temp_bs.find_knot_span"
            ],
            [
              "",
              "temp_bs.basis_functions"
            ],
            [
              "",
              "np.asarray(self.interpolation_points[k], dtype=np.float64).copy"
            ],
            [
              "",
              "np.asarray"
            ],
            [
              "",
              "range"
            ],
            [
              "",
              "np.zeros"
            ],
            [
              "",
              "solve_tridiagonal"
            ],
            [
              "",
              "BSpline"
            ],
            [
              "",
              "interpolatepy.b_spline"
            ],
            [
              "",
              "interpolatepy.tridiagonal_inv"
            ],
            [
              "",
              "numpy"
            ],
            [
              "",
              "solve_tridiagonal"
            ]
          ],
          "mbr": [
            "np.array",
            "np.asarray",
            "np.asarray().copy",
            "np.float64",
            "np.linalg",
            "np.linalg.norm",
            "np.ndarray",
            "np.zeros",
            "points.astype",
            "points.ndim",
            "points.reshape",
            "points.shape",
            "self.MIN_POINTS_FOR_TRIDIAGONAL",
            "self.PARAM_DIFF_THRESHOLD",
            "self._calculate_control_points",
            "self._calculate_knot_vector",
            "self._calculate_parameters",
            "self.interpolation_points",
            "self.interpolation_points.shape",
            "self.n_interpolation_points",
            "self.u_bars",
            "self.v0",
            "self.vn",
            "super().__init__",
            "temp_bs.basis_functions",
            "temp_bs.find_knot_span",
            "v0.astype",
            "v0.ndim",
            "vn.astype",
            "vn.ndim"
          ],
          "tgt": [
            "BSpline",
            "ValueError",
            "abs",
            "float",
            "isinstance",
            "len",
            "np.array",
            "np.asarray",
            "np.asarray().copy",
            "np.linalg.norm",
            "np.zeros",
            "points.astype",
            "points.reshape",
            "range",
            "self._calculate_control_points",
            "self._calculate_knot_vector",
            "self._calculate_parameters",
            "solve_tridiagonal",
            "super",
            "super().__init__",
            "temp_bs.basis_functions",
            "temp_bs.find_knot_span",
            "v0.astype",
            "vn.astype"
          ],
          "funcs": [
            [
              "__init__",
              2303
            ],
            [
              "_calculate_parameters",
              7615
            ],
            [
              "_calculate_knot_vector",
              11093
            ],
            [
              "_calculate_control_points",
              12460
            ]
          ],
          "metrics": {
            "ast": {
              "op.add": 18,
              "op.bor": 5,
              "op.div": 7,
              "op.mul": 4,
              "op.pow": 2,
              "op.sub": 39,
              "op.land": 4,
              "max_depth": 22,
              "call_count": 61,
              "node_count": 2255,
              "member_count": 30,
              "max_array_len": 2,
              "op_density.add": 0.01,
              "op_density.bor": 0,
              "op_density.div": 0,
              "op_density.mul": 0,
              "op_density.pow": 0,
              "op_density.sub": 0.02,
              "op_density.land": 0,
              "max_concat_chain": 4,
              "member_depth_max": 3
            },
            "file": {
              "size": 17175,
              "entropy": 4.46
            },
            "text": {
              "lines": 437,
              "top_char": 101,
              "max_ws_run": 2,
              "digit_ratio": 0.03,
              "space_count": 5243,
              "char_entropy": 4.46,
              "unique_chars": 96,
              "top_char_null": 0,
              "string_density": 0.03,
              "top_char_ratio": 0.06,
              "avg_line_length": 38.3,
              "max_line_length": 120,
              "non_ascii_ratio": 0.02,
              "empty_line_ratio": 0.18,
              "last_line_length": 29,
              "whitespace_ratio": 0.33,
              "identifier_density": 1.22,
              "line_length_stddev": 29.26,
              "normalized_string_count": 0.62,
              "repeated_char_sequences": 155,
              "suspicious_string_ratio": 0.54,
              "suspicious_comment_ratio": 0.02,
              "suspicious_identifier_ratio": 0.08,
              "normalized_unique_identifiers": 8.66
            },
            "binds": {
              "count": 58
            },
            "binary": {
              "peak_region_bytes": 15127,
              "peak_region_entropy": 4.6
            },
            "source": {
              "class_count": 1,
              "function_count": 4
            },
            "imports": {
              "count": 5,
              "aliased": 1,
              "third_party_count": 5,
              "third_party_ratio": 1
            },
            "strings": {
              "sql": 5,
              "bytes": 6879,
              "count": 13,
              "very_long": 4,
              "avg_length": 529.15,
              "max_length": 2032,
              "avg_entropy": 3.94,
              "entropy_stddev": 0.49,
              "embedded_code_candidates": 2
            },
            "comments": {
              "chars": 2616,
              "count": 64,
              "lines": 64,
              "high_entropy": 1,
              "to_code_ratio": 0.17
            },
            "functions": {
              "count": 5,
              "density": 0.92,
              "avg_params": 2.75,
              "code_ratio": 0.85,
              "max_params": 6,
              "length_stddev": 32.98,
              "over_100_lines": 2,
              "avg_name_length": 19,
              "avg_length_lines": 93.25,
              "max_length_lines": 119,
              "min_length_lines": 38,
              "high_entropy_names": 1,
              "avg_param_name_length": 5.36
            },
            "identifiers": {
              "count": 534,
              "unique": 76,
              "avg_length": 8.45,
              "max_length": 26,
              "min_length": 1,
              "avg_entropy": 2.37,
              "reuse_ratio": 0.14,
              "length_stddev": 6.32,
              "has_digit_ratio": 0.07,
              "sequential_names": 6,
              "single_char_count": 5,
              "single_char_ratio": 0.07,
              "high_entropy_count": 6,
              "high_entropy_ratio": 0.08,
              "all_lowercase_ratio": 0.87,
              "all_uppercase_ratio": 0.03,
              "numeric_suffix_count": 4,
              "double_underscore_count": 1,
              "underscore_prefix_count": 4
            }
          }
        },
        "id": 6,
        "mol": "H(Db)",
        "path": "interpolatepy-3.2.2-py3-none-any.whl!!interpolatepy/b_spline_cubic.py",
        "pid": 0,
        "risk": 1,
        "sha": "80dbea8a731fcf77f13a213faed26c665288a2b9613c4d63fd993729d5715019",
        "size": 17175,
        "traits": [
          {
            "id": "micro-behaviors/data/manipulation::numpy-array-operations--array",
            "conf": 0.85,
            "crit": 1,
            "desc": "NumPy array operation (array)",
            "spans": [
              [
                4170,
                0
              ]
            ]
          },
          {
            "id": "micro-behaviors/data/manipulation::numpy-array-operations--ndarray",
            "conf": 0.85,
            "crit": 1,
            "desc": "NumPy array operation (ndarray)",
            "spans": [
              [
                2354,
                0
              ]
            ]
          },
          {
            "id": "micro-behaviors/data/manipulation::numpy-array-operations--zeros",
            "conf": 0.85,
            "crit": 1,
            "desc": "NumPy array operation (zeros)",
            "spans": [
              [
                5357,
                0
              ]
            ]
          },
          {
            "id": "micro-behaviors/data/manipulation::numpy-import",
            "conf": 0.9,
            "crit": 3,
            "desc": "Imports the NumPy array library",
            "spans": [
              [
                7,
                5
              ]
            ]
          },
          {
            "id": "micro-behaviors/data/manipulation::numpy-array-operations",
            "conf": 0.85,
            "crit": 3,
            "desc": "Dense NumPy array construction and reduction",
            "uses": [
              0,
              1,
              2
            ],
            "spans": [
              [
                2354,
                10
              ],
              [
                4170,
                8
              ],
              [
                5357,
                8
              ]
            ]
          },
          {
            "id": "micro-behaviors/data/manipulation::numeric-computation-library",
            "conf": 0.95,
            "crit": 3,
            "desc": "Module built on the numeric Python stack",
            "uses": [
              3,
              4
            ],
            "spans": [
              [
                7,
                5
              ],
              [
                2354,
                10
              ],
              [
                4170,
                8
              ],
              [
                5357,
                8
              ]
            ]
          }
        ],
        "type": "python"
      },
      {
        "ctx": [
          {
            "b": "a%Firlm)m$y?W=#ay/LmC4z!gzGGDgAbPM3BzkVhaARpqz/]YaaAIHkv}/K?wN({5z!T9hB1N!bra]#!az(4cB.\u003eRix(d*9wO(0@BAnNoCWU97avmV3AbolawGUY8By/Giz!@\u003c7x(v(iCw7MdwGV8dwGUG9A=#1pAa9*ewPF#oxMw3lxj}SXy?$knAaJJ[w[+*!ay[]5vixJcx(n3le*abbwGUY8By/Giz!@\u003c7x(v(iv@DmaBAhIlBAnNCzeTumxDQ/cA=#2naA}KwxDRnmwN/B}wEq{=zGG]qy-)UtwPw]6z/fVhzGPVnC{3Kkwftu1B-7.#A^n^qz/f91BzkVhB1N!za%Ev3w].*baywF/B-.+DwNw^!x(d*cA=-BjzF\u003cxmvruj4zGuc(x(d*cA=-BwB.#8yayPslzG2}{A=k!qB7n{6C}J]EzEEu]azCXiz/P}xB8L(rwEr3\u0026z/3RsD2NFnxcp]9AbP=saxhGumpezMmmfZtpdCS#x\u003ewF!sX}K]lR6Tkog.(GiTM#LarUxnAbP=saz\u003eLeAboDmy?WuhAcVzsz/^agB0bBrBp6ckarUopz/3RlAbn)6z/oDcx([zGze:rf",
            "ln": 0,
            "col": 1,
            "line": 1
          },
          {
            "b": "lq}\u0026tx(mGNzGGDgAbPM3Bz(gFlq}\u0026tx(mGhiTM#LarR\u003cLb0^trePU(Ex(mG8Bzb98azC.nwPz:dy*?A%B0a)lB7GCoz!pbhz!T9hB0bWvBz8!rAaJJ[w[+*!ay]4@A+e*6aA7\u003cmv@Dmbx(n6cBA]FC3lQDlaxi2*B0a$evrlGjx(mP}A+PSpazbUj",
            "ln": 765,
            "col": 7,
            "line": 32
          },
          {
            "b": "qzp9=gytlEarR^HarU-py?tj9arR^HarR^HwmYy]wO0[Bx(n2z3lQDlarR^HaAhmkzGG}Xaz++kBrC@NzG4jCwmoI0vr\u003cyharR^HarR^HBzkP6B2\u003eBWx(!wsD)0rCe]CidA=LPlaBCqbz/fbejS)HrzE\u003evaarR^HarR^Hx(mTbx\u003c\u003e*+C4CGdv}*4giV@lMB95KLaz#cJzE^f@A::koD(#g5zE\u003c}NawM\u0026)wH[fharR^HarR!sx(mu}uV{0%z^@",
            "ln": 1451,
            "col": 30,
            "line": 47
          },
          {
            "b": "z/M%}z/fbqaA8jvx(v($yZIpcarR^HarR^HarTS%wGV8ezdK\u00267zGx]dzGG}xw]zYjwNP7ZaAhmkzGEGNnOf8uz/fbqaA.:pB0bQyx\u003ezp7z6i[svpK1?xd:JlarR^HarR!vzFsibvqGp]wO=o{x([RyiV@lMB95KyAV/mxze:+MzE^f@A::koz/M%",
            "ln": 2140,
            "col": 39,
            "line": 66
          },
          {
            "b": "arR^Hx\u003ewG9z/^aoB7]JkByx5%wHIIox(n3lefF?He]CidA=LPldlm!UarR^HarR^HarR!Cz!T9hB09Q*zG4jpA=LPlc#:9szGG}Jay]OtAaIgIA4U:sz^^-Cg:@+sarR^HarR^HboPA)B9hImaAhmkzGG}xvrb{4gdhD(arR^HarR!vw/#5hx(n3le]Cilz6g#8atC[:arR^HarR^HarR^HboPD]AV^88aAhmkzGG}JaAz4mxKL\u003c\u003eaARJA",
            "ln": 3149,
            "col": 5,
            "line": 91
          },
          {
            "b": "wGUY0az#ataAhvtC4\u003eF#wc%C4arR^HarUxgaARsmwPF#dB0aj@zE\u003e\u003coarR^HarR^HarR^HBzkP6B09Q*zG4jpA:-\u0026#wHIwazyxExx(n3ldj=PLBA}?pj-ki\u003ew]8x]Bt+%83lQDlarR^Haz2w6w/$#fBrCpsx(n0lvqYN^d0ffuwPGyBzG4jCwmoI0vr\u003cp.3lQDlarR^HarR^HaARsmwPF$Saz#cJvrcx%C{)=GzdN=tay]OtAaIgIA4U:szV",
            "ln": 4064,
            "col": 30,
            "line": 112
          },
          {
            "b": "aA8dlC{40owN(]$BrCglAV!?1B7]Xrw{503BzkVhA%:3jarR^HarU=qze-\u0026(z/fVqz!@^1z!T9hB09Q*zG4jOwPzZgc[5[yzyxprz/*4Hat1ZDwOl3{wGSMEf!sC4djCPDarR^HarR!FwO+%hBy/rduVQg5x(mG8jS)6\u0026AbolawHI82xl4M{efF.Cz/*4KaARgiA9)9[zGG]qy*Rd1x(n3ldgcz8arR^HarR^Kavy6:Aclnlay/tcBAhqo",
            "ln": 4885,
            "col": 46,
            "line": 131
          },
          {
            "b": "wn(E3zGG}xvR6U9wO2:4x(n37A=t@kvruj4zxJ[px(n3l3lQDlarR^HarR^HazbLjazz%jzxJ$dzF9JezyEQNarR^HarR^HarR^HarR^HyI[6jB6APad\u003ccL?d\u003ceLiauZ?}BzkP6B6Au:as!NRx(dB5twkigatEdJatj\u0026)e?^RtarR^HarR^HarR^HboP]@Bry",
            "ln": 7082,
            "col": 39,
            "line": 190
          },
          {
            "b": "arR^Hw*fY.AV![7xl4M{aBvTgxl4M{Eip\u003cdB8U@fzE)(uaBd)FaAIjmB.\u003eOhxKM6}ayPvmy?m3@Brz+marR^HarR^HarR^HarR^Hw*hOxwN/T}zdNP}wN]d!z!T9hBa2fIz!T9hB08UlarR^HarR^HarR^HdgdguarR^HarR^HarUloA=k#9zf6tj",
            "ln": 16089,
            "col": 13,
            "line": 412
          }
        ],
        "depth": 1,
        "facts": {
          "imp": [
            [
              "",
              "ValueError"
            ],
            [
              "",
              "isinstance"
            ],
            [
              "",
              "np.array"
            ],
            [
              "",
              "points.reshape"
            ],
            [
              "",
              "len"
            ],
            [
              "",
              "ValueError"
            ],
            [
              "",
              "np.arange"
            ],
            [
              "",
              "len"
            ],
            [
              "",
              "isinstance"
            ],
            [
              "",
              "np.array"
            ],
            [
              "",
              "points.copy"
            ],
            [
              "",
              "self._create_knot_vector"
            ],
            [
              "",
              "np.zeros"
            ],
            [
              "",
              "len"
            ],
            [
              "",
              "BSpline"
            ],
            [
              "",
              "self._compute_control_points"
            ],
            [
              "",
              "super().__init__"
            ],
            [
              "",
              "super"
            ],
            [
              "",
              "len"
            ],
            [
              "",
              "np.zeros"
            ],
            [
              "",
              "np.zeros"
            ],
            [
              "",
              "range"
            ],
            [
              "",
              "len"
            ],
            [
              "",
              "np.zeros"
            ],
            [
              "",
              "np.zeros"
            ],
            [
              "",
              "range"
            ],
            [
              "",
              "self.temp_spline.find_knot_span"
            ],
            [
              "",
              "self.temp_spline.basis_functions"
            ],
            [
              "",
              "range"
            ],
            [
              "",
              "range"
            ],
            [
              "",
              "self.temp_spline.find_knot_span"
            ],
            [
              "",
              "self.temp_spline.find_knot_span"
            ],
            [
              "",
              "self.temp_spline.basis_function_derivatives"
            ],
            [
              "",
              "self.temp_spline.basis_function_derivatives"
            ],
            [
              "",
              "range"
            ],
            [
              "",
              "self.temp_spline.find_knot_span"
            ],
            [
              "",
              "self.temp_spline.basis_function_derivatives"
            ],
            [
              "",
              "range"
            ],
            [
              "",
              "self.temp_spline.find_knot_span"
            ],
            [
              "",
              "self.temp_spline.basis_function_derivatives"
            ],
            [
              "",
              "range"
            ],
            [
              "",
              "self.temp_spline.find_knot_span"
            ],
            [
              "",
              "self.temp_spline.basis_function_derivatives"
            ],
            [
              "",
              "range"
            ],
            [
              "",
              "self.temp_spline.find_knot_span"
            ],
            [
              "",
              "self.temp_spline.basis_function_derivatives"
            ],
            [
              "",
              "range"
            ],
            [
              "",
              "range"
            ],
            [
              "",
              "self.temp_spline.find_knot_span"
            ],
            [
              "",
              "self.temp_spline.basis_function_derivatives"
            ],
            [
              "",
              "range"
            ],
            [
              "",
              "np.linalg.matrix_rank"
            ],
            [
              "",
              "min"
            ],
            [
              "",
              "ValueError"
            ],
            [
              "",
              "np.linalg.cond"
            ],
            [
              "",
              "print"
            ],
            [
              "",
              "print"
            ],
            [
              "",
              "print"
            ],
            [
              "",
              "np.eye"
            ],
            [
              "",
              "print"
            ],
            [
              "",
              "np.zeros"
            ],
            [
              "",
              "range"
            ],
            [
              "",
              "solve"
            ],
            [
              "",
              "len"
            ],
            [
              "",
              "ValueError"
            ],
            [
              "",
              "ValueError"
            ],
            [
              "",
              "self.plot_2d"
            ],
            [
              "",
              "ax.plot"
            ],
            [
              "",
              "len"
            ],
            [
              "",
              "enumerate"
            ],
            [
              "",
              "ax.text"
            ],
            [
              "",
              "ax.legend"
            ],
            [
              "",
              "ValueError"
            ],
            [
              "",
              "self.plot_3d"
            ],
            [
              "",
              "ax.scatter"
            ],
            [
              "",
              "len"
            ],
            [
              "",
              "enumerate"
            ],
            [
              "",
              "ax.text"
            ],
            [
              "",
              "ax.legend"
            ],
            [
              "",
              "Axes3D"
            ],
            [
              "",
              "BSpline"
            ],
            [
              "",
              "TYPE_CHECKING"
            ],
            [
              "",
              "interpolatepy.b_spline"
            ],
            [
              "",
              "matplotlib.pyplot"
            ],
            [
              "",
              "mpl_toolkits.mplot3d"
            ],
            [
              "",
              "numpy"
            ],
            [
              "",
              "scipy.linalg"
            ],
            [
              "",
              "solve"
            ],
            [
              "",
              "typing"
            ]
          ],
          "mbr": [
            "a_matrix.shape",
            "ax.legend",
            "ax.plot",
            "ax.scatter",
            "ax.text",
            "np.arange",
            "np.array",
            "np.eye",
            "np.float64",
            "np.linalg",
            "np.linalg.LinAlgError",
            "np.linalg.cond",
            "np.linalg.matrix_rank",
            "np.ndarray",
            "np.zeros",
            "plt.Axes",
            "points.copy",
            "points.ndim",
            "points.reshape",
            "points.shape",
            "self._compute_control_points",
            "self._create_knot_vector",
            "self.cyclic",
            "self.final_acceleration",
            "self.final_velocity",
            "self.initial_acceleration",
            "self.initial_velocity",
            "self.interp_points",
            "self.interp_points.shape",
            "self.plot_2d",
            "self.plot_3d",
            "self.temp_spline",
            "self.temp_spline.basis_function_derivatives",
            "self.temp_spline.basis_functions",
            "self.temp_spline.find_knot_span",
            "self.times",
            "super().__init__"
          ],
          "tgt": [
            "BSpline",
            "ValueError",
            "ax.legend",
            "ax.plot",
            "ax.scatter",
            "ax.text",
            "enumerate",
            "isinstance",
            "len",
            "min",
            "np.arange",
            "np.array",
            "np.eye",
            "np.linalg.cond",
            "np.linalg.matrix_rank",
            "np.zeros",
            "points.copy",
            "points.reshape",
            "print",
            "range",
            "self._compute_control_points",
            "self._create_knot_vector",
            "self.plot_2d",
            "self.plot_3d",
            "self.temp_spline.basis_function_derivatives",
            "self.temp_spline.basis_functions",
            "self.temp_spline.find_knot_span",
            "solve",
            "super",
            "super().__init__"
          ],
          "funcs": [
            [
              "__init__",
              1426
            ],
            [
              "_create_knot_vector",
              5343
            ],
            [
              "_compute_control_points",
              7327
            ],
            [
              "plot_with_points",
              17111
            ],
            [
              "plot_with_points_3d",
              18728
            ]
          ],
          "metrics": {
            "ast": {
              "op.add": 70,
              "op.bor": 13,
              "op.div": 1,
              "op.lor": 3,
              "op.mod": 3,
              "op.mul": 3,
              "op.sub": 25,
              "op.land": 4,
              "max_depth": 18,
              "call_count": 79,
              "node_count": 3343,
              "member_count": 37,
              "max_array_len": 3,
              "op_density.add": 0.02,
              "op_density.bor": 0,
              "op_density.div": 0,
              "op_density.lor": 0,
              "op_density.mod": 0,
              "op_density.mul": 0,
              "op_density.sub": 0.01,
              "op_density.land": 0,
              "max_concat_chain": 4,
              "member_depth_max": 3,
              "max_numeric_array": 2
            },
            "file": {
              "size": 20355,
              "entropy": 4.3
            },
            "text": {
              "lines": 538,
              "top_char": 101,
              "max_ws_run": 18,
              "digit_ratio": 0.02,
              "space_count": 6674,
              "char_entropy": 4.3,
              "unique_chars": 92,
              "top_char_null": 0,
              "string_density": 0.07,
              "top_char_ratio": 0.05,
              "avg_line_length": 36.83,
              "max_line_length": 100,
              "non_ascii_ratio": 0,
              "empty_line_ratio": 0.19,
              "last_line_length": 17,
              "whitespace_ratio": 0.35,
              "identifier_density": 1.43,
              "line_length_stddev": 26.62,
              "normalized_string_count": 1.68,
              "repeated_char_sequences": 233,
              "suspicious_string_ratio": 0.23,
              "suspicious_identifier_ratio": 0.1,
              "normalized_unique_identifiers": 14.22
            },
            "binds": {
              "count": 93
            },
            "binary": {
              "peak_region_bytes": 1024,
              "peak_region_entropy": 5.09
            },
            "source": {
              "class_count": 1,
              "function_count": 5
            },
            "imports": {
              "count": 10,
              "aliased": 2,
              "stdlib_count": 1,
              "stdlib_ratio": 0.1,
              "third_party_count": 9,
              "third_party_ratio": 0.9
            },
            "strings": {
              "sql": 7,
              "bytes": 5779,
              "count": 39,
              "very_long": 1,
              "avg_length": 148.18,
              "max_length": 1093,
              "avg_entropy": 3.77,
              "entropy_stddev": 0.85,
              "embedded_code_candidates": 2
            },
            "comments": {
              "chars": 2900,
              "count": 69,
              "lines": 69,
              "to_code_ratio": 0.15
            },
            "functions": {
              "count": 6,
              "density": 0.93,
              "avg_params": 5,
              "code_ratio": 0.91,
              "max_params": 10,
              "length_stddev": 72.63,
              "over_100_lines": 1,
              "avg_name_length": 17,
              "avg_length_lines": 97.4,
              "max_length_lines": 239,
              "min_length_lines": 49,
              "many_params_count": 1,
              "high_entropy_names": 1,
              "avg_param_name_length": 8.8
            },
            "identifiers": {
              "count": 768,
              "unique": 129,
              "avg_length": 8.15,
              "max_length": 26,
              "min_length": 1,
              "avg_entropy": 2.31,
              "reuse_ratio": 0.17,
              "length_stddev": 5.67,
              "has_digit_ratio": 0.08,
              "sequential_names": 13,
              "single_char_count": 12,
              "single_char_ratio": 0.09,
              "high_entropy_count": 7,
              "high_entropy_ratio": 0.05,
              "all_lowercase_ratio": 0.81,
              "all_uppercase_ratio": 0.08,
              "numeric_suffix_count": 5,
              "double_underscore_count": 1,
              "underscore_prefix_count": 3
            }
          }
        },
        "id": 7,
        "mol": "H(Db)",
        "path": "interpolatepy-3.2.2-py3-none-any.whl!!interpolatepy/b_spline_interpolate.py",
        "pid": 0,
        "risk": 1,
        "sha": "1dfc70c7513bd2c891b8eb909361190725a70c49561e6647f4d22322aa87532d",
        "size": 20355,
        "traits": [
          {
            "id": "micro-behaviors/data/manipulation::numpy-array-operations--arange",
            "conf": 0.85,
            "crit": 1,
            "desc": "NumPy array operation (arange)",
            "spans": [
              [
                4128,
                0
              ]
            ]
          },
          {
            "id": "micro-behaviors/data/manipulation::numpy-array-operations--array",
            "conf": 0.85,
            "crit": 1,
            "desc": "NumPy array operation (array)",
            "spans": [
              [
                3213,
                0
              ]
            ]
          },
          {
            "id": "micro-behaviors/data/manipulation::numpy-array-operations--ndarray",
            "conf": 0.85,
            "crit": 1,
            "desc": "NumPy array operation (ndarray)",
            "spans": [
              [
                1515,
                0
              ]
            ]
          },
          {
            "id": "micro-behaviors/data/manipulation::numpy-array-operations--zeros",
            "conf": 0.85,
            "crit": 1,
            "desc": "NumPy array operation (zeros)",
            "spans": [
              [
                4949,
                0
              ]
            ]
          },
          {
            "id": "micro-behaviors/data/manipulation::numpy-import",
            "conf": 0.9,
            "crit": 3,
            "desc": "Imports the NumPy array library",
            "spans": [
              [
                323,
                5
              ]
            ]
          },
          {
            "id": "micro-behaviors/data/manipulation::scipy-import",
            "conf": 0.9,
            "crit": 3,
            "desc": "Imports a SciPy scientific module",
            "spans": [
              [
                340,
                12
              ]
            ]
          },
          {
            "id": "micro-behaviors/data/manipulation::numpy-array-operations",
            "conf": 0.85,
            "crit": 3,
            "desc": "Dense NumPy array construction and reduction",
            "uses": [
              0,
              1,
              2,
              3
            ],
            "spans": [
              [
                1515,
                10
              ],
              [
                3213,
                8
              ],
              [
                4128,
                9
              ],
              [
                4949,
                8
              ]
            ]
          },
          {
            "id": "micro-behaviors/data/manipulation::numeric-computation-library",
            "conf": 0.95,
            "crit": 3,
            "desc": "Module built on the numeric Python stack",
            "uses": [
              4,
              5,
              6
            ],
            "spans": [
              [
                323,
                5
              ],
              [
                340,
                12
              ],
              [
                1515,
                10
              ],
              [
                3213,
                8
              ],
              [
                4128,
                9
              ],
              [
                4949,
                8
              ]
            ]
          }
        ],
        "type": "python"
      },
      {
        "id": 8,
        "mol": "H(Db)",
        "sha": "0466dcd8c0ff955ae2ebac0c773ccf95696f45c94bf85195e8e5f40d1a8e3134",
        "path": "interpolatepy-3.2.2-py3-none-any.whl!!interpolatepy/b_spline_smooth.py",
        "risk": 1,
        "size": 24499,
        "type": "python",
        "depth": 1
      },
      {
        "id": 9,
        "mol": "H(Db)",
        "sha": "d4bbe8578f021e09cdcdc680ba3f79a285e619f015e57e0918ad3b31cd56f607",
        "path": "interpolatepy-3.2.2-py3-none-any.whl!!interpolatepy/c_s_smoot_search.py",
        "risk": 1,
        "size": 7210,
        "type": "python",
        "depth": 1
      },
      {
        "id": 10,
        "mol": "H(Db)",
        "sha": "756f28a33b4597c721f6cf54d17e7c76d87e401b428f79cd29eb76d55e4ac97b",
        "path": "interpolatepy-3.2.2-py3-none-any.whl!!interpolatepy/c_s_smoothing.py",
        "risk": 1,
        "size": 22344,
        "type": "python",
        "depth": 1
      },
      {
        "id": 11,
        "mol": "H(Db)",
        "sha": "16fa57dc87b04700a50c256e857831a0cba71858d959507e56bcd6e8a3228343",
        "path": "interpolatepy-3.2.2-py3-none-any.whl!!interpolatepy/c_s_with_acc1.py",
        "risk": 1,
        "size": 22509,
        "type": "python",
        "depth": 1
      },
      {
        "id": 12,
        "mol": "H(Db)",
        "sha": "c410619b1ea8db6fc7054ecf85cdb3fdf4e631ece77fa5fbc2a172fd6ec29f41",
        "path": "interpolatepy-3.2.2-py3-none-any.whl!!interpolatepy/c_s_with_acc2.py",
        "risk": 1,
        "size": 18428,
        "type": "python",
        "depth": 1
      },
      {
        "id": 13,
        "mol": "H(Db)",
        "sha": "50c8a6622af8851e71b66287f4f533ecc8297f93d12377d5d21925e4b8c2408e",
        "path": "interpolatepy-3.2.2-py3-none-any.whl!!interpolatepy/cubic_spline.py",
        "risk": 1,
        "size": 16674,
        "type": "python",
        "depth": 1
      },
      {
        "id": 14,
        "mol": "H(Db)",
        "sha": "96fc56a9f9bd267fc69acb0635aa64a43cc6caa15e473e7289f00c1fa99cfb77",
        "path": "interpolatepy-3.2.2-py3-none-any.whl!!interpolatepy/double_s.py",
        "risk": 1,
        "size": 23627,
        "type": "python",
        "depth": 1
      },
      {
        "id": 15,
        "mol": "H(Db)",
        "sha": "20978c1364b45dab9e3ff1e4302dfa3582bb443b83ba6af029ea170b66f31724",
        "path": "interpolatepy-3.2.2-py3-none-any.whl!!interpolatepy/frenet_frame.py",
        "risk": 1,
        "size": 8003,
        "type": "python",
        "depth": 1
      },
      {
        "id": 16,
        "mol": "H(Db)",
        "sha": "8dba0b6ede083437318b9804c0886381bd4f96564a56b9ad3946229f22a3519f",
        "path": "interpolatepy-3.2.2-py3-none-any.whl!!interpolatepy/lin_poly_parabolic.py",
        "risk": 1,
        "size": 7820,
        "type": "python",
        "depth": 1
      },
      {
        "id": 17,
        "mol": "H(Db)",
        "sha": "37e45fcbc9f8f98dba2dff8fffedcf0c0a935b64ca9b8c1c3ff822b9d53911b3",
        "path": "interpolatepy-3.2.2-py3-none-any.whl!!interpolatepy/linear.py",
        "risk": 1,
        "size": 3948,
        "type": "python",
        "depth": 1
      },
      {
        "id": 18,
        "mol": "H(Db)",
        "sha": "507ff44fb8f749addad31f857f17c45bf50f29423fa0e36b9b6972f3874135cc",
        "path": "interpolatepy-3.2.2-py3-none-any.whl!!interpolatepy/log_quat.py",
        "risk": 1,
        "size": 18706,
        "type": "python",
        "depth": 1
      },
      {
        "id": 19,
        "mol": "H(Db)",
        "sha": "34f102683f35d745612fa978d1d9366ecf07da44cf0ccdc1daf1999e3c7ead25",
        "path": "interpolatepy-3.2.2-py3-none-any.whl!!interpolatepy/polynomials.py",
        "risk": 1,
        "size": 21623,
        "type": "python",
        "depth": 1
      },
      {
        "id": 20,
        "mol": "H(Db)",
        "sha": "4489b8834e5a84d57722ce898606ea82a852cde1c2e0312b1bc9ddf0e4ca2d9a",
        "path": "interpolatepy-3.2.2-py3-none-any.whl!!interpolatepy/protocols.py",
        "risk": 1,
        "size": 3790,
        "type": "python",
        "depth": 1
      },
      {
        "id": 21,
        "mol": "H(Db)",
        "sha": "fecc66611efca99a22d401ca6e1ce20180a956b030e49176f8b01bbda2340a17",
        "path": "interpolatepy-3.2.2-py3-none-any.whl!!interpolatepy/quat_core.py",
        "risk": 1,
        "size": 22896,
        "type": "python",
        "depth": 1
      },
      {
        "id": 22,
        "mol": "H(Db)",
        "sha": "754d1b52c885b24191240dd27ddc3c6e140f86be6ffe9c0e9b11e3dd9816989c",
        "path": "interpolatepy-3.2.2-py3-none-any.whl!!interpolatepy/quat_spline.py",
        "risk": 1,
        "size": 16879,
        "type": "python",
        "depth": 1
      },
      {
        "id": 23,
        "mol": "H(Db)",
        "sha": "d97c12de4aecfa2c575034ff3a521d8809498097705355e43fa6397428857ef7",
        "path": "interpolatepy-3.2.2-py3-none-any.whl!!interpolatepy/quat_visualization.py",
        "risk": 1,
        "size": 20653,
        "type": "python",
        "depth": 1
      },
      {
        "id": 24,
        "mol": "H(Db)",
        "sha": "2f52d84f49e36957da4778561ba33e7f5b7084d965bb4c4c5916a3446661c78a",
        "path": "interpolatepy-3.2.2-py3-none-any.whl!!interpolatepy/simple_paths.py",
        "risk": 1,
        "size": 13676,
        "type": "python",
        "depth": 1
      },
      {
        "id": 25,
        "mol": "H(Db)",
        "sha": "da63fdeab7c483aa2ebbcb2b576a170febf519290ee0503aa34a6cd52d83dd37",
        "path": "interpolatepy-3.2.2-py3-none-any.whl!!interpolatepy/squad_c2.py",
        "risk": 1,
        "size": 22401,
        "type": "python",
        "depth": 1
      },
      {
        "id": 26,
        "mol": "H(Db)",
        "sha": "e20dcb7795c120eb45ee01c732062b5fed2763c07e3cfbc776f61e5e6294a670",
        "path": "interpolatepy-3.2.2-py3-none-any.whl!!interpolatepy/trapezoidal.py",
        "risk": 1,
        "size": 24386,
        "type": "python",
        "depth": 1
      },
      {
        "id": 27,
        "mol": "H(Db)",
        "sha": "985c5620eefadd68b508820b0673c296d58186a89ac5a6cf1d4579c164793c7c",
        "path": "interpolatepy-3.2.2-py3-none-any.whl!!interpolatepy/tridiagonal_inv.py",
        "risk": 1,
        "size": 3349,
        "type": "python",
        "depth": 1
      },
      {
        "id": 30,
        "mol": "H(Db)",
        "sha": "861797108a9b27b5c7b9691568ce3cd23004d6a98e1cf5196563991d79a7a026",
        "path": "interpolatepy-3.2.2-py3-none-any.whl!!interpolatepy/_adapters/_bspline.py",
        "risk": 1,
        "size": 7817,
        "type": "python",
        "depth": 1
      },
      {
        "id": 32,
        "mol": "H(Db)",
        "sha": "eb8e34642688d30c29ad0a18e60d4410b12e3762ceb80298bab295bca66a3c36",
        "path": "interpolatepy-3.2.2-py3-none-any.whl!!interpolatepy/_adapters/_motion.py",
        "risk": 1,
        "size": 19254,
        "type": "python",
        "depth": 1
      },
      {
        "id": 33,
        "mol": "H(Db)",
        "sha": "c7902af8e5f45ea031b11fbf09d87c4d7e37a40b142fa2d97fced75688cc6f36",
        "path": "interpolatepy-3.2.2-py3-none-any.whl!!interpolatepy/_adapters/_paths.py",
        "risk": 1,
        "size": 4287,
        "type": "python",
        "depth": 1
      },
      {
        "id": 34,
        "mol": "H(Db)",
        "sha": "9372e98ac74c544da8232ee356833b448d7aee67fcccb98de5799c3593cb9119",
        "path": "interpolatepy-3.2.2-py3-none-any.whl!!interpolatepy/_adapters/_quaternion.py",
        "risk": 1,
        "size": 12447,
        "type": "python",
        "depth": 1
      },
      {
        "id": 35,
        "mol": "H(Db)",
        "sha": "4ef6f1694ab3400a3232482e8b0fe36e312c43a18d8a75cbe7c5ca7b7759baf5",
        "path": "interpolatepy-3.2.2-py3-none-any.whl!!interpolatepy/_adapters/_spline.py",
        "risk": 1,
        "size": 3225,
        "type": "python",
        "depth": 1
      },
      {
        "id": 39,
        "mol": "Md(Re)",
        "sha": "5aecf0c8f16b0a48eb8d2514aa00366adaa769bf13d80b192588520a30b1bbe2",
        "path": "interpolatepy@3.2.2.registry.json",
        "risk": 1,
        "size": 907,
        "type": "registry",
        "depth": 1
      }
    ],
    "omitted_files": 26,
    "rev": "479f3",
    "v": "8"
  }
}