Ë
    éxjÜ  ã                   óœ   — d dl mZ d dlZd dlmZ d dlZd dlmZ ddl	m
Z
 ddlmZ ddlmZ  ej                  «       Ze G d	„ d
«      «       Zy)é    )ÚOptionalN)Ú	dataclass)ÚArgumentTypeErroré   )Únewest_change_from_file)ÚReplicationServer)Úget_replication_headerc                   óà   — e Zd ZU dZdZeej                     ed<   dZ	ee
   ed<   dZee   ed<   dedee
   fd„Zdedee
   fd	„Zed
edd fd„«       Zededd fd„«       Zedededd fd„«       Zy)ÚReplicationStartzA Represents the point where changeset download should begin.
    NÚdateÚseq_idÚsourceÚsvrÚreturnc                 óÚ  — | j                   �“t        j                  d| j                   z  «       | j                   dkD  rS|j                  | j                   ¬«      }|€$t        j	                  d| j                   › d�«       y |j
                  | _        | j                   dz   S | j                  €J ‚t        j                  d| j                  z  «       |j                  | j                  d¬	«      S )
NzUsing given sequence ID %dr   )Úseqz)Cannot download state information for ID z(. Server may not have this diff anymore.é   z'Looking up sequence ID for timestamp %sT)Úlimit_by_oldest_available)r   ÚlogÚdebugÚget_state_infoÚerrorÚ	timestampr   Útimestamp_to_sequence)Úselfr   Ústart_states      úC/build-osm/venv/lib/python3.12/site-packages/osmium/tools/common.pyÚget_sequencezReplicationStart.get_sequence   sÏ   € Ø�;‰;Ð"Ü�I‰IÐ2°T·[±[Ñ@ÔAØ�{‰{˜QŠØ!×0Ñ0°T·[±[Ð0ÓA�ØÐ&Ü—I‘IØCÀDÇKÁKÀ=ð QBð BôCð  Ø'×1Ñ1�”	Ø—;‘; ‘?Ð"à�y‰yÐ$Ð$Ð$Ü�	‰	Ð;¸d¿i¹iÑGÔHØ×(Ñ(¨¯©ÈdÐ(ÓSÐSó    c                 ó  — | j                   �.t        j                  d| j                   z  «       | j                   S | j                  €J ‚t        j                  d| j                  z  «       |j	                  | j                  «      S )NzUsing end sequence ID %dz+Looking up end sequence ID for timestamp %s)r   r   r   r   r   )r   r   s     r   Úget_end_sequencez!ReplicationStart.get_end_sequence.   sg   € Ø�;‰;Ð"Ü�I‰IÐ0°4·;±;Ñ>Ô?Ø—;‘;Ðà�y‰yÐ$Ð$Ð$Ü�	‰	Ð?À$Ç)Á)ÑKÔLØ×(Ñ(¨¯©Ó3Ð3r   Úidstrc                 óŽ   — 	 t        | «      }|dk  rt        d| z  «      ‚t        |¬«      S # t        $ r t        d| z  «      ‚w xY w)Nz Sequence id '%s' is not a numberéÿÿÿÿzSequence id '%s' is negative)r   )ÚintÚ
ValueErrorr   r   )r"   r   s     r   Úfrom_idzReplicationStart.from_id7   sZ   € ð	PÜ˜“ZˆFð �BŠ;Ü#Ð$BÀUÑ$JÓKÐKä vÔ.Ð.øô ò 	PÜ#Ð$FÈÑ$NÓOÐOð	Pús	   ‚, ¬AÚdatestrc                 óà   — 	 t         j                  j                  | d«      }|j                  t         j                  j
                  ¬«      }t        |¬«      S # t        $ r t        d«      ‚w xY w)Nz%Y-%m-%dT%H:%M:%SZ)Útzinfoz?Date needs to be in ISO8601 format (e.g. 2015-12-24T08:08:08Z).)r   )	ÚdtÚdatetimeÚstrptimeÚreplaceÚtimezoneÚutcr&   r   r   )r(   r   s     r   Ú	from_datezReplicationStart.from_dateC   si   € ð	SÜ—;‘;×'Ñ'¨Ð1EÓFˆDØ—<‘<¤r§{¡{§¡�<Ó7ˆDô
   TÔ*Ð*øô	 ò 	SÜ#ØQóSð Sð	Sús   ‚A
A ÁA-ÚfnameÚignore_headersc                 ó$  — |rd }d }d }n	 t        | «      \  }}}|€0|€.t        j	                  d«       	 t        | «      }|€t        d«      ‚t        |||¬«      S # t        $ r}t        |«      ‚d }~ww xY w# t        $ r}t        |«      ‚d }~ww xY w)NzCOSM file has no replication headers. Looking for newest OSM object.z-OSM file does not seem to contain valid data.)r   r   r   )r	   ÚRuntimeErrorr   r   r   r   r   )r2   r3   Útsr   ÚurlÚes         r   Úfrom_osm_filezReplicationStart.from_osm_fileN   s«   € áØˆBØˆCØ‰Cð+Ü!7¸Ó!>‘��c˜2ð ˆ:˜#˜+Ü�I‰IÐ[Ô\ð+Ü,¨UÓ3�ð ˆzÜ'Ð(WÓXÐXä s°¸CÔ@Ð@øô  ò +Ü'¨Ó*Ð*ûð+ûô  ò +Ü'¨Ó*Ð*ûð+ús.   ‹A ´A6 Á	A3Á#A.Á.A3Á6	BÁ?B
Â
B)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r+   r,   Ú__annotations__r   r%   r   Ústrr   r   r!   Ústaticmethodr'   r1   Úboolr9   © r   r   r   r      sÞ   … ñà"&€Dˆ(�2—;‘;Ñ
Ó&Ø €FˆH�S‰MÓ Ø €FˆH�S‰MÓ ðTÐ 1ð T°h¸s±mó Tð"4Ð$5ð 4¸(À3¹-ó 4ð ð	/�sð 	/Ð1ò 	/ó ð	/ð ð+˜3ð +Ð#5ò +ó ð+ð ðA˜Sð A°$ð AÐ;Mò Aó ñAr   r   )Útypingr   ÚloggingÚdataclassesr   r,   r+   Úargparser   Úreplicationr   Úreplication.serverr   Úreplication.utilsr	   Ú	getLoggerr   r   rB   r   r   Ú<module>rK      sP   ðõ Û Ý !Û Ý &å 1Ý 2Ý 6ð €g×ÑÓ€ð ÷NAð NAó ñNAr   