Przejdź do treści

olski.chwyty

Chwyt rejestru, czyli wzorzec prozy, którego w tym repozytorium nie chcemy.

Katalog takich wzorców jest konwencją repozytorium, a sprawdza je przegląd zmian, czyli człowiek czytający zdanie po zdaniu. Wzorzec, który dostanie tu wykrywacz, przestaje tego czekać.

Wiersz o chwycie pada obok werdyktu i tylko pod flagą, bo populacją jest proza, za którą odpowiadamy: autor sprawdzający swój tekst tego katalogu nie zna. Czemu reguła o zaimku progu nie potrzebuje i co odrzucił pomiar, który ją wybrał, mówi docs/linter.md#wykrywacz-chwytu-zgłasza-to-bez-rzeczownika-przy-sobie. O regule zastępującej orzeczenie mówi to samo docs/linter.md#drugi-wykrywacz-zgłasza-zwrot-zastępujący-orzeczenie-członu, a o regule o czasowniku pustym docs/linter.md#trzeci-wykrywacz-zgłasza-czasownik-pusty-przed-rzeczownikiem-odczasownikowym.

PODEJMUJĄCE = 'To' module-attribute

IMIENNE = frozenset({'subst', 'depr', 'ger'}) module-attribute

ZGODNE = ('number', 'gender', 'case') module-attribute

ZAPOWIEDŹ_PODRZĘDNEGO = ',' module-attribute

OSOBOWE = frozenset({'fin', 'praet', 'impt', 'imps', 'winien', 'bedzie'}) module-attribute

ORZEKAJĄCE = OSOBOWE | {'pred'} module-attribute

ZASTĘPUJĄCE_ORZECZENIE = frozenset({('tak', 'samo'), ('też',), ('odwrotnie',)}) module-attribute

GRANICE_CZŁONÓW = frozenset({',', ';', ':', '—', '–', '(', ')', '.', '!', '?', '…'}) module-attribute

PORÓWNANIE = frozenset({'jak', 'niż'}) module-attribute

PODJĘTE_ZDANIE = 'zaimek podejmujący zdanie' module-attribute

ZASTĘPCZE_ORZECZENIE = 'zwrot zastępujący orzeczenie' module-attribute

CZASOWNIK_PUSTY = 'czasownik pusty' module-attribute

PUSTE = frozenset({'dokonać', 'dokonywać', 'nastąpić', 'następować', 'podejmować', 'podjąć', 'przeprowadzać', 'przeprowadzić', 'ulec', 'ulegać', 'wykonać', 'wykonywać'}) module-attribute

RZECZOWNIKOWE = frozenset({'subst', 'depr'}) module-attribute

Chwyt dataclass

Chwyt rejestru w jednym zdaniu: forma albo zwrot wraz z naprawą.

Naprawa idzie razem z formą, bo katalog ją nazywa, a wiersz bez niej mówiłby autorowi tyle, że coś jest nie tak.

Source code in olski/chwyty.py
105
106
107
108
109
110
111
112
113
114
115
116
117
118
@dataclass(frozen=True)
class Chwyt:
    """Chwyt rejestru w jednym zdaniu: forma albo zwrot wraz z naprawą.

    Naprawa idzie razem z formą, bo katalog ją nazywa, a wiersz bez niej mówiłby
    autorowi tyle, że coś jest nie tak.
    """

    #: Która reguła to zgłasza.
    nazwa: str
    #: Forma albo zwrot dwóch form, tak jak je zdanie zapisuje.
    forma: str
    #: Co z tym zrobić, jednym zdaniem.
    naprawa: str

nazwa instance-attribute

forma instance-attribute

naprawa instance-attribute

__init__(nazwa, forma, naprawa)

chwyty(zdanie)

Chwyty rejestru w tym zdaniu; pusta krotka jest milczeniem.

Morfologię bierze stąd, skąd bierze ją gramatyka (olski.segmentacja.morphology), bo zdanie ma być czytane raz i jednakowo: czytanie odebrane formie przez leksykon projektu nie ma tu wracać.

Source code in olski/chwyty.py
121
122
123
124
125
126
127
128
129
130
131
132
133
def chwyty(zdanie: str) -> tuple[Chwyt, ...]:
    """Chwyty rejestru w tym zdaniu; pusta krotka jest milczeniem.

    Morfologię bierze stąd, skąd bierze ją gramatyka
    (:func:`olski.segmentacja.morphology`), bo zdanie ma być czytane raz i
    jednakowo: czytanie odebrane formie przez leksykon projektu nie ma tu wracać.
    """
    segmenty = morphology(zdanie)
    return (
        _podjęte_zdanie(segmenty)
        + _domyślne_orzeczenia(segmenty)
        + _puste_czasowniki(segmenty)
    )