Changeset 7909:571786b64c45


Ignore:
Timestamp:
01/03/08 03:24:43 (5 years ago)
Author:
Robert Bradshaw <robertwb@…>
Branch:
default
Children:
7910:92d37861c2ce, 7921:bc8c4b756d60
Message:

Store all jmol files in a single zip archive.

Location:
sage
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • sage/plot/plot3d/base.pyx

    r7906 r7909  
    4747from math import atan2 
    4848from random import randint 
     49import zipfile 
     50from cStringIO import StringIO 
    4951 
    5052import sage.misc.misc 
     
    187189        render_params.output_file = filename 
    188190        render_params.force_reload = render_params.randomize_counter = force_reload 
    189         f = open(filename, 'w') 
     191        render_params.output_archive = zipfile.ZipFile(filename, 'w', zipfile.ZIP_DEFLATED, True) 
     192         
     193        f = StringIO() 
     194         
    190195        # Set the scene background color 
    191196        f.write('background [%s,%s,%s]\n'%tuple([int(a*255) for a in background])) 
     
    209214        # Put the rest of the object in 
    210215        f.write("\n".join(flatten_list([self.jmol_repr(render_params), ""]))) 
    211         f.close() 
     216         
     217        render_params.output_archive.writestr('SCRIPT', f.getvalue()) 
     218        render_params.output_archive.close() 
    212219 
    213220    def jmol_repr(self, render_params): 
     
    344351            #    fg = 2 
    345352            filename = '%s-size%s%s'%(base, fg*100, ext) 
     353            ext = "jmol" 
     354            archive_name = "%s.%s.zip" % (filename, ext) 
    346355 
    347356            T = self._prepare_for_jmol(frame, axes, aspect_ratio, zoom) 
    348             T.export_jmol(filename + ".jmol", force_reload=EMBEDDED_MODE, **kwds) 
     357            T.export_jmol(archive_name, force_reload=EMBEDDED_MODE, **kwds) 
    349358            viewer_app = sage.misc.misc.SAGE_LOCAL + "/java/jmol/jmol" 
    350             ext = "jmol" 
     359 
     360            # We need a script to load the file 
     361            f = open(filename + '.jmol', 'w') 
     362            f.write('set defaultdirectory "%s"\n' % archive_name) 
     363            f.write('script SCRIPT\n') 
     364            f.close() 
    351365 
    352366        if ext is None: 
  • sage/plot/plot3d/index_face_set.pyx

    r7906 r7909  
    643643        from base import flatten_list 
    644644        name = render_params.unique_name('obj') 
    645         filename = "%s-%s.pmesh" % (render_params.output_file, name) 
    646         f = open(filename, 'w') 
    647645        all = flatten_list(all) 
    648         for line in all: 
    649             f.write(line) 
    650             f.write('\n') 
    651         f.close() 
    652         #if render_params.force_reload: 
    653         #    filename += "?%s" % randint(1,1000000) 
     646        if render_params.output_archive: 
     647            filename = "%s.pmesh" % (name) 
     648            render_params.output_archive.writestr(filename, '\n'.join(all)) 
     649        else: 
     650            filename = "%s-%s.pmesh" % (render_params.output_file, name) 
     651            f = open(filename, 'w') 
     652            for line in all: 
     653                f.write(line) 
     654                f.write('\n') 
     655            f.close() 
    654656 
    655657        s = 'pmesh %s "%s"\n%s' % (name, filename, self.texture.jmol_str("pmesh")) 
  • sage/server/notebook/cell.py

    r7905 r7909  
    608608                script = '<div><script>jmol_applet(%s, "%s");</script></div>' % (size, url) 
    609609                images.append(script) 
    610             elif F.endswith('.pmesh'): 
     610            elif F.endswith('.jmol.zip'): 
    611611                pass # jmol data 
    612612            else: 
Note: See TracChangeset for help on using the changeset viewer.