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 eeejfde fd d „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 r rEsþ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 Ú ^sz&PathComparer._diff..)ÚdriveÚabsoluterÚdifflibÚDifferÚcompare)r rrÚs_pathÚo_pathr r r rQs zPathComparer._diffN)Ú__name__Ú __module__Ú __qualname__Ú__doc__rÚstrrrr rrrrrrrrrr r r r rs   "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 Ús  "R