Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ jobs:
fail-fast: false
matrix:
os: [ubuntu-latest]
version: [3.8, 3.9, "3.10", 3.11, 3.12]
version: [3.9, "3.10", 3.11, 3.12]

name: Tests
runs-on: ${{ matrix.os }}
Expand Down
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@
</div>

<div style="text-align: center" align="center">
<a href="https://docs.pylabrobot.org"><strong>Docs</strong></a> |
<a href="https://discuss.pylabrobot.org"><strong>Forum</strong></a> |
<a href="https://docs.pylabrobot.org/installation.html"><strong>Installation</strong></a> |
<a href="https://docs.pylabrobot.org"><strong>Docs</strong></a> |
<a href="https://discuss.pylabrobot.org"><strong>Forum</strong></a> |
<a href="https://docs.pylabrobot.org/installation.html"><strong>Installation</strong></a> |
<a href="https://docs.pylabrobot.org/basic.html"><strong>Getting started</strong></a>
</div>

Expand All @@ -20,7 +20,7 @@ Advantages over proprietary software:
- **Fast iteration**: PyLabRobot enables rapid development of protocols using atomic commands run interactively in Jupyter notebooks or the Python REPL. This decreases iteration time from minutes to seconds.
- **Open-source**: PyLabRobot is open-source and free to use.
- **Control**: With Python, you have ultimate flexibility to control your lab automation equipment. You can write Turing-complete protocols that include feedback loops.
- **Modern**: PyLabRobot is built on modern Python 3.8+ features and async/await syntax.
- **Modern**: PyLabRobot is built on modern Python 3.9+ features and async/await syntax.
- **Fast support**: PyLabRobot has [an active community forum](https://discuss.pylabrobot.org) for support and discussion, and most pull requests are merged within a day.

### Liquid handling robots ([docs](https://docs.pylabrobot.org/basic.html))
Expand Down
8 changes: 0 additions & 8 deletions pylabrobot/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -63,11 +63,3 @@ def configure(cfg: Config):


configure(CONFIG)


# deprecation warning for 3.8
if sys.version_info < (3, 9):
warnings.warn(
"Support for Python 3.8 is deprecated and will be removed in Dec 2024. "
"Please upgrade to Python 3.9 or later."
)
5 changes: 2 additions & 3 deletions pylabrobot/liquid_handling/backends/hamilton/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@
Sequence,
Tuple,
TypeVar,
cast,
)

from pylabrobot.liquid_handling.backends.backend import (
Expand Down Expand Up @@ -276,10 +275,10 @@ async def _write_and_read_command(
read_timeout = self.read_timeout

loop = asyncio.get_event_loop()
fut = loop.create_future()
fut: asyncio.Future[str] = loop.create_future()
self._start_reading(id_, loop, fut, cmd, read_timeout)
result = await fut
return cast(str, result) # Futures are generic in Python 3.9, but not in 3.8, so we need cast.
return result

def _start_reading(
self,
Expand Down