I'm new to the intermediate GUI framework world and OpenGL. I'm trying to get this example to work:
# -*- coding: utf-8 -*-
import glfw
import OpenGL.GL as gl
import numpy as np
import imgui
from imgui.integrations.glfw import GlfwRenderer
def main():
    imgui.create_context()
    window = impl_glfw_init()
    impl = GlfwRenderer(window)
    while not glfw.window_should_close(window):
        glfw.poll_events()
        impl.process_inputs()
        imgui.new_frame()
        if imgui.begin_main_menu_bar():
            if imgui.begin_menu("File", True):
                clicked_quit, selected_quit = imgui.menu_item(
                    "Quit", 'Cmd+Q', False, True
                )
                if clicked_quit:
                    exit(1)
                imgui.end_menu()
            imgui.end_main_menu_bar()
        imgui.render()
        # show_test_window()
        # imgui.show_test_window()
        
        try:
            gl.glViewport(0, 0, int(impl.io.display_size.x), int(impl.io.display_size.y))
            gl.glClearColor(0., 0., 0., 1)
            gl.glClear(gl.GL_COLOR_BUFFER_BIT | gl.GL_DEPTH_BUFFER_BIT)
            gl.glBegin(gl.GL_TRIANGLES)
            gl.glVertex3f(-0.5, -0.5, 0.0)
            gl.glVertex3f(0.5, -0.5, 0.0)
            gl.glVertex3f(0.0, 0.5, 0.0)
            gl.glEnd()
        except gl.GLError as glex:
            print(f"{glex.err}: {glex.result}")
        impl.render(imgui.get_draw_data())
        glfw.swap_buffers(window)
    impl.shutdown()
    glfw.terminate()
def impl_glfw_init():
    width, height = 1280, 720
    window_name = "minimal ImGui/GLFW3 example"
    if not glfw.init():
        print("Could not initialize OpenGL context")
        exit(1)
    # OS X supports only forward-compatible core profiles from 3.2
    glfw.window_hint(glfw.CONTEXT_VERSION_MAJOR, 3)
    glfw.window_hint(glfw.CONTEXT_VERSION_MINOR, 3)
    glfw.window_hint(glfw.OPENGL_PROFILE, glfw.OPENGL_CORE_PROFILE)
    glfw.window_hint(glfw.OPENGL_FORWARD_COMPAT, gl.GL_TRUE)
    # Create a windowed mode window and its OpenGL context
    window = glfw.create_window(
        int(width), int(height), window_name, None, None
    )
    glfw.make_context_current(window)
    if not window:
        glfw.terminate()
        print("Could not initialize Window")
        exit(1)
    return window
if __name__ == "__main__":
    main()
Though I continue to get this error:
I'm sure I've missed something though I cannot seem to find the magic piece of documentation that gives me a hint. I could be trying to use legacy OpenGL where I should be using the modern approach, or adding my rendering code in the wrong place.
Any hints would be much appreciated.
I have tried a modern OpenGL example using buffers and shaders. Without success.

 
                        
You are requesting an OpenGL 3.3 CORE profile:
Some docs copied from here: https://www.glfw.org/docs/3.3/window_guide.html#GLFW_OPENGL_FORWARD_COMPAT_hint
I've never used glfw to be honest, but I'd see if commenting out those lines fixes it? (That should enable all of the legacy OpenGL, e.g. glBegin/glEnd).
Ideally though, you'd want to keep those window hints, remove the glBegin/glVertex/glEnd, and switch over to using glGenBuffers / glBindBuffer / glBufferData and glDrawArrays.