§
    öyIf�‰  ã                  ó(  — U d Z ddlmZ ddlZddlmZ ddlmZmZm	Z	m
Z
mZ ddlZddlmZmZ ddlmZ ddlmZ dd	lmZmZmZ dd
lmZmZ ddlmZ erddlmZ e	eeeef         e
e         f         Z dZ!g e!¢d‘d‘R Z"dZ#dZ$dZ%dZ&dZ'dZ(dZ)ddhZ*dZ+h d£Z,ddhZ-ddddœi dd “d!d “d"d “d#d “d$d “d%d “d&d “d'd(“d)d*“d+d,“d-d.“d/d0“d1d.“d2d.“d3d.“d4d.“d5d.“d6d7d7d8d8d9d9d:œ¥d;d<id=d>d?d@dAœdBœZ.dCe/dD<   dEhh dF£dGhdHœZ0dIe/dJ<   dKh dL£ih dM£h dN£dOœh dP£h dQ£h dR£h dS£h dT£dUhh dV£dWdXhh dY£h dZ£h d[£h d\£h d]£h d^£d_œd`œZ1dae/db<   dcdddehidfhdgdhhh di£djœdkdlhidmhdnhdoœh dp£h dq£drhh ds£h dt£duœdvœZ2dwe/dx<   dyhh dz£d{œZ3dIe/d|<   dˆd�„Z4 G d‚„ dƒee¦  «        Z5d‰d‡„Z6dS )Šz0Checkers for various standard library functions.é    )ÚannotationsN)ÚIterable)ÚTYPE_CHECKINGÚAnyÚDictÚSetÚTuple)ÚnodesÚutil)ÚInferenceResult)Ú
interfaces)ÚBaseCheckerÚDeprecatedMixinÚutils)ÚHIGHÚ	INFERENCE)ÚMessageDefinitionTuple)ÚPyLinter)ÚopenÚfileÚ	read_textÚ
write_textzunittest.casezthreading.Threadz	copy.copyzos._Environ)z	os.getenvzsubprocess.Popenzsubprocess.runÚ_ioÚpathlib)zbuiltins.breakpointzsys.breakpointhookzpdb.set_trace>   úfunctools.lru_cacheú$functools._lru_cache_wrapper.wrapperú'functools.lru_cache.decorating_functionzbuiltins.staticmethodzbuiltins.classmethod))NÚx)ÚintÚboolÚfloatzasyncio.tasks.sleep))NÚloopzasyncio.tasks.gatherzasyncio.tasks.shieldzasyncio.tasks.wait_forzasyncio.tasks.waitzasyncio.tasks.as_completedz)asyncio.subprocess.create_subprocess_execz*asyncio.subprocess.create_subprocess_shell))é   r"   zgettext.translation))é   Úcodesetzgettext.install))é   r%   zfunctools.partialmethod)©NÚfunczweakref.finalize)r'   )NÚobjzprofile.Profile.runcallzcProfile.Profile.runcallzbdb.Bdb.runcallztrace.Trace.runfunczcurses.wrapper))NÚfunction))NÚfn))NÚcallback))NÚc)NÚtypeid)z!unittest.case.TestCase.addCleanupz3concurrent.futures.thread.ThreadPoolExecutor.submitz5concurrent.futures.process.ProcessPoolExecutor.submitz"contextlib._BaseExitStack.callbackz-contextlib.AsyncExitStack.push_async_callbackz&multiprocessing.managers.Server.createz2multiprocessing.managers.SharedMemoryServer.createzrandom.Random.shuffle))é   Úrandom))é   Útype)r#   Úchoices)é   Úmetavar))r/   Úvalue)r&   Ú	traceback))r/   Úisdst))r&   Úonerror)zargparse.BooleanOptionalActionzcoroutine.throwzemail.utils.localtimezshutil.rmtree)©r   r   r   ©r1   é   r   ©r1   é	   r   ©r1   é   r   zIdict[tuple[int, int, int], dict[str, tuple[tuple[int | None, str], ...]]]ÚDEPRECATED_ARGUMENTSzasyncio.coroutine>   úabc.abstractpropertyúabc.abstractclassmethodúabc.abstractstaticmethodz importlib.util.module_for_loader)r;   ©r1   r1   r   ©r1   r#   r   ÚDeprecationDictÚDEPRECATED_DECORATORSr:   >   úcgi.parse_qsúcgi.parse_qslúctypes.c_bufferútkinter.Misc.tk_menuBarú tkinter.Menu.tk_bindForTraversalú,distutils.command.sdist.sdist.check_metadataú2distutils.command.register.register.check_metadata>   ú	os.popen2ú	os.popen3ú	os.popen4úcommands.getstatusúmacostools.touched>	   úunittest.case.TestCase.assert_ú#unittest.case.TestCase.assertEqualsú&unittest.case.TestCase.assertNotEqualsú)unittest.case.TestCase.assertAlmostEqualsú,unittest.case.TestCase.assertNotAlmostEqualsú'xml.etree.ElementTree.XMLParser.doctypeú)xml.etree.ElementTree.Element.getchildrenú)xml.etree.ElementTree.Element.getiteratorú+xml.etree.ElementTree.XMLParser.getiterator))r&   é   r   )r&   r4   r   >   úinspect.getargspecÚfailIfÚassert_Ú
failUnlessÚfailIfEqualÚassertEqualsÚassertNotEqualsÚfailUnlessEqualÚfailUnlessRaisesÚfailIfAlmostEqualÚassertAlmostEqualsÚassertRaisesRegexpÚassertRegexpMatchesÚassertNotAlmostEqualsÚfailUnlessAlmostEqualÚassertNotRegexpMatches>   úntpath.splituncúos.path.splituncúbase64.decodestringúbase64.encodestringúos.stat_float_timesúturtle.RawTurtle.settiltangle>   ú
cgi.escapeú#configparser.RawConfigParser.readfprZ   r[   r\   r]   >   ú
time.clockúlogging.warnúplatform.popenúlogging.Logger.warnúinspect.getmoduleinfoúnntplib._NNTPBase.xpathúsqlite3.OptimizedUnicodeúlogging.LoggerAdapter.warn>	   úplistlib.readPlistúplistlib.writePlistúimportlib.find_loaderúplistlib.writePlistToBytesúplistlib.readPlistFromBytesú importlib.abc.Loader.load_moduleú importlib.abc.Loader.module_reprú)importlib.abc.PathEntryFinder.find_loaderú)importlib.abc.PathEntryFinder.find_modulezasyncio.tasks.async>   úfractions.gcdúplatform.distúinspect.getcallargsúinspect.formatargspecúplatform.linux_distributionz4importlib._bootstrap_external.FileLoader.load_modulez_ssl.RAND_pseudo_bytes>   úaifc.openfpúwave.openfpúsunau.openfpúlocale.formatússl.wrap_socketússl.match_hostnameúasyncio.Task.all_taskúasyncio.Task.current_taskúsys.get_coroutine_wrapperúsys.set_coroutine_wrapperúthreading.Thread.isAlive>   úgettext.lgettextúgettext.ldgettextúgettext.lngettextúgettext.ldngettextúgettext.bind_textdomain_codesetú'gettext.NullTranslations.output_charsetú+gettext.NullTranslations.set_output_charsetr—   >   úbinascii.a2b_hqxúbinascii.b2a_hqxúbinascii.rlecode_hqxúbinascii.rledecode_hqxúimportlib.resources.pathúimportlib.resources.contentsúimportlib.resources.open_textúimportlib.resources.read_textúimportlib.resources.is_resourceúimportlib.resources.open_binaryúimportlib.resources.read_binary>   úcgi.logúpathlib.Path.link_toúthreading.Event.isSetúthreading.activeCountúthreading.currentThreadúthreading.Thread.getNameúthreading.Thread.setNameúthreading.Thread.isDaemonúthreading.Thread.setDaemonú_sqlite3.enable_shared_cacheúthreading.Condition.notifyAllú importlib.abc.Finder.find_moduleú!zipimport.zipimporter.find_loaderú!zipimport.zipimporter.find_moduleú!zipimport.zipimporter.load_module>
   úre.templateúlocale.resetlocaleúunittest.makeSuiteúunittest.findTestCasesúlocale.getdefaultlocaleúunittest.getTestCaseNamesúunittest.TestProgram.usageExitú$unittest.TestLoader.getTestCaseNamesú'unittest.TestLoader.loadTestsFromModuleú)unittest.TestLoader.loadTestsFromTestCase>   úpty.slave_openúpty.master_openúpkgutil.get_loaderúpkgutil.find_loaderúbuiltins.bool.__invert__údatetime.datetime.utcnowú"datetime.datetime.utcfromtimestampú&xml.etree.ElementTree.Element.__bool__))r1   r   r   )r1   r/   r   ©r1   r&   r   rE   rF   )r1   r#   r#   )r1   r$   r   )r1   r^   r   )r1   r4   r   r;   r=   )r1   é
   r   ©r1   é   r   r?   )r   r&   r1   zdict[int, DeprecationDict]ÚDEPRECATED_METHODSÚconfigparserÚLegacyInterpolationÚSafeConfigParserÚFinderÚImpImporterÚ	ImpLoader>   r   ÚSizedÚMappingÚCallableÚHashabler   ÚIteratorÚKeysViewÚSequenceÚ	AwaitableÚ	ContainerÚ	CoroutineÚ	GeneratorÚ	ItemsViewÚ
