o
    o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                   @   s:   e Zd ZdZedefddZejdeddf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   u/var/www/html/construction_image-detection-poc/venv/lib/python3.10/site-packages/sympy/physics/biomechanics/_mixin.pyname   s   z_NamedMixin.namer   Nc                 C   s   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||| _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    