pkn 0.1.0__py3-none-any.whl → 0.1.2__py3-none-any.whl
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.
- pkn/__init__.py +3 -1
- pkn/infra/common.py +1 -1
- pkn/infra/journalctl.py +1 -1
- pkn/pydantic/generic.py +0 -0
- pkn/pydantic/roots.py +4 -4
- pkn/tests/pydantic/test_roots.py +8 -0
- {pkn-0.1.0.dist-info → pkn-0.1.2.dist-info}/METADATA +9 -9
- pkn-0.1.2.dist-info/RECORD +17 -0
- {pkn-0.1.0.dist-info → pkn-0.1.2.dist-info}/licenses/LICENSE +1 -1
- pkn-0.1.0.dist-info/RECORD +0 -16
- {pkn-0.1.0.dist-info → pkn-0.1.2.dist-info}/WHEEL +0 -0
pkn/__init__.py
CHANGED
pkn/infra/common.py
CHANGED
pkn/infra/journalctl.py
CHANGED
pkn/pydantic/generic.py
ADDED
File without changes
|
pkn/pydantic/roots.py
CHANGED
@@ -1,12 +1,12 @@
|
|
1
|
-
from typing import Dict as DictType, List as ListType
|
1
|
+
from typing import Dict as DictType, List as ListType, Optional, Union
|
2
2
|
|
3
|
-
from pydantic import BaseModel, RootModel
|
3
|
+
from pydantic import BaseModel, Field, RootModel
|
4
4
|
|
5
5
|
__all__ = ("Dict", "List")
|
6
6
|
|
7
7
|
|
8
8
|
class Dict(RootModel):
|
9
|
-
root: DictType[str, BaseModel]
|
9
|
+
root: Optional[DictType[str, Optional[Union[BaseModel, "Dict", "List", int, float, str]]]] = Field(default_factory=dict)
|
10
10
|
|
11
11
|
def __iter__(self):
|
12
12
|
return iter(self.root)
|
@@ -46,7 +46,7 @@ class Dict(RootModel):
|
|
46
46
|
|
47
47
|
|
48
48
|
class List(RootModel):
|
49
|
-
root: ListType[BaseModel]
|
49
|
+
root: Optional[ListType[Union[BaseModel, "Dict", "List", int, float, str]]] = Field(default_factory=list)
|
50
50
|
|
51
51
|
def __iter__(self):
|
52
52
|
return iter(self.root)
|
pkn/tests/pydantic/test_roots.py
CHANGED
@@ -27,6 +27,10 @@ class TestPydanticRoots:
|
|
27
27
|
assert "a" not in d
|
28
28
|
assert "b" not in d
|
29
29
|
|
30
|
+
def test_dict_types(self):
|
31
|
+
d = Dict({"a": MyModel(a=1, b="b"), "b": "abc", "c": 1, "d": 1.2, "e": List(), "f": Dict(), "g": None})
|
32
|
+
assert len(d) == 7
|
33
|
+
|
30
34
|
def test_list(self):
|
31
35
|
lst = List([MyModel(a=1, b="b"), MyModel(a=2, b="c")])
|
32
36
|
assert len(lst) == 2
|
@@ -37,3 +41,7 @@ class TestPydanticRoots:
|
|
37
41
|
del lst[0]
|
38
42
|
assert len(lst) == 1
|
39
43
|
assert lst[0] == MyModel(a=2, b="c")
|
44
|
+
|
45
|
+
def test_list_types(self):
|
46
|
+
d = List([MyModel(a=1, b="b"), "abc", 1, 1.2, List(), Dict(), None])
|
47
|
+
assert len(d) == 7
|
@@ -1,10 +1,10 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: pkn
|
3
|
-
Version: 0.1.
|
3
|
+
Version: 0.1.2
|
4
4
|
Summary: My Pocket Knife
|
5
|
-
Project-URL: Repository, https://github.com/
|
6
|
-
Project-URL: Homepage, https://github.com/
|
7
|
-
Author-email:
|
5
|
+
Project-URL: Repository, https://github.com/1kbgz/pkn
|
6
|
+
Project-URL: Homepage, https://github.com/1kbgz/pkn
|
7
|
+
Author-email: the pkn authors <t.paine154@gmail.com>
|
8
8
|
License: Apache-2.0
|
9
9
|
License-File: LICENSE
|
10
10
|
Classifier: Development Status :: 3 - Alpha
|
@@ -14,10 +14,10 @@ Classifier: Programming Language :: Python :: 3.9
|
|
14
14
|
Classifier: Programming Language :: Python :: 3.10
|
15
15
|
Classifier: Programming Language :: Python :: 3.11
|
16
16
|
Classifier: Programming Language :: Python :: 3.12
|
17
|
+
Classifier: Programming Language :: Python :: 3.13
|
17
18
|
Classifier: Programming Language :: Python :: Implementation :: CPython
|
18
19
|
Classifier: Programming Language :: Python :: Implementation :: PyPy
|
19
20
|
Requires-Python: >=3.9
|
20
|
-
Requires-Dist: ccflow
|
21
21
|
Requires-Dist: pydantic
|
22
22
|
Provides-Extra: develop
|
23
23
|
Requires-Dist: build; extra == 'develop'
|
@@ -28,6 +28,7 @@ Requires-Dist: pytest; extra == 'develop'
|
|
28
28
|
Requires-Dist: pytest-cov; extra == 'develop'
|
29
29
|
Requires-Dist: ruff; extra == 'develop'
|
30
30
|
Requires-Dist: twine; extra == 'develop'
|
31
|
+
Requires-Dist: uv; extra == 'develop'
|
31
32
|
Requires-Dist: wheel; extra == 'develop'
|
32
33
|
Description-Content-Type: text/markdown
|
33
34
|
|
@@ -35,11 +36,10 @@ Description-Content-Type: text/markdown
|
|
35
36
|
|
36
37
|
My Pocket Knife
|
37
38
|
|
38
|
-
[](https://github.com/1kbgz/pkn/actions/workflows/build.yml)
|
40
|
+
[](https://codecov.io/gh/1kbgz/pkn)
|
41
|
+
[](https://github.com/1kbgz/pkn)
|
41
42
|
[](https://pypi.python.org/pypi/pkn)
|
42
|
-
[](https://mybinder.org/v2/gh/timkpaine/pkn/main?urlpath=lab)
|
43
43
|
|
44
44
|
## Overview
|
45
45
|
|
@@ -0,0 +1,17 @@
|
|
1
|
+
pkn/__init__.py,sha256=8KXL-9bF0pEahj6yBE3dQ2NqHbFoMSaPgJ_GxCzk3wI,47
|
2
|
+
pkn/infra/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
3
|
+
pkn/infra/at.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
4
|
+
pkn/infra/common.py,sha256=Ymsc6F60EUJoCxGNUbj2xQ4OwsVh5IwcOXFnn_mRGYE,744
|
5
|
+
pkn/infra/journalctl.py,sha256=ZbmEAcqJG3IoLUTy8Uwkx341ga0t-56SXl4Wa-ls1DY,287
|
6
|
+
pkn/infra/launchctl.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
7
|
+
pkn/infra/reboot.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
8
|
+
pkn/infra/systemctl.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
9
|
+
pkn/pydantic/__init__.py,sha256=M-lKT4BNEjAX0098TvC4U8CVnDTn4smN-fkMK9haopM,21
|
10
|
+
pkn/pydantic/generic.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
11
|
+
pkn/pydantic/roots.py,sha256=2jt5fbGGMDu7kEi6EYci21FFkLwxtEse1ldrAehTYyw,2575
|
12
|
+
pkn/tests/test_all.py,sha256=7jewXmZqf4xpkDjN1yc17oxTCHQIlxqWqgmm_l96kSI,60
|
13
|
+
pkn/tests/pydantic/test_roots.py,sha256=uNfzA5jqIDK8WVD-yIJdwTJOdec7HwmCwI677rbi86I,1377
|
14
|
+
pkn-0.1.2.dist-info/METADATA,sha256=6jFvA6_OYXNtxS75OFNnYB7t3MnHT4e_BzL_Hdild3A,2036
|
15
|
+
pkn-0.1.2.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
16
|
+
pkn-0.1.2.dist-info/licenses/LICENSE,sha256=88kGYCLkpYJl18wjFE_ggvtjqnPAm2zhiIgX12fG_ug,11345
|
17
|
+
pkn-0.1.2.dist-info/RECORD,,
|
@@ -186,7 +186,7 @@
|
|
186
186
|
same "printed page" as the copyright notice for easier
|
187
187
|
identification within third-party archives.
|
188
188
|
|
189
|
-
Copyright 2024
|
189
|
+
Copyright 2024 the pkn authors
|
190
190
|
|
191
191
|
Licensed under the Apache License, Version 2.0 (the "License");
|
192
192
|
you may not use this file except in compliance with the License.
|
pkn-0.1.0.dist-info/RECORD
DELETED
@@ -1,16 +0,0 @@
|
|
1
|
-
pkn/__init__.py,sha256=kUR5RAFc7HCeiqdlX36dZOHkUI5wI6V_43RpEcD8b-0,22
|
2
|
-
pkn/infra/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
3
|
-
pkn/infra/at.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
4
|
-
pkn/infra/common.py,sha256=sz3kWTz5GevyvkE_r2f1UZJkshHzF6Nto0sNxY-NiAU,742
|
5
|
-
pkn/infra/journalctl.py,sha256=vMQYjhcMpBKE6DuQfJZf_Sk5-_KNI5fXvyTtGZmEB3s,285
|
6
|
-
pkn/infra/launchctl.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
7
|
-
pkn/infra/reboot.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
8
|
-
pkn/infra/systemctl.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
9
|
-
pkn/pydantic/__init__.py,sha256=M-lKT4BNEjAX0098TvC4U8CVnDTn4smN-fkMK9haopM,21
|
10
|
-
pkn/pydantic/roots.py,sha256=CWB6yrk75KB1MQnrfapG-C1M3IZE97HgQxN0ttuUIgE,2381
|
11
|
-
pkn/tests/test_all.py,sha256=7jewXmZqf4xpkDjN1yc17oxTCHQIlxqWqgmm_l96kSI,60
|
12
|
-
pkn/tests/pydantic/test_roots.py,sha256=aX8TU00DTurUX7kal4LXeJKGhzF2TQiCs7lCEsYL-eo,1070
|
13
|
-
pkn-0.1.0.dist-info/METADATA,sha256=l6jmZuX4uBShTIZ8AhYl7iVcdI8a468kOPn3vIAf6hk,2103
|
14
|
-
pkn-0.1.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
15
|
-
pkn-0.1.0.dist-info/licenses/LICENSE,sha256=MBUqskyOIWKqZuWYdG4j_U1c68e-LnVuEXkUXvIx88A,11339
|
16
|
-
pkn-0.1.0.dist-info/RECORD,,
|
File without changes
|