code: def test_no_init(self):
      @signature_has_traits
      class Foo(HasTraits):
          number1 = Int()
          number2 = Int()
          value = Unicode("Hello")
  
      parameters = signature(Foo).parameters
      parameter_names = list(parameters)
  
      self.assertIs(parameters["args"].kind, Parameter.VAR_POSITIONAL)
      self.assertEqual("args", parameter_names[0])
  
      self.assertIs(parameters["number1"].kind, Parameter.KEYWORD_ONLY)
      self.assertIs(parameters["number2"].kind, Parameter.KEYWORD_ONLY)
      self.assertIs(parameters["value"].kind, Parameter.KEYWORD_ONLY)
  
      self.assertIs(parameters["kwargs"].kind, Parameter.VAR_KEYWORD)
      self.assertEqual("kwargs", parameter_names[-1])
  
      f = Foo(number1=32, value="World")
      self.assertEqual(f.number1, 32)
      self.assertEqual(f.number2, 0)
      self.assertEqual(f.value, "World")
  
file_path: catboost/contrib/python/traitlets/py3/tests/utils/test_decorators.py
imports: from inspect import Parameter, signature
  from unittest import TestCase
  from traitlets import HasTraits, Int, Unicode
  from traitlets.utils.decorators import signature_has_traits
label_desc: Use image node_id 1 for calling the TestExpandSignature obj's underlying member method code with example usage: obj.test_no_init() without return types