aiida-pythonjob 0.3.2__tar.gz → 0.3.3__tar.gz

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.
Files changed (41) hide show
  1. {aiida_pythonjob-0.3.2/src/aiida_pythonjob.egg-info → aiida_pythonjob-0.3.3}/PKG-INFO +1 -1
  2. {aiida_pythonjob-0.3.2 → aiida_pythonjob-0.3.3}/pyproject.toml +1 -0
  3. {aiida_pythonjob-0.3.2 → aiida_pythonjob-0.3.3}/src/aiida_pythonjob/__init__.py +1 -1
  4. aiida_pythonjob-0.3.3/src/aiida_pythonjob/data/common_data.py +26 -0
  5. {aiida_pythonjob-0.3.2 → aiida_pythonjob-0.3.3}/src/aiida_pythonjob/data/jsonable_data.py +1 -11
  6. {aiida_pythonjob-0.3.2 → aiida_pythonjob-0.3.3/src/aiida_pythonjob.egg-info}/PKG-INFO +1 -1
  7. {aiida_pythonjob-0.3.2 → aiida_pythonjob-0.3.3}/src/aiida_pythonjob.egg-info/SOURCES.txt +1 -0
  8. {aiida_pythonjob-0.3.2 → aiida_pythonjob-0.3.3}/src/aiida_pythonjob.egg-info/entry_points.txt +1 -0
  9. {aiida_pythonjob-0.3.2 → aiida_pythonjob-0.3.3}/LICENSE +0 -0
  10. {aiida_pythonjob-0.3.2 → aiida_pythonjob-0.3.3}/README.md +0 -0
  11. {aiida_pythonjob-0.3.2 → aiida_pythonjob-0.3.3}/setup.cfg +0 -0
  12. {aiida_pythonjob-0.3.2 → aiida_pythonjob-0.3.3}/src/aiida_pythonjob/calculations/__init__.py +0 -0
  13. {aiida_pythonjob-0.3.2 → aiida_pythonjob-0.3.3}/src/aiida_pythonjob/calculations/pyfunction.py +0 -0
  14. {aiida_pythonjob-0.3.2 → aiida_pythonjob-0.3.3}/src/aiida_pythonjob/calculations/pythonjob.py +0 -0
  15. {aiida_pythonjob-0.3.2 → aiida_pythonjob-0.3.3}/src/aiida_pythonjob/calculations/utils.py +0 -0
  16. {aiida_pythonjob-0.3.2 → aiida_pythonjob-0.3.3}/src/aiida_pythonjob/config.py +0 -0
  17. {aiida_pythonjob-0.3.2 → aiida_pythonjob-0.3.3}/src/aiida_pythonjob/data/__init__.py +0 -0
  18. {aiida_pythonjob-0.3.2 → aiida_pythonjob-0.3.3}/src/aiida_pythonjob/data/atoms.py +0 -0
  19. {aiida_pythonjob-0.3.2 → aiida_pythonjob-0.3.3}/src/aiida_pythonjob/data/data_wrapper.py +0 -0
  20. {aiida_pythonjob-0.3.2 → aiida_pythonjob-0.3.3}/src/aiida_pythonjob/data/deserializer.py +0 -0
  21. {aiida_pythonjob-0.3.2 → aiida_pythonjob-0.3.3}/src/aiida_pythonjob/data/pickled_data.py +0 -0
  22. {aiida_pythonjob-0.3.2 → aiida_pythonjob-0.3.3}/src/aiida_pythonjob/data/serializer.py +0 -0
  23. {aiida_pythonjob-0.3.2 → aiida_pythonjob-0.3.3}/src/aiida_pythonjob/data/utils.py +0 -0
  24. {aiida_pythonjob-0.3.2 → aiida_pythonjob-0.3.3}/src/aiida_pythonjob/decorator.py +0 -0
  25. {aiida_pythonjob-0.3.2 → aiida_pythonjob-0.3.3}/src/aiida_pythonjob/launch.py +0 -0
  26. {aiida_pythonjob-0.3.2 → aiida_pythonjob-0.3.3}/src/aiida_pythonjob/parsers/__init__.py +0 -0
  27. {aiida_pythonjob-0.3.2 → aiida_pythonjob-0.3.3}/src/aiida_pythonjob/parsers/pythonjob.py +0 -0
  28. {aiida_pythonjob-0.3.2 → aiida_pythonjob-0.3.3}/src/aiida_pythonjob/parsers/utils.py +0 -0
  29. {aiida_pythonjob-0.3.2 → aiida_pythonjob-0.3.3}/src/aiida_pythonjob/ports_adapter.py +0 -0
  30. {aiida_pythonjob-0.3.2 → aiida_pythonjob-0.3.3}/src/aiida_pythonjob/utils.py +0 -0
  31. {aiida_pythonjob-0.3.2 → aiida_pythonjob-0.3.3}/src/aiida_pythonjob.egg-info/dependency_links.txt +0 -0
  32. {aiida_pythonjob-0.3.2 → aiida_pythonjob-0.3.3}/src/aiida_pythonjob.egg-info/requires.txt +0 -0
  33. {aiida_pythonjob-0.3.2 → aiida_pythonjob-0.3.3}/src/aiida_pythonjob.egg-info/top_level.txt +0 -0
  34. {aiida_pythonjob-0.3.2 → aiida_pythonjob-0.3.3}/tests/test_create_env.py +0 -0
  35. {aiida_pythonjob-0.3.2 → aiida_pythonjob-0.3.3}/tests/test_data.py +0 -0
  36. {aiida_pythonjob-0.3.2 → aiida_pythonjob-0.3.3}/tests/test_entry_points.py +0 -0
  37. {aiida_pythonjob-0.3.2 → aiida_pythonjob-0.3.3}/tests/test_parser.py +0 -0
  38. {aiida_pythonjob-0.3.2 → aiida_pythonjob-0.3.3}/tests/test_pyfunction.py +0 -0
  39. {aiida_pythonjob-0.3.2 → aiida_pythonjob-0.3.3}/tests/test_pythonjob.py +0 -0
  40. {aiida_pythonjob-0.3.2 → aiida_pythonjob-0.3.3}/tests/test_serializer.py +0 -0
  41. {aiida_pythonjob-0.3.2 → aiida_pythonjob-0.3.3}/tests/test_utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: aiida-pythonjob
