jupyter-analysis-tools 1.4.1__tar.gz → 1.5.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.
- {jupyter_analysis_tools-1.4.1 → jupyter_analysis_tools-1.5.0}/.copier-answers.yml +1 -1
- {jupyter_analysis_tools-1.4.1 → jupyter_analysis_tools-1.5.0}/CHANGELOG.md +26 -0
- {jupyter_analysis_tools-1.4.1 → jupyter_analysis_tools-1.5.0}/PKG-INFO +29 -3
- {jupyter_analysis_tools-1.4.1 → jupyter_analysis_tools-1.5.0}/README.md +2 -2
- {jupyter_analysis_tools-1.4.1 → jupyter_analysis_tools-1.5.0}/docs/conf.py +1 -1
- {jupyter_analysis_tools-1.4.1 → jupyter_analysis_tools-1.5.0}/pyproject.toml +3 -0
- {jupyter_analysis_tools-1.4.1 → jupyter_analysis_tools-1.5.0}/src/jupyter_analysis_tools/__init__.py +1 -1
- jupyter_analysis_tools-1.5.0/src/jupyter_analysis_tools/ssfz2json.py +69 -0
- {jupyter_analysis_tools-1.4.1 → jupyter_analysis_tools-1.5.0}/src/jupyter_analysis_tools/utils.py +24 -8
- {jupyter_analysis_tools-1.4.1 → jupyter_analysis_tools-1.5.0}/src/jupyter_analysis_tools.egg-info/PKG-INFO +29 -3
- {jupyter_analysis_tools-1.4.1 → jupyter_analysis_tools-1.5.0}/src/jupyter_analysis_tools.egg-info/SOURCES.txt +2 -0
- jupyter_analysis_tools-1.5.0/src/jupyter_analysis_tools.egg-info/entry_points.txt +2 -0
- {jupyter_analysis_tools-1.4.1 → jupyter_analysis_tools-1.5.0}/tests/utils.py +4 -4
- {jupyter_analysis_tools-1.4.1 → jupyter_analysis_tools-1.5.0}/.editorconfig +0 -0
- {jupyter_analysis_tools-1.4.1 → jupyter_analysis_tools-1.5.0}/.pre-commit-config.yaml +0 -0
- {jupyter_analysis_tools-1.4.1 → jupyter_analysis_tools-1.5.0}/AUTHORS.rst +0 -0
- {jupyter_analysis_tools-1.4.1 → jupyter_analysis_tools-1.5.0}/CONTRIBUTING.rst +0 -0
- {jupyter_analysis_tools-1.4.1 → jupyter_analysis_tools-1.5.0}/LICENSE +0 -0
- {jupyter_analysis_tools-1.4.1 → jupyter_analysis_tools-1.5.0}/MANIFEST.in +0 -0
- {jupyter_analysis_tools-1.4.1 → jupyter_analysis_tools-1.5.0}/ci/requirements.txt +0 -0
- {jupyter_analysis_tools-1.4.1 → jupyter_analysis_tools-1.5.0}/docs/_templates/class.rst +0 -0
- {jupyter_analysis_tools-1.4.1 → jupyter_analysis_tools-1.5.0}/docs/_templates/module.rst +0 -0
- {jupyter_analysis_tools-1.4.1 → jupyter_analysis_tools-1.5.0}/docs/authors.rst +0 -0
- {jupyter_analysis_tools-1.4.1 → jupyter_analysis_tools-1.5.0}/docs/changelog.rst +0 -0
- {jupyter_analysis_tools-1.4.1 → jupyter_analysis_tools-1.5.0}/docs/contributing.rst +0 -0
- {jupyter_analysis_tools-1.4.1 → jupyter_analysis_tools-1.5.0}/docs/index.rst +0 -0
- {jupyter_analysis_tools-1.4.1 → jupyter_analysis_tools-1.5.0}/docs/installation.rst +0 -0
- {jupyter_analysis_tools-1.4.1 → jupyter_analysis_tools-1.5.0}/docs/readme.rst +0 -0
- {jupyter_analysis_tools-1.4.1 → jupyter_analysis_tools-1.5.0}/docs/reference/index.rst +0 -0
- {jupyter_analysis_tools-1.4.1 → jupyter_analysis_tools-1.5.0}/docs/requirements.txt +0 -0
- {jupyter_analysis_tools-1.4.1 → jupyter_analysis_tools-1.5.0}/docs/spelling_wordlist.txt +0 -0
- {jupyter_analysis_tools-1.4.1 → jupyter_analysis_tools-1.5.0}/docs/usage.rst +0 -0
- {jupyter_analysis_tools-1.4.1 → jupyter_analysis_tools-1.5.0}/setup.cfg +0 -0
- {jupyter_analysis_tools-1.4.1 → jupyter_analysis_tools-1.5.0}/src/jupyter_analysis_tools/analysis.py +0 -0
- {jupyter_analysis_tools-1.4.1 → jupyter_analysis_tools-1.5.0}/src/jupyter_analysis_tools/binning.py +0 -0
- {jupyter_analysis_tools-1.4.1 → jupyter_analysis_tools-1.5.0}/src/jupyter_analysis_tools/datalocations.py +0 -0
- {jupyter_analysis_tools-1.4.1 → jupyter_analysis_tools-1.5.0}/src/jupyter_analysis_tools/distrib.py +0 -0
- {jupyter_analysis_tools-1.4.1 → jupyter_analysis_tools-1.5.0}/src/jupyter_analysis_tools/git.py +0 -0
- {jupyter_analysis_tools-1.4.1 → jupyter_analysis_tools-1.5.0}/src/jupyter_analysis_tools/plotting.py +0 -0
- {jupyter_analysis_tools-1.4.1 → jupyter_analysis_tools-1.5.0}/src/jupyter_analysis_tools/readdata.py +0 -0
- {jupyter_analysis_tools-1.4.1 → jupyter_analysis_tools-1.5.0}/src/jupyter_analysis_tools/widgets.py +0 -0
- {jupyter_analysis_tools-1.4.1 → jupyter_analysis_tools-1.5.0}/src/jupyter_analysis_tools.egg-info/dependency_links.txt +0 -0
- {jupyter_analysis_tools-1.4.1 → jupyter_analysis_tools-1.5.0}/src/jupyter_analysis_tools.egg-info/requires.txt +0 -0
- {jupyter_analysis_tools-1.4.1 → jupyter_analysis_tools-1.5.0}/src/jupyter_analysis_tools.egg-info/top_level.txt +0 -0
- {jupyter_analysis_tools-1.4.1 → jupyter_analysis_tools-1.5.0}/templates/CHANGELOG.md.j2 +0 -0
- {jupyter_analysis_tools-1.4.1 → jupyter_analysis_tools-1.5.0}/testdata/2015-03-20-Silica.ssf.json +0 -0
- {jupyter_analysis_tools-1.4.1 → jupyter_analysis_tools-1.5.0}/testdata/2015-03-20-Silica.ssfz +0 -0
- {jupyter_analysis_tools-1.4.1 → jupyter_analysis_tools-1.5.0}/testdata/S2842 water.json +0 -0
- {jupyter_analysis_tools-1.4.1 → jupyter_analysis_tools-1.5.0}/testdata/S2842 water.pdh +0 -0
- {jupyter_analysis_tools-1.4.1 → jupyter_analysis_tools-1.5.0}/testdata/S2843[9].pdh +0 -0
- {jupyter_analysis_tools-1.4.1 → jupyter_analysis_tools-1.5.0}/tests/readdata.py +0 -0
- {jupyter_analysis_tools-1.4.1 → jupyter_analysis_tools-1.5.0}/tests/requirements.txt +0 -0
- {jupyter_analysis_tools-1.4.1 → jupyter_analysis_tools-1.5.0}/tox.ini +0 -0
|
@@ -1,5 +1,31 @@
|
|
|
1
1
|
# CHANGELOG
|
|
2
2
|
|
|
3
|
+
## v1.5.0 (2025-08-04)
|
|
4
|
+
|
|
5
|
+
### Bug fixes
|
|
6
|
+
|
|
7
|
+
* **readSSFZ**: rename command readSSFZ -> ssfz2json for avoiding name collision with function in readdata module ([`dde1d10`](https://github.com/BAMresearch/jupyter-analysis-tools/commit/dde1d109b70de0cd0cb712cfc4f19a3be2cbd880))
|
|
8
|
+
|
|
9
|
+
### Features
|
|
10
|
+
|
|
11
|
+
* **readdata**: jupyter_analysis_tools.readSSFZ cmdline tool to convert .SSFZ to .JSON and diff-compare .SSFZ files (their metadata) ([`46dc633`](https://github.com/BAMresearch/jupyter-analysis-tools/commit/46dc6338052a9dd875326d2a38cc5b6621439270))
|
|
12
|
+
|
|
13
|
+
### Refactoring
|
|
14
|
+
|
|
15
|
+
* **utils**: formatting ([`b23f195`](https://github.com/BAMresearch/jupyter-analysis-tools/commit/b23f1957149a9ae77a28f330eba3249d3fe3d2e5))
|
|
16
|
+
|
|
17
|
+
## v1.4.3 (2025-08-01)
|
|
18
|
+
|
|
19
|
+
### Bug fixes
|
|
20
|
+
|
|
21
|
+
* **utils**: makeNetworkdriveAbsolute() should return input path if no changes needed ([`2ec96d7`](https://github.com/BAMresearch/jupyter-analysis-tools/commit/2ec96d7066a3473c6d27a6e6d01c640f6c142346))
|
|
22
|
+
|
|
23
|
+
## v1.4.2 (2025-08-01)
|
|
24
|
+
|
|
25
|
+
### Bug fixes
|
|
26
|
+
|
|
27
|
+
* **utils**: makeNetworkdriveAbsolute() with FQDN resolution ([`f4591fb`](https://github.com/BAMresearch/jupyter-analysis-tools/commit/f4591fb46dcfeafbb1f63c4323efbb8aea302a92))
|
|
28
|
+
|
|
3
29
|
## v1.4.1 (2025-08-01)
|
|
4
30
|
|
|
5
31
|
### Bug fixes
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: jupyter-analysis-tools
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.5.0
|
|
4
4
|
Summary: Yet another Python library with helpers and utilities for data analysis and processing.
|
|
5
5
|
Author-email: Ingo Breßler <ingo.bressler@bam.de>, "Brian R. Pauw" <brian.pauw@bam.de>
|
|
6
6
|
License-Expression: MIT
|
|
@@ -35,10 +35,10 @@ Requires-Dist: matplotlib
|
|
|
35
35
|
Requires-Dist: ipywidgets
|
|
36
36
|
Dynamic: license-file
|
|
37
37
|
|
|
38
|
-
# Jupyter Analysis Tools (v1.
|
|
38
|
+
# Jupyter Analysis Tools (v1.5.0)
|
|
39
39
|
|
|
40
40
|
[](https://pypi.org/project/jupyter-analysis-tools)
|
|
41
|
-
[](https://github.com/BAMresearch/jupyter-analysis-tools/compare/v1.5.0...main)
|
|
42
42
|
[](https://en.wikipedia.org/wiki/MIT_license)
|
|
43
43
|
[](https://pypi.org/project/jupyter-analysis-tools)
|
|
44
44
|
[](https://pypi.org/project/jupyter-analysis-tools#files)
|
|
@@ -97,6 +97,32 @@ are installed:
|
|
|
97
97
|
|
|
98
98
|
# CHANGELOG
|
|
99
99
|
|
|
100
|
+
## v1.5.0 (2025-08-04)
|
|
101
|
+
|
|
102
|
+
### Bug fixes
|
|
103
|
+
|
|
104
|
+
* **readSSFZ**: rename command readSSFZ -> ssfz2json for avoiding name collision with function in readdata module ([`dde1d10`](https://github.com/BAMresearch/jupyter-analysis-tools/commit/dde1d109b70de0cd0cb712cfc4f19a3be2cbd880))
|
|
105
|
+
|
|
106
|
+
### Features
|
|
107
|
+
|
|
108
|
+
* **readdata**: jupyter_analysis_tools.readSSFZ cmdline tool to convert .SSFZ to .JSON and diff-compare .SSFZ files (their metadata) ([`46dc633`](https://github.com/BAMresearch/jupyter-analysis-tools/commit/46dc6338052a9dd875326d2a38cc5b6621439270))
|
|
109
|
+
|
|
110
|
+
### Refactoring
|
|
111
|
+
|
|
112
|
+
* **utils**: formatting ([`b23f195`](https://github.com/BAMresearch/jupyter-analysis-tools/commit/b23f1957149a9ae77a28f330eba3249d3fe3d2e5))
|
|
113
|
+
|
|
114
|
+
## v1.4.3 (2025-08-01)
|
|
115
|
+
|
|
116
|
+
### Bug fixes
|
|
117
|
+
|
|
118
|
+
* **utils**: makeNetworkdriveAbsolute() should return input path if no changes needed ([`2ec96d7`](https://github.com/BAMresearch/jupyter-analysis-tools/commit/2ec96d7066a3473c6d27a6e6d01c640f6c142346))
|
|
119
|
+
|
|
120
|
+
## v1.4.2 (2025-08-01)
|
|
121
|
+
|
|
122
|
+
### Bug fixes
|
|
123
|
+
|
|
124
|
+
* **utils**: makeNetworkdriveAbsolute() with FQDN resolution ([`f4591fb`](https://github.com/BAMresearch/jupyter-analysis-tools/commit/f4591fb46dcfeafbb1f63c4323efbb8aea302a92))
|
|
125
|
+
|
|
100
126
|
## v1.4.1 (2025-08-01)
|
|
101
127
|
|
|
102
128
|
### Bug fixes
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
# Jupyter Analysis Tools (v1.
|
|
1
|
+
# Jupyter Analysis Tools (v1.5.0)
|
|
2
2
|
|
|
3
3
|
[](https://pypi.org/project/jupyter-analysis-tools)
|
|
4
|
-
[](https://github.com/BAMresearch/jupyter-analysis-tools/compare/v1.5.0...main)
|
|
5
5
|
[](https://en.wikipedia.org/wiki/MIT_license)
|
|
6
6
|
[](https://pypi.org/project/jupyter-analysis-tools)
|
|
7
7
|
[](https://pypi.org/project/jupyter-analysis-tools#files)
|
|
@@ -41,6 +41,9 @@ documentation = "https://BAMresearch.github.io/jupyter-analysis-tools"
|
|
|
41
41
|
repository = "https://github.com/BAMresearch/jupyter-analysis-tools"
|
|
42
42
|
changelog = "https://BAMresearch.github.io/jupyter-analysis-tools/changelog.html"
|
|
43
43
|
|
|
44
|
+
[project.scripts]
|
|
45
|
+
ssfz2json = "jupyter_analysis_tools.ssfz2json:main"
|
|
46
|
+
|
|
44
47
|
[build-system]
|
|
45
48
|
requires = [
|
|
46
49
|
"setuptools>=40.6",
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
# ssfz2json.py
|
|
3
|
+
|
|
4
|
+
import argparse
|
|
5
|
+
import json
|
|
6
|
+
import sys
|
|
7
|
+
from pathlib import Path
|
|
8
|
+
|
|
9
|
+
from jupyter_analysis_tools.readdata import readSSFZ
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
def main():
|
|
13
|
+
parser = argparse.ArgumentParser(
|
|
14
|
+
description="""
|
|
15
|
+
Reads and parses a .SSFZ file created by Anton Paar SAXSquant software and writes them
|
|
16
|
+
back to disk as .JSON file under the same base name if no other output name was given.
|
|
17
|
+
|
|
18
|
+
If two .SSFZ files are provided, a diff-like comparison of metadata is output and the
|
|
19
|
+
*outPath* argument is ignored.
|
|
20
|
+
"""
|
|
21
|
+
)
|
|
22
|
+
parser.add_argument(
|
|
23
|
+
"-i",
|
|
24
|
+
"--inPath",
|
|
25
|
+
type=lambda p: Path(p).absolute(),
|
|
26
|
+
help="Path of the input .SSFZ file to read.",
|
|
27
|
+
required=True,
|
|
28
|
+
)
|
|
29
|
+
parser.add_argument(
|
|
30
|
+
"-c",
|
|
31
|
+
"--comparePath",
|
|
32
|
+
type=lambda p: Path(p).absolute(),
|
|
33
|
+
help="Path of a 2nd .SSFZ file to compare its metadata against the 1st one.",
|
|
34
|
+
)
|
|
35
|
+
parser.add_argument(
|
|
36
|
+
"-o",
|
|
37
|
+
"--outPath",
|
|
38
|
+
type=lambda p: Path(p).absolute(),
|
|
39
|
+
help="Output file Path to write the JSON data to.",
|
|
40
|
+
)
|
|
41
|
+
json_args = dict(sort_keys=True, indent=2)
|
|
42
|
+
args = parser.parse_args()
|
|
43
|
+
if not args.inPath.is_file():
|
|
44
|
+
print(f"Provided file '{args.inPath}' not found!")
|
|
45
|
+
return 1
|
|
46
|
+
in_data = readSSFZ(args.inPath)
|
|
47
|
+
if args.comparePath is not None:
|
|
48
|
+
import difflib
|
|
49
|
+
|
|
50
|
+
comp_data = readSSFZ(args.comparePath)
|
|
51
|
+
diff = difflib.unified_diff(
|
|
52
|
+
json.dumps(in_data, **json_args).splitlines(keepends=True),
|
|
53
|
+
json.dumps(comp_data, **json_args).splitlines(keepends=True),
|
|
54
|
+
fromfile=str(args.inPath),
|
|
55
|
+
tofile=str(args.comparePath),
|
|
56
|
+
)
|
|
57
|
+
for line in diff:
|
|
58
|
+
print(line, end="")
|
|
59
|
+
else: # just write JSON to outPath
|
|
60
|
+
if args.outPath is None:
|
|
61
|
+
args.outPath = args.inPath.with_suffix(args.inPath.suffix + ".json")
|
|
62
|
+
with open(args.outPath, "w") as fd:
|
|
63
|
+
json.dump(in_data, fd, **json_args)
|
|
64
|
+
print(f"Wrote '{args.outPath}'.")
|
|
65
|
+
return 0
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
if __name__ == "__main__":
|
|
69
|
+
sys.exit(main())
|
{jupyter_analysis_tools-1.4.1 → jupyter_analysis_tools-1.5.0}/src/jupyter_analysis_tools/utils.py
RENAMED
|
@@ -106,16 +106,32 @@ def addEnvScriptsToPATH():
|
|
|
106
106
|
os.environ["PATH"] = sep.join(environPATH)
|
|
107
107
|
|
|
108
108
|
|
|
109
|
-
def networkdriveMapping(cmdOutput: str = None):
|
|
109
|
+
def networkdriveMapping(cmdOutput: str = None, resolveNames: bool = True):
|
|
110
110
|
"""Returns a dict of mapping drive letters to network paths (on Windows)."""
|
|
111
111
|
if isWindows():
|
|
112
112
|
if cmdOutput is None:
|
|
113
113
|
proc = subprocess.run(["net", "use"], capture_output=True, text=True, encoding="cp850")
|
|
114
114
|
cmdOutput = proc.stdout
|
|
115
|
+
|
|
116
|
+
def resolveFQDN(uncPath):
|
|
117
|
+
if not resolveNames:
|
|
118
|
+
return uncPath
|
|
119
|
+
parts = uncPath.split("\\")
|
|
120
|
+
idx = [i for i, part in enumerate(parts) if len(part)][0]
|
|
121
|
+
proc = subprocess.run(
|
|
122
|
+
["nslookup", parts[idx]], capture_output=True, text=True, encoding="cp850"
|
|
123
|
+
)
|
|
124
|
+
res = [line.split() for line in proc.stdout.splitlines() if line.startswith("Name:")]
|
|
125
|
+
if len(res) and len(res[0]) == 2:
|
|
126
|
+
parts[idx] = res[0][1]
|
|
127
|
+
return "\\".join(parts)
|
|
128
|
+
|
|
115
129
|
rows = [line.split() for line in cmdOutput.splitlines() if "Windows Network" in line]
|
|
116
|
-
rows =
|
|
117
|
-
|
|
118
|
-
|
|
130
|
+
rows = {
|
|
131
|
+
row[1]: resolveFQDN(row[2])
|
|
132
|
+
for row in rows
|
|
133
|
+
if row[1].endswith(":") and row[2].startswith(r"\\")
|
|
134
|
+
}
|
|
119
135
|
return rows
|
|
120
136
|
else: # Linux (tested) or macOS (untested)
|
|
121
137
|
if cmdOutput is None:
|
|
@@ -143,17 +159,17 @@ def networkdriveMapping(cmdOutput: str = None):
|
|
|
143
159
|
return {}
|
|
144
160
|
|
|
145
161
|
|
|
146
|
-
def makeNetworkdriveAbsolute(filepath, cmdOutput: str = None):
|
|
162
|
+
def makeNetworkdriveAbsolute(filepath, cmdOutput: str = None, resolveNames: bool = True):
|
|
147
163
|
"""Replaces the drive letter of the given path by the respective network path, if possible."""
|
|
148
164
|
if filepath.drive.startswith(r"\\"):
|
|
149
|
-
return # it's a UNC path already
|
|
165
|
+
return filepath # it's a UNC path already
|
|
150
166
|
if isWindows():
|
|
151
|
-
drivemap = networkdriveMapping(cmdOutput=cmdOutput)
|
|
167
|
+
drivemap = networkdriveMapping(cmdOutput=cmdOutput, resolveNames=resolveNames)
|
|
152
168
|
prefix = drivemap.get(filepath.drive, None)
|
|
153
169
|
if prefix is not None:
|
|
154
170
|
filepath = Path(prefix).joinpath(*filepath.parts[1:])
|
|
155
171
|
else: # Linux or macOS
|
|
156
|
-
drivemap = networkdriveMapping(cmdOutput=cmdOutput)
|
|
172
|
+
drivemap = networkdriveMapping(cmdOutput=cmdOutput, resolveNames=resolveNames)
|
|
157
173
|
# search for the mountpoint, starting with the longest, most specific, first
|
|
158
174
|
for mp, target in sorted(drivemap.items(), key=lambda tup: len(tup[0]), reverse=True):
|
|
159
175
|
if filepath.is_relative_to(mp):
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: jupyter-analysis-tools
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.5.0
|
|
4
4
|
Summary: Yet another Python library with helpers and utilities for data analysis and processing.
|
|
5
5
|
Author-email: Ingo Breßler <ingo.bressler@bam.de>, "Brian R. Pauw" <brian.pauw@bam.de>
|
|
6
6
|
License-Expression: MIT
|
|
@@ -35,10 +35,10 @@ Requires-Dist: matplotlib
|
|
|
35
35
|
Requires-Dist: ipywidgets
|
|
36
36
|
Dynamic: license-file
|
|
37
37
|
|
|
38
|
-
# Jupyter Analysis Tools (v1.
|
|
38
|
+
# Jupyter Analysis Tools (v1.5.0)
|
|
39
39
|
|
|
40
40
|
[](https://pypi.org/project/jupyter-analysis-tools)
|
|
41
|
-
[](https://github.com/BAMresearch/jupyter-analysis-tools/compare/v1.5.0...main)
|
|
42
42
|
[](https://en.wikipedia.org/wiki/MIT_license)
|
|
43
43
|
[](https://pypi.org/project/jupyter-analysis-tools)
|
|
44
44
|
[](https://pypi.org/project/jupyter-analysis-tools#files)
|
|
@@ -97,6 +97,32 @@ are installed:
|
|
|
97
97
|
|
|
98
98
|
# CHANGELOG
|
|
99
99
|
|
|
100
|
+
## v1.5.0 (2025-08-04)
|
|
101
|
+
|
|
102
|
+
### Bug fixes
|
|
103
|
+
|
|
104
|
+
* **readSSFZ**: rename command readSSFZ -> ssfz2json for avoiding name collision with function in readdata module ([`dde1d10`](https://github.com/BAMresearch/jupyter-analysis-tools/commit/dde1d109b70de0cd0cb712cfc4f19a3be2cbd880))
|
|
105
|
+
|
|
106
|
+
### Features
|
|
107
|
+
|
|
108
|
+
* **readdata**: jupyter_analysis_tools.readSSFZ cmdline tool to convert .SSFZ to .JSON and diff-compare .SSFZ files (their metadata) ([`46dc633`](https://github.com/BAMresearch/jupyter-analysis-tools/commit/46dc6338052a9dd875326d2a38cc5b6621439270))
|
|
109
|
+
|
|
110
|
+
### Refactoring
|
|
111
|
+
|
|
112
|
+
* **utils**: formatting ([`b23f195`](https://github.com/BAMresearch/jupyter-analysis-tools/commit/b23f1957149a9ae77a28f330eba3249d3fe3d2e5))
|
|
113
|
+
|
|
114
|
+
## v1.4.3 (2025-08-01)
|
|
115
|
+
|
|
116
|
+
### Bug fixes
|
|
117
|
+
|
|
118
|
+
* **utils**: makeNetworkdriveAbsolute() should return input path if no changes needed ([`2ec96d7`](https://github.com/BAMresearch/jupyter-analysis-tools/commit/2ec96d7066a3473c6d27a6e6d01c640f6c142346))
|
|
119
|
+
|
|
120
|
+
## v1.4.2 (2025-08-01)
|
|
121
|
+
|
|
122
|
+
### Bug fixes
|
|
123
|
+
|
|
124
|
+
* **utils**: makeNetworkdriveAbsolute() with FQDN resolution ([`f4591fb`](https://github.com/BAMresearch/jupyter-analysis-tools/commit/f4591fb46dcfeafbb1f63c4323efbb8aea302a92))
|
|
125
|
+
|
|
100
126
|
## v1.4.1 (2025-08-01)
|
|
101
127
|
|
|
102
128
|
### Bug fixes
|
|
@@ -31,11 +31,13 @@ src/jupyter_analysis_tools/distrib.py
|
|
|
31
31
|
src/jupyter_analysis_tools/git.py
|
|
32
32
|
src/jupyter_analysis_tools/plotting.py
|
|
33
33
|
src/jupyter_analysis_tools/readdata.py
|
|
34
|
+
src/jupyter_analysis_tools/ssfz2json.py
|
|
34
35
|
src/jupyter_analysis_tools/utils.py
|
|
35
36
|
src/jupyter_analysis_tools/widgets.py
|
|
36
37
|
src/jupyter_analysis_tools.egg-info/PKG-INFO
|
|
37
38
|
src/jupyter_analysis_tools.egg-info/SOURCES.txt
|
|
38
39
|
src/jupyter_analysis_tools.egg-info/dependency_links.txt
|
|
40
|
+
src/jupyter_analysis_tools.egg-info/entry_points.txt
|
|
39
41
|
src/jupyter_analysis_tools.egg-info/requires.txt
|
|
40
42
|
src/jupyter_analysis_tools.egg-info/top_level.txt
|
|
41
43
|
templates/CHANGELOG.md.j2
|
|
@@ -83,7 +83,7 @@ def test_appendToPATH(capsys):
|
|
|
83
83
|
|
|
84
84
|
def test_networkdriveMapping():
|
|
85
85
|
if isWindows():
|
|
86
|
-
map = networkdriveMapping(cmdOutput=outNetUse)
|
|
86
|
+
map = networkdriveMapping(cmdOutput=outNetUse, resolveNames=False)
|
|
87
87
|
assert map == {
|
|
88
88
|
"G:": "\\\\ALPHA\\BETA",
|
|
89
89
|
"K:": "\\\\GAM\\MMA",
|
|
@@ -91,7 +91,7 @@ def test_networkdriveMapping():
|
|
|
91
91
|
"T:": "\\\\test\\foldername",
|
|
92
92
|
}
|
|
93
93
|
else: # Linux or macOS
|
|
94
|
-
map = networkdriveMapping(cmdOutput=outMount)
|
|
94
|
+
map = networkdriveMapping(cmdOutput=outMount, resolveNames=False)
|
|
95
95
|
assert map == {
|
|
96
96
|
"/mnt/gh 12": "//xyz04.fgsd.asd.com/G2S/GH31",
|
|
97
97
|
"/mnt/some (ugly) on type name": "//abc02.def.ault.de/X23/somename",
|
|
@@ -101,12 +101,12 @@ def test_networkdriveMapping():
|
|
|
101
101
|
def test_makeNetworkdriveAbsolute():
|
|
102
102
|
if isWindows():
|
|
103
103
|
filepath = Path(r"M:\some\folders\a file name.ext")
|
|
104
|
-
newpath = makeNetworkdriveAbsolute(filepath, cmdOutput=outNetUse)
|
|
104
|
+
newpath = makeNetworkdriveAbsolute(filepath, cmdOutput=outNetUse, resolveNames=False)
|
|
105
105
|
assert filepath != newpath
|
|
106
106
|
assert newpath == Path(r"\\user\drive\uname\some\folders\a file name.ext")
|
|
107
107
|
else: # Linux or macOS
|
|
108
108
|
filepath = Path("/mnt/some (ugly) on type name/some/folders/a file name.ext")
|
|
109
|
-
newpath = makeNetworkdriveAbsolute(filepath, cmdOutput=outMount)
|
|
109
|
+
newpath = makeNetworkdriveAbsolute(filepath, cmdOutput=outMount, resolveNames=False)
|
|
110
110
|
assert filepath != newpath
|
|
111
111
|
assert newpath == Path("//abc02.def.ault.de/X23/somename/some/folders/a file name.ext")
|
|
112
112
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{jupyter_analysis_tools-1.4.1 → jupyter_analysis_tools-1.5.0}/src/jupyter_analysis_tools/analysis.py
RENAMED
|
File without changes
|
{jupyter_analysis_tools-1.4.1 → jupyter_analysis_tools-1.5.0}/src/jupyter_analysis_tools/binning.py
RENAMED
|
File without changes
|
|
File without changes
|
{jupyter_analysis_tools-1.4.1 → jupyter_analysis_tools-1.5.0}/src/jupyter_analysis_tools/distrib.py
RENAMED
|
File without changes
|
{jupyter_analysis_tools-1.4.1 → jupyter_analysis_tools-1.5.0}/src/jupyter_analysis_tools/git.py
RENAMED
|
File without changes
|
{jupyter_analysis_tools-1.4.1 → jupyter_analysis_tools-1.5.0}/src/jupyter_analysis_tools/plotting.py
RENAMED
|
File without changes
|
{jupyter_analysis_tools-1.4.1 → jupyter_analysis_tools-1.5.0}/src/jupyter_analysis_tools/readdata.py
RENAMED
|
File without changes
|
{jupyter_analysis_tools-1.4.1 → jupyter_analysis_tools-1.5.0}/src/jupyter_analysis_tools/widgets.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{jupyter_analysis_tools-1.4.1 → jupyter_analysis_tools-1.5.0}/testdata/2015-03-20-Silica.ssf.json
RENAMED
|
File without changes
|
{jupyter_analysis_tools-1.4.1 → jupyter_analysis_tools-1.5.0}/testdata/2015-03-20-Silica.ssfz
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|