python3-cyberfusion-queue-support 2.6.4__py3-none-any.whl → 2.7__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.
@@ -1,7 +1,6 @@
1
1
  """Classes for queue."""
2
2
 
3
3
  import logging
4
- from copy import copy
5
4
  from dataclasses import dataclass
6
5
  from typing import List
7
6
  import traceback
@@ -62,18 +61,13 @@ class Queue:
62
61
  else:
63
62
  deduplicated = True
64
63
 
65
- item_dict = copy(item.__dict__)
66
-
67
- del item_dict["_reference"]
68
- del item_dict["_hide_outcomes"]
69
-
70
64
  object_ = QueueItem(
71
65
  queue=self.queue_database_object,
72
66
  type=item.__class__.__name__,
73
67
  reference=item.reference,
74
68
  hide_outcomes=item.hide_outcomes,
75
69
  deduplicated=deduplicated,
76
- attributes=item_dict,
70
+ attributes=item,
77
71
  traceback=None,
78
72
  )
79
73
 
@@ -141,7 +135,7 @@ class Queue:
141
135
  queue_item=item_mapping.database_object,
142
136
  queue_process=process_object,
143
137
  type=outcome.__class__.__name__,
144
- attributes=outcome.__dict__,
138
+ attributes=outcome,
145
139
  string=str(outcome),
146
140
  )
147
141
  )
@@ -1,3 +1,5 @@
1
+ import json
2
+
1
3
  from alembic.config import Config
2
4
  import os
3
5
  import functools
@@ -13,7 +15,7 @@ from sqlalchemy.ext.declarative import declarative_base
13
15
  from sqlalchemy import event
14
16
  from sqlalchemy.types import JSON
15
17
 
16
- from cyberfusion.QueueSupport.encoders import json_serialize
18
+ from cyberfusion.QueueSupport.encoders import CustomEncoder
17
19
  from cyberfusion.QueueSupport.settings import settings
18
20
 
19
21
 
@@ -45,7 +47,7 @@ def run_migrations() -> None:
45
47
  def make_database_session() -> Session:
46
48
  engine = create_engine(
47
49
  settings.database_path,
48
- json_serializer=json_serialize,
50
+ json_serializer=lambda obj: json.dumps(obj, cls=CustomEncoder),
49
51
  )
50
52
 
51
53
  event.listen(engine, "connect", set_sqlite_pragma)
@@ -1,21 +1,42 @@
1
- import json
2
1
  from json import JSONEncoder
3
2
  from typing import Any
4
3
 
4
+ from cyberfusion.DatabaseSupport.database_user_grants import DatabaseUserGrant
5
+ from cyberfusion.DatabaseSupport.database_users import DatabaseUser
6
+ from cyberfusion.DatabaseSupport.databases import Database
5
7
  from cyberfusion.SystemdSupport import Unit
6
8
 
9
+ from cyberfusion.QueueSupport.outcomes import OutcomeInterface
10
+ from cyberfusion.QueueSupport.items import _Item
7
11
  from cyberfusion.QueueSupport.sentinels import UNKNOWN
8
12
 
9
13
 
10
14
  class CustomEncoder(JSONEncoder):
11
15
  def default(self, o: Any) -> Any:
12
- if isinstance(o, Unit):
16
+ if isinstance(o, _Item):
17
+ return {
18
+ key: value for key, value in vars(o).items() if not key.startswith("_")
19
+ }
20
+ elif isinstance(o, OutcomeInterface):
21
+ return vars(o)
22
+ elif isinstance(o, Unit):
13
23
  return {"name": o.name}
24
+ elif isinstance(o, Database):
25
+ return {"name": o.name, "server_software_name": o.server_software_name}
26
+ elif isinstance(o, DatabaseUser):
27
+ return {
28
+ "name": o.name,
29
+ "server_software_name": o.server_software_name,
30
+ "host": o.host,
31
+ }
32
+ elif isinstance(o, DatabaseUserGrant):
33
+ return {
34
+ "database": o.database,
35
+ "database_user": o.database_user,
36
+ "privileges_name": o.privilege_names,
37
+ "table_name": o.table_name,
38
+ }
14
39
  elif o == UNKNOWN:
15
40
  return "unknown"
16
41
 
