This is a simple chat-like program using pub-sub pattern, backed by PostgreSQL's LISTEN/NOTIFY command.
publish message to foo
channel from user nickname
.
$ python pub.py foo nickname
PUBLISH to channel #foo
# Upsert function for pandas to_sql with postgres | |
# https://stackoverflow.com/questions/1109061/insert-on-duplicate-update-in-postgresql/8702291#8702291 | |
# https://www.postgresql.org/docs/devel/sql-insert.html#SQL-ON-CONFLICT | |
import pandas as pd | |
import sqlalchemy | |
import uuid | |
import os | |
def upsert_df(df: pd.DataFrame, table_name: str, engine: sqlalchemy.engine.Engine): |
# turn off all wsl instances such as docker-desktop | |
wsl --shutdownnotepad "$env:USERPROFILE/.wslconfig" | |
[wsl2] | |
memory=3GB # Limits VM memory in WSL 2 up to 3GB | |
processors=4 # Makes the WSL 2 VM use two virtual processors | |
#credits: https://itnext.io/wsl2-tips-limit-cpu-memory-when-using-docker-c022535faf6f |
import pandas as pd | |
import pandas.io.sql as sqlio | |
import psycopg2 | |
conn = psycopg2.connect("host='{}' port={} dbname='{}' user={} password={}".format(host, port, dbname, username, pwd)) | |
sql = "select count(*) from table;" | |
dat = sqlio.read_sql_query(sql, conn) | |
conn = None |
# License: Apache-2.0 | |
# Copyright: Florian Kromer 2020 | |
from smb.SMBConnection import SMBConnection | |
from typing import List, Union | |
from smb.base import SharedDevice, SharedFile | |
from tempfile import NamedTemporaryFile | |
class NasServerClient: |
################## Ticks to candles in kiteconnect python #################### | |
# Author : Arun B | |
# Reference : http://ezeetrading.in/Articles/Candles_formation_from_tick_data_zerodha.html | |
# Purpose : Convert ticks to candles by putting ticks in a queue. This redues time wasted in on_ticks function | |
################################################################################ | |
from kiteconnect import KiteTicker | |
import datetime | |
from copy import copy | |
import queue |
curl --include \ | |
--no-buffer \ | |
--header "Connection: Upgrade" \ | |
--header "Upgrade: websocket" \ | |
--header "Host: example.com:80" \ | |
--header "Origin: http://example.com:80" \ | |
--header "Sec-WebSocket-Key: SGVsbG8sIHdvcmxkIQ==" \ | |
--header "Sec-WebSocket-Version: 13" \ | |
http://example.com:80/ |
how to leverage oracle's temping offers
The limits of the free tier say that you can create up to 4 instances.
import os | |
import asyncio | |
import aiohttp # pip install aiohttp | |
import aiofiles # pip install aiofiles | |
REPORTS_FOLDER = "reports" | |
FILES_PATH = os.path.join(REPORTS_FOLDER, "files") | |
def download_files_from_report(urls): |
#!/usr/bin/env python | |
import requests, socket | |
username = "" | |
password = "" | |
hostname = "" # your domain name hosted in no-ip.com | |
# Gets the current public IP of the host machine. | |
myip = requests.get('http://api.ipify.org').text |