From 4596c24b53e8e981acd796d23f76cb938ff25575 Mon Sep 17 00:00:00 2001 From: Vladimir Roncevic Date: Wed, 3 Jul 2024 18:57:48 +0200 Subject: [PATCH] [daemonpy] Updated code coverage, fixed setup.py, updated docs --- README.md | 13 +++++---- daemonpy/__init__.py | 16 +++++------ daemonpy/daemon_usage.py | 8 +++--- daemonpy/file_descriptor.py | 10 +++---- daemonpy/file_process_id.py | 26 ++++++++++-------- daemonpy/unix_operations.py | 8 +++--- docs/build/doctrees/environment.pickle | Bin 311520 -> 311713 bytes docs/build/doctrees/index.doctree | Bin 27054 -> 27132 bytes docs/build/html/_modules/daemonpy.html | 16 +++++------ .../html/_modules/daemonpy/daemon_usage.html | 8 +++--- .../_modules/daemonpy/file_descriptor.html | 10 +++---- .../_modules/daemonpy/file_process_id.html | 26 ++++++++++-------- .../_modules/daemonpy/unix_operations.html | 8 +++--- docs/build/html/_sources/index.rst.txt | 13 +++++---- docs/build/html/index.html | 13 +++++---- docs/build/html/objects.inv | Bin 697 -> 697 bytes docs/build/html/searchindex.js | 2 +- docs/source/conf.py | 2 +- docs/source/index.rst | 13 +++++---- setup.cfg | 2 +- setup.py | 8 +++--- tests/.coverage | Bin 53248 -> 53248 bytes tests/daemon_test.py | 4 +-- tests/daemon_usage_test.py | 2 +- tests/file_descriptor_test.py | 2 +- tests/file_process_id_test.py | 2 +- tests/unix_operations_test.py | 2 +- 27 files changed, 115 insertions(+), 99 deletions(-) diff --git a/README.md b/README.md index f58288c..fff91f0 100644 --- a/README.md +++ b/README.md @@ -164,11 +164,14 @@ Package structure ```bash daemonpy/ - ├── daemon_usage.py - ├── file_descriptor.py - ├── file_process_id.py - ├── __init__.py - └── unix_operations.py + ├── daemon_usage.py + ├── file_descriptor.py + ├── file_process_id.py + ├── __init__.py + ├── py.typed + └── unix_operations.py + + 1 directory, 6 files ``` ### Docs diff --git a/daemonpy/__init__.py b/daemonpy/__init__.py index 0c27483..38ca626 100644 --- a/daemonpy/__init__.py +++ b/daemonpy/__init__.py @@ -21,7 +21,7 @@ ''' import sys -from typing import List +from typing import List, Optional from atexit import register from os.path import exists from os import chdir, setsid, umask, dup2, getpid, remove @@ -45,7 +45,7 @@ __copyright__ = '(C) 2024, https://vroncevic.github.io/daemonpy' __credits__: List[str] = ['Vladimir Roncevic', 'Python Software Foundation'] __license__ = 'https://github.com/vroncevic/daemonpy/blob/dev/LICENSE' -__version__ = '2.0.4' +__version__ = '2.0.5' __maintainer__ = 'Vladimir Roncevic' __email__ = 'elektron.ronca@gmail.com' __status__ = 'Updated' @@ -85,8 +85,8 @@ def __init__(self, pid: str, verbose: bool = False) -> None: :exceptions: ATSTypeError | ATSValueError ''' super().__init__() - error_msg: str | None = None - error_id: int | None = None + error_msg: Optional[str] = None + error_id: Optional[int] = None checker: ATSChecker = ATSChecker() error_msg, error_id = checker.check_params([('str:pid', pid)]) if error_id == checker.TYPE_ERROR: @@ -94,8 +94,8 @@ def __init__(self, pid: str, verbose: bool = False) -> None: if not bool(pid): raise ATSValueError('missing PID file') verbose_message(verbose, [f'{self._P_VERBOSE} init daemon']) - self._daemon_usage: DaemonUsage | None = None - self._pid: str | None = None + self._daemon_usage: Optional[DaemonUsage] = None + self._pid: Optional[str] = None if self.unix_status: self._daemon_usage = DaemonUsage() self._pid = pid @@ -110,8 +110,8 @@ def usage(self, operation: str, verbose: bool = False) -> None: :type verbose: :exceptions: ATSTypeError | ATSValueError ''' - error_msg: str | None = None - error_id: int | None = None + error_msg: Optional[str] = None + error_id: Optional[int] = None checker: ATSChecker = ATSChecker() error_msg, error_id = checker.check_params([ ('str:operation', operation) diff --git a/daemonpy/daemon_usage.py b/daemonpy/daemon_usage.py index a7d1433..3d6ffa2 100644 --- a/daemonpy/daemon_usage.py +++ b/daemonpy/daemon_usage.py @@ -21,7 +21,7 @@ ''' import sys -from typing import List +from typing import List, Optional try: from ats_utilities.checker import ATSChecker @@ -37,7 +37,7 @@ __copyright__ = '(C) 2024, https://vroncevic.github.io/daemonpy' __credits__: List[str] = ['Vladimir Roncevic', 'Python Software Foundation'] __license__ = 'https://github.com/vroncevic/daemonpy/blob/dev/LICENSE' -__version__ = '2.0.4' +__version__ = '2.0.5' __maintainer__ = 'Vladimir Roncevic' __email__ = 'elektron.ronca@gmail.com' __status__ = 'Updated' @@ -106,8 +106,8 @@ def check(self, daemon_operation: str, verbose: bool = False) -> None: :type verbose: :exceptions: ATSTypeError | ATSValueError ''' - error_msg: str | None = None - error_id: int | None = None + error_msg: Optional[str] = None + error_id: Optional[int] = None checker: ATSChecker = ATSChecker() error_msg, error_id = checker.check_params([ ('str:daemon_operation', daemon_operation) diff --git a/daemonpy/file_descriptor.py b/daemonpy/file_descriptor.py index 3fdd277..f2a1c92 100644 --- a/daemonpy/file_descriptor.py +++ b/daemonpy/file_descriptor.py @@ -21,7 +21,7 @@ ''' import sys -from typing import Any, List, Dict, IO +from typing import Any, List, Dict, IO, Optional try: from ats_utilities.checker import ATSChecker @@ -81,8 +81,8 @@ def __init__(self, desc_path: str, desc_type: Any) -> None: :type desc_type: :exceptions: ATSTypeError | ATSValueError ''' - error_msg: str | None = None - error_id: int | None = None + error_msg: Optional[str] = None + error_id: Optional[int] = None checker: ATSChecker = ATSChecker() error_msg, error_id = checker.check_params([ ('str:desc_path', desc_path) @@ -93,9 +93,9 @@ def __init__(self, desc_path: str, desc_type: Any) -> None: raise ATSValueError('missing device path file') if any([not bool(desc_type), desc_type not in self.FORMAT.values()]): raise ATSValueError('check device file format') - self._desc_path: str | None = desc_path + self._desc_path: Optional[str] = desc_path self._desc_type: str | List[str | int] = desc_type - self._desc_file: IO[Any] | None = None + self._desc_file: Optional[IO[Any]] = None def __enter__(self) -> IO[Any] | None: ''' diff --git a/daemonpy/file_process_id.py b/daemonpy/file_process_id.py index 76a8241..d48ab25 100644 --- a/daemonpy/file_process_id.py +++ b/daemonpy/file_process_id.py @@ -21,7 +21,7 @@ ''' import sys -from typing import List, Any, IO +from typing import Any, List, IO, Optional try: from ats_utilities.checker import ATSChecker @@ -35,7 +35,7 @@ __copyright__ = '(C) 2024, https://vroncevic.github.io/daemonpy' __credits__: List[str] = ['Vladimir Roncevic', 'Python Software Foundation'] __license__ = 'https://github.com/vroncevic/daemonpy/blob/dev/LICENSE' -__version__ = '2.0.4' +__version__ = '2.0.5' __maintainer__ = 'Vladimir Roncevic' __email__ = 'elektron.ronca@gmail.com' __status__ = 'Updated' @@ -63,18 +63,20 @@ class FileProcessId: _P_VERBOSE: str = 'DAEMONPY::FILE_PROCESS_ID' _MODE: List[str] = ['w+', 'r'] - def __init__(self, pid_path: str | None, pid_mode: str | None) -> None: + def __init__( + self, pid_path: Optional[str], pid_mode: Optional[str] + ) -> None: ''' Initials FileProcessId constructor. :param pid_path: file process id path | None - :type pid_path: | + :type pid_path: :param pid_mode: file process id mode | None - :type pid_mode: | + :type pid_mode: :exceptions: ATSTypeError | ATSValueError ''' - error_msg: str | None = None - error_id: int | None = None + error_msg: Optional[str] = None + error_id: Optional[int] = None checker: ATSChecker = ATSChecker() error_msg, error_id = checker.check_params([ ('str:pid_path', pid_path), ('str:pid_mode', pid_mode) @@ -85,16 +87,16 @@ def __init__(self, pid_path: str | None, pid_mode: str | None) -> None: raise ATSValueError('missing PID path file') if any([not bool(pid_mode), pid_mode not in self._MODE]): raise ATSValueError('check PID mode file') - self._pid_path: str | None = pid_path - self._pid_mode: str | None = pid_mode - self._pid: IO[Any] | None = None + self._pid_path: Optional[str] = pid_path + self._pid_mode: Optional[str] = pid_mode + self._pid: Optional[IO[Any]] = None - def __enter__(self) -> IO[Any] | None: + def __enter__(self) -> Optional[IO[Any]]: ''' Opens PID file. :return: File IO stream | None - :rtype: | + :rtype: :exceptions: None ''' if bool(self._pid_path) and bool(self._pid_mode): diff --git a/daemonpy/unix_operations.py b/daemonpy/unix_operations.py index 3e0920a..5d859bc 100644 --- a/daemonpy/unix_operations.py +++ b/daemonpy/unix_operations.py @@ -21,7 +21,7 @@ ''' import sys -from typing import List +from typing import List, Optional from os import fork, kill, remove from os.path import exists from signal import SIGTERM @@ -41,7 +41,7 @@ __copyright__ = '(C) 2024, https://vroncevic.github.io/daemonpy' __credits__: List[str] = ['Vladimir Roncevic', 'Python Software Foundation'] __license__ = 'https://github.com/vroncevic/daemonpy/blob/dev/LICENSE' -__version__ = '2.0.4' +__version__ = '2.0.5' __maintainer__ = 'Vladimir Roncevic' __email__ = 'elektron.ronca@gmail.com' __status__ = 'Updated' @@ -153,8 +153,8 @@ def unix_kill( :rtype: :exceptions: ATSTypeError | ATSValueError ''' - error_msg: str | None = None - error_id: int | None = None + error_msg: Optional[str] = None + error_id: Optional[int] = None checker: ATSChecker = ATSChecker() error_msg, error_id = checker.check_params([ ('int:pid', pid), ('str:pid_path', pid_path) diff --git a/docs/build/doctrees/environment.pickle b/docs/build/doctrees/environment.pickle index 54b555a072055878476f5e5cc156281e5995ab8d..fddba09aed92fcfcc7cfd8561c4dcda3efa46d68 100644 GIT binary patch delta 4143 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 Ss4d+f3|w0~*Zv=m1qtB* diff --git a/docs/build/doctrees/index.doctree b/docs/build/doctrees/index.doctree index 2ae0dea3b2fe9519c112a2c4bcade1f77e22552f..753119d52b343b98c5384268ecaca6d264255363 100644 GIT binary patch delta 412 zcmZ2?neoqMMwSNFsUJ78>~-WmosyWEo1a%usn0d}tfRu@cRPQ$S_e6 zhl#CI8mH7w$&k)^JGsEpbn;vcna%mmtc;8+HkZ1rWM*8oS>B_Pk#Wsrc@OE$TRig_ zCm-^a+-&3B#>BX3vQB`+=G(pjOpIHA%;}6fKmv>J0QtMX%6|maGBWM~tLh6m#>luI zELsqjz{q%T^2P96#ubw+!pgX!IJBEl)b_f#z^V-0?1Samu zc`@pnZ$#NMvYr4cIs{h);_ZVe+ME{yH2mb`^RfCs@_%d*~-W>l9HI3o1a%usn4Y_d4ZF{KWcY*{r-w8R!$hZeA zx-Tq&k#XN-`G{P`rIRmc$xU7zQN?&@vsz>mBkPe2>8!5FigDUtR@>yjIP1+4(Y}nV zM}ZQDz!D(VK9Iy@iDSource code for daemonpy
 '''
 
 import sys
-from typing import List
+from typing import List, Optional
 from atexit import register
 from os.path import exists
 from os import chdir, setsid, umask, dup2, getpid, remove
@@ -83,7 +83,7 @@ 

Source code for daemonpy

 __copyright__ = '(C) 2024, https://vroncevic.github.io/daemonpy'
 __credits__: List[str] = ['Vladimir Roncevic', 'Python Software Foundation']
 __license__ = 'https://github.com/vroncevic/daemonpy/blob/dev/LICENSE'
-__version__ = '2.0.4'
+__version__ = '2.0.5'
 __maintainer__ = 'Vladimir Roncevic'
 __email__ = 'elektron.ronca@gmail.com'
 __status__ = 'Updated'
@@ -125,8 +125,8 @@ 

Source code for daemonpy

             :exceptions: ATSTypeError | ATSValueError
         '''
         super().__init__()