ByteStringÚ
CollectionÚ
MutableSetÚ
ReversibleÚ
ValuesViewÚMappingViewÚAsyncIterableÚAsyncIteratorÚAsyncGeneratorÚMutableMappingÚMutableSequence)úimportlib.abcÚpkgutilÚcollectionsÚsmtpdÚMailmanProxyÚTextÚMacOSX)ÚtypingÚ
webbrowser>   ÚNumÚStrÚBytesÚEllipsisÚNameConstant>   ÚFastChildWatcherÚSafeChildWatcherÚAbstractChildWatcherÚMultiLoopChildWatcherrâ   >   ÚTraversableÚResourceReaderÚTraversableResources>   rÖ   rÙ   râ   )ÚastÚasynciozcollections.abcrí   rô   )rË   rE   r=   rÍ   r?   z/dict[tuple[int, int, int], dict[str, set[str]]]ÚDEPRECATED_CLASSESz"configparser.ParsingError.filename>   úsys.last_typeúsys.last_valueúcalendar.Januaryúcalendar.Februaryúsys.last_traceback)rË   r?   ÚDEPRECATED_ATTRIBUTESÚmoder   Úreturnr    c                óP  — t          | t          ¦  «        sdS t          | ¦  «        }d}d|v }|t          |¦  «        z
  s t          | ¦  «        t          |¦  «        k    rdS d|v }d|v }d|v }d|v }d|v }d	|v r
|s|s|rdS d
}|r|rdS ||z   |z   |z   }	|	dk    rdS |s|s|s|sdS d
S )NFzrwatb+Uxr   ÚrÚwÚaÚtÚbÚUTr/   )Ú
isinstanceÚstrÚsetÚlen)
r  ÚmodesÚ_modeÚcreatingÚreadingÚwritingÚ	appendingÚtextÚbinaryÚtotals
             úJ/var/www/piapp/venv/lib/python3.11/site-packages/pylint/checkers/stdlib.pyÚ_check_mode_strr"  �  s  € å�d�CÑ Ô ð Øˆuå�‰IŒI€EØ€EØ�eˆ|€HØ�s�5‰zŒzÑð �S ™YœY­¨U©¬Ò3Ð3Øˆuà�Uˆl€GØ�Uˆl€GØ�u�€IØ�%ˆ<€DØ�Eˆ\€FØ
