simo 2.1.9__py3-none-any.whl → 2.1.11__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.

Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
simo/core/api.py CHANGED
@@ -205,6 +205,9 @@ class ComponentViewSet(
205
205
  for method_name, param in json_data.items():
206
206
  if method_name in ('id', 'secret'):
207
207
  continue
208
+
209
+ component.prepare_controller()
210
+
208
211
  if not hasattr(component, method_name):
209
212
  raise APIValidationError(
210
213
  _('"%s" method not found on controller') % method_name,
@@ -291,8 +294,6 @@ class ComponentViewSet(
291
294
  return RESTResponse(resp_data)
292
295
 
293
296
 
294
-
295
-
296
297
  class HistoryResultsSetPagination(PageNumberPagination):
297
298
  page_size = 50
298
299
  page_size_query_param = 'page_size'
simo/core/middleware.py CHANGED
@@ -1,9 +1,8 @@
1
1
  import pytz
2
2
  import threading
3
- import time
4
- from django.urls import set_script_prefix
3
+ import re
5
4
  from django.utils import timezone
6
- from simo.conf import dynamic_settings
5
+
7
6
 
8
7
  _thread_locals = threading.local()
9
8
 
simo/core/models.py CHANGED
@@ -530,17 +530,32 @@ def is_in_alarm(self):
530
530
  return obj
531
531
 
532
532
  def arm(self):
533
+ # supports this method override in controller class
534
+ if not self._controller_initiated:
535
+ self._controller_initiated = True
536
+ self.prepare_controller()
537
+ return self.arm()
533
538
  self.refresh_from_db()
534
539
  if self.alarm_category:
535
540
  self.arm_status = 'pending-arm'
536
541
  self.save()
537
542
 
538
543
  def disarm(self):
544
+ # supports this method override in controller class
545
+ if not self._controller_initiated:
546
+ self._controller_initiated = True
547
+ self.prepare_controller()
548
+ return self.disarm()
539
549
  self.refresh_from_db()
540
550
  self.arm_status = 'disarmed'
541
551
  self.save()
542
552
 
543
553
  def is_in_alarm(self):
554
+ # supports this method override in controller class
555
+ if not self._controller_initiated:
556
+ self._controller_initiated = True
557
+ self.prepare_controller()
558
+ return self.is_in_alarm()
544
559
  return bool(self.value)
545
560
 
546
561
  def can_read(self, user):
simo/core/storage.py CHANGED
@@ -1,18 +1,9 @@
1
1
  import os
2
- from django.contrib.staticfiles.storage import StaticFilesStorage as OrgStaticFilesStorage
3
2
  from django.core.files.storage import FileSystemStorage as OrgFileSystemStorage
4
3
  from django.conf import settings
5
4
 
6
5
 
7
- class ProxyingStaticFilesStorage(OrgStaticFilesStorage):
8
- pass
9
-
10
-
11
- class ProxyingFileSystemStorage(OrgFileSystemStorage):
12
- pass
13
-
14
-
15
- class OverwriteStorage(ProxyingFileSystemStorage):
6
+ class OverwriteStorage(OrgFileSystemStorage):
16
7
 
17
8
  def get_available_name(self, name, max_length=None):
18
9
  if self.exists(name):
simo/core/views.py CHANGED
@@ -1,11 +1,13 @@
1
1
  import time
2
2
  import threading
3
3
  import subprocess
4
+ import re
4
5
  from django.contrib.auth.decorators import login_required
5
6
  from django.urls import reverse
6
7
  from django.shortcuts import redirect
7
- from django.http import HttpResponse, Http404
8
+ from django.http import HttpResponse, Http404, JsonResponse
8
9
  from django.contrib import messages
10
+ from simo.conf import dynamic_settings
9
11
  from .models import Instance
10
12
  from .tasks import update as update_task, supervisor_restart
11
13
  from .middleware import introduce_instance
@@ -68,4 +70,15 @@ def set_instance(request, instance_slug):
68
70
 
69
71
  if request.META.get('HTTP_REFERER'):
70
72
  return redirect(request.META.get('HTTP_REFERER'))
71
- return redirect(reverse('admin:index'))
73
+ return redirect(reverse('admin:index'))
74
+
75
+
76
+ def hub_info(request):
77
+ data = {"hub_uid": dynamic_settings['core__hub_uid']}
78
+ if not Instance.objects.filter(is_active=True).count():
79
+ if 'localhost' in request.get_host() or re.findall(
80
+ r'[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}',
81
+ request.get_host()
82
+ ):
83
+ data['hub_secret'] = dynamic_settings['core__hub_secret']
84
+ return JsonResponse(data)
simo/fleet/utils.py CHANGED
@@ -83,7 +83,7 @@ for no in range(126, 133):
83
83
  }
84
84
 
85
85
 
86
- for no in range(101, 133):
86
+ for no in range(101, 139):
87
87
  GPIO_PINS['game-changer'][no] = {
88
88
  'output': True, 'input': True, 'default_pull': 'LOW',
89
89
  'native': False, 'adc': False,
@@ -383,6 +383,7 @@ class Thermostat(ControllerBase):
383
383
  cooler.turn_off()
384
384
  self.component.value['cooling'] = False
385
385
 
386
+ self.component.error_msg = None
386
387
  self.component.alive = True
387
388
  self.component.save()
388
389
 
@@ -717,7 +718,7 @@ class Blinds(ControllerBase, TimerMixin):
717
718
  "Integer between 0 - 180 is required for blinds angle."
718
719
  )
719
720
  else:
720
- value['angle'] = self.component.value.ge('angle', 0)
721
+ value['angle'] = self.component.value.get('angle', 0)
721
722
 
722
723
  elif occasion == BEFORE_SET:
723
724
  if not isinstance(value, dict):
simo/settings.py CHANGED
@@ -223,11 +223,6 @@ LOGIN_REDIRECT_URL = "/admin/"
223
223
  LOGOUT_REDIRECT_URL = 'https://simo.io/hubs/my-hubs/'
224
224
 
225
225
 
226
- STATICFILES_STORAGE = 'simo.core.storage.ProxyingStaticFilesStorage'
227
- DEFAULT_FILE_STORAGE = 'simo.core.storage.ProxyingFileSystemStorage'
228
- THUMBNAIL_DEFAULT_STORAGE = DEFAULT_FILE_STORAGE
229
-
230
-
231
226
  SITE_ID = 1
232
227
 
233
228
  LOGGING = {
simo/urls.py CHANGED
@@ -12,6 +12,7 @@ from rest_framework import routers
12
12
  from rest_framework.viewsets import GenericViewSet
13
13
  from django.contrib.admin import site as admin_site
14
14
  from simo.users.views import protected_static
15
+ from simo.core.views import hub_info
15
16
 
16
17
 
17
18
 
@@ -43,6 +44,7 @@ urlpatterns = [
43
44
  ),
44
45
  path('logout/', LogoutView.as_view(), name='logout'),
45
46
  path('admin/', admin_site.urls),
47
+ path('api-hub-info/', hub_info),
46
48
  path('api/<instance_slug>/', include(rest_router.urls)),
47
49
 
48
50
  ]
Binary file
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: simo
3
- Version: 2.1.9
3
+ Version: 2.1.11
4
4
  Summary: Smart Home on Steroids!
5
5
  Author-email: Simanas Venčkauskas <simanas@simo.io>
6
6
  Project-URL: Homepage, https://simo.io
@@ -3,18 +3,18 @@ simo/asgi.py,sha256=RphoxqFJjh8Tm8RGC2ztDfFedCyn3a3JQwsLMdAtuaM,863
3
3
  simo/celeryc.py,sha256=eab7_e9rw0c__DCeoUFUh_tjAGVlulxVrk75BaJf57Q,1512
4
4
  simo/conf.py,sha256=H2BhXAV8MEDVXF8AbkaLSfR4ULd-9_bS4bnhE5sE5fg,112
5
5
  simo/scripting.py,sha256=PVIkGsiMDWj4CNTbOM3rq7pJ6ruavuns-ZMU7VudLa4,923
6
- simo/settings.py,sha256=AVTTNjLEdghdBMSOP9BCoI6dG6b5aZ-c6tU3D4qySkc,7142
7
- simo/urls.py,sha256=PgKGCZON3SAL3Hh9vVDWVJ9zDQO5ZPsRQLz_s5GWSV0,2328
6
+ simo/settings.py,sha256=p1T_M-eooNjIAcqRPTYsQRMTRNeOAgi24ZJ703nYKh4,6953
7
+ simo/urls.py,sha256=fRmAsNQ_pzFloimLmxNeDcR6hHRJ3rOoZ3kGy8zOQ_A,2402
8
8
  simo/__pycache__/__init__.cpython-38.pyc,sha256=j81de0BqHMr6bs0C7cuYrXl7HwtK_vv8hDEtAdSwDJc,153
9
9
  simo/__pycache__/asgi.cpython-38.pyc,sha256=UI_puPxc6q4otRqtz0IALTwrh00975iGxc0UyQgLreQ,891
10
10
  simo/__pycache__/celeryc.cpython-38.pyc,sha256=eSRoaKwfYlxVaxAiwqpQ2ndEcx7W-VpZtbxRFSV8UYg,1653
11
11
  simo/__pycache__/conf.cpython-38.pyc,sha256=MYP2yk3ULxiYwZsZR6tCLjKnU-z03A3avzQzIn66y3k,273
12
- simo/__pycache__/settings.cpython-38.pyc,sha256=0dZH8Nn7VxWgdwVyieyaGo_2QaihD2r592oyIiSYods,6287
13
- simo/__pycache__/urls.cpython-38.pyc,sha256=sqfstQthcjXtv31Tad0RAlWWI2A0HH6HN0fW0VmmWQw,2050
12
+ simo/__pycache__/settings.cpython-38.pyc,sha256=ZdhdXOZPZOAljVIHlClO3YFQLpRlqi4LnwLKXcoCcRk,6108
13
+ simo/__pycache__/urls.cpython-38.pyc,sha256=4hUKsasRBOI5qOfzWEsWLF2UWr2ApQ5SEDj7V7X9Q0o,2081
14
14
  simo/__pycache__/wsgi.cpython-38.pyc,sha256=TpRxO7VM_ql31hbKphVdanydC5RI1nHB4l0QA2pdWxo,322
15
15
  simo/core/__init__.py,sha256=_s2TjJfQImsMrTIxqLAx9AZie1Ojmm6sCHASdl3WLGU,50
16
16
  simo/core/admin.py,sha256=Gb1lSyvFtYj2oC5lA7j3VqU6zlqlncx5R-_XJbb8Wdk,17927
17
- simo/core/api.py,sha256=_f0J9wmuB1ydN5qxZ487u-pKz4XiuENlTIhHfzBXvUY,27856
17
+ simo/core/api.py,sha256=SNBhrN60ig64VNZS-gOhHr7bT9uq9dba3ozKrgsbaEs,27899
18
18
  simo/core/api_auth.py,sha256=vCxvczA8aWNcW0VyKs5WlC_ytlqeGP_H_hkKUNVkCwM,1247
19
19
  simo/core/api_meta.py,sha256=EaiY-dCADP__9MvLpoHvhjytFT92IrxPZDv95xgqasU,4955
20
20
  simo/core/app_widgets.py,sha256=4Lh9FDzdkfh_mccJMe09dyRTT3Uqf9VXwbkurJ9E9oQ,2115
@@ -32,22 +32,22 @@ simo/core/forms.py,sha256=QTPEe7nxzhg8NNCQFsVJpoO1LQW6MNNTHkEhBs7keYw,21386
32
32
  simo/core/gateways.py,sha256=m0eS3XjVe34Dge6xtoCq16kFWCKJcdQrT0JW0REqoq8,3715
33
33
  simo/core/loggers.py,sha256=EBdq23gTQScVfQVH-xeP90-wII2DQFDjoROAW6ggUP4,1645
34
34
  simo/core/managers.py,sha256=sCo9R7ctGepYK-uspl7cR-KFBrJxSy3TZkbWbOP0YHs,2914
35
- simo/core/middleware.py,sha256=pO52hQOJV_JRmNyUe7zfufSnJFlRITOWX6jwkoPWJhk,2052
36
- simo/core/models.py,sha256=y5IG6hcVen6tDjzPJM8GxVeuop3XsVZElLqgoAiLVDE,20908
35
+ simo/core/middleware.py,sha256=Go4DAdnXWd7i0ZEbftwfcZI5YGjZ31aQqDzWE4s676c,1970
36
+ simo/core/models.py,sha256=Mg6UjGQjA5WtxO2kq9fO-iW2f9UzDh58etcZ9-X5RSU,21570
37
37
  simo/core/permissions.py,sha256=D8JA3gdsbSfA1Lz6-AIP5ILsYYZ59_Rw4csLqVpuKuE,2928
38
38
  simo/core/routing.py,sha256=X1_IHxyA-_Q7hw1udDoviVP4_FSBDl8GYETTC2zWTbY,499
39
39
  simo/core/serializers.py,sha256=K13SDW-FIcNiRYmJufSDS2EkRAW3cuoiHRByof2DYXQ,20629
40
40
  simo/core/signal_receivers.py,sha256=9-qFCCeSLcMFEMg6QUtKOVgUsoNoqhzGoI98nuNSTEo,6228
41
41
  simo/core/socket_consumers.py,sha256=n7VE2Fvqt4iEAYLTRbTPOcI-7tszMAADu7gimBxB-Fg,9635
42
- simo/core/storage.py,sha256=YlxmdRs-zhShWtFKgpJ0qp2NDBuIkJGYC1OJzqkbttQ,572
42
+ simo/core/storage.py,sha256=_5igjaoWZAiExGWFEJMElxUw55DzJG1jqFty33xe8BE,342
43
43
  simo/core/tasks.py,sha256=BAnCnNPuHtZQL9CG4n_e6G_aKL0aZBZFjp-HOWQg4O0,14049
44
44
  simo/core/todos.py,sha256=eYVXfLGiapkxKK57XuviSNe3WsUYyIWZ0hgQJk7ThKo,665
45
45
  simo/core/types.py,sha256=WJEq48mIbFi_5Alt4wxWMGXxNxUTXqfQU5koH7wqHHI,1108
46
- simo/core/views.py,sha256=ze8yX0PBLN-DH8B8jol6NKj0hLOAE4WA1rTXf07G-MU,2129
46
+ simo/core/views.py,sha256=VVqfEPzK0EdbVMMarkG8rd7cODG5QHpXnr3e8UdrTQE,2600
47
47
  simo/core/widgets.py,sha256=J9e06C6I22F6xKic3VMgG7WeX07glAcl-4bF2Mg180A,2827
48
48
  simo/core/__pycache__/__init__.cpython-38.pyc,sha256=ZJFM_XN0RmJMULQulgA_wFiOnEtsMoedcOWnXjH-Y8o,208
49
49
  simo/core/__pycache__/admin.cpython-38.pyc,sha256=Lqs-wHz-vxGEo7ApOk6nkpNwfxselcFHqAUozotdZU4,13231
50
- simo/core/__pycache__/api.cpython-38.pyc,sha256=8deqsTEUmnRJxarLWVOzmgHJqPdemM_qvy-1g_RUXG0,21721
50
+ simo/core/__pycache__/api.cpython-38.pyc,sha256=tECqcoyjHT9f2o0qt9aQlamf6a-i2CMNn-IWWuToocQ,21736
51
51
  simo/core/__pycache__/api_auth.cpython-38.pyc,sha256=6M9Cl_ha4y_Vf8Rv4GMYL8dcBCmp0KzYi6jn3SQTgys,1712
52
52
  simo/core/__pycache__/api_meta.cpython-38.pyc,sha256=VYx5ZeDyNBI4B_CBEIhV5B3GnLsMOx9s3rNZTSMODco,3703
53
53
  simo/core/__pycache__/app_widgets.cpython-38.pyc,sha256=vUCEAYqppjgRZYMs6pTuSxWWuZxreLygPuPBGw044dQ,3643
@@ -57,7 +57,7 @@ simo/core/__pycache__/autocomplete_views.cpython-38.pyc,sha256=hJ6JILI1LqrAtpQMv
57
57
  simo/core/__pycache__/base_types.cpython-38.pyc,sha256=hmq22vvGyCmhbYyuV6bFAOOSIupspgW5yq_VzqWd-vY,759
58
58
  simo/core/__pycache__/context.cpython-38.pyc,sha256=MSZPDhqMhCpUuBJl3HCIBHZA3BntYeP8RAnQcdqAH9k,1278
59
59
  simo/core/__pycache__/controllers.cpython-38.pyc,sha256=hqSv7xLR6qhK-d7Ymu17aVeHfVqPkLR9IiTs646vV5E,26574
60
- simo/core/__pycache__/dynamic_settings.cpython-38.pyc,sha256=BFZG__TKP8T7v138Jbva4MqYQh7H99laKaXIETsbSHQ,2198
60
+ simo/core/__pycache__/dynamic_settings.cpython-38.pyc,sha256=9ge2uV4QBKdA4f2pIZp4EIGB9vY2z4IUb-UMc4ZY0I4,2384
61
61
  simo/core/__pycache__/events.cpython-38.pyc,sha256=A1Axx-qftd1r7st7wkO3DkvTdt9-RkcJe5KJhpzJVk8,5109
62
62
  simo/core/__pycache__/filters.cpython-38.pyc,sha256=VIMADCBiYhziIyRmxAyUDJluZvuZmiC4bNYWTRsGSao,721
63
63
  simo/core/__pycache__/form_fields.cpython-38.pyc,sha256=u0voKXkA64xbH6LY_-jMBHQS4mOJZZeuB9WTvtv9JWE,3433
@@ -65,17 +65,17 @@ simo/core/__pycache__/forms.cpython-38.pyc,sha256=gDYKULuBTMLxrKfzWXaLDbxuCJvhi2
65
65
  simo/core/__pycache__/gateways.cpython-38.pyc,sha256=D1ooHL-iSpQrxnD8uAl4xWFJmm-QWZfbkLiLlFOMtdU,4553
66
66
  simo/core/__pycache__/loggers.cpython-38.pyc,sha256=Z-cdQnC6XlIonPV4Sl4E52tP4NMEdPAiHK0cFaIL7I8,1623
67
67
  simo/core/__pycache__/managers.cpython-38.pyc,sha256=wuZuRuyf_mZwM0DJeA83mewOLunfz4-miA2YEQphE60,3292
68
- simo/core/__pycache__/middleware.cpython-38.pyc,sha256=ESR5JPtITo9flczO0672sfzYUxrc_cQU0e0w5DFL-60,2038
69
- simo/core/__pycache__/models.cpython-38.pyc,sha256=q-rGNkbO2wtAhoe1TRIOapHTuCoogpF9y7iBxZnuIKo,17753
68
+ simo/core/__pycache__/middleware.cpython-38.pyc,sha256=50F0z5Yl-mXceVs1vyPPthPRcpg3AFnd2zfLplF7zs8,1962
69
+ simo/core/__pycache__/models.cpython-38.pyc,sha256=rKg-_vQ-3L3_NKbCd0HIij7Nyev1t7SOz32-6PS4Rds,17907
70
70
  simo/core/__pycache__/permissions.cpython-38.pyc,sha256=pg11ulzmKh4IeWGPIDJ-KYG-S0dKyY5lHh-S3iljb0E,2930
71
71
  simo/core/__pycache__/routing.cpython-38.pyc,sha256=3T3FPJ8Cn99xZCGvMyg2xjl7al-Shm9CelbSpkJtNP8,599
72
72
  simo/core/__pycache__/serializers.cpython-38.pyc,sha256=DhfGacxAy35un3edthOzgOWeVFbD93bvBWCJ4cAMPN4,19280
73
73
  simo/core/__pycache__/signal_receivers.cpython-38.pyc,sha256=3Bt9S47DR_ZFS3O-crElFgLLXPIYyDgPIc2ibwEkaic,4904
74
74
  simo/core/__pycache__/socket_consumers.cpython-38.pyc,sha256=NJUr7nRyHFvmAumxxWpsod5wzVVZM99rCEuJs1utHA4,8432
75
- simo/core/__pycache__/storage.cpython-38.pyc,sha256=BTkYH8QQyjqI0WOtJC8fHNtgu0YA1vjqZclXjC2vCVI,1116
76
- simo/core/__pycache__/tasks.cpython-38.pyc,sha256=HAYNyqMYRWdObXs72e_svZrq2QMSC8HBi_4CGLxGTNU,10076
75
+ simo/core/__pycache__/storage.cpython-38.pyc,sha256=9R1Xu0FJDflfRXUPsqEgt0SpwiP7FGk7HaR8s8XRyI8,721
76
+ simo/core/__pycache__/tasks.cpython-38.pyc,sha256=O3FjdRHaMDFiuOGMCrzaMjNYSpekogYXbEzD8IUfkv0,9604
77
77
  simo/core/__pycache__/todos.cpython-38.pyc,sha256=lOqGZ58siHM3isoJV4r7sg8igrfE9fFd-jSfeBa0AQI,253
78
- simo/core/__pycache__/views.cpython-38.pyc,sha256=ULyoiWRiU_auXTuxzi2RyqYIea9VfaiMuTzkMAWaWOA,2343
78
+ simo/core/__pycache__/views.cpython-38.pyc,sha256=agV7ZDfy7T72M20FNYyU_YhL1eow0MpWgrxAPbUFejk,2676
79
79
  simo/core/__pycache__/widgets.cpython-38.pyc,sha256=sR0ZeHCHrhnNDBJuRrxp3zUsfBp0xrtF0xrK2TkQv1o,3520
80
80
  simo/core/db_backend/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
81
81
  simo/core/db_backend/base.py,sha256=wY5jsZ8hQpwot3o-7JNtDe33xy-vlfMLXa011htDojI,601
@@ -10200,7 +10200,7 @@ simo/fleet/routing.py,sha256=cofGsVWXMfPDwsJ6HM88xxtRxHwERhJ48Xyxc8mxg5o,149
10200
10200
  simo/fleet/serializers.py,sha256=-16BjY_bp9VbDOYuD0V54h7r_RHpuLNkJX0SydWL9aU,2247
10201
10201
  simo/fleet/socket_consumers.py,sha256=aBNTxvYIw5a5l2ns9x0LnjVJvp4NValEJG4MT4hGAT0,17903
10202
10202
  simo/fleet/tasks.py,sha256=AGq9BXFNAqkhOANsPvId8yjEbDtVCB3MRsi_AKDpgIM,821
10203
- simo/fleet/utils.py,sha256=yKmNibif94FerynqLXQMYUcVZ4FHDD1CNxkdJou38xw,4455
10203
+ simo/fleet/utils.py,sha256=BYqvLexbIJzBdPVPsPuMfkrzM0zHVwo0HPkCFBxOJEQ,4455
10204
10204
  simo/fleet/views.py,sha256=OzsumjMjjt2WEXuThBzSAHcTNLU2dyBtvz4IyeHoAaA,3226
10205
10205
  simo/fleet/__pycache__/__init__.cpython-38.pyc,sha256=pIZE7EL6-cuJ3pQtaSwjKLrKLsTYelp1k9sRhXKLh6s,159
10206
10206
  simo/fleet/__pycache__/admin.cpython-38.pyc,sha256=IqVvpyyOnHChnEc07GubvtH6Tk1PA0rcYGYrJDg0hm4,6503
@@ -10299,7 +10299,7 @@ simo/fleet/templates/fleet/controllers_info/button.md,sha256=GIuxqG617174NEtpPeC
10299
10299
  simo/generic/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
10300
10300
  simo/generic/app_widgets.py,sha256=E_pnpA1hxMIhenRCrHoQ5cik06jm2BAHCkl_eo-OudU,1264
10301
10301
  simo/generic/base_types.py,sha256=djymox_boXTHX1BTTCLXrCH7ED-uAsV_idhaDOc3OLI,409
10302
- simo/generic/controllers.py,sha256=bOlkkyjWmK3Pm5XEpQKKx7_MLPHv62aC4LyY2JT3EZs,58251
10302
+ simo/generic/controllers.py,sha256=gojeCP_vSyLTaP4h56LqqLDykny5lEG-nLclieyVrRg,58292
10303
10303
  simo/generic/forms.py,sha256=IAfDtmEk1-CP0JBoetOD_ahLm64nK41GOUXjmbUzNtY,29550
10304
10304
  simo/generic/gateways.py,sha256=cc_q_g2HsI2_rWmr8yZ3spnMPwsgoYS5ApWRimc11wU,18831
10305
10305
  simo/generic/models.py,sha256=92TACMhJHadAg0TT9GnARO_R3_Sl6i-GGjhG_x7YdFI,7391
@@ -10308,9 +10308,9 @@ simo/generic/socket_consumers.py,sha256=NfTQGYtVAc864IoogZRxf_0xpDPM0eMCWn0SlKA5
10308
10308
  simo/generic/__pycache__/__init__.cpython-38.pyc,sha256=mLu54WS9KIl-pHwVCBKpsDFIlOqml--JsOVzAUHg6cU,161
10309
10309
  simo/generic/__pycache__/app_widgets.cpython-38.pyc,sha256=0IoKRG9n1tkNRRkrqAeOQwWBPd_33u98JBcVtMVVCio,2374
10310
10310
  simo/generic/__pycache__/base_types.cpython-38.pyc,sha256=ptw6axyAqemZA35oa6vzr7EihzvbhW9w7Y-G6kfDedU,555
10311
- simo/generic/__pycache__/controllers.cpython-38.pyc,sha256=9VD3YsKyKWnw2LBCV1rRJ0ZVWG9RZd8ubecvAxJVHSk,36463
10311
+ simo/generic/__pycache__/controllers.cpython-38.pyc,sha256=uz65S_tJDZ0KXe_gx9ScfZA5UFwJYjbvSzjg0GHRW7I,36450
10312
10312
  simo/generic/__pycache__/forms.cpython-38.pyc,sha256=v85YEQR9l0QyUgYW_uTKr5qFCjp8TYOAAnfYQvYActI,21227
10313
- simo/generic/__pycache__/gateways.cpython-38.pyc,sha256=B0fvNggaazKVccSshd0ZFgaBQ79l30CuXKoa0NdgIxM,13408
10313
+ simo/generic/__pycache__/gateways.cpython-38.pyc,sha256=8NbsLVDww3Ov5DKF--LKgyrgnrn8yVcKrY21cdvV5aA,13979
10314
10314
  simo/generic/__pycache__/models.cpython-38.pyc,sha256=PzlZsM1jxo3FVb7QDm3bny8UFwTsGrMQe4mj4tJ06eQ,5675
10315
10315
  simo/generic/__pycache__/routing.cpython-38.pyc,sha256=xtxTUTBTdivzFyA5Wh7k-hUj1WDO_FiRq6HYXdbr9Ks,382
10316
10316
  simo/generic/__pycache__/socket_consumers.cpython-38.pyc,sha256=piFHces0J9QuXu_CNBCQCYjoZEeoaxyVjLfJ9KaR8C8,1898
@@ -10424,12 +10424,12 @@ simo/users/__pycache__/auth_backends.cpython-38.pyc,sha256=MuOieBIXt6lrDx83-UQtd
10424
10424
  simo/users/__pycache__/auto_urls.cpython-38.pyc,sha256=K-3sz2h-cEitoflSmZk1t0eUg5mQMMGLNZFREVwG7_o,430
10425
10425
  simo/users/__pycache__/dynamic_settings.cpython-38.pyc,sha256=6F8JBjZkHykySnmZjNEzjS0ijbmPdcp9yUAZ5kqq_Fo,864
10426
10426
  simo/users/__pycache__/middleware.cpython-38.pyc,sha256=Tj4nVEAvxEW3xA63fBRiJWRJpz_M848ZOqbHioc_IPE,1149
10427
- simo/users/__pycache__/models.cpython-38.pyc,sha256=mGTfDKyCDfLc4_KDzi8446eCJnL7lqj-NKkrMVv00zk,18319
10427
+ simo/users/__pycache__/models.cpython-38.pyc,sha256=uZ_rkg8_aQsX94HPssGrtZsuxjIrklPnyD46-uPYjFA,18342
10428
10428
  simo/users/__pycache__/permissions.cpython-38.pyc,sha256=ez5NxoL_JUeeH6GsKhvFreuA3FCBgGf9floSypdXUtM,633
10429
10429
  simo/users/__pycache__/serializers.cpython-38.pyc,sha256=tZzdmCdSnqekAgRl0kyq-msm7QfUA0J_IipfrysAMRM,3477
10430
10430
  simo/users/__pycache__/sso_urls.cpython-38.pyc,sha256=uAwDozpOmrhUald-8tOHANILXkH7-TI8fNYXOtPkSY8,402
10431
10431
  simo/users/__pycache__/sso_views.cpython-38.pyc,sha256=sHEoxLOac3U3Epmhm197huFnW_J3gGCDZSji57itijU,3969
10432
- simo/users/__pycache__/tasks.cpython-38.pyc,sha256=xq-XaJ5gzkpVVZRWe0bvGdA31Eh_WS2rKSY62p4eY5E,1111
10432
+ simo/users/__pycache__/tasks.cpython-38.pyc,sha256=XLMKt3suT7BlcXrJZoH9ZIhhtBuqyiW4lsOB9IbBkko,1225
10433
10433
  simo/users/__pycache__/utils.cpython-38.pyc,sha256=CGaRBk-y9A-8lWWY4bYkI9faAziO0pVYdr5BJNmqbUg,1600
10434
10434
  simo/users/__pycache__/views.cpython-38.pyc,sha256=AXuUnVYRD0ai4FSFDp4qJwryukujAoN6LD3oIj-Cv3o,2426
10435
10435
  simo/users/migrations/0001_initial.py,sha256=5ojkoyTndS2kW5guKK9G9WntXOqbJMyyT_8s_fcJogc,7072
@@ -10502,9 +10502,9 @@ simo/users/templates/invitations/expired_msg.html,sha256=47DEQpj8HBSa-_TImW-5JCe
10502
10502
  simo/users/templates/invitations/expired_suggestion.html,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
10503
10503
  simo/users/templates/invitations/taken_msg.html,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
10504
10504
  simo/users/templates/invitations/taken_suggestion.html,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
10505
- simo-2.1.9.dist-info/LICENSE.md,sha256=M7wm1EmMGDtwPRdg7kW4d00h1uAXjKOT3HFScYQMeiE,34916
10506
- simo-2.1.9.dist-info/METADATA,sha256=6jypPzyCrJ4lr1ajBXmhhD70eNrM4pNfPtDT5bwvtRs,1847
10507
- simo-2.1.9.dist-info/WHEEL,sha256=mguMlWGMX-VHnMpKOjjQidIo1ssRlCFu4a4mBpz1s2M,91
10508
- simo-2.1.9.dist-info/entry_points.txt,sha256=SJBxiDpH7noO0STxVI_eRIsGR-nLgdXXeqCDe8cXlbM,65
10509
- simo-2.1.9.dist-info/top_level.txt,sha256=GmS1hrAbpVqn9OWZh6UX82eIOdRLgYA82RG9fe8v4Rs,5
10510
- simo-2.1.9.dist-info/RECORD,,
10505
+ simo-2.1.11.dist-info/LICENSE.md,sha256=M7wm1EmMGDtwPRdg7kW4d00h1uAXjKOT3HFScYQMeiE,34916
10506
+ simo-2.1.11.dist-info/METADATA,sha256=HDk6p8uzyWCH4EGCjs2pv2FMohwtR7lTrz4jhNnAcU0,1848
10507
+ simo-2.1.11.dist-info/WHEEL,sha256=Z4pYXqR_rTB7OWNDYFOm1qRk0RX6GFP2o8LgvP453Hk,91
10508
+ simo-2.1.11.dist-info/entry_points.txt,sha256=SJBxiDpH7noO0STxVI_eRIsGR-nLgdXXeqCDe8cXlbM,65
10509
+ simo-2.1.11.dist-info/top_level.txt,sha256=GmS1hrAbpVqn9OWZh6UX82eIOdRLgYA82RG9fe8v4Rs,5
10510
+ simo-2.1.11.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (70.1.1)
2
+ Generator: setuptools (70.3.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5