python3-cyberfusion-queue-support 3.3.2__tar.gz → 4.0__tar.gz

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.
Files changed (58) hide show
  1. {python3_cyberfusion_queue_support-3.3.2 → python3_cyberfusion_queue_support-4.0}/PKG-INFO +5 -5
  2. {python3_cyberfusion_queue_support-3.3.2 → python3_cyberfusion_queue_support-4.0}/pyproject.toml +5 -5
  3. {python3_cyberfusion_queue_support-3.3.2 → python3_cyberfusion_queue_support-4.0}/src/cyberfusion/QueueSupport/__init__.py +13 -2
  4. {python3_cyberfusion_queue_support-3.3.2 → python3_cyberfusion_queue_support-4.0}/src/cyberfusion/QueueSupport/database.py +6 -0
  5. {python3_cyberfusion_queue_support-3.3.2 → python3_cyberfusion_queue_support-4.0}/src/cyberfusion/QueueSupport/items/mkdir.py +0 -2
  6. python3_cyberfusion_queue_support-4.0/src/cyberfusion/QueueSupport/migrations/versions/19e77347a42d_queue_items_add_started_ended__at.py +29 -0
  7. {python3_cyberfusion_queue_support-3.3.2 → python3_cyberfusion_queue_support-4.0}/src/python3_cyberfusion_queue_support.egg-info/PKG-INFO +5 -5
  8. {python3_cyberfusion_queue_support-3.3.2 → python3_cyberfusion_queue_support-4.0}/src/python3_cyberfusion_queue_support.egg-info/SOURCES.txt +1 -0
  9. python3_cyberfusion_queue_support-4.0/src/python3_cyberfusion_queue_support.egg-info/requires.txt +5 -0
  10. python3_cyberfusion_queue_support-3.3.2/src/python3_cyberfusion_queue_support.egg-info/requires.txt +0 -5
  11. {python3_cyberfusion_queue_support-3.3.2 → python3_cyberfusion_queue_support-4.0}/README.md +0 -0
  12. {python3_cyberfusion_queue_support-3.3.2 → python3_cyberfusion_queue_support-4.0}/setup.cfg +0 -0
  13. {python3_cyberfusion_queue_support-3.3.2 → python3_cyberfusion_queue_support-4.0}/src/cyberfusion/QueueSupport/encoders.py +0 -0
  14. {python3_cyberfusion_queue_support-3.3.2 → python3_cyberfusion_queue_support-4.0}/src/cyberfusion/QueueSupport/enums.py +0 -0
  15. {python3_cyberfusion_queue_support-3.3.2 → python3_cyberfusion_queue_support-4.0}/src/cyberfusion/QueueSupport/exceptions/__init__.py +0 -0
  16. {python3_cyberfusion_queue_support-3.3.2 → python3_cyberfusion_queue_support-4.0}/src/cyberfusion/QueueSupport/interfaces.py +0 -0
  17. {python3_cyberfusion_queue_support-3.3.2 → python3_cyberfusion_queue_support-4.0}/src/cyberfusion/QueueSupport/items/__init__.py +0 -0
  18. {python3_cyberfusion_queue_support-3.3.2 → python3_cyberfusion_queue_support-4.0}/src/cyberfusion/QueueSupport/items/chmod.py +0 -0
  19. {python3_cyberfusion_queue_support-3.3.2 → python3_cyberfusion_queue_support-4.0}/src/cyberfusion/QueueSupport/items/chown.py +0 -0
  20. {python3_cyberfusion_queue_support-3.3.2 → python3_cyberfusion_queue_support-4.0}/src/cyberfusion/QueueSupport/items/command.py +0 -0
  21. {python3_cyberfusion_queue_support-3.3.2 → python3_cyberfusion_queue_support-4.0}/src/cyberfusion/QueueSupport/items/copy.py +0 -0
  22. {python3_cyberfusion_queue_support-3.3.2 → python3_cyberfusion_queue_support-4.0}/src/cyberfusion/QueueSupport/items/database_create.py +0 -0
  23. {python3_cyberfusion_queue_support-3.3.2 → python3_cyberfusion_queue_support-4.0}/src/cyberfusion/QueueSupport/items/database_drop.py +0 -0
  24. {python3_cyberfusion_queue_support-3.3.2 → python3_cyberfusion_queue_support-4.0}/src/cyberfusion/QueueSupport/items/database_user_drop.py +0 -0
  25. {python3_cyberfusion_queue_support-3.3.2 → python3_cyberfusion_queue_support-4.0}/src/cyberfusion/QueueSupport/items/database_user_ensure_state.py +0 -0
  26. {python3_cyberfusion_queue_support-3.3.2 → python3_cyberfusion_queue_support-4.0}/src/cyberfusion/QueueSupport/items/database_user_grant_grant.py +0 -0
  27. {python3_cyberfusion_queue_support-3.3.2 → python3_cyberfusion_queue_support-4.0}/src/cyberfusion/QueueSupport/items/database_user_grant_revoke.py +0 -0
  28. {python3_cyberfusion_queue_support-3.3.2 → python3_cyberfusion_queue_support-4.0}/src/cyberfusion/QueueSupport/items/move.py +0 -0
  29. {python3_cyberfusion_queue_support-3.3.2 → python3_cyberfusion_queue_support-4.0}/src/cyberfusion/QueueSupport/items/rmtree.py +0 -0
  30. {python3_cyberfusion_queue_support-3.3.2 → python3_cyberfusion_queue_support-4.0}/src/cyberfusion/QueueSupport/items/systemd_daemon_reload.py +0 -0
  31. {python3_cyberfusion_queue_support-3.3.2 → python3_cyberfusion_queue_support-4.0}/src/cyberfusion/QueueSupport/items/systemd_tmp_files_create.py +0 -0
  32. {python3_cyberfusion_queue_support-3.3.2 → python3_cyberfusion_queue_support-4.0}/src/cyberfusion/QueueSupport/items/systemd_unit_disable.py +0 -0
  33. {python3_cyberfusion_queue_support-3.3.2 → python3_cyberfusion_queue_support-4.0}/src/cyberfusion/QueueSupport/items/systemd_unit_enable.py +0 -0
  34. {python3_cyberfusion_queue_support-3.3.2 → python3_cyberfusion_queue_support-4.0}/src/cyberfusion/QueueSupport/items/systemd_unit_reload.py +0 -0
  35. {python3_cyberfusion_queue_support-3.3.2 → python3_cyberfusion_queue_support-4.0}/src/cyberfusion/QueueSupport/items/systemd_unit_restart.py +0 -0
  36. {python3_cyberfusion_queue_support-3.3.2 → python3_cyberfusion_queue_support-4.0}/src/cyberfusion/QueueSupport/items/systemd_unit_start.py +0 -0
  37. {python3_cyberfusion_queue_support-3.3.2 → python3_cyberfusion_queue_support-4.0}/src/cyberfusion/QueueSupport/items/systemd_unit_stop.py +0 -0
  38. {python3_cyberfusion_queue_support-3.3.2 → python3_cyberfusion_queue_support-4.0}/src/cyberfusion/QueueSupport/items/unlink.py +0 -0
  39. {python3_cyberfusion_queue_support-3.3.2 → python3_cyberfusion_queue_support-4.0}/src/cyberfusion/QueueSupport/migrations/__init__.py +0 -0
  40. {python3_cyberfusion_queue_support-3.3.2 → python3_cyberfusion_queue_support-4.0}/src/cyberfusion/QueueSupport/migrations/env.py +0 -0
  41. {python3_cyberfusion_queue_support-3.3.2 → python3_cyberfusion_queue_support-4.0}/src/cyberfusion/QueueSupport/migrations/versions/03d4e411c575_add_fail_silently.py +0 -0
  42. {python3_cyberfusion_queue_support-3.3.2 → python3_cyberfusion_queue_support-4.0}/src/cyberfusion/QueueSupport/migrations/versions/2f4316506856_add_cascade_deletes.py +0 -0
  43. {python3_cyberfusion_queue_support-3.3.2 → python3_cyberfusion_queue_support-4.0}/src/cyberfusion/QueueSupport/migrations/versions/52d1b17abcd0_add_status.py +0 -0
  44. {python3_cyberfusion_queue_support-3.3.2 → python3_cyberfusion_queue_support-4.0}/src/cyberfusion/QueueSupport/migrations/versions/571e55ab5ed5_initial_migration.py +0 -0
  45. {python3_cyberfusion_queue_support-3.3.2 → python3_cyberfusion_queue_support-4.0}/src/cyberfusion/QueueSupport/migrations/versions/8023b9eecdd1_add_traceback_to_queue_items.py +0 -0
  46. {python3_cyberfusion_queue_support-3.3.2 → python3_cyberfusion_queue_support-4.0}/src/cyberfusion/QueueSupport/migrations/versions/8406a0af7394_set_status_on_existing_queue_processes.py +0 -0
  47. {python3_cyberfusion_queue_support-3.3.2 → python3_cyberfusion_queue_support-4.0}/src/cyberfusion/QueueSupport/migrations/versions/93c79cb2baba_add_indexes.py +0 -0
  48. {python3_cyberfusion_queue_support-3.3.2 → python3_cyberfusion_queue_support-4.0}/src/cyberfusion/QueueSupport/migrations/versions/9ae29b5db790_add_string_to_queue_item_outcomes.py +0 -0
  49. {python3_cyberfusion_queue_support-3.3.2 → python3_cyberfusion_queue_support-4.0}/src/cyberfusion/QueueSupport/migrations/versions/__init__.py +0 -0
  50. {python3_cyberfusion_queue_support-3.3.2 → python3_cyberfusion_queue_support-4.0}/src/cyberfusion/QueueSupport/outcomes.py +0 -0
  51. {python3_cyberfusion_queue_support-3.3.2 → python3_cyberfusion_queue_support-4.0}/src/cyberfusion/QueueSupport/scripts/__init__.py +0 -0
  52. {python3_cyberfusion_queue_support-3.3.2 → python3_cyberfusion_queue_support-4.0}/src/cyberfusion/QueueSupport/scripts/purge_queues.py +0 -0
  53. {python3_cyberfusion_queue_support-3.3.2 → python3_cyberfusion_queue_support-4.0}/src/cyberfusion/QueueSupport/sentinels.py +0 -0
  54. {python3_cyberfusion_queue_support-3.3.2 → python3_cyberfusion_queue_support-4.0}/src/cyberfusion/QueueSupport/settings.py +0 -0
  55. {python3_cyberfusion_queue_support-3.3.2 → python3_cyberfusion_queue_support-4.0}/src/cyberfusion/QueueSupport/utilities.py +0 -0
  56. {python3_cyberfusion_queue_support-3.3.2 → python3_cyberfusion_queue_support-4.0}/src/python3_cyberfusion_queue_support.egg-info/dependency_links.txt +0 -0
  57. {python3_cyberfusion_queue_support-3.3.2 → python3_cyberfusion_queue_support-4.0}/src/python3_cyberfusion_queue_support.egg-info/entry_points.txt +0 -0
  58. {python3_cyberfusion_queue_support-3.3.2 → python3_cyberfusion_queue_support-4.0}/src/python3_cyberfusion_queue_support.egg-info/top_level.txt +0 -0
