]> git.parisson.com Git - timeside.git/commitdiff
update README and setup server
authorGuillaume Pellerin <yomguy@parisson.com>
Thu, 15 May 2014 10:16:14 +0000 (12:16 +0200)
committerGuillaume Pellerin <yomguy@parisson.com>
Thu, 15 May 2014 10:16:14 +0000 (12:16 +0200)
README.rst
doc/source/copyright.rst
doc/source/dev.rst
doc/source/doc.rst
doc/source/install.rst
doc/source/intro.rst
doc/source/news.rst
doc/source/ui.rst
requirements.txt
setup.py
timeside/grapher/render_analyzers.py

index f9844967818474ae619dbf30b2dba2a2a95f7480..84b93842407e65cea5594b96619d0b9a301440e8 100644 (file)
@@ -50,17 +50,6 @@ The streaming architecture of TimeSide relies on 2 main parts: a processing engi
 Processors
 ==========
 
-IEncoder
----------
-
-  * VorbisEncoder [gst_vorbis_enc]
-  * WavEncoder [gst_wav_enc]
-  * Mp3Encoder [gst_mp3_enc]
-  * FlacEncoder [gst_flac_enc]
-  * AacEncoder [gst_aac_enc]
-  * WebMEncoder [gst_webm_enc]
-  * AudioSink [gst_audio_sink_enc]
-
 IDecoder
 ---------
 
@@ -68,21 +57,6 @@ IDecoder
   * ArrayDecoder [array_dec]
   * LiveDecoder [gst_live_dec]
 
-IGrapher
----------
-
-  *  Waveform [waveform_simple]
-  *  WaveformCentroid [waveform_centroid]
-  *  WaveformTransparent [waveform_transparent]
-  *  WaveformContourBlack [waveform_contour_black]
-  *  WaveformContourWhite [waveform_contour_white]
-  *  SpectrogramLog [spectrogram_log]
-  *  SpectrogramLinear [spectrogram_lin]
-  *  Displayaubio_pitch.pitch [grapher_aubio_pitch]
-  *  Displayodf [grapher_odf]
-  *  Displaywaveform_analyzer [grapher_waveform]
-  *  Displayirit_speech_4hz.segments [grapher_irit_speech_4hz_segments]
-
 IAnalyzer
 ---------
 
@@ -106,9 +80,47 @@ IValueAnalyzer
   * Level [level]
   * MeanDCShift [mean_dc_shift]
 
+IGrapher
+---------
+
+  *  Waveform [waveform_simple]
+  *  WaveformCentroid [waveform_centroid]
+  *  WaveformTransparent [waveform_transparent]
+  *  WaveformContourBlack [waveform_contour_black]
+  *  WaveformContourWhite [waveform_contour_white]
+  *  SpectrogramLog [spectrogram_log]
+  *  SpectrogramLinear [spectrogram_lin]
+  *  Display.aubio_pitch.pitch [grapher_aubio_pitch]
+  *  Display.odf [grapher_odf]
+  *  Display.waveform_analyzer [grapher_waveform]
+  *  Display.irit_speech_4hz.segments [grapher_irit_speech_4hz_segments]
+
+IEncoder
+---------
+
+  * VorbisEncoder [gst_vorbis_enc]
+  * WavEncoder [gst_wav_enc]
+  * Mp3Encoder [gst_mp3_enc]
+  * FlacEncoder [gst_flac_enc]
+  * AacEncoder [gst_aac_enc]
+  * WebMEncoder [gst_webm_enc]
+  * OpusEncoder [gst_opus_enc]
+  * AudioSink [gst_audio_sink_enc]
+
 News
 =====
 
+0.5.5
+
+ * All processor folder (analyzer, grapher, etc...) are now a real plugin repositoris : you can now drop processors in them and play !
+ * Encoder : add an Opus encoder
+ * Experimental : add a django web server with a REST API (see Interface : web server)
+ * AubioPitch: prevent NaN in result by converting them to zero
+ * Yaafe analyzer: simplify adaptation of process frames from TimeSide to Yaafe
+ * LimsiSad: add a default value for parameter sad_model
+ * Full Travis integration
+ * Fix various NaN and Inf and PEP8 issues also many PyFlake warnings
+
 0.5.4
 
  * Encoder : transcoded streams where broken. Now fixed with some smart thread controls.
@@ -236,13 +248,14 @@ News
  * duration analysis goes to decoder.duration property
  * bugfixes
 
