docstr: Convert ip address to int
docstr_tok: ["Convert","ip","address","to","int"]
code: def __convert_ip(self):
      """Convert ip address to int"""
      ip = self.etalon_def_checked.get(
          FileColumnMeaningType.IP_ADDRESS.value
      )
      if ip is not None and ip in self.data.columns:
          self.logger.info("Convert ip address to int")
          del self.etalon_def[FileColumnMeaningType.IP_ADDRESS.value]
          del self.meaning_types[ip]
          original_ip = self.columns_renaming[ip]
          del self.columns_renaming[ip]
  
          search_keys = set()
          for tup in self.search_keys_checked:
              search_keys.update(tup)
          search_keys.remove(ip)
  
          self.data[ip] = self.data[ip].apply(self._safe_ip_parse)
          if self.data[ip].isnull().all():
              raise ValidationError(bundle.get("invalid_ip").format(ip))
  
          if self.data[ip].apply(self._is_ipv4).any():
              ipv4 = ip + "_v4"
              self.data[ipv4] = (
                  self.data[ip]
                  .apply(self._to_ipv4)
                  .apply(self.__ip_to_int)
                  .astype("Int64")
              )
              self.meaning_types[
                  ipv4
              ] = FileColumnMeaningType.IP_ADDRESS
              self.etalon_def[
                  FileColumnMeaningType.IP_ADDRESS.value
              ] = ipv4
              search_keys.add(ipv4)
              self.columns_renaming[ipv4] = original_ip
  
          ipv6 = ip + "_v6"
          self.data[ipv6] = (
              self.data[ip]
              .apply(self._to_ipv6)
              .apply(self.__ip_to_int)
              .astype("string")
              .str.replace(".0", "", regex=False)
          )
          self.data = self.data.drop(columns=ip)
          self.meaning_types[ipv6] = FileColumnMeaningType.IPV6_ADDRESS
          self.etalon_def[
              FileColumnMeaningType.IPV6_ADDRESS.value
          ] = ipv6
          search_keys.add(ipv6)
          self.columns_renaming[ipv6] = original_ip
          self.search_keys = combine_search_keys(search_keys)
  
imports: import csv
  import hashlib
  import logging
  import tempfile
  import time
  from ipaddress import IPv4Address, IPv6Address, _BaseAddress, ip_address
  from pathlib import Path
  from typing import Any, Callable, Dict, List, Optional, Tuple, Union
  import numpy
  import pandas
  from pandas.api.types import is_bool_dtype
  from pandas.api.types import is_datetime64_any_dtype
  from pandas.api.types import is_float_dtype, is_integer_dtype, is_numeric_dtype, is_string_dtype
  from pandas.core.dtypes.common import is_period_dtype
  from upgini.errors import ValidationError
  from upgini.http import ProgressStage, SearchProgress, get_rest_client
  from upgini.metadata import EVAL_SET_INDEX, SYSTEM_COLUMNS, SYSTEM_RECORD_ID, TARGET, DataType, FeaturesFilter, FileColumnMeaningType, FileColumnMetadata, FileMetadata, FileMetrics, ModelTaskType, NumericInterval, RuntimeParameters, SearchCustomization
  from upgini.normalizer.phone_normalizer import PhoneNormalizer
  from upgini.resource_bundle import bundle
  from upgini.sampler.random_under_sampler import RandomUnderSampler
  from upgini.search_task import SearchTask
  from upgini.utils import combine_search_keys
  from upgini.utils.email_utils import EmailSearchKeyConverter
  from upgini.utils.warning_counter import WarningCounter
label_desc: Use image node_id 20 for calling the Dataset obj's underlying member method code with example usage: obj.__convert_ip() without return types