Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Package this thing up

  • Loading branch information...
commit eed89daf8738dc0b491512c6d04c95b52502a104 1 parent fd03398
Patrick Altman paltman authored
2  MANIFEST.in
View
@@ -1,2 +1,2 @@
include README.rst
-recursive-include metron/templates/metron *.html
+recursive-include metron/templates *.html
130 docs/Makefile
View
@@ -0,0 +1,130 @@
+# 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 <target>' where <target> 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/metron.qhcp"
+ @echo "To view the help file:"
+ @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/metron.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/metron"
+ @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/metron"
+ @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."
9 docs/changelog.rst
View
@@ -0,0 +1,9 @@
+.. _changelog:
+
+ChangeLog
+=========
+
+0.1
+---
+
+- initial release
26 docs/conf.py
View
@@ -0,0 +1,26 @@
+import sys, os
+
+extensions = []
+templates_path = []
+source_suffix = '.rst'
+master_doc = 'index'
+project = u'metron'
+copyright = u'2011, Eldarion'
+exclude_patterns = ['_build']
+pygments_style = 'sphinx'
+html_theme = 'default'
+htmlhelp_basename = 'metrondoc'
+latex_documents = [
+ ('index', 'metron.tex', u'metron Documentation',
+ u'Eldarion', 'manual'),
+]
+man_pages = [
+ ('index', 'metron', u'metron Documentation',
+ [u'Eldarion'], 1)
+]
+
+sys.path.insert(0, os.pardir)
+m = __import__(project)
+
+version = m.__version__
+release = version
23 docs/index.rst
View
@@ -0,0 +1,23 @@
+=+====
+metron
+======
+
+Provides a site with analytics and metrics integration.
+
+Development
+-----------
+
+The source repository can be found at https://github.com/eldarion/metron
+
+
+Contents
+========
+
+.. toctree::
+ :maxdepth: 1
+
+ installation
+ usage
+ settings
+ templates
+ changelog
18 docs/installation.rst
View
@@ -0,0 +1,18 @@
+.. _installation:
+
+Installation
+============
+
+* To install metron::
+
+ pip install metron
+
+* Add ``metron`` to your ``INSTALLED_APPS`` setting::
+
+ INSTALLED_APPS = (
+ # other apps
+ "metron",
+ )
+
+* See the list of :ref:`settings` to modify metron's
+ default behavior and make adjustments for your website.
29 docs/settings.rst
View
@@ -0,0 +1,29 @@
+.. _settings:
+
+Settings
+========
+
+.. _metron_settings:
+
+METRON_SETTINGS
+^^^^^^^^^^^^^^^
+
+This is a data structure defining your analytics and metrics settings
+indexed by `SITE_ID`. Example::
+
+ ANALYTICS_SETTINGS = {
+ "mixpanel": {
+ "1": "", # production
+ "2": "", # beta
+ },
+ "google": {
+ "1": "", # production
+ "2": "", # beta
+ },
+ "gauges": {
+ "1": "",
+ }
+ }
+
+Where the values you would supply for each service + `SITE_ID` node
+is the identifier code for that service.
28 docs/templates.rst
View
@@ -0,0 +1,28 @@
+.. _templates:
+
+Templates
+=========
+
+`metron` ships with templates for three services out of the box, gaug.es, Google
+Analytics and Mixpanel. This can be overridden in your project for customizations
+and likewise if there are other services you wish to use, just create a similar
+template under the `metron` folder in your templates directory. The format is
+`"_%s.html" % slug` where the slug is what index the `METRON_SETTINGS` dict with.
+
+
+_guages.html
+------------
+
+This snippet is used for gaug.es
+
+
+_google.html
+------------
+
+This snippet is used for Google Analytics
+
+
+_mixpanel.html
+--------------
+
+This snippet is used for Mixpanel
13 docs/usage.rst
View
@@ -0,0 +1,13 @@
+.. _usage:
+
+Usage
+=====
+
+Integrating `metron` quite simple::
+
+ {% load metron_tags %}
+
+and then toward the bottom of the body where you put your scripts::
+
+ {% analytics %}
+
2  metron/__init__.py
View
@@ -0,0 +1,2 @@
+# following PEP 386
+__version__ = "0.1.dev1"
145 setup.py
View
@@ -1,28 +1,129 @@
-from distutils.core import setup
+import codecs
+import os
+import sys
-# see requirements.txt for dependencies
+from distutils.util import convert_path
+from fnmatch import fnmatchcase
+from setuptools import setup, find_packages
+def read(fname):
+ return codecs.open(os.path.join(os.path.dirname(__file__), fname)).read()
+
+
+# Provided as an attribute, so you can append to these instead
+# of replicating them:
+standard_exclude = ["*.py", "*.pyc", "*$py.class", "*~", ".*", "*.bak"]
+standard_exclude_directories = [
+ ".*", "CVS", "_darcs", "./build", "./dist", "EGG-INFO", "*.egg-info"
+]
+
+
+# (c) 2005 Ian Bicking and contributors; written for Paste (http://pythonpaste.org)
+# Licensed under the MIT license: http://www.opensource.org/licenses/mit-license.php
+# Note: you may want to copy this into your setup.py file verbatim, as
+# you can't import this from another package, when you don't know if
+# that package is installed yet.
+def find_package_data(
+ where=".",
+ package="",
+ exclude=standard_exclude,
+ exclude_directories=standard_exclude_directories,
+ only_in_packages=True,
+ show_ignored=False):
+ """
+ Return a dictionary suitable for use in ``package_data``
+ in a distutils ``setup.py`` file.
+
+ The dictionary looks like::
+
+ {"package": [files]}
+
+ Where ``files`` is a list of all the files in that package that
+ don"t match anything in ``exclude``.
+
+ If ``only_in_packages`` is true, then top-level directories that
+ are not packages won"t be included (but directories under packages
+ will).
+
+ Directories matching any pattern in ``exclude_directories`` will
+ be ignored; by default directories with leading ``.``, ``CVS``,
+ and ``_darcs`` will be ignored.
+
+ If ``show_ignored`` is true, then all the files that aren"t
+ included in package data are shown on stderr (for debugging
+ purposes).
+
+ Note patterns use wildcards, or can be exact paths (including
+ leading ``./``), and all searching is case-insensitive.
+ """
+ out = {}
+ stack = [(convert_path(where), "", package, only_in_packages)]
+ while stack:
+ where, prefix, package, only_in_packages = stack.pop(0)
+ for name in os.listdir(where):
+ fn = os.path.join(where, name)
+ if os.path.isdir(fn):
+ bad_name = False
+ for pattern in exclude_directories:
+ if (fnmatchcase(name, pattern)
+ or fn.lower() == pattern.lower()):
+ bad_name = True
+ if show_ignored:
+ print >> sys.stderr, (
+ "Directory %s ignored by pattern %s"
+ % (fn, pattern))
+ break
+ if bad_name:
+ continue
+ if (os.path.isfile(os.path.join(fn, "__init__.py"))
+ and not prefix):
+ if not package:
+ new_package = name
+ else:
+ new_package = package + "." + name
+ stack.append((fn, "", new_package, False))
+ else:
+ stack.append((fn, prefix + name + "/", package, only_in_packages))
+ elif package or not only_in_packages:
+ # is a file
+ bad_name = False
+ for pattern in exclude:
+ if (fnmatchcase(name, pattern)
+ or fn.lower() == pattern.lower()):
+ bad_name = True
+ if show_ignored:
+ print >> sys.stderr, (
+ "File %s ignored by pattern %s"
+ % (fn, pattern))
+ break
+ if bad_name:
+ continue
+ out.setdefault(package, []).append(prefix+name)
+ return out
+
+
+PACKAGE = "metron"
+NAME = "metron"
+DESCRIPTION = "analytics and metrics integration for Django"
+AUTHOR = "Eldarion"
+AUTHOR_EMAIL = "developers@eldarion.com"
+URL = "http://github.com/eldarion/metron"
+VERSION = __import__(PACKAGE).__version__
+
setup(
- name = "metron",
- version = "0.1.dev1",
- author = "Eldarion",
- author_email = "development@eldarion.com",
- description = "an app for managing analytics service integration",
- long_description = open("README.rst").read(),
- license = "BSD",
- url = "http://github.com/eldarion/metron",
- packages = [
- "metron",
- "metron.templatetags",
- ],
- package_data = {
- "biblion": [
- "templates/metron/*.html",
- ]
- },
- classifiers = [
+ name=NAME,
+ version=VERSION,
+ description=DESCRIPTION,
+ long_description=read("README.rst"),
+ author=AUTHOR,
+ author_email=AUTHOR_EMAIL,
+ license="BSD",
+ url=URL,
+ packages=find_packages(exclude=["tests.*", "tests"]),
+ package_data=find_package_data(PACKAGE, only_in_packages=False),
+ classifiers=[
"Development Status :: 3 - Alpha",
"Environment :: Web Environment",
"Intended Audience :: Developers",
@@ -30,5 +131,7 @@
"Operating System :: OS Independent",
"Programming Language :: Python",
"Framework :: Django",
- ]
+ ],
+ zip_safe=False
)
+
Please sign in to comment.
Something went wrong with that request. Please try again.