This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"$schema": "https://vega.github.io/schema/vega-lite/v5.json", | |
"width": 630, | |
"height": 630, | |
"data": { | |
"values": [ | |
{ | |
"type": "Feature", | |
"id": 0, | |
"geometry": { |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from contextlib import contextmanager | |
from ctypes import POINTER, cdll, c_char_p, c_void_p, c_int, create_string_buffer, byref | |
from sys import platform | |
# Uses a _little_ endian CTR counter, which OpenSSL doesn't directly support. | |
# Could be used to decrypt AES-encrypted ZIP files | |
def decrypt_aes_256_ctr_little_endian( | |
key, ciphertext_chunks, | |
get_libcrypto=lambda: cdll.LoadLibrary({'linux': 'libcrypto.so', 'darwin': 'libcrypto.dylib'}[platform]) | |
): |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/*****************************************************************************/ | |
const hawkId = pm.variables.get('hawk_id'); | |
const hawkKey = pm.variables.get('hawk_key'); | |
const hawkHeader = pm.variables.get('hawk_header') || 'authorization'; | |
/*****************************************************************************/ | |
const timestamp = parseInt(new Date().getTime() / 1000); | |
const nonce = CryptoJS.enc.Base64.stringify(CryptoJS.lib.WordArray.random(6)); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class MyPipeline(_PipelineV2): | |
# Everything is a method so nothing happens on import time for flexibility (although possibly | |
# does a bit of discovery magic... need to think about that...) | |
# Everything is a _static_ method: nothing on self since things are run on different bits of hardware, | |
# and gets any run-time dependencies injected in | |
# | |
# _PipelineV2 won't actually have any code: other parts of the system will interrogate its | |
# subclasses as needed. For example | |
# - Code in Data Flow would construct a DAG | |
# - The test harness would the run this and upstream pipelines synchronously |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import asyncio | |
import collections | |
import contextlib | |
class Read(asyncio.Future): | |
@staticmethod | |
def is_compatible(holds): | |
return not holds[Write] | |
class Write(asyncio.Future): |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Often it's claimed that a Zip 2.0 file cannot be bigger than 4GiB | |
# Here's how to make one that's just under 8GiB | |
from datetime import datetime | |
from stream_zip import stream_zip, ZIP_32 | |
now = datetime.now() | |
perms = 0o600 | |
def files(): | |
for i in range(0, 0xffff): |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import base64 | |
import json | |
import boto3 | |
from cryptography.hazmat.primitives.ciphers.aead import AESGCM | |
s3 = boto3.resource('s3') | |
bucket = s3.Bucket('my-bucket') | |
kms_client = boto3.client('kms') |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
def normalise_environment(key_values): | |
''' Converts denormalised dict of (string -> string) pairs, where the first string | |
is treated as a path into a nested list/dictionary structure | |
{ | |
"FOO__1__BAR": "setting-1", | |
"FOO__1__BAZ": "setting-2", | |
"FOO__2__FOO": "setting-3", | |
"FOO__2__BAR": "setting-4", | |
"FIZZ": "setting-5", |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import datetime | |
import hashlib | |
import hmac | |
import urllib.parse | |
def aws_sig_v4_headers(access_key_id, secret_access_key, pre_auth_headers, | |
service, region, host, method, path, query, payload): | |
algorithm = 'AWS4-HMAC-SHA256' |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import json | |
import os | |
from urllib.parse import urlparse, parse_qsl | |
import requests | |
from rich import box | |
from rich.console import Console | |
from rich.table import Table | |
with open(f'{os.environ["HOME"]}/.cf/config.json') as f: |