3
g                 @   s`   d dl Z d dlZd dlmZmZmZmZmZ d dlm	Z	 d dl
mZ dd Zdd Zd	d
 ZdS )    N)abspathdirnamejoinnormcasesep)Path)SuspiciousFileOperationc             G   sj   t t| f| }t | }t|jt|t  rft|t|krftt|t|krftdj|||S )z
    Join one or more path components to the base path component intelligently.
    Return a normalized, absolute version of the final path.

    Raise ValueError if the final path isn't located inside of the base path
    component.
    zGThe joined path ({}) is located outside of the base path component ({}))r   r   r   
startswithr   r   r   format)basepathsZ
final_path	base_path r   N/var/www/tester-filtro-web/env/lib/python3.6/site-packages/django/utils/_os.py	safe_join	   s    
r   c              C   sp   t j ^} tjj| d}tjj| d}tj| ytj|| d}W n ttfk
r`   d}Y nX |S Q R X dS )z
    Return whether or not creating symlinks are supported in the host platform
    and/or if they are allowed to be created (e.g. on Windows it requires admin
    permissions).
    originalsymlinkTFN)	tempfileTemporaryDirectoryospathr   makedirsr   OSErrorNotImplementedError)temp_dirZoriginal_pathZsymlink_path	supportedr   r   r   symlinks_supported#   s    


r   c             C   s2   t | tr| S t | ts*tdt| j t| S )z@Convert value to a pathlib.Path instance, if not already a Path.zInvalid path type: %s)
isinstancer   str	TypeErrortype__name__)valuer   r   r   to_path5   s
    

r#   )r   r   os.pathr   r   r   r   r   pathlibr   Zdjango.core.exceptionsr   r   r   r#   r   r   r   r   <module>   s   