pax_global_header 0000666 0000000 0000000 00000000064 13017711424 0014512 g ustar 00root root 0000000 0000000 52 comment=e85dd30cc20270180c26c56fd895aff61e84f741
leather-0.3.3/ 0000775 0000000 0000000 00000000000 13017711424 0013141 5 ustar 00root root 0000000 0000000 leather-0.3.3/.gitignore 0000664 0000000 0000000 00000000155 13017711424 0015132 0 ustar 00root root 0000000 0000000 .DS_Store
*.pyc
*.swp
*.swo
.tox
*.egg-info
docs/_build
dist
.coverage
build
.proof
.ipynb_checkpoints
.idea
leather-0.3.3/.travis.yml 0000664 0000000 0000000 00000000453 13017711424 0015254 0 ustar 00root root 0000000 0000000 language: python
python:
- "2.7"
- "3.3"
- "3.4"
- "3.5"
# command to install dependencies
install:
- if [[ $TRAVIS_PYTHON_VERSION == 3* ]]; then pip install -r requirements-py3.txt; else pip install -r requirements-py2.txt; fi
# command to run tests
script: nosetests tests
sudo: false
leather-0.3.3/AUTHORS.rst 0000664 0000000 0000000 00000000223 13017711424 0015015 0 ustar 00root root 0000000 0000000 The following individuals have contributed code, documentation, or expertise to leather:
* `Christopher Groskopf `_
leather-0.3.3/CHANGELOG.rst 0000664 0000000 0000000 00000004107 13017711424 0015164 0 ustar 00root root 0000000 0000000 0.3.3 - November 30, 2016
-------------------------
* Fix examples that used invalid column data. (#81)
* lxml is no longer imported by default. (#83)
* Ordinal scales can now display data from multiple series with different values. (#76)
* Better error handling for data types supported by different shapes.
0.3.2 - November 11, 2016
-------------------------
* Fix trove classifiers.
0.3.1 - November 11, 2016
-------------------------
* Fix unicode rendering issue in Python2.7 and PyPy. (#74)
0.3.0 - November 11, 2016
-------------------------
* Add examples for many more use-cases. (#11)
* Fixed bars so that data are displayed top-down when using :meth:`.Chart.add_bars`. (#72)
* Changed default colors. (#51)
* Fixed a rare file handling bug when saving SVG files.
* Leather will now issue a warning if you attempt to render a chart with data exceeding the scale domain. (#42)
* Linear scales will now default to the domain :code:`[0, 1]` if no values are provided. (#66)
* Axis no longer takes a number of ticks as an argument. Instead pass a list of custom tick values.
* Scales :code:`tick` methods no longer take a number of ticks as an argument. (They should self-optimize.)
* Scales that cross :code:`0` will now always have a tick at :code:`0`. (#54)
* Implemented auto-ticking. (#23)
* :func:`.style_function` now takes a :class:`.Datum` instances, rather than a list of arguments.
* Renamed the :code:`Lines` class to :class:`.Line` to be more accurate.
* Implemented :class:`.CategorySeries`.
* Implemented a more elegant pattern for colorizing series.
* Refactored :class:`.Series` so :class:`.Shape` is no longer a parameter.
* Tick values can now be overridden with the :code:`tick_values` argument. (#56)
* Added methods to customize scales and axes for :class:`.Lattice` charts. (#17)
* Expanded unit tests for :class:`.Scale` subclasses.
* Zero lines now render above other tick marks. (#31)
* Fixed rendering of :class:`.Bar` and :class:`.Column` shapes for negative values. (#52)
* Refactored the :class:`.Lattice` API.
0.2.0
-----
* Initial prototype
0.1.0
-----
* Never released
leather-0.3.3/COPYING 0000664 0000000 0000000 00000002113 13017711424 0014171 0 ustar 00root root 0000000 0000000 The MIT License
Copyright (c) 2016 Christopher Groskopf and contributors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
leather-0.3.3/README.rst 0000664 0000000 0000000 00000002173 13017711424 0014633 0 ustar 00root root 0000000 0000000 .. image:: https://travis-ci.org/wireservice/leather.png
:target: https://travis-ci.org/wireservice/leather
:alt: Build status
.. image:: https://img.shields.io/pypi/dw/leather.svg
:target: https://pypi.python.org/pypi/leather
:alt: PyPI downloads
.. image:: https://img.shields.io/pypi/v/leather.svg
:target: https://pypi.python.org/pypi/leather
:alt: Version
.. image:: https://img.shields.io/pypi/l/leather.svg
:target: https://pypi.python.org/pypi/leather
:alt: License
.. image:: https://img.shields.io/pypi/pyversions/leather.svg
:target: https://pypi.python.org/pypi/leather
:alt: Support Python versions
Leather is the Python charting library for those who need charts *now* and don't care if they're perfect.
Leather isn't picky. It's rough. It gets dirty. It looks sexy just hanging on the back of a chair. Leather doesn't need your accessories. Leather is how Snake Plissken would make charts.
Get it?
Important links:
* Documentation: http://leather.rtfd.io
* Repository: https://github.com/wireservice/leather
* Issues: https://github.com/wireservice/leather/issues
leather-0.3.3/docs/ 0000775 0000000 0000000 00000000000 13017711424 0014071 5 ustar 00root root 0000000 0000000 leather-0.3.3/docs/Makefile 0000664 0000000 0000000 00000010762 13017711424 0015537 0 ustar 00root root 0000000 0000000 # Makefile for Sphinx documentation
#
# You can set these variables from the command line.
SPHINXOPTS =
SPHINXBUILD = sphinx-build
PAPER =
BUILDDIR = _build
# Internal variables.
PAPEROPT_a4 = -D latex_paper_size=a4
PAPEROPT_letter = -D latex_paper_size=letter
ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest
help:
@echo "Please use \`make ' where is one of"
@echo " html to make standalone HTML files"
@echo " dirhtml to make HTML files named index.html in directories"
@echo " singlehtml to make a single large HTML file"
@echo " pickle to make pickle files"
@echo " json to make JSON files"
@echo " htmlhelp to make HTML files and a HTML help project"
@echo " qthelp to make HTML files and a qthelp project"
@echo " devhelp to make HTML files and a Devhelp project"
@echo " epub to make an epub"
@echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
@echo " latexpdf to make LaTeX files and run them through pdflatex"
@echo " text to make text files"
@echo " man to make manual pages"
@echo " changes to make an overview of all changed/added/deprecated items"
@echo " linkcheck to check all external links for integrity"
@echo " doctest to run all doctests embedded in the documentation (if enabled)"
clean:
-rm -rf $(BUILDDIR)/*
html:
$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
@echo
@echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
dirhtml:
$(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml
@echo
@echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml."
singlehtml:
$(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml
@echo
@echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml."
pickle:
$(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle
@echo
@echo "Build finished; now you can process the pickle files."
json:
$(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json
@echo
@echo "Build finished; now you can process the JSON files."
htmlhelp:
$(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp
@echo
@echo "Build finished; now you can run HTML Help Workshop with the" \
".hhp project file in $(BUILDDIR)/htmlhelp."
qthelp:
$(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp
@echo
@echo "Build finished; now you can run "qcollectiongenerator" with the" \
".qhcp project file in $(BUILDDIR)/qthelp, like this:"
@echo "# qcollectiongenerator $(BUILDDIR)/qthelp/leather.qhcp"
@echo "To view the help file:"
@echo "# assistant -collectionFile $(BUILDDIR)/qthelp/leather.qhc"
devhelp:
$(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp
@echo
@echo "Build finished."
@echo "To view the help file:"
@echo "# mkdir -p $$HOME/.local/share/devhelp/leather"
@echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/leather"
@echo "# devhelp"
epub:
$(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub
@echo
@echo "Build finished. The epub file is in $(BUILDDIR)/epub."
latex:
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
@echo
@echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex."
@echo "Run \`make' in that directory to run these through (pdf)latex" \
"(use \`make latexpdf' here to do that automatically)."
latexpdf:
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
@echo "Running LaTeX files through pdflatex..."
make -C $(BUILDDIR)/latex all-pdf
@echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
text:
$(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text
@echo
@echo "Build finished. The text files are in $(BUILDDIR)/text."
man:
$(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man
@echo
@echo "Build finished. The manual pages are in $(BUILDDIR)/man."
changes:
$(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes
@echo
@echo "The overview file is in $(BUILDDIR)/changes."
linkcheck:
$(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck
@echo
@echo "Link check complete; look for any errors in the above output " \
"or in $(BUILDDIR)/linkcheck/output.txt."
doctest:
$(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest
@echo "Testing of doctests in the sources finished, look at the " \
"results in $(BUILDDIR)/doctest/output.txt."
leather-0.3.3/docs/about.rst 0000664 0000000 0000000 00000001065 13017711424 0015737 0 ustar 00root root 0000000 0000000 =============
About leather
=============
Why leather?
============
* A readable and user-friendly API.
* Optimized for exploratory charting.
* Produces scale-independent SVG charts.
* Completely type-agnostic. Chart your data, whatever it is.
* Designed with `iPython `_, `Jupyter `_ and `atom/hydrogen `_ in mind.
* Pure Python. No C dependencies to compile.
* MIT licensed and free for all purposes.
* Zealously `zen `_.
* Made with love.
leather-0.3.3/docs/api.rst 0000664 0000000 0000000 00000000237 13017711424 0015376 0 ustar 00root root 0000000 0000000 ===
API
===
.. toctree::
:maxdepth: 1
api/chart
api/grid
api/lattice
api/scales
api/axis
api/series
api/shapes
api/theme
leather-0.3.3/docs/api/ 0000775 0000000 0000000 00000000000 13017711424 0014642 5 ustar 00root root 0000000 0000000 leather-0.3.3/docs/api/axis.rst 0000664 0000000 0000000 00000000133 13017711424 0016335 0 ustar 00root root 0000000 0000000 ====
Axis
====
.. automodule:: leather.axis
:no-members:
.. autoclass:: leather.Axis
leather-0.3.3/docs/api/chart.rst 0000664 0000000 0000000 00000001266 13017711424 0016502 0 ustar 00root root 0000000 0000000 =====
Chart
=====
.. automodule:: leather.chart
:no-members:
.. autosummary::
:nosignatures:
leather.Chart
Adding data
-----------
.. autosummary::
:nosignatures:
leather.Chart.add_series
leather.Chart.add_bars
leather.Chart.add_columns
leather.Chart.add_dots
leather.Chart.add_line
Customizing
-----------
.. autosummary::
:nosignatures:
leather.Chart.set_x_scale
leather.Chart.set_y_scale
leather.Chart.set_x_axis
leather.Chart.set_y_axis
Rendering
---------
.. autosummary::
:nosignatures:
leather.Chart.to_svg
leather.Chart.to_svg_group
Detailed list
-------------
.. autoclass:: leather.Chart
:members:
leather-0.3.3/docs/api/grid.rst 0000664 0000000 0000000 00000000133 13017711424 0016316 0 ustar 00root root 0000000 0000000 ====
Grid
====
.. automodule:: leather.grid
:no-members:
.. autoclass:: leather.Grid
leather-0.3.3/docs/api/lattice.rst 0000664 0000000 0000000 00000000152 13017711424 0017017 0 ustar 00root root 0000000 0000000 =======
Lattice
=======
.. automodule:: leather.lattice
:no-members:
.. autoclass:: leather.Lattice
leather-0.3.3/docs/api/scales.rst 0000664 0000000 0000000 00000000304 13017711424 0016643 0 ustar 00root root 0000000 0000000 ======
Scales
======
.. automodule:: leather.scales
:no-members:
.. autoclass:: leather.Scale
.. autoclass:: leather.Linear
.. autoclass:: leather.Ordinal
.. autoclass:: leather.Temporal
leather-0.3.3/docs/api/series.rst 0000664 0000000 0000000 00000000215 13017711424 0016664 0 ustar 00root root 0000000 0000000 ======
Series
======
.. automodule:: leather.series
:no-members:
.. autoclass:: leather.Series
.. autofunction:: leather.key_function
leather-0.3.3/docs/api/shapes.rst 0000664 0000000 0000000 00000000405 13017711424 0016656 0 ustar 00root root 0000000 0000000 ======
Shapes
======
.. automodule:: leather.shapes
:no-members:
.. autoclass:: leather.Shape
.. autoclass:: leather.Bars
.. autoclass:: leather.Columns
.. autoclass:: leather.Dots
.. autoclass:: leather.Line
.. autofunction:: leather.style_function
leather-0.3.3/docs/api/theme.rst 0000664 0000000 0000000 00000000123 13017711424 0016472 0 ustar 00root root 0000000 0000000 =====
Theme
=====
.. automodule:: leather.theme
:members:
:undoc-members:
leather-0.3.3/docs/changelog.rst 0000664 0000000 0000000 00000000075 13017711424 0016554 0 ustar 00root root 0000000 0000000 =========
Changelog
=========
.. include:: ../CHANGELOG.rst
leather-0.3.3/docs/conf.py 0000664 0000000 0000000 00000001765 13017711424 0015401 0 ustar 00root root 0000000 0000000 #!/usr/bin/env python
# -*- coding: utf-8 -*-
import os
import sys
# Path munging
sys.path.insert(0, os.path.abspath('..'))
# Extensions
extensions = [
'sphinx.ext.autosummary',
'sphinx.ext.autodoc',
'sphinx.ext.intersphinx'
]
# autodoc_member_order = 'bysource'
autodoc_default_flags = ['members', 'show-inheritance']
intersphinx_mapping = {
'python': ('http://docs.python.org/3.5', None)
}
# Templates
templates_path = ['_templates']
master_doc = 'index'
# Metadata
project = u'leather'
copyright = u'2016, Christopher Groskopf'
version = '0.3.3'
release = '0.3.3'
exclude_patterns = ['_build']
pygments_style = 'sphinx'
# HTMl theming
html_theme = 'default'
on_rtd = os.environ.get('READTHEDOCS', None) == 'True'
if not on_rtd: # only import and set the theme if we're building docs locally
import sphinx_rtd_theme
html_theme = 'sphinx_rtd_theme'
html_theme_path = [sphinx_rtd_theme.get_html_theme_path()]
html_static_path = ['_static']
htmlhelp_basename = 'leatherdoc'
leather-0.3.3/docs/examples.rst 0000664 0000000 0000000 00000012275 13017711424 0016450 0 ustar 00root root 0000000 0000000 ========
Examples
========
Data series
===========
Simple pairs
------------
.. literalinclude:: ../examples/simple_pairs.py
:language: python
.. figure:: ../examples/charts/simple_pairs.svg
Table from csv.reader
---------------------
Sequence row data, such as is returned by :func:`csv.reader` can be accessed by specifying the indices of the columns containing the :code:`x` and :code:`y` values.
Note that leather does not automatically convert numerical strings, such as those stored in a CSV. If you want that you'll need to use a smarter table reader, such as `agate `_
.. literalinclude:: ../examples/csv_reader.py
:language: python
.. figure:: ../examples/charts/csv_reader.svg
Table from csv.DictReader
-------------------------
Dict row data, such as is returned by :class:`csv.DictReader` can be accessed by specifying the indices of the columns containing the :code:`x` and :code:`y` values.
See previous example for note on strings from CSVs.
.. literalinclude:: ../examples/csv_dict_reader.py
:language: python
.. figure:: ../examples/charts/csv_dict_reader.svg
Custom data
-----------
Completely custom data formats are also supported via accessor functions.
.. literalinclude:: ../examples/custom_data.py
:language: python
.. figure:: ../examples/charts/custom_data.svg
Multiple series
---------------
Multiple data series can be displayed on a single chart so long as they all use the same type of :class:`.Scale`.
.. literalinclude:: ../examples/multiple_series.py
:language: python
.. figure:: ../examples/charts/multiple_series.svg
Shapes
======
Bars
----
.. literalinclude:: ../examples/bars.py
:language: python
.. figure:: ../examples/charts/bars.svg
Columns
-------
.. literalinclude:: ../examples/columns.py
:language: python
.. figure:: ../examples/charts/columns.svg
Dots
----
.. literalinclude:: ../examples/dots.py
:language: python
.. figure:: ../examples/charts/dots.svg
Lines
-----
.. literalinclude:: ../examples/lines.py
:language: python
.. figure:: ../examples/charts/lines.svg
Mixing shapes
-------------
You can mix different shapes for different series on the same chart.
.. literalinclude:: ../examples/mixed_shapes.py
:language: python
.. figure:: ../examples/charts/mixed_shapes.svg
Scales
======
Linear
------
When using numerical data :class:`.Linear` scales are created automatically and by default. You may override the domain by adding a scale manually.
.. literalinclude:: ../examples/linear.py
:language: python
.. figure:: ../examples/charts/linear.svg
Ordinal
-------
When using text data :class:`.Ordinal` scales are created automatically and by default. It is generally not useful to override these defaults.
.. literalinclude:: ../examples/ordinal.py
:language: python
.. figure:: ../examples/charts/ordinal.svg
Temporal
--------
When using date/time data :class:`.Temporal` scales are created automatically and by default. You may override the domain by adding a scale manually.
.. literalinclude:: ../examples/temporal.py
:language: python
.. figure:: ../examples/charts/temporal.svg
Axes
====
Changing tick values
--------------------
You can change the list of ticks that are displayed using :meth:`.Chart.add_x_axis` and :meth:`.Chart.add_y_axis` methods. This will not adjust automatically adjust the scale, so it is possible to pick tick values that are not displayed.
.. literalinclude:: ../examples/ticks.py
:language: python
.. figure:: ../examples/charts/ticks.svg
Customizing tick format
-----------------------
You can provide a tick formatter method to change how ticks are displayed using the :meth:`.Chart.add_x_axis` and :meth:`.Chart.add_y_axis` methods.
.. literalinclude:: ../examples/tick_format.py
:language: python
.. figure:: ../examples/charts/tick_format.svg
Styling
=======
Changing theme values
---------------------
Chart styles are set using a dead simple :mod:`.theme` system. Leather is meant for making quick and dirty charts. It is neither expected nor recommended for user's to customize these styles.
.. literalinclude:: ../examples/theme.py
:language: python
.. figure:: ../examples/charts/theme.svg
Changing series colors
----------------------
More practically, individual default :class:`.Series` colors can be overriden when they are created.
.. literalinclude:: ../examples/series_color.py
:language: python
.. figure:: ../examples/charts/series_color.svg
Styling data based on value
---------------------------
Style attributes of individual data points can be set by value using a :func:`.style_function`.
.. literalinclude:: ../examples/colorized_dots.py
:language: python
.. figure:: ../examples/charts/colorized_dots.svg
Chart grids
===========
With mixed scales
-----------------
You can add charts of completely different types to a single graphic by using :class:`.Grid`.
.. literalinclude:: ../examples/grid.py
:language: python
.. figure:: ../examples/charts/grid.svg
With consistent scales
----------------------
A grid of charts can automatically be synchronized to a consistent view using :class:`.Lattice`.
.. literalinclude:: ../examples/lattice.py
:language: python
.. figure:: ../examples/charts/lattice.svg
leather-0.3.3/docs/index.rst 0000664 0000000 0000000 00000002105 13017711424 0015730 0 ustar 00root root 0000000 0000000 =================
leather |release|
=================
.. include:: ../README.rst
.. toctree::
:hidden:
:maxdepth: 2
about
install
examples
api
changelog
release_process
license
Show me docs
============
* `About `_ - why you should use leather
* `Install `_ - how to install for users and developers
* `Examples `_ - code + output examples of every feature of leather
* `API `_ - technical documentation for the leather API
* `Changelog `_ - a record of every change made for each release
Show me code
============
.. literalinclude:: ../examples/colorized_dots.py
:language: python
.. figure:: ../examples/charts/colorized_dots.svg
Join us
=======
* `Release process `_ - the process for maintainers to publish new releases
* `License `_ - a copy of the MIT open source license covering leather
Who we are
==========
.. include:: ../AUTHORS.rst
Indices and tables
==================
* :ref:`genindex`
* :ref:`modindex`
* :ref:`search`
leather-0.3.3/docs/install.rst 0000664 0000000 0000000 00000001757 13017711424 0016303 0 ustar 00root root 0000000 0000000 ============
Installation
============
Users
-----
To use leather install it with pip::
pip install leather
Developers
----------
If you are a developer that also wants to hack on leather, install it from git::
git clone git://github.com/wireservice/leather.git
cd leather
mkvirtualenv leather
# If running Python 3 (strongly recommended for development)
pip install -r requirements-py3.txt
# If running Python 2
pip install -r requirements-py2.txt
python setup.py develop
tox
.. note::
To run the leather tests with coverage::
nosetests --with-coverage tests
Supported platforms
-------------------
leather supports the following versions of Python:
* Python 2.7
* Python 3.3+
* `PyPy `_
It is tested primarily on OSX, but due to its minimal dependencies it should work on both Linux and Windows.
.. note::
`iPython `_ or `Jupyter `_ user? Leather works great there too.
leather-0.3.3/docs/license.rst 0000664 0000000 0000000 00000000061 13017711424 0016242 0 ustar 00root root 0000000 0000000 =======
License
=======
.. include:: ../COPYING
leather-0.3.3/docs/release_process.rst 0000664 0000000 0000000 00000002311 13017711424 0017776 0 ustar 00root root 0000000 0000000 ===============
Release process
===============
This is the release process for leather:
1. Verify all unit tests pass with fresh environments: ``tox -r``.
2. Check test coverage: ``nosetests --with-coverage tests``.
3. Ensure any new modules have been added to setup.py's ``packages`` list.
#. Ensure any new public interfaces have been added to the documentation.
#. Make sure the example scripts still work: ``./examples.sh``.
#. Ensure ``CHANGELOG.rst`` is up to date. Add the release date and summary.
#. Create a release tag: ``git tag -a x.y.z -m "x.y.z release."``
#. Push tags upstream: ``git push --tags``
#. If this is a major release, merge ``master`` into ``stable``: ``git checkout stable; git merge master; git push``
#. Upload to `PyPI `_: ``python setup.py sdist bdist_wheel upload``.
#. Flag the release to build on `RTFD `_.
#. Update the "default version" on `RTFD `_ to the latest.
#. Rev to latest version: ``docs/conf.py``, ``setup.py`` and ``CHANGELOG.rst`` need updates.
#. Commit revision: ``git commit -am "Update to version x.y.z for development."``.
leather-0.3.3/examples.sh 0000775 0000000 0000000 00000000157 13017711424 0015321 0 ustar 00root root 0000000 0000000 #!/bin/bash
export PYTHONPATH="$PYTHONPATH:$(pwd)"
for f in examples/*.py; do
echo $f
python $f
done
leather-0.3.3/examples/ 0000775 0000000 0000000 00000000000 13017711424 0014757 5 ustar 00root root 0000000 0000000 leather-0.3.3/examples/bars.py 0000664 0000000 0000000 00000000271 13017711424 0016260 0 ustar 00root root 0000000 0000000 import leather
data = [
(3, 'Hello'),
(5, 'How'),
(9, 'Are'),
(4, 'You')
]
chart = leather.Chart('Bars')
chart.add_bars(data)
chart.to_svg('examples/charts/bars.svg')
leather-0.3.3/examples/charts/ 0000775 0000000 0000000 00000000000 13017711424 0016243 5 ustar 00root root 0000000 0000000 leather-0.3.3/examples/charts/.placeholder 0000664 0000000 0000000 00000000000 13017711424 0020514 0 ustar 00root root 0000000 0000000 leather-0.3.3/examples/charts/bars.svg 0000664 0000000 0000000 00000005165 13017711424 0017722 0 ustar 00root root 0000000 0000000