Skip to content

Commit 7324224

Browse files
committed
Add ruff to project
1 parent 3fe03fc commit 7324224

File tree

5 files changed

+76
-37
lines changed

5 files changed

+76
-37
lines changed

pantherdb/__init__.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
from pantherdb.pantherdb import *
1+
from pantherdb.pantherdb import * # noqa: F403
22

3-
__version__ = '1.2.7'
3+
__version__ = '1.2.8'
44

55

66
__all__ = ('__version__', 'PantherDB', 'PantherCollection', 'PantherDocument', 'PantherDBException')

pantherdb/pantherdb.py

+36-16
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
from __future__ import annotations
2-
import os.path
2+
3+
from pathlib import Path
4+
35
import orjson as json
46
from cryptography.fernet import Fernet, InvalidToken
57

@@ -15,7 +17,13 @@ class PantherDB:
1517
__return_dict: bool
1618
__content: dict
1719

18-
def __init__(self, db_name: str | None = None, return_dict: bool = False, secret_key: bytes | None = None):
20+
def __init__(
21+
self,
22+
*,
23+
db_name: str | None = None,
24+
return_dict: bool = False,
25+
secret_key: bytes | None = None,
26+
):
1927
self.__return_dict = return_dict
2028
self.__secret_key = secret_key
2129
self.__fernet = Fernet(self.__secret_key) if self.__secret_key else None
@@ -25,8 +33,7 @@ def __init__(self, db_name: str | None = None, return_dict: bool = False, secret
2533
if not db_name.endswith('pdb'):
2634
db_name = f'{db_name}.pdb'
2735
self.db_name = db_name
28-
if not os.path.exists(self.db_name):
29-
open(self.db_name, 'w').close()
36+
Path(self.db_name).touch(exist_ok=True)
3037

3138
def __str__(self) -> str:
3239
self._refresh()
@@ -79,7 +86,7 @@ def collection(self, collection_name: str) -> PantherCollection:
7986
db_name=self.db_name,
8087
collection_name=collection_name,
8188
return_dict=self.return_dict,
82-
secret_key=self.secret_key
89+
secret_key=self.secret_key,
8390
)
8491

8592
def close(self):
@@ -89,16 +96,21 @@ def close(self):
8996
class PantherCollection(PantherDB):
9097
__collection_name: str
9198

92-
def __init__(self, db_name: str, collection_name: str, return_dict: bool, secret_key: bytes):
99+
def __init__(
100+
self,
101+
*,
102+
db_name: str,
103+
collection_name: str,
104+
return_dict: bool,
105+
secret_key: bytes,
106+
):
93107
super().__init__(db_name=db_name, return_dict=return_dict, secret_key=secret_key)
94108
self.__collection_name = collection_name
95109

96110
def __str__(self) -> str:
97111
self._refresh()
98112

99-
if self.collection_name not in self.content:
100-
result = ''
101-
elif documents := self.content[self.collection_name]:
113+
if self.collection_name not in self.content or (documents := self.content[self.collection_name]):
102114
result = ''
103115
else:
104116
result = '\n'.join(f' {k}: {type(v).__name__}' for k, v in documents[0].items())
@@ -122,7 +134,7 @@ def __create_result(self, data: dict, /) -> PantherDocument | dict:
122134
collection_name=self.collection_name,
123135
return_dict=self.return_dict,
124136
secret_key=self.secret_key,
125-
**data
137+
**data,
126138
)
127139

128140
def _write_collection(self, documents: list) -> None:
@@ -136,7 +148,7 @@ def _drop_collection(self) -> None:
136148
self._write()
137149

138150
def _get_collection(self) -> list[dict]:
139-
"""return documents"""
151+
"""Return documents"""
140152
self._refresh()
141153
return self.content.get(self.collection_name, [])
142154

@@ -185,7 +197,7 @@ def delete(self) -> None:
185197
self.__check_is_panther_document()
186198
documents = self._get_collection()
187199
for d in documents:
188-
if d.get('_id') == self._id: # NOQA: Unresolved References
200+
if d.get('_id') == self._id: # noqa: Unresolved References
189201
documents.remove(d)
190202
self._write_collection(documents)
191203
break
@@ -246,7 +258,7 @@ def update(self, **kwargs) -> None:
246258
self.__check_is_panther_document()
247259
documents = self._get_collection()
248260
for d in documents:
249-
if d.get('_id') == self._id: # NOQA: Unresolved References
261+
if d.get('_id') == self._id: # noqa: Unresolved References
250262
for k, v in kwargs.items():
251263
d[k] = v
252264
setattr(self, k, v)
@@ -312,13 +324,21 @@ def drop(self) -> None:
312324
class PantherDocument(PantherCollection):
313325
__data: dict
314326

315-
def __init__(self, db_name: str, collection_name: str, return_dict: bool, secret_key: bytes, **kwargs):
327+
def __init__(
328+
self,
329+
*,
330+
db_name: str,
331+
collection_name: str,
332+
return_dict: bool,
333+
secret_key: bytes,
334+
**kwargs,
335+
):
316336
self.__data = kwargs
317337
super().__init__(
318338
db_name=db_name,
319339
collection_name=collection_name,
320340
return_dict=return_dict,
321-
secret_key=secret_key
341+
secret_key=secret_key,
322342
)
323343

324344
def __str__(self) -> str:
@@ -341,7 +361,7 @@ def __setattr__(self, key, value):
341361
'_PantherDB__content',
342362
'_PantherDB__fernet',
343363
'_PantherCollection__collection_name',
344-
'_PantherDocument__data'
364+
'_PantherDocument__data',
345365
]:
346366
try:
347367
object.__getattribute__(self, key)

ruff.toml

+22
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
exclude = [
2+
".venv",
3+
"build",
4+
".venv3.8",
5+
".venv312",
6+
".git",
7+
]
8+
select = [
9+
"ALL"
10+
]
11+
ignore = [
12+
"C901", "N818", "N805", "D1", "D2", "D400", "D415", "D401", "YTT", "ANN", "S", "B", "C4", "DTZ", "EM", "EXE",
13+
"FA", "INP", "PYI024", "PT", "RET503", "RET505", "ARG", "PTH123", "TD", "FIX", "PL", "RUF013", "TRY003", "TRY200"
14+
]
15+
16+
line-length = 120
17+
[flake8-quotes]
18+
inline-quotes = "single"
19+
20+
[per-file-ignores]
21+
"pantherdb/__init__.py" = ["F405"]
22+
"pantherdb/pantherdb.py" = ["A003"]

setup.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
1-
import os
21
import re
32

43
from setuptools import setup
54

65

76
def pantherdb_version() -> str:
8-
with open(os.path.join('pantherdb/__init__.py')) as f:
7+
with open('pantherdb/__init__.py') as f:
98
return re.search("__version__ = ['\"]([^'\"]+)['\"]", f.read()).group(1)
109

1110

1211
VERSION = pantherdb_version()
13-
DESCRIPTION = open('README.md').read()
12+
with open('README.md') as file:
13+
DESCRIPTION = file.read()
1414

1515
setup(
1616
name='pantherdb',

tests/test_normal.py

+13-16
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
1-
import os
2-
import orjson as json
31

2+
from pathlib import Path
3+
from unittest import TestCase
44
from uuid import uuid4
5+
6+
import orjson as json
57
from faker import Faker
6-
from unittest import TestCase
7-
from pantherdb import PantherDB, PantherCollection, PantherDocument
8+
9+
from pantherdb import PantherCollection, PantherDB, PantherDocument
810

911
f = Faker()
1012

@@ -19,7 +21,7 @@ def setUp(cls):
1921

2022
@classmethod
2123
def tearDown(cls):
22-
os.remove(cls.db_name)
24+
Path(cls.db_name).unlink()
2325

2426
@classmethod
2527
def create_junk_document(cls, collection) -> int:
@@ -30,20 +32,20 @@ def create_junk_document(cls, collection) -> int:
3032

3133
# Create DB
3234
def test_creation_of_db(self):
33-
self.assertTrue(os.path.exists(self.db_name))
34-
self.assertTrue(os.path.isfile(self.db_name))
35+
self.assertTrue(Path(self.db_name).exists())
36+
self.assertTrue(Path(self.db_name).is_file())
3537
self.assertEqual(self.db.db_name, self.db_name)
3638

3739
def test_creation_of_db_without_extension(self):
3840
db_name = uuid4().hex
3941
db = PantherDB(db_name=db_name)
4042
final_db_name = f'{db_name}.pdb'
4143

42-
self.assertTrue(os.path.exists(final_db_name))
43-
self.assertTrue(os.path.isfile(final_db_name))
44+
self.assertTrue(Path(final_db_name).exists())
45+
self.assertTrue(Path(final_db_name).is_file())
4446
self.assertEqual(db.db_name, final_db_name)
4547

46-
os.remove(final_db_name)
48+
Path(final_db_name).unlink()
4749

4850
def test_creation_of_collection(self):
4951
collection_name = f.word()
@@ -492,9 +494,6 @@ def test_document_fields(self):
492494
def test_document_save_method(self):
493495
collection = self.db.collection(f.word())
494496

495-
# Add others
496-
# _count = self.create_junk_document(collection)
497-
498497
# Insert with specific name
499498
first_name = f.first_name()
500499
collection.insert_one(first_name=first_name, last_name=f.last_name())
@@ -537,7 +536,5 @@ def test_document_json_method(self):
537536
self.assertEqual(obj.json(), json.dumps(_json).decode())
538537

539538

540-
# TODO: Test whole scenario with
541-
# - secret_key
542-
# - return_dict
539+
# TODO: Test whole scenario with -> secret_key, return_dict
543540
# TODO: Test where exceptions happen

0 commit comments

Comments
 (0)