python3-cyberfusion-queue-support 3.1__tar.gz → 3.2__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 (56) hide show
  1. {python3_cyberfusion_queue_support-3.1 → python3_cyberfusion_queue_support-3.2}/PKG-INFO +1 -1
  2. {python3_cyberfusion_queue_support-3.1 → python3_cyberfusion_queue_support-3.2}/pyproject.toml +1 -1
  3. {python3_cyberfusion_queue_support-3.1 → python3_cyberfusion_queue_support-3.2}/src/cyberfusion/QueueSupport/exceptions/__init__.py +9 -6
  4. {python3_cyberfusion_queue_support-3.1 → python3_cyberfusion_queue_support-3.2}/src/cyberfusion/QueueSupport/items/mkdir.py +23 -10
  5. {python3_cyberfusion_queue_support-3.1 → python3_cyberfusion_queue_support-3.2}/src/cyberfusion/QueueSupport/outcomes.py +0 -13
  6. {python3_cyberfusion_queue_support-3.1 → python3_cyberfusion_queue_support-3.2}/src/python3_cyberfusion_queue_support.egg-info/PKG-INFO +1 -1
  7. {python3_cyberfusion_queue_support-3.1 → python3_cyberfusion_queue_support-3.2}/README.md +0 -0
  8. {python3_cyberfusion_queue_support-3.1 → python3_cyberfusion_queue_support-3.2}/setup.cfg +0 -0
  9. {python3_cyberfusion_queue_support-3.1 → python3_cyberfusion_queue_support-3.2}/src/cyberfusion/QueueSupport/__init__.py +0 -0
  10. {python3_cyberfusion_queue_support-3.1 → python3_cyberfusion_queue_support-3.2}/src/cyberfusion/QueueSupport/database.py +0 -0
  11. {python3_cyberfusion_queue_support-3.1 → python3_cyberfusion_queue_support-3.2}/src/cyberfusion/QueueSupport/encoders.py +0 -0
  12. {python3_cyberfusion_queue_support-3.1 → python3_cyberfusion_queue_support-3.2}/src/cyberfusion/QueueSupport/enums.py +0 -0
  13. {python3_cyberfusion_queue_support-3.1 → python3_cyberfusion_queue_support-3.2}/src/cyberfusion/QueueSupport/interfaces.py +0 -0
  14. {python3_cyberfusion_queue_support-3.1 → python3_cyberfusion_queue_support-3.2}/src/cyberfusion/QueueSupport/items/__init__.py +0 -0
  15. {python3_cyberfusion_queue_support-3.1 → python3_cyberfusion_queue_support-3.2}/src/cyberfusion/QueueSupport/items/chmod.py +0 -0
  16. {python3_cyberfusion_queue_support-3.1 → python3_cyberfusion_queue_support-3.2}/src/cyberfusion/QueueSupport/items/chown.py +0 -0
  17. {python3_cyberfusion_queue_support-3.1 → python3_cyberfusion_queue_support-3.2}/src/cyberfusion/QueueSupport/items/command.py +0 -0
  18. {python3_cyberfusion_queue_support-3.1 → python3_cyberfusion_queue_support-3.2}/src/cyberfusion/QueueSupport/items/copy.py +0 -0
  19. {python3_cyberfusion_queue_support-3.1 → python3_cyberfusion_queue_support-3.2}/src/cyberfusion/QueueSupport/items/database_create.py +0 -0
  20. {python3_cyberfusion_queue_support-3.1 → python3_cyberfusion_queue_support-3.2}/src/cyberfusion/QueueSupport/items/database_drop.py +0 -0
  21. {python3_cyberfusion_queue_support-3.1 → python3_cyberfusion_queue_support-3.2}/src/cyberfusion/QueueSupport/items/database_user_drop.py +0 -0
  22. {python3_cyberfusion_queue_support-3.1 → python3_cyberfusion_queue_support-3.2}/src/cyberfusion/QueueSupport/items/database_user_ensure_state.py +0 -0
  23. {python3_cyberfusion_queue_support-3.1 → python3_cyberfusion_queue_support-3.2}/src/cyberfusion/QueueSupport/items/database_user_grant_grant.py +0 -0
  24. {python3_cyberfusion_queue_support-3.1 → python3_cyberfusion_queue_support-3.2}/src/cyberfusion/QueueSupport/items/database_user_grant_revoke.py +0 -0
  25. {python3_cyberfusion_queue_support-3.1 → python3_cyberfusion_queue_support-3.2}/src/cyberfusion/QueueSupport/items/move.py +0 -0
  26. {python3_cyberfusion_queue_support-3.1 → python3_cyberfusion_queue_support-3.2}/src/cyberfusion/QueueSupport/items/rmtree.py +0 -0
  27. {python3_cyberfusion_queue_support-3.1 → python3_cyberfusion_queue_support-3.2}/src/cyberfusion/QueueSupport/items/systemd_daemon_reload.py +0 -0
  28. {python3_cyberfusion_queue_support-3.1 → python3_cyberfusion_queue_support-3.2}/src/cyberfusion/QueueSupport/items/systemd_tmp_files_create.py +0 -0
  29. {python3_cyberfusion_queue_support-3.1 → python3_cyberfusion_queue_support-3.2}/src/cyberfusion/QueueSupport/items/systemd_unit_disable.py +0 -0
  30. {python3_cyberfusion_queue_support-3.1 → python3_cyberfusion_queue_support-3.2}/src/cyberfusion/QueueSupport/items/systemd_unit_enable.py +0 -0
  31. {python3_cyberfusion_queue_support-3.1 → python3_cyberfusion_queue_support-3.2}/src/cyberfusion/QueueSupport/items/systemd_unit_reload.py +0 -0
  32. {python3_cyberfusion_queue_support-3.1 → python3_cyberfusion_queue_support-3.2}/src/cyberfusion/QueueSupport/items/systemd_unit_restart.py +0 -0
  33. {python3_cyberfusion_queue_support-3.1 → python3_cyberfusion_queue_support-3.2}/src/cyberfusion/QueueSupport/items/systemd_unit_start.py +0 -0
  34. {python3_cyberfusion_queue_support-3.1 → python3_cyberfusion_queue_support-3.2}/src/cyberfusion/QueueSupport/items/systemd_unit_stop.py +0 -0
  35. {python3_cyberfusion_queue_support-3.1 → python3_cyberfusion_queue_support-3.2}/src/cyberfusion/QueueSupport/items/unlink.py +0 -0
  36. {python3_cyberfusion_queue_support-3.1 → python3_cyberfusion_queue_support-3.2}/src/cyberfusion/QueueSupport/migrations/__init__.py +0 -0
  37. {python3_cyberfusion_queue_support-3.1 → python3_cyberfusion_queue_support-3.2}/src/cyberfusion/QueueSupport/migrations/env.py +0 -0
  38. {python3_cyberfusion_queue_support-3.1 → python3_cyberfusion_queue_support-3.2}/src/cyberfusion/QueueSupport/migrations/versions/03d4e411c575_add_fail_silently.py +0 -0
  39. {python3_cyberfusion_queue_support-3.1 → python3_cyberfusion_queue_support-3.2}/src/cyberfusion/QueueSupport/migrations/versions/2f4316506856_add_cascade_deletes.py +0 -0
  40. {python3_cyberfusion_queue_support-3.1 → python3_cyberfusion_queue_support-3.2}/src/cyberfusion/QueueSupport/migrations/versions/52d1b17abcd0_add_status.py +0 -0
  41. {python3_cyberfusion_queue_support-3.1 → python3_cyberfusion_queue_support-3.2}/src/cyberfusion/QueueSupport/migrations/versions/571e55ab5ed5_initial_migration.py +0 -0
  42. {python3_cyberfusion_queue_support-3.1 → python3_cyberfusion_queue_support-3.2}/src/cyberfusion/QueueSupport/migrations/versions/8023b9eecdd1_add_traceback_to_queue_items.py +0 -0
  43. {python3_cyberfusion_queue_support-3.1 → python3_cyberfusion_queue_support-3.2}/src/cyberfusion/QueueSupport/migrations/versions/8406a0af7394_set_status_on_existing_queue_processes.py +0 -0
  44. {python3_cyberfusion_queue_support-3.1 → python3_cyberfusion_queue_support-3.2}/src/cyberfusion/QueueSupport/migrations/versions/93c79cb2baba_add_indexes.py +0 -0
  45. {python3_cyberfusion_queue_support-3.1 → python3_cyberfusion_queue_support-3.2}/src/cyberfusion/QueueSupport/migrations/versions/9ae29b5db790_add_string_to_queue_item_outcomes.py +0 -0
  46. {python3_cyberfusion_queue_support-3.1 → python3_cyberfusion_queue_support-3.2}/src/cyberfusion/QueueSupport/migrations/versions/__init__.py +0 -0
  47. {python3_cyberfusion_queue_support-3.1 → python3_cyberfusion_queue_support-3.2}/src/cyberfusion/QueueSupport/scripts/__init__.py +0 -0
  48. {python3_cyberfusion_queue_support-3.1 → python3_cyberfusion_queue_support-3.2}/src/cyberfusion/QueueSupport/scripts/purge_queues.py +0 -0
  49. {python3_cyberfusion_queue_support-3.1 → python3_cyberfusion_queue_support-3.2}/src/cyberfusion/QueueSupport/sentinels.py +0 -0
  50. {python3_cyberfusion_queue_support-3.1 → python3_cyberfusion_queue_support-3.2}/src/cyberfusion/QueueSupport/settings.py +0 -0
  51. {python3_cyberfusion_queue_support-3.1 → python3_cyberfusion_queue_support-3.2}/src/cyberfusion/QueueSupport/utilities.py +0 -0
  52. {python3_cyberfusion_queue_support-3.1 → python3_cyberfusion_queue_support-3.2}/src/python3_cyberfusion_queue_support.egg-info/SOURCES.txt +0 -0
  53. {python3_cyberfusion_queue_support-3.1 → python3_cyberfusion_queue_support-3.2}/src/python3_cyberfusion_queue_support.egg-info/dependency_links.txt +0 -0
  54. {python3_cyberfusion_queue_support-3.1 → python3_cyberfusion_queue_support-3.2}/src/python3_cyberfusion_queue_support.egg-info/entry_points.txt +0 -0
  55. {python3_cyberfusion_queue_support-3.1 → python3_cyberfusion_queue_support-3.2}/src/python3_cyberfusion_queue_support.egg-info/requires.txt +0 -0
  56. {python3_cyberfusion_queue_support-3.1 → python3_cyberfusion_queue_support-3.2}/src/python3_cyberfusion_queue_support.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: python3-cyberfusion-queue-support
3
- Version: 3.1
3
+ Version: 3.2
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
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "python3-cyberfusion-queue-support"
7
- version = "3.1"
7
+ version = "3.2"
8
8
  description = "Library to queue actions."
9
9
  readme = "README.md"
10
10
  authors = [
@@ -7,27 +7,30 @@ from cyberfusion.QueueSupport.items import _Item
7
7
 
8
8
 
9
9
  class ItemError(Exception):
10
- """Issues with item."""
11
-
12
10
  pass
13
11
 
14
12
 
15
13
  @dataclass
16
14
  class PathIsSymlinkError(ItemError):
17
- """Path is symlink."""
15
+ path: str
18
16
 
17
+
18
+ @dataclass
19
+ class PathIsFileError(ItemError):
19
20
  path: str
20
21
 
21
22
 
22
23
  @dataclass
23
- class CommandQueueFulfillFailed(Exception):
24
- """Error occurred while fulfilling queue, with command item."""
24
+ class ParentNotFoundError(ItemError):
25
+ parent: str
26
+
25
27
 
28
+ @dataclass
29
+ class CommandQueueFulfillFailed(Exception):
26
30
  item: _Item
27
31
  command: List[str]
28
32
  stdout: str
29
33
  stderr: str
30
34
 
31
35
  def __str__(self) -> str:
32
- """Get string representation."""
33
36
  return f"Command:\n\n{self.command}\n\nStdout:\n\n{self.stdout}\n\nStderr:\n\n{self.stderr}"
@@ -2,9 +2,14 @@
2
2
 
3
3
  import logging
4
4
  import os
5
+ from pathlib import Path
5
6
  from typing import List, Optional
6
7
 
7
- from cyberfusion.QueueSupport.exceptions import PathIsSymlinkError
8
+ from cyberfusion.QueueSupport.exceptions import (
9
+ PathIsSymlinkError,
10
+ PathIsFileError,
11
+ ParentNotFoundError,
12
+ )
8
13
  from cyberfusion.QueueSupport.items import _Item
9
14
  from cyberfusion.QueueSupport.outcomes import MkdirItemCreateOutcome
10
15
 
@@ -18,30 +23,38 @@ class MkdirItem(_Item):
18
23
  self,
19
24
  *,
20
25
  path: str,
26
+ recursively: bool = False,
21
27
  reference: Optional[str] = None,
22
28
  hide_outcomes: bool = False,
23
29
  fail_silently: bool = False,
24
30
  ) -> None:
25
31
  """Set attributes."""
26
32
  self.path = path
33
+ self.recursively = recursively
27
34
  self._reference = reference
28
35
  self._hide_outcomes = hide_outcomes
29
36
  self._fail_silently = fail_silently
30
37
 
31
- if os.path.islink(self.path):
32
- raise PathIsSymlinkError(self.path)
33
-
34
38
  @property
35
39
  def outcomes(self) -> List[MkdirItemCreateOutcome]:
36
40
  """Get outcomes of item."""
37
41
  outcomes = []
38
42
 
39
- if not os.path.isdir(self.path):
40
- outcomes.append(
41
- MkdirItemCreateOutcome(
42
- path=self.path,
43
- )
44
- )
43
+ path_elements = list(reversed(Path(self.path).parents))
44
+ path_elements.append(Path(self.path))
45
+
46
+ for path in path_elements:
47
+ if os.path.islink(path):
48
+ raise PathIsSymlinkError(str(path))
49
+ elif os.path.isfile(path):
50
+ raise PathIsFileError(str(path))
51
+ elif os.path.isdir(path):
52
+ continue
53
+
54
+ if not self.recursively and str(path) != self.path:
55
+ raise ParentNotFoundError(str(path))
56
+
57
+ outcomes.append(MkdirItemCreateOutcome(path=str(path)))
45
58
 
46
59
  return outcomes
47
60
 
@@ -483,19 +483,6 @@ class DatabaseUserEnsureStateItemEditPasswordOutcome(OutcomeInterface):
483
483
  if not isinstance(other, DatabaseUserEnsureStateItemEditPasswordOutcome):
484
484
  return False
485
485
 
486
- print(
487
- other.database_user.server_software_name,
488
- other.database_user.name,
489
- other.database_user.password,
490
- other.database_user.host,
491
- )
492
- print(
493
- self.database_user.server_software_name,
494
- self.database_user.name,
495
- self.database_user.password,
496
- self.database_user.host,
497
- )
498
-
499
486
  return (
500
487
  other.database_user.server_software_name
501
488
  == self.database_user.server_software_name
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: python3-cyberfusion-queue-support
3
- Version: 3.1
3
+ Version: 3.2
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