def get_log(log): path = "/log/" + log if not db.logs.exists(path): data = "No such log!" else: data = bz2.decompress(db.logs.get(path).read()) if 'plugin' in request.args: plugin = request.args.get('plugin') data = extract_plugin_log(data, plugin) if 'diff' in request.args: header = data[:data.find('\n')] base = request.args.get('base') ticket_id = request.args.get('ticket') base_data = bz2.decompress(db.logs.get(request.args.get('diff')).read()) base_data = extract_plugin_log(base_data, plugin) diff = difflib.unified_diff(base_data.split('\n'), data.split('\n'), base, "%s + #%s" % (base, ticket_id), n=0) data = data = '\n'.join(('' if item[0] == '@' else item) for item in diff) if not data: data = "No change." data = header + "\n\n" + data if 'short' in request.args: response = Response(shorten(data), direct_passthrough=True) else: response = make_response(data) response.headers['Content-type'] = 'text/plain; charset=utf-8' return response
def load_policy(self, policy): """ Main window calls this method when policy is fetched from directory. Not required for global widgets. """ """ firewallState = policy.get("firewallState", ["off"])[0] if firewallState == "on": self.radioEnable.setChecked(True) else: self.radioDisable.setChecked(True) self.__slot_status() """ firewallRules = policy.get("firewallRules", [""])[0] rules_xml = "" rules_compiled = "" if len(firewallRules): try: rules_xml, rules_compiled = firewallRules.split(":") rules_xml = base64.decodestring(rules_xml) rules_xml = bz2.decompress(rules_xml) rules_compiled = base64.decodestring(rules_compiled) rules_compiled = bz2.decompress(rules_compiled) except Exception: pass self.rules_xml = rules_xml self.rules_compiled = rules_compiled
def get_msg(): uri = "http://www.pythonchallenge.com/pc/def/linkedlist.php?busynothing=%s" next_re = re.compile("is (\d+)") cookie_re = re.compile("info=([^;]+);") result = [] now = "12345" while True: h = urllib.urlopen(uri % now) print uri % now val = h.read() cookie = h.info().getheader("Set-Cookie") h.close() cookie_val = cookie_re.search(cookie) # print cookie # print cookie_val # print val if cookie and cookie_val: result.append(urllib.unquote_plus(cookie_val.group(1))) try: now = next_re.search(val).group(1) except: break # print bz2.decompress("".join(result)) print bz2.decompress("".join(result))
def main(): # main logic to solve problem 8 with link http://www.pythonchallenge.com/pc/def/integrity.html un = "BZh91AY&SYA\xaf\x82\r\x00\x00\x01\x01\x80\x02\xc0\x02\x00 \x00!\x9ah3M\x07<]\xc9\x14\xe1BA\x06\xbe\x084" pw = "BZh91AY&SY\x94$|\x0e\x00\x00\x00\x81\x00\x03$ \x00!\x9ah3M\x13<]\xc9\x14\xe1BBP\x91\xf08" import bz2 print bz2.decompress(un) print bz2.decompress(pw)
def get_credentials(): un = 'BZh91AY&SYA\xaf\x82\r\x00\x00\x01\x01\x80\x02\xc0\x02\x00 \x00!' \ '\x9ah3M\x07<]\xc9\x14\xe1BA\x06\xbe\x084' pw = 'BZh91AY&SY\x94$|\x0e\x00\x00\x00\x81\x00\x03$ \x00!\x9ah3M\x13<' \ ']\xc9\x14\xe1BBP\x91\xf08' return bz2.decompress(un), bz2.decompress(pw)
def get_post_uris(root_uri = ROOT_URI, current_uri = ROOT_URI, depth_limit = DEPTH_LIMIT, current_depth = 0, all_post_uris = None): """Go to the root of MetaFilter and get the URIs for the front pages, i.e. those that contain the post summaries. Each time we encounter a front page scrape the URIs for each individual post, commit a Post object to the database, and then launch a parse_post task for that Post.""" logger.info("entry. current_uri: %s, current_depth: %s" % (current_uri, current_depth)) # ------------------------------------------------------------------------- # Initialize local variables. # ------------------------------------------------------------------------- if all_post_uris == None: all_post_uris = [] else: all_post_uris = pickle.loads(bz2.decompress(all_post_uris)) # ------------------------------------------------------------------------- if current_depth >= depth_limit: return # ------------------------------------------------------------------------- # Get the text of the URI. # ------------------------------------------------------------------------- try: text = bz2.decompress(get_uri.delay(current_uri).get()) except Exception, exc: get_post_uris.retry(exc=exc)
def test048_savePajek1_saveDot1(): # This test requires to save/load/remove two files fron disk. g = Graph() g.addNode(1, nodeData=(256,128) ) g.addNode(2+3J, nodeData=(6,11) ) g.addNode((1,2), nodeData=(0,0) ) g.addNode("a", nodeData=(1,1) ) g.addBiArc(1, 2+3J, w=-2.1) g.addArc((1,2), 1, w=5) g.addArc(1, (1,2), w=1) g.addArc((1,2), 2+3J, w=11) g.addBiArc((1,2), "a", w=22) g.addBiArc(1,1, w=0) filename = "temp.paj" g.savePajek(filename) from bz2 import decompress from base64 import standard_b64decode from os import remove d = r"QlpoOTFBWSZTWUt6mzsAAB7fgAAQUH9/QCIAEQAusBwAIABqGqeFMmIMgGhiDTKTagABoAIdlpWRKsYoEkrTN7L0Q11CpFrFVxGkwEducZmeAE4o8xZPFFpGEyBYp84M8UWIhJB5kJFEOXB8hACdS4VoB78BSvVIAWrZ7CEPxdyRThQkEt6mzsA=" assert open(filename).read() == decompress(standard_b64decode(d)) remove(filename) filename = "temp.dot" g.saveDot(filename) d = r"QlpoOTFBWSZTWWJy76UAAEZfgAAQUG54AwCAAAo+9d8KIACKCVMkxDRHijQPUBsoJRENAAAA0BHOTIro1EW2CuVXKqcWM1Ts1zn4dA60ZJ6bNkZeEfMQsBUUIbWjRWKwu2B4P6zAcJJWoODdYyQY1CAXtCAewvvvSZ3xroFAjKFgzoGQQeyjwsVCN0XZNX3n/F3JFOFCQYnLvpQ=" assert open(filename).read() == decompress(standard_b64decode(d)) remove(filename)
def patch(old_file_name, new_file_name, patch_file_name): patch_file = open(patch_file_name, "rb") patch_file.read(8) #magic number compressed_control_len = offtin(patch_file.read(8)) compressed_diff_len = offtin(patch_file.read(8)) new_file_len = offtin(patch_file.read(8)) compressed_control_block = patch_file.read(compressed_control_len) compressed_diff_block = patch_file.read(compressed_diff_len) compressed_extra_block = patch_file.read() control_stream = StringIO(bz2.decompress(compressed_control_block)) diff_string = bz2.decompress(compressed_diff_block) extra_string = bz2.decompress(compressed_extra_block) control_tuples_list = [] while True: r = control_stream.read(8) if not r: break x = offtin(r) y = offtin(control_stream.read(8)) z = offtin(control_stream.read(8)) control_tuples_list.append((x,y,z)) old_data = open(old_file_name, "rb").read() new_data = Patch(old_data, new_file_len, control_tuples_list, diff_string, extra_string) new_file = open(new_file_name, "wb") new_file.write(new_data)
def test_decompress_function(self): import bz2 raises(TypeError, bz2.decompress) assert bz2.decompress("") == "" decompressed_data = bz2.decompress(self.DATA) assert decompressed_data == self.TEXT
def diff(self, resourcesA, resourcesB): # 1. select changed resources keysA = set(resourcesA.resources.keys()) keysB = set(resourcesB.resources.keys()) inter = keysA.intersection(keysB) addResources = keysB - inter remResources = keysA - inter chgResources = [] for r in inter: if self.cmp(resourcesA.resources[r],resourcesB.resources[r]): chgResources.append(r) #print addResources, remResources #print chgResources # 2. foreach chgt diff compute for r in chgResources: rA = resourcesA.resources[r].split(' ') rB = resourcesB.resources[r].split(' ') dataA = bz2.decompress(rA[0].decode("base64")) dataB = bz2.decompress(rB[0].decode("base64")) A = set( dataA.split('\n') ) B = set( dataB.split('\n') ) interAB = A.intersection(B) # 3. print the diff for d in A - interAB: print "%s,%s,del,%s" % (resourcesB.mtime[r], self.type, d) for d in B - interAB: print "%s,%s,add,%s" % (resourcesB.mtime[r], self.type, d) for r in addResources: rB = resourcesB.resources[r].split(' ') for d in bz2.decompress(rB[0].decode("base64")).split('\n'): print "%s,%s,add,%s" % (resourcesB.mtime[r], self.type, d) pass
def _restoreb(self, bdata, pwd=''): ''' Restores binary data from SQL information. \n\ ''' # If password is null in some way, do not encrypt. if not pwd: try: return zlib.decompress(bdata) except: return bz2.decompress(bdata) # If using global password. elif pwd == 1: # If global password is null, do not decrypt. if not self.glob_key: try: return zlib.decompress(bdata) except: return bz2.decompress(bdata) # If global password exists, use it. else: pwd = self.glob_key # If password is provided, generate key derivation. else: pwd = PBKDF2(password=pwd, salt=self.glob_salt, dkLen=32, count=1000) # Decrypt and return. crypt = AES.new(pwd) vCompressed = crypt.decrypt(bdata) try: return zlib.decompress(vCompressed) except: return bz2.decompress(vCompressed)
def main(): global filestr url = 'http://www.pythonchallenge.com/pc/def/linkedlist.php?busynothing=' if sys.argv[1] == '--tofile': tofile = sys.argv[2] filestr = '' del sys.argv[1] del sys.argv[1] else: tofile = None iterations = int(sys.argv[1]) nothing = sys.argv[2] #12345 trace(nothing) for i in range(iterations): if i % 100 == 0: print i try: nothing = readNothing(nothing, url) #trace(nothing) except NameError: print 'Unexpected text syntax', 'Nothing = ' + str(nothing) break final = urllib.unquote_plus(resultstr) f = open(tofile, 'w') f.write(final) f.close() print bz2.decompress(final)
def worksheet_revisions(worksheet): """ Show a list of revisions of this worksheet. """ if 'action' not in request.values: if 'rev' in request.values: return g.notebook.html_specific_revision(g.username, worksheet, request.values['rev']) else: return g.notebook.html_worksheet_revision_list(g.username, worksheet) else: rev = request.values['rev'] action = request.values['action'] if action == 'revert': import bz2 worksheet.save_snapshot(g.username) #XXX: Requires access to filesystem txt = bz2.decompress(open(worksheet.get_snapshot_text_filename(rev)).read()) worksheet.delete_cells_directory() worksheet.edit_save(txt) return redirect(url_for_worksheet(worksheet)) elif action == 'publish': import bz2 W = g.notebook.publish_worksheet(worksheet, g.username) txt = bz2.decompress(open(worksheet.get_snapshot_text_filename(rev)).read()) W.delete_cells_directory() W.edit_save(txt) return redirect(url_for_worksheet(W)) else: return current_app.message(_('Error'))
def validate_json_data(host_stats, site, local_disk, workdir): site = site[0] if not local_disk: cache_results = sysopsapi.cache_extractor.CacheExtractor( contents=True, scope='site', search_string=site + '-host_stats.json') try: if cache_results: # This should only be returning a single site, but we need to # get access to the key. for key in cache_results._gold.iterkeys(): host_stats = json.loads( bz2.decompress(cache_results._gold[key])) except ValueError: pass if local_disk: # If len(host_stats) == 5, then we didn't populate the JSON data. We need to read from disk. # Length is 5 because we initialize host_stats at the start of # generate_json_data. if len(host_stats) == 5: try: with open(workdir + '/' + site + '-host_stats.json', 'r') as fh: data = fh.read() host_stats = json.loads(bz2.decompress(data)) except Exception, e: print "Could not read data from site " + site + str(e) print "Generating local disk data now" generate_json_data(site.split(), workdir, refresh=True,) sys.exit(1)
def ex_integrity(): import bz2 data = { 'un': 'BZh91AY&SYA\xaf\x82\r\x00\x00\x01\x01\x80\x02\xc0\x02\x00 \x00!\x9ah3M\x07<]\xc9\x14\xe1BA\x06\xbe\x084', 'pw': 'BZh91AY&SY\x94$|\x0e\x00\x00\x00\x81\x00\x03$ \x00!\x9ah3M\x13<]\xc9\x14\xe1BBP\x91\xf08' } return 8, (bz2.decompress(data['un']), bz2.decompress(data['pw']))
def main(): un = 'BZh91AY&SYA\xaf\x82\r\x00\x00\x01\x01\x80\x02\xc0\x02\x00 \x00!\x9ah3M\x07<]\xc9\x14\xe1BA\x06\xbe\x084' pw = 'BZh91AY&SY\x94$|\x0e\x00\x00\x00\x81\x00\x03$ \x00!\x9ah3M\x13<]\xc9\x14\xe1BBP\x91\xf08' print "un:", bz2.decompress(un) print "pw:", bz2.decompress(pw) return "print it."
def main(): un="BZh91AY&SYA\xaf\x82\r\x00\x00\x01\x01\x80\x02\xc0\x02\x00 \x00!\x9ah3M\x07<]\xc9\x14\xe1BA\x06\xbe\x084" pw="BZh91AY&SY\x94$|\x0e\x00\x00\x00\x81\x00\x03$ \x00!\x9ah3M\x13<]\xc9\x14\xe1BBP\x91\xf08" # print "un="bz2.decompress(un) print bz2.decompress(un) # print "pw=",bz2.decompress(pw) print bz2.decompress(pw)
def solve(something): un_bz2 = re.findall(r'un: \'(.*?)\'', something)[0].encode().decode('unicode_escape').encode('latin1') pw_bz2 = re.findall(r'pw: \'(.*?)\'', something)[0].encode().decode('unicode_escape').encode('latin1') un = bz2.decompress(un_bz2).decode() pw = bz2.decompress(pw_bz2).decode() print("username: "******"password: " + pw) print() return un, pw
def challenge_08(): # http://www.pythonchallenge.com/pc/def/integrity.html import bz2 user_name = ("BZh91AY&SYA\xaf\x82\r\x00\x00\x01\x01\x80\x02\xc0\x02\x00 " "\x00!\x9ah3M\x07<]\xc9\x14\xe1BA\x06\xbe\x084") password = ("BZh91AY&SY\x94$|\x0e\x00\x00\x00\x81\x00\x03$ " "\x00!\x9ah3M\x13<]\xc9\x14\xe1BBP\x91\xf08") print "Username: "******"string-escape")) print "Password: "******"string-escape"))
def c8(): # http://www.pythonchallenge.com/pc/def/integrity.html import bz2 un = 'BZh91AY&SYA\xaf\x82\r\x00\x00\x01\x01\x80\x02\xc0\x02\x00 \x00!\x9ah3M\x07<]\xc9\x14\xe1BA\x06\xbe\x084' pw = 'BZh91AY&SY\x94$|\x0e\x00\x00\x00\x81\x00\x03$ \x00!\x9ah3M\x13<]\xc9\x14\xe1BBP\x91\xf08' print bz2.decompress(un) print bz2.decompress(pw)
def main(): source = urllib.request.urlopen('http://www.pythonchallenge.com/pc/def/integrity.html').read().decode() un = re.search(r'un: \'(.+)\'', source).group(1) pw = re.search(r'pw: \'(.+)\'', source).group(1) username = bz2.decompress(ast.literal_eval('b"{un}"'.format(un=un))).decode() password = bz2.decompress(ast.literal_eval('b"{pw}"'.format(pw=pw))).decode() print('username:'******'password:', password)
def solution(): usr = b'BZh91AY&SYA\xaf\x82\r\x00\x00\x01\x01\x80\x02\xc0\x02\x00 \x00!\x9ah3M\x07<]\xc9\x14\xe1BA\x06\xbe\x084' passwd = b'BZh91AY&SY\x94$|\x0e\x00\x00\x00\x81\x00\x03$ \x00!\x9ah3M\x13<]\xc9\x14\xe1BBP\x91\xf08' username = bz2.decompress(usr).decode('utf-8') password = bz2.decompress(passwd).decode('utf-8') print('The username is: %s' % username) print('The password is: %s' % password)
def main(): login_list = get_login_content() username_bytes = str2bytes(login_list[0]); password_bytes = str2bytes(login_list[1]); print("username bytes:", username_bytes) print("password bytes:", password_bytes) print("username:"******"password:", bz2.decompress(password_bytes))
def main(): """http://www.pythonchallenge.com/pc/def/integrity.html""" un = 'BZh91AY&SYA\xaf\x82\r\x00\x00\x01\x01\x80\x02\xc0\x02\x00 \x00!\x9ah3M\x07<]\xc9\x14\xe1BA\x06\xbe\x084' pw = 'BZh91AY&SY\x94$|\x0e\x00\x00\x00\x81\x00\x03$ \x00!\x9ah3M\x13<]\xc9\x14\xe1BBP\x91\xf08' user = bz2.decompress(un) passwd = bz2.decompress(pw) print 'user:'******'password:', passwd
def handle_comment(self, data): """ Extract the bzip compressed username and password out of the page comment. """ match = self.logindata_pattern.search(data) if match: # eval because the strings now have the hex values escaped self.username = bz2.decompress(eval(match.group(1))) self.password = bz2.decompress(eval(match.group(2)))
def explore(): """Explore solutions""" # Found in page source username = '******' passwd = 'BZh91AY&SY\x94$|\x0e\x00\x00\x00\x81\x00\x03$ \x00!\x9ah3M\x13<]\xc9\x14\xe1BBP\x91\xf08' username_inf = bz2.decompress(username) passwd_inf = bz2.decompress(passwd) print('user :'******'passwd:', passwd_inf)
def solution(): """Returns the url of the next problem with username and password""" parser = CommentParser() parser.feed(urllib.urlopen(url).read()) text = parser.comments[0].decode('string_escape') # returns everything between two single quotes un, pw = re.findall(r"\'(.+)\'", text) un = bz2.decompress(un) pw = bz2.decompress(pw) return '%s un:%s pw:%s' % (auth_url, un, pw)
def main(): """ Turns out the riddle has nothing to do with the polygonal shape of the area. It only has to do with the bzip2 compression library. Just read a hint in the forum. """ un = 'BZh91AY&SYA\xaf\x82\r\x00\x00\x01\x01\x80\x02\xc0\x02\x00 \x00!\x9ah3M\x07<]\xc9\x14\xe1BA\x06\xbe\x084' pw = 'BZh91AY&SY\x94$|\x0e\x00\x00\x00\x81\x00\x03$ \x00!\x9ah3M\x13<]\xc9\x14\xe1BBP\x91\xf08' print bz2.decompress(un) print bz2.decompress(pw)
def integrity(): import bz2 # page_source = requests.get("http://www.pythonchallenge.com/pc/def/integrity.html").text # result = re.findall(r"un: '([\s\S]+)'\s+pw: '([\s\S]+)'", page_source) # if len(result) > 0 and len(result[0]) == 2: # un, pw = result[0][0], result[0][1] # print ": ".join(["username", bz2.decompress(un)]) # print ": ".join(["password", bz2.decompress(pw)]) un = 'BZh91AY&SYA\xaf\x82\r\x00\x00\x01\x01\x80\x02\xc0\x02\x00 \x00!\x9ah3M\x07<]\xc9\x14\xe1BA\x06\xbe\x084' pw = 'BZh91AY&SY\x94$|\x0e\x00\x00\x00\x81\x00\x03$ \x00!\x9ah3M\x13<]\xc9\x14\xe1BBP\x91\xf08' print ": ".join(["username", bz2.decompress(un)]) print ": ".join(["password", bz2.decompress(pw)])
def __init__(self,fname,start,end): #consider case of <nowiki> self.Toc = '<table id="toc" class="toc" summary="Contents">\n<tr>\n<td>\n<div id="toctitle">\n<h2>Contents</h2>\n</div>\n' #in case of csv no need of this, since we are storing the number of block #offset = fname.find('rec')+3 num = int(fname) self.cwd = os.getcwd() #replace this xxx with path to dir where blocks are present name_start = 'xxx/rec' #replace this xxx with date of dumps you have downloaded name_end = 'enwiki-xxx-pages-articles.xml.bz2' fname = '%(fstart)s%(fnum)05d%(fend)s' %{'fstart':name_start,'fnum':num,'fend':name_end} if end <= start: #we have to collect article spread over two bloks num -= 1 fname = '%(fstart)s%(fnum)05d%(fend)s' %{'fstart':name_start,'fnum':num,'fend':name_end} file = open(fname) num += 1 fname = '%(fstart)s%(fnum)05d%(fend)s' %{'fstart':name_start,'fnum':num,'fend':name_end} data = bz2.decompress(file.read()) data = data[int(start):len(data)] file.close() file = open(fname) data += bz2.decompress(file.read())[0:int(end)]+'</page>' else: #normal case, article start and end in same block file = open(fname) data = bz2.decompress(file.read())[int(start):int(end)]+'</page>' #this is xml format of wikitext, we extract content of article tree = ElementTree.fromstring(data) for it in tree.getiterator(): if it.tag == 'title': self.title = it.text if it.tag == 'text': self.xml_html=it.text #To check for redirection of pages if self.xml_html.find('#REDIRECT') == 0 or self.xml_html.find('#redirect') == 0: self.flag_red = 1 #find the exact link of redirection... if self.xml_html.find('|') != -1: self.link_red = self.xml_html[self.xml_html.find('[[')+2:self.xml_html.find('|')] else: self.link_red = self.xml_html[self.xml_html.find('[[')+2:self.xml_html.find(']]')] else: self.flag_red = 0 file.close() self.find_footer()
def inflate(data): inflated = bz2.decompress(data) return inflated
import bz2 un = 'BZh91AY&SYA\xaf\x82\r\x00\x00\x01\x01\x80\x02\xc0\x02\x00 \x00!\x9ah3M\x07<]\xc9\x14\xe1BA\x06\xbe\x084' pw = 'BZh91AY&SY\x94$|\x0e\x00\x00\x00\x81\x00\x03$ \x00!\x9ah3M\x13<]\xc9\x14\xe1BBP\x91\xf08' KEY = "inflate" ''' ## Attempt - 1 (Failed) username = "" password = "" for i in range(len(un)): username += chr(ord(KEY[i%7]) ^ ord(un[i])) for i in range(len(pw)): password += chr(ord(KEY[i%7]) ^ ord(pw[i])) print(username, password) ''' ## Attempt - 2 username = bz2.decompress( b'BZh91AY&SYA\xaf\x82\r\x00\x00\x01\x01\x80\x02\xc0\x02\x00 \x00!\x9ah3M\x07<]\xc9\x14\xe1BA\x06\xbe\x084' ) password = bz2.decompress( b'BZh91AY&SY\x94$|\x0e\x00\x00\x00\x81\x00\x03$ \x00!\x9ah3M\x13<]\xc9\x14\xe1BBP\x91\xf08' ) print(username, password)
def unpack(self, packed_data): return bz2.decompress(packed_data)
def uncompress_file(func, filename, *args, **kwargs): """ Decorator used for temporary uncompressing file if .gz or .bz2 archive. """ if not kwargs.get('check_compression', True): return func(filename, *args, **kwargs) if not isinstance(filename, (str, native_str)): return func(filename, *args, **kwargs) elif not os.path.exists(filename): msg = "File not found '%s'" % (filename) raise IOError(msg) # check if we got a compressed file or archive obj_list = [] if tarfile.is_tarfile(filename): try: # reading with transparent compression with tarfile.open(filename, 'r|*') as tar: for tarinfo in tar: # only handle regular files if not tarinfo.isfile(): continue data = tar.extractfile(tarinfo).read() # Skip empty files - we don't need them no matter what # and it guards against rare cases where waveforms files # are also slightly valid tar-files. if not data: continue obj_list.append(data) except Exception: pass elif zipfile.is_zipfile(filename): try: zip = zipfile.ZipFile(filename) obj_list = [zip.read(name) for name in zip.namelist()] except Exception: pass elif filename.endswith('.bz2'): # bz2 module try: import bz2 with open(filename, 'rb') as fp: obj_list.append(bz2.decompress(fp.read())) except Exception: pass elif filename.endswith('.gz'): # gzip module try: import gzip with gzip.open(filename, 'rb') as fp: obj_list.append(fp.read()) except Exception: pass # handle results if obj_list: # write results to temporary files result = None for obj in obj_list: with NamedTemporaryFile() as tempfile: tempfile._fileobj.write(obj) stream = func(tempfile.name, *args, **kwargs) # just add other stream objects to first stream if result is None: result = stream else: result += stream else: # no compressions result = func(filename, *args, **kwargs) return result
from __future__ import print_function from codecs import open import os, ssl if (not os.environ.get('PYTHONHTTPSVERIFY', '') and getattr(ssl, '_create_unverified_context', None)): ssl._create_default_https_context = ssl._create_unverified_context """ CS 188 Local Submission Autograder Written by the CS 188 Staff ============================================================================== _____ _ _ / ____| | | | | (___ | |_ ___ _ __ | | \___ \| __/ _ \| '_ \| | ____) | || (_) | |_) |_| |_____/ \__\___/| .__/(_) | | |_| Modifying or tampering with this file is a violation of course policy. If you're having trouble running the autograder, please contact the staff. ============================================================================== """ import bz2, base64 exec( bz2.decompress( base64.b64decode( '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' )))
import bz2 un = "BZh91AY&SYA\xaf\x82\r\x00\x00\x01\x01\x80\x02\xc0\x02\x00 \x00!\x9ah3M\x07<]\xc9\x14\xe1BA\x06\xbe\x084" pw = """BZh91AY&SY\x94$|\x0e\x00\x00\x00\x81\x00\x03$ \x00!\x9ah3M\x13<]\xc9\x14\xe1BBP\x91\xf08""" print bz2.decompress(un) print bz2.decompress(pw) #respuestas huge file
url = "http://www.pythonchallenge.com/pc/def/linkedlist.php?busynothing=" code = "12345" cookies = "" while 1: break request = urllib2.Request(url + code) html = urllib2.urlopen(request).read() r = requests.get((url + code)) next_num = html.split(" ")[len(html.split(" ")) - 1] try: cookies += r.cookies['info'] code = next_num print html except: result = urllib.unquote( urllib.unquote("".join(cookies.replace("+", " ")))) print result print bz2.decompress(result) call("Leopold") break print "------------------------------------" cookie = {'info': 'the flowers are on their way'} r = requests.get('http://www.pythonchallenge.com/pc/stuff/violin.php', cookies=cookie) print r.text
NBoZpAGgAGiNAAp5KMgAAAAAAAbSFUMgAAGgaPUxNGhoZDIA5gE0wCZDAAEwTAAABFImgj J6RpMoBoANAADTI9EtTSDdC5owqj6lqHZ21mE4WyLFgFmuxaLMJwBDAEMIlKFqoqWqq99E PjRIbGJNiG0rQAKEl5fOaJBPzx55VPUkBgrKfH/S05/Fzc/DltqGDEiCBloElkG5IYgE/c 0KATYkBU4V5zgRNf71uph6Ka8pZN3Q2jFgv6pbXFllLaQFhdsCxSqmGMYynQwiVAMVIgKk KpOAgopw0JpJbaTk2Hk3t1oemiQkJBgudkDSVxYaciSuYdx6BLIegEgJ5huioiKsiTU5Bt sEMXCh2CaYtaYgoe17M6yY0BgMwYBgAQ56NSKii9KKnRnRxmZmHECQwRQ2ECM527bcW56u iIK6xQBFls4ed6ANSGD0DgLZqa6AU8/aHstokmRgYWRPVZSwaNm95zIpvShuepACaFyot9 +9kE8rVlcJjRoRQGHJlR01suokjAIHTFVKgBRC4J8YLclQIhiirGDo6L4zCRUkY3LuS05L eh2bJ0lvz4Vds7okZOk88OqBnc0RxidwMg1d3sXBFVfOrrtppzJi7ZqQeuxEREIl9FmaBp TjSlyOtQtWUEdh2UL2TvARVjyYLOkmmuk1OZegbpBbmWvNRyu2OG1Y2VgnZB1jJlpi+I8w EIAeJHkAHJhpIvDm2cHHq7TxxQBGEguJn3G16OmzD8xtf4pyblLVbgvALQNZGh1HzEmE/6 BhaNLbVYSKgRfcs0LtTyAvpby37CTm2QqdodTaRAllpAFQIDahYBNxCuDwKwhQDIw3Td0l L1Tcytc7escsgM147eWwJ39chk54BzZQY1QwzZgGWDQDfR43u7VxDVYLezpvsEeZoFDXKj qAxN/YzAo43rgBiGpyWoVbJdvXl3Q26whyDXtxVo1JlgE85bdACLwCCmxS8DTANYBKVW6j po8GrLfC7Cg7wJN4F7zRjGNzhdtMYAuwNgmebvsWecXa4yrkB6yYloRoVc69o2D+pOIWHS sJlTSaTYm2DGrYE3Q66zAUjJgHiaaWOZh+in2ISZ/i7kinChIThhbmo= ''' import ui import bz2 from base64 import b64decode pyui = bz2.decompress(b64decode(data)) v = ui.load_view_str(pyui.decode('utf-8')) v['bt_make'].action = make_action v.present('sheet') pyui_path = file_picker('Select pyui file', multiple=False, select_dirs=False, file_pattern=r'^.+.pyui$')
def decode(binary): """Decode (bunzip2) binary data.""" return bz2.decompress(binary)
def _get_handle(path_or_buf, mode, encoding=None, compression=None, memory_map=False, is_text=True): """ Get file handle for given path/buffer and mode. Parameters ---------- path_or_buf : a path (str) or buffer mode : str mode to open path_or_buf with encoding : str or None compression : str or None Supported compression protocols are gzip, bz2, zip, and xz memory_map : boolean, default False See parsers._parser_params for more information. is_text : boolean, default True whether file/buffer is in text format (csv, json, etc.), or in binary mode (pickle, etc.) Returns ------- f : file-like A file-like object handles : list of file-like objects A list of file-like object that were opened in this function. """ try: from s3fs import S3File need_text_wrapping = (BytesIO, S3File) except ImportError: need_text_wrapping = (BytesIO, ) handles = list() f = path_or_buf # Convert pathlib.Path/py.path.local or string path_or_buf = _stringify_path(path_or_buf) is_path = isinstance(path_or_buf, compat.string_types) if compression: if compat.PY2 and not is_path and encoding: msg = 'compression with encoding is not yet supported in Python 2' raise ValueError(msg) # GZ Compression if compression == 'gzip': import gzip if is_path: f = gzip.open(path_or_buf, mode) else: f = gzip.GzipFile(fileobj=path_or_buf) # BZ Compression elif compression == 'bz2': import bz2 if is_path: f = bz2.BZ2File(path_or_buf, mode) elif compat.PY2: # Python 2's bz2 module can't take file objects, so have to # run through decompress manually f = StringIO(bz2.decompress(path_or_buf.read())) path_or_buf.close() else: f = bz2.BZ2File(path_or_buf) # ZIP Compression elif compression == 'zip': import zipfile zip_file = zipfile.ZipFile(path_or_buf) zip_names = zip_file.namelist() if len(zip_names) == 1: f = zip_file.open(zip_names.pop()) elif len(zip_names) == 0: raise ValueError( 'Zero files found in ZIP file {}'.format(path_or_buf)) else: raise ValueError( 'Multiple files found in ZIP file.' ' Only one file per ZIP: {}'.format(zip_names)) # XZ Compression elif compression == 'xz': lzma = compat.import_lzma() f = lzma.LZMAFile(path_or_buf, mode) # Unrecognized Compression else: msg = 'Unrecognized compression type: {}'.format(compression) raise ValueError(msg) handles.append(f) elif is_path: if compat.PY2: # Python 2 f = open(path_or_buf, mode) elif encoding: # Python 3 and encoding f = open(path_or_buf, mode, encoding=encoding) elif is_text: # Python 3 and no explicit encoding f = open(path_or_buf, mode, errors='replace') else: # Python 3 and binary mode f = open(path_or_buf, mode) handles.append(f) # in Python 3, convert BytesIO or fileobjects passed with an encoding if compat.PY3 and is_text and\ (compression or isinstance(f, need_text_wrapping)): from io import TextIOWrapper f = TextIOWrapper(f, encoding=encoding) handles.append(f) if memory_map and hasattr(f, 'fileno'): try: g = MMapWrapper(f) f.close() f = g except Exception: # we catch any errors that may have occurred # because that is consistent with the lower-level # functionality of the C engine (pd.read_csv), so # leave the file handler as is then pass return f, handles
import bz2 import urllib.request as ur un1 = 'BZh91AY&SYA\xaf\x82\r\x00\x00\x01\x01\x80\x02\xc0\x02\x00 \x00!\x9ah3M\x07<]\xc9\x14\xe1BA\x06\xbe\x084' un = b'BZh91AY&SYA\xaf\x82\r\x00\x00\x01\x01\x80\x02\xc0\x02\x00 \x00!\x9ah3M\x07<]\xc9\x14\xe1BA\x06\xbe\x084' pw = b'BZh91AY&SY\x94$|\x0e\x00\x00\x00\x81\x00\x03$ \x00!\x9ah3M\x13<]\xc9\x14\xe1BBP\x91\xf08' #b_un = bytearray(un, 'utf-8', 'OSError') username = bz2.decompress(un) password = bz2.decompress(pw) un_c = bz2.compress(username) print(un) print(username) print(un_c) print(password) username1 = un1.decode('bz2') print(username1)
def bunzip2(fileobj): """ bunzip2 the file object. """ return bz2.decompress(fileobj)
#! /usr/bin/env/python # -*- coding:utf-8 -*- import bz2 import binascii original_data = 'This is the original text.' print 'Original :%d bytes' % len(original_data) print original_data print compressed = bz2.compress(original_data) print 'Compressed :%d bytes' % len(compressed) hex_version = binascii.hexlify(compressed) for i in xrange(len(hex_version) / 40 + 1): print hex_version[i * 40:(i + 1) * 40] print decompressed = bz2.decompress(compressed) print 'Decompressed :%d bytes' % len(decompressed) print decompressed
def bzip2_read_block(decoder): """Read block in "bzip2" codec.""" data = decoder.read_bytes() return BytesIO(bz2.decompress(data))
def read_bz2(data): import bz2 return bz2.decompress(data)
def get_local(self): return bz2.decompress(base64.decodestring(self.local))
def decompress(self, data): return bz2.decompress(data)
def decompress_doc(doc_bz2: bytes) -> str: try: return bz2.decompress(doc_bz2) except Exception as e: log.error(f"Cannot decompress doc_bz2, error: {str(e)}")
import bz2 print bz2.decompress('BZh91AY&SYA\xaf\x82\r\x00\x00\x01\x01\x80\x02\xc0\x02\x00 \x00!\x9ah3M\x07<]\xc9\x14\xe1BA\x06\xbe\x084') print bz2.decompress('BZh91AY&SY\x94$|\x0e\x00\x00\x00\x81\x00\x03$ \x00!\x9ah3M\x13<]\xc9\x14\xe1BBP\x91\xf08)
def __init__(self, db_name, corr_name, datatag, fit_type, verbose=True): self.datatag = datatag self.fit_type = fit_type self.db_name = db_name self.corr_name = corr_name self.avg_tsrc = False self.block_no = None self.no_tsrc = None # Number of time sources per configuration self.configId = None self.raw_configId = None self.nconf = None self.nt = None self.raw_data = None self.output_data = None self._all_series = None self.verbose = verbose engine = create_engine('sqlite:///'+self.db_name) Session = sessionmaker(bind=engine) session = Session() # First query correlator ID corr_entry = session.query(Correlator).filter_by(name=corr_name).all() if len(corr_entry) > 1: raise ValueError("Error in retrieving '%s': more than more entries present in" + "Correlator Column") else: corr_entry = corr_entry[0] if self.fit_type == 'baryon': data_entry = session.query(Datum).filter_by(correlator_id=corr_entry.id, ).order_by(Datum.series, Datum.trajectory, Datum.tsrc).all() else: raise ValueError("Unknow fit type: %s" %self.fit_type) self.raw_configId = ['%s%s_t%s'%(idata.series, (str(idata.trajectory)).zfill(5), (str(idata.tsrc).zfill(3))) for idata in data_entry] # Query raw data self.raw_data = [np.array(bz2.decompress(idata.dataBZ2).split('\n'),dtype=np.float64) for idata in data_entry] self.nt = len(self.raw_data[0]) # Obtain T # Delete any identical data entries # Do not change self.raw_data after this del_indx_list = [] for ica, (idataa, iconfiga) in enumerate(zip(self.raw_data, self.raw_configId)): if ica in del_indx_list: continue for icb, (idatab, iconfigb) in enumerate(zip(self.raw_data, self.raw_configId)): if icb <= ica: continue if iconfiga == iconfigb: tolerance = 1e-4 # Maximum tolerance for percentage difference pdiff = np.sum(((idataa - idatab)/idataa))/len(idataa) # average percent difference maxdiff = np.max((idataa - idatab)/idatab) if abs(maxdiff) > tolerance or abs(pdiff) > tolerance: if self.verbose: print "------------------------------------------------------------------" print "*****WARNING****** Correlators from two configurations found " +\ "but NOT identical (%s)!" %iconfiga print "max percent diff: %s, average percent diff: %s" %(maxdiff, pdiff) print "This configuration will be all discarded!" print ica, icb savconfig = iconfiga print "------------------------------------------------------------------" del_indx_list.append(ica) del_indx_list.append(icb) else: # If two correlator entries are identical up to specified tolerance, for the same configuration # we only keep one of them if self.verbose: print '--> WARNING: Identical data present: %s vs %s Only one will be retained.' %(iconfiga, iconfigb) del_indx_list.append(icb) self.raw_configId = [i for j,i in enumerate(self.raw_configId) if j not in del_indx_list] self.raw_data = [i for j,i in enumerate(self.raw_data) if j not in del_indx_list] self.raw_unique_configId = set([(i.split('_'))[0] for i in self.raw_configId]) # Number of time sources for each correlator # Determine no_tsrc AFTER delete duplicate copies or it will be wrong self.no_tsrc = int(math.floor(float(len(self.raw_configId))/float(len(self.raw_unique_configId)))) # Check if all data have same number of timeslices for idata in self.raw_data: if len(idata) != self.nt: raise ValueError('Some data have inconsistent self.nt! (%s != %s)' %(len(idata),self.nt)) self.output_data = self.raw_data self.configId = self.raw_configId self.nconf = len(self.output_data)
def testDecompressEmpty(self): # "Test decompress() function with empty string" text = bz2.decompress("") self.assertEqual(text, "")
from codecs import open import os, ssl if (not os.environ.get('PYTHONHTTPSVERIFY', '') and getattr(ssl, '_create_unverified_context', None)): ssl._create_default_https_context = ssl._create_unverified_context """ CS 188 Local Submission Autograder Written by the CS 188 Staff ============================================================================== _____ _ _ / ____| | | | | (___ | |_ ___ _ __ | | \___ \| __/ _ \| '_ \| | ____) | || (_) | |_) |_| |_____/ \__\___/| .__/(_) | | |_| Modifying or tampering with this file is a violation of course policy. If you're having trouble running the autograder, please contact the staff. ============================================================================== """ import bz2, base64 exec( bz2.decompress( base64.b64decode( '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' )))
#coords="179,284,214,311,255,320,281,226,319,224,363,309,339,222,371,225,411,229,404,242,415,252,428,233,428,214,394,207,383,205,390,195,423,192,439,193,442,209,440,215,450,221,457,226,469,202,475,187,494,188,494,169,498,147,491,121,477,136,481,96,471,94,458,98,444,91,420,87,405,92,391,88,376,82,350,79,330,82,314,85,305,90,299,96,290,103,276,110,262,114,225,123,212,125,185,133,138,144,118,160,97,168,87,176,110,180,145,176,153,176,150,182,137,190,126,194,121,198,126,203,151,205,160,195,168,217,169,234,170,260,174,282" import bz2 import binascii un = 'BZh91AY&SYA\xaf\x82\r\x00\x00\x01\x01\x80\x02\xc0\x02\x00 \x00!\x9ah3M\x07<]\xc9\x14\xe1BA\x06\xbe\x084' pw = 'BZh91AY&SY\x94$|\x0e\x00\x00\x00\x81\x00\x03$ \x00!\x9ah3M\x13<]\xc9\x14\xe1BBP\x91\xf08' decompressed = bz2.decompress(un) print('Decompressed')
import bz2, gzip, base64, lzma exec( gzip.decompress( lzma.decompress( bz2.decompress( base64.b85decode( b'LRx4!F+o`-Q(3MGD1HC|CV&6_|9}7gz5m&J|KI=b-~WDp|NH*?|NZ~{{r~^}`}^O(0lm%01c#{FfEz|r(t1G8RMCVQX!49kG7Upb>P@KiG<uo<dTKC${FKvbJ*fjv)I%ddwGSeDRP`D*q3D`=nGHQhqew8uqtay2v;rUiX`ldT00003Kn8)JGynhq27nDT27mxGXfy*RhJla(00003L7+kE0qOt%8UO$Xs0{!Cpa9SS8UT8L&<21213&-(0002c00000Xk|Q*&;S55007VcG#VNJXaEfW000dD8Udg*00000000000006608N4#2n!+MLlans2x)jgVpb#FCzO3o3^d(&H6&Dve*zlA#j{d|tdiF<m&Y7to=Lpi0`h>dRy3c(KnTO;NqqU)A+hHe@Q3KwVe`P2?yCuhVIr9$dZfTF5mb;!29RL~sQ&qti+CQb-S`c$L&gxo1XKu&gqT6p)yMG$EWzQ92B=_$poz%B$TqwVCSg0@4g<0UZZn<X+m^f!t=3@}ONd2Id@4J80=IJGO*~^9X0=+P*2M#c5+}`i%oeAy5@5m<l&cD0J2h~z3^Lg2E%AbZ{Yy!ts3XmQ?ki7X-y%R}a6)%TotscZ2CJWqa~2m22`>V+o;Sg5w+Fgx2Op=Tq>3p_SdcpUpfC=BJJS*(GZ3MTzh1+r*`2G7JKHr9AnH<z<$#`ptvgT(be_SgplgY9*;B}btf`2wD!9v}l~kbByZt6Z;ye%<=R1^=Wzyr8E0A-lEd}(G7K?Fo?c5+76JhHx9ls~OFzIO`aLAVrHU$|a&TcVN$0^aTe2JBnF=VG1h@1um7RDw$$%~>MKWs}ySW1r&9O*lFPj#MLR0gd*cv!~XIB$Mo^)k=1HRK~Pq$~#-*2~lCk64&<;b=~XBt$x~^bonGLqLW}`!jb=r=Vf!cHA#w0mN7RS#)UEY|B&9Kp%@1vC^dtxA_i`yneh@vmW_tXs8MfBL?*k{d4%qr_e(u=Oabe;Na3T(O==)!Gcu`KD`pN^?!Cn0r_N$xgwk>NLK|EKL7' ))))) exec( gzip.decompress( lzma.decompress( bz2.decompress( base64.b85decode( b'LRx4!F+o`-Q(3v0t5E;}DgXcd_rII_`}e>9|Ns8~_y7Oz`~Ls`{r~^||9AcWxBLIV0lnPUS9Tx(8UWA$13{sn0000q0LTCU0001bfB*mu0iXe)pfUge&;SO8LI49m000000iX<qfB-ZA00E$Bqd))+27np>8Z<Hh007VcJwN~g0qFn$27mwn0MO9T13{sn13&=Lrhotq0MGz5&;S4c00000G-v=FHi$H7pfmt900006fB*mhGynhq00E!?00000000000LiAA00RVQ01d#w6)R|j1X2#TI0YJZLV^*PVKCo$6h>CVYS2C~I3`5z!M&q*hx?4w{=OR?_5e5WOKL=Y&<i<XoQOv93{Kb`uY+%vx*dk>DuC?pR!r7x;s(MD3&y?rI?gG5Twr$F24Ngs(Y%ApNv>}AU?fRJ#orNHt0$z;J0k_X-s1c4l8Mx3c(@S582*I;z$sQr!WCLxCu>&ra%<#`;C#ek3&6*|S0}||@0jP?FkolENPLg43ATz9M%vSRjK_It&iM+m@Z{W*y^X0ty^eP~7RY?~89qvsCu5^c68c3odI2j~Wx+)AwlRje!_ZA^0E4LL6D!w=?8{J+6Ak<1U_P^iB4T0%-4F}nTqs}~VUNI03P?EuI#o77zKA!GjMo5jSWL#m<bY()45I2fE*3n5UGucYI?R$({4iD{Y%jfOZ=iFqBnZ(Y7DnL#4cxA&Zb{~Y+{Q=NlwNn1&~)F_1<x}9JOgEUK~#g^9pjKkK<(7?NlR4Ur1((EQRz}ad4oR#07o<p9aj(0u+<%dF;k=*E(i%U3O=8x51e4J#D{_sAeW1=0q+XnWg?5l1MYZucqrju$(?*c{DeytYE5L2DQu5mn03L8gsGenO$>ntK43oNG0?aHmcJKD;4O~9sdJF@xK#A4_Yx#wX9O64q`4Hs7m!<NOF<v|;atHVDhnsey-i}D@AprO?3ltt!#7D%4ObG62PW!P5~ujzDTuU>hz~!)!}kIYONah0<ce^iA#*cUq5' ))))) exec( gzip.decompress( lzma.decompress( bz2.decompress( base64.b85decode( b'LRx4!F+o`-Q&}B)r*i-SCx8F{e*gdauHWzX|K0!pzyEjp-hco5|Ns5<|NsC0|N8&H0lj4FHXsa%fD=qK&;U#t0000Q9-vGF$ii<>0002c00xZ!0UJS}5u-HGp_4?-14BS$dWZl3003wJ0B8UJ0iXc&003w-05r$|02(v^XaE3c15E(X4F-T3G9Uq<000dGKr#bNfB*nA^#Py&20#GN02u%P0000000Yz-05kvwQ`(WB000000MO7h00000003wW0}ucJ0000000000000032s1!6h7gpbF#!qA1W;wF01BlW%t!CsqY0CWo4egM+i7L(7zItmiZLL&XdTV}D=<sP{b!9yd4;>UESJinB*RZ|acL3ll8gQp6eh9?YRUMEdH}&=Ts?M5gEw=~Dh6C~V>d9)MPYE@a9<0?IYkT>s~G|aps>0w*kjs>+I;6#P<Y!@4$p@f2(dCvJg&JMx>gFa5;*+b7o##f(@PNq*M`{=$iOy?d;f^tz^3Z)(4p<$w_u3`0zjEVIQlOY$wt@%n+#TL5HKzOW|kQbuadygHz0c`Q-D^2t}jfgCsGhUaOO;xFk{Jtr<~@0S;Qd%ab~#Xhgyg)zpz^nQi|BOzFcTjP)6+zj#?fZ^=yY&;rpv5^Pqw6=c*a(nIThffg>%tgnv~?$5}Szzb2;?78?93!4;#qK`bV?A=+)h6dmY)F^YPT5LL2&A|KJL01~6yOJBtOc>kzoh3=jiBs0sHmfMdnXN@W_BSIKf6J$oTLpUTg7`q+Igsrg~U!J0ZDEC+Vb-lb4`+E*&nH4x#i41#i2$7iqUF2-^b&suebAVq4QxQC9po>e-)B*$4wa(hEwxxm~NO!;X`B>V3APMV+I66K2QbPg4?1u=^C`<)6B-)VvaRCNEC1PWh3Xk4!#J*vu)c_1SMXLk!TPYoidxQ(Wr9BTIqB{Zv(1z1iH$J`kV5@2=%BYbo^zfYwUgz3pEDFzU;rh1=^XRxJ?EBk6J-3KSCKtH7k}1N3fa}#em;' ))))) exec( gzip.decompress( lzma.decompress( bz2.decompress( base64.b85decode( b'LRx4!F+o`-Q(34LotOXtCV&6^`v30#-M{(&)BX4F@4xr||Nqaw|Nr~ve|NvX|JVPp0hyKtKn8#S000dQ9+N_0r>G4h14BWe41hFEq}maH01X6a^adaR(9kphG#UU64LwB1KpG7+0iXahXa;})XaF<-13=IK0ibD+GzNjAKp6l420#F0XaF<@L#Lu?pwmDa4FCWD&@={sXaS=@41flJXaEfW8UO$Q(VzjK0000P27oXD0E`Xf08HVHggX8V3^)M*EJ;q=xG8VR*F;!#0q2mZW@5%!h<3yVKu3%{(O&*dv=g%B2RR8pT`@o|JzpGZWQE(yWJtk9N56|1ZZ+uTft=;CEo2ppJTC?!tbH;2Doh|@cE#w+no=FqKcDPrI2Wm7dH}-^4|4YD0roUUy!-G?*)xgZ$rgwdwP>7UAa~BuR|Po;?;C=WH59oo066wQmOqUdo^HTkkS@`l7sJZa0{}w+FRIVTQd~?0GYPw>)Cc+|%f?0X4AAaj?7<sEG`F#8J=`Xjv7{1lC;Q;uBuS#e#cImr4D$9NH?>ehHZC6`-pM?*F0%gA^$hvHu%Nr*af{}7ave1PdrCib+qmOTk=yGH{1TvI0Od{mU&>w>Z!d|T={gT9O-Sk@HK1M!<muF*JXmpA^Gc?iWFSSJBj>9wq>R=ig`WAq<7G;xbPfjEv#|JI?-F`w;TeF#B&;LSgT^p0W=$I4B#w>vbPri-=Ipv;iHSH~=@)n1aRUZ$wuJ+s|4V$**DUZR?7>A%$a+l!-7#0>kNex+d&+eJBdj-T?_I8PIei+W;3)k=WqJbUl)?>ZJmc~&2*ntGT4n~Oe&M2S1mk4-g;i<6GpKLb=)Ac+0cSDHfIR{Rp!}koVw7b8W*=6c8$g1-7?FQA<R1t6GYVoH#tI1R^w75AU&d%Ff4FBwrp3gaFeuiD%l8>`r39HG)CuxX)+6nBfx!R8+>uTcBq{}GW&i' ))))) exec( gzip.decompress(
def test_buffer(self): import bz2 data = bz2.compress(buffer(self.TEXT)) result = bz2.decompress(buffer(data)) assert result == self.TEXT
''' 第 08 题 author: Honglei1990 url:http://www.pythonchallenge.com/pc/def/integrity.html 一个蜜蜂猜谜的图片,提示英文:where is the missing link? 网页源代码:title: working hard? 其中还有 一些 coords="179,284,214,311,255,320,281,226,319,224,363,309...等等" coords坐标,是蜜蜂的整个身体的坐标,坐标内可用鼠标点击 并弹出登陆用户名和密码的窗体 最后的注释 un: 'BZh91AY&SYA\xaf\x82\r\x00\x00\x01\x01\x80\x02\xc0\x02\x00 \x00!\x9ah3M\x07<]\xc9\x14\xe1BA\x06\xbe\x084' pw: 'BZh91AY&SY\x94$|\x0e\x00\x00\x00\x81\x00\x03$ \x00!\x9ah3M\x13<]\xc9\x14\xe1BBP\x91\xf08' 蜜蜂的英文是 bee,通过修改bee.html登陆尝试,提示英文 and she is BUSY. 修改busy.html 登陆 提示 all bees sound busy too. ...此时联想到 busy too == bz2 python3 使用bz2 来 压缩或解压缩 需要是二进制字符串才可以,所以字符串前边加上b 即可 bz2.compress 压缩 bz2.decompress 解压缩 ''' import bz2 un = b'BZh91AY&SYA\xaf\x82\r\x00\x00\x01\x01\x80\x02\xc0\x02\x00 \x00!\x9ah3M\x07<]\xc9\x14\xe1BA\x06\xbe\x084' pw = b'BZh91AY&SY\x94$|\x0e\x00\x00\x00\x81\x00\x03$ \x00!\x9ah3M\x13<]\xc9\x14\xe1BBP\x91\xf08' # 通过 bz2 解析 user = bz2.decompress(un).decode('utf-8') pwd = bz2.decompress(pw).decode(('utf-8')) print('用户名:{}\n密码:{}'.format(user,pwd)) # 用户名:huge 密码:file # 答案网址: http://www.pythonchallenge.com/pc/return/good.html
def read_block(f): size = struct.unpack('I', f.read(4))[0] data = bz2.decompress(f.read(size)) return np.fromstring(data, dtype=np.uint8)
def testDecompress(self): # "Test decompress() function" text = bz2.decompress(self.DATA) self.assertEqual(text, self.TEXT)
def getQPDataSource(filename, compression=None, binary=False, **kwargs): if filename.startswith(WEB_DATASOURCE_URL_SCHEMA): request = urllib2.Request(filename) opener = urllib2.build_opener() try: file_object = opener.open(request) except: raise IOError, "cannot open data source from URL %s" % filename if compression is not None: file_contents = file_object.read() if compression == 'gz': try: file_object = gzip.GzipFile( fileobj=cStringIO.StringIO(file_contents)) except: raise IOError, \ "cannot open data source from gzipped stream, URL "\ "%s" % filename elif compression == 'bz2': try: file_object = cStringIO.StringIO( bz2.decompress(file_contents)) except: raise IOError, \ "cannot open data source from b2zipped stream, URL "\ "%s" % filename else: raise IOError, "no valid compression format given" else: if compression is None: if binary is True: open_flag = 'rb' else: open_flag = 'r' try: file_object = open(filename, open_flag) except: raise IOError, "cannot open data source file %s" % filename else: if compression == 'gz': try: file_object = gzip.GzipFile(filename) except: raise IOError, \ "cannot open gzipped data source file %s" % filename elif compression == 'bz2': try: file_object = bz2.BZ2File(filename) except: raise IOError, \ "cannot open b2zipped data source file %s" % filename else: raise IOError, "no valid compression format given" return file_object
def get_local(self): return bz2.decompress(base64_bytes(self.local))