
    io                     `    d Z ddlmZmZ ddlmZ ddlmZ ddlm	Z	  G d de
          ZdgZdS )	zFLOAT values from :rfc:`5545`.    )AnyClassVar)Self)JCalParsingError)
Parametersc            	           e Zd ZU dZdZee         ed<   eed<   ddde	de
ee	f         dz  de	d	ef fd
Zd	efdZedeez  d	efd            Zed	ee         fd            ZddlmZ ded	efdZeded	efd            Z xZS )vFloata  Float

    Value Name:
        FLOAT

    Purpose:
        This value type is used to identify properties that contain
        a real-number value.

    Format Definition:
        This value type is defined by the following notation:

        .. code-block:: text

            float      = (["+"] / "-") 1*DIGIT ["." 1*DIGIT]

    Description:
        If the property permits, multiple "float" values are
        specified by a COMMA-separated list of values.

        Example:

        .. code-block:: text

            1000000.0000001
            1.333
            -3.14

        .. code-block:: pycon

            >>> from icalendar.prop import vFloat
            >>> float = vFloat.from_ical('1000000.0000001')
            >>> float
            1000000.0000001
            >>> float = vFloat.from_ical('1.333')
            >>> float
            1.333
            >>> float = vFloat.from_ical('+1.333')
            >>> float
            1.333
            >>> float = vFloat.from_ical('-3.14')
            >>> float
            -3.14
    FLOATdefault_valueparamsNr   argskwargsreturnc                j     t                      j        | g|R i |}t          |          |_        |S )N)super__new__r   r   )clsr   r   r   self	__class__s        O/root/projects/butler/venv/lib/python3.11/site-packages/icalendar/prop/float.pyr   zvFloat.__new__;   s>     uwws4T444V44 ((    c                 F    t          |                               d          S )Nzutf-8)strencode)r   s    r   to_icalzvFloat.to_icalB   s    4yy(((r   icalc                 d    	  | |          S # t           $ r}t          d|           |d }~ww xY w)NzExpected float value, got: )	Exception
ValueError)r   r   es      r   	from_icalzvFloat.from_icalE   sR    	J3t99 	J 	J 	JA4AABBI	Js   
 
/*/c                      | d          gS )zExamples of vFloat.go!	@ )r   s    r   exampleszvFloat.examplesL   s     F}r   r   )VALUEnamec                     || j                                         | j                                        t	          |           gS )zBThe jCal representation of this property according to :rfc:`7265`.)r   to_jcalr&   lowerfloat)r   r'   s     r   r)   zvFloat.to_jcalS   s3    dk))++TZ-=-=-?-?tMMr   jcal_propertyc                 ,   t          j        ||            |d                                         dk    rddlm} |                    |          S t          j        |d         t          | d            | |d         t          j	        |                    S )zParse jCal from :rfc:`7265`.

        Parameters:
            jcal_property: The jCal property to parse.

        Raises:
            ~error.JCalParsingError: If the jCal provided is invalid.
        r   GEO)vGeo   r   )
r   validate_propertyuppericalendar.propr/   	from_jcalvalidate_value_typer+   r   from_jcal_property)r   r,   r/   s      r   r4   zvFloat.from_jcalW   s     	*=#>>>!!##u,,++++++>>-000,]1-=uc1MMMs!0??
 
 
 	
r   )__name__
__module____qualname____doc__r   r   r   __annotations__r   r   dictr   r   bytesr   classmethodr+   r"   listr%   icalendar.paramr&   r)   r4   __classcell__)r   s   @r   r	   r	   
   s        + +Z $+M8C=*** :>  !%c3h$!6IL	     ) ) ) ) ) JS5[ JT J J J [J d    [ &%%%%%NC ND N N N N 
d 
t 
 
 
 [
 
 
 
 
r   r	   N)r:   typingr   r   icalendar.compatibilityr   icalendar.errorr   icalendar.parserr   r+   r	   __all__r$   r   r   <module>rG      s    $ $                 ( ( ( ( ( ( , , , , , , ' ' ' ' ' '`
 `
 `
 `
 `
U `
 `
 `
F *r   