/snap/core18/2999/usr/share/python3/debpython/__pycache__
NameSizeModeActions
files.cpython-36.pyc23760644editdlrm
interpreter.cpython-36.pyc103200644editdlrm
option.cpython-36.pyc10070644editdlrm
version.cpython-36.pyc135980644editdlrm
__init__.cpython-36.pyc19460644editdlrm
Edit: /snap/core18/2999/usr/share/python3/debpython/__pycache__/interpreter.cpython-36.pyc (10320B)
3 Ĥ[4@sxddlZddlZddlZddlmZmZddlmZddlm Z ej dej Z ej dej Z ejeZGdddZdS) N)joinsplit)execute)Versionz (?:\#!\s*){0,1} # shebang prefix (?P .*?/bin/.*?)? (?P python|pypy) (?P \d[\.\d]*)? (?P -dbg)? (?P.*) a- (?P.*?) (?:\. (?Pabi\d+) |(?:\. (?P (?Pcpython|pypy) - (?P\d{2}) (?P[a-z]*?) ) (?: -(?P[^/]*?) )? ))? (?P_d)? \.so$c@seZdZdZdZdZdZdZfZiZ d(ddZ ddZ d d Z d d Z d dZeddZd)ddZd*ddZd+ddZd,ddZd-ddZd.ddZd/ddZd0dd Zd1d!d"Zd2d#d$Zd3d&d'ZdS)4 InterpreterNpythonFcpythonc Cst}|d=|d=t|trJx|jD]} || dkr&t|| || <q&WnX|r|jddjrr| rrt||d<n0x.|j|j D]\} } || dkr| || <qWx |j D]\} } t || | qWdS)Nselfvalue.version) locals isinstancerkeysgetattrreplaceisdigitrparseitemssetattr) r r pathnamer debugimploptionsZparamskeyvalr+/usr/share/python3/debpython/interpreter.py__init__Es    zInterpreter.__init__cCs|dkrJ|rJ|jdr"d|jd<n|jdr6d|jd<d|krbd|jd<n|d krb|dk rbt|}|d kr|dkrtt||j|<n ||j|<dS) Nrrrrpypyz-dbgTrr r)rrrr) startswith__dict__rrr)r rr rrr __setattr__Zs      zInterpreter.__setattr__cCs8|jpd}||j|j7}|jr4|ddj|j7}|S)Nr  )r_vstrr rr)r resultrrr__repr__js  zInterpreter.__repr__cCs |j|jS)N)r&r )r rrr__str__qszInterpreter.__str__cCsF|jdkr|jS|r@t||jkr@|jr2dj|S|jt|S|jS)Nr!z python{}-dbg)rrstrrformat)r r rrrr&ts  zInterpreter._vstrcCs:tj|}|siS|j}d|kr6t|dj|d<|S)aReturn dict with parsed shebang >>> sorted(Interpreter.parse('pypy').items()) [('debug', None), ('name', 'pypy'), ('options', ()), ('path', None), ('version', None)] >>> sorted(Interpreter.parse('/usr/bin/python3.3-dbg').items()) [('debug', '-dbg'), ('name', 'python'), ('options', ()), ('path', '/usr/bin/'), ('version', '3.3')] >>> sorted(Interpreter.parse('#! /usr/bin/pypy --foo').items()) [('debug', None), ('name', 'pypy'), ('options', ('--foo',)), ('path', '/usr/bin/'), ('version', None)] >>> sorted(Interpreter.parse('#! /usr/bin/python3.2').items()) [('debug', None), ('name', 'python'), ('options', ()), ('path', '/usr/bin/'), ('version', '3.2')] >>> sorted(Interpreter.parse('/usr/bin/python3.2-dbg --foo --bar').items()) [('debug', '-dbg'), ('name', 'python'), ('options', ('--foo', '--bar')), ('path', '/usr/bin/'), ('version', '3.2')] r) SHEBANG_REsearch groupdicttupler)Zshebangr'rrrr~s zInterpreter.parsecCsnt|p |j}|jdkrd}n0|td>r4d|}n|td>rJd|}nd}|rZd|}|rjd ||f}|S) aReturn path to site-packages directory. Note that returned path is not the final location of .py files >>> i = Interpreter('python') >>> i.sitedir(version='3.1') '/usr/lib/python3/dist-packages/' >>> i.sitedir(version='2.5') '/usr/lib/python2.5/site-packages/' >>> i.sitedir(version=Version('2.7')) '/usr/lib/python2.7/dist-packages/' >>> i.sitedir(version='3.1', gdb=True, package='python3-foo') 'debian/python3-foo/usr/lib/debug/usr/lib/python3/dist-packages/' >>> i.sitedir(version=Version('3.2')) '/usr/lib/python3/dist-packages/' >>> Interpreter('pypy').sitedir(version='2.0') '/usr/lib/pypy/dist-packages/' r!z/usr/lib/pypy/dist-packages/z2.6z /usr/lib/python%s/site-packages/z3.0z /usr/lib/python%s/dist-packages/z/usr/lib/python3/dist-packages/z/usr/lib/debug%sz debian/%s%s)rr r)r Zgdbpackager rrrrsitedirs      zInterpreter.sitedircCsvt|p |j}d|jkrdnd}|tdkr4||St|\}}|jdsR|d7}t|dd|dd |j||fS) aGiven path to a .py file, return path to its .pyc/.pyo file. This function is inspired by Python 3.2's imp.cache_from_source. :param fpath: path to file name :param version: Python version >>> i = Interpreter('python') >>> i.cache_file('foo.py', Version('3.1')) 'foo.pyc' >>> i.cache_file('bar/foo.py', '3.2') 'bar/__pycache__/foo.cpython-32.pyc' z-Oocz3.1z.py __pycache__z %s.%s.py%sN)rr rrendswithr magic_tag)r Zfpathr Z last_charfdirfnamerrr cache_files   zInterpreter.cache_filecCs~t|p |j}|j|\}}|jddd}|rP|dj|7}|rP|dj|7}|jrt|jdkrt|td>rt|d7}d j|S) z5Return extension name with soname and multiarch tags.r rz.{}z-{}r3Z_dz{}.so)rr _get_configrr+rr)r rr soabi multiarchr'rrrext_files zInterpreter.ext_filecCs<t|p |j}|jdkr(|td>r(dS|jd|}t|S)zReturn magic number.rr=r z"import imp; print(imp.get_magic()))rr r_executeeval)r r r'rrr magic_numbers  zInterpreter.magic_numbercCs4t|p |j}|jdkr(|td>r(dS|jd|S)zReturn Python magic tag (used in __pycache__ dir to tag files). >>> i = Interpreter('python') >>> i.magic_tag(version='3.2') 'cpython-32' rz3.2r z import imp; print(imp.get_tag()))rr rrB)r r rrrr8szInterpreter.magic_tagc CsHt|p |j}y|j|\}}Wn"tk rBtjddddSX|S)zReturn multiarch tag.zcannot get multiarchT)exc_infor )rr r> Exceptionlogr)r r r?r@rrrr@szInterpreter.multiarchcCs4t|p |j}|jdkr0|td?r0dj|jSdS)Nrz3.2zabi{})rr rr+major)r r rrr stableabiszInterpreter.stableabic CsHt|p |j}y|j|\}}Wn"tk rBtjddddSX|S)zReturn SOABI flag (used to in .so files). >>> i = Interpreter('python') >>> i.soabi(version=Version('3.3')) 'cpython-33m' zcannot get soabiT)rEr )rr r>rFrGr)r r r?r@rrrr? szInterpreter.soabic Cst|p |j}d|kr(|jdd\}}nd}tj|}|s>dS|j}|drRdSt||d}|drdj|dd |dd|_|j r|d sd |d pdkrd |_y|j \}}Wn"t k rt jdd ddSX|d}|j dkr|jd?r|j dr|dd}|ds&|rbdj||dp8|}|dsL|rbdj||dp^|}|d7}||krxdSt||S)aReturn extension file name if file can be renamed. >>> i = Interpreter('python') >>> i.check_extname('foo.so', version='3.3') # doctest: +ELLIPSIS 'foo.cpython-33m-....so' >>> i.check_extname('foo.abi3.so', version='3.3') >>> i.check_extname('foo/bar/bazmodule.so', version='3.3') # doctest: +ELLIPSIS 'foo/bar/baz.cpython-33m-....so' /r<r NrI)r verz{}.{}rrdflagsTzcannot get soabi/multiarch)rErrz3.2moduler?r@z{}-{}z.soi)rr rsplit EXTFILE_REr-r.rr+rr>rFrGrr7r) r r:r r9infoir?r@r'rrr check_extnames>    $  zInterpreter.check_extnamec Cst|p |j}|jdksB|jdkrH|d?r2|d>sB|d?sB|dkrHd}nd}|d7}|j||jd }ytjd |d <Wntk rYnX|S) Nr!rz2.6r=z3.1zimport sysconfig as s;z%from distutils import sysconfig as s;zOprint("__SEP__".join(i or "" for i in s.get_config_vars("SOABI", "MULTIARCH")))Z__SEP__ZDEB_HOST_MULTIARCHr<)rr rrBrosenvironKeyError)r r cmdZ conf_varsrrrr>KszInterpreter._get_configTcCst|p |j}dj|j||jdd}|rD||jjkrD|jj|St|}|ddkrztj |dt dj||d|dj }t |dkr|d}|r||jj|<|S) Nz {} -c '{}'' returncoderstderrz{} failed with status code {}stdoutr<) rr r+r&r __class___cacherrGrrF splitlineslen)r commandr cacheoutputr'rrrrB^s     zInterpreter._execute)NNNNNNN)FNN)N)N)N)N)N)N)N)N)N)NT)__name__ __module__ __qualname__rrr rrrr^r r$r(r)r& staticmethodrr1r;rArDr8r@rIr?rTr>rBrrrrr<s2   &      1 r)loggingrUreos.pathrr debpythonrdebpython.versionrcompileVERBOSEr,rQ getLoggerrdrGrrrrrs