ˆe€|€|Øð 	�ið 	 8ð 	Ø�5ØˆØð �ð ØˆuØ�gÑ 	Ñ)¨HÑ4€EØˆq‚y€yØˆuØð �wð  )ð ¨xð ØˆuØˆ4ó    c                  ó‚  — e Zd ZU dZi ej        ¥ej        ¥ej        ¥ej        ¥ej	        ¥ddddddifdd	d
ddddddddddddddgifdœ¥Z
ded<   d^d „Zd_d#„Zd_d$„Zd_d%„Zd_d&„Z ej        d'd(d)d*d+d,d-d.d/d0d1d2d3¦  «        d_d4„¦   «         Z ej        d¦  «        d`d6„¦   «         Z ej        d¦  «        dad8„¦   «         Z ej        d¦  «        dbd:„¦   «         Z ej        d¦  «        dcd<„¦   «         Z ej        dd=d>¦  «        ddd@„¦   «         ZdddA„ZdddB„ZdedE„ZdfdG„ZdgdK„ZdhdL„ZdidR„ZdjdT„Z dkdW„Z!dldZ„Z"dmd[„Z#dmd\„Z$d]S )nÚStdlibCheckerÚstdlib)z""%s" is not a valid mode for open.úbad-open-modez…Python supports: r, w, a[, x] modes with b, +, and U (only with r) options. See https://docs.python.org/3/library/functions.html#openz)Using datetime.time in a boolean context.úboolean-datetimezÎUsing datetime.time in a boolean context can hide subtle bugs when the time they represent matches midnight UTC. This behaviour was fixed in Python 3.5. See https://bugs.python.org/issue13936 for reference.Ú
maxversion)r1   r$   )z*Redundant use of %s with constant value %rúredundant-unittest-assertz´The first argument of assertTrue and assertFalse is a condition. If a constant is passed as parameter, that condition will be always true. In this case a warning should be emitted.)z*threading.Thread needs the target functionúbad-thread-instantiationzÛThe warning is emitted when a threading.Thread class is instantiated without the target function being passed as a kwarg or as a second argument. By default, the first parameter is the group param, not the target param.)z;Using copy.copy(os.environ). Use os.environ.copy() instead.úshallow-copy-environz�os.environ is not a dict object but proxy object, so shallow copy has still effects on original object. See https://bugs.python.org/issue15373 for reference.)z$%s does not support %s type argumentúinvalid-envvar-valuezwEnv manipulation functions support only string type arguments. See https://docs.python.org/3/library/os.html#os.getenv.)z[singledispatch decorator should not be used with methods, use singledispatchmethod instead.úsingledispatch-methodzrsingledispatch should decorate functions and not class/instance methods. Use singledispatchmethod for those cases.)z]singledispatchmethod decorator should not be used with functions, use singledispatch instead.úsingledispatchmethod-functionzrsingledispatchmethod should decorate class/instance methods and not functions. Use singledispatch for those cases.)z,%s default type is %s. Expected str or None.úinvalid-envvar-defaultz¨Env manipulation functions return None or str values. Supplying anything different as a default may cause bugs. See https://docs.python.org/3/library/os.html#os.getenv.)zGUsing preexec_fn keyword which may be unsafe in the presence of threadsúsubprocess-popen-preexec-fna0  The preexec_fn parameter is not safe to use in the presence of threads in your application. The child process could deadlock before exec is called. If you must use it, keep it trivial! Minimize the number of libraries you call into. See https://docs.python.org/3/library/subprocess.html#popen-constructor)zH'subprocess.run' used without explicitly defining the value for 'check'.úsubprocess-run-checkzðThe ``check`` keyword  is set to False by default. It means the process launched by ``subprocess.run`` can exit with a non-zero exit code and fail silently. It's better to set it explicitly to make clear what the error-handling behavior is.)z4Using open without explicitly specifying an encodingúunspecified-encodingzµIt is better to specify an encoding when opening documents. Using the system default implicitly can create problems on other operating systems. See https://peps.python.org/pep-0597/)zLLeaving functions creating breakpoints in production code is not recommendedúforgotten-debug-statementz€Calls to breakpoint(), sys.breakpointhook() and pdb.set_trace() should be removed from code that is not actively being debugged.zc'lru_cache(maxsize=None)' or 'cache' will keep all method args alive indefinitely, including 'self'úmethod-cache-max-size-noneaO  By decorating a method with lru_cache or cache the 'self' argument will be linked to the function and therefore never garbage collected. Unless your instance will never need to be garbage collected (singleton) it is recommended to refactor code to avoid this pattern or add a maxsize to the cache. The default value for maxsize is 128.Ú	old_names)ÚW1516zlru-cache-decorating-method)ÚW1517zcache-max-size-none)ÚW1501ÚW1502ÚW1503ÚW1506ÚW1507ÚE1507ÚE1519ÚE1520ÚW1508ÚW1509ÚW1510ÚW1514ÚW1515ÚW1518z!dict[str, MessageDefinitionTuple]ÚmsgsÚlinterr   r  ÚNonec                óÄ  — t          j        | |¦  «         t          ¦   «         | _        i | _        i | _        t          ¦   «         | _        t          ¦   «         | _        t          t          j
        d                                       ¦   «         D ]/\  }}|t          j
        k    r| j                             |¦  «         Œ0t                               ¦   «         D ]/\  }}|t          j
        k    r| j                             |¦  «         Œ0t                               ¦   «         D ]/\  }}|t          j
        k    r| j                             |¦  «         Œ0t                               ¦   «         D ]/\  }}|t          j
        k    r| j                             |¦  «         Œ0t                                ¦   «         D ]/\  }}|t          j
        k    r| j                             |¦  «         Œ0d S )Nr   )r   Ú__init__r  Ú_deprecated_methodsÚ_deprecated_argumentsÚ_deprecated_classesÚ_deprecated_decoratorsÚ_deprecated_attributesrÏ   ÚsysÚversion_infoÚitemsÚupdaterA   r  rH   r
  )ÚselfrH  Ú
since_versÚ	func_listÚ	args_listÚ
class_listÚdecorator_listÚattribute_lists           r!  rK  zStdlibChecker.__init__  sÄ  € ÝÔ˜T 6Ñ*Ô*Ð*Ý-0©U¬UˆÔ ØTVˆÔ"Ø8:ˆÔ Ý03±´ˆÔ#Ý03±´ˆÔ#å%7½Ô8HÈÔ8KÔ%L×%RÒ%RÑ%TÔ%Tð 	;ð 	;Ñ!ˆJ˜	Ø�SÔ-Ò-Ð-ØÔ(×/Ò/°	Ñ:Ô:Ð:øÝ%9×%?Ò%?Ñ%AÔ%Að 	=ð 	=Ñ!ˆJ˜	Ø�SÔ-Ò-Ð-ØÔ*×1Ò1°)Ñ<Ô<Ð<øÝ&8×&>Ò&>Ñ&@Ô&@ð 	<ð 	<Ñ"ˆJ˜
Ø�SÔ-Ò-Ð-ØÔ(×/Ò/°
Ñ;Ô;Ð;øÝ*?×*EÒ*EÑ*GÔ*Gð 	Cð 	CÑ&ˆJ˜Ø�SÔ-Ò-Ð-ØÔ+×2Ò2°>ÑBÔBÐBøÝ*?×*EÒ*EÑ*GÔ*Gð 	Cð 	CÑ&ˆJ˜Ø�SÔ-Ò-Ð-ØÔ+×2Ò2°>ÑBÔBÐBøð	Cð 	Cr#  Únodeú
nodes.Callc                óÆ   — d„ |j         D ¦   «         }d|v rd S t          |j        ¦  «        dk     r/|j        rd|vr&|                      d|t
          j        ¬¦  «         d S d S d S )Nc                ó   — h | ]	}|j         ’Œ