3
- Version: 0.3.2
3
+ Version: 0.3.3
4
4
  Summary: Run Python functions on a remote computer.
5
5
  Author-email: Xing Wang <xingwang1991@gmail.com>
6
6
  License: MIT License
@@ -55,6 +55,7 @@ Source = "https://github.com/aiidateam/aiida-pythonjob"
55
55
  "pythonjob.jsonable_data" = "aiida_pythonjob.data.jsonable_data:JsonableData"
56
56
  "pythonjob.pickled_data" = "aiida_pythonjob.data.pickled_data:PickledData"
57
57
  "pythonjob.ase.atoms.Atoms" = "aiida_pythonjob.data.atoms:AtomsData"
58
+ "pythonjob.builtins.NoneType" = "aiida_pythonjob.data.common_data:NoneData"
58
59
  "pythonjob.builtins.int" = "aiida.orm.nodes.data.int:Int"
59
60
  "pythonjob.builtins.float" = "aiida.orm.nodes.data.float:Float"
60
61
  "pythonjob.builtins.str" = "aiida.orm.nodes.data.str:Str"
@@ -1,6 +1,6 @@
1
1
  """AiiDA plugin that run Python function on remote computers."""
2
2
 
3
- __version__ = "0.3.2"
3
+ __version__ = "0.3.3"
4
4
 
5
5
  from node_graph import socket_spec as spec
6
6
 
@@ -0,0 +1,26 @@
1
+ from aiida import orm
2
+
3
+
4
+ class NoneData(orm.Data):
5
+ """
6
+ A Data node that explicitly represents a Python `None`.
7
+
8
+ - Has no repository content and (by default) no attributes.
9
+ - All instances have identical content hash, which is desirable here:
10
+ "None" is a single value.
11
+ """
12
+
13
+ # Convenience aliases to mirror simple-* nodes (Int, Bool, etc.)
14
+ @property
15
+ def value(self):
16
+ return None
17
+
18
+ @property
19
+ def obj(self):
20
+ return None
21
+
22
+ def __repr__(self) -> str:
23
+ return "NoneData()"
24
+
25
+ def __str__(self) -> str:
26
+ return "NoneData()"
@@ -14,7 +14,6 @@ class JsonableData(orm.Data):
14
14
  1) Detects multiple possible "to-dict" methods (as_dict, to_dict, todict, etc.)
15
15
  2) Converts non-JSON-serializable items (e.g. NumPy arrays) into JSON-friendly formats
16
16
  3) Rebuilds the object via one of various possible "from-dict" methods.
17
- 4) Safely handles `None`.
18
17
  """
19
18
 
20
19
  _DICT_METHODS = ["as_dict", "to_dict", "todict", "asdict"]
@@ -24,15 +23,9 @@ class JsonableData(orm.Data):
24
23
  def __init__(self, obj: typing.Any, *args, **kwargs):
25
24
  """
26
25
  Construct the node for the to-be-wrapped object.
27
- If `obj` is None, we simply store a flag indicating that.
28
26
  """
29
27
  super().__init__(*args, **kwargs)
30
28
 
31
- if obj is None:
32
- self.base.attributes.set("is_none", True)
33
- self._obj = None
34
- return
35
-
36
29
  dictionary = self._extract_dict(obj)
37
30
 
38
31
  dictionary.setdefault("@class", obj.__class__.__name__)
@@ -107,9 +100,6 @@ class JsonableData(orm.Data):
107
100
  Return the wrapped Python object. If not cached in `_obj`,
108
101
  we reconstruct it by calling one of the recognized 'from-dict' methods.
109
102
  """
110
- if self.base.attributes.get("is_none", False):
111
- self._obj = None
112
- return None
113
103
 
114
104
  if hasattr(self, "_obj"):
115
105
  return self._obj
@@ -154,7 +144,7 @@ class JsonableData(orm.Data):
154
144
 
155
145
  @property
156
146
  def obj(self) -> typing.Any:
157
- """Return the wrapped Python object (or None if `is_none` is set)."""
147
+ """Return the wrapped Python object."""
158
148
  return self._get_object()
159
149
 
160
150
  @property
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: aiida-pythonjob
3
- Version: 0.3.2
3
+ Version: 0.3.3
4
4
  Summary: Run Python functions on a remote computer.
5
5
  Author-email: Xing Wang <xingwang1991@gmail.com>
6
6
  License: MIT License
@@ -19,6 +19,7 @@ src/aiida_pythonjob/calculations/pythonjob.py
19
19
  src/aiida_pythonjob/calculations/utils.py
20
20
  src/aiida_pythonjob/data/__init__.py
21
21
  src/aiida_pythonjob/data/atoms.py
22
+ src/aiida_pythonjob/data/common_data.py
22
23
  src/aiida_pythonjob/data/data_wrapper.py
23
24
  src/aiida_pythonjob/data/deserializer.py
24
25
  src/aiida_pythonjob/data/jsonable_data.py
@@ -3,6 +3,7 @@ pythonjob.pythonjob = aiida_pythonjob.calculations.pythonjob:PythonJob
3
3
 
4
4
  [aiida.data]
5
5
  pythonjob.ase.atoms.Atoms = aiida_pythonjob.data.atoms:AtomsData
6
+ pythonjob.builtins.NoneType = aiida_pythonjob.data.common_data:NoneData
6
7
  pythonjob.builtins.bool = aiida.orm.nodes.data.bool:Bool
7
8
  pythonjob.builtins.dict = aiida_pythonjob.data.data_wrapper:Dict
8
9
  pythonjob.builtins.float = aiida.orm.nodes.data.float:Float
File without changes