
    9ivn                        S r SSKrSSKrSSKrSSKJr  SSKJr  SSKJ	r	  SSK
J
r
  SSKJrJrJrJrJrJrJr  SSKJr  SS	KJr  SS
KJr  SSKJr  \" \5      rSrSrS\ S3rS\ S\ 4S jr!S r" " S S\5      rS r\\ \" SS94   r# " S S\5      r$ " S S\5      r% " S S\%5      r& " S S \%5      r' " S! S"\%5      r( " S# S$\5      r) " S% S&\5      r* " S' S(\5      r+S-S) jr,S-S* jr-S+ r.\S,:X  a  \," 5         \-" 5         gg).z,
Generate JSON schemas from pydantic models
    N)cleandoc)	getLogger)Path)pprint)	AnnotatedAnyDictListLiteralOptionalUnion)	BaseModel)Field)
ConfigDict)conlistz'http://json-schema.org/draft-07/schema#z1-1-3z#https://schemas.conda.org/menuinst-.schema.jsondescriptionreturnc                    [         R                  " SS[        U 5      5      n [        R                  R                  S5      (       aB  SS KnUR                  5       R                  U 5      nUR                  5       R                  U5      n U $ )Nz(?<!\n)\n(?=\S) SPHINX_RUNNINGr   )resubr   osenvironget
commonmarkParserparseReStructuredTextRendererrender)r   r   asts      0lib/python3.13/site-packages/menuinst/_schema.py_clean_descriptionr$      si    &&+S(;2GHK	zz~~&''!''4 99;BB3G    c                 \    U R                  S5      =n(       a  [        U5      nXS'   XS'   g g )Nr   markdownDescription)r   r$   )schemar   s     r#   _patch_descriptionr)   *   s6    jj//{/(5 +}(3$% 0r%   c                   .    \ rS rSr% \" S\S9r\\S'   Srg)r   1   forbidextrajson_schema_extramodel_config N)	__name__
__module____qualname____firstlineno__r   r)   r0   __annotations____static_attributes__r1   r%   r#   r   r   1   s    )L^_L*_r%   r   c                      UR                  S5      =n(       a&  [        U5      US'   US   UR                  S0 5      S'   [        U 0 UD6$ )Nr   r/   r'   )r   r$   
setdefault_Field)argskwargsr   s      r#   r   r   5   sT    jj//{/ 2; ?}LRS`La-r23HI4"6""r%      
min_lengthc                   V    \ rS rSr% Sr\" SSS9r\\   \	S'   \" SSS9r
\\   \	S'   S	rg)
MenuItemNameDict>   z
Variable menu item name.
Use this dictionary if the menu item name depends on installation parameters
such as the target environment.
Nz5Name when target environment is the base environment.r   target_environment_is_basez9Name when target environment is not the base environment.target_environment_is_not_baser1   )r2   r3   r4   r5   __doc__r   rD   r   NonEmptyStringr6   rE   r7   r1   r%   r#   rA   rA   >   sI     <AL< 8  @EP@"H^$< r%   rA   c                   <   \ rS rSr% Sr\" SSS9r\\\	\
4      \S'   \" SSS9r\\   \S'   \" SS	S9r\\	   \S
'   \" SSS9r\\" \SS9   \S'   \" SSS9r\\	   \S'   \" SSS9r\\	   \S'   \" SSS9r\\	   \S'   \" SSS9r\\   \S'   \" SSS9r\\   \S'   Srg)BasePlatformSpecificO   z
Same as `MenuItem`, but without `platforms`, and all is optional.

Note:
* This needs to be kept up-to-date with `MenuItem`!
* Default value is always `None`.
N
            The name of the menu item. Can be a dictionary if the name depends on
            installation parameters. See `MenuItemNameDict` for details.
            rC   name?A longer description of the menu item. Shown on popup messages.r   5Path to the file representing or containing the icon.icon
            Command to run with the menu item, expressed as a
            list of strings where each string is an argument.
            r=   r>   command}
            Working directory for the running process.
            Defaults to user directory on each platform.
            working_dir
            (Simple, preferrably single-line) logic to run before the command is run.
            Runs before the environment is activated, if that applies.
            
precommandzN(Simple, preferrably single-line) logic to run before the shortcut is created.	precreateDWhether to activate the target environment before running `command`.activate
            Whether run the program in a terminal/console or not.
            On Windows, it only has an effect if `activate` is true.
            On MacOS, the application will ignore command-line arguments.
            terminalr1   )r2   r3   r4   r5   rF   r   rL   r   r   rG   rA   r6   r   strrO   rQ   r   rS   rU   rV   rX   boolrZ   r7   r1   r%   r#   rI   rI   O   s/    ?D?D(5)99:
