Skip to content

Instantly share code, notes, and snippets.

swagger: "2.0"
servers:
- url: https://www.kaggle.com/api/v1
description: Kaggle API
variables:
host:
default: www.kaggle.com
basePath:
default: /api/v1
info:
@EssenceSentry
EssenceSentry / ubuntu_post.sh
Last active February 10, 2023 13:47
Ubuntu post install
#!/bin/bash
GITHUB_TOKEN=<DO-NOT-COMMIT>
SWAP_SIZE="16G"
# install pyenv to install alternative python versions
sudo apt-get update
sudo apt-get install make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev \
libsqlite3-dev wget curl llvm libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev \
libffi-dev liblzma-dev libedit-dev git -y
@EssenceSentry
EssenceSentry / optional_fileds.py
Last active October 2, 2021 17:51
Metaclass to make all pydantic fields optional
from typing import Optional
import pydantic
from pydantic_sqlalchemy import sqlalchemy_to_pydantic
from app.core import models
class AllOptional(pydantic.main.ModelMetaclass):
def __new__(mcs, name, bases, namespaces, **kwargs):
@EssenceSentry
EssenceSentry / Makefile
Created September 29, 2021 14:45
Makefile to use with Python example
.PHONY: all prepare-dev venv lint test run shell clean build install docker
SHELL=/bin/bash
VENV_NAME?=venv
VENV_BIN=$(shell pwd)/${VENV_NAME}/bin
VENV_ACTIVATE=. ${VENV_BIN}/activate
PYTHON=${VENV_BIN}/python3
FLASK=${VENV_BIN}/flask
@EssenceSentry
EssenceSentry / gh_install
Created September 29, 2021 11:41
Github CLI gh installation
curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | sudo gpg --dearmor -o /usr/share/keyrings/githubcli-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | sudo tee /etc/apt/sources.list.d/github-cli.list > /dev/null
sudo apt update
sudo apt install gh
@EssenceSentry
EssenceSentry / ssh-key
Created September 22, 2021 16:53
Generate SSH key
ssh-keygen -t ed25519 -C "sellanes.jose@gmail.com"
@EssenceSentry
EssenceSentry / fevey.sh
Last active August 7, 2021 12:54
Mulple versions of Python in Ubuntu Pyenv
sudo apt-get update; sudo apt-get install make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev libedit-dev git
curl https://pyenv.run | bash
echo "export PATH=\$PATH:/home/agustin/.pyenv/bin" >> ./.bashrc
exec $SHELL
@EssenceSentry
EssenceSentry / _.py
Created June 26, 2021 00:02
Pydantic implementation of a SQLAlchemy Column
from pydantic import BaseModel
from sqlalchemy.dialects.mysql import (NUMERIC, DECIMAL, DOUBLE, REAL, FLOAT, INTEGER, BIGINT, MEDIUMINT, TINYINT,
SMALLINT, BIT, TIME, TIMESTAMP, DATETIME, YEAR, TEXT, TINYTEXT, MEDIUMTEXT,
LONGTEXT, VARCHAR, CHAR, NVARCHAR, NCHAR, TINYBLOB, MEDIUMBLOB, LONGBLOB)
class Column(BaseModel):
autoincrement: bool
comment: Optional[str]
default: Optional[Any]
name: str
@EssenceSentry
EssenceSentry / _.py
Created June 26, 2021 00:01
Manually specifying primary keys with SQLAlchemy automap
# pks is a dictionary with table names as keys and primary keys columns names as values
# if SQLAlqemy cannot find the primary keys from the table metadata, specifying the keys
# enables the ORM to generate the classes and relationships
def automap_session(engine: Engine, pks: Dict[str, str]) -> Tuple[Dict[str, BaseModel], Session]:
metadata = MetaData()
metadata.reflect(engine, schema=SCHEMA)
cols = {t.name: {c.name: c for c in t.columns._all_columns} for t in metadata.tables.values()}
for t, c in pks.items():
cols[t][c].primary_key = True
@EssenceSentry
EssenceSentry / _.py
Created June 25, 2021 23:55
Create SQLAlchemy engine specifying the table and schema
create_engine(f'snowflake://{user}:{password}@{account}/{table}',
connect_args={'options': f'-csearch_path={schema}'})