o
    .wi                     @   s<   d dl Z d dlZddlmZ ddlmZ G dd deZdS )    N   )BaseDataset)_urlretrievec                   @   s(   e Zd ZdZdd Zdd Zdd ZdS )	StanfordOnlineProductszwhttps://drive.usercontent.google.com/download?id=1TclrpQOF_ullUP99wk_gjGN8pKvtErG8&export=download&authuser=0&confirm=tc                 C   sb   | j dv r| | j \}}n| j dkr)| d\}}| d\}}|| }|| }|| _|| _d S )N)traintestz
train+testr   r   )split_load_split_txtpathslabels)selfr
   r   train_pathstrain_labels
test_pathstest_labels r   a/home/ubuntu/sommelier/.venv/lib/python3.10/site-packages/pytorch_metric_learning/datasets/sop.pygenerate_split   s   


z%StanfordOnlineProducts.generate_splitc           
   	   C   s   g g }}t tj| jdd| d;}t|D ]+\}}|dkr"q|  }t|d |d }}	|	tj| jd|	 |	| qW d    ||fS 1 sRw   Y  ||fS )NStanford_Online_ProductsEbay_z.txtr         )
openospathjoinroot	enumeratestripr   intappend)
r   r   r
   r   fill_splitlabelr   r   r   r   r	      s"   



z&StanfordOnlineProducts._load_split_txtc                 C   s   t j| jdd t j| jtjdd }ttj|d t	
|d}|| j W d    n1 s4w   Y  t | d S )NT)exist_ok/)urlfilenamer)r   makedirsr   r   r   r   DOWNLOAD_URLr   r   zipfileZipFile
extractallremove)r   download_folder_pathzip_refr   r   r   download_and_remove'   s   z*StanfordOnlineProducts.download_and_removeN)__name__
__module____qualname__r-   r   r	   r4   r   r   r   r   r      s
    r   )r   r.   datasets.base_datasetr   utils.common_functionsr   r   r   r   r   r   <module>   s
    