
    df5                        d dl mZ esdev rddlmZ nd dlZ	 d dlZd Z
d Zd Zd	 Z G d
 de      Zd Zd Zd Zd Zd Zd Z G d de      Zd Zd ZdZd ZddlmZ ddlmZ ej<                  Zej>                  Zej@                  Z ejB                  Z!ejD                  Z"ejF                  Z#d Z$d Z% G d dejL                        Z' ejP                  e'        G d de'      Z) ejT                  e)       y# e	$ r d dlZY w xY w)     )version_info.   )_gnmNc                     	 d| j                   j                         z   }d| j                  j
                  d| j                  j                  d|dS # t        j                  $ r d}Y Kw xY w)Nz	proxy of  <r   z; z >)this__repr____builtin__	Exception	__class__
__module____name__)selfstrthiss     +/usr/lib/python3/dist-packages/osgeo/gnm.py
_swig_reprr      s_    		 2 2 44 "^^668O8OQXZZ    s   A A+*A+c                       fd}|S )Nc                     |dk(  r | ||       y |dk(  r| j                   j                  |       y t        | |      r.t        t	        t        |       |      t              r | ||       y t        d| z        )Nr
   thisownz(You cannot add instance attributes to %s)r
   ownhasattr
isinstancegetattrtypepropertyAttributeError)r   namevaluesets      r   set_instance_attrzE_swig_setattr_nondynamic_instance_variable.<locals>.set_instance_attr   si    6>dE"YIIMM% T4 ZT
D0I8%TdE" !Kd!RSS     )r!   r"   s   ` r   *_swig_setattr_nondynamic_instance_variabler%      s    T r#   c                       fd}|S )Nc                     t        | |      r%t        t        | |      t              s | ||       y t	        d| z        )Nz%You cannot add class attributes to %s)r   r   r   r   r   )clsr   r    r!   s      r   set_class_attrz?_swig_setattr_nondynamic_class_variable.<locals>.set_class_attr)   s:    3jd1CX&NT5! !H3!NOOr#   r$   )r!   r)   s   ` r   '_swig_setattr_nondynamic_class_variabler*   (   s    P
 r#   c                       fd}|S )zlClass decorator for adding a metaclass to a SWIG wrapped class - a slimmed down version of six.add_metaclassc                 p     | j                   | j                  | j                  j                               S N)r   	__bases____dict__copy)r(   	metaclasss    r   wrapperz$_swig_add_metaclass.<locals>.wrapper3   s'    s}}cll6G6G6IJJr#   r$   )r1   r2   s   ` r   _swig_add_metaclassr3   1   s    KNr#   c                   4    e Zd ZdZ eej                        Zy)_SwigNonDynamicMetazKMeta class to enforce nondynamic attributes (no new attributes) for a classN)r   r   __qualname____doc__r*   r   __setattr__r$   r#   r   r5   r5   8   s    U9$:J:JKKr#   r5   c                  &    t        j                  |  S )zGetUseExceptions() -> int)r   GetUseExceptionsargss    r   r:   r:   >   s      $''r#   c                  &    t        j                  |  S )z_GetExceptionsLocal() -> int)r   _GetExceptionsLocalr;   s    r   r>   r>   B       ##T**r#   c                  &    t        j                  |  S )z_SetExceptionsLocal(int bVal))r   _SetExceptionsLocalr;   s    r   rA   rA   F   r?   r#   c                  &    t        j                  |  S )z_UseExceptions())r   _UseExceptionsr;   s    r   rC   rC   J   s    %%r#   c                  &    t        j                  |  S )z_DontUseExceptions())r   _DontUseExceptionsr;   s    r   rE   rE   N   s    ""D))r#   c                  &    t        j                  |  S )z+_UserHasSpecifiedIfUsingExceptions() -> int)r   "_UserHasSpecifiedIfUsingExceptionsr;   s    r   rG   rG   R   s    22D99r#   c                   $    e Zd ZdZddZd Zd Zy)ExceptionMgra  
    Context manager to manage Python Exception state
    for GDAL/OGR/OSR/GNM.

    Separate exception state is maintained for each
    module (gdal, ogr, etc), and this class appears independently
    in all of them. This is built in top of calls to the older
    UseExceptions()/DontUseExceptions() functions.

    Example::

        >>> print(gdal.GetUseExceptions())
        0
        >>> with gdal.ExceptionMgr():
        ...     # Exceptions are now in use
        ...     print(gdal.GetUseExceptions())
        1
        >>>
        >>> # Exception state has now been restored
        >>> print(gdal.GetUseExceptions())
        0

    c                     || _         y)zK
        Save whether or not this context will be using exceptions
        N)requestedUseExceptions)r   useExceptionss     r   __init__zExceptionMgr.__init__n   s     '4#r#   c                     t               | _        t        | j                         t        j
                  dk(  r&	 ddlm} |r|j                  | j                         yyy# t        $ r d}Y -w xY w)z
        On context entry, save the current GDAL exception state, and
        set it to the state requested for the context

        
