- Add validate_sore() to gbnf.py — checks parseability without converting - _infer_group now validates grammar and returns skip_reason='malformed_grammar' for SOREs containing raw code (e.g. w_body=, sult=, (+,+:N+...) - Results: 130 grammars, 130 GBNF OK, 0 GBNF FAIL - Flask: 5 OK, 0 FAIL, 3.4s - RAGSAK: 19 OK, 0 FAIL, 11 malformed, 12.9s - FastAPI: 106 OK, 0 FAIL, 6 malformed, 30.5s
1071 lines
No EOL
65 KiB
JSON
1071 lines
No EOL
65 KiB
JSON
[
|
|
{
|
|
"package": "docs/en/docs/js",
|
|
"ext": ".js",
|
|
"methods": 49,
|
|
"skip": "too_diverse"
|
|
},
|
|
{
|
|
"package": "(other)",
|
|
"ext": ".js",
|
|
"methods": 1
|
|
},
|
|
{
|
|
"package": "docs_src",
|
|
"ext": ".py",
|
|
"methods": 45,
|
|
"sore": "if?.(HTTP_201_CREATED+JSONResponse+app+await+content+duration+else+end_datetime+get+headers+id+in+item+item_id+items+json_compatible_item_data+jsonable_encoder+key+name+process_after+repeat_at+request+response+results+return+set_cookie+size+start_datetime+start_process+status+status_code+value)+.len+?.(ads_id+username)?.file?.token?.fileb?.content_type?",
|
|
"gbnf": "root ::= \"if\"? (\"HTTP_201_CREATED\" | \"JSONResponse\" | \"app\" | \"await\" | \"content\" | \"duration\" | \"else\" | \"end_datetime\" | \"get\" | \"headers\" | \"id\" | \"in\" | \"item\" | \"item_id\" | \"items\" | \"json_compatible_item_data\" | \"jsonable_encoder\" | \"key\" | \"name\" | \"process_after\" | \"repeat_at\" | \"request\" | \"response\" | \"results\" | \"return\" | \"set_cookie\" | \"size\" | \"start_datetime\" | \"start_process\" | \"status\" | \"status_code\" | \"value\")+ \"len\"* (\"ads_id\" | \"username\")? \"file\"? \"token\"? \"fileb\"? \"content_type\"?",
|
|
"gbnf_ok": true
|
|
},
|
|
{
|
|
"package": "docs_src/additional_responses",
|
|
"ext": ".py",
|
|
"methods": 4,
|
|
"sore": "if.(img+item_id).(FileResponse+else+media_type+return)+.JSONResponse+?.status_code?.content?",
|
|
"gbnf": "root ::= \"if\" (\"img\" | \"item_id\") (\"FileResponse\" | \"else\" | \"media_type\" | \"return\")+ \"JSONResponse\"* \"status_code\"? \"content\"?",
|
|
"gbnf_ok": true
|
|
},
|
|
{
|
|
"package": "docs_src/advanced_middleware",
|
|
"ext": ".py",
|
|
"methods": 3,
|
|
"sore": "return",
|
|
"gbnf": "root ::= \"return\"",
|
|
"gbnf_ok": true
|
|
},
|
|
{
|
|
"package": "docs_src/app_testing",
|
|
"ext": ".py",
|
|
"methods": 14,
|
|
"sore": "return?.(TestClient+app+client+get+items+json+response+status_code+yield)+?.websocket_connect+?.(clear+item_id)+?.(accept+await+data+receive_json+send_json+websocket)+?.close+?",
|
|
"gbnf": "root ::= \"return\"? (\"TestClient\" | \"app\" | \"client\" | \"get\" | \"items\" | \"json\" | \"response\" | \"status_code\" | \"yield\")* \"websocket_connect\"* (\"clear\" | \"item_id\")* (\"accept\" | \"await\" | \"data\" | \"receive_json\" | \"send_json\" | \"websocket\")* \"close\"*",
|
|
"gbnf_ok": true
|
|
},
|
|
{
|
|
"package": "docs_src/app_testing/app_b_an_py310",
|
|
"ext": ".py",
|
|
"methods": 8,
|
|
"sore": "(HTTPException+client+detail+fake_db+fake_secret_token+get+headers+id+if+in+item+item_id+json+model_dump+not+not in+post+raise+response+return+status_code+x_token)+",
|
|
"gbnf": "root ::= (\"HTTPException\" | \"client\" | \"detail\" | \"fake_db\" | \"fake_secret_token\" | \"get\" | \"headers\" | \"id\" | \"if\" | \"in\" | \"item\" | \"item_id\" | \"json\" | \"model_dump\" | \"not\" | \"not in\" | \"post\" | \"raise\" | \"response\" | \"return\" | \"status_code\" | \"x_token\")+",
|
|
"gbnf_ok": true
|
|
},
|
|
{
|
|
"package": "docs_src/app_testing/app_b_py310",
|
|
"ext": ".py",
|
|
"methods": 8,
|
|
"sore": "(HTTPException+client+detail+fake_db+fake_secret_token+get+headers+id+if+in+item+item_id+json+model_dump+not+not in+post+raise+response+return+status_code+x_token)+",
|
|
"gbnf": "root ::= (\"HTTPException\" | \"client\" | \"detail\" | \"fake_db\" | \"fake_secret_token\" | \"get\" | \"headers\" | \"id\" | \"if\" | \"in\" | \"item\" | \"item_id\" | \"json\" | \"model_dump\" | \"not\" | \"not in\" | \"post\" | \"raise\" | \"response\" | \"return\" | \"status_code\" | \"x_token\")+",
|
|
"gbnf_ok": true
|
|
},
|
|
{
|
|
"package": "docs_src/background_tasks",
|
|
"ext": ".py",
|
|
"methods": 8,
|
|
"sore": "open+?.if?.mode?.log+?.(add_task+background_tasks+content+email+email_file+message+q+return+write+write_log+write_notification)+",
|
|
"gbnf": "root ::= \"open\"* \"if\"? \"mode\"? \"log\"* (\"add_task\" | \"background_tasks\" | \"content\" | \"email\" | \"email_file\" | \"message\" | \"q\" | \"return\" | \"write\" | \"write_log\" | \"write_notification\")+",
|
|
"gbnf_ok": true
|
|
},
|
|
{
|
|
"package": "docs_src/behind_a_proxy",
|
|
"ext": ".py",
|
|
"methods": 5,
|
|
"sore": "return.request?.scope?.get+?",
|
|
"gbnf": "root ::= \"return\" \"request\"? \"scope\"? \"get\"*",
|
|
"gbnf_ok": true
|
|
},
|
|
{
|
|
"package": "docs_src/bigger_applications/app_an_py310",
|
|
"ext": ".py",
|
|
"methods": 4,
|
|
"sore": "if?.return?.(token+x_token)?.raise?.HTTPException+?.status_code?.detail?",
|
|
"gbnf": "root ::= \"if\"? \"return\"? (\"token\" | \"x_token\")? \"raise\"? \"HTTPException\"* \"status_code\"? \"detail\"?",
|
|
"gbnf_ok": true
|
|
},
|
|
{
|
|
"package": "docs_src/bigger_applications/app_an_py310/routers",
|
|
"ext": ".py",
|
|
"methods": 6,
|
|
"sore": "if?.(HTTPException+detail+fake_items_db+in+item_id+not+not in+raise+return+status_code)+.username?",
|
|
"gbnf": "root ::= \"if\"? (\"HTTPException\" | \"detail\" | \"fake_items_db\" | \"in\" | \"item_id\" | \"not\" | \"not in\" | \"raise\" | \"return\" | \"status_code\")+ \"username\"?",
|
|
"gbnf_ok": true
|
|
},
|
|
{
|
|
"package": "docs_src/body",
|
|
"ext": ".py",
|
|
"methods": 4,
|
|
"skip": "too_diverse"
|
|
},
|
|
{
|
|
"package": "docs_src/body_multiple_params",
|
|
"ext": ".py",
|
|
"methods": 9,
|
|
"sore": "(if+importance+item+item_id+q+results+return+update+user)+",
|
|
"gbnf": "root ::= (\"if\" | \"importance\" | \"item\" | \"item_id\" | \"q\" | \"results\" | \"return\" | \"update\" | \"user\")+",
|
|
"gbnf_ok": true
|
|
},
|
|
{
|
|
"package": "docs_src/body_nested_models",
|
|
"ext": ".py",
|
|
"methods": 9,
|
|
"sore": "(item+item_id+results+return)+.(images+offer+weights)?",
|
|
"gbnf": "root ::= (\"item\" | \"item_id\" | \"results\" | \"return\")+ (\"images\" | \"offer\" | \"weights\")?",
|
|
"gbnf_ok": true
|
|
},
|
|
{
|
|
"package": "docs_src/body_updates",
|
|
"ext": ".py",
|
|
"methods": 4,
|
|
"sore": "(Item+exclude_unset+item+item_id+items+jsonable_encoder+model_copy+model_dump+return+stored_item_data+stored_item_model+update+update_data+update_item_encoded+updated_item)+",
|
|
"gbnf": "root ::= (\"Item\" | \"exclude_unset\" | \"item\" | \"item_id\" | \"items\" | \"jsonable_encoder\" | \"model_copy\" | \"model_dump\" | \"return\" | \"stored_item_data\" | \"stored_item_model\" | \"update\" | \"update_data\" | \"update_item_encoded\" | \"updated_item\")+",
|
|
"gbnf_ok": true
|
|
},
|
|
{
|
|
"package": "docs_src/configure_swagger_ui",
|
|
"ext": ".py",
|
|
"methods": 3,
|
|
"sore": "return.username",
|
|
"gbnf": "root ::= \"return\" \"username\"",
|
|
"gbnf_ok": true
|
|
},
|
|
{
|
|
"package": "docs_src/cookie_param_models",
|
|
"ext": ".py",
|
|
"methods": 4,
|
|
"sore": "return.cookies",
|
|
"gbnf": "root ::= \"return\" \"cookies\"",
|
|
"gbnf_ok": true
|
|
},
|
|
{
|
|
"package": "docs_src/custom_docs_ui",
|
|
"ext": ".py",
|
|
"methods": 8,
|
|
"sore": "return.(get_swagger_ui_oauth2_redirect_html+username)+?.(get_redoc_html+get_swagger_ui_html)+?.(app+oauth2_redirect_url+openapi_url+title)+?.swagger_ui_oauth2_redirect_url?.redoc_js_url?.swagger_js_url?.swagger_css_url?",
|
|
"gbnf": "root ::= \"return\" (\"get_swagger_ui_oauth2_redirect_html\" | \"username\")* (\"get_redoc_html\" | \"get_swagger_ui_html\")* (\"app\" | \"oauth2_redirect_url\" | \"openapi_url\" | \"title\")* \"swagger_ui_oauth2_redirect_url\"? \"redoc_js_url\"? \"swagger_js_url\"? \"swagger_css_url\"?",
|
|
"gbnf_ok": true
|
|
},
|
|
{
|
|
"package": "docs_src/custom_request_and_route",
|
|
"ext": ".py",
|
|
"methods": 18,
|
|
"sore": "(GzipRequest+HTTPException+Request+RequestValidationError+Response+_body+async+await+before+body+custom_route_handler+decode+decompress+def+detail+duration+errors+exc+except+get_route_handler+getlist+gzip+hasattr+headers+if+in+not+original_route_handler+print+raise+receive+request+response+return+scope+self+status_code+str+super+time+try)+.sum+?.numbers?",
|
|
"gbnf": "root ::= (\"GzipRequest\" | \"HTTPException\" | \"Request\" | \"RequestValidationError\" | \"Response\" | \"_body\" | \"async\" | \"await\" | \"before\" | \"body\" | \"custom_route_handler\" | \"decode\" | \"decompress\" | \"def\" | \"detail\" | \"duration\" | \"errors\" | \"exc\" | \"except\" | \"get_route_handler\" | \"getlist\" | \"gzip\" | \"hasattr\" | \"headers\" | \"if\" | \"in\" | \"not\" | \"original_route_handler\" | \"print\" | \"raise\" | \"receive\" | \"request\" | \"response\" | \"return\" | \"scope\" | \"self\" | \"status_code\" | \"str\" | \"super\" | \"time\" | \"try\")+ \"sum\"* \"numbers\"?",
|
|
"gbnf_ok": true
|
|
},
|
|
{
|
|
"package": "docs_src/custom_response",
|
|
"ext": ".py",
|
|
"methods": 19,
|
|
"sore": "for?.def?.i?.in?.range+?.(FileResponse+HTMLResponse+StreamingResponse+content+dumps+file_like+from+html_content+is+is not+iterfile+mode+not+open+option+orjson+return+some_file_path+yield)+.(OPT_INDENT_2+ORJSONResponse+RedirectResponse+fake_video_streamer+generate_html_response+media_type+status_code)+?.await?.anyio?.sleep+?",
|
|
"gbnf": "root ::= \"for\"? \"def\"? \"i\"? \"in\"? \"range\"* (\"FileResponse\" | \"HTMLResponse\" | \"StreamingResponse\" | \"content\" | \"dumps\" | \"file_like\" | \"from\" | \"html_content\" | \"is\" | \"is not\" | \"iterfile\" | \"mode\" | \"not\" | \"open\" | \"option\" | \"orjson\" | \"return\" | \"some_file_path\" | \"yield\")+ (\"OPT_INDENT_2\" | \"ORJSONResponse\" | \"RedirectResponse\" | \"fake_video_streamer\" | \"generate_html_response\" | \"media_type\" | \"status_code\")* \"await\"? \"anyio\"? \"sleep\"*",
|
|
"gbnf_ok": true
|
|
},
|
|
{
|
|
"package": "docs_src/dataclasses_",
|
|
"ext": ".py",
|
|
"methods": 4,
|
|
"sore": "return.item?.author_id?.items?",
|
|
"gbnf": "root ::= \"return\" \"item\"? \"author_id\"? \"items\"?",
|
|
"gbnf_ok": true
|
|
},
|
|
{
|
|
"package": "docs_src/dependencies",
|
|
"ext": ".py",
|
|
"methods": 82,
|
|
"skip": "malformed_grammar"
|
|
},
|
|
{
|
|
"package": "docs_src/dependency_testing",
|
|
"ext": ".py",
|
|
"methods": 14,
|
|
"sore": "(client+get+response+status_code)+?.return?.json+?.commons?.q?.skip?.limit?",
|
|
"gbnf": "root ::= (\"client\" | \"get\" | \"response\" | \"status_code\")* \"return\"? \"json\"* \"commons\"? \"q\"? \"skip\"? \"limit\"?",
|
|
"gbnf_ok": true
|
|
},
|
|
{
|
|
"package": "docs_src/events",
|
|
"ext": ".py",
|
|
"methods": 7,
|
|
"skip": "too_diverse"
|
|
},
|
|
{
|
|
"package": "docs_src/extra_models",
|
|
"ext": ".py",
|
|
"methods": 9,
|
|
"sore": "(UserInDB+fake_password_hasher+fake_save_user+hashed_password+model_dump+password+print+return+user_in+user_in_db+user_saved)+.items?.raw_password?.item_id?",
|
|
"gbnf": "root ::= (\"UserInDB\" | \"fake_password_hasher\" | \"fake_save_user\" | \"hashed_password\" | \"model_dump\" | \"password\" | \"print\" | \"return\" | \"user_in\" | \"user_in_db\" | \"user_saved\")+ \"items\"? \"raw_password\"? \"item_id\"?",
|
|
"gbnf_ok": true
|
|
},
|
|
{
|
|
"package": "docs_src/generate_clients",
|
|
"ext": ".py",
|
|
"methods": 9,
|
|
"sore": "return.(route+tags)+?.name?",
|
|
"gbnf": "root ::= \"return\" (\"route\" | \"tags\")* \"name\"?",
|
|
"gbnf_ok": true
|
|
},
|
|
{
|
|
"package": "docs_src/handling_errors",
|
|
"ext": ".py",
|
|
"methods": 13,
|
|
"skip": "too_diverse"
|
|
},
|
|
{
|
|
"package": "docs_src/header_param_models",
|
|
"ext": ".py",
|
|
"methods": 6,
|
|
"sore": "return.headers",
|
|
"gbnf": "root ::= \"return\" \"headers\"",
|
|
"gbnf_ok": true
|
|
},
|
|
{
|
|
"package": "docs_src/header_params",
|
|
"ext": ".py",
|
|
"methods": 6,
|
|
"sore": "return.(strange_header+user_agent+x_token)",
|
|
"gbnf": "root ::= \"return\" (\"strange_header\" | \"user_agent\" | \"x_token\")",
|
|
"gbnf_ok": true
|
|
},
|
|
{
|
|
"package": "docs_src/json_base64_bytes",
|
|
"ext": ".py",
|
|
"methods": 3,
|
|
"skip": "too_diverse"
|
|
},
|
|
{
|
|
"package": "docs_src/metadata",
|
|
"ext": ".py",
|
|
"methods": 6,
|
|
"sore": "(return+urn [{)",
|
|
"gbnf": "root ::= \"return\" | \"urn [{\"",
|
|
"gbnf_ok": true
|
|
},
|
|
{
|
|
"package": "docs_src/path_operation_advanced_configuration",
|
|
"ext": ".py",
|
|
"methods": 9,
|
|
"skip": "malformed_grammar"
|
|
},
|
|
{
|
|
"package": "docs_src/path_operation_configuration",
|
|
"ext": ".py",
|
|
"methods": 12,
|
|
"sore": "return.item?",
|
|
"gbnf": "root ::= \"return\" \"item\"?",
|
|
"gbnf_ok": true
|
|
},
|
|
{
|
|
"package": "docs_src/path_params",
|
|
"ext": ".py",
|
|
"methods": 8,
|
|
"sore": "(ModelName+alexnet+if+is+model_name+return+value)+.(file_path+item_id+user_id)?",
|
|
"gbnf": "root ::= (\"ModelName\" | \"alexnet\" | \"if\" | \"is\" | \"model_name\" | \"return\" | \"value\")+ (\"file_path\" | \"item_id\" | \"user_id\")?",
|
|
"gbnf_ok": true
|
|
},
|
|
{
|
|
"package": "docs_src/path_params_numeric_validations",
|
|
"ext": ".py",
|
|
"methods": 12,
|
|
"sore": "(if+item_id+q+results+return+size+update)+",
|
|
"gbnf": "root ::= (\"if\" | \"item_id\" | \"q\" | \"results\" | \"return\" | \"size\" | \"update\")+",
|
|
"gbnf_ok": true
|
|
},
|
|
{
|
|
"package": "docs_src/pydantic_v1_in_v2",
|
|
"ext": ".py",
|
|
"methods": 3,
|
|
"sore": "return.item",
|
|
"gbnf": "root ::= \"return\" \"item\"",
|
|
"gbnf_ok": true
|
|
},
|
|
{
|
|
"package": "docs_src/python_types",
|
|
"ext": ".py",
|
|
"methods": 13,
|
|
"skip": "too_diverse"
|
|
},
|
|
{
|
|
"package": "docs_src/query_param_models",
|
|
"ext": ".py",
|
|
"methods": 4,
|
|
"sore": "return.filter_query",
|
|
"gbnf": "root ::= \"return\" \"filter_query\"",
|
|
"gbnf_ok": true
|
|
},
|
|
{
|
|
"package": "docs_src/query_params",
|
|
"ext": ".py",
|
|
"methods": 6,
|
|
"skip": "too_diverse"
|
|
},
|
|
{
|
|
"package": "docs_src/query_params_str_validations",
|
|
"ext": ".py",
|
|
"methods": 31,
|
|
"sore": "(ValueError+choice+data+else+get+hidden_query+id+if+item+items+list+not+q+query_items+raise+random+results+return+startswith+update)+",
|
|
"gbnf": "root ::= (\"ValueError\" | \"choice\" | \"data\" | \"else\" | \"get\" | \"hidden_query\" | \"id\" | \"if\" | \"item\" | \"items\" | \"list\" | \"not\" | \"q\" | \"query_items\" | \"raise\" | \"random\" | \"results\" | \"return\" | \"startswith\" | \"update\")+",
|
|
"gbnf_ok": true
|
|
},
|
|
{
|
|
"package": "docs_src/request_files",
|
|
"ext": ".py",
|
|
"methods": 24,
|
|
"sore": "if?.not?.(HTMLResponse+content+else+file+filename+for+len+return)+.in?.files?",
|
|
"gbnf": "root ::= \"if\"? \"not\"? (\"HTMLResponse\" | \"content\" | \"else\" | \"file\" | \"filename\" | \"for\" | \"len\" | \"return\")+ \"in\"? \"files\"?",
|
|
"gbnf_ok": true
|
|
},
|
|
{
|
|
"package": "docs_src/request_form_models",
|
|
"ext": ".py",
|
|
"methods": 4,
|
|
"sore": "return.data",
|
|
"gbnf": "root ::= \"return\" \"data\"",
|
|
"gbnf_ok": true
|
|
},
|
|
{
|
|
"package": "docs_src/response_model",
|
|
"ext": ".py",
|
|
"methods": 16,
|
|
"sore": "if?.teleport?.(RedirectResponse+return+url)+.(item+user)?.(Item+name+price)+?.items?.JSONResponse+?.item_id?.content?",
|
|
"gbnf": "root ::= \"if\"? \"teleport\"? (\"RedirectResponse\" | \"return\" | \"url\")+ (\"item\" | \"user\")? (\"Item\" | \"name\" | \"price\")* \"items\"? \"JSONResponse\"* \"item_id\"? \"content\"?",
|
|
"gbnf_ok": true
|
|
},
|
|
{
|
|
"package": "docs_src/schema_extra_example",
|
|
"ext": ".py",
|
|
"methods": 8,
|
|
"sore": "(item+item_id+results+return)+",
|
|
"gbnf": "root ::= (\"item\" | \"item_id\" | \"results\" | \"return\")+",
|
|
"gbnf_ok": true
|
|
},
|
|
{
|
|
"package": "docs_src/security",
|
|
"ext": ".py",
|
|
"methods": 70,
|
|
"sore": "(ACCESS_TOKEN_EXPIRE_MINUTES+ALGORITHM+DUMMY_HASH+HTTPException+HTTP_401_UNAUTHORIZED+InvalidTokenError+SECRET_KEY+Token+TokenData+UserInDB+access_token+access_token_expires+algorithm+algorithms+authenticate_user+copy+create_access_token+credentials+credentials_exception+current_user+data+datetime+db+decode+detail+disabled+else+encode+encoded_jwt+except+expire+expires_delta+fake_db+fake_decode_token+fake_users_db+form_data+get+get_user+hash+hashed_password+headers+if+in+is+jwt+minutes+not+now+password+password_hash+payload+plain_password+raise+return+scopes+status+status_code+timedelta+timezone+to_encode+token+token_data+try+update+user+user_dict+username+utc+verify+verify_password)+.token_type?",
|
|
"gbnf": "root ::= (\"ACCESS_TOKEN_EXPIRE_MINUTES\" | \"ALGORITHM\" | \"DUMMY_HASH\" | \"HTTPException\" | \"HTTP_401_UNAUTHORIZED\" | \"InvalidTokenError\" | \"SECRET_KEY\" | \"Token\" | \"TokenData\" | \"UserInDB\" | \"access_token\" | \"access_token_expires\" | \"algorithm\" | \"algorithms\" | \"authenticate_user\" | \"copy\" | \"create_access_token\" | \"credentials\" | \"credentials_exception\" | \"current_user\" | \"data\" | \"datetime\" | \"db\" | \"decode\" | \"detail\" | \"disabled\" | \"else\" | \"encode\" | \"encoded_jwt\" | \"except\" | \"expire\" | \"expires_delta\" | \"fake_db\" | \"fake_decode_token\" | \"fake_users_db\" | \"form_data\" | \"get\" | \"get_user\" | \"hash\" | \"hashed_password\" | \"headers\" | \"if\" | \"in\" | \"is\" | \"jwt\" | \"minutes\" | \"not\" | \"now\" | \"password\" | \"password_hash\" | \"payload\" | \"plain_password\" | \"raise\" | \"return\" | \"scopes\" | \"status\" | \"status_code\" | \"timedelta\" | \"timezone\" | \"to_encode\" | \"token\" | \"token_data\" | \"try\" | \"update\" | \"user\" | \"user_dict\" | \"username\" | \"utc\" | \"verify\" | \"verify_password\")+ \"token_type\"?",
|
|
"gbnf_ok": true
|
|
},
|
|
{
|
|
"package": "docs_src/separate_openapi_schemas",
|
|
"ext": ".py",
|
|
"methods": 4,
|
|
"sore": "return.item?.(Item+description+name)+?",
|
|
"gbnf": "root ::= \"return\" \"item\"? (\"Item\" | \"description\" | \"name\")*",
|
|
"gbnf_ok": true
|
|
},
|
|
{
|
|
"package": "docs_src/server_sent_events",
|
|
"ext": ".py",
|
|
"methods": 8,
|
|
"sore": "(ServerSentEvent+comment+continue+data+else+enumerate+event+for+i+id+if+in+is+is not+item+items+last_event_id+log_line+logs+not+prompt+raw_data+split+start+str+text+word+words+yield)+.retry?",
|
|
"gbnf": "root ::= (\"ServerSentEvent\" | \"comment\" | \"continue\" | \"data\" | \"else\" | \"enumerate\" | \"event\" | \"for\" | \"i\" | \"id\" | \"if\" | \"in\" | \"is\" | \"is not\" | \"item\" | \"items\" | \"last_event_id\" | \"log_line\" | \"logs\" | \"not\" | \"prompt\" | \"raw_data\" | \"split\" | \"start\" | \"str\" | \"text\" | \"word\" | \"words\" | \"yield\")+ \"retry\"?",
|
|
"gbnf_ok": true
|
|
},
|
|
{
|
|
"package": "docs_src/settings",
|
|
"ext": ".py",
|
|
"methods": 5,
|
|
"sore": "return.(admin_email+app_name+settings)+?.config?.items_per_user?.Settings+?",
|
|
"gbnf": "root ::= \"return\" (\"admin_email\" | \"app_name\" | \"settings\")* \"config\"? \"items_per_user\"? \"Settings\"*",
|
|
"gbnf_ok": true
|
|
},
|
|
{
|
|
"package": "docs_src/settings/app02_an_py310",
|
|
"ext": ".py",
|
|
"methods": 4,
|
|
"skip": "too_diverse"
|
|
},
|
|
{
|
|
"package": "docs_src/settings/app02_py310",
|
|
"ext": ".py",
|
|
"methods": 4,
|
|
"skip": "too_diverse"
|
|
},
|
|
{
|
|
"package": "docs_src/sql_databases",
|
|
"ext": ".py",
|
|
"methods": 30,
|
|
"sore": "SQLModel?.Session+?.create_db_and_tables+?.metadata?.create_all+?.engine?.(HTTPException+Hero+add+all+commit+db_hero+delete+detail+exclude_unset+exec+get+hero+hero_data+hero_db+hero_id+heroes+if+limit+model_dump+model_validate+not+offset+raise+refresh+return+select+session+sqlmodel_update+status_code+yield)+?",
|
|
"gbnf": "root ::= \"SQLModel\"? \"Session\"* \"create_db_and_tables\"* \"metadata\"? \"create_all\"* \"engine\"? (\"HTTPException\" | \"Hero\" | \"add\" | \"all\" | \"commit\" | \"db_hero\" | \"delete\" | \"detail\" | \"exclude_unset\" | \"exec\" | \"get\" | \"hero\" | \"hero_data\" | \"hero_db\" | \"hero_id\" | \"heroes\" | \"if\" | \"limit\" | \"model_dump\" | \"model_validate\" | \"not\" | \"offset\" | \"raise\" | \"refresh\" | \"return\" | \"select\" | \"session\" | \"sqlmodel_update\" | \"status_code\" | \"yield\")*",
|
|
"gbnf_ok": true
|
|
},
|
|
{
|
|
"package": "docs_src/stream_data",
|
|
"ext": ".py",
|
|
"methods": 14,
|
|
"sore": "read_image+?.return?.(chunk+for+from+image_file+in+line+message+splitlines+yield)+?.BytesIO+?.encode+?.binary_image?",
|
|
"gbnf": "root ::= \"read_image\"* \"return\"? (\"chunk\" | \"for\" | \"from\" | \"image_file\" | \"in\" | \"line\" | \"message\" | \"splitlines\" | \"yield\")* \"BytesIO\"* \"encode\"* \"binary_image\"?",
|
|
"gbnf_ok": true
|
|
},
|
|
{
|
|
"package": "docs_src/stream_json_lines",
|
|
"ext": ".py",
|
|
"methods": 4,
|
|
"sore": "for.(in+item+items+yield)+",
|
|
"gbnf": "root ::= \"for\" (\"in\" | \"item\" | \"items\" | \"yield\")+",
|
|
"gbnf_ok": true
|
|
},
|
|
{
|
|
"package": "docs_src/websockets_",
|
|
"ext": ".py",
|
|
"methods": 15,
|
|
"sore": "for?.(WS_1008_POLICY_VIOLATION+WebSocketDisconnect+WebSocketException+accept+active_connections+and+append+await+broadcast+client_id+code+connect+connection+cookie_or_token+data+disconnect+except+if+in+is+is not+manager+not+or+q+raise+receive_text+remove+return+self+send_personal_message+send_text+session+status+token+try+websocket+while)+.HTMLResponse+?.list+?.(item_id+message)?.html?.WebSocket?",
|
|
"gbnf": "root ::= \"for\"? (\"WS_1008_POLICY_VIOLATION\" | \"WebSocketDisconnect\" | \"WebSocketException\" | \"accept\" | \"active_connections\" | \"and\" | \"append\" | \"await\" | \"broadcast\" | \"client_id\" | \"code\" | \"connect\" | \"connection\" | \"cookie_or_token\" | \"data\" | \"disconnect\" | \"except\" | \"if\" | \"in\" | \"is\" | \"is not\" | \"manager\" | \"not\" | \"or\" | \"q\" | \"raise\" | \"receive_text\" | \"remove\" | \"return\" | \"self\" | \"send_personal_message\" | \"send_text\" | \"session\" | \"status\" | \"token\" | \"try\" | \"websocket\" | \"while\")+ \"HTMLResponse\"* \"list\"* (\"item_id\" | \"message\")? \"html\"? \"WebSocket\"?",
|
|
"gbnf_ok": true
|
|
},
|
|
{
|
|
"package": "fastapi",
|
|
"ext": ".py",
|
|
"methods": 239,
|
|
"skip": "malformed_grammar"
|
|
},
|
|
{
|
|
"package": "fastapi/_compat",
|
|
"ext": ".py",
|
|
"methods": 45,
|
|
"skip": "too_diverse"
|
|
},
|
|
{
|
|
"package": "fastapi/dependencies",
|
|
"ext": ".py",
|
|
"methods": 38,
|
|
"skip": "too_diverse"
|
|
},
|
|
{
|
|
"package": "fastapi/openapi",
|
|
"ext": ".py",
|
|
"methods": 19,
|
|
"skip": "too_diverse"
|
|
},
|
|
{
|
|
"package": "fastapi/security",
|
|
"ext": ".py",
|
|
"methods": 34,
|
|
"sore": "(APIKey+APIKeyIn+Annotated+Any+Doc+Error+HTTPAuthorizationCredentials+HTTPBaseModel+HTTPBasicCredentials+HTTPBearerModel+HTTPException+HTTP_401_UNAUTHORIZED+OAuth2Model+OAuthFlowsModel+OpenIdConnectModel+UnicodeDecodeError+ValueError+_+__class__+__init__+__name__+and+api_key+authorization+authorizationCode+authorizationUrl+authorization_header_value+auto_error+b64decode+bearerFormat+binascii+cast+check_api_key+client_id+cookie+cookies+credentials+data+decode+description+detail+e+else+except+flows+from+get+get_authorization_scheme_param+grant_type+header+headers+if+join+list+location+lower+make_not_authenticated_error+model+name+not+openIdConnectUrl+or+param+partition+password+query+query_params+raise+realm+refreshUrl+request+return+scheme+scheme_name+scope+scope_str+scopes+self+separator+split+status_code+str+super+tokenUrl+try+username)+.(client_secret+make_authenticate_headers+strip+title)+?",
|
|
"gbnf": "root ::= (\"APIKey\" | \"APIKeyIn\" | \"Annotated\" | \"Any\" | \"Doc\" | \"Error\" | \"HTTPAuthorizationCredentials\" | \"HTTPBaseModel\" | \"HTTPBasicCredentials\" | \"HTTPBearerModel\" | \"HTTPException\" | \"HTTP_401_UNAUTHORIZED\" | \"OAuth2Model\" | \"OAuthFlowsModel\" | \"OpenIdConnectModel\" | \"UnicodeDecodeError\" | \"ValueError\" | \"_\" | \"__class__\" | \"__init__\" | \"__name__\" | \"and\" | \"api_key\" | \"authorization\" | \"authorizationCode\" | \"authorizationUrl\" | \"authorization_header_value\" | \"auto_error\" | \"b64decode\" | \"bearerFormat\" | \"binascii\" | \"cast\" | \"check_api_key\" | \"client_id\" | \"cookie\" | \"cookies\" | \"credentials\" | \"data\" | \"decode\" | \"description\" | \"detail\" | \"e\" | \"else\" | \"except\" | \"flows\" | \"from\" | \"get\" | \"get_authorization_scheme_param\" | \"grant_type\" | \"header\" | \"headers\" | \"if\" | \"join\" | \"list\" | \"location\" | \"lower\" | \"make_not_authenticated_error\" | \"model\" | \"name\" | \"not\" | \"openIdConnectUrl\" | \"or\" | \"param\" | \"partition\" | \"password\" | \"query\" | \"query_params\" | \"raise\" | \"realm\" | \"refreshUrl\" | \"request\" | \"return\" | \"scheme\" | \"scheme_name\" | \"scope\" | \"scope_str\" | \"scopes\" | \"self\" | \"separator\" | \"split\" | \"status_code\" | \"str\" | \"super\" | \"tokenUrl\" | \"try\" | \"username\")+ (\"client_secret\" | \"make_authenticate_headers\" | \"strip\" | \"title\")*",
|
|
"gbnf_ok": true
|
|
},
|
|
{
|
|
"package": "scripts",
|
|
"ext": ".py",
|
|
"methods": 132,
|
|
"skip": "malformed_grammar"
|
|
},
|
|
{
|
|
"package": "scripts/playwright",
|
|
"ext": ".py",
|
|
"methods": 7,
|
|
"sore": "(browser+chromium+click+close+context+get_by_label+get_by_role+goto+headless+launch+name+new_context+new_page+page+path+playwright+screenshot+viewport)+",
|
|
"gbnf": "root ::= (\"browser\" | \"chromium\" | \"click\" | \"close\" | \"context\" | \"get_by_label\" | \"get_by_role\" | \"goto\" | \"headless\" | \"launch\" | \"name\" | \"new_context\" | \"new_page\" | \"page\" | \"path\" | \"playwright\" | \"screenshot\" | \"viewport\")+",
|
|
"gbnf_ok": true
|
|
},
|
|
{
|
|
"package": "scripts/playwright/separate_openapi_schemas",
|
|
"ext": ".py",
|
|
"methods": 5,
|
|
"skip": "too_diverse"
|
|
},
|
|
{
|
|
"package": "scripts/tests/test_translation_fixer",
|
|
"ext": ".py",
|
|
"methods": 12,
|
|
"sore": "changing_dir+?.tmp_path?.(Path+THIS_DIR+chdir+cli+copy+data_path+directory+docs_dir+en_docs_dir+en_file_path+exist_ok+exit_code+expected_content+finally+fixed_content+for+fspath+getcwd+if+in+initial_dir+invoke+is_relative_to+item+item_path+items+lang_docs_dir+mkdir+os+output+param+parents+platform+read_text+request+resolve+result+return+root_dir+runner+shutil+str+sys+translation_file_path+try+yield)+.add_marker+?.(CliRunner+cwd)+?.skip_on_windows?",
|
|
"gbnf": "root ::= \"changing_dir\"* \"tmp_path\"? (\"Path\" | \"THIS_DIR\" | \"chdir\" | \"cli\" | \"copy\" | \"data_path\" | \"directory\" | \"docs_dir\" | \"en_docs_dir\" | \"en_file_path\" | \"exist_ok\" | \"exit_code\" | \"expected_content\" | \"finally\" | \"fixed_content\" | \"for\" | \"fspath\" | \"getcwd\" | \"if\" | \"in\" | \"initial_dir\" | \"invoke\" | \"is_relative_to\" | \"item\" | \"item_path\" | \"items\" | \"lang_docs_dir\" | \"mkdir\" | \"os\" | \"output\" | \"param\" | \"parents\" | \"platform\" | \"read_text\" | \"request\" | \"resolve\" | \"result\" | \"return\" | \"root_dir\" | \"runner\" | \"shutil\" | \"str\" | \"sys\" | \"translation_file_path\" | \"try\" | \"yield\")+ \"add_marker\"* (\"CliRunner\" | \"cwd\")* \"skip_on_windows\"?",
|
|
"gbnf_ok": true
|
|
},
|
|
{
|
|
"package": "scripts/tests/test_translation_fixer/test_code_blocks",
|
|
"ext": ".py",
|
|
"methods": 8,
|
|
"sore": "(Path+cli+data_path+exit_code+expected_content+fixed_content+in+invoke+not+not in+output+read_text+result+root_dir+runner)+",
|
|
"gbnf": "root ::= (\"Path\" | \"cli\" | \"data_path\" | \"exit_code\" | \"expected_content\" | \"fixed_content\" | \"in\" | \"invoke\" | \"not\" | \"not in\" | \"output\" | \"read_text\" | \"result\" | \"root_dir\" | \"runner\")+",
|
|
"gbnf_ok": true
|
|
},
|
|
{
|
|
"package": "scripts/tests/test_translation_fixer/test_header_permalinks",
|
|
"ext": ".py",
|
|
"methods": 4,
|
|
"skip": "malformed_grammar"
|
|
},
|
|
{
|
|
"package": "tests",
|
|
"ext": ".py",
|
|
"methods": 2036,
|
|
"sore": "(@+FastAPI+TestClient+app+client+data+def+get+headers+in+json+post+pytest+raises+response+return+status_code+str+text+value+yield)+.snapshot+?",
|
|
"gbnf": "root ::= (\"@\" | \"FastAPI\" | \"TestClient\" | \"app\" | \"client\" | \"data\" | \"def\" | \"get\" | \"headers\" | \"in\" | \"json\" | \"post\" | \"pytest\" | \"raises\" | \"response\" | \"return\" | \"status_code\" | \"str\" | \"text\" | \"value\" | \"yield\")+ \"snapshot\"*",
|
|
"gbnf_ok": true
|
|
},
|
|
{
|
|
"package": "tests/benchmarks",
|
|
"ext": ".py",
|
|
"methods": 48,
|
|
"sore": "(LARGE_PAYLOAD+_bench_get+_bench_post_json+benchmark+body+bytes+client+content+def+do_request+get+int+json+path+post+response+return+status_code+tuple+warmup)+.ItemOut+?._expected_large_payload_json_bytes+?.len+?.LargeOut+?.(item+name+value)+?.payload?.dep+?.items?.LARGE_ITEMS?.metadata?.LARGE_METADATA?",
|
|
"gbnf": "root ::= (\"LARGE_PAYLOAD\" | \"_bench_get\" | \"_bench_post_json\" | \"benchmark\" | \"body\" | \"bytes\" | \"client\" | \"content\" | \"def\" | \"do_request\" | \"get\" | \"int\" | \"json\" | \"path\" | \"post\" | \"response\" | \"return\" | \"status_code\" | \"tuple\" | \"warmup\")+ \"ItemOut\"* \"_expected_large_payload_json_bytes\"* \"len\"* \"LargeOut\"* (\"item\" | \"name\" | \"value\")* \"payload\"? \"dep\"* \"items\"? \"LARGE_ITEMS\"? \"metadata\"? \"LARGE_METADATA\"?",
|
|
"gbnf_ok": true
|
|
},
|
|
{
|
|
"package": "tests/test_modules_same_name_body",
|
|
"ext": ".py",
|
|
"methods": 5,
|
|
"sore": "(client+data+get+json+path+post+response+status_code+text)+?.return?.snapshot+?.a?.b?",
|
|
"gbnf": "root ::= (\"client\" | \"data\" | \"get\" | \"json\" | \"path\" | \"post\" | \"response\" | \"status_code\" | \"text\")* \"return\"? \"snapshot\"* \"a\"? \"b\"?",
|
|
"gbnf_ok": true
|
|
},
|
|
{
|
|
"package": "tests/test_request_params/test_body",
|
|
"ext": ".py",
|
|
"methods": 113,
|
|
"sore": "(TestClient+app+body_model_name+client+get_body_model_name+json+openapi+path+post+response+status_code+text)+?.return?.IsOneOf+?.p+?",
|
|
"gbnf": "root ::= (\"TestClient\" | \"app\" | \"body_model_name\" | \"client\" | \"get_body_model_name\" | \"json\" | \"openapi\" | \"path\" | \"post\" | \"response\" | \"status_code\" | \"text\")* \"return\"? \"IsOneOf\"* \"p\"*",
|
|
"gbnf_ok": true
|
|
},
|
|
{
|
|
"package": "tests/test_request_params/test_cookie",
|
|
"ext": ".py",
|
|
"methods": 48,
|
|
"sore": "(TestClient+app+client+cookies+get+openapi+path+response+set+status_code+text)+?.return?.json+?.snapshot+?.p+?.IsOneOf+?",
|
|
"gbnf": "root ::= (\"TestClient\" | \"app\" | \"client\" | \"cookies\" | \"get\" | \"openapi\" | \"path\" | \"response\" | \"set\" | \"status_code\" | \"text\")* \"return\"? \"json\"* \"snapshot\"* \"p\"* \"IsOneOf\"*",
|
|
"gbnf_ok": true
|
|
},
|
|
{
|
|
"package": "tests/test_request_params/test_file",
|
|
"ext": ".py",
|
|
"methods": 97,
|
|
"sore": "(TestClient+app+body_model_name+client+files+get_body_model_name+openapi+path+post+response+status_code+text)+?.json+?.return?.len+?.(file+for+if+in+p+size)+?.else?",
|
|
"gbnf": "root ::= (\"TestClient\" | \"app\" | \"body_model_name\" | \"client\" | \"files\" | \"get_body_model_name\" | \"openapi\" | \"path\" | \"post\" | \"response\" | \"status_code\" | \"text\")* \"json\"* \"return\"? \"len\"* (\"file\" | \"for\" | \"if\" | \"in\" | \"p\" | \"size\")* \"else\"?",
|
|
"gbnf_ok": true
|
|
},
|
|
{
|
|
"package": "tests/test_request_params/test_form",
|
|
"ext": ".py",
|
|
"methods": 97,
|
|
"sore": "(TestClient+app+body_model_name+client+data+get_body_model_name+openapi+path+post+response+status_code+text)+?.json+?.return?.IsOneOf+?.p+?",
|
|
"gbnf": "root ::= (\"TestClient\" | \"app\" | \"body_model_name\" | \"client\" | \"data\" | \"get_body_model_name\" | \"openapi\" | \"path\" | \"post\" | \"response\" | \"status_code\" | \"text\")* \"json\"* \"return\"? \"IsOneOf\"* \"p\"*",
|
|
"gbnf_ok": true
|
|
},
|
|
{
|
|
"package": "tests/test_request_params/test_header",
|
|
"ext": ".py",
|
|
"methods": 96,
|
|
"sore": "(TestClient+app+client+get+headers+openapi+path+response+status_code+text)+?.return?.json+?.snapshot+?.p+?.AnyThing?.IsOneOf+?.IsPartialDict+?",
|
|
"gbnf": "root ::= (\"TestClient\" | \"app\" | \"client\" | \"get\" | \"headers\" | \"openapi\" | \"path\" | \"response\" | \"status_code\" | \"text\")* \"return\"? \"json\"* \"snapshot\"* \"p\"* \"AnyThing\"? \"IsOneOf\"* \"IsPartialDict\"*",
|
|
"gbnf_ok": true
|
|
},
|
|
{
|
|
"package": "tests/test_request_params/test_path",
|
|
"ext": ".py",
|
|
"methods": 6,
|
|
"sore": "(TestClient+app+client+get+openapi+path+response+status_code+text)+?.return?.json+?.snapshot+?.p?.(Is+expected_title)+?.expected_name?",
|
|
"gbnf": "root ::= (\"TestClient\" | \"app\" | \"client\" | \"get\" | \"openapi\" | \"path\" | \"response\" | \"status_code\" | \"text\")* \"return\"? \"json\"* \"snapshot\"* \"p\"? (\"Is\" | \"expected_title\")* \"expected_name\"?",
|
|
"gbnf_ok": true
|
|
},
|
|
{
|
|
"package": "tests/test_request_params/test_query",
|
|
"ext": ".py",
|
|
"methods": 96,
|
|
"sore": "(TestClient+app+client+get+openapi+path+response+status_code+text)+?.return?.json+?.snapshot+?.p+?.IsOneOf+?",
|
|
"gbnf": "root ::= (\"TestClient\" | \"app\" | \"client\" | \"get\" | \"openapi\" | \"path\" | \"response\" | \"status_code\" | \"text\")* \"return\"? \"json\"* \"snapshot\"* \"p\"* \"IsOneOf\"*",
|
|
"gbnf_ok": true
|
|
},
|
|
{
|
|
"package": "tests/test_tutorial",
|
|
"ext": ".py",
|
|
"methods": 16,
|
|
"sore": "(TestClient+app+client+content+copytree+docs_src+from+get+headers+if+import+in+isdir+json+not+not in+openapi_schema+options+os+path+post+print+put+response+rmtree+shutil+snapshot+status_code+templates+text+tutorial001_py310)+?.await?.cookies?.test_root+?",
|
|
"gbnf": "root ::= (\"TestClient\" | \"app\" | \"client\" | \"content\" | \"copytree\" | \"docs_src\" | \"from\" | \"get\" | \"headers\" | \"if\" | \"import\" | \"in\" | \"isdir\" | \"json\" | \"not\" | \"not in\" | \"openapi_schema\" | \"options\" | \"os\" | \"path\" | \"post\" | \"print\" | \"put\" | \"response\" | \"rmtree\" | \"shutil\" | \"snapshot\" | \"status_code\" | \"templates\" | \"text\" | \"tutorial001_py310\")* \"await\"? \"cookies\"? \"test_root\"*",
|
|
"gbnf_ok": true
|
|
},
|
|
{
|
|
"package": "tests/test_tutorial/test_additional_responses",
|
|
"ext": ".py",
|
|
"methods": 14,
|
|
"sore": "shutil?.copy+?.(TestClient+app+clear+client+get+headers+import_module+importlib+len+mod+param+request+response+return+status_code+text)+.json+?.content?.snapshot+?.os?.remove+?",
|
|
"gbnf": "root ::= \"shutil\"? \"copy\"* (\"TestClient\" | \"app\" | \"clear\" | \"client\" | \"get\" | \"headers\" | \"import_module\" | \"importlib\" | \"len\" | \"mod\" | \"param\" | \"request\" | \"response\" | \"return\" | \"status_code\" | \"text\")+ \"json\"* \"content\"? \"snapshot\"* \"os\"? \"remove\"*",
|
|
"gbnf_ok": true
|
|
},
|
|
{
|
|
"package": "tests/test_tutorial/test_additional_status_codes",
|
|
"ext": ".py",
|
|
"methods": 3,
|
|
"sore": "(TestClient+app+client+import_module+importlib+json+mod+param+put+request+response+return+status_code+text)+",
|
|
"gbnf": "root ::= (\"TestClient\" | \"app\" | \"client\" | \"import_module\" | \"importlib\" | \"json\" | \"mod\" | \"param\" | \"put\" | \"request\" | \"response\" | \"return\" | \"status_code\" | \"text\")+",
|
|
"gbnf_ok": true
|
|
},
|
|
{
|
|
"package": "tests/test_tutorial/test_advanced_middleware",
|
|
"ext": ".py",
|
|
"methods": 4,
|
|
"skip": "too_diverse"
|
|
},
|
|
{
|
|
"package": "tests/test_tutorial/test_authentication_error_status_code",
|
|
"ext": ".py",
|
|
"methods": 4,
|
|
"skip": "too_diverse"
|
|
},
|
|
{
|
|
"package": "tests/test_tutorial/test_background_tasks",
|
|
"ext": ".py",
|
|
"methods": 3,
|
|
"sore": "(Path+if+is_file+log+os+remove)+?.(TestClient+app+client+import_module+importlib+mod+param+post+request+response+return+status_code+text)+.json+?.open+?.(f+in)+?.read+?",
|
|
"gbnf": "root ::= (\"Path\" | \"if\" | \"is_file\" | \"log\" | \"os\" | \"remove\")* (\"TestClient\" | \"app\" | \"client\" | \"import_module\" | \"importlib\" | \"mod\" | \"param\" | \"post\" | \"request\" | \"response\" | \"return\" | \"status_code\" | \"text\")+ \"json\"* \"open\"* (\"f\" | \"in\")* \"read\"*",
|
|
"gbnf_ok": true
|
|
},
|
|
{
|
|
"package": "tests/test_tutorial/test_behind_a_proxy",
|
|
"ext": ".py",
|
|
"methods": 10,
|
|
"sore": "(client+get+response+status_code)+.headers?.json+?.snapshot+?",
|
|
"gbnf": "root ::= (\"client\" | \"get\" | \"response\" | \"status_code\")+ \"headers\"? \"json\"* \"snapshot\"*",
|
|
"gbnf_ok": true
|
|
},
|
|
{
|
|
"package": "tests/test_tutorial/test_bigger_applications",
|
|
"ext": ".py",
|
|
"methods": 26,
|
|
"sore": "(TestClient+app+client+get+headers+import_module+importlib+mod+param+post+put+request+response+return+status_code+text)+.json+?.snapshot+?",
|
|
"gbnf": "root ::= (\"TestClient\" | \"app\" | \"client\" | \"get\" | \"headers\" | \"import_module\" | \"importlib\" | \"mod\" | \"param\" | \"post\" | \"put\" | \"request\" | \"response\" | \"return\" | \"status_code\" | \"text\")+ \"json\"* \"snapshot\"*",
|
|
"gbnf_ok": true
|
|
},
|
|
{
|
|
"package": "tests/test_tutorial/test_body",
|
|
"ext": ".py",
|
|
"methods": 32,
|
|
"sore": "patch+?.side_effect?.Exception+?.(TestClient+app+client+content+data+get+headers+import_module+importlib+json+mod+param+params+post+price+put+request+response+return+status_code+text)+.snapshot+?",
|
|
"gbnf": "root ::= \"patch\"* \"side_effect\"? \"Exception\"* (\"TestClient\" | \"app\" | \"client\" | \"content\" | \"data\" | \"get\" | \"headers\" | \"import_module\" | \"importlib\" | \"json\" | \"mod\" | \"param\" | \"params\" | \"post\" | \"price\" | \"put\" | \"request\" | \"response\" | \"return\" | \"status_code\" | \"text\")+ \"snapshot\"*",
|
|
"gbnf_ok": true
|
|
},
|
|
{
|
|
"package": "tests/test_tutorial/test_body_fields",
|
|
"ext": ".py",
|
|
"methods": 5,
|
|
"sore": "(TestClient+app+client+get+import_module+importlib+json+mod+param+put+request+response+return+status_code+text)+.snapshot+?",
|
|
"gbnf": "root ::= (\"TestClient\" | \"app\" | \"client\" | \"get\" | \"import_module\" | \"importlib\" | \"json\" | \"mod\" | \"param\" | \"put\" | \"request\" | \"response\" | \"return\" | \"status_code\" | \"text\")+ \"snapshot\"*",
|
|
"gbnf_ok": true
|
|
},
|
|
{
|
|
"package": "tests/test_tutorial/test_body_multiple_params",
|
|
"ext": ".py",
|
|
"methods": 35,
|
|
"sore": "(TestClient+app+client+get+import_module+importlib+json+mod+param+params+put+request+response+return+status_code+text)+.snapshot+?",
|
|
"gbnf": "root ::= (\"TestClient\" | \"app\" | \"client\" | \"get\" | \"import_module\" | \"importlib\" | \"json\" | \"mod\" | \"param\" | \"params\" | \"put\" | \"request\" | \"response\" | \"return\" | \"status_code\" | \"text\")+ \"snapshot\"*",
|
|
"gbnf_ok": true
|
|
},
|
|
{
|
|
"package": "tests/test_tutorial/test_body_nested_models",
|
|
"ext": ".py",
|
|
"methods": 44,
|
|
"sore": "if?.(IsList+TestClient+app+check_order+client+data+get+import_module+importlib+json+mod+mod_name+param+post+put+request+response+return+startswith+status_code+text)+.snapshot+?",
|
|
"gbnf": "root ::= \"if\"? (\"IsList\" | \"TestClient\" | \"app\" | \"check_order\" | \"client\" | \"data\" | \"get\" | \"import_module\" | \"importlib\" | \"json\" | \"mod\" | \"mod_name\" | \"param\" | \"post\" | \"put\" | \"request\" | \"response\" | \"return\" | \"startswith\" | \"status_code\" | \"text\")+ \"snapshot\"*",
|
|
"gbnf_ok": true
|
|
},
|
|
{
|
|
"package": "tests/test_tutorial/test_body_updates",
|
|
"ext": ".py",
|
|
"methods": 9,
|
|
"sore": "(TestClient+app+client+get+import_module+importlib+json+mod+param+patch+put+request+response+return+status_code+text)+.snapshot+?",
|
|
"gbnf": "root ::= (\"TestClient\" | \"app\" | \"client\" | \"get\" | \"import_module\" | \"importlib\" | \"json\" | \"mod\" | \"param\" | \"patch\" | \"put\" | \"request\" | \"response\" | \"return\" | \"status_code\" | \"text\")+ \"snapshot\"*",
|
|
"gbnf_ok": true
|
|
},
|
|
{
|
|
"package": "tests/test_tutorial/test_conditional_openapi",
|
|
"ext": ".py",
|
|
"methods": 4,
|
|
"skip": "too_diverse"
|
|
},
|
|
{
|
|
"package": "tests/test_tutorial/test_configure_swagger_ui",
|
|
"ext": ".py",
|
|
"methods": 6,
|
|
"sore": "(client+get+in+not+not in+response+status_code+text)+.json+?",
|
|
"gbnf": "root ::= (\"client\" | \"get\" | \"in\" | \"not\" | \"not in\" | \"response\" | \"status_code\" | \"text\")+ \"json\"*",
|
|
"gbnf_ok": true
|
|
},
|
|
{
|
|
"package": "tests/test_tutorial/test_cookie_param_models",
|
|
"ext": ".py",
|
|
"methods": 12,
|
|
"sore": "(TestClient+app+c+client+cookies+get+import_module+importlib+mod+param+request+response+return+set+status_code+text)+.json+?.snapshot+?",
|
|
"gbnf": "root ::= (\"TestClient\" | \"app\" | \"c\" | \"client\" | \"cookies\" | \"get\" | \"import_module\" | \"importlib\" | \"mod\" | \"param\" | \"request\" | \"response\" | \"return\" | \"set\" | \"status_code\" | \"text\")+ \"json\"* \"snapshot\"*",
|
|
"gbnf_ok": true
|
|
},
|
|
{
|
|
"package": "tests/test_tutorial/test_cookie_params",
|
|
"ext": ".py",
|
|
"methods": 3,
|
|
"skip": "too_diverse"
|
|
},
|
|
{
|
|
"package": "tests/test_tutorial/test_custom_docs_ui",
|
|
"ext": ".py",
|
|
"methods": 10,
|
|
"sore": "(Path+TestClient+app+client+custom_docs_ui+docs_src+exist_ok+from+get+getcwd+import+in+mkdir+os+print+response+static_dir+status_code+text+tutorial001_py310+tutorial002_py310+yield)+.(json+rmdir)+?",
|
|
"gbnf": "root ::= (\"Path\" | \"TestClient\" | \"app\" | \"client\" | \"custom_docs_ui\" | \"docs_src\" | \"exist_ok\" | \"from\" | \"get\" | \"getcwd\" | \"import\" | \"in\" | \"mkdir\" | \"os\" | \"print\" | \"response\" | \"static_dir\" | \"status_code\" | \"text\" | \"tutorial001_py310\" | \"tutorial002_py310\" | \"yield\")+ (\"json\" | \"rmdir\")*",
|
|
"gbnf_ok": true
|
|
},
|
|
{
|
|
"package": "tests/test_tutorial/test_custom_request_and_route",
|
|
"ext": ".py",
|
|
"methods": 10,
|
|
"sore": "(@+Request+TestClient+__name__+app+async+body+check_gzip_request+client+compress+content+data+def+dumps+encode+float+get+gzip+headers+if+import_module+importlib+in+json+mod+n+not+not in+param+post+request+response+return+type)+.IsOneOf+?",
|
|
"gbnf": "root ::= (\"@\" | \"Request\" | \"TestClient\" | \"__name__\" | \"app\" | \"async\" | \"body\" | \"check_gzip_request\" | \"client\" | \"compress\" | \"content\" | \"data\" | \"def\" | \"dumps\" | \"encode\" | \"float\" | \"get\" | \"gzip\" | \"headers\" | \"if\" | \"import_module\" | \"importlib\" | \"in\" | \"json\" | \"mod\" | \"n\" | \"not\" | \"not in\" | \"param\" | \"post\" | \"request\" | \"response\" | \"return\" | \"type\")+ \"IsOneOf\"*",
|
|
"gbnf_ok": true
|
|
},
|
|
{
|
|
"package": "tests/test_tutorial/test_custom_response",
|
|
"ext": ".py",
|
|
"methods": 25,
|
|
"sore": "if?.(Any+Is+Path+TestClient+app+cast+client+content+else+fake_content+file_path+follow_redirects+get+import_module+importlib+json+mod+mod_name+param+request+response+response_content+return+snapshot+some_file_path+startswith+status_code+str+test_content+text+tmp_path+tutorial008_py310+tutorial009_py310+tutorial009b_py310+write_bytes)+.(headers+html_contents)?",
|
|
"gbnf": "root ::= \"if\"? (\"Any\" | \"Is\" | \"Path\" | \"TestClient\" | \"app\" | \"cast\" | \"client\" | \"content\" | \"else\" | \"fake_content\" | \"file_path\" | \"follow_redirects\" | \"get\" | \"import_module\" | \"importlib\" | \"json\" | \"mod\" | \"mod_name\" | \"param\" | \"request\" | \"response\" | \"response_content\" | \"return\" | \"snapshot\" | \"some_file_path\" | \"startswith\" | \"status_code\" | \"str\" | \"test_content\" | \"text\" | \"tmp_path\" | \"tutorial008_py310\" | \"tutorial009_py310\" | \"tutorial009b_py310\" | \"write_bytes\")+ (\"headers\" | \"html_contents\")?",
|
|
"gbnf_ok": true
|
|
},
|
|
{
|
|
"package": "tests/test_tutorial/test_dataclasses",
|
|
"ext": ".py",
|
|
"methods": 11,
|
|
"sore": "(TestClient+app+clear+client+get+headers+import_module+importlib+json+mod+param+post+request+response+return+status_code)+.snapshot+?",
|
|
"gbnf": "root ::= (\"TestClient\" | \"app\" | \"clear\" | \"client\" | \"get\" | \"headers\" | \"import_module\" | \"importlib\" | \"json\" | \"mod\" | \"param\" | \"post\" | \"request\" | \"response\" | \"return\" | \"status_code\")+ \"snapshot\"*",
|
|
"gbnf_ok": true
|
|
},
|
|
{
|
|
"package": "tests/test_tutorial/test_debugging",
|
|
"ext": ".py",
|
|
"methods": 5,
|
|
"skip": "too_diverse"
|
|
},
|
|
{
|
|
"package": "tests/test_tutorial/test_dependencies",
|
|
"ext": ".py",
|
|
"methods": 51,
|
|
"sore": "(@+Annotated+Any+Depends+FastAPI+Mock+TestClient+app+async+asynccontextmanager+c+client+cm+create+db_session+def+exc_info+expected_status+get+get_db+headers+import_module+importlib+is+json+mod+param+patch+path+pytest+raise_server_exceptions+raises+read_root+request+response+return+return_value+status_code+str+text+value)+.(args+expected_response+snapshot)+?",
|
|
"gbnf": "root ::= (\"@\" | \"Annotated\" | \"Any\" | \"Depends\" | \"FastAPI\" | \"Mock\" | \"TestClient\" | \"app\" | \"async\" | \"asynccontextmanager\" | \"c\" | \"client\" | \"cm\" | \"create\" | \"db_session\" | \"def\" | \"exc_info\" | \"expected_status\" | \"get\" | \"get_db\" | \"headers\" | \"import_module\" | \"importlib\" | \"is\" | \"json\" | \"mod\" | \"param\" | \"patch\" | \"path\" | \"pytest\" | \"raise_server_exceptions\" | \"raises\" | \"read_root\" | \"request\" | \"response\" | \"return\" | \"return_value\" | \"status_code\" | \"str\" | \"text\" | \"value\")+ (\"args\" | \"expected_response\" | \"snapshot\")*",
|
|
"gbnf_ok": true
|
|
},
|
|
{
|
|
"package": "tests/test_tutorial/test_encoder",
|
|
"ext": ".py",
|
|
"methods": 5,
|
|
"skip": "too_diverse"
|
|
},
|
|
{
|
|
"package": "tests/test_tutorial/test_events",
|
|
"ext": ".py",
|
|
"methods": 8,
|
|
"sore": "pytest?.warns+?.DeprecationWarning+?.from?.docs_src+?.events+?.(tutorial001_py310+tutorial002_py310)+?.import?.(TestClient+app+client+fake_answer_to_everything_ml_model+get+json+ml_models+not+params+response+status_code+text+yield)+.snapshot+?.open+?.(in+log)+?.read+?",
|
|
"gbnf": "root ::= \"pytest\"? \"warns\"* \"DeprecationWarning\"* \"from\"? \"docs_src\"* \"events\"* (\"tutorial001_py310\" | \"tutorial002_py310\")* \"import\"? (\"TestClient\" | \"app\" | \"client\" | \"fake_answer_to_everything_ml_model\" | \"get\" | \"json\" | \"ml_models\" | \"not\" | \"params\" | \"response\" | \"status_code\" | \"text\" | \"yield\")+ \"snapshot\"* \"open\"* (\"in\" | \"log\")* \"read\"*",
|
|
"gbnf_ok": true
|
|
},
|
|
{
|
|
"package": "tests/test_tutorial/test_extra_data_types",
|
|
"ext": ".py",
|
|
"methods": 3,
|
|
"skip": "too_diverse"
|
|
},
|
|
{
|
|
"package": "tests/test_tutorial/test_extra_models",
|
|
"ext": ".py",
|
|
"methods": 13,
|
|
"sore": "(TestClient+app+client+get+import_module+importlib+json+mod+param+post+request+response+return+status_code+text)+.snapshot+?.IsList+?.check_order?",
|
|
"gbnf": "root ::= (\"TestClient\" | \"app\" | \"client\" | \"get\" | \"import_module\" | \"importlib\" | \"json\" | \"mod\" | \"param\" | \"post\" | \"request\" | \"response\" | \"return\" | \"status_code\" | \"text\")+ \"snapshot\"* \"IsList\"* \"check_order\"?",
|
|
"gbnf_ok": true
|
|
},
|
|
{
|
|
"package": "tests/test_tutorial/test_first_steps",
|
|
"ext": ".py",
|
|
"methods": 3,
|
|
"skip": "too_diverse"
|
|
},
|
|
{
|
|
"package": "tests/test_tutorial/test_generate_clients",
|
|
"ext": ".py",
|
|
"methods": 13,
|
|
"sore": "(TestClient+app+client+dumps+get+import_module+importlib+json+loads+mod+modified_openapi+openapi+openapi_json+param+patch+post+read_text+request+response+return+return_value+status_code+text+tmp_file+tmp_path+tutorial003_py310+write_text)+.snapshot+?",
|
|
"gbnf": "root ::= (\"TestClient\" | \"app\" | \"client\" | \"dumps\" | \"get\" | \"import_module\" | \"importlib\" | \"json\" | \"loads\" | \"mod\" | \"modified_openapi\" | \"openapi\" | \"openapi_json\" | \"param\" | \"patch\" | \"post\" | \"read_text\" | \"request\" | \"response\" | \"return\" | \"return_value\" | \"status_code\" | \"text\" | \"tmp_file\" | \"tmp_path\" | \"tutorial003_py310\" | \"write_text\")+ \"snapshot\"*",
|
|
"gbnf_ok": true
|
|
},
|
|
{
|
|
"package": "tests/test_tutorial/test_graphql",
|
|
"ext": ".py",
|
|
"methods": 3,
|
|
"skip": "too_diverse"
|
|
},
|
|
{
|
|
"package": "tests/test_tutorial/test_handling_errors",
|
|
"ext": ".py",
|
|
"methods": 20,
|
|
"sore": "(client+data+get+headers+in+is+json+post+response+status_code+text)+.(content+snapshot)+?",
|
|
"gbnf": "root ::= (\"client\" | \"data\" | \"get\" | \"headers\" | \"in\" | \"is\" | \"json\" | \"post\" | \"response\" | \"status_code\" | \"text\")+ (\"content\" | \"snapshot\")*",
|
|
"gbnf_ok": true
|
|
},
|
|
{
|
|
"package": "tests/test_tutorial/test_header_param_models",
|
|
"ext": ".py",
|
|
"methods": 19,
|
|
"sore": "(TestClient+app+clear+client+get+headers+import_module+importlib+mod+param+request+response+return+status_code+text)+.json+?.snapshot+?.IsOneOf+?",
|
|
"gbnf": "root ::= (\"TestClient\" | \"app\" | \"clear\" | \"client\" | \"get\" | \"headers\" | \"import_module\" | \"importlib\" | \"mod\" | \"param\" | \"request\" | \"response\" | \"return\" | \"status_code\" | \"text\")+ \"json\"* \"snapshot\"* \"IsOneOf\"*",
|
|
"gbnf_ok": true
|
|
},
|
|
{
|
|
"package": "tests/test_tutorial/test_header_params",
|
|
"ext": ".py",
|
|
"methods": 9,
|
|
"sore": "(TestClient+app+client+expected_status+get+headers+import_module+importlib+mod+param+path+request+response+return+status_code)+.json+?.(expected_response+snapshot)+?",
|
|
"gbnf": "root ::= (\"TestClient\" | \"app\" | \"client\" | \"expected_status\" | \"get\" | \"headers\" | \"import_module\" | \"importlib\" | \"mod\" | \"param\" | \"path\" | \"request\" | \"response\" | \"return\" | \"status_code\")+ \"json\"* (\"expected_response\" | \"snapshot\")*",
|
|
"gbnf_ok": true
|
|
},
|
|
{
|
|
"package": "tests/test_tutorial/test_json_base64_bytes",
|
|
"ext": ".py",
|
|
"methods": 5,
|
|
"sore": "(TestClient+app+client+get+import_module+importlib+json+mod+param+post+request+response+return+status_code+text)+.snapshot+?",
|
|
"gbnf": "root ::= (\"TestClient\" | \"app\" | \"client\" | \"get\" | \"import_module\" | \"importlib\" | \"json\" | \"mod\" | \"param\" | \"post\" | \"request\" | \"response\" | \"return\" | \"status_code\" | \"text\")+ \"snapshot\"*",
|
|
"gbnf_ok": true
|
|
},
|
|
{
|
|
"package": "tests/test_tutorial/test_metadata",
|
|
"ext": ".py",
|
|
"methods": 14,
|
|
"sore": "(client+get+in+response+status_code+text)+.json+?.snapshot+?",
|
|
"gbnf": "root ::= (\"client\" | \"get\" | \"in\" | \"response\" | \"status_code\" | \"text\")+ \"json\"* \"snapshot\"*",
|
|
"gbnf_ok": true
|
|
},
|
|
{
|
|
"package": "tests/test_tutorial/test_openapi_callbacks",
|
|
"ext": ".py",
|
|
"methods": 5,
|
|
"skip": "too_diverse"
|
|
},
|
|
{
|
|
"package": "tests/test_tutorial/test_openapi_webhooks",
|
|
"ext": ".py",
|
|
"methods": 3,
|
|
"skip": "too_diverse"
|
|
},
|
|
{
|
|
"package": "tests/test_tutorial/test_path_operation_advanced_configurations",
|
|
"ext": ".py",
|
|
"methods": 18,
|
|
"skip": "malformed_grammar"
|
|
},
|
|
{
|
|
"package": "tests/test_tutorial/test_path_operation_configurations",
|
|
"ext": ".py",
|
|
"methods": 20,
|
|
"sore": "(DESCRIPTIONS+Is+TestClient+app+client+expected_status+get+import_module+importlib+json+mod+mod_name+param+path+post+request+response+return+snapshot+status_code+text)+.expected_response?.IsList+?.check_order?",
|
|
"gbnf": "root ::= (\"DESCRIPTIONS\" | \"Is\" | \"TestClient\" | \"app\" | \"client\" | \"expected_status\" | \"get\" | \"import_module\" | \"importlib\" | \"json\" | \"mod\" | \"mod_name\" | \"param\" | \"path\" | \"post\" | \"request\" | \"response\" | \"return\" | \"snapshot\" | \"status_code\" | \"text\")+ \"expected_response\"? \"IsList\"* \"check_order\"?",
|
|
"gbnf_ok": true
|
|
},
|
|
{
|
|
"package": "tests/test_tutorial/test_path_params",
|
|
"ext": ".py",
|
|
"methods": 18,
|
|
"sore": "(client+content+get+item_id+print+response+status_code+text+user_id)+?.asyncio?.json+?.run+?.(expected_response+snapshot)+?.read_users2+?",
|
|
"gbnf": "root ::= (\"client\" | \"content\" | \"get\" | \"item_id\" | \"print\" | \"response\" | \"status_code\" | \"text\" | \"user_id\")* \"asyncio\"? \"json\"* \"run\"* (\"expected_response\" | \"snapshot\")* \"read_users2\"*",
|
|
"gbnf_ok": true
|
|
},
|
|
{
|
|
"package": "tests/test_tutorial/test_path_params_numeric_validations",
|
|
"ext": ".py",
|
|
"methods": 29,
|
|
"sore": "(TestClient+import_module+importlib+mod+param+request+return)+?.(client+get+path+response+status_code+text)+?.app?.json+?.(expected_response+snapshot)+?",
|
|
"gbnf": "root ::= (\"TestClient\" | \"import_module\" | \"importlib\" | \"mod\" | \"param\" | \"request\" | \"return\")* (\"client\" | \"get\" | \"path\" | \"response\" | \"status_code\" | \"text\")* \"app\"? \"json\"* (\"expected_response\" | \"snapshot\")*",
|
|
"gbnf_ok": true
|
|
},
|
|
{
|
|
"package": "tests/test_tutorial/test_python_types",
|
|
"ext": ".py",
|
|
"methods": 15,
|
|
"sore": "(get_items+res)+?.(import_module+importlib+mod+param+request+return)+?.say_hello+?.get_person_name+?.pytest?.patch+?.Person+?.raises+?.(arg+args+call_args+call_args_list+call_count+for+in+items_s+items_t+mock_print+module+module_name+process_item+process_items+run_module+run_name+runpy+say_hi+str)+?.TypeError+?.assert_called_with+?.get_name_with_age+?",
|
|
"gbnf": "root ::= (\"get_items\" | \"res\")* (\"import_module\" | \"importlib\" | \"mod\" | \"param\" | \"request\" | \"return\")* \"say_hello\"* \"get_person_name\"* \"pytest\"? \"patch\"* \"Person\"* \"raises\"* (\"arg\" | \"args\" | \"call_args\" | \"call_args_list\" | \"call_count\" | \"for\" | \"in\" | \"items_s\" | \"items_t\" | \"mock_print\" | \"module\" | \"module_name\" | \"process_item\" | \"process_items\" | \"run_module\" | \"run_name\" | \"runpy\" | \"say_hi\" | \"str\")* \"TypeError\"* \"assert_called_with\"* \"get_name_with_age\"*",
|
|
"gbnf_ok": true
|
|
},
|
|
{
|
|
"package": "tests/test_tutorial/test_query_param_models",
|
|
"ext": ".py",
|
|
"methods": 12,
|
|
"sore": "(TestClient+app+client+get+import_module+importlib+mod+param+params+request+response+return+status_code+text)+.json+?.snapshot+?",
|
|
"gbnf": "root ::= (\"TestClient\" | \"app\" | \"client\" | \"get\" | \"import_module\" | \"importlib\" | \"mod\" | \"param\" | \"params\" | \"request\" | \"response\" | \"return\" | \"status_code\" | \"text\")+ \"json\"* \"snapshot\"*",
|
|
"gbnf_ok": true
|
|
},
|
|
{
|
|
"package": "tests/test_tutorial/test_query_params",
|
|
"ext": ".py",
|
|
"methods": 19,
|
|
"sore": "(TestClient+app+c+client+get+import_module+importlib+mod+param+path+request+response+return+status_code)+.json+?.(expected_json+snapshot)+?",
|
|
"gbnf": "root ::= (\"TestClient\" | \"app\" | \"c\" | \"client\" | \"get\" | \"import_module\" | \"importlib\" | \"mod\" | \"param\" | \"path\" | \"request\" | \"response\" | \"return\" | \"status_code\")+ \"json\"* (\"expected_json\" | \"snapshot\")*",
|
|
"gbnf_ok": true
|
|
},
|
|
{
|
|
"package": "tests/test_tutorial/test_query_params_str_validations",
|
|
"ext": ".py",
|
|
"methods": 81,
|
|
"sore": "(TestClient+app+client+get+import_module+importlib+mod+param+params+request+response+return+status_code+text+url)+.json+?.snapshot+?",
|
|
"gbnf": "root ::= (\"TestClient\" | \"app\" | \"client\" | \"get\" | \"import_module\" | \"importlib\" | \"mod\" | \"param\" | \"params\" | \"request\" | \"response\" | \"return\" | \"status_code\" | \"text\" | \"url\")+ \"json\"* \"snapshot\"*",
|
|
"gbnf_ok": true
|
|
},
|
|
{
|
|
"package": "tests/test_tutorial/test_request_files",
|
|
"ext": ".py",
|
|
"methods": 31,
|
|
"sore": "(TestClient+app+client+default_pydantic_max_size+file+file2+files+get+import_module+importlib+in+json+mod+open+param+path+path2+post+request+response+return+status_code+text+tmp_path+write_bytes)+.(content+snapshot)+?",
|
|
"gbnf": "root ::= (\"TestClient\" | \"app\" | \"client\" | \"default_pydantic_max_size\" | \"file\" | \"file2\" | \"files\" | \"get\" | \"import_module\" | \"importlib\" | \"in\" | \"json\" | \"mod\" | \"open\" | \"param\" | \"path\" | \"path2\" | \"post\" | \"request\" | \"response\" | \"return\" | \"status_code\" | \"text\" | \"tmp_path\" | \"write_bytes\")+ (\"content\" | \"snapshot\")*",
|
|
"gbnf_ok": true
|
|
},
|
|
{
|
|
"package": "tests/test_tutorial/test_request_form_models",
|
|
"ext": ".py",
|
|
"methods": 15,
|
|
"sore": "(TestClient+app+client+data+get+import_module+importlib+json+mod+param+post+request+response+return+status_code+text)+.snapshot+?",
|
|
"gbnf": "root ::= (\"TestClient\" | \"app\" | \"client\" | \"data\" | \"get\" | \"import_module\" | \"importlib\" | \"json\" | \"mod\" | \"param\" | \"post\" | \"request\" | \"response\" | \"return\" | \"status_code\" | \"text\")+ \"snapshot\"*",
|
|
"gbnf_ok": true
|
|
},
|
|
{
|
|
"package": "tests/test_tutorial/test_request_forms",
|
|
"ext": ".py",
|
|
"methods": 7,
|
|
"sore": "(TestClient+app+client+data+get+import_module+importlib+json+mod+param+post+request+response+return+status_code+text)+.snapshot+?",
|
|
"gbnf": "root ::= (\"TestClient\" | \"app\" | \"client\" | \"data\" | \"get\" | \"import_module\" | \"importlib\" | \"json\" | \"mod\" | \"param\" | \"post\" | \"request\" | \"response\" | \"return\" | \"status_code\" | \"text\")+ \"snapshot\"*",
|
|
"gbnf_ok": true
|
|
},
|
|
{
|
|
"package": "tests/test_tutorial/test_request_forms_and_files",
|
|
"ext": ".py",
|
|
"methods": 8,
|
|
"skip": "too_diverse"
|
|
},
|
|
{
|
|
"package": "tests/test_tutorial/test_response_directly",
|
|
"ext": ".py",
|
|
"methods": 6,
|
|
"sore": "(TestClient+app+client+expected_content+get+headers+import_module+importlib+json+mod+param+put+request+response+return+status_code+text)+.snapshot+?",
|
|
"gbnf": "root ::= (\"TestClient\" | \"app\" | \"client\" | \"expected_content\" | \"get\" | \"headers\" | \"import_module\" | \"importlib\" | \"json\" | \"mod\" | \"param\" | \"put\" | \"request\" | \"response\" | \"return\" | \"status_code\" | \"text\")+ \"snapshot\"*",
|
|
"gbnf_ok": true
|
|
},
|
|
{
|
|
"package": "tests/test_tutorial/test_response_model",
|
|
"ext": ".py",
|
|
"methods": 35,
|
|
"sore": "pytest?.raises+?.FastAPIError?.(TestClient+app+client+follow_redirects+get+import_module+importlib+item_data+json+mod+param+params+post+request+response+return+status_code+text+url+user_data)+.(data+headers+module_name+snapshot)+?",
|
|
"gbnf": "root ::= \"pytest\"? \"raises\"* \"FastAPIError\"? (\"TestClient\" | \"app\" | \"client\" | \"follow_redirects\" | \"get\" | \"import_module\" | \"importlib\" | \"item_data\" | \"json\" | \"mod\" | \"param\" | \"params\" | \"post\" | \"request\" | \"response\" | \"return\" | \"status_code\" | \"text\" | \"url\" | \"user_data\")+ (\"data\" | \"headers\" | \"module_name\" | \"snapshot\")*",
|
|
"gbnf_ok": true
|
|
},
|
|
{
|
|
"package": "tests/test_tutorial/test_response_status_code",
|
|
"ext": ".py",
|
|
"methods": 3,
|
|
"skip": "too_diverse"
|
|
},
|
|
{
|
|
"package": "tests/test_tutorial/test_schema_extra_example",
|
|
"ext": ".py",
|
|
"methods": 15,
|
|
"sore": "(TestClient+app+client+get+import_module+importlib+json+mod+param+put+request+response+return+status_code+text)+.snapshot+?",
|
|
"gbnf": "root ::= (\"TestClient\" | \"app\" | \"client\" | \"get\" | \"import_module\" | \"importlib\" | \"json\" | \"mod\" | \"param\" | \"put\" | \"request\" | \"response\" | \"return\" | \"status_code\" | \"text\")+ \"snapshot\"*",
|
|
"gbnf_ok": true
|
|
},
|
|
{
|
|
"package": "tests/test_tutorial/test_security",
|
|
"ext": ".py",
|
|
"methods": 73,
|
|
"sore": "(TestClient+access_token+app+auth+client+content+data+get+get_access_token+get_password_hash+headers+import_module+importlib+json+mod+param+password+post+request+response+return+scope+status_code+text+username+verify_password)+.snapshot+?",
|
|
"gbnf": "root ::= (\"TestClient\" | \"access_token\" | \"app\" | \"auth\" | \"client\" | \"content\" | \"data\" | \"get\" | \"get_access_token\" | \"get_password_hash\" | \"headers\" | \"import_module\" | \"importlib\" | \"json\" | \"mod\" | \"param\" | \"password\" | \"post\" | \"request\" | \"response\" | \"return\" | \"scope\" | \"status_code\" | \"text\" | \"username\" | \"verify_password\")+ \"snapshot\"*",
|
|
"gbnf_ok": true
|
|
},
|
|
{
|
|
"package": "tests/test_tutorial/test_separate_openapi_schemas",
|
|
"ext": ".py",
|
|
"methods": 8,
|
|
"sore": "(TestClient+app+client+get+import_module+importlib+json+mod+param+post+request+response+return+status_code+text)+.snapshot+?",
|
|
"gbnf": "root ::= (\"TestClient\" | \"app\" | \"client\" | \"get\" | \"import_module\" | \"importlib\" | \"json\" | \"mod\" | \"param\" | \"post\" | \"request\" | \"response\" | \"return\" | \"status_code\" | \"text\")+ \"snapshot\"*",
|
|
"gbnf_ok": true
|
|
},
|
|
{
|
|
"package": "tests/test_tutorial/test_server_sent_events",
|
|
"ext": ".py",
|
|
"methods": 17,
|
|
"sore": "(TestClient+all+app+client+data_lines+event_lines+for+get+headers+id_lines+if+import_module+importlib+in+json+len+line+lines+mod+param+path+post+request+response+retry_lines+return+split+startswith+status_code+strip+text)+.snapshot+?",
|
|
"gbnf": "root ::= (\"TestClient\" | \"all\" | \"app\" | \"client\" | \"data_lines\" | \"event_lines\" | \"for\" | \"get\" | \"headers\" | \"id_lines\" | \"if\" | \"import_module\" | \"importlib\" | \"in\" | \"json\" | \"len\" | \"line\" | \"lines\" | \"mod\" | \"param\" | \"path\" | \"post\" | \"request\" | \"response\" | \"retry_lines\" | \"return\" | \"split\" | \"startswith\" | \"status_code\" | \"strip\" | \"text\")+ \"snapshot\"*",
|
|
"gbnf_ok": true
|
|
},
|
|
{
|
|
"package": "tests/test_tutorial/test_settings",
|
|
"ext": ".py",
|
|
"methods": 16,
|
|
"sore": "(TestClient+ValidationError+admin_email+app+app_name+client+data+del+delenv+exc_info+get+get_settings+if+import_module+importlib+in+json+main_mod+mod+mod_name+mod_path+modules+monkeypatch+param+pytest+raises+raising+request+response+return+setenv+settings+status_code+sys+test_main_mod+text)+.value?.(items_per_user+snapshot+test_app)+?.errors+?.IsAnyStr?",
|
|
"gbnf": "root ::= (\"TestClient\" | \"ValidationError\" | \"admin_email\" | \"app\" | \"app_name\" | \"client\" | \"data\" | \"del\" | \"delenv\" | \"exc_info\" | \"get\" | \"get_settings\" | \"if\" | \"import_module\" | \"importlib\" | \"in\" | \"json\" | \"main_mod\" | \"mod\" | \"mod_name\" | \"mod_path\" | \"modules\" | \"monkeypatch\" | \"param\" | \"pytest\" | \"raises\" | \"raising\" | \"request\" | \"response\" | \"return\" | \"setenv\" | \"settings\" | \"status_code\" | \"sys\" | \"test_main_mod\" | \"text\")+ \"value\"? (\"items_per_user\" | \"snapshot\" | \"test_app\")* \"errors\"* \"IsAnyStr\"?",
|
|
"gbnf_ok": true
|
|
},
|
|
{
|
|
"package": "tests/test_tutorial/test_sql_databases",
|
|
"ext": ".py",
|
|
"methods": 8,
|
|
"sore": "(Any+StaticPool+TestClient+app+c+cast+catch_warnings+clear_sqlmodel+connect_args+create_engine+engine+import_module+importlib+mod+mod_any+param+poolclass+record+reload+request+simplefilter+sqlite_url+warnings+yield)+?.SQLModel?.(Is+IsInt+client+delete+get+hero_id+json+patch+post+response+snapshot+status_code+text)+?.metadata?.clear+?.default_registry?.dispose+?",
|
|
"gbnf": "root ::= (\"Any\" | \"StaticPool\" | \"TestClient\" | \"app\" | \"c\" | \"cast\" | \"catch_warnings\" | \"clear_sqlmodel\" | \"connect_args\" | \"create_engine\" | \"engine\" | \"import_module\" | \"importlib\" | \"mod\" | \"mod_any\" | \"param\" | \"poolclass\" | \"record\" | \"reload\" | \"request\" | \"simplefilter\" | \"sqlite_url\" | \"warnings\" | \"yield\")* \"SQLModel\"? (\"Is\" | \"IsInt\" | \"client\" | \"delete\" | \"get\" | \"hero_id\" | \"json\" | \"patch\" | \"post\" | \"response\" | \"snapshot\" | \"status_code\" | \"text\")* \"metadata\"? \"clear\"* \"default_registry\"? \"dispose\"*",
|
|
"gbnf_ok": true
|
|
},
|
|
{
|
|
"package": "tests/test_tutorial/test_static_files",
|
|
"ext": ".py",
|
|
"methods": 4,
|
|
"skip": "too_diverse"
|
|
},
|
|
{
|
|
"package": "tests/test_tutorial/test_stream_data",
|
|
"ext": ".py",
|
|
"methods": 7,
|
|
"sore": "(TestClient+app+client+content+get+headers+import_module+importlib+mod+param+path+request+response+return+status_code+text)+.json+?.(binary_image+expected_text)?.snapshot+?",
|
|
"gbnf": "root ::= (\"TestClient\" | \"app\" | \"client\" | \"content\" | \"get\" | \"headers\" | \"import_module\" | \"importlib\" | \"mod\" | \"param\" | \"path\" | \"request\" | \"response\" | \"return\" | \"status_code\" | \"text\")+ \"json\"* (\"binary_image\" | \"expected_text\")? \"snapshot\"*",
|
|
"gbnf_ok": true
|
|
},
|
|
{
|
|
"package": "tests/test_tutorial/test_stream_json_lines",
|
|
"ext": ".py",
|
|
"methods": 3,
|
|
"skip": "too_diverse"
|
|
},
|
|
{
|
|
"package": "tests/test_tutorial/test_strict_content_type",
|
|
"ext": ".py",
|
|
"methods": 4,
|
|
"skip": "too_diverse"
|
|
},
|
|
{
|
|
"package": "tests/test_tutorial/test_sub_applications",
|
|
"ext": ".py",
|
|
"methods": 4,
|
|
"sore": "(client+get+response+status_code+text)+.json+.snapshot+?",
|
|
"gbnf": "root ::= (\"client\" | \"get\" | \"response\" | \"status_code\" | \"text\")+ \"json\"+ \"snapshot\"*",
|
|
"gbnf_ok": true
|
|
},
|
|
{
|
|
"package": "tests/test_tutorial/test_testing",
|
|
"ext": ".py",
|
|
"methods": 10,
|
|
"sore": "(ModuleType+import_module+importlib+mod+param+request+return)+?.(client+get+response+status_code+text)+?.pytest?.(test_create_existing_item+test_create_item+test_create_item_bad_token+test_main+test_module+test_read_item+test_read_nonexistent_item)+?.(test_read_main+test_websocket)+?.json+?.warns+?.test_read_item_bad_token+?.snapshot+?.DeprecationWarning+?.from?.docs_src+?.app_testing+?.tutorial003_py310+?.import?.test_read_items+?",
|
|
"gbnf": "root ::= (\"ModuleType\" | \"import_module\" | \"importlib\" | \"mod\" | \"param\" | \"request\" | \"return\")* (\"client\" | \"get\" | \"response\" | \"status_code\" | \"text\")* \"pytest\"? (\"test_create_existing_item\" | \"test_create_item\" | \"test_create_item_bad_token\" | \"test_main\" | \"test_module\" | \"test_read_item\" | \"test_read_nonexistent_item\")* (\"test_read_main\" | \"test_websocket\")* \"json\"* \"warns\"* \"test_read_item_bad_token\"* \"snapshot\"* \"DeprecationWarning\"* \"from\"? \"docs_src\"* \"app_testing\"* \"tutorial003_py310\"* \"import\"? \"test_read_items\"*",
|
|
"gbnf_ok": true
|
|
},
|
|
{
|
|
"package": "tests/test_tutorial/test_testing_dependencies",
|
|
"ext": ".py",
|
|
"methods": 8,
|
|
"sore": "(ModuleType+import_module+importlib+mod+param+request+return)+?.(app+client+dependency_overrides+get+response+status_code+test_module+test_override_in_items+test_override_in_items_with_params+test_override_in_items_with_q+text)+?.json+?",
|
|
"gbnf": "root ::= (\"ModuleType\" | \"import_module\" | \"importlib\" | \"mod\" | \"param\" | \"request\" | \"return\")* (\"app\" | \"client\" | \"dependency_overrides\" | \"get\" | \"response\" | \"status_code\" | \"test_module\" | \"test_override_in_items\" | \"test_override_in_items_with_params\" | \"test_override_in_items_with_q\" | \"text\")* \"json\"*",
|
|
"gbnf_ok": true
|
|
},
|
|
{
|
|
"package": "tests/test_tutorial/test_websockets",
|
|
"ext": ".py",
|
|
"methods": 14,
|
|
"skip": "too_diverse"
|
|
},
|
|
{
|
|
"package": "tests/test_validate_response_recursive",
|
|
"ext": ".py",
|
|
"methods": 3,
|
|
"sore": "(TestClient+app+client+get+json+response+status_code+text)+?.return?",
|
|
"gbnf": "root ::= (\"TestClient\" | \"app\" | \"client\" | \"get\" | \"json\" | \"response\" | \"status_code\" | \"text\")* \"return\"?",
|
|
"gbnf_ok": true
|
|
}
|
|
] |