cfdb 0.1.0__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.
cfdb-0.1.0/.gitignore ADDED
@@ -0,0 +1,119 @@
1
+ # Byte-compiled / optimized / DLL files
2
+ __pycache__/
3
+ *.py[cod]
4
+ *$py.class
5
+
6
+ # C extensions
7
+ *.so
8
+
9
+ # Distribution / packaging
10
+ .Python
11
+ env/
12
+ build/
13
+ develop-eggs/
14
+ dist/
15
+ downloads/
16
+ eggs/
17
+ .eggs/
18
+ lib/
19
+ lib64/
20
+ parts/
21
+ sdist/
22
+ var/
23
+ wheels/
24
+ *.egg-info/
25
+ .installed.cfg
26
+ *.egg
27
+
28
+ # PyInstaller
29
+ # Usually these files are written by a python script from a template
30
+ # before PyInstaller builds the exe, so as to inject date/other infos into it.
31
+ *.manifest
32
+ *.spec
33
+
34
+ # Installer logs
35
+ pip-log.txt
36
+ pip-delete-this-directory.txt
37
+
38
+ # Unit test / coverage reports
39
+ htmlcov/
40
+ .tox/
41
+ .coverage
42
+ .coverage.*
43
+ .cache
44
+ nosetests.xml
45
+ coverage.xml
46
+ *.cover
47
+ .hypothesis/
48
+ .pytest_cache/
49
+ junit/
50
+ junit.xml
51
+ test.db
52
+
53
+ # Translations
54
+ *.mo
55
+ *.pot
56
+
57
+ # Django stuff:
58
+ *.log
59
+ local_settings.py
60
+
61
+ # Flask stuff:
62
+ instance/
63
+ .webassets-cache
64
+
65
+ # Scrapy stuff:
66
+ .scrapy
67
+
68
+ # Sphinx documentation
69
+ docs/_build/
70
+
71
+ # PyBuilder
72
+ target/
73
+
74
+ # Jupyter Notebook
75
+ .ipynb_checkpoints
76
+
77
+ # pyenv
78
+ .python-version
79
+
80
+ # celery beat schedule file
81
+ celerybeat-schedule
82
+
83
+ # SageMath parsed files
84
+ *.sage.py
85
+
86
+ # dotenv
87
+ .env
88
+
89
+ # virtualenv
90
+ .venv
91
+ venv/
92
+ ENV/
93
+ .ruff*
94
+
95
+ # Spyder project settings
96
+ .spyderproject
97
+ .spyproject
98
+
99
+ # Rope project settings
100
+ .ropeproject
101
+
102
+ # mkdocs documentation
103
+ /site
104
+
105
+ # mypy
106
+ .mypy_cache/
107
+
108
+ # .vscode
109
+ .vscode/
110
+
111
+ # OS files
112
+ .DS_Store
113
+
114
+ # Temp data
115
+ data/*
116
+
117
+ # Test config files
118
+ /cfdb/tests/*.toml
119
+ /cfdb/tests/*.yml
cfdb-0.1.0/LICENSE ADDED
@@ -0,0 +1,16 @@
1
+ Apache Software License 2.0
2
+
3
+ Copyright (c) 2025, Mike Kittridge
4
+
5
+ Licensed under the Apache License, Version 2.0 (the "License");
6
+ you may not use this file except in compliance with the License.
7
+ You may obtain a copy of the License at
8
+
9
+ http://www.apache.org/licenses/LICENSE-2.0
10
+
11
+ Unless required by applicable law or agreed to in writing, software
12
+ distributed under the License is distributed on an "AS IS" BASIS,
13
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ See the License for the specific language governing permissions and
15
+ limitations under the License.
16
+
cfdb-0.1.0/PKG-INFO ADDED
@@ -0,0 +1,57 @@
1
+ Metadata-Version: 2.4
2
+ Name: cfdb
3
+ Version: 0.1.0
4
+ Summary: CF conventions multi-dimensional array storage on top of Booklet
5
+ Project-URL: Documentation, https://mullenkamp.github.io/cfdb/
6
+ Project-URL: Source, https://github.com/mullenkamp/cfdb
7
+ Author-email: mullenkamp <mullenkamp1@gmail.com>
8
+ License-File: LICENSE
9
+ Classifier: Programming Language :: Python :: 3 :: Only
10
+ Requires-Python: >=3.10
11
+ Requires-Dist: booklet>=0.9.2
12
+ Requires-Dist: cftime
13
+ Requires-Dist: lz4
14
+ Requires-Dist: msgspec
15
+ Requires-Dist: numpy
16
+ Requires-Dist: rechunkit>=0.1.0
17
+ Requires-Dist: zstandard
18
+ Provides-Extra: ebooklet
19
+ Requires-Dist: ebooklet>=0.5.10; extra == 'ebooklet'
20
+ Provides-Extra: netcdf4
21
+ Requires-Dist: h5netcdf; extra == 'netcdf4'
22
+ Description-Content-Type: text/markdown
23
+
24
+ # cfdb
25
+
26
+ <p align="center">
27
+ <em>CF conventions multi-dimensional array storage on top of Booklet</em>
28
+ </p>
29
+
30
+ [![build](https://github.com/mullenkamp/cfdb/workflows/Build/badge.svg)](https://github.com/mullenkamp/cfdb/actions)
31
+ [![codecov](https://codecov.io/gh/mullenkamp/cfdb/branch/master/graph/badge.svg)](https://codecov.io/gh/mullenkamp/cfdb)
32
+ [![PyPI version](https://badge.fury.io/py/cfdb.svg)](https://badge.fury.io/py/cfdb)
33
+
34
+ ---
35
+
36
+ **Documentation**: <a href="https://mullenkamp.github.io/cfdb/" target="_blank">https://mullenkamp.github.io/cfdb/</a>
37
+
38
+ **Source Code**: <a href="https://github.com/mullenkamp/cfdb" target="_blank">https://github.com/mullenkamp/cfbdb</a>
39
+
40
+ ---
41
+
42
+ ## Development
43
+
44
+ ### Coordinate variables
45
+ Must be 1D.
46
+ They should have an "ordered" parameter (bool) that defined whether the coord should always be ordered. Int, float, and datetime should default to True. Only string and category dtypes should default to False.
47
+ There should be a "regular" parameter (bool) with an associated "step" parameter (int or float). It should work similarly to np.arange. Only ints, floats, and datetimes can use this.
48
+ ~~Should I add a "unique" parameter (bool)? Maybe I should just enforce this normally?~~ It should enforce uniqueness in the coords.
49
+ There can be a groupby method datasets that would use the rechunker. The rechunker would have the groupby dims set to 1 and the other dims set to the full length.
50
+
51
+ #### Multi-dimensional coords
52
+ It is possible to create a composite index from multiple 1D coords. But it seems best to implement this type of thing on top of sqlite (or something equivalent).
53
+ Keeping each coord 1D makes implementations quite a bit simpler.
54
+
55
+ ## License
56
+
57
+ This project is licensed under the terms of the Apache Software License 2.0.
cfdb-0.1.0/README.md ADDED
@@ -0,0 +1,34 @@
1
+ # cfdb
2
+
3
+ <p align="center">
4
+ <em>CF conventions multi-dimensional array storage on top of Booklet</em>
5
+ </p>
6
+
7
+ [![build](https://github.com/mullenkamp/cfdb/workflows/Build/badge.svg)](https://github.com/mullenkamp/cfdb/actions)
8
+ [![codecov](https://codecov.io/gh/mullenkamp/cfdb/branch/master/graph/badge.svg)](https://codecov.io/gh/mullenkamp/cfdb)
9
+ [![PyPI version](https://badge.fury.io/py/cfdb.svg)](https://badge.fury.io/py/cfdb)
10
+
11
+ ---
12
+
13
+ **Documentation**: <a href="https://mullenkamp.github.io/cfdb/" target="_blank">https://mullenkamp.github.io/cfdb/</a>
14
+
15
+ **Source Code**: <a href="https://github.com/mullenkamp/cfdb" target="_blank">https://github.com/mullenkamp/cfbdb</a>
16
+
17
+ ---
18
+
19
+ ## Development
20
+
21
+ ### Coordinate variables
22
+ Must be 1D.
23
+ They should have an "ordered" parameter (bool) that defined whether the coord should always be ordered. Int, float, and datetime should default to True. Only string and category dtypes should default to False.
24
+ There should be a "regular" parameter (bool) with an associated "step" parameter (int or float). It should work similarly to np.arange. Only ints, floats, and datetimes can use this.
25
+ ~~Should I add a "unique" parameter (bool)? Maybe I should just enforce this normally?~~ It should enforce uniqueness in the coords.
26
+ There can be a groupby method datasets that would use the rechunker. The rechunker would have the groupby dims set to 1 and the other dims set to the full length.
27
+
28
+ #### Multi-dimensional coords
29
+ It is possible to create a composite index from multiple 1D coords. But it seems best to implement this type of thing on top of sqlite (or something equivalent).
30
+ Keeping each coord 1D makes implementations quite a bit simpler.
31
+
32
+ ## License
33
+
34
+ This project is licensed under the terms of the Apache Software License 2.0.
@@ -0,0 +1,6 @@
1
+ """CF conventions multi-dimensional array database on top of Booklet"""
2
+ from cfdb.main import open_dataset, open_edataset
3
+ from cfdb.utils import compute_scale_and_offset
4
+ from rechunkit import guess_chunk_shape
5
+
6
+ __version__ = '0.1.0'