S © ©Úarg)Ú.0Úkeys     r!  ú	<setcomp>z@StdlibChecker._check_bad_thread_instantiation.<locals>.<setcomp>4  s   € Ð8Ð8Ð8 3�s”wÐ8Ð8Ð8r#  Útargetr&   r+  ©r\  Ú
confidence)Úkeywordsr  ÚargsÚkwargsÚadd_messager   r   )rU  r\  Úfunc_kwargss      r!  Ú_check_bad_thread_instantiationz-StdlibChecker._check_bad_thread_instantiation3  s‰   € Ø8Ð8¨$¬-Ð8Ñ8Ô8ˆØ�{Ð"Ð"ØˆFåˆtŒy‰>Œ>˜AÒÐ t¤{Ð°hÀkÐ6QÐ6QØ×ÒØ*°Å*Ä/ð ñ ô ð ð ð ð ÐÐ6QÐ6Qr#  c                óp   — |j         r,|j         D ]&}|j        dk    r|                      d|¬¦  «         Œ%d S d S )NÚ
preexec_fnr1  ©r\  )ri  rb  rl  )rU  r\  Úkeywords      r!  Ú_check_for_preexec_fn_in_popenz,StdlibChecker._check_for_preexec_fn_in_popen=  s`   € ØŒ=ð 	OØœ=ð Oð O�Ø”; ,Ò.Ð.Ø×$Ò$Ð%BÈÐ$ÑNÔNÐNøð	Oð 	OðOð Or#  c                ór   — d„ |j         pdD ¦   «         }d|vr|                      d|t          ¬¦  «         d S d S )Nc                ó   — h | ]	}|j         ’Œ
S r`  ra  ©rc  rr  s     r!  re  z;StdlibChecker._check_for_check_kw_in_run.<locals>.<setcomp>D  s   € ÐCÐCÐC '�'”+ÐCÐCÐCr#  r`  Úcheckr2  rg  )ri  rl  r   )rU  r\  rk  s      r!  Ú_check_for_check_kw_in_runz(StdlibChecker._check_for_check_kw_in_runC  sQ   € ØCÐC¨d¬mÐ.A¸rÐCÑCÔCˆØ˜&Ð Ð Ø×ÒÐ3¸$Í9ÐÑUÔUÐUÐUÐUð !Ð r#  c                ó†  — t           }	 t          j        |dd¬¦  «        }n7# t          j        $ r% t          j        |d¬¦  «        }|sY d S t
          }Y nw xY w	 |                     ¦   «         }n# t          j        $ r Y d S w xY w|D ]:}| 	                    ¦   «         t          k    r|                      d||¬¦  «          d S Œ;d S )Nr   r   ©Úpositionrr  ©rr  r,  rg  )r   r   Úget_argument_from_callÚNoSuchArgumentErrorÚinfer_kwarg_from_callr   ÚinferredÚastroidÚInferenceErrorÚqnameÚ
OS_ENVIRONrl  )rU  r\  rh  rb  Úinferred_argsr€  s         r!  Ú_check_shallow_copy_environz)StdlibChecker._check_shallow_copy_environH  s	  € Ýˆ
ð	#ÝÔ.¨t¸aÈÐMÑMÔMˆCˆCøÝÔ(ð 	#ð 	#ð 	#ÝÔ-¨d¸CÐ@Ñ@Ô@ˆCØð Ø��Ý"ˆJˆJˆJð		#øøøð
	ØŸLšL™NœNˆMˆMøÝÔ%ð 	ð 	ð 	ØˆFˆFð	øøøà%ð 	ð 	ˆHØ�~Š~ÑÔ¥:Ò-Ð-Ø× Ò Ø*°À*ð !ñ ô ð ð ��ð	 .ð	ð 	s'   ‰! ¡'AÁAÁAÁA. Á.BÂ Br'  r*  zdeprecated-methodzdeprecated-argumentr+  r,  r-  r0  r1  r2  zdeprecated-classr3  r4  c                ó  — |                       |¦  «         t          j        |j        ¦  «        D �]O}t	          |t
          j        ¦  «        rŒ|                     ¦   «         j        t          v r‘d}t	          |j        t          j        ¦  «        r|j        j        }t	          |j        t          j        ¦  «        r|j        j        }|t          v r.|                      ||                     ¦   «         j        |¦  «         �nj|                     ¦   «         j        t           k    r|                      ||¦  «         �n0t	          |t          j        ¦  «        rf|                     ¦   «         t(          k    r|                      |¦  «         nã|                     ¦   «         t,          k    r|                      |¦  «         n°t	          |t          j        ¦  «        r–|                     ¦   «         }|t2          k    r|                      |¦  «         na|t6          v r|                      ||¦  «         nA|t:          k    r|                      |¦  «         n |t>          v r|                       d|¬¦  «         |  !                    ||¦  «         �ŒQdS )zVisit a Call node.Nr4  rq  )"Úcheck_deprecated_class_in_callr   Ú	infer_allr(   r  r   ÚUninferableBaseÚrootÚnameÚOPEN_MODULEr
   ÚNameÚ	AttributeÚattrnameÚOPEN_FILES_FUNCSÚ_check_open_callÚUNITTEST_CASEÚ_check_redundant_assertÚClassDefrƒ  ÚTHREADING_THREADrn  ÚSUBPROCESS_POPENrs  ÚFunctionDefÚ	COPY_COPYr†  ÚENV_GETTERSÚ_check_env_functionÚSUBPROCESS_RUNrx  ÚDEBUG_BREAKPOINTSrl  Úcheck_deprecated_method)rU  r\  r€  Úopen_func_namerŒ  s        r!  Ú