+
 Dive in
 ========
 
 Define some processors::
 
  >>> import timeside
- >>> decoder  =  timeside.decoder.file.FileDecoder('sweep.wav')
+ >>> decoder  =  timeside.decoder.FileDecoder('sweep.wav')
  >>> grapher  =  timeside.grapher.Waveform()
  >>> analyzer =  timeside.analyzer.Level()
  >>> encoder  =  timeside.encoder.VorbisEncoder('sweep.ogg')
@@ -256,6 +269,7 @@ get the results::
  >>> grapher.render(output='waveform.png')
  >>> print 'Level:', analyzer.results
 
+
 API / Documentation
 ====================
 
@@ -275,9 +289,9 @@ Install
 The TimeSide engine is intended to work on all Unix / Linux platforms.
 MacOS X and Windows versions will soon be explorated.
 
-TimeSide needs some other python modules to run. The following methods explain how to install all dependencies on various Linux based systems.
+TimeSide needs some other python modules and other compiled librairies like GStreamer, Aubio and Yaafe to run. So, before installing the module, you'll need to install dependencies before.
 
-On Debian, Ubuntu, etc:
+For Debian based distributions, we provide a safe repository to install all in one line:
 
 .. code-block:: bash
 
@@ -285,30 +299,25 @@ On Debian, Ubuntu, etc:
  $ sudo apt-get update
  $ sudo apt-get install python-timeside
 
-On Fedora and Red-Hat:
-
-.. code-block:: bash
-
- $ sudo yum install gcc python python-devel gstreamer pygobject2 \
-                   gstreamer-python gstreamer gstreamer-plugins-bad-free \
-                   gstreamer-plugins-bad-free-extras \
-                   gstreamer-plugins-base gstreamer-plugins-good
-
+On other Linux platforms, you can also install all dependencies (see list bellow to find your equivalent package in your distribution) and then use pip::
  $ sudo pip install timeside
 
-On other Linux platforms, you can also install all dependencies and then use pip::
+The install on MacOS X platform is pretty hard at the moment because all dependencies are not in brew. But, it will be fully documented in the next release (0.5.6).
 
- $ sudo pip install timeside
 
 Dependencies
 ============
 
-Note that TimeSide >=0.5 needs Python >=2.7 and is incompatible with previous versions of Python.
+Inside Debian::
 
 python (>=2.7), python-setuptools, python-gst0.10, gstreamer0.10-plugins-good, gstreamer0.10-gnonlin,
 gstreamer0.10-plugins-ugly, python-aubio, python-yaafe, python-simplejson, python-yaml, python-h5py,
-python-scipy, python-matplotlib, python-matplotlib
+python-scipy, python-matplotlib, python-matplotlib, python-django, python-django-south 
+
+Outside Debian::
 
+djangorestframework, django-extensions
 
 Shell Interface
 ================
@@ -345,8 +354,8 @@ Of course, TimeSide can be used in any python environment. But, a shell script i
   -o <outputdir>, --ouput-directory=<outputdir>
                         output directory
 
-Web Interface (the player)
-==========================
+Web Interface
+==============
 
 TimeSide comes with a smart and pure **HTML5** audio player.
 
@@ -368,12 +377,28 @@ Development documentation:
     * https://github.com/yomguy/TimeSide/wiki/Ui-Guide
 
 TODO list:
-    * embed a light http server to get commands through something like JSON RPC
     * zoom
     * layers
 
-The player should work on any modern HTML5 enabled browser.
-Flash is needed for MP3 if the browser doesn't support it.
+
+Web server interface
+====================
+
+An experimental web server based on Django has been added to the package from version 0.5.4. The goal is to provide a full REST API to TimeSide to enable new kinds of audio processing web services.
+
+A sandbox is provide in timeside/server/sandbox and you can initialize it and test it like this:
+
+.. code-block:: bash
+
+  $ cd timeside/server/sandbox
+  $ ./manage.py syncdb
+  $ ./manage.py migrate
+  $ ./manage.py runserver
+
+and browse http://localhost:8000/api/
+
+This server is not currently connected to the player but this will be done soon so that TimeSide can provide a completely autonomous service on the web (the server side as well as the server side).
+
 
 Development
 ===========
@@ -413,6 +438,8 @@ Related projects
     * `Sound archives <http://archives.crem-cnrs.fr/>`_ of the CNRS, CREM and the "Musée de l'Homme" in Paris, France.
     * The `DIADEMS project <http://www.irit.fr/recherches/SAMOVA/DIADEMS/en/welcome/>`_ sponsored by the ANR.
 
