403Webshell
Server IP : 192.158.238.246  /  Your IP : 18.189.143.114
Web Server : LiteSpeed
System : Linux uniform.iwebfusion.net 4.18.0-553.27.1.lve.1.el8.x86_64 #1 SMP Wed Nov 20 15:58:00 UTC 2024 x86_64
User : jenniferflocom ( 1321)
PHP Version : 8.1.32
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /opt/alt/python37/lib/python3.7/site-packages/alembic/script/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /opt/alt/python37/lib/python3.7/site-packages/alembic/script/__pycache__/revision.cpython-37.pyc
B

�M!V'u�@s�ddlZddlZddlmZddlmZddlmZe�d�ZGdd�de	�Z
Gdd	�d	e
�ZGd
d�de
�ZGdd
�d
e
�Z
Gdd�de�ZGdd�de�Zdd�ZdS)�N�)�util)�compatz(?:(.+?)@)?(\w+)?((?:\+|-)\d+)c@seZdZdS)�
RevisionErrorN)�__name__�
__module__�__qualname__�r	r	�H/opt/alt/python37/lib/python3.7/site-packages/alembic/script/revision.pyrsrcseZdZ�fdd�Z�ZS)�RangeNotAncestorErrorcs0||_||_tt|��d|pd|p$df�dS)Nz-Revision %s is not an ancestor of revision %s�base)�lower�upper�superr�__init__)�selfr
r)�	__class__r	r
rs

zRangeNotAncestorError.__init__)rrrr�
__classcell__r	r	)rr
rsrcseZdZ�fdd�Z�ZS)�
MultipleHeadscs.||_||_tt|��d|d�|�f�dS)Nz6Multiple heads are present for given argument '%s'; %sz, )�heads�argumentrrr�join)rrr)rr	r
rs

zMultipleHeads.__init__)rrrrrr	r	)rr
rsrcseZdZ�fdd�Z�ZS)�ResolutionErrorcstt|��|�||_dS)N)rrrr)r�messager)rr	r
r$szResolutionError.__init__)rrrrrr	r	)rr
r#src@seZdZdZdd�Zejdd��Zejdd��Zejdd	��Z	ejd
d��Z
ejdd
��Zdd�Zd7dd�Z
dd�Zd8dd�Zd9dd�Zdd�Zdd�Zdd �Zd!d"�Zd:d#d$�Zd;d%d&�Zd<d'd(�Zd)d*�Zd+d,�Zd=d-d.�Zd>d/d0�Zd?d1d2�Zd@d3d4�ZdAd5d6�ZdS)B�RevisionMapz�Maintains a map of :class:`.Revision` objects.

    :class:`.RevisionMap` is used by :class:`.ScriptDirectory` to maintain
    and traverse the collection of :class:`.Script` objects, which are
    themselves instances of :class:`.Revision`.

    cCs
||_dS)a
Construct a new :class:`.RevisionMap`.

        :param generator: a zero-arg callable that will generate an iterable
         of :class:`.Revision` instances to be used.   These are typically
         :class:`.Script` subclasses within regular Alembic use.

        N)�
_generator)r�	generatorr	r	r
r2szRevisionMap.__init__cCs|j|jS)z�All "head" revisions as strings.

        This is normally a tuple of length one,
        unless unmerged branches are present.

        :return: a tuple of string revision numbers.

        )�
_revision_mapr)rr	r	r
r<s
zRevisionMap.headscCs|j|jS)z�All "base" revisions as strings.

        These are revisions that have a ``down_revision`` of None,
        or empty tuple.

        :return: a tuple of string revision numbers.

        )r�bases)rr	r	r
rIs
zRevisionMap.basescCs|j|jS)zeAll "real" head revisions as strings.

        :return: a tuple of string revision numbers.

        )r�_real_heads)rr	r	r
rVszRevisionMap._real_headscCs|j|jS)zeAll "real" base revisions as strings.

        :return: a tuple of string revision numbers.

        )r�_real_bases)rr	r	r