@@ -1,15 +1,15 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: python3-cyberfusion-queue-support
3
- Version: 3.3.2
3
+ Version: 4.0
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
7
7
  Description-Content-Type: text/markdown
8
8
  Requires-Dist: python3-cyberfusion-systemd-support~=2.2
9
- Requires-Dist: python3-cyberfusion-database-support~=3.2
10
- Requires-Dist: alembic==1.13.2
11
- Requires-Dist: SQLAlchemy==2.0.40
12
- Requires-Dist: pydantic-settings==2.8.1
9
+ Requires-Dist: python3-cyberfusion-database-support~=3.3.0
10
+ Requires-Dist: alembic==1.18.4
11
+ Requires-Dist: SQLAlchemy==2.0.46
12
+ Requires-Dist: pydantic-settings==2.13.1
13
13
 
14
14
  # python3-cyberfusion-queue-support
15
15
 
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "python3-cyberfusion-queue-support"
7
- version = "3.3.2"
7
+ version = "4.0"
8
8
  description = "Library to queue actions."
9
9
  readme = "README.md"
10
10
  authors = [
@@ -12,10 +12,10 @@ authors = [
12
12
  ]
13
13
  dependencies = [
14
14
  "python3-cyberfusion-systemd-support~=2.2",
15
- "python3-cyberfusion-database-support~=3.2",
16
- "alembic==1.13.2",
17
- "SQLAlchemy==2.0.40",
18
- "pydantic-settings==2.8.1",
15
+ "python3-cyberfusion-database-support~=3.3.0",
16
+ "alembic==1.18.4",
17
+ "SQLAlchemy==2.0.46",
18
+ "pydantic-settings==2.13.1",
19
19
  ]
20
20
 
21
21
  [project.urls]
@@ -16,6 +16,7 @@ from cyberfusion.QueueSupport.enums import QueueProcessStatus
16
16
 
17
17
  from cyberfusion.QueueSupport.interfaces import OutcomeInterface
18
18
  from cyberfusion.QueueSupport.items import _Item
19
+ from datetime import datetime, UTC
19
20
 
20
21
  logger = logging.getLogger(__name__)
21
22
 
@@ -72,6 +73,8 @@ class Queue:
72
73
  deduplicated=deduplicated,
73
74
  attributes=item,
74
75
  traceback=None,
76
+ started_at=None,
77
+ ended_at=None,
75
78
  )