17
42
  return super().default(o)
18
-
19
-
20
- def json_serialize(obj: Any) -> str:
21
- return json.dumps(obj, cls=CustomEncoder)
@@ -31,7 +31,7 @@ class DatabaseUserDropItem(_Item):
31
31
  """Set attributes."""
32
32
  self.server_software_name = server_software_name
33
33
  self.name = name
34
- self._host = host
34
+ self.host = host
35
35
  self._reference = reference
36
36
  self._hide_outcomes = hide_outcomes
37
37
 
@@ -43,7 +43,7 @@ class DatabaseUserDropItem(_Item):
43
43
  ),
44
44
  name=self.name,
45
45
  server_software_name=self.server_software_name,
46
- host=self._host,
46
+ host=self.host,
47
47
  )
48
48
 
49
49
  @property
@@ -77,5 +77,5 @@ class DatabaseUserDropItem(_Item):
77
77
  return (
78
78
  other.server_software_name == self.server_software_name
79
79
  and other.name == self.name
80
- and other._host == self._host
80
+ and other.host == self.host
81
81
  )
@@ -34,7 +34,7 @@ class DatabaseUserEnsureStateItem(_Item):
34
34
  self.server_software_name = server_software_name
35
35
  self.name = name
36
36
  self.password = password
37
- self._host = host
37
+ self.host = host
38
38
  self._reference = reference
39
39
  self._hide_outcomes = hide_outcomes
40
40
 
@@ -47,7 +47,7 @@ class DatabaseUserEnsureStateItem(_Item):
47
47
  name=self.name,
48
48
  server_software_name=self.server_software_name,
49
49
  password=self.password,
50
- host=self._host,
50
+ host=self.host,
51
51
  )
52
52
 
53
53
  @property
@@ -95,6 +95,6 @@ class DatabaseUserEnsureStateItem(_Item):
95
95
  return (
96
96
  other.server_software_name == self.server_software_name
97
97
  and other.name == self.name
98
- and other._host == self._host
98
+ and other.host == self.host
99
99
  and other.password == self.password
100
100
  )
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: python3-cyberfusion-queue-support
3
- Version: 2.6.4
3
+ Version: 2.7
4
4
  Summary: Library to queue actions.
5
5
  Author-email: Cyberfusion <support@cyberfusion.io>
6
6
  Project-URL: Source, https://github.com/CyberfusionIO/python3-cyberfusion-queue-support
@@ -1,6 +1,6 @@
1
- cyberfusion/QueueSupport/__init__.py,sha256=M8p5MMMrnnmPcahALPN41S7DO8oSj4e5axbX6k0rzv4,4499
2
- cyberfusion/QueueSupport/database.py,sha256=VlQX3Vtq5J3dTTur2vgoi-4DrMDBHIea0SjJEmo9PAA,4136
3
- cyberfusion/QueueSupport/encoders.py,sha256=_xv2OZrMqTwLd5LBtBpq97vehPgpB36iIngEGU_8azw,483
1
+ cyberfusion/QueueSupport/__init__.py,sha256=1HItOphSXe4sP6yJT_15a3yDke1nzioUZ7Q8MuCQfUw,4345
2
+ cyberfusion/QueueSupport/database.py,sha256=-8IOvsoDM1R5oG48HaG7qsM8O_lAbXwDkKJE5Ky3LJQ,4180
3
+ cyberfusion/QueueSupport/encoders.py,sha256=SzuMoyr2q3ME8LI_bZtpP76Xg7SP0B4O4uUuywrDwBI,1532
4
4
  cyberfusion/QueueSupport/interfaces.py,sha256=ip8z6cfLFldQCDSec6fK6AIOdxOjIyFykDv4dCHJYSI,943
5
5
  cyberfusion/QueueSupport/outcomes.py,sha256=MjvhjfEu2rACvgZfAsjtmVPOUonuhyVhAuV5HuJDvgI,18903
6
6
  cyberfusion/QueueSupport/sentinels.py,sha256=LwD1BUxDJgY6aJr21cunZKRn5nycqqlNlmJhFKjqUBw,57