r `szRevisionMap._real_basesc
Cs�i}t��}t��}d|_d|_t�}t�}x�|��D]�}|j|krTt�d|j�|||j<|j	rn|�
|�|jr~|�
|�|�
|j�|�
|j�|jr�|j|jf7_|j
r6|j|jf7_q6Wx|D]}|�||�q�Wx|D]}|�||�q�Wxr|��D]f}x^|jD]T}||k�r4t�d||f�||}	|	�|�||jk�r\|�|�|�|��qW�qWd|d<|d<t|�|_t|�|_x|D]}|j||dd��q�W|S)z_memoized attribute, initializes the revision map from the
        initial collection.

        r	z%Revision %s is present more than oncez-Revision %s referenced from %s is not presentNF)�map_branch_labels)�sqlautil�
OrderedSetrr �setr�revisionr�warn�
branch_labels�add�dependencies�is_base�
_is_real_base�_map_branch_labels�_add_depends_on�values�_all_down_revisions�add_nextrev�_versioned_down_revisions�discard�tuplerr�
_add_branches)
r�map_rrZhas_branch_labelsZhas_depends_onr%�rev�downrev�
down_revisionr	r	r
rjsT












zRevisionMap._revision_mapcCsD|jr@x8|jD].}||kr4td||j||jf��|||<qWdS)Nz;Branch name '%s' in revision %s already used by revision %s)r'�_orig_branch_labelsrr%)rr%r5�branch_labelr	r	r
r,�szRevisionMap._map_branch_labelsTcCs�|r|�||�|jr�|j�|j�x(|j|g|dd�D]}|j�|j�q8W|}x6|r�|js�|js�|j�|j�|jr�||j}qTPqTWdS)NF)�include_dependencies)r,r'�update�_get_descendant_nodes�_is_real_branch_point�is_merge_pointr8)rr%r5r!�node�parentr	r	r
r4�szRevisionMap._add_branchescs*|jr&t�fdd�t�|j�D��|_dS)Nc3s|]}�|jVqdS)N)r%)�.0�dep)r5r	r
�	<genexpr>�sz.RevisionMap._add_depends_on.<locals>.<genexpr>)r)r3r�to_tuple�_resolved_dependencies)rr%r5r	)r5r
r-�s
zRevisionMap._add_depends_onFcs"|j}|s&�j|kr&t�d�j�n|rB�j|krBtd�j���|�j<|��|�|��|��jr||j�jf7_�j	r�|j
�jf7_
x6�jD],}||kr�t�d|�f�||���q�W�j
r�t�fdd�|jD���jf|_�j�rt�fdd�|jD���jf|_dS)z�add a single revision to an existing map.

        This method is for single-revision use cases, it's not
        appropriate for fully populating an entire revision map.

        z%Revision %s is present more than oncezrevision %s not in mapz-Revision %s referenced from %s is not presentc3s*|]"}|t�j���jg�kr|VqdS)N)r$r/�unionr%)rB�head)r%r	r
rD�sz+RevisionMap.add_revision.<locals>.<genexpr>c3s*|]"}|t�j���jg�kr|VqdS)N)r$r1rGr%)rBrH)r%r	r
rD�sN)rr%rr&�	Exceptionr4r-r*rr+r r/r0�
_is_real_headr3r�is_headr)rr%�_replacer5r7r	)r%r
�add_revision�s6
zRevisionMap.add_revisionNcCsL|j}|r|�||�}t|�dkr8t||r2d|nd��|rD|dSdSdS)a�Return the current head revision.

        If the script directory has multiple heads
        due to branching, an error is raised;
        :meth:`.ScriptDirectory.get_heads` should be
        preferred.

        :param branch_label: optional branch name which will limit the
         heads considered to those which include that branch_label.

        :return: a string revision number.

        .. seealso::

            :meth:`.ScriptDirectory.get_heads`

        �z%s@headrHrN)r�filter_for_lineage�lenr)rr:Z
current_headsr	r	r
�get_current_head�szRevisionMap.get_current_headcCs|�|j|�S)N)rOr)r�
identifierr	r	r
�_get_base_revisionsszRevisionMap._get_base_revisionscsTt|ttttf�r*t�fdd�|D�d�S��|�\}�t��fdd�|D��SdS)a�Return the :class:`.Revision` instances with the given rev id
        or identifiers.

        May be given a single identifier, a sequence of identifiers, or the
        special symbols "head" or "base".  The result is a tuple of one
        or more identifiers, or an empty tuple in the case of "base".

        In the cases where 'head', 'heads' is requested and the
        revision map is empty, returns an empty tuple.

        Supports partial identifiers, where the given identifier
        is matched against all identifiers that start with the given
        characters; if there is exactly one match, that determines the
        full revision.

        csg|]}��|��qSr	)�
get_revisions)rBZid_elem)rr	r
�
<listcomp>+sz-RevisionMap.get_revisions.<locals>.<listcomp>r	c3s|]}��|��VqdS)N)�_revision_for_ident)rB�rev_id)r:rr	r
rD/sz,RevisionMap.get_revisions.<locals>.<genexpr>N)�
isinstance�listr3r$�	frozenset�sum�_resolve_revision_number)r�id_�resolved_idr	)r:rr
rTszRevisionMap.get_revisionscCs>|�|�\}}t|�dkr&t||��n|r2|d}|�||�S)a	Return the :class:`.Revision` instance with the given rev id.

        If a symbolic name such as "head" or "base" is given, resolves
        the identifier into the current head or base revision.  If the symbolic
        name refers to multiples, :class:`.MultipleHeads` is raised.

        Supports partial identifiers, where the given identifier
        is matched against all identifiers that start with the given
        characters; if there is exactly one match, that determines the
        full revision.

        rNr)r\rPrrV)rr]r^r:r	r	r
�get_revision2szRevisionMap.get_revisioncCsby|j|}WnJtk
rXy|�|�}Wn"tk
rNtd||��YnX|SYnX|SdS)NzNo such branch: '%s')r�KeyErrorrVr)rr:�
branch_revZ
nonbranch_revr	r	r
�_resolve_branchHs
zRevisionMap._resolve_branchcs�|r|�|�}nd}y|j�}Wn�tk
r��fdd�|jD�}|rV|�||�}|sjtd����nFt|�dkr�td�d�dd�|d	d
�D��f���n|j|d	}YnX|r�|dk	r�|�|j|j�s�td|j|f���|S)Ncsg|]}|r|���r|�qSr	)�
startswith)rB�x)r^r	r
rU`sz3RevisionMap._revision_for_ident.<locals>.<listcomp>zNo such revision or branch '%s'rNz)Multiple revisions start with '%s': %s...z, css|]}d|VqdS)z'%s'Nr	)rB�rr	r	r
rDmsz2RevisionMap._revision_for_ident.<locals>.<genexpr>r�z*Revision %s is not a member of branch '%s')	rbrr`rOrrPr�_shares_lineager%)rr^Zcheck_branchrar%�revsr	)r^r
rVVs6zRevisionMap._revision_for_identcsD��|�\}}g�|r ��|�|r.��|����fdd�|D�S)Ncs g|]}�j|��d�r|�qS))r;)rg)rB�tg)r;r�sharesr	r
rU�sz2RevisionMap.filter_for_lineage.<locals>.<listcomp>)r\�append�extend)r�targetsZ
check_againstr;r]r:r	)r;rrjr
rOzs

zRevisionMap.filter_for_lineagecsh|sdSt|t�s��|�}�fdd�tj|dd�D�}tt�j|g|d����j	|g|d���
|��S)NTcs$g|]}t|t�s��|�n|�qSr	)rX�RevisionrV)rBZtest_against_rev)rr	r
rU�sz/RevisionMap._shares_lineage.<locals>.<listcomp>r	)�default)r;)rXrnrVrrE�boolr$r=rG�_get_ancestor_nodes�intersection)r�targetZtest_against_revsr;r	)rr
rg�s





zRevisionMap._shares_lineagecCs�t|tj�r&d|kr&|�dd�\}}nd}|j|dkrZ|rN|�|j|�|fS|j|fSnT|dkr�|�|�}|rz|f|fSd|fSn*|dks�|dkr�d|fSt	j
|dd�|fSdS)N�@rNrrHr	r)ro)rXr�string_types�splitrrOrrrQrrE)rr]r:Zcurrent_headr	r	r
r\�s"


z$RevisionMap._resolve_revision_numbercCst|tj�r t�|�}|s$dSndSt|�d��}|�d�}	|�d�}
|rR|	sRdnd}|r�|
rhd|
}n"|	r�|	�d�r||	}q�d|	}nd}|}
n$|
r�d|
}
n|	r�d|	}
nd}
|}t|j	||
||d	��}|	�r\|
r�|�
d
|
|	f�}n
|�
|	�}|	�d��rd}nV|	dk�rt|�d}n>t�t|�ddd�}x,|D]}|j
||j
k�r8P�q8Wd}nd}|�r�||||d�}|�s�|�r�t|�t||�k�r�td|t|�f��nJ|d|||�}|�s�|�r�t|�t|�|k�r�td|t|�f��t|�S)
NrfrrNrz%s@headrHz%s@baser)�	inclusive�
implicit_basez%s@%s���z1Relative revision %s didn't produce %d migrations)rXrru�_relative_destination�match�int�grouprcrY�_iterate_revisionsr_rP�ranger%�absr�iter)rZdestination�sourceZ
is_upwardsrxrw�assert_relative_lengthr{Zrelative�symbolr:Zreldelta�from_�to_rhZ
symbol_rev�indexZrange_r	r	r
�_relative_iterate�sr










zRevisionMap._relative_iteratecCsJ|�||d|||�}|r|S|�||d|||�}|r8|S|j||||d�S)auIterate through script revisions, starting at the given
        upper revision identifier and ending at the lower.

        The traversal uses strictly the `down_revision`
        marker inside each migration script, so
        it is a requirement that upper >= lower,
        else you'll get nothing back.

        The iterator yields :class:`.Revision` objects.

        TF)rwrx)r�r~)rrr
rxrwr�Zrelative_upperZrelative_lowerr	r	r
�iterate_revisionsszRevisionMap.iterate_revisionscCs(|rdd�}ndd�}|j||||d�S)NcSs|jS)N)�_all_nextrev)r6r	r	r
�<lambda>*�z3RevisionMap._get_descendant_nodes.<locals>.<lambda>cSs|jS)N)�nextrev)r6r	r	r
r�,r�)r5�check)�_iterate_related_revisions)rrmr5r�r;�fnr	r	r
r=&s

z!RevisionMap._get_descendant_nodescCs(|rdd�}ndd�}|j||||d�S)NcSs|jS)N)r/)r6r	r	r
r�6r�z1RevisionMap._get_ancestor_nodes.<locals>.<lambda>cSs|jS)N)r1)r6r	r	r
r�8r�)r5r�)r�)rrmr5r�r;r�r	r	r
rq2s

zRevisionMap._get_ancestor_nodesc
#s��dkr|j�t�}t��}x�|D]�}|�|�|r:t�}xT|r�|��}	|rV|�|	�|	|kr`q<|�|	�|��fdd�||	�D��|	Vq<W|r"|�|��	|g�r"t
d|j��q"WdS)Nc3s|]}�|VqdS)Nr	)rBrW)r5r	r
rDSsz9RevisionMap._iterate_related_revisions.<locals>.<genexpr>z=Requested revision %s overlaps with other requested revisions)rr$�collections�dequerk�popr(rlrr�
differencerr%)
rr�rmr5r��seen�todorsZ
per_targetr6r	)r5r
r�>s,




