bagofholding 0.1.3__tar.gz → 0.1.4__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 (35) hide show
  1. {bagofholding-0.1.3 → bagofholding-0.1.4}/PKG-INFO +3 -4
  2. {bagofholding-0.1.3 → bagofholding-0.1.4}/bagofholding/_version.py +16 -3
  3. {bagofholding-0.1.3/cached-miniforge/my-env/lib/python3.1/site-packages → bagofholding-0.1.4}/bagofholding/retrieve.py +15 -3
  4. {bagofholding-0.1.3 → bagofholding-0.1.4}/cached-miniforge/my-env/lib/python3.1/site-packages/bagofholding/_version.py +16 -3
  5. {bagofholding-0.1.3 → bagofholding-0.1.4/cached-miniforge/my-env/lib/python3.1/site-packages}/bagofholding/retrieve.py +15 -3
  6. {bagofholding-0.1.3 → bagofholding-0.1.4}/docs/README.md +2 -2
  7. {bagofholding-0.1.3 → bagofholding-0.1.4}/pyproject.toml +1 -1
  8. {bagofholding-0.1.3 → bagofholding-0.1.4}/.gitignore +0 -0
  9. {bagofholding-0.1.3 → bagofholding-0.1.4}/LICENSE +0 -0
  10. {bagofholding-0.1.3 → bagofholding-0.1.4}/bagofholding/__init__.py +0 -0
  11. {bagofholding-0.1.3 → bagofholding-0.1.4}/bagofholding/bag.py +0 -0
  12. {bagofholding-0.1.3 → bagofholding-0.1.4}/bagofholding/content.py +0 -0
  13. {bagofholding-0.1.3 → bagofholding-0.1.4}/bagofholding/exceptions.py +0 -0
  14. {bagofholding-0.1.3 → bagofholding-0.1.4}/bagofholding/h5/__init__.py +0 -0
  15. {bagofholding-0.1.3 → bagofholding-0.1.4}/bagofholding/h5/bag.py +0 -0
  16. {bagofholding-0.1.3 → bagofholding-0.1.4}/bagofholding/h5/content.py +0 -0
  17. {bagofholding-0.1.3 → bagofholding-0.1.4}/bagofholding/h5/context.py +0 -0
  18. {bagofholding-0.1.3 → bagofholding-0.1.4}/bagofholding/h5/dtypes.py +0 -0
  19. {bagofholding-0.1.3 → bagofholding-0.1.4}/bagofholding/h5/triebag.py +0 -0
  20. {bagofholding-0.1.3 → bagofholding-0.1.4}/bagofholding/metadata.py +0 -0
  21. {bagofholding-0.1.3 → bagofholding-0.1.4}/bagofholding/trie.py +0 -0
  22. {bagofholding-0.1.3 → bagofholding-0.1.4}/bagofholding/widget.py +0 -0
  23. {bagofholding-0.1.3 → bagofholding-0.1.4}/cached-miniforge/my-env/lib/python3.1/site-packages/bagofholding/__init__.py +0 -0
  24. {bagofholding-0.1.3 → bagofholding-0.1.4}/cached-miniforge/my-env/lib/python3.1/site-packages/bagofholding/bag.py +0 -0
  25. {bagofholding-0.1.3 → bagofholding-0.1.4}/cached-miniforge/my-env/lib/python3.1/site-packages/bagofholding/content.py +0 -0
  26. {bagofholding-0.1.3 → bagofholding-0.1.4}/cached-miniforge/my-env/lib/python3.1/site-packages/bagofholding/exceptions.py +0 -0
  27. {bagofholding-0.1.3 → bagofholding-0.1.4}/cached-miniforge/my-env/lib/python3.1/site-packages/bagofholding/h5/__init__.py +0 -0
  28. {bagofholding-0.1.3 → bagofholding-0.1.4}/cached-miniforge/my-env/lib/python3.1/site-packages/bagofholding/h5/bag.py +0 -0
  29. {bagofholding-0.1.3 → bagofholding-0.1.4}/cached-miniforge/my-env/lib/python3.1/site-packages/bagofholding/h5/content.py +0 -0
  30. {bagofholding-0.1.3 → bagofholding-0.1.4}/cached-miniforge/my-env/lib/python3.1/site-packages/bagofholding/h5/context.py +0 -0
  31. {bagofholding-0.1.3 → bagofholding-0.1.4}/cached-miniforge/my-env/lib/python3.1/site-packages/bagofholding/h5/dtypes.py +0 -0
  32. {bagofholding-0.1.3 → bagofholding-0.1.4}/cached-miniforge/my-env/lib/python3.1/site-packages/bagofholding/h5/triebag.py +0 -0
  33. {bagofholding-0.1.3 → bagofholding-0.1.4}/cached-miniforge/my-env/lib/python3.1/site-packages/bagofholding/metadata.py +0 -0
  34. {bagofholding-0.1.3 → bagofholding-0.1.4}/cached-miniforge/my-env/lib/python3.1/site-packages/bagofholding/trie.py +0 -0
  35. {bagofholding-0.1.3 → bagofholding-0.1.4}/cached-miniforge/my-env/lib/python3.1/site-packages/bagofholding/widget.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: bagofholding
