HEX
Server: Apache
System: Linux pdx1-shared-a1-38 6.6.104-grsec-jammy+ #3 SMP Tue Sep 16 00:28:11 UTC 2025 x86_64
User: mmickelson (3396398)
PHP: 8.1.31
Disabled: NONE
Upload Files
File: //usr/lib/python3/dist-packages/sphinx/testing/__pycache__/comparer.cpython-310.pyc
o


$�aT�	@sXdZddlZddlZddlmZmZmZGdd�d�Zdededed	eefd
d�Z	dS)z�
    sphinx.testing.comparer
    ~~~~~~~~~~~~~~~~~~~~~~~

    Sphinx test comparer for pytest

    :copyright: Copyright 2007-2021 by the Sphinx team, see AUTHORS.
    :license: BSD, see LICENSE for details.
�N)�Any�List�Unionc@s�eZdZdZdeeejffdd�Zdefdd�Z	defdd	�Z
d
eeejfdefdd�Zd
eeejfde
efd
d�Zd
eeejfde
efdd�Zd
eeejfde
efdd�Zdejdejde
efdd�ZdS)�PathComparera�
    OS-independent path comparison.

    Windows path sep and posix path sep:

    >>> '\to\index' == PathComparer('/to/index')
    True
    >>> '\to\index' == PathComparer('/to/index2')
    False

    Windows path with drive letters

    >>> 'C:\to\index' == PathComparer('/to/index')
    True
    >>> 'C:\to\index' == PathComparer('C:/to/index')
    True
    >>> 'C:\to\index' == PathComparer('D:/to/index')
    False
    �pathcCst�|�|_dS)zP
        :param str path: path string, it will be cast as pathlib.Path.
        N)�pathlib�Pathr)�selfr�r
�9/usr/lib/python3/dist-packages/sphinx/testing/comparer.py�__init__#szPathComparer.__init__�returncCs
|j��S�N)r�as_posix�r	r
r
r�__str__)�
zPathComparer.__str__cCs
d�|�S)Nz<{0.__class__.__name__}: '{0}'>)�formatrr
r
r�__repr__,rzPathComparer.__repr__�othercCst|�|��Sr)�bool�ldiff�r	rr
r
r�__eq__/szPathComparer.__eq__cCs
|�|�S)a�compare self and other.

        When different is not exist, return empty list.

        >>> PathComparer('/to/index').diff('C:\to\index')
        []

        When different is exist, return unified diff style list as:

        >>> PathComparer('/to/index').diff('C:\to\index2')
        [
           '- C:/to/index'
           '+ C:/to/index2'
           '?            +'
        ]
        )rrr
r
r�diff2s
zPathComparer.diffcCs|�|jt�|��Sr)�_diffrrrrr
r
rrEs�zPathComparer.ldiffcCs|�t�|�|j�Sr)rrrrrr
r
r�rdiffKs�zPathComparer.rdiff�lhs�rhscCsp||krgS|js|jr|����|����}}n	|��|��}}||kr)gSdd�t���|g|g�D�S)NcSsg|]}|���qSr
)�strip)�.0�liner
r
r�
<listcomp>^sz&PathComparer._diff.<locals>.<listcomp>)�drive�absoluter�difflib�Differ�compare)r	rr�s_path�o_pathr
r
rrQszPathComparer._diffN)�__name__�
__module__�__qualname__�__doc__r�strrrrrrrrrrrrrr
r
r
rrs   "r�op�left�rightr
cCsHt|t�r|dkrdg|�|�St|t�r"|dkr"dg|�|�SgS)Nz==zComparing path:)�
isinstancerrr)r/r0r1r
r
r�pytest_assertrepr_compareas
r3)
r-r%r�typingrrrrr.r3r
r
r
r�<module>s	"R