Current File : //lib64/python3.6/__pycache__/_collections_abc.cpython-36.pyc
3


 \g�@srdZddlmZmZddlZdddddd	d
ddd
dddddddddddddddgZdZeed��Z	eee
���Zeeij���Z
eeij���Zeeij���Zeeg��Zeeeg���Zeeed���Zeeedd >���Zeee���Zeed!��Zeef��Zeee���Zeij��Zeij��Zeij��Z eej!�Z"ed"d#���Z#d$d%�Z$e$�Z$ee$�Z%e$j&�[$d&d'�Z'e'�Z'ee'�Z(['d(d)�Z)Gd*d	�d	ed+�Z*Gd,d�ded+�Z+Gd-d�de+�Z,e,j-e%�Gd.d�ded+�Z.Gd/d�de.�Z/Gd0d�de/�Z0e0j-e(�Gd1d
�d
ed+�Z1Gd2d�de1�Z2e2j-e	�e2j-e�e2j-e
�e2j-e�e2j-e�e2j-e�e2j-e�e2j-e�e2j-e�e2j-e�e2j-e�e2j-e�e2j-e�Gd3d
�d
e1�Z3Gd4d�de2�Z4e4j-e#�Gd5d�ded+�Z5Gd6d�ded+�Z6Gd7d�de5e1e6�Z7Gd8d�ded+�Z8Gd9d�de7�Z9e9j-e:�Gd:d�de9�Z;e;j-e�Gd;d�de7�Z<e<j-e"�Gd<d�de5�Z=Gd=d�de=e9�Z>e>j-e�Gd>d�de=e9�Z?e?j-e �Gd?d�de=�Z@e@j-e�Gd@d�de<�ZAeAj-eB�GdAd�de3e7�ZCeCj-eD�eCj-eE�eCj-e�eCj-eF�GdBd�deC�ZGeGj-eH�eGj-e
�GdCd�deC�ZIeIj-eJ�eIj-e
�dS)DzjAbstract Base Classes (ABCs) for collections, according to PEP 3119.

Unit tests are in test_collections.
�)�ABCMeta�abstractmethodN�	Awaitable�	Coroutine�
AsyncIterable�
AsyncIterator�AsyncGenerator�Hashable�Iterable�Iterator�	Generator�
Reversible�Sized�	Container�Callable�
Collection�Set�
MutableSet�Mapping�MutableMapping�MappingView�KeysView�	ItemsView�
ValuesView�Sequence�MutableSequence�
ByteStringzcollections.abc��i��ccsdVS)N�r r r �(/usr/lib64/python3.6/_collections_abc.py�<lambda>8sr"c�sdS)Nr r r r r!�_coro:sr#cCs
dVdS)Nr r r r r!�_ag@sr$cGsH|j}x<|D]4}x.|D]"}||jkr|j|dkr6tSPqWtSqWdS)NT)�__mro__�__dict__�NotImplemented)�C�methods�mro�method�Br r r!�_check_methodsHs


r-c@s(eZdZfZedd��Zedd��ZdS)r	cCsdS)Nrr )�selfr r r!�__hash__XszHashable.__hash__cCs|tkrt|d�StS)Nr/)r	r-r')�clsr(r r r!�__subclasshook__\s
zHashable.__subclasshook__N)�__name__�
__module__�__qualname__�	__slots__rr/�classmethodr1r r r r!r	Ts)�	metaclassc@s(eZdZfZedd��Zedd��ZdS)rccs
dVdS)Nr )r.r r r!�	__await__gszAwaitable.__await__cCs|tkrt|d�StS)Nr8)rr-r')r0r(r r r!r1ks
zAwaitable.__subclasshook__N)r2r3r4r5rr8r6r1r r r r!rcsc@s>eZdZfZedd��Zed
dd��Zdd�Zedd	��Z	dS)rcCst�dS)zcSend a value into the coroutine.
        Return next yielded value or raise StopIteration.
        N)�
