U
    L?h                     @   s   d Z dgZG dd dZdS )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                   @   s8   e Zd ZdZeedddZejeddddZdS )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                 C   s   | j S )z,The name associated with the class instance.)_name)self r   S/var/www/html/venv/lib/python3.8/site-packages/sympy/physics/biomechanics/_mixin.pyname   s    z_NamedMixin.nameN)r   r   c                 C   s   t | dr"dt| d}t|t|tsTdt| dt| dt d}t||dkr~dt| d	tt d}t||| _d S )
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   msgr   r   r   r   !   s    

)__name__
__module____qualname____doc__propertyr   r   setterr   r   r   r   r      s
   N)r   __all__r   r   r   r   r   <module>   s   