visit_callzStdlibChecker.visit_call\  sG  € ð" 	×+Ò+¨DÑ1Ô1Ð1Ýœ¨¬	Ñ2Ô2ð 	9ñ 	9ˆHÝ˜(¥DÔ$8Ñ9Ô9ð ØØ�}Š}‰ŒÔ#¥{Ð2Ð2Ø-1�Ý˜dœi­¬Ñ4Ô4ð 4Ø%)¤Y¤^�NÝ˜dœi­¬Ñ9Ô9ð 8Ø%)¤YÔ%7�NØ!Õ%5Ð5Ð5Ø×)Ò)¨$°·²±´Ô0DÀnÑUÔUÐUùØ—’‘”Ô%­Ò6Ð6Ø×,Ò,¨T°8Ñ<Ô<Ð<Ñ<Ý˜H¥e¤nÑ5Ô5ð MØ—>’>Ñ#Ô#Õ'7Ò7Ð7Ø×8Ò8¸Ñ>Ô>Ð>Ð>Ø—^’^Ñ%Ô%Õ)9Ò9Ð9Ø×7Ò7¸Ñ=Ô=Ð=øÝ˜H¥eÔ&7Ñ8Ô8ð 	MØ—~’~Ñ'Ô'�Ø�9Ò$Ð$Ø×4Ò4°TÑ:Ô:Ð:Ð:Ø�[Ð(Ð(Ø×,Ò,¨T°8Ñ<Ô<Ð<Ð<Ø�^Ò+Ð+Ø×3Ò3°DÑ9Ô9Ð9Ð9ØÕ.Ð.Ð.Ø×$Ò$Ð%@ÀtÐ$ÑLÔLÐLØ×(Ò(¨¨xÑ8Ô8Ð8Ñ8ð9	9ð 	9r#  únodes.UnaryOpc                óT   — |j         dk    r|                      |j        ¦  «         d S d S )NÚnot)ÚopÚ_check_datetimeÚoperand©rU  r\  s     r!  Úvisit_unaryopzStdlibChecker.visit_unaryopŒ  s3   € àŒ7�eÒÐØ× Ò  ¤Ñ.Ô.Ð.Ð.Ð.ð Ðr#  únodes.Ifc                ó:   — |                       |j        ¦  «         d S ©N©r¥  Útestr§  s     r!  Úvisit_ifzStdlibChecker.visit_if‘  ó   € à×Ò˜TœYÑ'Ô'Ð'Ð'Ð'r#  únodes.IfExpc                ó:   — |                       |j        ¦  «         d S r«  r¬  r§  s     r!  Úvisit_ifexpzStdlibChecker.visit_ifexp•  r¯  r#  únodes.BoolOpc                óD   — |j         D ]}|                      |¦  «         Œd S r«  )Úvaluesr¥  )rU  r\  r6   s      r!  Úvisit_boolopzStdlibChecker.visit_boolop™  s4   € à”[ð 	(ð 	(ˆEØ× Ò  Ñ'Ô'Ð'Ð'ð	(ð 	(r#  r.  r/  únodes.FunctionDefc                ó®   — |j         rKt          |j        t          j        ¦  «        r.|                      |¦  «         |                      |¦  «         d S d S d S r«  )Ú
decoratorsr  Úparentr
   r•  Ú_check_lru_cache_decoratorsÚ_check_dispatch_decoratorsr§  s     r!  Úvisit_functiondefzStdlibChecker.visit_functiondefž  se   € ð Œ?ð 	2�z¨$¬+µu´~ÑFÔFð 	2Ø×,Ò,¨TÑ2Ô2Ð2Ø×+Ò+¨DÑ1Ô1Ð1Ð1Ð1ð	2ð 	2ð 	2ð 	2r#  c                óô  — t          d„ |j                             ¦   «         D ¦   «         ¦  «        rdS g }|j        j        D �]}	 |                     ¦   «         D ]à}|                     ¦   «         }|t          v r  dS |t          v r—t          |t          j
        ¦  «        r}	 t          j        |dd¬¦  «        }n*# t          j        $ r t          j        |d¦  «        }Y nw xY wt          |t          j        ¦  «        r|j        � n5|                     |¦  «          n|dk    r|                     |¦  «          nŒáŒú# t$          j        $ r Y �Œw xY w|D ]$}|                      d|t*          j        ¬¦  «         Œ%dS )	zACheck if instance methods are decorated with functools.lru_cache.c              3  ó>   K  — | ]}t          j        |¦  «        V — Œd S r«  )r   Úis_enum)rc  Úancestors     r!  ú	<genexpr>z<StdlibChecker._check_lru_cache_decorators.<locals>.<genexpr>ª  s,   è è € ÐOÐO¨8�uŒ}˜XÑ&Ô&ÐOÐOÐOÐOÐOÐOr#  Nr   Úmaxsizerz  zfunctools.cacher5  rg  )Úanyrº  Ú	ancestorsr¹  r
   Úinferrƒ  ÚNON_INSTANCE_METHODSÚ	LRU_CACHEr  ÚCallr   r}  r~  r  ÚConstr6   Úappendr�  r‚  rl  r   r   )rU  r\  Úlru_cache_nodesÚd_nodeÚinfered_nodeÚq_namerb  Úlru_cache_nodes           r!  r»  z)StdlibChecker._check_lru_cache_decorators¨  sß  € åÐOÐO°t´{×7LÒ7LÑ7NÔ7NÐOÑOÔOÑOÔOð 	àˆFà.0ˆØ”oÔ+ð 	ñ 	ˆFðØ$*§L¢L¡N¤Nð ð �LØ)×/Ò/Ñ1Ô1�FØÕ!5Ð5Ð5Ø˜˜˜ð ¥Ð*Ð*­z¸&Å%Ä*Ñ/MÔ/MÐ*ðQÝ"'Ô">Ø &°¸Ið#ñ #ô #˜C˜Cøõ  %Ô8ð Qð Qð QÝ"'Ô"=¸fÀiÑ"PÔ"P˜C˜C˜CðQøøøõ  *¨#­u¬{Ñ;Ô;ð "¸s¼yÐ?TØ!˜Eà'×.Ò.¨vÑ6Ô6Ð6Ø˜àÐ!2Ò2Ð2Ø'×.Ò.¨vÑ6Ô6Ð6Ø˜ð 3øøõ Ô)ð ð ð Ø‘ðøøøà-ð 	ð 	ˆNØ×ÒØ,Ø#Ý%Ô/ð ñ ô ð ð ð	ð 	s=   Á4D;Á<#D;Â B8Â7D;Â8$CÃD;ÃCÃAD;Ä;EÅEc                ó  — i }|j         j        D ]…}t          |t          j        ¦  «        r|j        r|t
          j        f||j        <   Œ:t          j        |¦  «        r|t
          j	        f|d<   Œ`t          j
        |¦  «        r|t
          j	        f|d<   Œ†d|v r6d|v r2|                      d|d         d         |d         d         ¬¦  «         d S d|v r6d|v r4|                      d	|d         d         |d         d         ¬¦  «         d S d S d S )
NÚsingledispatchÚsingledispatchmethodÚclassmethodr.  r   r/   rg  Ústaticmethodr/  )r¹  r
   r  rŽ  rŒ  r   r   r   Ú(is_registered_in_singledispatch_functionr   Ú.is_registered_in_singledispatchmethod_functionrl  )rU  r\  Údecorators_mapÚ	decorators       r!  r¼  z(StdlibChecker._check_dispatch_decoratorsÒ  sj  € ØPRˆàœÔ.ð 		ð 		ˆIÝ˜)¥U¤ZÑ0Ô0ð °Y´^ð Ø2;½Z¼_Ð1M�˜yœ~Ñ.Ð.ÝÔ?ÀÑEÔEð Ø4=½zÔ?SÐ3T�Ð/Ñ0Ð0ÝÔEÀdÑKÔKð àÝÔ(ð:�Ð5Ñ6øð
 ˜~Ð-Ð-°-À>Ð2QÐ2QØ×ÒØ'Ø#Ð$4Ô5°aÔ8Ø)Ð*:Ô;¸AÔ>ð ñ ô ð ð ð ð # nÐ4Ð4Ø .Ð0Ð0à×ÒØ/Ø#Ð$:Ô;¸AÔ>Ø)Ð*@ÔAÀ!ÔDð ñ ô ð ð ð ð 5Ð4Ø0Ð0r#  rÆ  r   c                ó  — t          |t          j        ¦  «        rf|j        rat          |j        d         t          j        ¦  «        r>|j        dv r7|                      d|j        |j        d         j        f|¬¦  «         d S d S d S d S d S )Nr   >   Ú
assertTrueÚassertFalser*  )rj  r\  )	r  r�  ÚBoundMethodrj  r
   rÊ  rŒ  rl  r6   )rU  r\  rÆ  s      r!  r”  z%StdlibChecker._check_redundant_assertð  s³   € å�u�gÔ1Ñ2Ô2ð
	à”	ð
	õ ˜4œ9 Qœ<­¬Ñ5Ô5ð
	ð ”
Ð;Ð;Ð;à×ÒØ+Ø”j $¤)¨A¤,Ô"4Ð5Øð ñ ô ð ð ð ð
	ð 
	ð 
	ð 
	ð 
	ð 
	ð <Ð;r#  únodes.NodeNGc                ó  — 	 t          |                     ¦   «         ¦  «        }n# t          j        $ r Y dS w xY wt	          |t          j        ¦  «        r/|                     ¦   «         dv r|                      d|¬¦  «         dS dS dS )zICheck that a datetime was inferred, if so, emit boolean-datetime warning.N>   údatetime.timeú_pydatetime.timer(  rq  )ÚnextrÆ  r�  r‚  r  ÚInstancerƒ  rl  )rU  r\  r€  s      r!  r¥  zStdlibChecker._check_datetimeý  sª   € ð	Ý˜DŸJšJ™LœLÑ)Ô)ˆHˆHøÝÔ%ð 	ð 	ð 	ØˆFˆFð	øøøå�h¥Ô 0Ñ1Ô1ð 	<°h·n²nÑ6FÔ6Fð K
ð 7
ð 7
ð ×ÒÐ/°dÐÑ;Ô;Ð;Ð;Ð;ð		<ð 	<ð 7
ð 7
s   ‚!$ ¤7¶7Úopen_moduler  Ú	func_namec                óÖ  — d}t           }	 |dk    rt          j        |dd¬¦  «        }n|dk    rt          j        |dd¬¦  «        }n4# t          j        $ r" t          j        |d¬¦  «        }|rt
          }Y nw xY w|r}t          j        |¦  «        }|t          v r`t          |t          j
        ¦  «        rFt          |j        ¦  «        s2|                      d	||j        pt          |j        ¦  «        |¬