StopIteration)r.�valuer r r!�sendvszCoroutine.sendNcCs4|dkr|dkr|�|�}|dk	r,|j|�}|�dS)zgRaise an exception in the coroutine.
        Return next yielded value or raise StopIteration.
        N)�with_traceback)r.�typ�val�tbr r r!�throw}s
zCoroutine.throwcCs4y|jt�Wnttfk
r&Yn
Xtd��dS)z.Raise GeneratorExit inside coroutine.
        zcoroutine ignored GeneratorExitN)r@�
GeneratorExitr9�RuntimeError)r.r r r!�close�s
zCoroutine.closecCs|tkrt|dddd�StS)Nr8r;r@rC)rr-r')r0r(r r r!r1�szCoroutine.__subclasshook__)NN)
r2r3r4r5rr;r@rCr6r1r r r r!rrs
c@s(eZdZfZedd��Zedd��ZdS)rcCst�S)N)r)r.r r r!�	__aiter__�szAsyncIterable.__aiter__cCs|tkrt|d�StS)NrD)rr-r')r0r(r r r!r1�s
zAsyncIterable.__subclasshook__N)r2r3r4r5rrDr6r1r r r r!r�sc@s0eZdZfZedd��Zdd�Zedd��ZdS)rc�st�dS)z@Return the next item or raise StopAsyncIteration when exhausted.N)�StopAsyncIteration)r.r r r!�	__anext__�szAsyncIterator.__anext__cCs|S)Nr )r.r r r!rD�szAsyncIterator.__aiter__cCs|tkrt|dd�StS)NrFrD)rr-r')r0r(r r r!r1�szAsyncIterator.__subclasshook__N)	r2r3r4r5rrFrDr6r1r r r r!r�sc@sFeZdZfZdd�Zedd��Zeddd��Zdd	�Ze	d
d��Z
dS)
rc�s|jd�IdHS)zpReturn the next item from the asynchronous generator.
        When exhausted, raise StopAsyncIteration.
        N)�asend)r.r r r!rF�szAsyncGenerator.__anext__c�st�dS)zuSend a value into the asynchronous generator.
        Return next yielded value or raise StopAsyncIteration.
        N)rE)r.r:r r r!rG�szAsyncGenerator.asendNc�s4|dkr|dkr|�|�}|dk	r,|j|�}|�dS)zyRaise an exception in the asynchronous generator.
        Return next yielded value or raise StopAsyncIteration.
        N)r<)r.r=r>r?r r r!�athrow�s
zAsyncGenerator.athrowc�s:y|jt�IdHWnttfk
r,Yn
Xtd��dS)z.Raise GeneratorExit inside coroutine.
        Nz,asynchronous generator ignored GeneratorExit)rHrArErB)r.r r r!�aclose�s
zAsyncGenerator.aclosecCs|tkrt|ddddd�StS)NrDrFrGrHrI)rr-r')r0r(r r r!r1�s
zAsyncGenerator.__subclasshook__)NN)r2r3r4r5rFrrGrHrIr6r1r r r r!r�s
c@s(eZdZfZedd��Zedd��ZdS)r
ccsdS)Nr )r.r r r!�__iter__�szIterable.__iter__cCs|tkrt|d�StS)NrJ)r
r-r')r0r(r r r!r1�s
zIterable.__subclasshook__N)r2r3r4r5rrJr6r1r r r r!r
�sc@s0eZdZfZedd��Zdd�Zedd��ZdS)rcCst�dS)zKReturn the next item from the iterator. When exhausted, raise StopIterationN)r9)r.r r r!�__next__szIterator.__next__cCs|S)Nr )r.r r r!rJszIterator.__iter__cCs|tkrt|dd�StS)NrJrK)rr-r')r0r(r r r!r1szIterator.__subclasshook__N)	r2r3r4r5rrKrJr6r1r r r r!rsc@s(eZdZfZedd��Zedd��ZdS)r
ccsdS)Nr )r.r r r!�__reversed__)szReversible.__reversed__cCs|tkrt|dd�StS)NrLrJ)r
r-r')r0r(r r r!r1.szReversible.__subclasshook__N)r2r3r4r5rrLr6r1r r r r!r
%sc@sFeZdZfZdd�Zedd��Zeddd��Zdd	�Ze	d
d��Z
dS)
rcCs
|jd�S)z^Return the next item from the generator.
        When exhausted, raise StopIteration.
        N)r;)r.r r r!rK9szGenerator.__next__cCst�dS)zcSend a value into the generator.
        Return next yielded value or raise StopIteration.
        N)r9)r.r:r r r!r;?szGenerator.sendNcCs4|dkr|dkr|�|�}|dk	r,|j|�}|�dS)zgRaise an exception in the generator.
        Return next yielded value or raise StopIteration.
        N)r<)r.r=r>r?r r r!r@Fs
