__init__.py 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157
  1. """GraphQL Validation
  2. The :mod:`graphql.validation` package fulfills the Validation phase of fulfilling a
  3. GraphQL result.
  4. """
  5. from .validate import validate
  6. from .validation_context import (
  7. ASTValidationContext,
  8. SDLValidationContext,
  9. ValidationContext,
  10. )
  11. from .rules import ValidationRule, ASTValidationRule, SDLValidationRule
  12. # All validation rules in the GraphQL Specification.
  13. from .specified_rules import specified_rules
  14. # Spec Section: "Executable Definitions"
  15. from .rules.executable_definitions import ExecutableDefinitionsRule
  16. # Spec Section: "Field Selections on Objects, Interfaces, and Unions Types"
  17. from .rules.fields_on_correct_type import FieldsOnCorrectTypeRule
  18. # Spec Section: "Fragments on Composite Types"
  19. from .rules.fragments_on_composite_types import FragmentsOnCompositeTypesRule
  20. # Spec Section: "Argument Names"
  21. from .rules.known_argument_names import KnownArgumentNamesRule
  22. # Spec Section: "Directives Are Defined"
  23. from .rules.known_directives import KnownDirectivesRule
  24. # Spec Section: "Fragment spread target defined"
  25. from .rules.known_fragment_names import KnownFragmentNamesRule
  26. # Spec Section: "Fragment Spread Type Existence"
  27. from .rules.known_type_names import KnownTypeNamesRule
  28. # Spec Section: "Lone Anonymous Operation"
  29. from .rules.lone_anonymous_operation import LoneAnonymousOperationRule
  30. # Spec Section: "Fragments must not form cycles"
  31. from .rules.no_fragment_cycles import NoFragmentCyclesRule
  32. # Spec Section: "All Variable Used Defined"
  33. from .rules.no_undefined_variables import NoUndefinedVariablesRule
  34. # Spec Section: "Fragments must be used"
  35. from .rules.no_unused_fragments import NoUnusedFragmentsRule
  36. # Spec Section: "All Variables Used"
  37. from .rules.no_unused_variables import NoUnusedVariablesRule
  38. # Spec Section: "Field Selection Merging"
  39. from .rules.overlapping_fields_can_be_merged import OverlappingFieldsCanBeMergedRule
  40. # Spec Section: "Fragment spread is possible"
  41. from .rules.possible_fragment_spreads import PossibleFragmentSpreadsRule
  42. # Spec Section: "Argument Optionality"
  43. from .rules.provided_required_arguments import ProvidedRequiredArgumentsRule
  44. # Spec Section: "Leaf Field Selections"
  45. from .rules.scalar_leafs import ScalarLeafsRule
  46. # Spec Section: "Subscriptions with Single Root Field"
  47. from .rules.single_field_subscriptions import SingleFieldSubscriptionsRule
  48. # Spec Section: "Argument Uniqueness"
  49. from .rules.unique_argument_names import UniqueArgumentNamesRule
  50. # Spec Section: "Directives Are Unique Per Location"
  51. from .rules.unique_directives_per_location import UniqueDirectivesPerLocationRule
  52. # Spec Section: "Fragment Name Uniqueness"
  53. from .rules.unique_fragment_names import UniqueFragmentNamesRule
  54. # Spec Section: "Input Object Field Uniqueness"
  55. from .rules.unique_input_field_names import UniqueInputFieldNamesRule
  56. # Spec Section: "Operation Name Uniqueness"
  57. from .rules.unique_operation_names import UniqueOperationNamesRule
  58. # Spec Section: "Variable Uniqueness"
  59. from .rules.unique_variable_names import UniqueVariableNamesRule
  60. # Spec Section: "Value Type Correctness"
  61. from .rules.values_of_correct_type import ValuesOfCorrectTypeRule
  62. # Spec Section: "Variables are Input Types"
  63. from .rules.variables_are_input_types import VariablesAreInputTypesRule
  64. # Spec Section: "All Variable Usages Are Allowed"
  65. from .rules.variables_in_allowed_position import VariablesInAllowedPositionRule
  66. # SDL-specific validation rules
  67. from .rules.lone_schema_definition import LoneSchemaDefinitionRule
  68. from .rules.unique_operation_types import UniqueOperationTypesRule
  69. from .rules.unique_type_names import UniqueTypeNamesRule
  70. from .rules.unique_enum_value_names import UniqueEnumValueNamesRule
  71. from .rules.unique_field_definition_names import UniqueFieldDefinitionNamesRule
  72. from .rules.unique_argument_definition_names import UniqueArgumentDefinitionNamesRule
  73. from .rules.unique_directive_names import UniqueDirectiveNamesRule
  74. from .rules.possible_type_extensions import PossibleTypeExtensionsRule
  75. # Optional rules not defined by the GraphQL Specification
  76. from .rules.custom.no_deprecated import NoDeprecatedCustomRule
  77. from .rules.custom.no_schema_introspection import NoSchemaIntrospectionCustomRule
  78. __all__ = [
  79. "validate",
  80. "ASTValidationContext",
  81. "ASTValidationRule",
  82. "SDLValidationContext",
  83. "SDLValidationRule",
  84. "ValidationContext",
  85. "ValidationRule",
  86. "specified_rules",
  87. "ExecutableDefinitionsRule",
  88. "FieldsOnCorrectTypeRule",
  89. "FragmentsOnCompositeTypesRule",
  90. "KnownArgumentNamesRule",
  91. "KnownDirectivesRule",
  92. "KnownFragmentNamesRule",
  93. "KnownTypeNamesRule",
  94. "LoneAnonymousOperationRule",
  95. "NoFragmentCyclesRule",
  96. "NoUndefinedVariablesRule",
  97. "NoUnusedFragmentsRule",
  98. "NoUnusedVariablesRule",
  99. "OverlappingFieldsCanBeMergedRule",
  100. "PossibleFragmentSpreadsRule",
  101. "ProvidedRequiredArgumentsRule",
  102. "ScalarLeafsRule",
  103. "SingleFieldSubscriptionsRule",
  104. "UniqueArgumentNamesRule",
  105. "UniqueDirectivesPerLocationRule",
  106. "UniqueFragmentNamesRule",
  107. "UniqueInputFieldNamesRule",
  108. "UniqueOperationNamesRule",
  109. "UniqueVariableNamesRule",
  110. "ValuesOfCorrectTypeRule",
  111. "VariablesAreInputTypesRule",
  112. "VariablesInAllowedPositionRule",
  113. "LoneSchemaDefinitionRule",
  114. "UniqueOperationTypesRule",
  115. "UniqueTypeNamesRule",
  116. "UniqueEnumValueNamesRule",
  117. "UniqueFieldDefinitionNamesRule",
  118. "UniqueArgumentDefinitionNamesRule",
  119. "UniqueDirectiveNamesRule",
  120. "PossibleTypeExtensionsRule",
  121. "NoDeprecatedCustomRule",
  122. "NoSchemaIntrospectionCustomRule",
  123. ]