module hackathon.image_helper

Short summary

module ensae_projects.hackathon.image_helper

Helpers for the hackathon 2017 (Label Emmaüs).

source on GitHub

Functions

function truncated documentation
enumerate_batch_features Enumerates all batches saved in a folder.
enumerate_image_class Lists all images in one folder assuming subfolders indicates the class of each image belongs to.
folder_split_train_test Splits images from a folder into train and test. The function saves images into two separate folders.
histogram_image_size Computes the distribution of images size.
image_zoom Resizes an image (from PIL).
img2gray Converts an image (PIL) to gray scale.
last_element Returns the last element of sequence assuming they were generated by an iterator or a generator.
load_batch_features Loads a batch file saved by stream_image2features().
plot_gallery_random_images Plots a gallery of images using matplotlib. Extracts a random sample from a folder which contains many images. …
read_image Reads an image.
resize_image Resizes an image until one of its dimension becomes smaller than maxdim after dividing the dimensions by two many …
stream_apply_image_transform Applies a transform on every image in a folder, saves it in another one. It keeps the same subfolders.
stream_copy_images Copies all images from src_folder to dest_folder if valid(name) is True.
stream_download_images Downloads images based on their urls.
stream_image2features Considers all images in a folder, transform them into features (function transform) and saves them with pickle
stream_random_sample Extracts a random sample from a folder which contains many images. Relies on fonction enumerate_image_class(). …

Documentation

Helpers for the hackathon 2017 (Label Emmaüs).

source on GitHub

ensae_projects.hackathon.image_helper.enumerate_batch_features(folder, batch_or_image=False)[source]

Enumerates all batches saved in a folder.

Parameters:
  • folder – folder where to find the batches.
  • batch_or_image – False to enumerate filenames, True for couple (features, class)
Returns:

enumerator

source on GitHub

ensae_projects.hackathon.image_helper.enumerate_image_class(folder, abspath=True, ext={'.jpg', '.png'})[source]

Lists all images in one folder assuming subfolders indicates the class of each image belongs to.

Parameters:
  • folder – folder
  • abspath – use absolute paths
  • ext – allowed extensions
Returns:

list of (filename, class)

source on GitHub

ensae_projects.hackathon.image_helper.folder_split_train_test(src_folder, dest_train, dest_test, seed=None, ext={'.jpg', '.png'}, test_size=0.25)[source]

Splits images from a folder into train and test. The function saves images into two separate folders.

Parameters:
  • src_folder – source folder
  • dest_train – destination folder for the train set
  • dest_test – destination folder for the test set
  • ext – desired extensions
  • seed – random seed
  • test_size – test ratio
Returns:

list of copied files in a 2-uple

The function relies on enumerate_image_class to extract the image from folder src_folder. The subfolder is used to perform a stratitied split.

source on GitHub

ensae_projects.hackathon.image_helper.histogram_image_size(folder, ext={'.jpg', '.png'})[source]

Computes the distribution of images size.

Parameters:
  • folder – folder
  • ext – allowed extensions
Returns:

histogram

source on GitHub

ensae_projects.hackathon.image_helper.image_zoom(img, new_size, **kwargs)[source]

Resizes an image (from PIL).

Parameters:
  • imgPIL.Image
  • new_size – size after zoom
  • kwargs – additional arguments
Returns:

new image

source on GitHub

ensae_projects.hackathon.image_helper.img2gray(img, mode='L')[source]

Converts an image (PIL) to gray scale.

Parameters:
  • img – see Image from PIL
  • mode'L' or 'LA'
Returns:

see Image from PIL

source on GitHub

ensae_projects.hackathon.image_helper.last_element(iter)[source]

Returns the last element of sequence assuming they were generated by an iterator or a generator.

Parameters:iter – iterator or generator
Returns:element

<<<

from ensae_projects.hackathon.image_helper import last_element


def gen():
    for i in range(10):
        yield "A%d" % i


print(last_element(gen()))

>>>

    A9

source on GitHub

ensae_projects.hackathon.image_helper.load_batch_features(batch_file)[source]

Loads a batch file saved by stream_image2features.

Parameters:batch_file – batch file
Returns:features, classes

source on GitHub

Plots a gallery of images using matplotlib. Extracts a random sample from a folder which contains many images. Relies on fonction enumerate_image_class. Calls plot_gallery_images to build the gallery.

Parameters:
  • folder – folder
  • n – number of requested images
  • seed – seed
  • ext – allowed extensions
  • kwargs – argument to send to matplotlib
Returns:

tuple (ax, random sample)

The function is a streaming function, it yields the current state of a sample drawn with the reservoir sampling algorithm. It also works with

source on GitHub

ensae_projects.hackathon.image_helper.read_image(filename_or_bytes)[source]

Reads an image.

Parameters:filename_or_bytes – filename or bytes
Returns:Image from PIL

source on GitHub

ensae_projects.hackathon.image_helper.resize_image(filename_or_bytes, maxdim=512, dest=None, format=None)[source]

Resizes an image until one of its dimension becomes smaller than maxdim after dividing the dimensions by two many times.

Parameters:
  • filename_or_bytes – filename or bytes
  • maxdim – maximum dimension
  • dest – if filename is a str
  • format – saved image format (if filename_or_bytes is bytes)
Returns:

same type

source on GitHub

ensae_projects.hackathon.image_helper.stream_apply_image_transform(src_folder, dest_folder, transform, ext={'.jpg', '.png'}, fLOG=None)[source]

Applies a transform on every image in a folder, saves it in another one. It keeps the same subfolders.

Parameters:
  • src_folder – source folder
  • dest_folder – destination folder
  • transform – function, trans(img) -> img
  • ext – image extension to consider
  • logging – function
Returns:

number of processed image

The function yields every created filename and returns an iterator.

Example:

list(stream_apply_image_transform(src, fest, lambda im: img2gray(im)))

source on GitHub

ensae_projects.hackathon.image_helper.stream_copy_images(src_folder, dest_folder, valid, ext={'.jpg', '.png'}, fLOG=None)[source]