;  "'V"K#  &+L&D(>
"  5:5GXgca01  -2-K.)  ,1,J(  +0`+Ix'   %[ Hhtn   %	 Hhtn 	r%   rI   c                      \ rS rSr% Sr\" SSS9r\\   \	S'   \" SSSS	9r
\\   \	S
'   \" SSS9r\\   \	S'   \" SSS9r\\\\\" SS94         \	S'   \" SSS9r\\\\\" SS94         \	S'   \" SSS9r\\\\" SSS94      \	S'   Srg)Windows   zJWindows-specific instructions. You can override global keys here if neededTzDWhether to create a desktop icon in addition to the Start Menu item.rC   desktopFzo
            DEPRECATED. Whether to create a quick launch icon in addition to the Start Menu item.
            )r   
deprecatedquicklaunchNz
            Name of the Windows Terminal profile to create.
            This name must be unique across multiple installations because
            menuinst will overwrite Terminal profiles with the same name.
            terminal_profilez8URL protocols that will be associated with this program.z\S+patternurl_protocolsz:File extensions that will be associated with this program.z\.\S*file_extensionsa  
            Identifier used in Windows 7 and above to associate processes, files and windows with a
            particular application. If your shortcut produces duplicated icons, you need to define
            this field. If not set, it will default to `Menuinst.<name>`.

            See [AppUserModelID docs](
            https://learn.microsoft.com/en-us/windows/win32/shell/appids#how-to-form-an-application-defined-appusermodelid)
            for more information on the required string format.
            z\S+\.\S+   )re   