@@ -14,8 +14,8 @@ cyberfusion/QueueSupport/items/command.py,sha256=TrBWZEYW9tLJzypDdJH0je8U_P0Pgc0
14
14
  cyberfusion/QueueSupport/items/copy.py,sha256=08vPCIsgrkOH4Ryir8m8CpjT9Y4GL5vPmgWuVosK4q4,3007
15
15
  cyberfusion/QueueSupport/items/database_create.py,sha256=01Z3ULjhzQFjL4PSfvKNZ9pMkjiZb3RIr6WCirbaK6c,1832
16
16
  cyberfusion/QueueSupport/items/database_drop.py,sha256=cnmEL8gZ6ORBL-ylghQAQSq1FOZCtM6O8uwPcnqBI4c,1806
17
- cyberfusion/QueueSupport/items/database_user_drop.py,sha256=8t6M9OxNNp8iINrwsr5kMBbMP4tBMHFi8Wo9S_IYujA,2194
18
- cyberfusion/QueueSupport/items/database_user_ensure_state.py,sha256=t5AklbHWe11TqL2WO4o-Ci8N4NIWX0nFO12n20CbOQk,2940
17
+ cyberfusion/QueueSupport/items/database_user_drop.py,sha256=PmqTVFBVjxPXrnIvlsDMFpYf6iC3l1wcqGY6CW_I4nw,2190
18
+ cyberfusion/QueueSupport/items/database_user_ensure_state.py,sha256=EAxaS2ROBaAim5--Odn2c40hgIawQLRdEKOC0EDhlII,2936
19
19
  cyberfusion/QueueSupport/items/database_user_grant_grant.py,sha256=lEN1qPFeRy0NG5HzjinOxniw8QbrJPNPBfkanbonHBU,3692
20
20
  cyberfusion/QueueSupport/items/database_user_grant_revoke.py,sha256=iK4xIhM5fUhZy3XkZFBpxbv_CtfI34Fb2LW8AGF1DNk,3699
21
21
  cyberfusion/QueueSupport/items/mkdir.py,sha256=9Zzl72oGTHcRIz_vJd5r1Ty6nyasFwEqtGKa9xx05aY,1479
@@ -36,8 +36,8 @@ cyberfusion/QueueSupport/migrations/versions/571e55ab5ed5_initial_migration.py,s
36
36
  cyberfusion/QueueSupport/migrations/versions/8023b9eecdd1_add_traceback_to_queue_items.py,sha256=IfwqqHeE6e4iDH3bc6FrOgdBT4w-Kxa2MYv0dzYjEbk,497
37
37
  cyberfusion/QueueSupport/migrations/versions/9ae29b5db790_add_string_to_queue_item_outcomes.py,sha256=CzNJVL5Ia_J5woGsnCRSrlraoaT8YfgZUVOlAWHjb2Y,546
38
38
  cyberfusion/QueueSupport/migrations/versions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
39
- python3_cyberfusion_queue_support-2.6.4.dist-info/METADATA,sha256=_VR05dxSDE5ak4VXFuKQtvRnwFXHV446w1sedceT-y8,4490
40
- python3_cyberfusion_queue_support-2.6.4.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
41
- python3_cyberfusion_queue_support-2.6.4.dist-info/entry_points.txt,sha256=j42nbFWu1jTev4Ca3GhEZlH546t48aqYXnaKP20NWfA,91
42
- python3_cyberfusion_queue_support-2.6.4.dist-info/top_level.txt,sha256=ss011q9S6SL_KIIyq7iujFmIYa0grSjlnInO7cDkeag,12
43
- python3_cyberfusion_queue_support-2.6.4.dist-info/RECORD,,
39
+ python3_cyberfusion_queue_support-2.7.dist-info/METADATA,sha256=jdemnuj86o2WT-NZq30l-q0MnERWJFqSVsFJ2-xCeXY,4488
40
+ python3_cyberfusion_queue_support-2.7.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
41
+ python3_cyberfusion_queue_support-2.7.dist-info/entry_points.txt,sha256=j42nbFWu1jTev4Ca3GhEZlH546t48aqYXnaKP20NWfA,91
42
+ python3_cyberfusion_queue_support-2.7.dist-info/top_level.txt,sha256=ss011q9S6SL_KIIyq7iujFmIYa0grSjlnInO7cDkeag,12
43
+ python3_cyberfusion_queue_support-2.7.dist-info/RECORD,,