docs: def visit_Assign(self, node):
          """
          Implement assignment walker.
  
          Parse class properties defined via the property() function
          """
          # [[[cog
          # cog.out("print(pcolor('Enter assign visitor', 'magenta'))")
          # ]]]
          # [[[end]]]
          # ###
          # Class-level assignment may also be a class attribute that is not
          # a managed attribute, record it anyway, no harm in doing so as it
          # is not attached to a callable
          if self._in_class(node):
              element_full_name = self._pop_indent_stack(node, "prop")
              code_id = (self._fname, node.lineno)
              self._processed_line = node.lineno
              self._callables_db[element_full_name] = {
                  "name": element_full_name,
                  "type": "prop",
                  "code_id": code_id,
                  "last_lineno": None,
              }
              self._reverse_callables_db[code_id] = element_full_name
              # [[[cog
              # code = """
              # print(
              #     pcolor(
              #         'Visiting property {0} @ {1}'.format(
              #             element_full_name, code_id[1]
              #         ),
              #         'green'
              #     )
              # )
              # """
              # cog.out(code)
              # ]]]
              # [[[end]]]
              # Get property actions
          self.generic_visit(node)