max_lengthapp_user_model_idr1   )r2   r3   r4   r5   rF   r   r`   r   r\   r6   rb   rc   rG   rf   r
   r   r[   rg   rj   r7   r1   r%   r#   r^   r^      s   P#[GXd^  #( #K$  27	2h~. 	 LQOLM8D3f0E+E!FGH  PUQPOXd9S%2I-I#JKL  _d_x	#u[UX/Y*Y Z[ r%   r^   c            	          \ rS rSr% Sr\" SSS9r\\\	\
   \\
\" SS94   4      \S'   \" SS	S9r\\   \S
'   \" SSS9r\\
   \S'   \" SSS9r\\   \S'   \" SSS9r\\\	\
   \\
\" SS94   4      \S'   \" SSS9r\\\	\
   \\
\" SS94   4      \S'   \" SSS9r\\\	\
   \\
\" SS94   4      \S'   \" SSS9r\\   \S'   \" SSS9r\\\	\
   \\
\" SS94   4      \S'   \" SSS9r\\\	\
   \\
\" SS94   4      \S'   \" SSS9r\\   \S'   \" SSS9r\\   \S'   \" SSS9r\\   \S '   \" SSS9r\\
   \S!'   \" SS"S9r\\
   \S#'   \" SS$S9r\\\
\\
\" S%S94   4      \S&'   S'rg)(Linux   z
Linux-specific instructions.

Check the [Desktop entry specification](
https://specifications.freedesktop.org/desktop-entry-spec/latest/recognized-keys.html)
for more details.
Nz
            Categories in which the entry should be shown in a menu.
            See 'Registered categories' in the [Menu Spec](
            http://www.freedesktop.org/Standards/menu-spec).
            rC   z^.+;$rd   
Categorieszk
            A boolean value specifying if D-Bus activation is supported for this application.
            DBusActivatablez
            Generic name of the application; e.g. if the name is 'conda',
            this would be 'Package Manager'.
            GenericNamez/Disable shortcut, signaling a missing resource.Hiddenz
            List of supported interfaces. See 'Interfaces' in [Desktop Entry Spec](
            https://specifications.freedesktop.org/desktop-entry-spec/latest/interfaces.html).
            
Implementsz?Additional terms to describe this shortcut to aid in searching.KeywordsaI  
            The MIME type(s) supported by this application.
            Note this includes file types and URL protocols.
            For URL protocols, use `x-scheme-handler/your-protocol-here`.
            For example, if you want to register `menuinst:`, you would
            include `x-scheme-handler/menuinst`.
            MimeTypez
            Do not show this item in the menu. Useful to associate MIME types
            and other registrations, without having an actual clickable item.
            Not to be confused with 'Hidden'.
            	NoDisplayz
            Desktop environments that should NOT display this item.
            It'll check against `$XDG_CURRENT_DESKTOP`.
            	NotShowInz
            Desktop environments that should display this item.
            It'll check against `$XDG_CURRENT_DESKTOP`.
            
OnlyShowInzk
            Hint that the app prefers to be run on a more powerful discrete GPU if available.
            PrefersNonDefaultGPUzX
            Do not show the 'New Window' option in the app's context menu.
            SingleMainWindowz
            Advanced. See [Startup Notification spec](
            https://www.freedesktop.org/wiki/Specifications/startup-notification-spec/).
            StartupNotifyStartupWMClassz
            Filename or absolute path to an executable file on disk used to
            determine if the program is actually installed and can be run. If the test
            fails, the shortcut might be ignored / hidden.
            TryExecz
            Map of custom MIME types to their corresponding glob patterns (e.g. `*.txt`).
            Only needed if you define custom MIME types in `MimeType`.
            z.*\*.*glob_patternsr1   )r2   r3   r4   r5   rF   r   rn   r   r   r
   r[   r   r6   ro   r\   rp   rq   rr   rs   rt   ru   rv   rw   rx   ry   rz   r{   r|   r}   r	   r7   r1   r%   r#   rl   rl      s    W\	WJtCy)Cx9P4P*QQRS 	 ','OXd^  "'"K#  #FFHTN  W\WJtCy)Cx9P4P*QQRS  UZVUHhuT#Y	#uX7N2N(OOPQ  UZUHhuT#Y	#uX7N2N(OOPQ  !&	!Ix~ 	 V[VIxd3i3h8O3O)PPQR  W\WJtCy)Cx9P4P*QQRS  ,1,(4.  (-(htn  %*%M8D>  %*%NHSM  #	GXc] 	 TYTM8DiU95M0M&N!NOP r%   rl   c            	          \ rS rSr% Sr " S S\5      r " S S\5      r " S S\5      r\	" S	S
S9r
\\   \S'   \	" S	SS9r\\\\	" SS94      \S'   \	" S	SS9r\\\\	" SS94      \S'   \	" S	SS9r\\   \S'   \	" S	SS9r\\\\	" SS94      \S'   \	" S	SS9r\\\      \S'   \	" S	SS9r\\\      \S'   \	" S	SS9r\\\\	" SS94      \S '   \	" S	S!S9r\\   \S"'   \	" S	S#S9r\\\\4      \S$'   \	" S	S%S9r\\\\	" S&S94      \S''   \	" S	S(S9r\\   \S)'   \	" S	S*S9r\\   \S+'   \	" S	S,S9r\\   \S-'   \	" S	S.S9r\\   \S/'   \	" S	S0S9r \\   \S1'   \	" S	S2S9r!\\   \S3'   \	" S	S4S9r"\\   \S5'   \	" S	S6S9r#\\\      \S7'   \	" S	S8S9r$\\\      \S9'   \	" S	S:S9r%\\\\\	" S;S94         \S<'   \	" S	S=S9r&\\\'\(4      \S>'   \	" S	S?S9r)\\\'\\\	" S@S94   4      \SA'   \	" S	SBS9r*\\'   \SC'   SDr+g	)EMacOSi`  a  
Mac-specific instructions. Check these URLs for more info:

- `CF*` keys: see [Core Foundation Keys](https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html)
- `LS*` keys: see [Launch Services Keys](https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/LaunchServicesKeys.html)
- `entitlements`: see [Entitlements documentation](https://developer.apple.com/documentation/bundleresources/entitlements)
c                       \ rS rSr% Sr\" SSS9r\\S      \	S'   \" SS	S9r
\\   \	S
'   \" SSS9r\\   \	S'   \" SSS9r\\   \	S'   Srg)MacOS.CFBundleURLTypesModelii  z/Describes a URL scheme associated with the app.Nz:This key specifies the app's role with respect to the URL.rC   EditorViewerShellNoneCFBundleTypeRole.z=URL schemes / protocols handled by this type (e.g. 'mailto').CFBundleURLSchemesz8Abstract name for this URL type. Uniqueness recommended.CFBundleURLName8Name of the icon image file (minus the .icns extension).CFBundleURLIconFiler1   )r2   r3   r4   r5   rF   r   r   r   r   r6   r   r
   r[   r   r   r7   r1   r%   r#   CFBundleURLTypesModelr   i  s    9SXUT
(7+N#OP 	
 ).X)
DI 	
 */S*
# 	
 .3S.
Xc] 	
r%   r   c                       \ rS rSr% Sr\" SSS9r\\   \	S'   \" SSS9r
\\	S	'   \" SS
S9r\\S      \	S'   \" SSS9r\\   \	S'   \" SSS9r\S   \	S'   Srg) MacOS.CFBundleDocumentTypesModeli}  z2Describes a document type associated with the app.Nr   rC   CFBundleTypeIconFile.z=Abstract name for this document type. Uniqueness recommended.CFBundleTypeNamez;This key specifies the app's role with respect to the type.r   r   a  
                List of UTI strings defining a supported file type; e.g. for PNG files, use
                'public.png'. See [UTI Reference](
                https://developer.apple.com/library/archive/documentation/Miscellaneous/Reference/UTIRef/Articles/System-DeclaredUniformTypeIdentifiers.html)
                for more info about the system-defined UTIs. Custom UTIs can be defined via
                'UTExportedTypeDeclarations'. UTIs defined by other apps (not the system) need to
                be imported via 'UTImportedTypeDeclarations'.

                See [Fun with UTIs](https://www.cocoanetics.com/2012/09/fun-with-uti/) for more
                info.
                LSItemContentTypesz
                Determines how Launch Services ranks this app among the apps
                that declare themselves editors or viewers of files of this type.
                )OwnerDefault	AlternateLSHandlerRankr1   )r2   r3   r4   r5   rF   r   r   r   r[   r6   r   r   r   r   r
   r   r7   r1   r%   r#   CFBundleDocumentTypesModelr   }  s    <.3S/
hsm 	
 !&X!
# 	
 TY\T
(7+N#OP 	
 ).
)
DI 	
  CHC
w>? 	
r%   r   c                       \ rS rSr% \" SSS9r\\   \S'   \" SSS9r	\
\   \S'   \" SS	S9r\
\   \S
'   \" SSS9r\\S'   \" SSS9r\
\   \S'   \" SSS9r\\\\   4   \S'   Srg)MacOS.UTTypeDeclarationModeli  .z=The Uniform Type Identifier types that this type conforms to.rC   UTTypeConformsToNzA description for this type.UTTypeDescriptionz5The bundle icon resource to associate with this type.UTTypeIconFilez3The Uniform Type Identifier to assign to this type.UTTypeIdentifierz>The webpage for a reference document that describes this type.UTTypeReferenceURLz>A dictionary defining one or more equivalent type identifiers.UTTypeTagSpecificationr1   )r2   r3   r4   r5   r   r   r
   r[   r6   r   r   r   r   r   r   r	   r7   r1   r%   r#   UTTypeDeclarationModelr     s    &+X'
$s) 	
 ,17,
8C= 	
 ).P)
 	
 !&N!
# 	
 -2Y-
HSM 	
 8=Y8
