mirror of
https://github.com/django-q2/django-q2.git
synced 2026-10-03 20:18:11 +08:00
Build improvements (#569)
* Black linting * Adding Black to dev dependencies and upping minimal python to 3.6.2 for compatibility * Updating packages * Removing pip-tools input and exporting requirements with poetry * Deleting old setup files and test runner * Trying 1.3.7 * Looser extras requirements to prevent conflicts * Sorted imports with isort * Added iSort to dev dependencies * Fixes localtime for naive setups
This commit is contained in:
+266
-45
@@ -4,50 +4,269 @@ humanhash: Human-readable representations of digests.
|
||||
The simplest ways to use this module are the :func:`humanize` and :func:`uuid`
|
||||
functions. For tighter control over the output, see :class:`HumanHasher`.
|
||||
"""
|
||||
from argparse import ArgumentError
|
||||
|
||||
import operator
|
||||
import uuid as uuidlib
|
||||
from argparse import ArgumentError
|
||||
from functools import reduce
|
||||
|
||||
|
||||
DEFAULT_WORDLIST = (
|
||||
'ack', 'alabama', 'alanine', 'alaska', 'alpha', 'angel', 'apart', 'april',
|
||||
'arizona', 'arkansas', 'artist', 'asparagus', 'aspen', 'august', 'autumn',
|
||||
'avocado', 'bacon', 'bakerloo', 'batman', 'beer', 'berlin', 'beryllium',
|
||||
'black', 'blossom', 'blue', 'bluebird', 'bravo', 'bulldog', 'burger',
|
||||
'butter', 'california', 'carbon', 'cardinal', 'carolina', 'carpet', 'cat',
|
||||
'ceiling', 'charlie', 'chicken', 'coffee', 'cola', 'cold', 'colorado',
|
||||
'comet', 'connecticut', 'crazy', 'cup', 'dakota', 'december', 'delaware',
|
||||
'delta', 'diet', 'don', 'double', 'early', 'earth', 'east', 'echo',
|
||||
'edward', 'eight', 'eighteen', 'eleven', 'emma', 'enemy', 'equal',
|
||||
'failed', 'fanta', 'fifteen', 'fillet', 'finch', 'fish', 'five', 'fix',
|
||||
'floor', 'florida', 'football', 'four', 'fourteen', 'foxtrot', 'freddie',
|
||||
'friend', 'fruit', 'gee', 'georgia', 'glucose', 'golf', 'green', 'grey',
|
||||
'hamper', 'happy', 'harry', 'hawaii', 'helium', 'high', 'hot', 'hotel',
|
||||
'hydrogen', 'idaho', 'illinois', 'india', 'indigo', 'ink', 'iowa',
|
||||
'island', 'item', 'jersey', 'jig', 'johnny', 'juliet', 'july', 'jupiter',
|
||||
'kansas', 'kentucky', 'kilo', 'king', 'kitten', 'lactose', 'lake', 'lamp',
|
||||
'lemon', 'leopard', 'lima', 'lion', 'lithium', 'london', 'louisiana',
|
||||
'low', 'magazine', 'magnesium', 'maine', 'mango', 'march', 'mars',
|
||||
'maryland', 'massachusetts', 'may', 'mexico', 'michigan', 'mike',
|
||||
'minnesota', 'mirror', 'mississippi', 'missouri', 'mobile', 'mockingbird',
|
||||
'monkey', 'montana', 'moon', 'mountain', 'muppet', 'music', 'nebraska',
|
||||
'neptune', 'network', 'nevada', 'nine', 'nineteen', 'nitrogen', 'north',
|
||||
'november', 'nuts', 'october', 'ohio', 'oklahoma', 'one', 'orange',
|
||||
'oranges', 'oregon', 'oscar', 'oven', 'oxygen', 'papa', 'paris', 'pasta',
|
||||
'pennsylvania', 'pip', 'pizza', 'pluto', 'potato', 'princess', 'purple',
|
||||
'quebec', 'queen', 'quiet', 'red', 'river', 'robert', 'robin', 'romeo',
|
||||
'rugby', 'sad', 'salami', 'saturn', 'september', 'seven', 'seventeen',
|
||||
'shade', 'sierra', 'single', 'sink', 'six', 'sixteen', 'skylark', 'snake',
|
||||
'social', 'sodium', 'solar', 'south', 'spaghetti', 'speaker', 'spring',
|
||||
'stairway', 'steak', 'stream', 'summer', 'sweet', 'table', 'tango', 'ten',
|
||||
'tennessee', 'tennis', 'texas', 'thirteen', 'three', 'timing', 'triple',
|
||||
'twelve', 'twenty', 'two', 'uncle', 'undress', 'uniform', 'uranus', 'utah',
|
||||
'vegan', 'venus', 'vermont', 'victor', 'video', 'violet', 'virginia',
|
||||
'washington', 'west', 'whiskey', 'white', 'william', 'winner', 'winter',
|
||||
'wisconsin', 'wolfram', 'wyoming', 'xray', 'yankee', 'yellow', 'zebra',
|
||||
'zulu')
|
||||
"ack",
|
||||
"alabama",
|
||||
"alanine",
|
||||
"alaska",
|
||||
"alpha",
|
||||
"angel",
|
||||
"apart",
|
||||
"april",
|
||||
"arizona",
|
||||
"arkansas",
|
||||
"artist",
|
||||
"asparagus",
|
||||
"aspen",
|
||||
"august",
|
||||
"autumn",
|
||||
"avocado",
|
||||
"bacon",
|
||||
"bakerloo",
|
||||
"batman",
|
||||
"beer",
|
||||
"berlin",
|
||||
"beryllium",
|
||||
"black",
|
||||
"blossom",
|
||||
"blue",
|
||||
"bluebird",
|
||||
"bravo",
|
||||
"bulldog",
|
||||
"burger",
|
||||
"butter",
|
||||
"california",
|
||||
"carbon",
|
||||
"cardinal",
|
||||
"carolina",
|
||||
"carpet",
|
||||
"cat",
|
||||
"ceiling",
|
||||
"charlie",
|
||||
"chicken",
|
||||
"coffee",
|
||||
"cola",
|
||||
"cold",
|
||||
"colorado",
|
||||
"comet",
|
||||
"connecticut",
|
||||
"crazy",
|
||||
"cup",
|
||||
"dakota",
|
||||
"december",
|
||||
"delaware",
|
||||
"delta",
|
||||
"diet",
|
||||
"don",
|
||||
"double",
|
||||
"early",
|
||||
"earth",
|
||||
"east",
|
||||
"echo",
|
||||
"edward",
|
||||
"eight",
|
||||
"eighteen",
|
||||
"eleven",
|
||||
"emma",
|
||||
"enemy",
|
||||
"equal",
|
||||
"failed",
|
||||
"fanta",
|
||||
"fifteen",
|
||||
"fillet",
|
||||
"finch",
|
||||
"fish",
|
||||
"five",
|
||||
"fix",
|
||||
"floor",
|
||||
"florida",
|
||||
"football",
|
||||
"four",
|
||||
"fourteen",
|
||||
"foxtrot",
|
||||
"freddie",
|
||||
"friend",
|
||||
"fruit",
|
||||
"gee",
|
||||
"georgia",
|
||||
"glucose",
|
||||
"golf",
|
||||
"green",
|
||||
"grey",
|
||||
"hamper",
|
||||
"happy",
|
||||
"harry",
|
||||
"hawaii",
|
||||
"helium",
|
||||
"high",
|
||||
"hot",
|
||||
"hotel",
|
||||
"hydrogen",
|
||||
"idaho",
|
||||
"illinois",
|
||||
"india",
|
||||
"indigo",
|
||||
"ink",
|
||||
"iowa",
|
||||
"island",
|
||||
"item",
|
||||
"jersey",
|
||||
"jig",
|
||||
"johnny",
|
||||
"juliet",
|
||||
"july",
|
||||
"jupiter",
|
||||
"kansas",
|
||||
"kentucky",
|
||||
"kilo",
|
||||
"king",
|
||||
"kitten",
|
||||
"lactose",
|
||||
"lake",
|
||||
"lamp",
|
||||
"lemon",
|
||||
"leopard",
|
||||
"lima",
|
||||
"lion",
|
||||
"lithium",
|
||||
"london",
|
||||
"louisiana",
|
||||
"low",
|
||||
"magazine",
|
||||
"magnesium",
|
||||
"maine",
|
||||
"mango",
|
||||
"march",
|
||||
"mars",
|
||||
"maryland",
|
||||
"massachusetts",
|
||||
"may",
|
||||
"mexico",
|
||||
"michigan",
|
||||
"mike",
|
||||
"minnesota",
|
||||
"mirror",
|
||||
"mississippi",
|
||||
"missouri",
|
||||
"mobile",
|
||||
"mockingbird",
|
||||
"monkey",
|
||||
"montana",
|
||||
"moon",
|
||||
"mountain",
|
||||
"muppet",
|
||||
"music",
|
||||
"nebraska",
|
||||
"neptune",
|
||||
"network",
|
||||
"nevada",
|
||||
"nine",
|
||||
"nineteen",
|
||||
"nitrogen",
|
||||
"north",
|
||||
"november",
|
||||
"nuts",
|
||||
"october",
|
||||
"ohio",
|
||||
"oklahoma",
|
||||
"one",
|
||||
"orange",
|
||||
"oranges",
|
||||
"oregon",
|
||||
"oscar",
|
||||
"oven",
|
||||
"oxygen",
|
||||
"papa",
|
||||
"paris",
|
||||
"pasta",
|
||||
"pennsylvania",
|
||||
"pip",
|
||||
"pizza",
|
||||
"pluto",
|
||||
"potato",
|
||||
"princess",
|
||||
"purple",
|
||||
"quebec",
|
||||
"queen",
|
||||
"quiet",
|
||||
"red",
|
||||
"river",
|
||||
"robert",
|
||||
"robin",
|
||||
"romeo",
|
||||
"rugby",
|
||||
"sad",
|
||||
"salami",
|
||||
"saturn",
|
||||
"september",
|
||||
"seven",
|
||||
"seventeen",
|
||||
"shade",
|
||||
"sierra",
|
||||
"single",
|
||||
"sink",
|
||||
"six",
|
||||
"sixteen",
|
||||
"skylark",
|
||||
"snake",
|
||||
"social",
|
||||
"sodium",
|
||||
"solar",
|
||||
"south",
|
||||
"spaghetti",
|
||||
"speaker",
|
||||
"spring",
|
||||
"stairway",
|
||||
"steak",
|
||||
"stream",
|
||||
"summer",
|
||||
"sweet",
|
||||
"table",
|
||||
"tango",
|
||||
"ten",
|
||||
"tennessee",
|
||||
"tennis",
|
||||
"texas",
|
||||
"thirteen",
|
||||
"three",
|
||||
"timing",
|
||||
"triple",
|
||||
"twelve",
|
||||
"twenty",
|
||||
"two",
|
||||
"uncle",
|
||||
"undress",
|
||||
"uniform",
|
||||
"uranus",
|
||||
"utah",
|
||||
"vegan",
|
||||
"venus",
|
||||
"vermont",
|
||||
"victor",
|
||||
"video",
|
||||
"violet",
|
||||
"virginia",
|
||||
"washington",
|
||||
"west",
|
||||
"whiskey",
|
||||
"white",
|
||||
"william",
|
||||
"winner",
|
||||
"winter",
|
||||
"wisconsin",
|
||||
"wolfram",
|
||||
"wyoming",
|
||||
"xray",
|
||||
"yankee",
|
||||
"yellow",
|
||||
"zebra",
|
||||
"zulu",
|
||||
)
|
||||
|
||||
|
||||
class HumanHasher:
|
||||
@@ -70,7 +289,7 @@ class HumanHasher:
|
||||
raise ArgumentError("Wordlist must have exactly 256 items")
|
||||
self.wordlist = wordlist
|
||||
|
||||
def humanize(self, hexdigest, words=4, separator='-'):
|
||||
def humanize(self, hexdigest, words=4, separator="-"):
|
||||
|
||||
"""
|
||||
Humanize a given hexadecimal digest.
|
||||
@@ -84,7 +303,10 @@ class HumanHasher:
|
||||
"""
|
||||
|
||||
# Gets a list of byte values between 0-255.
|
||||
bytes = [int(x, 16) for x in list(map(''.join, list(zip(hexdigest[::2], hexdigest[1::2]))))]
|
||||
bytes = [
|
||||
int(x, 16)
|
||||
for x in list(map("".join, list(zip(hexdigest[::2], hexdigest[1::2]))))
|
||||
]
|
||||
# Compress an arbitrary number of bytes to `words`.
|
||||
compressed = self.compress(bytes, words)
|
||||
# Map the compressed byte values through the word list.
|
||||
@@ -115,10 +337,9 @@ class HumanHasher:
|
||||
|
||||
# Split `bytes` into `target` segments.
|
||||
seg_size = length // target
|
||||
segments = [bytes[i * seg_size:(i + 1) * seg_size]
|
||||
for i in range(target)]
|
||||
segments = [bytes[i * seg_size : (i + 1) * seg_size] for i in range(target)]
|
||||
# Catch any left-over bytes in the last segment.
|
||||
segments[-1].extend(bytes[target * seg_size:])
|
||||
segments[-1].extend(bytes[target * seg_size :])
|
||||
|
||||
# Use a simple XOR checksum-like function for compression.
|
||||
checksum = lambda bytes: reduce(operator.xor, bytes, 0)
|
||||
@@ -134,7 +355,7 @@ class HumanHasher:
|
||||
as :meth:`humanize` (they'll be passed straight through).
|
||||
"""
|
||||
|
||||
digest = str(uuidlib.uuid4()).replace('-', '')
|
||||
digest = str(uuidlib.uuid4()).replace("-", "")
|
||||
return self.humanize(digest, **params), digest
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user