simo 3.1.0__py3-none-any.whl → 3.1.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of simo might be problematic. Click here for more details.

simo/core/api.py CHANGED
@@ -7,6 +7,7 @@ from django.utils.translation import gettext_lazy as _
7
7
  from django.utils import timezone
8
8
  from django.http import HttpResponse, Http404
9
9
  from simo.core.utils.helpers import get_self_ip, search_queryset
10
+ from simo.core.middleware import introduce_instance
10
11
  from rest_framework import status
11
12
  from actstream.models import Action
12
13
  from rest_framework.pagination import PageNumberPagination
@@ -41,6 +42,7 @@ class InstanceMixin:
41
42
  ).last()
42
43
  if not self.instance:
43
44
  raise Http404()
45
+ introduce_instance(self.instance)
44
46
  return super().dispatch(request, *args, **kwargs)
45
47
 
46
48
  def get_serializer_context(self):
@@ -1,21 +1,19 @@
1
- import random, time
2
1
  from django.contrib.gis.db.backends.postgis.base import (
3
2
  DatabaseWrapper as PostGisPsycopg2DatabaseWrapper
4
3
  )
5
- from django.db import close_old_connections, connection as db_connection
4
+ from django.db.utils import OperationalError, InterfaceError
6
5
  from django.utils.asyncio import async_unsafe
7
- from django.db.utils import InterfaceError
8
- from django.conf import settings
9
6
 
10
7
 
11
8
  class DatabaseWrapper(PostGisPsycopg2DatabaseWrapper):
12
-
13
9
  @async_unsafe
14
10
  def create_cursor(self, name=None):
15
- if not self.is_usable():
16
- close_old_connections()
17
- db_connection.connect()
18
- return super().create_cursor(name=name)
19
-
11
+ try:
12
+ return super().create_cursor(name=name)
13
+ except (InterfaceError, OperationalError):
14
+ # Heal this very connection
15
+ self.close()
16
+ self.connect()
17
+ return super().create_cursor(name=name)
20
18
 
21
19
 
simo/settings.py CHANGED
@@ -133,6 +133,14 @@ DATABASES = {
133
133
  'ENGINE': 'simo.core.db_backend',
134
134
  'NAME': 'SIMO',
135
135
  'ATOMIC_REQUESTS': False,
136
+ 'CONN_HEALTH_CHECKS': True,
137
+ 'CONN_MAX_AGE': 300,
138
+ 'OPTIONS': {
139
+ "keepalives": 1,
140
+ "keepalives_idle": 30,
141
+ "keepalives_interval": 10,
142
+ "keepalives_count": 3,
143
+ }
136
144
  }
137
145
  }
138
146
 
simo/users/serializers.py CHANGED
@@ -32,7 +32,10 @@ class UserSerializer(serializers.ModelSerializer):
32
32
  iu = InstanceUser.objects.filter(
33
33
  user=obj, instance=get_current_instance()
34
34
  ).first()
35
- return iu.is_active
35
+ try:
36
+ return iu.is_active
37
+ except:
38
+ return False
36
39
 
37
40
  def get_avatar(self, obj):
38
41
  if not obj.avatar:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: simo
3
- Version: 3.1.0
3
+ Version: 3.1.1
4
4
  Summary: Smart Home Supremacy
5
5
  Author-email: "Simon V." <simon@simo.io>
6
6
  Project-URL: Homepage, https://simo.io
@@ -2,7 +2,7 @@ simo/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
2
2
  simo/asgi.py,sha256=J0Xmxbi26_EWRTOn36ada6YMX7Pjp_ngMRrcdPUEFes,1839
3
3
  simo/celeryc.py,sha256=eab7_e9rw0c__DCeoUFUh_tjAGVlulxVrk75BaJf57Q,1512
4
4
  simo/conf.py,sha256=H2BhXAV8MEDVXF8AbkaLSfR4ULd-9_bS4bnhE5sE5fg,112
5
- simo/settings.py,sha256=WuW5CCVB66nkRZI-rPV_8b3o6BOfIs8sO-xsP7DjCDU,7090
5
+ simo/settings.py,sha256=V5m3CWeCSAJPrGhQVo0AF5RFTMvB8j4YwPEA9sv-PqA,7324
6
6
  simo/urls.py,sha256=AwTvBi1NE1j-MIUIsrHtlDXo34HRU4__ASwIedzBjPU,2535
7
7
  simo/__pycache__/__init__.cpython-312.pyc,sha256=EAVr4EWzl4QAeIboNWdHmEaFudefMrqjEq6IRDYtkGs,117
8
8
  simo/__pycache__/__init__.cpython-38.pyc,sha256=j81de0BqHMr6bs0C7cuYrXl7HwtK_vv8hDEtAdSwDJc,153
@@ -93,7 +93,7 @@ simo/backups/migrations/__pycache__/__init__.cpython-312.pyc,sha256=gxhvSSUK92Z7
93
93
  simo/backups/migrations/__pycache__/__init__.cpython-38.pyc,sha256=Lz1fs6V05h2AoxTOLNye0do9bEMnyuaXB_hHOjG5-HU,172
94
94
  simo/core/__init__.py,sha256=_s2TjJfQImsMrTIxqLAx9AZie1Ojmm6sCHASdl3WLGU,50
95
95
  simo/core/admin.py,sha256=blhsDujAQZ5UAbwhmatKvYiAns9fOzRPL2LyOTHaUBw,18880
96
- simo/core/api.py,sha256=CCjo8DN7uzAhScW5BEJMnxq8GprAvOtnpLEwNmNN-rA,29903
96
+ simo/core/api.py,sha256=kr6eb2D70GlHvEJGkvadAs1ZCh8zJS_mjd2N9dnZdsA,29997
97
97
  simo/core/api_auth.py,sha256=I9bALko_L7M2dodUkVLRHPctdwR-KPbyZ-r1HygDyEU,1229