zGenerator.throwcCs4y|jt�Wnttfk
r&Yn
Xtd��dS)z.Raise GeneratorExit inside generator.
        zgenerator ignored GeneratorExitN)r@rAr9rB)r.r r r!rCSs
zGenerator.closecCs|tkrt|ddddd�StS)NrJrKr;r@rC)rr-r')r0r(r r r!r1]s
zGenerator.__subclasshook__)NN)r2r3r4r5rKrr;r@rCr6r1r r r r!r5s
c@s(eZdZfZedd��Zedd��ZdS)rcCsdS)Nrr )r.r r r!�__len__ksz
Sized.__len__cCs|tkrt|d�StS)NrM)rr-r')r0r(r r r!r1os
zSized.__subclasshook__N)r2r3r4r5rrMr6r1r r r r!rgsc@s(eZdZfZedd��Zedd��ZdS)rcCsdS)NFr )r.�xr r r!�__contains__zszContainer.__contains__cCs|tkrt|d�StS)NrO)rr-r')r0r(r r r!r1~s
zContainer.__subclasshook__N)r2r3r4r5rrOr6r1r r r r!rvsc@seZdZfZedd��ZdS)rcCs|tkrt|ddd�StS)NrMrJrO)rr-r')r0r(r r r!r1�szCollection.__subclasshook__N)r2r3r4r5r6r1r r r r!r�sc@s(eZdZfZedd��Zedd��ZdS)rcOsdS)NFr )r.�args�kwdsr r r!�__call__�szCallable.__call__cCs|tkrt|d�StS)NrR)rr-r')r0r(r r r!r1�s
zCallable.__subclasshook__N)r2r3r4r5rrRr6r1r r r r!r�sc@s�eZdZdZfZdd�Zdd�Zdd�Zdd	�Zd
d�Z	e
dd
��Zdd�ZeZ
dd�Zdd�ZeZdd�Zdd�Zdd�ZeZdd�ZdS)raZA set is a finite, iterable container.

    This class provides concrete generic implementations of all
    methods except for __contains__, __iter__ and __len__.

    To override the comparisons (presumably for speed, as the
    semantics are fixed), redefine __le__ and __ge__,
    then the other operations will automatically follow suit.
    cCs@t|t�stSt|�t|�kr"dSx|D]}||kr(dSq(WdS)NFT)�
isinstancerr'�len)r.�other�elemr r r!�__le__�s

z
Set.__le__cCs(t|t�stSt|�t|�ko&|j|�S)N)rSrr'rTrW)r.rUr r r!�__lt__�s
z
Set.__lt__cCs(t|t�stSt|�t|�ko&|j|�S)N)rSrr'rT�__ge__)r.rUr r r!�__gt__�s
z
Set.__gt__cCs@t|t�stSt|�t|�kr"dSx|D]}||kr(dSq(WdS)NFT)rSrr'rT)r.rUrVr r r!rY�s

z
Set.__ge__cCs(t|t�stSt|�t|�ko&|j|�S)N)rSrr'rTrW)r.rUr r r!�__eq__�s
z
Set.__eq__cCs||�S)z�Construct an instance of the class from any iterable input.

        Must override this method if the class constructor signature
        does not accept an iterable for an input.
        r )r0�itr r r!�_from_iterable�szSet._from_iterablecs&t|t�stS�j�fdd�|D��S)Nc3s|]}|�kr|VqdS)Nr )�.0r:)r.r r!�	<genexpr>�szSet.__and__.<locals>.<genexpr>)rSr