S$s)^ 4 	
r%   r   Nz
            Display name of the bundle, visible to users and used by Siri. If
            not provided, 'menuinst' will use the 'name' field.
            rC   CFBundleDisplayNamez
            Unique identifier for the shortcut. Typically uses a reverse-DNS format.
            If not provided, 'menuinst' will generate one from the 'name' field.
            z^[A-z0-9\-\.]+$rd   CFBundleIdentifierz
            Short name of the bundle. May be used if `CFBundleDisplayName` is
            absent. If not provided, 'menuinst' will generate one from the 'name' field.
               )ri   CFBundleNamez
            Suitable replacement for text-to-speech operations on the app.
            For example, 'my app one two three' instead of 'MyApp123'.
            CFBundleSpokenNamez
            Build version number for the bundle. In the context of 'menuinst'
            this can be used to signal a new version of the menu item for the same
            application version.
            z^\S+$CFBundleVersionz
            URL types supported by this app. Requires macOS 10.14.4 or above.
            Refer to `event_handler` if your application does not have support
            for Apple Events handling.
            CFBundleURLTypesz
            Document types supported by this app. Requires macOS 10.14.4 or above.
            Refer to `event_handler` if your application does not have support
            for Apple Events handling.
            CFBundleDocumentTypeszKThe App Store uses this string to determine the appropriate categorization.z^public\.app-category\.\S+$LSApplicationCategoryTypez7Specifies whether this app runs only in the background.LSBackgroundOnlyz=List of key-value pairs used to define environment variables.LSEnvironmentz
            Minimum version of macOS required for this app to run, as `x.y.z`.
            For example, for macOS v10.4 and later, use `10.4.0`.
            z^\d+\.\d+\.\d+$LSMinimumSystemVersionzm
            Whether an app is prohibited from running simultaneously in multiple user sessions.
            LSMultipleInstancesProhibitedz
            If true, prevent a universal binary from being run under
            Rosetta emulation on an Intel-based Mac.
            LSRequiresNativeExecutionzMA message describing why an app is requesting access to capture system audio.NSAudioCaptureUsageDescriptionzLA message describing why an app is requesting access to the device's camera.NSCameraUsageDescriptionzQA message describing why an app is requesting access to the device's main camera.NSMainCameraUsageDescriptionzPA message describing why an app is requesting access to the device's microphone.NSMicrophoneUsageDescriptionz<If true, allows an OpenGL app to utilize the integrated GPU.$NSSupportsAutomaticGraphicsSwitchingz;The uniform type identifiers owned and exported by the app.UTExportedTypeDeclarationszMThe uniform type identifiers inherently supported, but not owned, by the app.UTImportedTypeDeclarationsz
            List of permissions to request for the launched application. See [the entitlements docs](
            https://developer.apple.com/documentation/bundleresources/entitlements) for a full
            list of possible values.
            z[a-z0-9\.\-]+entitlementsz
                Set of extra properties for the Info.plist file.
                These properties are not validated by `menuinst.`
                info_plist_extraa  
                Paths that should be symlinked into the shortcut app bundle.
                It takes a mapping of source to destination paths. Destination paths must be
                relative. Placeholder `{{ MENU_ITEM_LOCATION }}` can be useful.
                z^[^/]+.*link_in_bundlea  
            Required shell script logic to handle opened URL payloads.
            Note this feature requires macOS 10.14.4 or above.
            Using this key will inject a custom Swift launcher in the `.app` bundle
            to listen to Apple Events and forward them to your application.
            If your app is already handling Apple Events (e.g. via Qt's
            `QFileOpenEvent`), you do not need this.
            event_handlerr1   ),r2   r3   r4   r5   rF   r   r   r   r   r   r   r   r[   r6   r   r   r   r   r   r   r
   r   r   r   r\   r   r	   r   r   r   r   r   r   r   r   r   r   r   r   rG   r   r   r   r7   r1   r%   r#   r   r   `  s   
	 
(&
Y &
P
 
4 */*#  W\W3>P0Q+Q!RS  DIDL(9S%2*>%>?@  ).)  JO	JOXiU8-D(DEF 	 ?D	?ht$9:; 	 IN	I8D)C$DE 	 joYjx	#uEc7d2d(ef  (-N(htn  /4T/M8DcN+  [`[HYsEBT4U/U%VW  5:5!8D>  161x~  5:[5"HSM  /4Z/hsm  38_3 (3-  38^3 (3-  <AS<((4.  JORJ.D)E F  JO[J.D)E F  UZ	UL(4	#u=M/N*N OPQ 	 		
 htNC$789 
 			
 HT.)C{A[<[2\"\]^  /4/M8N+ r%   r   c                   t    \ rS rSr% Sr\" SSS9r\\   \	S'   \" SSS9r
\\   \	S'   \" SS	S9r\\   \	S
'   Srg)	Platformsi  z
Platform specific options.

Note each of these fields supports the same keys as the top-level `MenuItem`
(sans `platforms` itself), in case overrides are needed.
Nz1Options for Linux. See `Linux` model for details.rC   linuxz1Options for macOS. See `MacOS` model for details.osxz5Options for Windows. See `Windows` model for details.winr1   )r2   r3   r4   r5   rF   r   r   r   rl   r6   r   r   r   r^   r7   r1   r%   r#   r   r     s_     #HE8E?  !HC%  #LC'	 r%   r   c                   @   \ rS rSr% Sr\" SSS9r\\\	4   \
S'   \" SSS9r\\
S'   \" SS	S9r\" \S
S9\
S'   \" SSS9r\\   \
S'   \" SSS9r\\   \
S'   \" SSS9r\\   \
S'   \" SSS9r\\   \
S'   \" SSS9r\\   \
S'   \" SSS9r\\   \
S'   \" SS9r\\
S'   Srg)MenuItemi  z<Instructions to create a menu item across operating systems..rK   rC   rL   rM   r   rP   r=   r>   rQ   NrN   rO   rT   rU   zh
            (Simple, preferrably single-line) logic to run before the shortcut is created.
            rV   rR   rS   TrW   rX   FrY   rZ   z
            Platform-specific options. Presence of a platform field enables
            menu items in that platform.
            	platformsr1   )r2   r3   r4   r5   rF   r   rL   r   rG   rA   r6   r   r[   rQ   r   rO   r   rU   rV   rS   rX   r\   rZ   r   r   r7   r1   r%   r#   r   r     s6   B495D% 00
1  VK  +0+GWSQ'  &+L&D(>
"  ,1,J(  +0+Ix'  -2-K.)   %[ Hhtn   %	 Hhtn 	 !Iy r%   r   c                       \ rS rSr% Sr\" S\\\S.S9r	\\
S'   \" \SSS	S
9r\\
S'   \" \SSS9r\\
S'   \" SSS9r\\
S'   \" SSS9r\" \SS9\
S'   Srg)MenuInstSchemai  zPMetadata required to create menu items across operating systems with `menuinst`.r,   )$schema$idz$versionr-   r0   zDEPRECATED. Use ``$schema``.r   T)r   aliasra   id_z3Version of the menuinst schema to validate against.r   )r   r   schema_.zEName for the category containing the items specified in `menu_items`.rC   	menu_namez;List of menu entries to create across main desktop systems.r=   r>   
menu_itemsr1   N)r2   r3   r4   r5   rF   r   SCHEMA_DIALECT
SCHEMA_URLSCHEMA_VERSIONr0   r6   r   r   rG   r   r   r   r   r   r7   r1   r%   r#   r   r     s    V)%&
 L*   2	C  $IG^ 
 !&\!I~  38R3JQ/ r%   r   c                 `   [         R                  5       nU (       a  [        [        5      R                  n[
        R                  " USS9n[        U5        [        US-  S[         S3-  S5       nUR                  U5        UR                  S5        S S S 5        U$ U$ ! , (       d  f       U$ = f)N   indentdata	menuinst-r   w
)r   model_json_schemar   __file__parentjsondumpsprintopenr   write)r   r(   here
schema_strfs        r#   dump_schema_to_jsonr     s    --/FH~$$ZZq1
j$-In-=\"JJCPTUGGJGGDM Q M6M QP Ms   /#B
B-c           	         [        [        5      R                  n[        SSS/[	        5       R                  5       [        5       R                  5       [        5       R                  5       S.S9n[        SU/S9R                  5       n[        US'   UR                  SS 5        UR                  SS 5        US   S	   S
   R                  5        HJ  n[        UR                  5       5       H*  nU[        R                  ;   d  M  UR                  U5        M,     ML     U (       aV  [        U5        [!        US-  S["         S3-  S5       n[$        R&                  " X6SS9  UR)                  S5        S S S 5        U$ U$ ! , (       d  f       U$ = f)NREQUIRED)r   r   r   )rL   r   rQ   r   )r   r   r   r   r   r   r   r   r   r   z.default.jsonr   r   r   r   )r   r   r   r   r^   
model_dumpr   rl   r   r   popvalueslistkeysmodel_fieldsr   r   r   r   dumpr   )r   r   default_itemdefaultplatform_valuekeyr   s          r#   dump_default_to_jsonr     sR   >  D9'')7%%'W'')
		L z|nMXXZG#GIKKtKK	4 !,/2;?FFH++-.Ch+++""3' / I w$-In-=]"KKSQUVIIg+GGDM R N7N RQ Ns   'E99
Fc                     [        U [        [        45      (       a+  [        U 5       n[        R
                  " U5      nS S S 5        OU n[        S0 WD6$ ! , (       d  f       N= f)Nr1   )
isinstancer[   r   r   r   loadr   )metadata_or_pathr   metadatas      r#   validater   ,  sR    "S$K00"#qyy|H $# $%H%%	 $#s   A
A"__main__)T)/rF   r   r   r   inspectr   loggingr   pathlibr   r   typingr   r   r	   r
   r   r   r   pydanticr   
_BaseModelr   r:   r   pydantic.typesr   r2   logr   r   r   r[   r$   r)   rG   rA   rI   r^   rl   r   r   r   r   r   r   r   r1   r%   r#   <module>r      s7    	 	     G G G , $  " :2>2B,O
	C 	C 	4`
 `# 3 334y "H9 HV/" /dQ  Qh\  \~	 ,Ly L\Y B	8& z r%   