Database for Automation and Consistent Holistic Synthesis
Project description
DACHS (v0.5.4)
Database for Automation and Consistent Holistic Synthesis
Installation
pip install dachs
You can also install the in-development version with:
pip install git+https://github.com/BAMresearch/DACHS.git@main
Usage
To invoke the command line interface for processing experimental log files to the DACHS hierarchical structure and to HDF5 output, run the following to show the usage help:
python -m dachs -h
Documentation
https://BAMresearch.github.io/DACHS
Development
Testing
See which tests are available (arguments after -- get passed to pytest which runs the tests):
tox -e py -- --co
Run a specific test only:
tox -e py -- -k <test_name from listing before>
For testing generation of the complete data structure in the local environment with stdout&stderr run:
tox -e py -- -k test_integral
Run all tests with:
tox -e py
Package Version
Get the next version number and how the GIT history would be interpreted for that:
pip install python-semantic-release
semantic-release -v version --print
This prints its interpretation of the commits in detail. Make sure to supply the --print
argument to not raise the version number which is done automatically by the release job
of the GitHub Action Workflows.
Project template
Update the project configuration from the copier template and make sure the required packages are installed:
pip install copier jinja2-time
copier update --trust --skip-answered
CHANGELOG
v0.5.4 (2025-12-08)
Bug fixes
-
Project: converted to copier project template, reapplied, updated (
69d2476) -
McSAS3: updated module names (
6d26abf)
Testing
- Notebook: rerun for updated outputs (
5f52fa5)
Unknown Scope
-
Update authors list with Glen J. Smales (
d50dae8) -
Update LICENSE (
b78d2de) -
Update README.rst (
363e850) -
Update README: link to internal doc pages (
4a47042) -
Added wash solvent, volume and number of washes (
8f1f095)
v0.5.3 (2024-08-07)
Bug fixes
-
Structure: copy some parameters to DerivedParameters as well (
b8833c6) -
Structure: increase note count with each note (
c6547c7) -
Reagent: append component or reagent if not in list already (
9067c63)
Continuous integration
-
docs: install graphviz+dot on Windows (
6c941d3) -
docs: install graphviz+dot on Windows (
6eefd83) -
coverage: syntax fix (
2b98edd)
Documentation
-
Changelog: updated (
416bbdd) -
Structure: adjust info messages/output (
23f491b) -
notebook: removed outputs for easier diff (
5e70afb)
Refactoring
- structure: make flake8 happy (
2ede69c)
Testing
-
notebook: added outputs again for testing (
b57b2fe) -
requirements: updated for chempy issues with numpy2 (
98d1b57) -
Data: adjusted test data (
a4b0d1c)
Unknown Scope
v0.5.2 (2023-11-29)
Bug fixes
- structure: logging to files (
507fec6)
Refactoring
Testing
- dachs: tests need assertions (
9e5eec4)
v0.5.1 (2023-11-28)
Bug fixes
-
notebook: remove previously added locale change (
016ed6b) -
notebook: ensure utf8 encoding (Windows) (
0e950e1) -
structure: warn if syringe could not be parsed (
9992fc2) -
structure.create: what if TotalLinkerMoles is not found? DivBy0 on L444 (
8810462) -
structure.create: handle missing+optional Mixture container (
d2d9cfa) -
structure.create: previousRLM might be empty (
859b665) -
find_in_log: remove dummy exclude, make it empty list (
5fe0cca) -
format: syntax, put backslashes in raw string (
747cde0) -
reading: handle optional columns gracefully (PriceDate, Using) (
33a7897)
Documentation
-
changelog: fix commit message formatting (
031ce53) -
changelog: adjusted changelog for unreleased changes as well (
21595ed) -
changelog: modified changelog template, omit chore changes (
8344ef6) -
changelog: syntax fix (
ecbad98)
Refactoring
-
General: some extra print() disabled (
37b1b31) -
formatting: comment (
6223aa1) -
Naming: consistent more specific name member, fixing tests (
0d635d6)
Testing
-
notebook: show .h5 files without full path which depends on platform (
3e85944) -
notebook: show .h5 files found (
0fb4d8e) -
dachs: traceback info added, on failures (
4060476) -
notebook: ensure utf8 encoding, required for Windows (
dc11f2a) -
notebook: now with cell outputs (
bddeb75) -
notebook: updated for current structure (
2426750) -
notebook: remove notebook cell outputs (
aa885f2) -
General: updated file paths, output failing file names (
bf0fc32)
Unknown Scope
-
update test cases (
0dff71a) -
Adapting to support a third addditive (
0ccce64) -
improved data classes to offload work. (
f13761e) -
Updating synthesis text generation (
993136d) -
Updates on the text block and an additional yield (
cc2931e) -
naming improvements, synthesis text generation (
207a6e1) -
fixing time, yield calc issues, improving naming (
c678f54) -
small upgrade to reaction times (
ed1aba0) -
small update (
a34592f) -
Replaced KeyParameters w/more detailed DerivedPara (
c7ba0a6) -
Result of bug-squashing event with Glen (
5173ca7) -
Adding support for density of mixtures. (
de695fe) -
find_in_log will never return None, clarified. (
f5d83a3) -
removed SynthesisLog-type messages -> RawLog (
e0486f1) -
adding ProductYield to ExtraInformation (
0df24b1) -
skipping blank lines in logs (
40f8114) -
Adding "Using" to the RawLogMessages (
95e2552) -
helper function to split a rowan log per sample. (
46d0df1) -
Removing final mentions of "weight" and minor fix (
3de5078)
v0.5.0 (2023-07-28)
Bug fixes
-
Notebook: adjusted for Dash 2.11, tests successful here (
31ab924) -
helpers.whitespaceCleanup: handle Series object properly (
f5e791e) -
serialization: dumpKV() omits custom dachs types now but stores type info (
cdbbbcc) -
Equipment.Description: filter out NaN (set to '') values while parsing (
2da1957) -
serialization.graphKV: fixed for node names containing colons ':' (
8570cbb) -
equipment.PV: reader/parser fixed for extended LogBook xslx format (
5cfd521)
Features
-
equipment.PV: updated converters and validators (
85ed382) -
Physical Values: parsing PVs from Logbook .xlsx file to PVs and storing them to HDF5 (
9403b40)
Refactoring
-
serialization: removed obsolete filterStoragePaths() (
5eee1fb) -
serialization: debug output improved (
850b293) -
main: file mode change (
795d93b) -
General: regular python files shall not have executable bit set (
b3635f4) -
PV: class names shall be in TitleCase (
13e9304)
Testing
-
requirements: fixed chempy version to prevent KeyError about . in formula (
6126f4e) -
PV: fixed tests for recent PV changes (
ca51989)
Unknown Scope
- Updated Logbook with actual PVs and extra info (
b0bafab)
v0.4.3-dev.5 (2023-06-09)
Refactoring
-
main: separate main.py for code to be reused in tests (
d62f195) -
scripts: RunMultiple.sh updated for path handling (
2eb6b01) -
formatting: some fixes to agree with flake8 and isort, some reformatting by black (
f614cb1)
Testing
-
structure: prevent pytest args to slip through to argparse (
17039b3) -
notebook: note on source .h5 files, outputs for .h5 files generated by tests earlier (
27c3f7b) -
structure: using code from main to generate .h5 files, more dependencies (
395b2ca)
v0.4.3-dev.3 (2023-06-02)
Testing
-
Pint: fix currency units definition for latest Pint 0.22 (
315222a) -
reagent: fix PreparationDate argument (
6bdeba5)
v0.4.3-dev.2 (2023-05-04)
Code style
- readers: trailing whitespace (W291) removed (
441a4c4)
v0.4.3-dev.1 (2023-05-04)
Code style
- structure: black formatter (
81f160f)
Unknown Scope
-
Computation of solution age added to extraInfo (
df5dd85) -
added test case for AutoMOF_6 series (
4fa9ec3) -
preparing for AutoMOF 6&7 (
1d53806) -
Shell script to run AutoMOF05 (
755431d) -
script to pick apart the raw logs from RoWan (
5918e0d) -
Readin example jupyter notebook launching Dash (
afa6065) -
making a read-in structure python notebook (
09a1e55) -
tests(structure): set AMSET in tests to succeed (
e7740a5) -
removing superfluous weight determination (
5ff5fd9) -
reimplementing calibration and CLI AMSET option (
9a4c70f)
v0.4.2 (2023-04-20)
Bug fixes
- serialization: Graph SVG with transparent background (
366287c)
Documentation
- general: logo (
febf8f0)
v0.4.1 (2023-04-18)
Bug fixes
-
GitHub Actions: Make new release only if tests succeed (
94f7a25) -
requirements: graphviz added for tests (
a06f87d)
v0.4.0 (2023-04-17)
Bug fixes
-
data import: whitespace cleanup for texts/descriptions (
005be00) -
ExperimentalSetupClass: removing redundant whitespace from description (
5429102) -
readers: unwanted DataFrame string formatting (
880ca0d)
Documentation
-
visualization: Generate SVG Graph in main (
31f38f9) -
visualization: Graph building code added, WIP (
1e1ffed)
Features
- serialization: use the ID for path prefix at singular objects as well (
60a08eb)
Refactoring
- ExperimentalSetupClass: comment about intended behaviour (
9a41f7b)
v0.3.0 (2023-04-05)
Bug fixes
- command line: typo in usage texts (
cf39d14)
Documentation
Features
- command line: new parameter -o allows to specify location and name of HDF5 output file (
fab741a)
Refactoring
-
serialization: use McHDF.storeKVPairs avoids separate loop (
34b9cd9) -
serialization: add type info (
1e946d4) -
serialization: rename storagePaths() -> dumpKV() (
4ac7f96) -
structure: main module reuses structure.create() (
be72352) -
structure: moved testing code to separate module for reuse (
6b78abf) -
root: rename top-level class to more meaningful name Experiment (
0fe03dc)
v0.2.0 (2023-04-04)
Code style
- serialization: fix file header (
029c20c)
Documentation
- readme: info & reminder how to get stdout/stderr with pytest (
20fc960)
Features
-
ComponentMasses: store as dict associated to their respective Component (
a797b0b) -
serialization: use object IDs instead of numerical index where available (
fef04b0)
Unknown Scope
- tests(structure): commented core for dumping all storage paths (
450d660)
v0.1.2 (2023-04-03)
Bug fixes
-
Serialization: store lists of quantities, fixes #7 (
d311d5b) -
EquipmentList: price unit parsing (
971a54d)
Refactoring
- Tests: mcsas3 can be installed with pip now (
4d17768)
v0.1.2-dev.3 (2023-03-31)
Code style
- documentation: comment formatting (
1129c56)
v0.1.2-dev.2 (2023-03-31)
Code style
- changelog: version number prefixed by v (
1840736)
Documentation
- General: inheritance diagram in reference (
946cdd8)
v0.1.1 (2023-03-28)
Bug fixes
- reagent: adjust units and method names for tests to succeed (
0b5b21e)
Code style
-
general: satisfy flake8 (
ce44d64) -
general: code formatting line length set to 115 (
d013773) -
general: reformat main.py, whitespace fixes (
7b9954b) -
general: isort imports (
0467ca3) -
general: formatted with black (
1b67618) -
line length: 115) (
4b19763)
Documentation
-
general: disable link check temporarily (
332a112) -
general: remove section title (
d1fd17b) -
general: initial setup (
a490cb1) -
project: readme updated (
caed30c)
Refactoring
- general: fix ureg imports (
38e7a19)
Unknown Scope
-
v0.1.0 (
e9e288f) -
Many small fixes, now also runs from CLI (
a06bb98) -
adding yield, ML ratio, more test cases (
3fe80a9) -
Fix for the DACHS paths issue and other minor (
6dc1362) -
added the reaction mixture and automatic mm calcs. (
36a90df) -
tests passing (
9aa39ef) -
Mixture class operational, structure test broken. (
e5d8e7e) -
Updated naming and start on Mixture class. (
6846636) -
adjusting reagent, but will rewrite mixture (
44f9108) -
Provisioning some essential derived data on mixes (
f657f79) -
added price per volume and mass to reagent (
a084f21) -
bugfixes (
976b687) -
equipment and experimentalSetup unit test (
2750dcd) -
Changed UID to ID and fixed excel read (
a1ccde0) -
using updated McHDF.storeKV() (
e7fa4de) -
disabled debug output (
4621d21) -
using PurePath for hdf5 path, to work in Windows as well (
3c2f4d3) -
using PurePosixPath for hdf5 path not being filesystem related (
d9caa87) -
remove defaults for required fields (
90487d5) -
hdf5 export in test_integral() using McSAS3 writer (
4b627d8) -
fixed test_integral() (
22257c7) -
removed empty file (
eb4ad06) -
Adding derived parameters extractors, not yet work (
90dcf7f) -
Modified support for derived parameters (
404a746) -
Added readers for message log and starting compoun (
b04479f) -
Added RawLogMessage tests (
0343aeb) -
Created and moved pytests to tests directory (
24541c2) -
file name typo (
e1c09cf) -
let git ignore macOS file meta data (
cfc8642) -
Change datacass factory for optionals. test update (
05ab72d) -
small modifications to get the test working (
70ba6d1) -
packaging and versioneer. (
7acd484) -
support for concentration calculations in mixture (
c4ff11b) -
Updates. Can now do mixtures of reagents (
0ed07a6) -
probably better with raw strings. (
327ba00) -
addition of a UID, for storing in HDF5 tree (
8783109) -
unit and unit conversions added. (
0557be3) -
Added units support, see MolarMass (
16ee937) -
reagent now has a convenient items() iterable (
8c1914b) -
Reagent class, just as example (
331be46) -
Initial commit (
b0a911d)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file dachs-0.5.4.tar.gz.
File metadata
- Download URL: dachs-0.5.4.tar.gz
- Upload date:
- Size: 463.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c0b6e68a1c9a37f2d8456ab0b836b87f84ba67fbf6305e97cacaecd9592d1b7a
|
|
| MD5 |
acd4c63730501902aaf60de3d0f876e3
|
|
| BLAKE2b-256 |
fd93b23df7d678b6711cd9665addc973df78288eeaf52fa2018a76a9e37f461e
|
Provenance
The following attestation bundles were made for dachs-0.5.4.tar.gz:
Publisher:
ci-cd.yml on BAMresearch/DACHS
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
dachs-0.5.4.tar.gz -
Subject digest:
c0b6e68a1c9a37f2d8456ab0b836b87f84ba67fbf6305e97cacaecd9592d1b7a - Sigstore transparency entry: 749440826
- Sigstore integration time:
-
Permalink:
BAMresearch/DACHS@69d24765ce1c1a57d647e41cb7d00c58523300cf -
Branch / Tag:
refs/heads/main - Owner: https://github.com/BAMresearch
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
ci-cd.yml@69d24765ce1c1a57d647e41cb7d00c58523300cf -
Trigger Event:
push
-
Statement type:
File details
Details for the file dachs-0.5.4-py3-none-any.whl.
File metadata
- Download URL: dachs-0.5.4-py3-none-any.whl
- Upload date:
- Size: 52.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
61a29e04409404cf0ff615e420931e17582bfc42603d388200d559b60b7a6efe
|
|
| MD5 |
368f45f0f1baad9045931872c7a4e499
|
|
| BLAKE2b-256 |
f86d99843e50a222587bf814cf9ca3a598259b8dd8f8bf5ebf09e11e0ef981c9
|
Provenance
The following attestation bundles were made for dachs-0.5.4-py3-none-any.whl:
Publisher:
ci-cd.yml on BAMresearch/DACHS
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
dachs-0.5.4-py3-none-any.whl -
Subject digest:
61a29e04409404cf0ff615e420931e17582bfc42603d388200d559b60b7a6efe - Sigstore transparency entry: 749440830
- Sigstore integration time:
-
Permalink:
BAMresearch/DACHS@69d24765ce1c1a57d647e41cb7d00c58523300cf -
Branch / Tag:
refs/heads/main - Owner: https://github.com/BAMresearch
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
ci-cd.yml@69d24765ce1c1a57d647e41cb7d00c58523300cf -
Trigger Event:
push
-
Statement type: