Airbrake Python

Overview

airbrake-python

Note. Python 3.4+ are advised to use new Airbrake Python notifier which supports async API and code hunks. Python 2.7 users should continue to use this notifier.

Airbrake integration for python that quickly and easily plugs into your existing code.

import airbrake

logger = airbrake.getLogger()

try:
    1/0
except Exception:
    logger.exception("Bad math.")

airbrake-python is used most effectively through its logging handler, and uses the Airbrake V3 API for error reporting.

install

To install airbrake-python, run:

$ pip install -U airbrake

setup

The easiest way to get set up is with a few environment variables:

export AIRBRAKE_API_KEY=*****
export AIRBRAKE_PROJECT_ID=12345
export AIRBRAKE_ENVIRONMENT=dev

and you're done!

Otherwise, you can instantiate your AirbrakeHandler by passing these values as arguments to the getLogger() helper:

import airbrake

logger = airbrake.getLogger(api_key=*****, project_id=12345)

try:
    1/0
except Exception:
    logger.exception("Bad math.")

By default, airbrake will catch and send uncaught exceptions. To avoid this behvaiour, use the send_uncaught_exc option: logger = airbrake.getLogger(api_key=*****, project_id=12345, send_uncaught_exc=False)

setup for Airbrake On-Premise and other compatible back-ends (e.g. Errbit)

Airbrake Enterprise and self-hosted alternatives, such as Errbit, provide a compatible API.

