Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 10 additions & 3 deletions fastspec/oapi.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,11 +32,18 @@ def _sort_key(o):
return 2

def sanitized_params(op):
"Mapping from original param names to valid Python identifiers."
res = {}
for p in op.route_params + op.query_params + op.body_params + op.file_params:
"Mapping from original param names to valid Python identifiers; exact names win collisions."
ps = op.route_params + op.query_params + op.body_params + op.file_params
def _sani(p):
name = sanitize_param_name(p)
if keyword.iskeyword(name): name += '_'
return name
res,used = {},{p for p in ps if _sani(p)==p}
for p in ps:
name = _sani(p)
if name!=p:
while name in used: name += '_'
used.add(name)
res[p] = name
return res

Expand Down
13 changes: 10 additions & 3 deletions nbs/04_oapi.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -519,11 +519,18 @@
" return 2\n",
"\n",
"def sanitized_params(op):\n",
" \"Mapping from original param names to valid Python identifiers.\"\n",
" res = {}\n",
" for p in op.route_params + op.query_params + op.body_params + op.file_params:\n",
" \"Mapping from original param names to valid Python identifiers; exact names win collisions.\"\n",
" ps = op.route_params + op.query_params + op.body_params + op.file_params\n",
" def _sani(p):\n",
" name = sanitize_param_name(p)\n",
" if keyword.iskeyword(name): name += '_'\n",
" return name\n",
" res,used = {},{p for p in ps if _sani(p)==p}\n",
" for p in ps:\n",
" name = _sani(p)\n",
" if name!=p:\n",
" while name in used: name += '_'\n",
" used.add(name)\n",
" res[p] = name\n",
" return res\n",
"\n",
Expand Down