Skip to content

Instantly share code, notes, and snippets.

View meyer1994's full-sized avatar
👀
¯\_(ツ)_/¯

João Meyer meyer1994

👀
¯\_(ツ)_/¯
View GitHub Profile
@meyer1994
meyer1994 / memory.py
Last active June 4, 2024 19:42
Simple SQL memory implementatio for llama-index
import datetime as dt
from typing import Any, List, Optional
import sqlalchemy as sa
import sqlalchemy.orm as orm
from llama_index.core.llms import ChatMessage
from llama_index.core.storage.chat_store import BaseChatStore
from llama_index.core.memory import ChatMemoryBuffer
from llama_index.agent.openai import OpenAIAgent
@meyer1994
meyer1994 / sqlgen.py
Last active January 4, 2024 20:59
Playing around with langchain
from langchain.schema import StrOutputParser
from langchain.prompts import ChatPromptTemplate, SystemMessagePromptTemplate, HumanMessagePromptTemplate
from langchain_core.runnables import RunnablePassthrough
from langchain_community.chat_models import ChatOpenAI
llm = ChatOpenAI(api_key='MY_COOL_API_KEY')
PROMPT_SYSTEM = '''
You are an experienced SQL developer and database specialist.
@meyer1994
meyer1994 / intersec.py
Created November 6, 2023 20:34
Example of intersection calculation using fiona and shapely
import json
import fiona
import shapely
import shapely.geometry
with fiona.open('data/test.geojson', 'r') as f:
geom = next(iter(f))
geom = shapely.geometry.shape(geom.geometry)
@meyer1994
meyer1994 / sensor.py
Created March 18, 2023 16:54
Dagster sensor that executes for all data partitions
CONFIG_SENSOR = {
'job': jobs.daily,
'monitored_assets': [AssetKey(['b3', 'history', 'daily'])],
}
@multi_asset_sensor(**CONFIG_SENSOR)
def daily(context):
"""
@meyer1994
meyer1994 / iterio.py
Last active September 3, 2022 12:58
Bytes iterator to file object
import io
import itertools
class IteratorIO(io.RawIOBase):
def __init__(self, iterator: [bytes]):
super(IteratorIO, self).__init__()
self.iterator = iterator
def read(self, n: int = -1) -> bytes:
@meyer1994
meyer1994 / importer.py
Last active June 18, 2022 14:54
Script used to import CSV files to SQL databases
import sys
import logging
from argparse import ArgumentParser
import pandas as pd
from pandasql import sqldf
fmt = '[%(asctime)s] %(levelname)s [%(name)s:%(lineno)03d] %(message)s'
logger = logging.getLogger(__name__)
@meyer1994
meyer1994 / geohash.py
Last active April 29, 2022 00:14
GeoHash in 100% python
# Adapted from:
# https://mmcloughlin.com/posts/geohash-assembly
import math
def encode(lat: float, lon: float) -> str:
lat = math.floor(2**64 * (lat + 90) / 180)
lon = math.floor(2**64 * (lon + 180) / 360)
lat = bin(lat)[2:]
@meyer1994
meyer1994 / wabot.js
Created March 20, 2022 17:04
Simple bot for whatsapp
const fs = require('fs')
const makeWASocket = require('@adiwajshing/baileys').makeWALegacySocket
// Chat id
const chadtId = 'numbers-morenumbers@g.us'
const sock = makeWASocket({
printQRInTerminal: true
})
@meyer1994
meyer1994 / docker-compose.yml
Created January 7, 2022 21:04
Minimal working AppWrite with database
version: '3'
services:
appwrite:
image: appwrite/appwrite:0.12.0
environment:
- _APP_DB_HOST=mysql
- _APP_DB_PORT=3306
- _APP_DB_SCHEMA=appwrite
- _APP_DB_USER=user
@meyer1994
meyer1994 / marketscreener.py
Created October 31, 2021 22:09
Simple client to search for tickers
import re
import json
from enum import Enum
from typing import NamedTuple
from datetime import datetime
from functools import cache
from argparse import ArgumentParser
import multiprocessing as mp
import httpx