3
- Version: 0.1.3
3
+ Version: 0.1.4
4
4
  Summary: bagofholding - browsable, partially-reloadable serialization for pickleable python objects.
5
5
  Project-URL: Homepage, https://pyiron.org/
6
6
  Project-URL: Documentation, https://bagofholding.readthedocs.io
@@ -47,7 +47,6 @@ Classifier: Topic :: Scientific/Engineering
47
47
  Requires-Python: <3.14,>=3.11
48
48
  Requires-Dist: bidict==0.23.1
49
49
  Requires-Dist: h5py<3.15.0,>=3.12.1
50
- Requires-Dist: mpi4py<4.2.0,>=4.0.1
51
50
  Requires-Dist: numpy<2.4.0,>=1.26.4
52
51
  Requires-Dist: pygtrie<2.6.0,>=2.5.0
53
52
  Requires-Dist: pyiron-snippets<=0.2.0,>=0.1.4
@@ -191,7 +190,7 @@ For a more in-depth look at the above features and to explore other aspects of `
191
190
  ## Object requirements
192
191
 
193
192
  Under-the-hood, we follow the same patterns as `pickle` by explicitly invoking many of the same method (`__reduce__`, `__setstate__`, etc).
194
- _Almost_ and object which can be pickled can be stored using `bagofholding`.
193
+ _Almost_ any object which can be pickled can be stored using `bagofholding`.
195
194
  Our requirements are that the object...
196
195
 
197
196
  - Must be pickleable
@@ -204,4 +203,4 @@ Our requirements are that the object...
204
203
  - `extend`
205
204
  - Must have a valid boolean response to `hasattr` for `__metadata__`, and this attribute must be castable to a string if present
206
205
 
207
- If your object satisfies these conditions and fails to "bag", please raise a bug report on the issues page!
206
+ If your object satisfies these conditions and fails to "bag", please raise a bug report on the issues page!
@@ -1,7 +1,14 @@
1
1
  # file generated by setuptools-scm
2
2
  # don't change, don't track in version control
3
3
 
4
- __all__ = ["__version__", "__version_tuple__", "version", "version_tuple"]
4
+ __all__ = [
5
+ "__version__",
6
+ "__version_tuple__",
7
+ "version",
8
+ "version_tuple",
9
+ "__commit_id__",
10
+ "commit_id",
11
+ ]
5
12
 
6
13
  TYPE_CHECKING = False
7
14
  if TYPE_CHECKING:
@@ -9,13 +16,19 @@ if TYPE_CHECKING:
9
16
  from typing import Union
10
17
 
11
18
  VERSION_TUPLE = Tuple[Union[int, str], ...]
19
+ COMMIT_ID = Union[str, None]
12
20
  else:
13
21
  VERSION_TUPLE = object
22
+ COMMIT_ID = object
14
23
 
15
24
  version: str
16
25
  __version__: str
17
26
  __version_tuple__: VERSION_TUPLE
18
27
  version_tuple: VERSION_TUPLE
28
+ commit_id: COMMIT_ID
29
+ __commit_id__: COMMIT_ID
19
30
 
20
- __version__ = version = '0.1.3'
21
- __version_tuple__ = version_tuple = (0, 1, 3)
31
+ __version__ = version = '0.1.4'
32
+ __version_tuple__ = version_tuple = (0, 1, 4)
33
+
34
+ __commit_id__ = commit_id = None
@@ -4,7 +4,7 @@ Helper functions for managing the relationship between strings and imports.
4
4
 
5
5
  from __future__ import annotations
6
6
 
7
- from importlib import import_module
7
+ import importlib
8
8
  from typing import Any
9
9
 
10
10
  from bagofholding.exceptions import StringNotImportableError
@@ -16,9 +16,21 @@ def import_from_string(library_path: str) -> Any:
16
16
  module_name, path = split_path[0], ""
17
17
  else:
18
18
  module_name, path = split_path
19
- obj = import_module(module_name)
19
+ obj = importlib.import_module(module_name)
20
20
  for k in path.split("."):
21
- obj = getattr(obj, k)
21
+ try:
22
+ obj = getattr(obj, k)
23
+ except AttributeError:
24
+ # Try importing as a submodule
25
+ # This can be necessary of an __init__.py is empty and nothing else has
26
+ # referenced the module yet
27
+ current_path = f"{obj.__name__}.{k}"
28
+ try:
29
+ obj = importlib.import_module(current_path)
30
+ except ImportError as e:
31
+ raise AttributeError(
32
+ f"module '{obj.__name__}' has no attribute '{k}'"
33
+ ) from e
22
34
  return obj
23
35
 
24
36
 
@@ -1,7 +1,14 @@
1
1
  # file generated by setuptools-scm
2
2
  # don't change, don't track in version control
3
3
 
4
- __all__ = ["__version__", "__version_tuple__", "version", "version_tuple"]
4
+ __all__ = [
5
+ "__version__",
6
+ "__version_tuple__",
7
+ "version",
8
+ "version_tuple",
9
+ "__commit_id__",
10
+ "commit_id",
11
+ ]
5
12
 
6
13
  TYPE_CHECKING = False
7
14
  if TYPE_CHECKING:
@@ -9,13 +16,19 @@ if TYPE_CHECKING:
9
16
  from typing import Union
10
17
 
11
18
  VERSION_TUPLE = Tuple[Union[int, str], ...]
19
+ COMMIT_ID = Union[str, None]
12
20
  else:
13
21
  VERSION_TUPLE = object
22
+ COMMIT_ID = object
14
23
 
15
24
  version: str
16
25
  __version__: str
17
26
  __version_tuple__: VERSION_TUPLE
18
27
  version_tuple: VERSION_TUPLE
28
+ commit_id: COMMIT_ID
29
+ __commit_id__: COMMIT_ID
19
30
 
20
- __version__ = version = '0.1.3'
21
- __version_tuple__ = version_tuple = (0, 1, 3)
31
+ __version__ = version = '0.1.4'
32
+ __version_tuple__ = version_tuple = (0, 1, 4)
33
+
34
+ __commit_id__ = commit_id = None
@@ -4,7 +4,7 @@ Helper functions for managing the relationship between strings and imports.
4
4
 
5
5
  from __future__ import annotations
6
6
 
7
- from importlib import import_module
7
+ import importlib
8
8
  from typing import Any
9
9
 
10
10
  from bagofholding.exceptions import StringNotImportableError
@@ -16,9 +16,21 @@ def import_from_string(library_path: str) -> Any:
16
16
  module_name, path = split_path[0], ""
17
17
  else:
18
18
  module_name, path = split_path
19
- obj = import_module(module_name)
19
+ obj = importlib.import_module(module_name)
20
20
  for k in path.split("."):
21
- obj = getattr(obj, k)
21
+ try:
22
+ obj = getattr(obj, k)
23
+ except AttributeError:
24
+ # Try importing as a submodule
25
+ # This can be necessary of an __init__.py is empty and nothing else has
26
+ # referenced the module yet
27
+ current_path = f"{obj.__name__}.{k}"
28
+ try:
29
+ obj = importlib.import_module(current_path)
30
+ except ImportError as e:
31
+ raise AttributeError(
32
+ f"module '{obj.__name__}' has no attribute '{k}'"
33
+ ) from e
22
34
  return obj
23
35
 
24
36
 
@@ -133,7 +133,7 @@ For a more in-depth look at the above features and to explore other aspects of `
133
133
  ## Object requirements
