From f2cda3ca9ae77b8f3d8b7c1cae5a77d66b299ce3 Mon Sep 17 00:00:00 2001 From: Nitzan Zada Date: Wed, 23 Feb 2022 21:34:41 +0200 Subject: [PATCH] added controlled scope documentation --- CHANGELOG.md | 5 +++++ README.md | 21 +++++++++++++++++++++ docs/index.md | 22 ++++++++++++++++++++++ 3 files changed, 48 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3ab1430..21aa753 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,8 @@ +# 0.4.0 + +* Added new `resolve_open` for more control over resolution scope and disposal. + + # 0.3.1 * Better typing when using `Depends(...)` and `Lazy(...)`. diff --git a/README.md b/README.md index 77f8f25..cdbce96 100644 --- a/README.md +++ b/README.md @@ -149,6 +149,27 @@ resolve(get_dep_a) # enter b ``` +Controlled dependency lifetime scope: + +```python +from deadsimple import resolve_open + + +def get_dep_b() -> DepB: + print("enter b") + yield DepB(value="some val") + print("exit b") + + +with resolve_open(get_dep_b) as dep_b: + print("inside") + +# prints: +# enter b +# inside +# exit b +``` + ## Todo diff --git a/docs/index.md b/docs/index.md index df3ca51..9153a3f 100644 --- a/docs/index.md +++ b/docs/index.md @@ -158,6 +158,28 @@ resolve(get_dep_a) ``` +## Controlled lifetime scope + +```python +from deadsimple import resolve_open + + +def get_dep_b() -> DepB: + print("enter b") + yield DepB(value="some val") + print("exit b") + + +with resolve_open(get_dep_b) as dep_b: + print("inside") + +# prints: +# enter b +# inside +# exit b +``` + + ## Installation ```