Commit 97f5d2df authored by nd-02110114's avatar nd-02110114
Browse files

add custom repr functions

parent 921c8c1c
Loading
Loading
Loading
Loading
+30 −10
Original line number Diff line number Diff line
@@ -76,8 +76,31 @@ class Featurizer(object):
    """
    raise NotImplementedError('Featurizer is not defined.')

  def __repr__(self) -> str:
    """Convert self to repr representation.

    Returns
    -------
    str
      The string represents the class.

    Examples
    --------
    >>> import deepchem as dc
    >>> dc.feat.CircularFingerprint(size=1024, radius=4)
    CircularFingerprint[radius=4, size=1024, chiral=False, bonds=True, features=False, sparse=False, smiles=False]
    >>> dc.feat.CGCNNFeaturizer()
    CGCNNFeaturizer[radius=8.0, max_neighbors=8, step=0.2]
    """
    args_spec = inspect.getfullargspec(self.__init__)  # type: ignore
    args_names = [arg for arg in args_spec.args if arg != 'self']
    args_info = ''
    for arg_name in args_names:
      args_info += arg_name + '=' + str(self.__dict__[arg_name]) + ', '
    return self.__class__.__name__ + '[' + args_info[:-2] + ']'

  def __str__(self) -> str:
    """Convert class to string.
    """Convert self to str representation.

    Returns
    -------
@@ -89,19 +112,16 @@ class Featurizer(object):
    >>> import deepchem as dc
    >>> str(dc.feat.CircularFingerprint(size=1024, radius=4))
    'CircularFingerprint_radius_4_size_1024'
    >>> str(dc.feat.CGCNNFeaturizer())
    'CGCNNFeaturizer'
    """
    args_spec = inspect.getfullargspec(self.__init__)  # type: ignore
    args_names = [arg for arg in args_spec.args if arg != 'self']
    args_default_values = list(args_spec.defaults) \
      if args_spec.defaults is not None else []

    # the case some arguments don't have the default value
    args_num = len(args_names)
    args_default_num = len(args_default_values)
    if args_num > args_default_num:
      diff = args_num - args_default_num
      args_default_values = [None] * diff + args_default_values
    assert len(args_names) == len(args_default_values)
    args_default_values = [None for _ in range(args_num)]
    if args_spec.defaults is not None:
      defaults = list(args_spec.defaults)
      args_default_values[-len(defaults):] = defaults

    override_args_info = ''
    for arg_name, default in zip(args_names, args_default_values):