bagofholding 0.1.2__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.2 → bagofholding-0.1.4}/PKG-INFO +5 -5
  2. {bagofholding-0.1.2 → bagofholding-0.1.4}/bagofholding/_version.py +16 -3
  3. {bagofholding-0.1.2/cached-miniforge/my-env/lib/python3.1/site-packages → bagofholding-0.1.4}/bagofholding/retrieve.py +15 -3
  4. {bagofholding-0.1.2 → bagofholding-0.1.4}/cached-miniforge/my-env/lib/python3.1/site-packages/bagofholding/_version.py +16 -3
  5. {bagofholding-0.1.2 → bagofholding-0.1.4/cached-miniforge/my-env/lib/python3.1/site-packages}/bagofholding/retrieve.py +15 -3
  6. {bagofholding-0.1.2 → bagofholding-0.1.4}/docs/README.md +2 -2
  7. {bagofholding-0.1.2 → bagofholding-0.1.4}/pyproject.toml +2 -2
  8. {bagofholding-0.1.2 → bagofholding-0.1.4}/.gitignore +0 -0
  9. {bagofholding-0.1.2 → bagofholding-0.1.4}/LICENSE +0 -0
  10. {bagofholding-0.1.2 → bagofholding-0.1.4}/bagofholding/__init__.py +0 -0
  11. {bagofholding-0.1.2 → bagofholding-0.1.4}/bagofholding/bag.py +0 -0
  12. {bagofholding-0.1.2 → bagofholding-0.1.4}/bagofholding/content.py +0 -0
  13. {bagofholding-0.1.2 → bagofholding-0.1.4}/bagofholding/exceptions.py +0 -0
  14. {bagofholding-0.1.2 → bagofholding-0.1.4}/bagofholding/h5/__init__.py +0 -0
  15. {bagofholding-0.1.2 → bagofholding-0.1.4}/bagofholding/h5/bag.py +0 -0
  16. {bagofholding-0.1.2 → bagofholding-0.1.4}/bagofholding/h5/content.py +0 -0
  17. {bagofholding-0.1.2 → bagofholding-0.1.4}/bagofholding/h5/context.py +0 -0
  18. {bagofholding-0.1.2 → bagofholding-0.1.4}/bagofholding/h5/dtypes.py +0 -0
  19. {bagofholding-0.1.2 → bagofholding-0.1.4}/bagofholding/h5/triebag.py +0 -0
  20. {bagofholding-0.1.2 → bagofholding-0.1.4}/bagofholding/metadata.py +0 -0
  21. {bagofholding-0.1.2 → bagofholding-0.1.4}/bagofholding/trie.py +0 -0
  22. {bagofholding-0.1.2 → bagofholding-0.1.4}/bagofholding/widget.py +0 -0
  23. {bagofholding-0.1.2 → bagofholding-0.1.4}/cached-miniforge/my-env/lib/python3.1/site-packages/bagofholding/__init__.py +0 -0
  24. {bagofholding-0.1.2 → bagofholding-0.1.4}/cached-miniforge/my-env/lib/python3.1/site-packages/bagofholding/bag.py +0 -0
  25. {bagofholding-0.1.2 → bagofholding-0.1.4}/cached-miniforge/my-env/lib/python3.1/site-packages/bagofholding/content.py +0 -0
  26. {bagofholding-0.1.2 → bagofholding-0.1.4}/cached-miniforge/my-env/lib/python3.1/site-packages/bagofholding/exceptions.py +0 -0
  27. {bagofholding-0.1.2 → bagofholding-0.1.4}/cached-miniforge/my-env/lib/python3.1/site-packages/bagofholding/h5/__init__.py +0 -0
  28. {bagofholding-0.1.2 → bagofholding-0.1.4}/cached-miniforge/my-env/lib/python3.1/site-packages/bagofholding/h5/bag.py +0 -0
  29. {bagofholding-0.1.2 → bagofholding-0.1.4}/cached-miniforge/my-env/lib/python3.1/site-packages/bagofholding/h5/content.py +0 -0
  30. {bagofholding-0.1.2 → bagofholding-0.1.4}/cached-miniforge/my-env/lib/python3.1/site-packages/bagofholding/h5/context.py +0 -0
  31. {bagofholding-0.1.2 → bagofholding-0.1.4}/cached-miniforge/my-env/lib/python3.1/site-packages/bagofholding/h5/dtypes.py +0 -0
  32. {bagofholding-0.1.2 → bagofholding-0.1.4}/cached-miniforge/my-env/lib/python3.1/site-packages/bagofholding/h5/triebag.py +0 -0
  33. {bagofholding-0.1.2 → bagofholding-0.1.4}/cached-miniforge/my-env/lib/python3.1/site-packages/bagofholding/metadata.py +0 -0
  34. {bagofholding-0.1.2 → bagofholding-0.1.4}/cached-miniforge/my-env/lib/python3.1/site-packages/bagofholding/trie.py +0 -0
  35. {bagofholding-0.1.2 → 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.2
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
@@ -40,14 +40,14 @@ Classifier: Development Status :: 4 - Beta
40
40
  Classifier: Intended Audience :: Science/Research
41
41
  Classifier: License :: OSI Approved :: BSD License
42
42
  Classifier: Operating System :: OS Independent
43
+ Classifier: Programming Language :: Python :: 3.11
43
44
  Classifier: Programming Language :: Python :: 3.12
44
45
  Classifier: Programming Language :: Python :: 3.13
45
46
  Classifier: Topic :: Scientific/Engineering
46
47
  Requires-Python: <3.14,>=3.11
47
48
  Requires-Dist: bidict==0.23.1
48
49
  Requires-Dist: h5py<3.15.0,>=3.12.1
49
- Requires-Dist: mpi4py<4.2.0,>=4.0.1
50
- Requires-Dist: numpy<2.4.0,>=2.1.3
50
+ Requires-Dist: numpy<2.4.0,>=1.26.4
51
51
  Requires-Dist: pygtrie<2.6.0,>=2.5.0
52
52
  Requires-Dist: pyiron-snippets<=0.2.0,>=0.1.4
53
53
  Provides-Extra: widget
@@ -190,7 +190,7 @@ For a more in-depth look at the above features and to explore other aspects of `
190
190
  ## Object requirements
191
191
 
192
192
  Under-the-hood, we follow the same patterns as `pickle` by explicitly invoking many of the same method (`__reduce__`, `__setstate__`, etc).
193
- _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`.
194
194
  Our requirements are that the object...
195
195
 
196
196
  - Must be pickleable
@@ -203,4 +203,4 @@ Our requirements are that the object...
203
203
  - `extend`
204
204
  - Must have a valid boolean response to `hasattr` for `__metadata__`, and this attribute must be castable to a string if present
205
205
 
206
- 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.2'
21
- __version_tuple__ = version_tuple = (0, 1, 2)
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.2'
21
- __version_tuple__ = version_tuple = (0, 1, 2)
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!
@@ -8,8 +8,8 @@ description = "bagofholding - browsable, partially-reloadable serialization for
8
8
  readme = "docs/README.md"
9
9
  keywords = [ "pyiron",]
10
10
  requires-python = ">=3.11, <3.14"
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.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>=2.1.3,<2.4.0", "pygtrie>=2.5.0,<2.6.0", "pyiron_snippets>=0.1.4,<=0.2.0",]
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", "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