Skip to content

Instantly share code, notes, and snippets.

View MtkN1's full-sized avatar

machuken MtkN1

View GitHub Profile
@MtkN1
MtkN1 / noxfile.py
Created April 4, 2024 14:06
nox for Rye (it works, sort of)
import nox
import os
from pathlib import Path
PYTHON_VERSIONS = ["3.8", "3.9", "3.10", "3.11", "3.12"]
VENV_BACKEND = "uv"
def ensurepath():
rye_home = os.getenv("RYE_HOME")
@MtkN1
MtkN1 / Dockerfile
Created March 26, 2024 13:01
Dockerfile for uv
# build stage
FROM python:3.12-bookworm AS build
RUN curl -LsSf https://astral.sh/uv/install.sh | sh
ENV PATH="/root/.cargo/bin:$PATH"
WORKDIR /app
COPY requirements.txt requirements.txt
@MtkN1
MtkN1 / tmp.pOln6CFBQq.py
Created February 5, 2024 15:15
Rate limit test for GMO Coin WebSocket
import asyncio
import json
import logging
from contextlib import AsyncExitStack
import websockets
logger = logging.getLogger("websockets.client")
logger.setLevel(logging.DEBUG)
ch = logging.StreamHandler()
@MtkN1
MtkN1 / model.py
Last active January 22, 2024 15:45
Binance Spot Pydantic Models from datamodel-code-generator
# generated by datamodel-codegen:
# filename: https://github.com/binance/binance-api-swagger/raw/master/spot_api.yaml
# timestamp: 2024-01-22T15:18:47+00:00
from __future__ import annotations
from typing import List, Optional
from pydantic import BaseModel, Field, RootModel
@MtkN1
MtkN1 / mkdocs.yml
Created September 18, 2023 09:21
mkdocs.yml sample for pybotters]
site_name: "pybotters Docs"
nav:
- "Introduction": "README.md"
- "Usage":
- "QuickStart": "Home.md"
- "Advanced Usage": "Advanced-Usage.md"
- "Guides":
- "Exchanges": "Exchanges.md"
- "Example": "Example.md"
@MtkN1
MtkN1 / httpx_http2_async.py
Created September 5, 2023 05:36
Asynchronous request to bitFlyer using HTTP/2 with HTTPX.
import asyncio
import time
import httpx
async def main():
for use_http2 in (False, True):
async with httpx.AsyncClient(
base_url="https://api.bitflyer.com", http2=use_http2
@MtkN1
MtkN1 / oanda_rest.py
Created July 13, 2023 04:53
Get Oanda OHLC via REST API
import requests
r = requests.get(
"https://widget.oanda.jp/api/ohlc-rate?instrument=USD_JPY",
headers={"x-oanda-widget-api": "ohlc-rate"},
)
ohlc = r.json()
print(ohlc)
@MtkN1
MtkN1 / tmp.ODH1kHzxnH.py
Created July 4, 2023 08:02
Decimal や datetime の入った JSON 風オブジェクトを loguru 向けにダンプして出力するクラス
"""
Decimal や datetime の入った JSON 風オブジェクトを loguru 向けにダンプして出力するクラス
"""
import datetime
import json
from decimal import Decimal
from typing import Any
import requests
@MtkN1
MtkN1 / bitbank_socketio2_pybotters.py
Created May 29, 2023 10:38
Sample of connecting to Socket.IO v2 WebSocket in bitbank with pybotters
"""
Sample of connecting to Socket.IO v2 WebSocket in bitbank with pybotters
"""
import asyncio
import pybotters
async def main():
async with pybotters.Client() as client:
@MtkN1
MtkN1 / recursing_ganguly.py
Created May 5, 2023 14:54
Bybit のオーダー 1 分キャンセルロジック
import asyncio
import datetime
import itertools
import pybotters
apis = {"bybit_testnet": ["API_KEY", "API_SECRET"]}
TESTNET_BASE_URL = "https://api-testnet.bybit.com"
TESTNET_PUBLIC_WSURL = "wss://stream-testnet.bybit.com/v5/public/linear"