Repository: ccxt/ccxt
Issue: Python: importing ccxt.pro maps synchronous calls instead of asynchronous?

### ؜

Hi there,
 I have just realized, as I wasn't running tests on this part of the code recently, that by importing ccxt.pro some of the Exchange methods, such as:
 - load_markets()
 - fetch_status()
 - fetch_orders()
 - fetch_balance()
 - cancel_order()
 are actually synchronous instead of asynchronous... the things which put me off completely is that the watch_ methods also appear to be synchronous, am I missing something? I am sure the past versions of the ccxt.pro where extending the ccxt.async_support not the ccxt synchronous version.

My libraries:
poetry show ccxt
 name         : ccxt                                                                                                         
 version      : 3.1.34                                                                                                       
 description  : A JavaScript / TypeScript / Python / C# / PHP cryptocurrency trading library with support for 130+ exchanges 

dependencies
 - aiodns >=1.1.1
 - aiohttp >=3.8
 - certifi >=2018.1.18
 - cryptography >=2.6.1
 - requests >=2.18.4
 - setuptools >=60.9.0
 - yarl >=1.7.2

Let me add a current example with watch_trades():

```
import ccxt.async_support as ccxt
params: Dict[str, Any] = dict(
    apiKey=api_key,
    secret=secret,
    enableRateLimit=True,
    newUpdates=True,
)
self.__conn: ccxt.Exchange = getattr(ccxt, exchange_name)(params)
ccxt_trades: List[Dict] = await self.__conn.watch_trades(market.symbol)
```

If I am importing from `ccxt.async_support` I am getting the error with Binance as `exchange_name` that: "binance watchTrades() is not supported yet" while I understood that with the merging of the ccxt pro version into the ccxt library, the watch_* methods should have been moved into the async_support module. And I am pretty sure it was running like that till a while ago, because I have trading logs of that version, with successful trade watching :-)

What is more strange to me now is that if I change the `import ccxt.async_support as ccxt` into `import ccxt.pro as ccxt` I am having the watch_* back and they actually work, which means I do not get the error that they aren't supported, but when inspecting those methods they seem to point me back to the synchronous version of the ccxt library and not to the ccxt.async_support which is where they are supposed to point (or at least it was like that a while ago). This is where it is pointing:

```
def watch_trades(self, symbol: str, since: Optional[int] = None, limit: Optional[int] = None, params={}):
    raise NotSupported(self.id + ' watchTrades() is not supported yet')
```
which is in `base.exchange.py::Exchange` instead of being in `async_support.base.exchange.py::Exchange` and being declared as an `async` method.

This is the issue that when running mypy on the code, I get a lot of warning that all of the watch_* method shouldn't be awaited because they are synchronous... which is wired and didn't happen before.

HTH, let me know if you need more information.

Changed files:
python/ccxt/pro/__init__.py

diff --git a/python/ccxt/pro/__init__.py b/python/ccxt/pro/__init__.py
index dcfbd0a41d..1a55e6770b 100644
--- a/python/ccxt/pro/__init__.py
+++ b/python/ccxt/pro/__init__.py
@@ -8,7 +8,7 @@ __version__ = '3.1.47'
 
 # ----------------------------------------------------------------------------
 
-from ccxt.base.exchange import Exchange  # noqa: F401
+from ccxt.async_support.base.exchange import Exchange  # noqa: F401
 
 # CCXT Pro exchanges (now this is mainly used for importing exchanges in WS tests)