-        error_msg: str | None = None
-        error_id: int | None = None
+        error_msg: Optional[str] = None
+        error_id: Optional[int] = None
         checker: ATSChecker = ATSChecker()
         error_msg, error_id = checker.check_params([('str:pid', pid)])
         if error_id == checker.TYPE_ERROR:
@@ -134,8 +134,8 @@ 

Source code for daemonpy

         if not bool(pid):
             raise ATSValueError('missing PID file')
         verbose_message(verbose, [f'{self._P_VERBOSE} init daemon'])
-        self._daemon_usage: DaemonUsage | None = None
-        self._pid: str | None = None
+        self._daemon_usage: Optional[DaemonUsage] = None
+        self._pid: Optional[str] = None
         if self.unix_status:
             self._daemon_usage = DaemonUsage()
             self._pid = pid
@@ -152,8 +152,8 @@ 

Source code for daemonpy

             :type verbose: <bool>
             :exceptions: ATSTypeError | ATSValueError
         '''
-        error_msg: str | None = None
-        error_id: int | None = None
+        error_msg: Optional[str] = None
+        error_id: Optional[int] = None
         checker: ATSChecker = ATSChecker()
         error_msg, error_id = checker.check_params([
             ('str:operation', operation)
diff --git a/docs/build/html/_modules/daemonpy/daemon_usage.html b/docs/build/html/_modules/daemonpy/daemon_usage.html
index 9f577e5..14967fa 100644
--- a/docs/build/html/_modules/daemonpy/daemon_usage.html
+++ b/docs/build/html/_modules/daemonpy/daemon_usage.html
@@ -60,7 +60,7 @@ 

Source code for daemonpy.daemon_usage

 '''
 
 import sys
-from typing import List
+from typing import List, Optional
 
 try:
     from ats_utilities.checker import ATSChecker
@@ -76,7 +76,7 @@ 

Source code for daemonpy.daemon_usage

 __copyright__ = '(C) 2024, https://vroncevic.github.io/daemonpy'
 __credits__: List[str] = ['Vladimir Roncevic', 'Python Software Foundation']
 __license__ = 'https://github.com/vroncevic/daemonpy/blob/dev/LICENSE'
-__version__ = '2.0.4'
+__version__ = '2.0.5'
 __maintainer__ = 'Vladimir Roncevic'
 __email__ = 'elektron.ronca@gmail.com'
 __status__ = 'Updated'
@@ -149,8 +149,8 @@ 

Source code for daemonpy.daemon_usage

             :type verbose: <bool>
             :exceptions: ATSTypeError | ATSValueError
         '''
-        error_msg: str | None = None
-        error_id: int | None = None
+        error_msg: Optional[str] = None
+        error_id: Optional[int] = None
         checker: ATSChecker = ATSChecker()
         error_msg, error_id = checker.check_params([
             ('str:daemon_operation', daemon_operation)
diff --git a/docs/build/html/_modules/daemonpy/file_descriptor.html b/docs/build/html/_modules/daemonpy/file_descriptor.html
index 1d86319..dca0795 100644
--- a/docs/build/html/_modules/daemonpy/file_descriptor.html
+++ b/docs/build/html/_modules/daemonpy/file_descriptor.html
@@ -60,7 +60,7 @@ 

Source code for daemonpy.file_descriptor

 '''
 
 import sys
-from typing import Any, List, Dict, IO
+from typing import Any, List, Dict, IO, Optional
 
 try:
     from ats_utilities.checker import ATSChecker
@@ -122,8 +122,8 @@ 

