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)#

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'})#

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)#

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'})#

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)#

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')#

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)#

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)#

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)#

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)#

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)#

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)#

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)#

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)#

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'})#

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)

>>>

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

source on GitHub