
    $g                     ,   d Z ddlZddlmZ ddlmZ i dddddd	d
dddddddddddddddddddddddddddZej        red
xx         dz  cc<   dZd Z	d  Z
 G d! d"          Z edee          ad# Z ej        e           dS )$a  
Settings for Graphene are all namespaced in the GRAPHENE setting.
For example your project's `settings.py` file might look like this:
GRAPHENE = {
    'SCHEMA': 'my_app.schema.schema'
    'MIDDLEWARE': (
        'graphene_django.debug.DjangoDebugMiddleware',
    )
}
This module provides the `graphene_settings` object, that is used to access
Graphene settings, checking for user settings first, then falling
back to the defaults.
    N)settings)setting_changedSCHEMASCHEMA_OUTPUTzschema.jsonSCHEMA_INDENT   
MIDDLEWARE &RELAY_CONNECTION_ENFORCE_FIRST_OR_LASTFRELAY_CONNECTION_MAX_LIMITd   CAMELCASE_ERRORST DJANGO_CHOICE_FIELD_ENUM_CONVERT"DJANGO_CHOICE_FIELD_ENUM_V2_NAMING$DJANGO_CHOICE_FIELD_ENUM_CUSTOM_NAMESUBSCRIPTION_PATHGRAPHIQL_HEADER_EDITOR_ENABLEDGRAPHIQL_SHOULD_PERSIST_HEADERS GRAPHIQL_INPUT_VALUE_DEPRECATIONATOMIC_MUTATIONSTESTING_ENDPOINTz/graphqlMAX_VALIDATION_ERRORS)z+graphene_django.debug.DjangoDebugMiddleware)r	   r   c                     | dS t          | t                    rt          |           S t          | t          t          f          rfd| D             S | S )zm
    If the given setting is a string import notation,
    then perform the necessary import or imports.
    Nc                 0    g | ]}t          |          S r
   )import_from_string).0itemsetting_names     X/var/www/html/netbox-4.1.3/venv/lib/python3.11/site-packages/graphene_django/settings.py
<listcomp>z"perform_import.<locals>.<listcomp>D   s$    GGG4"466GGG    )
isinstancestrr   listtuple)valr   s    `r   perform_importr'   :   sh    
 {t	C		 H!#|444	C$	'	' HGGGG3GGGGJr!   c                 T   	 |                      d          }d                    |dd                   |d         }}t          j        |          }t	          ||          S # t
          t          f$ r6}d                    | ||j        j	        |          }t          |          d}~ww xY w)zA
    Attempt to import a class from a string representation.
    .Nz8Could not import '{}' for Graphene setting '{}'. {}: {}.)
splitjoin	importlibimport_modulegetattrImportErrorAttributeErrorformat	__class____name__)r&   r   partsmodule_path
class_namemoduleemsgs           r   r   r   H   s    		#"%((5":"6"6b	Z(55vz***(   HOOK 	
 
 #s   AA   B'11B""B'c                   6    e Zd ZdZddZed             Zd ZdS )GrapheneSettingsa;  
    A settings object, that allows API settings to be accessed as properties.
    For example:
        from graphene_django.settings import settings
        print(settings.SCHEMA)
    Any setting with string import paths will be automatically resolved
    and return the class, rather than the string literal.
    Nc                 P    |r|| _         |pt          | _        |pt          | _        d S )N)_user_settingsDEFAULTSdefaultsIMPORT_STRINGSimport_strings)selfuser_settingsr@   rB   s       r   __init__zGrapheneSettings.__init__f   s1     	0"/D ,H,>r!   c                 f    t          | d          st          t          di           | _        | j        S )Nr>   GRAPHENE)hasattrr/   r   r>   )rC   s    r   rD   zGrapheneSettings.user_settingsl   s3    t-.. 	D")(J"C"CD""r!   c                     || j         vrt          d|z            	 | j        |         }n# t          $ r | j         |         }Y nw xY w|| j        v rt          ||          }t          | ||           |S )NzInvalid Graphene setting: '%s')r@   r1   rD   KeyErrorrB   r'   setattr)rC   attrr&   s      r   __getattr__zGrapheneSettings.__getattr__r   s    t}$$ !AD!HIII	&$T*CC 	& 	& 	&-%CCC	&
 4&&& d++C 	dC   
s   + AA)NNN)r4   
__module____qualname____doc__rE   propertyrD   rM   r
   r!   r   r<   r<   \   s\         ? ? ? ? # # X#
    r!   r<   c                  l    |d         |d         }}|dk    rt          |t          t                    ad S d S )NsettingvaluerG   )r<   r?   rA   graphene_settings)argskwargsrS   rT   s       r   reload_graphene_settingsrX      s?    I&wUG*,UHnMM r!   )rP   r-   django.confr   django.test.signalsr   r?   DEBUGrA   r'   r   r<   rU   rX   connectr
   r!   r   <module>r]      s                    / / / / / /d] Q "	 -e !#  ' )% +D" #* %d+, &u-. '/0 12 
34 T5: > O\NN *    (' ' ' ' ' ' ' 'T %$T8^DD N N N  0 1 1 1 1 1r!   