39 lines
1.0 KiB
Python
39 lines
1.0 KiB
Python
from typing import Optional
|
|
|
|
from ..type.assert_name import assert_name
|
|
from ..error import GraphQLError
|
|
|
|
__all__ = ["assert_valid_name", "is_valid_name_error"]
|
|
|
|
|
|
def assert_valid_name(name: str) -> str:
|
|
"""Uphold the spec rules about naming.
|
|
|
|
.. deprecated:: 3.2
|
|
Please use ``assert_name`` instead. Will be removed in v3.3.
|
|
"""
|
|
error = is_valid_name_error(name)
|
|
if error:
|
|
raise error
|
|
return name
|
|
|
|
|
|
def is_valid_name_error(name: str) -> Optional[GraphQLError]:
|
|
"""Return an Error if a name is invalid.
|
|
|
|
.. deprecated:: 3.2
|
|
Please use ``assert_name`` instead. Will be removed in v3.3.
|
|
"""
|
|
if not isinstance(name, str):
|
|
raise TypeError("Expected name to be a string.")
|
|
if name.startswith("__"):
|
|
return GraphQLError(
|
|
f"Name {name!r} must not begin with '__',"
|
|
" which is reserved by GraphQL introspection."
|
|
)
|
|
try:
|
|
assert_name(name)
|
|
except GraphQLError as error:
|
|
return error
|
|
return None
|