+
+
 Copyrights
 ==========
 
@@ -421,8 +448,10 @@ Copyrights
 * Copyright (c) 2010, 2014 Paul Brossier
 * Copyright (c) 2013, 2014 Thomas Fillon
 * Copyright (c) 2013, 2014 Maxime Lecoz
+* Copyright (c) 2013, 2014 David Doukhan
 * Copyright (c) 2006, 2010 Samalyse SARL
 
+
 License
 =======
 
@@ -437,3 +466,4 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 GNU General Public License for more details.
 
 See LICENSE for more details.
+
index 37f96a7681f90efebcf270749b703334dc63d6fd..80d9145871a72d85bc2f5546267f4b0d99cb6a5f 100644 (file)
@@ -1,10 +1,12 @@
 Copyrights
 ==========
 
-* Copyright (c) 2006, 2013 Parisson SARL
-* Copyright (c) 2006, 2013 Guillaume Pellerin
-* Copyright (c) 2010, 2013 Paul Brossier
-* Copyright (c) 2013 Thomas Fillon
+* Copyright (c) 2006, 2014 Parisson SARL
+* Copyright (c) 2006, 2014 Guillaume Pellerin
+* Copyright (c) 2010, 2014 Paul Brossier
+* Copyright (c) 2013, 2014 Thomas Fillon
+* Copyright (c) 2013, 2014 Maxime Lecoz
+* Copyright (c) 2013, 2014 David Doukhan
 * Copyright (c) 2006, 2010 Samalyse SARL
 
 
@@ -22,3 +24,4 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 GNU General Public License for more details.
 
 See LICENSE for more details.
+
index 424d09ce4444f02dd3324cb4f857f4d99962c279..ab6cb20bd4bcacfa6955974d73818d968f294e32 100644 (file)
@@ -14,6 +14,6 @@ For versions >=0.5 on Debian Stable 7.0 Wheezy:
  $ git clone https://github.com/yomguy/TimeSide.git
  $ cd TimeSide
  $ git checkout dev
- $ export PYTHONPATH=$PYTHONPATH:`pwd`
+ $ sudo pip install -e .
  $ python tests/run_all_tests
 
index 741bb50e8c6b4e4ee590bd45f40207f8831f3313..fbccb615a7ace43c6b1b03f67834812a8bd8dee4 100644 (file)
@@ -4,4 +4,10 @@ API / Documentation
 * General : http://files.parisson.com/timeside/doc/
 * Tutorial : http://files.parisson.com/timeside/doc/tutorial/index.html
 * API : http://files.parisson.com/timeside/doc/api/index.html
+* Player / UI : https://github.com/yomguy/TimeSide/wiki/Ui-Guide (see also "Web Interface")
+* Examples:
+
+  - http://nbviewer.ipython.org/github/thomasfillon/AES53-timeside-demos/tree/master/
+  - https://github.com/yomguy/TimeSide/blob/master/tests/sandbox/example_CMMR.py
+  - https://github.com/yomguy/TimeSide/blob/master/tests/sandbox/exempleCMMR_vamp.py
 
index 7f69ed35b4e74634ed0bb4ebba068da4e3dd1e6a..09daef6ad278d60d3e04ce5a389d427f8d07ce98 100644 (file)
@@ -1,9 +1,12 @@
 Install
 =======
 
-TimeSide needs some other python modules to run. The following methods explain how to install all dependencies on various Linux based systems.
+The TimeSide engine is intended to work on all Unix / Linux platforms.
+MacOS X and Windows versions will soon be explorated.
 
-On Debian, Ubuntu, etc:
+TimeSide needs some other python modules and other compiled librairies like GStreamer, Aubio and Yaafe to run. So, before installing the module, you'll need to install dependencies before.
+
+For Debian based distributions, we provide a safe repository to install all in one line:
 
 .. code-block:: bash
 
@@ -11,35 +14,23 @@ On Debian, Ubuntu, etc:
  $ sudo apt-get update
  $ sudo apt-get install python-timeside
 
-On Fedora and Red-Hat:
-
-.. code-block:: bash
-
- $ sudo yum install gcc python python-devel gstreamer pygobject2 \
-                   gstreamer-python gstreamer gstreamer-plugins-bad-free \
-                   gstreamer-plugins-bad-free-extras \
-                   gstreamer-plugins-base gstreamer-plugins-good
-
+On other Linux platforms, you can also install all dependencies (see list bellow to find your equivalent package in your distribution) and then use pip::
  $ sudo pip install timeside
 
