Viewing File: /opt/imunify360/venv/lib/python3.11/site-packages/docutils/utils/__pycache__/roman.cpython-311.pyc



]j
dZdZdZdZdZddlZGddeZGd	d
eZGddeZ	Gd
deZ
dZdZej
dejZdZdS)z"Convert to and from Roman numeralsz&Mark Pilgrim (f8dy@diveintopython.org)z1.4z
8 August 2001agCopyright (c) 2001 Mark Pilgrim

This program is part of "Dive Into Python", a free Python tutorial for
experienced programmers.  Visit http://diveintopython.org/ for the
latest version.

This program is free software; you can redistribute it and/or modify
it under the terms of the Python 2.1.1 license, available at
http://www.python.org/2.1.1/license.html
NceZdZdS)
RomanErrorN__name__
__module____qualname__t/builddir/build/BUILD/imunify360-venv-2.6.3/opt/imunify360/venv/lib/python3.11/site-packages/docutils/utils/roman.pyrrr
rceZdZdS)OutOfRangeErrorNrr	r
rrrrr
rceZdZdS)NotIntegerErrorNrr	r
rrrrr
rceZdZdS)InvalidRomanNumeralErrorNrr	r
rrrrr
r)
)Mi)CMi)Di)CDi)Cd)XCZ)L2)XL()X
)IX	)V)IV)Icd|cxkrdksntdt||krtdd}tD]\}}||kr||z
}||z}||k|S)z convert integer to Roman numeralriz%number out of range (must be 1..4999)zdecimals can not be converted)rintrromanNumeralMap)nresultnumeralintegers    rtoRomanr1+s
LLLLDLLLLEFFF
1vv{{=>>>
F+7llgF
LA7llMr
a8
    ^                   # beginning of string
    M{0,4}              # thousands - 0 to 4 M's
    (CM|CD|D?C{0,3})    # hundreds - 900 (CM), 400 (CD), 0-300 (0 to 3 C's),
                        #            or 500-800 (D, followed by 0 to 3 C's)
    (XC|XL|L?X{0,3})    # tens - 90 (XC), 40 (XL), 0-30 (0 to 3 X's),
                        #        or 50-80 (L, followed by 0 to 3 X's)
    (IX|IV|V?I{0,3})    # ones - 9 (IX), 4 (IV), 0-3 (0 to 3 I's),
                        #        or 5-8 (V, followed by 0 to 3 I's)
    $                   # end of string
    cH|stdt|std|zd}d}tD]X\}}|||t	|z|kr5||z
}|t	|z
}|||t	|z|k5Y|S)z convert Roman numeral to integerzInput can not be blankzInvalid Roman numeral: %sr)rromanNumeralPatternsearchr,len)sr.indexr/r0s     r	fromRomanr8HsA&'?@@@%%a((H&'BQ'FGGG
F
E+""eCLL(()W44gFS\\!EeCLL(()W44Mr
)__doc__
__author____version____date__
__copyright__re	Exceptionrrrrr,r1compileVERBOSEr3r8r	r
r<module>rBs((
5
	

			"!!!!!!!'''''j''''''''j'''00000z000 !bj
"


r
Back to Directory File Manager