code: def get_class_attributes(cls):
          
          #: see this method docstring for a important notice about the use of
          #: cls.__dict__
          for name, value in cls.__dict__.items():
              # gets only our (kytos) attributes. this ignores methods, dunder
              # methods and attributes, and common python type attributes.
              if GenericStruct._is_pyof_attribute(value):
                  yield (name, value)
docs: Return a generator for class attributes' names and value.
  
          This method strict relies on the PEP 520 (Preserving Class Attribute
          Definition Order), implemented on Python 3.6. So, if this behaviour
          changes this whole lib can loose its functionality (since the
          attributes order are a strong requirement.) For the same reason, this
          lib will not work on python versions earlier than 3.6.
  
          .. code-block:: python3
  
              for name, value in self.get_class_attributes():
                  print("attribute name: {}".format(name))
                  print("attribute type: {}".format(value))
  
          Returns:
              generator: tuples with attribute name and value.