()
| 108 | |
| 109 | |
| 110 | def get_builtins(): |
| 111 | scope = {} |
| 112 | if hasattr(__builtins__, "__dict__"): |
| 113 | b = __builtins__.__dict__ |
| 114 | else: |
| 115 | b = __builtins__ |
| 116 | |
| 117 | for k, v in b.items(): |
| 118 | if inspect.isclass(v): |
| 119 | t = {"type": "class"} |
| 120 | elif inspect.isfunction(v): |
| 121 | t = {"type": "function"} |
| 122 | else: |
| 123 | t = {"type": "other", "repr": repr(v)} |
| 124 | |
| 125 | if hasattr(v, "__name__"): |
| 126 | name = v.__name__ |
| 127 | if name != k: |
| 128 | t["name"] = name |
| 129 | scope[k] = t |
| 130 | |
| 131 | return scope |
| 132 | |
| 133 | |
| 134 | def get_comments(source_code): |