-Otherwise, you can also install all dependencies and then use pip::
-
- $ sudo pip install timeside
+The install on MacOS X platform is pretty hard at the moment because all dependencies are not in brew. But, it will be fully documented in the next release (0.5.6).
 
 
 Dependencies
 ============
 
+Inside Debian::
+
 python (>=2.7), python-setuptools, python-gst0.10, gstreamer0.10-plugins-good, gstreamer0.10-gnonlin,
 gstreamer0.10-plugins-ugly, python-aubio, python-yaafe, python-simplejson, python-yaml, python-h5py,
-python-scipy, python-matplotlib
+python-scipy, python-matplotlib, python-matplotlib, python-django, python-django-south 
 
+Outside Debian::
 
-Platforms
-==========
-
-The TimeSide engine is intended to work on all Unix / Linux platforms.
-MacOS X and Windows versions will soon be explorated.
-The player should work on any modern HTML5 enabled browser.
-Flash is needed for MP3 if the browser doesn't support it.
+djangorestframework, django-extensions
 
index 686924b13a5c2ea11d0637f68eb2fdefd85fcab6..caf156bdf9f743d78c812fc2eac1014359974c49 100644 (file)
@@ -2,24 +2,38 @@
 TimeSide : open web audio processing framework
 ==============================================
 
-.. image:: https://secure.travis-ci.org/yomguy/TimeSide.png?branch=master
+TimeSide is a set of python components enabling low and high level audio analysis, imaging, transcoding and streaming. Its high-level API is designed to enable complex processing on large datasets of audio and video assets of any format. Its simple plug-in  architecture can be adapted to various use cases.
+
+TimeSide also includes a smart interactive HTML5 player which provides various streaming playback functions, formats selectors, fancy audio visualizations, segmentation and semantic labelling synchronized with audio events. It is embeddable in any web application.
+
+
+Build status
+============
+- Branch **master** : |travis_master| |coveralls_master|
+- Branch **dev** : |travis_dev| |coveralls_dev|
+
+.. |travis_master| image:: https://secure.travis-ci.org/yomguy/TimeSide.png?branch=master
     :target: https://travis-ci.org/yomguy/TimeSide/
 
-TimeSide is a set of python components enabling audio analysis, imaging, transcoding and streaming. Its high-level API is designed to enable complex processing on big media data corpus. Its simple plugin architecture can be adapted to various usecases.
+.. |travis_dev| image:: https://secure.travis-ci.org/yomguy/TimeSide.png?branch=dev
+    :target: https://travis-ci.org/yomguy/TimeSide/
 
-It also includes a smart HTML5 interactive user interface embeddable in any web application to provide various media format playback, on the fly transcoding and streaming, fancy waveforms and spectrograms, various low and high level audio analyzers, semantic labelling and segmentation.
+.. |coveralls_master| image:: https://coveralls.io/repos/yomguy/TimeSide/badge.png?branch=master
+  :target: https://coveralls.io/r/yomguy/TimeSide?branch=master
 
+.. |coveralls_dev| image:: https://coveralls.io/repos/yomguy/TimeSide/badge.png?branch=dev
+  :target: https://coveralls.io/r/yomguy/TimeSide?branch=dev
 
-Goals
-=====
 
-We just **need** a python library to:
+
+Goals
+======
 
 * **Do** asynchronous and fast audio processing with Python,
-* **Decode** audio frames from ANY format into numpy arrays,
+* **Decode** audio frames from **any** audio or video media format into numpy arrays,
 * **Analyze** audio content with some state-of-the-art audio feature extraction libraries,
 * **Organize**, serialize and save analysis metadata through various formats,
-* **Draw** various fancy waveforms, spectrograms and other cool graphers,
+* **Draw** various fancy waveforms, spectrograms and other cool visualizers,
 * **Transcode** audio data in various media formats and stream them through web apps,
 * **Playback** and **interact** **on demand** through a smart high-level HTML5 extensible player,
 * **Index**, **tag** and **organize semantic metadata** (see `Telemeta <http://telemeta.org>`_ which embed TimeSide).
@@ -28,56 +42,68 @@ We just **need** a python library to:
 Architecture
 ============
 
