
    sg                     "    d Z dgZ G d d      Zy)zMixin classes for sharing functionality between unrelated classes.

This module is named with a leading underscore to signify to users that it's
"private" and only intended for internal use by the biomechanics module.

_NamedMixinc                   T    e Zd ZdZedefd       Zej                  deddfd       Zy)r   ao  Mixin class for adding `name` properties.

    Valid names, as will typically be used by subclasses as a suffix when
    naming automatically-instantiated symbol attributes, must be nonzero length
    strings.

    Attributes
    ==========

    name : str
        The name identifier associated with the instance. Must be a string of
        length at least 1.

    returnc                     | j                   S )z,The name associated with the class instance.)_name)selfs    T/var/www/html/venv/lib/python3.12/site-packages/sympy/physics/biomechanics/_mixin.pynamez_NamedMixin.name   s     zz    r	   Nc                 4   t        | d      rdt        |       d}t        |      t        |t              s-dt        |       dt        |       dt         d}t        |      |dv r*dt        |       d	t        t               d}t        |      || _        y )
Nr   zCan't set attribute `name` to z as it is immutable.zName z passed to `name` was of type z
, must be .>    z& is invalid, must be a nonzero length )	hasattrreprAttributeError
isinstancestrtype	TypeError
ValueErrorr   )r   r	   msgs      r   r	   z_NamedMixin.name!   s    4!1$t* >   !%%$$T
|#A:,jQ0  C. 4<T
|#I9+Q   S/!
r
   )__name__
__module____qualname____doc__propertyr   r	   setter r
   r   r   r      sH     c   
[[   r
   N)r   __all__r   r   r
   r   <module>r      s    /) )r
   