Skip to content

Instantly share code, notes, and snippets.

@computercolin
computercolin / winpdb_mod.py
Created June 8, 2022 03:33
Fix for early versions of py27-wxpython3
#! /usr/bin/env python
"""
winpdb.py
A GUI for rpdb2.py
Copyright (C) 2013-2017 Philippe Fremy
Copyright (C) 2005-2009 Nir Aides
;; Dummy agenda-prefix and formatting function.
;; For exporation of Todo heading properties.
(defun demo_org_entry_fmt_fn (elem)
(concat
;(or (org-entry-get elem "CustProp1") "noCustProp")
;"||"
;(or (org-entry-get elem "Effort") "noEff")
;"||"
(or (org-entry-get elem "TIMESTAMP") "noSTMP")
#
# Note, in all examples, could be class, or function, or for loop.
# Many cases, can replace with list compreension + fn. But if fn will never
# be used with scalar input, I usually write it as generator.
#
# Nothing that special about generators, just they're easy way to make
# iteration producers or filters that are fairly readable.
#
# Can also chain together (producer, transformer, transformer, fitler, etc).
import os
import luigi.target
class ExampleUserError(Exception):
pass
class TestAtomicLocalFileExcepBehavior(luigi.target.AtomicLocalFile):
def move_to_final_destination(self):
print("!!!ERROR File Move Requested. Should not happen this demo. %s" % self.path)
# Also see other corrupt binary diff: https://gist.github.com/computercolin/ae4a72ac75c455f74ee1abe2e0e17bfe
#
#
# diff <(xxd http) <(xxd http.1.2.27.good1)
3585,3840c3585,3840
< 0000e000: 5374 e506 566e 0034 cb07 4e86 2bc5 9080 St..Vn.4..N.+...
< 0000e010: 8376 4624 6a8e 6bd8 3636 b6dd f00c ed97 .vF$j.k.66......
< 0000e020: 8376 4624 6a8e 6bd8 3636 b6dd f00c ed97 .vF$j.k.66......
< 0000e030: 8376 4624 6a8e 6bd8 3636 b6dd f00c ed97 .vF$j.k.66......
< 0000e040: 8376 4624 6a8e 6bd8 3636 b6dd f00c ed97 .vF$j.k.66......
f0VMRgIBAQAAAAAAAAAAAAMAPgABAAAAYFIAAAAAAABAAAAAAAAAAEAxAQAAAAAAAAAAAEAAOAAJ
AEAAHQAcAAYAAAAFAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAA+AEAAAAAAAD4AQAAAAAAAAgA
AAAAAAAAAwAAAAQAAAA4AgAAAAAAADgCAAAAAAAAOAIAAAAAAAAcAAAAAAAAABwAAAAAAAAAAQAA
AAAAAAABAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQkAQAAAAAARCQBAAAAAAAAACAA
AAAAAAEAAAAGAAAAmCYBAAAAAACYJiEAAAAAAJgmIQAAAAAAhAkAAAAAAADwDgAAAAAAAAAAIAAA
AAAAAgAAAAYAAACYKQEAAAAAAJgpIQAAAAAAmCkhAAAAAADwAQAAAAAAAPABAAAAAAAACAAAAAAA
AAAEAAAABAAAAFQCAAAAAAAAVAIAAAAAAABUAgAAAAAAAEQAAAAAAAAARAAAAAAAAAAEAAAAAAAA
AFDldGQEAAAAOAgBAAAAAAA4CAEAAAAAADgIAQAAAAAAvAIAAAAAAAC8AgAAAAAAAAQAAAAAAAAA
UeV0ZAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAABS
5XRkBAAAAJgmAQAAAAAAmCYhAAAAAACYJiEAAAAAAGgJAAAAAAAAaAkAAAAAAAABAAAAAAAAAC9s
# http.1.2.27 Good:
# sha256: 786c8b6bc495970c73e7d97167635d226ffc98784a9f3efcd2f0dcab4f93561a
# sha1: d6e4ea0f4127a5ce0b470bce3325e9ab8c12c31e
# http.1.2.27 Bad:
# sha256: a2e4ff0a4e9428fa0811e97ea3b2294343ae0a1d27e8365ba84232046e7f3d00
# sha1: 84ffb2bc96318d899b86062eda2ad38d7588d6bf
# diff <(xxd http) <(xxd http.1.2.27.good1)
3585,3840c3585,3840
f0VMRgIBAQAAAAAAAAAAAAMAPgABAAAAYFIAAAAAAABAAAAAAAAAAEAxAQAAAAAAAAAAAEAAOAAJ
AEAAHQAcAAYAAAAFAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAA+AEAAAAAAAD4AQAAAAAAAAgA
AAAAAAAAAwAAAAQAAAA4AgAAAAAAADgCAAAAAAAAOAIAAAAAAAAcAAAAAAAAABwAAAAAAAAAAQAA
AAAAAAABAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQkAQAAAAAARCQBAAAAAAAAACAA
AAAAAAEAAAAGAAAAmCYBAAAAAACYJiEAAAAAAJgmIQAAAAAAhAkAAAAAAADwDgAAAAAAAAAAIAAA
AAAAAgAAAAYAAACYKQEAAAAAAJgpIQAAAAAAmCkhAAAAAADwAQAAAAAAAPABAAAAAAAACAAAAAAA
AAAEAAAABAAAAFQCAAAAAAAAVAIAAAAAAABUAgAAAAAAAEQAAAAAAAAARAAAAAAAAAAEAAAAAAAA
AFDldGQEAAAAOAgBAAAAAAA4CAEAAAAAADgIAQAAAAAAvAIAAAAAAAC8AgAAAAAAAAQAAAAAAAAA
UeV0ZAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAABS
5XRkBAAAAJgmAQAAAAAAmCYhAAAAAACYJiEAAAAAAGgJAAAAAAAAaAkAAAAAAAABAAAAAAAAAC9s
@computercolin
computercolin / py36_dict_list_bench.output
Created October 9, 2018 07:08
Py 3.6 Benchmark Dict v. List ... even small dicts, faster
# dict
1000000 loops, best of 3: 1.16 usec per loop
# list
1000000 loops, best of 3: 1.56 usec per loop
# tuple
1000000 loops, best of 3: 1.51 usec per loop
# set
1000000 loops, best of 3: 1.16 usec per loop
f0VMRgIBAQAAAAAAAAAAAAMAPgABAAAAYFIAAAAAAABAAAAAAAAAAEAxAQAAAAAAAAAAAEAAOAAJ
AEAAHQAcAAYAAAAFAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAA+AEAAAAAAAD4AQAAAAAAAAgA
AAAAAAAAAwAAAAQAAAA4AgAAAAAAADgCAAAAAAAAOAIAAAAAAAAcAAAAAAAAABwAAAAAAAAAAQAA
AAAAAAABAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQkAQAAAAAARCQBAAAAAAAAACAA
AAAAAAEAAAAGAAAAmCYBAAAAAACYJiEAAAAAAJgmIQAAAAAAhAkAAAAAAADwDgAAAAAAAAAAIAAA
AAAAAgAAAAYAAACYKQEAAAAAAJgpIQAAAAAAmCkhAAAAAADwAQAAAAAAAPABAAAAAAAACAAAAAAA
AAAEAAAABAAAAFQCAAAAAAAAVAIAAAAAAABUAgAAAAAAAEQAAAAAAAAARAAAAAAAAAAEAAAAAAAA
AFDldGQEAAAAOAgBAAAAAAA4CAEAAAAAADgIAQAAAAAAvAIAAAAAAAC8AgAAAAAAAAQAAAAAAAAA
UeV0ZAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAABS
5XRkBAAAAJgmAQAAAAAAmCYhAAAAAACYJiEAAAAAAGgJAAAAAAAAaAkAAAAAAAABAAAAAAAAAC9s