minor package and README updates
This commit is contained in:
parent
54327432fa
commit
d60250eb8b
19
README.md
19
README.md
@ -3,6 +3,8 @@
|
|||||||
simple event-based model over core Python utilities like `ThreadPoolExecutor` to
|
simple event-based model over core Python utilities like `ThreadPoolExecutor` to
|
||||||
facilitate reactivity and manage concurrent responses.
|
facilitate reactivity and manage concurrent responses.
|
||||||
|
|
||||||
|
![High-level execution flow diagram](docs/_static/execlib.png)
|
||||||
|
|
||||||
There are a few top-level classes exposed by the package:
|
There are a few top-level classes exposed by the package:
|
||||||
|
|
||||||
- **Router**: Central event routing object. Routers facilitate route registration,
|
- **Router**: Central event routing object. Routers facilitate route registration,
|
||||||
@ -17,3 +19,20 @@ There are a few top-level classes exposed by the package:
|
|||||||
iNotify to dynamically respond to file events.
|
iNotify to dynamically respond to file events.
|
||||||
- **Server**: Long-running process manager for listeners and optional live-reloading via
|
- **Server**: Long-running process manager for listeners and optional live-reloading via
|
||||||
HTTP. Interfaces with listener `start()` and `shutdown()` for graceful interruption.
|
HTTP. Interfaces with listener `start()` and `shutdown()` for graceful interruption.
|
||||||
|
|
||||||
|
# Install
|
||||||
|
```sh
|
||||||
|
pip install execlib
|
||||||
|
```
|
||||||
|
|
||||||
|
# Development
|
||||||
|
|
||||||
|
## Documentation
|
||||||
|
```sh
|
||||||
|
pip install execlib[docs]
|
||||||
|
```
|
||||||
|
|
||||||
|
## Testing
|
||||||
|
```sh
|
||||||
|
pip install execlib[tests]
|
||||||
|
```
|
||||||
|
BIN
docs/_static/execlib.png
vendored
Normal file
BIN
docs/_static/execlib.png
vendored
Normal file
Binary file not shown.
After Width: | Height: | Size: 331 KiB |
@ -860,6 +860,7 @@ class Router[E: Event]:
|
|||||||
|
|
||||||
# manually track and cancel pending futures b/c `.shutdown(cancel_futures=True)`
|
# manually track and cancel pending futures b/c `.shutdown(cancel_futures=True)`
|
||||||
# is misleading, and will cause an outer `as_completed` loop to hang
|
# is misleading, and will cause an outer `as_completed` loop to hang
|
||||||
|
if self._active_futures:
|
||||||
for future in tqdm(
|
for future in tqdm(
|
||||||
list(self._active_futures),
|
list(self._active_futures),
|
||||||
desc=color_text(
|
desc=color_text(
|
||||||
|
@ -43,6 +43,7 @@ docs = [
|
|||||||
"furo",
|
"furo",
|
||||||
"myst-parser",
|
"myst-parser",
|
||||||
]
|
]
|
||||||
|
jupyter = ["ipykernel"]
|
||||||
|
|
||||||
[project.urls]
|
[project.urls]
|
||||||
Homepage = "https://doc.olog.io/execlib"
|
Homepage = "https://doc.olog.io/execlib"
|
||||||
|
Loading…
Reference in New Issue
Block a user