Skip to content

Commit

Permalink
Merge pull request #42 from vroncevic/dev
Browse files Browse the repository at this point in the history
[daemonpy] Updated code coverage, fixed setup.py, updated docs
  • Loading branch information
vroncevic committed Jul 3, 2024
2 parents ac90cdd + 4596c24 commit 8dac9ab
Show file tree
Hide file tree
Showing 27 changed files with 115 additions and 99 deletions.
13 changes: 8 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
16 changes: 8 additions & 8 deletions daemonpy/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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'
Expand Down Expand Up @@ -85,17 +85,17 @@ 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:
raise ATSTypeError(error_msg)
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
Expand All @@ -110,8 +110,8 @@ def usage(self, operation: str, verbose: bool = False) -> None:
: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)
Expand Down
8 changes: 4 additions & 4 deletions daemonpy/daemon_usage.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
'''

import sys
from typing import List
from typing import List, Optional

try:
from ats_utilities.checker import ATSChecker
Expand All @@ -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'
Expand Down Expand Up @@ -106,8 +106,8 @@ def check(self, daemon_operation: str, verbose: bool = False) -> None:
: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)
Expand Down
10 changes: 5 additions & 5 deletions daemonpy/file_descriptor.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -81,8 +81,8 @@ def __init__(self, desc_path: str, desc_type: Any) -> None:
: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)
Expand All @@ -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:
'''
Expand Down
26 changes: 14 additions & 12 deletions daemonpy/file_process_id.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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'
Expand Down Expand Up @@ -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: <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)
Expand All @@ -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: <TextIOWrapper> | <NoneType>
:rtype: <Optional[IO[Any]]>
:exceptions: None
'''
if bool(self._pid_path) and bool(self._pid_mode):
Expand Down
8 changes: 4 additions & 4 deletions daemonpy/unix_operations.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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'
Expand Down Expand Up @@ -153,8 +153,8 @@ def unix_kill(
: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)
Expand Down
Binary file modified docs/build/doctrees/environment.pickle
Binary file not shown.
Binary file modified docs/build/doctrees/index.doctree
Binary file not shown.
16 changes: 8 additions & 8 deletions docs/build/html/_modules/daemonpy.html
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ <h1>Source code for daemonpy</h1><div class="highlight"><pre>
<span class="sd">&#39;&#39;&#39;</span>

<span class="kn">import</span> <span class="nn">sys</span>
<span class="kn">from</span> <span class="nn">typing</span> <span class="kn">import</span> <span class="n">List</span>
<span class="kn">from</span> <span class="nn">typing</span> <span class="kn">import</span> <span class="n">List</span><span class="p">,</span> <span class="n">Optional</span>
<span class="kn">from</span> <span class="nn">atexit</span> <span class="kn">import</span> <span class="n">register</span>
<span class="kn">from</span> <span class="nn">os.path</span> <span class="kn">import</span> <span class="n">exists</span>
<span class="kn">from</span> <span class="nn">os</span> <span class="kn">import</span> <span class="n">chdir</span><span class="p">,</span> <span class="n">setsid</span><span class="p">,</span> <span class="n">umask</span><span class="p">,</span> <span class="n">dup2</span><span class="p">,</span> <span class="n">getpid</span><span class="p">,</span> <span class="n">remove</span>
Expand All @@ -83,7 +83,7 @@ <h1>Source code for daemonpy</h1><div class="highlight"><pre>
<span class="n">__copyright__</span> <span class="o">=</span> <span class="s1">&#39;(C) 2024, https://vroncevic.github.io/daemonpy&#39;</span>
<span class="n">__credits__</span><span class="p">:</span> <span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="p">[</span><span class="s1">&#39;Vladimir Roncevic&#39;</span><span class="p">,</span> <span class="s1">&#39;Python Software Foundation&#39;</span><span class="p">]</span>
<span class="n">__license__</span> <span class="o">=</span> <span class="s1">&#39;https://github.com/vroncevic/daemonpy/blob/dev/LICENSE&#39;</span>
<span class="n">__version__</span> <span class="o">=</span> <span class="s1">&#39;2.0.4&#39;</span>
<span class="n">__version__</span> <span class="o">=</span> <span class="s1">&#39;2.0.5&#39;</span>
<span class="n">__maintainer__</span> <span class="o">=</span> <span class="s1">&#39;Vladimir Roncevic&#39;</span>
<span class="n">__email__</span> <span class="o">=</span> <span class="s1">&#39;elektron.ronca@gmail.com&#39;</span>
<span class="n">__status__</span> <span class="o">=</span> <span class="s1">&#39;Updated&#39;</span>
Expand Down Expand Up @@ -125,17 +125,17 @@ <h1>Source code for daemonpy</h1><div class="highlight"><pre>
<span class="sd"> :exceptions: ATSTypeError | ATSValueError</span>
<span class="sd"> &#39;&#39;&#39;</span>
<span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="fm">__init__</span><span class="p">()</span>
<span class="n">error_msg</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span>
<span class="n">error_id</span><span class="p">:</span> <span class="nb">int</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span>
<span class="n">error_msg</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>
<span class="n">error_id</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">int</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>
<span class="n">checker</span><span class="p">:</span> <span class="n">ATSChecker</span> <span class="o">=</span> <span class="n">ATSChecker</span><span class="p">()</span>
<span class="n">error_msg</span><span class="p">,</span> <span class="n">error_id</span> <span class="o">=</span> <span class="n">checker</span><span class="o">.</span><span class="n">check_params</span><span class="p">([(</span><span class="s1">&#39;str:pid&#39;</span><span class="p">,</span> <span class="n">pid</span><span class="p">)])</span>
<span class="k">if</span> <span class="n">error_id</span> <span class="o">==</span> <span class="n">checker</span><span class="o">.</span><span class="n">TYPE_ERROR</span><span class="p">:</span>
<span class="k">raise</span> <span class="n">ATSTypeError</span><span class="p">(</span><span class="n">error_msg</span><span class="p">)</span>
<span class="k">if</span> <span class="ow">not</span> <span class="nb">bool</span><span class="p">(</span><span class="n">pid</span><span class="p">):</span>
<span class="k">raise</span> <span class="n">ATSValueError</span><span class="p">(</span><span class="s1">&#39;missing PID file&#39;</span><span class="p">)</span>
<span class="n">verbose_message</span><span class="p">(</span><span class="n">verbose</span><span class="p">,</span> <span class="p">[</span><span class="sa">f</span><span class="s1">&#39;</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">_P_VERBOSE</span><span class="si">}</span><span class="s1"> init daemon&#39;</span><span class="p">])</span>
<span class="bp">self</span><span class="o">.</span><span class="n">_daemon_usage</span><span class="p">:</span> <span class="n">DaemonUsage</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span>
<span class="bp">self</span><span class="o">.</span><span class="n">_pid</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span>
<span class="bp">self</span><span class="o">.</span><span class="n">_daemon_usage</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="n">DaemonUsage</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>
<span class="bp">self</span><span class="o">.</span><span class="n">_pid</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">unix_status</span><span class="p">:</span>
<span class="bp">self</span><span class="o">.</span><span class="n">_daemon_usage</span> <span class="o">=</span> <span class="n">DaemonUsage</span><span class="p">()</span>
<span class="bp">self</span><span class="o">.</span><span class="n">_pid</span> <span class="o">=</span> <span class="n">pid</span>
Expand All @@ -152,8 +152,8 @@ <h1>Source code for daemonpy</h1><div class="highlight"><pre>
<span class="sd"> :type verbose: &lt;bool&gt;</span>
<span class="sd"> :exceptions: ATSTypeError | ATSValueError</span>
<span class="sd"> &#39;&#39;&#39;</span>
<span class="n">error_msg</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span>
<span class="n">error_id</span><span class="p">:</span> <span class="nb">int</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span>
<span class="n">error_msg</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>
<span class="n">error_id</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">int</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>
<span class="n">checker</span><span class="p">:</span> <span class="n">ATSChecker</span> <span class="o">=</span> <span class="n">ATSChecker</span><span class="p">()</span>
<span class="n">error_msg</span><span class="p">,</span> <span class="n">error_id</span> <span class="o">=</span> <span class="n">checker</span><span class="o">.</span><span class="n">check_params</span><span class="p">([</span>
<span class="p">(</span><span class="s1">&#39;str:operation&#39;</span><span class="p">,</span> <span class="n">operation</span><span class="p">)</span>
Expand Down
Loading

0 comments on commit 8dac9ab

Please sign in to comment.