kim-edn


Namekim-edn JSON
Version 1.4.1 PyPI version JSON
download
home_pageNone
Summarykim-edn - KIM-EDN encoder and decoder.
upload_time2024-03-22 12:27:31
maintainerNone
docs_urlNone
authorNone
requires_python>=3.8
licenseNone
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:\
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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"
}
        
Elapsed time: 0.19845s