osgeo.gdalr   
gdal_arrayN)	r>   currentUseExceptionsrA   rK   rI   r   r   rQ   ImportError)r   rQ   s     r   	__enter__zExceptionMgr.__enter__t   sl     %8$9!D778""l2"( ..t/J/JK  3  "!
"s   A A-,A-c                     t        | j                         t        j                  dk(  r&	 ddlm} |r|j                  | j                         yyy# t        $ r d}Y -w xY w)zy
        On exit, restore the GDAL/OGR/OSR/GNM exception state which was
        current on entry to the context
        rO   r   rP   N)rA   rR   rI   r   r   rQ   rS   )r   exc_typeexc_valexc_tbrQ   s        r   __exit__zExceptionMgr.__exit__   sa    
 	D556""l2"( ..t/H/HI  3  "!
"s   A AAN)T)r   r   r6   r7   rM   rT   rY   r$   r#   r   rI   rI   V   s    .4L Jr#   rI   c                     	 ddl m}  | j                          	 ddl m} |j                          	 ddl m}  |j                          	 ddl m}  |j                          	 ddl m} |j                          y# t        $ r Y jw xY w# t        $ r Y bw xY w# t        $ r Y Yw xY w# t        $ r Y Pw xY w# t        $ r Y yw xY w)z Enable exceptions in all GDAL related modules (osgeo.gdal, osgeo.ogr, osgeo.osr, osgeo.gnm).
        Note: prior to GDAL 3.7, this only affected the calling moduler   gdalrP   ogrosrgnmN)r   r\   rC   rS   rQ   r^   r`   rb   r\   rQ   r^   r`   rb   s        r   UseExceptionsrd      s     !!#'  
  
  
  
  W   A7 B B B$  B3 7	BB	BB	B! B!$	B0/B03	B?>B?c                     	 ddl m}  | j                          	 ddl m} |j                          	 ddl m}  |j                          	 ddl m}  |j                          	 ddl m} |j                          y# t        $ r Y jw xY w# t        $ r Y bw xY w# t        $ r Y Yw xY w# t        $ r Y Pw xY w# t        $ r Y yw xY w)z Disable exceptions in all GDAL related modules (osgeo.gdal, osgeo.ogr, osgeo.osr, osgeo.gnm).
        Note: prior to GDAL 3.7, this only affected the calling moduler   r[   rP   r]   r_   ra   N)r   r\   rE   rS   rQ   r^   r`   rb   rc   s        r   DontUseExceptionsrg      s    ! %%'   '  
  
  
  
  re   Fc                      ddl m}  t        | d      s-t               s"d| _        dd l}|j                  dt               y y y )Nr   r[   2hasWarnedAboutUserHasNotSpecifiedIfUsingExceptionsTr   zNeither gnm.UseExceptions() nor gnm.DontUseExceptions() has been explicitly called. In GDAL 4.0, exceptions will be enabled by default.)r   r\   r   rG   ri   warningswarnFutureWarning)r\   rj   s     r   +_WarnIfUserHasNotSpecifiedIfUsingExceptionsrm      sA    4MNWyW{BF?BCP	R X|Nr#   r]   r_   c                  :    t                t        j                  |  S )z*CastToNetwork(MajorObject base) -> Network)rm   r   CastToNetworkr;   s    r   ro   ro      s     01 t$$r#   c                  :    t                t        j                  |  S )z8CastToGenericNetwork(MajorObject base) -> GenericNetwork)rm   r   CastToGenericNetworkr;   s    r   rq   rq      s     01 $$d++r#   c                       e Zd ZdZ ed d d      Zd ZeZe	j                  Zd Zd Zd	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zy)Networkz$Proxy of C++ GNMNetworkShadow class.c                 6    | j                   j                         S r-   r
   r   xs    r   <lambda>zNetwork.<lambda>        r#   c                 8    | j                   j                  |      S r-   ru   rw   vs     r   rx   zNetwork.<lambda>       AFFJJqM r#   The membership flagdocc                     t        d      NzNo constructor definedr   r   r<   kwargss      r   rM   zNetwork.__init__      566r#   c                 .    t        j                  | g| S )z+ReleaseResultSet(Network self, Layer layer))r   Network_ReleaseResultSetr   r<   s     r   ReleaseResultSetzNetwork.ReleaseResultSet      ,,T9D99r#   c                 .    t        j                  | g| S )zGetVersion(Network self) -> int)r   Network_GetVersionr   s     r   
GetVersionzNetwork.GetVersion
  s    &&t3d33r#   c                 .    t        j                  | g| S )z%GetName(Network self) -> char const *)r   Network_GetNamer   s     r   GetNamezNetwork.GetName  s    ##D0400r#   c                 .    t        j                  | g| S )z<GetFeatureByGlobalFID(Network self, GIntBig GFID) -> Feature)r   Network_GetFeatureByGlobalFIDr   s     r   GetFeatureByGlobalFIDzNetwork.GetFeatureByGlobalFID      11$>>>r#   c                 4    t        j                  | g|i |S )zzGetPath(Network self, GIntBig nStartFID, GIntBig nEndFID, GNMGraphAlgorithmType eAlgorithm, char ** options=None) -> Layer)r   Network_GetPathr   s      r   GetPathzNetwork.GetPath  s    ##D:4:6::r#   c                 .    t        j                  | g| S )z%DisconnectAll(Network self) -> CPLErr)r   Network_DisconnectAllr   s     r   DisconnectAllzNetwork.DisconnectAll      ))$666r#   c                 .    t        j                  | g| S )z+GetProjection(Network self) -> char const *)r   Network_GetProjectionr   s     r   GetProjectionzNetwork.GetProjection  r   r#   c                 .    t        j                  | g| S )z.GetProjectionRef(Network self) -> char const *)r   Network_GetProjectionRefr   s     r   GetProjectionRefzNetwork.GetProjectionRef"  r   r#   c                 .    t        j                  | g| S )z$GetFileList(Network self) -> char **)r   Network_GetFileListr   s     r   GetFileListzNetwork.GetFileList&      ''4t44r#   c                 4    t        j                  | g|i |S )zCreateLayer(Network self, char const * name, SpatialReference srs=None, OGRwkbGeometryType geom_type=wkbUnknown, char ** options=None) -> Layer)r   Network_CreateLayerr   s      r   CreateLayerzNetwork.CreateLayer*  s    ''>t>v>>r#   c                 4    t        j                  | g|i |S )z^CopyLayer(Network self, Layer src_layer, char const * new_name, char ** options=None) -> Layer)r   Network_CopyLayerr   s      r   	CopyLayerzNetwork.CopyLayer.  s    %%d<T<V<<r#   c                 .    t        j                  | g| S )z.DeleteLayer(Network self, int index) -> OGRErr)r   Network_DeleteLayerr   s     r   DeleteLayerzNetwork.DeleteLayer2  r   r#   c                 .    t        j                  | g| S )z"GetLayerCount(Network self) -> int)r   Network_GetLayerCountr   s     r   GetLayerCountzNetwork.GetLayerCount6  r   r#   c                 .    t        j                  | g| S )z3GetLayerByIndex(Network self, int index=0) -> Layer)r   Network_GetLayerByIndexr   s     r   GetLayerByIndexzNetwork.GetLayerByIndex:      ++D8488r#   c                 .    t        j                  | g| S )z>GetLayerByName(Network self, char const * layer_name) -> Layer)r   Network_GetLayerByNamer   s     r   GetLayerByNamezNetwork.GetLayerByName>      **47$77r#   c                 .    t        j                  | g| S )z6TestCapability(Network self, char const * cap) -> bool)r   Network_TestCapabilityr   s     r   TestCapabilityzNetwork.TestCapabilityB  r   r#   c                 4    t        j                  | g|i |S )z9StartTransaction(Network self, int force=FALSE) -> OGRErr)r   Network_StartTransactionr   s      r   StartTransactionzNetwork.StartTransactionF  s    ,,TCDCFCCr#   c                 .    t        j                  | g| S )z)CommitTransaction(Network self) -> OGRErr)r   Network_CommitTransactionr   s     r   CommitTransactionzNetwork.CommitTransactionJ      --d:T::r#   c                 .    t        j                  | g| S )z+RollbackTransaction(Network self) -> OGRErr)r   Network_RollbackTransactionr   s     r   RollbackTransactionzNetwork.RollbackTransactionN  s    //<t<<r#   N)r   r   r6   r7   r   r   rM   r   r   r   delete_Network__swig_destroy__r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r$   r#   r   rs   rs      s    /-/IOdeG7H**:41?;77:5?=57988D;=r#   rs   c                       e Zd ZdZ ed d d      Zd ZeZe	j                  Zd Zd Zd	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zy)GenericNetworkz+Proxy of C++ GNMGenericNetworkShadow class.c                 6    | j                   j                         S r-   ru   rv   s    r   rx   zGenericNetwork.<lambda>W  ry   r#   c                 8    | j                   j                  |      S r-   ru   r{   s     r   rx   zGenericNetwork.<lambda>W  r}   r#   r~   r   c                     t        d      r   r   r   s      r   rM   zGenericNetwork.__init__Y  r   r#   c                 .    t        j                  | g| S )zConnectFeatures(GenericNetwork self, GIntBig nSrcFID, GIntBig nTgtFID, GIntBig nConFID, double dfCost, double dfInvCost, GNMDirection eDir) -> CPLErr)r   GenericNetwork_ConnectFeaturesr   s     r   ConnectFeatureszGenericNetwork.ConnectFeatures^  s    224?$??r#   c                 .    t        j                  | g| S )zdDisconnectFeatures(GenericNetwork self, GIntBig nSrcFID, GIntBig nTgtFID, GIntBig nConFID) -> CPLErr)r   !GenericNetwork_DisconnectFeaturesr   s     r   DisconnectFeaturesz!GenericNetwork.DisconnectFeaturesb  s    55dBTBBr#   c                 .    t        j                  | g| S )zEDisconnectFeaturesWithId(GenericNetwork self, GIntBig nFID) -> CPLErr)r   'GenericNetwork_DisconnectFeaturesWithIdr   s     r   DisconnectFeaturesWithIdz'GenericNetwork.DisconnectFeaturesWithIdf  s    ;;DH4HHr#   c                 .    t        j                  | g| S )zReconnectFeatures(GenericNetwork self, GIntBig nSrcFID, GIntBig nTgtFID, GIntBig nConFID, double dfCost, double dfInvCost, GNMDirection eDir) -> CPLErr)r    GenericNetwork_ReconnectFeaturesr   s     r   ReconnectFeaturesz GenericNetwork.ReconnectFeaturesj  s    44TADAAr#   c                 .    t        j                  | g| S )zBCreateRule(GenericNetwork self, char const * pszRuleStr) -> CPLErr)r   GenericNetwork_CreateRuler   s     r   
CreateRulezGenericNetwork.CreateRulen  r   r#   c                 .    t        j                  | g| S )z-DeleteAllRules(GenericNetwork self) -> CPLErr)r   GenericNetwork_DeleteAllRulesr   s     r   DeleteAllRuleszGenericNetwork.DeleteAllRulesr  r   r#   c                 .    t        j                  | g| S )zBDeleteRule(GenericNetwork self, char const * pszRuleStr) -> CPLErr)r   GenericNetwork_DeleteRuler   s     r   
DeleteRulezGenericNetwork.DeleteRulev  r   r#   c                 .    t        j                  | g| S )z(GetRules(GenericNetwork self) -> char **)r   GenericNetwork_GetRulesr   s     r   GetRuleszGenericNetwork.GetRulesz  r   r#   c                 4    t        j                  | g|i |S )zConnectPointsByLines(GenericNetwork self, char ** papszLayerList, double dfTolerance, double dfCost, double dfInvCost, GNMDirection eDir) -> CPLErr)r   #GenericNetwork_ConnectPointsByLinesr   s      r   ConnectPointsByLinesz#GenericNetwork.ConnectPointsByLines~  s    77NtNvNNr#   c                 .    t        j                  | g| S )zLChangeBlockState(GenericNetwork self, GIntBig nFID, bool bIsBlock) -> CPLErr)r   GenericNetwork_ChangeBlockStater   s     r   ChangeBlockStatezGenericNetwork.ChangeBlockState  s    33D@4@@r#   c                 .    t        j                  | g| S )zGChangeAllBlockState(GenericNetwork self, bool bIsBlock=False) -> CPLErr)r   "GenericNetwork_ChangeAllBlockStater   s     r   ChangeAllBlockStatez"GenericNetwork.ChangeAllBlockState  s    66tCdCCr#   N)r   r   r6   r7   r   r   rM   r   r   r   delete_GenericNetworkr   r   r   r   r   r   r   r   r   r   r   r   r$   r#   r   r   r   T  sj    6-/IOdeG7H11@CIB;?;9OADr#   r   )+sysr   _swig_python_version_info__package__r   r   r   builtinsr   rS   r   r%   r*   r3   r   r5   r:   r>   rA   rC   rE   rG   objectrI   rd   rg   ri   rm   r^   r`   GATDijkstraShortestPathGATKShortestPathGATConnectedComponentsGNM_EDGE_DIR_BOTHGNM_EDGE_DIR_SRCTOTGTGNM_EDGE_DIR_TGTTOSRCro   rq   MajorObjectrs   Network_swigregisterr   GenericNetwork_swigregisterr$   r#   r   <module>r      s?   :#/"[
L$ L(++&*::J6 :J~<@ 6; 2R  66 (( 44 ** 22 22 %,T=coo T=n   ' "4DW 4Dn !     0w  s   C; ;	DD