Skip to content

Commit 189f380

Browse files
Fix typos in docs (#139)
* Fix typos in docs * General update
1 parent c6a4acb commit 189f380

File tree

6 files changed

+14
-13
lines changed

6 files changed

+14
-13
lines changed

.github/workflows/test.yml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,26 +14,26 @@ jobs:
1414
strategy:
1515
matrix:
1616
os: [ubuntu-latest, windows-latest, macos-latest]
17-
python-version: [ '3.9', '3.10', '3.11', '3.12', '3.13' ]
17+
python-version: [ '3.10', '3.11', '3.12', '3.13', '3.14' ]
1818

1919
steps:
2020
- name: Checkout repository
21-
uses: actions/checkout@v4
21+
uses: actions/checkout@v5
2222
- name: Setup Python
23-
uses: actions/setup-python@v5
23+
uses: actions/setup-python@v6
2424
with:
2525
python-version: ${{ matrix.python-version }}
2626
- name: Ensure pip >= v25.1
2727
run: python -m pip install "pip >= 25.1"
2828
- name: Install dependencies
29-
run: pip install --group test ".[click,fastapi,anycorn]"
29+
run: pip install --group test -e ".[click,fastapi,anycorn]"
3030
- name: Check types
3131
run: mypy src
3232
- name: Run tests
33-
if: ${{ !((matrix.python-version == '3.13') && (matrix.os == 'ubuntu-latest')) }}
33+
if: ${{ !((matrix.python-version == '3.14') && (matrix.os == 'ubuntu-latest')) }}
3434
run: pytest --color=yes -v tests
3535
- name: Run code coverage
36-
if: ${{ (matrix.python-version == '3.13') && (matrix.os == 'ubuntu-latest') }}
36+
if: ${{ (matrix.python-version == '3.14') && (matrix.os == 'ubuntu-latest') }}
3737
run: |
3838
coverage run -m pytest tests
3939
coverage report --fail-under=100

docs/guide.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -250,7 +250,7 @@ class MyModule(Module):
250250

251251
## Contexts
252252

253-
FPS offers a `Context` class that allows to share objects independantly of modules. For instance, say you want to share a file object. Here is how you would do:
253+
FPS offers a `Context` class that allows to share objects independently of modules. For instance, say you want to share a file object. Here is how you would do:
254254

255255
```py
256256
from io import TextIOWrapper
@@ -301,7 +301,7 @@ Let's see what happened:
301301
- The publisher can check that the published file is not used anymore with `await shared_file.freed()`.
302302
- When the `context` is closed, it waits for every published object to be freed and then it proceeds with their teardown, if any.
303303

304-
Contexts ensure that objects are shared safely by their "owner" and that they are torn down when they are not being used anymore, by keeping references of "borrowers". Borrowers must collaborate by explicitly dropping objects when they are done using them. Owners can explicitly check that their objects are free to be disposed, althoug this is optional.
304+
Contexts ensure that objects are shared safely by their "owner" and that they are torn down when they are not being used anymore, by keeping references of "borrowers". Borrowers must collaborate by explicitly dropping objects when they are done using them. Owners can explicitly check that their objects are free to be disposed, although this is optional.
305305

306306
## Signals
307307

docs/index.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,4 @@ FPS is a Fast Pluggable System. It was originally designed to create [Jupyverse]
44
- **configuration**: each module can be configured with a set of parameters accessible from the CLI, and an application can be created declaratively as a Python dictionary or a JSON file.
55
- **pluggability**: modules can share objects, allowing the use of late binding to connect pluggins at runtime.
66
- **concurrency**: modules have startup and teardown phases for managing asynchronous resources safely.
7+
- borrow checker: shared objects are torn down until all borrowers drop their reference, avoiding the use of "dangling" resources.

pyproject.toml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,13 @@ classifiers = [
1818
"Typing :: Typed",
1919
"Programming Language :: Python",
2020
"Programming Language :: Python :: 3",
21-
"Programming Language :: Python :: 3.9",
2221
"Programming Language :: Python :: 3.10",
2322
"Programming Language :: Python :: 3.11",
2423
"Programming Language :: Python :: 3.12",
2524
"Programming Language :: Python :: 3.13",
25+
"Programming Language :: Python :: 3.14",
2626
]
27-
requires-python = ">= 3.9"
27+
requires-python = ">= 3.10"
2828
dependencies = [
2929
"anyio",
3030
"anyioutils >=0.7.0,<0.8.0",
@@ -47,7 +47,7 @@ anycorn = [
4747
[dependency-groups]
4848
test = [
4949
"pytest >=8,<9",
50-
"trio >=0.27.0,<0.28",
50+
"trio >=0.32.0,<0.33",
5151
"mypy",
5252
"ruff",
5353
"coverage[toml] >=7,<8",

src/fps/_config.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ def _get_config_description(description_lines: list[str], module: Module) -> Non
7575
if path:
7676
path += "."
7777
if module.config is not None:
78-
for key, value in module.config.model_fields.items():
78+
for key, value in type(module.config).model_fields.items():
7979
title = "" if value.title is None else f" {value.title}"
8080
description_lines.append(f"{path}{key}:{title}")
8181
description_lines.append(f" Default: {value.default}")

src/fps/_context.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ async def get(self, timeout: float = float("inf")) -> Value:
121121
Borrow the shared value.
122122
123123
Args:
124-
timeout: The time to wait for the value to be dropped.
124+
timeout: The time to wait to borrow the shared value.
125125
126126
Returns:
127127
The borrowed value.

0 commit comments

Comments
 (0)