¦  «         |r9t          |t          j
        ¦  «        �rJ|j        rdt          |j        ¦  «        v�r.t           }	 |dk    rh|j        j        dk    rt          j        |dd¬¦  «        }nW|j        j        dk    rt          j        |dd¬¦  «        }n/t          j        |dd¬¦  «        }nt          j        |dd¬¦  «        }nM# t          j        $ r; t          j        |d¬¦  «        }|rt
          }n|                      d||¬¦  «         Y nw xY w|rSt          j        |¦  «        }t          |t          j
        ¦  «        r'|j        €"|                      d||¬¦  «         dS dS dS dS dS dS )z Various checks for an open call.Nr   r/   r  rz  r   r   r|  r'  )r\  rj  rh  r  r   Úencodingr   r&   r1   r3  rg  )r   r   r}  r~  r  r   Ú
safe_inferÚOPEN_FILES_MODEr  r
   rÊ  r"  r6   rl  r  r(   r�  )rU  r\  rä  rå  Úmode_argrh  Úencoding_args          r!  r’  zStdlibChecker._check_open_call	  s,  € ð ˆÝˆ
ð	'Ø˜eÒ#Ð#Ý Ô7Ø 1¨fðñ ô ��ð  	Ò)Ð)Ý Ô7Ø 1¨fðñ ô �øøõ Ô(ð 	'ð 	'ð 	'ÝÔ2°4ÀÐHÑHÔHˆHØð 'Ý&�
øøð	'øøøð
 ð 	ÝÔ'¨Ñ1Ô1ˆHà�_Ð,Ð,Ý˜x­¬Ñ5Ô5ð -å'¨¬Ñ7Ô7ð -ð × Ò Ø#ØØ!œÐ>­3¨x¬~Ñ+>Ô+>Ø)ð	 !ñ ô ð ð ð'	å˜(¥E¤KÑ0Ô0ñ'	ð ”^ð'	ð (+µ#°h´nÑ2EÔ2EÐ'EÑ'EåˆJðØ )Ò+Ð+Ø”yÔ)¨[Ò8Ð8Ý',Ô'CØ ¨1°jð(ñ (ô (˜˜ð œÔ+¨|Ò;Ð;Ý',Ô'CØ ¨1°jð(ñ (ô (˜˜õ (-Ô'CØ ¨1°jð(ñ (ô (˜˜õ $)Ô#?Ø q°*ð$ñ $ô $�Løøõ Ô,ð ð ð Ý$Ô:¸4ÈÐTÑTÔT�Øð Ý!*�J�Jà×$Ò$Ø.°TÀjð %ñ ô ð øøðøøøð ð Ý$Ô/°Ñ=Ô=�å˜l­E¬KÑ8Ô8ð ¸\Ô=OÐ=WØ×$Ò$Ø.°TÀjð %ñ ô ð ð ð ðK'	ð '	ð (FÐ'Eð<ð ðð Ð=WÐ=Ws%   ‹;A Á.A8Á7A8Ä=BG ÇAHÈHc                óº  — d}d}|j         rd„ |j         D ¦   «         }nd }|j        r|j        d         }n|r||v r	||         }nd }|r,|                      |dt          j        |¦  «        |d¬¦  «         t          |j        ¦  «        dk    r|j        d	         }n|r||v r	||         }nd }|r.|                      ||d
