def file_bug(self, user, email, subj, desc): filename = resource.user_resource_file(resource.global_dir, resource.user_details, version='') resource.file_open(filename, 'w').write("%s\n%s\n" % (user.strip(), email.strip())) bugs_cli.file_bug(user, email, subj, desc)
def __scan(self): files,paths = self.__scan1('*.[sS][fF]2') self.__f2p = dict(zip(files,paths)) self.__files = self.__f2p.keys() names,cookies = self.__scan1('*.name', lambda p: resource.file_open(p).read().strip()) self.__n2c = dict(zip(names,cookies)) self.__c2n = dict(zip(cookies,names))
def fgetsamples(filename): f = resource.file_open(filename, 'rb', 0) r = wav_reader.read(f) chans = r['fmt '][1] rate = r['fmt '][2] bps = r['fmt '][5] return convolver_native.canonicalise_samples(r['data'], rate, chans, bps)
def scan_path(self, directory, klass): for p in self.__find_paths(directory): try: manifest = resource.file_open(os.path.join(p, 'Manifest'), 'r').read() pkg = os.path.basename(p) except: continue for a in manifest.splitlines(): a = a.strip() asplit = a.split() if len(asplit) == 1: asplit = ['agent'] + asplit if len(asplit) != 2: continue if asplit[0] == 'agent': a = asplit[1].strip().split(':') (name, module, cversion, version) = a[0:4] fullmodule = os.path.join(p, module) self.add_module(name, version, cversion, klass(name, version, cversion, fullmodule)) for e in a[4:]: self.add_alias(e, version, name) continue if asplit[0] == 'vocab': (e, m, c) = asplit[1].strip().split(':') self.add_vocab(e, m, c)
def __get_email(self): filename = resource.user_resource_file(resource.global_dir, resource.user_details, version='') try: l = resource.file_open(filename, 'r').readlines() return l[0].strip(), l[1].strip() except: return ('', '')
def rename(self,cookie,name): n = '%s.name' % name.replace(' ','_') path = os.path.join(self.userdir,n) try: resource.os_unlink(path) except: pass f = resource.file_open(path,'w') f.write(cookie) f.close() self.__update() return action.nosync_return()
def send_bug(bug): zip = zipfile.ZipFile(resource.WC(bug), 'r') subject = zip.read('subject') user = zip.read('user') email = zip.read('email') description = zip.read('description') fields = (('subject', subject), ('from', email), ('description', description)) files = (('report', 'report.zip', resource.file_open(bug, 'rb').read()), ) post_multipart('www.eigenlabs.com', '/bugfiler/', fields, files)
def add_extra(self): extra_dir = os.path.join(picross.global_library_dir(), 'Global') extra = os.path.join(extra_dir, 'paths.txt') try: resource.os_makedirs(extra_dir) except: pass if not resource.os_path_exists(extra): f = resource.file_open(extra, 'w') f.write('# add plugin paths here\n') f.close() return paths = resource.file_open(extra, 'r').read() for p in paths.splitlines(): p = p.strip() if p.startswith('#'): continue if resource.os_path_exists(p): self.add_path(p)
def read_script(self, filename): if not resource.os_path_isfile(filename): return None f = resource.file_open(filename, "r") description = [] script = [] run_name = [] mode = 'none' name = os.path.basename(filename) for l in f: l = l.strip() if l.startswith('#'): continue if l == 'description': mode = 'desc' continue if l == 'script': mode = 'script' continue if l == 'name': mode = 'name' continue if mode == 'desc': description.append(l) continue if mode == 'script': script.append(l) continue if mode == 'name': run_name.extend(l.split()) continue if not description or not script: return None script = ' '.join(script) run_name = ' '.join(run_name) return (name, description, script, run_name)
def __scan(self): # look for files ended in .wav files, paths = self.__scan1('*.[wW][aA][vV]') # dict of filenames to their full paths self.__f2p = dict(zip(files, paths)) # list of filenames self.__files = self.__f2p.keys() # read .name files whose filenames are belcanto names (phrases) and contents are the # impulse cookies that the belcanto maps to names, cookies = self.__scan1( '*.name', lambda p: resource.file_open(p).read().strip()) # remove name from filenames names = [name.replace('_', ' ') for name in names] self.__n2c = dict(zip(names, cookies)) self.__c2n = dict(zip(cookies, names))
def download(device, filename): code = resource.file_open(filename,'r').read() ez = picross.usbdevice(device, 0) ez_reset(ez) for line in code.splitlines(): len,offset,type = int(line[1:3], 16), int(line[3:7], 16), int(line[7:9], 16) if type == ihx_eof: break if type != 0: raise RuntimeError('unexpected ihx record type %d' % type) hex = line[9:] bytes = [int(hex[x:x+2],16) for x in range(0,len*2,2)] ez_poke(ez, offset, ''.join(map(chr,bytes))) ez_run(ez)
def load_soundfont(file,bk,pre,transpose): print 'loading bank',bk,'preset',pre,'from',file f = resource.file_open(file,'rb',0) sf = SF2.read(f,name=file) f.close() pbs = None pbe = None for (n,p,b,i,l,g,m) in sf['pdta']['phdr']: if pbs is not None: pbe = i break if p==pre and b==bk: pbs = i if pbs is None or pbe is None: raise RuntimeError('preset %d bank %d not found in soundfont %s' % (pre,bk,file)) p = piw.create_preset() gpzb = None gizb = None for pi in range(pbs,pbe): pzb = ZoneBuilder(sf['pdta']['pbag'],sf['pdta']['pgen'],sf['pdta']['pmod'],pi,base=gpzb) inst = pzb.gen.get(GEN_INSTRUMENT) if inst is not None: for ii in range(sf['pdta']['inst'][inst][1],sf['pdta']['inst'][inst+1][1]): izb = ZoneBuilder(sf['pdta']['ibag'],sf['pdta']['igen'],sf['pdta']['imod'],ii,base=gizb,add=pzb) if izb.gen.has_key(GEN_SAMPLEID): p.add_zone(izb.zone(sf['sdta']['smpl'],sf['pdta']['shdr'],transpose)) else: if gizb is None: gizb = izb else: if gpzb is None: gpzb = pzb return p
def update(self): try: doc_file = resource.user_resource_file(resource.help_dir, 'documentation.xml') ((major, minor, build), tag) = resource.split_version(version.version) doc_url = "%s/%d.%d" % (doc_base, major, minor) print 'loading documentation from', doc_url doc_conn = urllib.urlopen(doc_url) doc_text = doc_conn.read() doc_conn.close() doc_out = resource.file_open(doc_file, 'w') doc_out.write(doc_text) doc_out.close() print 'loaded documentation' except: print 'failed to update documentation' utils.log_exception() return self.load_documentation()
def fgetsamples(filename): print 'loading samples from ', filename f = resource.file_open(filename, 'rb', 0) r = wav_reader.read(f) print 'sample rate is', r['fmt '][2] return loop_native.canonicalise_samples(r['data'], float(r['fmt '][2]))
def sf_info(file): file = resource.file_open(file,'rb',0) data = SF2info.read(file) file.close() for n,p,b in data['pdta']['phdr'][:-1]: yield __trim(n),p,b