Skip to content

Instantly share code, notes, and snippets.

View markrwilliams's full-sized avatar

Mark Williams markrwilliams

View GitHub Profile
import argparse
import socket
parser = argparse.ArgumentParser(description="keepalive example")
parser.add_argument("mode", choices=("server", "client"))
def server():
listener = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
listener.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
import attr
from twisted.internet import defer, task
@attr.s
class LoopNTimes(object):
_times = attr.ib()
_f = attr.ib()
_loopingCall = attr.ib(default=None, init=False)
_called = attr.ib(default=0, init=False)
from twisted.internet import endpoints, defer, protocol, task
class Echo(protocol.Protocol):
def dataReceived(self, data):
self.transport.write(data)
@task.react
def main(reactor):
@markrwilliams
markrwilliams / python3.6_pip.md
Created October 21, 2017 01:50
Python 3.6 pip usage
SELECT
  details.installer.name,
  details.installer.version,
  COUNT(*) as total_downloads
FROM
  TABLE_DATE_RANGE(
    [the-psf:pypi.downloads],
    TIMESTAMP("20160114"),
 CURRENT_TIMESTAMP()
@markrwilliams
markrwilliams / pip_python_usage.md
Created October 20, 2017 22:19
Pip usage by Python version
SELECT
  REGEXP_EXTRACT(details.python, r"^([^\.]+\.[^\.]+)") as python_version,
  details.installer.name,
  details.installer.version,
  COUNT(*) as total_downloads
FROM
  TABLE_DATE_RANGE(
    [the-psf:pypi.downloads],
 TIMESTAMP("20160114"),
import unittest
from hypothesis import given, strategies as st
class ComparisonTests(unittest.TestCase):
def assertNonesCauseTypeError(self, first, second):
try:
first > second
@markrwilliams
markrwilliams / getfile.py
Created May 5, 2017 19:19
A basic FileSender example
import sys
from twisted.protocols import basic
from twisted.internet import defer, endpoints, protocol, task
class GetFileProtocol(basic.LineReceiver):
delimiter = '\n'
def lineReceived(self, line):
parts = line.split(None, 1)
@markrwilliams
markrwilliams / .gitignore
Last active March 19, 2017 07:48
OpenSSL incomplete handshake SSL_ERROR_SSL -> SSL_ERROR_SYSCALL
client
import asyncio
def adapt(the_future):
try:
print("*** result before")
the_future.result()
except:
print("*** exception before")
the_future.exception()
import eliot
import sys
eliot.to_file(sys.stdout)
with eliot.start_action(action_type=u"task"):
eliot.Message.log(key=u"value")