33
33
< h1 > Source code for agntcy_acp.manifest.validator</ h1 > < div class ="highlight "> < pre >
34
34
< span > </ span > < span class ="c1 "> # Copyright AGNTCY Contributors (https://github.com/agntcy)</ span >
35
35
< span class ="c1 "> # SPDX-License-Identifier: Apache-2.0</ span >
36
- < span class ="kn "> import</ span > < span class ="w "> </ span > < span class ="nn "> copy</ span >
37
36
< span class ="kn "> import</ span > < span class ="w "> </ span > < span class ="nn "> json</ span >
37
+ < span class ="kn "> import</ span > < span class ="w "> </ span > < span class ="nn "> logging</ span >
38
38
39
39
< span class ="kn "> from</ span > < span class ="w "> </ span > < span class ="nn "> pydantic</ span > < span class ="w "> </ span > < span class ="kn "> import</ span > < span class ="n "> ValidationError</ span >
40
40
41
+ < span class ="kn "> from</ span > < span class ="w "> </ span > < span class ="nn "> agntcy_acp.agws_v0</ span > < span class ="w "> </ span > < span class ="kn "> import</ span > < span class ="n "> OASF_EXTENSION_NAME_MANIFEST</ span > < span class ="p "> ,</ span > < span class ="n "> AgentManifest</ span >
41
42
< span class ="kn "> from</ span > < span class ="w "> </ span > < span class ="nn "> agntcy_acp.exceptions</ span > < span class ="w "> </ span > < span class ="kn "> import</ span > < span class ="n "> ACPDescriptorValidationException</ span >
42
43
< span class ="kn "> from</ span > < span class ="w "> </ span > < span class ="nn "> agntcy_acp.models</ span > < span class ="w "> </ span > < span class ="kn "> import</ span > < span class ="n "> AgentACPDescriptor</ span >
43
44
44
- < span class ="kn " > from </ span > < span class ="w " > < /span > < span class ="nn "> .</ span > < span class ="w " > </ span > < span class ="kn " > import </ span > < span class ="n " > AgentManifest </ span >
45
+ < span class ="n " > logger </ span > < span class ="o " > = </ span > < span class =" n " > logging < /span > < span class ="o "> .</ span > < span class ="n " > getLogger </ span > < span class ="p " > ( </ span > < span class =" vm " > __name__ </ span > < span class ="p " > ) </ span >
45
46
46
47
47
48
< div class ="viewcode-block " id ="validate_agent_manifest_file ">
@@ -66,11 +67,23 @@ <h1>Source code for agntcy_acp.manifest.validator</h1><div class="highlight"><pr
66
67
67
68
68
69
69
- < span class ="k "> def</ span > < span class ="w "> </ span > < span class ="nf "> _descriptor_from_manifest</ span > < span class ="p "> (</ span > < span class ="n "> manifest_json</ span > < span class ="p "> :</ span > < span class ="nb "> dict</ span > < span class ="p "> )</ span > < span class ="o "> -></ span > < span class ="nb "> dict</ span > < span class ="p "> :</ span >
70
- < span class ="c1 "> # ACP Descriptor is an Agent Manifest without the deployment part</ span >
71
- < span class ="n "> descriptor_json</ span > < span class ="o "> =</ span > < span class ="n "> copy</ span > < span class ="o "> .</ span > < span class ="n "> deepcopy</ span > < span class ="p "> (</ span > < span class ="n "> manifest_json</ span > < span class ="p "> )</ span >
72
- < span class ="k "> del</ span > < span class ="n "> descriptor_json</ span > < span class ="p "> [</ span > < span class ="s2 "> "deployment"</ span > < span class ="p "> ]</ span >
73
- < span class ="k "> return</ span > < span class ="n "> descriptor_json</ span >
70
+ < div class ="viewcode-block " id ="descriptor_from_manifest_obj ">
71
+ < a class ="viewcode-back " href ="../../../agntcy_acp.manifest.html#agntcy_acp.manifest.validator.descriptor_from_manifest_obj "> [docs]</ a >
72
+ < span class ="k "> def</ span > < span class ="w "> </ span > < span class ="nf "> descriptor_from_manifest_obj</ span > < span class ="p "> (</ span > < span class ="n "> manifest</ span > < span class ="p "> :</ span > < span class ="nb "> dict</ span > < span class ="o "> |</ span > < span class ="n "> AgentManifest</ span > < span class ="p "> )</ span > < span class ="o "> -></ span > < span class ="nb "> dict</ span > < span class ="p "> :</ span >
73
+ < span class ="c1 "> # ACP Descriptor is in the extensions of an Agent Manifest</ span >
74
+ < span class ="k "> if</ span > < span class ="nb "> hasattr</ span > < span class ="p "> (</ span > < span class ="n "> manifest</ span > < span class ="p "> ,</ span > < span class ="s2 "> "extensions"</ span > < span class ="p "> ):</ span >
75
+ < span class ="k "> for</ span > < span class ="n "> ext</ span > < span class ="ow "> in</ span > < span class ="n "> manifest</ span > < span class ="o "> .</ span > < span class ="n "> extensions</ span > < span class ="p "> :</ span >
76
+ < span class ="k "> if</ span > < span class ="n "> ext</ span > < span class ="o "> .</ span > < span class ="n "> name</ span > < span class ="o "> ==</ span > < span class ="n "> OASF_EXTENSION_NAME_MANIFEST</ span > < span class ="p "> :</ span >
77
+ < span class ="n "> descriptor_json</ span > < span class ="o "> =</ span > < span class ="n "> ext</ span > < span class ="o "> .</ span > < span class ="n "> data</ span > < span class ="o "> .</ span > < span class ="n "> acp</ span >
78
+ < span class ="k "> return</ span > < span class ="n "> descriptor_json</ span >
79
+ < span class ="k "> else</ span > < span class ="p "> :</ span >
80
+ < span class ="k "> for</ span > < span class ="n "> ext</ span > < span class ="ow "> in</ span > < span class ="n "> manifest</ span > < span class ="o "> .</ span > < span class ="n "> get</ span > < span class ="p "> (</ span > < span class ="s2 "> "extensions"</ span > < span class ="p "> ,</ span > < span class ="p "> []):</ span >
81
+ < span class ="k "> if</ span > < span class ="n "> ext</ span > < span class ="o "> .</ span > < span class ="n "> get</ span > < span class ="p "> (</ span > < span class ="s2 "> "name"</ span > < span class ="p "> ,</ span > < span class ="kc "> None</ span > < span class ="p "> )</ span > < span class ="o "> ==</ span > < span class ="n "> OASF_EXTENSION_NAME_MANIFEST</ span > < span class ="p "> :</ span >
82
+ < span class ="n "> ext_json</ span > < span class ="o "> =</ span > < span class ="n "> ext</ span > < span class ="o "> .</ span > < span class ="n "> get</ span > < span class ="p "> (</ span > < span class ="s2 "> "data"</ span > < span class ="p "> ,</ span > < span class ="p "> {})</ span >
83
+ < span class ="n "> descriptor_json</ span > < span class ="o "> =</ span > < span class ="n "> ext_json</ span > < span class ="o "> .</ span > < span class ="n "> get</ span > < span class ="p "> (</ span > < span class ="s2 "> "acp"</ span > < span class ="p "> ,</ span > < span class ="p "> {})</ span >
84
+ < span class ="k "> return</ span > < span class ="n "> descriptor_json</ span >
85
+ < span class ="k "> return</ span > < span class ="p "> {}</ span > </ div >
86
+
74
87
75
88
76
89
< div class ="viewcode-block " id ="validate_agent_manifest ">
@@ -80,13 +93,14 @@ <h1>Source code for agntcy_acp.manifest.validator</h1><div class="highlight"><pr
80
93
< span class ="p "> )</ span > < span class ="o "> -></ span > < span class ="n "> AgentManifest</ span > < span class ="o "> |</ span > < span class ="kc "> None</ span > < span class ="p "> :</ span >
81
94
< span class ="k "> try</ span > < span class ="p "> :</ span >
82
95
< span class ="n "> manifest</ span > < span class ="o "> =</ span > < span class ="n "> AgentManifest</ span > < span class ="o "> .</ span > < span class ="n "> model_validate</ span > < span class ="p "> (</ span > < span class ="n "> manifest_json</ span > < span class ="p "> )</ span >
83
- < span class ="n "> descriptor_json</ span > < span class ="o "> =</ span > < span class ="n "> _descriptor_from_manifest </ span > < span class ="p "> (</ span > < span class ="n "> manifest_json</ span > < span class ="p "> )</ span >
96
+ < span class ="n "> descriptor_json</ span > < span class ="o "> =</ span > < span class ="n "> descriptor_from_manifest_obj </ span > < span class ="p "> (</ span > < span class ="n "> manifest_json</ span > < span class ="p "> )</ span >
84
97
< span class ="n "> validate_agent_descriptor</ span > < span class ="p "> (</ span > < span class ="n "> descriptor_json</ span > < span class ="p "> )</ span >
85
98
< span class ="c1 "> # TODO: add additional manifest checks</ span >
86
99
< span class ="k "> except</ span > < span class ="p "> (</ span > < span class ="n "> ValidationError</ span > < span class ="p "> ,</ span > < span class ="n "> ACPDescriptorValidationException</ span > < span class ="p "> )</ span > < span class ="k "> as</ span > < span class ="n "> e</ span > < span class ="p "> :</ span >
87
- < span class ="nb "> print</ span > < span class ="p "> (</ span > < span class ="sa "> f</ span > < span class ="s2 "> "Validation Error: </ span > < span class ="si "> {</ span > < span class ="n "> e</ span > < span class ="si "> }</ span > < span class ="s2 "> "</ span > < span class ="p "> )</ span >
88
100
< span class ="k "> if</ span > < span class ="n "> raise_exception</ span > < span class ="p "> :</ span >
89
101
< span class ="k "> raise</ span > < span class ="n "> e</ span >
102
+ < span class ="k "> else</ span > < span class ="p "> :</ span >
103
+ < span class ="n "> logger</ span > < span class ="o "> .</ span > < span class ="n "> debug</ span > < span class ="p "> (</ span > < span class ="sa "> f</ span > < span class ="s2 "> "Validation Error: </ span > < span class ="si "> {</ span > < span class ="n "> e</ span > < span class ="si "> }</ span > < span class ="s2 "> "</ span > < span class ="p "> )</ span >
90
104
< span class ="k "> return</ span > < span class ="kc "> None</ span >
91
105
92
106
< span class ="k "> return</ span > < span class ="n "> manifest</ span > </ div >
@@ -104,9 +118,10 @@ <h1>Source code for agntcy_acp.manifest.validator</h1><div class="highlight"><pr
104
118
< span class ="c1 "> # advanced validation</ span >
105
119
< span class ="c1 "> # generate_agent_oapi(descriptor)</ span >
106
120
< span class ="k "> except</ span > < span class ="p "> (</ span > < span class ="n "> ValidationError</ span > < span class ="p "> ,</ span > < span class ="n "> ACPDescriptorValidationException</ span > < span class ="p "> )</ span > < span class ="k "> as</ span > < span class ="n "> e</ span > < span class ="p "> :</ span >
107
- < span class ="nb "> print</ span > < span class ="p "> (</ span > < span class ="sa "> f</ span > < span class ="s2 "> "Validation Error: </ span > < span class ="si "> {</ span > < span class ="n "> e</ span > < span class ="si "> }</ span > < span class ="s2 "> "</ span > < span class ="p "> )</ span >
108
121
< span class ="k "> if</ span > < span class ="n "> raise_exception</ span > < span class ="p "> :</ span >
109
122
< span class ="k "> raise</ span > < span class ="n "> e</ span >
123
+ < span class ="k "> else</ span > < span class ="p "> :</ span >
124
+ < span class ="n "> logger</ span > < span class ="o "> .</ span > < span class ="n "> debug</ span > < span class ="p "> (</ span > < span class ="sa "> f</ span > < span class ="s2 "> "Validation Error: </ span > < span class ="si "> {</ span > < span class ="n "> e</ span > < span class ="si "> }</ span > < span class ="s2 "> "</ span > < span class ="p "> )</ span >
110
125
< span class ="k "> return</ span > < span class ="kc "> None</ span >
111
126
112
127
< span class ="k "> return</ span > < span class ="n "> descriptor</ span > </ div >
0 commit comments