98
98
  simo/core/api_meta.py,sha256=Y-kq5lLwjymARnKOx0jHCS4OOH9PhyWNwIUxLUJMny8,5350
99
99
  simo/core/app_widgets.py,sha256=VxZzapuc-a29wBH7JzpvNF2SK1ECrgNUySId5ke1ffc,2509
@@ -191,7 +191,7 @@ simo/core/__pycache__/views.cpython-38.pyc,sha256=kYKvEcyKicdkTcN0iEJ4pT101-KHiZ
191
191
  simo/core/__pycache__/widgets.cpython-312.pyc,sha256=f_AiYFfA7Wl4Wm9FqUOlluSGLAN_nkLyDUsKpkScsXg,4447
192
192
  simo/core/__pycache__/widgets.cpython-38.pyc,sha256=sR0ZeHCHrhnNDBJuRrxp3zUsfBp0xrtF0xrK2TkQv1o,3520
193
193
  simo/core/db_backend/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
194
- simo/core/db_backend/base.py,sha256=wY5jsZ8hQpwot3o-7JNtDe33xy-vlfMLXa011htDojI,601
194
+ simo/core/db_backend/base.py,sha256=4vl0Nx8PcBG5C8QQpAQPFu-TKH8Hs6R5OmzJqIiLibQ,598
195
195
  simo/core/db_backend/__pycache__/__init__.cpython-312.pyc,sha256=Brq4UBCggJrt590OFV3VmgARJYRK902FnnFFFK_Azng,133
196
196
  simo/core/db_backend/__pycache__/__init__.cpython-38.pyc,sha256=sxC6PmFqnwe6RRKzSR7QtUFzRc_aRRR1fffsR3TPLRc,169
197
197
  simo/core/db_backend/__pycache__/base.cpython-312.pyc,sha256=ykKrTOC28v2cl0C--bqeLEaydHS5CG1RFGL0lon53HU,1135
@@ -10850,7 +10850,7 @@ simo/users/managers.py,sha256=OHgEP85MBtdkdYxdstBd8RavTBT8F_2WyDxUJ9aCqqM,246
10850
10850
  simo/users/middleware.py,sha256=tNPmnzo0eTrJ25SLHP7NotqYKI2cKnmv8hf6v5DLOWo,427
10851
10851
  simo/users/models.py,sha256=hEspAbqpbIYfQ4IiXnYtl96waILuuqlfTg4p44rBUTY,25355
10852
10852
  simo/users/permissions.py,sha256=IwtYS8yQdupWbYKR9VimSRDV3qCJ2jXP57Lyjpb2EQM,242
10853
- simo/users/serializers.py,sha256=Uy5JsZp6nEGNMuK9HgLbA0KJdsbjG8GDIyF7z7Ue_so,2610
10853
+ simo/users/serializers.py,sha256=zhotOlezhU43A2QeJCju-SqFrgGUDFF21u8WQclQGXI,2668
10854
10854
  simo/users/sso_urls.py,sha256=gQOaPvGMYFD0NCVSwyoWO-mTEHe5j9sbzV_RK7kdvp0,251
10855
10855
  simo/users/sso_views.py,sha256=qHjiw3Ru-hWZRJAcLJa46DrQuDORl5ZKUHgRwmN3XlE,4335
10856
10856
  simo/users/tasks.py,sha256=FhbczWFHRFI6To4xqkx4gUX4p0vCwwTT297GWBPAoIg,1162
@@ -11034,9 +11034,9 @@ simo/users/templates/invitations/expired_msg.html,sha256=47DEQpj8HBSa-_TImW-5JCe
11034
11034
  simo/users/templates/invitations/expired_suggestion.html,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
11035
11035
  simo/users/templates/invitations/taken_msg.html,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
11036
11036
  simo/users/templates/invitations/taken_suggestion.html,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
11037
- simo-3.1.0.dist-info/licenses/LICENSE.md,sha256=M7wm1EmMGDtwPRdg7kW4d00h1uAXjKOT3HFScYQMeiE,34916
11038
- simo-3.1.0.dist-info/METADATA,sha256=GRNmAs7CWJByJjZAyx8DZC15smFmWgQ2vHveK1HrEjI,2224
11039
- simo-3.1.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
11040
- simo-3.1.0.dist-info/entry_points.txt,sha256=S9PwnUYmTSW7681GKDCxUbL0leRJIaRk6fDQIKgbZBA,135
11041
- simo-3.1.0.dist-info/top_level.txt,sha256=GmS1hrAbpVqn9OWZh6UX82eIOdRLgYA82RG9fe8v4Rs,5
11042
- simo-3.1.0.dist-info/RECORD,,
11037
+ simo-3.1.1.dist-info/licenses/LICENSE.md,sha256=M7wm1EmMGDtwPRdg7kW4d00h1uAXjKOT3HFScYQMeiE,34916
11038
+ simo-3.1.1.dist-info/METADATA,sha256=ZP_qC3cL7BkSgQgvDwKOg6kyjirnyBDdYVIOitaPlEs,2224
11039
+ simo-3.1.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
11040
+ simo-3.1.1.dist-info/entry_points.txt,sha256=S9PwnUYmTSW7681GKDCxUbL0leRJIaRk6fDQIKgbZBA,135
11041
+ simo-3.1.1.dist-info/top_level.txt,sha256=GmS1hrAbpVqn9OWZh6UX82eIOdRLgYA82RG9fe8v4Rs,5
11042
+ simo-3.1.1.dist-info/RECORD,,
File without changes