r'r])r.rUr )r.r!�__and__�s
zSet.__and__cCsx|D]}||krdSqWdS)z1Return True if two sets have a null intersection.FTr )r.rUr:r r r!�
isdisjoint�s
zSet.isdisjointcCs*t|t�stSdd�||fD�}|j|�S)Ncss|]}|D]
}|Vq
qdS)Nr )r^�s�er r r!r_�szSet.__or__.<locals>.<genexpr>)rSr
r'r])r.rU�chainr r r!�__or__�s
z
Set.__or__cs:t�t�s"t�t�stS|j���|j�fdd�|D��S)Nc3s|]}|�kr|VqdS)Nr )r^r:)rUr r!r_�szSet.__sub__.<locals>.<genexpr>)rSrr
r'r])r.rUr )rUr!�__sub__�s



zSet.__sub__cs:t|t�s"t|t�stS�j|�}�j�fdd�|D��S)Nc3s|]}|�kr|VqdS)Nr )r^r:)r.r r!r_�szSet.__rsub__.<locals>.<genexpr>)rSrr
r'r])r.rUr )r.r!�__rsub__�s



zSet.__rsub__cCs2t|t�s"t|t�stS|j|�}||||BS)N)rSrr
r'r])r.rUr r r!�__xor__s



zSet.__xor__cCs�tj}d|d}t|�}d|d}||M}x4|D],}t|�}|||d>AdAdN}||M}q4W|dd}||M}||kr�||d8}|d
kr�d	}|S)a+Compute the hash value of a set.

        Note that we don't define __hash__: not all sets are hashable.
        But if you define a hashable set type, its __hash__ should
        call this function.

        This must be compatible __eq__.

        All sets ought to compare equal if they contain the same
        elements, regardless of how they are implemented, and
        regardless of the order of the elements; so there's not much
        freedom for __eq__ or __hash__.  We match the algorithm used
        by the built-in frozenset type.
        �riM��r�i�M[l�4~2i�
i��6i��8#���)�sys�maxsizerT�hash)r.�MAX�MASK�n�hrN�hxr r r!�_hash	s 
z	Set._hashN)r2r3r4�__doc__r5rWrXrZrYr[r6r]r`�__rand__rare�__ror__rfrgrh�__rxor__rtr r r r!r�s$


	c@sdeZdZdZfZedd��Zedd��Zdd�Zdd	�Z	d
d�Z
dd
�Zdd�Zdd�Z
dd�ZdS)ra�A mutable set is a finite, iterable container.

    This class provides concrete generic implementations of all
    methods except for __contains__, __iter__, __len__,
    add(), and discard().

    To override the comparisons (presumably for speed, as the
    semantics are fixed), all you have to do is redefine __le__ and
    then the other operations will automatically follow suit.
    cCst�dS)zAdd an element.N)�NotImplementedError)r.r:r r r!�add:szMutableSet.addcCst�dS)z8Remove an element.  Do not raise an exception if absent.N)ry)r.r:r r r!�discard?szMutableSet.discardcCs||krt|��|j|�dS)z5Remove an element. If not a member, raise a KeyError.N)�KeyErrorr{)r.r:r r r!�removeDszMutableSet.removecCs<t|�}yt|�}Wntk
r,t�YnX|j|�|S)z2Return the popped value.  Raise KeyError if empty.)�iter�nextr9r|r{)r.r\r:r r r!�popJs

zMutableSet.popcCs,yx|j�qWWntk
r&YnXdS)z6This is slow (creates N new iterators!) but effective.N)r�r|)r.r r r!�clearTs
zMutableSet.clearcCsx|D]}|j|�qW|S)N)rz)r.r\r:r r r!�__ior__\s
zMutableSet.__ior__cCs x||D]}|j|�q
W|S)N)r{)r.r\r:r r r!�__iand__aszMutableSet.__iand__cCsV||kr|j�n@t|t�s&|j|�}x*|D]"}||krD|j|�q,|j|�q,W|S)N)r�rSrr]r{rz)r.r\r:r r r!�__ixor__fs



zMutableSet.__ixor__cCs.||kr|j�nx|D]}|j|�qW|S)N)r�r{)r.r\r:r r r!�__isub__ss


zMutableSet.__isub__N)r2r3r4rur5rrzr{r}r�r�r�r�r�r�r r r r!r,s


c@sReZdZfZedd��Zddd�Zdd�Zdd	�Zd
d�Z	dd
�Z
dd�ZdZdS)rcCst�dS)N)r|)r.�keyr r r!�__getitem__�szMapping.__getitem__NcCs"y||Stk
r|SXdS)z<D.get(k[,d]) -> D[k] if k in D, else d.  d defaults to None.N)r|)r.r��defaultr r r!�get�szMapping.getcCs*y||Wntk
r dSXdSdS)NFT)r|)r.r�r r r!rO�s
zMapping.__contains__cCst|�S)z:D.keys() -> a set-like object providing a view on D's keys)r)r.r r r!�keys�szMapping.keyscCst|�S)z<D.items() -> a set-like object providing a view on D's items)r)r.r r r!�items�sz
Mapping.itemscCst|�S)z6D.values() -> an object providing a view on D's values)r)r.r r r!�values�szMapping.valuescCs&t|t�stSt|j��t|j��kS)N)rSrr'�dictr�)r.rUr r r!r[�s
zMapping.__eq__)N)
r2r3r4r5rr�r�rOr�r�r�r[rLr r r r!r�s

c@s(eZdZd	Zdd�Zdd�Zdd�ZdS)
r�_mappingcCs
||_dS)N)r�)r.�mappingr r r!�__init__�szMappingView.__init__cCs
t|j�S)N)rTr�)r.r r r!rM�szMappingView.__len__cCs
dj|�S)Nz&{0.__class__.__name__}({0._mapping!r}))�format)r.r r r!�__repr__�szMappingView.__repr__N)r�)r2r3r4r5r�rMr�r r r r!r�sc@s,eZdZfZedd��Zdd�Zdd�ZdS)rcCst|�S)N)�set)r.r\r r r!r]�szKeysView._from_iterablecCs
||jkS)N)r�)r.r�r r r!rO�szKeysView.__contains__ccs|jEdHdS)N)r�)r.r r r!rJ�szKeysView.__iter__N)r2r3r4r5r6r]rOrJr r r r!r�sc@s,eZdZfZedd��Zdd�Zdd�ZdS)rcCst|�S)N)r�)r.r\r r r!r]�szItemsView._from_iterablecCs@|\}}y|j|}Wntk
r*dSX||kp:||kSdS)NF)r�r|)r.�itemr�r:�vr r r!rO�szItemsView.__contains__ccs$x|jD]}||j|fVqWdS)N)r�)r.r�r r r!rJ�szItemsView.__iter__N)r2r3r4r5r6r]rOrJr r r r!r�s	c@s eZdZfZdd�Zdd�ZdS)rcCs2x,|jD]"}|j|}||ks&||krdSqWdS)NTF)r�)r.r:r�r�r r r!rO�s

zValuesView.__contains__ccs x|jD]}|j|VqWdS)N)r�)r.r�r r r!rJ�szValuesView.__iter__N)r2r3r4r5rOrJr r r r!r�sc@s\eZdZfZedd��Zedd��Ze�Zefdd�Z	dd�Z
d	d
�Zdd�Zddd�Z
d
S)rcCst�dS)N)r|)r.r�r:r r r!�__setitem__szMutableMapping.__setitem__cCst�dS)N)r|)r.r�r r r!�__delitem__szMutableMapping.__delitem__cCs<y||}Wn tk
r,||jkr(�|SX||=|SdS)z�D.pop(k[,d]) -> v, remove specified key and return the corresponding value.
          If key is not found, d is returned if given, otherwise KeyError is raised.
        N)r|�_MutableMapping__marker)r.r�r�r:r r r!r�s
zMutableMapping.popcCs@ytt|��}Wntk
r(t�YnX||}||=||fS)z�D.popitem() -> (k, v), remove and return some (key, value) pair
           as a 2-tuple; but raise KeyError if D is empty.
        )rr~r9r|)r.r�r:r r r!�popitem$s
zMutableMapping.popitemcCs,yx|j�qWWntk
r&YnXdS)z,D.clear() -> None.  Remove all items from D.N)r�r|)r.r r r!r�0s
zMutableMapping.clearcOs�|std��|^}}t|�dkr0tdt|���|r�|d}t|t�rbx^|D]}||||<qLWnDt|d�r�x8|j�D]}||||<qvWnx|D]\}}|||<q�Wx|j�D]\}}|||<q�WdS)aK D.update([E, ]**F) -> None.  Update D from mapping/iterable E and F.
            If E present and has a .keys() method, does:     for k in E: D[k] = E[k]
            If E present and lacks .keys() method, does:     for (k, v) in E: D[k] = v
            In either case, this is followed by: for k, v in F.items(): D[k] = v
        z@descriptor 'update' of 'MutableMapping' object needs an argumentrz+update expected at most 1 arguments, got %drr�N)�	TypeErrorrTrSr�hasattrr�r�)rPrQr.rUr�r:r r r!�update8s$


zMutableMapping.updateNcCs*y||Stk
r$|||<YnX|S)[email protected](k[,d]) -> D.get(k,d), also set D[k]=d if k not in D)r|)r.r�r�r r r!�
setdefaultSs
zMutableMapping.setdefault)N)r2r3r4r5rr�r��objectr�r�r�r�r�r�r r r r!r�sc@sJeZdZdZfZedd��Zdd�Zdd�Zdd	�Z	ddd
�Z
dd�ZdS)rz�All the operations on a read-only sequence.

    Concrete subclasses must override __new__ or __init__,
    __getitem__, and __len__.
    cCst�dS)N)�
IndexError)r.�indexr r r!r�kszSequence.__getitem__ccs>d}y x||}|V|d7}qWWntk
r8dSXdS)Nrr)r�)r.�ir�r r r!rJoszSequence.__iter__cCs&x |D]}||ks||krdSqWdS)NTFr )r.r:r�r r r!rOys
zSequence.__contains__ccs(x"ttt|���D]}||VqWdS)N)�reversed�rangerT)r.r�r r r!rLszSequence.__reversed__rNcCs�|dk	r"|dkr"tt|�|d�}|dk	r>|dkr>|t|�7}|}xT|dksT||kr�y ||}||ksn||krr|SWntk
r�PYnX|d7}qDWt�dS)z�S.index(value, [start, [stop]]) -> integer -- return first index of value.
           Raises ValueError if the value is not present.

           Supporting start and stop arguments is optional, but
           recommended.
        Nrr)�maxrTr��
ValueError)r.r:�start�stopr�r�r r r!r��szSequence.indexcst�fdd�|D��S)zBS.count(value) -> integer -- return number of occurrences of valuec3s"|]}|�ks|�krdVqdS)rNr )r^r�)r:r r!r_�sz!Sequence.count.<locals>.<genexpr>)�sum)r.r:r )r:r!�count�szSequence.count)rN)r2r3r4rur5rr�rJrOrLr�r�r r r r!ras

c@seZdZdZfZdS)rzMThis unifies bytes and bytearray.

    XXX Should add all their methods.
    N)r2r3r4rur5r r r r!r�sc@sneZdZfZedd��Zedd��Zedd��Zdd�Zd	d
�Z	dd�Z
d
d�Zddd�Zdd�Z
dd�ZdS)rcCst�dS)N)r�)r.r�r:r r r!r��szMutableSequence.__setitem__cCst�dS)N)r�)r.r�r r r!r��szMutableSequence.__delitem__cCst�dS)z3S.insert(index, value) -- insert value before indexN)r�)r.r�r:r r r!�insert�szMutableSequence.insertcCs|jt|�|�dS)z:S.append(value) -- append value to the end of the sequenceN)r�rT)r.r:r r r!�append�szMutableSequence.appendcCs,yx|j�qWWntk
r&YnXdS)z,S.clear() -> None -- remove all items from SN)r�r�)r.r r r!r��s
zMutableSequence.clearcCsLt|�}x>t|d�D].}|||d||||<|||d<qWdS)z!S.reverse() -- reverse *IN PLACE*rirN)rTr�)r.rqr�r r r!�reverse�szMutableSequence.reversecCsx|D]}|j|�qWdS)zMS.extend(iterable) -- extend sequence by appending elements from the iterableN)r�)r.r�r�r r r!�extend�s
zMutableSequence.extendrcCs||}||=|S)z�S.pop([index]) -> item -- remove and return item at index (default last).
           Raise IndexError if list is empty or index is out of range.
        r )r.r�r�r r r!r��szMutableSequence.popcCs||j|�=dS)zvS.remove(value) -- remove first occurrence of value.
           Raise ValueError if the value is not present.
        N)r�)r.r:r r r!r}�szMutableSequence.removecCs|j|�|S)N)r�)r.r�r r r!�__iadd__�s
zMutableSequence.__iadd__Nrk)rk)r2r3r4r5rr�r�r�r�r�r�r�r�r}r�r r r r!r�s	
)Kru�abcrrrl�__all__r2�typer~�bytes_iterator�	bytearray�bytearray_iteratorr��dict_keyiteratorr��dict_valueiteratorr��dict_itemiterator�
list_iteratorr��list_reverseiteratorr��range_iterator�longrange_iteratorr��set_iterator�str_iterator�tuple_iterator�zip�zip_iterator�	dict_keys�dict_values�
dict_itemsr&�mappingproxy�	generatorr#�	coroutinerCr$�async_generatorr-r	rr�registerrrrr
rr
rrrrrr�	frozensetrrrrrrrr�r�tuple�str�
memoryviewr�bytesr�listr r r r!�<module>s�
	
)
0













/



O
2



\
=



	

A

No se encontró la página – Alquiler de Limusinas, Autos Clásicos y Microbuses

Alquiler de Autos Clásicos para Sesiones Fotográficas: Estilo y Elegancia en Cada Toma

Si buscas darle un toque auténtico, elegante o retro a tus fotos, el alquiler de autos clásicos para sesiones fotográficas es la opción ideal. Este tipo de vehículos no solo son íconos del diseño automotriz, sino que se convierten en un elemento visual impactante que transforma cualquier sesión en una experiencia única.


¿Por Qué Usar Autos Clásicos en Sesiones Fotográficas?

1. Estética Visual Única

Un auto clásico aporta personalidad, historia y carácter a tus imágenes. Desde tomas urbanas hasta escenarios naturales, estos vehículos se adaptan a diferentes estilos visuales.

2. Ideal para Diversos Usos

  • Sesiones de boda y pre-boda
  • Campañas publicitarias
  • Editoriales de moda
  • Proyectos cinematográficos
  • Contenido para redes sociales

3. Variedad de Modelos

Desde convertibles vintage hasta muscle cars de los años 60 y 70, puedes elegir el modelo que mejor se ajuste a la estética de tu sesión.


Beneficios del Alquiler Profesional

  • Vehículos en excelente estado estético y mecánico
  • Choferes disponibles si se requiere movilidad
  • Asesoría para elegir el modelo adecuado
  • Posibilidad de ambientación adicional (flores, letreros, decoración retro)

Conclusión: Captura Momentos con Estilo

Un auto clásico puede transformar tu sesión fotográfica en una obra de arte visual. No importa el propósito: el estilo, la elegancia y el impacto están garantizados.


📸 ¡Reserva tu auto clásico y crea fotos memorables!

Consulta disponibilidad y haz de tu sesión algo realmente especial. ¡Llama la atención con cada toma!

Not Found

404

Sorry, the page you’re looking for doesn’t exist.