Skip to content

Instantly share code, notes, and snippets.


Karthikeyan Singaravelan tirkarthi

View GitHub Profile
tirkarthi / log.txt
Created Aug 19, 2020
_fields code search in python files
View log.txt
$ rg -t py ' _fields =' # command
1602: _fields = kwargs
345: _fields = (
394: _fields = (
507: _fields = "name arguments".split()
588: _fields = "kind value start end source".split()

Python best practices

Karthikeyan Singaravelan /(Software Engineer at Platform Portal | Python core developer)/

# python -m pip install dash-cytoscape==0.0.5
import dash
import dash_cytoscape as cyto
import dash_html_components as html
import dash_core_components as dcc
from pprint import pprint
from dash.dependencies import Input, Output, State
app = dash.Dash(__name__)
tirkarthi /
Last active Feb 2, 2020
Slide for visa meetup

CPython development

Karthikeyan Singaravelan (Senior Software Engineer at Visa | Python core developer)

tirkarthi /
Last active Feb 18, 2020
Python 3.8 and 3.9 issues

Do take one issue per person to help others :) Also checkout Fedora tracker for more easy issues : . I tried to mark the issues complete but it's more maintenance so sorry if the issue is fixed or already has a PR and is not updated here.

tirkarthi /
Created Nov 10, 2019
A script to generate a plot of emails sent by me by hour for CPython to python-bugs mailing list
import calendar
from collections import Counter
import datetime
import gzip
import os
from urllib.request import urlretrieve
from urllib.error import HTTPError
import matplotlib.pylab as plt
tirkarthi /
Last active Aug 31, 2019
ast.dump implementation using list of generated strings
import ast
from _ast import *
def dump(node, annotate_fields=True, include_attributes=False, indent=None):
def _format(node, level=0):
if indent is not None:
level += 1
prefix = '\n' + indent * level
sep = ',\n' + indent * level
tirkarthi / python-bpo-pr-browser.el
Created Aug 19, 2019
Open the bug and PR for commit under cursor in magit mode
View python-bpo-pr-browser.el
(defun python-bugs-url ()
(let ((commit-message (magit-rev-format "%B"
(bugs-base-url "")
(pr-base-url "")
(bugs-pr-regex "bpo-\\([0-9]+\\).*\\(GH-\\|#\\)\\([0-9]+\\)"))
(when (string-match bugs-pr-regex commit-message)
(let ((bug-url (concat bugs-base-url (match-string 1 commit-message)))
# Empty headers in HTTP/2 streams can cause DoS. A test based on .
# Takes around 8 seconds without the patch at
# Start 2019-08-14 1565776248
# End 2019-08-14 1565776256
use POSIX qw/strftime/;
print "Start ", strftime('%Y-%m-%d %s',localtime), " \n";
$s = Test::Nginx::HTTP2->new();
tirkarthi / python3.7.1.txt
Created Oct 20, 2018
A list of all NEWS entries for 3.7.1
View python3.7.1.txt
.. bpo: 34970
.. date: 2018-10-13-11-14-13
.. nonce: SrJTY7
.. release date: 2018-10-20
.. section: Library
Protect tasks weak set manipulation in ``asyncio.all_tasks()``
.. bpo: 17239
.. date: 2018-09-11-18-30-55
.. nonce: kOpwK2