Current File : //lib64/python3.6/__pycache__/subprocess.cpython-36.opt-2.pyc
3


 \���@s4ddlZejdkZddlZddlZddlZddlZddlZddlZddl	Z	ddlm
ZGdd�de�Z
Gdd�de
�ZGdd	�d	e
�Zer�ddlZddlZddlZGd
d�d�ZnhddlZddlZddlZyddlZWnek
r�ddlZYnXeedd
�Zeed��rejZnejZddddddddddddd	dgZe�r�ddlm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'ej(dddddd d!d"dg	�Gd#d$�d$e)�Z*gZ+d%d&�Z,d;Z-d<Z.d=Z/d*d+�Z0d,d-�Z1dd.�d/d�Z2d0d�Z3dd.�d1d�Z4Gd2d�de5�Z6ddd3d4�d5d�Z7d6d7�Z8d8d�Z9d9d�Z:e5�Z;Gd:d�de5�Z<dS)>�NZwin32)�	monotonicc@seZdZdS)�SubprocessErrorN)�__name__�
__module__�__qualname__�rr�"/usr/lib64/python3.6/subprocess.pyr9src@s8eZdZd	dd�Zdd�Zedd��Zejdd��ZdS)
�CalledProcessErrorNcCs||_||_||_||_dS)N)�
returncode�cmd�output�stderr)�selfr
rrr
rrr�__init__CszCalledProcessError.__init__cCsb|jrN|jdkrNyd|jtj|j�fStk
rJd|j|jfSXnd|j|jfSdS)NrzCommand '%s' died with %r.z)Command '%s' died with unknown signal %d.z.Command '%s' returned non-zero exit status %d.)r
r�signalZSignals�
ValueError)rrrr�__str__IszCalledProcessError.__str__cCs|jS)N)r)rrrr�stdoutUszCalledProcessError.stdoutcCs
||_dS)N)r)r�valuerrrrZs)NN)rrrrr�propertyr�setterrrrrr	<s
r	c@s8eZdZd	dd�Zdd�Zedd��Zejdd��ZdS)
�TimeoutExpiredNcCs||_||_||_||_dS)N)r�timeoutrr
)rrrrr
rrrrhszTimeoutExpired.__init__cCsd|j|jfS)Nz'Command '%s' timed out after %s seconds)rr)rrrrrnszTimeoutExpired.__str__cCs|jS)N)r)rrrrrrszTimeoutExpired.stdoutcCs
||_dS)N)r)rrrrrrvs)NN)rrrrrrrrrrrrras
rc@s eZdZdZdZdZdZdZdS)�STARTUPINFOrN)rrr�dwFlags�	hStdInput�
hStdOutput�	hStdError�wShowWindowrrrrr�s
rZPIPE_BUFi�PollSelector�Popen�PIPE�STDOUT�call�
check_call�getstatusoutput�	getoutput�check_output�run�DEVNULL�CompletedProcess)�CREATE_NEW_CONSOLE�CREATE_NEW_PROCESS_GROUP�STD_INPUT_HANDLE�STD_OUTPUT_HANDLE�STD_ERROR_HANDLE�SW_HIDE�STARTF_USESTDHANDLES�STARTF_USESHOWWINDOWr+r,r-r.r/r0r1r2c@s6eZdZdZejfdd�Zdd�Zdd�ZeZ	eZ
dS)	�HandleFcCs|jsd|_||�dS)NT)�closed)r�CloseHandlerrr�Close�szHandle.ClosecCs |jsd|_t|�Std��dS)NTzalready closed)r4�intr)rrrr�Detach�sz
Handle.DetachcCsd|jjt|�fS)Nz%s(%d))�	__class__rr7)rrrr�__repr__�szHandle.__repr__N)rrrr4�_winapir5r6r8r:�__del__rrrrrr3�sr3cCsTxNtdd�D]>}|jtjd�}|dk	rytj|�Wqtk
rJYqXqWdS)N)�
_deadstate)�_active�_internal_poll�sys�maxsize�remover)Zinst�resrrr�_cleanup�srD���cCs*g}tjj}|dkr&|jdd|�|S)Nr�-�O)r@�flags�optimize�append)�argsrrrr�"_optim_args_from_interpreter_flags�s
rNcCsddddddd�}t�}x:|j�D].\}}ttj|�}|dkr"|jd	||�q"Wtjjrh|jd
�n$tjjrz|jd�tjjr�|jd�xtj	D]}|jd
|�q�Wttdi�}xDdD]<}||kr�||}|dkr�|}nd||f}|j
d|f�q�W|S)N�d�B�S�v�b�q)�debug�dont_write_bytecode�no_site�verbose�
bytes_warning�quietrrHz-Iz-Ez-sz-W�	_xoptions�faulthandler�tracemalloc�showalloccount�showrefcount�utf8Tz%s=%sz-X)r\r]r^r_r`)rN�items�getattrr@rJrL�isolated�ignore_environment�no_user_site�warnoptions�extend)Zflag_opt_maprM�flag�optrRZxoptionsr�argrrr�_args_from_interpreter_flags�s:

rk)rcOsFt||��2}y|j|d�S|j�|j��YnXWdQRXdS)N)r)r �wait�kill)r�	popenargs�kwargs�prrrr#scOs6t||�}|r2|jd�}|dkr(|d}t||��dS)NrMr)r#�getr	)rnro�retcoderrrrr$(s



cOsTd|krtd��d|kr<|ddkr<|jdd�r4dnd|d<t|t|dd	�|��jS)
Nrz3stdout argument not allowed, it will be overridden.�input�universal_newlinesF��T)rr�check)rrqr(r!r)rrnrorrrr';s c@s&eZdZddd�Zdd�Zdd�ZdS)	r*NcCs||_||_||_||_dS)N)rMr
rr
)rrMr
rr
rrrrrszCompletedProcess.__init__cCshdj|j�dj|j�g}|jdk	r4|jdj|j��|jdk	rP|jdj|j��djt|�jdj|��S)Nz	args={!r}zreturncode={!r}zstdout={!r}zstderr={!r}z{}({})z, )	�formatrMr
rrLr
�typer�join)rrMrrrr:xs


zCompletedProcess.__repr__cCs |jrt|j|j|j|j��dS)N)r
r	rMrr
)rrrr�check_returncode�sz!CompletedProcess.check_returncode)NN)rrrrr:r{rrrrr*gs
	F)rsrrwc	Os�|dk	r d|krtd��t|d<t||���}y|j||d�\}}WnVtk
r||j�|j�\}}t|j|||d��Yn|j�|j��YnX|j�}|r�|r�t	||j||d��WdQRXt
|j|||�S)N�stdinz/stdin and input arguments may not both be used.)r)rr
)rr!r �communicaterrmrMrl�pollr	r*)	rsrrwrnroZprocessrr
rrrrrr(�s*
cCs�g}d}x�|D]�}g}|r$|jd�d|kp8d|kp8|}|rH|jd�xj|D]b}|dkrf|j|�qN|dkr�|jdt|�d�g}|jd�qN|r�|j|�g}|j|�qNW|r�|j|�|r|j|�|jd�qWdj|�S)	NF� �	�"�\rFz\"ru)rL�lenrgrz)�seq�resultZ	needquoterjZbs_buf�crrr�list2cmdline�s4






r�cCslyt|ddtd�}d}Wn.tk
rF}z|j}|j}WYdd}~XnX|dd�dkrd|dd�}||fS)NT)�shellrtr
rrE�
���r�)r'r"r	rr
)r�dataZexitcodeZexrrrr%scCst|�dS)NrE)r%)rrrrr&"s
c@s�eZdZdZd>dddddeddddddddffddd�dd�Zd	d
�Zdd�Zd
d�Ze	j
ejfdd�Z
dd�Zdd�Zd?dd�Zdd�Zdd�Zdd�Ze�rdd�Zdd �Zd!d"�Zdejejejfd#d$�Zd@d%d&�Zd'd(�Zd)d*�Zd+d,�Z d-d.�Z!e!Z"n�d/d�Zd0d"�Ze#j$e#j%e#j&e#j'e#j(e#j)fd1d2�Z*de#j+e#j,e-j.fd3d$�Zd4d5�Z/dAd6d&�Zd7d*�Zd8d9�Z0d:d,�Z d;d.�Z!d<d=�Z"dS)Br FrENrT)�encoding�errorscCsrt�tj�|_d|_d|_|dkr(d}t|t�s:td��t	r�|dk	rNt
d��|dk	pd|dk	pd|dk	}|tkr~|rxd}q�d}q�|r�|r�t
d��nF|tkr�d}|r�|r�tj
dt�d}|
dk	r�t
d��|d	kr�t
d
��||_d|_d|_d|_d|_d|_||_||_||_|j|||�\}}}}}}t	�rz|dk�rFtj|j�d	�}|dk�r`tj|j�d	�}|dk�rztj|j�d	�}|�p�|�p�|}d|_y�|dk�r�tj|d|�|_|�r�tj|jd|dk||d�|_|dk�rtj|d
|�|_|�rtj|j||d�|_|dk�r6tj|d
|�|_|�r6tj|j||d�|_|j ||||||
||
||	||||||||�W�nxDt!d|j|j|jf�D]*}y|j"�Wnt#k
�r�YnX�q�W|j�sfg}|t$k�r�|j%|�|t$k�r�|j%|�|t$k�r�|j%|�t&|d��r|j%|j'�xP|D]H}y*t	�r<t|t(��r<|j)�n
t*j"|�Wnt#k
�r^YnX�qW�YnXdS)NFrEzbufsize must be an integerz0preexec_fn is not supported on Windows platformsTzSclose_fds is not supported on Windows platforms if you redirect stdin/stdout/stderrzpass_fds overriding close_fds.z2startupinfo is only supported on Windows platformsrz4creationflags is only supported on Windows platforms�wb)�
write_through�line_bufferingr�r��rb)r�r��_devnullr�r�r�r�r�r�r�)+rD�	threadingZLock�
_waitpid_lock�_input�_communication_started�
isinstancer7�	TypeError�
_mswindowsr�_PLATFORM_DEFAULT_CLOSE_FDS�warnings�warn�RuntimeWarningrMr|rr
�pidr
rtr�r��_get_handles�msvcrtZopen_osfhandler8�_closed_child_pipe_fds�io�open�
TextIOWrapper�_execute_child�filter�close�OSErrorr!rL�hasattrr�r3r6�os)rrM�bufsize�
executabler|rr
�
preexec_fn�	close_fdsr��cwd�envrt�startupinfo�
creationflags�restore_signals�start_new_session�pass_fdsr�r�Z
any_stdio_set�p2cread�p2cwrite�c2pread�c2pwrite�errread�errwriteZ	text_mode�fZto_close�fdrrrr`s�

















zPopen.__init__cCs |j||�}|jdd�jdd�S)Nz
r��
)�decode�replace)rr�r�r�rrr�_translate_newlines�szPopen._translate_newlinescCs|S)Nr)rrrr�	__enter__�szPopen.__enter__c
CsD|jr|jj�|jr |jj�z|jr2|jj�Wd|j�XdS)N)rr�r
r|rl)rryr�	tracebackrrr�__exit__�s

zPopen.__exit__cCsT|js
dS|jdkr(|d|jt|d�|j|d�|jdkrPtdk	rPtj|�dS)Nzsubprocess %s is still running)�source)r=)�_child_createdr
r��ResourceWarningr?r>rL)rZ_maxsizeZ_warnrrrr<
s


z
Popen.__del__cCs"t|d�stjtjtj�|_|jS)Nr�)r�r�r��devnull�O_RDWRr�)rrrr�_get_devnulls
zPopen._get_devnullcCs�|rZy|jj|�WnDtk
r(Yn2tk
rX}z|jtjkrFn�WYdd}~XnXy|jj�WnDtk
r|Yn2tk
r�}z|jtjkr�n�WYdd}~XnXdS)N)r|�write�BrokenPipeErrorr��errnoZEINVALr�)rrs�excrrr�_stdin_writes"zPopen._stdin_writecCs�|jr|rtd��|dkr�|jr�|j|j|jgjd�dkr�d}d}|jrV|j|�n6|jrr|jj�}|jj�n|jr�|jj�}|jj�|j	�nJ|dk	r�t
�|}nd}z|j|||�\}}Wdd|_X|j	|j|�d�}||fS)Nz.Cannot send input after starting communicationrFT)r)
r�rr|rr
�countr��readr�rl�_time�_communicate�_remaining_time)rrsrrr
�endtime�stsrrrr}7s.




zPopen.communicatecCs|j�S)N)r?)rrrrr~hsz
Popen.pollcCs|dkrdS|t�SdS)N)r�)rr�rrrr�nszPopen._remaining_timecCs&|dkrdSt�|kr"t|j|��dS)N)r�rrM)rr��orig_timeoutrrr�_check_timeoutvs
zPopen._check_timeoutcCs�|dkr|dkr|dkrd	Sd\}}d\}}d\}}	|dkrttjtj�}|dkrrtjdd�\}}
t|�}tj|
�nj|tkr�tjdd�\}}t|�t|�}}n>|tkr�tj	|j
��}n&t|t��r�tj	|�}ntj	|j
��}|j|�}|dk�r,tjtj�}|dk�r�tjdd�\}
}t|�}tj|
�nn|tk�rZtjdd�\}}t|�t|�}}n@|tk�rttj	|j
��}n&t|t��r�tj	|�}ntj	|j
��}|j|�}|dk�r�tjtj�}	|	dk�rftjdd�\}
}	t|	�}	tj|
�n~|tk�rtjdd�\}}	t|�t|	�}}	nP|tk�r&|}	n@|tk�r@tj	|j
��}	n&t|t��rXtj	|�}	ntj	|j
��}	|j|	�}	||||||	fS)NrErr�r�r�r�r�r�)r�r�r�r�r�r�r�r�)r�r�r�r�)r�r�r�r�)r�r�)r;ZGetStdHandler-Z
CreatePiper3r5r!r)r�Z
get_osfhandler�r�r7�fileno�_make_inheritabler.r/r")rr|rr
r�r�r�r�r�r��_rrrr��sn











zPopen._get_handlescCs&tjtj�|tj�ddtj�}t|�S)NrrE)r;ZDuplicateHandleZGetCurrentProcessZDUPLICATE_SAME_ACCESSr3)rZhandle�hrrrr��s

zPopen._make_inheritablecCs<t|t�st|�}|dkr t�}d|||fkrP|jtjO_||_||_||_	|
r�|jtj
O_tj|_t
jjdd�}dj||�}z>tj||ddt|�|	||dk	r�t
j|�nd|�	\}}}}Wd|dkr�|j�|d	kr�|j�|d
k�r�|j�t|d��rt
j|j�d|_Xd|_t|�|_||_tj|�dS)NrEZCOMSPECzcmd.exez
{} /c "{}"r�Tr�r�r�r�)r��strr�rrr;r1rrrr2r0rr��environrqrxZ
CreateProcessr7�fspathr6r�r�r�r�r�r3�_handler�r5)rrMr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�Zunused_restore_signalsZunused_start_new_sessionZcomspecZhpZhtr��tidrrrr��sF


zPopen._execute_childcCs,|jdkr&||jd�|kr&||j�|_|jS)Nr)r
r�)rr=Z_WaitForSingleObjectZ_WAIT_OBJECT_0Z_GetExitCodeProcessrrrr?s
zPopen._internal_pollcCs�|dk	r"tjdtdd�|j|�}|dkr2tj}nt|d�}|jdkrztj|j	|�}|tj
krlt|j|��tj
|j	�|_|jS)Nz0'endtime' argument is deprecated; use 'timeout'.rF)�
stackleveli�)r�r��DeprecationWarningr�r;ZINFINITEr7r
�WaitForSingleObjectr�ZWAIT_TIMEOUTrrM�GetExitCodeProcess)rrr�Ztimeout_millisr�rrrrl$s 


z
Popen.waitcCs|j|j��|j�dS)N)rLr�r�)rZfh�bufferrrr�
_readerthread:szPopen._readerthreadcCs`|jrDt|d�rDg|_tj|j|j|jfd�|_d|j_|jj�|j	r�t|d�r�g|_
tj|j|j	|j
fd�|_d|j_|jj�|jr�|j
|�|jdk	r�|jj|j|��|jj�r�t|j|��|j	dk	r�|jj|j|��|jj�r�t|j|��d}d}|j�r|j}|jj�|j	�r4|j
}|j	j�|dk	�rF|d}|dk	�rX|d}||fS)N�_stdout_buff)�targetrMT�_stderr_buffr)rr�r�r�ZThreadr�Z
stdout_threadZdaemon�startr
r�Z
stderr_threadr|r�rzr�Zis_aliverrMr�)rrsr�r�rr
rrrr�?sF