76
79
 
77
80
  self._database_session.add(object_)
@@ -95,6 +98,10 @@ class Queue:
95
98
  for item_mapping in self.item_mappings
96
99
  if not item_mapping.database_object.deduplicated
97
100
  ]:
101
+ started_at = datetime.now(UTC)
102
+
103
+ item_mapping.database_object.started_at = started_at
104
+
98
105
  logger.debug(
99
106
  "Processing item with ID '%s'", item_mapping.database_object.id
100
107
  )
@@ -123,14 +130,18 @@ class Queue:
123
130
 
124
131
  item_mapping.database_object.traceback = traceback.format_exc()
125
132
 
126
- self._database_session.add(item_mapping.database_object)
127
-
128
133
  if item_mapping.database_object.fail_silently:
129
134
  process_object.status = QueueProcessStatus.WARNING
130
135
  else:
131
136
  process_object.status = QueueProcessStatus.FATAL
132
137
 
133
138
  break
139
+ finally:
140
+ ended_at = datetime.now(UTC)
141
+
142
+ item_mapping.database_object.ended_at = ended_at
143
+
144
+ self._database_session.add(item_mapping.database_object)
134
145
 
135
146
  outcomes.extend(item_outcomes)
136
147
 
@@ -155,6 +155,12 @@ class QueueItem(BaseModel):
155
155
  traceback: Mapped[Optional[str]] = mapped_column(
156
156
  String(),
157
157
  )
