This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import pandas as pd | |
from sklearn.preprocessing import PolynomialFeatures | |
def apply_polynomials(df: pd.DataFrame, degree: int = 2, | |
interaction_only: bool = False, | |
include_bias: bool = False): | |
"""Apply scikit-learn's PolynomialFeatures class to a pandas DataFrame, | |
keeping the original column labels and index, and extending the columns to | |
include all new polynomial features. Generally speaking creates a lot of new |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
def input_iterable_paginated(msg: str, iterable: object, page_length: int = 5, | |
more: str = "m"): | |
"""List numbered items from any iterable to be chosen by user input.""" | |
def get_input(valid: list): | |
value = input().strip().lower() | |
try: | |
value = int(value) | |
if value - 1 in range(len(valid)): | |
return valid[value - 1] | |
else: |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Class: | |
class PrintCheck: | |
"""Decorator to print a custom message when calling a function, followed by | |
a check/tick mark on the same line when the computation finishes. If the | |
function returns an integer it will be printed in parentheses with the check | |
mark along with the `item_name` argument, pluralized if greater than 1.""" | |
def __init__(self, msg: str = None, print_items: bool = True, | |
item_name: str = "item"): | |
""" |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import datetime | |
import pandas as pd | |
import pytz | |
import time | |
# To switch logging on/off add config logic here to determine this variable: | |
LOG_PERFORMANCE = True | |
TIMEZONE = "US/Eastern" |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import traceback | |
import warnings | |
import sys | |
def warn_with_traceback(message, category, filename, lineno, file=None, line=None): | |
log = file if hasattr(file,'write') else sys.stderr | |
traceback.print_stack(file=log) | |
log.write(warnings.formatwarning(message, category, filename, lineno, line)) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
def str_search(*substrings: str, iterable, exact_match: bool = False) -> list: | |
"""Case-insensitive search of an iterable for substrings. | |
Args: | |
substrings (str): strings to search for in the iterable. | |
iterable (list, tuple, etc): iterable containing string objects to be | |
searched. | |
exact_match (bool): if True only return a single value that exactly | |
matches the substring supplied (therefore only works if 1 substring | |
arg is supplied). Otherwise returns list of all partial matches. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import os, psutil | |
# Tool for tracking memory usage: | |
def usage(): | |
process = psutil.Process(os.getpid()) | |
print(process.memory_info()[0] / float(2 ** 20)) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import math | |
def magnitude(x): | |
"""Get the order 10 magnitude of a float.""" | |
return int(math.log10(x)) | |
def mpl_y_scale(datamin, datamax, desired_n_steps=5, minmax_buffer=True): | |
"""Determine nicely spaced, nearest-decimal-rounded y-ticks, and y-axis | |
limits (with optional buffer) which centrally locate a line plot in a | |
Matplotlib figure axis. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Global variable to determine whether or not to raise errors. | |
SUPPRESS_ERRORS = True | |
def suppress_errors(func): | |
"""Decorator function to suppress errors.""" | |
if not SUPPRESS_ERRORS: | |
return func | |
def suppressed(*args, **kwargs): | |
try: | |
return func(*args, **kwargs) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from datetime import datetime | |
import pytz | |
def debug_print(msg, timezone="US/Eastern"): | |
"""Print a time-stamped debug message.""" | |
UTC_now = pytz.utc.localize(datetime.utcnow()) | |
now = UTC_now.astimezone(pytz.timezone(timezone)) | |
now_date = now.strftime("%Y_%m_%d") | |
now_time = now.strftime("%H:%M:%S") | |
print("[{} @ {}] : {}".format(now_date, now_time, msg)) |
NewerOlder