diff --git a/rst2pdf/__init__.py b/rst2pdf/__init__.py index 27b093109..81a56e4d6 100644 --- a/rst2pdf/__init__.py +++ b/rst2pdf/__init__.py @@ -1,6 +1,9 @@ -__import__('pkg_resources').declare_namespace(__name__) -VERSION = (0, 9, 0, 'svn') - -def version(): - return '%s.%s.%s-%s' % VERSION +try: + import pkg_resources + try: + version = pkg_resources.get_distribution('rst2pdf').version + except pkg_resources.ResolutionError: + version = None +except ImportError: + version = None diff --git a/rst2pdf/createpdf.py b/rst2pdf/createpdf.py index a721d0759..dee55cecc 100644 --- a/rst2pdf/createpdf.py +++ b/rst2pdf/createpdf.py @@ -83,8 +83,8 @@ def __init__(self, stylesheets = [], language = 'en_US', global HAS_SPHINX self.lowerroman=['i','ii','iii','iv','v','vi','vii','viii','ix','x','xi'] self.loweralpha=string.ascii_lowercase - self.doc_title="" - self.doc_author="" + self.doc_title="" + self.doc_author="" self.decoration = {'header':None, 'footer':None, 'endnotes':[]} stylesheets = [os.path.join(abspath(dirname(__file__)),'styles','styles.json')]+stylesheets self.styles=sty.StyleSheet(stylesheets,fontPath,stylePath) @@ -273,7 +273,7 @@ def gen_pdftext(self, node, depth, replaceEnt=True): img=mf.genImage() self.to_unlink.append(img) node.pdftext=''%(img,w,h,-descent) - + elif isinstance (node, docutils.nodes.footnote_reference): # Fixme link to the right place anchors=''.join([''%i for i in node['ids'] ]) @@ -318,7 +318,7 @@ def gen_pdftext(self, node, depth, replaceEnt=True): docutils.nodes.title ]: node.pdftext=smartyPants(node.pdftext,self.smarty) - + return node.pdftext def gen_elements(self, node, depth, style=None): @@ -350,7 +350,7 @@ def gen_elements(self, node, depth, style=None): elif isinstance (node,math_node): node.elements=[Math(node.math_data)] - + ####################### ## Tables ####################### @@ -402,7 +402,7 @@ def gen_elements(self, node, depth, style=None): # Experiment: if the cell has a single element, extract its # class and use it for the cell. That way, you can have cells # with specific background colors, at least - + try: cellStyles+=self.styles.pStyleToTStyle(ell[0].style,j,i) except AttributeError: # Fix for issue 85: only do it if it has a style. @@ -563,7 +563,7 @@ def gen_elements(self, node, depth, style=None): or isinstance (node, docutils.nodes.field_list): node.elements=self.gather_elements(node,depth,style=style) - + elif isinstance (node, docutils.nodes.definition): node.elements=self.gather_elements(node,depth,style=self.styles["definition"]) @@ -604,7 +604,7 @@ def gen_elements(self, node, depth, style=None): start=int(node.parent.get('start')) else: start=1 - + if node.parent.get('bullet') or isinstance(node.parent,docutils.nodes.bullet_list): b=node.parent.get('bullet') if b=="None": @@ -654,7 +654,7 @@ def gen_elements(self, node, depth, style=None): else: # Paragraph style e.style.leftIndent=e.style.bulletIndent+indentation node.elements=el - + elif isinstance (node, docutils.nodes.transition): node.elements=[Separation()] @@ -777,7 +777,7 @@ def gen_elements(self, node, depth, style=None): except IOError,e: #No image, or no permissions log.error('Error opening "%s": %s'%(imgname,str(e))) node.elements=[] - + elif isinstance (node, docutils.nodes.figure): # The sub-elements are the figure and the caption, and't ugly if @@ -794,7 +794,7 @@ def gen_elements(self, node, depth, style=None): elif isinstance (node, docutils.nodes.sidebar): node.elements=[BoxedContainer(self.gather_elements(node,depth,style=None),self.styles['sidebar'])] - + elif isinstance (node, docutils.nodes.rubric): node.elements=[Paragraph(self.gather_pdftext(node,depth),self.styles['rubric'])] @@ -1041,7 +1041,7 @@ def beforeDrawPage(self,canv,doc): * Gutter margins on left or right as needed ''' - + self.tw=self.styles.pw-self.styles.lm-self.styles.rm-self.styles.gm # What page template to use? tname=canv.__dict__.get('templateName',self.styles.firstTemplate) @@ -1135,12 +1135,12 @@ def main(): parser = OptionParser() parser.add_option('-o', '--output',dest='output',metavar='FILE' ,help='Write the PDF to FILE') - + def_ssheets=','.join([ os.path.expanduser(p) for p in \ - config.getValue("general","stylesheets","").split(',')]) + config.getValue("general","stylesheets","").split(',')]) parser.add_option('-s', '--stylesheets',dest='style',metavar='STYLESHEETS',default=def_ssheets, help='A comma-separated list of custom stylesheets. Default="%s"'%def_ssheets) - + def_sheetpath=':'.join([ os.path.expanduser(p) for p in \ config.getValue("general","stylesheet_path","").split(':')]) parser.add_option('--stylesheet-path',dest='stylepath',metavar='FOLDER:FOLDER:...:FOLDER',default=def_sheetpath, @@ -1149,17 +1149,17 @@ def main(): def_compressed=config.getValue("general","compressed",False) parser.add_option('-c', '--compressed',dest='compressed',action="store_true",default=def_compressed, help='Create a compressed PDF. Default=%s'%def_compressed) - + parser.add_option('--print-stylesheet',dest='printssheet',action="store_true",default=False, help='Print the default stylesheet and exit') parser.add_option('--font-folder',dest='ffolder',metavar='FOLDER', help='Search this folder for fonts. (Deprecated)') - + def_fontpath=':'.join([ os.path.expanduser(p) for p in \ config.getValue("general","font_path","").split(':')]) parser.add_option('--font-path',dest='fpath',metavar='FOLDER:FOLDER:...:FOLDER',default=def_fontpath, - help='A colon-separated list of folders to search for fonts. Default="%s"'%def_fontpath) + help='A colon-separated list of folders to search for fonts. Default="%s"'%def_fontpath) def_baseurl=None parser.add_option('--baseurl',dest='baseurl',metavar='URL',default=def_baseurl, @@ -1172,11 +1172,11 @@ def main(): def_smartquotes=config.getValue("general","smartquotes","0") parser.add_option("--smart-quotes",metavar="VALUE",default=def_smartquotes,dest="smarty", help='Try to convert ASCII quotes, ellipsis and dashes to the typographically correct equivalent. For details, read the man page or the manual. Default="%s"'%def_smartquotes) - + def_fit=config.getValue("general","fit_mode","shrink") parser.add_option('--fit-literal-mode',metavar='MODE',default=def_fit,dest='fitMode', help='What todo when a literal is too wide. One of error,overflow,shrink,truncate. Default="%s"'%def_fit) - + def_break=config.getValue("general","break_level",0) parser.add_option('-b','--break-level',dest='breaklevel',metavar='LEVEL',default=def_break, help='Maximum section level that starts in a new page. Default: %d'%def_break) @@ -1195,7 +1195,8 @@ def main(): (options,args)=parser.parse_args() if options.version: - print "0.9-r%s"%("$LastChangedRevision$".split(" ")[1]) + from rst2pdf import version + print version sys.exit(0) if options.quiet: @@ -1212,7 +1213,7 @@ def main(): sys.exit(0) filename = False - + if len(args) == 0 or args[0]=='-': infile = sys.stdin elif len(args) > 1: @@ -1221,7 +1222,7 @@ def main(): else: filename = args[0] infile=open(filename) - + if options.output: outfile=options.output if outfile =='-': @@ -1240,13 +1241,13 @@ def main(): options.compressed = False #we must stay quiet log.setLevel(logging.CRITICAL) - #/reportlab/pdfbase/pdfdoc.py output can be a callable (stringio, stdout ...) + #/reportlab/pdfbase/pdfdoc.py output can be a callable (stringio, stdout ...) if options.style: ssheet=options.style.split(',') else: ssheet=[] - + fpath=[] if options.fpath: fpath=options.fpath.split(':') diff --git a/setup.cfg b/setup.cfg index 01bb95449..ee7b0e093 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,3 +1,3 @@ [egg_info] -tag_build = dev +tag_build = .dev tag_svn_revision = true diff --git a/setup.py b/setup.py index 30435f415..d3e5ed0d4 100644 --- a/setup.py +++ b/setup.py @@ -5,6 +5,8 @@ import os from setuptools import setup, find_packages +version = '0.9' + def read(*rnames): return open(os.path.join(os.path.dirname(__file__), *rnames)).read() @@ -16,16 +18,16 @@ def read(*rnames): + '\n' + read('README.txt') + '\n' + - 'Contributors\n' + 'Contributors\n' '************\n' - + + '\n' + read('Contributors.txt') + '\n' + 'Change history\n' '**************\n' - + '\n' + + + '\n' + read('CHANGES.txt') + '\n' + 'Download\n' @@ -40,18 +42,17 @@ def read(*rnames): 'Pygments', 'simplejson' ] - + tests_require = ['pyPdf',] hyphenation_require = ['wordaxe',] svgsupport_require = ['uniconvertor',] sphinx_require = ['sphinx',] setup( - name = "rst2pdf", - version = "0.9", + name="rst2pdf", + version=version, packages=find_packages(exclude=['ez_setup', 'examples', 'tests']), package_data = {'rst2pdf': ['*.json']}, - namespace_packages=['rst2pdf'], include_package_data=True, # place to find an egg distrib of reportlab 2.1 dependency_links = [ @@ -63,8 +64,7 @@ def read(*rnames): "http://dist.repoze.org", # uniconvertor "http://sk1project.org/downloads/uniconvertor/v1.1.3/uniconvertor-1.1.3.tar.gz", - - ], + ], install_requires = install_requires, tests_require=tests_require, extras_require=dict(tests = tests_require, @@ -85,7 +85,7 @@ def read(*rnames): 'Topic :: Software Development :: Libraries :: Python Modules', 'Topic :: Text Processing', 'Topic :: Utilities', - ], + ], author = "Roberto Alsina", author_email = "ralsina at netmanagers dot com dot ar", description = "Convert restructured text to PDF via reportlab.",