-The streaming architecture of TimeSide relies on 2 main parts: a process engine including various plugin processors written in pure Python and a user interface providing some web based visualization and playback tools in pure HTML5.
+The streaming architecture of TimeSide relies on 2 main parts: a processing engine including various plugin processors written in pure Python and a user interface providing some web based visualization and playback tools in pure HTML5.
 
-.. image:: https://raw.github.com/yomguy/TimeSide/master/doc/slides/img/timeside_schema.png
+.. image:: http://vcs.parisson.com/gitweb/?p=timeside.git;a=blob_plain;f=doc/slides/img/timeside_schema.svg;hb=refs/heads/dev
 
 
 Processors
 ==========
 
-IEncoder
----------
-
-  * VorbisEncoder [gst_vorbis_enc]
-  * WavEncoder [gst_wav_enc]
-  * Mp3Encoder [gst_mp3_enc]
-  * FlacEncoder [gst_flac_enc]
-  * AacEncoder [gst_aac_enc]
-  * WebMEncoder [gst_webm_enc]
-
 IDecoder
 ---------
 
   * FileDecoder [gst_dec]
   * ArrayDecoder [array_dec]
+  * LiveDecoder [gst_live_dec]
+
+IAnalyzer
+---------
+
+  *  AubioTemporal [aubio_temporal]
+  *  AubioPitch [aubio_pitch]
+  *  AubioMfcc [aubio_mfcc]
+  *  AubioMelEnergy [aubio_melenergy]
+  *  AubioSpecdesc [aubio_specdesc]
+  *  Yaafe [yaafe]
+  *  Spectrogram [spectrogram_analyzer]
+  *  Waveform [waveform_analyzer]
+  *  VampSimpleHost [vamp_simple_host]
+  *  IRITSpeechEntropy [irit_speech_entropy]
+  *  IRITSpeech4Hz [irit_speech_4hz]
+  *  OnsetDetectionFunction [odf]
+  *  LimsiSad [limsi_sad]
+
+IValueAnalyzer
+---------------
+
+  * Level [level]
+  * MeanDCShift [mean_dc_shift]
 
 IGrapher
 ---------
 
-  * Waveform [waveform_simple]
-  * WaveformCentroid [waveform_centroid]
-  * WaveformTransparent [waveform_transparent]
-  * WaveformContourBlack [waveform_contour_black]
-  * WaveformContourWhite [waveform_contour_white]
-  * SpectrogramLog [spectrogram_log]
-  * SpectrogramLinear [spectrogram_lin]
+  *  Waveform [waveform_simple]
+  *  WaveformCentroid [waveform_centroid]
+  *  WaveformTransparent [waveform_transparent]
+  *  WaveformContourBlack [waveform_contour_black]
+  *  WaveformContourWhite [waveform_contour_white]
+  *  SpectrogramLog [spectrogram_log]
+  *  SpectrogramLinear [spectrogram_lin]
+  *  Display.aubio_pitch.pitch [grapher_aubio_pitch]
+  *  Display.odf [grapher_odf]
+  *  Display.waveform_analyzer [grapher_waveform]
+  *  Display.irit_speech_4hz.segments [grapher_irit_speech_4hz_segments]
 
-IAnalyzer
+IEncoder
 ---------
 
-  * Level [level]
-  * MeanDCShift [mean_dc_shift]
-  * AubioTemporal [aubio_temporal]
-  * AubioPitch [aubio_pitch]
-  * AubioMfcc [aubio_mfcc]
-  * AubioMelEnergy [aubio_melenergy]
-  * AubioSpecdesc [aubio_specdesc]
-  * Yaafe [yaafe]
-  * Spectrogram [spectrogram_analyzer]
-  * Waveform [waveform_analyzer]
-  * VampSimpleHost [vamp_simple_host]
-  * IRITSpeechEntropy [irit_speech_entropy]
-  * IRITSpeech4Hz [irit_speech_4hz]
-  * OnsetDetectionFunction [odf]
+  * VorbisEncoder [gst_vorbis_enc]
+  * WavEncoder [gst_wav_enc]
+  * Mp3Encoder [gst_mp3_enc]
+  * FlacEncoder [gst_flac_enc]
+  * AacEncoder [gst_aac_enc]
+  * WebMEncoder [gst_webm_enc]
+  * OpusEncoder [gst_opus_enc]
+  * AudioSink [gst_audio_sink_enc]
 