Source code for daemonpy.file_descriptor

             :type desc_type: <int>
             :exceptions: ATSTypeError | ATSValueError
         '''
-        error_msg: str | None = None
-        error_id: int | None = None
+        error_msg: Optional[str] = None
+        error_id: Optional[int] = None
         checker: ATSChecker = ATSChecker()
         error_msg, error_id = checker.check_params([
             ('str:desc_path', desc_path)
@@ -134,9 +134,9 @@ 

Source code for daemonpy.file_descriptor

             raise ATSValueError('missing device path file')
         if any([not bool(desc_type), desc_type not in self.FORMAT.values()]):
             raise ATSValueError('check device file format')
-        self._desc_path: str | None = desc_path
+        self._desc_path: Optional[str] = desc_path
         self._desc_type: str | List[str | int] = desc_type
-        self._desc_file: IO[Any] | None = None
+        self._desc_file: Optional[IO[Any]] = None
 
     def __enter__(self) -> IO[Any] | None:
         '''
diff --git a/docs/build/html/_modules/daemonpy/file_process_id.html b/docs/build/html/_modules/daemonpy/file_process_id.html
index 83066a6..c64cbf7 100644
--- a/docs/build/html/_modules/daemonpy/file_process_id.html
+++ b/docs/build/html/_modules/daemonpy/file_process_id.html
@@ -60,7 +60,7 @@ 

Source code for daemonpy.file_process_id

 '''
 
 import sys
-from typing import List, Any, IO
+from typing import Any, List, IO, Optional
 
 try:
     from ats_utilities.checker import ATSChecker
@@ -74,7 +74,7 @@ 

Source code for daemonpy.file_process_id

 __copyright__ = '(C) 2024, https://vroncevic.github.io/daemonpy'
 __credits__: List[str] = ['Vladimir Roncevic', 'Python Software Foundation']
 __license__ = 'https://github.com/vroncevic/daemonpy/blob/dev/LICENSE'
-__version__ = '2.0.4'
+__version__ = '2.0.5'
 __maintainer__ = 'Vladimir Roncevic'
 __email__ = 'elektron.ronca@gmail.com'
 __status__ = 'Updated'
@@ -104,18 +104,20 @@ 

Source code for daemonpy.file_process_id

     _P_VERBOSE: str = 'DAEMONPY::FILE_PROCESS_ID'
     _MODE: List[str] = ['w+', 'r']
 
-    def __init__(self, pid_path: str | None, pid_mode: str | None) -> None:
+    def __init__(
+        self, pid_path: Optional[str], pid_mode: Optional[str]
+    ) -> None:
         '''
             Initials FileProcessId constructor.
 
             :param pid_path: file process id path | None
-            :type pid_path: <str> | <NoneType>
+            :type pid_path: <Optional[str]>
             :param pid_mode: file process id mode | None
-            :type pid_mode: <str> | <NoneType>
+            :type pid_mode: <Optional[str]>
             :exceptions: ATSTypeError | ATSValueError
         '''
-        error_msg: str | None = None
-        error_id: int | None = None
+        error_msg: Optional[str] = None
+        error_id: Optional[int] = None
         checker: ATSChecker = ATSChecker()
         error_msg, error_id = checker.check_params([
             ('str:pid_path', pid_path), ('str:pid_mode', pid_mode)
@@ -126,16 +128,16 @@ 

Source code for daemonpy.file_process_id

             raise ATSValueError('missing PID path file')
         if any([not bool(pid_mode), pid_mode not in self._MODE]):
             raise ATSValueError('check PID mode file')
-        self._pid_path: str | None = pid_path
-        self._pid_mode: str | None = pid_mode
-        self._pid: IO[Any] | None = None
+        self._pid_path: Optional[str] = pid_path
+        self._pid_mode: Optional[str] = pid_mode
+        self._pid: Optional[IO[Any]] = None
 
-    def __enter__(self) -> IO[Any] | None:
+    def __enter__(self) -> Optional[IO[Any]]:
         '''
             Opens PID file.
 
             :return: File IO stream | None
-            :rtype: <TextIOWrapper> | <NoneType>
+            :rtype: <Optional[IO[Any]]>
             :exceptions: None
         '''
         if bool(self._pid_path) and bool(self._pid_mode):
diff --git a/docs/build/html/_modules/daemonpy/unix_operations.html b/docs/build/html/_modules/daemonpy/unix_operations.html
index 1dd69bb..40769eb 100644
--- a/docs/build/html/_modules/daemonpy/unix_operations.html
+++ b/docs/build/html/_modules/daemonpy/unix_operations.html
@@ -60,7 +60,7 @@ 

Source code for daemonpy.unix_operations

 '''
 
 import sys
-from typing import List
+from typing import List, Optional
 from os import fork, kill, remove
 from os.path import exists
 from signal import SIGTERM
@@ -80,7 +80,7 @@ 

Source code for daemonpy.unix_operations

 __copyright__ = '(C) 2024, https://vroncevic.github.io/daemonpy'
 __credits__: List[str] = ['Vladimir Roncevic', 'Python Software Foundation']
 __license__ = 'https://github.com/vroncevic/daemonpy/blob/dev/LICENSE'
-__version__ = '2.0.4'
+__version__ = '2.0.5'
 __maintainer__ = 'Vladimir Roncevic'
 __email__ = 'elektron.ronca@gmail.com'
 __status__ = 'Updated'
@@ -202,8 +202,8 @@ 