You can configure a different endpoint than the default (https://api.airbrake.io) by either:

  • Setting an environment variable:
export AIRBRAKE_HOST=https://self-hosted.errbit.example.com/
  • Or passing a host argument to the getLogger() helper:
import airbrake

logger = airbrake.getLogger(api_key=*****, project_id=12345, host="https://self-hosted.errbit.example.com/")

adding the AirbrakeHandler to your existing logger

import logging

import airbrake

yourlogger = logging.getLogger(__name__)
yourlogger.addHandler(airbrake.AirbrakeHandler())

by default, the AirbrakeHandler only handles logs level ERROR (40) and above

Additional Options

More options are available to configure this library.

For example, you can set the environment to add more context to your errors. One way is by setting the AIRBRAKE_ENVIRONMENT env var.

export AIRBRAKE_ENVIRONMENT=staging

Or you can set it more explicitly when you instantiate the logger.

import airbrake

logger = airbrake.getLogger(api_key=*****, project_id=12345, environment='production')

The available options are:

  • environment, defaults to env var AIRBRAKE_ENVIRONMENT
  • host, defaults to env var AIRBRAKE_HOST or https://api.airbrake.io
  • root_directory, defaults to None
  • timeout, defaults to 5. (Number of seconds before each request times out)
  • send_uncaught_exc, defaults to True (Whether or not to send uncaught exceptions)

giving your exceptions more context

import airbrake

logger = airbrake.getLogger()

def bake(**goods):
    try:
        temp = goods['temperature']
    except KeyError as exc:
        logger.error("No temperature defined!", extra=goods)

Setting severity

[Severity][what-is-severity] allows categorizing how severe an error is. By default, it's set to error. To redefine severity, simply build_notice with the needed severity value. For example:

notice = airbrake.build_notice(exception, severity="critical")
airbrake.notify(notice)

Using this library without a logger

You can create an instance of the notifier directly, and send errors inside exception blocks.

from airbrake.notifier import Airbrake

ab = Airbrake(project_id=1234, api_key='fake')

try:
    amazing_code()
except ValueError as e:
    ab.notify(e)
except:
    # capture all other errors
    ab.capture()

Running Tests Manually

Create your environment and install the test requirements

virtualenv venv
source venv/bin/activate
pip install .
python setup.py test

To run via nose (unit/integration tests):

source venv/bin/activate
pip install -r ./test-requirements.txt
source venv/bin/activate
nosetests

Run all tests, including multi-env syntax, and coverage tests.

pip install tox
tox -v --recreate

It's suggested to make sure tox will pass, as CI runs this. tox needs to pass before any PRs are merged.


The airbrake.io api docs used to implement airbrake-python are here: https://airbrake.io/docs/api/

[[what-is-severity]: https://airbrake.io/docs/airbrake-faq/what-is-severity/]

Comments
  • Add local variables at each backtrace line.

    Add local variables at each backtrace line.

    Note: This is a question I got from Adam Easterling via Support.


    One thing that I frequently find myself wanting is a stack trace that includes local variables at each stack frame. In Python, all that information is there -- however, it looks like your API doesn't have a place for this information.

    I asked Codebase for your API documentation, and they directed me to version 2.3, https://help.airbrake.io/kb/api-2/notifier-api-version-23

    */notice/error/backtrace/line*
    
    Required. This element can occur more than once. Each line element 
    describes one code location or frame in the backtrace when the error 
    occurred, and requires @file and @number attributes. If the location 
    includes a method or function, the @method attribute should be used. 
    

    Notice, there's not really a place to include local variables at each backtrace line.

    @vmihailenco Could we add this into V3? https://help.airbrake.io/kb/api-2/notifier-api-v3

    opened by benarent 17
  • packaging and CI refactor

    packaging and CI refactor

    Among other things, this change adds a circle.yml file so we can start testing airbrake-python using CircleCI which is free for open source projects like this one.

    The python versions I have configured for testing are:

    • 2.7.9
    • 2.7.10
    • 3.3.3
    • 3.4.3
    • 3.5.0

    I have a passing CircleCI build on my fork against the code in this pull request: https://circleci.com/gh/samstav/airbrake-python/12

    opened by stavxyz 10
  • Duck type traceback type

    Duck type traceback type

    Easier to create fake tracebacks for custom logging. If you want to create a traceback that has a custom / modified trace, airbrake will not treat it accordingly since it does a type check against types.TracebackType. This is overly cautionary since the object is just handed off to methods in the traceback module which work appropriately on duck-typed object

    Inspired by this stack overflow question: http://stackoverflow.com/questions/13210436/get-full-traceback

    opened by pfhayes 7
  • Silence the stderr git warning when running from a non-git directory

    Silence the stderr git warning when running from a non-git directory

    When running from a non-git directory the process will print fatal: Not a git repository (or any of the parent directories): .git to stderr once every minute or so. In our case we use a carefully packaged Docker container which excludes the git directory to keep the sizes smaller. This pull request silences that warning and maintains the same functionality (returning None)

    A test was also added to reproduce the issue while troubleshooting, though it was unable to capture the existing subprocess stderr so could not assert there will not be a regression. The new test will, however, display the fatal: Not a git repository (or any of the parent directories): .git warning when running test tests if there is a regression in the future.

    opened by mzsanford 5
  • Don't fail when 'extra' in log records contain non JSON serializable objects

    Don't fail when 'extra' in log records contain non JSON serializable objects

    Hi! It's me again.

    I plugged the Airbrake handler to the logging of an existing django project, and noticed that airbrake notifications were not being sent after triggering errors in the webapp. The reason was that Django, when logging errors, sends along information in the extra argument that is not any of the basic JSON types (basically every object except string, int, list, dict, etc).

    This was causing a TypeError('X is not JSON serializable') in notifier.py when executing json.dumps(payload)

    The purpose of this PR, is to use repr(object) for any param that is not JSON serializable.

    Notice that this scenario might be pretty common also outside the context of Django.

    Tests and linters green: https://circleci.com/gh/argos83/airbrake-python/11

    opened by argos83 5
  • V1.1.0 updates

    V1.1.0 updates

    Some long needed updates. Improves usability and leverages more of the datapoints available through the airbrake error reporting API. Includes a helper for fetching a logger object, pre-configured with an AirbrakeHandler, and many other improvements.

    Updated the README to reflect the simplified interface.

    opened by stavxyz 5
  • Set TLS verify

    Set TLS verify

    I set up Errbit in AWS and made the endpoint private for testing, then access the endpoint from EKS. I know we should always verify TLS, but as for especially testing, we should have an option to skip verification. Could you consider merging this feature?

    opened by dtaniwaki 4
  • describeexctipn for airbrake?

    describeexctipn for airbrake?

    How would i add airbrake code with logger i already added this

    import airbrake
    logger = airbrake.getLogger(api_key=myapikeyishiddenforprivacy:), project_id=234209)
    now i at the end of my game starter i have this
    autoRun = ConfigVariableBool('toontown-auto-run', 1)
    if autoRun:
        try:
            base.run()
        except SystemExit:
            raise
        except:
            print describeException()
            raise
    

    now how would i add logger.exception properly after describeexception so i report crashes to airbrake every time a person who plays my game crashes :)

    opened by MichaelGDev48 4
  • Asyncio support?

    Asyncio support?

    Hi thanks for good tool and battery!

    Asyncio/aiohttp stack is rapidly growing in usage and it will be really nice if library add support for async transport.

    If you consider it as an addition i can create PR.

    opened by hzlmn 3
  • Support for Python logging.config.fileConfig

    Support for Python logging.config.fileConfig

    Hi

    I'm rather new to logging with Python (and Pyramid in particular). How do I configure the logging facility to use Airbrake?

    According to 16.8. logging.config of the Python 3 library a config file should contain this:

    ...
    [handlers]
    keys = ..., airbrake
    
    [logger_myapp]
    level = <something>
    handlers = airbrake
    ...
    
    [handler_airbrake]
    class = 
    args = 
    level = 
    

    Now, what value should class, args and level take? I could think of these but I have no clue if they'd even make sense syntactically:

    [handler_airbrake]
    # Because it implementes the Python handler interface?
    class = airbrake.handler.AirbrakeHandler
    # Don't know, just guessing
    args = {'airbrake':None, 'level':NOTSET, 'project_id': 'myapp', 'api_key': myairbrakekey }
    # Delegate decision over log level to logger. For convenience only
    level = NOTSET
    
    opened by lusitania 3
  • Fix commit hash retrieval.

    Fix commit hash retrieval.

    Before, the commit hash looks like "b'8cfe34106cc8ade9da14c932523b9c5e62c0c295'" Now it looks like '8cfe34106cc8ade9da14c932523b9c5e62c0c295'

    opened by JThinkable 2
  • Make sure capture() does not drop stack frames

    Make sure capture() does not drop stack frames

    In the following example flask app, we have a report that using capture() will not report the appropriate handlers that raised the error (when running on uwsgi). Using notify() solved this problem.

    from flask import Flask, jsonify
    from airbrake.notifier import Airbrake
    
    app = Flask(__name__)
    ab = Airbrake(project_id=2, api_key='5a00a5340e6cac4def2262adb4ded8a4', host="http://getexceptional.me.ab")
    
    @app.errorhandler(Exception)
    def handle_error(e):
        ab.notify(e)
        return jsonify(error=str(e)), 500
    
    @app.route('/hello')
    def hello_world():
        raise Exception("Hello world failed")
        return 'Hello, World!'
    
    @app.route('/ping')
    def ping():
        raise Exception("ping failed")
        return 'Ping!'
    
    if __name__ == '__main__':
        app.run()
    
    opened by zachgoldstein 0
  • Notice.py initialiser should use str in message

    Notice.py initialiser should use str in message

    From https://github.com/airbrake/airbrake-python/pull/76#discussion_r113081044

    I think what I'm really trying to say is, if I did something silly/wrong like pass a string to Notice as the exception argument, then I would expect it to either 1) fail or 2) end up as the error message (or _somewhere) in airbrake.

    When passed a string, I think the initialiser should use that in the error message. More generally, we could probably clean up __init__ in notice.py so that it's more clear what it's doing.

    enhancement 
    opened by zachgoldstein 5
  • Add failback for stacktraces from exceptions

    Add failback for stacktraces from exceptions

    Right now we don't pick up stacktraces from bare exceptions. I think we should make an effort to do this, even though there is no guarantee that sys.exc_info() will pick up anything. In python 3.5+ we have exception.__traceback__, so we should also use this if it's available. This will also simplify some of the work in integrations.

    enhancement 
    opened by zachgoldstein 1
  • Add regex for filtering keys

    Add regex for filtering keys

    As mentioned in https://github.com/airbrake/airbrake-python/pull/67#discussion_r105037391. We have this in the ruby notifier, and we should add it here as well.

    enhancement 
    opened by zachgoldstein 0
