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