Copies all images from src_folder to dest_folder if valid(name) is True.

Parameters:
  • src_folder – source folder
  • dest_folder – destination folder
  • valid – function valid(name) -> bool
  • ext – allowed extensions
  • fLOG – loggung function
Returns:

iterator on copied files

source on GitHub

ensae_projects.hackathon.image_helper.stream_download_images(urls, dest_folder, fLOG=None, use_request=None, skipif_done=True, dummys=None, skip=0)[source]

Downloads images based on their urls.

Parameters:
  • urls – filename or list of urls
  • dest_folder – destination folder
  • fLOG – logging function
  • use_request – None to let the function choose, True to use urllib3, False to use urllib.request.
  • skipif_done – skip if the image was already downloaded
  • dummys – some website returns a dummy image to tell there is no image at this specific address, if an image is part of this set of images, it is ignored, if the value is None, it is replaced by a default set of images
  • skip – skip the first images
Returns:

enumerator on created files

The function continue if an error occurs. Use fLOG=print to see which url failed. Parameter dummys can be set to avoid images like the following:

../../_images/empty.jpg

The function does not download an image already downloaded but still yields it.

source on GitHub

ensae_projects.hackathon.image_helper.stream_image2features(src_folder, dest_folder, transform, batch_size=1000, prefix='batch', ext={'.jpg', '.png'}, fLOG=None)[source]

Considers all images in a folder, transform them into features (function transform) and saves them with pickle into numpy arrays by batch.

Parameters:
  • src_folder – folder which contains images
  • dest_folder – destination of the batches
  • transform – from image to features, function, trans(img) -> numpy.array
  • batch_size – number of images to save together
  • prefix – prefix name for the batch files
  • ext – list of extensions to process
  • fLOG – logging function
Returns:

list of written files (iterator)

The function yields a batch file when one is ready. It does not wait the end before returning all of them. The saved files contains two arrays, first one for the features, second one for the classes.

Example:

list(stream_image2features(this, temp,
        lambda im: numpy.array(image_zoom(img2gray(im), (10, 12)))))

source on GitHub

ensae_projects.hackathon.image_helper.stream_random_sample(folder, n=1000, seed=None, abspath=True, ext={'.jpg', '.png'})[source]

Extracts a random sample from a folder which contains many images. Relies on fonction enumerate_image_class.

Parameters:
  • folder – folder
  • n – number of requested images
  • seed – seed
  • abspath – use absolute paths
  • ext – allowed extensions
Returns:

list of (filename, class)

The function is a streaming function, it yields the current state of a sample drawn with the reservoir sampling algorithm. It also works with

<<<

import os
from ensae_projects.hackathon.image_helper import stream_random_sample, last_element

this = os.path.join(os.path.dirname(__file__), '..')
res = last_element(stream_random_sample(
    this, abspath=False, ext={'.py', '.rst', '.pyc'}))
print(res)

