diff --git a/.gitignore b/.gitignore
index ec358d5..168e8fc 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,4 +3,5 @@ dataset/*
dataset
dist
image_search.egg-info
-**/.vscode/*
\ No newline at end of file
+**/.vscode/*
+bing_image_downloader.egg-info
\ No newline at end of file
diff --git a/README.md b/README.md
index 7d251db..cafd119 100644
--- a/README.md
+++ b/README.md
@@ -30,7 +30,7 @@ pip install .
### Usage
```python
from bing_image_downloader import downloader
-downloader.download(query_string, limit=100, output_dir='dataset', adult_filter_off=True, force_replace=False, timeout=60, verbose=True)
+downloader.download(query_string, limit=100, output_dir='dataset', adult_filter_off=True, force_replace=False, timeout=60,resize=(224,224) ,verbose=True)
```
`query_string` : String to be searched.
diff --git a/bing_image_downloader/bing.py b/bing_image_downloader/bing.py
index 4156678..39f5633 100644
--- a/bing_image_downloader/bing.py
+++ b/bing_image_downloader/bing.py
@@ -4,15 +4,34 @@
import imghdr
import posixpath
import re
+from PIL import Image
+from io import BytesIO
+import io
+
'''
Python api to download image form Bing.
Author: Guru Prasad (g.gaurav541@gmail.com)
'''
+def image_to_byte_array(image: Image) -> bytes:
+ imgByteArr = io.BytesIO()
+ image.save(imgByteArr, format="PNG")
+ imgByteArr = imgByteArr.getvalue()
+ return imgByteArr
+
+
+def resize(url,size: tuple):
+ response = urllib.request.urlopen(url)
+ img = Image.open(BytesIO(response.read()))
+ img=img.resize(size=size,resample=Image.LANCZOS)
+ #kl=image_to_byte_array(img)
+ # with open('pn.png','wb') as f:
+ # f.write(kl)
+ return img
class Bing:
- def __init__(self, query, limit, output_dir, adult, timeout, filter='', verbose=True):
+ def __init__(self, query, limit, output_dir, adult, timeout, filter='',resize=None, verbose=True):
self.download_count = 0
self.query = query
self.output_dir = output_dir
@@ -20,11 +39,14 @@ def __init__(self, query, limit, output_dir, adult, timeout, filter='', verbose
self.filter = filter
self.verbose = verbose
self.seen = set()
+
assert type(limit) == int, "limit must be integer"
self.limit = limit
assert type(timeout) == int, "timeout must be integer"
self.timeout = timeout
+ assert (type(resize)==tuple) or (resize is None), "resize must be a tuple(height,width)"
+ self.resize=resize
# self.headers = {'User-Agent': 'Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0'}
self.page_counter = 0
@@ -54,16 +76,30 @@ def get_filter(self, shorthand):
def save_image(self, link, file_path):
- request = urllib.request.Request(link, None, self.headers)
- image = urllib.request.urlopen(request, timeout=self.timeout).read()
- if not imghdr.what(None, image):
- print('[Error]Invalid image, not saving {}\n'.format(link))
- raise ValueError('Invalid image, not saving {}\n'.format(link))
- with open(str(file_path), 'wb') as f:
- f.write(image)
+ if not self.resize:
-
+ request = urllib.request.Request(link, None, self.headers)
+ image = urllib.request.urlopen(request, timeout=self.timeout).read()
+ if not imghdr.what(None, image):
+ print('[Error]Invalid image, not saving {}\n'.format(link))
+ raise ValueError('Invalid image, not saving {}\n'.format(link))
+ with open(str(file_path), 'wb') as f:
+ f.write(image)
+ elif self.resize:
+ request = urllib.request.Request(link, None, self.headers)
+
+ img=resize(request,size=self.resize)
+ image=image_to_byte_array(img)
+ # if not imghdr.what(None, image):
+ # print('[Error]Invalid image, not saving {}\n'.format(link))
+ # raise ValueError('Invalid image, not saving {}\n'.format(link))
+ with open(str(file_path), 'wb') as f:
+ f.write(image)
+
+
+
def download_image(self, link):
+
self.download_count += 1
# Get the image link
try:
diff --git a/bing_image_downloader/downloader.py b/bing_image_downloader/downloader.py
index 9f77156..9c4935c 100644
--- a/bing_image_downloader/downloader.py
+++ b/bing_image_downloader/downloader.py
@@ -9,7 +9,7 @@
def download(query, limit=100, output_dir='dataset', adult_filter_off=True,
-force_replace=False, timeout=60, filter="", verbose=True):
+force_replace=False, timeout=60, filter="",resize=None, verbose=True):
# engine = 'bing'
if adult_filter_off:
@@ -34,7 +34,7 @@ def download(query, limit=100, output_dir='dataset', adult_filter_off=True,
sys.exit(1)
print("[%] Downloading Images to {}".format(str(image_dir.absolute())))
- bing = Bing(query, limit, image_dir, adult, timeout, filter, verbose)
+ bing = Bing(query, limit, image_dir, adult, timeout, filter,resize, verbose)
bing.run()
diff --git a/requirements.txt b/requirements.txt
index e69de29..14954e4 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -0,0 +1,387 @@
+absl-py==1.0.0
+aiohttp==3.8.1
+aiohttp-retry==2.4.6
+aiosignal==1.2.0
+alabaster @ file:///home/ktietz/src/ci/alabaster_1611921544520/work
+anaconda-client @ file:///C:/ci/anaconda-client_1635342725944/work
+anaconda-navigator==2.1.1
+anaconda-project @ file:///tmp/build/80754af9/anaconda-project_1626085644852/work
+anyio @ file:///C:/ci/anyio_1620153135622/work/dist
+appdirs==1.4.4
+argh==0.26.2
+argon2-cffi @ file:///C:/ci/argon2-cffi_1613037869401/work
+arrow @ file:///C:/ci/arrow_1617738834352/work
+asn1crypto @ file:///tmp/build/80754af9/asn1crypto_1596577642040/work
+astroid @ file:///C:/ci/astroid_1628063282661/work
+astropy @ file:///C:/ci/astropy_1629829318700/work
+astunparse==1.6.3
+async-generator @ file:///home/ktietz/src/ci/async_generator_1611927993394/work
+async-timeout==4.0.2
+asyncssh==2.10.1
+atomicwrites==1.4.0
+atpublic==3.0.1
+attrs @ file:///tmp/build/80754af9/attrs_1620827162558/work
+autopep8 @ file:///tmp/build/80754af9/autopep8_1620866417880/work
+Babel @ file:///tmp/build/80754af9/babel_1620871417480/work
+backcall @ file:///home/ktietz/src/ci/backcall_1611930011877/work
+backports.functools-lru-cache @ file:///tmp/build/80754af9/backports.functools_lru_cache_1618170165463/work
+backports.shutil-get-terminal-size @ file:///tmp/build/80754af9/backports.shutil_get_terminal_size_1608222128777/work
+backports.tempfile @ file:///home/linux1/recipes/ci/backports.tempfile_1610991236607/work
+backports.weakref==1.0.post1
+bcrypt @ file:///C:/ci/bcrypt_1607022693089/work
+beautifulsoup4 @ file:///tmp/build/80754af9/beautifulsoup4_1631874778482/work
+binaryornot @ file:///tmp/build/80754af9/binaryornot_1617751525010/work
+bing-image-downloader==1.1.2
+bitarray @ file:///C:/ci/bitarray_1629133068652/work
+bkcharts==0.2
+black==19.10b0
+bleach @ file:///tmp/build/80754af9/bleach_1628110601003/work
+bokeh @ file:///C:/ci/bokeh_1635306491714/work
+boto==2.49.0
+boto3==1.22.4
+botocore==1.25.4
+Bottleneck @ file:///C:/ci/bottleneck_1607557040328/work
+brotlipy==0.7.0
+cached-property @ file:///tmp/build/80754af9/cached-property_1600785575025/work
+cachetools==5.0.0
+cassandra-driver==3.25.0
+certifi==2021.10.8
+cffi @ file:///C:/ci/cffi_1625831756778/work
+chardet @ file:///C:/ci/chardet_1607706937985/work
+charset-normalizer @ file:///tmp/build/80754af9/charset-normalizer_1630003229654/work
+click==8.0.3
+cloudpickle @ file:///tmp/build/80754af9/cloudpickle_1632508026186/work
+clyent==1.2.2
+colorama @ file:///tmp/build/80754af9/colorama_1607707115595/work
+commonmark==0.9.1
+comtypes==1.1.10
+conda==4.10.3
+conda-build==3.21.6
+conda-content-trust @ file:///tmp/build/80754af9/conda-content-trust_1617045594566/work
+conda-pack @ file:///tmp/build/80754af9/conda-pack_1611163042455/work
+conda-package-handling @ file:///C:/ci/conda-package-handling_1618262410900/work
+conda-repo-cli @ file:///tmp/build/80754af9/conda-repo-cli_1620168426516/work
+conda-token @ file:///tmp/build/80754af9/conda-token_1620076980546/work
+conda-verify==3.4.2
+configobj==5.0.6
+contextlib2 @ file:///Users/ktietz/demo/mc3/conda-bld/contextlib2_1630668244042/work
+cookiecutter @ file:///tmp/build/80754af9/cookiecutter_1617748928239/work
+cryptography @ file:///C:/ci/cryptography_1633520531101/work
+cycler==0.10.0
+Cython @ file:///C:/ci/cython_1636018292912/work
+cytoolz==0.11.0
+daal4py==2021.3.0
+dask==2021.10.0
+debugpy @ file:///C:/ci/debugpy_1629222819322/work
+decorator @ file:///tmp/build/80754af9/decorator_1632776554403/work
+defusedxml @ file:///tmp/build/80754af9/defusedxml_1615228127516/work
+dictdiffer==0.9.0
+diff-match-patch @ file:///Users/ktietz/demo/mc3/conda-bld/diff-match-patch_1630511840874/work
+diskcache==5.4.0
+distlib==0.3.4
+distributed @ file:///C:/ci/distributed_1635968318313/work
+distro==1.7.0
+dnspython==2.2.0
+docutils @ file:///C:/ci/docutils_1620828264669/work
+dpath==2.0.6
+dulwich==0.20.35
+dvc==2.10.2
+dvc-render==0.0.5
+dvclive==0.7.3
+entrypoints==0.3
+et-xmlfile==1.1.0
+fastcache @ file:///C:/ci/fastcache_1607571310570/work
+filelock @ file:///tmp/build/80754af9/filelock_1635402558181/work
+flake8 @ file:///tmp/build/80754af9/flake8_1620776156532/work
+Flask @ file:///home/ktietz/src/ci/flask_1611932660458/work
+flatbuffers==2.0
+flatten-dict==0.4.2
+flufl.lock==7.0
+fonttools==4.25.0
+frozenlist==1.3.0
+fsspec @ file:///tmp/build/80754af9/fsspec_1636116461911/work
+ftfy==6.1.1
+funcy==1.17
+future @ file:///C:/ci/future_1607568713721/work
+gast==0.5.3
+geomet==0.2.1.post1
+gevent @ file:///C:/ci/gevent_1628273776273/work
+gitdb==4.0.9
+GitPython==3.1.27
+glob2 @ file:///home/linux1/recipes/ci/glob2_1610991677669/work
+google-auth==2.6.6
+google-auth-oauthlib==0.4.6
+google-pasta==0.2.0
+grandalf==0.6
+greenlet @ file:///C:/ci/greenlet_1628888275363/work
+grpcio==1.44.0
+h5py @ file:///C:/ci/h5py_1622088609188/work
+HeapDict @ file:///Users/ktietz/demo/mc3/conda-bld/heapdict_1630598515714/work
+html5lib @ file:///Users/ktietz/demo/mc3/conda-bld/html5lib_1629144453894/work
+htmlmin==0.1.12
+idna @ file:///tmp/build/80754af9/idna_1622654382723/work
+imagecodecs @ file:///C:/ci/imagecodecs_1635511087451/work
+ImageHash==4.2.1
+imageio @ file:///tmp/build/80754af9/imageio_1617700267927/work
+imagesize @ file:///Users/ktietz/demo/mc3/conda-bld/imagesize_1628863108022/work
+importlib-metadata @ file:///C:/ci/importlib-metadata_1631916826748/work
+inflection==0.5.1
+iniconfig @ file:///home/linux1/recipes/ci/iniconfig_1610983019677/work
+intervaltree @ file:///Users/ktietz/demo/mc3/conda-bld/intervaltree_1630511889664/work
+ipykernel @ file:///C:/ci/ipykernel_1633545585502/work/dist/ipykernel-6.4.1-py3-none-any.whl
+ipython @ file:///C:/ci/ipython_1635944283918/work
+ipython-genutils @ file:///tmp/build/80754af9/ipython_genutils_1606773439826/work
+ipywidgets @ file:///tmp/build/80754af9/ipywidgets_1634143127070/work
+isort @ file:///tmp/build/80754af9/isort_1628603791788/work
+itsdangerous @ file:///tmp/build/80754af9/itsdangerous_1621432558163/work
+jdcal @ file:///Users/ktietz/demo/mc3/conda-bld/jdcal_1630584345063/work
+jedi @ file:///C:/ci/jedi_1611341083684/work
+Jinja2 @ file:///tmp/build/80754af9/jinja2_1612213139570/work
+jinja2-time @ file:///tmp/build/80754af9/jinja2-time_1617751524098/work
+jmespath==1.0.0
+joblib==1.0.1
+json5 @ file:///tmp/build/80754af9/json5_1624432770122/work
+jsonschema @ file:///Users/ktietz/demo/mc3/conda-bld/jsonschema_1630511932244/work
+jupyter @ file:///C:/ci/jupyter_1607685287094/work
+jupyter-client @ file:///tmp/build/80754af9/jupyter_client_1616770841739/work
+jupyter-console @ file:///tmp/build/80754af9/jupyter_console_1616615302928/work
+jupyter-core @ file:///C:/ci/jupyter_core_1633420716440/work
+jupyter-server @ file:///C:/ci/jupyter_server_1616084298419/work
+jupyterlab @ file:///tmp/build/80754af9/jupyterlab_1635799997693/work
+jupyterlab-pygments @ file:///tmp/build/80754af9/jupyterlab_pygments_1601490720602/work
+jupyterlab-server @ file:///tmp/build/80754af9/jupyterlab_server_1633419203660/work
+jupyterlab-widgets @ file:///tmp/build/80754af9/jupyterlab_widgets_1609884341231/work
+keras==2.8.0
+Keras-Preprocessing==1.1.2
+keyring @ file:///C:/ci/keyring_1629321702436/work
+Kivy==2.0.0
+kivy-deps.angle==0.3.1
+kivy-deps.glew==0.3.0
+kivy-deps.sdl2==0.3.1
+Kivy-Garden==0.1.4
+kiwisolver @ file:///C:/ci/kiwisolver_1612282555033/work
+lazy-object-proxy @ file:///C:/ci/lazy-object-proxy_1616529288960/work
+libarchive-c @ file:///tmp/build/80754af9/python-libarchive-c_1617780486945/work
+libclang==14.0.1
+llvmlite==0.37.0
+locket==0.2.1
+lxml @ file:///C:/ci/lxml_1616443418777/work
+mailchecker==4.1.16
+Markdown==3.3.6
+MarkupSafe==2.0.1
+matplotlib @ file:///C:/ci/matplotlib-suite_1634667159685/work
+matplotlib-inline @ file:///tmp/build/80754af9/matplotlib-inline_1628242447089/work
+mccabe==0.6.1
+menuinst @ file:///C:/ci/menuinst_1631733438520/work
+missingno==0.5.1
+mistune @ file:///C:/ci/mistune_1607359457024/work
+mkl-fft==1.3.1
+mkl-random @ file:///C:/ci/mkl_random_1626186184308/work
+mkl-service==2.4.0
+mock @ file:///tmp/build/80754af9/mock_1607622725907/work
+more-itertools @ file:///tmp/build/80754af9/more-itertools_1635423142362/work
+mpmath==1.2.1
+msgpack @ file:///C:/ci/msgpack-python_1612287350784/work
+multidict==6.0.2
+multimethod==1.7
+multipledispatch @ file:///C:/ci/multipledispatch_1607574329826/work
+munkres==1.1.4
+mypy-extensions==0.4.3
+mysql-connector-python==8.0.28
+nanotime==0.5.2
+navigator-updater==0.2.1
+nbclassic @ file:///tmp/build/80754af9/nbclassic_1616085367084/work
+nbclient @ file:///tmp/build/80754af9/nbclient_1614364831625/work
+nbconvert @ file:///C:/ci/nbconvert_1624479160025/work
+nbformat @ file:///tmp/build/80754af9/nbformat_1617383369282/work
+nest-asyncio @ file:///tmp/build/80754af9/nest-asyncio_1613680548246/work
+networkx @ file:///tmp/build/80754af9/networkx_1633639043937/work
+nltk==3.6.5
+nose @ file:///tmp/build/80754af9/nose_1606773131901/work
+notebook @ file:///C:/ci/notebook_1635393701545/work
+numba @ file:///C:/ci/numba_1635186062888/work
+numexpr @ file:///C:/ci/numexpr_1618856728739/work
+numpy @ file:///C:/ci/numpy_and_numpy_base_1626271900803/work
+numpydoc @ file:///tmp/build/80754af9/numpydoc_1605117425582/work
+oauthlib==3.2.0
+olefile @ file:///Users/ktietz/demo/mc3/conda-bld/olefile_1629805411829/work
+openpyxl @ file:///tmp/build/80754af9/openpyxl_1632777717936/work
+opt-einsum==3.3.0
+packaging @ file:///tmp/build/80754af9/packaging_1625611678980/work
+pandas @ file:///C:/ci/pandas_1635506685681/work
+pandas-profiling==3.1.0
+pandocfilters @ file:///C:/ci/pandocfilters_1605114832805/work
+paramiko @ file:///tmp/build/80754af9/paramiko_1598886428689/work
+parso @ file:///tmp/build/80754af9/parso_1617223946239/work
+partd @ file:///tmp/build/80754af9/partd_1618000087440/work
+path @ file:///C:/ci/path_1624287837534/work
+pathlib2 @ file:///C:/ci/pathlib2_1625585796814/work
+pathspec==0.9.0
+patsy==0.5.2
+pep8==1.7.1
+pexpect @ file:///tmp/build/80754af9/pexpect_1605563209008/work
+phik==0.12.0
+phonenumbers==8.12.47
+pickleshare @ file:///tmp/build/80754af9/pickleshare_1606932040724/work
+Pillow==8.4.0
+pkginfo==1.7.1
+platformdirs==2.5.0
+pluggy @ file:///C:/ci/pluggy_1615976440052/work
+ply==3.11
+poyo @ file:///tmp/build/80754af9/poyo_1617751526755/work
+prometheus-client @ file:///tmp/build/80754af9/prometheus_client_1623189609245/work
+prompt-toolkit @ file:///tmp/build/80754af9/prompt-toolkit_1633440160888/work
+protobuf==3.19.4
+psutil==5.9.0
+ptyprocess @ file:///tmp/build/80754af9/ptyprocess_1609355006118/work/dist/ptyprocess-0.7.0-py2.py3-none-any.whl
+py @ file:///tmp/build/80754af9/py_1607971587848/work
+pyasn1==0.4.8
+pyasn1-modules==0.2.8
+pycodestyle @ file:///tmp/build/80754af9/pycodestyle_1615748559966/work
+pycosat==0.6.3
+pycparser @ file:///tmp/build/80754af9/pycparser_1594388511720/work
+pycurl==7.44.1
+pydantic==1.9.0
+pydocstyle @ file:///tmp/build/80754af9/pydocstyle_1621600989141/work
+pydot==1.4.2
+pyerfa @ file:///C:/ci/pyerfa_1621560974055/work
+pyflakes @ file:///tmp/build/80754af9/pyflakes_1617200973297/work
+pygit2==1.9.1
+Pygments @ file:///tmp/build/80754af9/pygments_1629234116488/work
+pygtrie==2.4.2
+PyInputPlus==0.2.12
+PyJWT @ file:///C:/ci/pyjwt_1619682721924/work
+pylint @ file:///C:/ci/pylint_1627536884966/work
+pyls-spyder==0.4.0
+pymongo==4.0.1
+PyNaCl @ file:///C:/ci/pynacl_1607612759007/work
+pyodbc===4.0.0-unsupported
+pyOpenSSL @ file:///tmp/build/80754af9/pyopenssl_1635333100036/work
+pyparsing @ file:///tmp/build/80754af9/pyparsing_1635766073266/work
+pypiwin32==223
+pyreadline==2.1
+pyrsistent @ file:///C:/ci/pyrsistent_1636093225342/work
+PySimpleValidate==0.2.12
+PySocks @ file:///C:/ci/pysocks_1605307512533/work
+pytest==6.2.4
+python-benedict==0.25.1
+python-dateutil @ file:///tmp/build/80754af9/python-dateutil_1626374649649/work
+python-fsutil==0.6.0
+python-lsp-black @ file:///tmp/build/80754af9/python-lsp-black_1634232156041/work
+python-lsp-jsonrpc==1.0.0
+python-lsp-server==1.2.4
+python-slugify==6.1.2
+pytz==2021.3
+PyWavelets @ file:///C:/ci/pywavelets_1607645631519/work
+pywin32==228
+pywin32-ctypes @ file:///C:/ci/pywin32-ctypes_1607553594546/work
+pywinpty @ file:///C:/ci/pywinpty_1607419945780/work
+PyYAML==6.0
+pyzmq @ file:///C:/ci/pyzmq_1628276105793/work
+QDarkStyle @ file:///tmp/build/80754af9/qdarkstyle_1617386714626/work
+qstylizer @ file:///tmp/build/80754af9/qstylizer_1617713584600/work/dist/qstylizer-0.1.10-py2.py3-none-any.whl
+QtAwesome @ file:///tmp/build/80754af9/qtawesome_1615991616277/work
+qtconsole @ file:///tmp/build/80754af9/qtconsole_1632739723211/work
+QtPy @ file:///tmp/build/80754af9/qtpy_1629397026935/work
+regex @ file:///C:/ci/regex_1628063427816/work
+requests @ file:///tmp/build/80754af9/requests_1629994808627/work
+requests-oauthlib==1.3.1
+rich==12.3.0
+rope @ file:///tmp/build/80754af9/rope_1623703006312/work
+rsa==4.8
+Rtree @ file:///C:/ci/rtree_1618421015405/work
+ruamel-yaml-conda @ file:///C:/ci/ruamel_yaml_1616016898638/work
+ruamel.yaml==0.17.21
+ruamel.yaml.clib==0.2.6
+s3transfer==0.5.2
+scikit-image==0.18.3
+scikit-learn @ file:///C:/ci/scikit-learn_1622739499047/work
+scikit-learn-intelex==2021.20210714.120553
+scipy @ file:///C:/ci/scipy_1630606917240/work
+scmrepo==0.0.19
+seaborn @ file:///tmp/build/80754af9/seaborn_1629307859561/work
+Send2Trash @ file:///tmp/build/80754af9/send2trash_1632406701022/work
+shortuuid==1.0.8
+shtab==1.5.4
+simplegeneric==0.8.1
+simplejson==3.17.6
+singledispatch @ file:///tmp/build/80754af9/singledispatch_1629321204894/work
+sip==4.19.13
+six @ file:///tmp/build/80754af9/six_1623709665295/work
+smmap==5.0.0
+sniffio @ file:///C:/ci/sniffio_1614030527509/work
+snowballstemmer @ file:///tmp/build/80754af9/snowballstemmer_1611258885636/work
+sortedcollections @ file:///tmp/build/80754af9/sortedcollections_1611172717284/work
+sortedcontainers @ file:///tmp/build/80754af9/sortedcontainers_1623949099177/work
+soupsieve @ file:///tmp/build/80754af9/soupsieve_1616183228191/work
+Sphinx==4.2.0
+sphinxcontrib-applehelp @ file:///home/ktietz/src/ci/sphinxcontrib-applehelp_1611920841464/work
+sphinxcontrib-devhelp @ file:///home/ktietz/src/ci/sphinxcontrib-devhelp_1611920923094/work
+sphinxcontrib-htmlhelp @ file:///tmp/build/80754af9/sphinxcontrib-htmlhelp_1623945626792/work
+sphinxcontrib-jsmath @ file:///home/ktietz/src/ci/sphinxcontrib-jsmath_1611920942228/work
+sphinxcontrib-qthelp @ file:///home/ktietz/src/ci/sphinxcontrib-qthelp_1611921055322/work
+sphinxcontrib-serializinghtml @ file:///tmp/build/80754af9/sphinxcontrib-serializinghtml_1624451540180/work
+sphinxcontrib-websupport @ file:///tmp/build/80754af9/sphinxcontrib-websupport_1597081412696/work
+spyder @ file:///C:/ci/spyder_1636480369575/work
+spyder-kernels @ file:///C:/ci/spyder-kernels_1634237096710/work
+SQLAlchemy @ file:///C:/ci/sqlalchemy_1626948551162/work
+statsmodels==0.12.2
+stdiomask==0.0.6
+sympy @ file:///C:/ci/sympy_1635219088507/work
+tables==3.6.1
+tabulate==0.8.9
+tangled-up-in-unicode==0.1.0
+TBB==0.2
+tblib @ file:///Users/ktietz/demo/mc3/conda-bld/tblib_1629402031467/work
+tensorboard==2.8.0
+tensorboard-data-server==0.6.1
+tensorboard-plugin-wit==1.8.1
+tensorflow==2.8.0
+tensorflow-io-gcs-filesystem==0.25.0
+termcolor==1.1.0
+terminado==0.9.4
+testpath @ file:///tmp/build/80754af9/testpath_1624638946665/work
+text-unidecode @ file:///Users/ktietz/demo/mc3/conda-bld/text-unidecode_1629401354553/work
+textdistance @ file:///tmp/build/80754af9/textdistance_1612461398012/work
+tf-estimator-nightly==2.8.0.dev2021122109
+threadpoolctl @ file:///Users/ktietz/demo/mc3/conda-bld/threadpoolctl_1629802263681/work
+three-merge @ file:///tmp/build/80754af9/three-merge_1607553261110/work
+tifffile @ file:///tmp/build/80754af9/tifffile_1627275862826/work
+tinycss @ file:///tmp/build/80754af9/tinycss_1617713798712/work
+toml @ file:///tmp/build/80754af9/toml_1616166611790/work
+toolz @ file:///home/linux1/recipes/ci/toolz_1610987900194/work
+tornado @ file:///C:/ci/tornado_1606924294691/work
+tqdm==4.64.0
+traitlets @ file:///tmp/build/80754af9/traitlets_1632522747050/work
+typed-ast @ file:///C:/ci/typed-ast_1624953797214/work
+typing-extensions @ file:///tmp/build/80754af9/typing_extensions_1631814937681/work
+ujson @ file:///C:/ci/ujson_1611259568517/work
+unicodecsv==0.14.1
+Unidecode @ file:///tmp/build/80754af9/unidecode_1614712377438/work
+urllib3==1.26.7
+virtualenv==20.13.1
+visions==0.7.4
+voluptuous==0.13.1
+watchdog @ file:///C:/ci/watchdog_1624955113064/work
+wcwidth @ file:///Users/ktietz/demo/mc3/conda-bld/wcwidth_1629357192024/work
+webencodings==0.5.1
+Werkzeug @ file:///tmp/build/80754af9/werkzeug_1635505089296/work
+wget==3.2
+whichcraft @ file:///tmp/build/80754af9/whichcraft_1617751293875/work
+widgetsnbextension @ file:///C:/ci/widgetsnbextension_1607531582688/work
+win-inet-pton @ file:///C:/ci/win_inet_pton_1605306162074/work
+win-unicode-console==0.5
+wincertstore==0.2
+wrapt @ file:///C:/ci/wrapt_1607574570428/work
+xlrd @ file:///tmp/build/80754af9/xlrd_1608072521494/work
+XlsxWriter @ file:///tmp/build/80754af9/xlsxwriter_1628603415431/work
+xlwings==0.24.9
+xlwt==1.3.0
+xmltodict @ file:///Users/ktietz/demo/mc3/conda-bld/xmltodict_1629301980723/work
+yapf @ file:///tmp/build/80754af9/yapf_1615749224965/work
+yarl==1.7.2
+zc.lockfile==2.0
+zict==2.0.0
+zipp @ file:///tmp/build/80754af9/zipp_1633618647012/work
+zope.event==4.5.0
+zope.interface @ file:///C:/ci/zope.interface_1625036252485/work