Skip to content

Instantly share code, notes, and snippets.

# File deliberately empty, but gist won't allow it
@roganjoshp
roganjoshp / database.py
Last active November 17, 2023 14:59
Alembic migrations
# src/ex_machina/database.py
import click
import os
from alembic import command
from alembic.config import Config as AlembicConfig
from alembic.util import AutogenerateDiffsDetected
from sqlalchemy import create_engine, MetaData
from sqlalchemy.orm import scoped_session, sessionmaker
import sqlite3
import pandas as pd
conn = sqlite3.connect(':memory:')
c = conn.cursor()
c.execute("""
CREATE TABLE food_labour (
name TEXT,
import random
import datetime as dt
import pandas as pd
df = pd.DataFrame({'date': ['2021-01-02', '2021-01-03', '2021-01-04',
'2021-01-01', '2021-01-03', '2021-01-04',
'2021-01-01', '2021-01-02', '2021-01-04',
'2021-01-01', '2021-01-02', '2021-01-03'],
'plant': [1, 1, 1,
@roganjoshp
roganjoshp / config.py
Created June 24, 2020 09:35
relative dump of config files
# The contents of beatroute/src/beatroute/config.py
import __main__
import json
import os
import sqlite3
import uuid
from pathlib import Path
@roganjoshp
roganjoshp / .env
Last active June 23, 2020 12:54
Flask with envvars
SECRET_KEY = '2a057dd2f0844f5a928578032c5b9955'
DB_URL = 'postgresql+psycopg2://postgres:######@127.0.0.1/so_test'
@roganjoshp
roganjoshp / test_postgres
Created June 5, 2020 13:17
Confirming that tuple can be used in LIKE query for postgres
from flask import Flask, render_template_string
from flask_sqlalchemy import SQLAlchemy
app = Flask('__name__')
app.config['SQLALCHEMY_DATABASE_URI'] = 'postgresql+psycopg2://postgres:######@127.0.0.1/so_test'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
app.config['SESSION_TYPE'] = 'sqlalchemy'
@roganjoshp
roganjoshp / join_without_loop
Created August 21, 2019 20:15
How to join without loop
from sqlalchemy import (create_engine, and_, Column, Integer, String,
ForeignKey, Float)
from sqlalchemy.orm import relationship, sessionmaker
from sqlalchemy.ext.declarative import declarative_base
import random
import pandas as pd
@roganjoshp
roganjoshp / gist:3929be1840566e88d7c8e13d3dd03c9e
Created August 9, 2019 11:26
Clear Flask-WTF after AJAX submission
# =============================================================================
# routes.py
# =============================================================================
@bp.route('/add_child_product', methods=['POST'])
def add_child_product():
"""
Handle form validation. If form is invalid, re-render form with validation
errors. If the form is valid, update product spec table, close modal and
reset form.
"""