zPopen._communicatecCsl|jdk	rdS|tjkr"|j�nF|tjkr>tj|jtj�n*|tjkrZtj|jtj�nt	dj
|���dS)NzUnsupported signal: {})r
r�SIGTERM�	terminateZCTRL_C_EVENTr�rmr�ZCTRL_BREAK_EVENTrrx)r�sigrrr�send_signalss




zPopen.send_signalcCsX|jdk	rdSytj|jd�Wn2tk
rRtj|j�}|tjkrH�||_YnXdS)NrE)r
r;ZTerminateProcessr��PermissionErrorr�ZSTILL_ACTIVE)rZrcrrrr��s

zPopen.terminatec
Cs.d\}}d\}}d
\}}	|dkr"n@|tkr8tj�\}}n*|tkrJ|j�}nt|t�rZ|}n|j�}|dkrln@|tkr�tj�\}}n*|tkr�|j�}nt|t�r�|}n|j�}|dkr�nh|tkr�tj�\}}	nR|tk�r�|dkr�|}	n
t	j
j�}	n.|tk�r|j�}	nt|t��r|}	n|j�}	||||||	fS)NrEr�r�)r�r�r�r�)r�r�r�r�)r�r�r�)r!r��piper)r�r�r7r�r"r@�
__stdout__)
rr|rr
r�r�r�r�r�r�rrrr��sJ






