split would fail if no semicolon is present ( e.g. for fixed delays ) while partition takes care of that.
But I will minimize the calls by merging both approaches together:

```
lbound, _, ubound = self.tarpit.partition(';')
```