Compare commits
13
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4fb579956e | ||
|
|
4495cb1bef | ||
|
|
a39210ee07 | ||
|
|
878756cded | ||
|
|
7d2afbee4a | ||
|
|
4622b03777 | ||
|
|
0f79a505a5 | ||
|
|
c937501a1e | ||
|
|
230abcb0d8 | ||
|
|
5de622a2bf | ||
|
|
a421c3eef1 | ||
|
|
a29a216676 | ||
|
|
81acfdb5b6 |
+4
-1
@@ -1,3 +1,7 @@
|
|||||||
|
# Project specific
|
||||||
|
/image_download/imgs
|
||||||
|
*.DS_Store
|
||||||
|
|
||||||
# ---> Python
|
# ---> Python
|
||||||
# Byte-compiled / optimized / DLL files
|
# Byte-compiled / optimized / DLL files
|
||||||
__pycache__/
|
__pycache__/
|
||||||
@@ -173,4 +177,3 @@ ipython_config.py
|
|||||||
|
|
||||||
# Remove previous ipynb_checkpoints
|
# Remove previous ipynb_checkpoints
|
||||||
# git rm -r .ipynb_checkpoints/
|
# git rm -r .ipynb_checkpoints/
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,78 @@
|
|||||||
|
from __future__ import annotations
|
||||||
|
|
||||||
|
import logging
|
||||||
|
|
||||||
|
from selenium import webdriver
|
||||||
|
from selenium.common.exceptions import TimeoutException
|
||||||
|
from selenium.webdriver.chrome.service import Service
|
||||||
|
from selenium.webdriver.common.action_chains import ActionChains
|
||||||
|
from selenium.webdriver.common.by import By
|
||||||
|
from selenium.webdriver.support import expected_conditions
|
||||||
|
from selenium.webdriver.support.wait import WebDriverWait
|
||||||
|
from webdriver_manager.chrome import ChromeDriverManager
|
||||||
|
|
||||||
|
|
||||||
|
class Instagram:
|
||||||
|
"""Interface for interacting with Instagram."""
|
||||||
|
|
||||||
|
def __init__(self):
|
||||||
|
self.webdriver = None
|
||||||
|
self.actiondriver = None
|
||||||
|
|
||||||
|
def setup(self) -> None:
|
||||||
|
"""Setup connection to Selenium and Instagram."""
|
||||||
|
driver = webdriver.Chrome(
|
||||||
|
service=Service(
|
||||||
|
ChromeDriverManager().install(),
|
||||||
|
),
|
||||||
|
)
|
||||||
|
self.webdriver = driver
|
||||||
|
self.actiondriver = ActionChains(self.webdriver)
|
||||||
|
|
||||||
|
def close(self) -> None:
|
||||||
|
self.webdriver.close()
|
||||||
|
|
||||||
|
def get_image_url_list(self, url: str) -> list[str]:
|
||||||
|
"""Get list of image urls from post."""
|
||||||
|
logging.debug('getting %s', url)
|
||||||
|
self.webdriver.get(url)
|
||||||
|
logging.debug('finished getting url')
|
||||||
|
# handle cookie popup
|
||||||
|
try:
|
||||||
|
logging.debug('waiting for cookie popup to appear')
|
||||||
|
# wait forpopup to appear
|
||||||
|
elem = WebDriverWait(
|
||||||
|
driver=self.webdriver,
|
||||||
|
timeout=60,
|
||||||
|
).until(
|
||||||
|
expected_conditions.presence_of_element_located(
|
||||||
|
(By.XPATH, "//*[text()='Decline optional cookies']"),
|
||||||
|
),
|
||||||
|
)
|
||||||
|
logging.debug('located button')
|
||||||
|
except TimeoutException:
|
||||||
|
logging.error('Timeout before cookie popup appeared.')
|
||||||
|
else:
|
||||||
|
elem.click()
|
||||||
|
logging.debug('clicked button')
|
||||||
|
# find image elements with src url matching Instagram's CDN
|
||||||
|
img_elem_list = self.webdriver.find_elements(
|
||||||
|
by=By.XPATH,
|
||||||
|
value=(
|
||||||
|
"//*[@role='presentation']"
|
||||||
|
"//img[contains(@src,'https://scontent.cdninstagram.com/v/')]"
|
||||||
|
),
|
||||||
|
)
|
||||||
|
assert len(img_elem_list) > 0
|
||||||
|
# extract src url
|
||||||
|
img_src_list = [
|
||||||
|
img_elem.get_attribute(
|
||||||
|
name='src',
|
||||||
|
) for img_elem in img_elem_list
|
||||||
|
]
|
||||||
|
# remove src urls with size matching profile images
|
||||||
|
img_src_list = [
|
||||||
|
img_src for img_src in img_src_list if 's150x150' not in img_src
|
||||||
|
]
|
||||||
|
logging.debug('located %s image urls', len(img_src_list))
|
||||||
|
return img_src_list
|
||||||
@@ -0,0 +1,69 @@
|
|||||||
|
from __future__ import annotations
|
||||||
|
|
||||||
|
import logging
|
||||||
|
import shutil
|
||||||
|
from pathlib import Path
|
||||||
|
|
||||||
|
import pandas as pd
|
||||||
|
import requests
|
||||||
|
from retry import retry
|
||||||
|
|
||||||
|
from image_download.classes import Instagram
|
||||||
|
|
||||||
|
|
||||||
|
def get_sources() -> pd.DataFrame:
|
||||||
|
"""Get sources dateframe."""
|
||||||
|
input_path = Path(__file__).parent / 'sources.csv'
|
||||||
|
assert input_path.exists()
|
||||||
|
# load in csv
|
||||||
|
df = pd.read_csv(input_path)
|
||||||
|
return df
|
||||||
|
|
||||||
|
|
||||||
|
@retry(
|
||||||
|
exceptions=AssertionError,
|
||||||
|
tries=3,
|
||||||
|
delay=5,
|
||||||
|
backoff=1.2,
|
||||||
|
jitter=(1, 10),
|
||||||
|
)
|
||||||
|
def download_images(ig_inst: Instagram, filename: str, url: str) -> None:
|
||||||
|
"""
|
||||||
|
Download images from instagram post found on url
|
||||||
|
|
||||||
|
to files with base name from filename.
|
||||||
|
"""
|
||||||
|
# get image urls
|
||||||
|
url_list = ig_inst.get_image_url_list(url)
|
||||||
|
assert len(url_list) > 0
|
||||||
|
# generate filenames
|
||||||
|
chars = 'abcdefghij'
|
||||||
|
filename_list = [name + chars[i] for i in range(len(url_list))]
|
||||||
|
# download images
|
||||||
|
download_dir = Path(__file__).parent / 'imgs'
|
||||||
|
download_dir.mkdir(exist_ok=True)
|
||||||
|
for filename, url in zip(filename_list, url_list):
|
||||||
|
output_path = download_dir / f"{filename}.jpg"
|
||||||
|
response = requests.get(url, stream=True)
|
||||||
|
with open(output_path, 'wb') as fh:
|
||||||
|
shutil.copyfileobj(response.raw, fh)
|
||||||
|
logging.info('downloaded %s', output_path)
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
# setup logging
|
||||||
|
logging.basicConfig(level=logging.INFO)
|
||||||
|
# get sources df
|
||||||
|
df = get_sources()
|
||||||
|
# setup Instagram interface
|
||||||
|
igi = Instagram()
|
||||||
|
igi.setup()
|
||||||
|
# begin downloading
|
||||||
|
for idx in range(len(df)):
|
||||||
|
# get info from source dataframe
|
||||||
|
name = df.loc[idx, 'name']
|
||||||
|
url = df.loc[idx, 'url']
|
||||||
|
# download post images
|
||||||
|
download_images(ig_inst=igi, filename=name, url=url)
|
||||||
|
# clean up
|
||||||
|
igi.close()
|
||||||
@@ -0,0 +1,34 @@
|
|||||||
|
from __future__ import annotations
|
||||||
|
|
||||||
|
from pathlib import Path
|
||||||
|
|
||||||
|
import pandas as pd
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
# prepare csv path
|
||||||
|
input_path = Path(__file__).parent / 'images_mm.csv'
|
||||||
|
assert input_path.exists()
|
||||||
|
# load in csv
|
||||||
|
df = pd.read_csv(
|
||||||
|
input_path,
|
||||||
|
delimiter=';',
|
||||||
|
header=None,
|
||||||
|
names=['name', 'url'],
|
||||||
|
)
|
||||||
|
# remove last letter from names
|
||||||
|
df['name'] = df['name'].str[:-1]
|
||||||
|
# remove rows with duplicate names
|
||||||
|
df.drop_duplicates(subset='name', inplace=True)
|
||||||
|
# reset index to look more nice
|
||||||
|
df.reset_index(drop=True, inplace=True)
|
||||||
|
# remove query from urls
|
||||||
|
pattern = r'(\?img_.+)'
|
||||||
|
df['url'] = df['url'].str.replace(
|
||||||
|
pat=pattern,
|
||||||
|
repl='',
|
||||||
|
regex=True,
|
||||||
|
)
|
||||||
|
# save df to file
|
||||||
|
output_path = input_path.parent / 'sources.csv'
|
||||||
|
df.to_csv(output_path, index=False)
|
||||||
@@ -0,0 +1,530 @@
|
|||||||
|
name,url
|
||||||
|
18-01-02-ESP-01,https://www.instagram.com/p/Bdder9SFeOM/
|
||||||
|
18-01-20-ESP-01,https://www.instagram.com/p/BeLqxXfFKt9/
|
||||||
|
18-02-17-ESP-01,https://www.instagram.com/p/BfTg0oNFAK9/
|
||||||
|
18-03-29-SOS-01,https://www.instagram.com/p/Bg5k-meFYhS/
|
||||||
|
18-04-05-ESP-01,https://www.instagram.com/p/BhL0sChBYt-/
|
||||||
|
18-04-24-SOS-01,https://www.instagram.com/p/Bh9UocDg-lP/
|
||||||
|
18-05-04-KVR-01,https://www.instagram.com/p/BiXHme3gNb2/
|
||||||
|
18-05-06-ESP-01,https://www.instagram.com/p/BicvmW5gfkb/
|
||||||
|
18-05-17-DAN-01,https://www.instagram.com/p/Bi39YL5F7SV/
|
||||||
|
18-06-01-KVR-01,https://www.instagram.com/p/BjebB2agXPn/
|
||||||
|
18-06-13-ESP-01,https://www.instagram.com/p/Bj-extyAJ6x/
|
||||||
|
18-06-14-AID-01,https://www.instagram.com/p/BkAa4yKgh_G/
|
||||||
|
18-07-02-DKS-01,https://www.instagram.com/p/BkuqWkpANd_/
|
||||||
|
18-07-02-SOS-01,https://www.instagram.com/p/BkuX35iAbdl/
|
||||||
|
18-07-03-AID-01,https://www.instagram.com/p/BkxQEZLAbh2/
|
||||||
|
18-07-03-ESP-01,https://www.instagram.com/p/BkwzTQ8AGTr/
|
||||||
|
18-07-04-DKS-01,https://www.instagram.com/p/Bkz14yLgAby/
|
||||||
|
18-07-04-ESP-01,https://www.instagram.com/p/BkzT4dog941/
|
||||||
|
18-07-04-SOS-01,https://www.instagram.com/p/Bk0PKGiAQtP/
|
||||||
|
18-07-05-AID-01,https://www.instagram.com/p/Bk2RXqEArYK/
|
||||||
|
18-07-05-ESP-01,https://www.instagram.com/p/Bk2cwzRg9pT/
|
||||||
|
18-07-05-SOS-01,https://www.instagram.com/p/Bk2Tm4Igeux/
|
||||||
|
18-07-19-DAN-01,https://www.instagram.com/p/BkMsnV_AohW/
|
||||||
|
18-07-21-DAN-01,https://www.instagram.com/p/BkRuI19A33t/
|
||||||
|
18-07-28-ESP-01,https://www.instagram.com/p/BlxdWGOAJCb/
|
||||||
|
18-07-31-ESP-01,https://www.instagram.com/p/Bl41EORgpiY/
|
||||||
|
18-08-03-ESP-01,https://www.instagram.com/p/BmBK8FTg0nZ/
|
||||||
|
18-08-09-ESP-01,https://www.instagram.com/p/BmP-d2AgaDP/
|
||||||
|
18-08-15-ESP-01,https://www.instagram.com/p/BmfaCJpA7Ek/
|
||||||
|
18-09-07-DKS-01,https://www.instagram.com/p/BnbIyV0A_Ov/
|
||||||
|
18-09-07-SOS-01,https://www.instagram.com/p/BnbXY7UgInG/
|
||||||
|
18-09-08-DAN-01,https://www.instagram.com/p/BndNjZIAAlx/
|
||||||
|
18-10-05-DAN-01,https://www.instagram.com/p/BoitNUKnXan/
|
||||||
|
18-10-09-DKS-01,https://www.instagram.com/p/Botl3Y8i_iy/
|
||||||
|
18-10-19-DKS-01,https://www.instagram.com/p/BpG0awYiLOD/
|
||||||
|
18-10-23-ESP-01,https://www.instagram.com/p/BpRp9-CHOwy/
|
||||||
|
18-10-24-AID-01,https://www.instagram.com/p/BpT-yHsCbMU/
|
||||||
|
18-10-24-ESP-01,https://www.instagram.com/p/BpUAlYmC1qJ/
|
||||||
|
18-10-25-DKS-01,https://www.instagram.com/p/BpWTdgNCw5o/
|
||||||
|
18-10-28-DKS-01,https://www.instagram.com/p/Bpetv09irX3/
|
||||||
|
18-10-28-DKS-02,https://www.instagram.com/p/Bpe8u0qi640/
|
||||||
|
18-10-28-DKS-03,https://www.instagram.com/p/BpfOmZDCuxU/
|
||||||
|
18-10-29-DKS-01,https://www.instagram.com/p/BpfqSebCqT7/
|
||||||
|
18-11-14-DAN-01,https://www.instagram.com/p/B42jb8DBDQE/
|
||||||
|
18-11-16-KVR-01,https://www.instagram.com/p/BqO_lVOHaUx/
|
||||||
|
18-11-18-ESP-01,https://www.instagram.com/p/BqUgSnhn44g/
|
||||||
|
18-11-22-DKS-01,https://www.instagram.com/p/BqewtYiH-B1/
|
||||||
|
18-11-23-ESP-01,https://www.instagram.com/p/Bqhru7SHPHe/
|
||||||
|
18-11-25-ESP-02,https://www.instagram.com/p/BqnITdnH1wU/
|
||||||
|
18-11-26-DAN-01,https://www.instagram.com/p/Bqo94CFHj0J/
|
||||||
|
18-12-11-ESP-01,https://www.instagram.com/p/BrPX4AXnkdt/
|
||||||
|
18-12-13-AID-01,https://www.instagram.com/p/BrU8lXLnL6H/
|
||||||
|
18-12-14-ESP-01,https://www.instagram.com/p/BrXUmd_Hd8F/
|
||||||
|
19-01-21-SOS-01,https://www.instagram.com/p/Bs5iii0HYvw/
|
||||||
|
19-02-04-SOS-01,https://www.instagram.com/p/BtqpBE3HemM/
|
||||||
|
19-02-09-DKS-01,https://www.instagram.com/p/BtqpBE3HemM/
|
||||||
|
19-02-09-ESP-01,https://www.instagram.com/p/BtqqlLXHX7e/
|
||||||
|
19-02-14-KVR-01,https://www.instagram.com/p/Bt224ltHCaR/
|
||||||
|
19-02-18-ESP-01,https://www.instagram.com/p/BuBtMg3H9wS/
|
||||||
|
19-03-05-DKS-01,https://www.instagram.com/p/Bun3cozH30H/
|
||||||
|
19-03-06-AID-01,https://www.instagram.com/p/BuqvrfxlPjM/
|
||||||
|
19-03-06-ESP-01,https://www.instagram.com/p/BuqG3xHHteA/
|
||||||
|
19-03-07-AID-01,https://www.instagram.com/p/ButXV5uFfQz/
|
||||||
|
19-03-08-AID-01,https://www.instagram.com/p/Buv4tEOFgAv/
|
||||||
|
19-03-09-ESP01,https://www.instagram.com/p/Bux9PMVn4wA/
|
||||||
|
19-03-09-ESP-01,https://www.instagram.com/p/Bux9PMVn4wA/
|
||||||
|
19-04-06-DKS-01,https://www.instagram.com/p/Bv6dkRnn8dZ/
|
||||||
|
19-04-12-DKS-01,https://www.instagram.com/p/BwJ0RhoH41e/
|
||||||
|
19-04-16-DKS-01,https://www.instagram.com/p/BwTlPaxBZjy/
|
||||||
|
19-04-26-ESP-01,https://www.instagram.com/p/BwtYI-RhHAH/
|
||||||
|
19-04-29-SOS-01,https://www.instagram.com/p/Bw1Zq6-BuxE/
|
||||||
|
19-04-30-SOS-01,https://www.instagram.com/p/Bw4kgAfBntD/
|
||||||
|
19-05-01-SOS-01,https://www.instagram.com/p/Bw6_o5bhCS5/
|
||||||
|
19-05-04-DKS-01,https://www.instagram.com/p/BxCxLP5hxfO/
|
||||||
|
19-05-06-SOS-01,https://www.instagram.com/p/BxHrMagh2QS/
|
||||||
|
19-05-09-SOS-01,https://www.instagram.com/p/BxPjs0BhogQ/
|
||||||
|
19-05-11-ESP-01,https://www.instagram.com/p/BxUkS-KBJVL/
|
||||||
|
19-05-31-KVR-01,https://www.instagram.com/p/ByHkx0ghtBa/
|
||||||
|
19-06-12-DDA-01,https://www.instagram.com/p/BymhZ0eFWky/
|
||||||
|
19-06-14-DDA-01,https://www.instagram.com/p/Byrpr7TlGO5/
|
||||||
|
19-06-14-DDA-02,https://www.instagram.com/p/Byr32HxF5OH/
|
||||||
|
19-06-14-DDA-03,https://www.instagram.com/p/Byr4s3-FSWY/
|
||||||
|
19-06-14-DDA-04,https://www.instagram.com/p/Byr6i75Fl7B/
|
||||||
|
19-06-14-DDA-05,https://www.instagram.com/p/Byr87WGFS60/
|
||||||
|
19-06-26-ESP01,https://www.instagram.com/p/BzKjJkfBllj/
|
||||||
|
19-06-26-ESP-01,https://www.instagram.com/p/BzKjJkfBllj/
|
||||||
|
19-06-30-DKS-01,https://www.instagram.com/p/BzVqW7Ohotf/
|
||||||
|
19-06-30-ESP-01,https://www.instagram.com/p/BzVtYTmhFu5/
|
||||||
|
19-07-01-SOS-01,https://www.instagram.com/p/BzXu3i9hoNh/
|
||||||
|
19-07-02-SOS-01,https://www.instagram.com/p/Bza3VF1g97B/
|
||||||
|
19-07-03-SOS-01,https://www.instagram.com/p/Bzcg03sApaW/
|
||||||
|
19-07-05-DKS-01,https://www.instagram.com/p/Bzh-PQWhVr0/
|
||||||
|
19-07-07-SOS-01,https://www.instagram.com/p/Bznk1D6BwiU/
|
||||||
|
19-07-11-DKS-01,https://www.instagram.com/p/Bzxla9pBJa2/
|
||||||
|
19-07-21-ESP-01,https://www.instagram.com/p/B0MLyoQBIJW/
|
||||||
|
19-08-03-ESP-01,https://www.instagram.com/p/B0sdKxiBVij/
|
||||||
|
19-09-16-KVR-01,https://www.instagram.com/p/B2eJu3fh5q8/
|
||||||
|
19-09-17-ESP-01,https://www.instagram.com/p/B2giA8MhqD0/
|
||||||
|
19-09-27-ESP-01,https://www.instagram.com/p/B26CSrMhccm/
|
||||||
|
19-10-10-ESP-01,https://www.instagram.com/p/B3bo7chnu6Y/
|
||||||
|
19-11-21-KVR-01,https://www.instagram.com/p/B5H6gIwBcuz/
|
||||||
|
19-11-25-AID-01,https://www.instagram.com/p/B5SSqWvIK20/
|
||||||
|
19-11-25-DKS-01,https://www.instagram.com/p/B5R6TpCha_a/
|
||||||
|
19-11-25-DKS-02,https://www.instagram.com/p/B5SylEkBM0B/
|
||||||
|
19-12-04-SOS-01,https://www.instagram.com/p/B5pVb8TBfiI/
|
||||||
|
19-12-04-SOS-02,https://www.instagram.com/p/B5qWefaBwBF/
|
||||||
|
19-12-10-ESP-01,https://www.instagram.com/p/B547MZ1ghRy/
|
||||||
|
19-12-19-AID-01,https://www.instagram.com/p/B6QiWvZouBm/
|
||||||
|
19-12-21-KVR-01,https://www.instagram.com/p/B6VBf_Bhqk4/
|
||||||
|
19-12-23-KVR-01,https://www.instagram.com/p/B6aImT8hwnJ/
|
||||||
|
20-01-07-ESP-01,https://www.instagram.com/p/B7BHAVXBJn0/
|
||||||
|
20-01-07-KVR-01,https://www.instagram.com/p/B7BWC6iBSKg/
|
||||||
|
20-01-09-AID-01,https://www.instagram.com/p/B7GLApjoN93/
|
||||||
|
20-01-19-DKS-01,https://www.instagram.com/p/B7fxOYdBAvt/
|
||||||
|
20-01-29-AID-01,https://www.instagram.com/p/B75-XCro3Y7/
|
||||||
|
20-01-30-ESP-01,https://www.instagram.com/p/B78jkvYpYUN/
|
||||||
|
20-02-05-AID-01,https://www.instagram.com/p/B8LrOcNhhK9/
|
||||||
|
20-02-05-DKS-01,https://www.instagram.com/p/B8LigCrhr_S/
|
||||||
|
20-02-05-KVR-01,https://www.instagram.com/p/B8LhMz8hD-6/
|
||||||
|
20-02-14-DKS-01,https://www.instagram.com/p/B8ihBHcBcTR/
|
||||||
|
20-02-19-AID-01,https://www.instagram.com/p/B8wUN7powj1/
|
||||||
|
20-02-19-DKS-01,https://www.instagram.com/p/B8weRwrBMmJ/
|
||||||
|
20-02-19-ESP-01,https://www.instagram.com/p/B8vyRrnhTNe/
|
||||||
|
20-02-19-KVR-01,https://www.instagram.com/p/B8wXRyChg5R/
|
||||||
|
20-02-21-AID-01,https://www.instagram.com/p/B81KWgdIuck/
|
||||||
|
20-02-22-ESP-01,https://www.instagram.com/p/B84Nxxahhi1/
|
||||||
|
20-02-23-DKS-01,https://www.instagram.com/p/B86K2T4Bzs_/
|
||||||
|
20-02-25-AID-01,https://www.instagram.com/p/B8_erN8IIBI/
|
||||||
|
20-02-25-KVR-01,https://www.instagram.com/p/B9ZR14AhRkT/
|
||||||
|
20-02-25-AID-02,https://www.instagram.com/p/B9ADTNtoP1R/
|
||||||
|
20-02-29-ESP-01,https://www.instagram.com/p/B9Jfn5SAGCC/
|
||||||
|
20-03-05-DKS-01,https://www.instagram.com/p/B9Wid3Nh4bQ/
|
||||||
|
20-03-07-DKS-01,https://www.instagram.com/p/B9b8jo6hkRH/
|
||||||
|
20-03-08-KVR-01,https://www.instagram.com/p/B9dqeMJh2zS/
|
||||||
|
20-03-09-DKS-01,https://www.instagram.com/p/B9gWKYJBPHn/
|
||||||
|
20-03-10-AID-01,https://www.instagram.com/p/B9i0CQEIorG/
|
||||||
|
20-03-23-KVR-01,https://www.instagram.com/p/B-FDQduhJLi/
|
||||||
|
20-03-26-DKS-01,https://www.instagram.com/p/B-ML7sbBqSd/
|
||||||
|
20-04-03-KVR-01,https://www.instagram.com/p/B-hFfiWhF47/
|
||||||
|
20-04-27-DKS-01,https://www.instagram.com/p/B_fL9ynBHDq/
|
||||||
|
20-04-27-SOS-01,https://www.instagram.com/p/B_e-6lNB9FS/
|
||||||
|
20-04-28-ESP-01,https://www.instagram.com/p/B_hkQsKBYv5/
|
||||||
|
20-05-05-DKS-01,https://www.instagram.com/p/B_zMHv8BvVM/
|
||||||
|
20-05-05-KVR-01,https://www.instagram.com/p/B_zjuAqBK2H/
|
||||||
|
20-05-05-DKS-02,https://www.instagram.com/p/B_zrr6NBt7u/
|
||||||
|
20-05-06-AID-01,https://www.instagram.com/p/B_2mXu5BFx6/
|
||||||
|
20-05-08-AID-01,https://www.instagram.com/p/B_68qE-Hlrj/
|
||||||
|
20-05-09-DKS-01,https://www.instagram.com/p/B_9ZSzvBUax/
|
||||||
|
20-05-13-ESP-01,https://www.instagram.com/p/CAI9Q54hSGf/
|
||||||
|
20-05-14-AID-01,https://www.instagram.com/p/CALButehojK/
|
||||||
|
20-05-14-DKS-01,https://www.instagram.com/p/CALLVKshCTp/
|
||||||
|
20-05-15-KVR-01,https://www.instagram.com/p/CANF60phdN6/
|
||||||
|
20-05-16-AID-01,https://www.instagram.com/p/CAPcKSaMgvX/
|
||||||
|
20-05-19-AID-01,https://www.instagram.com/p/CAXpb0cMOcp/
|
||||||
|
20-05-22-AID-01,https://www.instagram.com/p/CAeyDfwMLM0/
|
||||||
|
20-05-25-SOS-01,https://www.instagram.com/p/CAnpbXgBMa3/
|
||||||
|
20-05-28-AID-01,https://www.instagram.com/p/CAuH9d4s15r/
|
||||||
|
20-05-29-ESP-01,https://www.instagram.com/p/CAxioT2B37l/
|
||||||
|
20-06-03-DKS-01,https://www.instagram.com/p/CA9q6VyhH2O/
|
||||||
|
20-06-06-DKS-01,https://www.instagram.com/p/CBEdfbFhHm-/
|
||||||
|
20-06-08-KVR-01,https://www.instagram.com/p/CBLbwAEBcJ5/
|
||||||
|
20-06-09-DKS-01,https://www.instagram.com/p/CBNOxWNBu6U/
|
||||||
|
20-06-09-ESP-01,https://www.instagram.com/p/CBNqyf3Bwe2/
|
||||||
|
20-06-10-DKS-01,https://www.instagram.com/p/CBQdps2h5ct/
|
||||||
|
20-06-11-ESP-01,https://www.instagram.com/p/CBTc5IEBpRN/
|
||||||
|
20-06-13-ESP-01,https://www.instagram.com/p/CBYLEKhBNyI/
|
||||||
|
20-06-16-ESP-01,https://www.instagram.com/p/CBfy_8eByAz/
|
||||||
|
20-06-16-ESP-02,https://www.instagram.com/p/CBfzeMXh6Ns/
|
||||||
|
20-06-18-DKS-01,https://www.instagram.com/p/CBluKagjfNx/
|
||||||
|
20-06-19-ESP-01,https://www.instagram.com/p/CBmy_vJBjhz/
|
||||||
|
20-06-22-ESP-01,https://www.instagram.com/p/CBvnVUGhjPv/
|
||||||
|
20-06-25-DKS-01,https://www.instagram.com/p/CB23Jr2B7Jj/
|
||||||
|
20-06-26-KVR-01,https://www.instagram.com/p/CB5hDzyBVBT/
|
||||||
|
20-06-29-DKS-01,https://www.instagram.com/p/CCBVMm9hZvu/
|
||||||
|
20-07-07-ESP-01,https://www.instagram.com/p/CCWDLCzBrkr/
|
||||||
|
20-07-08-DKS-01,https://www.instagram.com/p/CCYk7QJhhUA/
|
||||||
|
20-07-11-ESP-01,https://www.instagram.com/p/CCgja2NBEkV/
|
||||||
|
20-07-15-AID-01,https://www.instagram.com/p/CCqJvDGBHn_/
|
||||||
|
20-07-15-ESP-01,https://www.instagram.com/p/CCrR7koB__Q/
|
||||||
|
20-07-20-AID-01,https://www.instagram.com/p/CC3OwSuhiS9/
|
||||||
|
20-07-23-ESP-01,https://www.instagram.com/p/CC_eu2fhcWn/
|
||||||
|
20-07-29-ESP-01,https://www.instagram.com/p/CDM6oLwhqbH/
|
||||||
|
20-07-30-DKS-01,https://www.instagram.com/p/CDRHLHbhg0f/
|
||||||
|
20-08-02-ESP-01,https://www.instagram.com/p/CDYgQllB_Zg/
|
||||||
|
20-08-07-DKS-01,https://www.instagram.com/p/CDlAfPnB1ZT/
|
||||||
|
20-08-11-AID-01,https://www.instagram.com/p/CDv97HEH8sL/
|
||||||
|
20-08-11-ESP-01,https://www.instagram.com/p/CDwEXTmhwhT/
|
||||||
|
20-08-13-KVR-01,https://www.instagram.com/p/CD1No_ABgD2/
|
||||||
|
20-08-14-DAN-01,https://www.instagram.com/p/CD33Qrthfmz/
|
||||||
|
20-08-14-DKS-01,https://www.instagram.com/p/CD4fl_qhxNv/
|
||||||
|
20-08-14-KVR-01,https://www.instagram.com/p/CD3Upysh5-a/
|
||||||
|
20-08-14-DAN-02,https://www.instagram.com/p/CD34iAWhhhm/
|
||||||
|
20-08-14-KVR-02,https://www.instagram.com/p/CD4BjXsh0S6/
|
||||||
|
20-08-16-DKS-01,https://www.instagram.com/p/CD8c1KKBSsa/
|
||||||
|
20-08-16-ESP-01,https://www.instagram.com/p/CD8jIprHr2G/
|
||||||
|
20-08-17-ESP-01,https://www.instagram.com/p/CD_Zxb-n0pe/
|
||||||
|
20-08-18-DKS-01,https://www.instagram.com/p/CEBRs0xBxSn/
|
||||||
|
20-08-18-ESP-01,https://www.instagram.com/p/CEBsx6NnEjP/
|
||||||
|
20-08-19-ESP-01,https://www.instagram.com/p/CEEQ1o8gQkB/
|
||||||
|
20-08-20-ESP-01,https://www.instagram.com/p/CEGvYLiAY1w/
|
||||||
|
20-08-21-ESP-01,https://www.instagram.com/p/CEJTjZYAQtE/
|
||||||
|
20-08-22-ESP-01,https://www.instagram.com/p/CEL5AVYgOAz/
|
||||||
|
20-08-23-ESP-01,https://www.instagram.com/p/CEOkqPBH10Q/
|
||||||
|
20-08-25-ESP-01,https://www.instagram.com/p/CETkCURh4_a/
|
||||||
|
20-08-27-DKS-01,https://www.instagram.com/p/CEYsZ_ChVU8/
|
||||||
|
20-08-27-ESP-01,https://www.instagram.com/p/CEYvl4Pho6p/
|
||||||
|
20-08-30-ESP-01,https://www.instagram.com/p/CEgMARmhqBK/
|
||||||
|
20-08-31-LMR-01,https://www.instagram.com/p/CEjmSnvhCxX/
|
||||||
|
20-09-01-AID-01,https://www.instagram.com/p/CEmZNjThNDg/
|
||||||
|
20-09-01-DAN-01,https://www.instagram.com/p/CEmRbyJBfwx/
|
||||||
|
20-09-01-DKS-01,https://www.instagram.com/p/CEmZI-Gh0Yf/
|
||||||
|
20-09-01-ESP-01,https://www.instagram.com/p/CEmNaIGhzs2/
|
||||||
|
20-09-01-KVR-01,https://www.instagram.com/p/CEmYa1SBuq9/
|
||||||
|
20-09-01-SOS-01,https://www.instagram.com/p/CEmM1MVhHR-/
|
||||||
|
20-09-01-DKS-02,https://www.instagram.com/p/CEmbGEvhg-U/
|
||||||
|
20-09-02-AID-01,https://www.instagram.com/p/CEom31ajr8K/
|
||||||
|
20-09-02-DKS-01,https://www.instagram.com/p/CEnltOwBuRt/
|
||||||
|
20-09-02-SOS-01,https://www.instagram.com/p/CEoiQWABLKh/
|
||||||
|
20-09-02-DKS-02,https://www.instagram.com/p/CEpfRLnBF_8/
|
||||||
|
20-09-03-AID-01,https://www.instagram.com/p/CEq7lJ8h6j9/
|
||||||
|
20-09-04-DKS-01,https://www.instagram.com/p/CEta3NcB_hb/
|
||||||
|
20-09-04-ESP-01,https://www.instagram.com/p/CEuE9aeBAvq/
|
||||||
|
20-09-09-DKS-01,https://www.instagram.com/p/CE7eFlnhOq_/
|
||||||
|
20-09-09-DKS-02,https://www.instagram.com/p/CE7l2iQBlWB/
|
||||||
|
20-09-11-DKS-01,https://www.instagram.com/p/CFAhglrhRv1/
|
||||||
|
20-09-11-ESP-01,https://www.instagram.com/p/CE_vKcchSwc/
|
||||||
|
20-09-11-KVR-01,https://www.instagram.com/p/CE_Uc3TB2Uv/
|
||||||
|
20-09-15-DKS-01,https://www.instagram.com/p/CFKXh58B5R8/
|
||||||
|
20-09-16-ESP-01,https://www.instagram.com/p/CFNIfW0B_Sy/
|
||||||
|
20-09-18-DKS-01,https://www.instagram.com/p/CFSJDHLBSxW/
|
||||||
|
20-09-18-KVR-01,https://www.instagram.com/p/CFRJZaFhGps/
|
||||||
|
20-09-18-KVR-02,https://www.instagram.com/p/CFSLXmshZ6P/
|
||||||
|
20-09-21-AID-01,https://www.instagram.com/p/CFY0LPWj80s/
|
||||||
|
20-09-21-SOS-01,https://www.instagram.com/p/CFZB6NLAcWI/
|
||||||
|
20-09-25-AID-01,https://www.instagram.com/p/CFju1HSHPZe/
|
||||||
|
20-09-25-DKS-01,https://www.instagram.com/p/CFkB-iphXeO/
|
||||||
|
20-09-25-ESP-01,https://www.instagram.com/p/CFjgVjfhT7F/
|
||||||
|
20-09-26-DKS-01,https://www.instagram.com/p/CFl4Q2GhdUm/
|
||||||
|
20-09-26-KVR-01,https://www.instagram.com/p/CFmJTvvBSHZ/
|
||||||
|
20-09-28-DKS-01,https://www.instagram.com/p/CFrwap8BXZI/
|
||||||
|
20-09-29-ESP-01,https://www.instagram.com/p/CFuIKY9BjyQ/
|
||||||
|
20-10-01-SOS-01,https://www.instagram.com/p/CFzdXsnhxME/
|
||||||
|
20-10-03-AID-01,https://www.instagram.com/p/CF30lryDYpr/
|
||||||
|
20-10-07-DKS-01,https://www.instagram.com/p/CGDbWc9hKK4/
|
||||||
|
20-10-09-AID-01,https://www.instagram.com/p/CGHRWZhMgnC/
|
||||||
|
20-10-09-DKS-01,https://www.instagram.com/p/CGHXVP4BaCV/
|
||||||
|
20-10-09-ESP-01,https://www.instagram.com/p/CGICaM1hlhg/
|
||||||
|
20-10-09-KVR-01,https://www.instagram.com/p/CGHTToFhU-C/
|
||||||
|
20-10-11-ESP-01,https://www.instagram.com/p/CGMpOJTBaY_/
|
||||||
|
20-10-13-ESP-01,https://www.instagram.com/p/CGSaOk4Btgk/
|
||||||
|
20-10-14-DKS-01,https://www.instagram.com/p/CGUVbGrhMz-/
|
||||||
|
20-10-15-AID-01,https://www.instagram.com/p/CGXCuoxMW9W/
|
||||||
|
20-10-15-KVR-01,https://www.instagram.com/p/CGXN5lBBREK/
|
||||||
|
20-10-16-AID-01,https://www.instagram.com/p/CGZtOkBjg61/
|
||||||
|
20-10-16-ESP-01,https://www.instagram.com/p/CGZZTNNBW7S/
|
||||||
|
20-10-22-ESP-01,https://www.instagram.com/p/CGqKB0bBYR1/
|
||||||
|
20-10-23-DKS-01,https://www.instagram.com/p/CGsTxpfhmjV/
|
||||||
|
20-11-02-ESP-01,https://www.instagram.com/p/CHFm3vDhLm2/
|
||||||
|
20-11-06-ESP-01,https://www.instagram.com/p/CHQmeGAhTe6/
|
||||||
|
20-11-10-DKS-01,https://www.instagram.com/p/CHZggych9r8/
|
||||||
|
20-11-11-AID-01,https://www.instagram.com/p/CHcWcoxDVgL/
|
||||||
|
20-11-11-ESP-01,https://www.instagram.com/p/CHdF-HdhGBh/
|
||||||
|
20-11-12-SOS-01,https://www.instagram.com/p/CHgCOL7BPt8/
|
||||||
|
20-11-13-DKS-01,https://www.instagram.com/p/CHhd4ktBtka/
|
||||||
|
20-11-13-ESP-01,https://www.instagram.com/p/CHi4EpeB6mV/
|
||||||
|
20-11-13-DKS-02,https://www.instagram.com/p/CHiseWHBr4i/
|
||||||
|
20-11-14-DAN-01,https://www.instagram.com/p/CEmRbyJBfwx/
|
||||||
|
20-11-16-ESP-01,https://www.instagram.com/p/CHqaQ-gBb3n/
|
||||||
|
20-11-17-ESP-01,https://www.instagram.com/p/CHrzrX0B8VD/
|
||||||
|
20-11-19-ESP-01,https://www.instagram.com/p/CHw4TDmhrlu/
|
||||||
|
20-11-20-AID-01,https://www.instagram.com/p/CHzeXIqBnmx/
|
||||||
|
20-11-20-DKS-01,https://www.instagram.com/p/CH0NRUWBj4M/
|
||||||
|
20-11-22-ESP-01,https://www.instagram.com/p/CH5CSohhh8_/
|
||||||
|
20-11-25-AID-01,https://www.instagram.com/p/CIAsOx1D9U2/
|
||||||
|
20-11-26-KVR-01,https://www.instagram.com/p/CIDTfOuhn1P/
|
||||||
|
20-11-27-KVR-01,https://www.instagram.com/p/CIFug7KB_Yd/
|
||||||
|
20-11-30-DKS-01,https://www.instagram.com/p/CINgS_BhuU7/
|
||||||
|
20-11-30-LMR-01,https://www.instagram.com/p/CINouo2hSeC/
|
||||||
|
20-11-30-DKS-02,https://www.instagram.com/p/CIOMMH8hPOX/
|
||||||
|
20-12-07-KVR-01,https://www.instagram.com/p/CIfhxq4BD3e/
|
||||||
|
20-12-10-DKS-01,https://www.instagram.com/p/CInQai9hizU/
|
||||||
|
20-12-14-AID-01,https://www.instagram.com/p/CIxUrxJDlG0/
|
||||||
|
20-12-14-DKS-01,https://www.instagram.com/p/CIx-oizhmJv/
|
||||||
|
20-12-15-AID-01,https://www.instagram.com/p/CI0o6SrBa69/
|
||||||
|
20-12-15-DKS-01,https://www.instagram.com/p/CI0XSgmhrGr/
|
||||||
|
20-12-15-KVR-01,https://www.instagram.com/p/CI0LoEbhuey/
|
||||||
|
20-12-16-AID-01,https://www.instagram.com/p/CI2e70eBQFn/
|
||||||
|
20-12-16-DKS-02,https://www.instagram.com/p/CI2fpxYhGAc/
|
||||||
|
20-12-16-DKS-03,https://www.instagram.com/p/CI2nQo_B5Gl/
|
||||||
|
20-12-16-DKS-04,https://www.instagram.com/p/CI2z8YtBfWV/
|
||||||
|
20-12-16-DKS-05,https://www.instagram.com/p/CI3GRzMhrsg/
|
||||||
|
20-12-17-AID-01,https://www.instagram.com/p/CI5MqysBO-X/
|
||||||
|
20-12-17-DAN-01,https://www.instagram.com/p/CI5e0DNhxsV/
|
||||||
|
20-12-17-ESP-01,https://www.instagram.com/p/CI5r7UpB6qX/
|
||||||
|
20-12-17-KVR-01,https://www.instagram.com/p/CI5Ns87BCAI/
|
||||||
|
20-12-17-KVR-02,https://www.instagram.com/p/CI6HnRBBBaY/
|
||||||
|
20-12-17-DKS-03,https://www.instagram.com/p/CI5k9wSBmQR/
|
||||||
|
20-12-17-DKS-04,https://www.instagram.com/p/CI5nQYLhPge/
|
||||||
|
20-12-17-DKS-05,https://www.instagram.com/p/CI59lSaBnID/
|
||||||
|
20-12-19-ESP-01,https://www.instagram.com/p/CI_HYWChMK0/
|
||||||
|
20-12-20-DKS-01,https://www.instagram.com/p/CJBgYighPih/
|
||||||
|
20-12-24-DKS-01,https://www.instagram.com/p/CJLqXLFhl8l/
|
||||||
|
20-12-29-ESP-01,https://www.instagram.com/p/CJYlueTB6gs/
|
||||||
|
20-12-31-ESP-01,https://www.instagram.com/p/CJeH78phEun/
|
||||||
|
21-01-01-DKS-01,https://www.instagram.com/p/CJgQJr3h-nh/
|
||||||
|
21-01-05-ESP-01,https://www.instagram.com/p/CJrBsuoBvIf/
|
||||||
|
21-01-06-SOS-01,https://www.instagram.com/p/CnE7WUsMIOq/
|
||||||
|
21-01-07-DKS-01,https://www.instagram.com/p/CJvzjixhPNw/
|
||||||
|
21-01-10-AID-01,https://www.instagram.com/p/CJ29A8ODWyf/
|
||||||
|
21-01-13-ESP-01,https://www.instagram.com/p/CJ_XROeBwkd/
|
||||||
|
21-01-14-DKS-01,https://www.instagram.com/p/CKBQTf3BU0r/
|
||||||
|
21-01-16-ESP-01,https://www.instagram.com/p/CKGzTeYh3q-/
|
||||||
|
21-01-20-ESP-01,https://www.instagram.com/p/CKRkurhBaT9/
|
||||||
|
21-01-20-KVR-01,https://www.instagram.com/p/CKQq3rIBqVE/
|
||||||
|
21-01-24-DKS-01,https://www.instagram.com/p/CKbPDM-hgRj/
|
||||||
|
21-01-25-DDA-01,https://www.instagram.com/p/CKd2LC1Fn49/
|
||||||
|
21-02-04-DKS-01,https://www.instagram.com/p/CK31Yj_hrdg/
|
||||||
|
21-02-09-AID-01,https://www.instagram.com/p/CLEeBLhj8Tn/
|
||||||
|
21-02-14-ESP-01,https://www.instagram.com/p/CLRhd03hnNW/
|
||||||
|
21-02-15-DKS-01,https://www.instagram.com/p/CLUdWhNhAHO/
|
||||||
|
21-02-17-DAN-01,https://www.instagram.com/p/CaFnT4rPHWy/
|
||||||
|
21-02-18-AID-01,https://www.instagram.com/p/CLb26JvKcjo/
|
||||||
|
21-03-01-ESP-01,https://www.instagram.com/p/CL4QjuMB3ts/
|
||||||
|
21-03-08-AID-01,https://www.instagram.com/p/CMJn8B4B49x/
|
||||||
|
21-03-09-DGS-01,https://www.instagram.com/p/CMNHaK9hDna/
|
||||||
|
21-03-16-DKS-01,https://www.instagram.com/p/CMfEdxDBoL4/
|
||||||
|
21-03-17-KVR-01,https://www.instagram.com/p/CMhUfzTBe53/
|
||||||
|
21-03-20-DKS-01,https://www.instagram.com/p/CMpg6DIBw7q/
|
||||||
|
21-03-22-DKS-01,https://www.instagram.com/p/CMuS-IaB0yn/
|
||||||
|
21-03-27-ESP-01,https://www.instagram.com/p/CM76tIjBSii/
|
||||||
|
21-04-06-DGS-01,https://www.instagram.com/p/CNUdG1ih6SQ/
|
||||||
|
21-04-07-DKS-01,https://www.instagram.com/p/CNXANRAB5UI/
|
||||||
|
21-04-09-DKS-01,https://www.instagram.com/p/CNcHo83BVaT/
|
||||||
|
21-04-09-DKS-02,https://www.instagram.com/p/CNcvQRBhxod/
|
||||||
|
21-04-17-ESP-01,https://www.instagram.com/p/CNxB2mlhjA9/
|
||||||
|
21-05-01-ESP-01,https://www.instagram.com/p/COVDSYMBNhj/
|
||||||
|
21-05-05-ESP-01,https://www.instagram.com/p/COfKK4mh27D/
|
||||||
|
21-05-12-LMR-01,https://www.instagram.com/p/COxiiy1B8tr/
|
||||||
|
21-05-29-ESP-01,https://www.instagram.com/p/CPc37g0ByLF/
|
||||||
|
21-05-30-AID-01,https://www.instagram.com/p/CPfVcQVK-3a/
|
||||||
|
21-06-02-DKS-01,https://www.instagram.com/p/CPm626UhL0Q/
|
||||||
|
21-06-02-DKS-02,https://www.instagram.com/p/CPnizslh-nI/
|
||||||
|
21-06-05-LMR-01,https://www.instagram.com/p/CPvraplB_U6/
|
||||||
|
21-06-09-ESP-01,https://www.instagram.com/p/CP5BIwoBFbA/
|
||||||
|
21-06-11-ESP-01,https://www.instagram.com/p/CP-dG5BhmIw/
|
||||||
|
21-07-02-DKS-01,https://www.instagram.com/p/CQ01BT6hUGS/
|
||||||
|
21-07-03-ESP-01,https://www.instagram.com/p/CQ3eUjUBMho/
|
||||||
|
21-07-09-ESP-01,https://www.instagram.com/p/CRGtug3hRfF/
|
||||||
|
21-07-09-SOS-01,https://www.instagram.com/p/CP6Ov5UhLlP/
|
||||||
|
21-07-18-ESP-01,https://www.instagram.com/p/CRdjY9oh19k/
|
||||||
|
21-07-20-ESP-01,https://www.instagram.com/p/CRjlnd1hHzI/
|
||||||
|
21-07-26-ESP-01,https://www.instagram.com/p/CRzOgKNh53b/
|
||||||
|
21-08-14-ESP-01,https://www.instagram.com/p/CSjFo0yMgcB/
|
||||||
|
21-08-20-ESP-01,https://www.instagram.com/p/CSzfDoSsVRb/
|
||||||
|
21-08-30-SOS-01,https://www.instagram.com/p/CTMyJluMbAc/
|
||||||
|
21-09-03-DKS-01,https://www.instagram.com/p/CTWme49rLD8/
|
||||||
|
21-09-03-SOS-01,https://www.instagram.com/p/CTWnmNIs1Zg/
|
||||||
|
21-09-04-DKS-01,https://www.instagram.com/p/CTZTvlbsBas/
|
||||||
|
21-09-08-DKS-01,https://www.instagram.com/p/CTjSwgjMzjk/
|
||||||
|
21-09-08-ESP-01,https://www.instagram.com/p/CTkcFu7MHmx/
|
||||||
|
21-09-09-LMR-01,https://www.instagram.com/p/CTmX7sBsXFS/
|
||||||
|
21-09-23-SOS-01,https://www.instagram.com/p/CUKpd8UsI4-/
|
||||||
|
21-10-05-ESP-01,https://www.instagram.com/p/CUp_wDtMd8y/
|
||||||
|
21-10-07-AID-01,https://www.instagram.com/p/CXLatMHMRb8/
|
||||||
|
21-10-15-DKS-01,https://www.instagram.com/p/CVCmI_sMp-D/
|
||||||
|
21-10-16-ESP-01,https://www.instagram.com/p/CVGoecLsvYF/
|
||||||
|
21-10-20-DKS-01,https://www.instagram.com/p/CVP0p-eMX9X/
|
||||||
|
21-10-21-DKS-01,https://www.instagram.com/p/CVTKoQBs4Wr/
|
||||||
|
21-10-27-SOS-01,https://www.instagram.com/p/CVh68RTs_Mc/
|
||||||
|
21-11-23-ESP-01,https://www.instagram.com/p/CWnKmSSMGSK/
|
||||||
|
21-11-23-KVR-01,https://www.instagram.com/p/CWnQj6QMEBE/
|
||||||
|
21-11-24-LMR-01,https://www.instagram.com/p/CWqEG4Ts02c/
|
||||||
|
21-11-27-ESP-01,https://www.instagram.com/p/CWyfCUerKC5/
|
||||||
|
21-11-28-DKS-01,https://www.instagram.com/p/CW0DOaGssx1/
|
||||||
|
21-11-29-ESP-01,https://www.instagram.com/p/CW3d9rfskqj/
|
||||||
|
21-12-02-DKS-01,https://www.instagram.com/p/CW-UhFrMpWe/
|
||||||
|
21-12-03-ESP-01,https://www.instagram.com/p/CXB4R_BMbmz/
|
||||||
|
21-12-06-DKR-01,https://www.instagram.com/p/CXI3Rl1N4n0/
|
||||||
|
21-12-06-ESP-01,https://www.instagram.com/p/CXJxwLDs0u7/
|
||||||
|
21-12-16-ESP-01,https://www.instagram.com/p/CXjvqSxM3It/
|
||||||
|
21-12-16-KVR-01,https://www.instagram.com/p/CXievyyM8y5/
|
||||||
|
21-12-17-DKS-01,https://www.instagram.com/p/CXllFDxMJ9j/
|
||||||
|
21-12-24-ESP-01,https://www.instagram.com/p/CX3qmLQM_Gt/
|
||||||
|
22-01-06-SOS-01,https://www.instagram.com/p/CYY-MAqtWp-/
|
||||||
|
22-01-07-AID-01,https://www.instagram.com/p/CYbShPWtjpF/
|
||||||
|
22-01-14-AID-01,https://www.instagram.com/p/CYth6f1KWjG/
|
||||||
|
22-01-16-AID-01,https://www.instagram.com/p/CYy__cmKF-w/
|
||||||
|
22-01-16-ESP-01,https://www.instagram.com/p/CYyMLiBsHqA/
|
||||||
|
22-01-17-AID-01,https://www.instagram.com/p/CY1afo5KUuP/
|
||||||
|
22-01-21-AID-01,https://www.instagram.com/p/CY_jXwJK-hc/
|
||||||
|
22-01-27-ESP-01,https://www.instagram.com/p/CZOd0cAqsXT/
|
||||||
|
22-01-27-SOS-01,https://www.instagram.com/p/CZPhf7jKfqX/
|
||||||
|
22-01-31-SOS-01,https://www.instagram.com/p/CZZkJFJo-1c/
|
||||||
|
22-02-01-SOS-01,https://www.instagram.com/p/CZbqcCLNcH4/
|
||||||
|
22-02-04-DKS-01,https://www.instagram.com/p/CZjrXR1MWXW/
|
||||||
|
22-02-07-DKR-01,https://www.instagram.com/p/CZyrtUDtPiZ/
|
||||||
|
22-02-08-AID-01,https://www.instagram.com/p/CZty0Cjqp0_/
|
||||||
|
22-02-08-ESP-01,https://www.instagram.com/p/CZuUWJQLYMo/
|
||||||
|
22-02-09-DGS-01,https://www.instagram.com/p/CZwvuT3LBOr/
|
||||||
|
22-02-10-DGS-01,https://www.instagram.com/p/CZzBV6XsFZC/
|
||||||
|
22-02-10-ESP-01,https://www.instagram.com/p/CZz_JP4sDf5/
|
||||||
|
22-02-14-ESP-01,https://www.instagram.com/p/CZ-AngjMZsk/
|
||||||
|
22-02-17-DKS-01,https://www.instagram.com/p/CaFY3hZsJLY/
|
||||||
|
22-02-18-ESP-01,https://www.instagram.com/p/CaIHELIML6L/
|
||||||
|
22-02-20-DKS-01,https://www.instagram.com/p/CaMhGu1M0mf/
|
||||||
|
22-02-23-DKS-01,https://www.instagram.com/p/CaT6B9eMfGp/
|
||||||
|
22-03-01-ESP-01,https://www.instagram.com/p/CajYq-as3Z7/
|
||||||
|
22-03-07-DKS-01,https://www.instagram.com/p/CazvwG5qEIw/
|
||||||
|
22-03-08-AID-01,https://www.instagram.com/p/Ca1m958sd5e/
|
||||||
|
22-03-08-DGS-01,https://www.instagram.com/p/Ca2WW-usIY2/
|
||||||
|
22-03-25-DKS-01,https://www.instagram.com/p/CbiCVcpM5_u/
|
||||||
|
22-03-30-DKS-01,https://www.instagram.com/p/CbvE5ltqSXS/
|
||||||
|
22-04-01-DAN-01,https://www.instagram.com/p/Cb0A6uIO2Dk/
|
||||||
|
22-04-06-ESP-01,https://www.instagram.com/p/CcAeFAhstAq/
|
||||||
|
22-04-19-AID-01,https://www.instagram.com/p/CciKC_QsoMa/
|
||||||
|
22-04-22-DKS-01,https://www.instagram.com/p/CcpxrG7I1z6/
|
||||||
|
22-05-01-ESP-01,https://www.instagram.com/p/CdBApVCK594/
|
||||||
|
22-05-12-ESP-01,https://www.instagram.com/p/Cdgviozs7di/
|
||||||
|
22-05-17-DKS-01,https://www.instagram.com/p/CdqY5GDqBzd/
|
||||||
|
22-06-02-AID-01,https://www.instagram.com/p/CeS9ZlGqZ2W/
|
||||||
|
22-06-09-ESP-01,https://www.instagram.com/p/CelP8qTM9Lq/
|
||||||
|
22-06-16-ESP-01,https://www.instagram.com/p/Ce20tKzsP6q/
|
||||||
|
22-06-28-SOS-01,https://www.instagram.com/p/CfWSzM_sM1K/
|
||||||
|
22-06-29-AID-01,https://www.instagram.com/p/CfYbcXZuqaG/
|
||||||
|
22-07-03-DKS-01,https://www.instagram.com/p/CfjLiOcszxB/
|
||||||
|
22-07-14-DKS-01,https://www.instagram.com/p/CgAIAp0ByWx/
|
||||||
|
22-08-10-KVR-01,https://www.instagram.com/p/ChEouG_sIKx/
|
||||||
|
22-08-26-ESP-01,https://www.instagram.com/p/ChtxGQkMGxf/
|
||||||
|
22-09-01-DKS-01,https://www.instagram.com/p/Ch9Mr6vDjT6/
|
||||||
|
22-09-01-ESP-01,https://www.instagram.com/p/Ch93KF6s7S9/
|
||||||
|
22-09-01-SOS-01,https://www.instagram.com/p/Ch-DEbtIizE/
|
||||||
|
22-09-04-ESP-01,https://www.instagram.com/p/CiFpAGfs3YP/
|
||||||
|
22-09-07-SOS-01,https://www.instagram.com/p/CiMuQrHM7M-/
|
||||||
|
22-09-13-DDA-01,https://www.instagram.com/p/CicVS1rAx8i/
|
||||||
|
22-09-28-ESP-01,https://www.instagram.com/p/CjDnHORMyy6/
|
||||||
|
22-10-04-DGS-01,https://www.instagram.com/p/CjS7V8JjNZP/
|
||||||
|
22-10-06-AID-01,https://www.instagram.com/p/CjXX1NGM6qe/
|
||||||
|
22-10-07-DKS-01,https://www.instagram.com/p/Cjaf83qs2w5/
|
||||||
|
22-10-10-DDA-01,https://www.instagram.com/p/Cjh1DsyKEsk/
|
||||||
|
22-10-13-DKS-01,https://www.instagram.com/p/CjpXsMbs6sS/
|
||||||
|
22-10-15-DKS-01,https://www.instagram.com/p/Cju0_tMsCe6/
|
||||||
|
22-10-15-ESP-01,https://www.instagram.com/p/CjupvQis07W/
|
||||||
|
22-10-19-KVR-01,https://www.instagram.com/p/Cj4ubgZtToG/
|
||||||
|
22-10-21-DKS-01,https://www.instagram.com/p/Cj-0-pYMhy4/
|
||||||
|
22-10-23-DAN-01,https://www.instagram.com/p/CkDHtOMutuF/
|
||||||
|
22-10-31-DKS-01,https://www.instagram.com/p/CkYipYaj_zI/
|
||||||
|
22-11-04-SOS-01,https://www.instagram.com/p/CkijGIBsOY5/
|
||||||
|
22-11-15-DKS-01,https://www.instagram.com/p/Ck-xYTUsCwG/
|
||||||
|
22-11-17-ESP-01,https://www.instagram.com/p/ClD1XPfs-eY/
|
||||||
|
22-11-21-DKS-01,https://www.instagram.com/p/ClOCI8cMpcQ/
|
||||||
|
22-11-23-ESP-01,https://www.instagram.com/p/ClTOqW6si5y/
|
||||||
|
22-11-25-KVR-01,https://www.instagram.com/p/ClYG2qWMu8A/
|
||||||
|
22-12-08-DKS-01,https://www.instagram.com/p/Cl6URpTjFDM/
|
||||||
|
22-12-10-ESP-01,https://www.instagram.com/p/Cl_zOtBMoSw/
|
||||||
|
22-12-14-ESP-01,https://www.instagram.com/p/CmKNryHrweM/
|
||||||
|
22-12-14-SOS-01,https://www.instagram.com/p/CmJYj_XMZmJ/
|
||||||
|
22-12-17-ESP-01,https://www.instagram.com/p/CmRla-bMFAh/
|
||||||
|
23-01-02-AID-01,https://www.instagram.com/p/Cm6P3ibMYf_/
|
||||||
|
23-01-09-ESP-01,https://www.instagram.com/p/CnMw5Absw16/
|
||||||
|
23-01-22-ESP-01,https://www.instagram.com/p/Cntv9KdMAqz/
|
||||||
|
23-01-22-LMR-01,https://www.instagram.com/p/Co9aJ75Mvq3/
|
||||||
|
23-01-26-ESP-01,https://www.instagram.com/p/Cn4fClrrteq/
|
||||||
|
23-01-27-ESP-01,https://www.instagram.com/p/Cn7G3L1sR_q/
|
||||||
|
23-01-30-KVR-01,https://www.instagram.com/p/CoCVg6oMlY9/
|
||||||
|
23-02-01-DKS-01,https://www.instagram.com/p/CoHyqr4osxC/
|
||||||
|
23-02-03-ESP-01,https://www.instagram.com/p/CoM8PXas2Nz/
|
||||||
|
23-02-07-ESP-01,https://www.instagram.com/p/CoWokV1sdax/
|
||||||
|
23-02-09-ESP-01,https://www.instagram.com/p/Cob-AQaMjB5/
|
||||||
|
23-02-09-LMR-01,https://www.instagram.com/p/CocWLyUM3WI/
|
||||||
|
23-02-20-AID-01,https://www.instagram.com/p/Co4jstPoQGH/
|
||||||
|
23-02-28-LMR-01,https://www.instagram.com/p/CpNTdnboE9Q/
|
||||||
|
23-03-02-LMR-01,https://www.instagram.com/p/CpS9nOxswJF/
|
||||||
|
23-03-04-ESP-01,https://www.instagram.com/p/CpXDlnCs07d/
|
||||||
|
23-03-07-ESP-01,https://www.instagram.com/p/CpfO2Fvs5W9/
|
||||||
|
23-03-08-DGS-01,https://www.instagram.com/p/CpiD4dQDWZu/
|
||||||
|
23-03-18-ESP-01,https://www.instagram.com/p/Cp703CDsUy5/
|
||||||
|
23-03-26-DKS-01,https://www.instagram.com/p/CqPgJxgoauN/
|
||||||
|
23-03-30-ESP-01,https://www.instagram.com/p/CqaYcx0Myin/
|
||||||
|
23-04-01-ESP-01,https://www.instagram.com/p/CqfR58TLOjQ/
|
||||||
|
23-04-04-LMR-01,https://www.instagram.com/p/Cqm0baNsryp/
|
||||||
|
23-04-06-ESP-01,https://www.instagram.com/p/CqsXuTPM1a2/
|
||||||
|
23-04-11-ESP-01,https://www.instagram.com/p/Cq4ripOsRf0/
|
||||||
|
23-04-14-LMR-01,https://www.instagram.com/p/CrAwt9fMqTZ/
|
||||||
|
23-04-15-ESP-01,https://www.instagram.com/p/CrDitlQMmPa/
|
||||||
|
23-04-17-ESP-01,https://www.instagram.com/p/CrI86jHMEt9/
|
||||||
|
23-04-20-ESP-01,https://www.instagram.com/p/CrQPgFFswAk/
|
||||||
|
23-04-23-DKS-01,https://www.instagram.com/p/CrYZgq5oCtn/
|
||||||
|
23-04-23-ESP-01,https://www.instagram.com/p/CrYDIJVs_rL/
|
||||||
|
23-04-24-LMR-01,https://www.instagram.com/p/CraPpU8MwBO/
|
||||||
|
23-04-25-ESP-01,https://www.instagram.com/p/CrdTptBMY9k/
|
||||||
|
23-04-29-ESP-01,https://www.instagram.com/p/CrnJSWGMLDq/
|
||||||
|
23-05-02-ESP-01,https://www.instagram.com/p/CrvCFBKM8aq/
|
||||||
|
23-05-11-ESP-01,https://www.instagram.com/p/CsGTtW8s8T8/
|
||||||
|
23-05-13-ESP-01,https://www.instagram.com/p/CsMfMF9szOd/
|
||||||
|
23-05-16-DKS-01,https://www.instagram.com/p/CsT2y0vtDZT/
|
||||||
|
23-06-07-SOS-01,https://www.instagram.com/p/CtLgno2M9o1/
|
||||||
|
23-06-08-ESP-01,https://www.instagram.com/p/CtPIFUDsycA/
|
||||||
|
23-06-18-ESP-01,https://www.instagram.com/p/Ctn_3rlsq-9/
|
||||||
|
23-06-20-ESP-01,https://www.instagram.com/p/CttMePcsCzm/
|
||||||
|
23-06-23-SOS-01,https://www.instagram.com/p/Ct1ynE2IAaK/
|
||||||
|
23-06-24-SOS-01,https://www.instagram.com/p/Ct4XZh5IQxA/
|
||||||
|
23-06-27-DKS-01,https://www.instagram.com/p/CuANugYs6U_/
|
||||||
|
23-06-30-SOS-01,https://www.instagram.com/p/CuHRAwOsM_T/
|
||||||
|
23-07-02-ESP-01,https://www.instagram.com/p/CuMWb9ysoFY/
|
||||||
|
23-07-10-ESP-01,https://www.instagram.com/p/CugzhN2LTqu/
|
||||||
|
23-08-03-DAN-01,https://www.instagram.com/p/CveZZILNQP0/
|
||||||
|
23-08-11-ESP-01,https://www.instagram.com/p/CvzznLnsZY8/
|
||||||
|
23-09-13-LMR-01,https://www.instagram.com/p/CxI949oMZjw/
|
||||||
|
23-09-15-ESP-01,https://www.instagram.com/p/CxNgoopsB6Y/
|
||||||
|
23-09-18-SOS-01,https://www.instagram.com/p/CxVg0wzgCuE/
|
||||||
|
23-09-20-AID-01,https://www.instagram.com/p/CxZ694Ssu7o/
|
||||||
|
23-09-22-ESP-01,https://www.instagram.com/p/Cxf1lEho3K9/
|
||||||
|
23-10-01-ESP-01,https://www.instagram.com/p/Cx3L9McomZq/
|
||||||
|
23-10-02-SOS-01,https://www.instagram.com/p/Cx5jB0HOjGS/
|
||||||
|
23-10-14-ESP-01,https://www.instagram.com/p/CyYeb4WsL2j/
|
||||||
|
23-10-23-LMR-01,https://www.instagram.com/p/CyvYi6Ssn8V/
|
||||||
|
23-10-27-ESP-01,https://www.instagram.com/p/Cy6G1wOs1WP/
|
||||||
|
23-11-04-ESP-01,https://www.instagram.com/p/CzOGRRzM_Ds/
|
||||||
|
23-11-16-ESP-01,https://www.instagram.com/p/CztsHRIsikr/
|
||||||
|
23-11-18-ESP-01,https://www.instagram.com/p/Czy1A_2sK7P/
|
||||||
|
23-11-19-ESP-01,https://www.instagram.com/p/Cz1XNg2sEwD/
|
||||||
|
23-11-21-ESP-01,https://www.instagram.com/p/Cz6n23Is3Zr/
|
||||||
|
23-11-22-ESP-01,https://www.instagram.com/p/Cz9OroEMObh/
|
||||||
|
23-11-25-ESP-01,https://www.instagram.com/p/C0EJWZks2hx/
|
||||||
|
23-12-01-ESP-01,https://www.instagram.com/p/C0UU9GKMCmC/
|
||||||
|
23-12-04-ESP-01,https://www.instagram.com/p/C0b_reVsxpL/
|
||||||
|
23-12-05-DAN-01,https://www.instagram.com/p/C0eiVRNslH8/
|
||||||
|
23-12-24-ESP-01,https://www.instagram.com/p/C1Oxtgxs_t9/
|
||||||
|
23-12-31-ESP-01,https://www.instagram.com/p/C1hMpP3seAb/
|
||||||
|
Generated
+276
-1
@@ -11,6 +11,25 @@ files = [
|
|||||||
{file = "annotated_types-0.6.0.tar.gz", hash = "sha256:563339e807e53ffd9c267e99fc6d9ea23eb8443c08f112651963e24e22f84a5d"},
|
{file = "annotated_types-0.6.0.tar.gz", hash = "sha256:563339e807e53ffd9c267e99fc6d9ea23eb8443c08f112651963e24e22f84a5d"},
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "attrs"
|
||||||
|
version = "23.2.0"
|
||||||
|
description = "Classes Without Boilerplate"
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=3.7"
|
||||||
|
files = [
|
||||||
|
{file = "attrs-23.2.0-py3-none-any.whl", hash = "sha256:99b87a485a5820b23b879f04c2305b44b951b502fd64be915879d77a7e8fc6f1"},
|
||||||
|
{file = "attrs-23.2.0.tar.gz", hash = "sha256:935dc3b529c262f6cf76e50877d35a4bd3c1de194fd41f47a2b7ae8f19971f30"},
|
||||||
|
]
|
||||||
|
|
||||||
|
[package.extras]
|
||||||
|
cov = ["attrs[tests]", "coverage[toml] (>=5.3)"]
|
||||||
|
dev = ["attrs[tests]", "pre-commit"]
|
||||||
|
docs = ["furo", "myst-parser", "sphinx", "sphinx-notfound-page", "sphinxcontrib-towncrier", "towncrier", "zope-interface"]
|
||||||
|
tests = ["attrs[tests-no-zope]", "zope-interface"]
|
||||||
|
tests-mypy = ["mypy (>=1.6)", "pytest-mypy-plugins"]
|
||||||
|
tests-no-zope = ["attrs[tests-mypy]", "cloudpickle", "hypothesis", "pympler", "pytest (>=4.3.0)", "pytest-xdist[psutil]"]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "blinker"
|
name = "blinker"
|
||||||
version = "1.7.0"
|
version = "1.7.0"
|
||||||
@@ -33,6 +52,70 @@ files = [
|
|||||||
{file = "certifi-2024.2.2.tar.gz", hash = "sha256:0569859f95fc761b18b45ef421b1290a0f65f147e92a1e5eb3e635f9a5e4e66f"},
|
{file = "certifi-2024.2.2.tar.gz", hash = "sha256:0569859f95fc761b18b45ef421b1290a0f65f147e92a1e5eb3e635f9a5e4e66f"},
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "cffi"
|
||||||
|
version = "1.16.0"
|
||||||
|
description = "Foreign Function Interface for Python calling C code."
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=3.8"
|
||||||
|
files = [
|
||||||
|
{file = "cffi-1.16.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:6b3d6606d369fc1da4fd8c357d026317fbb9c9b75d36dc16e90e84c26854b088"},
|
||||||
|
{file = "cffi-1.16.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ac0f5edd2360eea2f1daa9e26a41db02dd4b0451b48f7c318e217ee092a213e9"},
|
||||||
|
{file = "cffi-1.16.0-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7e61e3e4fa664a8588aa25c883eab612a188c725755afff6289454d6362b9673"},
|
||||||
|
{file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a72e8961a86d19bdb45851d8f1f08b041ea37d2bd8d4fd19903bc3083d80c896"},
|
||||||
|
{file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5b50bf3f55561dac5438f8e70bfcdfd74543fd60df5fa5f62d94e5867deca684"},
|
||||||
|
{file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7651c50c8c5ef7bdb41108b7b8c5a83013bfaa8a935590c5d74627c047a583c7"},
|
||||||
|
{file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e4108df7fe9b707191e55f33efbcb2d81928e10cea45527879a4749cbe472614"},
|
||||||
|
{file = "cffi-1.16.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:32c68ef735dbe5857c810328cb2481e24722a59a2003018885514d4c09af9743"},
|
||||||
|
{file = "cffi-1.16.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:673739cb539f8cdaa07d92d02efa93c9ccf87e345b9a0b556e3ecc666718468d"},
|
||||||
|
{file = "cffi-1.16.0-cp310-cp310-win32.whl", hash = "sha256:9f90389693731ff1f659e55c7d1640e2ec43ff725cc61b04b2f9c6d8d017df6a"},
|
||||||
|
{file = "cffi-1.16.0-cp310-cp310-win_amd64.whl", hash = "sha256:e6024675e67af929088fda399b2094574609396b1decb609c55fa58b028a32a1"},
|
||||||
|
{file = "cffi-1.16.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b84834d0cf97e7d27dd5b7f3aca7b6e9263c56308ab9dc8aae9784abb774d404"},
|
||||||
|
{file = "cffi-1.16.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1b8ebc27c014c59692bb2664c7d13ce7a6e9a629be20e54e7271fa696ff2b417"},
|
||||||
|
{file = "cffi-1.16.0-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ee07e47c12890ef248766a6e55bd38ebfb2bb8edd4142d56db91b21ea68b7627"},
|
||||||
|
{file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d8a9d3ebe49f084ad71f9269834ceccbf398253c9fac910c4fd7053ff1386936"},
|
||||||
|
{file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e70f54f1796669ef691ca07d046cd81a29cb4deb1e5f942003f401c0c4a2695d"},
|
||||||
|
{file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5bf44d66cdf9e893637896c7faa22298baebcd18d1ddb6d2626a6e39793a1d56"},
|
||||||
|
{file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7b78010e7b97fef4bee1e896df8a4bbb6712b7f05b7ef630f9d1da00f6444d2e"},
|
||||||
|
{file = "cffi-1.16.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:c6a164aa47843fb1b01e941d385aab7215563bb8816d80ff3a363a9f8448a8dc"},
|
||||||
|
{file = "cffi-1.16.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:e09f3ff613345df5e8c3667da1d918f9149bd623cd9070c983c013792a9a62eb"},
|
||||||
|
{file = "cffi-1.16.0-cp311-cp311-win32.whl", hash = "sha256:2c56b361916f390cd758a57f2e16233eb4f64bcbeee88a4881ea90fca14dc6ab"},
|
||||||
|
{file = "cffi-1.16.0-cp311-cp311-win_amd64.whl", hash = "sha256:db8e577c19c0fda0beb7e0d4e09e0ba74b1e4c092e0e40bfa12fe05b6f6d75ba"},
|
||||||
|
{file = "cffi-1.16.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:fa3a0128b152627161ce47201262d3140edb5a5c3da88d73a1b790a959126956"},
|
||||||
|
{file = "cffi-1.16.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:68e7c44931cc171c54ccb702482e9fc723192e88d25a0e133edd7aff8fcd1f6e"},
|
||||||
|
{file = "cffi-1.16.0-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:abd808f9c129ba2beda4cfc53bde801e5bcf9d6e0f22f095e45327c038bfe68e"},
|
||||||
|
{file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:88e2b3c14bdb32e440be531ade29d3c50a1a59cd4e51b1dd8b0865c54ea5d2e2"},
|
||||||
|
{file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fcc8eb6d5902bb1cf6dc4f187ee3ea80a1eba0a89aba40a5cb20a5087d961357"},
|
||||||
|
{file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b7be2d771cdba2942e13215c4e340bfd76398e9227ad10402a8767ab1865d2e6"},
|
||||||
|
{file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e715596e683d2ce000574bae5d07bd522c781a822866c20495e52520564f0969"},
|
||||||
|
{file = "cffi-1.16.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:2d92b25dbf6cae33f65005baf472d2c245c050b1ce709cc4588cdcdd5495b520"},
|
||||||
|
{file = "cffi-1.16.0-cp312-cp312-win32.whl", hash = "sha256:b2ca4e77f9f47c55c194982e10f058db063937845bb2b7a86c84a6cfe0aefa8b"},
|
||||||
|
{file = "cffi-1.16.0-cp312-cp312-win_amd64.whl", hash = "sha256:68678abf380b42ce21a5f2abde8efee05c114c2fdb2e9eef2efdb0257fba1235"},
|
||||||
|
{file = "cffi-1.16.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:0c9ef6ff37e974b73c25eecc13952c55bceed9112be2d9d938ded8e856138bcc"},
|
||||||
|
{file = "cffi-1.16.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a09582f178759ee8128d9270cd1344154fd473bb77d94ce0aeb2a93ebf0feaf0"},
|
||||||
|
{file = "cffi-1.16.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e760191dd42581e023a68b758769e2da259b5d52e3103c6060ddc02c9edb8d7b"},
|
||||||
|
{file = "cffi-1.16.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:80876338e19c951fdfed6198e70bc88f1c9758b94578d5a7c4c91a87af3cf31c"},
|
||||||
|
{file = "cffi-1.16.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a6a14b17d7e17fa0d207ac08642c8820f84f25ce17a442fd15e27ea18d67c59b"},
|
||||||
|
{file = "cffi-1.16.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6602bc8dc6f3a9e02b6c22c4fc1e47aa50f8f8e6d3f78a5e16ac33ef5fefa324"},
|
||||||
|
{file = "cffi-1.16.0-cp38-cp38-win32.whl", hash = "sha256:131fd094d1065b19540c3d72594260f118b231090295d8c34e19a7bbcf2e860a"},
|
||||||
|
{file = "cffi-1.16.0-cp38-cp38-win_amd64.whl", hash = "sha256:31d13b0f99e0836b7ff893d37af07366ebc90b678b6664c955b54561fc36ef36"},
|
||||||
|
{file = "cffi-1.16.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:582215a0e9adbe0e379761260553ba11c58943e4bbe9c36430c4ca6ac74b15ed"},
|
||||||
|
{file = "cffi-1.16.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:b29ebffcf550f9da55bec9e02ad430c992a87e5f512cd63388abb76f1036d8d2"},
|
||||||
|
{file = "cffi-1.16.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dc9b18bf40cc75f66f40a7379f6a9513244fe33c0e8aa72e2d56b0196a7ef872"},
|
||||||
|
{file = "cffi-1.16.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9cb4a35b3642fc5c005a6755a5d17c6c8b6bcb6981baf81cea8bfbc8903e8ba8"},
|
||||||
|
{file = "cffi-1.16.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b86851a328eedc692acf81fb05444bdf1891747c25af7529e39ddafaf68a4f3f"},
|
||||||
|
{file = "cffi-1.16.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c0f31130ebc2d37cdd8e44605fb5fa7ad59049298b3f745c74fa74c62fbfcfc4"},
|
||||||
|
{file = "cffi-1.16.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8f8e709127c6c77446a8c0a8c8bf3c8ee706a06cd44b1e827c3e6a2ee6b8c098"},
|
||||||
|
{file = "cffi-1.16.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:748dcd1e3d3d7cd5443ef03ce8685043294ad6bd7c02a38d1bd367cfd968e000"},
|
||||||
|
{file = "cffi-1.16.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:8895613bcc094d4a1b2dbe179d88d7fb4a15cee43c052e8885783fac397d91fe"},
|
||||||
|
{file = "cffi-1.16.0-cp39-cp39-win32.whl", hash = "sha256:ed86a35631f7bfbb28e108dd96773b9d5a6ce4811cf6ea468bb6a359b256b1e4"},
|
||||||
|
{file = "cffi-1.16.0-cp39-cp39-win_amd64.whl", hash = "sha256:3686dffb02459559c74dd3d81748269ffb0eb027c39a6fc99502de37d501faa8"},
|
||||||
|
{file = "cffi-1.16.0.tar.gz", hash = "sha256:bcb3ef43e58665bbda2fb198698fcae6776483e0c4a631aa5647806c25e02cc0"},
|
||||||
|
]
|
||||||
|
|
||||||
|
[package.dependencies]
|
||||||
|
pycparser = "*"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "charset-normalizer"
|
name = "charset-normalizer"
|
||||||
version = "3.3.2"
|
version = "3.3.2"
|
||||||
@@ -267,6 +350,17 @@ files = [
|
|||||||
{file = "dash_table-5.0.0.tar.gz", hash = "sha256:18624d693d4c8ef2ddec99a6f167593437a7ea0bf153aa20f318c170c5bc7308"},
|
{file = "dash_table-5.0.0.tar.gz", hash = "sha256:18624d693d4c8ef2ddec99a6f167593437a7ea0bf153aa20f318c170c5bc7308"},
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "decorator"
|
||||||
|
version = "5.1.1"
|
||||||
|
description = "Decorators for Humans"
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=3.5"
|
||||||
|
files = [
|
||||||
|
{file = "decorator-5.1.1-py3-none-any.whl", hash = "sha256:b8c3f85900b9dc423225913c5aace94729fe1fa9763b38939a95226f02d37186"},
|
||||||
|
{file = "decorator-5.1.1.tar.gz", hash = "sha256:637996211036b6385ef91435e4fae22989472f9d571faba8927ba8253acbc330"},
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "dnspython"
|
name = "dnspython"
|
||||||
version = "2.6.1"
|
version = "2.6.1"
|
||||||
@@ -345,6 +439,17 @@ gevent = ["gevent (>=1.4.0)"]
|
|||||||
setproctitle = ["setproctitle"]
|
setproctitle = ["setproctitle"]
|
||||||
tornado = ["tornado (>=0.2)"]
|
tornado = ["tornado (>=0.2)"]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "h11"
|
||||||
|
version = "0.14.0"
|
||||||
|
description = "A pure-Python, bring-your-own-I/O implementation of HTTP/1.1"
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=3.7"
|
||||||
|
files = [
|
||||||
|
{file = "h11-0.14.0-py3-none-any.whl", hash = "sha256:e3fe4ac4b851c468cc8363d500db52c2ead036020723024a109d37346efaa761"},
|
||||||
|
{file = "h11-0.14.0.tar.gz", hash = "sha256:8f19fbbe99e72420ff35c00b27a34cb9937e902a8b810e2c88300c6f0a3b699d"},
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "idna"
|
name = "idna"
|
||||||
version = "3.6"
|
version = "3.6"
|
||||||
@@ -596,6 +701,20 @@ files = [
|
|||||||
{file = "numpy-1.26.4.tar.gz", hash = "sha256:2a02aba9ed12e4ac4eb3ea9421c420301a0c6460d9830d74a9df87efa4912010"},
|
{file = "numpy-1.26.4.tar.gz", hash = "sha256:2a02aba9ed12e4ac4eb3ea9421c420301a0c6460d9830d74a9df87efa4912010"},
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "outcome"
|
||||||
|
version = "1.3.0.post0"
|
||||||
|
description = "Capture the outcome of Python function calls."
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=3.7"
|
||||||
|
files = [
|
||||||
|
{file = "outcome-1.3.0.post0-py2.py3-none-any.whl", hash = "sha256:e771c5ce06d1415e356078d3bdd68523f284b4ce5419828922b6871e65eda82b"},
|
||||||
|
{file = "outcome-1.3.0.post0.tar.gz", hash = "sha256:9dcf02e65f2971b80047b377468e72a268e15c0af3cf1238e6ff14f7f91143b8"},
|
||||||
|
]
|
||||||
|
|
||||||
|
[package.dependencies]
|
||||||
|
attrs = ">=19.2.0"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "packaging"
|
name = "packaging"
|
||||||
version = "23.2"
|
version = "23.2"
|
||||||
@@ -776,6 +895,17 @@ files = [
|
|||||||
packaging = "*"
|
packaging = "*"
|
||||||
tenacity = ">=6.2.0"
|
tenacity = ">=6.2.0"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "py"
|
||||||
|
version = "1.11.0"
|
||||||
|
description = "library with cross-python path, ini-parsing, io, code, log facilities"
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
|
||||||
|
files = [
|
||||||
|
{file = "py-1.11.0-py2.py3-none-any.whl", hash = "sha256:607c53218732647dff4acdfcd50cb62615cedf612e72d1724fb1a0cc6405b378"},
|
||||||
|
{file = "py-1.11.0.tar.gz", hash = "sha256:51c75c4126074b472f746a24399ad32f6053d1b34b68d2fa41e558e6f4a98719"},
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "pycodestyle"
|
name = "pycodestyle"
|
||||||
version = "2.11.1"
|
version = "2.11.1"
|
||||||
@@ -787,6 +917,17 @@ files = [
|
|||||||
{file = "pycodestyle-2.11.1.tar.gz", hash = "sha256:41ba0e7afc9752dfb53ced5489e89f8186be00e599e712660695b7a75ff2663f"},
|
{file = "pycodestyle-2.11.1.tar.gz", hash = "sha256:41ba0e7afc9752dfb53ced5489e89f8186be00e599e712660695b7a75ff2663f"},
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "pycparser"
|
||||||
|
version = "2.21"
|
||||||
|
description = "C parser in Python"
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
|
||||||
|
files = [
|
||||||
|
{file = "pycparser-2.21-py2.py3-none-any.whl", hash = "sha256:8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9"},
|
||||||
|
{file = "pycparser-2.21.tar.gz", hash = "sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206"},
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "pydantic"
|
name = "pydantic"
|
||||||
version = "2.6.1"
|
version = "2.6.1"
|
||||||
@@ -1011,6 +1152,18 @@ snappy = ["python-snappy"]
|
|||||||
test = ["pytest (>=7)"]
|
test = ["pytest (>=7)"]
|
||||||
zstd = ["zstandard"]
|
zstd = ["zstandard"]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "pysocks"
|
||||||
|
version = "1.7.1"
|
||||||
|
description = "A Python SOCKS client module. See https://github.com/Anorov/PySocks for more information."
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
|
||||||
|
files = [
|
||||||
|
{file = "PySocks-1.7.1-py27-none-any.whl", hash = "sha256:08e69f092cc6dbe92a0fdd16eeb9b9ffbc13cadfe5ca4c7bd92ffb078b293299"},
|
||||||
|
{file = "PySocks-1.7.1-py3-none-any.whl", hash = "sha256:2725bd0a9925919b9b51739eea5f9e2bae91e83288108a9ad338b2e3a4435ee5"},
|
||||||
|
{file = "PySocks-1.7.1.tar.gz", hash = "sha256:3f8804571ebe159c380ac6de37643bb4685970655d3bba243530d6558b799aa0"},
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "python-dateutil"
|
name = "python-dateutil"
|
||||||
version = "2.9.0"
|
version = "2.9.0"
|
||||||
@@ -1071,6 +1224,21 @@ urllib3 = ">=1.21.1,<3"
|
|||||||
socks = ["PySocks (>=1.5.6,!=1.5.7)"]
|
socks = ["PySocks (>=1.5.6,!=1.5.7)"]
|
||||||
use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"]
|
use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "retry"
|
||||||
|
version = "0.9.2"
|
||||||
|
description = "Easy to use retry decorator."
|
||||||
|
optional = false
|
||||||
|
python-versions = "*"
|
||||||
|
files = [
|
||||||
|
{file = "retry-0.9.2-py2.py3-none-any.whl", hash = "sha256:ccddf89761fa2c726ab29391837d4327f819ea14d244c232a1d24c67a2f98606"},
|
||||||
|
{file = "retry-0.9.2.tar.gz", hash = "sha256:f8bfa8b99b69c4506d6f5bd3b0aabf77f98cdb17f3c9fc3f5ca820033336fba4"},
|
||||||
|
]
|
||||||
|
|
||||||
|
[package.dependencies]
|
||||||
|
decorator = ">=3.4.2"
|
||||||
|
py = ">=1.4.26,<2.0.0"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "retrying"
|
name = "retrying"
|
||||||
version = "1.3.4"
|
version = "1.3.4"
|
||||||
@@ -1085,6 +1253,24 @@ files = [
|
|||||||
[package.dependencies]
|
[package.dependencies]
|
||||||
six = ">=1.7.0"
|
six = ">=1.7.0"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "selenium"
|
||||||
|
version = "4.18.1"
|
||||||
|
description = ""
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=3.8"
|
||||||
|
files = [
|
||||||
|
{file = "selenium-4.18.1-py3-none-any.whl", hash = "sha256:b24a3cdd2d47c29832e81345bfcde0c12bb608738013e53c781b211b418df241"},
|
||||||
|
{file = "selenium-4.18.1.tar.gz", hash = "sha256:a11f67afa8bfac6b77e148c987b33f6b14eb1cae4d352722a75de1f26e3f0ae2"},
|
||||||
|
]
|
||||||
|
|
||||||
|
[package.dependencies]
|
||||||
|
certifi = ">=2021.10.8"
|
||||||
|
trio = ">=0.17,<1.0"
|
||||||
|
trio-websocket = ">=0.9,<1.0"
|
||||||
|
typing_extensions = ">=4.9.0"
|
||||||
|
urllib3 = {version = ">=1.26,<3", extras = ["socks"]}
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "setuptools"
|
name = "setuptools"
|
||||||
version = "69.1.0"
|
version = "69.1.0"
|
||||||
@@ -1112,6 +1298,28 @@ files = [
|
|||||||
{file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"},
|
{file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"},
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "sniffio"
|
||||||
|
version = "1.3.1"
|
||||||
|
description = "Sniff out which async library your code is running under"
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=3.7"
|
||||||
|
files = [
|
||||||
|
{file = "sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2"},
|
||||||
|
{file = "sniffio-1.3.1.tar.gz", hash = "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc"},
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "sortedcontainers"
|
||||||
|
version = "2.4.0"
|
||||||
|
description = "Sorted Containers -- Sorted List, Sorted Dict, Sorted Set"
|
||||||
|
optional = false
|
||||||
|
python-versions = "*"
|
||||||
|
files = [
|
||||||
|
{file = "sortedcontainers-2.4.0-py2.py3-none-any.whl", hash = "sha256:a163dcaede0f1c021485e957a39245190e74249897e2ae4b2aa38595db237ee0"},
|
||||||
|
{file = "sortedcontainers-2.4.0.tar.gz", hash = "sha256:25caa5a06cc30b6b83d11423433f65d1f9d76c4c6a0c90e3379eaa43b9bfdb88"},
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "tenacity"
|
name = "tenacity"
|
||||||
version = "8.2.3"
|
version = "8.2.3"
|
||||||
@@ -1126,6 +1334,40 @@ files = [
|
|||||||
[package.extras]
|
[package.extras]
|
||||||
doc = ["reno", "sphinx", "tornado (>=4.5)"]
|
doc = ["reno", "sphinx", "tornado (>=4.5)"]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "trio"
|
||||||
|
version = "0.24.0"
|
||||||
|
description = "A friendly Python library for async concurrency and I/O"
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=3.8"
|
||||||
|
files = [
|
||||||
|
{file = "trio-0.24.0-py3-none-any.whl", hash = "sha256:c3bd3a4e3e3025cd9a2241eae75637c43fe0b9e88b4c97b9161a55b9e54cd72c"},
|
||||||
|
{file = "trio-0.24.0.tar.gz", hash = "sha256:ffa09a74a6bf81b84f8613909fb0beaee84757450183a7a2e0b47b455c0cac5d"},
|
||||||
|
]
|
||||||
|
|
||||||
|
[package.dependencies]
|
||||||
|
attrs = ">=20.1.0"
|
||||||
|
cffi = {version = ">=1.14", markers = "os_name == \"nt\" and implementation_name != \"pypy\""}
|
||||||
|
idna = "*"
|
||||||
|
outcome = "*"
|
||||||
|
sniffio = ">=1.3.0"
|
||||||
|
sortedcontainers = "*"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "trio-websocket"
|
||||||
|
version = "0.11.1"
|
||||||
|
description = "WebSocket library for Trio"
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=3.7"
|
||||||
|
files = [
|
||||||
|
{file = "trio-websocket-0.11.1.tar.gz", hash = "sha256:18c11793647703c158b1f6e62de638acada927344d534e3c7628eedcb746839f"},
|
||||||
|
{file = "trio_websocket-0.11.1-py3-none-any.whl", hash = "sha256:520d046b0d030cf970b8b2b2e00c4c2245b3807853ecd44214acd33d74581638"},
|
||||||
|
]
|
||||||
|
|
||||||
|
[package.dependencies]
|
||||||
|
trio = ">=0.11"
|
||||||
|
wsproto = ">=0.14"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "types-pillow"
|
name = "types-pillow"
|
||||||
version = "10.2.0.20240213"
|
version = "10.2.0.20240213"
|
||||||
@@ -1170,12 +1412,31 @@ files = [
|
|||||||
{file = "urllib3-2.2.1.tar.gz", hash = "sha256:d0570876c61ab9e520d776c38acbbb5b05a776d3f9ff98a5c8fd5162a444cf19"},
|
{file = "urllib3-2.2.1.tar.gz", hash = "sha256:d0570876c61ab9e520d776c38acbbb5b05a776d3f9ff98a5c8fd5162a444cf19"},
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[package.dependencies]
|
||||||
|
pysocks = {version = ">=1.5.6,<1.5.7 || >1.5.7,<2.0", optional = true, markers = "extra == \"socks\""}
|
||||||
|
|
||||||
[package.extras]
|
[package.extras]
|
||||||
brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)"]
|
brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)"]
|
||||||
h2 = ["h2 (>=4,<5)"]
|
h2 = ["h2 (>=4,<5)"]
|
||||||
socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"]
|
socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"]
|
||||||
zstd = ["zstandard (>=0.18.0)"]
|
zstd = ["zstandard (>=0.18.0)"]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "webdriver-manager"
|
||||||
|
version = "4.0.1"
|
||||||
|
description = "Library provides the way to automatically manage drivers for different browsers"
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=3.7"
|
||||||
|
files = [
|
||||||
|
{file = "webdriver_manager-4.0.1-py2.py3-none-any.whl", hash = "sha256:d7970052295bb9cda2c1a24cf0b872dd2c41ababcc78f7b6b8dc37a41e979a7e"},
|
||||||
|
{file = "webdriver_manager-4.0.1.tar.gz", hash = "sha256:25ec177c6a2ce9c02fb8046f1b2732701a9418d6a977967bb065d840a3175d87"},
|
||||||
|
]
|
||||||
|
|
||||||
|
[package.dependencies]
|
||||||
|
packaging = "*"
|
||||||
|
python-dotenv = "*"
|
||||||
|
requests = "*"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "werkzeug"
|
name = "werkzeug"
|
||||||
version = "3.0.1"
|
version = "3.0.1"
|
||||||
@@ -1193,6 +1454,20 @@ MarkupSafe = ">=2.1.1"
|
|||||||
[package.extras]
|
[package.extras]
|
||||||
watchdog = ["watchdog (>=2.3)"]
|
watchdog = ["watchdog (>=2.3)"]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "wsproto"
|
||||||
|
version = "1.2.0"
|
||||||
|
description = "WebSockets state-machine based protocol implementation"
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=3.7.0"
|
||||||
|
files = [
|
||||||
|
{file = "wsproto-1.2.0-py3-none-any.whl", hash = "sha256:b9acddd652b585d75b20477888c56642fdade28bdfd3579aa24a4d2c037dd736"},
|
||||||
|
{file = "wsproto-1.2.0.tar.gz", hash = "sha256:ad565f26ecb92588a3e43bc3d96164de84cd9902482b130d0ddbaa9664a85065"},
|
||||||
|
]
|
||||||
|
|
||||||
|
[package.dependencies]
|
||||||
|
h11 = ">=0.9.0,<1"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "zipp"
|
name = "zipp"
|
||||||
version = "3.17.0"
|
version = "3.17.0"
|
||||||
@@ -1211,4 +1486,4 @@ testing = ["big-O", "jaraco.functools", "jaraco.itertools", "more-itertools", "p
|
|||||||
[metadata]
|
[metadata]
|
||||||
lock-version = "2.0"
|
lock-version = "2.0"
|
||||||
python-versions = "^3.12"
|
python-versions = "^3.12"
|
||||||
content-hash = "e6b6337f7d3ac3a0dbb411f813676426cf7369228c885039b2e53787b51ca1ae"
|
content-hash = "849178e665e9a43935d7508528a82d8e0e173020b9ee4256e6a25d3e607f1bd8"
|
||||||
|
|||||||
@@ -29,6 +29,9 @@ types-pillow = "^10.2.0.20240213"
|
|||||||
|
|
||||||
[tool.poetry.group.dev.dependencies]
|
[tool.poetry.group.dev.dependencies]
|
||||||
pandas = "^2.2.1"
|
pandas = "^2.2.1"
|
||||||
|
selenium = "^4.18.1"
|
||||||
|
webdriver-manager = "^4.0.1"
|
||||||
|
retry = "^0.9.2"
|
||||||
|
|
||||||
[build-system]
|
[build-system]
|
||||||
requires = ["poetry-core"]
|
requires = ["poetry-core"]
|
||||||
|
|||||||
@@ -17,6 +17,8 @@ from src.database import connect
|
|||||||
from src.database import get_visual_communication
|
from src.database import get_visual_communication
|
||||||
from src.database import ModelOutputs
|
from src.database import ModelOutputs
|
||||||
from src.database import NoDocumentFoundException
|
from src.database import NoDocumentFoundException
|
||||||
|
from src.database import total_annotated
|
||||||
|
from src.database import total_documents
|
||||||
from src.database import upsert_annotations
|
from src.database import upsert_annotations
|
||||||
from src.database import upsert_visual_communication
|
from src.database import upsert_visual_communication
|
||||||
from src.database import VisualCommunication
|
from src.database import VisualCommunication
|
||||||
@@ -66,6 +68,27 @@ def show_success(
|
|||||||
return True, msg
|
return True, msg
|
||||||
|
|
||||||
|
|
||||||
|
@app.callback(
|
||||||
|
Output('progress-bar', 'value'),
|
||||||
|
Output('progress-bar', 'max'),
|
||||||
|
Output('progress-bar', 'label'),
|
||||||
|
Input('next-button', 'n_clicks'),
|
||||||
|
Input('upload-data', 'filename'),
|
||||||
|
)
|
||||||
|
def update_progress_bar(
|
||||||
|
n_clicks: int,
|
||||||
|
filename_list: list[str] | None,
|
||||||
|
):
|
||||||
|
logging.info('began updating progress bar')
|
||||||
|
global collection
|
||||||
|
# get values from database
|
||||||
|
num_total = total_documents(collection=collection)
|
||||||
|
num_handled = total_annotated(collection=collection)
|
||||||
|
limit = int(num_total/20)
|
||||||
|
label_str = f"{num_handled}/{num_total}" if num_handled >= limit else ''
|
||||||
|
return num_handled, num_total, label_str
|
||||||
|
|
||||||
|
|
||||||
@app.callback(
|
@app.callback(
|
||||||
Output('success-message', 'data', allow_duplicate=True),
|
Output('success-message', 'data', allow_duplicate=True),
|
||||||
Output('alert-message', 'data', allow_duplicate=True),
|
Output('alert-message', 'data', allow_duplicate=True),
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
|
import dash_bootstrap_components as dbc
|
||||||
import dash_mantine_components as dmc
|
import dash_mantine_components as dmc
|
||||||
from dash import dcc
|
from dash import dcc
|
||||||
from dash import html
|
from dash import html
|
||||||
@@ -14,6 +15,17 @@ title_element = dmc.Center(
|
|||||||
],
|
],
|
||||||
)
|
)
|
||||||
|
|
||||||
|
progress_bar_element = dbc.Progress(
|
||||||
|
id='progress-bar',
|
||||||
|
max=100,
|
||||||
|
value=0,
|
||||||
|
color='lime',
|
||||||
|
label='',
|
||||||
|
style={
|
||||||
|
'width': '400px',
|
||||||
|
},
|
||||||
|
)
|
||||||
|
|
||||||
upload_button_element = dcc.Upload(
|
upload_button_element = dcc.Upload(
|
||||||
children=[
|
children=[
|
||||||
dmc.Button(
|
dmc.Button(
|
||||||
@@ -37,6 +49,7 @@ header_element = dmc.Header(
|
|||||||
dmc.Group(
|
dmc.Group(
|
||||||
children=[
|
children=[
|
||||||
title_element,
|
title_element,
|
||||||
|
progress_bar_element,
|
||||||
upload_button_element,
|
upload_button_element,
|
||||||
],
|
],
|
||||||
position='apart',
|
position='apart',
|
||||||
|
|||||||
@@ -1,23 +1,13 @@
|
|||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
import logging
|
|
||||||
import os
|
|
||||||
|
|
||||||
from dash import dcc
|
from dash import dcc
|
||||||
from dash import html
|
from dash import html
|
||||||
|
|
||||||
storage_type = 'session'
|
|
||||||
if 'ENV' in os.environ and os.getenv('ENV') == 'DEV':
|
|
||||||
storage_type = 'memory'
|
|
||||||
logging.info(
|
|
||||||
'ENV=DEV -> dcc.Stores changed to storage_type=%s',
|
|
||||||
storage_type,
|
|
||||||
)
|
|
||||||
|
|
||||||
stores_element = html.Div(
|
stores_element = html.Div(
|
||||||
children=[
|
children=[
|
||||||
dcc.Store(id='alert-message', storage_type=storage_type, data=''),
|
dcc.Store(id='alert-message', data=''),
|
||||||
dcc.Store(id='success-message', storage_type=storage_type, data=''),
|
dcc.Store(id='success-message', data=''),
|
||||||
dcc.Store(id='vis-com-name', storage_type=storage_type, data=''),
|
dcc.Store(id='vis-com-name', data=''),
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user