Source code for daemonpy.unix_operations

             :rtype: <bool>
             :exceptions: ATSTypeError | ATSValueError
         '''
-        error_msg: str | None = None
-        error_id: int | None = None
+        error_msg: Optional[str] = None
+        error_id: Optional[int] = None
         checker: ATSChecker = ATSChecker()
         error_msg, error_id = checker.check_params([
             ('int:pid', pid), ('str:pid_path', pid_path)
diff --git a/docs/build/html/_sources/index.rst.txt b/docs/build/html/_sources/index.rst.txt
index db877d1..87c9bb2 100644
--- a/docs/build/html/_sources/index.rst.txt
+++ b/docs/build/html/_sources/index.rst.txt
@@ -155,11 +155,14 @@ Package structure
 .. code-block:: bash
 
     daemonpy/
-        ├── daemon_usage.py
-        ├── file_descriptor.py
-        ├── file_process_id.py
-        ├── __init__.py
-        └── unix_operations.py
+       ├── daemon_usage.py
+       ├── file_descriptor.py
+       ├── file_process_id.py
+       ├── __init__.py
+       ├── py.typed
+       └── unix_operations.py
+    
+    1 directory, 6 files
 
 Copyright and licence
 ----------------------
diff --git a/docs/build/html/index.html b/docs/build/html/index.html
index 71387af..98290a6 100644
--- a/docs/build/html/index.html
+++ b/docs/build/html/index.html
@@ -173,11 +173,14 @@ 

Package structure
daemonpy/
-    ├── daemon_usage.py
-    ├── file_descriptor.py
-    ├── file_process_id.py
-    ├── __init__.py
-    └── unix_operations.py
+   ├── daemon_usage.py
+   ├── file_descriptor.py
+   ├── file_process_id.py
+   ├── __init__.py
+   ├── py.typed
+   └── unix_operations.py
+
+1 directory, 6 files
 

diff --git a/docs/build/html/objects.inv b/docs/build/html/objects.inv index 9748d0ffed875041c0577b79b52e68cb4478862a..1bd2218b82ac83605c25cefd72b79ebd21aceeb2 100644 GIT binary patch delta 12 TcmdnVx|4N+1Ec9i#|kC@93BJj delta 12 TcmdnVx|4N+1Ea}C#|kC@92o=d diff --git a/docs/build/html/searchindex.js b/docs/build/html/searchindex.js index b7f5e45..7d5ad7c 100644 --- a/docs/build/html/searchindex.js +++ b/docs/build/html/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["daemonpy", "daemonpy.daemon_usage", "daemonpy.file_descriptor", "daemonpy.file_process_id", "daemonpy.unix_operations", "index", "modules"], "filenames": ["daemonpy.rst", "daemonpy.daemon_usage.rst", "daemonpy.file_descriptor.rst", "daemonpy.file_process_id.rst", "daemonpy.unix_operations.rst", "index.rst", "modules.rst"], "titles": ["daemonpy package", "daemonpy.daemon_usage module", "daemonpy.file_descriptor module", "daemonpy.file_process_id module", "daemonpy.unix_operations module", "Creating Daemon process", "daemonpy"], "terms": {"daemon_usag": [0, 5, 6], "daemonusag": [0, 1, 6], "daemon_oper": [0, 1], "_p_verbos": [0, 1, 2, 3, 4, 6], "check": [0, 1], "usage_statu": [0, 1], "file_descriptor": [0, 5, 6], "filedescriptor": [0, 2, 6], "format": [0, 2], "stderr": [0, 2], "stdin": [0, 2], "stdout": [0, 2], "file_process_id": [0, 5, 6], "fileprocessid": [0, 3, 6], "_mode": [0, 3], "unix_oper": [0, 5, 6], "unixoper": [0, 4, 6], "_no_process": [0, 4], "_os_target": [0, 4], "_sleep": [0, 4], "first_fork": [0, 4], "second_fork": [0, 4], "unix_kil": [0, 4], "unix_statu": [0, 4], "__init__": [0, 1, 2, 3, 4, 5], "py": [0, 1, 2, 3, 4, 5], "copyright": [0, 1, 2, 3, 4], "c": [0, 1, 2, 3, 4, 5], "2020": [0, 1, 2, 3, 4, 5], "2024": [0, 1, 2, 3, 4, 5], "vladimir": [0, 1, 2, 3, 4, 5], "roncev": [0, 1, 2, 3, 4, 5], "elektron": [0, 1, 2, 3, 4, 5], "ronca": [0, 1, 2, 3, 4, 5], "gmail": [0, 1, 2, 3, 4, 5], "com": [0, 1, 2, 3, 4, 5], "i": [0, 1, 2, 3, 4, 5], "free": [0, 1, 2, 3, 4, 5], "softwar": [0, 1, 2, 3, 4, 5], "you": [0, 1, 2, 3, 4, 5], "can": [0, 1, 2, 3, 4, 5], "redistribut": [0, 1, 2, 3, 4, 5], "modifi": [0, 1, 2, 3, 4, 5], "under": [0, 1, 2, 3, 4, 5], "term": [0, 1, 2, 3, 4, 5], "gnu": [0, 1, 2, 3, 4, 5], "gener": [0, 1, 2, 3, 4, 5], "public": [0, 1, 2, 3, 4, 5], "licens": [0, 1, 2, 3, 4, 5], "publish": [0, 1, 2, 3, 4, 5], "foundat": [0, 1, 2, 3, 4, 5], "either": [0, 1, 2, 3, 4, 5], "version": [0, 1, 2, 3, 4, 5], "3": [0, 1, 2, 3, 4, 5], "your": [0, 1, 2, 3, 4, 5], "option": [0, 1, 2, 3, 4, 5], "ani": [0, 1, 2, 3, 4, 5], "later": [0, 1, 2, 3, 4, 5], "distribut": [0, 1, 2, 3, 4, 5], "hope": [0, 1, 2, 3, 4, 5], "us": [0, 1, 2, 3, 4, 5], "without": [0, 1, 2, 3, 4, 5], "warranti": [0, 1, 2, 3, 4, 5], "even": [0, 1, 2, 3, 4, 5], "impli": [0, 1, 2, 3, 4, 5], "merchant": [0, 1, 2, 3, 4, 5], "fit": [0, 1, 2, 3, 4, 5], "FOR": [0, 1, 2, 3, 4, 5], "A": [0, 1, 2, 3, 4, 5], "particular": [0, 1, 2, 3, 4, 5], "purpos": [0, 1, 2, 3, 4, 5], "see": [0, 1, 2, 3, 4, 5], "more": [0, 1, 2, 3, 4, 5], "detail": [0, 1, 2, 3, 4, 5], "should": [0, 1, 2, 3, 4, 5], "have": [0, 1, 2, 3, 4, 5], "receiv": [0, 1, 2, 3, 4, 5], "copi": [0, 1, 2, 3, 4, 5], "along": [0, 1, 2, 3, 4, 5], "thi": [0, 1, 2, 3, 4, 5], "program": [0, 1, 2, 3, 4, 5], "If": [0, 1, 2, 3, 4, 5], "http": [0, 1, 2, 3, 4, 5], "www": [0, 1, 2, 3, 4, 5], "org": [0, 1, 2, 3, 4, 5], "info": [0, 1, 2, 3, 4, 5], "defin": [0, 1, 2, 3, 4, 5], "class": [0, 1, 2, 3, 4, 5], "daemon": [0, 1, 6], "attribut": [0, 1, 2, 3, 4, 5], "": [0, 1, 2, 3, 4, 5], "method": [0, 1, 2, 3, 4, 5], "creat": [0, 1, 2, 3, 4], "base": [0, 1, 2, 3, 4, 5], "backend": 0, "api": [0, 1, 2, 3, 4], "pid": [0, 3, 4, 5], "str": [0, 1, 2, 3, 4], "verbos": [0, 1, 4], "bool": [0, 1, 4], "fals": [0, 1, 4], "sourc": [0, 1, 2, 3, 4], "It": [0, 1, 2, 3, 4, 5], "_pkg_verbos": [0, 1, 2, 3, 4], "consol": [0, 1, 2, 3, 4], "text": [0, 1, 2, 3, 4], "indic": [0, 1, 2, 3, 4], "process": [0, 1, 2, 3, 4], "phase": [0, 1, 2, 3, 4], "_daemon_usag": 0, "usag": [0, 1, 6], "_pid": [0, 3], "file": [0, 2, 3, 4], "path": [0, 2, 3, 4], "initi": [0, 1, 2, 3, 4], "constructor": [0, 1, 2, 3, 4], "start": [0, 1, 4, 6], "stop": [0, 1, 6], "restart": [0, 1, 6], "exit_handl": [0, 6], "At": 0, "exit": [0, 4, 5], "delet": 0, "run": [0, 5, 6], "abstract": 0, "none": [0, 1, 3, 4, 5], "paramet": [0, 1, 4], "enabl": [0, 1, 4], "disabl": [0, 1, 4], "except": [0, 1, 4, 5], "remov": 0, "return": [0, 1, 4], "true": [0, 4, 5], "success": [0, 4], "oper": [0, 1, 4, 5], "type": [0, 1, 2, 4, 5], "overrid": 0, "when": 0, "subclass": 0, "self": [0, 5], "call": 0, "after": 0, "ha": 0, "been": 0, "atstypeerror": [0, 1, 4], "atsvalueerror": [0, 1, 4], "an": [1, 2, 3, 4, 5], "object": [1, 2, 3, 4], "list": [1, 3, 4], "support": [1, 2, 3, 4, 5], "_usage_statu": 1, "statu": [1, 4], "properti": [1, 4], "set": [1, 4, 5], "get": [1, 4], "int": [1, 2, 4], "descriptor": 2, "context": [2, 3], "manag": [2, 3], "desc_path": 2, "desc_typ": 2, "standard": 2, "input": 2, "stream": 2, "id": [2, 3, 4], "data": 2, "output": 2, "error": 2, "messag": [2, 4], "desciptor": 2, "mode": [2, 3], "_desc_path": 2, "devic": 2, "_desc_typ": 2, "_desc_fil": 2, "__enter__": [2, 3], "open": [2, 3, 4], "__exit__": [2, 3], "close": [2, 3, 5], "dict": 2, "0": [2, 4], "r": [2, 3, 5], "1": [2, 4, 5], "2": 2, "pid_path": [3, 4], "pid_mod": 3, "_pid_path": 3, "_pid_mod": 3, "w": 3, "unix": 4, "like": 4, "o": 4, "system": 4, "No": 4, "_unix_statu": 4, "make": 4, "sure": 4, "group": 4, "leader": 4, "won": 4, "t": 4, "mere": 4, "termin": 4, "kill": 4, "linux": 4, "linux2": 4, "float": 4, "code": [4, 5], "fork": 4, "fail": 4, "daemonpi": 5, "develop": 5, "python": 5, "100": 5, "The": 5, "readm": 5, "introduc": 5, "modul": [5, 6], "provid": 5, "instruct": 5, "how": 5, "machin": 5, "mai": 5, "other": 5, "inform": 5, "befor": 5, "ar": 5, "submodul": [5, 6], "navig": 5, "releas": 5, "page": 5, "download": 5, "extract": 5, "archiv": 5, "To": 5, "tar": 5, "xvzf": 5, "x": 5, "y": 5, "z": 5, "gz": 5, "cd": 5, "python3": 5, "pip3": 5, "requir": 5, "txt": 5, "m": 5, "build": 5, "dist": 5, "py3": 5, "whl": 5, "Or": 5, "follow": 5, "pyton3": 5, "setup": 5, "install_lib": 5, "install_egg_info": 5, "docker": 5, "imag": 5, "contain": 5, "pip": 5, "short": 5, "exampl": 5, "usr": 5, "bin": 5, "env": 5, "mydaemon": 5, "import": 5, "sy": 5, "from": 5, "time": 5, "sleep": 5, "try": 5, "importerror": 5, "ats_error_messag": 5, "forc": 5, "ATS": 5, "f": 5, "n": 5, "__file__": 5, "def": 5, "while": 5, "__name__": 5, "__main__": 5, "tmp": 5, "argv": 5, "next": 5, "librari": 5, "ats": 5, "util": 5, "app": 5, "tool": 5, "script": 5, "oop": 5, "vroncev": 5, "github": 5, "io": 5, "same": 5, "itself": 5, "avail": 5, "let": 5, "help": 5, "psf": 5, "index": 5, "search": 5, "packag": 6, "content": 6}, "objects": {"": [[0, 0, 0, "-", "daemonpy"]], "daemonpy": [[0, 1, 1, "", "Daemon"], [1, 0, 0, "-", "daemon_usage"], [2, 0, 0, "-", "file_descriptor"], [3, 0, 0, "-", "file_process_id"], [4, 0, 0, "-", "unix_operations"]], "daemonpy.Daemon": [[0, 2, 1, "", "_P_VERBOSE"], [0, 3, 1, "", "daemonize"], [0, 3, 1, "", "exit_handler"], [0, 3, 1, "", "restart"], [0, 3, 1, "", "run"], [0, 3, 1, "", "start"], [0, 3, 1, "", "stop"], [0, 3, 1, "", "usage"]], "daemonpy.daemon_usage": [[1, 1, 1, "", "DaemonUsage"]], "daemonpy.daemon_usage.DaemonUsage": [[1, 2, 1, "", "DAEMON_OPERATIONS"], [1, 2, 1, "", "_P_VERBOSE"], [1, 3, 1, "", "check"], [1, 4, 1, "", "usage_status"]], "daemonpy.file_descriptor": [[2, 1, 1, "", "FileDescriptor"]], "daemonpy.file_descriptor.FileDescriptor": [[2, 2, 1, "", "FORMAT"], [2, 2, 1, "", "STDERR"], [2, 2, 1, "", "STDIN"], [2, 2, 1, "", "STDOUT"], [2, 2, 1, "", "_P_VERBOSE"]], "daemonpy.file_process_id": [[3, 1, 1, "", "FileProcessId"]], "daemonpy.file_process_id.FileProcessId": [[3, 2, 1, "", "_MODE"], [3, 2, 1, "", "_P_VERBOSE"]], "daemonpy.unix_operations": [[4, 1, 1, "", "UnixOperations"]], "daemonpy.unix_operations.UnixOperations": [[4, 2, 1, "", "_NO_PROCESS"], [4, 2, 1, "", "_OS_TARGET"], [4, 2, 1, "", "_P_VERBOSE"], [4, 2, 1, "", "_SLEEP"], [4, 3, 1, "", "first_fork"], [4, 3, 1, "", "second_fork"], [4, 3, 1, "", "unix_kill"], [4, 4, 1, "", "unix_status"]]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:attribute", "3": "py:method", "4": "py:property"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "attribute", "Python attribute"], "3": ["py", "method", "Python method"], "4": ["py", "property", "Python property"]}, "titleterms": {"daemonpi": [0, 1, 2, 3, 4, 6], "packag": [0, 5], "submodul": 0, "modul": [0, 1, 2, 3, 4], "content": [0, 5], "daemon_usag": 1, "file_descriptor": 2, "file_process_id": 3, "unix_oper": 4, "creat": 5, "daemon": 5, "process": 5, "instal": 5, "usag": 5, "depend": 5, "structur": 5, "copyright": 5, "licenc": 5, "indic": 5, "tabl": 5}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.viewcode": 1, "sphinx": 60}, "alltitles": {"daemonpy package": [[0, "daemonpy-package"]], "Submodules": [[0, "submodules"]], "Module contents": [[0, "module-daemonpy"]], "daemonpy.daemon_usage module": [[1, "module-daemonpy.daemon_usage"]], "daemonpy.file_descriptor module": [[2, "module-daemonpy.file_descriptor"]], "daemonpy.file_process_id module": [[3, "module-daemonpy.file_process_id"]], "daemonpy.unix_operations module": [[4, "module-daemonpy.unix_operations"]], "Creating Daemon process": [[5, "creating-daemon-process"]], "Contents:": [[5, null]], "Installation": [[5, "installation"]], "Usage": [[5, "usage"]], "Dependencies": [[5, "dependencies"]], "Package structure": [[5, "package-structure"]], "Copyright and licence": [[5, "copyright-and-licence"]], "Indices and tables": [[5, "indices-and-tables"]], "daemonpy": [[6, "daemonpy"]]}, "indexentries": {"daemon (class in daemonpy)": [[0, "daemonpy.Daemon"]], "_p_verbose (daemonpy.daemon attribute)": [[0, "daemonpy.Daemon._P_VERBOSE"]], "daemonize() (daemonpy.daemon method)": [[0, "daemonpy.Daemon.daemonize"]], "daemonpy": [[0, "module-daemonpy"]], "exit_handler() (daemonpy.daemon method)": [[0, "daemonpy.Daemon.exit_handler"]], "module": [[0, "module-daemonpy"], [1, "module-daemonpy.daemon_usage"], [2, "module-daemonpy.file_descriptor"], [3, "module-daemonpy.file_process_id"], [4, "module-daemonpy.unix_operations"]], "restart() (daemonpy.daemon method)": [[0, "daemonpy.Daemon.restart"]], "run() (daemonpy.daemon method)": [[0, "daemonpy.Daemon.run"]], "start() (daemonpy.daemon method)": [[0, "daemonpy.Daemon.start"]], "stop() (daemonpy.daemon method)": [[0, "daemonpy.Daemon.stop"]], "usage() (daemonpy.daemon method)": [[0, "daemonpy.Daemon.usage"]], "daemon_operations (daemonpy.daemon_usage.daemonusage attribute)": [[1, "daemonpy.daemon_usage.DaemonUsage.DAEMON_OPERATIONS"]], "daemonusage (class in daemonpy.daemon_usage)": [[1, "daemonpy.daemon_usage.DaemonUsage"]], "_p_verbose (daemonpy.daemon_usage.daemonusage attribute)": [[1, "daemonpy.daemon_usage.DaemonUsage._P_VERBOSE"]], "check() (daemonpy.daemon_usage.daemonusage method)": [[1, "daemonpy.daemon_usage.DaemonUsage.check"]], "daemonpy.daemon_usage": [[1, "module-daemonpy.daemon_usage"]], "usage_status (daemonpy.daemon_usage.daemonusage property)": [[1, "daemonpy.daemon_usage.DaemonUsage.usage_status"]], "format (daemonpy.file_descriptor.filedescriptor attribute)": [[2, "daemonpy.file_descriptor.FileDescriptor.FORMAT"]], "filedescriptor (class in daemonpy.file_descriptor)": [[2, "daemonpy.file_descriptor.FileDescriptor"]], "stderr (daemonpy.file_descriptor.filedescriptor attribute)": [[2, "daemonpy.file_descriptor.FileDescriptor.STDERR"]], "stdin (daemonpy.file_descriptor.filedescriptor attribute)": [[2, "daemonpy.file_descriptor.FileDescriptor.STDIN"]], "stdout (daemonpy.file_descriptor.filedescriptor attribute)": [[2, "daemonpy.file_descriptor.FileDescriptor.STDOUT"]], "_p_verbose (daemonpy.file_descriptor.filedescriptor attribute)": [[2, "daemonpy.file_descriptor.FileDescriptor._P_VERBOSE"]], "daemonpy.file_descriptor": [[2, "module-daemonpy.file_descriptor"]], "fileprocessid (class in daemonpy.file_process_id)": [[3, "daemonpy.file_process_id.FileProcessId"]], "_mode (daemonpy.file_process_id.fileprocessid attribute)": [[3, "daemonpy.file_process_id.FileProcessId._MODE"]], "_p_verbose (daemonpy.file_process_id.fileprocessid attribute)": [[3, "daemonpy.file_process_id.FileProcessId._P_VERBOSE"]], "daemonpy.file_process_id": [[3, "module-daemonpy.file_process_id"]], "unixoperations (class in daemonpy.unix_operations)": [[4, "daemonpy.unix_operations.UnixOperations"]], "_no_process (daemonpy.unix_operations.unixoperations attribute)": [[4, "daemonpy.unix_operations.UnixOperations._NO_PROCESS"]], "_os_target (daemonpy.unix_operations.unixoperations attribute)": [[4, "daemonpy.unix_operations.UnixOperations._OS_TARGET"]], "_p_verbose (daemonpy.unix_operations.unixoperations attribute)": [[4, "daemonpy.unix_operations.UnixOperations._P_VERBOSE"]], "_sleep (daemonpy.unix_operations.unixoperations attribute)": [[4, "daemonpy.unix_operations.UnixOperations._SLEEP"]], "daemonpy.unix_operations": [[4, "module-daemonpy.unix_operations"]], "first_fork() (daemonpy.unix_operations.unixoperations method)": [[4, "daemonpy.unix_operations.UnixOperations.first_fork"]], "second_fork() (daemonpy.unix_operations.unixoperations method)": [[4, "daemonpy.unix_operations.UnixOperations.second_fork"]], "unix_kill() (daemonpy.unix_operations.unixoperations method)": [[4, "daemonpy.unix_operations.UnixOperations.unix_kill"]], "unix_status (daemonpy.unix_operations.unixoperations property)": [[4, "daemonpy.unix_operations.UnixOperations.unix_status"]]}}) \ No newline at end of file +Search.setIndex({"docnames": ["daemonpy", "daemonpy.daemon_usage", "daemonpy.file_descriptor", "daemonpy.file_process_id", "daemonpy.unix_operations", "index", "modules"], "filenames": ["daemonpy.rst", "daemonpy.daemon_usage.rst", "daemonpy.file_descriptor.rst", "daemonpy.file_process_id.rst", "daemonpy.unix_operations.rst", "index.rst", "modules.rst"], "titles": ["daemonpy package", "daemonpy.daemon_usage module", "daemonpy.file_descriptor module", "daemonpy.file_process_id module", "daemonpy.unix_operations module", "Creating Daemon process", "daemonpy"], "terms": {"daemon_usag": [0, 5, 6], "daemonusag": [0, 1, 6], "daemon_oper": [0, 1], "_p_verbos": [0, 1, 2, 3, 4, 6], "check": [0, 1], "usage_statu": [0, 1], "file_descriptor": [0, 5, 6], "filedescriptor": [0, 2, 6], "format": [0, 2], "stderr": [0, 2], "stdin": [0, 2], "stdout": [0, 2], "file_process_id": [0, 5, 6], "fileprocessid": [0, 3, 6], "_mode": [0, 3], "unix_oper": [0, 5, 6], "unixoper": [0, 4, 6], "_no_process": [0, 4], "_os_target": [0, 4], "_sleep": [0, 4], "first_fork": [0, 4], "second_fork": [0, 4], "unix_kil": [0, 4], "unix_statu": [0, 4], "__init__": [0, 1, 2, 3, 4, 5], "py": [0, 1, 2, 3, 4, 5], "copyright": [0, 1, 2, 3, 4], "c": [0, 1, 2, 3, 4, 5], "2020": [0, 1, 2, 3, 4, 5], "2024": [0, 1, 2, 3, 4, 5], "vladimir": [0, 1, 2, 3, 4, 5], "roncev": [0, 1, 2, 3, 4, 5], "elektron": [0, 1, 2, 3, 4, 5], "ronca": [0, 1, 2, 3, 4, 5], "gmail": [0, 1, 2, 3, 4, 5], "com": [0, 1, 2, 3, 4, 5], "i": [0, 1, 2, 3, 4, 5], "free": [0, 1, 2, 3, 4, 5], "softwar": [0, 1, 2, 3, 4, 5], "you": [0, 1, 2, 3, 4, 5], "can": [0, 1, 2, 3, 4, 5], "redistribut": [0, 1, 2, 3, 4, 5], "modifi": [0, 1, 2, 3, 4, 5], "under": [0, 1, 2, 3, 4, 5], "term": [0, 1, 2, 3, 4, 5], "gnu": [0, 1, 2, 3, 4, 5], "gener": [0, 1, 2, 3, 4, 5], "public": [0, 1, 2, 3, 4, 5], "licens": [0, 1, 2, 3, 4, 5], "publish": [0, 1, 2, 3, 4, 5], "foundat": [0, 1, 2, 3, 4, 5], "either": [0, 1, 2, 3, 4, 5], "version": [0, 1, 2, 3, 4, 5], "3": [0, 1, 2, 3, 4, 5], "your": [0, 1, 2, 3, 4, 5], "option": [0, 1, 2, 3, 4, 5], "ani": [0, 1, 2, 3, 4, 5], "later": [0, 1, 2, 3, 4, 5], "distribut": [0, 1, 2, 3, 4, 5], "hope": [0, 1, 2, 3, 4, 5], "us": [0, 1, 2, 3, 4, 5], "without": [0, 1, 2, 3, 4, 5], "warranti": [0, 1, 2, 3, 4, 5], "even": [0, 1, 2, 3, 4, 5], "impli": [0, 1, 2, 3, 4, 5], "merchant": [0, 1, 2, 3, 4, 5], "fit": [0, 1, 2, 3, 4, 5], "FOR": [0, 1, 2, 3, 4, 5], "A": [0, 1, 2, 3, 4, 5], "particular": [0, 1, 2, 3, 4, 5], "purpos": [0, 1, 2, 3, 4, 5], "see": [0, 1, 2, 3, 4, 5], "more": [0, 1, 2, 3, 4, 5], "detail": [0, 1, 2, 3, 4, 5], "should": [0, 1, 2, 3, 4, 5], "have": [0, 1, 2, 3, 4, 5], "receiv": [0, 1, 2, 3, 4, 5], "copi": [0, 1, 2, 3, 4, 5], "along": [0, 1, 2, 3, 4, 5], "thi": [0, 1, 2, 3, 4, 5], "program": [0, 1, 2, 3, 4, 5], "If": [0, 1, 2, 3, 4, 5], "http": [0, 1, 2, 3, 4, 5], "www": [0, 1, 2, 3, 4, 5], "org": [0, 1, 2, 3, 4, 5], "info": [0, 1, 2, 3, 4, 5], "defin": [0, 1, 2, 3, 4, 5], "class": [0, 1, 2, 3, 4, 5], "daemon": [0, 1, 6], "attribut": [0, 1, 2, 3, 4, 5], "": [0, 1, 2, 3, 4, 5], "method": [0, 1, 2, 3, 4, 5], "creat": [0, 1, 2, 3, 4], "base": [0, 1, 2, 3, 4, 5], "backend": 0, "api": [0, 1, 2, 3, 4], "pid": [0, 3, 4, 5], "str": [0, 1, 2, 3, 4], "verbos": [0, 1, 4], "bool": [0, 1, 4], "fals": [0, 1, 4], "sourc": [0, 1, 2, 3, 4], "It": [0, 1, 2, 3, 4, 5], "_pkg_verbos": [0, 1, 2, 3, 4], "consol": [0, 1, 2, 3, 4], "text": [0, 1, 2, 3, 4], "indic": [0, 1, 2, 3, 4], "process": [0, 1, 2, 3, 4], "phase": [0, 1, 2, 3, 4], "_daemon_usag": 0, "usag": [0, 1, 6], "_pid": [0, 3], "file": [0, 2, 3, 4, 5], "path": [0, 2, 3, 4], "initi": [0, 1, 2, 3, 4], "constructor": [0, 1, 2, 3, 4], "start": [0, 1, 4, 6], "stop": [0, 1, 6], "restart": [0, 1, 6], "exit_handl": [0, 6], "At": 0, "exit": [0, 4, 5], "delet": 0, "run": [0, 5, 6], "abstract": 0, "none": [0, 1, 3, 4, 5], "paramet": [0, 1, 4], "enabl": [0, 1, 4], "disabl": [0, 1, 4], "except": [0, 1, 4, 5], "remov": 0, "return": [0, 1, 4], "true": [0, 4, 5], "success": [0, 4], "oper": [0, 1, 4, 5], "type": [0, 1, 2, 4, 5], "overrid": 0, "when": 0, "subclass": 0, "self": [0, 5], "call": 0, "after": 0, "ha": 0, "been": 0, "atstypeerror": [0, 1, 4], "atsvalueerror": [0, 1, 4], "an": [1, 2, 3, 4, 5], "object": [1, 2, 3, 4], "list": [1, 3, 4], "support": [1, 2, 3, 4, 5], "_usage_statu": 1, "statu": [1, 4], "properti": [1, 4], "set": [1, 4, 5], "get": [1, 4], "int": [1, 2, 4], "descriptor": 2, "context": [2, 3], "manag": [2, 3], "desc_path": 2, "desc_typ": 2, "standard": 2, "input": 2, "stream": 2, "id": [2, 3, 4], "data": 2, "output": 2, "error": 2, "messag": [2, 4], "desciptor": 2, "mode": [2, 3], "_desc_path": 2, "devic": 2, "_desc_typ": 2, "_desc_fil": 2, "__enter__": [2, 3], "open": [2, 3, 4], "__exit__": [2, 3], "close": [2, 3, 5], "dict": 2, "0": [2, 4], "r": [2, 3, 5], "1": [2, 4, 5], "2": 2, "pid_path": [3, 4], "pid_mod": 3, "_pid_path": 3, "_pid_mod": 3, "w": 3, "unix": 4, "like": 4, "o": 4, "system": 4, "No": 4, "_unix_statu": 4, "make": 4, "sure": 4, "group": 4, "leader": 4, "won": 4, "t": 4, "mere": 4, "termin": 4, "kill": 4, "linux": 4, "linux2": 4, "float": 4, "code": [4, 5], "fork": 4, "fail": 4, "daemonpi": 5, "develop": 5, "python": 5, "100": 5, "The": 5, "readm": 5, "introduc": 5, "modul": [5, 6], "provid": 5, "instruct": 5, "how": 5, "machin": 5, "mai": 5, "other": 5, "inform": 5, "befor": 5, "ar": 5, "submodul": [5, 6], "navig": 5, "releas": 5, "page": 5, "download": 5, "extract": 5, "archiv": 5, "To": 5, "tar": 5, "xvzf": 5, "x": 5, "y": 5, "z": 5, "gz": 5, "cd": 5, "python3": 5, "pip3": 5, "requir": 5, "txt": 5, "m": 5, "build": 5, "dist": 5, "py3": 5, "whl": 5, "Or": 5, "follow": 5, "pyton3": 5, "setup": 5, "install_lib": 5, "install_egg_info": 5, "docker": 5, "imag": 5, "contain": 5, "pip": 5, "short": 5, "exampl": 5, "usr": 5, "bin": 5, "env": 5, "mydaemon": 5, "import": 5, "sy": 5, "from": 5, "time": 5, "sleep": 5, "try": 5, "importerror": 5, "ats_error_messag": 5, "forc": 5, "ATS": 5, "f": 5, "n": 5, "__file__": 5, "def": 5, "while": 5, "__name__": 5, "__main__": 5, "tmp": 5, "argv": 5, "next": 5, "librari": 5, "ats": 5, "util": 5, "app": 5, "tool": 5, "script": 5, "oop": 5, "directori": 5, "6": 5, "vroncev": 5, "github": 5, "io": 5, "same": 5, "itself": 5, "avail": 5, "let": 5, "help": 5, "psf": 5, "index": 5, "search": 5, "packag": 6, "content": 6}, "objects": {"": [[0, 0, 0, "-", "daemonpy"]], "daemonpy": [[0, 1, 1, "", "Daemon"], [1, 0, 0, "-", "daemon_usage"], [2, 0, 0, "-", "file_descriptor"], [3, 0, 0, "-", "file_process_id"], [4, 0, 0, "-", "unix_operations"]], "daemonpy.Daemon": [[0, 2, 1, "", "_P_VERBOSE"], [0, 3, 1, "", "daemonize"], [0, 3, 1, "", "exit_handler"], [0, 3, 1, "", "restart"], [0, 3, 1, "", "run"], [0, 3, 1, "", "start"], [0, 3, 1, "", "stop"], [0, 3, 1, "", "usage"]], "daemonpy.daemon_usage": [[1, 1, 1, "", "DaemonUsage"]], "daemonpy.daemon_usage.DaemonUsage": [[1, 2, 1, "", "DAEMON_OPERATIONS"], [1, 2, 1, "", "_P_VERBOSE"], [1, 3, 1, "", "check"], [1, 4, 1, "", "usage_status"]], "daemonpy.file_descriptor": [[2, 1, 1, "", "FileDescriptor"]], "daemonpy.file_descriptor.FileDescriptor": [[2, 2, 1, "", "FORMAT"], [2, 2, 1, "", "STDERR"], [2, 2, 1, "", "STDIN"], [2, 2, 1, "", "STDOUT"], [2, 2, 1, "", "_P_VERBOSE"]], "daemonpy.file_process_id": [[3, 1, 1, "", "FileProcessId"]], "daemonpy.file_process_id.FileProcessId": [[3, 2, 1, "", "_MODE"], [3, 2, 1, "", "_P_VERBOSE"]], "daemonpy.unix_operations": [[4, 1, 1, "", "UnixOperations"]], "daemonpy.unix_operations.UnixOperations": [[4, 2, 1, "", "_NO_PROCESS"], [4, 2, 1, "", "_OS_TARGET"], [4, 2, 1, "", "_P_VERBOSE"], [4, 2, 1, "", "_SLEEP"], [4, 3, 1, "", "first_fork"], [4, 3, 1, "", "second_fork"], [4, 3, 1, "", "unix_kill"], [4, 4, 1, "", "unix_status"]]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:attribute", "3": "py:method", "4": "py:property"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "attribute", "Python attribute"], "3": ["py", "method", "Python method"], "4": ["py", "property", "Python property"]}, "titleterms": {"daemonpi": [0, 1, 2, 3, 4, 6], "packag": [0, 5], "submodul": 0, "modul": [0, 1, 2, 3, 4], "content": [0, 5], "daemon_usag": 1, "file_descriptor": 2, "file_process_id": 3, "unix_oper": 4, "creat": 5, "daemon": 5, "process": 5, "instal": 5, "usag": 5, "depend": 5, "structur": 5, "copyright": 5, "licenc": 5, "indic": 5, "tabl": 5}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.viewcode": 1, "sphinx": 60}, "alltitles": {"daemonpy package": [[0, "daemonpy-package"]], "Submodules": [[0, "submodules"]], "Module contents": [[0, "module-daemonpy"]], "daemonpy.daemon_usage module": [[1, "module-daemonpy.daemon_usage"]], "daemonpy.file_descriptor module": [[2, "module-daemonpy.file_descriptor"]], "daemonpy.file_process_id module": [[3, "module-daemonpy.file_process_id"]], "daemonpy.unix_operations module": [[4, "module-daemonpy.unix_operations"]], "Creating Daemon process": [[5, "creating-daemon-process"]], "Contents:": [[5, null]], "Installation": [[5, "installation"]], "Usage": [[5, "usage"]], "Dependencies": [[5, "dependencies"]], "Package structure": [[5, "package-structure"]], "Copyright and licence": [[5, "copyright-and-licence"]], "Indices and tables": [[5, "indices-and-tables"]], "daemonpy": [[6, "daemonpy"]]}, "indexentries": {"daemon (class in daemonpy)": [[0, "daemonpy.Daemon"]], "_p_verbose (daemonpy.daemon attribute)": [[0, "daemonpy.Daemon._P_VERBOSE"]], "daemonize() (daemonpy.daemon method)": [[0, "daemonpy.Daemon.daemonize"]], "daemonpy": [[0, "module-daemonpy"]], "exit_handler() (daemonpy.daemon method)": [[0, "daemonpy.Daemon.exit_handler"]], "module": [[0, "module-daemonpy"], [1, "module-daemonpy.daemon_usage"], [2, "module-daemonpy.file_descriptor"], [3, "module-daemonpy.file_process_id"], [4, "module-daemonpy.unix_operations"]], "restart() (daemonpy.daemon method)": [[0, "daemonpy.Daemon.restart"]], "run() (daemonpy.daemon method)": [[0, "daemonpy.Daemon.run"]], "start() (daemonpy.daemon method)": [[0, "daemonpy.Daemon.start"]], "stop() (daemonpy.daemon method)": [[0, "daemonpy.Daemon.stop"]], "usage() (daemonpy.daemon method)": [[0, "daemonpy.Daemon.usage"]], "daemon_operations (daemonpy.daemon_usage.daemonusage attribute)": [[1, "daemonpy.daemon_usage.DaemonUsage.DAEMON_OPERATIONS"]], "daemonusage (class in daemonpy.daemon_usage)": [[1, "daemonpy.daemon_usage.DaemonUsage"]], "_p_verbose (daemonpy.daemon_usage.daemonusage attribute)": [[1, "daemonpy.daemon_usage.DaemonUsage._P_VERBOSE"]], "check() (daemonpy.daemon_usage.daemonusage method)": [[1, "daemonpy.daemon_usage.DaemonUsage.check"]], "daemonpy.daemon_usage": [[1, "module-daemonpy.daemon_usage"]], "usage_status (daemonpy.daemon_usage.daemonusage property)": [[1, "daemonpy.daemon_usage.DaemonUsage.usage_status"]], "format (daemonpy.file_descriptor.filedescriptor attribute)": [[2, "daemonpy.file_descriptor.FileDescriptor.FORMAT"]], "filedescriptor (class in daemonpy.file_descriptor)": [[2, "daemonpy.file_descriptor.FileDescriptor"]], "stderr (daemonpy.file_descriptor.filedescriptor attribute)": [[2, "daemonpy.file_descriptor.FileDescriptor.STDERR"]], "stdin (daemonpy.file_descriptor.filedescriptor attribute)": [[2, "daemonpy.file_descriptor.FileDescriptor.STDIN"]], "stdout (daemonpy.file_descriptor.filedescriptor attribute)": [[2, "daemonpy.file_descriptor.FileDescriptor.STDOUT"]], "_p_verbose (daemonpy.file_descriptor.filedescriptor attribute)": [[2, "daemonpy.file_descriptor.FileDescriptor._P_VERBOSE"]], "daemonpy.file_descriptor": [[2, "module-daemonpy.file_descriptor"]], "fileprocessid (class in daemonpy.file_process_id)": [[3, "daemonpy.file_process_id.FileProcessId"]], "_mode (daemonpy.file_process_id.fileprocessid attribute)": [[3, "daemonpy.file_process_id.FileProcessId._MODE"]], "_p_verbose (daemonpy.file_process_id.fileprocessid attribute)": [[3, "daemonpy.file_process_id.FileProcessId._P_VERBOSE"]], "daemonpy.file_process_id": [[3, "module-daemonpy.file_process_id"]], "unixoperations (class in daemonpy.unix_operations)": [[4, "daemonpy.unix_operations.UnixOperations"]], "_no_process (daemonpy.unix_operations.unixoperations attribute)": [[4, "daemonpy.unix_operations.UnixOperations._NO_PROCESS"]], "_os_target (daemonpy.unix_operations.unixoperations attribute)": [[4, "daemonpy.unix_operations.UnixOperations._OS_TARGET"]], "_p_verbose (daemonpy.unix_operations.unixoperations attribute)": [[4, "daemonpy.unix_operations.UnixOperations._P_VERBOSE"]], "_sleep (daemonpy.unix_operations.unixoperations attribute)": [[4, "daemonpy.unix_operations.UnixOperations._SLEEP"]], "daemonpy.unix_operations": [[4, "module-daemonpy.unix_operations"]], "first_fork() (daemonpy.unix_operations.unixoperations method)": [[4, "daemonpy.unix_operations.UnixOperations.first_fork"]], "second_fork() (daemonpy.unix_operations.unixoperations method)": [[4, "daemonpy.unix_operations.UnixOperations.second_fork"]], "unix_kill() (daemonpy.unix_operations.unixoperations method)": [[4, "daemonpy.unix_operations.UnixOperations.unix_kill"]], "unix_status (daemonpy.unix_operations.unixoperations property)": [[4, "daemonpy.unix_operations.UnixOperations.unix_status"]]}}) \ No newline at end of file diff --git a/docs/source/conf.py b/docs/source/conf.py index 7595689..9211348 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -29,7 +29,7 @@ project: str = 'daemonpy' project_copyright: str = '2024, Vladimir Roncevic ' author: str = 'Vladimir Roncevic ' -version: str = '2.0.4' +version: str = '2.0.5' release: str = 'https://github.com/vroncevic/daemonpy/releases' extensions: List[str] = ['sphinx.ext.autodoc', 'sphinx.ext.viewcode'] templates_path: List[str] = ['_templates'] diff --git a/docs/source/index.rst b/docs/source/index.rst index db877d1..87c9bb2 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -155,11 +155,14 @@ Package structure .. code-block:: bash daemonpy/ - ├── daemon_usage.py - ├── file_descriptor.py - ├── file_process_id.py - ├── __init__.py - └── unix_operations.py + ├── daemon_usage.py + ├── file_descriptor.py + ├── file_process_id.py + ├── __init__.py + ├── py.typed + └── unix_operations.py + + 1 directory, 6 files Copyright and licence ---------------------- diff --git a/setup.cfg b/setup.cfg index 8d222d7..d98a042 100644 --- a/setup.cfg +++ b/setup.cfg @@ -19,7 +19,7 @@ [metadata] name = daemonpy -version = 2.0.4 +version = 2.0.5 author = Vladimir Roncevic author_email = elektron.ronca@gmail.com description = Creating Daemon process diff --git a/setup.py b/setup.py index 9ffdbb8..8e98029 100644 --- a/setup.py +++ b/setup.py @@ -21,7 +21,7 @@ ''' from __future__ import print_function -from typing import List +from typing import List, Optional from os.path import abspath, dirname, join from setuptools import setup @@ -29,13 +29,13 @@ __copyright__ = '(C) 2024, https://vroncevic.github.io/daemonpy' __credits__: List[str] = ['Vladimir Roncevic', 'Python Software Foundation'] __license__ = 'https://github.com/vroncevic/daemonpy/blob/dev/LICENSE' -__version__ = '2.0.4' +__version__ = '2.0.5' __maintainer__ = 'Vladimir Roncevic' __email__ = 'elektron.ronca@gmail.com' __status__ = 'Updated' THIS_DIR: str = abspath(dirname(__file__)) -long_description: str | None = None +long_description: Optional[str] = None with open(join(THIS_DIR, 'README.md'), encoding='utf-8') as readme: long_description = readme.read() PROGRAMMING_LANG: str = 'Programming Language :: Python ::' @@ -57,7 +57,7 @@ PYP_CLASSIFIERS: List[str] = SUPPORTED_PY_VERSIONS + APPROVED_LICENSES setup( name='daemonpy', - version='2.0.4', + version='2.0.5', description='Creating Daemon process', author='Vladimir Roncevic', author_email='elektron.ronca@gmail.com', diff --git a/tests/.coverage b/tests/.coverage index 62b016d8f99816c4e109906df177a8ed3de0baed..444d571ee3e1fdaf5606bafd30b0a6711cfcaf9f 100644 GIT binary patch delta 22 ecmZozz}&EadBe_rcG&~p;}3|+Y(CKM-~a$}DGBTV delta 22 ecmZozz}&EadBe_rcGeGn#S2*3Hy`MCZ~y>pUkObB diff --git a/tests/daemon_test.py b/tests/daemon_test.py index a0ac98d..85768d6 100644 --- a/tests/daemon_test.py +++ b/tests/daemon_test.py @@ -39,7 +39,7 @@ __copyright__ = '(C) 2024, https://vroncevic.github.io/daemonpy' __credits__: List[str] = ['Vladimir Roncevic', 'Python Software Foundation'] __license__ = 'https://github.com/vroncevic/daemonpy/blob/dev/LICENSE' -__version__ = '2.0.4' +__version__ = '2.0.5' __maintainer__ = 'Vladimir Roncevic' __email__ = 'elektron.ronca@gmail.com' __status__ = 'Updated' @@ -58,7 +58,7 @@ class MyDaemon(Daemon): | run - Runs Daemon process (defined method). ''' - def run(self): + def run(self) -> None: ''' Runs Daemon process with time sleep example. diff --git a/tests/daemon_usage_test.py b/tests/daemon_usage_test.py index 1d6ced2..ac256ab 100644 --- a/tests/daemon_usage_test.py +++ b/tests/daemon_usage_test.py @@ -38,7 +38,7 @@ __copyright__ = '(C) 2024, https://vroncevic.github.io/daemonpy' __credits__: List[str] = ['Vladimir Roncevic', 'Python Software Foundation'] __license__ = 'https://github.com/vroncevic/daemonpy/blob/dev/LICENSE' -__version__ = '2.0.4' +__version__ = '2.0.5' __maintainer__ = 'Vladimir Roncevic' __email__ = 'elektron.ronca@gmail.com' __status__ = 'Updated' diff --git a/tests/file_descriptor_test.py b/tests/file_descriptor_test.py index 9f5e005..cfce9c9 100644 --- a/tests/file_descriptor_test.py +++ b/tests/file_descriptor_test.py @@ -38,7 +38,7 @@ __copyright__ = '(C) 2024, https://vroncevic.github.io/daemonpy' __credits__: List[str] = ['Vladimir Roncevic', 'Python Software Foundation'] __license__ = 'https://github.com/vroncevic/daemonpy/blob/dev/LICENSE' -__version__ = '2.0.4' +__version__ = '2.0.5' __maintainer__ = 'Vladimir Roncevic' __email__ = 'elektron.ronca@gmail.com' __status__ = 'Updated' diff --git a/tests/file_process_id_test.py b/tests/file_process_id_test.py index f01d3b9..2048343 100644 --- a/tests/file_process_id_test.py +++ b/tests/file_process_id_test.py @@ -38,7 +38,7 @@ __copyright__ = '(C) 2024, https://vroncevic.github.io/daemonpy' __credits__: List[str] = ['Vladimir Roncevic', 'Python Software Foundation'] __license__ = 'https://github.com/vroncevic/daemonpy/blob/dev/LICENSE' -__version__ = '2.0.4' +__version__ = '2.0.5' __maintainer__ = 'Vladimir Roncevic' __email__ = 'elektron.ronca@gmail.com' __status__ = 'Updated' diff --git a/tests/unix_operations_test.py b/tests/unix_operations_test.py index f3ca4d5..c9b75c3 100644 --- a/tests/unix_operations_test.py +++ b/tests/unix_operations_test.py @@ -36,7 +36,7 @@ __copyright__ = '(C) 2024, https://vroncevic.github.io/daemonpy' __credits__: List[str] = ['Vladimir Roncevic', 'Python Software Foundation'] __license__ = 'https://github.com/vroncevic/daemonpy/blob/dev/LICENSE' -__version__ = '2.0.4' +__version__ = '2.0.5' __maintainer__ = 'Vladimir Roncevic' __email__ = 'elektron.ronca@gmail.com' __status__ = 'Updated'