
    g                     *    d Z dgZ G 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                   X    e Zd ZdZedefd            Zej        deddf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                     | j         S )z,The name associated with the class instance.)_name)selfs    ]/var/www/html/ai-engine/env/lib/python3.11/site-packages/sympy/physics/biomechanics/_mixin.pynamez_NamedMixin.name   s     z    r	   Nc                    t          | d          r"dt          |           d}t          |          t          |t                    s:dt          |           dt          |           dt           d}t          |          |dv r7d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	   msgs      r   r	   z_NamedMixin.name!   s    4!! 	&$t**     !%%%$$$ 	!0T

 0 0::0 0),0 0 0  C.. 4<< T

    99       S//!


r
   )__name__
__module____qualname____doc__propertyr   r	   setter r
   r   r   r      su          c    X 
[     [  r
   N)r   __all__r   r   r
   r   <module>r      sJ     /) ) ) ) ) ) ) ) ) )r
   