diff --git a/pygal/__init__.py b/pygal/__init__.py
index f557fda..00f475c 100644
--- a/pygal/__init__.py
+++ b/pygal/__init__.py
@@ -16,9 +16,7 @@
#
# You should have received a copy of the GNU Lesser General Public License
# along with pygal. If not, see .
-__version__ = '0.9.17'
-from collections import namedtuple
-
+__version__ = '0.9.18'
from pygal.graph.bar import Bar
from pygal.graph.horizontal import HorizontalBar
from pygal.graph.stackedbar import StackedBar
@@ -29,3 +27,8 @@ from pygal.graph.xy import XY
from pygal.graph.pie import Pie
from pygal.graph.radar import Radar
from pygal.config import Config
+
+"""List of all chart types"""
+CHARTS = [
+ Bar, HorizontalBar, StackedBar, HorizontalStackedBar,
+ Line, StackedLine, XY, Pie, Radar]
diff --git a/pygal/config.py b/pygal/config.py
index 1112ee3..159f9ca 100644
--- a/pygal/config.py
+++ b/pygal/config.py
@@ -27,8 +27,10 @@ class Config(object):
"""Class holding config values"""
_horizontal = False
- # Graph width and height
- width, height = 800, 600
+ # Graph width
+ width = 800
+ # Graph height
+ height = 600
# Display values in human readable format (ie: 12.4M)
human_readable = False
# Display values in logarithmic scale
diff --git a/pygal_gen.py b/pygal_gen.py
new file mode 100755
index 0000000..d96429b
--- /dev/null
+++ b/pygal_gen.py
@@ -0,0 +1,65 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+# This file is part of pygal
+#
+# A python svg graph plotting library
+# Copyright © 2012 Kozea
+#
+# This library is free software: you can redistribute it and/or modify it under
+# the terms of the GNU Lesser General Public License as published by the Free
+# Software Foundation, either version 3 of the License, or (at your option) any
+# later version.
+#
+# This library is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+# FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
+# details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with pygal. If not, see .
+import argparse
+import pygal
+
+parser = argparse.ArgumentParser(
+ description='Generate pygal chart in command line',
+ prog='pygal_gen',
+ version=pygal.__version__)
+
+parser.add_argument('-t', '--type', dest='type', default='Line',
+ choices=map(lambda x: x.__name__, pygal.CHARTS),
+ help='Kind of chart to generate')
+
+parser.add_argument('-o', '--output', dest='filename', default='pygal_out.svg',
+ help='Filename to write the svg to')
+
+parser.add_argument('-s', '--serie', dest='series', nargs='+', action='append',
+ help='Add a serie in the form (title val1 val2...)')
+
+for key, val in pygal.config.Config.__dict__.items():
+ if not key.startswith('_') and not hasattr(val, '__call__'):
+ opt_name = key
+ opts = {'type': str}
+ if val != None:
+ opts['type'] = type(val)
+ elif 'labels' in key:
+ opts['nargs'] = '+'
+ if opts['type'] == bool:
+ del opts['type']
+ opts['action'] = 'store_true' if not val else 'store_false'
+ if val:
+ opt_name = 'no-' + opt_name
+ if key == 'interpolate':
+ opts['choices'] = [
+ 'linear', 'nearest', 'zero', 'slinear', 'quadratic',
+ 'cubic', 'krogh', 'barycentric', 'univariate']
+ parser.add_argument(
+ '--%s' % opt_name, dest=key, default=val, **opts)
+
+config = parser.parse_args()
+
+chart = getattr(pygal, config.type)(**vars(config))
+
+for serie in config.series:
+ chart.add(serie[0], map(float, serie[1:]))
+
+chart.render_to_file(config.filename)
diff --git a/setup.py b/setup.py
index c9ea035..9fb9059 100644
--- a/setup.py
+++ b/setup.py
@@ -21,14 +21,16 @@ from setuptools import setup, find_packages
setup(
name="pygal",
- version='0.9.17',
+ version='0.9.18',
description="A python svg graph plotting library",
author="Kozea",
+ url="http://pygal.org/",
author_email="florian.mounier@kozea.fr",
license="GNU LGPL v3",
platforms="Any",
packages=find_packages(),
provides=['pygal'],
+ scripts=["pygal_gen.py"],
keywords=["svg", "graph", "diagram", "plot", "histogram", "kiviat"],
tests_require=["pytest", "pyquery", "flask"],
package_data={'pygal': ['css/*', 'js/*']},