Skip to content
forked from ajalt/fuckitpy

The Python error steamroller.

Notifications You must be signed in to change notification settings

jpiper/fuckitpy

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

#FuckIt.py Build Status PyPI version Coverage Status Downloads

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.

Technology

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.

API

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. Just change 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.

 from fuckit import fuckit
fuckit(fuckit('some_shitty_module'))
# This is definitely going run now.
some_shitty_module.some_function()

As a decorator

Use fuckit as a function decorator when a single function is giving your 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.

##License DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE Version 2, December 2004

Copyright (C) 2013

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.

Attribution

This module is inspired by Matt Diamond's FuckIt.js.

About

The Python error steamroller.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%