t          j        |¦  «        d¬¦  «         d S d S )Nrd  Údefaultc                ó(   — i | ]}|j         |j        “ŒS r`  )rb  r6   rv  s     r!  ú
<dictcomp>z5StdlibChecker._check_env_function.<locals>.<dictcomp>X  s   € ÐNÐNÐN°W�g”k 7¤=ÐNÐNÐNr#  r   r-  F)r\  ÚmessageÚcall_argrÆ  Ú
allow_noner&   r/   r0  T)r\  rÆ  rð  rñ  rò  )ri  rj  Ú_check_invalid_envvar_valuer   rè  r  )rU  r\  rÆ  Úenv_name_kwargÚenv_value_kwargrk  Úenv_name_argÚenv_value_args           r!  r›  z!StdlibChecker._check_env_functionT  sC  € ØˆØ#ˆØŒ=ð 	ØNÐNÀÄÐNÑNÔNˆFˆFàˆFØŒ9ð 	 Øœ9 Qœ<ˆLˆLØð 	 ˜¨&Ð0Ð0Ø! .Ô1ˆLˆLàˆLàð 	Ø×,Ò,ØØ.ÝÔ)¨,Ñ7Ô7ØØ ð -ñ ô ð õ ˆtŒy‰>Œ>˜QÒÐØ œI aœLˆMˆMØð 	!˜¨6Ð1Ð1Ø" ?Ô3ˆMˆMà ˆMàð 	Ø×,Ò,ØØØ0ÝÔ)¨-Ñ8Ô8Øð -ñ ô ð ð ð ð	ð 	r#  rð  rñ  úInferenceResult | Nonerò  r    c                ó¬  — |�t          |t          j        ¦  «        rd S |                     ¦   «         }t          |t          j        ¦  «        r[d}|j        €| }nt          |j        t          ¦  «        sd}|r.|                      |||| 	                    ¦   «         f¬¦  «         d S d S |                      |||| 	                    ¦   «         f¬¦  «         d S )NFT)r\  rj  )
r  r   rŠ  rƒ  r
   rÊ  r6   r  rl  Úpytype)rU  r\  rÆ  rð  rñ  rò  rŒ  Úemits           r!  ró  z)StdlibChecker._check_invalid_envvar_value{  sé   € ð Ð�z¨(µDÔ4HÑIÔIÐØˆFà�{Š{‰}Œ}ˆÝ�h¥¤Ñ,Ô,ð 		QØˆDØŒ~Ð%Ø%�~��Ý ¤µÑ4Ô4ð Ø�Øð UØ× Ò  ¨t¸4ÀÇÂÑARÔARÐ:SÐ ÑTÔTÐTÐTÐTðUð Uð ×Ò˜W¨4°t¸X¿_º_Ñ=NÔ=NÐ6OÐÑPÔPÐPÐPÐPr#  úset[str]c                ó   — | j         S r«  )rL  ©rU  s    r!  Údeprecated_methodsz StdlibChecker.deprecated_methods’  s   € ØÔ'Ð'r#  Úmethodú"tuple[tuple[int | None, str], ...]c                ó8   — | j                              |d¦  «        S ©Nr`  )rM  Úget)rU  r   s     r!  Údeprecated_argumentsz"StdlibChecker.deprecated_arguments•  s   € ØÔ)×-Ò-¨f°bÑ9Ô9Ð9r#  ÚmoduleúIterable[str]c                ó8   — | j                              |d¦  «        S r  )rN  r  )rU  r  s     r!  Údeprecated_classesz StdlibChecker.deprecated_classes˜  s   € ØÔ'×+Ò+¨F°BÑ7Ô7Ð7r#  c                ó   — | j         S r«  )rO  rþ  s    r!  Údeprecated_decoratorsz#StdlibChecker.deprecated_decorators›  ó   € ØÔ*Ð*r#  c                ó   — | j         S r«  )rP  rþ  s    r!  Údeprecated_attributesz#StdlibChecker.deprecated_attributesž  r  r#  N©rH  r   r  rI  )r\  r]  r  rI  )r\  r¡  r  rI  )r\  r©  r  rI  )r\  r°  r  rI  )r\  r³  r  rI  )r\  r·  r  rI  )r\  r]  rÆ  r   r  rI  )r\  rÞ  r  rI  )r\  r]  rä  r  rå  r  r  rI  )r\  r]  rÆ  r·  r  rI  )r\  r]  rÆ  r·  rð  r  rñ  rø  rò  r    r  rI  )r  rü  )r   r  r  r  )r  r  r  r  )r  r  )%Ú__name__Ú
__module__Ú__qualname__rŒ  r   ÚDEPRECATED_METHOD_MESSAGEÚDEPRECATED_ARGUMENT_MESSAGEÚDEPRECATED_CLASS_MESSAGEÚDEPRECATED_DECORATOR_MESSAGEÚDEPRECATED_ATTRIBUTE_MESSAGErG  Ú__annotations__rK  rn  rs  rx  r†  r   Úonly_required_for_messagesr   r¨  r®  r²  r¶  r½  r»  r¼  r”  r¥  r’  r›  ró  rÿ  r  r	  r  r  r`  r#  r!  r%  r%  Ÿ  sÎ  € € € € € € Ø€Dðu/Ø
Ô
3ðu/à
Ô
5ðu/ð Ô
2ðu/ð Ô
6ð	u/ð
 Ô
6ðu/ð
ð 8ØðDð ˜6Ð"ð
ð
ð
ð
ð
ð
ð
ð
ð	
ð
ð
ð
ð rØ(ð4ð Ø<Ø4ððð
ðMu/ð u/ð u/€Dð uð uð uñ uðnCð Cð Cð Cð4ð ð ð ðOð Oð Oð OðVð Vð Vð Vð
ð ð ð ð( &€UÔ%ØØ#ØØØ"ØØØ Ø%ØØØØ#ñô ð9ð 9ð 9ñô ð9ðB &€UÔ%Ð&8Ñ9Ô9ð/ð /ð /ñ :Ô9ð/ð &€UÔ%Ð&8Ñ9Ô9ð(ð (ð (ñ :Ô9ð(ð &€UÔ%Ð&8Ñ9Ô9ð(ð (ð (ñ :Ô9ð(ð &€UÔ%Ð&8Ñ9Ô9ð(ð (ð (ñ :Ô9ð(ð &€UÔ%Ø$ØØ'ñô ð
2ð 2ð 2ñô ð
2ð
(ð (ð (ð (ðTð ð ð ð<ð ð ð ð
<ð 
<ð 
<ð 
<ðIð Ið Ið IðV%ð %ð %ð %ðNQð Qð Qð Qð.(ð (ð (ð (ð:ð :ð :ð :ð8ð 8ð 8ð 8ð+ð +ð +ð +ð+ð +ð +ð +ð +ð +r#  r%  rH  r   rI  c                óJ   — |                       t          | ¦  «        ¦  «         d S r«  )Úregister_checkerr%  )rH  s    r!  Úregisterr  ¢  s$   € Ø
×Ò�M¨&Ñ1Ô1Ñ2Ô2Ð2Ð2Ð2r#  )r  r   r  r    r  )7Ú__doc__Ú
__future__r   rQ  Úcollections.abcr   rô   r   r   r   r   r	   r�  r
   r   Úastroid.typingr   Úpylintr   Úpylint.checkersr   r   r   Úpylint.interfacesr   r   Úpylint.typingr   Úpylint.lintr   r   r  rG   ré  r‘  r“  r–  r™  r„  rš  r—  rœ  r�  r�  rÈ  rÇ  rA   r  rH   rÏ   r  r
  r"  r%  r  r`  r#  r!  ú<module>r&     s  ðð
 7Ð 6Ð 6à "Ð "Ð "Ð "Ð "Ð "à 
€
€
€
Ø $Ð $Ð $Ð $Ð $Ð $Ø 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7à €€€Ø Ð Ð Ð Ð Ð Ð Ð Ø *Ð *Ð *Ð *Ð *Ð *à Ð Ð Ð Ð Ð Ø ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ø -Ð -Ð -Ð -Ð -Ð -Ð -Ð -Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0àð %Ø$Ð$Ð$Ð$Ð$Ð$à�u˜S # s˜]Ô+¨S°¬XÐ5Ô6€à"€Ø@�_Ð@ kÐ@°<Ð@Ð@Ð Ø€Ø%Ð Ø€	Ø€
Ø€Ø%Ð Ø!€Ø�iÐ €ØRÐ ðð ð €	ð
 0Ð1GÐHÐ ð ØØðð ð
ØÐ0ðàÐ 1ðð 	Ð 1ðð 	!Ð"3ð	ð
 	Ð/ðð 	%Ð&7ðð 	4Ð5Fðð 	5°nðð 	Ð0ðð 	Ð,ðð 	"Ð#4ðð 	Ð;ðð 	"Ð#4ðð 	#Ð$5ðð 	Ð,ðð  	Ð0ð!ð" 	Ð+ð#ð$ .CØ?NØAPØ.CØ9NØ2Qð?
ð1ð ð ð: (Ð)9Ð:à*WØ;Ø!0Ø*ð	ð ðI*ð *ð ð ,ð ,ð ,ñ ,ð^ $Ð$ðð ð ð
 3Ð3ð*ð *Ð ð ð ð ñ ð 	ð 
ð 
ð 
ð
ð
ð 
ð 
ð

ð 

ð 

ðð ð*
ð 
ð 
ð$
ð 
ð 
ð
ð 
ð 
ð	
ð 	
ð 	
ð

ð 

ð 

ð *Ð*ð
ð 
ð 
ð CØ$ð
ð
ð 
ð 
ð	
ð 	
ð 	
ð
ð 
ð 
ð
ð 
ð 
ð"
ð 
ð 
ð	
ð 	
ð 	
ðKOð OðAp2ð p2Ð ð pð pð pñ pðj 	Ø!Øð
ðð ð
ð Øð
ð
ð 
ð 
ð#ð #ðJ 	Øð
ðð ð
ð ð
ð	ð ð
ð 
ð 
ð
ð 
ð 
ð ð
ð
ð 
ð 
ð

ð 
ð 
ð-ð ðqTGð TGÐ ð Tð Tð Tñ Tðr 	-ððð ð ð	*ð *Ð ð ð ð ñ ðð ð ð ð<@+ð @+ð @+ð @+ð @+�O [ñ @+ô @+ð @+ðF3ð 3ð 3ð 3ð 3ð 3r#  