§ }<ˆj•ïãó�—ddlmZddlZddlZddlmZddlmZddlmZddlmZddlm Z ddlm Z dd lm Z dd lm Z dd lm Z dd lmZdd lmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZerddlmZeeeefZeeeedfdfZedefZ edZ!e edfZ"e edeedfedfZ#edeedf¬¦«Z$ej%d¦«Z&gd ¢Z'Gd!„d"e(¦«Z)Gd#„d$e)¦«Z*Gd%„d&e)¦«Z+Gd'„d(e)¦«Z,Gd)„d*e)¦«Z-Gd+„d,e-¦«Z.Gd-„d.e-¦«Z/Gd/„d0e.e/¦«Z0Gd1„d2¦«Z1Gd3„d¦«Z2ed?d8„¦«Z3ed@d;„¦«Z3d<„Z3dAd>„Z4dS)Bé)Ú annotationsN)ÚAny)ÚCallable)Úcast)Ú Collection)ÚDeque)ÚDict)Ú FrozenSet)ÚIterable)ÚIterator)ÚList)ÚOptional)Úoverload)ÚSequence)ÚSet)ÚTuple)Ú TYPE_CHECKING)ÚTypeVar)ÚUnion)Úutilé)Únot_none)ÚLiteral.ÚRevision)rzLiteral['base']©Ú_T)Úboundz(?:(.+?)@)?(\w+)?((?:\+|-)\d+))ú@ú-ú+có—eZdZdS)Ú RevisionErrorN)Ú__name__Ú __module__Ú __qualname__róúi/builddir/build/BUILD/cloudlinux-venv-1.0.12/venv/lib/python3.11/site-packages/alembic/script/revision.pyr"r",s€€€€€Ø€Dr&r"có ‡—eZdZdˆfd„ ZˆxZS)ÚRangeNotAncestorErrorÚlowerÚ_RevisionIdentifierTypeÚupperÚreturnÚNonecóz•—||_||_t¦« d|pd›d|pd›�¦«dS)Nú Revision Úbasez is not an ancestor of revision )r*r,ÚsuperÚ__init__)Úselfr*r,Ú __class__s €r'r3zRangeNotAncestorError.__init__1sTø€ðˆŒ ؈Œ Ý ‰Œ×ÒÐàˆ˜ˆˆ  ¨ ð 1ñ ô ð ð ð r&)r*r+r,r+r-r.©r#r$r%r3Ú __classcell__©r5s@r'r)r)0s=ø€€€€€ð ð ð ð ð ð ð ð ð ð r&r)có ‡—eZdZdˆfd„ ZˆxZS) Ú MultipleHeadsÚheadsú Sequence[str]Úargumentú Optional[str]r-r.c󘕗||_||_t¦« d|›dd |¦«›�¦«dS)Nz/Multiple heads are present for given argument 'z'; ú, )r;r=r2r3Újoin)r4r;r=r5s €r'r3zMultipleHeads.__init__=sWø€ØˆŒ Ø ˆŒ Ý ‰Œ×ÒÐà�H�H˜dŸiši¨Ñ.Ô.Ð.ð 0ñ ô ð ð ð r&)r;r<r=r>r-r.r6r8s@r'r:r:<s=ø€€€€€ð ð ð ð ð ð ð ð ð ð r&r:có ‡—eZdZdˆfd„ ZˆxZS)ÚResolutionErrorÚmessageÚstrr=r-r.cóX•—t¦« |¦«||_dS©N)r2r3r=)r4rDr=r5s €r'r3zResolutionError.__init__Gs&ø€Ý ‰Œ×Ò˜Ñ!Ô!Ð!Ø ˆŒ ˆ ˆ r&)rDrEr=rEr-r.r6r8s@r'rCrCFs=ø€€€€€ð!ð!ð!ð!ð!ð!ð!ð!ð!ð!r&rCcó$‡—eZdZdZdˆfd„ ZˆxZS)Ú CycleDetectedÚCycleÚ revisionsr<r-r.có”•—||_t¦« |j›dd |¦«›d�¦«dS)Nz is detected in revisions (r@ú))rKr2r3ÚkindrA©r4rKr5s €r'r3zCycleDetected.__init__OsRø€Ø"ˆŒÝ ‰Œ×ÒàŒyˆyˆy˜$Ÿ)š) IÑ.Ô.Ð.Ð.ð 0ñ ô ð ð ð r&©rKr<r-r.©r#r$r%rNr3r7r8s@r'rIrILsBø€€€€€Ø €Dð ð ð ð ð ð ð ð ð ð r&rIcó$‡—eZdZdZdˆfd„ ZˆxZS)ÚDependencyCycleDetectedzDependency cyclerKr<r-r.cóJ•—t¦« |¦«dSrG©r2r3rOs €r'r3z DependencyCycleDetected.__init__Zs!ø€Ý ‰Œ×Ò˜Ñ#Ô#Ð#Ð#Ð#r&rPrQr8s@r'rSrSWsBø€€€€€Ø €Dð$ð$ð$ð$ð$ð$ð$ð$ð$ð$r&rScó$‡—eZdZdZdˆfd„ ZˆxZS)Ú LoopDetectedz Self-loopÚrevisionrEr-r.cóL•—t¦« |g¦«dSrGrU©r4rXr5s €r'r3zLoopDetected.__init__as#ø€Ý ‰Œ×Ò˜(˜Ñ$Ô$Ð$Ð$Ð$r&©rXrEr-r.rQr8s@r'rWrW^sBø€€€€€Ø €Dð%ð%ð%ð%ð%ð%ð%ð%ð%ð%r&rWcó$‡—eZdZdZdˆfd„ ZˆxZS)ÚDependencyLoopDetectedzDependency self-looprXr<r-r.cóJ•—t¦« |¦«dSrGrUrZs €r'r3zDependencyLoopDetected.__init__hs!ø€Ý ‰Œ×Ò˜Ñ"Ô"Ð"Ð"Ð"r&)rXr<r-r.rQr8s@r'r]r]esBø€€€€€Ø !€Dð#ð#ð#ð#ð#ð#ð#ð#ð#ð#r&r]cóÔ—eZdZdZdld„Zejdmd„¦«Zejdmd „¦«Zejdmd „¦«Z ejdmd „¦«Z ejdnd „¦«Z dod„Z dpd„Z dpd„Zdpd„Zdpd„Zdqdrd#„Z dsdtd'„Zdud*„Zdvd.„Zdwd0„Zdxd1„Z dsdyd5„Zdzd9„Z dqd{d>„Z dqd|dC„Zd}dE„Z d~ddO„Z d€d�dU„Z d‚dƒdV„Z dqd„dY„Zd…d\„Z d†d‡dc„Z!dˆdf„Z"d‰dg„Z#dŠdh„Z$d‹dj„Z%dŒdk„Z&d$S)�Ú 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`. Ú generatorú Callable[[], Iterable[Revision]]r-r.có—||_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)r4ras r'r3zRevisionMap.__init__us€ð$ˆŒˆˆr&úTuple[str, ...]có—|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;©r4s r'r;zRevisionMap.headsó€ð ÔÐØŒzÐr&có—|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. )rgÚbasesrhs r'rkzRevisionMap.basesŒrir&có—|j|jS)zeAll "real" head revisions as strings. :return: a tuple of string revision numbers. )rgÚ _real_headsrhs r'rmzRevisionMap._real_heads™ó€ð ÔÐØÔÐr&có—|j|jS)zeAll "real" base revisions as strings. :return: a tuple of string revision numbers. )rgÚ _real_basesrhs r'rpzRevisionMap._real_bases£rnr&Ú_RevisionMapTypec ó—tj¦«}tj¦«}tj¦«}d}d}t¦«}t¦«}| ¦«D]¦}| |¦«|j|vrtjd|jz¦«|||j<|j r| |¦«| |¦«| |¦«|j r||fz }|j r||fz }Œ§|  ¦«} |  |tt|¦«¦«| |tt|¦«¦«| ¦«D]{} | jD]q} | |vrtjd| ›d| ›d�¦«|| } |  | ¦«| | jvr| | ¦«| | ¦«ŒrŒ|| |tt|¦«¦«| | ||||¦«t1| ¦«¦«} dx| d<| d<t5d„|D¦«¦«|_t5d„|D¦«¦«|_t5d „|D¦«¦«|_t5d „|D¦«¦«|_| || ¦«| S) z_memoized attribute, initializes the revision map from the initial collection. rú%Revision %s is present more than oncer0ú referenced from ú is not presentNc3ó$K—|] }|jV—Œ dSrG©rX©Ú.0Úrevs r'ú z,RevisionMap._revision_map..ñó$èè€Ð9Ð9¨C˜3œ<Ð9Ð9Ð9Ð9Ð9Ð9r&c3ó$K—|] }|jV—Œ dSrGrwrxs r'r{z,RevisionMap._revision_map..òó$èè€Ð EÐ E°# ¤Ð EÐ EÐ EÐ EÐ EÐ Er&c3ó$K—|] }|jV—Œ dSrGrwrxs r'r{z,RevisionMap._revision_map..ór|r&c3ó$K—|] }|jV—Œ dSrGrwrxs r'r{z,RevisionMap._revision_map..ôr~r&) ÚsqlautilÚ OrderedDictÚ OrderedSetÚsetrdÚaddrXrÚwarnÚ branch_labelsÚis_baseÚ _is_real_baseÚcopyÚ_map_branch_labelsrrqÚ_add_depends_onÚvaluesÚ_all_down_revisionsÚ add_nextrevÚ_versioned_down_revisionsÚdiscardÚ_normalize_depends_onÚ_detect_cyclesÚdictÚitemsÚtupler;rmrkrpÚ _add_branches)r4Úmap_r;rmrkrpÚhas_branch_labelsÚ all_revisionsrXÚrev_maprzÚdownrevÚ down_revisionÚ revision_maps r'rgzRevisionMap._revision_map­s6€õ)1Ô(<Ñ(>Ô(>ˆå'Ô2Ñ4Ô4ˆÝ%-Ô%8Ñ%:Ô%:ˆ Ø&(ˆØ,.ˆ å™EœEÐÝ™œˆ àŸšÑ)Ô)ð +ð +ˆHØ × Ò ˜hÑ 'Ô 'Ð 'àÔ  DÐ(Ð(Ý” Ø;¸hÔ>OÑOñôðð'/ˆD�Ô"Ñ #ØÔ%ð 0Ø!×%Ò% hÑ/Ô/Ð/à �IŠI�hÑ Ô Ð Ø �OŠO˜HÑ %Ô %Ð %ØÔð %ؘ(˜Ñ$�ØÔ%ð +Ø ˜{Ñ*� øð—)’)‘+”+ˆØ ×ÒØ �tÕ$4°dÑ;Ô;ñ ô ð ð ×Ò˜]­DÕ1AÀ4Ñ,HÔ,HÑIÔIÐIà—;’;‘=”=ð 3ð 3ˆCØÔ2ð 3ð 3�Ø $Ð&Ð&Ý”I�Ià"˜7˜7 C C Cð)ñôðð!% W¤ � Ø×)Ò)¨#Ñ.Ô.Ð.ؘcÔ;Ð;Ð;Ø—M’M -Ñ0Ô0Ð0Ø×#Ò# MÑ2Ô2Ð2Ð2ð 3ð ×"Ò" =µ$Õ7GÈÑ2NÔ2NÑOÔOÐOØ ×Ò˜G U¨E°;À ÑLÔLÐLå)-¨d¯jªj©l¬lÑ);Ô);ˆ Ø04Ð4ˆ �Tј\¨"Ñ-ÝÐ9Ð9°5Ð9Ñ9Ô9Ñ9Ô9ˆŒ Ý Ð EÐ E¸Ð EÑ EÔ EÑEÔEˆÔÝÐ9Ð9°5Ð9Ñ9Ô9Ñ9Ô9ˆŒ Ý Ð EÐ E¸Ð EÑ EÔ EÑEÔEˆÔà ×ÒÐ,¨lÑ;Ô;Ð;ØÐr&r›Ú_InterimRevisionMapTyper;ú Set[Revision]rkúTuple[Revision, ...]rmrpc óŠ—|sdS|r|stt|¦«¦«‚d„| d„|tt|¦«¬¦«D¦« d„| d„|tt|¦«¬¦«D¦«¦«}t | ¦«¦«|z }|rtt|¦«¦«‚|r|stt|¦«¦«‚d„| d„|tt|¦«¬¦«D¦« d„| d „|tt|¦«¬¦«D¦«¦«}t | ¦«¦«|z }|rtt|¦«¦«‚dS) Ncó—h|] }|j’Œ Srrwrxs r'ú z-RevisionMap._detect_cycles..ó*€ð ð ð àð ŒLð ð ð r&có—|jSrG©r�©Úrs r'úz,RevisionMap._detect_cycles..s €˜!Ô5€r&)r˜c3ó$K—|] }|jV—Œ dSrGrwrxs r'r{z-RevisionMap._detect_cycles.. ó8èè€ð ð àð ŒLð ð ð ð ð ð r&có—|jSrG©Únextrevr¨s r'rªz,RevisionMap._detect_cycles..s€˜!œ)€r&có—h|] }|j’Œ Srrwrxs r'r¤z-RevisionMap._detect_cycles..r¥r&có—|jSrG)rŽr¨s r'rªz,RevisionMap._detect_cycles..s €˜!Ô/€r&c3ó$K—|] }|jV—Œ dSrGrwrxs r'r{z-RevisionMap._detect_cycles..!r¬r&có—|jSrG©Ú _all_nextrevr¨s r'rªz,RevisionMap._detect_cycles..$s€˜!œ.€r&) rIÚlistÚ_iterate_related_revisionsrrqÚ intersectionr„ÚkeysÚsortedrS)r4r›r;rkrmrpÚ total_spaceÚ deleted_revss r'r“zRevisionMap._detect_cyclesùs$€ðð Ø ˆFØð /˜Eð /Ý¥ W¡ ¤ Ñ.Ô.Ð .ð ð à×6Ò6Ø5Ð5ØÝÕ*¨GÑ4Ô4ð7ñôð ñ ô ÷ Š,ð ð à×6Ò6Ø#Ð#ØÝÕ*¨GÑ4Ô4ð7ñôð ñ ô ñ ô ð õ˜7Ÿ<š<™>œ>Ñ*Ô*¨[Ñ8ˆ Ø ð 6Ý¥ |Ñ 4Ô 4Ñ5Ô5Ð 5àð 9 +ð 9Ý)­$¨w©-¬-Ñ8Ô8Ð 8ð ð à×6Ò6Ø/Ð/ØÝÕ*¨GÑ4Ô4ð7ñôð ñ ô ÷ Š,ð ð à×6Ò6Ø(Ð(ØÝÕ*¨GÑ4Ô4ð7ñôð ñ ô ñ ô ð õ˜7Ÿ<š<™>œ>Ñ*Ô*¨[Ñ8ˆ Ø ð @Ý)­&°Ñ*>Ô*>Ñ?Ô?Ð ?ð @ð @r&rKúCollection[Revision]r˜c ó²—|D]S}|jrJ|j€J‚|jD]9}||vr.||}|€J‚td|›d|j›d|j›�¦«‚|||<Œ:ŒTdS)Nz Branch name 'z' in revision z already used by revision )r‡Ú_orig_branch_labelsr"rX)r4rKr˜rXÚ branch_labelÚmap_revs r'r‹zRevisionMap._map_branch_labels-s±€ð"ð 2ð 2ˆHØÔ%ð 2ØÔ3Ð?Ð?Ð?Ø$,Ô$@ð 2ð 2�LØ# tÐ+Ð+Ø"& |Ô"4˜Ø&Ð2Ð2Ð2Ý+˜mð!-    Ø (Ô 1Ð 1Ð 1Ø 'Ô 0Ð 0ð ñôðð*2�D˜Ñ&Ð&øð! 2ð 2r&có€—|D]º}|jr±|j |j¦«| |g|d¬¦«D]!}|j |j¦«Œ"|}|rS|jsL|jsE|j |j¦«|jr||j}nn|r|js|j¯EŒ»dS©NF©Úinclude_dependencies)r‡ÚupdateÚ_get_descendant_nodesÚ_is_real_branch_pointÚis_merge_pointr�)r4rKr˜rXÚnodeÚparents r'r—zRevisionMap._add_branchesBs€ð"ð ð ˆHØÔ%ð ØÔ&×-Ò-¨hÔ.DÑEÔEÐEØ ×6Ò6Ø�J ¸5ð7ñôðFðF�DðÔ&×-Ò-¨hÔ.DÑEÔEÐEÐEà�àð à"Ô8ð ð#Ô1ð ð Ô(×/Ò/°Ô0FÑGÔGÐGØÔ+ðØ!% fÔ&:Ô!;˜˜àðð à"Ô8ð ð#Ô1ð øð ð r&c󶇗|D]T}|jrDˆfd„tj|j¦«D¦«}td„|D¦«¦«|_ŒMd|_ŒUdS)aResolve the 'dependencies' for each revision in a collection in terms of actual revision ids, as opposed to branch labels or other symbolic names. The collection is then assigned to the _resolved_dependencies attribute on each revision object. có •—g|] }‰|‘Œ Srr)ryÚdepr˜s €r'ú z/RevisionMap._add_depends_on..hs*ø€ðððØ"%�D˜”Iðððr&có —g|] }|®|j‘Œ SrGrw©ryÚds r'rÏz/RevisionMap._add_depends_on..ls€Ð?Ð?Ð? A°°�Q”Z°°°r&rN)Ú dependenciesrÚto_tupler–Ú_resolved_dependencies)r4rKr˜rXÚdepss ` r'rŒzRevisionMap._add_depends_onZs“ø€ð"ð 5ð 5ˆHØÔ$ð 5ððððÝ)-¬°xÔ7LÑ)MÔ)Mðñô�õ38Ø?Ð?¨Ð?Ñ?Ô?ñ3ô3�Ô/Ð/ð35�Ô/Ð/ð 5ð 5r&c ó(—|D]Ž}|jr~t|j¦«}| |gdtt|¦«¬¦«D](}||urŒ|jr| |j¦«Œ)t |¦«|_Œ‡d|_Œ�dS)a³Create a collection of "dependencies" that omits dependencies that are already ancestor nodes for each revision in a given collection. This builds upon the _resolved_dependencies collection created in the _add_depends_on() method, looking in the fully populated revision map for ancestors, and omitting them as the _resolved_dependencies collection as it is copied to a new collection. The new collection is then assigned to the _normalized_resolved_dependencies attribute on each revision object. The collection is then used to determine the immediate "down revision" identifiers for this revision. F)rÅr˜rN)rÕr„Ú_get_ancestor_nodesrrqÚdifference_updater–Ú!_normalized_resolved_dependencies)r4rKr˜rXÚnormalized_resolvedrzs r'r’z!RevisionMap._normalize_depends_onqsÙ€ð&"ð @ð @ˆHØÔ.ð @Ý&)¨(Ô*IÑ&JÔ&JÐ#Ø×3Ò3Ø�JØ).ÝÕ.°Ñ5Ô5ð4ñôð ð �Cð ˜h��Ø ØÔ3ðØ+×=Ò=ØÔ6ñôðøõ>CØ'ñ>ô>�Ô:Ð:ð>@�Ô:Ð:ð' @ð @r&FrXrÚ_replaceÚboolcób‡—|j}|s&‰j|vrtjd‰jz¦«n"|r ‰j|vrt d‰jz¦«‚‰|‰j<‰g}| ||¦«| ||¦«| ||¦«‰jr|xj ‰jfz c_ ‰j r|xj ‰jfz c_ ‰j D]I}||vrtjd|›d‰›d�¦«t||¦« ‰¦«ŒJ| ||¦«‰jr.t#ˆfd„|jD¦«¦«‰jfz|_‰jr0t#ˆfd„|jD¦«¦«‰jfz|_dSdS) 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. rszrevision %s not in mapr0rtruc3óz•K—|]5}|t‰j¦« ‰jg¦«v¯1|V—Œ6dSrG)r„rŽÚunionrX©ryÚheadrXs €r'r{z+RevisionMap.add_revision..¿skøèè€ð%ð%àØÝ˜8Ô7Ñ8Ô8×>Ò>ØÔ&Ð'ñôðððððððð%ð%r&c3óz•K—|]5}|t‰j¦« ‰jg¦«v¯1|V—Œ6dSrG)r„r�ràrXrás €r'r{z+RevisionMap.add_revision..Èskøèè€ððàØÝ˜8Ô=Ñ>Ô>×DÒDØÔ&Ð'ñôðððððððððr&N)rgrXrr†Ú Exceptionr—r‹rŒrˆrkr‰rprŽrr�r’Ú _is_real_headr–rmÚis_headr;)r4rXrÜr˜rKrœs ` r'Ú add_revisionzRevisionMap.add_revision™sLø€ðÔ!ˆØð J˜HÔ-°Ð5Ð5Ý ŒIØ7¸(Ô:KÑKñ ô ð ð ðð J˜(Ô+°4Ð7Ð7ÝÐ4°xÔ7HÑHÑIÔIÐ Ià"*ˆˆXÔ Ñà�Jˆ Ø ×Ò˜9 dÑ+Ô+Ð+Ø ×Ò  ¨4Ñ0Ô0Ð0Ø ×Ò˜Y¨Ñ-Ô-Ð-à Ô ð /Ø ˆJŒJ˜8Ô,Ð.Ñ .ˆJŒJØ Ô !ð 5Ø Ð Ô  Ô!2Ð 4Ñ 4Ð Ô àÔ3ð :ð :ˆGؘdÐ"Ð"Ý” � à�w�w   ð*ñôðõ �T˜'”]Ñ #Ô #× /Ò /°Ñ 9Ô 9Ð 9Ð 9à ×"Ò" 9¨dÑ3Ô3Ð3à Ô !ð %Ý$ð%ð%ð%ð%à Ô,ð%ñ%ô%ñ ô ðÔ"Ð$ñ %ˆDÔ ð Ô ð %Ýððððà œJðñôñôðÔ"Ð$ñ%ˆDŒJˆJˆJð %ð %r&NrÀr>có¬—|j}|r| ||¦«}t|¦«dkrt||rd|znd¦«‚|r|dSdS)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@headrârN)r;Úfilter_for_lineageÚlenr:)r4rÀÚ current_headss r'Úget_current_headzRevisionMap.get_current_headÑsƒ€ð((,¤zˆ Ø ð Ø ×3Ò3ؘ|ñôˆMõ ˆ}Ñ Ô  Ò !Ð !ÝØØ,8ÐD� ˜LÑ(Ð(¸fñôð ð ð Ø  Ô#Ð #à�4r&Ú identifierrEcó8—| |j|¦«SrG)rêrk)r4rîs r'Ú_get_base_revisionszRevisionMap._get_base_revisionsõs€Ø×&Ò& t¤z°:Ñ>Ô>Ð>r&Úid_ú+Union[str, Collection[Optional[str]], None]ú%Tuple[Optional[_RevisionOrBase], ...]c󇇇—t|ttttf¦«rt ˆfd„|D¦«d¦«S‰ |¦«\}Št|¦«dkr{ t|d¦«Š‰dkrN‰  d¦«}‰�tˆfd„|D¦«¦«}tˆˆfd„|D¦«¦«Sn#t$rYnwxYwtˆˆfd „|D¦«¦«S) 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. có:•—g|]}‰ |¦«‘ŒSr)Ú get_revisions)ryÚid_elemr4s €r'rÏz-RevisionMap.get_revisions.. s'ø€ÐGÐGÐG¸˜×*Ò*¨7Ñ3Ô3ÐGÐGÐGr&rrérr;Nc3óH•K—|]}‰t|¦«jv¯|V—ŒdSrG)Ú is_revisionr‡)ryrârÀs €r'r{z,RevisionMap.get_revisions..sXøèè€ð1ð1à$(Ø#/Ý#.¨tÑ#4Ô#4Ô#Bð$Cð$Cð!%ð$Cð$Cð$Cð$Cð1ð1r&c3óF•K—|]}‰ |‰¬¦«V—ŒdS))ÚstepsN)Ú_walk)ryrâÚrintr4s €€r'r{z,RevisionMap.get_revisions..sGøèè€ð%ð%à $ð!ŸJšJ t°4˜JÑ8Ô8ð%ð%ð%ð%ð%ð%r&c3óD•K—|]}‰ |‰¦«V—ŒdSrG)Ú_revision_for_ident)ryÚrev_idrÀr4s €€r'r{z,RevisionMap.get_revisions..&sGøèè€ððàð×(Ò(¨°Ñ>Ô>ððððððr&) Ú isinstancer¶r–r„Ú frozensetÚsumÚ_resolve_revision_numberrëÚintröÚ ValueError)r4rñÚ resolved_idÚ select_headsrÀrýs` @@r'rözRevisionMap.get_revisionsøs‹øøø€õ( �c�D¥%­­iÐ8Ñ 9Ô 9ð ÝÐGÐGÐGÐGÀ3ÐGÑGÔGÈÑLÔLÐ Là(,×(EÒ(EØñ)ô)Ñ %ˆK˜õ�;ÑÔ 1Ò$Ð$ðݘ{¨1œ~Ñ.Ô.�Dؘa’x�xà'+×'9Ò'9¸'Ñ'BÔ'B˜ Ø'Ð3Ý+0ð1ð1ð1ð1à,8ð1ñ1ô1ñ,ô,˜Lõ %ð%ð%ð%ð%ð%à(4ð%ñ%ô%ñ ô ðð øõ"ðððà�Dðøøøõðððððà)ðñôñôð sÁ4A(Cà C+Ã*C+úOptional[Revision]có¼—| |¦«\}}t|¦«dkrt||¦«‚|r|dnd}| ||¦«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. rérr)rrër:rÿ)r4rñrrÀÚresolveds r'Ú get_revisionzRevisionMap.get_revision+sg€ð%)×$AÒ$AÀ#Ñ$FÔ$FÑ!ˆ �\Ý ˆ{Ñ Ô ˜aÒ Ð Ý  ¨SÑ1Ô1Ð 1à.esJø€ðððàØðõ˜Q™œ !š˜¨¯ ª °[Ñ(AÔ(A˜ðà#˜˜r&zNo such revision or branch 'ú'éz\; please ensure at least four characters are present for partial revision identifier matchesÚrézMultiple revisions start with 'z': r@c3ó K—|] }d|zV—Œ dS)z'%s'Nr©ryr©s r'r{z2RevisionMap._revision_for_ident..s&èè€Ð-LÐ-L¸Q¨f°q©jÐ-LÐ-LÐ-LÐ-LÐ-LÐ-Lr&rrz...r0z is not a member of branch ') rrgrrêrCrërAÚ_shares_lineagerX)r4rrrrXÚrevss ` r'rÿzRevisionMap._revision_for_identPsø€ð ð Ø×-Ò-¨lÑ;Ô;ˆJˆJàˆJð ØÔ)¨+Ô6ˆHˆHøÝð ð ð àˆHˆHˆHð øøøð �uÐ Ð ØÐ Ð �;ððððàÔ+ðñôˆDð ð CØ×.Ò.¨t°\ÑBÔB�Øð 7Ý%�oð$˜ ˜ õ # ;Ñ/Ô/°!Ò3Ð3ðNðNð"$ð$ð ð ñ ô ð õ�T‘”˜Q’�Ý%�oð#�{�{ D§I¢IÐ-LÐ-LÀ$ÀqÈÀsÄ)Ð-LÑ-LÔ-LÑ$LÔ$LÐ$LÐ$LðNð ñ ôðð Ô-¨d°1¬gÔ6�à ð ˜HÐ0ØÐ)Ð)Ð)ØÐ Ð �;Ø×'Ò'ØÔ! :Ô#6ñôð õ&�oàÔ(Ð(Ð(¨,¨,¨,ð8àñôðð ˆs � +« :¹:Útargetsú#Iterable[Optional[_RevisionOrBase]]úSet[Optional[_RevisionOrBase]]cóø—t|¦«}t|¦«D]Z}|sJ‚| | |gd¬¦«¦« |g¦«r| |¦«Œ[|SrÃ)r„r¶r¸rÇÚ differencer‘)r4r!rzs r'Ú_filter_into_branch_headsz%RevisionMap._filter_into_branch_heads’s†€õ�g‘,”,ˆå˜‘=”=ð %ð %ˆC؈JˆJ�3Ø×#Ò#Ø×*Ò*¨C¨5ÀuÐ*ÑMÔMñôçŠj˜#˜ÑÔð %ð—’ Ñ$Ô$Ð$øØˆr&ú Iterable[_T]Ú check_againstrÅúTuple[_T, ...]cóÒ‡‡‡—‰ |¦«\}}gŠ|r‰ |¦«|r‰ |¦«tˆˆˆfd„|D¦«¦«S)Nc3óL•K—|]}‰ |‰‰¬¦«¯|V—ŒdS)rÄN)r)ryÚtgrÅr4Úsharess €€€r'r{z1RevisionMap.filter_for_lineage..­sZøèè€ð ð àØ×#Ò#Ø�FÐ1Eð$ñôð Ø ð ð ð ð ð ð r&)rÚappendÚextendr–)r4r!r(rÅrñrÀr-s` ` @r'rêzRevisionMap.filter_for_lineageŸsšøøø€ð !×9Ò9¸-ÑHÔHшˆ\àˆØ ð (Ø �MŠM˜,Ñ 'Ô 'Ð 'Ø ð Ø �MŠM˜#Ñ Ô Ð åð ð ð ð ð ð àð ñ ô ñ ô ð r&ÚtargetÚ_RevisionOrStrÚtest_against_revsúSequence[_RevisionOrStr]có ‡—|sdSt|t¦«s#t‰ |¦«¦«}n|}ˆfd„t j|d¬¦«D¦«}t t‰ |g|¬¦«¦«  ‰  |g|¬¦«¦«  |¦«¦«S)NTcóh•—g|].}t|t¦«s‰ |¦«n|‘Œ/Sr)rrrÿ)ryÚtest_against_revr4s €r'rÏz/RevisionMap._shares_lineage..ÂsRø€ð& ð& ð& ð!õÐ.µÑ9Ô9ð "ˆD× $Ò $Ð%5Ñ 6Ô 6Ð 6à!ð& ð& ð& r&r©ÚdefaultrÄ) rrrrÿrrÔrÝr„rÇràrØr¸)r4r0r2rÅÚresolved_targetÚresolved_test_against_revss` r'rzRevisionMap._shares_lineageµs ø€ð !ð Ø�4ݘ&¥(Ñ+Ô+ð %Ý& t×'?Ò'?ÀÑ'GÔ'GÑHÔHˆOˆOà$ˆOð& ð& ð& ð& õ%)¤MØ!¨2ð%ñ%ô%ð & ñ& ô& Ð"õÝ Ø×*Ò*Ø$Ð%Ø)=ð+ñôñ ô ÷ ŠUØ×(Ò(Ø$Ð%Ø)=ð)ñôñô÷ Š\Ð4Ñ 5Ô 5ñ ô ð r&ú%Tuple[Tuple[str, ...], Optional[str]]có0—t|t¦«rd|vr| dd¦«\}}ne|�at|t¦«r|rt|dt¦«rt|ttf¦«st d|›d�¦«‚d}|j|dkr(|r| |j|¦«|fS|j|fS|dkr |  |¦«}|r|f|fSd|fS|d ks|€d|fStj |d¬ ¦«|fS) Nrrérzrevision identifier z= is not a string; ensure database driver settings are correctr;rârr1r7) rrEÚsplitr–r"rgrêr;rmrírrÔ)r4rñrÀÚ current_heads r'rz$RevisionMap._resolve_revision_numberÛsh€õ �c�3Ñ Ô ð  C¨3 J JØ #§ ¢ ¨#¨qÑ 1Ô 1Ñ ˆL˜#˜#à ˆ_Ý ˜�UÑ #Ô #ðØ(+ðÝ4>¸sÀ1¼vÅsÑ4KÔ4Kðå˜c¥C­ <Ñ0Ô0ðõ �-à14°°ð7ñôð ð  ˆLð ÔÐØ �'Š>ˆ>Øð 6à×+Ò+¨D¬J¸ ÑEÔEØ ððð Ô'¨Ð5Ð5Ø �FŠ]ˆ]Ø×0Ò0°Ñ>Ô>ˆLØð (Ø$�¨ Ð4Ð4à˜<Ð'Ð'Ø �FŠ]ˆ]˜c˜kØ�|Ð#Ð #å”= ¨dÐ3Ñ3Ô3°\ÐAÐ Ar&Tr,r+r*Ú implicit_baseÚ inclusiveÚassert_relative_lengthÚselect_for_downgradeúIterator[Revision]c#óÌK—|r|j}n|j}||||||¬¦«\}} | || ¦«D]&} t| | ¦«¦«V—Œ'dS)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. )r@r?rAN)Ú_collect_downgrade_revisionsÚ_collect_upgrade_revisionsÚ_topological_sortrr ) r4r,r*r?r@rArBÚfnrKr;rÊs r'Úiterate_revisionszRevisionMap.iterate_revisionssœèè€ð* ð 1ØÔ2ˆBˆBàÔ0ˆBà˜2Ø Ø ØØ'Ø#9ð  ñ ô ш �5ð×*Ò*¨9°eÑ<Ô<ð 4ð 4ˆDݘ4×,Ò,¨TÑ2Ô2Ñ3Ô3Ð 3Ð 3Ð 3Ð 3ð 4ð 4r&ú%Collection[Optional[_RevisionOrBase]]úOptional[_RevisionMapType]ÚcheckÚomit_immediate_dependenciesú Iterator[Any]cóX‡—|rˆfd„}n |rd„}nd„}| |‰||¬¦«S)Ncó(•—|‰vr|jS|jSrG)rµr¯)rzr!s €r'rHz-RevisionMap._get_descendant_nodes..fn3sø€Ø˜gÐ%Ð%ØÔ+Ð+àœ;Ð&r&có—|jSrGr´©rzs r'rHz-RevisionMap._get_descendant_nodes..fn;s €ØÔ'Ð'r&có—|jSrGr®rRs r'rHz-RevisionMap._get_descendant_nodes..fn@s €Ø”{Ð"r&©r˜rL©r·)r4r!r˜rLrMrÅrHs ` r'rÇz!RevisionMap._get_descendant_nodes(s€ø€ð 'ð #ð 'ð 'ð 'ð 'ð 'ð 'ð "ð #ð (ð (ð (ð (ð  #ð #ð #ð×.Ò.Ø �˜d¨%ð/ñ ô ð r&cóF—|rd„}nd„}| ||||¬¦«S)Ncó—|jSrG©Ú_normalized_down_revisionsrRs r'rHz+RevisionMap._get_ancestor_nodes..fnQs €ØÔ5Ð5r&có—|jSrGr§rRs r'rHz+RevisionMap._get_ancestor_nodes..fnVs €ØÔ4Ð4r&rTrU)r4r!r˜rLrÅrHs r'rØzRevisionMap._get_ancestor_nodesGsW€ð ð 5ð 6ð 6ð 6ð 6ð  5ð 5ð 5ð×.Ò.Ø �˜d¨%ð/ñ ô ð r&rHrc #óÈK—|€|j}t¦«}tj¦«}|D�]1}t |¦«}| |¦«|rt¦«} |r”| ¦«} |r|  | ¦«| |vrŒ2| | ¦«|| ¦«D]=} || } | €J‚| j| krtd¦«‚| | ¦«Œ>| V—|°”|rb|   |¦«  |g¦«} | r7td|j›dd  d„| D¦«¦«›�¦«‚�Œ3dS)Nz(Dependency resolution failed; broken mapzRequested revision z) overlaps with other requested revisions r@c3ó$K—|] }|jV—Œ dSrGrwrs r'r{z9RevisionMap._iterate_related_revisions..‹s$èè€Ð%CÐ%C°Q a¤jÐ%CÐ%CÐ%CÐ%CÐ%CÐ%Cr&) rgr„Ú collectionsÚdequerùr.Úpopr…rXr"r¸r%rA)r4rHr!r˜rLÚseenÚtodoÚ target_forr0Ú per_targetrzrÚnext_revÚoverlapss r'r·z&RevisionMap._iterate_related_revisions]sºèè€ð ˆ<ØÔ%ˆDå‰uŒuˆÝ +Ô 1Ñ 3Ô 3ˆØ!ð$ ñ$ ˆJÝ  Ñ,Ô,ˆFØ �KŠK˜Ñ Ô Ð Øð #Ý ™UœU� àð Ø—h’h‘j”j�Øð(Ø—N’N 3Ñ'Ô'Ð'à˜$�;�;ØØ—’˜‘ ” � à ˜b ™gœgð*ð*�FØ# Fœ|�HØ#Ð/Ð/Ð/ØÔ(¨FÒ2Ð2Ý+ØFñôðð—K’K Ñ)Ô)Ð)Ð)Ø� � � ð#ð ð$ð Ø%×2Ò2°7Ñ;Ô;×FÒFØ�Hñô�ððÝ'˜-ð#œO˜O˜OØ ŸIšIÐ%CÐ%C¸(Ð%CÑ%CÔ%CÑCÔCÐCð ñôðùð;$ ð$ r&rú List[str]c󂇇 ‡ ‡‡—‰jŠˆˆfd„Š d„|D¦«Št‰j¦«}ttˆfd„|D¦«|j¬¦«¦«Š ˆ fd„‰ D¦«}g}d}‰ �rD‰ |}t |¦«D]\}} ||kr || vr|}�nŒ|‰vr*| |¦«‰ |¦«‰|} | €J‚ˆ ˆfd„| jD¦«} | s‰ |=||=t|d z d¦«}n«| j s?t| j ¦«d kr'| d‰ |<||  |¦«ne| d‰ |<‰   | d d…¦«‰ | d¦«||<|  ˆ fd „| d d…D¦«¦«‰ �°D‰rJ‚|S) zïYield revision ids of a collection of Revision objects in topological sorted order (i.e. revisions always come after their down_revisions and dependencies). Uses the order of keys in _revision_map to sort. cóP•—d„‰ ‰|g¦«D¦«S)Ncó—h|] }|j’Œ Srrwrs r'r¤zGRevisionMap._topological_sort..get_ancestors..žs*€ðððàð” ðððr&)rØ)rÚ id_to_revr4s €€r'Ú get_ancestorsz4RevisionMap._topological_sort..get_ancestors�s:ø€ððà×1Ò1°9¸VÔ3DÐ2EÑFÔFðñôð r&có—h|] }|j’Œ SrrwrÑs r'r¤z0RevisionMap._topological_sort..£s€Ð.Ð.Ð.˜q�” Ð.Ð.Ð.r&có0•—h|]}|j‰v¯ |j’ŒSrrw)ryrÒras €r'r¤z0RevisionMap._topological_sort..ªs'ø€ÐAÐAÐA ¨a¬j¸DÐ.@Ð.@�”Ð.@Ð.@Ð.@r&)Úkeycó&•—g|] }‰|¦«‘ŒSrr)ryrrks €r'rÏz1RevisionMap._topological_sort..®s#ø€ÐNÐNÐN°f˜M˜M¨&Ñ1Ô1ÐNÐNÐNr&rNcó$•—g|] }|‰v¯|‰v¯ |‘Œ Srr)ryr©rìras €€r'rÏz1RevisionMap._topological_sort..Ís6ø€ð ð ð àØ˜D�y�y Q¨mÐ%;Ð%;ðà%;Ð%;Ð%;r&réc3ó.•K—|]}‰|¦«V—ŒdSrGr)ryrârks €r'r{z0RevisionMap._topological_sort..ñs>øèè€ð0ð0Ø48˜M˜M¨$Ñ/Ô/ð0ð0ð0ð0ð0ð0r&)rgr¶rºÚindexÚ enumerater.ÚremoverYÚmaxrÚrër�r‘r/)r4rKr;Úinserted_orderÚancestors_by_idxÚoutputÚcurrent_candidate_idxÚ candidateÚcheck_head_indexÚ ancestorsÚ candidate_revÚ heads_to_addrìrkrjras` @@@@r'rGzRevisionMap._topological_sort�sÓøøøøø€ðÔ&ˆ ð ð ð ð ð ð ð /Ð. IÐ.Ñ.Ô.ˆõ˜dÔ0Ñ1Ô1ˆåÝ ØAÐAÐAÐA UÐAÑAÔAØ"Ô(ð ñ ô ñ ô ˆ ð OÐNÐNÐNÀ ÐNÑNÔNÐàˆà !ÐØñ@ à%Ð&;Ô<ˆIå/8Ð9IÑ/JÔ/Jð< ð< Ñ+Ð  )ð%Ð(=Ò=Ð=Ø! YÐ.Ð.à,<Ð)ð‘Eøð Ð$Ð$Ø—M’M )Ñ,Ô,Ð,Ø—K’K  Ñ*Ô*Ð*ð!*¨)Ô 4� Ø$Ð0Ð0Ð0ð ð ð ð ð à*ÔEð ñ ô � ð $ð à%Ð&;Ð<Ø(Ð)>Ð?Ý,/Ð0EÈÑ0IÈ1Ñ,MÔ,MÐ)Ð)ð*ÔKðå  Ô GÑHÔHÈAÒMÐMà?KÈA¼˜ Ð&;Ñ<ð )Ð)>Ô?×GÒGØ%ñôððð@LÈA¼˜ Ð&;Ñ<Ø%×,Ò,¨\¸!¸"¸"Ô-=Ñ>Ô>Ð>ð*˜M¨,°q¬/Ñ:Ô:ð)Ø1ñð)×/Ò/ð0ð0ð0ð0Ø 0) or down (steps < 0) the revision tree. :branch_label is used to select branches only when walking up. If the walk goes past the boundaries of the tree and :no_overwalk is True, None is returned, otherwise the walk terminates early. A RevisionError is raised if there is no unambiguous revision to walk to. rr1có,—g|]}t|¦«‘ŒSr©rùrxs r'rÏz%RevisionMap._walk..s0€ðððàõ  Ñ$Ô$ðððr&Nr)r1rézAmbiguous walk) rrEr ÚrangeÚabsrörkr¯rêr;r�rër") r4rrûrÀr�ÚinitialÚ_Úwalk_upÚchildrenÚrets r'rüzRevisionMap._walkøsk€õ( �e�SÑ !Ô !ð Ø×'Ò'¨Ñ.Ô.ˆGˆGàˆGõ•s˜5‘z”zÑ"Ô"ð! "ð! "ˆAØ�qŠyˆyØ &Ò(Ð(Ð(Ð(ððà#×1Ò1Ø&- o˜œ ˜ ¸7¼?ñ ô ðñô�ð  ð'Ø#×6Ò6°wÀ ÑMÔM�H�Hà&�H�Hð˜fÒ$Ð$Ø!�H�Hà#×1Ò1à"˜?𜠘 à$Ô2ñ ô �Hð $ð-Ø#,˜Øð 6ð*Ð6�d�d¨w�Ø� � � Ý�X‘” Ò"Ð"Ý#Ð$4Ñ5Ô5Ð5ؘq”kˆGˆGàˆr&Úcurrent_revisionsú/Tuple[Optional[str], Optional[_RevisionOrBase]]có—|€dSt|t¦«s Jd¦«‚t |¦«}|�r| ¦«\}}}t |¦«}|dkrQ|€!t d|t|¦«fz¦«‚| ||||¬¦«} | €t d¦«‚|| fS|du} | �r|rŸtj |¦«} |  | |¦«} | sUttt| | ¦«¦«} |  | |¦«}d„|D¦«} t!| ¦«d ksJ‚| d}nutj |¦«}|s!t d|t|¦«fz¦«‚t!t#|¦«¦«d krtjd ¦«|d}|}| |€| |¦«n| |›d |›�¦«||¬ ¦«} | €2| r!t d|t|¦«fz¦«‚t d¦«‚|| fS| d ¦«\}}}|sd}|| |¦«fS) aV Parse downgrade command syntax :target to retrieve the target revision and branch label (if any) given the :current_revisons stamp of the database. Returns a tuple (branch_label, target_revision) where branch_label is a string from the command specifying the branch to consider (or None if no branch given), and target_revision is a Revision object which the command refers to. target_revsions is None if the command refers to 'base'. The target may be specified in absolute form, or relative to :current_revisions. N©NNz(Expected downgrade target in string formrú1Relative revision %s didn't produce %d migrations)r�zWalked too farcó$—g|] }|r|jn|‘ŒSrrwrs r'rÏz7RevisionMap._parse_downgrade_target..xs3€ð+ð+ð+à$%ð/0Ð 6 ¤   °Qð+ð+ð+r&rézadowngrade -1 from multiple heads is ambiguous; this usage will be disallowed in a future release.r©rrûr�)rrEÚ_relative_destinationÚmatchÚgroupsrr"r‡rürrÔrêrrrÚ_get_all_currentrër„r†r Ú rpartition)r4r�r0rAr•rÀÚsymbolÚrelativeÚrel_intrzÚrelative_revisionÚcr_tupleÚ symbol_listÚ all_currentÚsl_all_currentr‰s r'Ú_parse_downgrade_targetz#RevisionMap._parse_downgrade_target7sJ€ð$ ˆ>Ø�:ÝØ •Cñ ô ð 6ð 6à 5ñ 6ô 6ð õ&×+Ò+¨FÑ3Ô3ˆØ ñT )Ø-2¯\ª\©^¬^Ñ *ˆL˜& (ݘ(‘m”mˆGؘ!Š|ˆ|Ø�>å'ð0Ø3;½SÀ¹\¼\Ð2JñKñôðð —j’jØØØ Ø 6ð !ñô�ð �;Ý'Ð(8Ñ9Ô9Ð9Ø# SÐ(Ð(à$*¨d NÐ!Ø$ñ-.à#ð+.Ý#'¤=Ð1BÑ#CÔ#C˜à&*×&=Ò&=Ø$ lñ'ô'˜ ð +ðõ +/Ý #¥H¤ ¨t×/DÒ/DÀXÑ/NÔ/Nñ+ô+˜Kð.2×-DÒ-DØ +¨\ñ.ô.˜Nð+ð+à)7ð+ñ+ô+˜Kõ # ;Ñ/Ô/°1Ò4Ð4Ð4Ð4Ø!,¨Q¤˜˜å,0¬MÐ:KÑ,LÔ,LÐ)Ø0ðÝ"/ð!8à#+­S°©\¬\Ð":ñ!;ñ#ô#ðõ �sÐ#4Ñ5Ô5Ñ6Ô6¸Ò:Ð:Ý œIð!+ñôðð "3°1Ô!5˜ð(.˜ à—j’jà#Ð+ð×+Ò+¨FÑ3Ô3Ð3à×*Ò*°l°l°lÀFÀFÐ+KÑLÔLØ!Ø 6ð !ñô�ð�;Ø(ð>Ý+ð4Ø7?ÅÀWÁÄÐ6NñOñôðõ ,Ð,<Ñ=Ô=Ð=Ø# SÐ(Ð(ð#)×"3Ò"3°CÑ"8Ô"8ш �a˜Øð ؈LؘT×.Ò.¨vÑ6Ô6Ð6Ð6r&cóN—t|t¦«rt |¦«}nd}|s| |¦«St j|¦«}| ¦«\}}}t|¦«} | dk�r0|�€|sd}|} |r‘|  | |¦«|¦«} | sf|  |  | |¦«¦«|¦«} td„| D¦«d„| D¦«z ¦«} | sd} t| ¦«dkrtd¦«‚| | d| ||¬¦«} | €!td |t| ¦«fz¦«‚| fS| | |¦«| ||¬¦«fS|€!td | t| ¦«fz¦«‚| |€| |¦«n| |›d |›�¦«| |¬ ¦«fS) aI Parse upgrade command syntax :target to retrieve the target revision and given the :current_revisons stamp of the database. Returns a tuple of Revision objects which should be iterated/upgraded to. The target may be specified in absolute form, or relative to :current_revisions. NrrGcó—h|] }|j’Œ Srrwrxs r'r¤z4RevisionMap._parse_upgrade_target..Ýs€ÐFÐFÐF¨c˜Sœ\ÐFÐFÐFr&có&—h|]}|jD]}|’ŒŒSrrX)ryrzÚdowns r'r¤z4RevisionMap._parse_upgrade_target..ÞsB€ðððà$'Ø,/Ô,Jððð%)ð!%ððððr&réz1Ambiguous upgrade from multiple current revisions)rrûrÀr�r‘rr“)rrEr”r•rörrÔr–rrêrØr–rër"rür‡r ) r4r�r0rAr•Úcurrent_revisions_tuprÀr™Ú relative_strršÚ start_revsÚactive_on_branchrzs r'Ú_parse_upgrade_targetz!RevisionMap._parse_upgrade_target«sÌ€õ �f�cÑ "Ô "ð Ý)×/Ò/°Ñ7Ô7ˆEˆEàˆEàð .à×%Ò% fÑ-Ô-Ð -õ!%¤ Ð.?Ñ @Ô @Ðà-2¯\ª\©^¬^Ñ*ˆ �f˜lÝ�|Ñ$Ô$ˆØ �aŠ<‰<؉~Ø,ð4Ø,3Ð)à2� Øð1Ø!%×!8Ò!8Ø×*Ò*Ð+@ÑAÔAÀ<ñ"ô"�Jð&ð1ð,0×+BÒ+BØ ×4Ò4Ø $× 2Ò 2Ð3HÑ IÔ Iñôð)ñ ,ô,Ð(õ&+ØFÐFÐ5EÐFÑFÔFððà+;ðñôññ&ô&˜ ð *ð1ð*1˜JÝ�z‘?”? QÒ&Ð&Ý'ØKñôðð—j’jØ$ Qœ-Ø"Ø!-Ø 6ð !ñô�ð �;Ý'ð0Ø3?ÅÀXÁÄÐ2OñPñôðð�v� ð—J’JØ"×/Ò/°Ñ7Ô7Ø&Ø%1Ø$:ð ñôðððˆ~å#ð,Ø/7½¸X¹¼Ð.GñHñôðð — ’ à#Ð+ð×+Ò+¨FÑ3Ô3Ð3à×*Ò*°l°l°lÀFÀFÐ+KÑLÔLØ"Ø 6ð ñôðð r&có—| |||¬¦«\}}|dkrd}|�t|t¦«sJ‚|€$d„|j ¦«D¦«}n*|r|g}n$d„| |j¦«D¦«}|r¦t|¦«dkr“d„| |  |¦«gd¬ ¦«D¦«} d „| d „|D¦«  | ¦«¦«D¦«}t|¦«d krtd ¦«‚| |¦«} t|  |dd¬¦«¦«} t| | d¬ ¦«¦«} |  | ¦«|r;|  |  | |¦«¦«¦«|�| s|| vrt#d|¦«‚| | fS)a Compute the set of current revisions specified by :upper, and the downgrade target specified by :target. Return all dependents of target which are currently active. :inclusive=True includes the target revision in the set ©r�r0rAr1Ncó$—g|] }|®|j­ |‘ŒSrG©r�rxs r'rÏz.1s/€ðððàØ�? sÔ'8Ð'@ðà'@Ð'@Ð'@r&có,—g|]}t|¦«‘ŒSrr…rxs r'rÏz.;s0€ðððàõ˜CÑ Ô ðððr&récó—h|] }|j’Œ Srrwrxs r'r¤z;RevisionMap._collect_downgrade_revisions..Bs*€ðððàð” ðððr&FrÄcó,—g|]}t|¦«‘ŒSrr…rxs r'rÏz.Ks0€ðððàõ˜CÑ Ô ðððr&có—h|] }|j’Œ Srrwrxs r'r¤z;RevisionMap._collect_downgrade_revisions..Ns€Ð3Ð3Ð3 c�S”\Ð3Ð3Ð3r&rz/Not a valid downgrade target from current headsT)rÅrMzNothing to drop)r¡rrrgr�rör¯rërØrr¸r"r„rÇÚintersection_updaterÆr%r)) r4r,r0r@r?rArÀÚtarget_revisionÚrootsr|r;Údowngrade_revisionsÚactive_revisionss r'rEz(RevisionMap._collect_downgrade_revisionss¨€ð )-×(DÒ(DØ#ØØ#9ð)Eñ) ô) Ñ%ˆ �oð ˜fÒ $Ð $Ø"ˆOØÐ&­*°_ÅhÑ*OÔ*OÐ&Ð&ÐOð Ð "ððàÔ-×4Ò4Ñ6Ô6ðñôˆEˆEð ð à$Ð%ˆEˆEððà×-Ò-¨oÔ.EÑFÔFðñôˆEð ð �C ™JœJ¨šN˜Nððà×3Ò3Ø×)Ò)¨,Ñ7Ô7Ð8Ø).ð4ñôðñôˆIððà×-Ò-Ø3Ð3¨UÐ3Ñ3Ô3×@Ò@ÀÑKÔKñôðñôˆEõ�5‰zŒz˜QŠˆÝ#ØEñôðð×"Ò" 5Ñ)Ô)ˆõ"Ø × &Ò &ØØ%)Ø,1ð 'ñ ô ñ ô ÐõØ × $Ò $ UÀÐ $Ñ FÔ Fñ ô Ðð ×/Ò/Ð0@ÑAÔAÐAà ð à × &Ò &Ø ×+Ò+¨D×,DÒ,DÀUÑ,KÔ,KÑLÔLñ ô ð ð Ð 'Ø'ð (à uÐ,Ð,õ(Ð(9¸5ÑAÔAÐ Aà" EÐ)Ð)r&ú6Tuple[Set[Revision], Tuple[Optional[_RevisionOrBase]]]c󿇇—d„| |||¬¦«D¦«}t|t¦«rˆd|vr„| d¦«\Š}}| ‰¦«}|�F|j‰kr;t |j¦«dksJ‚tt|j¦«¦«Šˆfd„|D¦«}t|  |dd¬¦«¦«  |¦«Š|  |¦«} |s+tˆfd „| D¦«¦«rt||¦«‚t!| ¦«t"us Jd ¦«‚| rH| d €@| |||¬¦«\}} | sJ‚| d krt#¦«} d}n | f} | j}t|  | dd¬¦«¦«  | ¦«} ‰ | ¦«} |r2|  d „|  |¦«D¦«¦«| r9|s7| d„| D¦«dd¬¦«} |  | ¦«| t#|¦«fS)aè Compute the set of required revisions specified by :upper, and the current set of active revisions specified by :lower. Find the difference between the two to compute the required upgrades. :inclusive=True includes the current/lower revisions in the set :implicit_base=False only returns revisions which are downstream of the current/lower revisions. Dependencies from branches with different bases will not be included. có,—g|]}t|¦«‘ŒSrr…rxs r'rÏz:RevisionMap._collect_upgrade_revisions..Žs0€ð) ð) ð) àõ ˜Ñ Ô ð) ð) ð) r&r¬rNrécó&•—h|] }‰|jv¯ |’ŒSr)r‡)ryÚneedÚbranchs €r'r¤z9RevisionMap._collect_upgrade_revisions..¢s-ø€ðððبF°dÔ6HÐ,HÐ,H�Ð,HÐ,HÐ,Hr&T)rLrÅc3ó$•K—|] }|®|‰vV—Œ dSrGr)ryrzÚrequired_node_sets €r'r{z9RevisionMap._collect_upgrade_revisions..­s7øèè€ð% ð% àØˆð Ð(Ð (àˆˆˆð% ð% r&z#current_revisions should be a tuplerr1c3ó4K—|]}t|¦«V—ŒdSrGr…rxs r'r{z9RevisionMap._collect_upgrade_revisions..Ñs*èè€ÐOÐO¨c� SÑ)Ô)ÐOÐOÐOÐOÐOÐOr&có,—g|]}t|¦«‘ŒSrr…rxs r'rÏz:RevisionMap._collect_upgrade_revisions..Øs €Ð?Ð?Ð? c•˜SÑ!Ô!Ð?Ð?Ð?r&F)rªrrEÚ partitionr rXrër‡ÚnextÚiterr„rØràröÚanyr)Útyper–r¡r%rÆrÇr³)r4r,r*r@r?rAr!r‰rr�rzÚcurrent_node_setÚneedsÚlower_descendentsr½r¿s @@r'rFz&RevisionMap._collect_upgrade_revisions{s.øø€ð&) ð) à×1Ò1Ø"'ØØ'=ð2ñôð) ñ) ô) ˆõ �e�SÑ !Ô !ð  c¨U l lØ Ÿ?š?¨3Ñ/Ô/‰LˆF�A�qØ×*Ò*¨6Ñ2Ô2ˆJØÐ%¨*Ô*=ÀÒ*GÐ*Gå˜:Ô3Ñ4Ô4¸Ò9Ð9Ð9Ð9Ý�d :Ô#;Ñ<Ô<Ñ=Ô=�ððððØ!(ðñôˆGõ Ø × $Ò $ؘt¸$ð %ñ ô ñ ô ÷ Š%�‰.Œ.ð ð !×.Ò.¨uÑ5Ô5ÐØð 6¥ð% ð% ð% ð% à(ð% ñ% ô% ñ" ô" ð 6õ (¨¨uÑ5Ô5Ð 5å Ð"Ñ #Ô #¥uÐ ,Ð ,Ð ,Ø 0ñ -Ô ,Ð ,ð ð %Ð!2°1Ô!5Ð!=Ø×1Ò1Ø"'ØØ'=ð2ñô‰FˆAˆsð ˆJˆJ�3Ø�fŠ}ˆ}Ý$)¡G¤GÐ!Ø��à%( FÐ!Øœ �åØ × $Ò $Ø!¨ÀDð %ñ ô ñ ô ÷ Š%Ð!Ñ "Ô "ð ð "×,Ò,Ð-=Ñ>Ô>ˆð ð PØ �LŠLÐOÐO°T×5GÒ5GÈÑ5NÔ5NÐOÑOÔOÑ OÔ OÐ Oð ð 9 ]ð 9Ø $× :Ò :Ø?Ð?Ð->Ð?Ñ?Ô?ØØ%*ð!;ñ!ô!Ð ð × %Ò %Ð&7Ñ 8Ô 8Ð 8à•e˜G‘n”nÐ$Ð$r&cóÞ—t| |¦«¦«}| | t |¦«d¬¦«¦«| |¦«S)NTrÄ)r„rörÆrØr¶r&)r4rñÚtop_revss r'r—zRevisionMap._get_all_currentàsg€õ�t×)Ò)¨#Ñ.Ô.Ñ/Ô/ˆØ�ŠØ × $Ò $¥T¨(¡^¤^È$Ð $Ñ OÔ Oñ ô ð ð×-Ò-¨hÑ7Ô7Ð7r&)rarbr-r.©r-re)r-rq) r›rŸr;r rkr¡rmr rpr¡r-r.)rKr½r˜rqr-r.)F)rXrrÜrÝr-r.rG)rÀr>r-r>)rîrEr-re)rñròr-ró)rñr>r-r )rÀrEr-r )rrrr>r-r )r!r"r-r#)r!r'r(r>rÅrÝr-r))r0r1r2r3rÅrÝr-rÝ)rñr>r-r;)FFTF)r,r+r*r+r?rÝr@rÝrArÝrBrÝr-rC)NFFT) r!rJr˜rKrLrÝrMrÝrÅrÝr-rN)NFT) r!rJr˜rKrLrÝrÅrÝr-rC) rHrr!rJr˜rKrLrÝr-rC)rKr½r;rr-rf)NT) rr€rûrrÀr>r�rÝr-r‚)r�r+r0r+rArÝr-rŽ)r�r+r0r+rArÝr-ró) r,r+r0r+r@rÝr?rÝrArÝr-r) r,r+r*r+r@rÝr?rÝrArÝr-r¸)rñrer-r#)'r#r$r%Ú__doc__r3rÚmemoized_propertyr;rkrmrprgr“r‹r—rŒr’rçrírðrör rrÿr&rêrrrIrÇrØr·rGrür¡rªrErFr—rr&r'r`r`ls»€€€€€ððð$ð$ð$ð$ð Ôð ð ð ñÔð ð Ôð ð ð ñÔð ð Ôð ð ð ñÔð ð Ôð ð ð ñÔð ð ÔðIðIðIñÔðIðV2@ð2@ð2@ð2@ðh2ð2ð2ð2ð*ðððð05ð5ð5ð5ð.&@ð&@ð&@ð&@ðP6%ð6%ð6%ð6%ð6%ðr-1ð"ð"ð"ð"ð"ðH?ð?ð?ð?ð1ð1ð1ð1ðf@ð@ð@ð@ð*ðððð&'+ð@ð@ð@ð@ð@ðD ð ð ð ð"&+ð  ð ð ð ð ð4&+ð $ ð$ ð$ ð$ ð$ ðL&Bð&Bð&Bð&BðX$ØØ'+Ø%*ð#4ð#4ð#4ð#4ð#4ðP,0ØØ,1Ø%)ð  ð ð ð ð ðD,0ØØ%)ð  ð ð ð ð ð6ð 0ð0ð0ð0ð0ðdgðgðgðgðZ'+Ø ð =ð=ð=ð=ð=ð~r7ðr7ðr7ðr7ðhgðgðgðgðRe*ðe*ðe*ðe*ðNc%ðc%ðc%ðc%ðJ8ð8ð8ð8ð8ð8r&r`cóÌ—eZdZUdZe¦«Zded< e¦«Zded<dZded< dZ ded < dZ ded < dZ d ed < d ed<d ed<e d"d„¦«Z d#d$d„Zd%d„Zd&d„Zed'd„¦«Zed'd„¦«Zed'd„¦«Zed(d„¦«Zed(d„¦«Zed(d„¦«Zed(d„¦«Zed(d„¦«Zed(d „¦«Zed(d!„¦«ZdS))raoBase 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. zFrozenSet[str]r¯rµNrErXzOptional[_RevIdType]r�rÓzSet[str]r‡rerÕrÚr-r.cóÄ—t|¦« t¦«}|r6tdd t |¦«¦«›d|›d�¦«‚dS)NzCharacter(s) 'r@z&' not allowed in revision identifier 'r)r„r¸Ú_revision_illegal_charsr"rArº)ÚclsrXÚ illegal_charss r'Ú verify_rev_idzRevision.verify_rev_idsj€å˜H™ œ ×2Ò2Õ3JÑKÔKˆ Ø ð Ý�-à—9’9�V MÑ2Ô2Ñ3Ô3Ð3Ð3°X°X°Xð?ñôð ð ð r&ú%Optional[Union[str, Tuple[str, ...]]]có’—|r%|tj|¦«vrt|¦«‚|�%|tj|¦«vrt|¦«‚| |¦«||_t |¦«|_t |¦«|_tj|d¬¦«|_ t|j ¦«|_ dS©Nrr7) rrÔrWr]rÔrXÚtuple_rev_as_scalarr�rÓr¿r„r‡)r4rXr�rÓr‡s r'r3zRevision.__init__ sÌ€ð ð 3˜X­¬°}Ñ)EÔ)EÐEÐEݘxÑ(Ô(Ð (Ø Ð %¨(µd´mØ ñ7 ô7 ð+ ð+ õ)¨Ñ2Ô2Ð 2à ×Ò˜8Ñ$Ô$Ð$Ø ˆŒ Ý0°Ñ?Ô?ˆÔÝ/° Ñ=Ô=ˆÔÝ#'¤=°ÈÐ#KÑ#KÔ#KˆÔ Ý  Ô!9Ñ:Ô:ˆÔÐÐr&có,—t|j¦«t|j¦«g}|jr| d|j›�¦«|jr| d|j›�¦«|jj›dd |¦«›d�S)Nz dependencies=zbranch_labels=ú(r@rM) ÚreprrXr�rÓr.r‡r5r#rA)r4Úargss r'Ú__repr__zRevision.__repr__5s—€Ý�T”]Ñ#Ô#¥T¨$Ô*<Ñ%=Ô%=Ð>ˆØ Ô ð BØ �KŠKˆK¨TÔ->Ð->Ð@Ñ AÔ AÐ AØ Ô ð DØ �KŠKˆK¨dÔ.@Ð.@ÐBÑ CÔ CÐ CØœ>Ô2Ð2Ð2°D·I²I¸d±O´O°O°OÐDÐDr&cóº—|j |jg¦«|_|j|jvr'|j |jg¦«|_dSdSrG)rµràrXr�r¯)r4rXs r'r�zRevision.add_nextrev=sZ€Ø Ô-×3Ò3°XÔ5FÐ4GÑHÔHˆÔØ Œ=˜HÔ>Ð >Ð >Øœ<×-Ò-¨xÔ/@Ð.AÑBÔBˆDŒLˆLˆLð ?Ð >r&cól—tjtj|jd¬¦«|jz¦«Sr×)rÚ dedupe_tuplerÔr�rÕrhs r'rŽzRevision._all_down_revisionsBs7€åÔ Ý ŒM˜$Ô,°bÐ 9Ñ 9Ô 9ØÔ)ñ *ñ ô ð r&cól—tjtj|jd¬¦«|jz¦«S)z|return immediate down revisions for a rev, omitting dependencies that are still dependencies of ancestors. rr7)rràrÔr�rÚrhs r'rYz#Revision._normalized_down_revisionsIs9€õ Ô Ý ŒM˜$Ô,°bÐ 9Ñ 9Ô 9ØÔ4ñ 5ñ ô ð r&có8—tj|jd¬¦«Sr×)rrÔr�rhs r'r�z"Revision._versioned_down_revisionsTs€åŒ}˜TÔ/¸Ð<Ñ<Ô<Ðrýs–ðØ"Ð"Ð"Ð"Ð"Ð"àÐÐÐØ € € € ØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØ Ð Ð Ð Ð Ð ØÐÐÐÐÐØÐÐÐÐÐà'Ð'Ð'Ð'Ð'Ð'àÐÐÐÐÐØÐÐÐÐÐàðØÐÐÐÐÐà �3˜ œ Ð%Ô &€ Ø  U¨3°¨8¤_°dÐ :Ô;ÐØ�z 3�Ô'€ØÐ5Ô6€Ø˜s J˜Ô/ÐØ˜˜d C¨¨r¬Ð2Ô3°X¸jÔ5IÐIÔJÐØ €WˆT˜˜s J˜Ô/Ð0Ñ0Ô0€à"˜œ Ð#DÑEÔEÐØ)˜/˜/Ðð ð ð ð ð �Iñ ô ð ð  ð  ð  ð  ð  ˜Mñ  ô  ð  ð ð ð ð ð �Mñ ô ð ð!ð!ð!ð!ð!�mñ!ô!ð!ð  ð ð ð ð �Mñ ô ð ð$ð$ð$ð$ð$˜mñ$ô$ð$ð%ð%ð%ð%ð%�=ñ%ô%ð%ð#ð#ð#ð#ð#Ð4°lñ#ô#ð#ð|8ð|8ð|8ð|8ð|8ñ|8ô|8ð|8ð~+d7ðd7ðd7ðd7ðd7ñd7ôd7ðd7ðN ðððñ „ðð  ðððñ „ðð ððððððððr&