Repository: dagger/dagger
Issue: 🐞 Python SDK fails on Windows when trying to get the platform

### What is the issue?

When trying to run the example for the Dagger Python SDK on Windows I am getting the error: `AttributeError: module 'os' has no attribute 'uname'`
Link to the place in the code: https://github.com/dagger/dagger/blob/main/sdk/python/src/dagger/connectors/docker.py#L26

I guess this is only related to Windows as it looks like this function is not present there.

### Log output

```
C:\\Users\\amuller20\\Miniconda3\\envs\\dagger-sdk\\python.exe C:\\Users\\amuller20\\PycharmProjects\\dagger-sdk\\main.py "Simple is better than complex" 
Traceback (most recent call last):
  File "C:\\Users\\amuller20\\PycharmProjects\\dagger-sdk\\main.py", line 38, in <module>
    anyio.run(main, sys.argv[1:])
  File "C:\\Users\\amuller20\\Miniconda3\\envs\\dagger-sdk\\lib\\site-packages\\anyio\\_core\\_eventloop.py", line 70, in run
    return asynclib.run(func, *args, **backend_options)
  File "C:\\Users\\amuller20\\Miniconda3\\envs\\dagger-sdk\\lib\\site-packages\\anyio\\_backends\\_asyncio.py", line 292, in run
    return native_run(wrapper(), debug=debug)
  File "C:\\Users\\amuller20\\Miniconda3\\envs\\dagger-sdk\\lib\\asyncio\\runners.py", line 44, in run
    return loop.run_until_complete(main)
  File "C:\\Users\\amuller20\\Miniconda3\\envs\\dagger-sdk\\lib\\asyncio\\base_events.py", line 646, in run_until_complete
    return future.result()
  File "C:\\Users\\amuller20\\Miniconda3\\envs\\dagger-sdk\\lib\\site-packages\\anyio\\_backends\\_asyncio.py", line 287, in wrapper
    return await func(*args)
  File "C:\\Users\\amuller20\\PycharmProjects\\dagger-sdk\\main.py", line 20, in main
    async with dagger.Connection() as client:
  File "C:\\Users\\amuller20\\Miniconda3\\envs\\dagger-sdk\\lib\\site-packages\\dagger\\connection.py", line 39, in __aenter__
    return await self.connector.connect()
  File "C:\\Users\\amuller20\\Miniconda3\\envs\\dagger-sdk\\lib\\site-packages\\dagger\\connectors\\docker.py", line 168, in connect
    await anyio.to_thread.run_sync(self.provision_sync)
  File "C:\\Users\\amuller20\\Miniconda3\\envs\\dagger-sdk\\lib\\site-packages\\anyio\\to_thread.py", line 31, in run_sync
    return await get_asynclib().run_sync_in_worker_thread(
  File "C:\\Users\\amuller20\\Miniconda3\\envs\\dagger-sdk\\lib\\site-packages\\anyio\\_backends\\_asyncio.py", line 937, in run_sync_in_worker_thread
    return await future
  File "C:\\Users\\amuller20\\Miniconda3\\envs\\dagger-sdk\\lib\\site-packages\\anyio\\_backends\\_asyncio.py", line 867, in run
    result = context.run(func, *args)
  File "C:\\Users\\amuller20\\Miniconda3\\envs\\dagger-sdk\\lib\\site-packages\\dagger\\connectors\\docker.py", line 184, in provision_sync
    self.engine.start()
  File "C:\\Users\\amuller20\\Miniconda3\\envs\\dagger-sdk\\lib\\site-packages\\dagger\\connectors\\docker.py", line 61, in start
    os_, arch = get_platform()
  File "C:\\Users\\amuller20\\Miniconda3\\envs\\dagger-sdk\\lib\\site-packages\\dagger\\connectors\\docker.py", line 26, in get_platform
    uname = os.uname()
AttributeError: module 'os' has no attribute 'uname'

Process finished with exit code 1
```

### Steps to reproduce

Create virtual environment with Python 3.10 and install dagger SDK
Run one of the Dagger samples (e.g. https://github.com/helderco/dagger-examples/blob/main/say.py)

### Dagger version

dagger SDK 0.1.1

### OS version

Windows 10

Changed files:
sdk/python/src/dagger/connectors/docker.py

diff --git a/sdk/python/src/dagger/connectors/docker.py b/sdk/python/src/dagger/connectors/docker.py
index efaa4c80..eb06c3c1 100644
--- a/sdk/python/src/dagger/connectors/docker.py
+++ b/sdk/python/src/dagger/connectors/docker.py
@@ -1,5 +1,6 @@
 import logging
 import os
+import platform
 import subprocess
 import tempfile
 from pathlib import Path
@@ -23,11 +24,11 @@ def get_platform() -> tuple[str, str]:
         "x86_64": "amd64",
         "aarch64": "arm64",
     }
-    uname = os.uname()
-    os_ = uname.sysname.lower()
+    uname = platform.uname()
+    os_name = uname.system.lower()
     arch = uname.machine.lower()
     arch = normalized_arch.get(arch, arch)
-    return os_, arch
+    return os_name, arch
 
 
 class ImageRef: