The Python Error Steamroller
FuckIt.py uses state-of-the-art technology to make sure your Python code runs whether it has any right to or not. Some code has an error? Fuck it.
FuckIt.py uses a combination of dynamic compilation, Abstract Syntax Tree rewriting, live call stack modification, and love to get rid of all those pesky errors that make programming so hard.
All functionality is provided through the fuckit module. Add
import fuckit to the top of your script, then use fuckit in any of the following ways:
As a replacement for import
Use fuckit to replace an import when a module has errors.
import some_shitty_module to
fuckit('some_shitty_module'). Note that you have to surround the module name with quotes and parentheses.
import fuckit #import some_shitty_module fuckit('some_shitty_module') some_shitty_module.some_function()
Still getting errors? Chain fuckit calls. This module is like violence: if it doesn't work, you just need more of it.
import fuckit fuckit(fuckit('some_shitty_module')) # This is definitely going to run now. some_shitty_module.some_function()
As a decorator
Use fuckit as a function decorator when a single function is giving you trouble. Exceptions will be silenced, and in most cases the function will continue to run, skipping the statements that cause errors.
@fuckit def func(): problem_solved
You can use fuckit as a class decorator, too.
@fuckit class C(object): def __init__(self): everything_works_now
Keep in mind that the decorator form of fuckit can't stop syntax errors. For those, you have to use the import form.
As a context manager
Use fuckit as a context manager to save yourself from having to type out try/except block to silence exceptions yourself.
with fuckit: some_code
This is functionally equivalent to the following:
try: some_code except Exception: pass
The context manager form of fuckit can't allow the code to continue past an error like the decorator and import forms can. If you want the code to continue after an exception, wrap the code block in a function and use the decorator instead.
The web devs tell me that fuckit's versioning scheme is confusing, and that I should use "Semitic Versioning" instead. So starting with fuckit version
ה.ג.א, package versions will use Hebrew Numerals.
Copyright (C) 2014-2018 AJ Alt
This work is free. You can redistribute it and/or modify it under the terms of the Do What The Fuck You Want To Public License, Version 2, reproduced below.
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE Version 2, December 2004 Copyright (C) 2004 Sam Hocevar <firstname.lastname@example.org> Everyone is permitted to copy and distribute verbatim or modified copies of this license document, and changing it is allowed as long as the name is changed. DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. You just DO WHAT THE FUCK YOU WANT TO.
This module is inspired by Matt Diamond's FuckIt.js.