Skip to content

Commit 8a7f935

Browse files
authored
isort and protected _get_handler (#5)
1 parent 57e7106 commit 8a7f935

File tree

7 files changed

+30
-25
lines changed

7 files changed

+30
-25
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
.html
22
.xml
33
.idea/
4+
.vscode/
45

56
# Byte-compiled / optimized / DLL files
67
__pycache__/

.pre-commit-config.yaml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,12 @@ repos:
22
-
33
repo: local
44
hooks:
5-
# -
6-
# id: isort
7-
# name: isort
8-
# entry: isort
9-
# language: system
10-
# files: ^(winregistry|test)/.+\.py$
5+
-
6+
id: isort
7+
name: isort
8+
entry: isort
9+
language: system
10+
files: ^(winregistry|test)/.+\.py$
1111
-
1212
id: black
1313
name: black

poetry.lock

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pyproject.toml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[tool.poetry]
22
name = "winregistry"
3-
version = "1.0.0"
3+
version = "1.0.1"
44
description = "Library aimed at working with Windows registry"
55
authors = ["Aleksandr Shpak <shpaker@gmail.com>"]
66
readme = "readme.md"
@@ -29,6 +29,7 @@ pre-commit = "^2.13.0"
2929
pytest = "^6.2.4"
3030
black = "^21.6b0"
3131
robotframework = "^4.0.3"
32+
isort = "^5.9.2"
3233

3334
[build-system]
3435
requires = ["poetry-core>=1.0.0"]
@@ -57,7 +58,7 @@ force_grid_wrap = 0
5758
use_parentheses = true
5859
ensure_newline_before_comments = true
5960
line_length = 120
60-
src_paths = ["soxyproxy", "test"]
61+
src_paths = ["winregistry", "test"]
6162
skip = [".mypy_cache", ".pytest_cache", "venv"]
6263

6364
[tool.pylint.messages_control]

readme.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,12 @@ TEST_REG_PATH = r"HKLM\SOFTWARE\_REMOVE_ME_"
1717

1818

1919
if __name__ == "__main__":
20-
with WinRegistry() as client:
21-
client.create_key(TEST_REG_PATH)
22-
client.write_entry(TEST_REG_PATH, "remove_me", "test")
23-
test_entry = client.read_entry(TEST_REG_PATH, "remove_me")
24-
assert test_entry.value == "test"
25-
client.delete_entry(TEST_REG_PATH, "remove_me")
20+
with WinRegistry() as client:
21+
client.create_key(TEST_REG_PATH)
22+
client.write_entry(TEST_REG_PATH, "remove_me", "test")
23+
test_entry = client.read_entry(TEST_REG_PATH, "remove_me")
24+
assert test_entry.value == "test"
25+
client.delete_entry(TEST_REG_PATH, "remove_me")
2626
```
2727

2828
Usage with ``Robot Testing Framework`` Library

tests/test_utils.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ def test_parse_path() -> None:
3333

3434
def test_get_key_handle() -> None:
3535
with WinRegistry() as reg:
36-
handler = reg.get_handler(
36+
handler = reg._get_handler(
3737
r"HKLM\SOFTWARE",
3838
access=KEY_READ,
3939
key_wow64_32key=False,

winregistry/winregistry.py

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ def __init__(
3232
self._handler = None
3333
self._root: Optional[HKEYType] = None
3434

35-
def get_handler(
35+
def _get_handler(
3636
self,
3737
key: str,
3838
access: int,
@@ -50,12 +50,15 @@ def get_handler(
5050
)
5151
return key_handle
5252

53+
def close(self) -> None:
54+
if self._client:
55+
self._client.Close()
56+
5357
def __enter__(self) -> "WinRegistry":
5458
return self
5559

5660
def __exit__(self, exc_type, exc_val, exc_tb): # type: ignore
57-
if self._client:
58-
self._client.Close()
61+
self.close()
5962
if exc_val:
6063
raise
6164

@@ -65,7 +68,7 @@ def read_entry(
6568
name: str,
6669
key_wow64_32key: bool = False,
6770
) -> RegEntry:
68-
handle = self.get_handler(reg_key, KEY_READ, key_wow64_32key)
71+
handle = self._get_handler(reg_key, KEY_READ, key_wow64_32key)
6972
raw_value, raw_type = QueryValueEx(handle, name)
7073
return RegEntry(
7174
reg_key=reg_key,
@@ -85,7 +88,7 @@ def write_entry(
8588
) -> None:
8689
if isinstance(reg_type, int):
8790
reg_type = WinregType(reg_type)
88-
handle = self.get_handler(reg_key, KEY_SET_VALUE, key_wow64_32key)
91+
handle = self._get_handler(reg_key, KEY_SET_VALUE, key_wow64_32key)
8992
SetValueEx(handle, name, 0, reg_type.value, value)
9093

9194
def delete_entry(
@@ -94,15 +97,15 @@ def delete_entry(
9497
name: str,
9598
key_wow64_32key: bool = False,
9699
) -> None:
97-
handle = self.get_handler(key, KEY_SET_VALUE, key_wow64_32key)
100+
handle = self._get_handler(key, KEY_SET_VALUE, key_wow64_32key)
98101
DeleteValue(handle, name)
99102

100103
def read_key(
101104
self,
102105
name: str,
103106
key_wow64_32key: bool = False,
104107
) -> RegKey:
105-
handle = self.get_handler(name, KEY_READ, key_wow64_32key)
108+
handle = self._get_handler(name, KEY_READ, key_wow64_32key)
106109
keys_num, values_num, modify = QueryInfoKey(handle)
107110
modify_at = datetime(1601, 1, 1) + timedelta(microseconds=modify / 10)
108111
keys = list()
@@ -138,7 +141,7 @@ def create_key(
138141
while i < len(sub_keys) and not handler:
139142
try:
140143
current = "\\".join(sub_keys[: len(sub_keys) - i])
141-
handler = self.get_handler(current, KEY_WRITE, key_wow64_32key)
144+
handler = self._get_handler(current, KEY_WRITE, key_wow64_32key)
142145
except FileNotFoundError:
143146
i += 1
144147
before_index = len(sub_keys) - i
@@ -156,5 +159,5 @@ def delete_key(
156159
key_wow64_32key: bool = False,
157160
) -> None:
158161
parental, key_name = name.rsplit(sep="\\", maxsplit=1)
159-
handle = self.get_handler(parental, KEY_WRITE, key_wow64_32key)
162+
handle = self._get_handler(parental, KEY_WRITE, key_wow64_32key)
160163
DeleteKey(handle, key_name)

0 commit comments

Comments
 (0)