cdxcore 0.1.6__py3-none-any.whl → 0.1.9__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.
Potentially problematic release.
This version of cdxcore might be problematic. Click here for more details.
- cdxcore/__init__.py +1 -9
- cdxcore/config.py +1188 -521
- cdxcore/crman.py +95 -25
- cdxcore/err.py +371 -0
- cdxcore/pretty.py +468 -0
- cdxcore/pretty.py_bak.py +750 -0
- cdxcore/subdir.py +2225 -1334
- cdxcore/uniquehash.py +515 -363
- cdxcore/util.py +358 -417
- cdxcore/verbose.py +683 -248
- cdxcore/version.py +398 -139
- cdxcore-0.1.9.dist-info/METADATA +27 -0
- cdxcore-0.1.9.dist-info/RECORD +36 -0
- {cdxcore-0.1.6.dist-info → cdxcore-0.1.9.dist-info}/top_level.txt +3 -1
- docs/source/conf.py +123 -0
- docs2/source/conf.py +35 -0
- tests/test_config.py +502 -0
- tests/test_crman.py +54 -0
- tests/test_err.py +86 -0
- tests/test_pretty.py +404 -0
- tests/test_subdir.py +289 -0
- tests/test_uniquehash.py +159 -144
- tests/test_util.py +122 -83
- tests/test_verbose.py +119 -0
- tests/test_version.py +153 -0
- up/git_message.py +2 -2
- cdxcore/logger.py +0 -319
- cdxcore/prettydict.py +0 -388
- cdxcore/prettyobject.py +0 -64
- cdxcore-0.1.6.dist-info/METADATA +0 -1418
- cdxcore-0.1.6.dist-info/RECORD +0 -30
- conda/conda_exists.py +0 -10
- conda/conda_modify_yaml.py +0 -42
- tests/_cdxbasics.py +0 -1086
- {cdxcore-0.1.6.dist-info → cdxcore-0.1.9.dist-info}/WHEEL +0 -0
- {cdxcore-0.1.6.dist-info → cdxcore-0.1.9.dist-info}/licenses/LICENSE +0 -0
- {cdxcore → tmp}/deferred.py +0 -0
- {cdxcore → tmp}/dynaplot.py +0 -0
- {cdxcore → tmp}/filelock.py +0 -0
- {cdxcore → tmp}/jcpool.py +0 -0
- {cdxcore → tmp}/np.py +0 -0
- {cdxcore → tmp}/npio.py +0 -0
- {cdxcore → tmp}/sharedarray.py +0 -0
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: cdxcore
|
|
3
|
+
Version: 0.1.9
|
|
4
|
+
Summary: Basic Python Tools; upgraded cdxbasics
|
|
5
|
+
Author-email: Hans Buehler <github@buehler.london>
|
|
6
|
+
License-Expression: MIT
|
|
7
|
+
Project-URL: Homepage, https://github.com/hansbuehler/cdxcore
|
|
8
|
+
Classifier: Programming Language :: Python :: 3
|
|
9
|
+
Classifier: Operating System :: OS Independent
|
|
10
|
+
Requires-Python: >=3.12
|
|
11
|
+
Description-Content-Type: text/markdown
|
|
12
|
+
License-File: LICENSE
|
|
13
|
+
Requires-Dist: numpy
|
|
14
|
+
Requires-Dist: pandas
|
|
15
|
+
Requires-Dist: matplotlib
|
|
16
|
+
Requires-Dist: sortedcontainers
|
|
17
|
+
Requires-Dist: psutil
|
|
18
|
+
Requires-Dist: jsonpickle
|
|
19
|
+
Requires-Dist: numba
|
|
20
|
+
Requires-Dist: joblib
|
|
21
|
+
Requires-Dist: blosc
|
|
22
|
+
Requires-Dist: mkdocstrings[python]>=0.18
|
|
23
|
+
Dynamic: license-file
|
|
24
|
+
|
|
25
|
+
# cdxcore
|
|
26
|
+
Under construction.
|
|
27
|
+
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
cdxcore/__init__.py,sha256=a9wRC3XcpvMapllTNzJzr0MMUqBnYzI_lnm18xrxjj0,126
|
|
2
|
+
cdxcore/config.py,sha256=YnIEJVFtMZ5EHlwzaB2JsSkCPhWPvEw9QSpe6mof_V4,98472
|
|
3
|
+
cdxcore/crman.py,sha256=jOw40Bh6PkmEiabA7OS9NsqF-9viam3CBiKzPwxVkVw,5693
|
|
4
|
+
cdxcore/err.py,sha256=SIJMBXKXYI_hiysv5iSPRy0w_BbxyTDPbNEs56Y94Rk,14541
|
|
5
|
+
cdxcore/pretty.py,sha256=iUpgUCwmI8yb5O-WZFJEk3QvNYcj_GIFHUgZ5lK8F2I,17082
|
|
6
|
+
cdxcore/pretty.py_bak.py,sha256=JgWr5044HzCNGG0wKSAWlWiPRs7-bNzkwiKH0T3n0to,28658
|
|
7
|
+
cdxcore/subdir.py,sha256=bVABx_XpzZxmjoUQe0Brt2cEakhUONP1YA4tjPQ_LTk,173453
|
|
8
|
+
cdxcore/uniquehash.py,sha256=g-D8pqPIppSdRq5QfdE5aP3paZ-NkXWHfnn-uNB7fmg,50648
|
|
9
|
+
cdxcore/util.py,sha256=0fp0EzeZvnje1Q7SUcgB_JtKpsYgGTfvlHVfq0mE_ug,31930
|
|
10
|
+
cdxcore/verbose.py,sha256=nKNoZQwl3eF1zBf-JZwPC-lL9d_o5mJsDsSUMixTMLw,29882
|
|
11
|
+
cdxcore/version.py,sha256=tsLHRIgYYqrcqGJqz-bMEJuixWtTg1AQB_QwJrf6VDE,27172
|
|
12
|
+
cdxcore-0.1.9.dist-info/licenses/LICENSE,sha256=M-cisgK9kb1bqVRJ7vrCxHcMQQfDxdY3c2YFJJWfNQg,1090
|
|
13
|
+
docs/source/conf.py,sha256=Owctibh5XcSpSNcrpOr3ROIDjoklmFVrMhu8cOSe50o,4180
|
|
14
|
+
docs2/source/conf.py,sha256=qxnJSrm3fV-llfvYlM0adpVD5pE_-8f8KqxH_ywe5UA,1276
|
|
15
|
+
tests/test_config.py,sha256=JtIWCt0Q2PmmADfOGL42anONvuNowtxLK312xvWmRD4,15979
|
|
16
|
+
tests/test_crman.py,sha256=hJlhuUuDrhzzJ3-ILUu_JCH842BJx9VGpEBCGrr4LOU,1697
|
|
17
|
+
tests/test_err.py,sha256=AUfUUnksdbcHEuY-boyTW7fJHJ_w13zYpaPYrqwWbSo,3457
|
|
18
|
+
tests/test_pretty.py,sha256=AJOI4jFnol_pY_wzF9baPNzx_J5pViVzZcRkWMDU4HY,11951
|
|
19
|
+
tests/test_subdir.py,sha256=heLvzVl3qpgLq_rj4BY5odn6ZWk978kum1SznKQ4JMw,11720
|
|
20
|
+
tests/test_uniquehash.py,sha256=kxmH5slL4NxmcCS2OOdbzqu9G2C3sm2SR4HkfIyromU,24906
|
|
21
|
+
tests/test_util.py,sha256=MnM3EFp4p8MGw1qnhtBryHikHOt__zfOm65OMzN0zWE,19954
|
|
22
|
+
tests/test_verbose.py,sha256=0EOVK5TWrwQwAjv08enaOTQZ6-_SQFMKXi3Nw6nSfMI,5036
|
|
23
|
+
tests/test_version.py,sha256=xPF6eXD7J9VB_L1FGK5kgjXkrfD9gqHdj03zc9s6XIs,4657
|
|
24
|
+
tmp/deferred.py,sha256=TirvzxYXWnZkOWuEMB7qsf6auilfy4VD_zPknYCjrnw,9401
|
|
25
|
+
tmp/dynaplot.py,sha256=kwrH_WccpJcfS7n_gzdAr4QxQobvIZZrrxgdsKLKfj0,48552
|
|
26
|
+
tmp/filelock.py,sha256=HqnHZhSCESaOA3ClrdWPW_GZpyo7c3VRSEofAV-khKM,18137
|
|
27
|
+
tmp/jcpool.py,sha256=OzoXWBJKWaDgJm1OeUj9ERz9skvwslGOwNq0wbKtcFM,17222
|
|
28
|
+
tmp/np.py,sha256=2MynhiaTfmx984Gz7TwfZH3t7GCmCAQiyeWzDDCL6_k,47686
|
|
29
|
+
tmp/npio.py,sha256=4Kwp5H4MgKHkOEhu4UJ5CcwpM7Pm8UFkaoL5FvOEFRI,10310
|
|
30
|
+
tmp/sharedarray.py,sha256=JuHuSlxA0evD0a-bEZgTFrfdlVPMgzfQNgfSjr1212w,11484
|
|
31
|
+
up/git_message.py,sha256=EfSH7Pit3ZoCiRqSMwRCUN_QyuwreU4LTIyGSutBlm4,123
|
|
32
|
+
up/pip_modify_setup.py,sha256=Esaml4yA9tFsqxLhk5bWSwvKCURONjQqfyChgFV2TSY,1584
|
|
33
|
+
cdxcore-0.1.9.dist-info/METADATA,sha256=Bz8HlL06uVWBnx7Ie2ogBTgyk_RffCMbFC5QBt3MCNo,753
|
|
34
|
+
cdxcore-0.1.9.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
35
|
+
cdxcore-0.1.9.dist-info/top_level.txt,sha256=eG4oLGRzNN40tCfK5tJbzfT_I2M-9IPGVpbRwFWE9Wk,32
|
|
36
|
+
cdxcore-0.1.9.dist-info/RECORD,,
|
docs/source/conf.py
ADDED
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
# Configuration file for the Sphinx documentation builder.
|
|
2
|
+
#
|
|
3
|
+
# For the full list of built-in configuration values, see the documentation:
|
|
4
|
+
# https://www.sphinx-doc.org/en/master/usage/configuration.html
|
|
5
|
+
|
|
6
|
+
# -- Project information -----------------------------------------------------
|
|
7
|
+
# https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information
|
|
8
|
+
|
|
9
|
+
# conf.py
|
|
10
|
+
def set_path(source = "cdxcore"):
|
|
11
|
+
import os, sys
|
|
12
|
+
root_path = os.path.split(
|
|
13
|
+
os.path.split(
|
|
14
|
+
os.path.split( __file__ )[0] # 'source
|
|
15
|
+
)[0] # 'docs'
|
|
16
|
+
)[0] # 'packag
|
|
17
|
+
assert root_path[-len(source):] == source, f"Conf.py '{__file__}': invalid source path '{root_path}'. Call 'make html' from the docs directory"
|
|
18
|
+
sys.path.insert(0, root_path) # so your package is importable
|
|
19
|
+
|
|
20
|
+
project = 'cdxcore'
|
|
21
|
+
copyright = '2025, Hans Buehler'
|
|
22
|
+
author = 'Hans Buehler'
|
|
23
|
+
|
|
24
|
+
set_path(project)
|
|
25
|
+
|
|
26
|
+
# -- General configuration ---------------------------------------------------
|
|
27
|
+
# https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration
|
|
28
|
+
|
|
29
|
+
extensions = [
|
|
30
|
+
"sphinx.ext.autodoc",
|
|
31
|
+
"sphinx.ext.autosummary",
|
|
32
|
+
"sphinx.ext.intersphinx",
|
|
33
|
+
"sphinx.ext.viewcode",
|
|
34
|
+
#"sphinx_autodoc_typehints",
|
|
35
|
+
"numpydoc",
|
|
36
|
+
"sphinx_automodapi.automodapi",
|
|
37
|
+
"sphinx_copybutton",
|
|
38
|
+
"sphinx_design",
|
|
39
|
+
"myst_parser", # pip install myst-parser
|
|
40
|
+
]
|
|
41
|
+
templates_path = ['_templates']
|
|
42
|
+
exclude_patterns = []
|
|
43
|
+
|
|
44
|
+
# -- Options for HTML output -------------------------------------------------
|
|
45
|
+
# https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output
|
|
46
|
+
|
|
47
|
+
html_theme = "pydata_sphinx_theme"
|
|
48
|
+
html_theme_options = {
|
|
49
|
+
"navigation_depth": 4,
|
|
50
|
+
"show_prev_next": False,
|
|
51
|
+
"github_url": "https://github.com/hansbuehler/cdxcore", # optional
|
|
52
|
+
"show_toc_level": 2,
|
|
53
|
+
"secondary_sidebar_items": ["page-toc", "sourcelink"],
|
|
54
|
+
}
|
|
55
|
+
html_theme_options = {
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
html_static_path = ['_static']
|
|
59
|
+
html_css_files = ["custom.css"]
|
|
60
|
+
|
|
61
|
+
# Autodoc / autosummary: NumPy-like API pages
|
|
62
|
+
autosummary_generate = True
|
|
63
|
+
autodoc_default_options = {
|
|
64
|
+
"members": True,
|
|
65
|
+
"inherited-members": False,
|
|
66
|
+
"undoc-members": False,
|
|
67
|
+
"show-inheritance": False,
|
|
68
|
+
"special-members": "__call__"
|
|
69
|
+
}
|
|
70
|
+
autodoc_typehints = 'signature' # types shown in the doc body, like NumPy
|
|
71
|
+
#numpydoc_show_class_members = True
|
|
72
|
+
|
|
73
|
+
# numpydoc tweaks (keeps class doc at top, avoids member spam)
|
|
74
|
+
numpydoc_show_class_members = True
|
|
75
|
+
numpydoc_class_members_toctree = True
|
|
76
|
+
# Optional validation during build:
|
|
77
|
+
# numpydoc_validation_checks = {"all"} # or a subset like {"GL06","PR01",...}
|
|
78
|
+
|
|
79
|
+
# Cross-link to external projects (like NumPy, SciPy, pandas)
|
|
80
|
+
intersphinx_mapping = {
|
|
81
|
+
"python": ("https://docs.python.org/3", None),
|
|
82
|
+
"numpy": ("https://numpy.org/doc/stable/", None),
|
|
83
|
+
"scipy": ("https://docs.scipy.org/doc/scipy/", None),
|
|
84
|
+
"pandas": ("https://pandas.pydata.org/docs/", None),
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
myst_enable_extensions = [
|
|
88
|
+
"colon_fence", # allow ::: fenced blocks
|
|
89
|
+
"deflist", # definition lists
|
|
90
|
+
"dollarmath", # $math$ and $$math$$
|
|
91
|
+
"amsmath", # AMS math environments
|
|
92
|
+
"linkify", # auto-detect bare URLs
|
|
93
|
+
]
|
|
94
|
+
|
|
95
|
+
source_suffix = {
|
|
96
|
+
".rst": "restructuredtext",
|
|
97
|
+
".md": "markdown",
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
from docutils import nodes
|
|
101
|
+
from sphinx.roles import XRefRole
|
|
102
|
+
|
|
103
|
+
def decorator_role(name, rawtext, text, lineno, inliner, options={}, content=[]):
|
|
104
|
+
"""Custom role to display decorators with @ prefix."""
|
|
105
|
+
# Create a pending_xref node like other Sphinx cross-references
|
|
106
|
+
node = nodes.literal(text, f"@{text}", classes=["xref", "dec"])
|
|
107
|
+
node["reftype"] = "func" # decorators are functions
|
|
108
|
+
node["reftarget"] = text
|
|
109
|
+
node["refdomain"] = "py" # Python domain
|
|
110
|
+
return [node], []
|
|
111
|
+
|
|
112
|
+
from sphinx.domains.python import PyXRefRole
|
|
113
|
+
|
|
114
|
+
def setup(app):
|
|
115
|
+
# Make :dec: behave exactly like :py:func:
|
|
116
|
+
app.add_role_to_domain("py", "dec", PyXRefRole("func"))
|
|
117
|
+
return {"parallel_read_safe": True}
|
|
118
|
+
|
|
119
|
+
#def setup(app):
|
|
120
|
+
# app.add_role("dec", decorator_role)
|
|
121
|
+
# return {"parallel_read_safe": True}
|
|
122
|
+
|
|
123
|
+
|
docs2/source/conf.py
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# conf.py
|
|
2
|
+
def set_path(source = "cdxcore"):
|
|
3
|
+
import os, sys
|
|
4
|
+
root_path = os.path.split(
|
|
5
|
+
os.path.split(
|
|
6
|
+
os.path.split( __file__ )[0] # 'source
|
|
7
|
+
)[0] # 'docs'
|
|
8
|
+
)[0] # 'packag
|
|
9
|
+
assert root_path[-len(source):] == source, f"Conf.py '{__file__}': invalid source path '{root_path}'. Call 'make html' from the docs directory"
|
|
10
|
+
sys.path.insert(0, root_path) # so your package is importable
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
project = "cdxcore"
|
|
14
|
+
author = "Hans Buehler"
|
|
15
|
+
release = "0.1.0"
|
|
16
|
+
|
|
17
|
+
set_path(project)
|
|
18
|
+
|
|
19
|
+
extensions = [
|
|
20
|
+
"sphinx.ext.autodoc", # core: import & docstrings
|
|
21
|
+
"sphinx.ext.autosummary", # summary tables with links
|
|
22
|
+
"sphinx.ext.napoleon", # Google/NumPy style docstrings
|
|
23
|
+
"sphinx_autodoc_typehints", # nicer type hints formatting
|
|
24
|
+
"sphinx.ext.mathjax", # math rendering
|
|
25
|
+
]
|
|
26
|
+
|
|
27
|
+
autosummary_generate = True # make _autosummary files
|
|
28
|
+
autodoc_typehints = "description" # show types in doc body instead of signature
|
|
29
|
+
autodoc_member_order = "bysource" # preserve order in source file
|
|
30
|
+
napoleon_google_docstring = True
|
|
31
|
+
napoleon_numpy_docstring = True
|
|
32
|
+
napoleon_use_param = True
|
|
33
|
+
napoleon_use_rtype = False
|
|
34
|
+
autoclass_content = "both"
|
|
35
|
+
|