matthiaskoenig / pkdb

Pharmacokinetics database
https://alpha.pk-db.com
30 stars 6 forks source link

Bug with unit `percent/min` #456

Closed matthiaskoenig closed 4 years ago

matthiaskoenig commented 4 years ago

I just defined a new unit percent/min which results in upload issues:

upload_study -s studies/methacetin/Kasicka-Jonderko2008/
INFO --------------------------------------------------------------------------------
INFO Upload studies/methacetin/Kasicka-Jonderko2008/
INFO --------------------------------------------------------------------------------
INFO - 0.04 [s] : Created TSVs ['Fig2', 'Fig3']
INFO - 0.11 [s] : Upload references
INFO - 0.37 [s] : Upload files
INFO - 0.10 [s] : Upload core study
INFO - 0.76 [s] : Upload groups
INFO - 0.18 [s] : Upload individuals
ERROR 500
ERROR Expecting value: line 1 column 1 (char 0)
WARNING b'UndefinedUnitError at /api/v1/studies/PKDB00229/\n\'p\' is not defined in the unit registry\n\nRequest Method: PATCH\nRequest URL: http://0.0.0.0:8000/api/v1/studies/PKDB00229/\nDjango Version: 2.2.5\nPython Executable: /usr/local/bin/python\nPython Version: 3.6.6\nPython Path: [\'/code\', \'/usr/local/lib/python36.zip\', \'/usr/local/lib/python3.6\', \'/usr/local/lib/python3.6/lib-dynload\', \'/usr/local/lib/python3.6/site-packages\', \'/src/django-elasticsearch-dsl-drf/src\', \'/code\']\nServer time: Wed, 30 Oct 2019 21:25:51 +0000\nInstalled Applications:\n(\'django.contrib.admin\',\n \'django.contrib.auth\',\n \'django.contrib.sites\',\n \'django.contrib.contenttypes\',\n \'django.contrib.sessions\',\n \'django.contrib.messages\',\n \'django.contrib.staticfiles\',\n \'rest_email_auth\',\n \'rest_framework.authtoken\',\n \'allauth\',\n \'allauth.account\',\n \'rest_framework\',\n \'django_filters\',\n \'rest_framework_swagger\',\n \'corsheaders\',\n \'django_elasticsearch_dsl\',\n \'django_elasticsearch_dsl_drf\',\n \'pkdb_app.users\',\n \'pkdb_app.studies\',\n \'pkdb_app.categorials\',\n \'pkdb_app.subjects\',\n \'pkdb_app.substances\',\n \'pkdb_app.interventions\',\n \'pkdb_app.outputs\',\n \'pkdb_app.comments\')\nInstalled Middleware:\n(\'django.middleware.security.SecurityMiddleware\',\n \'django.contrib.sessions.middleware.SessionMiddleware\',\n \'corsheaders.middleware.CorsMiddleware\',\n \'django.middleware.common.CommonMiddleware\',\n \'django.middleware.csrf.CsrfViewMiddleware\',\n \'django.contrib.auth.middleware.AuthenticationMiddleware\',\n \'django.contrib.messages.middleware.MessageMiddleware\',\n \'django.middleware.clickjacking.XFrameOptionsMiddleware\')\n\n\nTraceback:\n\nFile "/usr/local/lib/python3.6/site-packages/django/core/handlers/exception.py" in inner\n  34.             response = get_response(request)\n\nFile "/usr/local/lib/python3.6/site-packages/django/core/handlers/base.py" in _get_response\n  115.                 response = self.process_exception_by_middleware(e, request)\n\nFile "/usr/local/lib/python3.6/site-packages/django/core/handlers/base.py" in _get_response\n  113.                 response = wrapped_callback(request, *callback_args, **callback_kwargs)\n\nFile "/usr/local/lib/python3.6/site-packages/django/views/decorators/csrf.py" in wrapped_view\n  54.         return view_func(*args, **kwargs)\n\nFile "/usr/local/lib/python3.6/site-packages/rest_framework/viewsets.py" in view\n  114.             return self.dispatch(request, *args, **kwargs)\n\nFile "/usr/local/lib/python3.6/site-packages/rest_framework/views.py" in dispatch\n  505.             response = self.handle_exception(exc)\n\nFile "/usr/local/lib/python3.6/site-packages/rest_framework/views.py" in handle_exception\n  465.             self.raise_uncaught_exception(exc)\n\nFile "/usr/local/lib/python3.6/site-packages/rest_framework/views.py" in raise_uncaught_exception\n  476.         raise exc\n\nFile "/usr/local/lib/python3.6/site-packages/rest_framework/views.py" in dispatch\n  502.             response = handler(request, *args, **kwargs)\n\nFile "/code/pkdb_app/studies/views.py" in partial_update\n  133.         return super().partial_update(request, *args, **kwargs)\n\nFile "/usr/local/lib/python3.6/site-packages/rest_framework/mixins.py" in partial_update\n  82.         return self.update(request, *args, **kwargs)\n\nFile "/code/pkdb_app/studies/views.py" in update\n  137.         return super().update(request, *args, **kwargs)\n\nFile "/usr/local/lib/python3.6/site-packages/rest_framework/mixins.py" in update\n  67.         serializer.is_valid(raise_exception=True)\n\nFile "/code/pkdb_app/serializers.py" in is_valid\n  785.             return super().is_valid(raise_exception)\n\nFile "/usr/local/lib/python3.6/site-packages/rest_framework/serializers.py" in is_valid\n  235.                 self._validated_data = self.run_validation(self.initial_data)\n\nFile "/usr/local/lib/python3.6/site-packages/rest_framework/serializers.py" in run_validation\n  430.         value = self.to_internal_value(data)\n\nFile "/code/pkdb_app/studies/serializers.py" in to_internal_value\n  271.         return super().to_internal_value(data)\n\nFile "/code/pkdb_app/serializers.py" in to_internal_value\n  65.         return super().to_internal_value(data)\n\nFile "/usr/local/lib/python3.6/site-packages/rest_framework/serializers.py" in to_internal_value\n  487.                 validated_value = field.run_validation(primitive_value)\n\nFile "/usr/local/lib/python3.6/site-packages/rest_framework/serializers.py" in run_validation\n  430.         value = self.to_internal_value(data)\n\nFile "/code/pkdb_app/outputs/serializers.py" in to_internal_value\n  385.         data = super().to_internal_value(data)\n\nFile "/code/pkdb_app/serializers.py" in to_internal_value\n  751.         return super().to_internal_value(data)\n\nFile "/code/pkdb_app/serializers.py" in to_internal_value\n  522.         return super().to_internal_value(data)\n\nFile "/code/pkdb_app/serializers.py" in to_internal_value\n  65.         return super().to_internal_value(data)\n\nFile "/usr/local/lib/python3.6/site-packages/rest_framework/serializers.py" in to_internal_value\n  487.                 validated_value = field.run_validation(primitive_value)\n\nFile "/usr/local/lib/python3.6/site-packages/rest_framework/serializers.py" in run_validation\n  618.         value = self.to_internal_value(data)\n\nFile "/usr/local/lib/python3.6/site-packages/rest_framework/serializers.py" in to_internal_value\n  654.                 validated = self.child.run_validation(item)\n\nFile "/usr/local/lib/python3.6/site-packages/rest_framework/serializers.py" in run_validation\n  430.         value = self.to_internal_value(data)\n\nFile "/code/pkdb_app/outputs/serializers.py" in to_internal_value\n  355.         return super(serializers.ModelSerializer, self).to_internal_value(data)\n\nFile "/usr/local/lib/python3.6/site-packages/rest_framework/serializers.py" in to_internal_value\n  487.                 validated_value = field.run_validation(primitive_value)\n\nFile "/usr/local/lib/python3.6/site-packages/rest_framework/serializers.py" in run_validation\n  618.         value = self.to_internal_value(data)\n\nFile "/usr/local/lib/python3.6/site-packages/rest_framework/serializers.py" in to_internal_value\n  654.                 validated = self.child.run_validation(item)\n\nFile "/usr/local/lib/python3.6/site-packages/rest_framework/serializers.py" in run_validation\n  433.             value = self.validate(value)\n\nFile "/code/pkdb_app/outputs/serializers.py" in validate\n  274.             attrs["measurement_type"].validate_complete(data=attrs)\n\nFile "/code/pkdb_app/categorials/models.py" in validate_complete\n  278.         self.validate_unit(data.get("unit", None))\n\nFile "/code/pkdb_app/categorials/models.py" in validate_unit\n  173.         if not self.is_valid_unit(unit):\n\nFile "/code/pkdb_app/categorials/models.py" in is_valid_unit\n  159.                 return any([self.p_unit(unit).check(dim) for dim in self.valid_dimensions])\n\nFile "/code/pkdb_app/categorials/models.py" in valid_dimensions\n  136.         return [unit.dimensionality for unit in self.n_p_units]\n\nFile "/code/pkdb_app/categorials/models.py" in n_p_units\n  125.         return [unit.p_unit for unit in self.units.all()]\n\nFile "/code/pkdb_app/categorials/models.py" in <listcomp>\n  125.         return [unit.p_unit for unit in self.units.all()]\n\nFile "/code/pkdb_app/categorials/models.py" in p_unit\n  57.         return ureg(self.name).u\n\nFile "/usr/local/lib/python3.6/site-packages/pint/registry.py" in parse_expression\n  865.         return build_eval_tree(gen).evaluate(lambda x: self._eval_token(x,\n\nFile "/usr/local/lib/python3.6/site-packages/pint/pint_eval.py" in evaluate\n  94.             return define_op(self.left)\n\nFile "/usr/local/lib/python3.6/site-packages/pint/registry.py" in <lambda>\n  867.                                                                         **values))\n\nFile "/usr/local/lib/python3.6/site-packages/pint/registry.py" in _eval_token\n  846.                                                                       case_sensitive=case_sensitive) : 1}))\n\nFile "/usr/local/lib/python3.6/site-packages/pint/registry.py" in get_name\n  478.             raise UndefinedUnitError(name_or_alias)\n\nException Type: UndefinedUnitError at /api/v1/studies/PKDB00229/\nException Value: \'p\' is not defined in the unit registry\nRequest information:\nUSER: admin\n\nGET: No GET data\n\nPOST: No POST data\n\nFILES: No FILES data\n\nCOOKIES: No cookie data\n\nMETA:\nCONTENT_LENGTH = \'771\'\nCONTENT_TYPE = \'application/json\'\nDJANGO_SETTINGS_MODULE = \'pkdb_app.settings\'\nFRONTEND_BASE = \'http://0.0.0.0:8080\'\nGATEWAY_INTERFACE = \'CGI/1.1\'\nGPG_KEY = \'0D96DF4D4110E5C43FBFB17F2D347EA6AA65421D\'\nHOME = \'/root\'\nHOSTNAME = \'04f00a466b45\'\nHTTP_ACCEPT = \'*/*\'\nHTTP_ACCEPT_ENCODING = \'gzip, deflate\'\nHTTP_AUTHORIZATION = \'token dbb2fe27338c9c1b70f57dd0abc3b969b7233817\'\nHTTP_CONNECTION = \'keep-alive\'\nHTTP_HOST = \'0.0.0.0:8000\'\nHTTP_USER_AGENT = \'python-requests/2.22.0\'\nLANG = \'C.UTF-8\'\nPATH = \'/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin\'\nPATH_INFO = \'/api/v1/studies/PKDB00229/\'\nPKDB_ADMIN_PASSWORD = \'pkdb_admin\'\nPKDB_API_BASE = \'http://0.0.0.0:8000\'\nPKDB_DB_NAME = \'postgres\'\nPKDB_DB_PASSWORD = \'postgres\'\nPKDB_DB_PORT = \'5432\'\nPKDB_DB_SERVICE = \'postgres\'\nPKDB_DB_URL = \'localhost\'\nPKDB_DB_USER = \'postgres\'\nPKDB_DJANGO_CONFIGURATION = \'local\'\nPKDB_DOCKER_COMPOSE_YAML = \'docker-compose-develop.yml\'\nPKDB_EMAIL_HOST_PASSWORD = \'\'\nPKDB_EMAIL_HOST_USER = \'\'\nPKDB_SECRET_KEY = \'"cgasj6yjpkagcgasj6yjpkagcgasj6yjpkag"\'\nPWD = \'/code\'\nPYTHONUNBUFFERED = \'1\'\nPYTHON_PIP_VERSION = \'18.0\'\nPYTHON_VERSION = \'3.6.6\'\nQUERY_STRING = \'\'\nREMOTE_ADDR = \'172.19.0.1\'\nREMOTE_HOST = \'\'\nREQUEST_METHOD = \'PATCH\'\nRUN_MAIN = \'true\'\nSCRIPT_NAME = \'\'\nSERVER_NAME = \'04f00a466b45\'\nSERVER_PORT = \'8000\'\nSERVER_PROTOCOL = \'HTTP/1.1\'\nSERVER_SOFTWARE = \'WSGIServer/0.2\'\nSHLVL = \'1\'\nTZ = \'UTC\'\n_ = \'/usr/local/bin/python\'\nwsgi.errors = <_io.TextIOWrapper name=\'<stderr>\' mode=\'w\' encoding=\'UTF-8\'>\nwsgi.file_wrapper = \'\'\nwsgi.input = <django.core.handlers.wsgi.LimitedStream object at 0x7fbc610f0940>\nwsgi.multiprocess = False\nwsgi.multithread = True\nwsgi.run_once = False\nwsgi.url_scheme = \'http\'\nwsgi.version = \'(1, 0)\'\n\nSettings:\nUsing settings module pkdb_app.settings\nABSOLUTE_URL_OVERRIDES = {}\nACCOUNT_AUTHENTICATED_LOGIN_REDIRECTS = False\nACCOUNT_AUTHENTICATION_METHOD = \'email\'\nACCOUNT_EMAIL_REQUIRED = True\nACCOUNT_EMAIL_VERIFICATION = \'mandatory\'\nACCOUNT_LOGOUT_REDIRECT_URL = \'http://0.0.0.0:8000/#/account\'\nACCOUNT_USERNAME_MIN_LENGTH = 3\nACCOUNT_USERNAME_REQUIRED = True\nADMINS = "((\'mkoenig\', \'konigmatt@googlemail.com\'), (\'janekg89\', \'janekg89@hotmail.de\'))"\nALLOWED_HOSTS = [\'*\']\nAPI_BASE = \'********************\'\nAPI_URL = \'********************\'\nAPPEND_SLASH = False\nAUTHENTICATION_BACKENDS = "(\'django.contrib.auth.backends.ModelBackend\', \'allauth.account.auth_backends.AuthenticationBackend\', \'rest_email_auth.authentication.VerifiedEmailBackend\')"\nAUTH_PASSWORD_VALIDATORS = \'********************\'\nAUTH_USER_MODEL = \'users.User\'\nBASE_DIR = \'/code\'\nCACHES = {\'default\': {\'BACKEND\': \'django.core.cache.backends.locmem.LocMemCache\'}}\nCACHE_MIDDLEWARE_ALIAS = \'default\'\nCACHE_MIDDLEWARE_KEY_PREFIX = \'********************\'\nCACHE_MIDDLEWARE_SECONDS = 600\nCORS_ORIGIN_ALLOW_ALL = True\nCSRF_COOKIE_AGE = 31449600\nCSRF_COOKIE_DOMAIN = None\nCSRF_COOKIE_HTTPONLY = False\nCSRF_COOKIE_NAME = \'csrftoken\'\nCSRF_COOKIE_PATH = \'/\'\nCSRF_COOKIE_SAMESITE = \'Lax\'\nCSRF_COOKIE_SECURE = False\nCSRF_FAILURE_VIEW = \'django.views.csrf.csrf_failure\'\nCSRF_HEADER_NAME = \'HTTP_X_CSRFTOKEN\'\nCSRF_TRUSTED_ORIGINS = []\nCSRF_USE_SESSIONS = False\nDATABASES = {\'default\': {\'ENGINE\': \'django.db.backends.postgresql\', \'NAME\': \'postgres\', \'USER\': \'postgres\', \'HOST\': \'postgres\', \'PASSWORD\': \'********************\', \'PORT\': \'5432\', \'ATOMIC_REQUESTS\': False, \'AUTOCOMMIT\': True, \'CONN_MAX_AGE\': 0, \'OPTIONS\': {}, \'TIME_ZONE\': None, \'TEST\': {\'CHARSET\': None, \'COLLATION\': None, \'NAME\': None, \'MIRROR\': None}}}\nDATABASE_ROUTERS = []\nDATA_UPLOAD_MAX_MEMORY_SIZE = 2621440\nDATA_UPLOAD_MAX_NUMBER_FIELDS = 1000\nDATETIME_FORMAT = \'N j, Y, P\'\nDATETIME_INPUT_FORMATS = [\'%Y-%m-%d %H:%M:%S\', \'%Y-%m-%d %H:%M:%S.%f\', \'%Y-%m-%d %H:%M\', \'%Y-%m-%d\', \'%m/%d/%Y %H:%M:%S\', \'%m/%d/%Y %H:%M:%S.%f\', \'%m/%d/%Y %H:%M\', \'%m/%d/%Y\', \'%m/%d/%y %H:%M:%S\', \'%m/%d/%y %H:%M:%S.%f\', \'%m/%d/%y %H:%M\', \'%m/%d/%y\']\nDATE_FORMAT = \'N j, Y\'\nDATE_INPUT_FORMATS = [\'%Y-%m-%d\', \'%m/%d/%Y\', \'%m/%d/%y\', \'%b %d %Y\', \'%b %d, %Y\', \'%d %b %Y\', \'%d %b, %Y\', \'%B %d %Y\', \'%B %d, %Y\', \'%d %B %Y\', \'%d %B, %Y\']\nDEBUG = True\nDEBUG_PROPAGATE_EXCEPTIONS = False\nDECIMAL_SEPARATOR = \'.\'\nDEFAULT_CHARSET = \'utf-8\'\nDEFAULT_CONTENT_TYPE = \'text/html\'\nDEFAULT_EXCEPTION_REPORTER_FILTER = \'django.views.debug.SafeExceptionReporterFilter\'\nDEFAULT_FILE_STORAGE = \'django.core.files.storage.FileSystemStorage\'\nDEFAULT_FROM_EMAIL = \'webmaster@localhost\'\nDEFAULT_INDEX_TABLESPACE = \'\'\nDEFAULT_TABLESPACE = \'\'\nDISALLOWED_USER_AGENTS = []\nDJANGO_CONFIGURATION = \'local\'\nELASTICSEARCH_DSL = {\'default\': {\'hosts\': \'elasticsearch:9200\'}}\nEMAIL_BACKEND = \'django.core.mail.backends.console.EmailBackend\'\nEMAIL_HOST = \'localhost\'\nEMAIL_HOST_PASSWORD = \'********************\'\nEMAIL_HOST_USER = \'\'\nEMAIL_PORT = 1025\nEMAIL_SSL_CERTFILE = None\nEMAIL_SSL_KEYFILE = \'********************\'\nEMAIL_SUBJECT_PREFIX = \'[Django] \'\nEMAIL_TIMEOUT = None\nEMAIL_USE_LOCALTIME = False\nEMAIL_USE_SSL = False\nEMAIL_USE_TLS = False\nFILE_CHARSET = \'utf-8\'\nFILE_UPLOAD_DIRECTORY_PERMISSIONS = None\nFILE_UPLOAD_HANDLERS = [\'django.core.files.uploadhandler.MemoryFileUploadHandler\', \'django.core.files.uploadhandler.TemporaryFileUploadHandler\']\nFILE_UPLOAD_MAX_MEMORY_SIZE = 2621440\nFILE_UPLOAD_PERMISSIONS = None\nFILE_UPLOAD_TEMP_DIR = None\nFIRST_DAY_OF_WEEK = 0\nFIXTURE_DIRS = []\nFORCE_SCRIPT_NAME = None\nFORMAT_MODULE_PATH = None\nFORM_RENDERER = \'django.forms.renderers.DjangoTemplates\'\nFRONTEND_BASE = \'http://0.0.0.0:8080\'\nIGNORABLE_404_URLS = []\nINSTALLED_APPS = "(\'django.contrib.admin\', \'django.contrib.auth\', \'django.contrib.sites\', \'django.contrib.contenttypes\', \'django.contrib.sessions\', \'django.contrib.messages\', \'django.contrib.staticfiles\', \'rest_email_auth\', \'rest_framework.authtoken\', \'allauth\', \'allauth.account\', \'rest_framework\', \'django_filters\', \'rest_framework_swagger\', \'corsheaders\', \'django_elasticsearch_dsl\', \'django_elasticsearch_dsl_drf\', \'pkdb_app.users\', \'pkdb_app.studies\', \'pkdb_app.categorials\', \'pkdb_app.subjects\', \'pkdb_app.substances\', \'pkdb_app.interventions\', \'pkdb_app.outputs\', \'pkdb_app.comments\')"\nINTERNAL_IPS = \'()\'\nLANGUAGES = [(\'af\', \'Afrikaans\'), (\'ar\', \'Arabic\'), (\'ast\', \'Asturian\'), (\'az\', \'Azerbaijani\'), (\'bg\', \'Bulgarian\'), (\'be\', \'Belarusian\'), (\'bn\', \'Bengali\'), (\'br\', \'Breton\'), (\'bs\', \'Bosnian\'), (\'ca\', \'Catalan\'), (\'cs\', \'Czech\'), (\'cy\', \'Welsh\'), (\'da\', \'Danish\'), (\'de\', \'German\'), (\'dsb\', \'Lower Sorbian\'), (\'el\', \'Greek\'), (\'en\', \'English\'), (\'en-au\', \'Australian English\'), (\'en-gb\', \'British English\'), (\'eo\', \'Esperanto\'), (\'es\', \'Spanish\'), (\'es-ar\', \'Argentinian Spanish\'), (\'es-co\', \'Colombian Spanish\'), (\'es-mx\', \'Mexican Spanish\'), (\'es-ni\', \'Nicaraguan Spanish\'), (\'es-ve\', \'Venezuelan Spanish\'), (\'et\', \'Estonian\'), (\'eu\', \'Basque\'), (\'fa\', \'Persian\'), (\'fi\', \'Finnish\'), (\'fr\', \'French\'), (\'fy\', \'Frisian\'), (\'ga\', \'Irish\'), (\'gd\', \'Scottish Gaelic\'), (\'gl\', \'Galician\'), (\'he\', \'Hebrew\'), (\'hi\', \'Hindi\'), (\'hr\', \'Croatian\'), (\'hsb\', \'Upper Sorbian\'), (\'hu\', \'Hungarian\'), (\'hy\', \'Armenian\'), (\'ia\', \'Interlingua\'), (\'id\', \'Indonesian\'), (\'io\', \'Ido\'), (\'is\', \'Icelandic\'), (\'it\', \'Italian\'), (\'ja\', \'Japanese\'), (\'ka\', \'Georgian\'), (\'kab\', \'Kabyle\'), (\'kk\', \'Kazakh\'), (\'km\', \'Khmer\'), (\'kn\', \'Kannada\'), (\'ko\', \'Korean\'), (\'lb\', \'Luxembourgish\'), (\'lt\', \'Lithuanian\'), (\'lv\', \'Latvian\'), (\'mk\', \'Macedonian\'), (\'ml\', \'Malayalam\'), (\'mn\', \'Mongolian\'), (\'mr\', \'Marathi\'), (\'my\', \'Burmese\'), (\'nb\', \'Norwegian Bokm\xc3\xa5l\'), (\'ne\', \'Nepali\'), (\'nl\', \'Dutch\'), (\'nn\', \'Norwegian Nynorsk\'), (\'os\', \'Ossetic\'), (\'pa\', \'Punjabi\'), (\'pl\', \'Polish\'), (\'pt\', \'Portuguese\'), (\'pt-br\', \'Brazilian Portuguese\'), (\'ro\', \'Romanian\'), (\'ru\', \'Russian\'), (\'sk\', \'Slovak\'), (\'sl\', \'Slovenian\'), (\'sq\', \'Albanian\'), (\'sr\', \'Serbian\'), (\'sr-latn\', \'Serbian Latin\'), (\'sv\', \'Swedish\'), (\'sw\', \'Swahili\'), (\'ta\', \'Tamil\'), (\'te\', \'Telugu\'), (\'th\', \'Thai\'), (\'tr\', \'Turkish\'), (\'tt\', \'Tatar\'), (\'udm\', \'Udmurt\'), (\'uk\', \'Ukrainian\'), (\'ur\', \'Urdu\'), (\'vi\', \'Vietnamese\'), (\'zh-hans\', \'Simplified Chinese\'), (\'zh-hant\', \'Traditional Chinese\')]\nLANGUAGES_BIDI = [\'he\', \'ar\', \'fa\', \'ur\']\nLANGUAGE_CODE = \'en-us\'\nLANGUAGE_COOKIE_AGE = None\nLANGUAGE_COOKIE_DOMAIN = None\nLANGUAGE_COOKIE_NAME = \'django_language\'\nLANGUAGE_COOKIE_PATH = \'/\'\nLOCALE_PATHS = []\nLOGGING = {\'version\': 1, \'disable_existing_loggers\': False, \'formatters\': {\'django.server\': {\'()\': \'django.utils.log.ServerFormatter\', \'format\': \'[%(server_time)s] %(message)s\'}, \'verbose\': {\'format\': \'%(levelname)s %(asctime)s %(module)s %(process)d %(thread)d %(message)s\'}, \'simple\': {\'format\': \'%(levelname)s %(message)s\'}}, \'filters\': {\'require_debug_true\': {\'()\': \'django.utils.log.RequireDebugTrue\'}}, \'handlers\': {\'django.server\': {\'level\': \'INFO\', \'class\': \'logging.StreamHandler\', \'formatter\': \'django.server\'}, \'console\': {\'level\': \'DEBUG\', \'class\': \'logging.StreamHandler\', \'formatter\': \'simple\'}, \'mail_admins\': {\'level\': \'ERROR\', \'class\': \'django.utils.log.AdminEmailHandler\'}}, \'loggers\': {\'django\': {\'handlers\': [\'console\'], \'propagate\': True}, \'django.server\': {\'handlers\': [\'django.server\'], \'level\': \'INFO\', \'propagate\': False}, \'django.request\': {\'handlers\': [\'mail_admins\', \'console\'], \'level\': \'ERROR\', \'propagate\': False}, \'django.db.backends\': {\'handlers\': [\'console\'], \'level\': \'INFO\'}}}\nLOGGING_CONFIG = \'logging.config.dictConfig\'\nLOGIN_REDIRECT_URL = \'http://0.0.0.0:8000/#/account\'\nLOGIN_URL = \'http://0.0.0.0:8000/#/account\'\nLOGOUT_REDIRECT_URL = None\nLOGOUT_URL = \'rest_framework:logout\'\nMANAGERS = []\nMEDIA_ROOT = \'/media/\'\nMEDIA_URL = \'/media/\'\nMESSAGE_STORAGE = \'django.contrib.messages.storage.fallback.FallbackStorage\'\nMIDDLEWARE = "(\'django.middleware.security.SecurityMiddleware\', \'django.contrib.sessions.middleware.SessionMiddleware\', \'corsheaders.middleware.CorsMiddleware\', \'django.middleware.common.CommonMiddleware\', \'django.middleware.csrf.CsrfViewMiddleware\', \'django.contrib.auth.middleware.AuthenticationMiddleware\', \'django.contrib.messages.middleware.MessageMiddleware\', \'django.middleware.clickjacking.XFrameOptionsMiddleware\')"\nMIGRATION_MODULES = {}\nMONTH_DAY_FORMAT = \'F j\'\nNUMBER_GROUPING = 0\nPASSWORD_HASHERS = \'********************\'\nPASSWORD_RESET_TIMEOUT_DAYS = \'********************\'\nPREPEND_WWW = False\nREST_EMAIL_AUTH = {\'EMAIL_VERIFICATION_URL\': \'http://0.0.0.0:8080/#/verification/{key}\', \'PASSWORD_RESET_URL\': \'********************\', \'EMAIL_VERIFICATION_PASSWORD_REQUIRED\': \'********************\', \'REGISTRATION_SERIALIZER\': \'pkdb_app.users.serializers.UserRegistrationSerializer\'}\nREST_FRAMEWORK = {\'DEFAULT_PAGINATION_CLASS\': \'pkdb_app.pagination.CustomPagination\', \'DEFAULT_SCHEMA_CLASS\': \'rest_framework.schemas.coreapi.AutoSchema\', \'PAGE_SIZE\': 20, \'PAGINATE_BY\': 10, \'PAGINATE_BY_PARAM\': \'page_size\', \'MAX_PAGINATE_BY\': 100, \'DATETIME_FORMAT\': \'%Y-%m-%dT%H:%M:%S%z\', \'DEFAULT_RENDERER_CLASSES\': (\'rest_framework.renderers.JSONRenderer\', \'rest_framework.renderers.BrowsableAPIRenderer\'), \'DEFAULT_AUTHENTICATION_CLASSES\': (\'rest_framework.authentication.SessionAuthentication\', \'rest_framework.authentication.TokenAuthentication\'), \'DEFAULT_FILTER_BACKENDS\': (\'django_filters.rest_framework.DjangoFilterBackend\',)}\nROOT_URLCONF = \'pkdb_app.urls\'\nSECRET_KEY = \'********************\'\nSECURE_BROWSER_XSS_FILTER = False\nSECURE_CONTENT_TYPE_NOSNIFF = False\nSECURE_HSTS_INCLUDE_SUBDOMAINS = False\nSECURE_HSTS_PRELOAD = False\nSECURE_HSTS_SECONDS = 0\nSECURE_PROXY_SSL_HEADER = None\nSECURE_REDIRECT_EXEMPT = []\nSECURE_SSL_HOST = None\nSECURE_SSL_REDIRECT = False\nSERVER_EMAIL = \'root@localhost\'\nSESSION_CACHE_ALIAS = \'default\'\nSESSION_COOKIE_AGE = 1209600\nSESSION_COOKIE_DOMAIN = None\nSESSION_COOKIE_HTTPONLY = True\nSESSION_COOKIE_NAME = \'sessionid\'\nSESSION_COOKIE_PATH = \'/\'\nSESSION_COOKIE_SAMESITE = \'Lax\'\nSESSION_COOKIE_SECURE = False\nSESSION_ENGINE = \'django.contrib.sessions.backends.db\'\nSESSION_EXPIRE_AT_BROWSER_CLOSE = False\nSESSION_FILE_PATH = None\nSESSION_SAVE_EVERY_REQUEST = False\nSESSION_SERIALIZER = \'django.contrib.sessions.serializers.JSONSerializer\'\nSETTINGS_MODULE = \'pkdb_app.settings\'\nSHORT_DATETIME_FORMAT = \'m/d/Y P\'\nSHORT_DATE_FORMAT = \'m/d/Y\'\nSIGNING_BACKEND = \'django.core.signing.TimestampSigner\'\nSILENCED_SYSTEM_CHECKS = []\nSITE_ID = 1\nSTATICFILES_DIRS = [\'/code/pkdb_app/static\']\nSTATICFILES_FINDERS = "(\'django.contrib.staticfiles.finders.FileSystemFinder\', \'django.contrib.staticfiles.finders.AppDirectoriesFinder\')"\nSTATICFILES_STORAGE = \'django.contrib.staticfiles.storage.StaticFilesStorage\'\nSTATIC_ROOT = \'/static\'\nSTATIC_URL = \'/static/\'\nSWAGGER_SETTINGS = {\'LOGIN_URL\': \'rest_framework:login\', \'LOGOUT_URL\': \'rest_framework:logout\', \'USE_SESSION_AUTH\': True, \'DOC_EXPANSION\': \'list\', \'APIS_SORTER\': \'********************\', \'SECURITY_DEFINITIONS\': {\'basic\': {\'type\': \'basic\'}}}\nTEMPLATES = [{\'BACKEND\': \'django.template.backends.django.DjangoTemplates\', \'DIRS\': [\'/code/pkdb_app/static\', \'/code/pkdb_app/templates\'], \'APP_DIRS\': True, \'OPTIONS\': {\'context_processors\': [\'django.template.context_processors.debug\', \'django.template.context_processors.request\', \'django.contrib.auth.context_processors.auth\', \'django.contrib.messages.context_processors.messages\']}}]\nTEST_NON_SERIALIZED_APPS = []\nTEST_RUNNER = \'django.test.runner.DiscoverRunner\'\nTHOUSAND_SEPARATOR = \',\'\nTIME_FORMAT = \'P\'\nTIME_INPUT_FORMATS = [\'%H:%M:%S\', \'%H:%M:%S.%f\', \'%H:%M\']\nTIME_ZONE = \'UTC\'\nUSE_I18N = False\nUSE_L10N = True\nUSE_THOUSAND_SEPARATOR = False\nUSE_TZ = True\nUSE_X_FORWARDED_HOST = False\nUSE_X_FORWARDED_PORT = False\nWSGI_APPLICATION = \'pkdb_app.wsgi.application\'\nX_FRAME_OPTIONS = \'SAMEORIGIN\'\nYEAR_MONTH_FORMAT = \'F Y\'\n\n\nYou\'re seeing this error because you have DEBUG = True in your\nDjango settings file. Change that to False, and Django will\ndisplay a standard page generated by the handler for this status code.\n\n'
INFO --------------------------------------------------------------------------------
ERROR UPLOAD ERROR (check errors and warnings)
matthiaskoenig commented 4 years ago

fixed by defining units as list