summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMichele Simionato <michele.simionato@gmail.com>2021-03-31 05:38:08 +0200
committerMichele Simionato <michele.simionato@gmail.com>2021-03-31 05:38:08 +0200
commitf77bcbce45deb6757ef17d06033ef00a8b85c6df (patch)
tree4378f9c09925e5e3c640f45bb4fac48f1e6efbc0 /src
parent20a43882ca3d3771b8f76ec37c974592d7e299aa (diff)
parent5b078615f9ccd2b4bf25ae808ea3820dca06adf2 (diff)
downloadpython-decorator-git-f77bcbce45deb6757ef17d06033ef00a8b85c6df.tar.gz
Merge branch 'master' of github.com:micheles/decorator into 4.5
Diffstat (limited to 'src')
-rw-r--r--src/tests/documentation.py27
1 files changed, 12 insertions, 15 deletions
diff --git a/src/tests/documentation.py b/src/tests/documentation.py
index c9f6265..28369ed 100644
--- a/src/tests/documentation.py
+++ b/src/tests/documentation.py
@@ -382,6 +382,9 @@ calling func with args (), {}
```
+Decorator factories
+-------------------------------------------
+
The `decorator` function can also be used to define factories of decorators,
i.e. functions returning decorators. In general you can just write something
like this:
@@ -394,9 +397,8 @@ def decfactory(param1, param2, ...):
```
This is fully general but requires an additional level of nesting. For this
-reason since version 4.2 there is a facility to build
-decorator factories by using a single caller with default arguments i.e.
-writing something like this:
+reason since version 4.2 there is a facility to build decorator factories by
+using a single caller with default arguments i.e. writing something like this:
```python
def caller(f, param1=default1, param2=default2, ..., *args, **kw):
@@ -410,22 +412,17 @@ restriction, there exists an unique default decorator, i.e. the member
of the family which uses the default values for all parameters. Such
decorator can be written as ``decfactory()`` with no parameters specified;
moreover, as a shortcut, it is also possible to elide the parenthesis,
-a feature much requested by the users. For years I have been opposite
-to this feature request, since having explicit parenthesis to me is more clear
+a feature much requested by the users. For years I have been opposing
+the request, since having explicit parenthesis to me is more clear
and less magic; however once this feature entered in decorators of
the Python standard library (I am referring to the [dataclass decorator](
https://www.python.org/dev/peps/pep-0557/)) I finally gave up.
-The example below will show how it works in practice.
-
-Decorator factories
--------------------------------------------
-
-Sometimes one has to deal with blocking resources, such as ``stdin``.
-Sometimes it is better to receive a "busy" message than just blocking
-everything.
-This can be accomplished with a suitable family of decorators (decorator
-factory), parameterize by a string, the busy message:
+The example below shows how it works in practice. The goal is to
+convert a function relying on a blocking resource into a function
+returning a "busy" message if the resource is not available.
+This can be accomplished with a suitable family of decorators
+parameterize by a string, the busy message:
$$blocking