SYMBOL INDEX (113 symbols across 15 files) FILE: src/thug/cli.py class Detector (line 18) | class Detector(Enum): function add_decorators (line 41) | def add_decorators(decorators): function _load_configuration (line 50) | def _load_configuration(override, show_and_exit): function _form_result_path (line 59) | def _form_result_path(orig_path, result_dir, fname_extra=''): function meme (line 68) | def meme(fpath, txt1, txt2, override, show_config): function thug_meme (line 91) | def thug_meme(fpath, txt1, txt2, override, show_config, debug, detector): FILE: src/thug/conf.py function print_config (line 9) | def print_config(conf): function get_config (line 16) | def get_config(overrides=None): FILE: src/thug/detect/abc.py class Detector (line 6) | class Detector(ABC): method __init__ (line 7) | def __init__(self, config, *args, **kwargs): method config (line 12) | def config(self): method find_thug_landmarks (line 16) | def find_thug_landmarks(self, img_path, show_result=False): method _draw_rectangle (line 22) | def _draw_rectangle(img, rect, bgr, thickness=2): method _draw_circle (line 27) | def _draw_circle(img, center, bgr, radius=5, thickness=2): method _draw_face (line 30) | def _draw_face(self, img, location): method _draw_thug_result (line 34) | def _draw_thug_result(self, img, thug_result): FILE: src/thug/detect/debug.py function timestamp (line 4) | def timestamp(): FILE: src/thug/detect/dlib.py class DlibDetector (line 14) | class DlibDetector(Detector): method __init__ (line 15) | def __init__(self, config, *args, **kwargs): method find_thug_landmarks (line 20) | def find_thug_landmarks(self, img_path, show_result=False): method _draw_result (line 59) | def _draw_result(self, img, face, landmarks, thug_result): method _center_of_two_points (line 66) | def _center_of_two_points(point1, point2): method dlib_rect_to_xywh (line 72) | def dlib_rect_to_xywh(r): FILE: src/thug/detect/opencv.py class HaarCascadeDetector (line 10) | class HaarCascadeDetector(Detector): method __init__ (line 11) | def __init__(self, config, *args, **kwargs): method find_thug_landmarks (line 47) | def find_thug_landmarks(self, img_path, show_result=False): method _find_faces (line 87) | def _find_faces(self, img): method _find_land_marks (line 93) | def _find_land_marks(self, face_img_gray): method _find_eyes (line 98) | def _find_eyes(self, gray_face_img): method _find_mouths (line 130) | def _find_mouths(self, gray_face_img): method _draw_result (line 152) | def _draw_result(self, img, face, eyes, mouth, thug_result): method _draw_eyes (line 160) | def _draw_eyes(self, img, eyes): method _draw_mouth (line 165) | def _draw_mouth(self, img, mouth): method _create_thug_detection_result (line 169) | def _create_thug_detection_result(self, face, eyes, mouth): method _fallback_thug_result_eyes (line 187) | def _fallback_thug_result_eyes(self, face): method _fallback_thug_result_mouth (line 195) | def _fallback_thug_result_mouth(self, face): method _calculate_rectange_center (line 202) | def _calculate_rectange_center(rect): method _value_exists (line 207) | def _value_exists(val): method _values_exist (line 212) | def _values_exist(self, vals): method _remove_rects_inside_rects (line 219) | def _remove_rects_inside_rects(rects): FILE: src/thug/detect/result.py class ThugLandmarks (line 7) | class ThugLandmarks: method __init__ (line 8) | def __init__(self, l_eye, r_eye, mouth=None): method eyes_available (line 19) | def eyes_available(self): method mouth_available (line 23) | def mouth_available(self): method left_eye (line 27) | def left_eye(self): method right_eye (line 31) | def right_eye(self): method eyes_distance (line 35) | def eyes_distance(self): method eyes_x_difference (line 39) | def eyes_x_difference(self): method eyes_y_difference (line 43) | def eyes_y_difference(self): method eyes_center (line 47) | def eyes_center(self): method mouth (line 53) | def mouth(self): method eyes_angle (line 57) | def eyes_angle(self): method _ensure_point_or_none (line 61) | def _ensure_point_or_none(obj): FILE: src/thug/meme/basic.py class Meme (line 6) | class Meme: method __init__ (line 7) | def __init__(self, *, config, img_path, txt1, txt2): method create (line 19) | def create(self, res_file, show=True): method _get_longest_txt (line 44) | def _get_longest_txt(self): method _select_font_scale (line 51) | def _select_font_scale(self, img_w, txt): method _get_txt_locations (line 62) | def _get_txt_locations(self, img_w, img_h, font_scale): FILE: src/thug/meme/thug.py class ThugError (line 15) | class ThugError(Exception): class ThugMeme (line 19) | class ThugMeme(Meme): method __init__ (line 20) | def __init__(self, *, thug_landmarks, config, **kwargs): method create (line 30) | def create(self, res_file, show=True): method _draw_glasses (line 51) | def _draw_glasses(self, img, thug): method _calculate_glasses_dimensions (line 61) | def _calculate_glasses_dimensions(self, origw, origh, thug): method _rotate (line 71) | def _rotate(self, img, angle): method _get_rotation_matrix (line 76) | def _get_rotation_matrix(self, img, angle): method _get_rotated_point (line 92) | def _get_rotated_point(self, img, angle, point): method _draw_cigar (line 98) | def _draw_cigar(self, img, thug): method _calculate_cigar_wh (line 122) | def _calculate_cigar_wh(self, orig_w, orig_h, thug): method _draw_on_top (line 127) | def _draw_on_top(self, img, x, y, sub_img, sub_name=''): FILE: tests/conftest.py function img_path (line 4) | def img_path(fname): FILE: tests/detect/test_detectors.py class LocationTolerances (line 17) | class LocationTolerances: method __init__ (line 18) | def __init__(self, function _test_cases (line 33) | def _test_cases(): class TestFindThugLandMarks (line 66) | class TestFindThugLandMarks: method test_it_returns_landmarks_within_tolerances (line 69) | def test_it_returns_landmarks_within_tolerances(self, detector, test_c... method test_it_shows_results (line 101) | def test_it_shows_results(self, detector, imshow_path): FILE: tests/detect/test_result.py class TestThugLandmarks (line 6) | class TestThugLandmarks: method thug_landmarks (line 8) | def thug_landmarks(self): method test_eyes_distance (line 12) | def test_eyes_distance(self, thug_landmarks): method test_eyes_center (line 15) | def test_eyes_center(self, thug_landmarks): method test_eyes_x_difference (line 18) | def test_eyes_x_difference(self, thug_landmarks): method test_eyes_y_difference (line 21) | def test_eyes_y_difference(self, thug_landmarks): method test_eyes_angle (line 24) | def test_eyes_angle(self, thug_landmarks): method test_init_with_invalid_params (line 36) | def test_init_with_invalid_params(self, l_eye, r_eye, mouth): FILE: tests/meme/test_basic.py function meme (line 11) | def meme(): class TestCreate (line 21) | class TestCreate: method test_it_writes_texts (line 23) | def test_it_writes_texts(self, puttext, imwrite, imshow, waitkey, meme): method test_it_shows_result (line 32) | def test_it_shows_result(self, imwrite, imshow, waitkey, meme): FILE: tests/meme/test_thug.py function thug1 (line 20) | def thug1(): function thug2 (line 26) | def thug2(): function thug_meme (line 32) | def thug_meme(thug1, thug2): class TestCreate (line 41) | class TestCreate: method test_it_draws_cigar_and_glasses_for_all_thugs (line 42) | def test_it_draws_cigar_and_glasses_for_all_thugs( method test_it_does_not_crash_if_thug_error_is_raised (line 52) | def test_it_does_not_crash_if_thug_error_is_raised( class TestDrawCigar (line 65) | class TestDrawCigar: method test_it_draws (line 67) | def test_it_draws(self, draw_on_top, thug_meme, thug1): class TestDrawGlasses (line 76) | class TestDrawGlasses: method test_it_draws (line 78) | def test_it_draws(self, draw_on_top, thug_meme, thug1): class TestDrawOnTop (line 87) | class TestDrawOnTop: method test_it_raises_thug_error_if_sub_img_does_not_fit (line 88) | def test_it_raises_thug_error_if_sub_img_does_not_fit(self, thug_meme): FILE: tests/test_cli.py function cli_runner (line 12) | def cli_runner(): class TestMeme (line 17) | class TestMeme: method test_it_creates_meme (line 18) | def test_it_creates_meme(self, meme_cls, cli_runner): class TestThug (line 32) | class TestThug: method test_it_creates_thug_meme (line 36) | def test_it_creates_thug_meme(self, meme_cls, cli_runner, detector_arg, method test_it_does_not_accept_unknown_detector (line 59) | def test_it_does_not_accept_unknown_detector(self, meme_cls, cli_runner): class TestCommonCliArgs (line 71) | class TestCommonCliArgs: method test_it_does_not_create_with_invalid_path (line 72) | def test_it_does_not_create_with_invalid_path(self, cli_runner, meme_cls, method test_it_takes_into_account_config_overrides (line 85) | def test_it_takes_into_account_config_overrides( class TestFormResultPath (line 104) | class TestFormResultPath: method test_it_converts_file_name (line 113) | def test_it_converts_file_name(self, orig_fname, extra, expected_fname):