Protect your eyes from eye strain using this simple and beautiful, yet extensible break reminder

Overview

Safe Eyes

Release PyPI version Debian AUR Translation status Awesome Humane Tech Donate

Protect your eyes from eye strain using this simple and beautiful, yet extensible break reminder.

Visit the official site: http://slgobinath.github.io/SafeEyes/ for more details.

Safe Eyes command-line arguments

usage: safeeyes [-h] [-a | -d | -e | -q | -s | -t] [--debug] [--version]

Safe Eyes protects your eyes from eye strain (asthenopia) by reminding you to
take breaks while you're working long hours at the computer.

optional arguments:
  -h, --help        show this help message and exit
  -a, --about       show the about dialog
  -d, --disable     disable the currently running safeeyes instance
  -e, --enable      enable the currently running safeeyes instance
  -q, --quit        quit the running safeeyes instance and exit
  -s, --settings    show the settings dialog
  -t, --take-break  take a break now
  --debug           start safeeyes in debug mode
  --status          print the status of running safeeyes instance and exit
  --version         show program's version number and exit

Installation guide

Safe Eyes is available in Ubuntu PPA, Arch AUR, Gentoo and Python PyPI. You can choose any installation source and install on any Linux system with Python 3.

Ubuntu, Linux Mint and other Ubuntu Derivatives

sudo add-apt-repository ppa:slgobinath/safeeyes
sudo apt update
sudo apt install safeeyes

Arch

yay -S safeeyes

Gentoo

sudo emerge -av x11-misc/safeeyes

Debian

sudo apt-get install safeeyes

Fedora

sudo dnf install libappindicator-gtk3 python3-psutil cairo-devel python3-devel gobject-introspection-devel cairo-gobject-devel
sudo pip3 install safeeyes
sudo gtk-update-icon-cache /usr/share/icons/hicolor

OpenSUSE Tumbleweed

sudo zypper refresh
sudo zypper install safeeyes

Other Linux & Run from source

Ensure to meet the following dependencies:

  • gir1.2-appindicator3-0.1
  • gir1.2-notify-0.7
  • libappindicator-gtk3
  • python3-psutil
  • xprintidle (optional)
  • wlrctl (wayland optional)

To install Safe Eyes:

sudo pip3 install safeeyes

After installation, restart your system to update the icons,

To run from source:

git clone https://github.com/slgobinath/SafeEyes.git
cd SafeEyes
python3 -m safeeyes

Safe Eyes installers install the required icons to /usr/share/icons/hicolor. When you run Safe Eyes from source without, some icons may not appear.

Install in Virtual Environment

Some Linux systems like Cent OS do not have matching dependencies available in their repository. In such systems, you can install and use Safe Eyes in a Python Virtual Environment. The following instruction was tested on Cent OS 7.

  1. Install the necessary dependencies

    sudo yum install python3-devel dbus dbus-devel cairo cairo-devel cairomm-devel libjpeg-turbo-devel pango pango-devel pangomm pangomm-devel gobject-introspection-devel cairo-gobject-devel
  2. Create a virtual environment in your home folder

    mkdir ~/safeeyes
    cd ~/safeeyes/
    
    pip3 install virtualenv --user
    virtualenv --no-site-packages venv
    source venv/bin/activate
    pip3 install dbus-python safeeyes
  3. Start Safe Eyes from terminal

    cd ~/safeeyes & source venv/bin/activate
    python3 -m safeeyes

For more details, please check the issue: #329

Features

  • Remind you to take breaks with exercises to reduce RSI
  • Disable keyboard during breaks
  • Notification before and after breaks
  • Smart pause if system is idle
  • Multi-screen support
  • Customizable user interface
  • RPC API to control externally
  • Command-line arguments to control the running instance
  • Customizable using plug-ins

Third-party Plugins

Thirdparty plugins are available at another GitHub repository: safeeyes-plugins. More details about how to write your own plugin and how to install third-party plugin are available there.

License

GNU General Public License v3

IDE Support

Thanks to JetBrains for offering IDE support to develop this Open Source project.

Comments
  • Safe Eyes 2.0.0

    Safe Eyes 2.0.0

    Hi, I am pleased to announce that Safe Eyes 2.0.0 is almost ready. However, I just need to confirm that merging it to master branch will not affect the build packages for Debian, Gentoo, and others (if there are any).

    @hartwork and @anarcat could you please confirm this?

    Also, I have changed the translation technique. Earlier I used JSON files but now I have switched to formal translation files. It requires all the existing translations to be updated to the new format. Some existing literals are removed and some new literals are added to the translation.

    I kindly expect your contribution on translating Safe Eyes 2.0.0, updating the document and testing before releasing the final version. You can test Safe Eyes 2.0.0 by following these steps:

    1. git clone https://github.com/slgobinath/SafeEyes.git

    2. cd SafeEyes

    3. git checkout safeeyes-2.0.0

    4. Build the translation file using the following command:

    msgfmt -o safeeyes/config/locale/en_US/LC_MESSAGES/safeeyes.mo safeeyes/config/locale/en_US/LC_MESSAGES/safeeyes.po
    
    1. python3 -m safeeyes

    Translations cannot be done via Weblate until I merge the changes to master branch. So please send your commits to the safeeyes-2.0.0 branch. I left the previous JSON files for reference but they will be removed before releasing the final version.

    What is new in Safe Eyes 2.0.0:

    • Completely new architecture

    • Features are implemented as plugins

    • Plugins become more powerful

      • Plugins can have their own settings and the cool thing is: Safe Eyes automatically creates the respective Settings dialog.
      • Plugins can have their own dependencies
      • Plugins can control Safe Eyes or just display a text content in the break screen (Respective flow control methods are defined)
      • For more details, have a look at the existing plugins and the partially completed README document
      • Users can create their own plugins. I am thinking about maintaining a directory/separate repo for custom plugins depending on the requirement.
    • Users can manually start a break

    • Persist the internal state

    • All most all the configurations can be done via GUI

    One more feature is pending to implement. Since the Tray Icon is implemented as plugins, it can be disabled by the user which prevents access to Settings Dialog. I let users disable it considering the Gnome 3 guidelines. However, I will implement an alternative way to launch the Settings dialog without using the Tray Icon. For the moment, stay away from disabling Tray Icon and in case if you have sone so, reset the settings by removing the ~/.config/safeeyes folder.

    If you have any suggestions, please do let me know.

    safe eyes

    help wanted discussion 
    opened by slgobinath 22
  • Health Statistics: include daily screen time?

    Health Statistics: include daily screen time?

    @slgobinath what do you think of including daily screen time to the health statistics plugin and maybe some information when desired daily screen time has been exceeded? 😗

    feature 
    opened by orschiro 18
  • credit me idle time

    credit me idle time

    instead of suspending time tracking, safeeyes should credit me time that i am idle at the computer.

    example: i'm due for a pause, safeeyes tells me so but postpone it. a few minutes later, i actually step away from the computer for 10 minutes. safeeyes consider that "idle time" so it stops tracking time. when i come back, safeeyes wakes up and sends me a warning after 5 minutes because I postponed the last break.

    it should have counted my time away and if it was long enough to count as a break, count it as such.

    opened by anarcat 17
  • Moving away from /opt

    Moving away from /opt

    Hi there!

    Are there plans to get SafeEyes out of /opt towards pip/setuptools or /usr/local? It would make SafeEyes a much better citizen with regard to packaging on Linux and would allow turning away from the current

    sudo tar -xzvf safeeyes.tar.gz -C /
    

    recommendation as well, which I find a bit scary to be honest :) I'm happy to team up on that matter.

    Best, Sebastian

    PS: There's a Gentoo ebuild in the making at https://cgit.gentoo.org/proj/betagarden.git/tree/x11-misc/safeeyes.

    opened by hartwork 17
  • Media Plugin: Button images have disappeared

    Media Plugin: Button images have disappeared

    screenshot 2019-01-22 10 30 24

    For Ubuntu 16.04.5, buttons are not "enough visible". Tooltips come, but no images. I just updated through apt-get (2.0.8)

    Originally posted by @stdedos in https://github.com/slgobinath/SafeEyes/pull/295#issuecomment-456313148

    bug confirmed 
    opened by stdedos 16
  • Unstable on Ubuntu 18.04

    Unstable on Ubuntu 18.04

    Hi, I recently updated my OS from Ubuntu 17.10 to 18.04. But I found that the safeeyes isn't stable. Sometimes it keeps getting to the status of "Disabled until restart", and then it will restart itself. It is repeating this procedure while I'm typing here. Apparently this hasn't affected it's function, but watching it switching on and off is quite annoying.

    Is there any information I should provide you?

    And I've got another question. Is it possible to remove the tray icon since it's unnecessary? 'Cause with the plugin of Ubuntu on, it will be displayed even if it's necessary. Is it possible to make it a choice like the Variety by Peter Levi has done? Thanks.

    opened by peter-jerry-ye 16
  • Add the manual rest function

    Add the manual rest function

    I am not sure whether there is a such function in the current version, but I cannot find it. Sometimes I cannot stop my work right at the given time, so I am wondering whether you can add a button for manual break. In that way, I can take a break whenever I want. Thanks a lot. By the way, I am Chinese. If you want to add the Chinese translation, I can help. : )

    feature 
    opened by zypangpang 16
  • MAJOR BUG: Platform files missing

    MAJOR BUG: Platform files missing

    I just upgraded to 2.1.1 and now all the platform files are missing. The problem is this commit https://github.com/slgobinath/SafeEyes/commit/12b2b0b2a4bd4bdda20d55fea4a45096651460be. Although initialize_platform() would be run for a new install, it isn't run on upgrade from an older version when config files are already present.

    bug confirmed 
    opened by AdamPS 15
  • Do not base interface language on LC_TIME

    Do not base interface language on LC_TIME

    https://github.com/slgobinath/SafeEyes/blob/ee078e5f3bbce4df4927dc4b4d813131d1f2b6b4/safeeyes/Utility.py#L100

    I've got maybe non-standard locale settings since I'm from Poland but I prefer to have interface in English. So I have LANG/LANGUAGE set to en_US.utf8/en_US but I set "LC_CTYPE=pl_PL.utf8 LC_COLLATE=pl_PL.utf8" in my dot files. In default settings generated by the system (/etc/default/locale) I see also LC_TIME set to pl_PL.utf8 so I can change that but actually I prefer having 24h clock instead of AM/PM.

    So I'd like to ask for possibility to:

    1. Base the interface language used on LANG/LC_MESSAGES instead of LC_TIME
    2. Advanced option would be to split locale: having one for time and one for interface/messages (maybe this option is not even needed since correctly installed locale should be respecting LC_TIME override)

    Best regards Andrzej

    PS. If you agree that such modification make sense (to me it does - since MESSAGES seems to be more specific to tell what kind of language I want to see in the interface) then it looks to me like the following patch achieves both points:

    --- Utility-orig.py	2018-01-15 11:56:09.990407876 +0100
    +++ Utility.py	2018-01-15 12:02:31.688636092 +0100
    @@ -91,13 +91,13 @@
             GLib.idle_add(target_function)
     
     
    -def system_locale():
    +def system_locale(category=locale.LC_MESSAGES):
         """
         Return the system locale. If not available, return en_US.UTF-8.
         """
         try:
             locale.setlocale(locale.LC_ALL, '')
    -        sys_locale = locale.getlocale(locale.LC_TIME)[0]
    +        sys_locale = locale.getlocale(category)[0]
             if not sys_locale:
                 sys_locale = 'en_US.UTF-8'
             return sys_locale
    @@ -110,7 +110,7 @@
         """
         Format time based on the system time.
         """
    -    sys_locale = system_locale()
    +    sys_locale = system_locale(locale.LC_TIME)
         return babel.dates.format_time(time, format='short', locale=sys_locale)
    
    bug confirmed 
    opened by aostruszka 15
  • Major Bug: Version 2.1.1 doesn't work on Ubunto 20.04

    Major Bug: Version 2.1.1 doesn't work on Ubunto 20.04

    I was using 2.0.9 which has been a great product, ubunto showed me the update and I clicked install, update was successful but on next restart it wasn't starting at all. I tried many things and didn't work, I downloaded the source of 2.0.9 and installed again that stable version.

    bug duplicate confirmed 
    opened by reni11111 14
  • Feature request: Do not disturb while on battery (optional)

    Feature request: Do not disturb while on battery (optional)

    Hi, I'm using the tool on a laptop connected to an external monitor and it works great. But once I'm out of office, I do not spend much continues time in front of a laptop. Breaks come "naturally" (as I move) and SafeEyes distributes me unnecessary in between. Even worse, the tool might interrupt me at wrong time (during meetings, presentations etc).

    Please add an option which would allow me disable breaks if laptop is running on batteries. You can probably create this option in "do not disturb" plugin or create an another similar plugin.

    Thank you!

    feature in progress 
    opened by blshkv 13
  • Looking for new maintainer

    Looking for new maintainer

    Happy New Year to the Safe Eyes Community!

    I created Safe Eyes for my own needs and published it FOSS years ago. I'm happy to see the impact Safe Eyes make and like to see it grows further. However, I'm unable to find enough time to spend on Safe Eyes due to some other projects, family, and a demanding job.

    Though I want to add new features and take this project to the next level (Safe Eyes 3 has been a dream project for a long period) I couldn't find enough time. Therefore, I am looking for new maintainers willing to take over Safe Eyes and keep it active. I'm happy to share my thoughts and contribute whenever I get some time but it would be beneficial for the project if someone with new ideas and energy can take over Safe Eyes.

    Safe Eyes users don't have to worry. It doesn't mean I'm gonna archive the repo. If I couldn't find any new maintainers I will still maintain this repo but like the past few years, the project may not receive a lot of new features.

    help wanted discussion 
    opened by slgobinath 1
  • Add a command-line argument to force a long break

    Add a command-line argument to force a long break

    Right now, there's a command-line argument to immediately take a break: "safeeyes -t".

    However it's impossible to trigger a specific type of break, so you randomly get either a short or a long break.

    Is it possible to implement a command-line argument, so I can force a long break like "safeeyes -tl"?

    I have two use cases:

    1. I'd like to have long breaks at specific times, for example each hour at xx:45 for 15 minutes. I could create a Cron job to trigger the command at that time. However, this requires me to trigger a specific break.

    2. I'd like to define a global hotkey for taking long breaks. For me it's easier to voluntarily push a hotkey in order to take a break while procrastinating, than to do it by navigating the mouse to the Safe Eyes menu. Maybe it's because it's faster via hotkey, so my brain cannot intervene.

    Thank you very much for your consideration and especially for creating such a great piece of software.

    feature 
    opened by Noracsa2000 0
  • Don't detect AFK while any media is playing

    Don't detect AFK while any media is playing

    Is your feature request related to a problem? Please describe. I have observed this a lot of times now, and now raising an issue about it because it's important. Whenever I watch a YouTube Video or any other media file, I usually (and most people) don't use the mouse and keyboard and just listen/watch that media. And because of this, the software detects as we are AFK and pauses itself which eventually postpones the break, if this happens, what's the point of this break reminder app?

    Describe the solution you'd like I think it must not be a hard problem to solve, we just need to detect if any media file is playing and stop the detection of AFK.

    feature 
    opened by prakhartiwari0 0
  • Is croniter an optional dependency?

    Is croniter an optional dependency?

    Describe the bug

    In the AUR package, python-croniter is listed as an optional dependency. However, in setup.py, croniter is listed in the requires array.

    As a result, when Arch users try to run SafeEyes, they will encounter the situation as described in this comment.

    pkg_resources.DistributionNotFound: The 'croniter' distribution was not found and is required by safeeyes

    If it is required for the program to run, then python-croniter should be moved to the depends array in the PKGBUILD.

    If it is optional, then the Python setup script has to be tweaked. (I am not sure but perhaps it's extras_require?)

    bug 
    opened by antermin 0
  • Can't connect to display

    Can't connect to display ":0"

    The bug Since a few weeks, safeeyes fails to start due to some missing X authorization:

    $ safeeyes
    [...]
    Xlib.error.DisplayConnectionError: Can't connect to display ":0": b'Authorization required, but no authorization protocol specified\n'
    

    To Reproduce Steps to reproduce the behavior:

    Open Gnome with Wayland launch safeeyes

    Instead, trying to launch it from startx, it worked without error.

    Expected behavior Should work also on Gnome with Wayland.

    Desktop:

    • OS: Arch
    • Desktop Env: 43.2
    • Version: safeeyes-git from AUR (2.1.4.r3.g9123562-1)

    Debug Log Run the Safe Eyes using safeeyes --debug command attach the ~/safeeyes.log` file.

    2022-12-10 17:07:08,289 [DEBUG]:[MainThread] Initialize the platform
    2022-12-10 17:07:08,306 [INFO]:[MainThread] Starting Safe Eyes
    Traceback (most recent call last):
      File "/usr/bin/safeeyes", line 33, in <module>
        sys.exit(load_entry_point('safeeyes==2.1.4', 'console_scripts', 'safeeyes')())
      File "/usr/lib/python3.10/site-packages/safeeyes/__main__.py", line 150, in main
        safe_eyes = SafeEyes(system_locale, config)
      File "/usr/lib/python3.10/site-packages/safeeyes/safeeyes.py", line 84, in __init__
        self.break_screen = BreakScreen(
      File "/usr/lib/python3.10/site-packages/safeeyes/ui/break_screen.py", line 47, in __init__
        self.display = Display()
      File "/usr/lib/python3.10/site-packages/Xlib/display.py", line 89, in __init__
        self.display = _BaseDisplay(display)
      File "/usr/lib/python3.10/site-packages/Xlib/display.py", line 71, in __init__
        protocol_display.Display.__init__(self, *args, **keys)
      File "/usr/lib/python3.10/site-packages/Xlib/protocol/display.py", line 166, in __init__
        raise error.DisplayConnectionError(self.display_name, r.reason)
    Xlib.error.DisplayConnectionError: Can't connect to display ":0": b'Authorization required, but no authorization protocol specified\n'
    

    Workaround

    I managed to temporarily solve authorizing my own user to run X things:

    xhost +SI:localuser:#$(id -u)
    
    bug 
    opened by ilario 2
  • [2.1.4] PyPI release tarballs contain compiled .pyc files?

    [2.1.4] PyPI release tarballs contain compiled .pyc files?

    Describe the bug Hi @slgobinath, it has been brought to my attention that the SafeEyes PyPI tarballs contain some compiled .pyc files. I believe that is an accident and likely points to some problem in the process of making these files. What do you think? Best, Sebastian

    To Reproduce

    # wget -O- https://files.pythonhosted.org/packages/1d/e8/221f5afdb7aba8524496906e1fc7d58bd75fb7cf0b3036392cffcd632eda/safeeyes-2.1.4.tar.gz 2>/dev/null | tar tz | grep '\.pyc$' | sort
    safeeyes-2.1.4/safeeyes/plugins/audiblealert/__pycache__/plugin.cpython-310.pyc
    safeeyes-2.1.4/safeeyes/plugins/audiblealert/__pycache__/plugin.cpython-38.pyc
    safeeyes-2.1.4/safeeyes/plugins/breakscreen/__pycache__/plugin.cpython-38.pyc
    safeeyes-2.1.4/safeeyes/plugins/donotdisturb/__pycache__/dependency_checker.cpython-310.pyc
    safeeyes-2.1.4/safeeyes/plugins/donotdisturb/__pycache__/plugin.cpython-310.pyc
    safeeyes-2.1.4/safeeyes/plugins/donotdisturb/__pycache__/plugin.cpython-38.pyc
    safeeyes-2.1.4/safeeyes/plugins/donotdisturb/__pycache__/validator.cpython-38.pyc
    safeeyes-2.1.4/safeeyes/plugins/healthstats/__pycache__/dependency_checker.cpython-310.pyc
    safeeyes-2.1.4/safeeyes/plugins/healthstats/__pycache__/plugin.cpython-310.pyc
    safeeyes-2.1.4/safeeyes/plugins/healthstats/__pycache__/plugin.cpython-38.pyc
    safeeyes-2.1.4/safeeyes/plugins/healthstats/__pycache__/validator.cpython-38.pyc
    safeeyes-2.1.4/safeeyes/plugins/mediacontrol/__pycache__/plugin.cpython-310.pyc
    safeeyes-2.1.4/safeeyes/plugins/mediacontrol/__pycache__/plugin.cpython-38.pyc
    safeeyes-2.1.4/safeeyes/plugins/notification/__pycache__/plugin.cpython-310.pyc
    safeeyes-2.1.4/safeeyes/plugins/notification/__pycache__/plugin.cpython-38.pyc
    safeeyes-2.1.4/safeeyes/plugins/rpcserver/__pycache__/plugin.cpython-38.pyc
    safeeyes-2.1.4/safeeyes/plugins/rpcserver/__pycache__/validator.cpython-38.pyc
    safeeyes-2.1.4/safeeyes/plugins/screensaver/__pycache__/plugin.cpython-310.pyc
    safeeyes-2.1.4/safeeyes/plugins/screensaver/__pycache__/plugin.cpython-38.pyc
    safeeyes-2.1.4/safeeyes/plugins/smartpause/__pycache__/dependency_checker.cpython-310.pyc
    safeeyes-2.1.4/safeeyes/plugins/smartpause/__pycache__/plugin.cpython-310.pyc
    safeeyes-2.1.4/safeeyes/plugins/smartpause/__pycache__/plugin.cpython-38.pyc
    safeeyes-2.1.4/safeeyes/plugins/smartpause/__pycache__/validator.cpython-38.pyc
    safeeyes-2.1.4/safeeyes/plugins/trayicon/__pycache__/plugin.cpython-310.pyc
    safeeyes-2.1.4/safeeyes/plugins/trayicon/__pycache__/plugin.cpython-38.pyc
    

    Expected behavior No .pyc in source tarballs.

    Desktop (please complete the following information):

    • OS: n/a
    • Desktop Env: n/a
    • Version: 2.1.4 + earlier releases

    Debug Log n/a

    Screenshots n/a

    bug 
    opened by hartwork 7
Releases(v2.1.4)
Owner
Gobinath
An open source enthusiastic spending his free time on developing crazy stuff
Gobinath
A tool to create the basics of a project

Project-Scheduler Instalação Para instalar o Project Maker, você necessita está em um ambiente de desenvolvimento Linux ou wsl com alguma distro debia

2 Dec 17, 2021
A python module to manipulate XCode projects

This module can read, modify, and write a .pbxproj file from an Xcode 4+ projects. The file is usually called project.pbxproj and can be found inside the .xcodeproj bundle. Because some task cannot b

Ignacio Calderon 1.1k Jan 02, 2023
EVE-NG tools, A Utility to make operations with EVE-NG more friendly.

EVE-NG tools, A Utility to make operations with EVE-NG more friendly. Also it support different snapshot operations with same style as Libvirt/KVM

Bassem Aly 8 Jan 05, 2023
Let's renew the puzzle collection. We'll produce a collection of new puzzles out of the lichess game database.

Let's renew the puzzle collection. We'll produce a collection of new puzzles out of the lichess game database.

Thibault Duplessis 96 Jan 03, 2023
More routines for operating on iterables, beyond itertools

More Itertools Python's itertools library is a gem - you can compose elegant solutions for a variety of problems with the functions it provides. In mo

2.9k Jan 06, 2023
Retrying library for Python

Tenacity Tenacity is an Apache 2.0 licensed general-purpose retrying library, written in Python, to simplify the task of adding retry behavior to just

Julien Danjou 4.3k Jan 05, 2023
Extract the download URL from OneDrive or SharePoint share link and push it to aria2

OneDriveShareLinkPushAria2 Extract the download URL from OneDrive or SharePoint share link and push it to aria2 从OneDrive或SharePoint共享链接提取下载URL并将其推送到a

高玩梁 262 Jan 08, 2023
Audio Steganography is a technique used to transmit hidden information by modifying an audio signal in an imperceptible manner.

Audio Steganography Audio Steganography is a technique used to transmit hidden information by modifying an audio signal in an imperceptible manner. Ab

Karan Yuvraj Singh 1 Oct 17, 2021
Shypan, a simple, easy to use, full-featured library written in Python.

Shypan, a simple, easy to use, full-featured library written in Python.

ShypanLib 4 Dec 08, 2021
Skywater 130nm Klayout Device Generators PDK

Skywaters 130nm Technology for KLayout Device Generators Mabrains is excited to share with you our Device Generator Library for Skywater 130nm PDK. It

Mabrains 18 Dec 14, 2022
Application for easy configuration of swap file and swappiness priority in slackware and others linux distributions.

Swap File Program created with the objective of assisting in the configuration of swap file in Distributions such as Slackware. Required packages: pyt

Mauricio Ferrari 3 Aug 06, 2022
✨ Un générateur d'adresse IP aléatoire totalement fait en Python par moi, et en français.

IP Generateur ❗ Un générateur d'adresse IP aléatoire totalement fait en Python par moi, et en français. 🔮 Avec l'utilisation du module "random", j'ai

MrGabin 3 Jun 06, 2021
Customized python validations.

A customized python validations.

Wilfred V. Pine 2 Apr 20, 2022
Python lightweight dependency injection library

pythondi pythondi is a lightweight dependency injection library for python Support both sync and async functions Installation pip3 install pythondi Us

Hide 41 Dec 16, 2022
This utility synchronises spelling dictionaries from various tools with each other.

This utility synchronises spelling dictionaries from various tools with each other. This way the words that have been trained on MS Office are also correctly checked in vim or Firefox. And vice versa

Patrice Neff 2 Feb 11, 2022
Python 3 script unpacking statically x86 CryptOne packer.

Python 3 script unpacking statically x86 CryptOne packer. CryptOne versions: 2021/08 until now (2021/12)

5 Feb 23, 2022
VerSign: Easy Signature Verification in Python

VerSign: Easy Signature Verification in Python versign is a small Python package which can be used to perform verification of offline signatures. It a

Muhammad Saif Ullah Khan 3 Dec 01, 2022
Finds price floor for every single attribute in a given collection

Solana Solanart Scanner Enjoy the Free Code Steps to run Download VS Code

Dalton Nisbett 19 Oct 20, 2022
extract gene TSS/TES site form gencode/ensembl/gencode database GTF file and export bed format file.

GetTsite python Package extract gene TSS/TES site form gencode/ensembl/gencode database GTF file and export bed format file. Install $ pip install Get

laojunjun 7 Nov 21, 2022
tade is a discussion/forum/link aggregator application. It provides three interfaces: a regular web page, a mailing list bridge and an NNTP server

tade is a discussion/forum/link aggregator application. It provides three interfaces: a regular web page, a mailing list bridge and an NNTP server

Manos Pitsidianakis 23 Nov 04, 2022