Skip to content

Instantly share code, notes, and snippets.

View anilpai's full-sized avatar
:octocat:
Coding

Anil Pai anilpai

:octocat:
Coding
View GitHub Profile
@anilpai
anilpai / flatten.py
Created February 2, 2017 01:29
Flatten a list
def flatten(lst):
'''
Flattens a list of lists.
'''
r = []
for x in lst:
if type(x) is list:
r.extend(x)
else:
r.append(x)
class Student:
def __init__(self, first_name, last_name):
self.first_name = first_name
self.last_name = last_name
@classmethod
def from_string(cls, name_str):
first_name, last_name = map(str, name_str.split(' '))
student = cls(first_name, last_name)
@anilpai
anilpai / jdbc.py
Created March 19, 2018 19:22
Connecting to JDBC databases using python
import jaydebeapi
username = ''
password = ''
conn = jaydebeapi.connect('com.qubole.jdbc.jdbc41.core.QDriver',
'jdbc:qubole://hive/default/db_name?endpoint=https://us.qubole.com',
['', password])
if conn:
@anilpai
anilpai / ldap.py
Created March 19, 2018 19:27
Python code to connect to LDAP server and authenticate a user.
import ldap3
class Ldap:
"""Class for LDAP related connections/operations."""
def __init__(self, server_uri, ldap_user, ldap_pass):
self.server = ldap3.Server(server_uri, get_info=ldap3.ALL)
self.conn = ldap3.Connection(self.server, user=ldap_user, password=ldap_pass, auto_bind=True)
def who_am_i(self):
@anilpai
anilpai / 01_Google_Code_Jam_2018.py
Created April 10, 2018 03:31
Saving the Universe Again
def min_hacks(d, p):
p_list = list(p)
can_swap = True
curr_damage, num_of_hacks = (0,)*2
while can_swap:
curr_damage, shoot_damage = 0, 1
for c in p_list:
if c == 'S':
curr_damage += shoot_damage
@anilpai
anilpai / README.md
Last active June 29, 2018 07:08
Which Emoji to Use? ❓

Commit Type Emoji Initial Commit 🎉 Party Popper Version Tag 🔖 Bookmark New Feature ✨ Sparkles Bugfix 🐛 Bug Security Fix 🔒 Lock Metadata 📇 Card Index Refactoring ♻️ Black Universal Recycling Symbol Documentation 📚 Books Internationalization 🌐 Globe With Meridians

@anilpai
anilpai / gist:9011555223031e837bc45946d22054c2
Created November 1, 2018 16:00
To create a python distribution
python3 setup.py sdist upload -r pypi
@anilpai
anilpai / currency_arbitrage.py
Created June 3, 2019 17:12
Currency Arbitrage using Bellman Ford Algorithm
from typing import Tuple, List
from math import log
rates = [
[1, 0.23, 0.26, 17.41],
[4.31, 1, 1.14, 75.01],
[3.79, 0.88, 1, 65.93],
[0.057, 0.013, 0.015, 1],
]
@anilpai
anilpai / currency_arbitrage.py
Created September 18, 2019 06:33
Currency Arbitrage using Bellman Ford Algorithm
from typing import Tuple, List
from math import log
rates = [
[1, 0.23, 0.25, 16.43, 18.21, 4.94],
[4.34, 1, 1.11, 71.40, 79.09, 21.44],
[3.93, 0.90, 1, 64.52, 71.48, 19.37],
[0.061, 0.014, 0.015, 1, 1.11, 0.30],
[0.055, 0.013, 0.014, 0.90, 1, 0.27],
[0.20, 0.047, 0.052, 3.33, 3.69, 1],