A toolbar overlay for debugging Flask applications

Overview

Flask Debug-toolbar

This is a port of the excellent django-debug-toolbar for Flask applications.

https://travis-ci.org/flask-debugtoolbar/flask-debugtoolbar.png?branch=master

Installation

Installing is simple with pip:

$ pip install flask-debugtoolbar

Usage

Setting up the debug toolbar is simple:

from flask import Flask
from flask_debugtoolbar import DebugToolbarExtension

app = Flask(__name__)

# the toolbar is only enabled in debug mode:
app.debug = True

# set a 'SECRET_KEY' to enable the Flask session cookies
app.config['SECRET_KEY'] = '<replace with a secret key>'

toolbar = DebugToolbarExtension(app)

The toolbar will automatically be injected into Jinja templates when debug mode is on. In production, setting app.debug = False will disable the toolbar.

See the documentation for more information.

Comments
  • Fixed scrollbar issues

    Fixed scrollbar issues

    Fixes #181 where the scrollbar would not show on any page other than the sqlalchemy_select.html template. The scroll classname is now properly named and applied throughout all panel templates as flDebugScroll. I've also added a 10px bottom padding to show the end of the inner panel (for aesthetics sake).

    opened by caffeinatedMike 14
  • Python 3 compatibility

    Python 3 compatibility

    Recent updates to Flask and related components have included support for Python 3, and it would be great to be able to use Flask-DebugToolbar in projects running on Python 3. As it stands now, Flask-DebugToolbar must be disabled in such projects in order to run them without errors.

    Are there plans to support Python 3 in the near future?

    opened by justinmayer 13
  • Can't move ProfilerDebugPanel above RequestVarsDebugPanel

    Can't move ProfilerDebugPanel above RequestVarsDebugPanel

    If you reorder DEBUG_TB_PANELS so ProfilerDebugPanel comes before RequestVarsDebugPanel, you'll get an obscure error: AttributeError: 'functools.partial' object has no attribute '__module__'

    This is OK:

    DEBUG_TB_PANELS = [
        'flask_debugtoolbar.panels.request_vars.RequestVarsDebugPanel',
        'flask_debugtoolbar.panels.profiler.ProfilerDebugPanel',
    ]
    

    This is not:

    DEBUG_TB_PANELS = [
        'flask_debugtoolbar.panels.profiler.ProfilerDebugPanel',
        'flask_debugtoolbar.panels.request_vars.RequestVarsDebugPanel',
    ]
    

    Screen Shot 2013-03-08 at 7 41 37 PM

    opened by appsforartists 6
  • memory leak over time

    memory leak over time

    I'm still gathering data, but it appears as though recent flask-debugtoolbar versions cause a memory leak. After I upgraded to Flask and Werkzeug 0.8 I also had to update flask-debugtoolbar from baecf852dda0f5b6c4700fb6deaeda4068b3a19c to current master (45ce65c058a580d80e2ac207689601edef5db24b), I've been noticing memory usage growing on every request made against the server.

    I've disabled my custom panels and the ones from MongoEngine but left TimerDebugPanel, HeaderDebugPanel, RequestVarsDebugPanel, TemplateDebugPanel, LoggingPanel and ProfilerDebugPanel enabled.

    Here is the output from heapy for a run with the debug panel disabled with DEBUG_TB_ENABLED=False. The first set is the total number of objects by type. The second set is the types of the objects that refer to the ones in the front. If you are familiar with heapy, the former is heap() and the latter is heap().byrcsL

    Partition of a set of 202 objects. Total size = 40656 bytes.
     Index  Count   %     Size   % Cumulative  % Kind (class / dict of class)
         0     11   5     9224  23      9224  23 dict (no owner)
         1     16   8     8456  21     17680  43 types.FrameType
         2     59  29     5128  13     22808  56 str
         3     30  15     3728   9     26536  65 unicode
         4     16   8     1600   4     28136  69 list
         5      1   0     1048   3     29184  72 dict of flask.ctx.RequestContext
         6      1   0     1048   3     30232  74 dict of flask.wrappers.Request
         7      1   0     1048   3     31280  77 dict of flask.wrappers.Response
         8      1   0     1048   3     32328  80 dict of mimetools.Message
         9      1   0     1048   3     33376  82 dict of werkzeug.routing.MapAdapter
    <35 more rows. Type e.g. '_.more' to view.>
    
    Partition of a set of 202 objects. Total size = 40656 bytes.
     Index  Count   %     Size   % Cumulative  % Referrers by Kind (class / dict of class)
         0     22  11     7912  19      7912  19 types.FrameType
         1     67  33     7736  19     15648  38 dict (no owner)
         2      1   0     3352   8     19000  47 __builtin__.cell, dict of flask.wrappers.Request, dict
                                                 of werkzeug.datastructures.EnvironHeaders,
                                                 types.FrameType
         3     17   8     3136   8     22136  54 list
         4      6   3     1472   4     23608  58 dict of mimetools.Message
         5      2   1     1120   3     24728  61 dict of 0x7fca19073b90
         6      1   0     1048   3     25776  63 flask.ctx.RequestContext
         7      1   0     1048   3     26824  66 flask.wrappers.Request
         8      1   0     1048   3     27872  69 flask.wrappers.Response
         9      1   0     1048   3     28920  71 mimetools.Message
    <41 more rows. Type e.g. '_.more' to view.>
    

    A run with the debug toolbar enabled:

    Partition of a set of 538 objects. Total size = 81920 bytes.
     Index  Count   %     Size   % Cumulative  % Kind (class / dict of class)
         0     35   7    20552  25     20552  25 dict (no owner)
         1    135  25    11128  14     31680  39 str
         2    122  23    10472  13     42152  51 tuple
         3     16   3     8208  10     50360  61 types.FrameType
         4     34   6     4064   5     54424  66 unicode
         5     31   6     4024   5     58448  71 list
         6     46   9     1104   1     59552  73 int
         7      1   0     1048   1     60600  74 dict of blinker._saferef.BoundMethodWeakref
         8      1   0     1048   1     61648  75 dict of flask.ctx.RequestContext
         9      1   0     1048   1     62696  77 dict of flask.wrappers.Request
    <79 more rows. Type e.g. '_.more' to view.>
    
    Partition of a set of 538 objects. Total size = 81920 bytes.
     Index  Count   %     Size   % Cumulative  % Referrers by Kind (class / dict of class)
         0    143  27    16712  20     16712  20 list
         1     30   6    12544  15     29256  36 types.FrameType
         2     83  15    10000  12     39256  48 dict (no owner)
         3    116  22     6592   8     45848  56 tuple
         4      1   0     3352   4     49200  60 __builtin__.cell, dict (no owner), dict of
                                                 flask.wrappers.Request, dict of
                                                 werkzeug.datastructures.EnvironHeaders, types.FrameType
         5      6   1     1472   2     50672  62 dict of mimetools.Message
         6      2   0     1120   1     51792  63 dict of 0x7f9d02073f00
         7      1   0     1048   1     52840  65 blinker._saferef.BoundMethodWeakref
         8      1   0     1048   1     53888  66 dict of
                                                 flask_debugtoolbar.panels.headers.HeaderDebugPanel
         9      1   0     1048   1     54936  67 flask.ctx.RequestContext
    <84 more rows. Type e.g. '_.more' to view.>
    

    Hopefully you can see that the dict, str, and tuple usage is much larger with the debug toolbar, and that list objects seem to be holding a large number of references, with dict also in there. Is it possible that the toolbar is holding onto references that isn't being released?

    I'm going to investigate a bit more and see if there is anything that stands out in the diffs between the two commits I referenced earlier, and to see if it seems to be an issue with a particular panel.

    opened by joeshaw 6
  • Case insensitive rfind is error prone.

    Case insensitive rfind is error prone.

    https://github.com/mgood/flask-debugtoolbar/blob/master/flask_debugtoolbar/init.py#L205

    if you have a utf-8 character where the capital letter is represented in 1 byte, but the lower case character is represented in 2 bytes, then the location of the closing body tag fails.

    İstanbulİstanbulİstanbul

    The first character is problematic. A solution would be take in the closing tag string as a config argument and not do any lowering during string comparison.

    opened by bmorgan21 5
  • Deprecated import from flask.ext.sqlalchemy

    Deprecated import from flask.ext.sqlalchemy

    This import is throwing a deprecation warning with Flask 0.11

    flask_debugtoolbar/panels/sqlalchemy.py:2:    from flask.ext.sqlalchemy import get_debug_queries, SQLAlchemy
    
    opened by mlenzen 5
  • Flask Debug Toolbar Does Not Check For A Compressed Response

    Flask Debug Toolbar Does Not Check For A Compressed Response

    If you have an extension like Flask Compress compressing the contents of your responses with gzip before it's sent back to the user, flask debug toolbar will throw an error because it assumes the response is UTF-8 HTML.

    Traceback (most recent call last):
      File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1836, in __call__
        return self.wsgi_app(environ, start_response)
      File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1820, in wsgi_app
        response = self.make_response(self.handle_exception(e))
      File "/usr/local/lib/python2.7/site-packages/flask_restful/__init__.py", line 270, in error_router
        return original_handler(e)
      File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1403, in handle_exception
        reraise(exc_type, exc_value, tb)
      File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1817, in wsgi_app
        response = self.full_dispatch_request()
      File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1479, in full_dispatch_request
        response = self.process_response(response)
      File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1691, in process_response
        response = handler(response)
      File "/usr/local/lib/python2.7/site-packages/flask_debugtoolbar/__init__.py", line 202, in process_response
        response_html = response.data.decode(response.charset)
      File "/usr/local/Cellar/python/2.7.10/Frameworks/Python.framework/Versions/2.7/lib/python2.7/encodings/utf_8.py", line 16, in decode
        return codecs.utf_8_decode(input, errors, True)
    UnicodeDecodeError: 'utf8' codec can't decode byte 0x8b in position 1: invalid start byte
    
    opened by JackStouffer 5
  • Invalid unicode handling

    Invalid unicode handling

    When logging sql statements with sqlalchemy panel the following exception is thrown:

    Traceback (most recent call last): File "C:\Python27\lib\site-packages\flask\app.py", line 1518, in call return self.wsgi_app(environ, start_response) File "C:\Python27\lib\site-packages\flask\app.py", line 1506, in wsgi_app response = self.make_response(self.handle_exception(e)) File "C:\Python27\lib\site-packages\flask\app.py", line 1504, in wsgi_app response = self.full_dispatch_request() File "C:\Python27\lib\site-packages\flask\app.py", line 1266, in full_dispatch_request response = self.process_response(response) File "C:\Python27\lib\site-packages\flask\app.py", line 1414, in process_response response = handler(response) File "C:\Python27\lib\site-packages\flask_debugtoolbar__init__.py", line 171, in process_response toolbar_html = self.debug_toolbars[real_request].render_toolbar() File "C:\Python27\lib\site-packages\flask_debugtoolbar\toolbar.py", line 74, in render_toolbar return template.render(**context) File "C:\Python27\lib\site-packages\jinja2\environment.py", line 894, in render return self.environment.handle_exception(exc_info, True) File "C:\Python27\lib\site-packages\flask_debugtoolbar\templates\base.html", line 48, in top-level template code {{ panel.content()|safe }} File "C:\Python27\lib\site-packages\flask_debugtoolbar\panels\sqlalchemy.py", line 79, in content query.statement + _params).hexdigest() UnicodeDecodeError: 'ascii' codec can't decode byte 0xb2 in position 0: ordinal not in range(128)

    As far as I understand, the panel concatenates application SECRET_KEY and query statement and params. My secret key is a byte string which contains some non-ascii characters like "'\xb2q\xf6\x8c\xcd\xd0\x023...". I had generated it with the following method which has been described in Flask quickstart docs:

    import os os.urandom(24) '\xfd{H\xe5<\x95\xf9\xe3\x96.5\xd1\x01O<!\xd5\xa2\xa0\x9fR"\xa1\xa8'

    http://flask.pocoo.org/docs/quickstart/

    opened by cenkalti 5
  • JavaScript error when using HTML5 boilerplate

    JavaScript error when using HTML5 boilerplate

    The toolbar's CSS file isn't injected into the template when using the HTML5 boilerplate <html> element:

    <!doctype html>
    <!--[if lt IE 7]> <html class="no-js ie6 oldie" lang="en"> <![endif]-->
    <!--[if IE 7]>    <html class="no-js ie7 oldie" lang="en"> <![endif]-->
    <!--[if IE 8]>    <html class="no-js ie8 oldie" lang="en"> <![endif]-->
    <!--[if gt IE 8]><!--> <html class="no-js" lang="en"> <!--<![endif]-->
    

    I would submit a pull request but I can't seem to find where this is being done.

    opened by mattupstate 5
  • No toolbar on either Chrome or firefox

    No toolbar on either Chrome or firefox

    I added the flask debug toolbar to my app. It looks working because it gave me the redirect warning like below:

    _Redirect (302) Location: /app/bokeh

    The Flask Debug Toolbar has intercepted a redirect to the above URL for debug viewing purposes. You can click the above link to continue with the redirect as normal. If you'd like to disable this feature, you can set the config variable DEBUG_TB_INTERCEPT_REDIRECTS to False._

    But there is no FDT tool bar shown up after I got the response. I tried both Chrome and Firefox, same result. Do I need to do any configuration on the browser side to display the toolbar?

    opened by johnxpan 4
  • flask.ext was deprecated

    flask.ext was deprecated

    "flask.ext" (https://github.com/pallets/flask/issues/1135) has been deprecated a while ago. FdT keeps importing flask_sqlalchemy with flask.ext resulting in warning messages:

    exthook.py:71: ExtDeprecationWarning: Importing flask.ext.sqlalchemy is deprecated, use flask_sqlalchemy instead

    opened by nad2000 4
  • Subdomains support

    Subdomains support

    I have an issue with subdomain support. It seems that debug toolbar is always loading on the main domain but not the subdomains.

    For example, if I have test.com, admin.test.com, and user.test.com. When I go to admin.test.com or user.test.com debug toolbar is loading all js, styles etc from test.com and if test.com is blocked it is not loading anything at all.

    What will be good is that if I go to user.test.com it will load everything from it. If I go to admin.test.com it will load from it and when I go to test.com it will load from it.

    I can work on pr for this just not sure what should be changed to support it and where?

    opened by rimvislt 0
  • Drop support for python 2

    Drop support for python 2

    It's probably time we dropped support for python 2: https://github.com/pallets-eco/flask-debugtoolbar/blob/e3c8ab0ca28d7ddfaaa731ef1e15649182255c6a/setup.cfg#L33

    Given that Flask requires 3.7, I'd be fine with jumping straight to that... anyone who is on an older version of python can continue using an older version of Flask.

    There's no immediate pressing need to jump to the latest python, but it makes future contributors lives easier because they don't have to worry about such a wide swathe of backwards compatibility.

    First though we should push a final 2.x compatible release, that's tracked in https://github.com/pallets-eco/flask-debugtoolbar/issues/192... only once that's done should we do this.

    opened by jeffwidman 0
  • New release incorporating the Flask-SQLAlchemy 3.x changes

    New release incorporating the Flask-SQLAlchemy 3.x changes

    Now that https://github.com/pallets-eco/flask-debugtoolbar/pull/186 has landed, we should push a release so folks can use it.

    This will likely happen as part of #188 because we'll need to update the project metadata links anyway for PyPI.

    opened by jeffwidman 0
  • Update CI workflows

    Update CI workflows

    @nickjj suggested we migrate from Travis to GitHub actions... We should definitely do that:

    • [ ] Add new GitHub workflows
    • [ ] Update the CI links in the readme to point at them instead of Travis: https://github.com/pallets-eco/flask-debugtoolbar/blob/master/README.rst
    • [ ] Delete old travis workflows
    • [x] I looked into deleting the travis org for https://travis-ci.org/github/flask-debugtoolbar (xref #188) but it looks like this isn't even possible... the page has a banner at the top about migrating to travis.ci and says builds stopped two years ago.
    opened by jeffwidman 0
  • Migrate the repo to `pallets-eco/flask-debugtoolbar`

    Migrate the repo to `pallets-eco/flask-debugtoolbar`

    We're migrating the location of this repo from flask-debugtoolbar/flask-debugtoolbar to pallets-eco/flask-debugtoolbar to co-locate it alongside a number of other popular Flask-related extensions.

    In order to complete this migration, we need to do a few things:

    • [x] transfer the repository to the pallets-eco org
    • [x] Make myself & @nickjj repo admins - this needs @davidism
    • [x] Make @mattaw a repo collaborator - I think I can do this once @davidism adds him to the pallets-eco org
    • [ ] Make @davidism and @ThiefMaster owners on https://pypi.org/project/Flask-DebugToolbar/ in case we ever need to publish an immediate security update or something more trusted users have access- I just sent them invites
    • [ ] Update outdated links to mgood/flask-debugtoolbar or flask-debugtoolbar/flask-debugtoolbar to point to pallets-eco/flask-debugtoolbar instead... I currently see some in https://github.com/pallets-eco/flask-debugtoolbar/blob/master/docs/index.rst and https://github.com/pallets-eco/flask-debugtoolbar/blob/master/setup.cfg
    • [ ] Cut a new release of flask-debugtoolbar and push to PyPI so that the project metadata on https://pypi.org/project/Flask-DebugToolbar/ points to the correct URLs.
    opened by jeffwidman 0
Releases(0.13.1)
  • 0.13.1(Mar 29, 2022)

    What's Changed

    • Fix setup.cfg to include package files by @nickjj in https://github.com/flask-debugtoolbar/flask-debugtoolbar/pull/172
    • Use a consistent version naming convention, 0.13 should have been 0.13.0 but it was yanked and you can't re-push yanked packages with the same version

    Full Changelog: https://github.com/flask-debugtoolbar/flask-debugtoolbar/compare/0.12.1...0.13.1

    Source code(tar.gz)
    Source code(zip)
  • 0.12.1(Mar 28, 2022)

  • 0.12.0(Mar 28, 2022)

    What's Changed

    • Fix SQLAlchemy SELECT/EXPLAIN to use url_for to respect app prefixes.… by @mattaw in https://github.com/flask-debugtoolbar/flask-debugtoolbar/pull/143
    • Add flask.g section to show g object content. by @Yaser-Amiri in https://github.com/flask-debugtoolbar/flask-debugtoolbar/pull/118
    • Change docs to pull version from setup.py by @jeffwidman in https://github.com/flask-debugtoolbar/flask-debugtoolbar/pull/108
    • Update README.rst by @jeffwidman in https://github.com/flask-debugtoolbar/flask-debugtoolbar/pull/147
    • Setup DB properly by @jeffwidman in https://github.com/flask-debugtoolbar/flask-debugtoolbar/pull/148
    • Cleanup version handling slightly by @jeffwidman in https://github.com/flask-debugtoolbar/flask-debugtoolbar/pull/149
    • Support gzip response by @zaw007 in https://github.com/flask-debugtoolbar/flask-debugtoolbar/pull/154
    • prefixed css classes, fixes #152 by @jnnkB in https://github.com/flask-debugtoolbar/flask-debugtoolbar/pull/153
    • Remove deprecated Jinja with_ extension for Jinja 3.0 (related to Flask 2.0) by @nickjj in https://github.com/flask-debugtoolbar/flask-debugtoolbar/pull/157
    • Update PyPI metadata files: add setup.cfg etc by @jeffwidman in https://github.com/flask-debugtoolbar/flask-debugtoolbar/pull/164

    New Contributors

    • @mattaw made their first contribution in https://github.com/flask-debugtoolbar/flask-debugtoolbar/pull/143
    • @Yaser-Amiri made their first contribution in https://github.com/flask-debugtoolbar/flask-debugtoolbar/pull/118
    • @zaw007 made their first contribution in https://github.com/flask-debugtoolbar/flask-debugtoolbar/pull/154
    • @jnnkB made their first contribution in https://github.com/flask-debugtoolbar/flask-debugtoolbar/pull/153
    • @nickjj made their first contribution in https://github.com/flask-debugtoolbar/flask-debugtoolbar/pull/157

    Full Changelog: https://github.com/flask-debugtoolbar/flask-debugtoolbar/compare/0.11.0...v0.12.0

    Source code(tar.gz)
    Source code(zip)
  • 0.11.0(Feb 18, 2020)

    Enhancements:

    • Switch to Flask's native CLI, dropping flask_script in the process (b92391d, thanks @jeffwidman)
    • Do not show DebugToolbar routes in the route map (#86, thanks @floqqi)
    • Document Pygments for SQL highlighting (#127, thanks @pgiraud)

    Fixes:

    • Remove deprecated flask.json_available (#119, thanks @davidism)
    • Remove deprecated request.is_xhr (7ce099c, thanks @jeffwidman)
    • Explicitly disable SQLALCHEMY_TRACK_MODIFICATIONS (9c7db48, thanks @jeffwidman)
    • Fix typo (#142, thanks @timgates42)
    Source code(tar.gz)
    Source code(zip)
Never use print for debugging again

PySnooper - Never use print for debugging again PySnooper is a poor man's debugger. If you've used Bash, it's like set -x for Python, except it's fanc

Ram Rachum 15.5k Jan 1, 2023
A powerful set of Python debugging tools, based on PySnooper

snoop snoop is a powerful set of Python debugging tools. It's primarily meant to be a more featureful and refined version of PySnooper. It also includ

Alex Hall 874 Jan 8, 2023
Cyberbrain: Python debugging, redefined.

Cyberbrain1(电子脑) aims to free programmers from debugging.

laike9m 2.3k Jan 7, 2023
VizTracer is a low-overhead logging/debugging/profiling tool that can trace and visualize your python code execution.

VizTracer is a low-overhead logging/debugging/profiling tool that can trace and visualize your python code execution.

null 2.8k Jan 8, 2023
A package containing a lot of useful utilities for Python developing and debugging.

Vpack A package containing a lot of useful utilities for Python developing and debugging. Features Sigview: press Ctrl+C to print the current stack in

volltin 16 Aug 18, 2022
A web-based visualization and debugging platform for NuPIC

Cerebro 2 A web-based visualization and debugging platform for NuPIC. Usage Set up cerebro2.server to export your model state. Then, run: cd static py

Numenta 24 Oct 13, 2021
Hypothesis debugging with vscode

Hypothesis debugging with vscode

Oliver Mannion 0 Feb 9, 2022
A toolbar overlay for debugging Flask applications

Flask Debug-toolbar This is a port of the excellent django-debug-toolbar for Flask applications. Installation Installing is simple with pip: $ pip ins

null 863 Dec 29, 2022
🐞 A debug toolbar for FastAPI based on the original django-debug-toolbar. 🐞

Debug Toolbar ?? A debug toolbar for FastAPI based on the original django-debug-toolbar. ?? Swagger UI & GraphQL are supported. Documentation: https:/

Dani 74 Dec 30, 2022
Qt-creator-boost-debugging-helper - Qt Creator Debugging Helper for Boost Library

Go to Tools > Options > Debugger > Locals & Expressions. Paste the script path t

Dmitry Bravikov 2 Apr 22, 2022
Pyramid debug toolbar

pyramid_debugtoolbar pyramid_debugtoolbar provides a debug toolbar useful while you're developing your Pyramid application. Note that pyramid_debugtoo

Pylons Project 95 Sep 17, 2022
Source files for a free pyRevit toolbar.

pyRoovit (WIP) What is this? PyRoovit is/will be a toolbar for the use with pyRevit built by Gavin Crump (aka Aussie BIM Guru). Having used and taught

Gavin Crump 11 Nov 10, 2022
Debugging manhole for python applications.

Overview docs tests package Manhole is in-process service that will accept unix domain socket connections and present the stacktraces for all threads

Ionel Cristian Mărieș 332 Dec 7, 2022
Flask Sitemapper is a small Python 3 package that generates XML sitemaps for Flask applications.

Flask Sitemapper Flask Sitemapper is a small Python 3 package that generates XML sitemaps for Flask applications. This allows you to create a nice and

null 6 Jan 6, 2023
⚾🤖⚾ Automatic baseball pitching overlay in realtime

⚾ Automatically overlaying pitch motion and trajectory with machine learning! This project takes your baseball pitching clips and automatically genera

Tony Chou 240 Dec 5, 2022
Directions overlay for working with pandas in an analysis environment

dovpanda Directions OVer PANDAs Directions are hints and tips for using pandas in an analysis environment. dovpanda is an overlay companion for workin

dovpandev 431 Dec 20, 2022
Simple and lightweight Spotify Overlay written in Python.

Simple Spotify Overlay This is a simple yet powerful Spotify Overlay. About I have been looking for something like this ever since I got Spotify. I th

null 27 Sep 3, 2022
Fun program to overlay a mask to yourself using a webcam

Superhero Mask Overlay Description Simple project made for fun. It consists of placing a mask (a PNG image with transparent background) on your face.

KB Kwan 10 Dec 1, 2022
OpenCV, MediaPipe Pose Estimation, Affine Transform for Icon Overlay

Yoga Pose Identification and Icon Matching Project Goal Detect yoga poses performed by a user and overlay a corresponding icon image. Running the main

Anna Garverick 1 Dec 3, 2021
Simple ssh overlay for easy, remote server management written in Python GTK with paramiko

Simple "ssh" overlay for easy, remote server management written in Python GTK with paramiko

kłapouch 3 May 1, 2022