Name | kim-edn JSON |
Version |
1.4.1
JSON |
| download |
home_page | None |
Summary | kim-edn - KIM-EDN encoder and decoder. |
upload_time | 2024-03-22 12:27:31 |
maintainer | None |
docs_url | None |
author | None |
requires_python | >=3.8 |
license | None |
keywords |
kim-edn
edn
|
VCS |
|
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
# KIM-EDN encoder and decoder
[![Python package](https://github.com/openkim/kim-edn/workflows/Python%20package/badge.svg)](https://github.com/openkim/kim-edn/actions)
[![codecov](https://codecov.io/gh/openkim/kim-edn/branch/master/graph/badge.svg)](https://codecov.io/gh/openkim/kim-edn)
[![Anaconda-Server Badge](https://img.shields.io/conda/vn/conda-forge/kim-edn.svg)](https://anaconda.org/conda-forge/kim-edn)
[![PyPI](https://img.shields.io/pypi/v/kim-edn.svg)](https://pypi.python.org/pypi/kim-edn)
[![License](https://img.shields.io/badge/license-LGPL--2.1--or--later-blue)](LICENSE)
## edn
Extensible data notation [eed-n]
[**edn**](<https://github.com/edn-format/edn>) is an extensible data
notation. A superset of **edn** is used by Clojure to represent programs, and
it is used by [**KIM**](https://openkim.org) and other applications as a
data format.
## kim-edn
The **KIM** infrastructure embraces a subset of **edn** as a
[standard data format](https://openkim.org/doc/schema/edn-format). The
primary purpose of this data format choice is to serve as a notational
superset to [**JSON**](https://en.wikipedia.org/wiki/JSON) with the
enhancements being that it (1) allows for comments and (2) treats commas as
whitespace enabling easier templating.
The subset of **edn** allowed is constrained to:
* [Booleans](https://github.com/edn-format/edn#booleans)
* [Strings](https://github.com/edn-format/edn#strings)
* [Integers](https://github.com/edn-format/edn#integers)
* [Floating point numbers](https://github.com/edn-format/edn#floating-point-numbers)
* [Vectors](https://github.com/edn-format/edn#vectors) (or arrays)
* [Maps](https://github.com/edn-format/edn#maps) (or hash, dicts, hashmaps, etc.)
Exceptions:
* [nil](https://github.com/edn-format/edn#nil) is not allowed, this includes
JSON's null which is not allowed. Instead consider:
1. using an empty string ("") as the value,
2. using the number 0 as the value,
3. or omitting a key-value pair.
* [Symbols](https://github.com/edn-format/edn#symbols) are not allowed
* [Keywords](https://github.com/edn-format/edn#keywords) are not allowed
* [Lists](https://github.com/edn-format/edn#lists) are not allowed, please
use [vectors](https://github.com/edn-format/edn#vectors) instead
* [Sets](https://github.com/edn-format/edn#sets) are not allowed
* [Tagged elements](https://github.com/edn-format/edn#tagged-elements) are
not allowed
`kim-edn` has been adapted and updated from the Python `json` module. It
exposes an API familiar to users of the standard library.
(See [pickle](https://docs.python.org/3.8/library/pickle.html#module-pickle),
or
[marshal](https://docs.python.org/3.8/library/marshal.html), or
[json](https://docs.python.org/3.8/library/json.html) modules.)
Encoding basic Python object hierarchies::
```py
>>> import kim_edn
>>> kim_edn.dumps(["short-name", {"source-value": ["hcp"]}])
'["short-name" {"source-value" ["hcp"]}]'
>>> print(kim_edn.dumps("\"P6_3/mmc"))
"\"P6_3/mmc"
>>> print(kim_edn.dumps('\\'))
"\\"
>>> print(kim_edn.dumps({"domain": "openkim.org", "data-method": "computation", "author": "John Doe"}, sort_keys=True))
{"author" "John Doe" "data-method" "computation" "domain" "openkim.org"}
>>> from io import StringIO
>>> io = StringIO()
>>> kim_edn.dump(['streaming API'], io)
>>> io.getvalue()
'["streaming API"]'
```
Pretty printing::
```py
>>> import kim_edn
>>> print(kim_edn.dumps({"domain": "openkim.org", "data-method": "computation", "author": "John Doe"}, sort_keys=True, indent=4))
{
"author" "John Doe"
"data-method" "computation"
"domain" "openkim.org"
}
```
Decoding KIM-EDN::
```py
>>> import kim_edn
>>> obj = ["a", {"source-value": 6.9790981921, "source-unit": "angstrom"}]
>>> kim_edn.loads('["a", {"source-value": 6.9790981921, "source-unit": "angstrom"}]') == obj
True
>>> kim_edn.load('["a", {"source-value": 6.9790981921, "source-unit": "angstrom"}]') == obj
True
>>> kim_edn.loads('"\\"foo\\bar"') == '"foo\x08ar'
True
>>> kim_edn.load(kim_edn.dumps(obj)) == obj
True
>>> from io import StringIO
>>> io = StringIO('["openkim.org"]')
>>> kim_edn.load(io)[0] == 'openkim.org'
True
```
Decoding Commented KIM-EDN::
```py
>>> obj = {"property-id": "tag:brunnels@noreply.openkim.org,2016-05-11:property/atomic-mass"}
>>> c_str = '{\n ; property-id\n "property-id" "tag:brunnels@noreply.openkim.org,2016-05-11:property/atomic-mass" ; property id containing the unique ID of the property.\n }'
>>> kim_edn.load(c_str) == obj
True
```
Specializing KIM-EDN object decoding::
```py
>>> import kim_edn
>>> def as_complex(dct):
... if '__complex__' in dct:
... return complex(dct['real'], dct['imag'])
... return dct
...
>>> kim_edn.loads('{"__complex__": true, "real": 1, "imag": 2}',
... object_hook=as_complex)
(1+2j)
>>> from decimal import Decimal
>>> kim_edn.loads('1.1', parse_float=Decimal) == Decimal('1.1')
True
```
Specializing KIM-EDN object encoding::
```py
>>> import kim_edn
>>> def encode_complex(obj):
... if isinstance(obj, complex):
... return [obj.real, obj.imag]
... msg = 'Object of type {} is not '.format(obj.__class__.__name__)
... msg += 'KIM-EDN serializable'
... raise TypeError(msg)
...
>>> kim_edn.dumps(2 + 1j, default=encode_complex)
'[2.0 1.0]'
>>> kim_edn.KIMEDNEncoder(default=encode_complex).encode(2 + 1j)
'[2.0 1.0]'
>>> ''.join(kim_edn.KIMEDNEncoder(default=encode_complex).iterencode(2 + 1j))
'[2.0 1.0]'
```
Using `kim_edn.tool` from the shell to validate and pretty-print::
```sh
$ echo '{"kim_edn" "obj"}' | python -m kim_edn.tool
{
"kim_edn" "obj"
}
$ echo '{"property-id" "tag:staff@noreply.openkim.org,2014-04-15:property/cohesive-energy-relation-cubic-crystal"}' | python -m kim_edn.tool
{
"property-id" "tag:staff@noreply.openkim.org,2014-04-15:property/cohesive-energy-relation-cubic-crystal"
}
$ echo '{"foo": ["bar", "baz"]}' | python -m kim_edn.tool
{
"foo" [
"bar"
"baz"
]
}
$ echo '{"foo" ["bar" "baz"]}' | python -m kim_edn.tool
{
"foo" [
"bar"
"baz"
]
}
$ echo '{"property-id" "tag:staff@noreply.openkim.org,2014-04-15:property/cohesive-potential-energy-hexagonal-crystal" "instance-id" 1 "space-group" {"source-value" "P6_3/mmc"} "basis-atom-coordinates" {"source-value" [[0, 0, 0][0.5, 0, 0.5]]}}' | python -m kim_edn.tool
{
"property-id" "tag:staff@noreply.openkim.org,2014-04-15:property/cohesive-potential-energy-hexagonal-crystal"
"instance-id" 1
"space-group" {
"source-value" "P6_3/mmc"
}
"basis-atom-coordinates" {
"source-value" [
[
0
0
0
]
[
0.5
0
0.5
]
]
}
}
```
**Note:**
This module's encoders and decoders preserve input and output order by
default. Order is only lost if the underlying containers are unordered.
## Encoders and Decoders
KIM-EDN decoder (KIMEDNDecoder) object, performs the following translations
in decoding by default:
| KIM-EDN | Python |
|-------------------------------|----------|
| object | dict |
| Vectors (or "arrays") | list |
| Strings | str |
| Integers numbers (int) | int |
| Floating point numbers (real) | float |
| true | True |
| false | False |
KIM-EDN encoder (KIMEDNEncoder) for OpenKIM Python data structures, supports
the following objects and types by default:
| Python | KIM-EDN |
|-------------------|---------------------------------------------|
| dict | Maps (or "hash", "dicts", "hashmaps", etc.) |
| list | Vectors (or "arrays") |
| str | Strings |
| int | Integers numbers |
| float | Floating point numbers |
| True | true |
| False | false |
## Installing kim-edn
### Requirements
You need Python 3.6 or later to run `kim-edn`. You can have multiple Python
versions (2.x and 3.x) installed on the same system without problems.
To install Python 3 for different Linux flavors, macOS and Windows, packages
are available at\
[https://www.python.org/getit/](https://www.python.org/getit/)
### Using pip
**pip** is the most popular tool for installing Python packages, and the one
included with modern versions of Python.
`kim-edn` can be installed with `pip`:
```sh
pip install kim-edn
```
**Note:**
Depending on your Python installation, you may need to use `pip3` instead of
`pip`.
```sh
pip3 install kim-edn
```
Depending on your configuration, you may have to run `pip` like this:
```sh
python3 -m pip install kim-edn
```
### Using pip (GIT Support)
`pip` currently supports cloning over `git`
```sh
pip install git+https://github.com/openkim/kim-edn.git
```
For more information and examples, see the
[pip install](https://pip.pypa.io/en/stable/reference/pip_install/#id18)
reference.
### Using conda
**conda** is the package management tool for Anaconda Python installations.
Installing `kim-edn` from the `conda-forge` channel can be achieved by adding
`conda-forge` to your channels with:
```
conda config --add channels conda-forge
conda config --set channel_priority strict
```
Once the `conda-forge` channel has been enabled, `kim-edn` can be installed
with `conda`:
```
conda install kim-edn
```
or with `mamba`:
```
mamba install kim-edn
```
It is possible to list all of the versions of `kim-edn` available on your
platform with `conda`:
```
conda search kim-edn --channel conda-forge
```
or with `mamba`:
```
mamba search kim-edn --channel conda-forge
```
Alternatively, `mamba repoquery` may provide more information:
```
# Search all versions available on your platform:
mamba repoquery search kim-edn --channel conda-forge
# List packages depending on `kim-edn`:
mamba repoquery whoneeds kim-edn --channel conda-forge
# List dependencies of `kim-edn`:
mamba repoquery depends kim-edn --channel conda-forge
```
## References
This module has been adapted and updated from the
[python](https://docs.python.org) **json** module to comply with the
[subset of **edn** format used in **KIM**](https://openkim.org/doc/schema/edn-format).
## Copyright
Copyright © 2001-2024 Python Software Foundation. All rights reserved.
Copyright (c) 2019-2024, Regents of the University of Minnesota. All Rights Reserved.
## Contributing
Contributors:\
Yaser Afshar
Raw data
{
"_id": null,
"home_page": null,
"name": "kim-edn",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": "Yaser Afshar <ya.afshar@gmail.com>",
"keywords": "kim-edn, edn",
"author": null,
"author_email": "Yaser Afshar <ya.afshar@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/b3/ac/a9b9875594279356a70ac873f68ef4368aaaadac13a40b83ed3ed5b82834/kim-edn-1.4.1.tar.gz",
"platform": null,
"description": "# KIM-EDN encoder and decoder\n\n[![Python package](https://github.com/openkim/kim-edn/workflows/Python%20package/badge.svg)](https://github.com/openkim/kim-edn/actions)\n[![codecov](https://codecov.io/gh/openkim/kim-edn/branch/master/graph/badge.svg)](https://codecov.io/gh/openkim/kim-edn)\n[![Anaconda-Server Badge](https://img.shields.io/conda/vn/conda-forge/kim-edn.svg)](https://anaconda.org/conda-forge/kim-edn)\n[![PyPI](https://img.shields.io/pypi/v/kim-edn.svg)](https://pypi.python.org/pypi/kim-edn)\n[![License](https://img.shields.io/badge/license-LGPL--2.1--or--later-blue)](LICENSE)\n\n## edn\n\nExtensible data notation [eed-n]\n\n[**edn**](<https://github.com/edn-format/edn>) is an extensible data\nnotation. A superset of **edn** is used by Clojure to represent programs, and\nit is used by [**KIM**](https://openkim.org) and other applications as a\ndata format.\n\n## kim-edn\n\nThe **KIM** infrastructure embraces a subset of **edn** as a\n[standard data format](https://openkim.org/doc/schema/edn-format). The\nprimary purpose of this data format choice is to serve as a notational\nsuperset to [**JSON**](https://en.wikipedia.org/wiki/JSON) with the\nenhancements being that it (1) allows for comments and (2) treats commas as\nwhitespace enabling easier templating.\n\nThe subset of **edn** allowed is constrained to:\n\n* [Booleans](https://github.com/edn-format/edn#booleans)\n* [Strings](https://github.com/edn-format/edn#strings)\n* [Integers](https://github.com/edn-format/edn#integers)\n* [Floating point numbers](https://github.com/edn-format/edn#floating-point-numbers)\n* [Vectors](https://github.com/edn-format/edn#vectors) (or arrays)\n* [Maps](https://github.com/edn-format/edn#maps) (or hash, dicts, hashmaps, etc.)\n\nExceptions:\n\n* [nil](https://github.com/edn-format/edn#nil) is not allowed, this includes\nJSON's null which is not allowed. Instead consider:\n 1. using an empty string (\"\") as the value,\n 2. using the number 0 as the value,\n 3. or omitting a key-value pair.\n* [Symbols](https://github.com/edn-format/edn#symbols) are not allowed\n* [Keywords](https://github.com/edn-format/edn#keywords) are not allowed\n* [Lists](https://github.com/edn-format/edn#lists) are not allowed, please\nuse [vectors](https://github.com/edn-format/edn#vectors) instead\n* [Sets](https://github.com/edn-format/edn#sets) are not allowed\n* [Tagged elements](https://github.com/edn-format/edn#tagged-elements) are\nnot allowed\n\n`kim-edn` has been adapted and updated from the Python `json` module. It\nexposes an API familiar to users of the standard library.\n(See [pickle](https://docs.python.org/3.8/library/pickle.html#module-pickle),\nor\n[marshal](https://docs.python.org/3.8/library/marshal.html), or\n[json](https://docs.python.org/3.8/library/json.html) modules.)\n\nEncoding basic Python object hierarchies::\n\n```py\n >>> import kim_edn\n >>> kim_edn.dumps([\"short-name\", {\"source-value\": [\"hcp\"]}])\n '[\"short-name\" {\"source-value\" [\"hcp\"]}]'\n\n >>> print(kim_edn.dumps(\"\\\"P6_3/mmc\"))\n \"\\\"P6_3/mmc\"\n\n >>> print(kim_edn.dumps('\\\\'))\n \"\\\\\"\n\n >>> print(kim_edn.dumps({\"domain\": \"openkim.org\", \"data-method\": \"computation\", \"author\": \"John Doe\"}, sort_keys=True))\n {\"author\" \"John Doe\" \"data-method\" \"computation\" \"domain\" \"openkim.org\"}\n\n >>> from io import StringIO\n >>> io = StringIO()\n >>> kim_edn.dump(['streaming API'], io)\n >>> io.getvalue()\n '[\"streaming API\"]'\n```\n\nPretty printing::\n\n```py\n >>> import kim_edn\n >>> print(kim_edn.dumps({\"domain\": \"openkim.org\", \"data-method\": \"computation\", \"author\": \"John Doe\"}, sort_keys=True, indent=4))\n {\n \"author\" \"John Doe\"\n \"data-method\" \"computation\"\n \"domain\" \"openkim.org\"\n }\n```\n\nDecoding KIM-EDN::\n\n```py\n >>> import kim_edn\n >>> obj = [\"a\", {\"source-value\": 6.9790981921, \"source-unit\": \"angstrom\"}]\n >>> kim_edn.loads('[\"a\", {\"source-value\": 6.9790981921, \"source-unit\": \"angstrom\"}]') == obj\n True\n >>> kim_edn.load('[\"a\", {\"source-value\": 6.9790981921, \"source-unit\": \"angstrom\"}]') == obj\n True\n >>> kim_edn.loads('\"\\\\\"foo\\\\bar\"') == '\"foo\\x08ar'\n True\n >>> kim_edn.load(kim_edn.dumps(obj)) == obj\n True\n >>> from io import StringIO\n >>> io = StringIO('[\"openkim.org\"]')\n >>> kim_edn.load(io)[0] == 'openkim.org'\n True\n```\n\nDecoding Commented KIM-EDN::\n\n```py\n >>> obj = {\"property-id\": \"tag:brunnels@noreply.openkim.org,2016-05-11:property/atomic-mass\"}\n >>> c_str = '{\\n ; property-id\\n \"property-id\" \"tag:brunnels@noreply.openkim.org,2016-05-11:property/atomic-mass\" ; property id containing the unique ID of the property.\\n }'\n >>> kim_edn.load(c_str) == obj\n True\n```\n\nSpecializing KIM-EDN object decoding::\n\n```py\n >>> import kim_edn\n >>> def as_complex(dct):\n ... if '__complex__' in dct:\n ... return complex(dct['real'], dct['imag'])\n ... return dct\n ...\n >>> kim_edn.loads('{\"__complex__\": true, \"real\": 1, \"imag\": 2}',\n ... object_hook=as_complex)\n (1+2j)\n >>> from decimal import Decimal\n >>> kim_edn.loads('1.1', parse_float=Decimal) == Decimal('1.1')\n True\n```\n\nSpecializing KIM-EDN object encoding::\n\n```py\n >>> import kim_edn\n >>> def encode_complex(obj):\n ... if isinstance(obj, complex):\n ... return [obj.real, obj.imag]\n ... msg = 'Object of type {} is not '.format(obj.__class__.__name__)\n ... msg += 'KIM-EDN serializable'\n ... raise TypeError(msg)\n ...\n >>> kim_edn.dumps(2 + 1j, default=encode_complex)\n '[2.0 1.0]'\n >>> kim_edn.KIMEDNEncoder(default=encode_complex).encode(2 + 1j)\n '[2.0 1.0]'\n >>> ''.join(kim_edn.KIMEDNEncoder(default=encode_complex).iterencode(2 + 1j))\n '[2.0 1.0]'\n```\n\nUsing `kim_edn.tool` from the shell to validate and pretty-print::\n\n```sh\n $ echo '{\"kim_edn\" \"obj\"}' | python -m kim_edn.tool\n {\n \"kim_edn\" \"obj\"\n }\n\n $ echo '{\"property-id\" \"tag:staff@noreply.openkim.org,2014-04-15:property/cohesive-energy-relation-cubic-crystal\"}' | python -m kim_edn.tool\n {\n \"property-id\" \"tag:staff@noreply.openkim.org,2014-04-15:property/cohesive-energy-relation-cubic-crystal\"\n }\n\n $ echo '{\"foo\": [\"bar\", \"baz\"]}' | python -m kim_edn.tool\n {\n \"foo\" [\n \"bar\"\n \"baz\"\n ]\n }\n\n $ echo '{\"foo\" [\"bar\" \"baz\"]}' | python -m kim_edn.tool\n {\n \"foo\" [\n \"bar\"\n \"baz\"\n ]\n }\n\n $ echo '{\"property-id\" \"tag:staff@noreply.openkim.org,2014-04-15:property/cohesive-potential-energy-hexagonal-crystal\" \"instance-id\" 1 \"space-group\" {\"source-value\" \"P6_3/mmc\"} \"basis-atom-coordinates\" {\"source-value\" [[0, 0, 0][0.5, 0, 0.5]]}}' | python -m kim_edn.tool\n {\n \"property-id\" \"tag:staff@noreply.openkim.org,2014-04-15:property/cohesive-potential-energy-hexagonal-crystal\"\n \"instance-id\" 1\n \"space-group\" {\n \"source-value\" \"P6_3/mmc\"\n }\n \"basis-atom-coordinates\" {\n \"source-value\" [\n [\n 0\n 0\n 0\n ]\n [\n 0.5\n 0\n 0.5\n ]\n ]\n }\n }\n```\n\n**Note:**\n\nThis module's encoders and decoders preserve input and output order by\ndefault. Order is only lost if the underlying containers are unordered.\n\n## Encoders and Decoders\n\nKIM-EDN decoder (KIMEDNDecoder) object, performs the following translations\nin decoding by default:\n\n| KIM-EDN | Python |\n|-------------------------------|----------|\n| object | dict |\n| Vectors (or \"arrays\") | list |\n| Strings | str |\n| Integers numbers (int) | int |\n| Floating point numbers (real) | float |\n| true | True |\n| false | False |\n\nKIM-EDN encoder (KIMEDNEncoder) for OpenKIM Python data structures, supports\nthe following objects and types by default:\n\n| Python | KIM-EDN |\n|-------------------|---------------------------------------------|\n| dict | Maps (or \"hash\", \"dicts\", \"hashmaps\", etc.) |\n| list | Vectors (or \"arrays\") |\n| str | Strings |\n| int | Integers numbers |\n| float | Floating point numbers |\n| True | true |\n| False | false |\n\n## Installing kim-edn\n\n### Requirements\n\nYou need Python 3.6 or later to run `kim-edn`. You can have multiple Python\nversions (2.x and 3.x) installed on the same system without problems.\n\nTo install Python 3 for different Linux flavors, macOS and Windows, packages\nare available at\\\n[https://www.python.org/getit/](https://www.python.org/getit/)\n\n### Using pip\n\n**pip** is the most popular tool for installing Python packages, and the one\nincluded with modern versions of Python.\n\n`kim-edn` can be installed with `pip`:\n\n```sh\npip install kim-edn\n```\n\n**Note:**\n\nDepending on your Python installation, you may need to use `pip3` instead of\n`pip`.\n\n```sh\npip3 install kim-edn\n```\n\nDepending on your configuration, you may have to run `pip` like this:\n\n```sh\npython3 -m pip install kim-edn\n```\n\n### Using pip (GIT Support)\n\n`pip` currently supports cloning over `git`\n\n```sh\npip install git+https://github.com/openkim/kim-edn.git\n```\n\nFor more information and examples, see the\n[pip install](https://pip.pypa.io/en/stable/reference/pip_install/#id18)\nreference.\n\n### Using conda\n\n**conda** is the package management tool for Anaconda Python installations.\n\nInstalling `kim-edn` from the `conda-forge` channel can be achieved by adding\n`conda-forge` to your channels with:\n\n```\nconda config --add channels conda-forge\nconda config --set channel_priority strict\n```\n\nOnce the `conda-forge` channel has been enabled, `kim-edn` can be installed\nwith `conda`:\n\n```\nconda install kim-edn\n```\n\nor with `mamba`:\n\n```\nmamba install kim-edn\n```\n\nIt is possible to list all of the versions of `kim-edn` available on your\nplatform with `conda`:\n\n```\nconda search kim-edn --channel conda-forge\n```\n\nor with `mamba`:\n\n```\nmamba search kim-edn --channel conda-forge\n```\n\nAlternatively, `mamba repoquery` may provide more information:\n\n```\n# Search all versions available on your platform:\nmamba repoquery search kim-edn --channel conda-forge\n\n# List packages depending on `kim-edn`:\nmamba repoquery whoneeds kim-edn --channel conda-forge\n\n# List dependencies of `kim-edn`:\nmamba repoquery depends kim-edn --channel conda-forge\n```\n\n## References\n\nThis module has been adapted and updated from the\n[python](https://docs.python.org) **json** module to comply with the\n[subset of **edn** format used in **KIM**](https://openkim.org/doc/schema/edn-format).\n\n## Copyright\n\nCopyright \u00a9 2001-2024 Python Software Foundation. All rights reserved.\n\nCopyright (c) 2019-2024, Regents of the University of Minnesota. All Rights Reserved.\n\n## Contributing\n\nContributors:\\\n Yaser Afshar\n",
"bugtrack_url": null,
"license": null,
"summary": "kim-edn - KIM-EDN encoder and decoder.",
"version": "1.4.1",
"project_urls": {
"Homepage": "https://github.com/openkim/kim-edn",
"Issues": "https://github.com/openkim/kim-edn/issues"
},
"split_keywords": [
"kim-edn",
" edn"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "d9f0c60a41bb6ad5bdba6d3ef0a38f41fa908a3462a41c0bb0f7bd37d12059f0",
"md5": "8ac58b70ac90b67ce96f74d3285cb174",
"sha256": "91a3fcea0db49708e26684a2b827b8a99d666841444e53d19f02ed62883a622e"
},
"downloads": -1,
"filename": "kim_edn-1.4.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "8ac58b70ac90b67ce96f74d3285cb174",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 28256,
"upload_time": "2024-03-22T12:27:25",
"upload_time_iso_8601": "2024-03-22T12:27:25.167071Z",
"url": "https://files.pythonhosted.org/packages/d9/f0/c60a41bb6ad5bdba6d3ef0a38f41fa908a3462a41c0bb0f7bd37d12059f0/kim_edn-1.4.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "b3aca9b9875594279356a70ac873f68ef4368aaaadac13a40b83ed3ed5b82834",
"md5": "0c915070275fd5460c5df20ef985f88a",
"sha256": "04d1b26c8c0736729e003c57b86cb0993995d0d9971903d2de3df94126c0f09b"
},
"downloads": -1,
"filename": "kim-edn-1.4.1.tar.gz",
"has_sig": false,
"md5_digest": "0c915070275fd5460c5df20ef985f88a",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 28563,
"upload_time": "2024-03-22T12:27:31",
"upload_time_iso_8601": "2024-03-22T12:27:31.827685Z",
"url": "https://files.pythonhosted.org/packages/b3/ac/a9b9875594279356a70ac873f68ef4368aaaadac13a40b83ed3ed5b82834/kim-edn-1.4.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-03-22 12:27:31",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "openkim",
"github_project": "kim-edn",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "kim-edn"
}