# SciSave - Data Serialization for Scientific Data
> * **Repository: [github.com/otvam/scisave](https://github.com/otvam/scisave)**
> * **PyPi: [pypi.org/project/scisave](https://pypi.org/project/scisave)**
> * **Conda: [anaconda.org/conda-forge/scisave](https://anaconda.org/conda-forge/scisave)**
## Summary
**SciSave** is a **Python serialization/deserialization** module:
* Specially targeted for **scientific applications**.
* Load **JSON/YAML configuration files**.
* Load and write **JSON/Pickle data files**.
For **YAML** files, the following **custom extensions** are used:
* `!path` - parse relative paths (with respect to the YAML file).
* `!include` - include other YAML files (recursion possible).
* `!eval` - evaluate a Python literal (using literal_eval).
* `!env` - substitute YAML strings with values from environment variables.
* `!sub` - substitute YAML strings with values from a provided dictionary.
* `!merge_dict` - merge a list of dicts.
* `!merge_list` - merge a list of lists.
For **JSON** files, the following **custom extensions** are used:
* Allows the serialization/deserialization of complex numbers (`__complex__`).
* Allows the serialization/deserialization of NumPy arrays (`__numpy__`).
* Allows the serialization/deserialization as/from text and gzip files
The following file extensions are used:
* `.yaml, .yml` - for YAML files
* `.json, .js` - for JSON text files
* `.gz, .gzip` - for JSON gzip files
* `.pck, .pkl, .pickle` - for Pickle files
The JSON/YAML files with the custom extensions are still valid JSON/YAML files.
SciSave is written in Python (NumPy and PyYAML are the only dependencies).
SciSave is respecting **semantic versioning** (starting from version 1.4).
## Warning
* Pickling data is not secure.
* Only load pickle files that you trust.
## Example
An example is located in the `example` folder of the repository:
* `run_data.py` contains an example file for the loader/dumper
* `config_main.yaml` YAML configuration file with custom extensions
* `config_include.yaml` YAML configuration file for include extension
* `dump.json` JSON plain text file for testing data dumping/loading
* `dump.gz` JSON plain gzip file for testing data dumping/loading
* `dump.pickle` Pickle file for testing data dumping/loading
## Project Links
* Repository: https://github.com/otvam/scisave
* Releases: https://github.com/otvam/scisave/releases
* Tags: https://github.com/otvam/scisave/tags
* Issues: https://github.com/otvam/scisave/issues
* PyPi: https://pypi.org/project/scisave
* Conda: https://anaconda.org/conda-forge/scisave
## Author
* **Thomas Guillod**
* Email: guillod@otvam.ch
* Website: https://otvam.ch
## Copyright
> (c) 2023 - Thomas Guillod
>
> BSD 2-Clause "Simplified" License
Raw data
{
"_id": null,
"home_page": null,
"name": "scisave",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.9",
"maintainer_email": "Thomas Guillod <guillod@otvam.ch>",
"keywords": "Python, Serialization, Deserialization, JSON, YAML, Pickle, NumPy",
"author": null,
"author_email": "Thomas Guillod <guillod@otvam.ch>",
"download_url": "https://files.pythonhosted.org/packages/43/6a/2124bd3474173965cca61ba8b9905f69b4349ff01133cc8049bc82f85bad/scisave-1.4.2.tar.gz",
"platform": null,
"description": "# SciSave - Data Serialization for Scientific Data\n\n> * **Repository: [github.com/otvam/scisave](https://github.com/otvam/scisave)**\n> * **PyPi: [pypi.org/project/scisave](https://pypi.org/project/scisave)**\n> * **Conda: [anaconda.org/conda-forge/scisave](https://anaconda.org/conda-forge/scisave)**\n\n## Summary\n\n**SciSave** is a **Python serialization/deserialization** module:\n* Specially targeted for **scientific applications**.\n* Load **JSON/YAML configuration files**. \n* Load and write **JSON/Pickle data files**.\n\nFor **YAML** files, the following **custom extensions** are used:\n* `!path` - parse relative paths (with respect to the YAML file).\n* `!include` - include other YAML files (recursion possible).\n* `!eval` - evaluate a Python literal (using literal_eval).\n* `!env` - substitute YAML strings with values from environment variables.\n* `!sub` - substitute YAML strings with values from a provided dictionary.\n* `!merge_dict` - merge a list of dicts.\n* `!merge_list` - merge a list of lists.\n\nFor **JSON** files, the following **custom extensions** are used:\n* Allows the serialization/deserialization of complex numbers (`__complex__`).\n* Allows the serialization/deserialization of NumPy arrays (`__numpy__`).\n* Allows the serialization/deserialization as/from text and gzip files \n\nThe following file extensions are used:\n* `.yaml, .yml` - for YAML files\n* `.json, .js` - for JSON text files\n* `.gz, .gzip` - for JSON gzip files\n* `.pck, .pkl, .pickle` - for Pickle files\n\nThe JSON/YAML files with the custom extensions are still valid JSON/YAML files.\n\nSciSave is written in Python (NumPy and PyYAML are the only dependencies).\nSciSave is respecting **semantic versioning** (starting from version 1.4).\n\n## Warning\n\n* Pickling data is not secure.\n* Only load pickle files that you trust.\n\n## Example\n\nAn example is located in the `example` folder of the repository:\n* `run_data.py` contains an example file for the loader/dumper\n* `config_main.yaml` YAML configuration file with custom extensions\n* `config_include.yaml` YAML configuration file for include extension\n* `dump.json` JSON plain text file for testing data dumping/loading\n* `dump.gz` JSON plain gzip file for testing data dumping/loading\n* `dump.pickle` Pickle file for testing data dumping/loading\n\n## Project Links\n\n* Repository: https://github.com/otvam/scisave\n* Releases: https://github.com/otvam/scisave/releases\n* Tags: https://github.com/otvam/scisave/tags\n* Issues: https://github.com/otvam/scisave/issues\n* PyPi: https://pypi.org/project/scisave\n* Conda: https://anaconda.org/conda-forge/scisave\n\n## Author\n\n* **Thomas Guillod**\n* Email: guillod@otvam.ch\n* Website: https://otvam.ch\n\n## Copyright\n\n> (c) 2023 - Thomas Guillod\n> \n> BSD 2-Clause \"Simplified\" License\n",
"bugtrack_url": null,
"license": "BSD-2-Clause",
"summary": "SciSave - Data Serialization for Scientific Data",
"version": "1.4.2",
"project_urls": {
"Homepage": "https://github.com/otvam/scisave",
"Issues": "https://github.com/otvam/scisave/issues",
"Releases": "https://github.com/otvam/scisave/releases",
"Repository": "https://github.com/otvam/scisave",
"Tags": "https://github.com/otvam/scisave/tags"
},
"split_keywords": [
"python",
" serialization",
" deserialization",
" json",
" yaml",
" pickle",
" numpy"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "c4dd4ad909118b8f87ed445a859ea3f90c9e2fce62a358bde61213e47cc642e9",
"md5": "c787369fc54d210540ec71aaa97f76af",
"sha256": "f774f298622bd2277dc2d0e3b1fafecaed3d019e66bc923244276b34e5fb5640"
},
"downloads": -1,
"filename": "scisave-1.4.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "c787369fc54d210540ec71aaa97f76af",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.9",
"size": 7617,
"upload_time": "2024-12-19T21:38:09",
"upload_time_iso_8601": "2024-12-19T21:38:09.339440Z",
"url": "https://files.pythonhosted.org/packages/c4/dd/4ad909118b8f87ed445a859ea3f90c9e2fce62a358bde61213e47cc642e9/scisave-1.4.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "436a2124bd3474173965cca61ba8b9905f69b4349ff01133cc8049bc82f85bad",
"md5": "cfaeb03130352977f6c03a63c6bbc641",
"sha256": "b74b1de17efa7005ceef97beb2b6b26564bcd3947e6772c7eec693ff4e44b0e0"
},
"downloads": -1,
"filename": "scisave-1.4.2.tar.gz",
"has_sig": false,
"md5_digest": "cfaeb03130352977f6c03a63c6bbc641",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.9",
"size": 11811,
"upload_time": "2024-12-19T21:38:11",
"upload_time_iso_8601": "2024-12-19T21:38:11.610812Z",
"url": "https://files.pythonhosted.org/packages/43/6a/2124bd3474173965cca61ba8b9905f69b4349ff01133cc8049bc82f85bad/scisave-1.4.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-12-19 21:38:11",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "otvam",
"github_project": "scisave",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "scisave"
}