This resolves #1589. It updates the MRO for PyProxy: now `proxy.destroy` always refers to the method PyProxy class method that destroys the proxy, `proxy.$destroy` refers to an attribute or method on the proxied Python object. Similarly, `proxy.get` refers to the `PyProxy.get` method if `type(proxy)` has a `__getitem__` method. Otherwise, it refers to an attribute or method on the proxied object. To unambigiously look up `get` on the proxied object, use `proxy.$get`.

The docs should be updated to explain this.
ENH Use leading $ to distinguish shadowed PyProxy methods. This resolves #1589. It updates the MRO for PyProxy: now `proxy.destroy` always refers to the method PyProxy class method that destroys the proxy, `proxy.$destroy` refers to an attribute or method on the proxied Python object. Similarly, `proxy.get` refers to the `PyProxy.get` method if `type(proxy)` has a `__getitem__` method. Otherwise, it refers to an attribute or method on the proxied object. To unambigiously look up `get` on the proxied object, use `proxy.$get`.

The docs should be updated to explain this.
# Python API

Backward compatibility of the API is not guaranteed at this point.

**Javascript Modules**

By default there are two Javascript modules. More can be added with
{any}`pyodide.registerJsModule`. You can import these modules using the Python
``import`` statement in the normal way.

```{eval-rst}
.. list-table::

   *  - ``js``
      - The global Javascript scope.
   *  - :js:mod:`pyodide_js <pyodide>`
      - The Javascript Pyodide module.
```

```{eval-rst}
.. currentmodule:: pyodide

.. automodule:: pyodide
   :members:
   :autosummary:
   :autosummary-no-nesting:
```

# Python API

Backward compatibility of the API is not guaranteed at this point.

**Javascript Modules**

By default there are two Javascript modules. More can be added with
{any}`pyodide.registerJsModule`. You can import these modules using the Python
``import`` statement in the normal way.

```{eval-rst}
.. list-table::

   *  - ``js``
      - The global Javascript scope.
   *  - :js:mod:`pyodide_js <pyodide>`
      - The Javascript Pyodide module.
```

```{eval-rst}
.. currentmodule:: pyodide

.. automodule:: pyodide
   :members:
   :autosummary:
   :autosummary-no-nesting:
```
