Przejdź do treści

olski.werdykt.wykazy

Wykazy, które werdykt wypisuje pod odczytaniem: formy, rachunek i żądania ramy.

Wykaz jest jeden na streszczenie odczytania (Verdict.readings w olski/werdykt/zdanie.py), więc wszystkie trzy drukuje jeden wydruk (_wykaz w olski/check.py). Liczy się każdy z lasu, a nie z werdyktu, więc moduł ten o werdykcie nie wie.

OdczytaniaFormy dataclass

Forma zdania wraz z odczytaniami, którymi tam stać może, każde napisem.

Odczytanie jest napisem, a nie parą lematu i znacznika, bo oba wydruki wypisują je razem, a rozdzielone kazałyby każdemu z nich składać ten napis osobno.

Source code in olski/werdykt/wykazy.py
29
30
31
32
33
34
35
36
37
38
39
@dataclass(frozen=True)
class OdczytaniaFormy:
    """Forma zdania wraz z odczytaniami, którymi tam stać może, każde napisem.

    Odczytanie jest napisem, a nie parą lematu i znacznika, bo oba wydruki
    wypisują je razem, a rozdzielone kazałyby każdemu z nich składać ten napis
    osobno.
    """

    forma: str
    odczytania: tuple[str, ...]

forma instance-attribute

odczytania instance-attribute

__init__(forma, odczytania)

Żądanie dataclass

Czego czasownik zdania żąda od tego, co w jego pozycji stanęło.

Wiersz jest jeden na obsadzoną pozycję, a nie jeden na rolę, bo jedna rola obsadza czasem dwie pozycje naraz: Autor doradza czytelnikowi poprawkę. ma dopełnienie w celowniku obok dopełnienia w bierniku, a czasownik żąda od nich czego innego.

Source code in olski/werdykt/wykazy.py
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
@dataclass(frozen=True)
class Żądanie:
    """Czego czasownik zdania żąda od tego, co w jego pozycji stanęło.

    Wiersz jest jeden na obsadzoną pozycję, a nie jeden na rolę, bo jedna rola
    obsadza czasem dwie pozycje naraz: `Autor doradza czytelnikowi poprawkę.`
    ma dopełnienie w celowniku obok dopełnienia w bierniku, a czasownik żąda
    od nich czego innego.
    """

    #: Rola, którą streszczenie nazywa to wypełnienie.
    rola: str
    #: Formy wypełnienia i forma czasownika, tak jak stoją w zdaniu.
    wypełnienie: str
    czasownik: str
    #: Żądane klasy jako alternatywa, nazwane przed nienazwanymi
    #: (:data:`olski.żądania.NIENAZWANE`), a w każdej z tych grup alfabetycznie.
    klasy: tuple[str, ...]
    #: Lematy głowy wypełnienia, czyli słowa, którymi ta pozycja stoi. O nie pyta
    #: deklaracja osób (``olski/osoby.py``), bo deklaruje się lemat, a nie formę.
    #: Poza porównaniem, bo wiersz jest o pozycji, a nie o głowie, i dwa kształty
    #: dają czasem tę samą pozycję o dwóch głowach (:func:`_zwinięte`).
    lematy: frozenset[str] = field(compare=False)

rola instance-attribute

wypełnienie instance-attribute

czasownik instance-attribute

klasy instance-attribute

lematy = field(compare=False) class-attribute instance-attribute

__init__(rola, wypełnienie, czasownik, klasy, lematy)

koszty_drzewa(drzewo)

Pozycje cennika, którymi płaci to drzewo: węzeł swoją produkcją, liść swoją formą.

Pytanie jest do obu jedno, więc i pole jest jedno (olski.parse.Leaf.koszty), a suma stąd jest tą liczbą, po której las porządkuje czytania.

Source code in olski/werdykt/wykazy.py
101
102
103
104
105
106
107
108
109
110
def koszty_drzewa(drzewo: Tree) -> Iterator[str]:
    """Pozycje cennika, którymi płaci to drzewo: węzeł swoją produkcją, liść swoją formą.

    Pytanie jest do obu jedno, więc i pole jest jedno (:attr:`olski.parse.Leaf.koszty`),
    a suma stąd jest tą liczbą, po której las porządkuje czytania.
    """
    yield from drzewo.koszty
    if isinstance(drzewo, Node):
        for dziecko in drzewo.children:
            yield from koszty_drzewa(dziecko)