.. module:: module.a

.. class:: ClassA

   ClassA description

   .. attribute:: attr_1

      attr_1 description

      :type: attr_1 type

   .. data:: data_1

      data_1 description

      :type: data_1 type

   .. method:: method_1(arg_1, arg_2="test")

      method_1 description

      :arg arg_1: method_1 arg_1 description
      :type arg_1: method_1 arg_1 type
      :param arg_2: method_1 arg_2 description
      :type arg_2: method_1 arg_2 type
      :return: method_1 return description
      :rtype: method_1 return type

   .. classmethod:: classmethod_1(arg_1, arg_2=123)

      classmethod_1 description

      :arg arg_1: classmethod_1 arg_1 description
      :type arg_1: classmethod_1 arg_1 type
      :param arg_2: classmethod_1 arg_2 description
      :type arg_2: classmethod_1 arg_2 type
      :return: classmethod_1 return description
      :rtype: classmethod_1 return type

   .. staticmethod:: staticmethod_1(arg_1, arg_2=(0, 0))

      staticmethod_1 description

      :param arg_1: staticmethod_1 arg_1 description
      :type arg_1: staticmethod_1 arg_1 type
      :arg arg_2: staticmethod_1 arg_2 description
      :type arg_2: staticmethod_1 arg_2 type
      :return: staticmethod_1 return description
      :rtype: staticmethod_1 return type

   .. function:: function_1(arg_1, arg_2=MAX_INT)

      function_1 description

      :arg arg_1: function_1 arg_1 description
      :type arg_1: function_1 arg_1 type
      :param arg_2: function_1 arg_2 description
      :type arg_2: function_1 arg_2 type
      :return: function_1 return description
      :rtype: function_1 return type