158
+ started_at: Mapped[Optional[datetime]] = mapped_column(
159
+ DateTime,
160
+ )
161
+ ended_at: Mapped[Optional[datetime]] = mapped_column(
162
+ DateTime,
163
+ )
158
164
 
159
165
  queue: Mapped["Queue"] = relationship(
160
166
  "Queue", back_populates="queue_items", uselist=False
@@ -22,14 +22,12 @@ class MkdirItem(_Item):
22
22
  self,
23
23
  *,
24
24
  path: str,
25
- recursively: bool = False,
26
25
  reference: Optional[str] = None,
27
26
  hide_outcomes: bool = False,
28
27
  fail_silently: bool = False,
29
28
  ) -> None:
30
29
  """Set attributes."""
31
30
  self.path = path
32
- self.recursively = recursively
33
31
  self._reference = reference
34
32
  self._hide_outcomes = hide_outcomes
35
33
  self._fail_silently = fail_silently
@@ -0,0 +1,29 @@
1
+ """Queue items: add {started,ended}_at
2
+
3
+ Revision ID: 19e77347a42d
4
+ Revises: 93c79cb2baba
5
+ Create Date: 2026-02-20 13:32:09.803951
6
+
7
+ """
8
+
9
+ from alembic import op
10
+ import sqlalchemy as sa
11
+
12
+
13
+ # revision identifiers, used by Alembic.
14
+ revision = "19e77347a42d"
15
+ down_revision = "93c79cb2baba"
16
+ branch_labels = None
17
+ depends_on = None
18
+
19
+
20
+ def upgrade() -> None:
21
+ with op.batch_alter_table("queue_items", schema=None) as batch_op:
22
+ batch_op.add_column(sa.Column("started_at", sa.DateTime(), nullable=True))
23
+ batch_op.add_column(sa.Column("ended_at", sa.DateTime(), nullable=True))
24
+
25
+
26
+ def downgrade() -> None:
27
+ with op.batch_alter_table("queue_items", schema=None) as batch_op:
28
+ batch_op.drop_column("ended_at")
29
+ batch_op.drop_column("started_at")
@@ -1,15 +1,15 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: python3-cyberfusion-queue-support
3
- Version: 3.3.2
3
+ Version: 4.0
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
7
7
  Description-Content-Type: text/markdown