134
134
 
135
135
  Under-the-hood, we follow the same patterns as `pickle` by explicitly invoking many of the same method (`__reduce__`, `__setstate__`, etc).
136
- _Almost_ and object which can be pickled can be stored using `bagofholding`.
136
+ _Almost_ any object which can be pickled can be stored using `bagofholding`.
137
137
  Our requirements are that the object...
138
138
 
139
139
  - Must be pickleable
@@ -146,4 +146,4 @@ Our requirements are that the object...
146
146
  - `extend`
147
147
  - Must have a valid boolean response to `hasattr` for `__metadata__`, and this attribute must be castable to a string if present
148
148
 
149
- If your object satisfies these conditions and fails to "bag", please raise a bug report on the issues page!
149
+ If your object satisfies these conditions and fails to "bag", please raise a bug report on the issues page!
@@ -9,7 +9,7 @@ readme = "docs/README.md"
9
9
  keywords = [ "pyiron",]
10
10
  requires-python = ">=3.11, <3.14"
11
11
  classifiers = [ "Development Status :: 4 - Beta", "Topic :: Scientific/Engineering", "License :: OSI Approved :: BSD License", "Intended Audience :: Science/Research", "Operating System :: OS Independent", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13",]
12
- dependencies = [ "bidict==0.23.1", "h5py>=3.12.1,<3.15.0", "mpi4py>=4.0.1,<4.2.0", "numpy>=1.26.4,<2.4.0", "pygtrie>=2.5.0,<2.6.0", "pyiron_snippets>=0.1.4,<=0.2.0",]
12
+ dependencies = [ "bidict==0.23.1", "h5py>=3.12.1,<3.15.0", "numpy>=1.26.4,<2.4.0", "pygtrie>=2.5.0,<2.6.0", "pyiron_snippets>=0.1.4,<=0.2.0",]
13
13
  dynamic = [ "version",]
14
14
  [[project.authors]]
15
15
  name = "Liam Huber"
File without changes
File without changes