ÿØÿàJFIFÿþ ÿÛC       ÿÛC ÿÀÿÄÿÄ"#QrÿÄÿÄ&1!A"2qQaáÿÚ ?Øy,æ/3JæÝ¹È߲؋5êXw²±ÉyˆR”¾I0ó2—PI¾IÌÚiMö¯–þrìN&"KgX:Šíµ•nTJnLK„…@!‰-ý ùúmë;ºgµŒ&ó±hw’¯Õ@”Ü— 9ñ-ë.²1<yà‚¹ïQÐU„ہ?.’¦èûbß±©Ö«Âw*VŒ) `$‰bØÔŸ’ëXÖ-ËTÜíGÚ3ð«g Ÿ§¯—Jx„–’U/ÂÅv_s(Hÿ@TñJÑãõçn­‚!ÈgfbÓc­:él[ðQe 9ÀPLbÃãCµm[5¿ç'ªjglå‡Ûí_§Úõl-;"PkÞÞÁQâ¼_Ñ^¢SŸx?"¸¦ùY騐ÒOÈ q’`~~ÚtËU¹CڒêV  I1Áß_ÿÙ 4]c@sWdZddlmZddlmZejeZedZdZ dZ dS(s The inspection module provides the :func:`.inspect` function, which delivers runtime information about a wide variety of SQLAlchemy objects, both within the Core as well as the ORM. The :func:`.inspect` function is the entry point to SQLAlchemy's public API for viewing the configuration and construction of in-memory objects. Depending on the type of object passed to :func:`.inspect`, the return value will either be a related object which provides a known interface, or in many cases it will return the object itself. The rationale for :func:`.inspect` is twofold. One is that it replaces the need to be aware of a large variety of "information getting" functions in SQLAlchemy, such as :meth:`.Inspector.from_engine`, :func:`.orm.attributes.instance_state`, :func:`.orm.class_mapper`, and others. The other is that the return value of :func:`.inspect` is guaranteed to obey a documented API, thus allowing third party tools which build on top of SQLAlchemy configurations to be constructed in a forwards-compatible way. i(texc(tutilcCst|}x`|jD]K}|tkrt|}|tkrB|S||}|dk raPqaqqWd}}|r|dks|dkrtjd|n|S(sProduce an inspection object for the given target. The returned value in some cases may be the same object as the one given, such as if a :class:`.Mapper` object is passed. In other cases, it will be an instance of the registered inspection type for the given object, such as if an :class:`.engine.Engine` is passed, an :class:`.Inspector` object is returned. :param subject: the subject to be inspected. :param raiseerr: When ``True``, if the given subject does not correspond to a known SQLAlchemy inspected type, :class:`sqlalchemy.exc.NoInspectionAvailable` is raised. If ``False``, ``None`` is returned. s7No inspection system is available for object of type %sN(ttypet__mro__t _registrarstTruetNoneRtNoInspectionAvailable(tsubjecttraiseerrttype_tclstregtret((sH/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/inspection.pytinspect&s         csfd}|S(Ncs>x7D]/}|tkr,td|n|t|s  '