Skip to content

Instantly share code, notes, and snippets.

View onelharrison's full-sized avatar

Onel Harrison onelharrison

View GitHub Profile
terraform {
required_providers {
aws = {
source = "hashicorp/aws"
version = "~> 4.0"
}
}
}
provider "aws" {
@onelharrison
onelharrison / pure_vs_impure_functions.py
Last active July 8, 2022 16:28
Code snippet showing pure vs impure functions in Python
def strip_pure(sentence: str) -> str:
return sentence.strip()
strip_impure_call_count = 0
def strip_impure(sentence: str) -> str:
global strip_impure_call_count
@onelharrison
onelharrison / anonymous_functions.py
Last active July 7, 2022 22:54
Code snippet showing the use of anonymous functions in Python
from collections import namedtuple
Person = namedtuple("Person", ["name", "age"])
if __name__ == "__main__":
people = [
Person("Marie Curie", 66),
Person("Katherine Johnson", 101),
Person("Ada Lovelace", 36),
]
@onelharrison
onelharrison / first_class_functions.py
Last active July 7, 2022 22:01
Code snippet showing examples of what's possible with first class functions
from typing import Callable
def double(n: int) -> int:
return 2 * n
def is_even(n: int) -> bool:
return n % 2 == 0
def make_adder(n: int) -> Callable[int, int]:
data "snowflake_current_account" "this" {}
resource "snowflake_schema" "sandbox_tools" {
provider = snowflake.sys_admin
database = snowflake_database.sandbox.name
name = "TOOLS"
}
resource "snowflake_schema_grant" "usage_sandbox_tools" {
provider = snowflake.security_admin
resource "snowflake_stage" "snowflake_s3_backup" {
provider = snowflake.account_admin
name = "SNOWFLAKE_S3_BACKUP"
url = "s3://${aws_s3_bucket.snowflake_backups_bucket.bucket}/"
database = snowflake_database.sandbox.name
schema = snowflake_schema.sandbox_tools.name
file_format = "TYPE=CSV COMPRESSION=GZIP FIELD_OPTIONALLY_ENCLOSED_BY= '\"' SKIP_HEADER=1"
storage_integration = snowflake_storage_integration.snowflake_s3_backup.name
}
resource "snowflake_database_grant" "usage_sandbox_database" {
provider = snowflake.security_admin
database_name = snowflake_database.sandbox.name
privilege = "USAGE"
roles = [
snowflake_role.sandbox_rw.name,
snowflake_role.task_admin.name # UPDATE
]
}
let schemaTablePairResult = getSchemaTablePairResult(DATABASE);
while (schemaTablePairResult.next()) {
let schema = schemaTablePairResult.getColumnValue(1);
let table = schemaTablePairResult.getColumnValue(2);
copyToS3(DATABASE, schema, table);
}
return `Database '${DATABASE}' successfully backed up to S3.`;
resource "snowflake_procedure" "backup_database" {
provider = snowflake.sys_admin
name = "SPROC_BACKUP_DATABASE"
database = snowflake_database.sandbox.name
schema = snowflake_schema.sandbox_tools.name
arguments {
name = "DATABASE"
type = "VARCHAR"
}
resource "random_id" "aws_resource_id" {
byte_length = 4
}
resource "aws_s3_bucket" "snowflake_backups_bucket" {
bucket = "snowflake-backups-${lower(random_id.aws_resource_id.id)}"
acl = "private"
versioning {