Przejdź do treści

olski.słownictwo

Słownictwo projektu: lematy, o których projekt orzeka sam.

Wykluczenie słownikowe (admissible w olski/segmentacja.py) jest zakładem o rejestr, a nie zdaniem o polszczyźnie: Go jest grą. polszczyzna ma. Zakład zostaje domyślnością, a sekcja lematy konfiguracji projektu (olski/konfiguracja.py) uchyla go na jednym lemacie (WPUSZCZANE) albo odbiera lematowi czytania tam, gdzie tamto kryterium sięgnąć nie może (POMIJANE).

Wywód obu kierunków wraz z ich ceną trzyma docs/warstwa-leksykalna.md#słownictwo-projektu-orzeka-o-lemacie-w-obie-strony.

WPUSZCZANE = 'wpuszczane' module-attribute

POMIJANE = 'pomijane' module-attribute

KLUCZE = (WPUSZCZANE, POMIJANE) module-attribute

SŁOWNICTWO = czytaj(sekcja(LEMATY, KLUCZE)) module-attribute

Słownictwo dataclass

Co projekt orzeka o lematach, w obu kierunkach naraz.

Wartość domyślna jest projektem bez tej sekcji i wchodzi argumentem domyślnym do warunków w olski/segmentacja.py, więc kto czyta jedno zdanie dwiema deklaracjami, podaje swoją zamiast podmieniać stałą.

Source code in olski/słownictwo.py
31
32
33
34
35
36
37
38
39
40
41
42
43
@dataclass(frozen=True)
class Słownictwo:
    """Co projekt orzeka o lematach, w obu kierunkach naraz.

    Wartość domyślna jest projektem bez tej sekcji i wchodzi argumentem
    domyślnym do warunków w ``olski/segmentacja.py``, więc kto czyta jedno
    zdanie dwiema deklaracjami, podaje swoją zamiast podmieniać stałą.
    """

    #: Lematy, których projekt używa mimo wykluczenia słownikowego.
    wpuszczane: frozenset[str] = frozenset()
    #: Lematy, których projekt nie używa wcale.
    pomijane: frozenset[str] = frozenset()

wpuszczane = frozenset() class-attribute instance-attribute

pomijane = frozenset() class-attribute instance-attribute

__init__(wpuszczane=frozenset(), pomijane=frozenset())

czytaj(dane)

Słownictwo z sekcji konfiguracji.

Lemat stojący w obu kierunkach naraz zgłasza się, bo dwie takie deklaracje znoszą się nawzajem, a rozstrzygnięcie po cichu byłoby regułą, której nikt nie zadeklarował.

Source code in olski/słownictwo.py
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
def czytaj(dane: Mapping[str, Any]) -> Słownictwo:
    """Słownictwo z sekcji konfiguracji.

    Lemat stojący w obu kierunkach naraz zgłasza się,
    bo dwie takie deklaracje znoszą się nawzajem,
    a rozstrzygnięcie po cichu byłoby regułą, której nikt nie zadeklarował.
    """
    wpuszczane = napisy(LEMATY, WPUSZCZANE, dane)
    pomijane = napisy(LEMATY, POMIJANE, dane)
    obydwa = wpuszczane & pomijane
    if obydwa:
        raise ZłaKonfiguracja(
            f"sekcja {LEMATY}: lemat stoi w obu kierunkach naraz: {', '.join(sorted(obydwa))}"
        )
    return Słownictwo(wpuszczane=wpuszczane, pomijane=pomijane)