index ec159ab2445610ace3a37a16bc396d9da7577ab4..5d52215b3d87bfa3003432c85757429bdf4fbba8 100644 (file)
@@ -1,6 +1,38 @@
 News
 =====
 
+0.5.5
+
+ * All processor folder (analyzer, grapher, etc...) are now a real plugin repositoris : you can now drop processors in them and play !
+ * Encoder : add an Opus encoder
+ * Experimental : add a django web server with a REST API (see Interface : web server)
+ * AubioPitch: prevent NaN in result by converting them to zero
+ * Yaafe analyzer: simplify adaptation of process frames from TimeSide to Yaafe
+ * LimsiSad: add a default value for parameter sad_model
+ * Full Travis integration
+ * Fix various NaN and Inf and PEP8 issues also many PyFlake warnings
+
+0.5.4
+
+ * Encoder : transcoded streams where broken. Now fixed with some smart thread controls.
+ * Analyzer : update VAMP plugin example in sandbox
+ * Analyzer : new *experimental* plugin : Limsi Speech Activity Detection Systems (limsi_sad)
+ * Decoder : process any media in streaming mode giving its URL
+ * Install : fix some setup requirements
+
+0.5.3
+
+ * Make Analyzer rendering more generic and easy to implement
+ * Analyzer : implement rendering capability for event and segment + add some more analyzer graphers
+ * Analyzer : refactoring the results rendering method. + Capability to use matplotlib in environnement with no display
+ * Decoder : Add a Live decoder to get data from the soundcard
+ * Decoder : add support for 96kHz sampling rate
+ * Encoder: live AudioSink encoder, encoder that plays the audio stream through the soundcard
+ * Grapher : add a generic Class to display Analyzers through their 'render' method. Add the new grapher file
+ * Grapher : add a generic Class to display Analyzers through their 'render' method. For now, it only support FrameValueResult analyzer
+ * Core : add a condition to catch signal only if a LiveDecoder source is used
+ * Various bugfixes
+
 0.5.2
 
  * Add a general launch script "timeside-launch" (see "Shell interface")
@@ -107,3 +139,4 @@ News
  * duration analysis goes to decoder.duration property
  * bugfixes
 
+
index b89a12286bdd228d6683c2d9a61a845cbda19418..fa08405086e410d5f205e74a4085b90cac204025 100644 (file)
@@ -56,7 +56,26 @@ Development documentation:
     * https://github.com/yomguy/TimeSide/wiki/Ui-Guide
 
 TODO list:
-    * embed a light http server to get commands through something like JSON RPC
     * zoom
     * layers
 
+
+Web server interface
+====================
+
+An experimental web server based on Django has been added to the package from version 0.5.4. The goal is to provide a full REST API to TimeSide to enable new kinds of audio processing web services.
+
+A sandbox is provide in timeside/server/sandbox and you can initialize it and test it like this:
+
+.. code-block:: bash
+
+  $ cd timeside/server/sandbox
+  $ ./manage.py syncdb
+  $ ./manage.py migrate
+  $ ./manage.py runserver
+
+and browse http://localhost:8000/api/
+
+This server is not currently connected to the player but this will be done soon so that TimeSide can provide a completely autonomous service on the web (the server side as well as the server side).
+
+
index 8b6d0036bf5b5fa785c20dbb038fb3f4e9322a48..897fb90ec90c03ac51b9f09cb4a0c340e2973285 100644 (file)
@@ -1 +1,2 @@
-setuptools
\ No newline at end of file
+setuptools
+-e .
\ No newline at end of file
index 9699e9d01393d25515aea4a394503ef86a0dc865..bf7edb4b639d46a0a615085e3a419e65a934ba8f 100755 (executable)
--- a/setup.py
+++ b/setup.py
@@ -53,9 +53,10 @@ setup(
         'pyyaml',
         'simplejson',
         'scipy',
-        'django',
+        'django>=1.4.10',
         'django-extensions',
         'djangorestframework',
+        'south',
         ],
   platforms=['OS Independent'],
   license='Gnu Public License V2',
index 8d438a9f1f5d68b0a33cdc1a8cff4e76b5694cbb..79f65607cc4b7bda10022aba0134e148e3fc08a1 100644 (file)
@@ -89,7 +89,7 @@ class DisplayAnalyzer(Grapher):
 
             __doc__ = """Builds a PIL image representing """ + grapher_name
 
-        NewGrapher.__name__ = 'Display' + result_id
+        NewGrapher.__name__ = 'Display' + '.' + result_id
 
         return NewGrapher