c)"s�t|ttf�r|g}nt|�}|
r:ddg|}�r:�|d<�dkrJ|d��}tj�\}}g}x |dkr~|j|�tj|�}q`Wx|D]}tj|�q�W�z�z�|dk	r�g}xL|j	�D]:\}}tj
|�}d|kr�td��|j|dtj
|��q�Wnd}tj
���tjj
���r�f}nt�fdd�tj|�D��}t|�}|j|�tj|||tttt|���|||||
||||||||�|_d	|_Wdtj|�Xt|d
d�}|dk�r�|dk�r�||k�r�tj|�|dk�r�|
dk�r�||k�r�tj|�|dk�r|dk�r||k�rtj|�|dk	�r.tj|�d	|_t�}x2tj|d�}||7}|�sft|�dk�r<P�q<WWdtj|�X|�r�y6tj|jd�\} }!| |jk�r�|j|!�nt j!|_"Wnt#k
�r�YnXy|j$d
d�\}"}#}$|$j%�}$Wn,tk
�rd}"d}#dj&t|��}$YnXtt'|"j%d�t(�}%t)|%t*��r�|#�r�t|#d�}&|$dk}'|'�rdd}$|}(n|}(|&dk�r�tj+|&�}$|&t,j-k�r�|$dt.|(�7}$|%|&|$|(��|%|$��dS)Nz/bin/shz-crrG�=z!illegal environment variable namec3s"|]}tjjtj|���VqdS)N)r��pathrz�fsencode)�.0�dir)r�rr�	<genexpr>sz'Popen._execute_child.<locals>.<genexpr>Tr�rEiP��:rFsSubprocessError�0z#Bad exception data from child: {!r}�ascii�Znoexecruz: r�r�r�r�r�r�)/r�r��bytes�listr�r�rL�dupr�rar�rr��dirname�tuple�
get_exec_path�set�add�_posixsubprocessZ	fork_exec�sorted�mapr7r�r�rbr��	bytearrayr�r��waitpid�_handle_exitstatusr@rAr
�ChildProcessError�splitr�rx�builtinsr�
issubclassr��strerrorr��ENOENT�repr))rrMr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�Zorig_executableZerrpipe_readZ
errpipe_writeZlow_fds_to_closeZlow_fdZenv_list�krRZexecutable_listZfds_to_keepZ
devnull_fdZerrpipe_data�partr�r�Zexception_nameZ	hex_errnoZerr_msgZchild_exception_typeZ	errno_numZchild_exec_never_calledZerr_filenamer)r�rr��s�	
















cCsL||�r||�|_n2||�r*||�|_n||�r@||�|_ntd��dS)NzUnknown child exit status!)r
r)rr�Z_WIFSIGNALEDZ	_WTERMSIGZ
_WIFEXITEDZ_WEXITSTATUSZ_WIFSTOPPEDZ	_WSTOPSIGrrrr
XszPopen._handle_exitstatuscCs�|jdkr�|jjd�sdSz�y8|jdk	r.|jS||j|�\}}||jkrR|j|�WnBtk
r�}z&|dk	rv||_n|j|kr�d|_WYdd}~XnXWd|jj�X|jS)NFr)r
r��acquirer�r
r�r��release)rr=Z_waitpidZ_WNOHANGZ_ECHILDr�r��errrr?js 	



cCs>ytj|j|�\}}Wntk
r4|j}d}YnX||fS)Nr)r�r	r�r)rZ
wait_flagsr�r�rrr�	_try_wait�s
zPopen._try_waitcCsV|jdk	r|jS|dk	r(tjdtdd�|dk	s8|dk	r^|dkrLt�|}n|dkr^|j|�}|dk	r�d}x�|jjd�r�z6|jdk	r�P|jt	j
�\}}||jkr�|j|�PWd|jj
�X|j|�}|dkr�t|j|��t|d|d�}tj|�qlWnVxT|jdk�rN|j�8|jdk	�rP|jd�\}}||jk�rB|j|�WdQRXq�W|jS)Nz0'endtime' argument is deprecated; use 'timeout'.rF)r�g����Mb@?Frg�������?)r
r�r�r�r�r�r�rrr��WNOHANGr�r
rrrM�min�timeZsleep)rrr�Zdelayr�r�Z	remainingrrrrl�sJ





c#Cs|jrZ|jrZy|jj�Wntk
r0YnX|sZy|jj�Wntk
rXYnXd}d}|js�i|_|jr�g|j|j<|jr�g|j|j<|jr�|j|j}|jr�|j|j}|j|�|j	r�t
|j	�}t����}|jr�|r�|j|jt
j�|j�r|j|jt
j�|j�r$|j|jt
j��xJ|j��rp|j|�}|dk	�r\|dk�r\t|j|��|j|�}	|j||�x�|	D]�\}
}|
j|jk�r||j|jt�}y|jtj|
j|�7_Wn,tk
�r�|j|
j�|
jj�Yn*X|jt|j	�k�rf|j|
j�|
jj�nP|
j|j|jfk�rxtj|
jd�}
|
�sT|j|
j�|
jj�|j|
jj|
��qxW�q(WWdQRX|j |j|�d�|dk	�r�dj!|�}|dk	�r�dj!|�}|j"�s�|j#�s�|j$�r|dk	�r�|j%||jj"|jj#�}|dk	�r|j%||jj"|jj#�}||fS)Nri�)rrv)&r|r��flushr�r�Z_fileobj2outputrr
�_save_inputr��
memoryview�_PopenSelector�register�	selectorsZEVENT_WRITEZ
EVENT_READZget_mapr�rrM�selectr�Zfileobj�
_input_offset�	_PIPE_BUFr�r�r�Z
unregisterr�r�rLrlrzr�r�rtr�)rrsr�r�rr
Z
input_viewZselectorrZready�keyZevents�chunkr�rrrr��s�






(







cCsR|jrN|jdkrNd|_||_|dk	rN|js6|js6|jrN|jj|jj|jj�|_dS)Nr)r|r�r"r�r�rt�encode)rrsrrrr/szPopen._save_inputcCs|jdkrtj|j|�dS)N)r
r�rmr�)rr�rrrr�<s
cCs|jtj�dS)N)r�rr�)rrrrr�BscCs|jtj�dS)N)r�r�SIGKILL)rrrrrmGsz
Popen.killr�)NN)NN)NN)1rrrr�r�rr�r�r�r@rAr�r�r<r�r�r}r~r�r�r�r�r�r�r;r�Z
WAIT_OBJECT_0r�r?rlr�r�r�r�rmr��WIFSIGNALED�WTERMSIG�	WIFEXITED�WEXITSTATUS�
WIFSTOPPED�WSTOPSIGr
r	rr�ZECHILDrrrrrrr 2sb,
1H	@
46
"
4a
r�������)=r@�platformr�r�r�rrr
r�r�rr��	Exceptionrr	rr�r�r;rrr!r �ImportErrorZdummy_threadingrbr#r�rrZSelectSelector�__all__r+r,r-r.r/r0r1r2rgr7r3r>rDr!r"r)rNrkr#r$r'�objectr*r(r�r%r&r�r rrrr�<module>,sp
%

(
.,!2I

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.