Releases(v2.2.0)
  • v2.2.0(Jun 17, 2021)

    Commits

    d970443 :heavy_minus_sign: Update lint for tls verify :small_blue_diamond: Daisuke Taniwaki 59c6fbe :heavy_minus_sign: Utilize requests session to apply the verify setting throughout the instance lifecycle :small_blue_diamond: Daisuke Taniwaki 174f92b :heavy_minus_sign: Set tls verify :small_blue_diamond: Daisuke Taniwaki 9c6083d :heavy_minus_sign: Remove arthur python jpg. Use current Airbrake logo :small_blue_diamond: Patrick Humpal 6f910ae :heavy_minus_sign: Deprecate use of Python3.4 :small_blue_diamond: Patrick Humpal


    https://pypi.python.org/pypi/airbrake/2.2.0

    Source code(tar.gz)
    Source code(zip)
  • v2.1.2(Mar 5, 2019)

    Commits

    c0d83a0 :heavy_minus_sign: Update Airbrake api endpoint :small_blue_diamond: Patrick Humpal


    https://pypi.python.org/pypi/airbrake/2.1.2

    Source code(tar.gz)
    Source code(zip)
  • v2.1.1(Mar 5, 2019)

    Commits

    45a2c74 :heavy_minus_sign: Upgrade requests :small_blue_diamond: Patrick Humpal 713df8e :heavy_minus_sign: Fix pyenv for CircleCI builds 🔹 Patrick Humpal


    https://pypi.python.org/pypi/airbrake/2.1.1

    Source code(tar.gz)
    Source code(zip)
  • v2.1.0(Aug 3, 2017)

    Commits

    e1ab851 :heavy_minus_sign: Send uncaught exceptions by default :small_blue_diamond: Zach Goldstein 629a421 :heavy_minus_sign: Move 'severity' field from errors[] to context :small_blue_diamond: tuttieee 6efe49e :heavy_minus_sign: Silence the stderr git warning when running from a non-git directory :small_blue_diamond: mzsanford c9ad35b :heavy_minus_sign: Accept unicode error messages :small_blue_diamond: sirdodger


    https://pypi.python.org/pypi/airbrake/2.1.0

    Source code(tar.gz)
    Source code(zip)
  • v2.0.0(Mar 27, 2017)

    Commits

    2c8a114 :heavy_minus_sign: Remove hardcoded test version use :small_blue_diamond: Zach Goldstein d06327f :heavy_minus_sign: Bump major version to 2.0.0 :small_blue_diamond: Zach Goldstein 44bebd1 :heavy_minus_sign: Add capture decorator :small_blue_diamond: Zach Goldstein 963688e :heavy_minus_sign: Add error severity and integrate into logging :small_blue_diamond: Zach Goldstein 51b9303 :heavy_minus_sign: Set default root_directory (#68) :small_blue_diamond: Zach Goldstein 60af090 :heavy_minus_sign: Add user data to context payload (#70) :small_blue_diamond: Zach Goldstein f8b055f :heavy_minus_sign: Set the git revision in deploys if it's available locally (#64) :small_blue_diamond: Zach Goldstein ff2cdde :heavy_minus_sign: Add list-based filters (white/black) :small_blue_diamond: Zach Goldstein 2a5c267 :heavy_minus_sign: Add convenience method capture () for most recent exception :small_blue_diamond: Zach Goldstein bbfb031 :heavy_minus_sign: Feature/add separate notice obj :small_blue_diamond: Zach Goldstein 1f9fbc1 :heavy_minus_sign: Add timeout :small_blue_diamond: Zach Goldstein cb9c3e8 :heavy_minus_sign: Add readme notes for running tests manually :small_blue_diamond: Zach Goldstein 99ba7e9 :heavy_minus_sign: Add hostname to context and allow env override :small_blue_diamond: Zach Goldstein 7ac77ff :heavy_minus_sign: Upgrade to use v4 deploy endpoint fix :small_blue_diamond: Zach Goldstein


    https://pypi.python.org/pypi/airbrake/2.0.0

    Source code(tar.gz)
    Source code(zip)
  • v1.3.3(Jun 9, 2016)

    Commits

    2502c91 :heavy_minus_sign: bump to 1.3.3 for notify fix :small_blue_diamond: Sam Stavinoha fbc78dc :heavy_minus_sign: Fix Airbrake.notify regression :small_blue_diamond: Lars Butler


    https://pypi.python.org/pypi/airbrake/1.3.3

    Source code(tar.gz)
    Source code(zip)
  • v1.3.2(Apr 13, 2016)

    Commits

    c806a27 :heavy_minus_sign: bump to version 1.3.2 for traceback duck-typing :small_blue_diamond: Sam Stavinoha 6a5b9b9 :heavy_minus_sign: Fix tests, lint :small_blue_diamond: Patrick Hayes 34c93ac :heavy_minus_sign: Traceback tests :small_blue_diamond: Patrick Hayes b96e425 :heavy_minus_sign: Duck type traceback type :small_blue_diamond: Patrick Hayes


    https://pypi.python.org/pypi/airbrake/1.3.2

    Source code(tar.gz)
    Source code(zip)
  • v1.3.1(Apr 4, 2016)

    Commits

    887dd41 :heavy_minus_sign: call JSONEncoder.default(o) if repr(o) raises an exception :small_blue_diamond: Seba 12b9519 :heavy_minus_sign: Comment about inline pylint disable :small_blue_diamond: Sebastian Tello 0577541 :heavy_minus_sign: Moved pylint disable comment inline :small_blue_diamond: Seba 1d7b191 :heavy_minus_sign: Don't fail when 'extra' in log records contain non JSON serializable objects :small_blue_diamond: Seba 5421b8c :heavy_minus_sign: @phumpal README.md suggestions :small_blue_diamond: Sebastian Tello fa231cf :heavy_minus_sign: fixed: E704 multiple statements on one line :small_blue_diamond: Seba 3c90a20 :heavy_minus_sign: Fixed: E501 line too long :small_blue_diamond: Seba 13c0a7a :heavy_minus_sign: Fix: E731 do not assign a lambda expression, use a def :small_blue_diamond: Seba fa2f35e :heavy_minus_sign: Link to errbit in readme doc :small_blue_diamond: Sebastian Tello fb849f2 :heavy_minus_sign: fixed version increment :small_blue_diamond: Sebastian Tello ac6345e :heavy_minus_sign: Added support to Airbrake alternatives by accepting a base uri :small_blue_diamond: Sebastian Tello e50ca3b :heavy_minus_sign: bump version to 1.2.1 :small_blue_diamond: Sam Stavinoha bac97df :heavy_minus_sign: add python 3.3 to classifiers :small_blue_diamond: Sam Stavinoha a708b26 :heavy_minus_sign: linting import order :small_blue_diamond: Sam Stavinoha e472eef :heavy_minus_sign: libraries shouldnt do this :small_blue_diamond: Sam Stavinoha 266634b :heavy_minus_sign: wheeeeels :small_blue_diamond: Sam Stavinoha ff0c571 :heavy_minus_sign: custom exceptions :small_blue_diamond: Sam Stavinoha a777b5f :heavy_minus_sign: nosetests dont run real_test.py :small_blue_diamond: Sam Stavinoha ea2db99 :heavy_minus_sign: pass gates :small_blue_diamond: Sam Stavinoha dcad4ec :heavy_minus_sign: level-up testing and CI config :small_blue_diamond: Sam Stavinoha be8dec3 :heavy_minus_sign: fixup pkg metadata and setup.py :small_blue_diamond: Sam Stavinoha 949f184 :heavy_minus_sign: update and pin requirements :small_blue_diamond: Sam Stavinoha 0fdadcd :heavy_minus_sign: Fixing arguments erroneously given as kw-parameter :small_blue_diamond: lusitania


    https://pypi.python.org/pypi/airbrake/1.3.1

    Source code(tar.gz)
    Source code(zip)
  • v1.1.4(Aug 2, 2015)

    Commits:

    c038b31 :heavy_minus_sign: Signature change as proposed in issue #16 :small_blue_diamond: lusitania 4d25174 :heavy_minus_sign: Py3 exception logging, issue #17 :small_blue_diamond: lusitania 2a11ea0 :heavy_minus_sign: Revert "Py3 exception logging, issue #17" :small_blue_diamond: lusitania ef6dd58 :heavy_minus_sign: Py3 exception logging, issue #17 :small_blue_diamond: lusitania 2f30619 :heavy_minus_sign: Updated setuptools classifiers :small_blue_diamond: lusitania 29aa385 :heavy_minus_sign: Py3 changes, Py2 backwards compatibility fix :small_blue_diamond: lusitania 19d8764 :heavy_minus_sign: Don't overwrite a custom message :small_blue_diamond: Yoriyasu Yano 7eda24a :heavy_minus_sign: Checking the Logger for existing AirbrakeHandlers. :small_blue_diamond: John Keyes 11c2b1f :heavy_minus_sign: Splitting requirements. :small_blue_diamond: John Keyes 6938b55 :heavy_minus_sign: Ensuring an Airbrake logger doesn't have multiple AirbrakeHandlers. :small_blue_diamond: John Keyes 60a2858 :heavy_minus_sign: Adding requirements.txt :small_blue_diamond: John Keyes 0824715 :heavy_minus_sign: Adding support to pass session and environment via extra parameters. :small_blue_diamond: John Keyes


    https://pypi.python.org/pypi/airbrake/1.1.4

    Source code(tar.gz)
    Source code(zip)
  • v1.1.3(Aug 20, 2014)

  • v1.1.2(Aug 13, 2014)

  • v1.1.1(Aug 13, 2014)

Owner
Airbrake
Visibility into your Application's Health
Airbrake
Web-based Sudoku solver built using Python. A demonstration of how backtracking works.

Sudoku Solver A web-based Sudoku solver built using Python and Python only The motivation is to demonstrate how Backtracking algorithm works. Some of

Jerry Ng 2 Dec 31, 2022
Simple Python tool to check if there is an Office 365 instance linked to a domain.

o365chk.py Simple Python script to check if there is an Office365 instance linked to a particular domain.

Steven Harris 37 Jan 02, 2023
《赛马娘》(ウマ娘: Pretty Derby)辅助 🐎🖥 基于 auto-derby 可视化操作/设置 启动器 一键包

ok-derby 《赛马娘》(ウマ娘: Pretty Derby)辅助 🐎 🖥 基于 auto-derby 可视化操作/设置 启动器 一键包 便捷,好用的 auto_derby 管理器! 功能 支持客户端 DMM (前台) 实验性 安卓 ADB 连接(后台)开发基于 1080x1920 分辨率

秋葉あんず 90 Jan 01, 2023
Workshop OOP - Workshop OOP - Discover object-oriented programming

About: This is an open-source bot, the code is open for anyone to see, fork and

Francis Clairicia-Rose-Claire-Joséphine 5 May 02, 2022
A program to calculate the are of a triangle. made with Python.

Area-Calculator What is Area-Calculator? Area-Calculator is a program to find out the area of a triangle easily. fully made with Python. Needed a pyth

Chandula Janith 0 Nov 27, 2021
CBO uses its Capital Tax model (CBO-CapTax) to estimate the effects of federal taxes on capital income from new investment

CBO’s CapTax Model CBO uses its Capital Tax model (CBO-CapTax) to estimate the effects of federal taxes on capital income from new investment. Specifi

Congressional Budget Office 7 Dec 16, 2022
Awesome Cheatsheet

Awesome Cheatsheet List of useful cheatsheets Inspired by @sindresorhus awesome and improved by these amazing contributors. If you see a link here is

detailyang 6.5k Jan 07, 2023
Holographic Declarative Memory for Python ACT-R

HDM This is the repository for the Holographic Declarative Memory (HDM) module for Python ACT-R. This repository contains: documentation: a paper, con

Carleton Cognitive Modeling Lab 1 Jan 17, 2022
Desenvolvendo as habilidades básicas de programação visando a construção de aplicativos por meio de bibliotecas apropriadas à Ciência de Dados.

Algoritmos e Introdução à Computação Ementa: Conceitos básicos sobre algoritmos e métodos para sua construção. Tipos de dados e variáveis. Estruturas

Dyanna Cruz 1 Jan 06, 2022
A feed generator. Currently supports generating RSS feeds from Google, Bing, and Yahoo news.

A feed generator. Currently supports generating RSS feeds from Google, Bing, and Yahoo news.

Josh Cardenzana 0 Dec 13, 2021
Download and process GOES-16 and GOES-17 data from NOAA's archive on AWS using Python.

Download and display GOES-East and GOES-West data GOES-East and GOES-West satellite data are made available on Amazon Web Services through NOAA's Big

Brian Blaylock 88 Dec 16, 2022
to learn how to do pull request and do contribution to other's repo

Hacktoberfest-2021 - open-source-contribution An Open Source repository to Teach people How to contribute to open sources. 💥 🔥 JOIN PVX PROGRAMMING

Shubham Rawat 82 Dec 26, 2022
CNKD - Minimalistic Windows ransomware written in Python

CNKD Minimalistic Windows ransomware written in Python (Still a work in progress

Alex 2 May 27, 2022
Laurence Billingham 1 Feb 16, 2022
SpellingBeeSolver - This program generates solutions to NYT style spelling bee problems.

SpellingBeeSolver This program generates solutions to NYT style spelling bee problems. The initial version of this program is being written in Python

1 Jan 01, 2022
A calculator for common measurements used in sci-fi books.

Sci-fi-speed-calculator A calculator for common measurements used in sci-fi books. Author: Tyler Windmemuth Purpose: This program allows sci-fi author

Tyler Windemuth 0 Apr 22, 2022
Urban Big Data Centre Housing Sensor Project

Housing Sensor Project The Urban Big Data Centre is conducting a study of indoor environmental data in Scottish houses. We are using Raspberry Pi devi

Jeremy Singer 2 Dec 13, 2021
Petuhlang is a joke-like language, based on Python.

Petuhlang is a joke-like language, based on Python. It updates builtins to make a new syntax based on operators rewrite.

DenyS 9 Jun 19, 2022
A bot to use in a pump & dump event

A bot to use in a pump & dump event on Binance.com. Please note the bot is in heavy devleopment currently so be aware of errors. If you experience err

Freddie Jonas 189 Dec 24, 2022
Analysis of ROM image for Norsk Data VDU 301 S

This repository is meant to analyze the ROM images from Norsk Data VDU 301 S as provided at by Torfinn. To combine the two ROM image halves and extrac

Sebastian Rasmussen 1 Oct 21, 2021