Skip to content

Instantly share code, notes, and snippets.

@pikhovkin
pikhovkin / weasyprint_complex_headers.py
Last active February 3, 2024 17:04
Repeat on each page of complex headers (eg, tables) except the first page
# coding: utf-8
from weasyprint import HTML, CSS
def get_page_body(boxes):
for box in boxes:
if box.element_tag == 'body':
return box
@pikhovkin
pikhovkin / dash_simple_example.py
Created September 30, 2018 19:51
Dash simple example on Django
from datetime import datetime as dt
from django.conf import settings
from django.conf.urls import include, url
from dash import BaseDashView, Dash
from dash.dependencies import Input, Output
import dash_core_components as dcc
import dash_html_components as html
from pandas_datareader import data as web
from pyproj import Geod
GEOD_WGS84 = Geod(ellps='WGS84')
def forward(point: tuple[float, float], az: float, dist: float) -> tuple[float, float]:
x, y = point[0], point[1]
lon, lat, _ = GEOD_WGS84.fwd(x, y, az, dist, radians=False)
return lon, lat
@pikhovkin
pikhovkin / package_imports.py
Created January 29, 2021 10:19
package imports
# Разделяем импорты пакетов на следующие логические блоки:
# блок импортов пакетов, поставляемых с Python
import datetime
import hmac
import json
import logging
from typing import Union, Type
# блок импортов сторонних пакетов
@pikhovkin
pikhovkin / html_template.html
Created September 11, 2011 20:35
HTML template
<!doctype html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="keywords" content="">
<meta name="description" content="">
<title></title>
<link type="text/css" rel="stylesheet" href="">
<script type="text/javascript" src=""></script>
@pikhovkin
pikhovkin / drawings.py
Last active March 28, 2020 10:06
Patch for openpyxl 2.1.2 for basic reading images. drawings.py and excel.py are in the patch_reader package
# coding: utf-8
from __future__ import absolute_import
import os.path
from io import BytesIO
from openpyxl.xml.constants import (PACKAGE_WORKSHEET_RELS,
REL_NS,
PACKAGE_RELS,
PACKAGE_IMAGES,
@pikhovkin
pikhovkin / frechet.py
Created October 24, 2019 14:57 — forked from MaxBareiss/frechet.py
Fréchet Distance in Python
# Euclidean distance.
def euc_dist(pt1,pt2):
return math.sqrt((pt2[0]-pt1[0])*(pt2[0]-pt1[0])+(pt2[1]-pt1[1])*(pt2[1]-pt1[1]))
def _c(ca,i,j,P,Q):
if ca[i,j] > -1:
return ca[i,j]
elif i == 0 and j == 0:
ca[i,j] = euc_dist(P[0],Q[0])
elif i > 0 and j == 0:
@pikhovkin
pikhovkin / mandela.sh
Last active October 30, 2018 10:06
Install Oracle 12c onto 64-bit Ubuntu 16.04 or Linux Mint 18 Sarah
#!/bin/bash
# ---------------------------------------------------------------------------------
# This script written by Howard Rogers.
#
# It's purpose is to install Oracle 12c onto 64-bit Ubuntu 16.04.
#
# See http://www.dizwell.com/wordpress/technical-articles/oracle/install-oracle-12c-on-ubuntu-16-04/ for some details.
#
# Copyright (c) 2016 Howard Rogers,Dizwell Informatics
@pikhovkin
pikhovkin / metaclass_resolver.py
Created September 27, 2018 20:48
Metaclass resolver
def metaclass_resolver(*classes, **options):
"""Metaclass resolver
Example:
SomeClass(metaclass_resolver(ClassMixin, BaseClass, SomeActionClass, some_field1=True, some_field2=42)):
pass
:param classes:
:param options:
:return:
@pikhovkin
pikhovkin / django_urls.py
Created January 29, 2018 20:18
Get all pathes from Django project
from django.urls import RegexURLResolver, RegexURLPattern, get_resolver
from django.utils.regex_helper import normalize
r = get_resolver()
r._up = ''
urlpatterns = [r]
urls = []
while urlpatterns:
u = urlpatterns.pop(0)