コード例 #1
0
 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)
コード例 #2
0
 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))
コード例 #3
0
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)
コード例 #4
0
ファイル: registry.py プロジェクト: shamharoth/EigenD
    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)
コード例 #5
0
 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 ('', '')
コード例 #6
0
 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()
コード例 #7
0
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)
コード例 #8
0
ファイル: registry.py プロジェクト: shamharoth/EigenD
    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)
コード例 #9
0
    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)
コード例 #10
0
 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))
コード例 #11
0
ファイル: ezload.py プロジェクト: shamharoth/EigenD
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)
コード例 #12
0
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
コード例 #13
0
    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()
コード例 #14
0
ファイル: clicker_plg.py プロジェクト: shamharoth/EigenD
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]))
コード例 #15
0
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