{
  "ml": {
    "v": "7",
    "eng": "2.8.0",
    "lvl": -1,
    "conf": 0,
    "mods": [
      {
        "cls": 0,
        "raw": 0.0003405412,
        "rte": "az",
        "prob": 0.0003405412
      },
      {
        "cls": 0,
        "raw": 0.0008268257,
        "rte": "az/whl",
        "prob": 0.0008268257
      }
    ],
    "prob": 0.0003405412,
    "files": [
      {
        "id": 0,
        "lvl": -1,
        "conf": 0,
        "prob": 0.0003405412135180086,
        "type": "whl"
      },
      {
        "id": 1,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000011165936484758276,
        "type": "python"
      },
      {
        "id": 2,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000011434157386247534,
        "type": "python"
      },
      {
        "id": 14,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000017583370208740234,
        "type": "python"
      },
      {
        "id": 16,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000018715858459472656,
        "type": "python"
      },
      {
        "id": 19,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000015695890397182666,
        "type": "registry"
      }
    ],
    "version": "v18.18",
    "analyzed_at": "2026-09-08T00:16:14Z"
  },
  "path": "pyspark_contracts-0.8.0-py3-none-any.whl",
  "raw": {
    "files": [
      {
        "id": 0,
        "ctx": [
          {
            "b": "p!H([6Awak2MK\u00268lqU?-ZAIed003{s0012t003$-B8UMdyHpN\u0026zGG]cv@#=BuTEI+x()Y?e]V8:L1=q3ap%n3O\u003cGZ)Q04t+(DYGm\u003e+:OgJ3h8.K\u003cK\u003e?}=TUq3%lOWK2J?L6Yt$ix=EfGJ-RYZ*IwvVi(lE5M:qn+aAv30Q\u003c0o?",
            "ln": 0
          }
        ],
        "mol": "H₂(DbOs)",
        "sha": "bdd3a71741d88cc1fe38f7386998ce0eebe025e9736ec32bca15587fccce1cb3",
        "path": "pyspark_contracts-0.8.0-py3-none-any.whl",
        "risk": 3,
        "size": 24213,
        "type": "whl",
        "facts": {
          "metrics": {
            "whl": {
              "native_extension_count": 0
            },
            "file": {
              "size": 24213,
              "entropy": 7.9
            },
            "binary": {
              "peak_region_bytes": 22528,
              "peak_region_entropy": 7.85
            },
            "archive": {
              "file_count": 20,
              "member_count": 20,
              "script_count": 16,
              "zip_bomb_ratio": 8.26,
              "compressed_size": 21333,
              "directory_count": 0,
              "executable_count": 0,
              "extra_field_size": 0,
              "noise_file_count": 0,
              "compression.ratio": 0.31,
              "hidden_file_count": 0,
              "uncompressed_size": 68167,
              "crc_collision_count": 0,
              "entry_comment_count": 0,
              "max_filename_length": 50,
              "rtlo_filename_count": 0,
              "format.regular_count": 20,
              "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": 1,
              "timing.mtime_unique_ratio": 0.05,
              "misplaced_executable_count": 0,
              "timing.mtime_dominant_count": 20,
              "timing.mtime_spread_seconds": 0,
              "timing.sentinel_mtime_count": 0,
              "security.world_writable_count": 0,
              "timing.mtime_dominant_fraction": 1,
              "compression.method_counts.deflate": 20
            },
            "consistency": {
              "cloned_summary": 0,
              "name_typosquat": 0,
              "self_dependency": 0,
              "metadata_identity_mismatch": 0
            }
          }
        },
        "ident": {
          "name": {
            "value": "pyspark_contracts",
            "source": "whl.distribution",
            "verified": false
          },
          "trust": "unsigned",
          "emails": [
            "vp.vinicius.pereira@gmail.com"
          ],
          "authors": [
            {
              "name": "Vinicius Pereira",
              "role": "author",
              "email": "vp.vinicius.pereira@gmail.com",
              "source": "whl.author"
            }
          ],
          "version": {
            "value": "0.8.0",
            "source": "whl.version",
            "verified": false
          }
        },
        "traits": [
          {
            "id": "metadata/package/manifest/ecosystem::pkginfo-requires-python",
            "conf": 0.9,
            "crit": 1,
            "desc": "Declares supported Python versions",
            "from": [
              {
                "file": 17
              }
            ]
          },
          {
            "id": "metadata/package/manifest/ecosystem::pypi-basic-metadata",
            "conf": 0.95,
            "crit": 2,
            "desc": "PyPI package declares name, version, summary",
            "from": [
              {
                "off": 46,
                "file": 17,
                "line": 3
              }
            ],
            "uses": [
              5,
              9,
              11,
              12
            ]
          },
          {
            "id": "metadata/package/manifest/ecosystem::pypi-license-metadata",
            "conf": 0.94,
            "crit": 2,
            "desc": "PyPI package declares license information",
            "from": [
              {
                "file": 17
              }
            ],
            "uses": [
              3,
              12
            ]
          },
          {
            "id": "metadata/package/manifest/ecosystem::pkginfo-license-file",
            "conf": 0.9,
            "crit": 1,
            "desc": "Declares Python package license file",
            "from": [
              {
                "file": 17
              }
            ]
          },
          {
            "id": "micro-behaviors/os/env/vars/access::python-os-getenv-call",
            "conf": 0.92,
            "crit": 3,
            "desc": "Python reads an environment variable",
            "from": [
              {
                "file": 16
              }
            ]
          },
          {
            "id": "metadata/package/manifest/ecosystem::pkginfo-name-field",
            "conf": 0.9,
            "crit": 1,
            "desc": "Declares Python package name",
            "from": [
              {
                "file": 17
              }
            ]
          },
          {
            "id": "micro-behaviors/data/serialize/json::json-loads-call",
            "conf": 0.9,
            "crit": 3,
            "desc": "Parses JSON data with Python",
            "from": [
              {
                "file": 14
              }
            ]
          },
          {
            "id": "metadata/package/manifest/ecosystem::pkginfo-requires-dist",
            "conf": 0.9,
            "crit": 1,
            "desc": "Declares Python runtime dependencies",
            "from": [
              {
                "file": 17
              }
            ]
          },
          {
            "id": "metadata/package/manifest/ecosystem::pkginfo-markdown-description",
            "conf": 0.9,
            "crit": 1,
            "desc": "Declares Markdown package description",
            "from": [
              {
                "file": 17
              }
            ]
          },
          {
            "id": "metadata/package/manifest/ecosystem::pkginfo-summary-field",
            "conf": 0.9,
            "crit": 1,
            "desc": "Declares Python package summary",
            "from": [
              {
                "file": 17
              }
            ]
          },
          {
            "id": "metadata/package/manifest/ecosystem::pypi-runtime-metadata",
            "conf": 0.94,
            "crit": 2,
            "desc": "PyPI package declares Python and dependencies",
            "from": [
              {
                "off": 13572,
                "file": 17,
                "line": 217
              }
            ],
            "uses": [
              0,
              7,
              12
            ]
          },
          {
            "id": "metadata/package/manifest/ecosystem::pkginfo-version-field",
            "conf": 0.9,
            "crit": 1,
            "desc": "Declares Python package version",
            "from": [
              {
                "file": 17
              }
            ]
          },
          {
            "id": "metadata/package/manifest/ecosystem::pkginfo-core-metadata",
            "conf": 1.0,
            "crit": 1,
            "desc": "Declares Python Core Metadata version",
            "from": [
              {
                "file": 17
              }
            ]
          }
        ]
      },
      {
        "depth": 1,
        "facts": {
          "imp": [
            [
              "",
              "Contract"
            ],
            [
              "",
              "ContractSchema"
            ],
            [
              "",
              "ContractViolationError"
            ],
            [
              "",
              "Field"
            ],
            [
              "",
              "ValidationDepth"
            ],
            [
              "",
              "ViolationReport"
            ],
            [
              "",
              "check"
            ],
            [
              "",
              "check_input"
            ],
            [
              "",
              "check_output"
            ],
            [
              "",
              "pyspark_contracts._check"
            ],
            [
              "",
              "pyspark_contracts._contract"
            ],
            [
              "",
              "pyspark_contracts._decorators"
            ],
            [
              "",
              "pyspark_contracts._depth"
            ],
            [
              "",
              "pyspark_contracts._field"
            ],
            [
              "",
              "pyspark_contracts._report"
            ],
            [
              "",
              "pyspark_contracts._schema"
            ]
          ],
          "metrics": {
            "ast": {
              "max_depth": 5,
              "call_count": 0,
              "node_count": 135,
              "max_array_len": 10
            },
            "file": {
              "size": 623,
              "entropy": 4.53
            },
            "text": {
              "lines": 22,
              "top_char": 116,
              "max_ws_run": 1,
              "digit_ratio": 0.01,
              "space_count": 67,
              "char_entropy": 4.53,
              "unique_chars": 37,
              "top_char_null": 0,
              "string_density": 0.5,
              "top_char_ratio": 0.09,
              "avg_line_length": 27.32,
              "max_line_length": 77,
              "empty_line_ratio": 0.09,
              "last_line_length": 1,
              "whitespace_ratio": 0.14,
              "identifier_density": 1.14,
              "line_length_stddev": 20.86,
              "normalized_string_count": 2.35,
              "normalized_unique_identifiers": 4.26
            },
            "binds": {
              "count": 2
            },
            "binary": {
              "peak_region_bytes": 623,
              "peak_region_entropy": 4.53
            },
            "imports": {
              "count": 16,
              "third_party_count": 16,
              "third_party_ratio": 1
            },
            "strings": {
              "bytes": 123,
              "count": 11,
              "avg_length": 11.18,
              "max_length": 22,
              "avg_entropy": 2.82,
              "entropy_stddev": 0.62
            },
            "identifiers": {
              "count": 25,
              "unique": 19,
              "avg_length": 10.21,
              "max_length": 22,
              "min_length": 5,
              "avg_entropy": 2.78,
              "reuse_ratio": 0.76,
              "length_stddev": 4.56,
              "high_entropy_count": 1,
              "high_entropy_ratio": 0.05,
              "all_lowercase_ratio": 0.68,
              "double_underscore_count": 2,
              "underscore_prefix_count": 9
            }
          }
        },
        "id": 1,
        "path": "pyspark_contracts-0.8.0-py3-none-any.whl!!pyspark_contracts/__init__.py",
        "pid": 0,
        "risk": 1,
        "sha": "093042aa5a5ef1d7e2e2e8075d5abb460ed4c088bd4b5c64a7b40258af65beca",
        "size": 623,
        "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/extension/identity::python-artifact-extension",
            "conf": 1.0,
            "crit": 1,
            "desc": "Python source, stub, or bytecode extension",
            "spans": [
              [
                0,
                0
              ]
            ]
          },
          {
            "id": "metadata/file/profile/identity::py-many-underscore-prefix-identifiers",
            "conf": 0.7,
            "crit": 2,
            "desc": "Python has many underscore-prefixed identifiers",
            "spans": [
              [
                0,
                0
              ]
            ]
          }
        ],
        "type": "python"
      },
      {
        "depth": 1,
        "facts": {
          "imp": [
            [
              "",
              "Callable"
            ],
            [
              "",
              "collections.abc"
            ]
          ],
          "mbr": [
            "func._check_description"
          ],
          "funcs": [
            [
              "check",
              39
            ],
            [
              "decorator",
              106
            ]
          ],
          "metrics": {
            "ast": {
              "max_depth": 8,
              "call_count": 0,
              "node_count": 68,
              "member_count": 1,
              "max_array_len": 1,
              "member_depth_max": 2
            },
            "file": {
              "size": 237,
              "entropy": 4.39
            },
            "text": {
              "lines": 9,
              "top_char": 108,
              "max_ws_run": 1,
              "space_count": 40,
              "char_entropy": 4.39,
              "unique_chars": 32,
              "top_char_null": 0,
              "top_char_ratio": 0.08,
              "avg_line_length": 25.33,
              "max_line_length": 62,
              "empty_line_ratio": 0.33,
              "last_line_length": 20,
              "whitespace_ratio": 0.21,
              "identifier_density": 2,
              "line_length_stddev": 21.77,
              "normalized_unique_identifiers": 2.84
            },
            "binds": {
              "count": 1
            },
            "binary": {
              "peak_region_bytes": 237,
              "peak_region_entropy": 4.39
            },
            "source": {
              "function_count": 2
            },
            "imports": {
              "count": 2,
              "stdlib_count": 1,
              "stdlib_ratio": 0.5,
              "third_party_count": 1,
              "third_party_ratio": 0.5
            },
            "functions": {
              "count": 2,
              "nested": 1,
              "density": 22.22,
              "avg_params": 1,
              "code_ratio": 1,
              "max_params": 1,
              "length_stddev": 1.5,
              "avg_name_length": 7,
              "avg_length_lines": 4.5,
              "max_length_lines": 6,
              "min_length_lines": 3,
              "avg_nesting_depth": 0.5,
              "max_nesting_depth": 1,
              "avg_param_name_length": 7.5
            },
            "identifiers": {
              "count": 18,
              "unique": 9,
              "avg_length": 8,
              "max_length": 18,
              "min_length": 3,
              "avg_entropy": 2.42,
              "reuse_ratio": 0.5,
              "length_stddev": 4.64,
              "high_entropy_count": 1,
              "high_entropy_ratio": 0.11,
              "all_lowercase_ratio": 0.89,
              "underscore_prefix_count": 1
            }
          }
        },
        "id": 2,
        "path": "pyspark_contracts-0.8.0-py3-none-any.whl!!pyspark_contracts/_check.py",
        "pid": 0,
        "risk": 1,
        "sha": "b54b91f41ff68816368af7d4c950bbeca721ebfe1e2dbb732a2d9201b69e7f54",
        "size": 237,
        "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/extension/token-shape::bare-alphanumeric-script-basename",
            "conf": 0.9,
            "crit": 2,
            "desc": "Script filename is a bare alphanumeric token",
            "spans": [
              [
                0,
                0
              ]
            ]
          },
          {
            "id": "metadata/file/metrics::low-overall-entropy-source",
            "conf": 0.9,
            "crit": 2,
            "desc": "Source file has low overall entropy",
            "spans": [
              [
                0,
                0
              ]
            ]
          }
        ],
        "type": "python"
      },
      {
        "ctx": [
          {
            "b": "x(d*cA=-BsB8L}6x(d*cA=-BFvrcm1zFa1$w].*bay/tay?m9#x(v)ge[5j0azCXiz/P}xlT:!EvpB4:3jpx=z/3RoD2)}kA+/2(z/fVqvpKz2e)\u0026ahB98tquT)+Xv@3cdx(d*cA=-BhlV)D(z/4\u003cPwN/HIx)suf",
            "ln": 0,
            "col": 1,
            "line": 1
          },
          {
            "b": "iTM#LarR^HarUogwO+)#iV}%Ev@${@BAe]PmRMBIwl*rvaBwIzarR^HarR^Hw]zYjzEEx[efFIwBAhTHx(k5mv}YB\u003cvp9LVv@${0w[+*)woe@2e[]Aszf49OiTM#LarR^HarR^HarUogwO+)#tw^\u003e^wNcAwavZ6Ry?a}3arR^HarR^HarR^HarR^",
            "ln": 1110,
            "col": 62,
            "line": 34
          },
          {
            "b": "3lQDlarR^HarR^HarR^Haz8/BDVJXgwO\u003e\u003c.wnbK}tpi{0zGG]cv@%87Ej3c=Bzbkdz/PM8x(mu}av6BIwN/Hev@Dl}x([6czxJCcwmV($B8AvEar?dnarR^HarR^HarR^HarR!sb5*$hBrCHlaARpdaz2!pz/P}JaA8dlC{3*yB0b18B7ol8Acb^",
            "ln": 2171,
            "col": 66,
            "line": 59
          },
          {
            "b": "B8L@6B98B-aAITBdiHiaar\u003cf\u003ezGG]cv@$TVxK#3?b035NarR^HarR!EwPS6nzxJC9B1R6Bz/5\u0026(x\u003e8lkyiarhe]kDmwofelB8L@6B98BKdgc",
            "ln": 2615,
            "col": 25,
            "line": 73
          }
        ],
        "depth": 1,
        "facts": {
          "imp": [
            [
              "",
              "schema_dict[\"fields\"].items"
            ],
            [
              "",
              "Field"
            ],
            [
              "",
              "dtype_from_json"
            ],
            [
              "",
              "entry.get"
            ],
            [
              "",
              "entry.get"
            ],
            [
              "",
              "entry.get"
            ],
            [
              "",
              "entry.get"
            ],
            [
              "",
              "entry.get"
            ],
            [
              "",
              "entry.get"
            ],
            [
              "",
              "entry.get"
            ],
            [
              "",
              "entry.get"
            ],
            [
              "",
              "entry.get"
            ],
            [
              "",
              "entry.get"
            ],
            [
              "",
              "list"
            ],
            [
              "",
              "schema_dict.get(\"checks\", {}).keys"
            ],
            [
              "",
              "schema_dict.get"
            ],
            [
              "",
              "schema_dict[\"fields\"].items"
            ],
            [
              "",
              "warnings.warn"
            ],
            [
              "",
              "cls"
            ],
            [
              "",
              "schema_dict.get"
            ],
            [
              "",
              "schema_dict.get"
            ],
            [
              "",
              "cls.from_dict"
            ],
            [
              "",
              "json.loads"
            ],
            [
              "",
              "Callable"
            ],
            [
              "",
              "Field"
            ],
            [
              "",
              "_CustomCheckMixin"
            ],
            [
              "",
              "_DatasetCheckMixin"
            ],
            [
              "",
              "_QualityCheckMixin"
            ],
            [
              "",
              "_SchemaCheckMixin"
            ],
            [
              "",
              "_ValidationMixin"
            ],
            [
              "",
              "collections.abc"
            ],
            [
              "",
              "dtype_from_json"
            ],
            [
              "",
              "json"
            ],
            [
              "",
              "pyspark_contracts._custom_checks"
            ],
            [
              "",
              "pyspark_contracts._dataset_checks"
            ],
            [
              "",
              "pyspark_contracts._dtype_json"
            ],
            [
              "",
              "pyspark_contracts._field"
            ],
            [
              "",
              "pyspark_contracts._quality_checks"
            ],
            [
              "",
              "pyspark_contracts._schema_checks"
            ],
            [
              "",
              "pyspark_contracts._validation"
            ],
            [
              "",
              "warnings"
            ]
          ],
          "mbr": [
            "cls.from_dict",
            "entry.get",
            "entry.type_json",
            "json.loads",
            "schema_dict.contract",
            "schema_dict.fields",
            "schema_dict.fields.items",
            "schema_dict.get",
            "schema_dict.get().keys",
            "self._checks",
            "self._fields",
            "self._name",
            "self.max_rows",
            "self.min_rows",
            "warnings.warn"
          ],
          "tgt": [
            "Field",
            "cls",
            "cls.from_dict",
            "dtype_from_json",
            "entry.get",
            "json.loads",
            "list",
            "schema_dict.fields.items",
            "schema_dict.get",
            "schema_dict.get().keys",
            "warnings.warn"
          ],
          "funcs": [
            [
              "__init__",
              612
            ],
            [
              "_report_name",
              974
            ],
            [
              "from_dict",
              1053
            ],
            [
              "from_json",
              2595
            ]
          ],
          "metrics": {
            "ast": {
              "op.add": 1,
              "op.bor": 2,
              "max_depth": 16,
              "call_count": 23,
              "node_count": 699,
              "member_count": 15,
              "op_density.add": 0,
              "op_density.bor": 0,
              "member_depth_max": 3
            },
            "file": {
              "size": 2701,
              "entropy": 4.5
            },
            "text": {
              "lines": 74,
              "top_char": 101,
              "max_ws_run": 1,
              "digit_ratio": 0,
              "space_count": 683,
              "char_entropy": 4.5,
              "unique_chars": 56,
              "top_char_null": 0,
              "string_density": 0.31,
              "top_char_ratio": 0.06,
              "avg_line_length": 35.5,
              "max_line_length": 98,
              "empty_line_ratio": 0.11,
              "last_line_length": 50,
              "whitespace_ratio": 0.28,
              "identifier_density": 2.04,
              "line_length_stddev": 22.84,
              "normalized_string_count": 2.67,
              "repeated_char_sequences": 26,
              "normalized_unique_identifiers": 9.66
            },
            "binds": {
              "count": 8
            },
            "binary": {
              "peak_region_bytes": 2701,
              "peak_region_entropy": 4.64
            },
            "source": {
              "class_count": 1,
              "function_count": 4
            },
            "imports": {
              "count": 18,
              "stdlib_count": 3,
              "stdlib_ratio": 0.17,
              "third_party_count": 15,
              "third_party_ratio": 0.83
            },
            "strings": {
              "bytes": 364,
              "count": 23,
              "avg_length": 15.83,
              "max_length": 70,
              "avg_entropy": 3.01,
              "entropy_stddev": 0.6
            },
            "functions": {
              "count": 5,
              "density": 5.41,
              "avg_params": 2.5,
              "code_ratio": 0.72,
              "max_params": 5,
              "length_stddev": 14.31,
              "avg_name_length": 9.5,
              "avg_length_lines": 13.25,
              "max_length_lines": 37,
              "min_length_lines": 2,
              "avg_param_name_length": 6.8
            },
            "identifiers": {
              "count": 151,
              "unique": 60,
              "avg_length": 9.05,
              "max_length": 18,
              "min_length": 3,
              "avg_entropy": 2.72,
              "reuse_ratio": 0.4,
              "length_stddev": 4.42,
              "high_entropy_count": 6,
              "high_entropy_ratio": 0.1,
              "all_lowercase_ratio": 0.87,
              "double_underscore_count": 1,
              "underscore_prefix_count": 17
            }
          }
        },
        "id": 14,
        "mol": "H(Db)",
        "path": "pyspark_contracts-0.8.0-py3-none-any.whl!!pyspark_contracts/_schema.py",
        "pid": 0,
        "risk": 1,
        "sha": "ef8bf87743fcf43dbffd137c47c28cdf2bcff31ea21de58e2bcf516d472cea59",
        "size": 2701,
        "traits": [
          {
            "id": "micro-behaviors/data/serialize/json::json-loads-call",
            "conf": 0.9,
            "crit": 3,
            "desc": "Parses JSON data with Python",
            "spans": [
              [
                2679,
                10
              ]
            ]
          }
        ],
        "type": "python"
      },
      {
        "ctx": [
          {
            "b": "x(d*cA=-Buz!AY%zF6q\u003cze:AlBrCHy3jpx=z/3RoD2)}kA+^pGACM+ize:AlBrA$WByvTVvqPM.3tar%z6i!yB8UMdyHpN\u0026zGG]cv@#=AuU0.!Bz8!hze:AlBrBQ)y?WA*BzkVhl$HsVxBnu(z/3RoD2)}kA+/2(z/fVqvpKz2e)\u0026z",
            "ln": 0,
            "col": 1,
            "line": 1
          },
          {
            "b": "auZ\u0026xz/fbq3lQDlarR^HasX\u003cRCvtJ8B1vUvarR^Qat2=1r+VF*vruj4zC\u003e4+z/P}X3lQDlarR^HazCBgz/WKxzGY-mz/dguwPPsAp*3Z[k#Hu.lR*DRqB9VHq^R%*k%!mll)sf8b6m\u003cFwG\u0026MQy\u0026sJeAWSvVjV%]iw)]H%wG\u003cexarR^HarR^HarR^HA+funA=912x(v/@BzkVhqE%/=A=-ZJwO+%huVGZ%z/P@bzEEx[c[cX\u0026tu@^5ph+2YefF!FwmU",
            "ln": 646,
            "col": 38,
            "line": 25
          },
          {
            "b": "arR!Ie]bfswftP7asFBJx(!ufzF9r^z!%MkzxZROb6n9HwNxp*B8tucv}W5nazbLjaA!(wzxKapz!@\u003c7x(v)g3lQDlarR^HarR^HasNT8arR^HarR^Hx\u003ewF#wPh:8azCZoc@%+)x\u003egT]x(v(SwPh:8e\u003c@08l0)z.oJ-[?r://UwmoN]z/d%OAcb+Cq:T8Ao*JbLpdeCSk#Zc0ayPd#asENtarR^HarR^HarR!yvs0hwz/M$rz/^aBx(v/@BzkVhA%:3jarR^HarS9]3lQDlarR^HarR^HaAzyAuT[1%zGE0:ay]7pv@DHcBsnNBarR^HarR^HarR^H",
            "ln": 1284,
            "col": 14,
            "line": 42
          }
        ],
        "depth": 1,
        "facts": {
          "imp": [
            [
              "",
              "type"
            ],
            [
              "",
              "os.environ.get(\"PYSPARK_CONTRACTS_ENABLED\", \"true\").lower"
            ],
            [
              "",
              "os.environ.get"
            ],
            [
              "",
              "ViolationReport"
            ],
            [
              "",
              "self._report_name"
            ],
            [
              "",
              "get_logger"
            ],
            [
              "",
              "self._check_schema"
            ],
            [
              "",
              "any"
            ],
            [
              "",
              "df.count"
            ],
            [
              "",
              "self._check_dataset"
            ],
            [
              "",
              "self._check_quality"
            ],
            [
              "",
              "self._check_custom"
            ],
            [
              "",
              "ViolationReport"
            ],
            [
              "",
              "self._report_name"
            ],
            [
              "",
              "report.to_dict"
            ],
            [
              "",
              "logger.error"
            ],
            [
              "",
              "ContractViolationError"
            ],
            [
              "",
              "logger.warning"
            ],
            [
              "",
              "ContractViolationError"
            ],
            [
              "",
              "DataFrame"
            ],
            [
              "",
              "ValidationDepth"
            ],
            [
              "",
              "Violation"
            ],
            [
              "",
              "ViolationReport"
            ],
            [
              "",
              "get_logger"
            ],
            [
              "",
              "logging"
            ],
            [
              "",
              "os"
            ],
            [
              "",
              "pyspark.sql"
            ],
            [
              "",
              "pyspark_contracts._depth"
            ],
            [
              "",
              "pyspark_contracts._logging"
            ],
            [
              "",
              "pyspark_contracts._report"
            ]
          ],
          "mbr": [
            "ValidationDepth.DATA_ONLY",
            "ValidationDepth.SCHEMA_AND_DATA",
            "ValidationDepth.SCHEMA_ONLY",
            "_logger.error",
            "_logger.warning",
            "depth.value",
            "df.count",
            "logging.Logger",
            "os.environ",
            "os.environ.get",
            "os.environ.get().lower",
            "report.contract_name",
            "report.to_dict",
            "report.to_dict().violations",
            "self._check_custom",
            "self._check_dataset",
            "self._check_quality",
            "self._check_schema",
            "self._report_name",
            "type().__name__",
            "v.column",
            "v.kind"
          ],
          "tgt": [
            "ContractViolationError",
            "ViolationReport",
            "_logger.error",
            "_logger.warning",
            "any",
            "df.count",
            "get_logger",
            "os.environ.get",
            "os.environ.get().lower",
            "report.to_dict",
            "self._check_custom",
            "self._check_dataset",
            "self._check_quality",
            "self._check_schema",
            "self._report_name",
            "type"
          ],
          "funcs": [
            [
              "_report_name",
              348
            ],
            [
              "validate",
              419
            ]
          ],
          "metrics": {
            "ast": {
              "op.add": 3,
              "op.bor": 5,
              "op.lor": 4,
              "op.land": 4,
              "max_depth": 14,
              "call_count": 18,
              "node_count": 713,
              "member_count": 22,
              "max_array_len": 2,
              "op_density.add": 0,
              "op_density.bor": 0.01,
              "op_density.lor": 0.01,
              "op_density.land": 0.01,
              "member_depth_max": 4
            },
            "file": {
              "size": 2847,
              "entropy": 4.45
            },
            "text": {
              "lines": 78,
              "top_char": 111,
              "max_ws_run": 1,
              "digit_ratio": 0,
              "space_count": 835,
              "char_entropy": 4.45,
              "unique_chars": 68,
              "top_char_null": 0,
              "string_density": 0.21,
              "top_char_ratio": 0.07,
              "avg_line_length": 35.5,
              "max_line_length": 100,
              "non_ascii_ratio": 0,
              "empty_line_ratio": 0.17,
              "last_line_length": 21,
              "whitespace_ratio": 0.32,
              "identifier_density": 2.09,
              "line_length_stddev": 27.29,
              "normalized_string_count": 1.81,
              "repeated_char_sequences": 32,
              "suspicious_identifier_ratio": 0.02,
              "normalized_unique_identifiers": 9.86
            },
            "binds": {
              "count": 16
            },
            "binary": {
              "peak_region_bytes": 2048,
              "peak_region_entropy": 4.66
            },
            "source": {
              "class_count": 1,
              "function_count": 2
            },
            "imports": {
              "count": 12,
              "stdlib_count": 2,
              "stdlib_ratio": 0.17,
              "third_party_count": 10,
              "third_party_ratio": 0.83
            },
            "strings": {
              "bytes": 186,
              "count": 16,
              "avg_length": 11.63,
              "max_length": 34,
              "avg_entropy": 2.74,
              "entropy_stddev": 0.66
            },
            "functions": {
              "count": 3,
              "density": 2.56,
              "avg_params": 4.5,
              "code_ratio": 0.81,
              "max_params": 8,
              "length_stddev": 29.5,
              "avg_name_length": 10,
              "avg_length_lines": 31.5,
              "max_length_lines": 61,
              "min_length_lines": 2,
              "many_params_count": 1,
              "single_char_params": 1,
              "avg_param_name_length": 4
            },
            "identifiers": {
              "count": 163,
              "unique": 62,
              "avg_length": 8.13,
              "max_length": 22,
              "min_length": 1,
              "avg_entropy": 2.48,
              "reuse_ratio": 0.38,
              "length_stddev": 4.61,
              "sequential_names": 1,
              "single_char_count": 1,
              "single_char_ratio": 0.02,
              "high_entropy_count": 3,
              "high_entropy_ratio": 0.05,
              "all_lowercase_ratio": 0.84,
              "all_uppercase_ratio": 0.05,
              "double_underscore_count": 1,
              "underscore_prefix_count": 11
            }
          }
        },
        "id": 16,
        "mol": "H(Os)",
        "path": "pyspark_contracts-0.8.0-py3-none-any.whl!!pyspark_contracts/_validation.py",
        "pid": 0,
        "risk": 1,
        "sha": "1f94f036fb76904f1dfee0dbaac806dd2138bd526156205e0d47bd69610f5efd",
        "size": 2847,
        "traits": [
          {
            "id": "micro-behaviors/os/env/vars/access::python-os-getenv-call",
            "conf": 0.92,
            "crit": 3,
            "desc": "Python reads an environment variable",
            "spans": [
              [
                710,
                14
              ]
            ]
          }
        ],
        "type": "python"
      },
      {
        "ctx": [
          {
            "b": "DM)3hz/ZhBBy/qkiWeJ*Aa{HEb5Q?awG\u003ceVAcVIzvrccnv@DmbA:-E1B0rdVC4CYnx(v(kiWcmgi4=)eefY4QvR/+1xK$ZYvrrXOf/I6Kh-rPOgDv0gvp%dUwmo+8b04zeb5yXfwPI%2C4CYnx(v(kiWcmgi4=)eefXIBBzbPkb06Q:y?$TDBzk\u0026kwG\u003cfMB.\u003e\u003eB",
            "ln": 0,
            "col": 1,
            "line": 1
          }
        ],
        "depth": 1,
        "facts": {
          "metrics": {
            "file": {
              "size": 14074,
              "entropy": 4.24
            },
            "binary": {
              "peak_region_bytes": 1786,
              "peak_region_entropy": 4.94
            },
            "registry": {
              "age_days": 0,
              "published_at": 1788767839,
              "releases_24h": 4,
              "releases_48h": 5,
              "is_deprecated": 0,
              "release_count": 10,
              "package_age_days": 14,
              "first_published_at": 1787519134,
              "vulnerability_count": 0,
              "previous_published_at": 1788731197,
              "days_since_previous_release": 0
            }
          }
        },
        "id": 19,
        "mol": "Md(Re)",
        "path": "pyspark-contracts@0.8.0.registry.json",
        "pid": 0,
        "rel": "registry",
        "risk": 1,
        "role": "sidecar",
        "sha": "94d25c257532a1b8de1647289fb9204800046d78f60b28c5566c138d0d7a075b",
        "size": 14074,
        "traits": [
          {
            "id": "metadata/registry::publish-burst-24h",
            "conf": 1.0,
            "crit": 3,
            "desc": "Three releases published within 24 hours",
            "spans": [
              [
                0,
                28
              ]
            ]
          },
          {
            "id": "metadata/registry::freshly-published",
            "conf": 1.0,
            "crit": 3,
            "desc": "Release published within seven days",
            "spans": [
              [
                0,
                24
              ]
            ]
          }
        ],
        "type": "registry"
      }
    ],
    "rev": "479f3",
    "v": "8"
  }
}