From: Guillaume Pellerin Date: Mon, 21 Apr 2014 11:35:20 +0000 (+0200) Subject: delete django Processor type properties, add pipe Processor type properties X-Git-Tag: 0.5.5~1^2~53 X-Git-Url: https://git.parisson.com/?a=commitdiff_plain;h=1847376972ec5c272299f97d61eafb471c08064e;p=timeside.git delete django Processor type properties, add pipe Processor type properties --- diff --git a/timeside/analyzer/core.py b/timeside/analyzer/core.py index 8d71572..4225528 100644 --- a/timeside/analyzer/core.py +++ b/timeside/analyzer/core.py @@ -1041,6 +1041,8 @@ class Analyzer(Processor): Generic class for the analyzers ''' + type = 'analyzer' + def __init__(self): super(Analyzer, self).__init__() diff --git a/timeside/decoder/core.py b/timeside/decoder/core.py index 60355e2..6865e4e 100644 --- a/timeside/decoder/core.py +++ b/timeside/decoder/core.py @@ -49,6 +49,8 @@ class Decoder(Processor): implements(IDecoder) abstract() + type = 'decoder' + mimetype = '' output_samplerate = None output_channels = None diff --git a/timeside/encoder/core.py b/timeside/encoder/core.py index ef7614e..c18cd50 100644 --- a/timeside/encoder/core.py +++ b/timeside/encoder/core.py @@ -45,6 +45,8 @@ class GstEncoder(Processor): implements(IEncoder) abstract() + type = 'encoder' + def __init__(self, output, streaming=False, overwrite=False): super(GstEncoder, self).__init__() diff --git a/timeside/grapher/core.py b/timeside/grapher/core.py index 1c92afa..3340d8f 100644 --- a/timeside/grapher/core.py +++ b/timeside/grapher/core.py @@ -108,6 +108,8 @@ class Grapher(Processor): Generic abstract class for the graphers ''' + type = 'grapher' + fft_size = 0x1000 frame_cursor = 0 pixel_cursor = 0 diff --git a/timeside/migrations/0003_auto__del_field_processor_type.py b/timeside/migrations/0003_auto__del_field_processor_type.py new file mode 100644 index 0000000..1c5c6a2 --- /dev/null +++ b/timeside/migrations/0003_auto__del_field_processor_type.py @@ -0,0 +1,136 @@ +# -*- coding: utf-8 -*- +from south.utils import datetime_utils as datetime +from south.db import db +from south.v2 import SchemaMigration +from django.db import models + + +class Migration(SchemaMigration): + + def forwards(self, orm): + # Deleting field 'Processor.type' + db.delete_column('timeside_processors', 'type') + + + def backwards(self, orm): + # Adding field 'Processor.type' + db.add_column('timeside_processors', 'type', + self.gf('django.db.models.fields.CharField')(default='none', max_length=64), + keep_default=False) + + + models = { + 'auth.group': { + 'Meta': {'object_name': 'Group'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), + 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) + }, + 'auth.permission': { + 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, + 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) + }, + 'auth.user': { + 'Meta': {'object_name': 'User'}, + 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), + 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), + 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), + 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) + }, + 'contenttypes.contenttype': { + 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, + 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) + }, + 'timeside.experience': { + 'Meta': {'object_name': 'Experience', 'db_table': "'timeside_experiences'"}, + 'author': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'experiences'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'date_added': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'date_modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'null': 'True', 'blank': 'True'}), + 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'experiences': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'other_experiences'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['timeside.Experience']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_preset': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'processors': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'experiences'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['timeside.Processor']"}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '512', 'blank': 'True'}), + 'uuid': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '512', 'blank': 'True'}) + }, + 'timeside.item': { + 'Meta': {'ordering': "['title']", 'object_name': 'Item', 'db_table': "'timeside_items'"}, + 'author': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'items'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'date_added': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'date_modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'null': 'True', 'blank': 'True'}), + 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'file': ('django.db.models.fields.files.FileField', [], {'max_length': '1024', 'blank': 'True'}), + 'hdf5': ('django.db.models.fields.files.FileField', [], {'max_length': '1024', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'lock': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'mime_type': ('django.db.models.fields.CharField', [], {'max_length': '256', 'blank': 'True'}), + 'sha1': ('django.db.models.fields.CharField', [], {'max_length': '512', 'blank': 'True'}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '512', 'blank': 'True'}), + 'url': ('django.db.models.fields.URLField', [], {'max_length': '1024', 'blank': 'True'}), + 'uuid': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '512', 'blank': 'True'}) + }, + 'timeside.parameters': { + 'Meta': {'object_name': 'Parameters'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_preset': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'parameters': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'processor': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'parameters'", 'null': 'True', 'to': "orm['timeside.Processor']"}) + }, + 'timeside.processor': { + 'Meta': {'object_name': 'Processor', 'db_table': "'timeside_processors'"}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'pid': ('django.db.models.fields.CharField', [], {'max_length': '256'}), + 'version': ('django.db.models.fields.CharField', [], {'max_length': '64', 'blank': 'True'}) + }, + 'timeside.result': { + 'Meta': {'object_name': 'Result', 'db_table': "'timeside_results'"}, + 'date_added': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'date_modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'null': 'True', 'blank': 'True'}), + 'hdf5': ('django.db.models.fields.files.FileField', [], {'max_length': '1024', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'item': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'results'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['timeside.Item']"}), + 'output': ('django.db.models.fields.files.FileField', [], {'max_length': '1024', 'blank': 'True'}), + 'output_mime_type': ('django.db.models.fields.CharField', [], {'max_length': '256', 'blank': 'True'}), + 'processor': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'results'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['timeside.Processor']"}), + 'status': ('django.db.models.fields.IntegerField', [], {'default': '1'}), + 'uuid': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '512', 'blank': 'True'}) + }, + 'timeside.selection': { + 'Meta': {'object_name': 'Selection', 'db_table': "'timeside_selections'"}, + 'author': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'selections'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'date_added': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'date_modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'null': 'True', 'blank': 'True'}), + 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'items': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'selections'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['timeside.Item']"}), + 'selections': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'other_selections'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['timeside.Selection']"}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '512', 'blank': 'True'}), + 'uuid': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '512', 'blank': 'True'}) + }, + 'timeside.task': { + 'Meta': {'object_name': 'Task', 'db_table': "'timeside_tasks'"}, + 'author': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'tasks'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'experience': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'task'", 'null': 'True', 'to': "orm['timeside.Experience']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'selection': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'task'", 'null': 'True', 'to': "orm['timeside.Selection']"}), + 'status': ('django.db.models.fields.IntegerField', [], {'default': '1'}) + } + } + + complete_apps = ['timeside'] \ No newline at end of file diff --git a/timeside/models.py b/timeside/models.py index e35d1b8..78883c5 100644 --- a/timeside/models.py +++ b/timeside/models.py @@ -15,9 +15,6 @@ processors = timeside.core.processors(timeside.api.IProcessor) PROCESSOR_PIDS = [(processor.id(), processor.id()) for processor in processors] -PROCESSOR_TYPES = (('decoder', _('decoder')), ('analyzer', _('analyzer')), - ('grapher', _('grapher')), ('encoder', _('encoder'))) - STATUS = ((0, _('failed')), (1, _('pending')), (2, _('running')), (3, _('done')), (4, _('ready'))) @@ -116,7 +113,6 @@ class Experience(DocBaseResource): class Processor(models.Model): pid = models.CharField(_('pid'), choices=PROCESSOR_PIDS, max_length=256) - type = models.CharField(_('type'), choices=PROCESSOR_TYPES, default='none', max_length=64) version = models.CharField(_('version'), max_length=64, blank=True) class Meta(MetaCore): @@ -124,7 +120,7 @@ class Processor(models.Model): verbose_name = _('processor') def __unicode__(self): - return '_'.join([self.type, self.pid, str(self.id)]) + return '_'.join([self.pid, str(self.id)]) def save(self, **kwargs): if not self.version: diff --git a/timeside/views.py b/timeside/views.py index 82634f4..7acafe0 100644 --- a/timeside/views.py +++ b/timeside/views.py @@ -7,44 +7,6 @@ from django.views.generic import * from timeside.serializers import * -def stream_from_file(__file): - chunk_size = 0x10000 - f = open(__file, 'r') - while True: - __chunk = f.read(chunk_size) - if not len(__chunk): - f.close() - break - yield __chunk - - -class IndexView(ListView): - - model = Item - template_name='timeside/index.html' - - def get_context_data(self, **kwargs): - context = super(IndexView, self).get_context_data(**kwargs) - return context - - def dispatch(self, *args, **kwargs): - return super(IndexView, self).dispatch(*args, **kwargs) - - -class ItemAnalyzerView(DetailView): - - model = Item - - def results(self): - item = self.get_object() - results = AnalyzerResult() - return results.from_hdf5(self.hdf5).to_json() - - def get_context_data(self, **kwargs): - context = super(ItemJsonAnalyzerView, self).get_context_data(**kwargs) - return context - - class SelectionViewSet(viewsets.ModelViewSet): @@ -92,3 +54,42 @@ class UserViewSet(viewsets.ModelViewSet): model = User serializer_class = UserSerializer + + + +def stream_from_file(__file): + chunk_size = 0x10000 + f = open(__file, 'r') + while True: + __chunk = f.read(chunk_size) + if not len(__chunk): + f.close() + break + yield __chunk + + +class IndexView(ListView): + + model = Item + template_name='timeside/index.html' + + def get_context_data(self, **kwargs): + context = super(IndexView, self).get_context_data(**kwargs) + return context + + def dispatch(self, *args, **kwargs): + return super(IndexView, self).dispatch(*args, **kwargs) + + +class ItemAnalyzerView(DetailView): + + model = Item + + def results(self): + item = self.get_object() + results = AnalyzerResult() + return results.from_hdf5(self.hdf5).to_json() + + def get_context_data(self, **kwargs): + context = super(ItemJsonAnalyzerView, self).get_context_data(**kwargs) + return context