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
A minimalist personal blogging system that natively supports Markdown, LaTeX, and code highlighting.

December Welcome to the December blogging system's code repository! Introduction December is a minimalist personal blogging system that natively suppo

TriNitroTofu 10 Dec 05, 2022
Proyectos de ejercicios básicos y avanzados hecho en python

Proyectos Básicos y Avanzados hecho en python Instalación: Tener instalado python 3.x o superior. Tener pip instalado. Tener virtualenv o venv instala

Karlo Xavier Chok 1 Dec 27, 2021
Buggy script to play with GPOs

GPOwned /!\ This is a buggy PoC I made just to play with GPOs in my lab. Don't use it in production! /!\ The script uses impacket and ldap3 to update

45 Dec 15, 2022
Displays Christmas-themed ASCII art

Christmas Color Scripts Displays Christmas-themed ASCII art. This was mainly inspired by DistroTube's Shell Color Scripts Screenshots ASCII Shadow Tex

1 Aug 09, 2022
Cylc: a workflow engine for cycling systems

Cylc: a workflow engine for cycling systems. Repository master branch: core meta-scheduler component of cylc-8 (in development); Repository 7.8.x branch: full cylc-7 system.

The Cylc Workflow Engine 205 Dec 20, 2022
Add your recently blog and douban states in your GitHub Profile

Add your recently blog and douban states in your GitHub Profile

Bingjie Yan 4 Dec 12, 2022
This project intends to take the user's CEP (brazilian adress code) and return the local in which the CEP is placed.

This project aims to simply return the CEP's (the brazilian resident adress code) User of the application. The project uses a request and passes on to

Daniel Soares Saldanha 4 Nov 17, 2021
A Python module for decorators, wrappers and monkey patching.

wrapt The aim of the wrapt module is to provide a transparent object proxy for Python, which can be used as the basis for the construction of function

Graham Dumpleton 1.8k Jan 06, 2023
Never get kicked for inactivity ever again!

FFXIV AFK Bot Tired of getting kicked from games due to inactivity? This Bot will make random movements in random intervals to prevent you from gettin

5 Jan 12, 2022
The Ultimate Widevine Content Ripper (KEY Extract + Download + Decrypt) is REBORN

NARROWVINE-REBORN ** UPDATE 21.12.01 ** As expected Google patched its ChromeCDM Whitebox exploit by Satsuoni with a force-update on the ChromeCDM. Th

Vank0n 104 Dec 07, 2022
A full-featured, hackable tiling window manager written and configured in Python

A full-featured, hackable tiling window manager written and configured in Python Features Simple, small and extensible. It's easy to write your own la

Qtile 3.8k Dec 31, 2022
Python-Roadmap - Дорожная карта по изучению Python

Python Roadmap Я решил сделать что-то вроде дорожной карты (Roadmap) для изучения языка Python. Возможно, если найдутся желающие дополнять ее, модифиц

Ruslan Prokhorov 1.2k Dec 28, 2022
UFDR2DIR - A script to convert a Cellebrite UFDR to the original file structure

UFDR2DIR A script to convert a Cellebrite UFDR to it's original file and directo

DFIRScience 25 Oct 24, 2022
An easy python calculator for those who want's to know how if statements, loops, and imports works give it a try!

A usefull calculator for any student or anyone who want's to know how to build a simple 2 mode python based calculator.

Antonio Sánchez 1 Jan 06, 2022
Another Provably Rare Gem Miner 💎 (for Raritygems)

Provably Rare Gem Miner Go (for Rarity) Pull Request is strongly welcome as I don't know anything about Golang/Python/Web3. Usage Install Python 3.x i

朱里 6 Apr 22, 2022
Wrappers around the most common maya.cmds and maya.api use cases

Maya FunctionSet (maya_fn) A package that decompose core maya.cmds and maya.api features to a set of simple functions. Tests The recommended approach

Ryan Porter 9 Mar 12, 2022
resultados (data) de elecciones 2021 y código para extraer data de la ONPE

elecciones-peru-2021-ONPE Resultados (data) de elecciones 2021 y código para extraer data de la ONPE Data Licencia liberal, pero si vas a usarlo por f

Ragi Yaser Burhum 21 Jun 14, 2021
Subcert is an subdomain enumeration tool, that finds all the subdomains from certificate transparency logs.

Subcert Subcert is a subdomain enumeration tool, that finds all the valid subdomains from certificate transparency logs. Table of contents Setup Demo

A3h1nt 59 Dec 16, 2022
A demo of a data science project using Kedro

iris Overview This is your new Kedro project, which was generated using Kedro 0.17.4. Take a look at the Kedro documentation to get started. Rules and

Khuyen Tran 14 Oct 14, 2022
Ramadhan countdown - Simple daily reminder about upcoming Ramadhan

Ramadhan Countdown Bot Simple bot for displaying daily reminder about Islamic pr

Abdurrahman Shofy Adianto 1 Feb 06, 2022