python_technical_primitives.patterns.compositions ================================================= .. py:module:: python_technical_primitives.patterns.compositions .. autoapi-nested-parse:: Specification composition classes (AND, OR, NOT). Part of DIY Specification pattern. Attributes ---------- .. autoapisummary:: python_technical_primitives.patterns.compositions.T Classes ------- .. autoapisummary:: python_technical_primitives.patterns.compositions.AndSpecification python_technical_primitives.patterns.compositions.OrSpecification python_technical_primitives.patterns.compositions.NotSpecification Module Contents --------------- .. py:data:: T .. py:class:: AndSpecification(left: python_technical_primitives.patterns.base.Specification[T], right: python_technical_primitives.patterns.base.Specification[T]) Bases: :py:obj:`python_technical_primitives.patterns.base.Specification`\ [\ :py:obj:`T`\ ] AND composition: both must be satisfied. .. py:attribute:: left .. py:attribute:: right .. py:attribute:: description .. py:method:: is_satisfied_by(candidate: T) -> bool .. py:class:: OrSpecification(left: python_technical_primitives.patterns.base.Specification[T], right: python_technical_primitives.patterns.base.Specification[T]) Bases: :py:obj:`python_technical_primitives.patterns.base.Specification`\ [\ :py:obj:`T`\ ] OR composition: at least one must be satisfied. .. py:attribute:: left .. py:attribute:: right .. py:attribute:: description .. py:method:: is_satisfied_by(candidate: T) -> bool .. py:class:: NotSpecification(spec: python_technical_primitives.patterns.base.Specification[T]) Bases: :py:obj:`python_technical_primitives.patterns.base.Specification`\ [\ :py:obj:`T`\ ] NOT composition: must NOT be satisfied. .. py:attribute:: spec .. py:attribute:: description .. py:method:: is_satisfied_by(candidate: T) -> bool