├── .gitignore ├── .travis.yml ├── LICENSE ├── english_version.md ├── fabfile.py ├── readme.md ├── requirements.txt └── src ├── .coverage ├── README.rst ├── __init__.py ├── dss ├── Mixin.py ├── Serializer.py ├── TimeFormatFactory.py ├── Warning.py └── __init__.py ├── setup.py └── test ├── .coverage ├── __init__.py ├── test_Mixin.py ├── test_Serializer.py └── test_TimeFormatFactory.py /.gitignore: -------------------------------------------------------------------------------- 1 | *.pyc 2 | *.pyo 3 | *.sqlite3 4 | .idea/ 5 | .idea 6 | .DS_Store 7 | src/django_simple_serializer.egg-info/ 8 | src/dist/ 9 | src/build/ 10 | .coverage 11 | fabfile.py -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: python 2 | python: 3 | - "2.6" 4 | - "2.7" 5 | - "3.2" 6 | - "3.3" 7 | - "3.4" 8 | - "3.5" 9 | - "3.5-dev" # 3.5 development branch 10 | - "nightly" # currently points to 3.6-dev 11 | # command to install dependencies 12 | install: "pip install -r requirements.txt" 13 | # command to run tests 14 | script: nosetests -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright © RaPoSpectre. 2 | 3 | All rights reserved. 4 | 5 | Redistribution and use in source and binary forms, with or without 6 | modification, are permitted provided that the following conditions are met: 7 | 8 | Redistributions of source code must retain the above copyright notice, this 9 | list of conditions and the following disclaimer. 10 | Redistributions in binary form must reproduce the above copyright notice, this 11 | list of conditions and the following disclaimer in the documentation and/or 12 | other materials provided with the distribution. 13 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 14 | ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 15 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 16 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 17 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 18 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 19 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 20 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 21 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 22 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- /english_version.md: -------------------------------------------------------------------------------- 1 | # Django Simple Serializer 2 | 3 | --- 4 | 5 | Django Simple Serializer is a serializer to help user serialize django data or python list into json\xml\dict data in a simple way. 6 | 7 | ## Why Django Simple Serializer ? 8 | 9 | 10 | ### django.core.serializers 11 | This is a django built-in serializers, it serialzie querset but not a single model object. In addition, if you have DateTimeField into your model, the serializers will not work well(if you'd like using serialized data directly) 12 | ### QuerySet.values() 13 | As above, QuerySet.values() also not work well if you have DateTimeField into your model. 14 | ### django-rest-framework serializers 15 | django-rest-framework is a powerful tools to help you build REST API quickly. It has a powerful serializer but you have to use it with create the corresponding model serializer object first. 16 | ### django simple serializer 17 | For some people, we just want to get serialized data quickly and simply, so i make a simple way to get serialized data without extra opertion, this is why django simple serializer. 18 | 19 | ## Requirements 20 | 21 | ### Python 2: 22 | 23 | Django >= 1.5 24 | 25 | Python >= 2.6 26 | 27 | ### Python 3: 28 | 29 | Django >= 1.8 30 | 31 | Python >= 3 32 | 33 | ## Installation 34 | 35 | Install using pip: 36 | 37 | pip install django-simple-serializer 38 | 39 | ## Working with django simple serializer 40 | ### Serializing objects 41 | Assuming that we have django models like these: 42 | 43 | class Classification(models.Model): 44 | c_name = models.CharField(max_length=30, unique=True) 45 | 46 | class Article(models.Model): 47 | caption = models.CharField(max_length=50) 48 | classification = models.ForeignKey(Classification, related_name='cls_art') 49 | content = models.TextField() 50 | publish = models.BooleanField(default=False) 51 | 52 | a simple example with using django models above: 53 | 54 | from dss.Serializer import serializer 55 | article_list = Article.objects.all() 56 | data = serializer(article_list) 57 | 58 | data: 59 | 60 | [{'read_count': 0, 'create_time': 1432392456.0, 'modify_time': 1432392456.0, 'sub_caption': u'first', 'comment_count': 0, u'id': 31}, {'read_count': 0, 'create_time': 1432392499.0, 'modify_time': 1432392499.0, 'sub_caption': u'second', 'comment_count': 0, u'id': 32}] 61 | 62 | By default, the serializer return a list or a dict(for a single object), you can set the parameter “output_type” to decide the serializer return json/xml/list. 63 | 64 | ## API Guide 65 | 66 | #### dss.Serializer 67 | Provides the serializer 68 | 69 | *function* serializer(*data, datetime_format='timestamp', output_type='dict', include_attr=None, exclude_attr=None, deep=False*) 70 | 71 | #### Parameters: 72 | 73 | * data(_Required_|(QuerySet, Page, list, django model object))-data to be processed 74 | * datetime_format(_Optional_|string)-convert datetime into string.default "timestamp" 75 | * output_type(_Optional_|string)-serialize type. default "dict" 76 | * include_attr(_Optional_|(list, tuple))-only serialize attributes in include_attr list. default None 77 | * exclude_attr(_Optional_|(list, tuple))-exclude attributes in exclude_attr list. default None 78 | * foreign(_Optional_|bool)-determines if serializer serialize ForeignKeyField. default False 79 | * many(_Optional_|bool)-determines if serializer serialize ManyToManyField. default False 80 | 81 | #### Usage: 82 | 83 | **datetime_format:** 84 | 85 | |parameters|intro| 86 | | -------------- | :---: | 87 | |string|convert datetime into string like "2015-05-10 10:19:22"| 88 | |timestamp|convert datetime into timestamp like "1432124420.0"| 89 | 90 | example: 91 | 92 | from dss.Serializer import serializer 93 | article_list = Article.objects.all() 94 | data = serializer(article_list, datetime_format='string', output_type='json') 95 | 96 | data: 97 | 98 | [ 99 | { 100 | "read_count": 0, 101 | "sub_caption": "first", 102 | "publish": true, 103 | "content": "first article", 104 | "caption": "first", 105 | "comment_count": 0, 106 | "create_time": "2015-05-23 22:47:36", 107 | "modify_time": "2015-05-23 22:47:36", 108 | "id": 31 109 | }, 110 | { 111 | "read_count": 0, 112 | "sub_caption": "second", 113 | "publish": false, 114 | "content": "second article", 115 | "caption": "second", 116 | "comment_count": 0, 117 | "create_time": "2015-05-23 22:48:19", 118 | "modify_time": "2015-05-23 22:48:19", 119 | "id": 32 120 | } 121 | ] 122 | 123 | **output_type** 124 | 125 | |parameters|intro| 126 | | -------------- | :---: | 127 | |dict|convert data into dict or list| 128 | |json|convert data into json| 129 | |xml|convert data into xml| 130 | 131 | example: 132 | 133 | from dss.Serializer import serializer 134 | article_list = Article.objects.all()[0] 135 | data = serializer(article_list, output_type='xml') 136 | 137 | data: 138 | 139 | 140 | 141 | 0 142 | first 143 | True 144 | first article 145 | first 146 | 0 147 | 1432392456.0 148 | 1432392456.0 149 | 31 150 | 151 | 152 | **include_attr** 153 | 154 | example: 155 | 156 | from dss.Serializer import serializer 157 | article_list = Article.objects.all() 158 | data = serializer(article_list, output_type='json', include_attr=('content', 'caption',)) 159 | 160 | data: 161 | 162 | [ 163 | { 164 | "content": "first article", 165 | "caption": "first" 166 | }, 167 | { 168 | "content": "second article", 169 | "caption": "second" 170 | } 171 | ] 172 | 173 | **exclude_attr** 174 | 175 | example: 176 | 177 | from dss.Serializer import serializer 178 | article_list = Article.objects.all() 179 | data = serializer(article_list, output_type='json', exclude_attr=('content',)) 180 | 181 | data: 182 | 183 | [ 184 | { 185 | "read_count": 0, 186 | "sub_caption": "first", 187 | "publish": true, 188 | "caption": "first", 189 | "comment_count": 0, 190 | "create_time": 1432392456, 191 | "modify_time": 1432392456, 192 | "id": 31 193 | }, 194 | { 195 | "read_count": 0, 196 | "sub_caption": "second", 197 | "publish": false, 198 | "caption": "second", 199 | "comment_count": 0, 200 | "create_time": 1432392499, 201 | "modify_time": 1432392499, 202 | "id": 32 203 | } 204 | ] 205 | 206 | **foreign** 207 | 208 | Serialize ForeignKeyField and its sub item 209 | 210 | example: 211 | 212 | from dss.Serializer import serializer 213 | article_list = Article.objects.all() 214 | data = serializer(article_list, output_type='json', include_attr=('classification', 'caption', 'create_time', foreign=True) 215 | 216 | data: 217 | 218 | [ 219 | { 220 | "caption": "first", 221 | "create_time": 1432392456, 222 | "classification": { 223 | "create_time": 1429708506, 224 | "c_name": "python", 225 | "id": 1, 226 | "modify_time": 1429708506 227 | } 228 | }, 229 | { 230 | "caption": "second", 231 | "create_time": 1432392499, 232 | "classification": { 233 | "create_time": 1430045890, 234 | "c_name": "test", 235 | "id": 5, 236 | "modify_time": 1430045890 237 | } 238 | } 239 | ] 240 | 241 | **many** 242 | Serialize ManyToManyField 243 | 244 | example: 245 | 246 | from dss.Serializer import serializer 247 | article_list = Article.objects.all() 248 | data = serializer(article_list, output_type='json', include_attr=('classification', 'caption', 'create_time', many=True) 249 | 250 | No test data have ManyToManyField ,data format same as above 251 | 252 | #### dss.Mixin 253 | Serialize Mixin 254 | 255 | class JsonResponseMixin(object) 256 | datetime_type = 'string' # Output datetime format. Default is “string”,other parameters see dss.Serializer.serializer 257 | foreign = False # If serialize ForeignField。Default is False 258 | many = False # If serialize ManyToManyField。Default is False 259 | include_attr = None # Only serialize the attrs which in include_attr list。Default is None, accept a tuple contains attrs 260 | exclude_attr = None # serialize exclude attrs in exclude_attr list。Default is None, accept a tuple contains attrs 261 | 262 | #### Statement: 263 | 264 | Converts class based view into return json class based view,uses for DetailView and so on. 265 | 266 | #### Usage: 267 | 268 | example: 269 | 270 | # view.py 271 | from dss.Mixin import JsonResponseMixin 272 | from django.views.generic import DetailView 273 | from model import Article 274 | 275 | class TestView(JsonResponseMixin, DetailView): 276 | model = Article 277 | datetime_type = 'string' 278 | pk_url_kwarg = 'id' 279 | 280 | 281 | # urls.py 282 | from view import TestView 283 | urlpatterns = patterns('', 284 | url(r'^test/(?P(\d)+)/$', TestView.as_view()), 285 | ) 286 | 287 | access:`localhost:8000/test/1/` 288 | 289 | response: 290 | 291 | { 292 | "article": { 293 | "classification_id": 5, 294 | "read_count": 0, 295 | "sub_caption": "second", 296 | "comments": [], 297 | "content": "asdfasdfasdf", 298 | "caption": "second", 299 | "comment_count": 0, 300 | "id": 32, 301 | "publish": false 302 | }, 303 | "object": { 304 | "classification_id": 5, 305 | "read_count": 0, 306 | "sub_caption": "second", 307 | "comments": [], 308 | "content": "asdfasdfasdf", 309 | "caption": "second", 310 | "comment_count": 0, 311 | "id": 32, 312 | "publish": false 313 | }, 314 | "view": "" 315 | } 316 | 317 | 318 | *class MultipleJsonResponseMixin(JsonResponseMixin):* 319 | 320 | #### Statement: 321 | 322 | Mixin for ListView to converts it return data into json/xml. 323 | 324 | #### Usage: 325 | 326 | example: 327 | 328 | # view.py 329 | from dss.Mixin import MultipleJsonResponseMixin 330 | from django.views.generic import ListView 331 | from model import Article 332 | 333 | class TestView(MultipleJsonResponseMixin, ListView): 334 | model = Article 335 | query_set = Article.objects.all() 336 | paginate_by = 1 337 | datetime_type = 'string' 338 | 339 | 340 | # urls.py 341 | from view import TestView 342 | urlpatterns = patterns('', 343 | url(r'^test/$', TestView.as_view()), 344 | ) 345 | 346 | access:`localhost:8000/test/` 347 | 348 | response: 349 | 350 | { 351 | "paginator": "", 352 | "article_list": [ 353 | { 354 | "classification_id": 1, 355 | "read_count": 2, 356 | "sub_caption": "first", 357 | "content": "first article", 358 | "caption": "first", 359 | "comment_count": 0, 360 | "publish": false, 361 | "id": 31 362 | }, 363 | { 364 | "classification_id": 5, 365 | "read_count": 0, 366 | "sub_caption": "", 367 | "content": "testseteset", 368 | "caption": "hehe", 369 | "comment_count": 0, 370 | "publish": false, 371 | "id": 33 372 | }, 373 | { 374 | "classification_id": 5, 375 | "read_count": 0, 376 | "sub_caption": "second", 377 | "content": "asdfasdfasdf", 378 | "caption": "second", 379 | "comment_count": 0, 380 | "publish": false, 381 | "id": 32 382 | } 383 | ], 384 | "object_list": [ 385 | { 386 | "classification_id": 1, 387 | "read_count": 2, 388 | "sub_caption": "first", 389 | "content": "first article", 390 | "caption": "first", 391 | "comment_count": 0, 392 | "publish": false, 393 | "id": 31 394 | }, 395 | { 396 | "classification_id": 5, 397 | "read_count": 0, 398 | "sub_caption": "", 399 | "content": "testseteset", 400 | "caption": "hehe", 401 | "comment_count": 0, 402 | "publish": false, 403 | "id": 33 404 | }, 405 | { 406 | "classification_id": 5, 407 | "read_count": 0, 408 | "sub_caption": "second", 409 | "content": "asdfasdfasdf", 410 | "caption": "second", 411 | "comment_count": 0, 412 | "publish": false, 413 | "id": 32 414 | } 415 | ], 416 | "page_obj": { 417 | "current": 1, 418 | "next": 2, 419 | "total": 3, 420 | "page_range": [ 421 | { 422 | "page": 1 423 | }, 424 | { 425 | "page": 2 426 | }, 427 | { 428 | "page": 3 429 | } 430 | ], 431 | "previous": null 432 | }, 433 | "is_paginated": true, 434 | "view": "" 435 | } 436 | 437 | *class FormJsonResponseMixin(JsonResponseMixin):* 438 | 439 | #### Statement: 440 | 441 | Converts class based view into a return json data class based view,use for CreateView、UpdateView、FormView and so on. 442 | 443 | #### Usage: 444 | 445 | example: 446 | 447 | # view.py 448 | from dss.Mixin import FormJsonResponseMixin 449 | from django.views.generic import UpdateView 450 | from model import Article 451 | 452 | class TestView(FormJsonResponseMixin, UpdateView): 453 | model = Article 454 | datetime_type = 'string' 455 | pk_url_kwarg = 'id' 456 | 457 | 458 | # urls.py 459 | from view import TestView 460 | urlpatterns = patterns('', 461 | url(r'^test/(?P(\d)+)/$', TestView.as_view()), 462 | ) 463 | 464 | access:`localhost:8000/test/1/` 465 | 466 | response: 467 | 468 | { 469 | "article": { 470 | "classification_id": 5, 471 | "read_count": 0, 472 | "sub_caption": "second", 473 | "content": "asdfasdfasdf", 474 | "caption": "second", 475 | "comment_count": 0, 476 | "id": 32, 477 | "publish": false 478 | }, 479 | "form": [ 480 | { 481 | "field": "caption" 482 | }, 483 | { 484 | "field": "sub_caption" 485 | }, 486 | { 487 | "field": "read_count" 488 | }, 489 | { 490 | "field": "comment_count" 491 | }, 492 | { 493 | "field": "classification" 494 | }, 495 | { 496 | "field": "content" 497 | }, 498 | { 499 | "field": "publish" 500 | } 501 | ], 502 | "object": { 503 | "classification_id": 5, 504 | "read_count": 0, 505 | "sub_caption": "second", 506 | "content": "asdfasdfasdf", 507 | "caption": "second", 508 | "comment_count": 0, 509 | "id": 32, 510 | "publish": false 511 | }, 512 | "view": "" 513 | } 514 | ## 2.0.0 New Feature: 515 | Add serialize extra data: 516 | 517 | When we want to add extra data in model and serialize it, we can do like this: 518 | 519 | ```python 520 | def add_extra(article): 521 | comments = Comment.objects.filter(article=article) 522 | setattr(article, 'comments', comments) 523 | 524 | articles = Article.objects.all() 525 | map(add_extra, articles) 526 | result = serializer(articles) 527 | ``` 528 | 529 | The result will in "comments". 530 | 531 | The extra data can be a normal data type data, an other Django model, dict, list even a QuerySet. 532 | 533 | 534 | ## History 535 | 536 | ### Current Version:2.0.6 537 | 538 | ##### 2017.03.22 v2.0.6: 539 | 540 | Add support for Python 3 541 | 542 | ##### 2017.02.25 v2.0.5: 543 | 544 | Add support for Django model trough attribute 545 | 546 | ##### 2016.10.27 v2.0.4: 547 | 548 | Fix issue #2. 549 | 550 | ##### 2016.10.19 v2.0.3: 551 | Optimize code. 552 | 553 | Fix known bugs. 554 | 555 | Fix issue #1 556 | 557 | ##### 2016.6.22 v2.0.2: 558 | 559 | Fix when dev in cbv, if include_attr is not None, MultipleJsonResponseMixin will filter all data. 560 | 561 | Fix datetime.datetime and datetime.time was formated as datetime.date 562 | 563 | Optimize code. 564 | 565 | ##### 2016.6.14 v2.0.1: 566 | 567 | fix known bugs. 568 | 569 | ##### 2016.6.13 v2.0.0: 570 | 571 | Rewrite serializer, optimizes serialize time. 572 | 573 | Fix known bugs. 574 | 575 | Add serialize support for all Django Field. 576 | 577 | New feature: add serialize extra data in model. 578 | 579 | ##### 2015.10.15 v1.0.0: 580 | Refactoring code. 581 | 582 | add cbv json minxin class. 583 | 584 | add serialize support for ManyToManyField. 585 | 586 | ##### 2015.10.12: v0.0.2: 587 | 588 | Fix bugs. 589 | 590 | ##### 2015.5.23: v0.0.1: 591 | 592 | First version. 593 | 594 | # License 595 | 596 | Copyright © RaPoSpectre. 597 | 598 | All rights reserved. 599 | 600 | Redistribution and use in source and binary forms, with or without 601 | modification, are permitted provided that the following conditions are met: 602 | 603 | Redistributions of source code must retain the above copyright notice, this 604 | list of conditions and the following disclaimer. 605 | Redistributions in binary form must reproduce the above copyright notice, this 606 | list of conditions and the following disclaimer in the documentation and/or 607 | other materials provided with the distribution. 608 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 609 | ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 610 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 611 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 612 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 613 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 614 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 615 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 616 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 617 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- /fabfile.py: -------------------------------------------------------------------------------- 1 | from fabric.api import run, env, local 2 | 3 | 4 | def push(commit, title, desc): 5 | mail = "rapospectre@gmail.com" 6 | commit_message = '<{0}> {1}\r\n\r\nAuthor:{2}\r\n\r\nDesc: {3}'.format(commit, title, mail, desc) 7 | local("git add .") 8 | local("git commit -m '{0}'".format(commit_message)) 9 | local("git push origin master") 10 | -------------------------------------------------------------------------------- /readme.md: -------------------------------------------------------------------------------- 1 | # Django Simple Serializer 2 | 3 | --- 4 | 5 | [English Doc][1] 6 | 7 | Django Simple Serializer 是一个可以帮助开发者快速将 Django 数据或者 python data 序列化为 json|raw 数据。 8 | 9 | ## 为什么要用 Django Simple Serializer ? 10 | 11 | 对于序列化 Django 数据的解决方案已经有以下几种: 12 | 13 | ### django.core.serializers 14 | Django内建序列化器, 它可以序列化Django model query set 但无法直接序列化单独的Django model数据。如果你的model里含有混合数据 , 这个序列化器同样无法使用(如果你想直接使用序列化数据). 除此之外, 如果你想直接把序列化数据返回给用户,显然它包含了很多敏感及对用户无用对信息。 15 | ### QuerySet.values() 16 | 和上面一样, QuerySet.values() 同样没法工作如果你的model里有 DateTimeField 或者其他特殊的 Field 以及额外数据。 17 | ### django-rest-framework serializers 18 | django-rest-framework 是一个可以帮助你快速构建 REST API 的强力框架。 他拥有完善的序列化器,但在使用之前你需要花费一些时间入门, 并学习 cbv 的开发方式, 对于有时间需求的项目显然这不是最好的解决方案。 19 | ### django simple serializer 20 | 我希望可以快速简单的序列化数据, 所以我设计了一种可以不用任何额外的配置与学习而将Django data 或者 python data 序列化为相应的数据的简单的方式。 这就是为什么我写了 django simple serializer。 21 | 22 | django simple serializer 的实际例子: [我的个人网站后台数据接口](https://github.com/bluedazzle/django-vue.js-blog/blob/master/api/views.py "22") 23 | 24 | ---------- 25 | 26 | ## 运行需求 27 | 28 | ### Python 2: 29 | 30 | Django >= 1.5 31 | 32 | Python >= 2.6 33 | 34 | ### Python 3: 35 | 36 | Django >= 1.8 37 | 38 | Python >= 3 39 | 40 | ## 安装 41 | 42 | Install using pip: 43 | 44 | pip install django-simple-serializer 45 | 46 | ## 使用 django simple serializer 进行开发 47 | ### 序列化Django data 48 | 假设我们有以下Django models: 49 | 50 | class Classification(models.Model): 51 | c_name = models.CharField(max_length=30, unique=True) 52 | 53 | class Article(models.Model): 54 | caption = models.CharField(max_length=50) 55 | classification = models.ForeignKey(Classification, related_name='cls_art') 56 | content = models.TextField() 57 | publish = models.BooleanField(default=False) 58 | 59 | 使用django simple serializer的简单例子: 60 | 61 | from dss.Serializer import serializer 62 | article_list = Article.objects.all() 63 | data = serializer(article_list) 64 | 65 | data: 66 | 67 | [{'read_count': 0, 'create_time': 1432392456.0, 'modify_time': 1432392456.0, 'sub_caption': u'first', 'comment_count': 0, u'id': 31}, {'read_count': 0, 'create_time': 1432392499.0, 'modify_time': 1432392499.0, 'sub_caption': u'second', 'comment_count': 0, u'id': 32}] 68 | 69 | 默认情况下, 序列器会返回一个 list 或者 dict(对于单个model实例), 你可以设置参数 “output_type” 来决定序列器返回 json/raw. 70 | 71 | 72 | ## 交流 73 | 74 | **扫描二维码,验证信息输入 'dss' 或 '加群' 进入微信交流群** 75 | 76 | ![screenshot](https://raw.githubusercontent.com/bluedazzle/wechat_sender/master/qr.jpeg) 77 | 78 | ---------- 79 | 80 | ## API 手册 81 | 82 | #### dss.Serializer 83 | 提供序列器 84 | 85 | *function* serializer(*data, datetime_format='timestamp', output_type='raw', include_attr=None, exclude_attr=None, foreign=False, many=False, through=True*) 86 | 87 | #### Parameters: 88 | 89 | * data(_Required_|(QuerySet, Page, list, django model object))-待处理数据 90 | * datetime_format(_Optional_|string)-如果包含 datetime 将 datetime 转换成相应格式.默认为 "timestamp"(时间戳) 91 | * output_type(_Optional_|string)-serialize type. 默认“raw”原始数据,即返回list或dict 92 | * include_attr(_Optional_|(list, tuple))-只序列化 include_attr 列表里的字段。默认为 None 93 | * exclude_attr(_Optional_|(list, tuple))-不序列化 exclude_attr 列表里的字段。默认为 None 94 | * foreign(_Optional_|bool)-是否序列化 ForeignKeyField 。include_attr 与 exclude_attr 对 ForeignKeyField 依旧有效。 默认为 False 95 | * many(_Optional_|bool)-是否序列化 ManyToManyField 。include_attr 与 exclude_attr 对 ManyToManyField 依旧有效 默认为 False 96 | * through(_Optional_|bool)-是否序列化 ManyToManyField 中 through 属性数据 默认为 True 97 | 98 | #### 用法: 99 | 100 | **datetime_format:** 101 | 102 | |parameters|intro| 103 | | -------------- | :---: | 104 | |string|转换 datetime 为字符串。如: "2015-05-10 10:19:22"| 105 | |timestamp|转换 datetime 为时间戳。如: "1432124420.0"| 106 | 107 | 例子: 108 | 109 | from dss.Serializer import serializer 110 | article_list = Article.objects.all() 111 | data = serializer(article_list, datetime_format='string', output_type='json') 112 | 113 | data: 114 | 115 | [ 116 | { 117 | "read_count": 0, 118 | "sub_caption": "first", 119 | "publish": true, 120 | "content": "first article", 121 | "caption": "first", 122 | "comment_count": 0, 123 | "create_time": "2015-05-23 22:47:36", 124 | "modify_time": "2015-05-23 22:47:36", 125 | "id": 31 126 | }, 127 | { 128 | "read_count": 0, 129 | "sub_caption": "second", 130 | "publish": false, 131 | "content": "second article", 132 | "caption": "second", 133 | "comment_count": 0, 134 | "create_time": "2015-05-23 22:48:19", 135 | "modify_time": "2015-05-23 22:48:19", 136 | "id": 32 137 | } 138 | ] 139 | 140 | **output_type** 141 | 142 | |parameters|intro| 143 | | -------------- | :---: | 144 | |raw|将list或dict中的特殊对象序列化后输出为list或dict| 145 | |dict|同 raw| 146 | |json|转换数据为 json| 147 | 148 | ~~xml 转换数据为 xml~~ (暂时去除) 149 | 150 | 例子: 151 | 152 | from dss.Serializer import serializer 153 | article_list = Article.objects.all()[0] 154 | data = serializer(article_list, output_type='json') 155 | 156 | data: 157 | 158 | { 159 | "read_count": 0, 160 | "sub_caption": "first", 161 | "publish": true, 162 | "content": "first article", 163 | "caption": "first", 164 | "comment_count": 0, 165 | "create_time": "2015-05-23 22:47:36", 166 | "modify_time": "2015-05-23 22:47:36", 167 | "id": 31 168 | } 169 | 170 | **include_attr** 171 | 172 | 例子: 173 | 174 | from dss.Serializer import serializer 175 | article_list = Article.objects.all() 176 | data = serializer(article_list, output_type='json', include_attr=('content', 'caption',)) 177 | 178 | data: 179 | 180 | [ 181 | { 182 | "content": "first article", 183 | "caption": "first" 184 | }, 185 | { 186 | "content": "second article", 187 | "caption": "second" 188 | } 189 | ] 190 | 191 | **exclude_attr** 192 | 193 | 例子: 194 | 195 | from dss.Serializer import serializer 196 | article_list = Article.objects.all() 197 | data = serializer(article_list, output_type='json', exclude_attr=('content',)) 198 | 199 | data: 200 | 201 | [ 202 | { 203 | "read_count": 0, 204 | "sub_caption": "first", 205 | "publish": true, 206 | "caption": "first", 207 | "comment_count": 0, 208 | "create_time": 1432392456, 209 | "modify_time": 1432392456, 210 | "id": 31 211 | }, 212 | { 213 | "read_count": 0, 214 | "sub_caption": "second", 215 | "publish": false, 216 | "caption": "second", 217 | "comment_count": 0, 218 | "create_time": 1432392499, 219 | "modify_time": 1432392499, 220 | "id": 32 221 | } 222 | ] 223 | 224 | **foreign** 225 | 226 | 序列化数据中的 ForeignKeyField 及其子项目 227 | 228 | 例子: 229 | 230 | from dss.Serializer import serializer 231 | article_list = Article.objects.all() 232 | data = serializer(article_list, output_type='json', include_attr=('classification', 'caption', 'create_time', foreign=True) 233 | 234 | data: 235 | 236 | [ 237 | { 238 | "caption": "first", 239 | "create_time": 1432392456, 240 | "classification": { 241 | "create_time": 1429708506, 242 | "c_name": "python", 243 | "id": 1, 244 | "modify_time": 1429708506 245 | } 246 | }, 247 | { 248 | "caption": "second", 249 | "create_time": 1432392499, 250 | "classification": { 251 | "create_time": 1430045890, 252 | "c_name": "test", 253 | "id": 5, 254 | "modify_time": 1430045890 255 | } 256 | } 257 | ] 258 | 259 | **many** 260 | 序列化 ManyToManyField 261 | 262 | example: 263 | 264 | from dss.Serializer import serializer 265 | article_list = Article.objects.all() 266 | data = serializer(article_list, output_type='json', include_attr=('classification', 'caption', 'create_time', many=True) 267 | 268 | 测试数据无 ManyToManyField ,数据格式同上 269 | 270 | #### dss.Mixin 271 | 提供序列器 Mixin 272 | 273 | class JsonResponseMixin(object) 274 | datetime_type = 'string' # 输出datetime时间格式。默认为“string”,可选参数相见dss.Serializer.serializer 275 | foreign = False # 是否序列化ForeignField。默认为False 276 | many = False # 是否序列化ManyToManyField。默认为False 277 | include_attr = None # 只序列化include_attr包含的属性。默认为None,接受一个包含属性名称的tuple 278 | exclude_attr = None # 不序列化exclude_attr包含的属性。默认为None,接受一个包含属性名称的tuple 279 | through = True # 序列化 through 属性数据 280 | 281 | #### 说明: 282 | 283 | 将普通class based view 转换为返回json数据的class based view,适用于DetailView等 284 | 285 | #### 用法: 286 | 287 | 例子: 288 | 289 | # view.py 290 | from dss.Mixin import JsonResponseMixin 291 | from django.views.generic import DetailView 292 | from model import Article 293 | 294 | class TestView(JsonResponseMixin, DetailView): 295 | model = Article 296 | datetime_type = 'string' 297 | pk_url_kwarg = 'id' 298 | 299 | 300 | # urls.py 301 | from view import TestView 302 | urlpatterns = patterns('', 303 | url(r'^test/(?P(\d)+)/$', TestView.as_view()), 304 | ) 305 | 306 | 访问:`localhost:8000/test/1/` 307 | 308 | response: 309 | 310 | { 311 | "article": { 312 | "classification_id": 5, 313 | "read_count": 0, 314 | "sub_caption": "second", 315 | "comments": [], 316 | "content": "asdfasdfasdf", 317 | "caption": "second", 318 | "comment_count": 0, 319 | "id": 32, 320 | "publish": false 321 | }, 322 | "object": { 323 | "classification_id": 5, 324 | "read_count": 0, 325 | "sub_caption": "second", 326 | "comments": [], 327 | "content": "asdfasdfasdf", 328 | "caption": "second", 329 | "comment_count": 0, 330 | "id": 32, 331 | "publish": false 332 | }, 333 | "view": "" 334 | } 335 | 336 | 337 | *class MultipleJsonResponseMixin(JsonResponseMixin):* 338 | 339 | #### 说明: 340 | 341 | 将列表类视图转换为返回json数据的类视图,适用于ListView等 342 | 343 | #### 用法: 344 | 345 | 例子: 346 | 347 | # view.py 348 | from dss.Mixin import MultipleJsonResponseMixin 349 | from django.views.generic import ListView 350 | from model import Article 351 | 352 | class TestView(MultipleJsonResponseMixin, ListView): 353 | model = Article 354 | query_set = Article.objects.all() 355 | paginate_by = 1 356 | datetime_type = 'string' 357 | 358 | 359 | # urls.py 360 | from view import TestView 361 | urlpatterns = patterns('', 362 | url(r'^test/$', TestView.as_view()), 363 | ) 364 | 365 | 访问:`localhost:8000/test/` 366 | 367 | response: 368 | 369 | { 370 | "paginator": "", 371 | "article_list": [ 372 | { 373 | "classification_id": 1, 374 | "read_count": 2, 375 | "sub_caption": "first", 376 | "content": "first article", 377 | "caption": "first", 378 | "comment_count": 0, 379 | "publish": false, 380 | "id": 31 381 | }, 382 | { 383 | "classification_id": 5, 384 | "read_count": 0, 385 | "sub_caption": "", 386 | "content": "testseteset", 387 | "caption": "hehe", 388 | "comment_count": 0, 389 | "publish": false, 390 | "id": 33 391 | }, 392 | { 393 | "classification_id": 5, 394 | "read_count": 0, 395 | "sub_caption": "second", 396 | "content": "asdfasdfasdf", 397 | "caption": "second", 398 | "comment_count": 0, 399 | "publish": false, 400 | "id": 32 401 | } 402 | ], 403 | "object_list": [ 404 | { 405 | "classification_id": 1, 406 | "read_count": 2, 407 | "sub_caption": "first", 408 | "content": "first article", 409 | "caption": "first", 410 | "comment_count": 0, 411 | "publish": false, 412 | "id": 31 413 | }, 414 | { 415 | "classification_id": 5, 416 | "read_count": 0, 417 | "sub_caption": "", 418 | "content": "testseteset", 419 | "caption": "hehe", 420 | "comment_count": 0, 421 | "publish": false, 422 | "id": 33 423 | }, 424 | { 425 | "classification_id": 5, 426 | "read_count": 0, 427 | "sub_caption": "second", 428 | "content": "asdfasdfasdf", 429 | "caption": "second", 430 | "comment_count": 0, 431 | "publish": false, 432 | "id": 32 433 | } 434 | ], 435 | "page_obj": { 436 | "current": 1, 437 | "next": 2, 438 | "total": 3, 439 | "page_range": [ 440 | { 441 | "page": 1 442 | }, 443 | { 444 | "page": 2 445 | }, 446 | { 447 | "page": 3 448 | } 449 | ], 450 | "previous": null 451 | }, 452 | "is_paginated": true, 453 | "view": "" 454 | } 455 | 456 | *class FormJsonResponseMixin(JsonResponseMixin):* 457 | 458 | #### 说明: 459 | 460 | 将普通class based view 转换为返回json数据的class based view,适用于CreateView、UpdateView、FormView等 461 | 462 | #### 用法: 463 | 464 | 例子: 465 | 466 | # view.py 467 | from dss.Mixin import FormJsonResponseMixin 468 | from django.views.generic import UpdateView 469 | from model import Article 470 | 471 | class TestView(FormJsonResponseMixin, UpdateView): 472 | model = Article 473 | datetime_type = 'string' 474 | pk_url_kwarg = 'id' 475 | 476 | 477 | # urls.py 478 | from view import TestView 479 | urlpatterns = patterns('', 480 | url(r'^test/(?P(\d)+)/$', TestView.as_view()), 481 | ) 482 | 483 | 访问:`localhost:8000/test/1/` 484 | 485 | response: 486 | 487 | { 488 | "article": { 489 | "classification_id": 5, 490 | "read_count": 0, 491 | "sub_caption": "second", 492 | "content": "asdfasdfasdf", 493 | "caption": "second", 494 | "comment_count": 0, 495 | "id": 32, 496 | "publish": false 497 | }, 498 | "form": [ 499 | { 500 | "field": "caption" 501 | }, 502 | { 503 | "field": "sub_caption" 504 | }, 505 | { 506 | "field": "read_count" 507 | }, 508 | { 509 | "field": "comment_count" 510 | }, 511 | { 512 | "field": "classification" 513 | }, 514 | { 515 | "field": "content" 516 | }, 517 | { 518 | "field": "publish" 519 | } 520 | ], 521 | "object": { 522 | "classification_id": 5, 523 | "read_count": 0, 524 | "sub_caption": "second", 525 | "content": "asdfasdfasdf", 526 | "caption": "second", 527 | "comment_count": 0, 528 | "id": 32, 529 | "publish": false 530 | }, 531 | "view": "" 532 | } 533 | ## 2.0.0 新特点: 534 | 增加对额外数据的序列化支持: 535 | 536 | 当我们想在 model 中加入一些额外的数据并也想被序列化时, 现在可以这样做: 537 | 538 | ```python 539 | def add_extra(article): 540 | comments = Comment.objects.filter(article=article) 541 | setattr(article, 'comments', comments) 542 | 543 | articles = Article.objects.all() 544 | map(add_extra, articles) 545 | result = serializer(articles) 546 | ``` 547 | 548 | 序列化的结果数据中将会包含"comments"哦. 549 | 550 | 额外加入的数据可以是一个普通的数据类型、 另一个 Django model、 字典、 列表甚至 QuerySet 551 | 552 | 553 | ## 版本历史 554 | 555 | ### 当前版本:2.0.7 556 | 557 | ##### 2017.04.26 v2.0.7: 558 | 559 | 修复 FileField、ImageFdFile 序列化问题 560 | 561 | ##### 2017.03.22 v2.0.6: 562 | 563 | 增加对 Python 3 的支持 564 | 565 | ##### 2017.02.25 v2.0.5: 566 | 567 | 增加对 trough 属性支持 568 | 569 | ##### 2016.10.27 v2.0.4: 570 | 571 | 修复 issue #2 572 | 573 | ##### 2016.10.19 v2.0.3: 574 | 优化代码 575 | 576 | 修复已知 bug 577 | 578 | 修复 issue #1 579 | 580 | ##### 2016.6.22 v2.0.2: 581 | 582 | 修复 cbv 下, 当有 include_attr 参数时, MultipleJsonResponseMixin 中所有数据被过滤的问题 583 | 584 | 修复 datetime.datetime 和 datetime.time 都被格式化为 datetime.date 数据 585 | 586 | 优化代码 587 | 588 | ##### 2016.6.14 v2.0.1: 589 | 590 | 修复发布 bug 591 | 592 | ##### 2016.6.13 v2.0.0: 593 | 594 | 重写 serializer, 优化序列化速度; 595 | 596 | 修复已知 bug ; 597 | 598 | 增加对所有 Django Field 的支持; 599 | 600 | 新特性: 增加 model 额外数据的序列化支持 601 | 602 | ##### 2015.10.15 v1.0.0: 603 | 重构代码,修复bug; 604 | 605 | 增加cbv json minxin 类 ; 606 | 607 | 增加对ManyToManyField序列化支持。 608 | 609 | ##### 2015.10.12: v0.0.2: 610 | 611 | bug修复。 612 | 613 | ##### 2015.5.23: v0.0.1: 614 | 615 | 第一版。 616 | 617 | # License 618 | 619 | Copyright © RaPoSpectre. 620 | 621 | All rights reserved. 622 | 623 | Redistribution and use in source and binary forms, with or without 624 | modification, are permitted provided that the following conditions are met: 625 | 626 | Redistributions of source code must retain the above copyright notice, this 627 | list of conditions and the following disclaimer. 628 | Redistributions in binary form must reproduce the above copyright notice, this 629 | list of conditions and the following disclaimer in the documentation and/or 630 | other materials provided with the distribution. 631 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 632 | ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 633 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 634 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 635 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 636 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 637 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 638 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 639 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 640 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 641 | 642 | [1]: https://github.com/bluedazzle/django-simple-serializer/blob/master/english_version.md 643 | 644 | 645 | 646 | 647 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | django==1.8.2 2 | xmltodict==0.9.2 3 | future -------------------------------------------------------------------------------- /src/.coverage: -------------------------------------------------------------------------------- 1 | !coverage.py: This is a private format, don't read it directly!{"arcs": {"/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/nose/plugins/capture.py": [[96, 97], [97, 98], [-1, 58], [58, 59], [-1, 64], [101, 102], [102, -100], [98, -95], [69, -66], [-1, 69], [-1, 101], [64, -61], [59, -55], [-1, 96]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/nose/plugins/testid.py": [[144, 145], [155, -134], [150, 151], [148, 149], [-1, 137], [145, 148], [137, 138], [149, 150], [138, 142], [142, 143], [151, 154], [154, 155], [143, 144]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/db/models/constants.py": [[-1, 3], [6, -3], [3, 6]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/apps/__init__.py": [[1, 2], [-1, 1], [2, -1]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/db/models/fields/files.py": [[7, 8], [386, -1], [65, 67], [170, 171], [-1, 156], [79, 83], [148, -19], [490, -386], [6, 7], [136, 138], [356, 378], [302, 310], [138, 141], [77, 79], [14, 15], [343, -230], [-1, 356], [16, 19], [174, 226], [60, 62], [37, 44], [379, -378], [226, -156], [27, 34], [387, 388], [310, 318], [72, 77], [44, 48], [361, -356], [8, 9], [331, 343], [-1, 378], [171, 174], [57, 60], [-1, 230], [-1, 1], [12, 13], [272, 285], [83, 89], [294, 297], [237, 239], [356, 360], [318, 322], [378, 379], [34, 37], [434, 490], [70, 72], [15, 16], [389, 391], [48, 54], [230, 356], [143, 148], [401, 417], [417, 425], [253, 259], [325, 328], [239, 241], [11, 12], [396, 401], [259, 272], [20, 27], [19, 156], [388, 389], [241, 253], [234, 237], [141, 143], [386, 387], [156, 230], [4, 6], [115, 136], [392, 396], [378, 386], [3, 4], [113, 115], [10, 11], [360, 361], [425, 434], [-1, 19], [322, 325], [1, 2], [156, 170], [67, 70], [391, 392], [328, 331], [285, 294], [-1, 386], [297, 302], [89, 113], [62, 65], [9, 10], [19, 20], [54, 57], [13, 14], [230, 234], [2, 3]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/core/files/uploadedfile.py": [[117, -108], [10, 11], [5, 6], [88, 108], [18, 59], [26, 28], [99, 103], [63, 71], [-1, 59], [6, 7], [59, 88], [88, 91], [28, 35], [25, 26], [56, -18], [59, 62], [7, 9], [91, 92], [-1, 108], [15, 18], [108, 111], [9, 10], [42, 56], [62, 63], [92, 96], [108, -3], [35, 39], [96, 99], [11, 12], [-1, 88], [3, 5], [12, 15], [18, 25], [-1, 3], [111, 112], [71, 77], [77, -59], [39, 42], [112, 117], [-1, 18], [103, -88]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/utils/formats.py": [[47, 76], [10, 11], [5, 6], [149, 170], [13, 14], [170, 192], [26, 31], [6, 7], [12, 13], [213, -2], [36, 47], [76, 88], [25, 26], [128, 139], [88, 125], [22, 24], [4, 5], [-1, 2], [9, 10], [139, 149], [192, 213], [11, 12], [7, 9], [21, 22], [125, 128], [24, 25], [31, 36], [14, 21], [2, 4]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/http/request.py": [[303, 310], [394, 401], [469, 516], [212, 218], [6, 7], [468, 469], [-1, 29], [25, 26], [-1, 316], [227, 239], [-1, 33], [425, 429], [29, 30], [14, 15], [42, 316], [17, 18], [417, 421], [103, 111], [407, 411], [15, 16], [218, 227], [8, 9], [43, 46], [178, 181], [47, 49], [-1, 1], [411, 417], [12, 13], [378, 384], [26, 29], [289, 296], [29, 33], [33, 38], [159, 162], [312, -42], [18, 21], [439, -316], [38, 39], [334, 336], [333, 334], [7, 8], [276, 289], [316, 467], [1, 3], [42, 43], [46, 47], [16, 17], [66, 73], [467, 468], [9, 11], [39, -33], [384, 388], [205, 212], [336, 364], [388, 394], [370, 374], [310, 312], [162, 178], [239, 244], [316, 329], [401, 407], [111, 134], [-1, 42], [429, 435], [421, 425], [73, 103], [49, 66], [201, 205], [134, 159], [551, -1], [33, 42], [3, 4], [184, 188], [5, 6], [516, 530], [374, 378], [188, 201], [30, -29], [4, 5], [296, 303], [530, 551], [364, 370], [21, 25], [11, 12], [329, 333], [13, 14], [244, 276], [181, 184], [435, 439]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/db/models/fields/proxy.py": [[9, 13], [6, 9], [4, 6], [15, 20], [-1, 9], [13, 15], [20, -9], [9, -4], [-1, 4]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/nose/plugins/prof.py": [[80, 81], [81, 82], [74, 75], [83, 84], [-1, 71], [84, -68], [82, 83], [71, 74], [76, 80], [-1, 57], [75, 76], [57, -56]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/core/files/images.py": [[11, 32], [32, -5], [6, 8], [5, 6], [24, -11], [8, 11], [18, 20], [-1, 11], [-1, 5], [11, 15], [22, 24], [15, 16], [16, 18], [20, 22]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/http/utils.py": [[-1, 3], [12, 25], [3, 12], [25, -3]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/db/backends/__init__.py": [[-1, 1], [1, -1]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/nose/importer.py": [[156, 157], [40, 41], [110, 111], [127, 128], [80, 81], [111, -106], [76, 77], [100, 101], [59, 62], [155, 156], [-1, 30], [104, -49], [68, 70], [117, 118], [146, 147], [96, 98], [67, 68], [158, 159], [131, 132], [30, 32], [47, -34], [-1, 40], [89, 96], [167, -164], [65, 66], [54, 59], [165, 166], [71, 74], [144, 146], [96, 97], [103, 70], [45, 47], [66, 67], [151, 155], [75, 76], [166, 167], [-1, 53], [77, 78], [79, 80], [81, 85], [62, 63], [63, 65], [74, 75], [-1, 110], [119, 118], [98, 99], [32, -29], [99, 101], [153, 154], [150, 155], [147, 148], [101, 103], [42, 44], [132, -115], [-1, 165], [160, 156], [-1, 143], [70, 104], [157, 158], [72, 75], [149, 151], [41, 42], [126, 127], [154, 155], [128, 129], [53, 54], [81, 94], [85, 86], [71, 72], [118, 119], [94, 96], [-1, 116], [143, 144], [159, 160], [129, 130], [70, 71], [116, 117], [158, 156], [99, 100], [161, -136], [101, 102], [78, 79], [44, 45], [151, 152], [97, 98], [86, 89], [102, 103], [149, 150], [152, 153], [148, 149], [156, 161], [130, 131], [118, 126]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/nose/core.py": [[202, 203], [36, 37], [44, -40], [200, 201], [42, 43], [-1, 50], [-1, 199], [-1, 187], [62, 65], [193, -181], [204, 205], [55, 56], [-1, 41], [61, 62], [59, 60], [37, -32], [34, 36], [65, 66], [60, 61], [205, 207], [201, 202], [50, 51], [203, 204], [41, 42], [187, 188], [56, 59], [-1, 34], [188, 193], [43, 44], [51, 55], [199, 200]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/http/multipartparser.py": [[-1, 290], [10, 11], [515, -444], [456, 471], [28, 29], [619, 620], [45, 51], [407, 408], [560, 619], [664, -6], [-1, 28], [471, 474], [382, -290], [-1, 619], [22, 23], [434, 437], [444, 541], [313, 316], [16, 19], [-1, 45], [36, -32], [402, 407], [357, 366], [437, -426], [6, 7], [-1, 32], [290, 402], [20, 21], [19, 20], [369, 382], [40, 42], [52, 107], [412, 422], [297, 298], [32, 38], [316, 340], [51, 52], [-1, 444], [29, -28], [422, -402], [35, 36], [426, 429], [541, 560], [23, 25], [430, 434], [366, 369], [45, 290], [12, 14], [408, 412], [107, 264], [42, 45], [620, 624], [264, 277], [631, 664], [9, 10], [-1, 426], [14, 15], [28, 32], [32, 35], [11, 12], [426, 444], [25, 28], [7, 9], [277, 281], [-1, 402], [38, 39], [454, 456], [290, 297], [619, 631], [21, 22], [39, 40], [281, -45], [474, 515], [298, 313], [444, 454], [429, 430], [624, -619], [340, 357], [-1, 6], [15, 16], [402, 426]], "/Users/RaPoSpectre/PycharmProjects/django-simple-serializer/src/test/__init__.py": [[-1, 1], [1, -1]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/utils/decorators.py": [[134, 137], [1, 3], [5, 6], [-1, 137], [73, 82], [82, 94], [94, 134], [-1, 1], [20, 57], [140, 141], [8, 10], [13, 20], [141, -137], [4, 5], [10, 13], [137, -1], [57, 73], [6, 8], [14, -13], [13, 14], [-1, 13], [3, 4], [137, 140]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/core/validators.py": [[14, 17], [86, 87], [-1, 66], [26, 28], [-1, 156], [83, 86], [310, 311], [80, 83], [234, 235], [25, 43], [6, 7], [212, 213], [235, 236], [136, 138], [292, 293], [27, 28], [34, 36], [23, 25], [163, 185], [29, 30], [300, 306], [268, 269], [211, 212], [17, 18], [314, -306], [266, 292], [317, 319], [90, 95], [309, 310], [43, 52], [318, -1], [30, 31], [7, 8], [323, 324], [22, 23], [158, 160], [18, 66], [-1, 265], [199, -136], [88, 90], [8, 9], [153, 155], [-1, 292], [321, 322], [-1, 1], [322, 323], [156, 158], [302, 303], [277, 283], [20, 21], [28, 30], [241, 257], [185, 199], [299, 301], [303, -299], [-1, 317], [-1, 17], [66, 67], [139, 140], [92, -90], [3, 5], [265, 266], [294, 295], [78, 80], [137, 207], [77, 78], [71, 72], [313, 314], [317, 318], [216, 217], [76, 77], [220, 225], [296, -292], [225, 234], [306, 307], [66, 68], [68, 71], [1, 3], [293, 299], [28, 29], [210, 211], [11, 14], [138, 139], [19, 20], [30, 32], [311, 312], [308, 309], [75, 76], [67, 129], [265, 267], [95, -66], [325, -317], [295, 296], [320, 321], [72, 75], [149, 151], [160, -155], [62, -17], [144, 147], [299, 300], [217, 220], [283, -265], [270, 272], [301, 302], [-1, 136], [269, 270], [143, 144], [213, 216], [261, 265], [10, 11], [5, 6], [319, 320], [136, 137], [237, 241], [272, 277], [-1, 306], [31, 32], [257, 258], [-1, 299], [292, 294], [307, 317], [148, 149], [259, 260], [52, 62], [312, 313], [260, 261], [91, 92], [32, 34], [-1, 91], [17, 19], [147, 148], [36, 40], [324, 325], [236, 237], [9, 10], [87, 88], [155, 163], [207, 209], [209, 210], [-1, 26], [26, 27], [21, 22], [151, 152], [306, 308], [152, 153], [140, 141], [129, 136], [141, 143], [258, 259], [40, -25], [267, 268]], "/Users/RaPoSpectre/PycharmProjects/django-simple-serializer/src/dss/TimeFormatFactory.py": [[25, -22], [30, -11], [5, 6], [29, 30], [32, -29], [31, 32], [13, -12], [1, 2], [-1, 1], [11, -1], [-1, 24], [16, 22], [33, 34], [6, 11], [-1, 11], [-1, 17], [2, 3], [22, 29], [11, 12], [3, 5], [17, 18], [12, 15], [18, -15], [24, 25], [-1, 31], [34, -29], [15, 16], [-1, 13], [31, 33]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/nose/pyversion.py": [[136, -135], [49, 50], [-1, 53], [52, 54], [54, 56], [-1, 136], [56, -49], [-1, 51], [49, 58], [-1, 49], [51, -50], [58, -47], [70, -69], [53, -52], [50, 52], [-1, 70]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/db/models/aggregates.py": [[6, 9], [74, 75], [-1, 110], [5, 6], [120, 140], [73, 86], [159, -145], [89, 91], [110, 111], [123, 127], [86, 87], [110, 115], [112, -110], [152, 159], [91, 97], [17, 28], [116, 117], [115, 116], [77, 80], [-1, 86], [120, 121], [32, 38], [97, 104], [140, 145], [13, 73], [41, -13], [111, 112], [146, 148], [75, 77], [38, 41], [-1, 140], [4, 5], [-1, 73], [86, 110], [73, 74], [-1, 145], [121, 123], [14, 15], [28, 32], [87, 88], [15, 17], [145, 146], [9, 13], [127, 134], [134, -120], [148, 152], [-1, 3], [115, 120], [104, -86], [80, -73], [-1, 120], [88, 89], [13, 14], [140, 141], [141, 142], [145, -3], [-1, 115], [142, -140], [3, 4], [117, -115], [-1, 13]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/utils/_os.py": [[1, 3], [10, 11], [5, 6], [109, -1], [16, 17], [-1, 1], [6, 7], [51, 61], [-1, 16], [61, 89], [17, -16], [31, 42], [11, 13], [28, 31], [4, 5], [42, 51], [9, 10], [89, 109], [14, 15], [16, 19], [19, 20], [7, 9], [13, 14], [3, 4], [20, 28], [15, 16]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/core/files/__init__.py": [[-1, 1], [1, 3], [3, -1]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/db/__init__.py": [[10, 11], [17, 29], [66, -1], [34, 35], [29, 50], [1, 2], [-1, 1], [2, 9], [-1, 29], [54, 57], [29, 34], [65, 66], [38, 41], [50, 54], [47, -29], [62, 65], [9, 10], [11, 12], [15, 17], [12, 15], [57, 62], [44, 47], [35, 38], [41, 44]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/core/checks/model_checks.py": [[32, 33], [5, 7], [12, 32], [4, 5], [11, 12], [8, 11], [-1, 2], [33, -2], [7, 8], [2, 4]], "/Users/RaPoSpectre/PycharmProjects/django-simple-serializer/src/dss/__init__.py": [[-1, 1], [1, -1]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/utils/functional.py": [[7, 8], [175, 182], [54, 55], [92, 93], [-1, 244], [-1, 225], [94, 95], [328, 329], [-1, 81], [110, 111], [248, 257], [312, 313], [95, -90], [122, 123], [124, -103], [329, 331], [-1, 16], [363, 370], [228, -223], [112, 113], [220, 223], [380, 401], [223, 231], [4, 5], [97, 103], [298, 307], [385, -380], [105, 106], [249, 251], [64, 69], [115, 116], [-1, 105], [113, 107], [82, 189], [16, 18], [111, 107], [73, 197], [323, 324], [103, 130], [197, 201], [231, 238], [241, 243], [106, 107], [69, 70], [88, 90], [8, 9], [130, 140], [119, 122], [321, 322], [-1, 1], [226, -224], [201, 220], [339, 345], [231, 336], [143, 146], [246, 248], [167, 172], [317, 321], [282, 286], [322, 323], [57, -44], [146, 149], [331, 332], [140, 143], [133, 138], [-1, 53], [3, 4], [5, 7], [401, 414], [44, 51], [313, 314], [224, 228], [64, 73], [-1, 44], [324, 327], [123, -103], [-1, 339], [264, 275], [414, 415], [118, 119], [-1, 249], [107, 106], [110, 112], [358, 363], [286, 298], [157, 162], [189, 194], [-1, 231], [225, 226], [370, -339], [-1, 64], [44, 64], [182, -81], [70, -64], [194, -73], [2, 3], [-1, 133], [118, 124], [336, 339], [51, 52], [415, -1], [384, 385], [172, 175], [339, 380], [-1, 224], [53, 54], [314, 317], [15, 21], [149, 157], [18, -15], [-1, 380], [55, -52], [346, 358], [327, 328], [138, -130], [52, 57], [107, 110], [275, 282], [332, -231], [210, 218], [243, 246], [105, 114], [192, -189], [116, 118], [1, 2], [162, 167], [9, 15], [218, -201], [345, 346], [81, 87], [91, 92], [208, 210], [106, 105], [-1, 91], [244, -243], [238, 241], [-1, 192], [90, 97], [93, 94], [307, 312], [380, 384], [251, -248], [21, 44], [87, 88], [81, 82], [257, 264], [-1, 208], [114, 115]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/utils/dateformat.py": [[260, 264], [326, 330], [93, 104], [120, 124], [28, 29], [334, -199], [156, 160], [45, 58], [26, 28], [252, 256], [236, 240], [-1, 199], [199, 342], [179, -43], [32, 33], [24, 25], [256, 260], [268, 272], [-1, 32], [128, 143], [64, 70], [12, 13], [58, 64], [70, 74], [272, 285], [200, 202], [25, 26], [289, 296], [330, 334], [112, 116], [43, 199], [104, 112], [18, 20], [43, 45], [16, 17], [143, 156], [213, 217], [13, 15], [300, 326], [221, 225], [217, 221], [124, 128], [248, 252], [175, 179], [33, -32], [225, 229], [285, 289], [17, 18], [-1, 12], [348, -12], [160, 175], [116, 120], [199, 200], [229, 236], [244, 248], [29, 32], [-1, 43], [20, 21], [32, 43], [202, 206], [206, 213], [296, 300], [240, 244], [74, 93], [264, 268], [15, 16], [21, 24], [342, 348]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/nose/plugins/debug.py": [[40, 41], [41, 42], [42, 43], [-1, 40], [43, -37]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/db/models/fields/subclassing.py": [[31, 47], [12, 15], [-1, 15], [8, 10], [15, 31], [20, -15], [10, 12], [-1, 8], [47, -8], [38, 43], [43, -31], [-1, 31], [35, 38], [31, 34], [15, 19], [19, 20], [34, 35]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/utils/six.py": [[-1, 225], [426, 427], [125, 126], [410, 412], [456, 457], [290, 291], [458, 459], [222, 225], [332, 333], [299, 300], [646, 650], [122, 137], [281, 282], [381, 382], [283, 284], [628, 629], [270, 271], [95, 98], [243, 244], [273, 274], [297, 301], [181, 182], [413, 416], [171, -169], [392, 393], [546, 547], [323, 324], [595, 617], [325, 326], [668, 669], [416, 421], [569, 572], [84, 86], [101, 122], [-1, 532], [201, 202], [-1, 778], [214, 220], [367, 368], [247, 249], [821, 826], [444, 443], [115, -101], [329, 330], [187, -185], [50, 51], [262, 263], [195, 196], [49, 50], [436, 437], [315, 316], [750, 751], [572, 575], [36, 37], [762, 771], [70, 73], [174, 175], [630, 631], [175, 174], [-1, 178], [511, 512], [305, 306], [537, 538], [-1, 416], [819, 820], [279, 280], [89, -84], [153, 154], [137, 139], [635, 638], [778, -777], [73, 78], [532, 534], [380, 381], [534, -532], [297, 298], [386, 387], [78, 84], [503, 504], [169, 173], [-1, 181], [749, 750], [399, 400], [445, 447], [178, -177], [183, -180], [159, -157], [335, 336], [374, 375], [782, 798], [407, 406], [-1, 75], [543, 544], [-1, 664], [225, 231], [-1, 436], [-1, 104], [393, 394], [334, 335], [124, 128], [186, 187], [494, 495], [378, 379], [465, 466], [154, 155], [260, 261], [-1, 84], [-1, 776], [377, 378], [691, 695], [379, 380], [624, 626], [368, -367], [526, 529], [348, 349], [-1, 137], [400, 401], [427, 426], [430, 432], [155, -139], [426, 428], [28, 29], [157, -137], [667, 668], [23, 25], [289, 290], [642, 646], [469, 474], [158, 159], [-1, 174], [252, 253], [299, 297], [39, 48], [363, 364], [256, 257], [758, 760], [373, 374], [91, 92], [139, 157], [128, 134], [126, -124], [61, -60], [455, 456], [60, -59], [198, 201], [134, -122], [453, 454], [232, 233], [669, 672], [450, 453], [300, 297], [303, 305], [276, 277], [310, -309], [355, 357], [623, 624], [272, 273], [105, 110], [340, 342], [301, 303], [457, 458], [575, 578], [331, 332], [364, 367], [90, 91], [333, 334], [271, 272], [-1, 162], [194, 195], [443, 444], [292, 293], [542, 543], [278, 279], [437, -436], [358, 357], [495, 497], [288, 289], [-1, 90], [267, 268], [357, 359], [69, 70], [423, 424], [320, 321], [342, 344], [421, 422], [474, 485], [666, 667], [51, 52], [345, 348], [401, 402], [664, 665], [354, 355], [245, 246], [244, 245], [327, 328], [81, -78], [180, 185], [261, 262], [578, 581], [387, 388], [257, 258], [396, 397], [295, 297], [239, 240], [406, 408], [196, 197], [776, 779], [181, 183], [779, -771], [-1, 348], [62, 63], [-1, 453], [454, 455], [275, 276], [353, 354], [500, 503], [538, 539], [662, 675], [277, 278], [251, 252], [581, 583], [54, 59], [174, -173], [348, 353], [-1, 101], [84, 101], [258, 259], [617, 620], [205, 214], [532, 537], [504, 508], [412, 413], [529, 532], [238, 239], [202, 203], [-1, 59], [250, 251], [631, 632], [25, 26], [27, 28], [293, 294], [122, 124], [242, 243], [545, 546], [328, 329], [622, 623], [626, 628], [234, 235], [137, 162], [173, 177], [153, 155], [672, -662], [777, -776], [518, 526], [321, 322], [314, 315], [633, 634], [268, 269], [591, 592], [424, 426], [843, 850], [336, 338], [80, 81], [309, 314], [110, -103], [462, -453], [-1, 158], [634, 635], [395, 396], [583, 585], [237, 238], [294, 295], [853, 854], [259, 260], [249, 250], [32, 36], [322, 323], [59, 60], [447, 449], [330, 331], [284, 285], [338, 339], [246, 247], [241, 242], [680, 686], [665, 666], [585, 587], [-1, 87], [233, 234], [384, 385], [309, 310], [512, 518], [191, 205], [539, 542], [391, 392], [508, 511], [394, 395], [389, 390], [104, 105], [460, 462], [266, 267], [31, 32], [306, 309], [771, 782], [620, 622], [385, 386], [761, 762], [326, 327], [87, -86], [75, -73], [287, 288], [37, 39], [285, 286], [361, 363], [349, -348], [231, 232], [324, 325], [162, 168], [638, 642], [177, 180], [318, 319], [466, 469], [459, 460], [86, 89], [269, 270], [499, 500], [140, 141], [398, 399], [-1, 186], [170, 171], [168, 169], [402, 403], [798, 819], [298, 299], [383, 384], [359, 361], [416, 417], [-1, 367], [390, 391], [820, 821], [235, 236], [760, 761], [253, 254], [59, 62], [291, 292], [240, 241], [404, 406], [367, 372], [498, 499], [695, 696], [443, 445], [650, 662], [629, 630], [226, 227], [192, 194], [751, 758], [406, 407], [197, 198], [63, 69], [408, 410], [264, 265], [112, 115], [449, 450], [-1, 1], [838, 843], [485, 494], [316, 317], [497, 498], [-1, 122], [52, 54], [182, -180], [428, 430], [-1, 61], [417, -416], [587, 588], [113, -112], [220, -162], [422, 423], [589, 590], [263, 264], [280, 281], [550, 569], [588, 589], [103, 112], [317, 318], [98, -89], [-1, 125], [227, -225], [696, 749], [255, 256], [544, 545], [632, 633], [225, 226], [101, 103], [376, 377], [203, -191], [338, 340], [274, 275], [48, 49], [92, 95], [286, 287], [1, 23], [441, 443], [254, 255], [282, 283], [592, 595], [375, 376], [776, 777], [403, 404], [-1, 80], [547, 550], [436, 441], [686, 691], [162, 222], [319, 320], [675, 677], [152, 153], [339, 338], [372, 373], [29, 31], [388, 389], [-1, 113], [854, -1], [-1, 192], [141, 152], [185, 191], [357, 358], [453, 465], [433, 436], [265, 266], [-1, 170], [590, 591], [850, 853], [677, 680], [432, 433], [-1, 140], [26, 27], [-1, 309], [397, 398], [344, 345], [236, 237], [382, 383], [826, 838]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/nose/suite.py": [[83, -78], [482, 486], [-1, 79], [338, 339], [421, 427], [420, 421], [94, 95], [362, 367], [397, 401], [396, 397], [402, 403], [315, -300], [479, 480], [-1, 173], [113, 114], [217, 218], [466, 460], [218, 224], [52, 53], [563, 564], [270, 274], [454, 451], [445, 446], [209, 216], [457, 459], [82, 83], [419, 420], [546, 548], [293, 297], [548, 551], [53, -49], [285, 286], [-1, 52], [-1, 457], [290, 286], [361, 362], [313, 315], [97, 98], [-1, 356], [443, 445], [545, 546], [107, 113], [346, 347], [226, 227], [158, -146], [446, 451], [-1, 103], [114, -102], [373, 374], [357, 358], [156, 157], [351, 340], [418, 419], [460, 471], [323, 324], [478, 479], [95, 97], [-1, 539], [406, 407], [453, 454], [-1, 372], [552, 544], [327, 328], [340, -322], [484, 485], [278, 282], [277, 278], [365, 366], [448, 451], [-1, 301], [372, -371], [427, -409], [-1, 474], [314, 315], [302, 303], [310, 315], [273, -268], [337, 338], [452, 453], [298, -268], [350, 340], [-1, 435], [103, 104], [564, -562], [480, 481], [365, 367], [349, 350], [460, 462], [348, 349], [374, 372], [287, 288], [329, 330], [462, 463], [544, 554], [324, 325], [274, 277], [403, 404], [177, -176], [208, 209], [331, 337], [474, 475], [269, 270], [341, 342], [79, 80], [539, 540], [313, 314], [204, 205], [-1, 177], [467, 460], [-1, -371], [80, 81], [98, -93], [-1, 269], [155, 156], [68, -67], [330, 331], [476, 477], [366, 367], [482, 483], [96, 95], [150, 151], [173, -172], [372, 373], [95, 96], [292, 286], [544, 545], [345, 346], [324, 329], [358, 360], [567, -566], [308, 309], [-1, 148], [153, 154], [325, 326], [-1, 394], [-1, 563], [224, 217], [423, 424], [151, 153], [477, 486], [481, 482], [465, 467], [286, 287], [157, 158], [424, 427], [554, -538], [407, -393], [228, -197], [297, 298], [-1, 323], [441, 443], [451, -429], [217, 226], [422, 423], [435, 436], [345, 348], [288, 289], [401, 402], [360, 361], [270, 272], [301, 302], [551, 552], [445, 447], [485, 482], [405, 406], [451, 452], [291, 292], [81, -78], [80, 82], [364, 365], [436, 441], [303, 304], [368, -355], [540, 543], [104, 105], [367, 368], [286, 293], [-1, 94], [543, 544], [282, 283], [283, 285], [216, 217], [483, 484], [486, -473], [404, 405], [447, 448], [-1, 567], [394, 396], [205, 208], [350, 351], [312, 313], [421, 422], [105, 107], [304, 308], [-1, 68], [-1, 201], [546, 547], [289, 291], [477, 478], [547, 544], [356, 357], [347, 340], [227, 228], [326, 327], [459, 460], [463, 465], [465, 466], [309, 310], [342, 345], [154, 155], [328, -322], [339, 340], [149, 150], [289, 290], [-1, 418], [201, 204], [148, 149], [475, 476], [361, 364], [471, -456], [340, 341], [309, 312], [272, 273]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/db/models/sql/query.py": [[1285, 1311], [767, 776], [1668, 1672], [1960, 2027], [981, 1021], [106, 108], [458, 469], [34, 35], [1339, 1438], [1857, 1876], [1021, 1041], [1240, 1243], [2080, -8], [11, 12], [1774, 1807], [1638, 1646], [228, 231], [932, 966], [-1, 99], [65, 68], [1646, 1656], [105, 106], [966, 972], [1906, 1918], [68, 75], [238, 246], [17, 18], [-1, 47], [1938, 1945], [748, 767], [108, 110], [94, -47], [47, 50], [2086, 2102], [18, 19], [15, 16], [21, 24], [2102, 2110], [231, 238], [708, 712], [1537, 1604], [8, 9], [75, 87], [472, 481], [1888, 1896], [216, 223], [1896, 1902], [1511, 1537], [12, 13], [186, 192], [678, 704], [205, 216], [1876, 1882], [47, 99], [882, 890], [1485, 1511], [319, 322], [1243, 1256], [2027, -99], [37, 40], [2110, -2080], [1114, 1115], [-1, 8], [1611, 1632], [192, 198], [2047, 2061], [99, 102], [1882, 1888], [1945, 1960], [365, 458], [24, 27], [870, 882], [31, 34], [30, 31], [87, 90], [1729, 1739], [16, 17], [592, 678], [102, 104], [776, 823], [19, 20], [1604, 1608], [52, 65], [1632, 1638], [1664, 1668], [99, 2047], [1672, 1679], [972, 981], [1709, 1729], [1312, 1339], [1739, 1758], [1608, 1611], [13, 15], [1054, 1073], [1073, 1100], [1438, 1485], [1100, 1114], [330, 365], [1807, 1813], [27, 30], [823, 870], [1656, 1664], [469, 472], [10, 11], [2072, 2080], [712, 748], [104, 105], [110, 186], [322, 325], [1311, 1312], [35, 37], [-1, 2080], [1758, 1774], [223, 228], [1813, 1833], [704, 708], [40, 47], [198, 205], [2061, 2072], [1115, 1240], [481, 592], [2080, 2084], [9, 10], [90, 94], [890, 932], [246, 319], [2084, 2086], [1679, 1709], [325, 330], [1833, 1857], [1902, 1906], [1041, 1054], [50, 52], [20, 21], [1918, 1938], [1256, 1285]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/nose/plugins/cover.py": [[182, 183], [263, 271], [173, -168], [164, -159], [-1, 182], [271, -259], [-1, 164], [-1, 263], [-1, 173]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/db/backends/utils.py": [[1, 3], [10, 11], [5, 6], [38, 50], [178, 188], [16, 17], [66, -16], [-1, 1], [6, 7], [188, -1], [16, 72], [-1, 72], [13, 16], [-1, 16], [76, 92], [11, 13], [4, 5], [21, 23], [23, 30], [50, 58], [9, 10], [172, 178], [120, 131], [162, 172], [72, 116], [7, 9], [72, 76], [30, 35], [116, 120], [131, 162], [58, 66], [17, 21], [35, 38], [3, 4], [92, -72]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/core/checks/security/__init__.py": [[-1, 1], [1, -1]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/core/serializers/base.py": [[11, 16], [-1, 126], [129, 131], [22, 23], [165, 169], [23, -21], [183, -3], [144, -126], [99, 105], [16, 21], [93, 99], [117, -26], [16, 17], [126, 129], [6, 7], [126, 149], [105, 111], [12, 13], [26, 29], [111, 117], [141, 144], [149, 159], [169, -149], [-1, 16], [81, 87], [161, 165], [33, 35], [21, 26], [-1, 21], [131, 141], [8, 11], [87, 93], [-1, 11], [18, -16], [75, 81], [11, 12], [17, 18], [-1, 26], [4, 6], [29, 33], [-1, 3], [3, 4], [149, 183], [35, 75], [21, 22], [26, 126], [-1, 149], [7, 8], [13, -11], [159, 161]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/utils/html.py": [[134, 137], [-1, 137], [40, 41], [137, 138], [75, 78], [383, 384], [365, 373], [6, 7], [24, 27], [-1, 72], [36, 37], [157, -137], [35, 36], [18, 20], [29, 30], [39, 39], [193, 196], [14, 15], [33, 34], [39, -39], [34, 35], [44, 55], [67, 68], [72, -72], [68, 72], [65, 66], [-1, 1], [58, 59], [12, 13], [154, 157], [401, -373], [265, 362], [66, 67], [390, 391], [23, 24], [161, 180], [3, 5], [9, 10], [148, 151], [38, 39], [57, 58], [138, 148], [384, 389], [219, 226], [59, 60], [216, 219], [41, 44], [1, 3], [61, 62], [196, 210], [94, 105], [30, 31], [151, 154], [210, 213], [32, 33], [137, 161], [180, 193], [389, 390], [39, 40], [125, 134], [362, 365], [229, 265], [81, 94], [72, 72], [-1, 39], [213, 216], [78, 81], [10, 11], [5, 6], [105, 125], [31, 32], [27, 29], [63, 64], [378, 383], [37, 38], [15, 18], [72, 75], [55, 57], [-1, 378], [60, 61], [373, -1], [62, 63], [226, 229], [11, 12], [7, 9], [64, 65], [20, 23], [13, 14], [391, 401]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/http/response.py": [[7, 8], [210, 214], [54, 55], [505, 509], [360, 365], [122, 123], [40, 41], [355, -353], [-1, 517], [419, 425], [34, 35], [74, 75], [-1, 505], [173, 181], [116, 118], [103, 105], [80, 81], [330, 389], [6, 7], [471, 472], [76, 77], [51, 52], [216, 219], [270, 274], [467, 468], [170, 172], [25, 26], [36, 37], [326, -94], [490, -489], [415, 419], [27, 28], [464, -463], [289, 290], [265, 270], [214, 216], [223, 265], [29, 30], [167, 169], [169, 170], [384, -330], [14, 15], [-1, 485], [-1, 467], [16, 19], [55, 56], [-1, 493], [398, 400], [33, 34], [72, 73], [342, -339], [129, 140], [109, 110], [102, 103], [45, 46], [144, 155], [450, 463], [82, 83], [15, 16], [498, 500], [21, 24], [351, 353], [124, 127], [471, 485], [158, 160], [69, 70], [-1, 509], [330, 335], [280, 302], [375, 378], [140, 144], [506, -505], [71, 72], [118, 120], [65, 66], [-1, 1], [58, 59], [100, 102], [201, 207], [12, 13], [453, 460], [91, -90], [489, 490], [68, 69], [468, -467], [450, 451], [493, 494], [127, -105], [517, -1], [49, 50], [513, 517], [436, 438], [37, 38], [478, -471], [-1, 471], [-1, 360], [73, 74], [50, 51], [497, 505], [46, 47], [467, 471], [486, -485], [411, 415], [500, -497], [75, 76], [222, 223], [335, 337], [367, -357], [372, 375], [463, 467], [90, 91], [77, 78], [3, 4], [378, 381], [381, 384], [57, 58], [62, 63], [94, 330], [66, 67], [59, 60], [1, 3], [42, 43], [-1, 197], [28, 29], [357, 369], [438, -432], [497, 498], [30, 31], [340, 342], [87, 90], [-1, 463], [432, 435], [-1, 355], [61, 62], [32, 33], [197, 198], [-1, 90], [196, 201], [323, 326], [406, 411], [11, 12], [-1, 450], [8, 10], [120, 121], [400, 406], [-1, 497], [-1, 109], [451, 453], [39, 40], [48, 49], [348, 351], [337, 339], [485, 486], [428, -389], [181, 186], [530, -517], [41, 42], [-1, 432], [199, -196], [38, 39], [43, 44], [105, 129], [517, 528], [489, 493], [53, 54], [47, 48], [314, 317], [505, 506], [432, 450], [509, 510], [186, 194], [514, -513], [67, 68], [155, 158], [-1, 340], [194, -160], [83, 87], [79, 80], [10, 11], [-1, 389], [52, 53], [5, 6], [290, -280], [160, 196], [472, 474], [493, 497], [317, 323], [311, 314], [-1, 94], [435, 436], [31, 32], [-1, 167], [396, 398], [513, 514], [24, 25], [70, 71], [353, 357], [63, 64], [389, 396], [-1, 289], [56, 57], [4, 5], [207, 210], [510, -509], [494, -493], [528, 530], [115, 116], [485, 489], [110, 113], [113, 114], [64, 65], [389, 432], [344, 348], [60, 61], [274, 280], [365, 367], [-1, 513], [369, 372], [463, 464], [90, 94], [78, 79], [460, -450], [44, 45], [198, 199], [19, 20], [35, 36], [81, 82], [339, 344], [26, 27], [509, 513], [13, 14], [123, 124], [-1, 489], [114, 115], [121, 122], [20, 21], [172, 173], [-1, 330], [474, 478], [219, 222], [94, 100], [302, 311], [425, 428]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/nose/proxy.py": [[165, -162], [62, 64], [-1, 110], [-1, 163], [-1, 116], [-1, 168], [168, 169], [78, 80], [46, 47], [-1, 102], [80, 81], [-1, 43], [47, -42], [58, 59], [64, -49], [30, -29], [117, 118], [178, -175], [104, -98], [112, -109], [103, 104], [43, 45], [176, 177], [111, 112], [177, 178], [170, -167], [169, 170], [-1, 176], [-1, 30], [164, 165], [102, 103], [-1, 57], [83, -77], [81, 82], [57, 62], [60, 62], [118, -115], [-1, 78], [45, 46], [163, 164], [110, 111], [57, 58], [116, 117], [82, 83], [59, 60]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/nose/plugins/isolate.py": [[61, 62], [-1, 61], [62, -58]], "/Users/RaPoSpectre/PycharmProjects/django-simple-serializer/src/test/test_Mixin.py": [[-1, 27], [21, -12], [49, 51], [42, 43], [30, 32], [12, 27], [39, 40], [69, 70], [60, 63], [-1, 54], [40, 41], [13, 17], [55, 56], [18, 19], [51, 54], [76, 77], [22, 23], [44, -36], [70, 71], [54, 55], [51, 52], [32, 33], [6, 7], [-1, 32], [48, 68], [12, 13], [23, 24], [47, -2], [-1, 29], [80, -68], [56, 57], [29, 30], [54, 66], [-1, 37], [-1, 51], [15, -13], [66, -48], [27, 28], [32, 34], [63, -54], [52, -51], [75, 76], [-1, 64], [72, 73], [36, -27], [79, 80], [-1, 2], [78, 79], [58, 60], [-1, 61], [41, 42], [2, 3], [-1, 69], [73, 74], [38, 39], [33, -32], [37, 38], [43, 44], [61, -60], [71, 72], [7, 9], [64, -63], [-1, 12], [28, 36], [-1, 47], [4, 6], [77, 78], [47, 48], [74, 75], [-1, 14], [68, -47], [-1, 22], [57, 58], [17, 21], [-1, 49], [19, -17], [27, 47], [14, 15], [24, -21], [-1, 18], [3, 4], [34, -28], [9, 12]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/utils/deconstruct.py": [[6, 9], [23, -19], [22, 23], [4, 6], [-1, 21], [53, 54], [60, -9], [-1, 2], [58, 60], [16, 18], [56, -18], [19, 25], [9, -2], [-1, 16], [21, 22], [-1, 19], [25, 53], [18, 58], [2, 4], [54, 56]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/http/cookie.py": [[1, 3], [5, 6], [22, 26], [78, -31], [31, 32], [16, 17], [-1, 1], [6, 7], [12, 13], [26, 29], [29, 31], [10, 12], [31, 91], [7, 10], [68, 78], [17, 22], [32, 42], [91, -1], [3, 5], [14, 16], [13, 14], [42, 67], [-1, 31], [67, 68]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/utils/crypto.py": [[10, 11], [81, 107], [8, 9], [18, 19], [13, 14], [6, 7], [125, -3], [54, 79], [116, 124], [16, 18], [11, 13], [124, 125], [9, 10], [14, 15], [3, 4], [19, 20], [79, 81], [28, 53], [4, 6], [53, 54], [15, 16], [-1, 3], [20, 28], [107, 116], [7, 8]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/utils/version.py": [[1, 3], [55, 63], [36, 37], [34, 42], [-1, 36], [63, -1], [10, 34], [49, 50], [-1, 1], [52, -42], [22, 27], [38, 38], [37, 38], [7, 10], [38, -38], [19, 21], [46, 49], [-1, 46], [4, 5], [39, -34], [42, 55], [27, 31], [-1, 38], [-1, 12], [38, 39], [21, 22], [5, 7], [31, -10], [12, 19], [3, 4], [50, 52]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/utils/itercompat.py": [[8, -5], [5, 8], [-1, 5]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/dispatch/dispatcher.py": [[121, 125], [125, 127], [8, 13], [23, 31], [133, 134], [-1, 23], [17, 20], [40, 41], [13, 17], [129, 130], [42, 43], [306, -1], [31, 32], [248, -246], [23, 306], [1, 2], [120, 121], [-1, 1], [-1, 14], [115, 116], [118, 119], [40, 42], [109, 112], [-1, 86], [114, 115], [129, 133], [134, -53], [14, 15], [15, -13], [39, 40], [118, 121], [205, 246], [116, 118], [178, 205], [53, 136], [296, -23], [44, 50], [257, 296], [2, 3], [130, 129], [51, -32], [246, 257], [43, 44], [136, 175], [3, 5], [128, 129], [41, 42], [20, 23], [127, 128], [32, 53], [14, 16], [89, 109], [119, 120], [-1, 39], [5, 7], [-1, 248], [86, 89], [175, 178], [50, 51], [16, -13], [7, 8], [112, 114]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/core/exceptions.py": [[-1, 66], [72, 73], [13, 17], [18, 19], [-1, 36], [48, -46], [5, 8], [56, 61], [76, 77], [36, 37], [61, 66], [27, 28], [17, 18], [84, 85], [4, 5], [66, 71], [36, 41], [58, -56], [14, -13], [71, 76], [43, -41], [67, 68], [-1, 27], [22, 23], [172, -84], [8, 9], [29, -27], [134, 142], [-1, 76], [63, -61], [156, 167], [-1, 56], [167, 172], [-1, 17], [66, 67], [86, 134], [23, 24], [24, -22], [9, 10], [77, 78], [38, -36], [-1, 8], [57, 58], [52, 53], [32, 36], [17, 22], [73, -71], [8, 13], [28, 29], [46, 47], [-1, 71], [68, -66], [61, 62], [32, 33], [22, 27], [-1, 41], [84, -3], [10, -8], [-1, 51], [47, 48], [27, 32], [42, 43], [41, 42], [51, 52], [-1, 3], [-1, 22], [85, 86], [71, 72], [53, -51], [46, 51], [81, 84], [-1, 32], [56, 57], [37, 38], [76, 81], [3, 4], [41, 46], [-1, 46], [-1, 61], [51, 56], [62, 63], [142, 148], [33, -32], [13, 14], [-1, 84], [19, -17], [148, 156], [78, -76], [-1, 13]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/db/models/signals.py": [[6, 9], [69, 71], [15, 20], [-1, 9], [63, 64], [1, 2], [-1, 1], [64, 65], [56, 57], [68, 69], [-1, 16], [3, 6], [16, 17], [54, 56], [33, -9], [60, 61], [9, 53], [13, 15], [58, 60], [65, 68], [2, 3], [17, 18], [9, 13], [53, 54], [61, 63], [20, 33], [18, -15], [57, 58], [72, -1], [71, 72]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/forms/models.py": [[1175, 1183], [1049, 1050], [1109, -1086], [-1, 1227], [714, 725], [1113, 1114], [18, 19], [1167, 1171], [250, -244], [848, 849], [564, 570], [944, 1002], [556, 557], [819, 820], [570, 575], [1235, 1238], [-1, 307], [1087, 1091], [602, 621], [1051, 1052], [550, 816], [1208, 1218], [910, 939], [1052, 1055], [243, 307], [29, 30], [1118, 1122], [871, 889], [1002, 1003], [1228, 1229], [1122, 1123], [893, 910], [438, 449], [1200, 1208], [243, 244], [1086, 1113], [17, 18], [850, 851], [307, 468], [629, 642], [725, 733], [1045, 1086], [1005, 1006], [-1, 848], [158, 159], [15, 16], [71, 116], [644, 647], [22, 23], [159, 231], [1227, 1319], [1221, -1113], [8, 9], [621, 625], [469, -468], [776, -550], [1006, 1007], [232, -231], [736, 762], [-1, 245], [1004, 1005], [26, 29], [1123, 1124], [338, 380], [1082, -1045], [468, 469], [24, 25], [247, 249], [817, 818], [550, 553], [1113, 1227], [1055, 1067], [245, 247], [1124, 1147], [32, 35], [-1, 4], [465, -307], [23, 24], [584, 602], [-1, 550], [1164, 1167], [4, 6], [468, 472], [1229, 1230], [1231, 1232], [733, 736], [249, 250], [308, 309], [-1, 243], [818, 819], [-1, 1113], [939, -848], [889, 893], [1238, 1239], [384, 404], [449, 465], [30, 31], [19, 22], [575, 584], [1198, 1200], [16, 17], [25, 26], [1239, 1240], [554, 556], [625, 629], [1319, -4], [474, 550], [-1, 231], [1300, 1307], [849, 850], [1233, 1235], [-1, 1045], [157, 158], [1183, 1198], [553, 554], [310, 338], [307, 308], [1240, 1245], [6, 8], [762, 776], [309, 310], [-1, 468], [1307, -1227], [820, 821], [1147, 1158], [116, 157], [231, 243], [851, 866], [1008, 1045], [35, 38], [1171, 1175], [642, 644], [1230, 1231], [1003, 1004], [1091, 1105], [31, 32], [1218, 1221], [1232, 1233], [244, -243], [472, 473], [848, 944], [70, 71], [1105, 1109], [1114, 1117], [1007, 1008], [10, 12], [473, 474], [1245, 1250], [1250, 1263], [557, 564], [231, 232], [866, 871], [821, 848], [1117, 1118], [9, 10], [1086, 1087], [380, 384], [1158, 1164], [1227, 1228], [816, 817], [1045, 1049], [12, 15], [1050, 1051], [404, 438], [38, 70], [1263, 1300], [1067, 1082], [647, 714], [-1, 1086]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/forms/utils.py": [[6, 9], [1, 3], [10, 11], [133, 136], [142, -78], [124, 127], [46, 47], [80, 154], [130, 133], [178, -1], [-1, 45], [16, 17], [136, 142], [-1, 1], [12, 13], [83, 84], [67, 74], [108, 118], [47, 78], [121, 124], [45, 52], [21, 45], [154, 178], [92, 95], [78, 83], [79, 80], [13, 15], [74, -45], [9, 10], [78, 79], [127, 130], [18, 21], [11, 12], [59, 67], [17, 18], [118, 121], [4, 6], [-1, 78], [45, 46], [3, 4], [56, 59], [95, 105], [52, 53], [84, 92], [105, 108], [15, 16], [53, 56]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/db/models/base.py": [[572, 581], [1398, 1428], [855, 863], [1228, 1243], [519, 524], [1174, 1196], [40, 41], [13, 17], [72, 312], [34, 35], [312, 321], [827, 855], [-1, 385], [1650, 1662], [6, 7], [1698, -1], [545, 562], [36, 37], [880, 896], [1243, 1252], [494, 501], [35, 36], [29, 30], [654, 655], [637, 654], [1428, 1458], [942, 994], [562, 567], [1373, 1398], [714, 749], [775, 776], [22, 23], [484, 494], [896, 912], [912, 917], [876, 880], [581, 637], [-1, 1], [377, -373], [926, 942], [12, 13], [874, 876], [751, 775], [1682, 1695], [1675, 1682], [501, 506], [37, 38], [-1, 73], [749, 751], [570, 572], [713, 714], [44, 68], [31, 34], [23, 24], [917, 926], [38, 39], [77, 78], [3, 4], [24, 25], [321, 328], [373, 376], [68, 71], [1, 3], [1695, 1698], [1318, 1373], [28, 29], [373, 385], [1149, 1174], [994, 1037], [30, 31], [655, 711], [79, -72], [1113, 1149], [-1, 373], [1252, 1263], [376, 377], [1298, 1318], [1066, 1083], [506, 516], [7, 9], [39, 40], [863, 874], [1662, 1675], [68, 373], [17, 21], [71, 72], [386, 388], [516, 519], [1573, -385], [10, 11], [1263, 1298], [5, 6], [1083, 1113], [385, 1650], [567, 570], [776, 827], [385, 386], [524, 545], [4, 5], [-1, 68], [388, 484], [9, 10], [1511, 1573], [78, 79], [11, 12], [25, 28], [711, 713], [73, 77], [21, 22], [1196, 1228], [1458, 1511], [41, 44], [328, -68], [1037, 1066]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/db/utils.py": [[54, 55], [62, 64], [54, 58], [18, 19], [31, -30], [135, 139], [257, -139], [140, 148], [-1, 135], [190, 233], [35, -34], [39, -38], [4, 5], [51, -50], [-1, 30], [64, 72], [183, 184], [146, -140], [188, 190], [-1, 34], [16, 18], [46, 50], [30, 31], [15, 16], [266, -1], [22, 23], [47, -46], [148, 162], [22, 26], [8, 9], [-1, 50], [-1, 1], [23, -22], [108, 135], [287, 303], [-1, 266], [186, 188], [-1, 139], [26, 30], [50, 51], [99, -58], [139, 140], [-1, 38], [38, 39], [135, 136], [38, 42], [267, 273], [306, 308], [34, 35], [34, 38], [42, 43], [43, -42], [-1, 54], [46, 47], [27, -26], [19, 22], [266, 267], [305, 306], [139, 266], [55, -54], [188, 188], [308, 321], [251, 254], [271, -267], [72, 75], [30, 34], [286, 305], [-1, 42], [2, 3], [145, 146], [6, 8], [248, 251], [-1, 22], [162, 183], [3, 4], [188, -188], [-1, 58], [10, 11], [5, 6], [361, -266], [75, 99], [58, 62], [353, 361], [321, 353], [1, 2], [233, 245], [184, 185], [-1, 188], [58, 108], [136, -135], [50, 54], [-1, 271], [-1, 46], [254, 257], [9, 10], [11, 12], [12, 15], [-1, 26], [26, 27], [303, -286], [273, 286], [-1, 145], [185, 186], [42, 46], [-1, 287], [245, 248]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/db/models/options.py": [[82, 86], [86, 87], [652, 672], [560, 579], [17, 20], [475, 490], [252, 289], [190, 197], [707, 711], [453, 471], [44, -43], [92, 149], [375, 404], [23, 25], [4, 5], [160, 174], [14, 15], [30, 39], [-1, 47], [641, 652], [349, 375], [39, 42], [579, 580], [22, 23], [8, 9], [43, 46], [-1, 1], [581, 599], [12, 13], [711, 728], [-1, 86], [324, 333], [743, -86], [434, 438], [611, 619], [438, 453], [624, 641], [60, 82], [15, 16], [430, 434], [417, 430], [319, 324], [672, 707], [619, 624], [-1, 44], [1, 3], [42, 43], [90, 92], [610, 611], [556, 560], [289, 319], [16, 17], [183, 190], [339, 349], [57, -46], [599, 600], [174, 179], [197, 252], [-1, 42], [601, 610], [336, 339], [42, 60], [6, 8], [149, 160], [21, 22], [27, 30], [471, 475], [3, 4], [46, -42], [10, 11], [47, 57], [5, 6], [505, 556], [25, 27], [728, 742], [333, 336], [89, 90], [87, -1], [580, 581], [9, 10], [11, 12], [86, 89], [742, 743], [13, 14], [404, 417], [490, 505], [600, 601], [20, 21], [179, 183]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/core/files/locks.py": [[24, 29], [92, 93], [93, 107], [89, 90], [18, 19], [90, 91], [107, 111], [29, 89], [111, -18], [-1, 18], [91, 92], [21, 24], [19, 21]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/db/models/sql/where.py": [[402, -362], [10, 11], [23, 31], [296, 311], [5, 6], [327, 335], [-1, 23], [8, 10], [316, 322], [-1, 362], [366, 367], [439, 442], [413, 419], [-1, 335], [167, 264], [352, 353], [412, -3], [6, 7], [31, 327], [353, 357], [12, 13], [19, 20], [344, 347], [367, 373], [419, 439], [31, 47], [348, -344], [412, 413], [340, -335], [335, 338], [47, 48], [50, 83], [27, 28], [338, 340], [378, 402], [373, 378], [357, -352], [264, 277], [328, 331], [28, -23], [277, 296], [-1, 327], [155, 167], [14, 15], [352, 362], [83, 155], [16, 19], [331, -327], [11, 12], [-1, 344], [3, 5], [20, 23], [335, 344], [-1, 352], [-1, 412], [-1, 3], [7, 8], [322, -31], [362, 412], [327, 328], [13, 14], [362, 366], [-1, 31], [311, 316], [347, 348], [23, 27], [344, 352], [15, 16], [48, 50], [442, -412]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/utils/html_parser.py": [[1, 2], [-1, 1], [4, 6], [21, 32], [13, 14], [10, 13], [6, 9], [9, 10], [20, 21], [32, -1], [14, 20], [2, 4]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/core/checks/messages.py": [[4, 7], [10, 11], [61, 62], [-1, 66], [14, 17], [8, 9], [-1, 81], [18, 19], [17, 25], [11, 14], [71, 72], [77, -76], [-1, 71], [73, -72], [72, -71], [-1, 76], [56, -14], [-1, 14], [76, 77], [49, 53], [15, 61], [61, 66], [76, 81], [20, 21], [25, 29], [21, 22], [-1, 73], [-1, 2], [81, -2], [-1, 61], [9, 10], [22, 23], [14, 15], [19, 20], [66, 71], [71, 76], [62, -61], [67, -66], [29, 32], [32, 49], [82, -81], [81, 82], [66, 67], [-1, 18], [7, 8], [2, 4], [53, 56], [23, -17]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/core/files/temp.py": [[17, 19], [20, 22], [24, 27], [27, 83], [-1, 17], [85, -17], [83, 85], [19, 20], [22, 24]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/utils/duration.py": [[-1, 1], [4, -1], [1, 4]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/nose/result.py": [[81, 82], [104, 105], [-1, 103], [38, 39], [109, 110], [106, 104], [105, 106], [43, 44], [40, 41], [82, -80], [-1, 81], [41, 43], [104, 109], [103, 104], [44, -36], [39, 40], [-1, 38]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/core/serializers/json.py": [[87, 115], [14, 17], [10, 11], [8, 9], [21, 68], [25, 27], [87, 90], [115, -3], [68, 87], [3, 6], [43, 50], [11, 13], [63, -21], [-1, 21], [-1, 87], [9, 10], [27, 39], [39, 43], [18, 21], [17, 18], [90, 91], [6, 8], [-1, 3], [24, 25], [13, 14], [50, 63], [91, -87], [21, 24]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/forms/forms.py": [[142, 145], [-1, 512], [186, 195], [703, 716], [120, 142], [94, 95], [575, 601], [312, 321], [431, 440], [161, 172], [557, 560], [487, 497], [-1, 82], [23, 25], [512, 513], [105, 106], [14, 15], [513, -512], [522, 523], [304, 312], [286, 295], [17, 18], [504, -111], [7, 8], [95, 97], [22, 23], [539, 545], [18, 21], [545, 557], [88, 90], [8, 9], [-1, 76], [477, 487], [12, 13], [106, 108], [111, 112], [440, 446], [113, 512], [277, 286], [617, 624], [108, -80], [34, 37], [83, 84], [3, 5], [521, 522], [90, 91], [201, 277], [5, 7], [172, 179], [97, 101], [91, 94], [76, 111], [179, 186], [685, 698], [396, 415], [82, 83], [80, -76], [415, 424], [716, -521], [378, 396], [102, 101], [567, 575], [16, 17], [446, 477], [698, 703], [369, 378], [-1, 521], [624, 648], [195, 201], [119, 120], [112, 113], [76, 79], [95, 105], [-1, 3], [321, 369], [21, 22], [497, 504], [512, 521], [83, 87], [79, 80], [521, 524], [111, 118], [118, 119], [601, 607], [145, 157], [37, 76], [560, 567], [28, 34], [611, 617], [-1, 111], [10, 12], [15, 16], [607, 611], [424, 431], [101, 102], [523, -3], [9, 10], [157, 161], [101, 95], [84, 83], [648, 685], [98, 101], [87, 88], [25, 28], [97, 98], [13, 14], [525, 539], [524, 525], [295, 304]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/core/__init__.py": [[-1, 1], [1, -1]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/core/files/move.py": [[6, 8], [16, 29], [13, 16], [8, 9], [9, 11], [-1, 6], [29, -6], [11, 13]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/db/models/fields/related.py": [[438, 468], [1782, 2009], [1618, 1622], [1164, 1184], [-1, 803], [1301, 1308], [1796, 1828], [1480, 1482], [1293, 1297], [803, 809], [18, 19], [2029, 2035], [2451, 2454], [1588, 1604], [2448, 2451], [2109, 2110], [2521, 2553], [6, 7], [1145, 1203], [285, 309], [361, 380], [1784, 1785], [1436, 1437], [1268, 1269], [1435, 1436], [157, 176], [1703, 1759], [1927, 1934], [2113, 2115], [1991, 1994], [2025, 2029], [2022, 2023], [380, -100], [398, 408], [812, 818], [-1, 1425], [2581, 2597], [1308, 1312], [2111, 2113], [1155, 1164], [-1, 1266], [1694, 1703], [1482, 1500], [818, 832], [1942, 1945], [107, 113], [1476, 1478], [2479, 2507], [1551, 1588], [2019, 2020], [1210, 1213], [803, 843], [1505, 1551], [346, 351], [14, 18], [394, 398], [1425, 1434], [1426, 1427], [-1, 2009], [1229, 1247], [7, 8], [1266, 1268], [1791, 1793], [1349, 1353], [2190, 2386], [22, 23], [2571, 2574], [339, 346], [100, 388], [2386, 2427], [1957, 1962], [1398, -1266], [8, 9], [1145, 1152], [468, -388], [-1, 1145], [843, 1145], [1782, 1784], [1473, 1474], [-1, 1], [1478, 1479], [100, 102], [1297, 1301], [12, 13], [2153, 2165], [1455, -1434], [2445, 2448], [2427, 2445], [1220, 1229], [141, 157], [1332, 1349], [1759, 1763], [2023, 2025], [103, 104], [2110, 2111], [1271, 1273], [27, 30], [1795, 1796], [2106, 2108], [-1, 1782], [2035, 2040], [1962, 1976], [1402, 1403], [2578, 2581], [23, 24], [2165, 2190], [1922, 1927], [1289, 1293], [680, 803], [4, 6], [2464, 2479], [1373, 1395], [1475, 1476], [2602, -2106], [1324, 1331], [1888, 1897], [24, 25], [1427, -1425], [1500, 1505], [1312, 1316], [1474, 1475], [2454, 2464], [2507, 2521], [809, 812], [1471, 1473], [1828, 1834], [1, 3], [1421, -1402], [1789, 1790], [1203, 1210], [2597, 2602], [1867, 1884], [1404, 1410], [1247, -1203], [2018, 2019], [1274, 1289], [1402, 1425], [1270, 1271], [30, 89], [1857, 1867], [1786, 1787], [1654, 1657], [1363, 1373], [11, 12], [408, 411], [1434, 1435], [1184, -1145], [1410, 1421], [2005, -1782], [1628, 1646], [1610, 1614], [1793, 1795], [176, 280], [-1, 518], [-1, 2106], [388, 394], [1650, 1654], [518, 680], [1479, 1480], [1785, 1786], [1266, 1402], [121, 141], [1790, 1791], [1919, 1922], [1884, 1888], [-1, 100], [1360, 1363], [1331, 1332], [1625, 1628], [1787, 1789], [1425, 1426], [1994, 1999], [1203, 1266], [-1, 1434], [280, 285], [388, 518], [2146, 2153], [351, 361], [1269, 1270], [1999, 2005], [21, 22], [528, 539], [539, 542], [1945, 1957], [1657, 1672], [1897, 1919], [3, 4], [2015, 2017], [1766, 1770], [10, 11], [581, 613], [2009, 2015], [97, 100], [104, 105], [25, 27], [1395, 1398], [524, 528], [2009, 2051], [1152, 1155], [1273, 1274], [2115, 2146], [2553, 2571], [1434, 1471], [2020, 2022], [419, 438], [2046, -2009], [1614, 1618], [1357, 1360], [1437, 1451], [2574, 2578], [105, 107], [1834, 1857], [-1, 1203], [2051, 2106], [1934, 1942], [832, -803], [550, 581], [542, 550], [1604, 1610], [-1, 1402], [1770, -1471], [1976, 1991], [1316, 1320], [2108, 2109], [1471, 1782], [-1, 1471], [9, 10], [2106, -1], [613, -518], [113, 121], [333, 339], [518, 524], [19, 20], [411, 419], [2017, 2018], [1353, 1357], [1622, 1625], [102, 103], [2040, 2046], [1320, 1324], [13, 14], [1672, 1686], [1646, 1650], [20, 21], [1451, 1455], [89, 97], [1763, 1766], [-1, 388], [1213, 1220], [1686, 1694], [1403, 1404], [309, 333]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/core/files/storage.py": [[10, 11], [307, 310], [120, 126], [332, 336], [294, 297], [8, 9], [153, 160], [18, 19], [167, -24], [126, 133], [175, 179], [313, 318], [333, -332], [-1, 24], [1, 2], [-1, 332], [-1, 1], [12, 13], [280, 294], [133, 140], [24, 175], [33, 39], [175, 176], [19, 21], [16, 17], [71, 78], [109, 120], [24, 28], [4, 5], [332, 333], [176, 328], [318, 321], [160, 167], [9, 10], [140, 146], [2, 3], [321, 324], [3, 4], [11, 12], [17, 18], [310, 313], [297, 307], [-1, 175], [146, 153], [328, 332], [13, 14], [15, 16], [5, 7], [324, -175], [39, 71], [78, 109], [204, 280], [181, 182], [182, 201], [28, 33], [201, 204], [336, -1], [14, 15], [179, 181], [7, 8], [21, 24]], "/Users/RaPoSpectre/PycharmProjects/django-simple-serializer/src/__init__.py": [[-1, 1], [1, -1]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/utils/translation/__init__.py": [[133, 137], [104, 108], [22, 23], [95, 98], [98, 99], [145, 149], [5, 6], [188, 192], [172, 176], [196, 200], [8, 9], [141, 145], [129, 130], [18, 19], [13, 14], [23, 26], [91, 95], [158, 165], [79, 83], [66, 69], [109, -108], [69, 72], [16, 17], [30, -29], [6, 7], [87, 91], [20, 21], [26, 29], [184, 188], [-1, 29], [153, 154], [29, 30], [103, 133], [232, -3], [176, 180], [138, -137], [-1, 153], [99, 100], [-1, 108], [100, 103], [52, 54], [41, 52], [137, 141], [4, 5], [72, 75], [192, 196], [-1, 104], [204, 210], [200, 204], [154, 158], [14, 15], [213, 229], [63, 66], [41, 63], [3, 4], [210, 213], [19, 20], [229, 232], [108, 129], [17, 18], [9, 13], [108, 109], [54, -41], [-1, 138], [180, 184], [21, 22], [15, 16], [165, -153], [153, 172], [-1, 3], [149, 153], [130, -103], [29, 41], [75, 79], [7, 8], [-1, 41], [83, 87]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/utils/encoding.py": [[60, 63], [18, 22], [63, 72], [37, 41], [5, 6], [41, 42], [13, 17], [162, 166], [230, 247], [72, 114], [-1, 36], [282, 295], [10, 11], [247, 262], [43, -28], [167, 169], [288, 289], [262, 282], [6, 7], [-1, 288], [17, 28], [22, -17], [293, -282], [28, 46], [176, 180], [213, 230], [36, 37], [11, 13], [289, 290], [42, 43], [4, 5], [-1, 2], [9, 10], [-1, 17], [290, 293], [114, 126], [7, 9], [17, 18], [169, 170], [180, 183], [166, 167], [170, 176], [126, 162], [46, 59], [295, -2], [183, 213], [59, 60], [2, 4]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/forms/widgets.py": [[663, 664], [423, 430], [722, 726], [598, 599], [-1, 469], [597, 603], [282, 284], [33, 36], [591, -577], [456, 457], [111, 139], [773, 799], [34, 35], [139, 142], [874, 877], [655, 659], [653, 655], [895, 896], [144, 145], [84, 90], [752, -726], [726, 727], [172, 173], [150, -143], [749, 752], [-1, 892], [281, 282], [5, 7], [278, -277], [-1, 153], [225, -172], [250, -238], [599, 644], [273, 274], [-1, 33], [769, 770], [768, 773], [148, 150], [-1, 277], [260, 261], [350, 354], [281, 294], [498, 499], [665, 718], [-1, 298], [14, 15], [284, 288], [647, -644], [439, 440], [-1, 422], [33, 34], [363, 369], [308, 323], [269, 273], [270, -269], [344, 422], [447, -439], [606, 616], [173, 174], [422, 423], [722, 723], [302, 303], [499, 501], [7, 8], [54, 62], [476, 485], [35, 111], [892, 895], [773, 874], [-1, 773], [-1, 597], [452, 456], [-1, 663], [718, 719], [723, -722], [160, 165], [277, 278], [51, 54], [294, 298], [461, -460], [737, 741], [298, 329], [175, 177], [577, 578], [73, 84], [639, -597], [273, 277], [12, 13], [718, 722], [407, -344], [885, -874], [864, 869], [808, 829], [-1, 144], [470, 476], [-1, 281], [-1, 722], [672, 674], [763, 768], [550, 553], [145, 147], [245, 250], [804, 808], [-1, 460], [303, 308], [616, 619], [155, 172], [-1, 139], [498, 550], [375, 384], [719, -718], [619, 629], [730, 737], [147, 150], [147, 148], [874, 892], [384, 407], [3, 5], [329, 330], [294, 295], [469, 470], [17, 18], [165, -153], [535, -498], [336, -329], [764, 765], [460, 461], [103, -33], [347, 350], [329, 341], [422, 439], [-1, 644], [453, -452], [469, 498], [578, 580], [-1, 269], [726, 763], [856, 862], [-1, 718], [501, 508], [330, 331], [-1, 768], [153, 159], [-1, 439], [604, 606], [36, 48], [770, -768], [174, 175], [-1, 112], [800, 804], [48, 51], [862, 864], [16, 17], [260, 269], [30, 33], [878, 880], [90, 96], [18, 27], [8, 10], [-1, 726], [153, 154], [632, 639], [869, -773], [-1, 452], [508, 519], [-1, 550], [659, -652], [211, 218], [-1, 763], [727, 728], [-1, 652], [644, 645], [550, 577], [112, 136], [202, 211], [741, 749], [687, -663], [553, 554], [670, 671], [441, 443], [560, 567], [263, -260], [346, 347], [-1, 498], [799, 800], [-1, 344], [684, 687], [440, 441], [323, -298], [645, 647], [-1, 3], [680, 684], [354, 356], [13, 14], [-1, 874], [27, 30], [554, 560], [-1, 260], [331, 333], [341, 344], [-1, 172], [261, 263], [10, 11], [172, 238], [-1, 238], [62, 73], [143, -139], [728, 730], [288, -281], [644, 652], [829, 835], [443, 447], [457, -456], [159, 160], [896, -892], [142, 143], [664, 665], [848, 856], [295, -294], [465, 469], [652, 653], [671, 672], [-1, 456], [333, 336], [345, 346], [15, 16], [768, 769], [430, -422], [460, 465], [356, 363], [835, 838], [193, 202], [663, 668], [603, 604], [519, 535], [243, 245], [668, 670], [183, 189], [567, -550], [218, 225], [485, -469], [452, 453], [674, 680], [-1, 329], [369, 375], [96, 103], [189, 193], [-1, 273], [880, 885], [597, 598], [877, 878], [136, -111], [11, 12], [765, -763], [-1, 294], [439, 452], [277, 281], [-1, 577], [154, 155], [456, 460], [269, 270], [238, 260], [580, 591], [238, 242], [838, 848], [344, 345], [274, -273], [298, 302], [892, -3], [629, 632], [177, 183], [242, 243], [652, 663], [139, 153], [577, 597], [763, 764]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/utils/datastructures.py": [[6, 9], [98, 102], [285, 306], [441, 445], [527, 532], [310, 314], [39, 46], [496, 503], [277, -247], [215, 218], [195, 199], [127, 128], [247, 281], [506, 507], [430, 432], [76, 77], [281, 282], [191, 195], [235, 242], [102, 112], [36, 39], [466, -285], [259, 262], [70, 75], [77, 79], [133, 152], [221, 225], [9, 16], [225, 230], [337, 347], [512, 513], [22, 25], [429, 430], [242, -124], [518, -1], [-1, 124], [515, -473], [-1, 473], [203, 208], [532, -518], [124, 127], [230, 235], [112, -9], [314, 328], [307, 310], [46, 52], [518, 526], [-1, 1], [513, 514], [473, 518], [435, 438], [79, 82], [-1, 281], [96, 98], [347, 352], [16, 17], [174, 177], [423, 428], [62, 66], [306, 307], [282, -281], [274, 277], [75, 76], [3, 5], [438, 441], [331, 337], [253, 256], [505, 506], [428, 429], [17, 22], [406, 414], [88, 94], [402, 406], [445, 466], [473, 484], [509, 510], [167, 171], [393, 402], [199, 203], [432, 435], [511, 512], [208, 209], [504, 505], [-1, 285], [186, 191], [352, 358], [358, 371], [177, 186], [210, 212], [-1, 518], [281, 285], [418, 423], [328, 331], [414, 418], [2, 3], [9, 124], [383, 386], [503, 504], [171, 174], [251, 253], [212, 215], [156, 162], [-1, 247], [486, 496], [85, 88], [94, 96], [5, 6], [-1, 9], [526, 527], [285, 473], [256, 259], [1, 2], [484, 486], [386, 393], [218, 221], [52, 62], [508, 509], [271, 274], [514, 515], [162, 167], [66, 70], [152, 156], [128, 133], [262, 268], [82, 85], [25, 28], [209, 210], [371, 383], [268, 271], [28, 36], [124, 247], [510, 511], [247, 251], [507, 508]], "/Users/RaPoSpectre/PycharmProjects/django-simple-serializer/src/test/test_Serializer.py": [[7, 8], [74, -66], [86, 87], [58, 59], [113, 114], [5, 6], [107, 108], [55, 66], [8, 9], [104, 105], [103, 104], [82, 83], [66, 76], [71, 72], [63, 64], [60, 61], [61, 62], [59, 60], [80, 81], [6, 7], [109, 110], [92, 93], [84, 85], [87, 88], [100, -15], [10, 12], [16, 55], [56, 57], [69, 70], [90, 100], [105, 106], [17, -16], [62, 63], [91, 92], [-1, 56], [-1, 77], [110, 111], [-1, 91], [96, 97], [93, 94], [98, -90], [-1, 15], [114, -100], [68, 69], [79, 80], [15, -2], [-1, 2], [9, 10], [-1, 17], [2, 3], [97, 98], [111, 112], [73, 74], [70, 71], [-1, 67], [83, 84], [3, 5], [81, 82], [72, 73], [12, 15], [108, 109], [94, 95], [77, 78], [76, 90], [112, 113], [102, 103], [95, 96], [101, 102], [57, 58], [85, 86], [67, 68], [-1, 101], [64, -55], [78, 79], [15, 16], [106, 107], [88, -76]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/core/checks/compatibility/django_1_7_0.py": [[13, -1], [-1, 1], [1, 3], [6, 13], [3, 6]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/xmltodict.py": [[338, 339], [270, -252], [33, 36], [328, 329], [290, 291], [-1, 261], [-1, 36], [71, 84], [6, 7], [104, 130], [44, 45], [43, 44], [342, -306], [281, 282], [36, 37], [155, 156], [293, 297], [284, 287], [293, 294], [14, 15], [254, 255], [272, 275], [256, 257], [331, 334], [301, 302], [274, 275], [333, 331], [7, 8], [22, 23], [23, 26], [325, 326], [273, 274], [-1, 40], [40, 155], [270, 271], [276, 277], [40, 42], [283, 280], [297, 299], [299, 301], [49, 50], [336, 337], [-1, 2], [329, 330], [50, 51], [302, 270], [27, 31], [279, 280], [136, -40], [294, 295], [298, 299], [259, 260], [280, 281], [332, 333], [322, 324], [330, 331], [253, 254], [130, 136], [-1, 322], [46, 47], [278, 279], [255, 256], [32, 33], [331, 332], [339, 342], [37, -36], [47, 48], [275, 277], [337, 338], [15, 22], [268, 270], [42, 43], [297, 298], [271, 272], [258, 259], [261, 266], [51, 52], [45, 46], [295, 296], [89, 104], [327, 328], [2, 4], [84, 89], [52, 53], [5, 6], [266, 267], [31, 32], [282, 283], [291, 293], [257, 258], [8, 14], [326, 327], [156, 253], [306, 344], [296, 293], [275, 276], [266, 268], [4, 5], [335, 336], [288, 290], [273, 275], [36, 40], [324, 325], [334, 335], [53, 71], [267, 268], [281, 284], [271, 273], [48, 49], [344, -2], [26, 27], [277, 278], [260, 306], [287, 280], [280, 288]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/core/files/uploadhandler.py": [[57, 61], [14, 17], [69, 71], [138, 139], [139, 142], [31, 50], [61, 62], [-1, 158], [-1, 23], [111, 118], [54, -50], [152, -135], [53, 54], [30, 31], [158, 208], [23, 26], [174, 180], [50, 53], [-1, 50], [118, 127], [23, 30], [71, 79], [50, 57], [-1, 135], [158, 161], [149, 152], [135, 138], [65, 135], [7, 9], [43, -30], [161, 163], [68, 69], [208, -3], [10, 13], [30, 34], [35, 43], [65, 68], [97, 111], [9, 10], [189, -158], [-1, 30], [-1, 57], [62, -57], [163, 174], [3, 5], [17, 18], [180, 189], [-1, 65], [26, 27], [19, 23], [-1, 3], [5, 7], [79, 97], [13, 14], [135, 158], [57, 65], [142, 149], [18, 19], [27, -23], [127, -65], [34, 35]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/nose/plugins/skip.py": [[60, 61], [-1, 57], [57, 59], [59, 60], [61, -53]], "/Users/RaPoSpectre/PycharmProjects/django-simple-serializer/src/test/test_TimeFormatFactory.py": [[4, 7], [-1, 9], [15, -11], [18, 19], [9, -8], [-1, 24], [23, -7], [1, 2], [-1, 1], [12, 13], [19, 20], [25, 26], [17, 23], [7, 28], [21, -17], [28, -1], [8, 11], [14, 15], [-1, 7], [-1, 12], [11, 17], [13, 14], [26, -23], [24, 25], [20, 21], [-1, 18], [7, 8], [2, 4]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/db/models/sql/subqueries.py": [[170, 171], [5, 6], [81, 84], [8, 9], [-1, 81], [15, 19], [202, -3], [144, 152], [15, 81], [43, -15], [6, 7], [170, 202], [10, 12], [152, -81], [210, -202], [202, 206], [92, 103], [136, 144], [208, 210], [187, -170], [19, 21], [81, 170], [-1, 15], [84, 86], [28, 43], [88, 92], [21, 23], [9, 10], [-1, 170], [103, 107], [107, 114], [3, 5], [12, 15], [206, 208], [86, 88], [-1, 3], [178, 187], [23, 28], [-1, 202], [173, 178], [114, 136], [171, 173], [7, 8]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/core/serializers/python.py": [[10, 11], [47, 57], [5, 6], [8, 9], [37, 47], [-1, 5], [16, 83], [30, 33], [12, 13], [11, 12], [13, 16], [-1, 16], [70, 79], [19, 21], [21, 23], [57, 70], [9, 10], [16, 19], [83, 161], [79, -16], [6, 8], [161, -5], [33, 37], [27, 30], [23, 27]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/nose/plugins/errorclass.py": [[153, 154], [150, 151], [148, 150], [150, -147], [-1, 148], [154, 150], [152, 153], [151, 152]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/utils/tree.py": [[6, 9], [17, 19], [9, 14], [4, 6], [136, -9], [69, 75], [-1, 9], [63, 69], [9, -4], [14, 17], [44, 51], [31, 44], [30, 31], [84, 91], [51, 54], [78, 84], [91, 136], [-1, 4], [75, 78], [54, 63], [19, 30]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/nose/case.py": [[74, -66], [-1, 128], [39, 40], [100, 101], [60, 64], [178, 179], [161, 162], [132, 133], [40, 41], [49, 51], [162, 163], [155, 159], [-1, 147], [45, -44], [159, 160], [51, -47], [-1, 45], [129, 130], [42, -27], [166, 167], [160, 161], [148, 149], [133, 140], [70, 74], [-1, 29], [104, -98], [179, 185], [59, 60], [-1, 99], [-1, 59], [140, -115], [99, 100], [34, 36], [36, 37], [128, 129], [37, 38], [149, 151], [154, 155], [185, -153], [41, 42], [29, 33], [101, 102], [-1, 48], [-1, 69], [167, 168], [102, 103], [69, 70], [64, -56], [147, 148], [151, -142], [33, 34], [-1, 154], [38, 39], [48, 49], [168, 172], [103, 104], [172, 173], [173, 178], [163, 166], [130, 131], [131, 132]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/nose/plugins/xunit.py": [[192, 193], [191, 192], [193, -189], [-1, 191]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/utils/text.py": [[416, 418], [68, 71], [1, 3], [10, 11], [299, 321], [5, 6], [375, 395], [300, 303], [17, 20], [452, 455], [234, 245], [113, 115], [30, 31], [413, 416], [439, 442], [29, 30], [31, 32], [418, 421], [313, 316], [68, 234], [-1, 1], [364, 372], [6, 7], [306, 313], [12, 13], [299, 300], [321, 334], [269, 272], [28, 29], [75, 91], [-1, 68], [7, 9], [-1, 299], [147, 149], [115, 137], [303, 306], [4, 5], [149, 161], [72, 75], [35, 65], [372, 375], [279, 286], [65, 68], [291, 299], [9, 10], [455, -1], [14, 15], [337, 360], [32, 35], [421, 439], [11, 12], [25, 28], [15, 17], [316, -299], [276, 279], [20, 24], [13, 14], [71, 72], [360, 364], [334, 337], [395, 413], [24, 25], [286, 291], [91, 113], [248, 269], [161, -68], [272, 276], [137, 147], [3, 4], [442, 452], [245, 248]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/nose/plugins/deprecated.py": [[43, 44], [42, 43], [-1, 40], [44, -37], [40, 42]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/nose/plugins/manager.py": [[106, 107], [166, -163], [253, 254], [114, 120], [177, 178], [273, -267], [94, 95], [96, 95], [123, -123], [-1, 249], [95, 96], [251, 252], [-1, 301], [272, 273], [88, 89], [149, -146], [262, 263], [-1, 149], [121, 124], [95, -87], [118, -113], [99, -98], [120, 121], [252, 253], [-1, 272], [178, 184], [-1, 99], [302, -300], [-1, 166], [167, 168], [-1, 262], [89, 93], [114, 118], [295, -294], [93, 94], [106, -101], [168, 166], [274, 273], [105, 106], [121, 123], [264, 263], [124, 128], [250, 251], [-1, 114], [184, -171], [-1, 88], [263, 265], [273, 274], [111, -101], [166, 167], [128, -113], [250, -248], [301, 302], [263, 264], [-1, 105], [254, -248], [295, -295], [249, 250], [265, -259], [-1, 177], [123, -113], [107, 111], [-1, 295], [-1, 123]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/utils/dates.py": [[56, -1], [1, 3], [22, 23], [39, 40], [5, 6], [24, 26], [40, 41], [53, 54], [55, 56], [18, 19], [10, 11], [31, 32], [54, 55], [32, 33], [-1, 1], [6, 7], [28, 30], [44, 45], [19, 20], [42, 44], [36, 37], [47, 48], [3, 5], [27, 28], [11, 13], [33, 34], [20, 22], [37, 38], [9, 10], [14, 15], [46, 47], [38, 39], [50, 51], [23, 24], [15, 17], [17, 18], [41, 42], [26, 27], [48, 49], [13, 14], [35, 36], [49, 50], [45, 46], [7, 9], [30, 31], [52, 53], [51, 52], [34, 35]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/dispatch/__init__.py": [[-1, 7], [9, -7], [7, 9]], "/Users/RaPoSpectre/PycharmProjects/django-simple-serializer/src/dss/Warning.py": [[1, 2], [-1, 1], [10, 13], [13, -8], [4, 8], [4, 5], [-1, 9], [9, 10], [8, -1], [-1, 4], [5, -4], [2, 4]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/core/checks/security/sessions.py": [[14, 17], [1, 3], [42, 43], [36, 37], [22, 26], [17, 20], [30, 31], [96, -1], [-1, 36], [37, -35], [-1, 1], [12, 13], [-1, 7], [26, 29], [65, 78], [78, 91], [60, 61], [3, 6], [31, 35], [20, 21], [8, -6], [91, 96], [29, 30], [61, 65], [50, 51], [6, 12], [43, 44], [44, 47], [52, 56], [21, 22], [59, 60], [35, 42], [13, 14], [47, 50], [51, 52], [7, 8], [56, 59]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/__init__.py": [[8, -1], [-1, 1], [1, 3], [5, 8], [3, 5]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/db/models/manager.py": [[150, 151], [126, 128], [56, 60], [5, 6], [-1, 244], [271, 274], [152, 154], [-1, 125], [54, 240], [148, 157], [-1, 256], [-1, 240], [247, 250], [230, 236], [256, 259], [268, 280], [250, -244], [144, 135], [206, 214], [1, 2], [200, 206], [-1, 1], [6, 7], [285, -280], [256, 268], [140, 141], [151, 152], [132, 134], [123, 147], [141, 144], [274, -268], [68, 77], [141, 135], [280, -1], [240, 241], [-1, 126], [240, 244], [135, 137], [-1, 280], [221, 230], [129, 130], [268, 271], [280, 281], [259, 262], [-1, 149], [138, 135], [130, -125], [8, 11], [135, 145], [262, -256], [145, -123], [141, 142], [137, 138], [2, 3], [214, 221], [77, 83], [187, 200], [134, 135], [244, 256], [147, 148], [241, -240], [3, 5], [128, 129], [-1, 268], [244, 247], [154, 155], [60, 62], [-1, 53], [157, 179], [53, 54], [120, 123], [142, 135], [179, 187], [155, -147], [83, 120], [149, 150], [281, 285], [137, 140], [236, -53], [11, 53], [62, 68], [125, 132], [7, 8], [53, 56]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/forms/fields.py": [[1223, 1224], [134, 137], [1142, -1139], [458, 459], [822, 888], [957, 958], [73, 131], [-1, 993], [801, 804], [-1, 822], [72, 73], [34, 35], [1255, -1252], [660, 665], [-1, 1017], [-1, 434], [-1, 57], [957, 993], [592, 593], [576, -544], [601, 606], [917, 918], [627, 646], [436, 437], [823, 824], [280, 283], [237, 240], [1187, 1188], [317, 318], [459, 460], [-1, 778], [829, 834], [1139, 1187], [35, 36], [18, 20], [1252, 1253], [1243, -1237], [834, 839], [484, 487], [37, 38], [416, 430], [853, 855], [828, 829], [178, 186], [396, -315], [155, 167], [1195, 1210], [996, 997], [14, 15], [1057, 1060], [646, 651], [1265, 1270], [235, 236], [268, -234], [17, 18], [203, -57], [889, 894], [-1, 480], [437, 438], [327, 328], [589, 590], [-1, 278], [813, 814], [212, 220], [299, 308], [-1, 1139], [482, 483], [923, 930], [252, 268], [323, 324], [64, 66], [329, 332], [544, 545], [813, 822], [462, 465], [1223, 1237], [234, 235], [-1, 1260], [325, 326], [523, 524], [8, 9], [-1, 915], [480, 523], [409, 411], [651, -588], [804, -778], [328, 329], [-1, 1223], [1261, 1262], [-1, 813], [454, -434], [321, 322], [-1, 588], [1187, 1223], [58, 59], [465, 476], [958, 963], [12, 13], [591, 592], [492, 519], [986, -957], [712, 714], [525, 528], [997, 1006], [324, 325], [226, -211], [-1, 458], [839, 842], [483, 484], [51, 53], [480, 481], [814, 817], [315, 409], [1033, 1034], [915, 957], [278, 315], [855, 861], [658, 659], [1139, 1140], [579, 580], [918, 919], [322, 323], [22, 29], [945, -915], [279, 280], [1017, 1033], [714, 745], [3, 5], [137, 141], [438, 441], [-1, 1187], [1190, 1191], [963, 982], [915, 916], [461, 462], [7, 8], [5, 7], [1035, 1036], [336, 354], [910, -888], [57, 58], [460, 461], [919, 920], [186, 203], [283, 299], [594, 595], [588, 589], [1189, 1190], [434, 435], [59, 60], [-1, 888], [750, 751], [782, 783], [1270, -1260], [60, 63], [-1, 1252], [580, 581], [31, 34], [-1, 1237], [596, 597], [36, 37], [1210, -1187], [982, 986], [707, 708], [842, 853], [-1, 234], [30, 31], [873, -822], [332, 336], [606, 627], [278, 279], [930, 945], [751, 753], [-1, 315], [888, 915], [750, 778], [894, 910], [-1, 707], [11, 12], [920, 923], [1253, 1255], [785, 801], [581, 583], [888, 889], [709, 710], [590, 591], [51, 57], [-1, 51], [-1, 409], [783, 785], [1191, 1192], [434, 458], [411, 416], [481, 482], [778, 782], [1017, 1139], [487, 492], [753, 765], [1192, 1195], [409, 434], [441, 454], [1036, 1039], [-1, 957], [240, 252], [745, -707], [-1, 657], [657, 707], [1140, 1141], [593, 594], [1238, 1243], [1141, 1142], [-1, 211], [458, 480], [211, 234], [595, 596], [435, 436], [1224, 1226], [710, 712], [657, 658], [564, 567], [579, 588], [993, 1017], [308, -278], [-1, 3], [861, 873], [1231, -1223], [769, -750], [21, 22], [708, 709], [354, 396], [1123, -1017], [1034, 1035], [71, 72], [53, -51], [1006, -993], [524, 525], [10, 11], [1237, 1238], [-1, 750], [1112, 1123], [57, 211], [167, 178], [1226, 1231], [220, 226], [528, 533], [1060, 1112], [66, 69], [234, 278], [63, 64], [1039, 1052], [817, -813], [326, 327], [-1, 544], [1188, 1189], [916, 917], [319, 320], [476, -458], [822, 823], [824, 825], [29, 30], [825, 828], [131, 134], [1052, 1057], [583, -579], [597, 598], [993, 996], [1262, 1265], [519, -480], [316, 317], [236, 237], [1260, 1261], [9, 10], [318, 319], [665, -657], [1260, -3], [47, 51], [659, 660], [211, 212], [545, 564], [15, 17], [320, 321], [-1, 523], [598, 601], [533, -523], [-1, 579], [765, 769], [13, 14], [315, 316], [778, 813], [69, 71], [430, -409], [141, 155], [523, 544], [20, 21], [1237, 1252], [1252, 1260], [588, 657], [567, 576], [544, 579], [38, 47], [707, 750]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/dispatch/weakref_backports.py": [[14, 17], [42, 43], [47, 54], [40, 41], [25, 47], [32, 40], [44, 45], [27, 28], [23, 25], [68, -17], [21, 23], [41, 42], [-1, 17], [-1, 26], [54, 61], [28, 32], [43, 44], [17, -13], [26, 27], [13, 14], [17, 21], [45, -25], [61, 68], [-1, 13]], "/Users/RaPoSpectre/PycharmProjects/django-simple-serializer/src/dss/Mixin.py": [[-1, 44], [58, 59], [22, 23], [46, -43], [59, -50], [52, 53], [15, 20], [79, 80], [28, 29], [53, 54], [25, 27], [34, 35], [11, 14], [27, 31], [10, 11], [43, -20], [29, -27], [54, 55], [-1, 64], [49, 50], [57, 58], [56, 54], [64, 65], [6, 7], [-1, 32], [20, 21], [-1, 20], [-1, 41], [49, 62], [8, 10], [71, 74], [36, 37], [66, 67], [-1, 51], [81, 82], [20, 49], [80, 81], [32, 33], [68, 69], [31, 39], [37, 38], [67, 68], [78, 79], [82, 83], [62, -3], [55, 56], [14, 15], [63, -62], [44, 45], [39, 43], [69, 70], [65, 66], [23, 24], [75, 78], [35, 36], [33, 34], [45, 46], [54, 57], [83, -63], [4, 6], [-1, 28], [21, 22], [3, 4], [38, -31], [74, 75], [80, 80], [70, 71], [24, 25], [-1, 3], [-1, 49], [50, -49], [-1, 62], [62, 63], [51, 52], [7, 8], [41, -39]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/core/serializers/__init__.py": [[22, 23], [28, 29], [50, -37], [30, 31], [123, 133], [86, 95], [160, -17], [44, 45], [24, 27], [103, 109], [144, 160], [-1, 37], [27, 28], [19, 21], [17, 19], [95, 103], [54, 86], [29, 30], [45, 47], [-1, 17], [31, 34], [109, 115], [34, 37], [23, 24], [133, 144], [21, 22], [37, 44], [115, 123], [47, 50], [37, 54]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/db/models/fields/__init__.py": [[1806, 1809], [1729, 1731], [1928, 1933], [1924, 1928], [125, 126], [-1, 2114], [922, 924], [1059, 1065], [18, 19], [58, -57], [1570, 1582], [65, 84], [1137, 1138], [2296, 2300], [1308, 1315], [1290, 1298], [-1, 1827], [2331, 2332], [1185, 1186], [847, 854], [4, 5], [1821, -1793], [105, 106], [142, 143], [1948, 1949], [1851, 1864], [1123, 1127], [107, 108], [308, 336], [109, 110], [1181, -1151], [2314, 2320], [1185, 1335], [2373, 2374], [1718, -1703], [2105, 2108], [1912, 1948], [20, 21], [666, 669], [274, 287], [103, 104], [2091, 2093], [1839, 1851], [1342, 1346], [2377, 2378], [1035, 1050], [1827, 1897], [2182, 2183], [674, 677], [139, 140], [1507, 1518], [211, 245], [1396, 1399], [2300, -2172], [1593, 1605], [1337, 1338], [1712, 1718], [705, 712], [2175, 2177], [1257, 1260], [1951, 1953], [1643, 1648], [2310, 2314], [42, 43], [1498, 1500], [1137, 1151], [2380, 2384], [114, 117], [1151, 1185], [287, 305], [635, 638], [2375, 2377], [1078, 1080], [925, 926], [2154, 2157], [1921, 1924], [-1, 2090], [1298, 1308], [2157, 2163], [1915, 1917], [1798, 1800], [1005, 1009], [27, 28], [1731, 1732], [2389, 2392], [481, 489], [2044, 2047], [138, 139], [1080, 1084], [5, 6], [1325, 1329], [32, 37], [1260, 1290], [2006, 2017], [1800, 1806], [1500, 1502], [90, 93], [1789, -1728], [1497, 1498], [1829, 1830], [1705, 1707], [1077, 1137], [999, 1000], [49, 49], [1139, 1141], [1346, 1350], [-1, 1728], [2332, 2334], [-1, 1151], [19, 20], [647, 655], [97, 98], [1590, 1593], [1995, 2001], [1544, 1570], [1629, 1633], [21, 22], [2286, 2290], [2001, 2006], [873, 876], [1743, 1755], [509, 520], [1891, -1827], [127, 128], [871, 873], [2144, 2145], [2356, 2362], [6, 7], [1830, 1832], [2074, 2080], [1319, 1325], [2152, 2154], [528, 534], [1827, 1828], [2183, 2190], [1900, 1902], [1650, 1651], [1633, -1495], [1335, 1336], [1771, 1777], [2340, 2345], [1489, -1335], [581, 592], [638, 643], [1656, 1659], [929, 933], [1678, 1685], [2320, -2306], [1950, 1951], [22, 23], [8, 9], [2384, 2389], [131, 135], [1159, 1181], [1643, 1703], [830, 833], [933, 938], [1188, 1190], [841, 847], [-1, 1335], [1832, 1834], [876, 914], [2173, 2174], [-1, 2151], [1654, 1656], [2190, 2236], [2029, 2031], [2064, 2074], [938, 951], [1315, 1319], [1495, 1496], [90, 91], [-1, 53], [2115, 2116], [1089, 1115], [24, 25], [1920, 1921], [2334, 2340], [987, 994], [1828, 1829], [30, 31], [2135, 2138], [643, 647], [2413, -2373], [16, 17], [1912, 1913], [-1, 90], [921, 922], [1879, 1891], [2330, 2373], [336, 345], [1127, -1077], [-1, 921], [520, 528], [1141, -1137], [1605, 1611], [1777, 1789], [1954, 1964], [2180, 2182], [1953, 1954], [972, 975], [2090, 2102], [1077, 1078], [1479, 1485], [1755, 1771], [2307, 2308], [2373, -2], [1738, 1743], [1651, 1654], [-1, 1137], [534, 550], [550, 581], [2103, 2105], [1732, 1738], [447, 455], [1032, 1035], [9, 10], [11, 12], [1447, 1460], [2330, 2331], [358, 447], [1027, 1032], [2028, 2029], [1460, 1479], [2306, 2307], [-1, 1703], [1707, 1712], [2102, 2103], [592, 618], [924, 925], [2290, 2296], [921, 998], [1502, 1503], [1939, 1942], [1649, 1650], [1914, 1915], [44, 45], [1195, 1196], [2093, 2096], [25, 26], [49, 53], [1187, 1188], [122, 124], [93, 97], [2027, 2028], [1518, 1544], [2366, -2330], [17, 18], [2080, -2026], [1340, 1342], [2151, 2152], [957, 960], [53, 54], [2151, 2172], [15, 16], [455, 461], [1898, 1899], [1659, 1678], [2096, -2090], [119, 122], [128, 131], [98, 103], [62, 65], [2108, -2102], [1001, 1003], [618, 635], [54, -53], [1503, 1507], [1625, 1629], [-1, 1185], [-1, 2], [1495, 1643], [-1, 1495], [305, 308], [960, 972], [1350, 1396], [2114, 2115], [1933, 1939], [345, 350], [-1, 2144], [1118, 1123], [1948, 2026], [1917, 1920], [57, 58], [1942, -1912], [2345, 2348], [1246, 1257], [998, 1077], [-1, 2102], [-1, 1948], [2102, 2114], [467, 470], [1905, -1897], [1728, 1793], [680, 686], [834, 841], [914, -90], [47, 48], [2145, 2147], [124, 125], [1992, 1995], [951, 957], [2177, 2180], [41, 42], [-1, 2330], [126, 127], [-1, 2373], [-1, 57], [1695, -1643], [43, 44], [1399, 1447], [686, 694], [1648, 1649], [2125, 2135], [45, 46], [-1, 1897], [975, 981], [2033, 2038], [201, 211], [2, 4], [1151, 1153], [118, 119], [2147, -2144], [1050, 1059], [104, 105], [2362, 2366], [1196, 1203], [2392, 2401], [470, 481], [31, 32], [2172, 2173], [-1, 1793], [2374, 2375], [981, 987], [108, 109], [2250, 2278], [1969, 1982], [1336, 1337], [1193, 1195], [854, 860], [1897, 1912], [2306, 2330], [91, 92], [1902, 1905], [-1, 2306], [1335, 1495], [2144, 2151], [137, 138], [2114, 2144], [2026, 2027], [461, 467], [782, 788], [1728, 1729], [141, 142], [1982, 1992], [1913, 1914], [1138, 1139], [1611, 1625], [26, 27], [712, 739], [2401, 2413], [2017, -1948], [1704, 1705], [-1, 2026], [1186, 1187], [2090, 2091], [1014, 1027], [84, 90], [143, 185], [37, 41], [1897, 1898], [14, 15], [694, 705], [1899, 1900], [1203, 1246], [2278, 2286], [2116, 2118], [117, 118], [1084, 1089], [7, 8], [1809, 1821], [1834, 1839], [489, 509], [2348, 2356], [-1, 2172], [350, 358], [994, -921], [1190, 1193], [1864, 1870], [1338, 1340], [1691, 1695], [23, 24], [135, 137], [1796, 1798], [-1, 1077], [788, 801], [1496, 1497], [1115, 1118], [-1, 1912], [1485, 1489], [46, 47], [106, 107], [2031, 2033], [1065, -998], [926, 929], [2308, 2310], [2026, 2090], [2378, 2380], [245, 274], [-1, 1643], [669, 674], [2038, 2044], [2236, 2247], [92, 921], [48, 49], [1703, 1728], [12, 14], [2047, 2064], [1794, 1795], [1870, 1876], [862, 871], [1582, 1590], [53, 57], [1876, 1879], [1793, 1827], [57, 62], [1703, 1704], [833, 834], [1153, 1159], [1795, 1796], [739, 782], [110, 114], [10, 11], [2172, 2306], [2163, -2151], [1009, 1014], [655, 666], [-1, 998], [1793, 1794], [28, 30], [140, 141], [1329, -1185], [1949, 1950], [1964, 1969], [2247, 2250], [801, 830], [1003, 1005], [185, 191], [677, 680], [860, 862], [998, 999], [191, 201], [1685, 1691], [2138, -2114], [2118, 2125], [2174, 2175], [1000, 1001]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/utils/lru_cache.py": [[10, 11], [28, 29], [72, 73], [70, 173], [74, 75], [160, 168], [94, 155], [1, 2], [-1, 1], [23, -16], [92, 94], [76, 77], [75, 76], [-1, 72], [170, 171], [-1, 16], [173, -45], [27, 28], [82, 84], [155, 160], [4, 10], [17, 19], [12, 14], [73, 74], [171, -70], [78, 79], [45, -1], [11, 12], [16, 17], [81, 82], [168, 169], [14, 16], [108, 155], [77, 78], [16, 27], [84, 92], [29, 45], [80, 81], [169, 170], [19, 23], [92, 108], [79, 80], [2, 4], [-1, 70]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/db/transaction.py": [[4, 7], [10, 11], [91, 110], [-1, 110], [69, 77], [52, 61], [110, 287], [24, 31], [-1, 1], [61, 69], [137, 139], [297, 305], [38, 45], [77, 84], [84, 91], [7, 14], [7, 10], [196, -110], [14, 24], [1, 4], [11, -7], [-1, 7], [45, 52], [31, 38], [287, 297], [305, -1], [143, 196], [139, 143], [110, 137]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/nose/selector.py": [[37, -34], [170, 171], [156, 157], [154, 156], [40, 41], [162, 163], [-1, 222], [80, 81], [148, 149], [134, 135], [44, 45], [43, 44], [81, -62], [228, 229], [157, -137], [179, -159], [238, 239], [235, 236], [229, 232], [240, 241], [72, 73], [117, 118], [237, 238], [167, 170], [174, 175], [176, 178], [73, 76], [135, -107], [234, 235], [-1, 40], [232, 233], [171, 174], [167, 169], [-1, 187], [236, 237], [54, -47], [141, 144], [196, 197], [227, 228], [118, 117], [169, -159], [73, 74], [163, 167], [-1, 53], [-1, 162], [76, 77], [149, 152], [187, 188], [191, 193], [188, 191], [42, 43], [-1, 35], [45, -39], [233, 234], [241, -221], [226, 227], [69, 72], [224, 225], [153, 154], [74, 76], [120, 121], [123, 126], [175, 176], [234, 237], [41, 42], [130, 131], [119, 120], [53, 57], [53, 54], [127, 129], [222, 224], [-1, 116], [35, 37], [129, 130], [152, 153], [122, -107], [116, 117], [77, 80], [131, 134], [-1, 68], [239, 240], [193, 194], [57, -47], [197, -181], [68, 69], [117, 119], [178, 179], [119, 123], [225, 226], [-1, 140], [121, 122], [140, 141], [144, 148], [126, 127], [194, 196]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/apps/registry.py": [[43, 46], [55, -22], [58, 119], [15, 446], [435, -15], [155, 186], [8, 9], [419, 435], [126, 133], [413, 419], [46, 49], [186, 204], [326, 334], [1, 2], [301, 326], [-1, 1], [204, 225], [400, 406], [133, 140], [22, 58], [10, 12], [397, 400], [349, 363], [153, 154], [15, 20], [386, 397], [26, 36], [294, 301], [234, 255], [36, 39], [-1, 15], [20, 22], [4, 5], [52, 55], [140, 153], [119, 126], [49, 52], [9, 10], [-1, 26], [2, 3], [406, 413], [39, 43], [334, 349], [369, 386], [12, 15], [363, 369], [154, 155], [3, 4], [5, 7], [269, 294], [255, 269], [446, -1], [225, 234], [7, 8]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/nose/plugins/doctests.py": [[192, 193], [193, 194], [189, 190], [188, 189], [-1, 188], [190, 191], [195, -185], [194, 195], [191, 192]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/utils/__init__.py": [[-1, 1], [1, -1]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/utils/ipv6.py": [[91, 128], [6, 9], [4, 5], [128, 147], [212, 257], [9, 10], [5, 6], [10, 91], [257, -4], [-1, 4], [147, 212]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/db/models/query_utils.py": [[158, -116], [68, 71], [172, 212], [-1, 116], [124, 151], [10, 12], [16, 21], [56, 65], [254, -7], [-1, 24], [24, 31], [47, 49], [49, 50], [31, 43], [87, 96], [50, 51], [12, 13], [24, 27], [96, 109], [8, 10], [28, -24], [120, 121], [43, 116], [121, 124], [251, 254], [31, 35], [27, 28], [109, -43], [51, 53], [36, 39], [39, -31], [151, 158], [65, 68], [116, 172], [14, 15], [-1, 7], [212, 251], [35, 36], [77, 87], [116, 120], [13, 14], [7, 8], [71, 77], [-1, 43], [-1, 31], [53, 56], [43, 47], [15, 16], [21, 24]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/db/models/sql/constants.py": [[24, 25], [26, 27], [5, 11], [-1, 3], [31, 32], [25, 26], [19, 24], [12, 13], [30, 31], [13, 14], [32, 36], [29, 30], [14, 19], [27, 29], [11, 12], [37, -3], [36, 37], [3, 5]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/core/files/utils.py": [[16, 17], [17, 18], [-1, 1], [22, 23], [21, 22], [23, 24], [25, 26], [12, 13], [15, 16], [26, 28], [24, 25], [13, 14], [9, 11], [14, 15], [1, 9], [1, -1], [18, 19], [20, 21], [11, 12], [19, 20], [28, -1]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/utils/timezone.py": [[75, 78], [249, 260], [53, -37], [66, 72], [207, 224], [42, 44], [8, 9], [28, 34], [57, 64], [18, 19], [-1, 5], [50, 53], [82, 94], [-1, 57], [261, 264], [94, 96], [16, 17], [-1, 129], [37, 42], [105, 111], [12, 13], [316, 330], [111, 117], [10, 12], [280, 298], [25, 26], [120, -82], [368, -5], [350, 368], [-1, 37], [96, 105], [169, 184], [-1, 82], [27, 28], [249, 280], [200, 207], [330, 340], [184, 190], [129, 151], [260, 261], [340, 350], [72, 75], [190, 193], [9, 10], [57, 82], [271, -249], [151, 155], [34, 37], [141, -129], [23, 24], [298, 316], [82, 129], [135, 137], [17, 18], [137, 141], [44, 47], [155, 169], [26, 27], [14, 16], [224, 239], [13, 14], [-1, 249], [5, 7], [78, -57], [24, 25], [37, 57], [193, 200], [264, 271], [47, 50], [129, 135], [239, 249], [19, 23], [7, 8], [64, 66], [117, 120]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/db/models/sql/datastructures.py": [[129, 131], [110, 115], [115, -28], [8, 9], [-1, 28], [94, 101], [28, 45], [131, 135], [9, -8], [28, 121], [-1, 24], [5, 8], [127, 128], [121, 127], [12, 24], [101, 110], [135, 140], [12, 17], [121, -4], [25, -24], [128, 129], [24, 28], [4, 5], [140, -121], [18, -12], [17, 18], [-1, 12], [46, 63], [8, 12], [45, 46], [-1, 8], [24, 25], [-1, 121], [-1, 4], [63, 94]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/utils/safestring.py": [[-1, 79], [36, 37], [94, 107], [28, 31], [33, 36], [63, 76], [18, 19], [117, 133], [26, -22], [-1, 36], [114, 117], [12, -11], [107, -79], [6, 7], [83, 84], [19, -15], [84, 94], [109, 112], [25, 26], [46, 79], [15, 18], [22, 28], [37, -36], [-1, 6], [15, 22], [-1, 15], [-1, 46], [8, 11], [36, 46], [-1, 11], [76, -46], [50, 51], [11, 12], [51, 63], [22, 25], [79, 109], [79, 83], [46, 50], [-1, 22], [11, 15], [133, -6], [7, 8], [112, 114], [31, 33]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/nose/plugins/logcapture.py": [[209, -206], [217, -214], [195, 193], [-1, 207], [40, 41], [199, -176], [-1, 222], [-1, 178], [208, 209], [-1, 204], [198, 199], [76, 77], [-1, 86], [80, -75], [86, -85], [39, 40], [41, 39], [193, 194], [-1, 76], [39, 44], [193, 196], [178, 179], [222, -219], [204, -201], [179, 193], [-1, 38], [38, 39], [196, 198], [44, -37], [77, 78], [207, 208], [-1, 34], [194, 195], [34, -33], [78, 79], [-1, 217], [79, 80]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/core/checks/__init__.py": [[17, 18], [4, 7], [10, 11], [12, 13], [19, 20], [-1, 2], [14, 17], [20, -2], [13, 14], [18, 19], [7, 10], [11, 12], [2, 4]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/nose/plugins/base.py": [[100, 101], [101, 102], [-1, 98], [98, 100], [102, -92]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/db/models/lookups.py": [[252, -251], [136, 141], [62, 64], [452, 455], [273, 276], [141, 145], [461, 464], [75, 78], [514, 516], [71, 75], [237, -236], [385, 395], [223, 224], [133, 136], [340, -339], [-1, 385], [-1, 346], [6, 7], [247, -246], [471, 472], [360, 362], [-1, 470], [-1, 241], [489, 491], [443, 446], [388, -385], [-1, 440], [403, 405], [329, -326], [220, 223], [91, 193], [-1, 514], [193, 215], [4, 5], [449, 452], [115, 133], [425, 426], [-1, 476], [398, 399], [226, -223], [511, 514], [464, 467], [485, 488], [256, 257], [-1, 193], [60, 62], [223, 233], [242, -241], [-1, 359], [308, -306], [-1, 458], [303, 306], [375, -372], [405, 408], [464, 465], [349, -346], [241, 243], [215, 218], [110, 115], [-1, 372], [385, 386], [488, 489], [409, 411], [488, 497], [60, 91], [259, 273], [-1, 408], [193, 194], [-1, 1], [92, 94], [12, 13], [408, 422], [-1, 425], [276, -256], [306, 326], [-1, 223], [346, 356], [500, 511], [359, 360], [189, -91], [-1, 236], [422, 425], [373, 375], [246, 248], [398, 403], [395, 398], [501, 503], [362, -359], [-1, 246], [503, -500], [446, 447], [497, 500], [515, -514], [339, 340], [472, -470], [327, 329], [470, 473], [218, 219], [440, 443], [204, 211], [386, 388], [460, -458], [-1, 464], [454, -452], [306, 308], [233, 236], [476, 485], [68, 71], [257, 259], [470, 471], [-1, 256], [476, 477], [-1, 500], [218, 220], [414, -408], [467, 470], [442, -440], [194, 204], [343, 346], [-1, 403], [51, -12], [347, 349], [241, 242], [403, 404], [477, 479], [372, 382], [-1, 60], [359, 369], [-1, 452], [458, 461], [465, 466], [356, 359], [236, 238], [183, 189], [-1, 488], [13, 28], [36, 44], [514, 515], [346, 347], [336, 339], [473, 476], [251, 253], [-1, 12], [248, 251], [426, 436], [411, 414], [-1, 446], [491, -488], [339, 343], [2, 4], [9, 12], [-1, 326], [78, 81], [246, 247], [256, 303], [5, 6], [436, -425], [176, 183], [253, 256], [243, 246], [-1, 306], [44, 51], [1, 2], [441, 442], [382, 385], [-1, 218], [326, 327], [94, 110], [372, 373], [447, 448], [404, -403], [219, -218], [516, -1], [440, 441], [455, 458], [64, 68], [425, 440], [91, 92], [224, 226], [458, 459], [-1, 91], [211, -193], [238, 241], [500, 501], [452, 453], [453, 454], [145, 170], [446, 449], [369, 372], [466, -464], [399, -398], [-1, 339], [12, 60], [459, 460], [81, -60], [7, 9], [-1, 251], [28, 36], [479, -476], [170, 176], [-1, 398], [448, -446], [408, 409], [236, 237], [251, 252], [326, 336]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/apps/config.py": [[1, 2], [151, 164], [-1, 1], [6, 8], [54, 77], [4, 5], [8, 11], [77, 143], [200, -11], [165, 189], [-1, 11], [5, 6], [189, 200], [11, 14], [11, -1], [164, 165], [143, 151], [16, 51], [2, 4], [51, 54], [14, 16]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/utils/dateparse.py": [[24, 30], [-1, 1], [54, 66], [42, 43], [12, 14], [30, 31], [23, 24], [66, 84], [43, 54], [8, 9], [1, 8], [9, 11], [14, 15], [15, 18], [19, 23], [18, 19], [11, 12], [112, -1], [31, 42], [84, 112]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/nose/util.py": [[321, 323], [342, 343], [411, -389], [189, 190], [273, 276], [399, 403], [308, 309], [503, 504], [140, -135], [485, -474], [163, 164], [505, -502], [660, 662], [521, -509], [343, -326], [398, 399], [322, 321], [313, 318], [311, 312], [273, 274], [448, 449], [506, -489], [-1, 503], [406, 407], [271, 272], [278, 279], [195, -171], [520, 521], [321, 322], [483, 484], [503, 505], [446, -441], [340, 342], [323, -297], [306, 307], [274, 277], [339, 340], [393, 397], [449, 470], [263, 264], [184, 187], [-1, 520], [310, 311], [-1, 660], [190, 191], [187, 188], [446, 447], [486, -474], [484, 485], [-1, 393], [-1, 337], [338, 339], [267, 270], [662, 663], [272, 273], [-1, 263], [264, 266], [409, 410], [645, 646], [191, -171], [164, -159], [-1, 184], [320, 321], [481, 483], [276, 278], [644, 645], [-1, 642], [184, 195], [642, 643], [663, -659], [307, 308], [403, 404], [470, 471], [309, 310], [397, 398], [646, -627], [-1, 446], [642, 644], [479, 481], [266, 267], [-1, 163], [502, 506], [277, 272], [-1, 306], [319, 320], [504, -502], [484, 486], [404, 405], [447, 448], [188, 195], [471, -441], [312, 313], [-1, 479], [188, 189], [-1, 502], [318, 319], [448, 446], [407, 408], [337, 338], [-1, 140], [410, 411], [405, 406], [279, -233], [643, -642], [408, 409], [270, 271]], "/Users/RaPoSpectre/PycharmProjects/django-simple-serializer/src/dss/Serializer.py": [[38, 36], [93, 92], [104, -99], [10, 11], [67, 99], [5, 6], [37, 36], [88, 90], [28, 29], [34, 42], [111, 112], [103, 104], [18, 19], [11, 14], [29, 30], [26, 27], [16, 17], [84, -67], [68, 73], [92, 94], [92, 93], [30, 28], [87, 88], [8, 10], [29, 28], [27, 28], [25, 26], [100, 101], [24, 34], [86, -67], [-1, 68], [-1, 25], [91, 92], [96, -67], [36, 37], [73, 81], [91, 96], [81, 82], [36, 39], [85, 87], [31, -24], [4, 5], [90, -67], [-1, 2], [99, 107], [28, 31], [19, 24], [39, -34], [82, 83], [14, 15], [87, 91], [-1, 100], [83, 84], [37, 38], [107, 108], [85, 86], [-1, 109], [35, 36], [17, 18], [102, 103], [6, 8], [109, 110], [15, 16], [89, 88], [94, -67], [101, 102], [88, 89], [81, 85], [112, -107], [108, -2], [110, 111], [42, 67], [2, 4], [-1, 35]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/utils/numberformat.py": [[-1, 1], [1, 3], [4, 5], [8, 9], [9, -1], [3, 4], [5, 8]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/utils/module_loading.py": [[12, 15], [54, 90], [6, 7], [4, 5], [11, 12], [111, -2], [-1, 2], [8, 10], [109, 111], [5, 6], [36, 54], [15, 36], [10, 11], [90, 109], [7, 8], [2, 4]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/core/checks/security/csrf.py": [[31, 35], [-1, 1], [1, 3], [22, 23], [19, 22], [5, 6], [6, 11], [35, 41], [14, 15], [11, 14], [23, 27], [41, 50], [15, 19], [27, 31], [50, -1], [3, 5]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/nose/plugins/multiprocess.py": [[224, 225], [225, 226], [234, 235], [238, -219], [233, 234], [-1, 223], [235, 238], [227, 231], [226, 227], [223, 224], [231, 233]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/core/files/base.py": [[132, 135], [1, 3], [8, 13], [164, 167], [161, 164], [152, 161], [65, 67], [17, 25], [-1, 147], [191, -1], [-1, 1], [40, 56], [6, 7], [135, 143], [151, 152], [25, 28], [143, -13], [15, 17], [148, 177], [170, 173], [56, 62], [28, 31], [173, -147], [14, 147], [102, 129], [13, 15], [62, 65], [129, 132], [184, 191], [31, 34], [34, 37], [147, 148], [37, 40], [67, 69], [4, 6], [71, 90], [13, 14], [3, 4], [69, 71], [177, 184], [167, 170], [147, 151], [90, 102], [7, 8], [-1, 13]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/nose/plugins/failuredetail.py": [[36, -30], [-1, 33], [33, 35], [35, 36]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/db/models/deletion.py": [[239, 248], [10, 11], [5, 6], [11, -10], [116, 128], [72, 73], [23, 32], [128, 164], [73, 89], [177, 239], [1, 2], [-1, 1], [6, 7], [-1, 72], [-1, 10], [7, 10], [253, 272], [16, 23], [2, 3], [89, 116], [51, 55], [47, 51], [164, 176], [3, 5], [176, 177], [248, 253], [10, 16], [55, 72], [72, -1], [32, 43], [43, 47], [272, -72]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/utils/deprecation.py": [[5, 9], [54, 55], [50, 73], [24, 30], [5, 6], [-1, 9], [70, 52], [18, 19], [-1, 5], [6, -5], [2, 5], [19, 20], [1, 2], [-1, 1], [23, -16], [52, 53], [55, 56], [13, 16], [-1, 24], [56, 57], [-1, 16], [17, 23], [10, -9], [52, 50], [43, 45], [61, 70], [16, 17], [-1, 33], [21, -17], [9, 10], [30, -23], [45, 47], [16, 33], [50, 51], [-1, 48], [73, -47], [70, 71], [33, 43], [51, 52], [9, 13], [53, 54], [58, 61], [47, -33], [57, 58], [20, 21], [71, 52], [-1, 18], [33, -1], [48, 50]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/conf/global_settings.py": [[151, 156], [334, 338], [54, 55], [92, 93], [342, 346], [559, 566], [360, 365], [72, 73], [338, 342], [94, 95], [440, 449], [86, 87], [127, 128], [113, 114], [89, 90], [148, 149], [122, 123], [76, 77], [51, 52], [314, 319], [100, 101], [187, 190], [556, 557], [555, 556], [319, 323], [491, 498], [323, 328], [128, 129], [583, 590], [199, 202], [365, 376], [84, 85], [642, 643], [428, 431], [105, 106], [196, 197], [114, 115], [96, 97], [503, 504], [195, 196], [107, 108], [304, 309], [233, 237], [594, 601], [264, 268], [109, 110], [111, 112], [101, 102], [346, 351], [117, 118], [433, 440], [386, 406], [636, 641], [175, 178], [98, 99], [67, 68], [511, 513], [644, 645], [643, 644], [106, 107], [69, 70], [300, 304], [601, 608], [60, 61], [285, 288], [247, 250], [140, 144], [536, 543], [431, 433], [65, 66], [460, 468], [58, 59], [417, 421], [12, 13], [351, 356], [268, 280], [165, 166], [93, 94], [489, 491], [376, 386], [103, 104], [566, 576], [80, 81], [166, 169], [309, 314], [468, 470], [356, 360], [202, 205], [241, 244], [73, 74], [427, 428], [66, 67], [134, 135], [18, 21], [75, 76], [515, 517], [90, 91], [77, 78], [71, 72], [184, 187], [517, 519], [194, 195], [57, 58], [52, 53], [81, 82], [288, 292], [62, 63], [59, 60], [513, 515], [74, 75], [61, 62], [474, 476], [145, 148], [82, 83], [47, 51], [150, 151], [576, 579], [95, 96], [231, 233], [328, 334], [414, 417], [406, 411], [83, 84], [554, 555], [120, 121], [197, 198], [205, 212], [482, 484], [-1, 6], [64, 65], [124, 125], [498, 499], [40, 43], [30, 34], [500, 503], [480, 482], [55, 56], [126, 127], [156, 160], [144, 145], [227, 231], [608, 611], [119, 120], [646, 647], [112, 113], [172, 175], [280, 285], [262, 264], [449, 460], [136, 140], [53, 54], [504, 505], [110, 111], [579, 583], [85, 86], [25, 30], [13, 18], [411, 414], [160, 165], [79, 80], [130, 131], [118, 119], [478, 480], [647, -6], [133, 134], [178, 184], [472, 474], [104, 105], [237, 241], [611, 617], [626, 636], [558, 559], [617, 626], [63, 64], [470, 472], [129, 130], [121, 122], [190, 193], [70, 71], [476, 478], [212, 227], [116, 117], [193, 194], [56, 57], [132, 133], [522, 536], [125, 126], [590, 594], [91, 92], [424, 427], [115, 116], [131, 132], [486, 489], [198, 199], [543, 551], [292, 296], [68, 69], [34, 40], [557, 558], [641, 642], [78, 79], [519, 522], [6, 12], [87, 88], [551, 554], [421, 424], [484, 486], [97, 98], [21, 25], [244, 247], [250, 262], [102, 103], [296, 300], [149, 150], [135, 136], [99, 100], [499, 500], [88, 89], [108, 109], [645, 646], [505, 511], [43, 47], [6, -6], [123, 124], [169, 172]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/core/signals.py": [[-1, 1], [1, 3], [4, 5], [6, -1], [5, 6], [3, 4]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/forms/formsets.py": [[82, 86], [171, 176], [68, 71], [1, 3], [22, 23], [57, 68], [357, 363], [5, 6], [145, 171], [8, 9], [108, 127], [55, 56], [409, -50], [71, 75], [10, 11], [415, 416], [-1, 50], [315, 348], [19, 20], [416, 417], [56, 57], [-1, 1], [396, 404], [6, 7], [220, 258], [12, 13], [11, 12], [24, 27], [127, 136], [363, 374], [33, 50], [288, 294], [181, 191], [39, -33], [79, 82], [272, 281], [20, 21], [435, -1], [-1, 33], [258, 262], [176, 181], [191, 200], [4, 5], [30, 33], [9, 10], [294, 315], [404, 409], [33, 38], [75, 79], [136, 145], [387, 396], [16, 19], [23, 24], [374, 377], [50, 55], [86, 89], [377, 387], [38, 39], [14, 16], [200, 220], [13, 14], [3, 4], [52, 415], [348, 357], [281, 288], [89, 108], [21, 22], [417, 435], [27, 30], [50, 51], [51, 52], [7, 8], [262, 272]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/db/models/__init__.py": [[22, 23], [5, 6], [66, -1], [27, 48], [64, 63], [10, 11], [-1, 50], [63, 64], [19, 20], [1, 2], [-1, 1], [6, 7], [50, 57], [12, 13], [11, 12], [24, 27], [7, 10], [20, 22], [48, 60], [14, 15], [63, 66], [58, -48], [16, 19], [23, 24], [3, 5], [60, 62], [13, 14], [57, 58], [62, 63], [2, 3], [15, 16]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/nose/loader.py": [[-1, 79], [92, 93], [154, 156], [122, 123], [200, 201], [94, 95], [379, 404], [114, -108], [416, 417], [473, 474], [350, 353], [108, 116], [378, 379], [84, 85], [410, 416], [210, 211], [420, 421], [550, 551], [82, 83], [418, 420], [147, 149], [417, 418], [123, -101], [144, 145], [541, 542], [341, 343], [196, 197], [177, 151], [567, 568], [406, 409], [181, 182], [347, 348], [-1, 105], [109, 110], [333, 338], [209, 210], [156, 157], [161, 170], [146, 147], [-1, 473], [567, 569], [201, 209], [95, 97], [-1, 314], [150, 151], [-1, 128], [170, 177], [325, 326], [326, 322], [375, 378], [128, 131], [321, 322], [211, 210], [314, 315], [186, 151], [349, 350], [-1, 369], [197, 200], [475, 476], [119, 121], [160, 161], [564, 566], [348, 349], [359, -308], [559, 564], [354, 343], [317, 321], [322, 323], [177, 178], [134, 135], [331, 332], [486, 487], [-1, 109], [79, 81], [116, 119], [346, 347], [85, 86], [113, -108], [569, 570], [332, 333], [476, 481], [81, 82], [315, 316], [99, -59], [180, 181], [330, 331], [542, 547], [182, 183], [540, 541], [332, -332], [158, 159], [151, 154], [522, 523], [330, -330], [325, 328], [345, 346], [93, 94], [110, 112], [83, 84], [409, 410], [112, 113], [474, 475], [431, 432], [338, 340], [494, -483], [432, 433], [356, 359], [97, 99], [-1, 143], [343, 356], [157, 158], [322, 330], [433, -361], [90, 91], [179, 180], [145, 146], [428, 431], [551, 559], [493, 494], [135, -133], [421, 428], [210, 212], [405, 406], [547, 550], [143, 144], [566, 567], [212, -137], [369, 371], [374, 375], [183, 186], [-1, 540], [371, 374], [487, 488], [159, 160], [327, 322], [-1, 486], [-1, 332], [481, -469], [326, 327], [131, -125], [568, 569], [404, 405], [89, 90], [570, -536], [-1, 522], [91, 92], [-1, 134], [151, 196], [155, 151], [328, 322], [488, 493], [316, 317], [178, 179], [343, 344], [323, 325], [353, 354], [86, 89], [154, 155], [121, 122], [340, 341], [149, 150], [344, 345], [523, -521], [-1, 330], [112, 114], [105, 108]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/core/checks/registry.py": [[45, 54], [6, 9], [92, 93], [-1, 9], [22, 26], [-1, 23], [59, -26], [94, 95], [82, 85], [16, 17], [57, 58], [58, 59], [12, 13], [-1, 20], [20, 92], [79, 82], [61, 79], [47, 48], [26, 61], [43, 45], [20, 22], [9, 20], [-1, 46], [93, 94], [-1, 2], [49, 52], [14, 15], [17, -9], [85, -20], [50, 51], [23, 24], [24, -22], [48, 49], [54, 57], [4, 6], [13, 14], [-1, 43], [47, 50], [46, 47], [95, -2], [51, 52], [15, 16], [2, 4], [9, 12], [52, -45]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/db/models/expressions.py": [[598, 599], [370, 396], [861, 872], [783, 788], [225, 237], [14, 121], [941, 947], [580, 583], [-1, 517], [750, 751], [652, 655], [682, 683], [672, 675], [517, 520], [-1, 460], [6, 7], [931, 934], [-1, 14], [436, 437], [-1, 404], [14, 18], [788, -738], [557, -517], [860, 861], [183, 206], [613, 616], [289, 295], [561, 570], [918, 924], [141, 148], [34, 36], [456, -433], [121, 343], [396, -350], [484, 487], [591, 594], [4, 5], [510, -460], [138, 141], [840, 845], [-1, 343], [460, 463], [577, 580], [460, 517], [605, 609], [-1, 810], [81, 86], [95, 98], [206, 212], [655, -626], [101, 104], [33, 34], [417, -404], [857, 915], [669, 672], [813, 814], [-1, 561], [659, 682], [7, 8], [826, 829], [533, 536], [132, 135], [22, 23], [343, 346], [487, 494], [110, 115], [350, 404], [437, 444], [947, 951], [8, 9], [-1, 659], [598, 626], [771, 775], [823, 826], [-1, 350], [216, 225], [814, 820], [-1, 121], [36, 52], [-1, 1], [571, 577], [570, 571], [775, 783], [851, -810], [583, -570], [915, 916], [916, 918], [-1, 598], [879, 882], [135, 138], [751, 753], [616, 619], [683, 685], [561, 562], [706, 710], [857, 860], [675, 678], [468, 474], [295, 300], [405, 417], [104, 107], [599, 605], [810, 857], [447, 450], [237, 265], [18, 21], [23, 24], [710, 717], [364, 367], [536, 552], [346, 347], [212, 216], [463, 464], [762, 765], [682, 738], [765, 768], [24, 25], [609, 613], [738, 749], [28, 33], [300, 318], [678, -659], [521, 533], [876, 879], [820, 823], [444, 447], [-1, 738], [703, 706], [78, 81], [896, 903], [11, 14], [-1, 915], [552, 557], [64, 67], [954, -915], [453, 456], [148, 176], [464, 465], [286, 289], [829, 840], [107, 110], [517, 561], [587, 598], [951, 954], [352, 358], [915, -1], [635, 638], [700, 703], [466, 468], [318, 326], [92, 95], [626, 630], [73, 78], [934, 941], [494, 510], [928, 931], [619, -598], [129, 132], [738, 810], [753, 762], [481, 484], [924, 928], [694, 697], [336, 339], [89, 92], [520, 521], [52, 55], [265, 283], [124, 127], [872, 876], [749, 750], [339, -121], [58, 61], [730, -682], [882, 891], [61, 64], [562, -561], [283, 286], [588, 591], [659, 663], [347, -343], [2, 4], [649, 652], [127, 129], [685, 694], [70, 73], [-1, 570], [10, 11], [350, 352], [665, 669], [5, 6], [717, 730], [176, 183], [-1, 587], [587, 588], [55, 58], [768, 771], [433, 460], [450, 453], [121, 124], [638, 641], [1, 2], [115, -14], [404, 405], [333, 336], [697, 700], [67, 70], [626, 659], [404, 433], [891, 896], [663, 665], [358, 361], [326, 333], [474, 481], [810, 813], [343, 350], [433, 436], [9, 10], [-1, 682], [641, 644], [845, 851], [644, 649], [98, 101], [-1, 626], [-1, 857], [25, 28], [465, 466], [86, 89], [21, 22], [630, 631], [903, -857], [-1, 433], [570, 587], [367, 370], [631, 635], [594, -587], [361, 364]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/utils/baseconv.py": [[49, 51], [42, 43], [66, 72], [40, 41], [60, 66], [98, 99], [95, 96], [57, 60], [96, 97], [38, 40], [52, 53], [45, 48], [51, 57], [72, -48], [99, 100], [97, 98], [48, 95], [-1, 52], [41, 42], [-1, 48], [43, 44], [-1, 38], [48, 49], [54, -51], [100, -38], [53, 54], [44, 45]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/utils/http.py": [[1, 3], [215, 223], [28, 29], [74, 80], [164, 176], [8, 9], [249, 256], [16, 21], [51, 54], [39, 43], [29, 30], [31, 32], [43, 51], [35, 37], [194, 215], [-1, 1], [6, 7], [12, 13], [83, 100], [10, 12], [25, 26], [5, 6], [71, 74], [27, 28], [32, 34], [223, 235], [4, 5], [100, 114], [21, 23], [62, 65], [9, 10], [14, 15], [38, 39], [3, 4], [80, 83], [37, 38], [23, 24], [114, 128], [26, 27], [13, 14], [15, 16], [256, 269], [176, 194], [24, 25], [128, 164], [65, 71], [269, -1], [30, 31], [235, 249], [7, 8], [34, 35], [54, 62]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/core/paginator.py": [[4, 7], [19, 103], [134, 137], [57, 66], [-1, 106], [7, 11], [-1, 19], [15, 19], [128, 131], [1, 2], [-1, 1], [106, -1], [92, 94], [81, 92], [11, 12], [46, 57], [106, 108], [108, 113], [131, 134], [153, -106], [19, 21], [16, -15], [8, -7], [-1, 15], [143, 153], [140, 143], [113, 116], [-1, 11], [119, 128], [22, 29], [94, 100], [29, 46], [-1, 7], [79, 81], [116, 119], [12, -11], [21, 22], [7, 8], [100, -19], [103, 106], [66, 79], [11, 15], [15, 16], [2, 4], [137, 140]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/core/signing.py": [[129, 149], [-1, 58], [54, 55], [179, 182], [182, 187], [61, 62], [51, 58], [40, 41], [177, 179], [46, 47], [51, 54], [78, 84], [167, -149], [48, 51], [151, 158], [36, 38], [149, 177], [44, 45], [42, 44], [65, 69], [-1, 51], [163, 167], [92, -84], [47, 48], [34, 36], [62, -58], [96, 129], [-1, 149], [58, 65], [177, -34], [149, 151], [187, -177], [84, 96], [41, 42], [69, 74], [55, -51], [89, 92], [38, 39], [84, 88], [45, 46], [39, 40], [58, 61], [-1, 34], [88, 89], [158, 163], [-1, 177], [74, 78], [-1, 84]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/core/checks/security/base.py": [[14, 17], [1, 3], [54, 55], [89, 95], [46, 51], [60, 63], [33, 36], [8, 9], [78, 80], [135, 144], [51, 54], [103, 107], [178, -1], [63, 64], [69, 72], [-1, 1], [125, 135], [37, 42], [76, 77], [24, 27], [77, 78], [5, 6], [144, 153], [95, 99], [27, 28], [36, 37], [9, 14], [84, 85], [18, 24], [42, 45], [119, 125], [172, 178], [64, 69], [162, 172], [153, 162], [99, 103], [80, 83], [83, 84], [3, 5], [17, 18], [72, 73], [107, 113], [6, 8], [45, 46], [88, 89], [55, 60], [28, 33], [85, 88], [113, 119], [73, 76]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/db/models/query.py": [[589, 598], [279, 307], [1411, -1373], [1213, 1214], [-1, 1047], [837, 845], [214, 229], [147, 165], [1194, 1205], [18, 19], [618, 634], [143, 147], [1140, 1156], [728, 746], [6, 7], [550, 552], [805, 816], [203, 214], [25, 26], [544, 550], [1266, 1277], [1395, 1401], [172, 203], [763, 805], [100, 117], [1037, 1044], [1077, 1088], [1048, -1047], [1670, 1671], [117, 137], [1277, 1319], [924, 939], [541, 542], [396, 409], [-1, 1213], [922, 924], [845, 860], [33, 36], [598, 605], [1052, 1056], [480, 483], [17, 18], [1401, 1406], [674, 681], [1047, 1052], [552, 566], [-1, 1373], [1406, 1411], [356, 396], [1071, 1074], [65, 71], [667, 674], [1044, -48], [7, 8], [21, 24], [634, 655], [1373, 1415], [584, 589], [542, 544], [581, 582], [1251, 1373], [568, 581], [1256, 1257], [1736, 1747], [78, 90], [1553, 1591], [1257, 1266], [1392, 1395], [899, 910], [495, 504], [20, 21], [1176, 1194], [1008, 1019], [464, 480], [746, 763], [90, 100], [874, 886], [1671, 1736], [51, 53], [1747, -1656], [1764, -3], [1319, 1322], [717, 728], [-1, 1251], [688, 700], [432, 449], [1094, 1140], [681, 688], [320, 341], [1656, 1764], [1047, 1048], [3, 5], [991, 998], [1062, 1063], [582, 584], [1062, 1213], [910, 921], [605, 608], [24, 25], [1088, 1094], [886, 897], [1656, 1670], [229, 279], [486, 495], [608, 618], [655, 667], [897, 899], [983, 991], [1374, 1385], [1029, 1037], [36, 48], [1005, 1008], [827, 837], [700, 717], [48, 51], [1052, 1062], [16, 17], [72, 78], [30, 33], [11, 12], [8, 10], [1389, 1392], [921, 922], [341, 351], [-1, 1062], [165, 169], [566, 568], [1213, 1251], [939, 963], [963, 969], [1251, 1255], [1019, 1021], [516, 541], [1385, 1389], [1063, 1071], [-1, 3], [1339, 1359], [1359, -1251], [27, 30], [1429, 1553], [71, 72], [1243, -1213], [1214, 1243], [1415, 1429], [10, 11], [5, 6], [53, 65], [-1, 1052], [1156, 1164], [816, 826], [12, 16], [1074, 1077], [969, 983], [1591, 1656], [1205, -1062], [137, 143], [860, 874], [449, 464], [1164, 1176], [-1, 1656], [1325, 1330], [1255, 1256], [1056, 1058], [1373, 1374], [1322, 1325], [-1, 48], [826, 827], [19, 20], [1021, 1029], [409, 432], [26, 27], [1330, 1339], [48, 1047], [504, 516], [351, 356], [483, 486], [307, 320], [998, 1005], [1058, -1052], [169, 172]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/http/__init__.py": [[1, 2], [16, 17], [-1, 1], [20, 21], [17, 18], [19, 20], [14, 15], [11, 14], [21, -1], [18, 19], [15, 16], [2, 4], [4, 11]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/conf/__init__.py": [[82, 141], [162, 166], [10, 11], [46, 51], [42, -29], [-1, 23], [76, -72], [29, 46], [82, 83], [171, 174], [180, -7], [141, 180], [16, 17], [166, 171], [83, 137], [-1, 7], [-1, 72], [141, 144], [28, 29], [157, 162], [69, -64], [-1, 82], [35, 36], [18, 20], [36, 37], [147, 149], [75, 76], [12, 14], [174, -141], [72, 75], [23, 72], [-1, 35], [9, 10], [14, 15], [-1, 69], [64, -23], [38, 39], [144, 147], [37, 38], [11, 12], [7, 9], [17, 18], [20, 23], [137, -82], [23, 28], [149, 157], [72, 82], [39, 42], [51, 64], [15, 16], [-1, 141]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/db/models/sql/__init__.py": [[1, 2], [-1, 1], [4, 7], [7, -1], [2, 3], [3, 4]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/utils/datetime_safe.py": [[10, 11], [36, 37], [72, -10], [32, -22], [23, 26], [-1, 36], [40, 45], [18, -17], [26, 32], [-1, 10], [12, 17], [37, -36], [45, 56], [36, 40], [22, 23], [17, 22], [59, 72], [11, 12], [17, 18], [56, 59], [-1, 17], [-1, 22], [22, 36]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/forms/__init__.py": [[9, 10], [6, 7], [-1, 3], [8, 9], [5, 6], [10, -3], [7, 8], [3, 5]], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/core/checks/compatibility/__init__.py": [[-1, 1], [1, -1]]}} -------------------------------------------------------------------------------- /src/README.rst: -------------------------------------------------------------------------------- 1 | Django Simple Serializer 2 | ======================== 3 | 4 | -------------- 5 | 6 | [English Doc][1] 7 | 8 | Django Simple Serializer 是一个可以帮助开发者快速将 Django 数据或者 9 | python data 序列化为 json\|raw 数据。 10 | 11 | 为什么要用 Django Simple Serializer ? 12 | ------------------------------------- 13 | 14 | 对于序列化 Django 数据的解决方案已经有以下几种: 15 | 16 | django.core.serializers 17 | ~~~~~~~~~~~~~~~~~~~~~~~ 18 | 19 | Django内建序列化器, 它可以序列化Django model query set 20 | 但无法直接序列化单独的Django model数据。如果你的model里含有混合数据 , 21 | 这个序列化器同样无法使用(如果你想直接使用序列化数据). 除此之外, 22 | 如果你想直接把序列化数据返回给用户,显然它包含了很多敏感及对用户无用对信息。 23 | 24 | QuerySet.values() 25 | ~~~~~~~~~~~~~~~~~ 26 | 27 | 和上面一样, QuerySet.values() 同样没法工作如果你的model里有 28 | DateTimeField 或者其他特殊的 Field 以及额外数据。 29 | 30 | django-rest-framework serializers 31 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 32 | 33 | django-rest-framework 是一个可以帮助你快速构建 REST API 的强力框架。 34 | 他拥有完善的序列化器,但在使用之前你需要花费一些时间入门, 并学习 cbv 35 | 的开发方式, 对于有时间需求的项目显然这不是最好的解决方案。 36 | 37 | django simple serializer 38 | ~~~~~~~~~~~~~~~~~~~~~~~~ 39 | 40 | 我希望可以快速简单的序列化数据, 41 | 所以我设计了一种可以不用任何额外的配置与学习而将Django data 或者 python 42 | data 序列化为相应的数据的简单的方式。 这就是为什么我写了 django simple 43 | serializer。 44 | 45 | django simple serializer 的实际例子: `我的个人网站后台数据接口`_ 46 | 47 | -------------- 48 | 49 | 运行需求 50 | -------- 51 | 52 | Python 2: 53 | ~~~~~~~~~ 54 | 55 | Django >= 1.5 56 | 57 | Python >= 2.6 58 | 59 | Python 3: 60 | ~~~~~~~~~ 61 | 62 | Django >= 1.8 63 | 64 | Python >= 3 65 | 66 | 安装 67 | ---- 68 | 69 | Install using pip: 70 | 71 | :: 72 | 73 | pip install django-simple-serializer 74 | 75 | 使用 django simple serializer 进行开发 76 | -------------------------------------- 77 | 78 | 序列化Django data 79 | ~~~~~~~~~~~~~~~~~ 80 | 81 | 假设我们有以下Django models: 82 | 83 | :: 84 | 85 | class Classification(models.Model): 86 | c_name = models.CharField(max_length=30, unique=True) 87 | 88 | class Article(models.Model): 89 | caption = models.CharField(max_length=50) 90 | classification = models.ForeignKey(Classification, related_name='cls_art') 91 | content = models.TextField() 92 | publish = models.BooleanField(default=False) 93 | 94 | 使用django simple serializer的简单例子: 95 | 96 | :: 97 | 98 | from dss.Serializer import serializer 99 | article_list = Article.objects.all() 100 | data = serializer(article_list) 101 | 102 | data: 103 | 104 | :: 105 | 106 | [{'read_count': 0, 'create_time': 1432392456.0, 'modify_time': 1432392456.0, 'sub_caption': u'first', 'comment_count': 0, u'id': 31}, {'read_count': 0, 'create_time': 1432392499.0, 'modify_time': 1432392499.0, 'sub_caption': u'second', 'comment_count': 0, u'id': 32}] 107 | 108 | 默认情况下, 序列器会返回一个 list 或者 dict(对于单个model实例), 109 | 你可以设置参数 “output\_type” 来决定序列器返回 json/raw. 110 | 111 | -------------- 112 | 113 | API 手册 114 | -------- 115 | 116 | dss.Serializer 117 | ^^^^^^^^^^^^^^ 118 | 119 | 提供序列器 120 | 121 | *function* serializer(\ *data, datetime\_format=‘timestamp’, 122 | output\_type=‘raw’, include\_attr=None, exclude\_attr=None, 123 | foreign=False, many=False, through=True*) 124 | 125 | Parameters: 126 | ^^^^^^^^^^^ 127 | 128 | - data(\ *Required*\ \|(QuerySet, Page, list, django model 129 | object))-待处理数据 130 | - datetime\_format(\ *Optional*\ \|string)-如果包含 datetime 将 131 | datetime 转换成相应格式.默认为 “timestamp”(时间戳) 132 | - output\_type(\ *Optional*\ \|string)-serialize type. 133 | 默认“raw”原始数据,即返回list或dict 134 | - include\_attr(\ *Optional*\ \|(list, tuple))-只序列化 include\_attr 135 | 列表里的字段。默认为 None 136 | - exclude\_attr(\ *Optional*\ \|(list, tuple))-不序列化 exclude\_attr 137 | 列表里的字段。默认为 None 138 | - foreign(\ *Optional*\ \|bool)-是否序列化 ForeignKeyField 139 | 。include\_attr 与 exclude\_attr 对 ForeignKeyField 依旧有效。 默认为 140 | False 141 | - many(\ *Optional*\ \|bool)-是否序列化 ManyToManyField 。include\_attr 142 | 与 exclude\_attr 对 ManyToManyField 依旧有效 默认为 False 143 | - through(\ *Optional*\ \|bool)-是否序列化 ManyToManyField 中 through 144 | 属性数据 默认为 True 145 | 146 | .. _我的个人网站后台数据接口: https://github.com/bluedazzle/django-vue.js-blog/blob/master/api/views.py 147 | 用法: 148 | ^^^^^ 149 | 150 | **datetime\_format:** 151 | 152 | +--------------+------------------------------------------------------+ 153 | | parameters | intro | 154 | +==============+======================================================+ 155 | | string | 转换 datetime 为字符串。如: “2015-05-10 10:19:22” | 156 | +--------------+------------------------------------------------------+ 157 | | timestamp | 转换 datetime 为时间戳。如: “1432124420.0” | 158 | +--------------+------------------------------------------------------+ 159 | 160 | 例子: 161 | 162 | :: 163 | 164 | from dss.Serializer import serializer 165 | article_list = Article.objects.all() 166 | data = serializer(article_list, datetime_format='string', output_type='json') 167 | 168 | data: 169 | 170 | :: 171 | 172 | [ 173 | { 174 | "read_count": 0, 175 | "sub_caption": "first", 176 | "publish": true, 177 | "content": "first article", 178 | "caption": "first", 179 | "comment_count": 0, 180 | "create_time": "2015-05-23 22:47:36", 181 | "modify_time": "2015-05-23 22:47:36", 182 | "id": 31 183 | }, 184 | { 185 | "read_count": 0, 186 | "sub_caption": "second", 187 | "publish": false, 188 | "content": "second article", 189 | "caption": "second", 190 | "comment_count": 0, 191 | "create_time": "2015-05-23 22:48:19", 192 | "modify_time": "2015-05-23 22:48:19", 193 | "id": 32 194 | } 195 | ] 196 | 197 | **output\_type** 198 | 199 | +--------------+----------------------------------------------------+ 200 | | parameters | intro | 201 | +==============+====================================================+ 202 | | raw | 将list或dict中的特殊对象序列化后输出为list或dict | 203 | +--------------+----------------------------------------------------+ 204 | | dict | 同 raw | 205 | +--------------+----------------------------------------------------+ 206 | | json | 转换数据为 json | 207 | +--------------+----------------------------------------------------+ 208 | 209 | [STRIKEOUT:xml 转换数据为 xml] (暂时去除) 210 | 211 | 例子: 212 | 213 | :: 214 | 215 | from dss.Serializer import serializer 216 | article_list = Article.objects.all()[0] 217 | data = serializer(article_list, output_type='json') 218 | 219 | data: 220 | 221 | :: 222 | 223 | { 224 | "read_count": 0, 225 | "sub_caption": "first", 226 | "publish": true, 227 | "content": "first article", 228 | "caption": "first", 229 | "comment_count": 0, 230 | "create_time": "2015-05-23 22:47:36", 231 | "modify_time": "2015-05-23 22:47:36", 232 | "id": 31 233 | } 234 | 235 | **include\_attr** 236 | 237 | 例子: 238 | 239 | :: 240 | 241 | from dss.Serializer import serializer 242 | article_list = Article.objects.all() 243 | data = serializer(article_list, output_type='json', include_attr=('content', 'caption',)) 244 | 245 | data: 246 | 247 | :: 248 | 249 | [ 250 | { 251 | "content": "first article", 252 | "caption": "first" 253 | }, 254 | { 255 | "content": "second article", 256 | "caption": "second" 257 | } 258 | ] 259 | 260 | **exclude\_attr** 261 | 262 | 例子: 263 | 264 | :: 265 | 266 | from dss.Serializer import serializer 267 | article_list = Article.objects.all() 268 | data = serializer(article_list, output_type='json', exclude_attr=('content',)) 269 | 270 | data: 271 | 272 | :: 273 | 274 | [ 275 | { 276 | "read_count": 0, 277 | "sub_caption": "first", 278 | "publish": true, 279 | "caption": "first", 280 | "comment_count": 0, 281 | "create_time": 1432392456, 282 | "modify_time": 1432392456, 283 | "id": 31 284 | }, 285 | { 286 | "read_count": 0, 287 | "sub_caption": "second", 288 | "publish": false, 289 | "caption": "second", 290 | "comment_count": 0, 291 | "create_time": 1432392499, 292 | "modify_time": 1432392499, 293 | "id": 32 294 | } 295 | ] 296 | 297 | 298 | **foreign** -------------------------------------------------------------------------------- /src/__init__.py: -------------------------------------------------------------------------------- 1 | __author__ = 'RaPoSpectre' 2 | -------------------------------------------------------------------------------- /src/dss/Mixin.py: -------------------------------------------------------------------------------- 1 | # coding: utf-8 2 | 3 | from __future__ import unicode_literals 4 | from __future__ import absolute_import 5 | 6 | import sys 7 | PY2 = True 8 | if sys.version < '3': 9 | from future.builtins import str, int 10 | PY2 = False 11 | 12 | import json 13 | from django.core.paginator import EmptyPage 14 | 15 | from .Serializer import serializer 16 | from .TimeFormatFactory import TimeFormatFactory 17 | 18 | try: 19 | from django.http import HttpResponse 20 | except ImportError: 21 | raise RuntimeError('django is required in django simple serializer') 22 | 23 | 24 | class JsonResponseMixin(object): 25 | datetime_type = 'string' 26 | foreign = False 27 | many = False 28 | include_attr = [] 29 | exclude_attr = [] 30 | 31 | def time_format(self, time_obj): 32 | time_func = TimeFormatFactory.get_time_func(self.datetime_type) 33 | return time_func(time_obj) 34 | 35 | def context_serialize(self, context, *args, **kwargs): 36 | try: 37 | context.pop('view') 38 | context.pop('object') 39 | except KeyError: 40 | pass 41 | except AttributeError: 42 | pass 43 | # if kwargs.get('multi_extend'): 44 | # self.include_attr.extend(kwargs.get('multi_extend')) 45 | return serializer(data=context, 46 | datetime_format=self.datetime_type, 47 | output_type='raw', 48 | foreign=self.foreign, 49 | many=self.many, 50 | include_attr=self.include_attr, 51 | exclude_attr=self.exclude_attr, 52 | dict_check=True) 53 | 54 | @staticmethod 55 | def json_serializer(context): 56 | return json.dumps(context, indent=4) 57 | 58 | def render_to_response(self, context, **response_kwargs): 59 | context_dict = self.context_serialize(context) 60 | json_context = self.json_serializer(context_dict) 61 | return HttpResponse(json_context, content_type='application/json', **response_kwargs) 62 | 63 | 64 | class FormJsonResponseMixin(JsonResponseMixin): 65 | def context_serialize(self, context, *args, **kwargs): 66 | form_list = [] 67 | form = context.get('form', None) 68 | if form: 69 | for itm in form.fields: 70 | f_dict = {'field': str(itm)} 71 | form_list.append(f_dict) 72 | context_dict = super(FormJsonResponseMixin, self).context_serialize(context, *args, **kwargs) 73 | context_dict['form'] = form_list 74 | return context_dict 75 | 76 | 77 | class MultipleJsonResponseMixin(JsonResponseMixin): 78 | def context_serialize(self, context, *args, **kwargs): 79 | # multi_extend = [i for i in context.keys() if not i.startswith('object') and i.endswith('_list')] 80 | # kwargs['multi_extend'] = multi_extend 81 | page_dict = {} 82 | is_paginated = context.get('is_paginated', None) 83 | if is_paginated: 84 | page_obj = context['page_obj'] 85 | page_dict['current'] = page_obj.number 86 | page_dict['total'] = page_obj.paginator.num_pages 87 | try: 88 | previous_page = page_obj.previous_page_number() 89 | except EmptyPage: 90 | previous_page = None 91 | try: 92 | next_page = page_obj.next_page_number() 93 | except EmptyPage: 94 | next_page = None 95 | page_dict['previous'] = previous_page 96 | page_dict['next'] = next_page 97 | page_dict['page_range'] = [{'page': i} for i in page_obj.paginator.page_range] 98 | try: 99 | context.pop('paginator') 100 | context.pop('object_list') 101 | except KeyError: 102 | pass 103 | except AttributeError: 104 | pass 105 | context_dict = super(MultipleJsonResponseMixin, self).context_serialize(context, *args, **kwargs) 106 | context_dict['page_obj'] = page_dict 107 | return context_dict 108 | -------------------------------------------------------------------------------- /src/dss/Serializer.py: -------------------------------------------------------------------------------- 1 | # coding: utf-8 2 | from __future__ import unicode_literals 3 | import sys 4 | 5 | PY2 = True 6 | if sys.version < '3': 7 | from future.builtins import str, int 8 | PY2 = False 9 | 10 | import datetime 11 | import json 12 | 13 | from decimal import Decimal 14 | 15 | from .TimeFormatFactory import TimeFormatFactory 16 | 17 | try: 18 | from django.db import models 19 | from django.db.models import manager 20 | from django.core.paginator import Page 21 | from django.db.models.query import QuerySet 22 | from django.db.models.fields.files import ImageFieldFile, FileField 23 | except ImportError: 24 | raise RuntimeError('django is required in django simple serializer') 25 | 26 | 27 | class Serializer(object): 28 | include_attr = [] 29 | exclude_attr = [] 30 | objects = [] 31 | origin_data = None 32 | output_type = 'raw' 33 | datetime_format = 'timestamp' 34 | foreign = False 35 | many = False 36 | through = True 37 | 38 | def __init__(self, data, datetime_format='timestamp', output_type='raw', include_attr=None, exclude_attr=None, 39 | foreign=False, many=False, through=True, *args, **kwargs): 40 | if include_attr: 41 | self.include_attr = include_attr 42 | if exclude_attr: 43 | self.exclude_attr = exclude_attr 44 | self.origin_data = data 45 | self.output_type = output_type 46 | self.foreign = foreign 47 | self.many = many 48 | self.through = through 49 | self.through_fields = [] 50 | self.source_field = None 51 | self.datetime_format = datetime_format 52 | self.time_func = TimeFormatFactory.get_time_func(datetime_format) 53 | self._dict_check = kwargs.get('dict_check', False) 54 | 55 | def check_attr(self, attr): 56 | if self.exclude_attr and attr in self.exclude_attr: 57 | return False 58 | if self.include_attr and attr not in self.include_attr: 59 | return False 60 | return True 61 | 62 | def data_inspect(self, data, extra=None): 63 | if isinstance(data, (QuerySet, Page, list)): 64 | convert_data = [] 65 | if extra: 66 | for i, obj in enumerate(data): 67 | convert_data.append(self.data_inspect(obj, extra.get( 68 | **{self.through_fields[0]: obj, self.through_fields[1]: self.source_field}))) 69 | else: 70 | for obj in data: 71 | convert_data.append(self.data_inspect(obj)) 72 | return convert_data 73 | elif isinstance(data, models.Model): 74 | obj_dict = {} 75 | concrete_model = data._meta.concrete_model 76 | for field in concrete_model._meta.local_fields: 77 | if field.rel is None: 78 | if self.check_attr(field.name) and hasattr(data, field.name): 79 | obj_dict[field.name] = self.data_inspect(getattr(data, field.name)) 80 | else: 81 | if self.check_attr(field.name) and self.foreign: 82 | obj_dict[field.name] = self.data_inspect(getattr(data, field.name)) 83 | for field in concrete_model._meta.many_to_many: 84 | if self.check_attr(field.name) and self.many: 85 | obj_dict[field.name] = self.data_inspect(getattr(data, field.name)) 86 | for k, v in data.__dict__.items(): 87 | if not str(k).startswith('_') and k not in obj_dict.keys() and self.check_attr(k): 88 | obj_dict[k] = self.data_inspect(v) 89 | if extra: 90 | for field in extra._meta.concrete_model._meta.local_fields: 91 | if field.name not in obj_dict.keys() and field.name not in self.through_fields: 92 | if field.rel is None: 93 | if self.check_attr(field.name) and hasattr(extra, field.name): 94 | obj_dict[field.name] = self.data_inspect(getattr(extra, field.name)) 95 | else: 96 | if self.check_attr(field.name) and self.foreign: 97 | obj_dict[field.name] = self.data_inspect(getattr(extra, field.name)) 98 | return obj_dict 99 | elif isinstance(data, manager.Manager): 100 | through_list = data.through._meta.concrete_model._meta.local_fields 101 | through_data = data.through._default_manager 102 | self.through_fields = [data.target_field.name, data.source_field.name] 103 | self.source_field = data.instance 104 | if len(through_list) > 3 and self.through: 105 | return self.data_inspect(data.all(), through_data) 106 | else: 107 | return self.data_inspect(data.all()) 108 | elif isinstance(data, (datetime.datetime, datetime.date, datetime.time)): 109 | return self.time_func(data) 110 | elif isinstance(data, (ImageFieldFile, FileField)): 111 | return data.url if data.url else data.path 112 | elif isinstance(data, Decimal): 113 | return float(data) 114 | elif isinstance(data, dict): 115 | obj_dict = {} 116 | if self._dict_check: 117 | for k, v in data.items(): 118 | obj_dict[k] = self.data_inspect(v) 119 | else: 120 | for k, v in data.items(): 121 | if self.check_attr(k): 122 | obj_dict[k] = self.data_inspect(v) 123 | return obj_dict 124 | elif isinstance(data, (str, bool, float, int)): 125 | return data 126 | else: 127 | return None 128 | 129 | def data_format(self): 130 | self.objects = self.data_inspect(self.origin_data) 131 | 132 | def get_values(self): 133 | output_switch = {'dict': self.objects, 134 | 'raw': self.objects, 135 | 'json': json.dumps(self.objects, indent=4)} 136 | return output_switch.get(self.output_type, self.objects) 137 | 138 | def __call__(self): 139 | self.data_format() 140 | return self.get_values() 141 | 142 | 143 | def serializer(data, datetime_format='timestamp', output_type='raw', include_attr=None, exclude_attr=None, 144 | foreign=False, many=False, through=True, *args, **kwargs): 145 | s = Serializer(data, datetime_format, output_type, include_attr, exclude_attr, 146 | foreign, many, through, *args, **kwargs) 147 | return s() 148 | -------------------------------------------------------------------------------- /src/dss/TimeFormatFactory.py: -------------------------------------------------------------------------------- 1 | # coding: utf-8 2 | 3 | import time 4 | import datetime 5 | from functools import partial 6 | 7 | try: 8 | from django.utils import timezone 9 | except ImportError: 10 | raise RuntimeError('Django is required for django simple serializer.') 11 | 12 | 13 | class TimeFormatFactory(object): 14 | def __init__(self): 15 | super(TimeFormatFactory, self).__init__() 16 | 17 | @staticmethod 18 | def datetime_to_string(datetime_time, time_format='%Y-%m-%d %H:%M:%S'): 19 | if isinstance(datetime_time, datetime.datetime): 20 | if datetime_time.tzinfo: 21 | datetime_time = datetime_time.astimezone(timezone.get_current_timezone()) 22 | return datetime_time.strftime(time_format) 23 | elif isinstance(datetime_time, datetime.time): 24 | time_format = '%H:%M:%S' 25 | elif isinstance(datetime_time, datetime.date): 26 | time_format = '%Y-%m-%d' 27 | return datetime_time.strftime(time_format) 28 | 29 | @staticmethod 30 | def datetime_to_timestamp(datetime_time, time_format=None): 31 | if isinstance(datetime_time, datetime.datetime): 32 | if datetime_time.tzinfo: 33 | datetime_time = datetime_time.astimezone(timezone.get_current_timezone()) 34 | return time.mktime(datetime_time.timetuple()) 35 | return time.mktime(datetime_time.timetuple()) 36 | 37 | @staticmethod 38 | def get_time_func(func_type='string'): 39 | if func_type == 'string': 40 | return TimeFormatFactory.datetime_to_string 41 | elif func_type == 'timestamp': 42 | return TimeFormatFactory.datetime_to_timestamp 43 | else: 44 | return TimeFormatFactory.datetime_to_string 45 | -------------------------------------------------------------------------------- /src/dss/Warning.py: -------------------------------------------------------------------------------- 1 | from __future__ import unicode_literals 2 | import warnings 3 | 4 | 5 | class RemovedInNextVersionWarning(DeprecationWarning): 6 | pass 7 | 8 | 9 | def remove_check(**kwargs): 10 | deep = kwargs.get('deep', None) 11 | if deep is not None: 12 | warnings.warn('Parameter "deep" will removed in next version!', RemovedInNextVersionWarning, stacklevel=2) 13 | return deep 14 | return None 15 | -------------------------------------------------------------------------------- /src/dss/__init__.py: -------------------------------------------------------------------------------- 1 | __author__ = 'RaPoSpectre' 2 | -------------------------------------------------------------------------------- /src/setup.py: -------------------------------------------------------------------------------- 1 | import codecs 2 | import os 3 | import sys 4 | 5 | try: 6 | from setuptools import setup 7 | except ImportError: 8 | from distutils.core import setup 9 | 10 | 11 | def read(fname): 12 | return codecs.open(os.path.join(os.path.dirname(__file__), fname)).read() 13 | 14 | 15 | NAME = "django-simple-serializer" 16 | 17 | PACKAGES = ["dss", ] 18 | 19 | DESCRIPTION = "Django Simple Serializer is a serializer to help user serialize django data or python list into json,xml,dict data in a simple way." 20 | 21 | LONG_DESCRIPTION = read("README.rst") 22 | 23 | KEYWORDS = "django serializer" 24 | 25 | AUTHOR = "RaPoSpectre" 26 | 27 | AUTHOR_EMAIL = "rapospectre@gmail.com" 28 | 29 | URL = "https://github.com/bluedazzle/django-simple-serializer" 30 | 31 | VERSION = "2.0.7" 32 | 33 | LICENSE = "MIT" 34 | 35 | setup( 36 | name=NAME, 37 | version=VERSION, 38 | description=DESCRIPTION, 39 | long_description=LONG_DESCRIPTION, 40 | classifiers=[ 41 | 'License :: OSI Approved :: MIT License', 42 | 'Programming Language :: Python', 43 | 'Intended Audience :: Developers', 44 | 'Operating System :: OS Independent', 45 | ], 46 | install_requires=[ 47 | 'future' 48 | ], 49 | 50 | keywords=KEYWORDS, 51 | author=AUTHOR, 52 | author_email=AUTHOR_EMAIL, 53 | url=URL, 54 | license=LICENSE, 55 | packages=PACKAGES, 56 | include_package_data=True, 57 | zip_safe=True, 58 | ) 59 | -------------------------------------------------------------------------------- /src/test/.coverage: -------------------------------------------------------------------------------- 1 | !coverage.py: This is a private format, don't read it directly!{"lines": {"/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/nose/plugins/capture.py": [64, 96, 98, 69, 102, 97, 58, 59, 101], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/nose/plugins/testid.py": [137, 138, 142, 143, 144, 145, 148, 149, 150, 151, 154, 155], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/db/models/constants.py": [3, 6], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/apps/__init__.py": [1, 2], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/db/models/fields/files.py": [328, 1, 2, 3, 4, 389, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 401, 19, 20, 302, 388, 27, 156, 285, 325, 417, 34, 37, 294, 241, 297, 170, 171, 44, 174, 48, 136, 434, 54, 392, 57, 60, 138, 62, 65, 322, 67, 310, 70, 72, 396, 391, 331, 77, 386, 79, 141, 83, 343, 89, 143, 360, 272, 226, 356, 230, 259, 361, 234, 387, 237, 239, 113, 115, 318, 425, 490, 148, 378, 379, 253], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/core/files/uploadedfile.py": [3, 5, 6, 7, 9, 10, 11, 12, 15, 18, 25, 26, 28, 35, 39, 42, 56, 59, 62, 63, 71, 77, 88, 91, 92, 96, 99, 103, 108, 111, 112, 117], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/utils/formats.py": [128, 2, 4, 5, 6, 7, 9, 10, 11, 12, 13, 14, 21, 22, 24, 25, 26, 31, 36, 170, 47, 192, 139, 76, 213, 88, 125, 149], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/http/request.py": [384, 1, 3, 4, 5, 6, 7, 8, 9, 388, 11, 12, 13, 14, 15, 16, 17, 18, 276, 21, 401, 329, 25, 26, 239, 29, 30, 159, 33, 162, 411, 134, 38, 39, 296, 425, 42, 43, 429, 46, 47, 49, 178, 435, 181, 310, 201, 184, 188, 394, 66, 407, 289, 73, 439, 205, 334, 333, 336, 312, 467, 212, 469, 303, 218, 421, 227, 516, 103, 316, 551, 364, 530, 111, 417, 370, 244, 374, 468, 378], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/db/models/fields/proxy.py": [4, 6, 9, 13, 15, 20], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/nose/plugins/prof.py": [71, 74, 75, 76, 80, 81, 82, 83, 84, 57], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/core/files/images.py": [32, 5, 6, 8, 11, 15, 16, 18, 20, 22, 24], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/http/utils.py": [25, 3, 12], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/db/backends/__init__.py": [1], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/nose/importer.py": [128, 129, 130, 131, 132, 65, 143, 144, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 32, 161, 165, 166, 167, 40, 41, 42, 44, 45, 47, 30, 54, 59, 62, 53, 160, 66, 67, 68, 70, 71, 72, 74, 75, 76, 77, 78, 79, 80, 81, 85, 86, 89, 94, 96, 97, 98, 99, 100, 101, 102, 103, 104, 110, 111, 116, 117, 118, 119, 63, 126, 127], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/nose/core.py": [65, 34, 36, 37, 41, 42, 43, 44, 50, 51, 55, 56, 59, 188, 61, 62, 193, 66, 199, 200, 201, 202, 203, 204, 205, 207, 187, 60], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/http/multipartparser.py": [515, 6, 7, 264, 9, 10, 11, 12, 14, 15, 16, 664, 402, 19, 20, 21, 22, 23, 408, 25, 28, 29, 32, 474, 290, 35, 36, 38, 39, 40, 297, 42, 45, 430, 541, 560, 434, 51, 52, 422, 619, 313, 316, 437, 407, 454, 456, 340, 471, 429, 412, 357, 444, 107, 620, 426, 366, 624, 369, 631, 281, 298, 382, 277], "/Users/RaPoSpectre/PycharmProjects/django-simple-serializer/src/test/__init__.py": [1], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/utils/decorators.py": [1, 3, 4, 5, 6, 8, 73, 10, 140, 13, 14, 141, 82, 20, 134, 137, 57, 94], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/core/validators.py": [1, 3, 5, 6, 7, 8, 9, 10, 11, 14, 17, 18, 19, 20, 21, 22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 34, 36, 40, 43, 52, 62, 66, 67, 68, 71, 72, 75, 76, 77, 78, 80, 83, 86, 87, 88, 90, 91, 92, 95, 129, 136, 137, 138, 139, 140, 141, 143, 144, 147, 148, 149, 151, 152, 153, 155, 156, 158, 160, 163, 185, 199, 207, 209, 210, 211, 212, 213, 216, 217, 220, 225, 234, 235, 236, 237, 241, 257, 258, 259, 260, 261, 265, 266, 267, 268, 269, 270, 272, 277, 283, 292, 293, 294, 295, 296, 299, 300, 301, 302, 303, 306, 307, 308, 309, 310, 311, 312, 313, 314, 317, 318, 319, 320, 321, 322, 323, 324, 325], "/Users/RaPoSpectre/PycharmProjects/django-simple-serializer/src/dss/TimeFormatFactory.py": [32, 1, 2, 3, 5, 6, 33, 11, 12, 34, 15, 16, 17, 18, 22, 24, 25, 13, 29, 30, 31], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/nose/pyversion.py": [70, 136, 49, 50, 51, 52, 53, 54, 56, 58], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/db/models/aggregates.py": [3, 4, 5, 6, 9, 140, 13, 14, 15, 17, 146, 148, 152, 28, 159, 32, 134, 38, 41, 73, 74, 75, 77, 141, 80, 142, 86, 87, 88, 89, 91, 97, 145, 104, 110, 111, 112, 115, 116, 117, 120, 121, 123, 127], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/utils/_os.py": [1, 3, 4, 5, 6, 7, 9, 10, 11, 13, 14, 15, 16, 17, 19, 20, 28, 31, 42, 51, 61, 89, 109], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/core/files/__init__.py": [1, 3], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/db/__init__.py": [1, 2, 35, 66, 38, 65, 9, 10, 11, 12, 34, 15, 50, 17, 44, 54, 41, 57, 47, 29, 62], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/core/checks/model_checks.py": [32, 33, 2, 4, 5, 7, 8, 11, 12], "/Users/RaPoSpectre/PycharmProjects/django-simple-serializer/src/dss/__init__.py": [1], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/utils/functional.py": [1, 2, 3, 4, 5, 7, 8, 9, 15, 16, 18, 21, 44, 51, 52, 53, 54, 55, 57, 64, 69, 70, 73, 81, 82, 87, 88, 90, 91, 92, 93, 94, 95, 97, 103, 105, 106, 107, 110, 111, 112, 113, 114, 115, 116, 118, 119, 122, 123, 124, 130, 133, 138, 140, 143, 146, 149, 157, 162, 167, 172, 175, 182, 189, 192, 194, 197, 201, 208, 210, 218, 220, 223, 224, 225, 226, 228, 231, 238, 241, 243, 244, 246, 248, 249, 251, 257, 264, 275, 282, 286, 298, 307, 312, 313, 314, 317, 321, 322, 323, 324, 327, 328, 329, 331, 332, 336, 339, 345, 346, 358, 363, 370, 380, 384, 385, 401, 414, 415], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/utils/dateformat.py": [128, 256, 260, 264, 12, 13, 15, 16, 17, 18, 20, 21, 24, 25, 26, 28, 29, 32, 33, 326, 296, 156, 43, 300, 45, 175, 179, 334, 244, 58, 330, 202, 64, 160, 285, 70, 199, 200, 268, 74, 206, 248, 213, 342, 217, 143, 348, 93, 225, 240, 229, 104, 252, 236, 289, 272, 112, 221, 116, 120, 124], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/nose/plugins/debug.py": [40, 41, 42, 43], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/db/models/fields/subclassing.py": [34, 35, 38, 8, 10, 43, 12, 15, 19, 20, 47, 31], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/utils/six.py": [1, 23, 25, 26, 27, 28, 29, 31, 32, 36, 37, 39, 48, 49, 50, 51, 52, 54, 59, 60, 61, 62, 63, 69, 70, 73, 75, 78, 80, 81, 84, 86, 87, 89, 90, 91, 92, 95, 98, 101, 103, 104, 105, 110, 112, 113, 115, 122, 124, 125, 126, 128, 134, 137, 139, 140, 141, 152, 153, 154, 155, 157, 158, 159, 162, 168, 169, 170, 171, 173, 174, 175, 177, 178, 180, 181, 182, 183, 185, 186, 187, 191, 192, 194, 195, 196, 197, 198, 201, 202, 203, 205, 214, 220, 222, 225, 226, 227, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 297, 298, 299, 300, 301, 303, 305, 306, 309, 310, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 338, 339, 340, 342, 344, 345, 348, 349, 353, 354, 355, 357, 358, 359, 361, 363, 364, 367, 368, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 406, 407, 408, 410, 412, 413, 416, 417, 421, 422, 423, 424, 426, 427, 428, 430, 432, 433, 436, 437, 441, 443, 444, 445, 447, 449, 450, 453, 454, 455, 456, 457, 458, 459, 460, 462, 465, 466, 469, 474, 485, 494, 495, 497, 498, 499, 500, 503, 504, 508, 511, 512, 518, 526, 529, 532, 534, 537, 538, 539, 542, 543, 544, 545, 546, 547, 550, 569, 572, 575, 578, 581, 583, 585, 587, 588, 589, 590, 591, 592, 595, 617, 620, 622, 623, 624, 626, 628, 629, 630, 631, 632, 633, 634, 635, 638, 642, 646, 650, 662, 664, 665, 666, 667, 668, 669, 672, 675, 677, 680, 686, 691, 695, 696, 749, 750, 751, 758, 760, 761, 762, 771, 776, 777, 778, 779, 782, 798, 819, 820, 821, 826, 838, 843, 850, 853, 854], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/nose/suite.py": [539, 540, 543, 544, 545, 546, 547, 548, 551, 552, 554, 563, 564, 53, 567, 68, 79, 80, 81, 82, 83, 94, 95, 96, 97, 98, 103, 104, 105, 107, 113, 114, 148, 149, 150, 151, 153, 154, 155, 156, 157, 158, 173, 177, 201, 204, 205, 208, 209, 216, 217, 218, 224, 226, 227, 228, 269, 270, 272, 273, 274, 277, 278, 282, 283, 285, 286, 287, 288, 289, 290, 291, 292, 293, 297, 298, 301, 302, 303, 304, 308, 309, 310, 312, 52, 314, 315, 323, 324, 325, 326, 327, 328, 329, 330, 331, 337, 338, 339, 340, 341, 342, 313, 345, 346, 347, 348, 349, 350, 351, 356, 357, 358, 360, 361, 362, 364, 365, 366, 367, 368, 372, 373, 374, 394, 396, 397, 401, 402, 403, 404, 405, 406, 407, 418, 419, 420, 421, 422, 423, 424, 427, 435, 436, 441, 443, 445, 446, 447, 448, 451, 452, 453, 454, 457, 459, 460, 462, 463, 465, 466, 467, 471, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/db/models/sql/query.py": [1537, 8, 9, 10, 11, 12, 13, 15, 16, 17, 18, 19, 20, 21, 24, 27, 90, 30, 31, 2080, 34, 35, 2084, 37, 2086, 40, 47, 1073, 50, 52, 2102, 2110, 65, 68, 1608, 75, 1100, 2061, 592, 87, 1114, 1115, 94, 1632, 99, 1638, 102, 1041, 104, 105, 106, 108, 110, 1656, 1664, 192, 1668, 1672, 1679, 2072, 1646, 678, 1709, 1054, 186, 704, 1729, 708, 198, 712, 1739, 205, 216, 1243, 1758, 223, 228, 231, 1256, 748, 238, 246, 469, 1285, 776, 1807, 1240, 1813, 1311, 1312, 1833, 823, 1339, 319, 1857, 322, 325, 330, 1876, 1882, 1888, 870, 1896, 365, 1902, 882, 890, 1918, 1938, 1774, 1945, 1604, 1906, 1438, 932, 1960, 1611, 966, 458, 972, 1485, 981, 472, 481, 1511, 2027, 767, 1021, 2047], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/nose/plugins/cover.py": [164, 263, 173, 271, 182, 183], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/db/backends/utils.py": [1, 3, 4, 5, 6, 7, 9, 10, 11, 13, 16, 17, 131, 21, 23, 30, 162, 35, 38, 172, 178, 50, 58, 188, 66, 72, 76, 92, 116, 120], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/core/checks/security/__init__.py": [1], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/core/serializers/base.py": [129, 3, 4, 6, 7, 8, 11, 12, 13, 16, 17, 18, 131, 21, 22, 23, 26, 29, 159, 33, 35, 165, 169, 183, 161, 75, 141, 81, 87, 93, 144, 99, 105, 111, 117, 126, 149], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/utils/html.py": [384, 1, 3, 5, 6, 7, 9, 10, 11, 12, 13, 14, 15, 401, 18, 20, 23, 24, 196, 154, 27, 265, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 193, 391, 44, 151, 157, 180, 138, 55, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 390, 161, 72, 389, 75, 226, 78, 81, 210, 213, 216, 219, 94, 229, 148, 134, 105, 362, 365, 373, 137, 378, 125, 383], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/http/response.py": [1, 514, 3, 4, 5, 6, 7, 8, 172, 10, 11, 12, 13, 14, 15, 16, 530, 19, 20, 21, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 87, 90, 91, 94, 528, 100, 102, 103, 105, 109, 110, 113, 114, 115, 116, 118, 120, 121, 122, 123, 124, 127, 129, 140, 144, 155, 158, 160, 167, 169, 170, 517, 173, 181, 186, 194, 196, 197, 198, 199, 201, 207, 210, 214, 216, 219, 222, 223, 513, 265, 270, 274, 280, 289, 290, 302, 311, 314, 317, 323, 326, 330, 335, 337, 339, 340, 342, 344, 348, 351, 353, 355, 357, 360, 365, 367, 369, 372, 375, 378, 381, 384, 389, 396, 398, 400, 406, 411, 415, 419, 425, 428, 432, 435, 436, 438, 450, 451, 453, 460, 463, 464, 467, 468, 471, 472, 474, 478, 485, 486, 489, 490, 493, 494, 497, 498, 500, 505, 506, 509, 510], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/nose/proxy.py": [30, 163, 164, 165, 168, 169, 170, 43, 45, 46, 47, 176, 177, 178, 57, 58, 59, 60, 62, 64, 78, 80, 81, 82, 83, 102, 103, 104, 110, 111, 112, 116, 117, 118], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/nose/plugins/isolate.py": [61, 62], "/Users/RaPoSpectre/PycharmProjects/django-simple-serializer/src/test/test_Mixin.py": [2, 3, 4, 6, 7, 9, 12, 13, 14, 15, 17, 18, 19, 21, 22, 23, 24, 27, 28, 29, 30, 32, 33, 34, 36, 37, 38, 39, 40, 41, 42, 43, 44, 47, 48, 49, 51, 52, 54, 55, 56, 57, 58, 60, 61, 63, 64, 66, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/utils/deconstruct.py": [2, 4, 22, 6, 9, 16, 18, 19, 53, 54, 23, 56, 25, 58, 60, 21], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/http/cookie.py": [32, 1, 67, 3, 68, 5, 6, 7, 10, 12, 13, 14, 16, 17, 42, 78, 22, 26, 91, 29, 31], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/utils/crypto.py": [3, 4, 6, 7, 8, 9, 10, 11, 13, 14, 15, 16, 18, 19, 20, 28, 53, 54, 79, 81, 107, 116, 124, 125], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/utils/version.py": [1, 3, 4, 5, 7, 10, 12, 19, 21, 22, 27, 31, 34, 36, 37, 38, 39, 42, 46, 49, 50, 52, 55, 63], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/utils/itercompat.py": [8, 5], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/dispatch/dispatcher.py": [128, 1, 2, 3, 5, 134, 7, 8, 44, 13, 14, 15, 16, 17, 20, 23, 31, 32, 133, 39, 296, 41, 42, 43, 257, 306, 175, 136, 178, 51, 53, 118, 130, 129, 205, 120, 86, 89, 50, 109, 112, 40, 114, 115, 116, 246, 119, 248, 121, 125, 127], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/core/exceptions.py": [3, 4, 5, 134, 8, 9, 10, 13, 14, 17, 18, 19, 148, 22, 23, 24, 27, 28, 29, 32, 33, 36, 37, 38, 167, 41, 42, 43, 172, 46, 47, 48, 51, 52, 53, 56, 57, 58, 61, 62, 63, 66, 67, 68, 71, 72, 73, 76, 77, 78, 81, 156, 84, 85, 86, 142], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/db/models/signals.py": [1, 2, 3, 6, 9, 13, 15, 16, 17, 18, 20, 33, 53, 54, 56, 57, 58, 60, 61, 63, 64, 65, 68, 69, 71, 72], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/forms/models.py": [4, 6, 8, 9, 10, 12, 15, 16, 17, 18, 19, 1045, 22, 23, 24, 25, 26, 1051, 1052, 29, 30, 31, 32, 35, 38, 553, 554, 1067, 556, 557, 564, 570, 1086, 575, 1091, 70, 71, 584, 1105, 1109, 1113, 602, 1117, 1118, 1122, 1123, 1124, 621, 625, 116, 629, 1147, 819, 642, 644, 1158, 647, 1164, 1167, 1171, 1049, 157, 158, 159, 1198, 1200, 1114, 1208, 1055, 1218, 1221, 714, 1227, 1228, 1229, 1230, 1231, 1232, 1233, 1235, 725, 1238, 1239, 1240, 733, 736, 1250, 550, 231, 232, 1263, 243, 244, 245, 247, 249, 762, 776, 1300, 1307, 1319, 1245, 816, 817, 818, 307, 308, 309, 310, 820, 821, 848, 849, 850, 851, 1082, 866, 871, 889, 1087, 380, 893, 384, 1175, 910, 1005, 404, 939, 944, 438, 1183, 449, 465, 468, 469, 472, 473, 474, 250, 1002, 1003, 1004, 338, 1006, 1007, 1008, 1050], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/forms/utils.py": [1, 130, 3, 4, 133, 6, 136, 9, 10, 11, 12, 13, 142, 15, 16, 17, 18, 21, 154, 45, 46, 47, 178, 52, 53, 56, 59, 67, 74, 78, 79, 80, 83, 84, 92, 95, 105, 108, 118, 121, 124, 127], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/db/models/base.py": [1, 3, 4, 5, 6, 7, 9, 10, 11, 12, 13, 17, 21, 22, 23, 24, 516, 28, 29, 30, 31, 545, 34, 35, 36, 37, 38, 39, 40, 41, 1066, 519, 44, 562, 567, 570, 1083, 572, 68, 581, 71, 72, 524, 77, 78, 1037, 1113, 1650, 1149, 1662, 1675, 654, 655, 1682, 1174, 25, 1695, 1698, 1196, 637, 711, 713, 714, 1228, 1243, 1573, 1252, 749, 751, 775, 776, 1298, 1318, 312, 827, 321, 328, 855, 1373, 863, 874, 876, 880, 373, 1398, 376, 377, 896, 385, 386, 388, 912, 1428, 917, 1263, 926, 942, 1458, 73, 79, 994, 484, 1511, 494, 501, 506], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/db/utils.py": [1, 2, 3, 4, 5, 6, 135, 8, 9, 10, 11, 12, 15, 16, 273, 18, 19, 148, 22, 23, 305, 26, 27, 30, 31, 34, 35, 38, 39, 42, 43, 257, 306, 46, 47, 136, 50, 51, 308, 286, 54, 55, 184, 185, 58, 287, 188, 266, 62, 245, 64, 321, 139, 72, 140, 75, 162, 303, 267, 271, 186, 353, 99, 145, 233, 108, 146, 190, 361, 248, 251, 183, 254], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/db/models/options.py": [1, 3, 4, 5, 6, 641, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 579, 20, 21, 22, 23, 25, 27, 601, 743, 30, 453, 160, 289, 39, 42, 43, 44, 556, 46, 47, 560, 434, 179, 438, 183, 57, 60, 190, 319, 672, 505, 324, 197, 471, 417, 652, 599, 333, 336, 580, 82, 339, 430, 86, 87, 600, 89, 90, 475, 92, 349, 610, 611, 742, 581, 490, 619, 728, 711, 174, 624, 707, 375, 404, 252, 149], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/core/files/locks.py": [107, 93, 18, 19, 21, 24, 89, 90, 91, 92, 29, 111], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/db/models/sql/where.py": [3, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16, 402, 19, 20, 277, 23, 439, 27, 28, 413, 31, 155, 167, 296, 412, 419, 47, 48, 264, 50, 311, 442, 316, 322, 327, 328, 331, 335, 338, 83, 340, 344, 347, 348, 352, 353, 357, 362, 366, 367, 373, 378], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/utils/html_parser.py": [32, 1, 2, 4, 6, 9, 10, 13, 14, 20, 21], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/core/checks/messages.py": [2, 4, 7, 8, 9, 10, 11, 14, 15, 17, 18, 19, 20, 21, 22, 23, 25, 29, 32, 49, 53, 56, 61, 62, 66, 67, 71, 72, 73, 76, 77, 81, 82], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/core/files/temp.py": [83, 17, 19, 20, 85, 22, 24, 27], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/utils/duration.py": [1, 4], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/nose/result.py": [38, 39, 40, 41, 106, 43, 44, 109, 110, 81, 82, 105, 104, 103], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/core/serializers/json.py": [3, 6, 8, 9, 10, 11, 13, 14, 17, 18, 21, 24, 25, 27, 39, 43, 50, 63, 68, 87, 90, 91, 115], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/forms/forms.py": [512, 513, 3, 5, 7, 8, 9, 10, 523, 12, 13, 14, 15, 16, 17, 18, 21, 22, 23, 25, 539, 28, 545, 34, 37, 557, 560, 567, 607, 522, 575, 524, 76, 525, 80, 82, 83, 84, 87, 88, 601, 90, 91, 698, 94, 95, 97, 98, 611, 101, 102, 617, 105, 106, 108, 111, 112, 113, 118, 119, 120, 648, 142, 145, 157, 161, 172, 685, 179, 186, 703, 195, 201, 716, 277, 286, 521, 295, 304, 312, 624, 321, 369, 378, 396, 415, 424, 431, 440, 446, 79, 477, 487, 497, 504], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/core/__init__.py": [1], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/core/files/move.py": [6, 8, 9, 11, 13, 16, 29], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/db/models/fields/related.py": [1, 3, 4, 1657, 6, 7, 8, 9, 10, 11, 12, 13, 14, 1551, 528, 18, 19, 20, 21, 22, 23, 24, 25, 27, 542, 2571, 518, 550, 1628, 2602, 1588, 2106, 2108, 2109, 2110, 2111, 2113, 2115, 1604, 581, 524, 1610, 1614, 1618, 2574, 1622, 89, 1435, 97, 2146, 100, 613, 102, 103, 104, 105, 107, 2578, 1646, 113, 1650, 2165, 1654, 1897, 1145, 2581, 1152, 1155, 1672, 1164, 141, 2190, 1686, 2153, 157, 1694, 1184, 539, 1625, 1703, 680, 1991, 2597, 176, 1203, 30, 1210, 2427, 1213, 1220, 1229, 2479, 121, 1828, 1999, 1247, 1763, 1766, 1404, 1770, 1266, 1268, 1269, 1270, 1271, 1784, 1273, 1274, 1787, 1789, 1790, 1791, 1793, 1795, 1796, 1289, 1867, 1293, 1297, 1301, 2521, 280, 1308, 285, 1312, 803, 1316, 1320, 809, 1834, 812, 818, 1331, 1332, 309, 1759, 832, 1857, 1349, 2017, 1353, 843, 333, 2445, 1360, 2386, 339, 1934, 1324, 346, 1884, 1373, 351, 1888, 361, 1395, 1398, 1402, 1403, 380, 1922, 1919, 1410, 388, 2454, 1927, 394, 2451, 1421, 398, 2448, 1425, 1426, 1427, 1942, 408, 1945, 1434, 411, 1436, 1437, 2464, 419, 1957, 1962, 1451, 1455, 2051, 2035, 438, 1976, 1471, 1473, 1474, 1475, 1476, 1782, 1478, 1479, 1480, 1482, 2507, 1357, 468, 2005, 1785, 2009, 1500, 1786, 2015, 1505, 2018, 2019, 2020, 2022, 2023, 2025, 2029, 1994, 1363, 2040, 2553, 2046], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/core/files/storage.py": [1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 21, 24, 153, 28, 133, 160, 33, 146, 39, 297, 307, 175, 176, 179, 181, 182, 201, 313, 318, 321, 324, 310, 71, 328, 140, 204, 333, 78, 336, 332, 280, 294, 167, 109, 120, 126], "/Users/RaPoSpectre/PycharmProjects/django-simple-serializer/src/__init__.py": [1], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/utils/translation/__init__.py": [129, 130, 3, 4, 5, 6, 7, 8, 9, 138, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 153, 26, 29, 30, 133, 165, 41, 172, 176, 200, 52, 158, 54, 137, 184, 180, 188, 63, 192, 66, 196, 69, 72, 75, 204, 145, 79, 141, 210, 83, 213, 87, 91, 95, 98, 99, 100, 229, 103, 232, 108, 109, 154, 104, 149], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/utils/encoding.py": [2, 4, 5, 6, 7, 9, 10, 11, 13, 17, 18, 22, 282, 28, 288, 289, 162, 36, 262, 166, 167, 169, 170, 43, 46, 176, 180, 183, 59, 60, 63, 72, 290, 41, 213, 37, 293, 230, 295, 114, 247, 42, 126], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/forms/widgets.py": [3, 5, 7, 8, 684, 10, 11, 12, 13, 14, 15, 16, 17, 18, 535, 27, 30, 773, 33, 34, 35, 36, 550, 553, 554, 519, 48, 856, 51, 862, 54, 567, 62, 577, 578, 580, 73, 591, 84, 597, 598, 599, 90, 603, 604, 606, 96, 103, 616, 619, 111, 112, 629, 632, 639, 644, 645, 647, 136, 139, 652, 653, 142, 143, 144, 145, 147, 148, 150, 663, 664, 153, 154, 155, 668, 687, 670, 159, 160, 674, 165, 680, 172, 173, 174, 175, 177, 183, 671, 189, 193, 202, 665, 719, 722, 211, 718, 723, 727, 728, 218, 655, 225, 741, 749, 238, 752, 242, 243, 245, 250, 763, 764, 765, 768, 769, 770, 260, 261, 263, 269, 270, 273, 274, 277, 278, 281, 282, 284, 730, 799, 288, 560, 896, 804, 294, 295, 808, 298, 302, 303, 726, 308, 829, 323, 838, 737, 329, 330, 331, 333, 336, 341, 344, 345, 346, 347, 350, 864, 354, 356, 869, 874, 363, 877, 878, 880, 369, 659, 885, 375, 892, 895, 384, 835, 407, 422, 423, 430, 439, 440, 441, 443, 447, 672, 452, 453, 456, 457, 460, 461, 465, 469, 470, 476, 800, 848, 485, 498, 499, 501, 508], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/utils/datastructures.py": [512, 1, 2, 3, 5, 6, 513, 9, 514, 526, 527, 16, 17, 515, 532, 22, 25, 28, 36, 518, 39, 46, 52, 62, 66, 70, 75, 76, 77, 79, 82, 85, 88, 94, 96, 98, 102, 112, 124, 127, 128, 133, 152, 156, 162, 167, 171, 174, 177, 186, 191, 195, 199, 203, 208, 209, 210, 212, 215, 218, 221, 225, 230, 235, 242, 247, 251, 253, 256, 259, 262, 268, 271, 274, 277, 281, 282, 285, 306, 307, 310, 314, 328, 331, 337, 347, 352, 358, 371, 383, 386, 393, 402, 406, 414, 418, 423, 428, 429, 430, 432, 435, 438, 441, 445, 466, 473, 484, 486, 496, 503, 504, 505, 506, 507, 508, 509, 510, 511], "/Users/RaPoSpectre/PycharmProjects/django-simple-serializer/src/test/test_Serializer.py": [2, 3, 5, 6, 7, 8, 9, 10, 12, 15, 16, 17, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 66, 67, 68, 69, 70, 71, 72, 73, 74, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 90, 91, 92, 93, 94, 95, 96, 97, 98, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/core/checks/compatibility/django_1_7_0.py": [1, 3, 13, 6], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/xmltodict.py": [2, 4, 5, 6, 7, 8, 14, 15, 22, 23, 26, 27, 31, 32, 33, 36, 37, 40, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 71, 84, 89, 104, 130, 136, 155, 156, 253, 254, 255, 256, 257, 258, 259, 260, 261, 266, 267, 268, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 287, 288, 290, 291, 293, 294, 295, 296, 297, 298, 299, 301, 302, 306, 322, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 342, 344], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/core/files/uploadhandler.py": [3, 5, 7, 9, 10, 139, 13, 14, 138, 17, 18, 19, 149, 23, 152, 26, 27, 30, 31, 161, 34, 35, 43, 174, 189, 50, 180, 53, 54, 57, 61, 62, 65, 68, 69, 71, 79, 208, 163, 142, 135, 97, 158, 111, 118, 127], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/nose/plugins/skip.py": [57, 59, 60, 61], "/Users/RaPoSpectre/PycharmProjects/django-simple-serializer/src/test/test_TimeFormatFactory.py": [1, 2, 4, 7, 8, 9, 11, 12, 13, 14, 15, 17, 18, 19, 20, 21, 23, 24, 25, 26, 28], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/db/models/sql/subqueries.py": [3, 5, 6, 7, 8, 9, 10, 12, 15, 144, 19, 21, 23, 152, 28, 170, 43, 173, 136, 178, 187, 202, 206, 208, 81, 210, 84, 86, 88, 92, 103, 171, 107, 114], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/core/serializers/python.py": [5, 6, 8, 9, 10, 11, 12, 13, 16, 19, 21, 23, 27, 30, 33, 37, 47, 57, 70, 161, 79, 83], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/nose/plugins/errorclass.py": [148, 150, 151, 152, 153, 154], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/utils/tree.py": [51, 91, 4, 69, 6, 136, 9, 75, 44, 14, 17, 19, 84, 78, 54, 63, 30, 31], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/nose/case.py": [128, 129, 130, 131, 132, 133, 51, 140, 173, 147, 148, 149, 151, 154, 155, 29, 159, 160, 33, 34, 163, 36, 37, 38, 39, 40, 41, 42, 172, 45, 48, 49, 178, 179, 185, 59, 60, 64, 69, 70, 161, 74, 162, 99, 100, 101, 102, 103, 104, 167, 168, 166], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/nose/plugins/xunit.py": [192, 193, 191], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/utils/text.py": [1, 3, 4, 5, 6, 7, 9, 10, 11, 12, 13, 14, 15, 272, 17, 147, 20, 149, 279, 24, 25, 439, 28, 29, 30, 31, 32, 161, 418, 35, 421, 416, 299, 300, 321, 303, 306, 286, 137, 313, 442, 316, 452, 65, 395, 68, 71, 72, 75, 334, 269, 337, 291, 413, 91, 455, 360, 234, 364, 113, 115, 372, 245, 375, 248, 276], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/nose/plugins/deprecated.py": [40, 42, 43, 44], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/nose/plugins/manager.py": [128, 262, 263, 264, 265, 272, 273, 274, 149, 167, 166, 295, 168, 301, 302, 177, 178, 184, 249, 88, 89, 93, 94, 95, 96, 99, 252, 106, 107, 111, 114, 123, 118, 105, 120, 121, 250, 251, 124, 253, 254], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/utils/dates.py": [1, 3, 5, 6, 7, 9, 10, 11, 13, 14, 15, 17, 18, 19, 20, 22, 23, 24, 26, 27, 28, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/dispatch/__init__.py": [9, 7], "/Users/RaPoSpectre/PycharmProjects/django-simple-serializer/src/dss/Warning.py": [1, 2, 4, 5, 8, 9, 10, 13], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/core/checks/security/sessions.py": [1, 3, 6, 7, 8, 12, 13, 14, 17, 20, 21, 22, 26, 29, 30, 31, 35, 36, 37, 42, 43, 44, 47, 50, 51, 52, 56, 59, 60, 61, 65, 78, 91, 96], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/__init__.py": [8, 1, 3, 5], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/db/models/manager.py": [128, 1, 2, 3, 132, 5, 6, 7, 8, 137, 138, 11, 140, 141, 142, 271, 144, 145, 274, 147, 148, 149, 150, 151, 152, 281, 154, 155, 157, 134, 129, 135, 285, 179, 53, 54, 56, 187, 60, 62, 262, 68, 130, 256, 200, 268, 77, 206, 83, 214, 221, 280, 230, 259, 236, 240, 241, 244, 247, 120, 250, 123, 125, 126], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/forms/fields.py": [3, 5, 1033, 7, 8, 9, 10, 11, 12, 13, 14, 15, 528, 17, 18, 20, 21, 22, 1052, 29, 30, 31, 544, 545, 34, 35, 36, 37, 38, 519, 47, 51, 564, 53, 567, 57, 58, 59, 60, 1034, 63, 64, 66, 523, 580, 69, 71, 72, 73, 588, 589, 590, 525, 592, 593, 594, 595, 596, 597, 598, 1262, 1112, 601, 1039, 1210, 606, 1123, 839, 627, 1140, 1141, 1142, 873, 533, 131, 134, 137, 651, 141, 993, 657, 658, 659, 660, 665, 155, 1187, 1188, 1189, 1190, 167, 1192, 1195, 1224, 178, 1139, 186, 1226, 1223, 707, 708, 709, 710, 1057, 712, 714, 203, 1231, 211, 212, 1237, 1238, 1060, 1243, 220, 226, 1252, 1253, 1255, 745, 234, 235, 236, 237, 750, 751, 240, 753, 894, 1270, 252, 765, 769, 778, 268, 782, 783, 785, 278, 279, 280, 283, 801, 804, 646, 299, 813, 814, 817, 308, 822, 823, 824, 825, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 842, 332, 336, 853, 855, 996, 861, 354, 828, 829, 1035, 915, 888, 889, 524, 576, 1260, 396, 834, 910, 1261, 579, 916, 917, 918, 919, 920, 409, 411, 581, 416, 930, 923, 1265, 583, 430, 945, 434, 435, 436, 437, 438, 441, 957, 958, 963, 454, 1036, 458, 459, 460, 461, 462, 465, 982, 986, 591, 476, 480, 481, 482, 483, 484, 997, 487, 1191, 492, 1006, 1017], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/dispatch/weakref_backports.py": [32, 45, 68, 40, 41, 42, 43, 44, 13, 14, 47, 17, 21, 54, 23, 25, 26, 27, 28, 61], "/Users/RaPoSpectre/PycharmProjects/django-simple-serializer/src/dss/Mixin.py": [3, 4, 6, 7, 8, 10, 11, 14, 15, 20, 21, 22, 23, 24, 25, 27, 28, 29, 31, 32, 33, 34, 35, 36, 37, 38, 39, 41, 43, 44, 45, 46, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 74, 75, 78, 79, 80, 81, 82, 83], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/core/serializers/__init__.py": [133, 144, 17, 19, 21, 22, 23, 24, 27, 28, 29, 30, 31, 160, 34, 37, 44, 45, 47, 50, 54, 86, 95, 103, 109, 115, 123], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/db/models/fields/__init__.py": [2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 32, 37, 41, 42, 43, 44, 45, 46, 47, 48, 49, 53, 2102, 2103, 57, 58, 2108, 62, 65, 2114, 2115, 2116, 2118, 2125, 84, 2135, 90, 91, 92, 93, 2144, 97, 98, 2147, 103, 104, 105, 106, 107, 108, 109, 110, 114, 2163, 117, 118, 119, 122, 124, 125, 126, 127, 128, 2177, 131, 2180, 2182, 135, 137, 138, 139, 140, 141, 142, 143, 2074, 185, 2236, 191, 2080, 2247, 201, 2250, 211, 2278, 2286, 2290, 245, 2296, 2300, 2090, 2306, 2091, 2308, 2310, 2314, 2093, 2320, 274, 2330, 2331, 2332, 2334, 287, 2096, 2340, 2345, 2348, 305, 308, 2362, 2366, 54, 2374, 2375, 2377, 2378, 2380, 336, 2389, 2105, 2392, 345, 350, 2401, 358, 2413, 447, 455, 461, 467, 470, 481, 489, 509, 520, 528, 534, 2138, 550, 581, 2145, 592, 618, 2151, 2152, 635, 2154, 638, 643, 647, 655, 666, 669, 674, 677, 680, 686, 694, 705, 712, 739, 2172, 2173, 2174, 2175, 782, 788, 801, 2183, 830, 833, 834, 841, 847, 2190, 854, 860, 862, 871, 873, 876, 914, 921, 922, 924, 925, 926, 929, 933, 938, 951, 957, 960, 972, 975, 981, 987, 994, 998, 999, 1000, 1001, 1003, 1005, 1009, 1014, 1027, 1032, 1035, 1050, 1059, 1065, 1077, 1078, 1080, 1084, 1089, 1115, 1118, 1123, 1127, 1137, 1138, 1139, 1141, 1151, 1153, 1159, 1181, 1185, 1186, 1187, 1188, 1190, 1193, 1195, 1196, 1203, 1246, 1257, 1260, 1290, 2157, 1298, 1308, 1315, 1319, 1325, 1329, 1335, 1336, 1337, 1338, 1340, 1342, 1346, 1350, 1396, 1399, 1447, 1460, 2064, 1479, 1485, 1489, 1495, 1496, 1497, 1498, 1500, 1502, 1503, 1507, 1518, 1544, 2307, 1570, 1582, 1590, 1593, 1605, 1611, 1625, 1629, 1633, 2373, 1643, 1648, 1649, 1650, 1651, 1654, 1656, 1659, 1678, 1685, 1691, 1695, 1703, 1704, 1705, 1707, 1712, 1718, 1728, 1729, 1731, 1732, 1738, 1743, 1755, 1771, 1777, 1789, 1793, 1794, 1795, 1796, 1798, 1800, 1806, 1809, 1821, 1827, 1828, 1829, 1830, 1832, 1834, 1839, 2356, 1851, 1864, 1870, 1876, 1879, 1891, 1897, 1898, 1899, 1900, 1902, 1905, 1912, 1913, 1914, 1915, 1917, 1920, 1921, 1924, 1928, 1933, 1939, 1942, 1948, 1949, 1950, 1951, 1953, 1954, 1964, 2384, 1969, 1982, 1992, 1995, 2001, 2006, 2017, 2026, 2027, 2028, 2029, 2031, 2033, 2038, 2044, 2047], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/utils/lru_cache.py": [1, 2, 4, 10, 11, 12, 14, 173, 16, 17, 19, 23, 27, 28, 29, 160, 155, 168, 169, 170, 171, 45, 70, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 84, 92, 94, 108], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/db/transaction.py": [1, 4, 7, 137, 10, 139, 14, 143, 24, 287, 38, 297, 45, 305, 52, 31, 61, 11, 196, 69, 77, 84, 91, 110], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/nose/selector.py": [149, 129, 130, 131, 134, 135, 140, 141, 144, 148, 171, 153, 152, 68, 154, 156, 157, 69, 162, 35, 37, 167, 40, 41, 42, 43, 44, 45, 174, 175, 176, 178, 179, 53, 54, 57, 187, 188, 191, 193, 194, 196, 197, 72, 73, 74, 76, 77, 80, 81, 163, 169, 222, 224, 225, 226, 227, 228, 229, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 116, 117, 118, 119, 120, 121, 122, 123, 170, 126, 127], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/apps/registry.py": [1, 2, 3, 4, 5, 7, 8, 9, 10, 12, 269, 15, 400, 26, 20, 22, 153, 154, 155, 413, 133, 419, 386, 294, 39, 43, 301, 46, 349, 49, 435, 52, 55, 186, 446, 406, 326, 140, 204, 334, 397, 36, 58, 225, 234, 363, 369, 119, 126, 255], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/nose/plugins/doctests.py": [192, 193, 194, 195, 188, 189, 190, 191], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/utils/__init__.py": [1], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/utils/ipv6.py": [128, 257, 4, 5, 6, 9, 10, 147, 212, 91], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/db/models/query_utils.py": [7, 8, 10, 12, 13, 14, 15, 16, 21, 151, 24, 27, 28, 158, 31, 35, 36, 39, 43, 172, 47, 49, 50, 51, 53, 56, 65, 68, 71, 77, 212, 87, 96, 109, 116, 120, 121, 251, 124, 254], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/db/models/sql/constants.py": [32, 3, 36, 5, 11, 12, 13, 14, 37, 19, 24, 25, 26, 27, 29, 30, 31], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/core/files/utils.py": [1, 9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 28], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/utils/timezone.py": [129, 260, 5, 7, 8, 9, 10, 151, 12, 13, 14, 239, 16, 17, 18, 19, 350, 23, 24, 25, 26, 27, 28, 261, 34, 155, 37, 169, 42, 135, 44, 47, 200, 50, 53, 137, 184, 57, 316, 190, 64, 193, 66, 72, 330, 75, 224, 78, 141, 271, 82, 340, 280, 207, 94, 96, 105, 111, 368, 117, 120, 249, 298, 264], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/db/models/sql/datastructures.py": [128, 129, 131, 4, 5, 135, 8, 9, 12, 17, 18, 24, 25, 28, 45, 46, 63, 140, 94, 101, 110, 115, 121, 127], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/utils/safestring.py": [133, 6, 7, 8, 11, 12, 15, 18, 19, 22, 25, 26, 28, 31, 33, 36, 37, 46, 50, 51, 63, 76, 79, 83, 84, 94, 107, 109, 112, 114, 117], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/nose/plugins/logcapture.py": [34, 38, 39, 40, 41, 44, 178, 179, 193, 194, 195, 196, 198, 199, 76, 204, 77, 78, 207, 80, 209, 86, 217, 79, 222, 208], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/core/checks/__init__.py": [2, 4, 7, 10, 11, 12, 13, 14, 17, 18, 19, 20], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/nose/plugins/base.py": [98, 100, 101, 102], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/db/models/lookups.py": [1, 2, 515, 4, 5, 6, 7, 9, 12, 13, 516, 28, 36, 44, 51, 60, 62, 64, 68, 71, 75, 78, 81, 514, 91, 92, 94, 110, 115, 133, 136, 141, 145, 170, 176, 183, 189, 193, 194, 204, 211, 215, 218, 219, 220, 223, 224, 226, 233, 236, 237, 238, 241, 242, 243, 246, 247, 248, 251, 252, 253, 256, 257, 259, 273, 276, 303, 306, 308, 326, 327, 329, 336, 339, 340, 343, 346, 347, 349, 356, 359, 360, 362, 369, 372, 373, 375, 382, 385, 386, 388, 395, 398, 399, 403, 404, 405, 408, 409, 411, 414, 422, 425, 426, 436, 440, 441, 442, 443, 446, 447, 448, 449, 452, 453, 454, 455, 458, 459, 460, 461, 464, 465, 466, 467, 470, 471, 472, 473, 476, 477, 479, 485, 488, 489, 491, 497, 500, 501, 503, 511], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/apps/config.py": [1, 2, 4, 5, 6, 8, 11, 77, 14, 143, 16, 200, 51, 54, 151, 164, 189, 165], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/utils/dateparse.py": [1, 66, 43, 8, 9, 42, 11, 12, 14, 15, 112, 18, 19, 84, 54, 23, 24, 30, 31], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/nose/util.py": [520, 521, 522, 524, 526, 527, 529, 530, 642, 643, 644, 645, 646, 140, 660, 662, 663, 163, 164, 184, 187, 188, 189, 190, 191, 195, 263, 264, 266, 267, 270, 271, 272, 273, 274, 276, 277, 278, 279, 306, 307, 308, 309, 310, 311, 312, 313, 318, 319, 320, 321, 322, 323, 337, 338, 339, 340, 342, 343, 393, 397, 398, 399, 403, 404, 405, 406, 407, 408, 409, 410, 411, 446, 447, 448, 449, 470, 471, 479, 481, 483, 484, 485, 486, 502, 503, 504, 505, 506], "/Users/RaPoSpectre/PycharmProjects/django-simple-serializer/src/dss/Serializer.py": [2, 4, 5, 6, 8, 10, 11, 14, 15, 16, 17, 18, 19, 24, 25, 26, 27, 28, 29, 30, 31, 34, 35, 36, 37, 38, 39, 42, 67, 68, 73, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 96, 99, 100, 101, 102, 103, 104, 107, 108, 109, 110, 111, 112], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/utils/numberformat.py": [1, 3, 4, 5, 8, 9], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/utils/module_loading.py": [2, 4, 5, 6, 7, 8, 10, 11, 12, 109, 15, 54, 36, 90, 111], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/core/checks/security/csrf.py": [1, 3, 5, 6, 41, 11, 14, 15, 50, 19, 22, 23, 27, 35, 31], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/nose/plugins/multiprocess.py": [224, 225, 226, 227, 231, 233, 234, 235, 238, 223], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/core/files/base.py": [1, 132, 3, 4, 6, 7, 8, 13, 14, 15, 17, 147, 148, 151, 152, 25, 28, 31, 161, 34, 164, 37, 167, 40, 170, 135, 173, 177, 56, 62, 191, 65, 67, 69, 71, 129, 184, 90, 143, 102], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/nose/plugins/failuredetail.py": [33, 35, 36], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/db/models/deletion.py": [128, 1, 2, 3, 5, 6, 7, 10, 11, 16, 23, 32, 164, 43, 47, 176, 177, 51, 55, 72, 73, 89, 272, 239, 116, 248, 253], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/utils/deprecation.py": [1, 2, 5, 6, 9, 10, 13, 16, 17, 18, 19, 20, 21, 23, 24, 30, 33, 43, 45, 47, 48, 50, 51, 52, 53, 54, 55, 56, 57, 58, 61, 70, 71, 73], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/conf/global_settings.py": [513, 515, 617, 517, 6, 519, 522, 12, 13, 18, 583, 21, 601, 536, 25, 30, 543, 34, 551, 40, 554, 43, 556, 557, 558, 47, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 140, 144, 145, 148, 149, 150, 151, 156, 160, 636, 165, 166, 169, 172, 626, 175, 178, 184, 187, 190, 193, 194, 195, 196, 197, 198, 199, 202, 205, 212, 227, 231, 233, 237, 241, 244, 247, 250, 555, 262, 641, 264, 268, 642, 643, 280, 644, 559, 285, 645, 288, 292, 646, 296, 647, 300, 304, 309, 314, 319, 323, 566, 328, 334, 338, 342, 608, 346, 351, 356, 360, 365, 376, 576, 386, 579, 406, 411, 414, 417, 421, 424, 427, 428, 431, 433, 611, 440, 449, 460, 468, 590, 470, 472, 474, 476, 478, 480, 482, 484, 486, 489, 491, 594, 498, 499, 500, 503, 504, 505, 511], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/core/signals.py": [1, 3, 4, 5, 6], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/forms/formsets.py": [409, 1, 258, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16, 145, 19, 20, 21, 22, 23, 24, 281, 27, 387, 30, 415, 288, 33, 262, 38, 39, 348, 171, 176, 136, 50, 51, 52, 181, 55, 56, 57, 315, 191, 416, 435, 68, 71, 200, 396, 75, 79, 82, 86, 89, 220, 357, 272, 294, 404, 363, 108, 417, 374, 377, 127], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/db/models/__init__.py": [1, 2, 3, 5, 6, 7, 10, 11, 12, 13, 14, 15, 16, 19, 20, 22, 23, 24, 27, 48, 50, 57, 58, 60, 62, 63, 64, 66], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/nose/loader.py": [522, 523, 540, 541, 542, 547, 550, 551, 559, 564, 566, 567, 568, 569, 570, 79, 81, 82, 83, 84, 85, 86, 89, 90, 91, 92, 93, 94, 95, 97, 99, 105, 108, 109, 110, 112, 113, 114, 116, 119, 121, 122, 123, 128, 131, 134, 135, 143, 144, 145, 146, 147, 149, 150, 151, 154, 156, 157, 158, 159, 160, 161, 170, 177, 178, 179, 180, 181, 182, 183, 186, 196, 197, 200, 201, 209, 210, 211, 212, 314, 315, 316, 317, 321, 322, 323, 325, 326, 327, 328, 330, 331, 332, 333, 338, 340, 341, 343, 344, 345, 346, 347, 348, 349, 350, 353, 354, 356, 359, 369, 371, 374, 375, 378, 379, 404, 405, 406, 409, 410, 416, 417, 418, 420, 421, 428, 431, 432, 433, 473, 474, 475, 476, 481, 486, 487, 488, 493, 494], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/core/checks/registry.py": [2, 4, 6, 9, 12, 13, 14, 15, 16, 17, 20, 22, 23, 24, 26, 43, 45, 46, 47, 48, 49, 50, 51, 52, 54, 57, 58, 59, 61, 79, 82, 85, 92, 93, 94, 95], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/db/models/expressions.py": [1, 2, 4, 5, 6, 7, 8, 9, 10, 11, 14, 18, 21, 22, 23, 24, 25, 28, 517, 33, 34, 36, 552, 775, 598, 557, 861, 520, 562, 52, 55, 58, 571, 61, 64, 577, 67, 580, 70, 583, 73, 587, 588, 78, 591, 81, 594, 86, 599, 89, 92, 605, 95, 609, 98, 101, 104, 107, 110, 616, 626, 115, 630, 631, 121, 635, 124, 638, 127, 129, 619, 132, 135, 649, 138, 533, 141, 655, 536, 659, 148, 663, 665, 879, 669, 672, 675, 678, 682, 683, 685, 176, 694, 183, 697, 700, 703, 706, 710, 876, 717, 206, 212, 216, 730, 225, 738, 237, 750, 751, 753, 762, 765, 768, 771, 641, 265, 783, 788, 644, 283, 286, 289, 521, 845, 295, 810, 300, 813, 814, 820, 823, 826, 829, 318, 326, 840, 652, 333, 336, 339, 343, 857, 346, 347, 860, 570, 350, 352, 358, 872, 361, 364, 367, 370, 916, 891, 882, 896, 903, 396, 749, 915, 404, 405, 918, 924, 928, 417, 931, 934, 941, 433, 947, 436, 437, 951, 954, 444, 447, 450, 453, 456, 460, 463, 464, 465, 466, 468, 561, 474, 481, 484, 487, 494, 613, 851, 510], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/utils/baseconv.py": [38, 40, 41, 42, 43, 44, 45, 48, 49, 51, 52, 53, 54, 57, 60, 66, 72, 95, 96, 97, 98, 99, 100], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/utils/http.py": [128, 1, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 164, 37, 38, 39, 43, 176, 51, 54, 62, 65, 194, 71, 74, 269, 80, 83, 215, 223, 100, 235, 114, 256, 249], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/core/paginator.py": [128, 1, 2, 131, 4, 134, 7, 8, 137, 11, 12, 15, 16, 19, 21, 22, 153, 29, 46, 57, 66, 140, 79, 81, 143, 92, 94, 100, 103, 106, 108, 113, 116, 119], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/core/signing.py": [129, 179, 149, 151, 158, 34, 163, 36, 38, 39, 40, 41, 42, 44, 45, 46, 47, 48, 177, 51, 54, 55, 58, 187, 61, 62, 65, 69, 74, 78, 84, 88, 89, 92, 182, 96, 167], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/core/checks/security/base.py": [1, 3, 5, 6, 135, 8, 9, 14, 144, 17, 18, 24, 153, 27, 28, 33, 162, 36, 37, 42, 172, 45, 46, 178, 51, 54, 55, 60, 63, 64, 69, 72, 73, 76, 77, 78, 80, 83, 84, 85, 88, 89, 95, 99, 103, 107, 113, 119, 125], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/db/models/query.py": [3, 516, 5, 6, 7, 8, 10, 11, 12, 1037, 16, 17, 18, 19, 20, 21, 1047, 24, 25, 26, 27, 1052, 541, 30, 1029, 544, 33, 1058, 36, 550, 1063, 552, 1071, 48, 1074, 51, 53, 566, 1591, 568, 1205, 1088, 65, 581, 582, 71, 584, 589, 78, 598, 90, 605, 608, 100, 1553, 618, 1140, 117, 1656, 1044, 634, 1156, 1670, 1671, 137, 1164, 143, 1048, 147, 1176, 667, 674, 165, 169, 1194, 172, 688, 542, 700, 1213, 1214, 1056, 1736, 203, 717, 1747, 214, 728, 1243, 1251, 1764, 229, 1255, 1256, 1257, 746, 1266, 763, 1277, 1062, 1411, 279, 805, 1319, 1322, 1325, 816, 1330, 307, 826, 827, 1077, 320, 837, 845, 1359, 341, 655, 860, 1373, 1374, 351, 1339, 356, 998, 1385, 874, 1389, 1392, 1395, 886, 1401, 1406, 897, 899, 1415, 396, 910, 1429, 921, 409, 922, 924, 1094, 939, 432, 72, 449, 963, 969, 464, 983, 991, 480, 483, 486, 1005, 495, 1008, 681, 504, 1019, 1021], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/http/__init__.py": [1, 2, 4, 11, 14, 15, 16, 17, 18, 19, 20, 21], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/conf/__init__.py": [7, 9, 10, 11, 12, 141, 14, 15, 16, 17, 18, 147, 20, 149, 23, 28, 29, 162, 35, 36, 37, 166, 39, 42, 171, 46, 157, 51, 180, 137, 64, 69, 72, 75, 76, 82, 83, 144, 38, 174], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/db/models/sql/__init__.py": [1, 2, 3, 4, 7], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/utils/datetime_safe.py": [32, 36, 37, 40, 10, 11, 12, 45, 17, 18, 22, 23, 56, 72, 26, 59], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/forms/__init__.py": [3, 5, 6, 7, 8, 9, 10], "/Users/RaPoSpectre/.virtualenvs/serializer/lib/python2.7/site-packages/django/core/checks/compatibility/__init__.py": [1]}} -------------------------------------------------------------------------------- /src/test/__init__.py: -------------------------------------------------------------------------------- 1 | __author__ = 'RaPoSpectre' 2 | -------------------------------------------------------------------------------- /src/test/test_Mixin.py: -------------------------------------------------------------------------------- 1 | # coding: utf-8 2 | from __future__ import unicode_literals 3 | from __future__ import absolute_import 4 | import json 5 | 6 | from unittest import TestCase 7 | from ..dss.Mixin import JsonResponseMixin, FormJsonResponseMixin, MultipleJsonResponseMixin 8 | 9 | import datetime 10 | 11 | 12 | class TestJsonResponseMixin(TestCase): 13 | def setUp(self): 14 | self.json_mixin = JsonResponseMixin() 15 | self.json_mixin.datetime_type = 'string' 16 | 17 | def test_time_format(self): 18 | res = self.json_mixin.time_format(datetime.datetime(2015, 12, 12, 12)) 19 | self.assertEqual(res, '2015-12-12 12:00:00') 20 | 21 | def test_render_to_response(self): 22 | context = {'title': 'test', 'name': 'test_name'} 23 | resp = self.json_mixin.render_to_response(context=context) 24 | self.assertEqual(resp.content, json.dumps(context, indent=4)) 25 | 26 | 27 | class TestFormJsonResponseMixin(TestCase): 28 | def setUp(self): 29 | self.form_mixin = FormJsonResponseMixin() 30 | self.form_mixin.datetime_type = 'string' 31 | 32 | class TestForm(object): 33 | fields = ['form1', 'form2', 'form3'] 34 | self.form = TestForm() 35 | 36 | def test_context_serialize(self): 37 | context = {'title': 'test_title', 38 | 'form': self.form} 39 | result = self.form_mixin.context_serialize(context) 40 | expect_res = {'title': 'test_title', 41 | 'form': [{'field': 'form1'}, 42 | {'field': 'form2'}, 43 | {'field': 'form3'}]} 44 | self.assertEqual(result, expect_res) 45 | 46 | 47 | class TestMultipleJsonResponseMixin(TestCase): 48 | def setUp(self): 49 | self.multi_mixin = MultipleJsonResponseMixin() 50 | 51 | class TestPaginator(object): 52 | pass 53 | 54 | class TestPage(object): 55 | number = 1 56 | paginator = TestPaginator() 57 | setattr(paginator, 'num_pages', 3) 58 | setattr(paginator, 'page_range', [1, 2, 3]) 59 | 60 | def previous_page_number(self): 61 | return None 62 | 63 | def next_page_number(self): 64 | return 2 65 | 66 | self.page_obj = TestPage() 67 | 68 | def test_context_serialize(self): 69 | context = {'page_obj': self.page_obj, 70 | 'is_paginated': True, 71 | 'title': 'test'} 72 | result = self.multi_mixin.context_serialize(context) 73 | expect_res = {'current': 1, 74 | 'total': 3, 75 | 'previous': None, 76 | 'next': 2, 77 | 'page_range': [{'page': 1}, 78 | {'page': 2}, 79 | {'page': 3}]} 80 | self.assertEqual(result['page_obj'], expect_res) -------------------------------------------------------------------------------- /src/test/test_Serializer.py: -------------------------------------------------------------------------------- 1 | # coding: utf-8 2 | from __future__ import unicode_literals 3 | import json 4 | 5 | from unittest import TestCase 6 | import datetime 7 | from django.db import models 8 | from django.conf import settings 9 | from dss.TimeFormatFactory import TimeFormatFactory 10 | from dss.Serializer import serializer 11 | 12 | __author__ = 'RaPoSpectre' 13 | 14 | 15 | class Test_Serializer(TestCase): 16 | def setUp(self): 17 | self.time_func = TimeFormatFactory.get_time_func('string') 18 | # DATABASES = { 19 | # 'default': { 20 | # 'ENGINE': 'django.db.backends.sqlite3', 21 | # 'NAME': ':memory:', 22 | # 'USER': '', # Not used with sqlite3. 23 | # 'PASSWORD': '', # Not used with sqlite3. 24 | # 'HOST': '', # Set to empty string for localhost. Not used with sqlite3. 25 | # 'PORT': '', 26 | # } 27 | # } 28 | # settings.configure(DATABASES=DATABASES, DEBUG=True) 29 | # class TestAuthor(models.Model): 30 | # name = models.CharField(default='test_author') 31 | # 32 | # def __unicode__(self): 33 | # return self.name 34 | # 35 | # class TestTags(models.Model): 36 | # tag = models.CharField(default='test_tag') 37 | # create_time = models.DateTimeField(auto_now=True) 38 | # 39 | # class TestArticle(models.Model): 40 | # title = models.CharField(default='test') 41 | # content = models.CharField(default='test') 42 | # author = models.ForeignKey(TestAuthor, related_name='author_art') 43 | # tags = models.ManyToManyField(TestTags, related_name='tag_art') 44 | # create_time = models.DateTimeField(auto_now=True) 45 | # 46 | # 47 | # self.author = TestAuthor() 48 | # self.author.save() 49 | # tags = TestTags(tag='tag1') 50 | # tags.save() 51 | # self.article = TestArticle(author=self.author) 52 | # self.article.tags.add(tags) 53 | # self.article.save() 54 | 55 | def test_serializer(self): 56 | test_data = {'title': 'test', 57 | 'name': 'attr', 58 | 'time': datetime.datetime(2015, 10, 10, 12), 59 | 'list': [{'content': 'list_content', 60 | 'time': datetime.datetime(2015, 10, 11, 9)}, 61 | {'content': 'list_content1', 62 | 'time': datetime.datetime(2015, 12, 22, 9)}]} 63 | result = serializer(test_data, datetime_format='string', output_type='raw') 64 | self.assertEqual(result['time'], '2015-10-10 12:00:00') 65 | self.assertIsInstance(result, dict) 66 | self.assertEqual(result['list'][0]['time'], '2015-10-11 09:00:00') 67 | result = serializer(test_data, datetime_format='timestamp', output_type='json') 68 | self.assertEqual(json.loads(result)['title'], 'test') 69 | self.assertEqual(json.loads(result)['list'][0]['content'], 'list_content') 70 | -------------------------------------------------------------------------------- /src/test/test_TimeFormatFactory.py: -------------------------------------------------------------------------------- 1 | import unittest 2 | import datetime 3 | 4 | from ..dss.TimeFormatFactory import TimeFormatFactory 5 | 6 | 7 | class TestTimeFormatFactory(unittest.TestCase): 8 | def setUp(self): 9 | self.time_factory = TimeFormatFactory() 10 | 11 | def test_create_string(self): 12 | new_time = datetime.datetime(2015, 5, 20, 20, 20, 20) 13 | time_func = self.time_factory.get_time_func('string') 14 | time_str = time_func(new_time) 15 | self.assertEqual(time_str, '2015-05-20 20:20:20') 16 | 17 | def test_create_timestamp(self): 18 | new_time = datetime.datetime(2015, 5, 20, 20, 20, 20) 19 | time_func = self.time_factory.get_time_func('timestamp') 20 | time_stamp = time_func(new_time) 21 | self.assertEqual(time_stamp, 1432124420.0) 22 | 23 | def test_get_time_func(self): 24 | time_func = self.time_factory.get_time_func('string') 25 | time_str = time_func(datetime.datetime(1999, 9, 9, 9)) 26 | self.assertEqual(time_str, '1999-09-09 09:00:00') 27 | 28 | if __name__ == '__main__': 29 | unittest.main() 30 | --------------------------------------------------------------------------------