Update README.md: add pipeline descripiton
This commit is contained in:
43
README.md
43
README.md
@@ -103,6 +103,49 @@ assert tst == 1
|
|||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
|
----
|
||||||
|
|
||||||
|
#### Сборка конвейеров преобразований:
|
||||||
|
|
||||||
|
Пусть, имеется несколько методов-потребителей, которые необходимо вызывать последовательно:
|
||||||
|
|
||||||
|
```python
|
||||||
|
|
||||||
|
from breakshaft.convertor import ConvRepo
|
||||||
|
|
||||||
|
repo = ConvRepo()
|
||||||
|
|
||||||
|
# Объявляем A и B, а также методы преобразований - как в прошлом примере
|
||||||
|
|
||||||
|
type cons2ret = str # избегаем использования builtin-типов, чтобы избежать простых коллизий
|
||||||
|
|
||||||
|
|
||||||
|
def consumer1(dep: A) -> B:
|
||||||
|
return B(float(42))
|
||||||
|
|
||||||
|
|
||||||
|
def consumer2(dep: B) -> cons2ret:
|
||||||
|
return str(dep.b)
|
||||||
|
|
||||||
|
|
||||||
|
def consumer3(dep: cons2ret) -> int:
|
||||||
|
return int(float(dep))
|
||||||
|
|
||||||
|
|
||||||
|
pipeline = repo.create_pipeline(
|
||||||
|
(B,),
|
||||||
|
[consumer1, consumer2, consumer3],
|
||||||
|
force_commutative=True,
|
||||||
|
allow_sync=True,
|
||||||
|
allow_async=False,
|
||||||
|
force_async=False
|
||||||
|
)
|
||||||
|
|
||||||
|
dat = pipeline(B(42))
|
||||||
|
assert dat == 42
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
----
|
----
|
||||||
|
|
||||||
#### Как получить граф преобразований:
|
#### Как получить граф преобразований:
|
||||||
|
|||||||
Reference in New Issue
Block a user