Skip to content

Instantly share code, notes, and snippets.

View boechat107's full-sized avatar

Andre Boechat boechat107

View GitHub Profile
@boechat107
boechat107 / cache_with_schedule.py
Last active March 22, 2020 17:58
A Python decorator to cache functions and clear the cache as scheduled
from datetime import datetime as dt
from croniter import croniter
from functools import wraps
from typing import Dict, Any
def cache_with_schedule(schedule: str):
"""
Decorator to cache the results of a function "f(x)" and clear the cache as
scheduled.
@boechat107
boechat107 / fp_with_types.py
Last active January 3, 2020 14:36
Functional Programming with type annotation in Python
from typing import Callable, Iterable, TypeVar, Iterator, Optional
A = TypeVar("A")
def some(pred: Callable[[A], bool], seq: Iterable[A]) -> Optional[A]:
"""
Returns the first item in "seq" that satisfies "pred".
Examples:
@boechat107
boechat107 / calls_to_fn_counter.py
Created October 10, 2019 14:01
Counting the number of times a function is called in a test (pytest)
import random
class MutableCounter:
"""
Used by "count_calls".
"""
n = 0
def inc(self):
self.n += 1
@boechat107
boechat107 / git-mr-cherry-pick.sh
Last active February 15, 2022 16:22
Bash function to update a branch based on a just merged to "master" branch
#!/bin/bash
# This script is useful to update branches that are based on a branch
# that was just merged to "master".
#
# As an example, suppose you have an open Merge Request based on branch "B1"
# and, while you are waiting for reviews, you start working on another
# branch, "B2", which is created directly from "B1".
# After a few commits on "B2", your MR gets reviewd and "B1" is merged to
# "master".
# Now your code on "B2" is ready for review and you want to create a new
@boechat107
boechat107 / multiple_knapsacks_problem.py
Last active March 17, 2022 21:35
Multiple knapsacks problem
"""
Knapsacks have weight capacity; items have weight and value.
We want to find the allocation of items which maximizes the total
carried value.
"""
from typing import List, Set, Tuple
@boechat107
boechat107 / keybase.md
Created April 16, 2019 18:02
keybase identity proof

Keybase proof

I hereby claim:

  • I am boechat107 on github.
  • I am boechat107 (https://keybase.io/boechat107) on keybase.
  • I have a public key ASBTwFP7WM0LUTqTZV85Vlu9pmtHTdKKT9m9cVeUYTD4Gwo

To claim this, I am signing this object:

@boechat107
boechat107 / tricks.md
Last active September 26, 2016 21:57
Markdown tricks

Footnotes

Suppose that I have a text and I want to have a footnote 1.

[1]: Footnote content goes here.

@boechat107
boechat107 / github_stars.py
Last active April 29, 2016 13:53
Simple script to fetch information about a Github user's repositories
#!/usr/bin/python
import argparse
import urllib2
import json
import pprint
def sort_by(dictlist, k, **kwargs):
return sorted(dictlist, key=(lambda d: d[k]), **kwargs)
@boechat107
boechat107 / some_git_commands.md
Last active May 9, 2016 09:18
Useful git commands to remember

Interactive rebase of a branch. Among many options and actions, it allows the removal of specific commits. Useful for release branches or to submit PRs.

git rebase -i SHA-OF-FIRST-COMMIT-IN-BRANCH

Command to fetch a remote branch, creating a local branch with a different name (reference).

@boechat107
boechat107 / pandas_numpy_reference.md
Last active June 14, 2016 15:35
Coding with Pandas, Numpy and other related Data Science libs

Numpy / Pandas

import pandas as pd
import numpy as np

Reshape: