skilleter-modules 0.0.1__tar.gz → 0.0.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 (26) hide show
  1. {skilleter_modules-0.0.1/src/skilleter_modules.egg-info → skilleter_modules-0.0.2}/PKG-INFO +1 -1
  2. {skilleter_modules-0.0.1 → skilleter_modules-0.0.2}/pyproject.toml +1 -1
  3. skilleter_modules-0.0.2/src/skilleter_modules/docker.py +105 -0
  4. {skilleter_modules-0.0.1 → skilleter_modules-0.0.2/src/skilleter_modules.egg-info}/PKG-INFO +1 -1
  5. {skilleter_modules-0.0.1 → skilleter_modules-0.0.2}/src/skilleter_modules.egg-info/SOURCES.txt +1 -0
  6. {skilleter_modules-0.0.1 → skilleter_modules-0.0.2}/LICENSE +0 -0
  7. {skilleter_modules-0.0.1 → skilleter_modules-0.0.2}/README.md +0 -0
  8. {skilleter_modules-0.0.1 → skilleter_modules-0.0.2}/setup.cfg +0 -0
  9. {skilleter_modules-0.0.1 → skilleter_modules-0.0.2}/src/skilleter_modules/__init__.py +0 -0
  10. {skilleter_modules-0.0.1 → skilleter_modules-0.0.2}/src/skilleter_modules/colour.py +0 -0
  11. {skilleter_modules-0.0.1 → skilleter_modules-0.0.2}/src/skilleter_modules/dc_curses.py +0 -0
  12. {skilleter_modules-0.0.1 → skilleter_modules-0.0.2}/src/skilleter_modules/dc_defaults.py +0 -0
  13. {skilleter_modules-0.0.1 → skilleter_modules-0.0.2}/src/skilleter_modules/dc_util.py +0 -0
  14. {skilleter_modules-0.0.1 → skilleter_modules-0.0.2}/src/skilleter_modules/dircolors.py +0 -0
  15. {skilleter_modules-0.0.1 → skilleter_modules-0.0.2}/src/skilleter_modules/files.py +0 -0
  16. {skilleter_modules-0.0.1 → skilleter_modules-0.0.2}/src/skilleter_modules/git.py +0 -0
  17. {skilleter_modules-0.0.1 → skilleter_modules-0.0.2}/src/skilleter_modules/gitlab.py +0 -0
  18. {skilleter_modules-0.0.1 → skilleter_modules-0.0.2}/src/skilleter_modules/path.py +0 -0
  19. {skilleter_modules-0.0.1 → skilleter_modules-0.0.2}/src/skilleter_modules/popup.py +0 -0
  20. {skilleter_modules-0.0.1 → skilleter_modules-0.0.2}/src/skilleter_modules/run.py +0 -0
  21. {skilleter_modules-0.0.1 → skilleter_modules-0.0.2}/src/skilleter_modules/tfm_pane.py +0 -0
  22. {skilleter_modules-0.0.1 → skilleter_modules-0.0.2}/src/skilleter_modules/tidy.py +0 -0
  23. {skilleter_modules-0.0.1 → skilleter_modules-0.0.2}/src/skilleter_modules/venv_template.py +0 -0
  24. {skilleter_modules-0.0.1 → skilleter_modules-0.0.2}/src/skilleter_modules.egg-info/dependency_links.txt +0 -0
  25. {skilleter_modules-0.0.1 → skilleter_modules-0.0.2}/src/skilleter_modules.egg-info/requires.txt +0 -0
  26. {skilleter_modules-0.0.1 → skilleter_modules-0.0.2}/src/skilleter_modules.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: skilleter_modules
3
- Version: 0.0.1
3
+ Version: 0.0.2
4
4
  Summary: Modules used by my various Python projects (and hopefully useful to other people)
5
5
  Author-email: John Skilleter <john@skilleter.org.uk>
6
6
  Project-URL: Home, https://skilleter.org.uk
@@ -7,7 +7,7 @@ name = "skilleter_modules"
7
7
 
8
8
  # Version must be incremented to install updated skilleter-extras
9
9
 
10
- version = "0.0.1"
10
+ version = "0.0.2"
11
11
 
12
12
  authors = [
13
13
  {name="John Skilleter", email="john@skilleter.org.uk"},
@@ -0,0 +1,105 @@
1
+ #! /usr/bin/env python3
2
+
3
+ ################################################################################
4
+ """ Docker interface for Thingy
5
+
6
+ Copyright (C) 2017 John Skilleter
7
+
8
+ Note that this:
9
+ * Only implements functions required by docker-purge
10
+ * Only has basic error checking, in that it raises DockerError
11
+ for any error returned by the external docker command.
12
+ """
13
+ ################################################################################
14
+
15
+ import subprocess
16
+
17
+ ################################################################################
18
+
19
+ class DockerError(Exception):
20
+ """ Exception for dockery things """
21
+
22
+ pass
23
+
24
+ ################################################################################
25
+
26
+ def instances(all=False):
27
+ """ Return a list of all current Docker instances """
28
+
29
+ cmd = ['docker', 'ps', '-q']
30
+
31
+ if all:
32
+ cmd.append('-a')
33
+
34
+ instances_list = []
35
+ try:
36
+ process = subprocess.run(cmd, capture_output=True, check=True, text=True)
37
+
38
+ for result in process.stdout:
39
+ instances_list.append(result)
40
+
41
+ except subprocess.CalledProcessError as exc:
42
+ raise DockerError(exc)
43
+
44
+ return instances_list
45
+
46
+ ################################################################################
47
+
48
+ def stop(instance, force=False):
49
+ """ Stop the specified Docker instance """
50
+
51
+ # TODO: force option not implemented
52
+
53
+ try:
54
+ subprocess.run(['docker', 'stop', instance], check=True, capture_output=False)
55
+
56
+ except suprocess.CalledProcessError as exc:
57
+ raise DockerError(exc)
58
+
59
+ ################################################################################
60
+
61
+ def rm(instance, force=False):
62
+ """ Remove the specified instance """
63
+
64
+ cmd = ['docker', 'rm']
65
+
66
+ if force:
67
+ cmd.append('--force')
68
+
69
+ cmd.append(instance)
70
+
71
+ try:
72
+ subprocess.run(cmd, check=True, capture_output=False)
73
+
74
+ except subprocess.CalledProcessError as exc:
75
+ raise DockerError(exc)
76
+
77
+ ################################################################################
78
+
79
+ def images():
80
+ """ Return a list of all current Docker images """
81
+
82
+ try:
83
+ process = subprocess.run(['docker', 'images', '-q'], capture_output=True, check=True)
84
+
85
+ for result in process:
86
+ yield result
87
+
88
+ except subprocess.CalledProcessError as exc:
89
+ raise DockerError(exc)
90
+
91
+ ################################################################################
92
+
93
+ def rmi(image, force=False):
94
+ """ Remove the specified image """
95
+
96
+ cmd = ['docker', 'rmi']
97
+ if force:
98
+ cmd.append('--force')
99
+
100
+ cmd.append(image)
101
+
102
+ try:
103
+ subprocess.run(cmd, capture_output=False, check=True)
104
+ except subprocess.CalledProcessError as exc:
105
+ raise DockerError(exc)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: skilleter_modules
3
- Version: 0.0.1
3
+ Version: 0.0.2
4
4
  Summary: Modules used by my various Python projects (and hopefully useful to other people)
5
5
  Author-email: John Skilleter <john@skilleter.org.uk>
6
6
  Project-URL: Home, https://skilleter.org.uk
@@ -7,6 +7,7 @@ src/skilleter_modules/dc_curses.py
7
7
  src/skilleter_modules/dc_defaults.py
8
8
  src/skilleter_modules/dc_util.py
9
9
  src/skilleter_modules/dircolors.py
10
+ src/skilleter_modules/docker.py
10
11
  src/skilleter_modules/files.py
11
12
  src/skilleter_modules/git.py
12
13
  src/skilleter_modules/gitlab.py