original_string: public static function filter($column){
          $column = wp_parse_args($column, [
              'type' => '',
              'null' => false,
          ]);
          // Type required.
          if( !self::exists($column['type']) ){
              throw new \Exception('You must properly specify the data type of column.');
          }
          // Check varchar length
          if( self::is_length_required($column['type']) && !isset($column['length']) ){
              throw new \Exception(sprintf('Column %s requires length property.', $column['type']));
          }
          // Signed or Unsigned?
          if( self::is_numeric($column['type']) ){
              $column['signed'] = isset($column['signed']) ? (bool)$column['signed'] : true;
          }
          // If decimal, test_required params
          if( $column['type'] == self::DECIMAL ){
              if( !isset($column['max_digit'], $column['float']) ){
                  throw new \Exception(sprintf('Column %s requires max_digit and float property.', self::DECIMAL));
              }
          }
          // If enum or set, test required properties.
          if( self::is_set($column['type']) && ( !is_array($column['values']) || empty($column['values']) ) ){
              throw new \Exception(sprintf('Column %s requires values property as array.', $column['type']));
          }
          return $column;
      }
code: public static function filter($column){
          $column = wp_parse_args($column, [
              'type' => '',
              'null' => false,
          ]);
          // Type required.
          if( !self::exists($column['type']) ){
              throw new \Exception('You must properly specify the data type of column.');
          }
          // Check varchar length
          if( self::is_length_required($column['type']) && !isset($column['length']) ){
              throw new \Exception(sprintf('Column %s requires length property.', $column['type']));
          }
          // Signed or Unsigned?
          if( self::is_numeric($column['type']) ){
              $column['signed'] = isset($column['signed']) ? (bool)$column['signed'] : true;
          }
          // If decimal, test_required params
          if( $column['type'] == self::DECIMAL ){
              if( !isset($column['max_digit'], $column['float']) ){
                  throw new \Exception(sprintf('Column %s requires max_digit and float property.', self::DECIMAL));
              }
          }
          // If enum or set, test required properties.
          if( self::is_set($column['type']) && ( !is_array($column['values']) || empty($column['values']) ) ){
              throw new \Exception(sprintf('Column %s requires values property as array.', $column['type']));
          }
          return $column;
      }
code_tokens: public static function filter ( $ column ) { $ column = wp_parse_args ( $ column , [ 'type' => '' , 'null' => false , ] ) ; // Type required. if ( ! self :: exists ( $ column [ 'type' ] ) ) { throw new \ Exception ( 'You must properly specify the data type of column.' ) ; } // Check varchar length if ( self :: is_length_required ( $ column [ 'type' ] ) && ! isset ( $ column [ 'length' ] ) ) { throw new \ Exception ( sprintf ( 'Column %s requires length property.' , $ column [ 'type' ] ) ) ; } // Signed or Unsigned? if ( self :: is_numeric ( $ column [ 'type' ] ) ) { $ column [ 'signed' ] = isset ( $ column [ 'signed' ] ) ? ( bool ) $ column [ 'signed' ] : true ; } // If decimal, test_required params if ( $ column [ 'type' ] == self :: DECIMAL ) { if ( ! isset ( $ column [ 'max_digit' ] , $ column [ 'float' ] ) ) { throw new \ Exception ( sprintf ( 'Column %s requires max_digit and float property.' , self :: DECIMAL ) ) ; } } // If enum or set, test required properties. if ( self :: is_set ( $ column [ 'type' ] ) && ( ! is_array ( $ column [ 'values' ] ) || empty ( $ column [ 'values' ] ) ) ) { throw new \ Exception ( sprintf ( 'Column %s requires values property as array.' , $ column [ 'type' ] ) ) ; } return $ column ; }
docstring: Filter column array
  
  @param array $column
  @return array
  @throws \Exception
docstring_tokens: Filter column array