8
8
  Requires-Dist: python3-cyberfusion-systemd-support~=2.2
9
- Requires-Dist: python3-cyberfusion-database-support~=3.2
10
- Requires-Dist: alembic==1.13.2
11
- Requires-Dist: SQLAlchemy==2.0.40
12
- Requires-Dist: pydantic-settings==2.8.1
9
+ Requires-Dist: python3-cyberfusion-database-support~=3.3.0
10
+ Requires-Dist: alembic==1.18.4
11
+ Requires-Dist: SQLAlchemy==2.0.46
12
+ Requires-Dist: pydantic-settings==2.13.1
13
13
 
14
14
  # python3-cyberfusion-queue-support
15
15
 
@@ -37,6 +37,7 @@ src/cyberfusion/QueueSupport/items/unlink.py
37
37
  src/cyberfusion/QueueSupport/migrations/__init__.py
38
38
  src/cyberfusion/QueueSupport/migrations/env.py
39
39
  src/cyberfusion/QueueSupport/migrations/versions/03d4e411c575_add_fail_silently.py
40
+ src/cyberfusion/QueueSupport/migrations/versions/19e77347a42d_queue_items_add_started_ended__at.py
40
41
  src/cyberfusion/QueueSupport/migrations/versions/2f4316506856_add_cascade_deletes.py
41
42
  src/cyberfusion/QueueSupport/migrations/versions/52d1b17abcd0_add_status.py
42
43
  src/cyberfusion/QueueSupport/migrations/versions/571e55ab5ed5_initial_migration.py
@@ -0,0 +1,5 @@
1
+ python3-cyberfusion-systemd-support~=2.2
2
+ python3-cyberfusion-database-support~=3.3.0
3
+ alembic==1.18.4
4
+ SQLAlchemy==2.0.46
5
+ pydantic-settings==2.13.1
@@ -1,5 +0,0 @@
1
- python3-cyberfusion-systemd-support~=2.2
2
- python3-cyberfusion-database-support~=3.2
3
- alembic==1.13.2
4
- SQLAlchemy==2.0.40
5
- pydantic-settings==2.8.1