File: //lib/python3/dist-packages/django/db/models/__pycache__/options.cpython-310.pyc
o
3�a�� � @ s� d dl Z d dlZd dlZd dlmZ d dlmZ d dlmZ d dl m
Z
mZ d dlm
Z
d dlmZmZmZmZ d dlmZ d d lmZmZ d d
lmZ d dlmZ d dlmZmZ d d
lm Z e!� Z"dZ#dZ$dZ%dd� Z&dd� Z'G dd� d�Z(dS )� N)�defaultdict)�apps)�settings)�FieldDoesNotExist�ImproperlyConfigured)�connections)� AutoField�Manager�OrderWrt�UniqueConstraint)�PathInfo)�
ImmutableList�
OrderedSet)�cached_property)�
import_string)�camel_case_to_spaces�format_lazy)�override� zyThe return type of '%s' should never be mutated. If you want to manipulate this list for your own use, make a copy first.)�verbose_name�verbose_name_plural�db_table�ordering�unique_together�permissions�
get_latest_by�order_with_respect_to� app_label�
db_tablespace�abstract�managed�proxy� swappable�auto_created�index_togetherr �default_permissions�select_on_save�default_related_name�required_db_features�required_db_vendor�base_manager_name�default_manager_name�indexes�constraintsc C sd z&| sW dS t | ttf�st�| d }t |ttf�s| f} tdd� | D ��W S ty1 | Y S w )z�
option_together can be either a tuple of tuples, or a single
tuple of two strings. Normalize it to a tuple of tuples, so that
calling code can uniformly expect that.
r r c s s � | ]}t |�V qd S �N)�tuple)�.0�otr r �:/usr/lib/python3/dist-packages/django/db/models/options.py� <genexpr>5 � � z%normalize_together.<locals>.<genexpr>)�
isinstancer/ �list� TypeError)�option_together�
first_elementr r r2 �normalize_together&