z&RevisionMap._iterate_related_revisionsc#sb��|�}t|tj�o|�d�}t���|��}|s>|s>t��t�j	|dd��}|rf����
|��}	n�|r�|r�t��	|��}
t��|��}t�}|�|
��|�}
x6|
D].}x(|j
D]}�j||
kr�Pq�W|�|�q�W|�|�}	n>|�rt���j��}|�|�}	n|�st���j��}	n|}	tdd�|D���dd��j|	dd�D�����s^t||��t�fdd��fdd��D�D���t��fd	d�|D��}d}x���rR|�s�td
��d}|�s�|�t�fdd��D�d
d�d����|�x`|�rL|��}��|j�d}|����fdd�t|j
�D��|�sB||k�rB�q�|V�q�W�q�W��r^t�dS)z�iterate revisions from upper to lower.

        The traversal is depth-first within branches, and breadth-first
        across branches as a whole.

        z@baseT)r�css|]}|jVqdS)N)r%)rBr6r	r	r
rD�sz1RevisionMap._iterate_revisions.<locals>.<genexpr>css|]}|jVqdS)N)r%)rBr6r	r	r
rD�sc3s,|]$}|jrt��|j��dkr|VqdS)rNN)r>rPrrr�)rBr6)�total_spacer	r
rD�sc3s|]}�j|VqdS)N)r)rBr6)rr	r
rD�sc3s|]}|j�kr|VqdS)N)r%)rBre)r�r	r
rD�sz5Dependency resolution failed; iteration can't proceedFc3s|]}|j���s|VqdS)N)r�rr)rBr6)r�r	r
rD�scSs|jr
dSdS)NrrN)�is_branch_point)r6r	r	r
r��r�z0RevisionMap._iterate_revisions.<locals>.<lambda>)�keycs,g|]$}�j|�kr|�kr�j|�qSr	)r)rBr7)�branch_todorr�r	r
rU�sz2RevisionMap._iterate_revisions.<locals>.<listcomp>N)rTrXrru�endswithrZdedupe_tuple�
StopIterationr$rqrSr=r�r/rr(rGr rrrr�r�r�
extendleft�sorted�difference_update�popleft�remover%�reversed�AssertionError)rrr
rwrxZrequested_lowersZlimit_to_lower_branchZuppersZupper_ancestorsZlowersZlower_ancestorsZlower_descendantsZbase_lowersZcandidate_lowersr6r7r�Ztotal_space_modifiedr	)r�rr�r
r~Zs~
	


	
zRevisionMap._iterate_revisions)T)F)N)N)F)F)FFT)NFT)NFT)F)TF)rrr�__doc__rrZmemoized_propertyrrrr rr,r4r-rMrQrSrTr_rbrVrOrgr\r�r�r=rqr�r~r	r	r	r
r)s6




;

*

%

N



rc@s�eZdZdZe�Ze�ZdZdZdZ	dZ
ddd�Zdd�Zdd�Z
ed	d
��Zedd��Zed
d��Zedd��Zedd��Zedd��Zedd��Zedd��Zedd��ZdS)rnaoBase class for revisioned objects.

    The :class:`.Revision` class is the base of the more public-facing
    :class:`.Script` object, which represents a migration script.
    The mechanics of revision management and traversal are encapsulated
    within :class:`.Revision`, while :class:`.Script` applies this logic
    to Python files in a version directory.

    NcCs@||_t|�|_t|�|_d|_tj|dd�|_t|j�|_	dS)Nr	)ro)
r%�tuple_rev_as_scalarr8r)rFrrEr9r$r')rr%r8r)r'r	r	r
r�s

zRevision.__init__cCsVt|j�t|j�g}|jr*|�d|j�|jr@|�d|j�d|jjd�|�fS)Nzdependencies=%rzbranch_labels=%rz%s(%s)z, )	�reprr%r8r)rkr'rrr)r�argsr	r	r
�__repr__	szRevision.__repr__cCs4|j�|jg�|_|j|jkr0|j�|jg�|_dS)N)r�rGr%r1r�)rr%r	r	r
r0szRevision.add_nextrevcCstj|jdd�|jS)Nr	)ro)rrEr8rF)rr	r	r
r/szRevision._all_down_revisionscCstj|jdd�S)Nr	)ro)rrEr8)rr	r	r
r1!sz"Revision._versioned_down_revisionscCst|j�S)aReturn True if this :class:`.Revision` is a 'head' revision.

        This is determined based on whether any other :class:`.Script`
        within the :class:`.ScriptDirectory` refers to this
        :class:`.Script`.   Multiple heads can be present.

        )rpr�)rr	r	r
rK%s	zRevision.is_headcCst|j�S)N)rpr�)rr	r	r
rJ0szRevision._is_real_headcCs
|jdkS)z<Return True if this :class:`.Revision` is a 'base' revision.N)r8)rr	r	r
r*4szRevision.is_basecCs|jdko|jdkS)zrReturn True if this :class:`.Revision` is a "real" base revision,
        e.g. that it has no dependencies either.N)r8r))rr	r	r
r+:szRevision._is_real_basecCst|j�dkS)a+Return True if this :class:`.Script` is a branch point.

        A branchpoint is defined as a :class:`.Script` which is referred
        to by more than one succeeding :class:`.Script`, that is more
        than one :class:`.Script` has a `down_revision` identifier pointing
        here.

        rN)rPr�)rr	r	r
r�Ds
zRevision.is_branch_pointcCst|j�dkS)zzReturn True if this :class:`.Script` is a 'real' branch point,
        taking into account dependencies as well.

        rN)rPr�)rr	r	r
r>PszRevision._is_real_branch_pointcCst|j�dkS)z6Return True if this :class:`.Script` is a merge point.rN)rPr1)rr	r	r
r?XszRevision.is_merge_point)NN)rrrr�rZr�r�r%r8r)r'rr�r0�propertyr/r1rKrJr*r+r�r>r?r	r	r	r
rn�s&	


rncCs$|sdSt|�dkr|dS|SdS)NrNr)rP)r6r	r	r
r�_s
r�)�rer��rZ
sqlalchemyr"r�compilerzrIrrrr�objectrrnr�r	r	r	r
�<module>s$


3	

Youez - 2016 - github.com/yon3zu
LinuXploit