Skip to content

Instantly share code, notes, and snippets.

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 / 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 / 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
@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)
@pikhovkin
pikhovkin / multipart.py
Created October 10, 2017 19:50 — forked from pyrocat101/multipart.py
Encode multipart/form-data in python
_CONTENT_TYPES = { '.png': 'image/png', '.gif': 'image/gif', '.jpg': 'image/jpeg', '.jpeg': 'image/jpeg', '.jpe': 'image/jpeg' }
def _encode_multipart(**kw):
'''
Build a multipart/form-data body with generated random boundary.
'''
boundary = '----------%s' % hex(int(time.time() * 1000))
data = []
for k, v in kw.iteritems():
data.append('--%s' % boundary)
@pikhovkin
pikhovkin / ma.py
Created October 29, 2016 12:23
Test for the Ramax
# -*- coding: utf-8 -*-
__all__ = (
'MyError',
'Parent',
'First',
'Second',
'A',
)
@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,