>>>

    [('imghelper/__pycache__/__init__.cpython-37.pyc', '__pycache__'), ('imghelper/__pycache__/js_helper.cpython-37.pyc', '__pycache__'), ('imghelper/__pycache__/svg_helper.cpython-37.pyc', '__pycache__'), ('imghelper/__pycache__/excs.cpython-37.pyc', '__pycache__'), ('imghelper/svg_helper.py', 'imghelper'), ('imghelper/__init__.py', 'imghelper'), ('imghelper/excs.py', 'imghelper'), ('imghelper/js_helper.py', 'imghelper'), ('benchhelper/__pycache__/__init__.cpython-37.pyc', '__pycache__'), ('benchhelper/__pycache__/benchmark.cpython-37.pyc', '__pycache__'), ('benchhelper/__pycache__/grid_benchmark.cpython-37.pyc', '__pycache__'), ('benchhelper/benchmark.py', 'benchhelper'), ('benchhelper/__init__.py', 'benchhelper'), ('benchhelper/grid_benchmark.py', 'benchhelper'), ('pycode/__pycache__/unittestclass.cpython-37.pyc', '__pycache__'), ('pycode/__pycache__/setup_helper.cpython-37.pyc', '__pycache__'), ('pycode/__pycache__/utils_tests_helper.cpython-37.pyc', '__pycache__'), ('pycode/__pycache__/coverage_helper.cpython-37.pyc', '__pycache__'), ('pycode/__pycache__/py3to2.cpython-37.pyc', '__pycache__'), ('pycode/__pycache__/code_exceptions.cpython-37.pyc', '__pycache__'), ('pycode/__pycache__/utils_tests.cpython-37.pyc', '__pycache__'), ('pycode/__pycache__/pytest_helper.cpython-37.pyc', '__pycache__'), ('pycode/__pycache__/utils_tests_stringio.cpython-37.pyc', '__pycache__'), ('pycode/__pycache__/__init__.cpython-37.pyc', '__pycache__'), ('pycode/__pycache__/code_helper.cpython-37.pyc', '__pycache__'), ('pycode/__pycache__/call_setup_hook.cpython-37.pyc', '__pycache__'), ('pycode/__pycache__/default_regular_expression.cpython-37.pyc', '__pycache__'), ('pycode/__pycache__/_pylint_common.cpython-37.pyc', '__pycache__'), ('pycode/__pycache__/readme_helper.cpython-37.pyc', '__pycache__'), ('pycode/__pycache__/trace_execution.cpython-37.pyc', '__pycache__'), ('pycode/__pycache__/build_helper.cpython-37.pyc', '__pycache__'), ('pycode/__pycache__/tkinter_helper.cpython-37.pyc', '__pycache__'), ('pycode/__pycache__/utils_tests_private.cpython-37.pyc', '__pycache__'), ('pycode/__pycache__/open_script_file.cpython-37.pyc', '__pycache__'), ('pycode/__pycache__/linux_scripts.cpython-37.pyc', '__pycache__'), ('pycode/__pycache__/pip_helper.cpython-37.pyc', '__pycache__'), ('pycode/__pycache__/clean_helper.cpython-37.pyc', '__pycache__'), ('pycode/__pycache__/blog_helper.cpython-37.pyc', '__pycache__'), ('pycode/__pycache__/windows_scripts.cpython-37.pyc', '__pycache__'), ('pycode/__pycache__/default_filter_warning.cpython-37.pyc', '__pycache__'), ('pycode/__pycache__/insetup_helper.cpython-37.pyc', '__pycache__'), ('pycode/__pycache__/venv_helper.cpython-37.pyc', '__pycache__'), ('pycode/__pycache__/ci_helper.cpython-37.pyc', '__pycache__'), ('pycode/windows_scripts.py', 'pycode'), ('pycode/unittestclass.py', 'pycode'), ('pycode/py3to2.py', 'pycode'), ('pycode/readme_helper.py', 'pycode'), ('pycode/utils_tests.py', 'pycode'), ('pycode/linux_scripts.py', 'pycode'), ('pycode/insetup_helper.py', 'pycode'), ('pycode/utils_tests_stringio.py', 'pycode'), ('pycode/utils_tests_helper.py', 'pycode'), ('pycode/blog_helper.py', 'pycode'), ('pycode/default_filter_warning.py', 'pycode'), ('pycode/call_setup_hook.py', 'pycode'), ('pycode/pytest_helper.py', 'pycode'), ('pycode/setup_helper.py', 'pycode'), ('pycode/coverage_helper.py', 'pycode'), ('pycode/ci_helper.py', 'pycode'), ('pycode/__init__.py', 'pycode'), ('pycode/default_regular_expression.py', 'pycode'), ('pycode/clean_helper.py', 'pycode'), ('pycode/tkinter_helper.py', 'pycode'), ('pycode/open_script_file.py', 'pycode'), ('pycode/pip_helper.py', 'pycode'), ('pycode/venv_helper.py', 'pycode'), ('pycode/code_helper.py', 'pycode'), ('pycode/code_exceptions.py', 'pycode'), ('pycode/utils_tests_private.py', 'pycode'), ('pycode/build_helper.py', 'pycode'), ('pycode/_pylint_common.py', 'pycode'), ('pycode/trace_execution.py', 'pycode'), ('helpgen/__pycache__/_fake_function_to_documentation.cpython-37.pyc', '__pycache__'), ('helpgen/__pycache__/install_custom.cpython-37.pyc', '__pycache__'), ('helpgen/__pycache__/sphinx_main_verification.cpython-37.pyc', '__pycache__'), ('helpgen/__pycache__/notebook_exporter.cpython-37.pyc', '__pycache__'), ('helpgen/__pycache__/sphinxm_custom_app.cpython-37.pyc', '__pycache__'), ('helpgen/__pycache__/helpgen_exceptions.cpython-37.pyc', '__pycache__'), ('helpgen/__pycache__/sphinx_main_missing_html_files.cpython-37.pyc', '__pycache__'), ('helpgen/__pycache__/sphinxm_mock_app.cpython-37.pyc', '__pycache__'), ('helpgen/__pycache__/sphinxm_convert_doc_sphinx_helper.cpython-37.pyc', '__pycache__'), ('helpgen/__pycache__/sphinx_main_helper.cpython-37.pyc', '__pycache__'), ('helpgen/__pycache__/__init__.cpython-37.pyc', '__pycache__'), ('helpgen/__pycache__/sphinx_main.cpython-37.pyc', '__pycache__'), ('helpgen/__pycache__/style_css_template.cpython-37.pyc', '__pycache__'), ('helpgen/__pycache__/utils_sphinx_config.cpython-37.pyc', '__pycache__'), ('helpgen/__pycache__/utils_sphinx_doc_helpers.cpython-37.pyc', '__pycache__'), ('helpgen/__pycache__/_nbconvert_preprocessor.cpython-37.pyc', '__pycache__'), ('helpgen/__pycache__/process_sphinx_cmd.cpython-37.pyc', '__pycache__'), ('helpgen/__pycache__/process_notebooks_cmd.cpython-37.pyc', '__pycache__'), ('helpgen/__pycache__/_my_doxypy.cpython-37.pyc', '__pycache__'), ('helpgen/__pycache__/pandoc_helper.cpython-37.pyc', '__pycache__'), ('helpgen/__pycache__/default_conf.cpython-37.pyc', '__pycache__'), ('helpgen/__pycache__/post_process_custom.cpython-37.pyc', '__pycache__'), ('helpgen/__pycache__/_nbconvert_config.cpython-37.pyc', '__pycache__'), ('helpgen/__pycache__/utils_sphinx_doc.cpython-37.pyc', '__pycache__'), ('helpgen/__pycache__/help_usage.cpython-37.pyc', '__pycache__'), ('helpgen/__pycache__/utils_pywin32.cpython-37.pyc', '__pycache__'), ('helpgen/__pycache__/sphinx_helper.cpython-37.pyc', '__pycache__'), ('helpgen/__pycache__/post_process.cpython-37.pyc', '__pycache__'), ('helpgen/__pycache__/process_notebook_api.cpython-37.pyc', '__pycache__'), ('helpgen/__pycache__/rst_converters.cpython-37.pyc', '__pycache__'), ('helpgen/__pycache__/markdown_helper.cpython-37.pyc', '__pycache__'), ('helpgen/__pycache__/install_js_dep.cpython-37.pyc', '__pycache__'), ('helpgen/__pycache__/process_notebooks.cpython-37.pyc', '__pycache__'), ('helpgen/__pycache__/stat_helper.cpython-37.pyc', '__pycache__'), ('helpgen/__pycache__/conf_path_tools.cpython-37.pyc', '__pycache__'), ('helpgen/sphinxm_mock_app.py', 'helpgen'), ('helpgen/_fake_function_to_documentation.py', 'helpgen'), ('helpgen/install_js_dep.py', 'helpgen'), ('helpgen/utils_sphinx_doc_helpers.py', 'helpgen'), ('helpgen/post_process_custom.py', 'helpgen'), ('helpgen/utils_sphinx_doc.py', 'helpgen'), ('helpgen/pandoc_helper.py', 'helpgen'), ('helpgen/_nbconvert_config.py', 'helpgen'), ('helpgen/default_conf.py', 'helpgen'), ('helpgen/sphinx_main_helper.py', 'helpgen'), ('helpgen/sphinx_main_verification.py', 'helpgen'), ('helpgen/sphinx_helper.py', 'helpgen'), ('helpgen/process_notebooks.py', 'helpgen'), ('helpgen/sphinx_main_missing_html_files.py', 'helpgen'), ('helpgen/process_notebooks_cmd.py', 'helpgen'), ('helpgen/utils_pywin32.py', 'helpgen'), ('helpgen/conf_path_tools.py', 'helpgen'), ('helpgen/stat_helper.py', 'helpgen'), ('helpgen/process_sphinx_cmd.py', 'helpgen'), ('helpgen/_my_doxypy.py', 'helpgen'), ('helpgen/helpgen_exceptions.py', 'helpgen'), ('helpgen/notebook_exporter.py', 'helpgen'), ('helpgen/__init__.py', 'helpgen'), ('helpgen/style_css_template.py', 'helpgen'), ('helpgen/sphinxm_custom_app.py', 'helpgen'), ('helpgen/markdown_helper.py', 'helpgen'), ('helpgen/help_usage.py', 'helpgen'), ('helpgen/rst_converters.py', 'helpgen'), ('helpgen/post_process.py', 'helpgen'), ('helpgen/sphinx_main.py', 'helpgen'), ('helpgen/_nbconvert_preprocessor.py', 'helpgen'), ('helpgen/sphinxm_convert_doc_sphinx_helper.py', 'helpgen'), ('helpgen/utils_sphinx_config.py', 'helpgen'), ('helpgen/install_custom.py', 'helpgen'), ('helpgen/process_notebook_api.py', 'helpgen'), ('loghelper/repositories/__pycache__/__init__.cpython-37.pyc', '__pycache__'), ('loghelper/repositories/__pycache__/gitlab_helper.cpython-37.pyc', '__pycache__'), ('loghelper/repositories/__pycache__/pygit_helper.cpython-37.pyc', '__pycache__'), ('loghelper/repositories/__pycache__/pysvn_helper.cpython-37.pyc', '__pycache__'), ('loghelper/repositories/pygit_helper.py', 'repositories'), ('loghelper/repositories/pysvn_helper.py', 'repositories'), ('loghelper/repositories/__init__.py', 'repositories'), ('loghelper/repositories/gitlab_helper.py', 'repositories'), ('loghelper/__pycache__/custom_log.cpython-37.pyc', '__pycache__'), ('loghelper/__pycache__/pyrepo_helper.cpython-37.pyc', '__pycache__'), ('loghelper/__pycache__/flog.cpython-37.pyc', '__pycache__'), ('loghelper/__pycache__/__init__.cpython-37.pyc', '__pycache__'), ('loghelper/__pycache__/url_helper.cpython-37.pyc', '__pycache__'), ('loghelper/__pycache__/run_cmd.cpython-37.pyc', '__pycache__'), ('loghelper/__pycache__/flog_fake_classes.cpython-37.pyc', '__pycache__'), ('loghelper/__pycache__/process_helper.cpython-37.pyc', '__pycache__'), ('loghelper/__pycache__/github_api.cpython-37.pyc', '__pycache__'), ('loghelper/__pycache__/history_helper.cpython-37.pyc', '__pycache__'), ('loghelper/__pycache__/buffered_flog.cpython-37.pyc', '__pycache__'), ('loghelper/__pycache__/pypi_helper.cpython-37.pyc', '__pycache__'), ('loghelper/__pycache__/convert_helper.cpython-37.pyc', '__pycache__'), ('loghelper/__pycache__/os_helper.cpython-37.pyc', '__pycache__'), ('loghelper/__pycache__/pqh_exception.cpython-37.pyc', '__pycache__'), ('loghelper/buffered_flog.py', 'loghelper'), ('loghelper/pyrepo_helper.py', 'loghelper'), ('loghelper/pypi_helper.py', 'loghelper'), ('loghelper/process_helper.py', 'loghelper'), ('loghelper/os_helper.py', 'loghelper'), ('loghelper/github_api.py', 'loghelper'), ('loghelper/history_helper.py', 'loghelper'), ('loghelper/convert_helper.py', 'loghelper'), ('loghelper/run_cmd.py', 'loghelper'), ('loghelper/__init__.py', 'loghelper'), ('loghelper/pqh_exception.py', 'loghelper'), ('loghelper/flog_fake_classes.py', 'loghelper'), ('loghelper/custom_log.py', 'loghelper'), ('loghelper/flog.py', 'loghelper'), ('loghelper/url_helper.py', 'loghelper'), ('texthelper/__pycache__/__init__.cpython-37.pyc', '__pycache__'), ('texthelper/__pycache__/code_helper.cpython-37.pyc', '__pycache__'), ('texthelper/__pycache__/diacritic_helper.cpython-37.pyc', '__pycache__'), ('texthelper/__pycache__/version_helper.cpython-37.pyc', '__pycache__'), ('texthelper/__pycache__/texts_language.cpython-37.pyc', '__pycache__'), ('texthelper/__pycache__/html_helper.cpython-37.pyc', '__pycache__'), ('texthelper/__pycache__/templating.cpython-37.pyc', '__pycache__'), ('texthelper/texts_language.py', 'texthelper'), ('texthelper/html_helper.py', 'texthelper'), ('texthelper/templating.py', 'texthelper'), ('texthelper/diacritic_helper.py', 'texthelper'), ('texthelper/__init__.py', 'texthelper'), ('texthelper/code_helper.py', 'texthelper'), ('texthelper/version_helper.py', 'texthelper'), ('ipythonhelper/__pycache__/magic_class_compress.cpython-37.pyc', '__pycache__'), ('ipythonhelper/__pycache__/run_notebook.cpython-37.pyc', '__pycache__'), ('ipythonhelper/__pycache__/__init__.cpython-37.pyc', '__pycache__'), ('ipythonhelper/__pycache__/magic_class_diff.cpython-37.pyc', '__pycache__'), ('ipythonhelper/__pycache__/magic_class_crypt.cpython-37.pyc', '__pycache__'), ('ipythonhelper/__pycache__/magic_class.cpython-37.pyc', '__pycache__'), ('ipythonhelper/__pycache__/magic_class_example.cpython-37.pyc', '__pycache__'), ('ipythonhelper/__pycache__/magic_parser.cpython-37.pyc', '__pycache__'), ('ipythonhelper/__pycache__/notebook_runner.cpython-37.pyc', '__pycache__'), ('ipythonhelper/__pycache__/notebook_exception.cpython-37.pyc', '__pycache__'), ('ipythonhelper/__pycache__/widgets.cpython-37.pyc', '__pycache__'), ('ipythonhelper/__pycache__/kindofcompletion.cpython-37.pyc', '__pycache__'), ('ipythonhelper/__pycache__/notebook_helper.cpython-37.pyc', '__pycache__'), ('ipythonhelper/__pycache__/html_forms.cpython-37.pyc', '__pycache__'), ('ipythonhelper/__pycache__/interact.cpython-37.pyc', '__pycache__'), ('ipythonhelper/__pycache__/unittest_notebook.cpython-37.pyc', '__pycache__'), ('ipythonhelper/magic_class_example.py', 'ipythonhelper'), ('ipythonhelper/widgets.py', 'ipythonhelper'), ('ipythonhelper/magic_class_crypt.py', 'ipythonhelper'), ('ipythonhelper/magic_class_diff.py', 'ipythonhelper'), ('ipythonhelper/kindofcompletion.py', 'ipythonhelper'), ('ipythonhelper/notebook_runner.py', 'ipythonhelper'), ('ipythonhelper/notebook_exception.py', 'ipythonhelper'), ('ipythonhelper/__init__.py', 'ipythonhelper'), ('ipythonhelper/html_forms.py', 'ipythonhelper'), ('ipythonhelper/magic_class_compress.py', 'ipythonhelper'), ('ipythonhelper/unittest_notebook.py', 'ipythonhelper'), ('ipythonhelper/interact.py', 'ipythonhelper'), ('ipythonhelper/notebook_helper.py', 'ipythonhelper'), ('ipythonhelper/run_notebook.py', 'ipythonhelper'), ('ipythonhelper/magic_parser.py', 'ipythonhelper'), ('ipythonhelper/magic_class.py', 'ipythonhelper'), ('filehelper/__pycache__/ftp_transfer.cpython-37.pyc', '__pycache__'), ('filehelper/__pycache__/fexceptions.cpython-37.pyc', '__pycache__'), ('filehelper/__pycache__/winzipfile.cpython-37.pyc', '__pycache__'), ('filehelper/__pycache__/anyfhelper.cpython-37.pyc', '__pycache__'), ('filehelper/__pycache__/transfer_api_ftp.cpython-37.pyc', '__pycache__'), ('filehelper/__pycache__/ftp_transfer_mock.cpython-37.pyc', '__pycache__'), ('filehelper/__pycache__/transfer_api_file.cpython-37.pyc', '__pycache__'), ('filehelper/__pycache__/__init__.cpython-37.pyc', '__pycache__'), ('filehelper/__pycache__/visual_sync.cpython-37.pyc', '__pycache__'), ('filehelper/__pycache__/encrypted_backup.cpython-37.pyc', '__pycache__'), ('filehelper/__pycache__/compression_helper.cpython-37.pyc', '__pycache__'), ('filehelper/__pycache__/file_info.cpython-37.pyc', '__pycache__'), ('filehelper/__pycache__/ftp_mock.cpython-37.pyc', '__pycache__'), ('filehelper/__pycache__/synchelper.cpython-37.pyc', '__pycache__'), ('filehelper/__pycache__/ftp_transfer_files.cpython-37.pyc', '__pycache__'), ('filehelper/__pycache__/file_tree_node.cpython-37.pyc', '__pycache__'), ('filehelper/__pycache__/internet_helper.cpython-37.pyc', '__pycache__'), ('filehelper/__pycache__/files_status.cpython-37.pyc', '__pycache__'), ('filehelper/__pycache__/download_helper.cpython-37.pyc', '__pycache__'), ('filehelper/__pycache__/encryption.cpython-37.pyc', '__pycache__'), ('filehelper/__pycache__/transfer_api.cpython-37.pyc', '__pycache__'), ('filehelper/ftp_mock.py', 'filehelper'), ('filehelper/download_helper.py', 'filehelper'), ('filehelper/ftp_transfer.py', 'filehelper'), ('filehelper/synchelper.py', 'filehelper'), ('filehelper/winzipfile.py', 'filehelper'), ('filehelper/transfer_api_ftp.py', 'filehelper'), ('filehelper/files_status.py', 'filehelper'), ('filehelper/file_info.py', 'filehelper'), ('filehelper/internet_helper.py', 'filehelper'), ('filehelper/transfer_api.py', 'filehelper'), ('filehelper/__init__.py', 'filehelper'), ('filehelper/anyfhelper.py', 'filehelper'), ('filehelper/file_tree_node.py', 'filehelper'), ('filehelper/fexceptions.py', 'filehelper'), ('filehelper/ftp_transfer_files.py', 'filehelper'), ('filehelper/compression_helper.py', 'filehelper'), ('filehelper/transfer_api_file.py', 'filehelper'), ('filehelper/visual_sync.py', 'filehelper'), ('filehelper/encryption.py', 'filehelper'), ('filehelper/ftp_transfer_mock.py', 'filehelper'), ('filehelper/encrypted_backup.py', 'filehelper'), ('pandashelper/__pycache__/tblformat.cpython-37.pyc', '__pycache__'), ('pandashelper/__pycache__/__init__.cpython-37.pyc', '__pycache__'), ('pandashelper/__pycache__/readh.cpython-37.pyc', '__pycache__'), ('pandashelper/__pycache__/tblfunction.cpython-37.pyc', '__pycache__'), ('pandashelper/readh.py', 'pandashelper'), ('pandashelper/tblfunction.py', 'pandashelper'), ('pandashelper/__init__.py', 'pandashelper'), ('pandashelper/tblformat.py', 'pandashelper'), ('sphinxext/revealjs/templates/revealjs/__pycache__/__init__.cpython-37.pyc', '__pycache__'), ('sphinxext/revealjs/templates/revealjs/static/css/print/__pycache__/__init__.cpython-37.pyc', '__pycache__'), ('sphinxext/revealjs/templates/revealjs/static/css/print/__init__.py', 'print'), ('sphinxext/revealjs/templates/revealjs/static/css/theme/source/__pycache__/__init__.cpython-37.pyc', '__pycache__'), ('sphinxext/revealjs/templates/revealjs/static/css/theme/source/__init__.py', 'source'), ('sphinxext/revealjs/templates/revealjs/static/css/theme/template/__pycache__/__init__.cpython-37.pyc', '__pycache__'), ('sphinxext/revealjs/templates/revealjs/static/css/theme/template/__init__.py', 'template'), ('sphinxext/revealjs/templates/revealjs/static/css/theme/__pycache__/__init__.cpython-37.pyc', '__pycache__'), ('sphinxext/revealjs/templates/revealjs/static/css/theme/__init__.py', 'theme'), ('sphinxext/revealjs/templates/revealjs/static/css/__pycache__/__init__.cpython-37.pyc', '__pycache__'), ('sphinxext/revealjs/templates/revealjs/static/css/__init__.py', 'css'), ('sphinxext/revealjs/templates/revealjs/static/lib/css/__pycache__/__init__.cpython-37.pyc', '__pycache__'), ('sphinxext/revealjs/templates/revealjs/static/lib/css/__init__.py', 'css'), ('sphinxext/revealjs/templates/revealjs/static/lib/font/__pycache__/__init__.cpython-37.pyc', '__pycache__'), ('sphinxext/revealjs/templates/revealjs/static/lib/font/__init__.py', 'font'), ('sphinxext/revealjs/templates/revealjs/static/lib/js/__pycache__/__init__.cpython-37.pyc', '__pycache__'), ('sphinxext/revealjs/templates/revealjs/static/lib/js/__init__.py', 'js'), ('sphinxext/revealjs/templates/revealjs/static/lib/__pycache__/__init__.cpython-37.pyc', '__pycache__'), ('sphinxext/revealjs/templates/revealjs/static/lib/__init__.py', 'lib'), ('sphinxext/revealjs/templates/revealjs/static/js/__pycache__/__init__.cpython-37.pyc', '__pycache__'), ('sphinxext/revealjs/templates/revealjs/static/js/__init__.py', 'js'), ('sphinxext/revealjs/templates/revealjs/static/__pycache__/__init__.cpython-37.pyc', '__pycache__'), ('sphinxext/revealjs/templates/revealjs/static/plugin/__pycache__/__init__.cpython-37.pyc', '__pycache__'), ('sphinxext/revealjs/templates/revealjs/static/plugin/__init__.py', 'plugin'), ('sphinxext/revealjs/templates/revealjs/static/__init__.py', 'static'), ('sphinxext/revealjs/templates/revealjs/__init__.py', 'revealjs'), ('sphinxext/revealjs/templates/__pycache__/__init__.cpython-37.pyc', '__pycache__'), ('sphinxext/revealjs/templates/__init__.py', 'templates'), ('sphinxext/revealjs/__pycache__/__init__.cpython-37.pyc', '__pycache__'), ('sphinxext/revealjs/__pycache__/directives.cpython-37.pyc', '__pycache__'), ('sphinxext/revealjs/__pycache__/compat.cpython-37.pyc', '__pycache__'), ('sphinxext/revealjs/directives.py', 'revealjs'), ('sphinxext/revealjs/__init__.py', 'revealjs'), ('sphinxext/revealjs/compat.py', 'revealjs'), ('sphinxext/bokeh/__pycache__/__init__.cpython-37.pyc', '__pycache__'), ('sphinxext/bokeh/__pycache__/bokeh_plot.cpython-37.pyc', '__pycache__'), ('sphinxext/bokeh/__init__.py', 'bokeh'), ('sphinxext/bokeh/bokeh_plot.py', 'bokeh'), ('sphinxext/__pycache__/sphinx_youtube_extension.cpython-37.pyc', '__pycache__'), ('sphinxext/__pycache__/sphinx_faqref_extension.cpython-37.pyc', '__pycache__'), ('sphinxext/__pycache__/sphinx_blog_extension.cpython-37.pyc', '__pycache__'), ('sphinxext/__pycache__/sphinx_rst_builder.cpython-37.pyc', '__pycache__'), ('sphinxext/__pycache__/sphinx_postcontents_extension.cpython-37.pyc', '__pycache__'), ('sphinxext/__pycache__/sphinx_cmdref_extension.cpython-37.pyc', '__pycache__'), ('sphinxext/__pycache__/sphinx_runpython_extension.cpython-37.pyc', '__pycache__'), ('sphinxext/__pycache__/sphinx_image_extension.cpython-37.pyc', '__pycache__'), ('sphinxext/__pycache__/sphinx_video_extension.cpython-37.pyc', '__pycache__'), ('sphinxext/__pycache__/sphinx_nbref_extension.cpython-37.pyc', '__pycache__'), ('sphinxext/__pycache__/__init__.cpython-37.pyc', '__pycache__'), ('sphinxext/__pycache__/sphinx_toctree_extension.cpython-37.pyc', '__pycache__'), ('sphinxext/__pycache__/sphinx_blocref_extension.cpython-37.pyc', '__pycache__'), ('sphinxext/__pycache__/sphinx_sharenet_extension.cpython-37.pyc', '__pycache__'), ('sphinxext/__pycache__/sphinx_gitlog_extension.cpython-37.pyc', '__pycache__'), ('sphinxext/__pycache__/sphinx_template_extension.cpython-37.pyc', '__pycache__'), ('sphinxext/__pycache__/sphinx_epkg_extension.cpython-37.pyc', '__pycache__'), ('sphinxext/__pycache__/sphinx_todoext_extension.cpython-37.pyc', '__pycache__'), ('sphinxext/__pycache__/sphinx_mathdef_extension.cpython-37.pyc', '__pycache__'), ('sphinxext/__pycache__/sphinx_collapse_extension.cpython-37.pyc', '__pycache__'), ('sphinxext/__pycache__/sphinx_exref_extension.cpython-37.pyc', '__pycache__'), ('sphinxext/__pycache__/sphinxext_helper.cpython-37.pyc', '__pycache__'), ('sphinxext/__pycache__/blog_post_list.cpython-37.pyc', '__pycache__'), ('sphinxext/__pycache__/build_rss.cpython-37.pyc', '__pycache__'), ('sphinxext/__pycache__/sphinx_githublink_extension.cpython-37.pyc', '__pycache__'), ('sphinxext/__pycache__/sphinx_doctree_builder.cpython-37.pyc', '__pycache__'), ('sphinxext/__pycache__/sphinx_autosignature.cpython-37.pyc', '__pycache__'), ('sphinxext/__pycache__/sphinx_bigger_extension.cpython-37.pyc', '__pycache__'), ('sphinxext/__pycache__/sphinx_md_builder.cpython-37.pyc', '__pycache__'), ('sphinxext/__pycache__/sphinx_docassert_extension.cpython-37.pyc', '__pycache__'), ('sphinxext/__pycache__/documentation_link.cpython-37.pyc', '__pycache__'), ('sphinxext/__pycache__/sphinx_downloadlink_extension.cpython-37.pyc', '__pycache__'), ('sphinxext/__pycache__/_private_for_unittest.cpython-37.pyc', '__pycache__'), ('sphinxext/__pycache__/_sphinx_common_builder.cpython-37.pyc', '__pycache__'), ('sphinxext/__pycache__/sphinx_latex_builder.cpython-37.pyc', '__pycache__'), ('sphinxext/__pycache__/sphinx_tocdelay_extension.cpython-37.pyc', '__pycache__'), ('sphinxext/__pycache__/import_object_helper.cpython-37.pyc', '__pycache__'), ('sphinxext/__pycache__/sphinx_ext_helper.cpython-37.pyc', '__pycache__'), ('sphinxext/__pycache__/blog_post.cpython-37.pyc', '__pycache__'), ('sphinxext/__pycache__/sphinx_quote_extension.cpython-37.pyc', '__pycache__'), ('sphinxext/sphinximages/sphinxcontrib_images_lightbox2/lightbox2_customize/__pycache__/__init__.cpython-37.pyc', '__pycache__'), ('sphinxext/sphinximages/sphinxcontrib_images_lightbox2/lightbox2_customize/__init__.py', 'lightbox2_customize'), ('sphinxext/sphinximages/sphinxcontrib_images_lightbox2/lightbox2/img/__pycache__/__init__.cpython-37.pyc', '__pycache__'), ('sphinxext/sphinximages/sphinxcontrib_images_lightbox2/lightbox2/img/__init__.py', 'img'), ('sphinxext/sphinximages/sphinxcontrib_images_lightbox2/lightbox2/css/__pycache__/__init__.cpython-37.pyc', '__pycache__'), ('sphinxext/sphinximages/sphinxcontrib_images_lightbox2/lightbox2/css/__init__.py', 'css'), ('sphinxext/sphinximages/sphinxcontrib_images_lightbox2/lightbox2/js/__pycache__/__init__.cpython-37.pyc', '__pycache__'), ('sphinxext/sphinximages/sphinxcontrib_images_lightbox2/lightbox2/js/__init__.py', 'js'), ('sphinxext/sphinximages/sphinxcontrib_images_lightbox2/lightbox2/sass/__pycache__/__init__.cpython-37.pyc', '__pycache__'), ('sphinxext/sphinximages/sphinxcontrib_images_lightbox2/lightbox2/sass/__init__.py', 'sass'), ('sphinxext/sphinximages/sphinxcontrib_images_lightbox2/lightbox2/__pycache__/__init__.cpython-37.pyc', '__pycache__'), ('sphinxext/sphinximages/sphinxcontrib_images_lightbox2/lightbox2/__init__.py', 'lightbox2'), ('sphinxext/sphinximages/sphinxcontrib_images_lightbox2/__pycache__/__init__.cpython-37.pyc', '__pycache__'), ('sphinxext/sphinximages/sphinxcontrib_images_lightbox2/__pycache__/lightbox2_backend.cpython-37.pyc', '__pycache__'), ('sphinxext/sphinximages/sphinxcontrib_images_lightbox2/__init__.py', 'sphinxcontrib_images_lightbox2'), ('sphinxext/sphinximages/sphinxcontrib_images_lightbox2/lightbox2_backend.py', 'sphinxcontrib_images_lightbox2'), ('sphinxext/sphinximages/sphinxtrib/__pycache__/__init__.cpython-37.pyc', '__pycache__'), ('sphinxext/sphinximages/sphinxtrib/__pycache__/images.cpython-37.pyc', '__pycache__'), ('sphinxext/sphinximages/sphinxtrib/__init__.py', 'sphinxtrib'), ('sphinxext/sphinximages/sphinxtrib/images.py', 'sphinxtrib'), ('sphinxext/sphinximages/__pycache__/__init__.cpython-37.pyc', '__pycache__'), ('sphinxext/sphinximages/__pycache__/backend.cpython-37.pyc', '__pycache__'), ('sphinxext/sphinximages/__init__.py', 'sphinximages'), ('sphinxext/sphinximages/backend.py', 'sphinximages'), ('sphinxext/sphinx_bigger_extension.py', 'sphinxext'), ('sphinxext/sphinx_todoext_extension.py', 'sphinxext'), ('sphinxext/sphinx_docassert_extension.py', 'sphinxext'), ('sphinxext/sphinx_tocdelay_extension.py', 'sphinxext'), ('sphinxext/sphinx_blog_extension.py', 'sphinxext'), ('sphinxext/sphinx_collapse_extension.py', 'sphinxext'), ('sphinxext/sphinx_md_builder.py', 'sphinxext'), ('sphinxext/sphinx_faqref_extension.py', 'sphinxext'), ('sphinxext/sphinx_sharenet_extension.py', 'sphinxext'), ('sphinxext/sphinx_epkg_extension.py', 'sphinxext'), ('sphinxext/sphinx_githublink_extension.py', 'sphinxext'), ('sphinxext/blog_post.py', 'sphinxext'), ('sphinxext/sphinx_rst_builder.py', 'sphinxext'), ('sphinxext/_private_for_unittest.py', 'sphinxext'), ('sphinxext/sphinx_mathdef_extension.py', 'sphinxext'), ('sphinxext/blog_post_list.py', 'sphinxext'), ('sphinxext/documentation_link.py', 'sphinxext'), ('sphinxext/sphinx_youtube_extension.py', 'sphinxext'), ('sphinxext/build_rss.py', 'sphinxext'), ('sphinxext/sphinx_quote_extension.py', 'sphinxext'), ('sphinxext/sphinx_exref_extension.py', 'sphinxext'), ('sphinxext/sphinx_gitlog_extension.py', 'sphinxext'), ('sphinxext/sphinxext_helper.py', 'sphinxext'), ('sphinxext/sphinx_nbref_extension.py', 'sphinxext'), ('sphinxext/sphinx_video_extension.py', 'sphinxext'), ('sphinxext/__init__.py', 'sphinxext'), ('sphinxext/sphinx_template_extension.py', 'sphinxext'), ('sphinxext/import_object_helper.py', 'sphinxext'), ('sphinxext/sphinx_latex_builder.py', 'sphinxext'), ('sphinxext/sphinx_blocref_extension.py', 'sphinxext'), ('sphinxext/sphinx_autosignature.py', 'sphinxext'), ('sphinxext/sphinx_cmdref_extension.py', 'sphinxext'), ('sphinxext/sphinx_postcontents_extension.py', 'sphinxext'), ('sphinxext/sphinx_image_extension.py', 'sphinxext'), ('sphinxext/sphinx_toctree_extension.py', 'sphinxext'), ('sphinxext/sphinx_downloadlink_extension.py', 'sphinxext'), ('sphinxext/sphinx_runpython_extension.py', 'sphinxext'), ('sphinxext/_sphinx_common_builder.py', 'sphinxext'), ('sphinxext/sphinx_doctree_builder.py', 'sphinxext'), ('sphinxext/sphinx_ext_helper.py', 'sphinxext'), ('__pycache__/__init__.cpython-37.pyc', '__pycache__'), ('__pycache__/__main__.cpython-37.pyc', '__pycache__'), ('cli/__pycache__/__init__.cpython-37.pyc', '__pycache__'), ('cli/__pycache__/cli_helper.cpython-37.pyc', '__pycache__'), ('cli/__pycache__/encryption_file_cli.cpython-37.pyc', '__pycache__'), ('cli/__pycache__/encryption_cli.cpython-37.pyc', '__pycache__'), ('cli/__pycache__/pyq_sync_cli.cpython-37.pyc', '__pycache__'), ('cli/__pycache__/simplified_fct.cpython-37.pyc', '__pycache__'), ('cli/encryption_file_cli.py', 'cli'), ('cli/encryption_cli.py', 'cli'), ('cli/__init__.py', 'cli'), ('cli/simplified_fct.py', 'cli'), ('cli/pyq_sync_cli.py', 'cli'), ('cli/cli_helper.py', 'cli'), ('jenkinshelper/__pycache__/__init__.cpython-37.pyc', '__pycache__'), ('jenkinshelper/__pycache__/yaml_helper.cpython-37.pyc', '__pycache__'), ('jenkinshelper/__pycache__/jenkins_exceptions.cpython-37.pyc', '__pycache__'), ('jenkinshelper/__pycache__/jenkins_server.cpython-37.pyc', '__pycache__'), ('jenkinshelper/__pycache__/jenkins_helper.cpython-37.pyc', '__pycache__'), ('jenkinshelper/__pycache__/yaml_helper_yaml.cpython-37.pyc', '__pycache__'), ('jenkinshelper/__pycache__/jenkins_server_template.cpython-37.pyc', '__pycache__'), ('jenkinshelper/jenkins_server.py', 'jenkinshelper'), ('jenkinshelper/jenkins_exceptions.py', 'jenkinshelper'), ('jenkinshelper/yaml_helper.py', 'jenkinshelper'), ('jenkinshelper/yaml_helper_yaml.py', 'jenkinshelper'), ('jenkinshelper/__init__.py', 'jenkinshelper'), ('jenkinshelper/jenkins_helper.py', 'jenkinshelper'), ('jenkinshelper/jenkins_server_template.py', 'jenkinshelper'), ('serverdoc/__pycache__/__init__.cpython-37.pyc', '__pycache__'), ('serverdoc/__pycache__/server_helper.cpython-37.pyc', '__pycache__'), ('serverdoc/__pycache__/documentation_server.cpython-37.pyc', '__pycache__'), ('serverdoc/server_helper.py', 'serverdoc'), ('serverdoc/__init__.py', 'serverdoc'), ('serverdoc/documentation_server.py', 'serverdoc'), ('./__init__.py', '.'), ('./__main__.py', '.')]

source on GitHub