def open(self, prjfile): from epydoc.css import STYLESHEETS self._filename = prjfile try: opts = load(open(prjfile, 'r')) modnames = list(opts.get('modules', [])) modnames.sort() self._module_list.delete(0, 'end') for name in modnames: self.add_module(name) self._module_entry.delete(0, 'end') self._name_entry.delete(0, 'end') if opts.get('prj_name'): self._name_entry.insert(0, opts['prj_name']) self._url_entry.delete(0, 'end') if opts.get('prj_url'): self._url_entry.insert(0, opts['prj_url']) self._docformat_var.set(opts.get('docformat', 'epytext')) self._inheritance_var.set(opts.get('inheritance', 'grouped')) self._help_entry.delete(0, 'end') if opts.get('help') is None: self._help_var.set('default') else: self._help_var.set('-other-') self._help_entry.insert(0, opts.get('help')) self._out_entry.delete(0, 'end') self._out_entry.insert(0, opts.get('outdir', 'html')) self._frames_var.set(opts.get('frames', 1)) self._private_var.set(opts.get('private', 1)) self._imports_var.set(opts.get('show_imports', 0)) self._css_entry.delete(0, 'end') if opts.get('css', 'default') in STYLESHEETS.keys(): self._css_var.set(opts.get('css', 'default')) else: self._css_var.set('-other-') self._css_entry.insert(0, opts.get('css', 'default')) if opts.get('private_css', 'default') in STYLESHEETS.keys(): self._private_css_var.set(opts.get('private_css', 'default')) else: self._private_css_var.set('-other-') self._css_entry.insert(0, opts.get('private_css', 'default')) except Exception, e: sys.stderr.write('!!!Error opening %s: %s\n!!!' % (prjfile, e)) self._root.bell()
def _check_css(cssname): """ If C{cssname} is not valid, then issue an error and exit. """ if cssname is None: return if os.path.isfile(cssname): return from epydoc.css import STYLESHEETS if STYLESHEETS.has_key(cssname): return # We couldn't find it. print >>sys.stderr, '\nError: CSS file %s not found\n' % cssname sys.exit(1)
def _help(arg): """ Display a speficied help message, and exit. @param arg: The name of the help message to display. Currently, only C{"css"} and C{"usage"} are recognized. @type arg: C{string} @rtype: C{None} """ arg = arg.strip().lower() if arg == 'css': from epydoc.css import STYLESHEETS print '\nThe following built-in CSS stylesheets are available:' names = STYLESHEETS.keys() names.sort() maxlen = max(*[len(name) for name in names]) format = ' %'+`-maxlen-1`+'s %s' for name in names: print format % (name, STYLESHEETS[name][1]) print elif arg == 'version': _version() elif arg in ('checks', 'tests', 'test', 'check'): print '\nBy default, epydoc checks to make sure that all public' print 'objects have descriptions. The following additional tests' print 'can be specified with the "--tests" option:' print ' - private: Check private objects.' print ' - vars: Check variables and parameters.' print ' - types: Check that variables and parameters have types.' print ' - authors: Check that all modules have authors.' print ' - versions: Check that all modules have versions.' print ' - all: Run all tests\n' elif arg in ('inheritance', 'inheritence'): print '\nThe following inheritance formats are currently supported:' print ' - grouped: inherited objects are gathered into groups,' print ' based on what class they were inherited from.' print ' - listed: inherited objects are listed in a short list' print ' at the end of their section.' print ' - included: inherited objects are mixed in with ' print ' non-inherited objects.\n' elif arg in ('docformat', 'doc_format', 'doc-format'): print '\n__docformat__ is a module variable that specifies the markup' print 'language for the docstrings in a module. Its value is a ' print 'string, consisting the name of a markup language, optionally ' print 'followed by a language code (such as "en" for English). Epydoc' print 'currently recognizes the following markup language names:' import epydoc.objdoc for format in epydoc.objdoc.KNOWN_DOCFORMATS: print ' - %s' % format print else: _usage(0) sys.exit(0)
def _init_options(self, optsframe, ctrlframe): self._leftImage=PhotoImage(master=self._root, data=LEFT_GIF) self._rightImage=PhotoImage(master=self._root, data=RIGHT_GIF) # Set up the options control frame b1 = Button(ctrlframe, text="Options", justify='center', border=0, relief='flat', command=self._options_toggle, padx=2, underline=0, pady=0, highlightthickness=0, activebackground=BG_COLOR, **COLOR_CONFIG) b2 = Button(ctrlframe, image=self._rightImage, relief='flat', border=0, command=self._options_toggle, activebackground=BG_COLOR, **COLOR_CONFIG) self._option_button = b2 self._options_visible = 0 b2.pack(side="right") b1.pack(side="right") oframe2 = Frame(optsframe, relief='groove', border=2, background=BG_COLOR) oframe2.pack(side="right", fill='both', expand=0, padx=4, pady=3, ipadx=4) Label(oframe2, text="Project Options", font='helvetica -16', **COLOR_CONFIG).pack(anchor='w') oframe3 = Frame(oframe2, background=BG_COLOR) oframe3.pack(fill='x') oframe4 = Frame(oframe2, background=BG_COLOR) oframe4.pack(fill='x') oframe7 = Frame(oframe2, background=BG_COLOR) oframe7.pack(fill='x') div = Frame(oframe2, background=BG_COLOR, border=1, relief='sunk') div.pack(ipady=1, fill='x', padx=4, pady=2) Label(oframe2, text="Help File", font='helvetica -16', **COLOR_CONFIG).pack(anchor='w') oframe5 = Frame(oframe2, background=BG_COLOR) oframe5.pack(fill='x') div = Frame(oframe2, background=BG_COLOR, border=1, relief='sunk') div.pack(ipady=1, fill='x', padx=4, pady=2) Label(oframe2, text="CSS Stylesheets", font='helvetica -16', **COLOR_CONFIG).pack(anchor='w') oframe6 = Frame(oframe2, background=BG_COLOR) oframe6.pack(fill='x') #==================== oframe3 ==================== # -n NAME, --name NAME row = 0 l = Label(oframe3, text="Project Name:", **COLOR_CONFIG) l.grid(row=row, column=0, sticky='e') self._name_entry = Entry(oframe3, **ENTRY_CONFIG) self._name_entry.grid(row=row, column=1, sticky='ew', columnspan=3) # -u URL, --url URL row += 1 l = Label(oframe3, text="Project URL:", **COLOR_CONFIG) l.grid(row=row, column=0, sticky='e') self._url_entry = Entry(oframe3, **ENTRY_CONFIG) self._url_entry.grid(row=row, column=1, sticky='ew', columnspan=3) # -o DIR, --output DIR row += 1 l = Label(oframe3, text="Output Directory:", **COLOR_CONFIG) l.grid(row=row, column=0, sticky='e') self._out_entry = Entry(oframe3, **ENTRY_CONFIG) self._out_entry.grid(row=row, column=1, sticky='ew', columnspan=2) self._out_browse = Button(oframe3, text="Browse", command=self._browse_out, **BUTTON_CONFIG) self._out_browse.grid(row=row, column=3, sticky='ew', padx=2) #==================== oframe4 ==================== # --no-frames row = 0 self._frames_var = IntVar(self._root) self._frames_var.set(1) l = Label(oframe4, text="Generate a frame-based table of contents", **COLOR_CONFIG) l.grid(row=row, column=1, sticky='w') cb = Checkbutton(oframe4, var=self._frames_var, **CBUTTON_CONFIG) cb.grid(row=row, column=0, sticky='e') # --no-private row += 1 self._private_var = IntVar(self._root) self._private_var.set(1) l = Label(oframe4, text="Generate documentation for private objects", **COLOR_CONFIG) l.grid(row=row, column=1, sticky='w') cb = Checkbutton(oframe4, var=self._private_var, **CBUTTON_CONFIG) cb.grid(row=row, column=0, sticky='e') # --show-imports row += 1 self._imports_var = IntVar(self._root) self._imports_var.set(0) l = Label(oframe4, text="List imported classes and functions", **COLOR_CONFIG) l.grid(row=row, column=1, sticky='w') cb = Checkbutton(oframe4, var=self._imports_var, **CBUTTON_CONFIG) cb.grid(row=row, column=0, sticky='e') #==================== oframe7 ==================== # --docformat row += 1 l = Label(oframe7, text="Default Docformat:", **COLOR_CONFIG) l.grid(row=row, column=0, sticky='e') df_var = self._docformat_var = StringVar(self._root) self._docformat_var.set('epytext') b = Radiobutton(oframe7, var=df_var, text='Epytext', value='epytext', **CBUTTON_CONFIG) b.grid(row=row, column=1, sticky='w') b = Radiobutton(oframe7, var=df_var, text='ReStructuredText', value='restructuredtext', **CBUTTON_CONFIG) b.grid(row=row, column=2, columnspan=2, sticky='w') row += 1 b = Radiobutton(oframe7, var=df_var, text='Plaintext', value='plaintext', **CBUTTON_CONFIG) b.grid(row=row, column=1, sticky='w') b = Radiobutton(oframe7, var=df_var, text='Javadoc', value='javadoc', **CBUTTON_CONFIG) b.grid(row=row, column=2, columnspan=2, sticky='w') row += 1 # Separater Frame(oframe7, background=BG_COLOR).grid(row=row, column=1, pady=3) row += 1 # --inheritance l = Label(oframe7, text="Inheritance Style:", **COLOR_CONFIG) l.grid(row=row, column=0, sticky='e') inh_var = self._inheritance_var = StringVar(self._root) self._inheritance_var.set('grouped') b = Radiobutton(oframe7, var=inh_var, text='Grouped', value='grouped', **CBUTTON_CONFIG) b.grid(row=row, column=1, sticky='w') b = Radiobutton(oframe7, var=inh_var, text='Listed', value='listed', **CBUTTON_CONFIG) b.grid(row=row, column=2, sticky='w') b = Radiobutton(oframe7, var=inh_var, text='Included', value='included', **CBUTTON_CONFIG) b.grid(row=row, column=3, sticky='w') row += 1 #==================== oframe5 ==================== # --help-file FILE row = 0 self._help_var = StringVar(self._root) self._help_var.set('default') b = Radiobutton(oframe5, var=self._help_var, text='Default', value='default', **CBUTTON_CONFIG) b.grid(row=row, column=1, sticky='w') row += 1 b = Radiobutton(oframe5, var=self._help_var, text='Select File', value='-other-', **CBUTTON_CONFIG) b.grid(row=row, column=1, sticky='w') self._help_entry = Entry(oframe5, **ENTRY_CONFIG) self._help_entry.grid(row=row, column=2, sticky='ew') self._help_browse = Button(oframe5, text='Browse', command=self._browse_help, **BUTTON_CONFIG) self._help_browse.grid(row=row, column=3, sticky='ew', padx=2) from epydoc.css import STYLESHEETS items = STYLESHEETS.items() def _css_sort(css1, css2): if css1[0] == 'default': return -1 elif css2[0] == 'default': return 1 else: return cmp(css1[0], css2[0]) items.sort(_css_sort) #==================== oframe6 ==================== # -c CSS, --css CSS # --private-css CSS row = 0 l = Label(oframe6, text="Public", **COLOR_CONFIG) l.grid(row=row, column=0, sticky='e') l = Label(oframe6, text="Private", **COLOR_CONFIG) l.grid(row=row, column=1, sticky='w') row += 1 css_var = self._css_var = StringVar(self._root) css_var.set('default') private_css_var = self._private_css_var = StringVar(self._root) private_css_var.set('default') for (name, (sheet, descr)) in items: b = Radiobutton(oframe6, var=css_var, value=name, **CBUTTON_CONFIG) b.grid(row=row, column=0, sticky='e') b = Radiobutton(oframe6, var=private_css_var, value=name, text=name, **CBUTTON_CONFIG) b.grid(row=row, column=1, sticky='w') l = Label(oframe6, text=descr, **COLOR_CONFIG) l.grid(row=row, column=2, sticky='w') row += 1 b = Radiobutton(oframe6, var=css_var, value='-other-', **CBUTTON_CONFIG) b.grid(row=row, column=0, sticky='e') b = Radiobutton(oframe6, text='Select File', var=private_css_var, value='-other-', **CBUTTON_CONFIG) b.grid(row=row, column=1, sticky='w') self._css_entry = Entry(oframe6, **ENTRY_CONFIG) self._css_entry.grid(row=row, column=2, sticky='ew') self._css_browse = Button(oframe6, text="Browse", command=self._browse_css, **BUTTON_CONFIG) self._css_browse.grid(row=row, column=3, sticky='ew', padx=2)