{ "info": { "author": "openuado", "author_email": "herveberaud.pro@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Information Technology", "License :: OSI Approved :: MIT License", "Operating System :: POSIX", "Programming Language :: Python", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8" ], "description": "# niet\n\n[![Build Status](https://travis-ci.org/openuado/niet.svg?branch=master)](https://travis-ci.org/openuado/niet)\n![PyPI](https://img.shields.io/pypi/v/niet.svg)\n![PyPI - Python Version](https://img.shields.io/pypi/pyversions/niet.svg)\n![PyPI - Status](https://img.shields.io/pypi/status/niet.svg)\n[![Downloads](https://pepy.tech/badge/niet)](https://pepy.tech/project/niet)\n[![Downloads](https://pepy.tech/badge/niet/month)](https://pepy.tech/project/niet/month)\n\nGet data from yaml file directly in your shell\n\nNiet is like [xmllint](http://xmlsoft.org/xmllint.html) or\n[jq](https://stedolan.github.io/jq/) but for YAML and JSON data -\nyou can use it to slice and filter and map and transform structured data.\n\nYou can easily retrieve data by using simple expressions or using\nxpath advanced features to access non-trivial data.\n\nYou can easily convert YAML format into JSON format and vice versa.\n\n## Features\n- Extract elements by using xpath syntax\n- Extract values from json format\n- Extract values from yaml format\n- Automaticaly detect format (json/yaml)\n- Read data from a web resource\n- Read data from file or pass data from stdin\n- Format output values\n- Format output to be reused by shell `eval`\n- Convert YAML to JSON\n- Convert JSON to YAML\n\n## Install or Update niet\n\n```sh\n$ pip install -U niet\n```\n\n## Requirements\n\n- Python 3.6 or higher\n\n## Supported versions\n\nSince niet 2.0 the support of python 2.7 have been dropped so if\nif you only have python 2.7 at hands then you can use previous version (lower\nto 2.0) but you should consider first that the no support will be given on\nthese versions (no bugfix, no new feature, etc). If you report an issue or\nor propose a new feature then they will be addressed only for current or\nhigher version.\n\n## Usage\n\n### Help and options\n\n```shell\n$ niet --help\nusage: niet [-h] [-f {json,yaml,eval,newline,ifs,squote,dquote,comma}] [-s] [-v]\n object [file]\n\nRead data from YAML or JSON file\n\npositional arguments:\n object Path to object separated by dot (.). Use '.' to get\n whole file. eg: a.b.c\n file Optional JSON or YAML filename. If not provided niet\n read from stdin\n\noptional arguments:\n -h, --help show this help message and exit\n -f {json,yaml,eval,newline,ifs,squote,dquote,comma}, --format {json,yaml,eval,newline,ifs,squote,dquote,comma}\n output format\n -i, --in-place Perform modification in place. Will so alter read file\n -o OUTPUT_FILE, --output OUTPUT_FILE\n Print output in a file instead of stdout (surcharged\n by infile parameter if set)\n -s, --silent silent mode, doesn't display message when element was\n not found\n -v, --version print the Niet version number and exit (also\n --version)\n --debug Activate the debug mode (based on pdb)\n\noutput formats:\n json Return object in JSON\n yaml Return object in YAML\n eval Return result in a string evaluable by a shell eval command as an input\n newline Return all elements of a list in a new line\n ifs Return all elements of a list separated by IFS env var\n squote Add single quotes to result\n dquote Add double quotes to result\n comma Return all elements separated by commas\n```\n\n### With Json from stdin\n\n```shell\n$ echo '{\"foo\": \"bar\", \"fizz\": {\"buzz\": [\"1\", \"2\", \"Fizz\", \"4\", \"Buzz\"]}}' | niet fizz.buzz\n1\n2\nFizz\n4\nBuzz\n$ echo '{\"foo\": \"bar\", \"fizz\": {\"buzz\": [\"1\", \"2\", \"Fizz\", \"4\", \"Buzz\"]}}' | niet fizz.buzz -f squote\n'1' '2''Fizz' '4' 'Buzz'\n$ echo '{\"foo\": \"bar\", \"fizz\": {\"buzz\": [\"1\", \"2\", \"fizz\", \"4\", \"buzz\"]}}' | niet . -f yaml\nfizz:\n buzz:\n - '1'\n - '2'\n - fizz\n - '4'\n - buzz\nfoo: bar\n$ echo '{\"foo\": \"bar\", \"fizz\": {\"buzz\": [\"zero\", \"one\", \"two\", \"three\"]}}' | niet \"fizz.buzz[2]\"\ntwo\n$ echo '{\"foo\": \"bar\", \"fizz\": {\"buzz\": [\"zero\", \"one\", \"two\", \"three\"]}}' | niet -f dquote \"fizz.buzz[0:2]\"\n\"zero\" \"one\"\n$ echo '{\"foo\": \"bar\", \"fizz\": {\"buzz\": [\"zero\", \"one\", \"two\", \"three\"]}}' | niet -f dquote \"fizz.buzz[:3]\"\n\"zero\" \"one\" \"two\"\n\n```\n\n### With YAML file\n\nConsider the yaml file with the following content:\n```yaml\n# /path/to/your/file.yaml\nproject:\n meta:\n name: my-project\n foo: bar\n list:\n - item1\n - item2\n - item3\n test-dash: value\n```\n\nYou can [download the previous example](https://gist.githubusercontent.com/4383/53e1599663b369f499aa28e27009f2cd/raw/389b82c19499b8cb84a464784e9c79aa25d3a9d3/file.yaml) locally for testing purpose or use the command line for this:\n```shell\nwget https://gist.githubusercontent.com/4383/53e1599663b369f499aa28e27009f2cd/raw/389b82c19499b8cb84a464784e9c79aa25d3a9d3/file.yaml\n```\n\nYou can retrieve data from this file by using niet like this:\n```sh\n$ niet \".project.meta.name\" /path/to/your/file.yaml\nmy-project\n$ niet \".project.foo\" /path/to/your/file.yaml\nbar\n$ niet \".project.list\" /path/to/your/file.yaml\nitem1 item2 item3\n$ # assign return value to shell variable\n$ NAME=$(niet \".project.meta.name\" /path/to/your/file.yaml)\n$ echo $NAME\nmy-project\n$ niet project.'\"test-dash\"' /path/to/your/file.json\nvalue\n```\n\n### With JSON file\n\nConsider the json file with the following content:\n```json\n{\n \"project\": {\n \"meta\": {\n \"name\": \"my-project\"\n },\n \"foo\": \"bar\",\n \"list\": [\n \"item1\",\n \"item2\",\n \"item3\"\n ],\n \"test-dash\": \"value\"\n }\n}\n```\n\nYou can [download the previous example](https://gist.githubusercontent.com/4383/1bab8973474625de738f5f6471894322/raw/0048cd2310df2d98bf4f230ffe20da8fa615cef3/file.json) locally for testing purpose or use the command line for this:\n```shell\nwget https://gist.githubusercontent.com/4383/1bab8973474625de738f5f6471894322/raw/0048cd2310df2d98bf4f230ffe20da8fa615cef3/file.json\n```\n\nYou can retrieve data from this file by using niet like this:\n```sh\n$ niet \"project.meta.name\" /path/to/your/file.json\nmy-project\n$ niet \"project.foo\" /path/to/your/file.json\nbar\n$ niet \"project.list\" /path/to/your/file.json\nitem1 item2 item3\n$ # assign return value to shell variable\n$ NAME=$(niet \"project.meta.name\" /path/to/your/file.json)\n$ echo $NAME\nmy-project\n$ niet project.'\"test-dash\"' /path/to/your/file.json\nvalue\n```\n\n### Object Identifiers\n\nAn identifier is the most basic expression and can be used to extract a single\nelement from a JSON/YAML document. The return value for an identifier is\nthe value associated with the identifier. If the identifier does not\nexist in the JSON/YAML document, than niet display a specific message and\nreturn the error code `1`, example:\n\n```sh\n$ echo '{\"foo\": \"bar\", \"fizz\": {\"buzz\": [\"1\", \"2\", \"3\"]}}' | niet fizz.gogo\nElement not found: fizz.gogo\n$ echo $?\n1\n```\n\nSee the [related section](#deal-with-errors) for more info on how to manage\nerrors with `niet`.\n\nNiet is based on `jmespath` to find results so for complex research you can\nrefer to the [jmespath specifications](http://jmespath.org/specification.html#identifiers)\nto use identifiers properly.\n\nIf you try to search for an identifier who use some dash you need to surround\nyour research expression with simple and double quotes, examples:\n\n```sh\n$ echo '{\"foo-biz\": \"bar\", \"fizz\": {\"buzz\": [\"zero\", \"one\", \"two\", \"three\"]}}' | niet -f dquote '\"foo-biz\"'\nbar\n$ echo '{\"key-test\": \"value\"}' | niet '\"key-test\"'\nvalue\n```\n\nHowever, `niet` will detect related issues and surround automatically your\nidentifier if `jmespath` fail to handle it.\n\nHence, the following examples will return similar results than the previous\nexamples:\n\n```sh\n$ echo '{\"foo-biz\": \"bar\", \"fizz\": {\"buzz\": [\"zero\", \"one\", \"two\", \"three\"]}}' | niet -f dquote foo-biz\nbar\n$ echo '{\"key-test\": \"value\"}' | niet key-test\nvalue\n```\n\nIf your object is not at the root of your path, an example is available in\n`tests/sample/sample.json`, then you need to only surround the researched\nidentifier like this `project.'\"test-dash\"'`\n\n```json\n{\n \"project\": {\n \"meta\": {\n \"name\": \"my-project\"\n },\n \"foo\": \"bar\",\n \"list\": [\n \"item1\",\n \"item2\",\n \"item3\"\n ],\n \"test-dash\": \"value\"\n }\n}\n\n```\n\nExample:\n```sh\nniet project.'\"test-dash\"' tests/sample/sample.json\n```\n\nFurther examples with [`jmespath` identifiers](http://jmespath.org/specification.html#examples).\n\n### Output\n\n#### Stdout\nBy default, niet print the output on stdout. \n\n#### Save output to a file\nIt if possible to pass a filename using -o or --output argument to writes\ndirectly in a file. This file will be created if not exists or will be\nreplaced if already exists.\n\n#### In-file modification\nIt is possible to modify directly a file using -i or --in-place argument. This will replace\nthe input file by the output of niet command. This can be used to extract some data of a file or\nreindent a file.\n\n### Output formats \nYou can change the output format using the -f or --format optional \nargument. \n\nBy default, niet detect the input format and display complex objects\nin the same format. If the object is a list or a value, newline output\nformat will be used.\n\nOutput formats are: \n - ifs\n - squote\n - dquote\n - newline\n - yaml\n - json\n\n#### ifs\nIfs output format print all values of a list or a single value in one line.\nAll values are separated by the content of IFS environment variable if defined,\nspace otherwise.\n\nExamples (consider the previous [YAML file example](#with-yaml-file)):\n```shell\n$ IFS=\"|\" niet .project.list /path/to/your/file.yaml -f ifs\nitem1|item2|item3\n$ IFS=\" \" niet .project.list /path/to/your/file.yaml -f ifs\nitem1 item2 item3\n$ IFS=\"@\" niet .project.list /path/to/your/file.yaml -f ifs\nitem1@item2@item3\n```\n\nThis is usefull in a shell for loop,\nbut your content must, of course, don't contain IFS value:\n```shell\nOIFS=\"$IFS\"\nIFS=\"|\"\nfor i in $(niet .project.list /path/to/your/file.yaml -f ifs); do\n echo ${i}\ndone\nIFS=\"${OIFS}\"\n```\n\nPrevious example provide the following output:\n```sh\nitem1\nitem2\nitem3\n```\n\nFor single quoted see [squote](#squote) ouput or [dquote](#dquote) double quoted output with IFS\n\n#### squote\nSquotes output format print all values of a list or a single value in one line.\nAll values are quoted with single quotes and are separated by IFS value.\n\nExamples (consider the previous [YAML file example](#with-yaml-file)):\n```shell\n$ # With the default IFS\n$ niet .project.list /path/to/your/file.yaml -f squote\n'item1' 'item2' 'item3'\n$ # With a specified IFS\n$ IFS=\"|\" niet .project.list /path/to/your/file.yaml -f squote\n'item1'|'item2'|'item3'\n```\n\n#### dquote\nDquotes output format print all values of a list or a single value in one line.\nAll values are quoted with a double quotes and are separated by IFS value.\n\nExamples (consider the previous [YAML file example](#with-yaml-file)):\n```shell\n$ # With the default IFS\n$ niet .project.list /path/to/your/file.yaml -f dquote\n'item1' 'item2' 'item3'\n$ # With a specified IFS\n$ IFS=\"|\" niet .project.list /path/to/your/file.yaml -f dquote\n\"item1\"|\"item2\"|\"item3\"\n```\n\n#### newline\n\n`newline` output format print one value of a list or a single value per line.\n\nThe `newline` format is mostly usefull with shell while read loops and\nwith script interactions.\n\nExample:\n```sh\nwhile read value: do\n echo $value\ndone < $(niet --format newline project.list your-file.json)\n```\n\n#### comma\n\n`comma` output format print results on the same line and separated by commas.\n\nThe `comma` format allow you to format your outputs to consume your results\nwith other commands lines interfaces. By example some argument parser\nallow you to pass multi values for the same parameter (the\n[beagle command](https://beagle-hound.readthedocs.io/en/latest/) per\nexample allow you to\n[repeat the `--repo` option](https://beagle-hound.readthedocs.io/en/latest/cli/index.html#cmdoption-beagle-search-repo)).\n\nExample of integration with beagle and shell:\n\n```sh\n$ OSLO_PROJECTS_URL=https://raw.githubusercontent.com/openstack/governance/master/reference/projects.yaml\n$ beagle search \\\n -f link \\\n --repo $(niet \"oslo.deliverables.*.repos[0]\" ${OSLO_PROJECTS_URL} -f comma) 'venv'\n```\n\nThe previous command will return all the links of files\nwho contains `venv` on the openstack oslo's scope of projects (pbr,\ntaskflow, oslo.messaging, etc).\n\nElse another with a more reduced scope on openstack oslo's projects:\n\n```sh\n$ niet \"oslo.deliverables.*.repos[0][?contains(@, \\`oslo\\`) == \\`true\\`]\" \\\n https://raw.githubusercontent.com/openstack/governance/master/reference/projects.yaml \\\n -f comma\nopenstack/oslo-cookiecutter,openstack/oslo-specs,openstack/oslo.cache,\nopenstack/oslo.concurrency,openstack/oslo.config,openstack/oslo.context,\nopenstack/oslo.db,openstack/oslo.i18n,openstack/oslo.limit,openstack/oslo.log,\nopenstack/oslo.messaging,openstack/oslo.middleware,\nopenstack/oslo.policy,openstack/oslo.privsep,openstack/oslo.reports,\nopenstack/oslo.rootwrap,openstack/oslo.serialization,openstack/oslo.service,\nopenstack/oslo.tools,openstack/oslo.upgradecheck,openstack/oslo.utils,\nopenstack/oslo.versionedobjects,openstack/oslo.vmware,openstack/oslotest\n```\n\nIn the previous example we retrieve only the projects repos who contains\n`oslo` in their names, so other projects like `taskflow`, `pbr`, etc will\nbe ignored.\n\n#### eval\n\nEval output format allow you to eval output string to initialize shell\nvariable generated from your JSON/YAML content.\n\nYou can intialize shell variables from your entire content, example:\n\n```sh\n$ echo '{\"foo-biz\": \"bar\", \"fizz\": {\"buzz\": [\"zero\", \"one\", \"two\", \"three\"]}}' | niet -f eval .\n foo_biz=\"bar\";fizz__buzz=( zero one two three )\n$ eval $(echo '{\"foo-biz\": \"bar\", \"fizz\": {\"buzz\": [\"zero\", \"one\", \"two\", \"three\"]}}' | niet -f eval .)\n$ echo ${foo_biz}\nbar\n$ echo ${fizz__buzz}\nzero one two three\n$ eval $(echo '{\"foo-biz\": \"bar\", \"fizz\": {\"buzz\": [\"zero\", \"one\", \"two\", \"three\"]}}' | niet -f eval '\"foo-biz\"'); echo ${foo_biz}\nbar\n$ echo '{\"foo-biz\": \"bar\", \"fizz\": {\"buzz\": [\"zero\", \"one\", \"two\", \"three\"]}}' | niet -f eval fizz.buzz\nfizz_buzz=( zero one two three );\n```\n\nParent elements are separated by `__` by example the `fizz.buzz` element\nwill be represented by a variable named `fizz__buzz`. You need to consider\nthat when you call your expected variables.\n\nAlso you can initialize some shell array from your content and loop over in\na shell maner:\n\n```sh\n$ eval $(echo '{\"foo-biz\": \"bar\", \"fizz\": {\"buzz\": [\"zero\", \"one\", \"two\", \"three\"]}}' | niet -f eval fizz.buzz)\n$ for el in ${fizz_buzz}; do echo $el; done\nzero\none\ntwo\nthree\n```\n\n#### yaml\nYaml output format force output to be in YAML regardless the input file format.\n\n#### json\nJson output format force output to be in JSON regardless the input file format.\n\n### Read data from a web resource\n\nNiet allow you to read data (json/yaml) from a web resource accessible by using\nthe HTTP protocole (introduced in niet 2.1).\n\nThis can be done by passing an url to niet which refer to a raw content (json\nor yaml).\n\nHere is some examples with the [openstack governance's projects data](https://github.com/openstack/governance/blob/master/reference/projects.yaml):\n\n```sh\n$ # List all the oslo projects repos (https://wiki.openstack.org/wiki/Oslo)\n$ niet \"oslo.deliverables.*.repos[0]\" \\\n https://raw.githubusercontent.com/openstack/governance/master/reference/projects.yaml\nopenstack/automaton\nopenstack/castellan\n...\nopenstack/debtcollector\n...\nopenstack/futurist\nopenstack/oslo.cache\nopenstack/oslo.concurrency\nopenstack/oslo.config\nopenstack/oslo.context\nopenstack/oslo.db\nopenstack/oslo.i18n\nopenstack/oslo.limit\nopenstack/oslo.log\nopenstack/oslo.messaging\nopenstack/oslo.middleware\nopenstack/oslo.policy\n...\nopenstack/oslo.service\nopenstack/osprofiler\nopenstack/pbr\n...\nopenstack/stevedore\nopenstack/taskflow\nopenstack/tooz\nopenstack/whereto\n$ niet oslo.service \\\n https://raw.githubusercontent.com/openstack/governance/master/reference/projects.yaml\nCommon libraries\n$ # Get the openstack oslo's mission\n$ niet oslo.mission \\\n https://raw.githubusercontent.com/openstack/governance/master/reference/projects.yaml\nTo produce a set of python libraries containing code shared by OpenStack projects.\nThe APIs provided by these libraries should be high quality, stable, consistent,\ndocumented and generally applicable.\n$ eval $(niet oslo.service \\\n https://raw.githubusercontent.com/openstack/governance/master/reference/projects.yaml -f eval) && \\\n test \"${oslo_service}\" = \"Common libraries\"\n$ # Get the name of the oslo PTL\n$ eval $(niet oslo.ptl.name \\\n https://raw.githubusercontent.com/openstack/governance/master/reference/projects.yaml -f eval)\n$ echo \"${oslo_ptl_name}\" # now display your evaluated result\n$ # Convert original distant yaml file into json\n$ niet . https://raw.githubusercontent.com/openstack/governance/master/reference/projects.yaml -f json\n```\n\nFor further examples of filters and selections please take a look to\n[the jmespath's doc](https://jmespath.org/examples.html).\n\n### Result not found\n\nBy default when no results was found niet display a specific message and return\nthe error code `1`, example:\n```sh\n$ echo '{\"foo\": \"bar\", \"fizz\": {\"buzz\": [\"1\", \"2\", \"3\"]}}' | niet fizz.gogo\nElement not found: fizz.gogo\n$ echo $?\n1\n```\n\nYou can avoid this behavior by passing niet into a silent mode.\n\nSilent mode allow you to hide the specific message error but continue to return\na status code equal to `1` when the key was not found.\n\nYou can use the silent mode by using the flag `-s/--silent`, example:\n```sh\n$ echo '{\"foo\": \"bar\", \"fizz\": {\"buzz\": [\"1\", \"2\", \"3\"]}}' | niet fizz.gogo -s\n$ echo $?\n1\n```\n\n### Deal with errors\n\nWhen your JSON file content are not valid niet display an error and exit\nwith return code `1`\n\nYou can easily protect your script like this:\n```sh\nPROJECT_NAME=$(niet project.meta.name your-file.yaml)\nif [ \"$?\" = \"1\" ]; then\n echo \"Error occur ${PROJECT_NAME}\"\nelse\n echo \"Project name: ${PROJECT_NAME}\"\nfi\n```\n\n## Examples\n\nYou can try niet by using the samples provided with the project sources code.\n\n> All the following examples use the sample file available in niet sources code\nat the following location `tests/samples/sample.yaml`.\n\nSample example:\n```yaml\n# tests/samples/sample.yaml\nproject:\n meta:\n name: my-project\n foo: bar\n list:\n - item1\n - item2\n - item3\n```\n\n### Extract a single value \n\nRetrieve the project name:\n```sh\n$ niet project.meta.name tests/samples/sample.yaml\nmy-project\n```\n\n### Extract a list and parse it in shell\n\nDeal with list of items\n```sh\n$ for el in $(niet project.list tests/samples/sample.yaml); do echo ${el}; done\nitem1\nitem2\nitem3\n```\n\nAlso you can `eval` your `niet` output to setput some shell variables\nthat you can reuse in your shell scripts, the following example is similar to\nthe previous example but make use of the eval ouput format (`-f eval`):\n\n```sh\n$ eval $(niet -f eval project.list tests/samples/sample.yaml)\n$ for el in ${project__list}; do echo $el; done\nzero\none\ntwo\nthree\n```\n\n### Extract a complex object and parse it in shell\n\nExtract the object as JSON to store it in shell variable :\n```shell\n$ project=\"$(niet -f json .project tests/samples/sample.yaml)\"\n```\n\nThen parse it after in bash in this example:\n```shell\n$ niet .meta.name <<< $project\nmy-project\n```\n\n### Transform JSON to YAML\n\nWith niet you can easily convert your JSON to YAML\n```shell\n$ niet . tests/samples/sample.json -f yaml\nproject:\n foo: bar\n list:\n - item1\n - item2\n - item3\n meta:\n name: my-project\n```\n\n### Transform YAML to JSON\n\nWith niet you can easily convert your YAML to JSON\n```shell\n$ niet . tests/samples/sample.yaml -f json\n{\n \"project\": {\n \"meta\": {\n \"name\": \"my-project\"\n },\n \"foo\": \"bar\",\n \"list\": [\n \"item1\",\n \"item2\",\n \"item3\"\n ]\n }\n}\n```\n\n### Indent JSON file\n\nThis is an example of how to indent a JSON file :\n```shell\n$ niet . tests/samples/sample_not_indented.json \n{\n \"project\": {\n \"meta\": {\n \"name\": \"my-project\"\n },\n \"foo\": \"bar\",\n \"list\": [\n \"item1\",\n \"item2\",\n \"item3\"\n ],\n \"test-dash\": \"value\"\n }\n}\n```\n\n\n## Tips\n\nYou can pass your search with or without quotes like this:\n```sh\n$ niet project.meta.name your-file.yaml\n$ niet \"project.meta.name\" your-file.yaml\n```\n\nYou can execute `niet` step by step by using the debug mode. It will allow\nyou to inspect your execution during your debug sessions.\n\n## Contribute\n\nIf you want to contribute to niet [please first read the contribution guidelines](CONTRIBUTING.md)\n\n## Licence\n\nThis project is under the MIT License.\n\n[See the license file for more details](LICENSE)\n\nHerv\u00e9 Beraud \nS\u00e9bastien Boyron \n\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/openuado/niet/", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "niet", "package_url": "https://pypi.org/project/niet/", "platform": "", "project_url": "https://pypi.org/project/niet/", "project_urls": { "Homepage": "https://github.com/openuado/niet/" }, "release_url": "https://pypi.org/project/niet/2.4.0/", "requires_dist": [ "PyYAML (==5.1)", "jmespath (==0.9.4)" ], "requires_python": ">=3.6", "summary": "Shell config file parser (json, yaml)", "version": "2.4.0", "yanked": false, "yanked_reason": null }, "last_serial": 10171648, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "6fbc0edd24a4864a16afbfc9f38780e2", "sha256": "dbf56bb33d5fb1762866d30093fb5c2bbeb558764818fbad25972a859b091682" }, "downloads": -1, "filename": "niet-0.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "6fbc0edd24a4864a16afbfc9f38780e2", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 4922, "upload_time": "2018-02-12T15:16:36", "upload_time_iso_8601": "2018-02-12T15:16:36.675762Z", "url": "https://files.pythonhosted.org/packages/01/c6/23528563225e60347bbe8a006dc5e77dda43094a37c305822c3051bbf4d7/niet-0.1.0-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "25c0dd1d3e732cb2153927f4aa670b07", "sha256": "d71d296d109c696b2b95c8bd24cd850f2499048ea38590119485b2d6c1f6c804" }, "downloads": -1, "filename": "niet-0.1.0.tar.gz", "has_sig": false, "md5_digest": "25c0dd1d3e732cb2153927f4aa670b07", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3176, "upload_time": "2018-02-12T15:16:38", "upload_time_iso_8601": "2018-02-12T15:16:38.315283Z", "url": "https://files.pythonhosted.org/packages/56/bb/0b5fa56d11c4a24214345506d8469c6c874f26b8d083a217bc60fe60e884/niet-0.1.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "2b3adacb7ca3411db2dddcbe364e77be", "sha256": "8888c6247d44b318ee5980b91e012ddfd21f2df400ec1616cf70d6b343ac3371" }, "downloads": -1, "filename": "niet-0.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "2b3adacb7ca3411db2dddcbe364e77be", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 3489, "upload_time": "2018-04-04T21:12:17", "upload_time_iso_8601": "2018-04-04T21:12:17.847784Z", "url": "https://files.pythonhosted.org/packages/b0/5b/25324e906dbbd106e55359621070a97521878c8565bb39719b9279842476/niet-0.2.0-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "594c085e85b0849ca78151daffe26546", "sha256": "5142210425fbfc3a0a6792acf2f37eda8fb8404d3adaf51498320def79cbcbcd" }, "downloads": -1, "filename": "niet-0.2.0.tar.gz", "has_sig": false, "md5_digest": "594c085e85b0849ca78151daffe26546", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3519, "upload_time": "2018-04-04T21:12:19", "upload_time_iso_8601": "2018-04-04T21:12:19.367143Z", "url": "https://files.pythonhosted.org/packages/63/9f/97438c18be84c6e642c961de9918b4d4ee2ecf388224951049648e363c3e/niet-0.2.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "9920e8b38afdcd144d091b7513423916", "sha256": "1795c66df5598898b034b69a3bba13160e55a954b18466a69af13b0f85b537b9" }, "downloads": -1, "filename": "niet-0.2.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "9920e8b38afdcd144d091b7513423916", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 3552, "upload_time": "2018-04-04T22:35:13", "upload_time_iso_8601": "2018-04-04T22:35:13.581751Z", "url": "https://files.pythonhosted.org/packages/f4/3d/c2d663e38e23373519f063cffc126b3f9e88cbc966bf6fb97303255f1d14/niet-0.2.1-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "9915a8f16c48606dcf4969664d8c3143", "sha256": "6f1c0303b5d1353ed6c5e9a5246b77c201de5b1aeb37db16417f8efac4e64ff8" }, "downloads": -1, "filename": "niet-0.2.1.tar.gz", "has_sig": false, "md5_digest": "9915a8f16c48606dcf4969664d8c3143", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3606, "upload_time": "2018-04-04T22:35:14", "upload_time_iso_8601": "2018-04-04T22:35:14.528925Z", "url": "https://files.pythonhosted.org/packages/43/2f/a546bf0f9cf237480e9b58d25f9aac49fa18001e016a7d42ee27c95c3d0f/niet-0.2.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "a5827a4b112ca83e35c716c4f3e0535c", "sha256": "7220e023c4e66bec67c7be87d0cbfdcaf9ea75d5652204c1ec12b00e1e6a8ecc" }, "downloads": -1, "filename": "niet-0.2.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "a5827a4b112ca83e35c716c4f3e0535c", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 3571, "upload_time": "2018-04-04T22:46:27", "upload_time_iso_8601": "2018-04-04T22:46:27.627108Z", "url": "https://files.pythonhosted.org/packages/18/78/22c1500911e5510193e3ac1dc50c7161aba135036275d60aeed41160ac51/niet-0.2.2-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "fb7aadab9d829c7c9cddca88abedc0e7", "sha256": "344d4fd21fad87a4def835e9c959bcf0847a08c1139af5aae1b970df934e1f20" }, "downloads": -1, "filename": "niet-0.2.2.tar.gz", "has_sig": false, "md5_digest": "fb7aadab9d829c7c9cddca88abedc0e7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3647, "upload_time": "2018-04-04T22:46:28", "upload_time_iso_8601": "2018-04-04T22:46:28.732131Z", "url": "https://files.pythonhosted.org/packages/ad/c0/40dd621181c738a1f9913b5d1fb7269dff5b872dd389ba398cabdcf91bd2/niet-0.2.2.tar.gz", "yanked": false, "yanked_reason": null } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "31766fb6b117747b597969f911b1c041", "sha256": "24b389126ef867f96d2f826607a669dd4f742761e01a1a16e76054360dfe03c1" }, "downloads": -1, "filename": "niet-1.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "31766fb6b117747b597969f911b1c041", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 3718, "upload_time": "2018-04-05T21:54:38", "upload_time_iso_8601": "2018-04-05T21:54:38.806605Z", "url": "https://files.pythonhosted.org/packages/84/78/05469667ff89c7a3d25c76f13c75ad8dfc0c0986b8dd18b191729b15e18a/niet-1.0.0-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "5ca7051fd205e579f3edfc669d9b809d", "sha256": "fc2938005f3cab950724958b842fb0222ffccd13465afeedffd4785bb795e664" }, "downloads": -1, "filename": "niet-1.0.0.tar.gz", "has_sig": false, "md5_digest": "5ca7051fd205e579f3edfc669d9b809d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11525, "upload_time": "2018-04-05T21:54:39", "upload_time_iso_8601": "2018-04-05T21:54:39.633796Z", "url": "https://files.pythonhosted.org/packages/c3/12/dcff044e69d0ee90fd96acbe1ce7305047713a87ab16a93d369e179079dc/niet-1.0.0.tar.gz", "yanked": false, "yanked_reason": null } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "e5a1364dbd787c12f0d5cccb48ff5303", "sha256": "82ae88963013b0da9deccbc5b177ce55af7dbce785436ce65de421473119578c" }, "downloads": -1, "filename": "niet-1.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e5a1364dbd787c12f0d5cccb48ff5303", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 6054, "upload_time": "2018-04-11T22:21:31", "upload_time_iso_8601": "2018-04-11T22:21:31.699065Z", "url": "https://files.pythonhosted.org/packages/0c/09/b18b0f0e5a6b2ade07fcc009cdb7b233f2ea509232041214ed690cd6aefd/niet-1.1.0-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "15405ac2017c51cb86fa722be2ad252b", "sha256": "ca149a0170615a85582da5d413c20090fc91e899fc3938f29aca276e4e86d1d7" }, "downloads": -1, "filename": "niet-1.1.0.tar.gz", "has_sig": false, "md5_digest": "15405ac2017c51cb86fa722be2ad252b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11962, "upload_time": "2018-04-11T22:21:32", "upload_time_iso_8601": "2018-04-11T22:21:32.582277Z", "url": "https://files.pythonhosted.org/packages/da/ab/0f8602dd6c8e2bf849e333a44a5a198331b125e34bc98c6e4d3ce6b7917c/niet-1.1.0.tar.gz", "yanked": false, "yanked_reason": null } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "bf07b4b2ef9f93e7b806c8e34f9ebdbb", "sha256": "01601b7b89a4b9d90fcdad57ca0974d66dd1944ecda33eb0c6be7d16a30869e2" }, "downloads": -1, "filename": "niet-1.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "bf07b4b2ef9f93e7b806c8e34f9ebdbb", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 5030, "upload_time": "2018-04-27T13:07:53", "upload_time_iso_8601": "2018-04-27T13:07:53.657271Z", "url": "https://files.pythonhosted.org/packages/4b/6b/aaeead082ae82748f647b9b91ebf3330c6a312a0be1fd6766c471ef521b1/niet-1.2.0-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "c9bbcbc2c551cca80c4f320577ca2ca3", "sha256": "8405ec7aa8c55d4f12032aa4113e68954fbd898bb583e7ecca59feb4de87c252" }, "downloads": -1, "filename": "niet-1.2.0.tar.gz", "has_sig": false, "md5_digest": "c9bbcbc2c551cca80c4f320577ca2ca3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13741, "upload_time": "2018-04-27T13:07:54", "upload_time_iso_8601": "2018-04-27T13:07:54.627604Z", "url": "https://files.pythonhosted.org/packages/06/a0/55cac0e9adfaa99478a113cb71ea8b918344eb6fe4eb9caa97eb68342498/niet-1.2.0.tar.gz", "yanked": false, "yanked_reason": null } ], "1.3.0": [ { "comment_text": "", "digests": { "md5": "c0f1b4777c9f9e65af530cc992f80e28", "sha256": "93ec366455ec7ed9366cf4ac52e3cdb77109d3a912d72d90c8f56ca94b287eb9" }, "downloads": -1, "filename": "niet-1.3.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c0f1b4777c9f9e65af530cc992f80e28", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 6213, "upload_time": "2018-07-05T12:12:29", "upload_time_iso_8601": "2018-07-05T12:12:29.972613Z", "url": "https://files.pythonhosted.org/packages/b2/1a/df9016023c926b5d522104c3efc5238a986ab6cd5e1c4fc737f9dc03f8a6/niet-1.3.0-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "8cb66b28035c4bb8fd96848b85e1482e", "sha256": "29d5d48ad67c035402ab23e85024b8141c6e986a68ba1444ffb3365e201a55c9" }, "downloads": -1, "filename": "niet-1.3.0.tar.gz", "has_sig": false, "md5_digest": "8cb66b28035c4bb8fd96848b85e1482e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16607, "upload_time": "2018-07-05T12:12:31", "upload_time_iso_8601": "2018-07-05T12:12:31.058202Z", "url": "https://files.pythonhosted.org/packages/3b/8a/9318e7b61345ae7cca272a6445f3cccb72940c3a80db4d173b9371592ab3/niet-1.3.0.tar.gz", "yanked": false, "yanked_reason": null } ], "1.4.0": [ { "comment_text": "", "digests": { "md5": "5ac9ff74693e86a4a70f1ec778ce3688", "sha256": "c20d12c10a7df8c4da2912aa7f744602ec91dc5e6e853c4f3a6484a2acd31532" }, "downloads": -1, "filename": "niet-1.4.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "5ac9ff74693e86a4a70f1ec778ce3688", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 7774, "upload_time": "2018-10-26T15:36:06", "upload_time_iso_8601": "2018-10-26T15:36:06.734505Z", "url": "https://files.pythonhosted.org/packages/91/e1/d20afc28292718e136504b8159c45ec392ebfa7d2992274bf9cc31fcd7f9/niet-1.4.0-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "c8b11da4e7a223923e1529c6c806b2e2", "sha256": "e9d014314dbd781d216fa2e6ff327ed66ffbc8a65be224c811e6546a83c09f0c" }, "downloads": -1, "filename": "niet-1.4.0.tar.gz", "has_sig": false, "md5_digest": "c8b11da4e7a223923e1529c6c806b2e2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17587, "upload_time": "2018-10-26T15:36:08", "upload_time_iso_8601": "2018-10-26T15:36:08.005379Z", "url": "https://files.pythonhosted.org/packages/07/1f/d0d0e1e22af9aa40fbce1e0cfcbe9397a6cd76cbd87b3044a624330dfa95/niet-1.4.0.tar.gz", "yanked": false, "yanked_reason": null } ], "1.4.1": [ { "comment_text": "", "digests": { "md5": "a0ff58bb7345418df7203e4c6d87f2aa", "sha256": "20ce520effdaa77e8df5944b0bf2f7c7a446a910a661538aa01db7acd14976cf" }, "downloads": -1, "filename": "niet-1.4.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "a0ff58bb7345418df7203e4c6d87f2aa", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 7813, "upload_time": "2018-11-19T14:16:20", "upload_time_iso_8601": "2018-11-19T14:16:20.869143Z", "url": "https://files.pythonhosted.org/packages/ce/b9/efa224c30dfdc9ef93d3cb29f46a8fbc18b2ef19fadcd15095a6d5dee3d7/niet-1.4.1-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "15f2285e59abf74e1828f01c5aa42177", "sha256": "70acf0890cc1768fc84e3df9fd2916734279798d45b842bd4eca14df47769286" }, "downloads": -1, "filename": "niet-1.4.1.tar.gz", "has_sig": false, "md5_digest": "15f2285e59abf74e1828f01c5aa42177", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17666, "upload_time": "2018-11-19T14:16:22", "upload_time_iso_8601": "2018-11-19T14:16:22.568236Z", "url": "https://files.pythonhosted.org/packages/49/2a/ec090b9e151fc6447d61da8706287782a3f38476944f003028815a3b5265/niet-1.4.1.tar.gz", "yanked": false, "yanked_reason": null } ], "1.4.2": [ { "comment_text": "", "digests": { "md5": "d8a917c2ae30e2ee13c49c5ce7322241", "sha256": "fbfa6bae3ebe28d68fe87fe7d5a23ac3c216b87a6e4456061024dd8b324264a4" }, "downloads": -1, "filename": "niet-1.4.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d8a917c2ae30e2ee13c49c5ce7322241", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 7812, "upload_time": "2019-01-16T16:48:25", "upload_time_iso_8601": "2019-01-16T16:48:25.289639Z", "url": "https://files.pythonhosted.org/packages/53/a6/689a583c63baf05ee1f53ca9829e84fb1f7b63e1332148287d4dd352579d/niet-1.4.2-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "ddfdab1f328c37290965d1ce700aca9d", "sha256": "6de7aed32a4d7ee082fc3951bb1223d264b6622884c4a925ec166e7feb453ece" }, "downloads": -1, "filename": "niet-1.4.2.tar.gz", "has_sig": false, "md5_digest": "ddfdab1f328c37290965d1ce700aca9d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17684, "upload_time": "2019-01-16T16:48:27", "upload_time_iso_8601": "2019-01-16T16:48:27.579968Z", "url": "https://files.pythonhosted.org/packages/ac/c5/0caf1fc9e329e02ff9eed1ac38ae255d18c7b9e3222f2c246d176392fbe1/niet-1.4.2.tar.gz", "yanked": false, "yanked_reason": null } ], "1.5.0": [ { "comment_text": "", "digests": { "md5": "952834769cc0865d6dfced184df9321e", "sha256": "3c1686939600bfa74c982be8076e787a245408af46f4395cf364537ecd44432b" }, "downloads": -1, "filename": "niet-1.5.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "952834769cc0865d6dfced184df9321e", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 8032, "upload_time": "2019-04-04T12:26:36", "upload_time_iso_8601": "2019-04-04T12:26:36.387807Z", "url": "https://files.pythonhosted.org/packages/b2/6d/27b2526c66a805452eb569cb2102595be5233f2607c373036577c5fb735f/niet-1.5.0-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "a1a188494969358401b0392d1eec1b31", "sha256": "9915864c4aef14452ec890524cd030cb01a6003483e849010587ee22c0223759" }, "downloads": -1, "filename": "niet-1.5.0.tar.gz", "has_sig": false, "md5_digest": "a1a188494969358401b0392d1eec1b31", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18324, "upload_time": "2019-04-04T12:26:37", "upload_time_iso_8601": "2019-04-04T12:26:37.732968Z", "url": "https://files.pythonhosted.org/packages/48/ce/92860a0355d0173bf03d9dbd8ffaf793276f93d6ae9b5d11ea88247bb139/niet-1.5.0.tar.gz", "yanked": false, "yanked_reason": null } ], "1.5.1": [ { "comment_text": "", "digests": { "md5": "27e126b877777c029541dd5a1e16f32d", "sha256": "db6b346fd3613f9522ead0b17d6ae0e93874c6ef602b4fdb804bf84a7a6613bc" }, "downloads": -1, "filename": "niet-1.5.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "27e126b877777c029541dd5a1e16f32d", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 8048, "upload_time": "2019-05-13T14:10:08", "upload_time_iso_8601": "2019-05-13T14:10:08.471130Z", "url": "https://files.pythonhosted.org/packages/cf/41/7ab8c109bd8bdb3eee5ab6c41c327c21a6e8842769b4f8a351edac46df3d/niet-1.5.1-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "7c77277d9c33c1d2515f5e42d6a9dbb6", "sha256": "9176b50e499c2e9d617b5e93531cbc14eb9b98ddeebf7508425b2d3574664df6" }, "downloads": -1, "filename": "niet-1.5.1.tar.gz", "has_sig": false, "md5_digest": "7c77277d9c33c1d2515f5e42d6a9dbb6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18427, "upload_time": "2019-05-13T14:10:10", "upload_time_iso_8601": "2019-05-13T14:10:10.157439Z", "url": "https://files.pythonhosted.org/packages/2d/e9/ff653bb8959ef51dbe28f1171564cc2b731b8d61e5cd413d7429c08a80ec/niet-1.5.1.tar.gz", "yanked": false, "yanked_reason": null } ], "1.6.0": [ { "comment_text": "", "digests": { "md5": "c18881dec6801ab069e7555584328763", "sha256": "0bc36235feb556b23b7b39f592820aec33baa6151d5aeb918ed92a8a24eff3f2" }, "downloads": -1, "filename": "niet-1.6.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c18881dec6801ab069e7555584328763", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 8642, "upload_time": "2019-10-07T18:16:29", "upload_time_iso_8601": "2019-10-07T18:16:29.215865Z", "url": "https://files.pythonhosted.org/packages/50/7d/9a05064d749eb62d34900f2adab4205d64a331c636ed2340b73473155c8a/niet-1.6.0-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "56e04a8c1aa67570e299eed3c0256261", "sha256": "2627ce0ff850698199c01ad5569991176da9d91951bcb9513b2b04d660339b3c" }, "downloads": -1, "filename": "niet-1.6.0.tar.gz", "has_sig": false, "md5_digest": "56e04a8c1aa67570e299eed3c0256261", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17488, "upload_time": "2019-10-07T18:16:31", "upload_time_iso_8601": "2019-10-07T18:16:31.074868Z", "url": "https://files.pythonhosted.org/packages/2e/a9/4571b6f7e3a96552a8b6009b6a62906e42ebb160417374e701a4dfe4a844/niet-1.6.0.tar.gz", "yanked": false, "yanked_reason": null } ], "1.6.1": [ { "comment_text": "", "digests": { "md5": "3126cc2fc7fed19aa080181ba4006524", "sha256": "06d904d27c21bd5606b7c202f2013a4216d1b4f6d96c8f3963190c745d949847" }, "downloads": -1, "filename": "niet-1.6.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "3126cc2fc7fed19aa080181ba4006524", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 8644, "upload_time": "2019-10-07T18:42:52", "upload_time_iso_8601": "2019-10-07T18:42:52.046111Z", "url": "https://files.pythonhosted.org/packages/df/93/297354d5ca7152a99cff52e9bc32014c406ab2a609987fdeb30ee0c60a74/niet-1.6.1-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "474b17ad41acb72f04ed9c118fdf3dd7", "sha256": "0f020f24c4884e848510efa6f9959e29c85dfe2db0ccdc5acd60a4d7cc7a8c0b" }, "downloads": -1, "filename": "niet-1.6.1.tar.gz", "has_sig": false, "md5_digest": "474b17ad41acb72f04ed9c118fdf3dd7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19889, "upload_time": "2019-10-07T18:42:53", "upload_time_iso_8601": "2019-10-07T18:42:53.621564Z", "url": "https://files.pythonhosted.org/packages/13/67/36565af2ff27d97ad0efe96bfcf4623b1dc5bbac0104b750a699ebe4653f/niet-1.6.1.tar.gz", "yanked": false, "yanked_reason": null } ], "1.7.0": [ { "comment_text": "", "digests": { "md5": "a294b2dd0211c7e54fbc53d130e8b338", "sha256": "b2793166021b14ba815aaf22ee677ef839fda49936d8df42a5411330bac416ec" }, "downloads": -1, "filename": "niet-1.7.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "a294b2dd0211c7e54fbc53d130e8b338", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 9630, "upload_time": "2019-10-09T09:28:43", "upload_time_iso_8601": "2019-10-09T09:28:43.440438Z", "url": "https://files.pythonhosted.org/packages/79/0d/6bc89dfe1300e8bf97e76d8d9c172ee77def00f9bfbf10cb9a5e3b93dfcf/niet-1.7.0-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "85dc18e14a602809cf5adff19ddb8732", "sha256": "1c2e74010279700bc554e8e1fb14a053ce25b60fdf647eacddc793aab30b965a" }, "downloads": -1, "filename": "niet-1.7.0.tar.gz", "has_sig": false, "md5_digest": "85dc18e14a602809cf5adff19ddb8732", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21328, "upload_time": "2019-10-09T09:28:46", "upload_time_iso_8601": "2019-10-09T09:28:46.014777Z", "url": "https://files.pythonhosted.org/packages/08/e6/db770e7e0052afeeb21f0f50a91c2c56b3191aa945687fee8b0960d9a9f5/niet-1.7.0.tar.gz", "yanked": false, "yanked_reason": null } ], "1.8.0": [ { "comment_text": "", "digests": { "md5": "a28c75c00b46480b8696d7acf64695d0", "sha256": "34af049ea3344dd895973c7a8858e8bb57f3f49d4475ae5fd9427b0d32101432" }, "downloads": -1, "filename": "niet-1.8.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "a28c75c00b46480b8696d7acf64695d0", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 10416, "upload_time": "2019-10-21T09:21:18", "upload_time_iso_8601": "2019-10-21T09:21:18.446792Z", "url": "https://files.pythonhosted.org/packages/a3/ab/2948c3599ba8462aa036bdde6cd4154addf94aa8518352778cb4b1b3b4c8/niet-1.8.0-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "4b120fddeaad8f6deb7a245ffea11b1e", "sha256": "8cdbee3649caa8256d346ef13cf781d340cacede7995002c58ef70d731878080" }, "downloads": -1, "filename": "niet-1.8.0.tar.gz", "has_sig": false, "md5_digest": "4b120fddeaad8f6deb7a245ffea11b1e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23170, "upload_time": "2019-10-21T09:21:21", "upload_time_iso_8601": "2019-10-21T09:21:21.650779Z", "url": "https://files.pythonhosted.org/packages/50/ab/deed542dfa2dc98debebabf885e48251e3f5644dcfa94a30c1030641805b/niet-1.8.0.tar.gz", "yanked": false, "yanked_reason": null } ], "1.8.1": [ { "comment_text": "", "digests": { "md5": "6e21ed093d8aeb1f4360a8c65df5ea6b", "sha256": "a26086d343bf83c45abd958a10828b213b2519a48b291880acf11a540ff23adb" }, "downloads": -1, "filename": "niet-1.8.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "6e21ed093d8aeb1f4360a8c65df5ea6b", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 10423, "upload_time": "2019-10-24T10:40:29", "upload_time_iso_8601": "2019-10-24T10:40:29.347107Z", "url": "https://files.pythonhosted.org/packages/62/04/1f9b0632a15ab20f94681b0965a2001d5786c8040a306dbf1a0e49d9084b/niet-1.8.1-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "c43178329883ee7679a516ab19ba74a8", "sha256": "3c79446aaba9fa996771edaa815542d7e6b4756adf5f06ca8e1a5a16c2c84c54" }, "downloads": -1, "filename": "niet-1.8.1.tar.gz", "has_sig": false, "md5_digest": "c43178329883ee7679a516ab19ba74a8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19877, "upload_time": "2019-10-24T10:40:31", "upload_time_iso_8601": "2019-10-24T10:40:31.424129Z", "url": "https://files.pythonhosted.org/packages/74/a5/b8500064aec963eaa7d4e83b0b011377b4a5cbd8112c501c540fb9c8c641/niet-1.8.1.tar.gz", "yanked": false, "yanked_reason": null } ], "1.8.2": [ { "comment_text": "", "digests": { "md5": "52414da0eb579c6512d55712c0589b2b", "sha256": "fb71a22eb3f28d8ad408c26cf239b8865a07377ca3263795eb39877446957dfa" }, "downloads": -1, "filename": "niet-1.8.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "52414da0eb579c6512d55712c0589b2b", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 10454, "upload_time": "2019-10-25T08:56:03", "upload_time_iso_8601": "2019-10-25T08:56:03.772995Z", "url": "https://files.pythonhosted.org/packages/71/01/5348542c2e86c701648fffb591d3cc3e8904d55c664e1bcf5b8e50d887e2/niet-1.8.2-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "20063c15db86a99cffd8563e66bb4140", "sha256": "d8494761060cc4a6650485f96038ac1b3af6170a4dc26cfff70016892bee6aad" }, "downloads": -1, "filename": "niet-1.8.2.tar.gz", "has_sig": false, "md5_digest": "20063c15db86a99cffd8563e66bb4140", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23642, "upload_time": "2019-10-25T08:56:05", "upload_time_iso_8601": "2019-10-25T08:56:05.120575Z", "url": "https://files.pythonhosted.org/packages/3b/32/8c2899efd227fbe647f6e90c36da73c8a1fb881c4f44f9927131ab834773/niet-1.8.2.tar.gz", "yanked": false, "yanked_reason": null } ], "2.0.0": [ { "comment_text": "", "digests": { "md5": "25ca9ee7acc05b7f1dbcd430f7df6f8c", "sha256": "a595d7af48a7bef827c6f17452409acca6d9b5ffafb73a1f889ca9cfb0352eb0" }, "downloads": -1, "filename": "niet-2.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "25ca9ee7acc05b7f1dbcd430f7df6f8c", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.6", "size": 10619, "upload_time": "2020-05-14T14:08:27", "upload_time_iso_8601": "2020-05-14T14:08:27.324159Z", "url": "https://files.pythonhosted.org/packages/11/3b/7c8273c3f649b80e995bce87d5c5ea4579a771a7d9450fb3189c16cd523b/niet-2.0.0-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "b0ca6998a9ac7007459cb36ec643b88d", "sha256": "d1c6bec70a82c20ec780c57bc9f802e6d4381803ee90ac37859e167e043df15d" }, "downloads": -1, "filename": "niet-2.0.0.tar.gz", "has_sig": false, "md5_digest": "b0ca6998a9ac7007459cb36ec643b88d", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 23929, "upload_time": "2020-05-14T14:08:28", "upload_time_iso_8601": "2020-05-14T14:08:28.842263Z", "url": "https://files.pythonhosted.org/packages/e5/d4/d31fe8f0c472d0f88571127d65bd85d5c03de9c67e47c864738a0a2ca6a2/niet-2.0.0.tar.gz", "yanked": false, "yanked_reason": null } ], "2.1.0": [ { "comment_text": "", "digests": { "md5": "c9ce7bc7dd563faf02b3f990b1cdbb28", "sha256": "8518ff647ca7ad22b6230fc61922f31bb9352ecfb667436486d3c8d03d0a0696" }, "downloads": -1, "filename": "niet-2.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c9ce7bc7dd563faf02b3f990b1cdbb28", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.6", "size": 11797, "upload_time": "2020-05-14T14:12:41", "upload_time_iso_8601": "2020-05-14T14:12:41.410208Z", "url": "https://files.pythonhosted.org/packages/0a/7b/5a2339d4c03da687896e3bafe145b9e329155d24561cd1a664eab9df481f/niet-2.1.0-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "267f0caa3167820e22e6a23a271c826d", "sha256": "8e54ca8a3cf73e36a1f5ab99da1bb71885f93ee7bbd95dd5bde4d54c3443947d" }, "downloads": -1, "filename": "niet-2.1.0.tar.gz", "has_sig": false, "md5_digest": "267f0caa3167820e22e6a23a271c826d", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 25683, "upload_time": "2020-05-14T14:12:42", "upload_time_iso_8601": "2020-05-14T14:12:42.460187Z", "url": "https://files.pythonhosted.org/packages/9c/ad/34f951aabd16db2df30a003600b68bd3d762777e569e0fcc1d1dbfe97cf5/niet-2.1.0.tar.gz", "yanked": false, "yanked_reason": null } ], "2.2.0": [ { "comment_text": "", "digests": { "md5": "85c5f5b68be5fca34399019940cf1dd5", "sha256": "7e06cf0a4cbe957c92b988f691b72fc92411476e5b607a5212188f81964116af" }, "downloads": -1, "filename": "niet-2.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "85c5f5b68be5fca34399019940cf1dd5", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.6", "size": 12395, "upload_time": "2020-05-18T09:06:13", "upload_time_iso_8601": "2020-05-18T09:06:13.798499Z", "url": "https://files.pythonhosted.org/packages/fa/43/0f6cf2bf15ebb851339c25ce78fc8920146a948d4799453fbb5749f50275/niet-2.2.0-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "706b420fd096edef3c1eb0dac3086ccc", "sha256": "ebfdc84fa52f5d1b8ad0d989d98e961c46608caf9f6a640a6279698511a5ded4" }, "downloads": -1, "filename": "niet-2.2.0.tar.gz", "has_sig": false, "md5_digest": "706b420fd096edef3c1eb0dac3086ccc", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 26970, "upload_time": "2020-05-18T09:06:14", "upload_time_iso_8601": "2020-05-18T09:06:14.851986Z", "url": "https://files.pythonhosted.org/packages/37/1b/ba81de60dfddc922e47a8fc4263b4fba91aec736f2783931f8aa5f238141/niet-2.2.0.tar.gz", "yanked": false, "yanked_reason": null } ], "2.3.0": [ { "comment_text": "", "digests": { "md5": "fdfff8e5160cadb77a3a9c64fb08d1cc", "sha256": "f09e34e5ffafec9ae93e9f9dc29d2bbd9079aad95b759ac3cfc2c8c2e665ba25" }, "downloads": -1, "filename": "niet-2.3.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "fdfff8e5160cadb77a3a9c64fb08d1cc", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.6", "size": 12793, "upload_time": "2020-10-23T09:57:20", "upload_time_iso_8601": "2020-10-23T09:57:20.252864Z", "url": "https://files.pythonhosted.org/packages/23/a5/76013f518c879be9ceab3fb507c6ffef103a415436cda0e971ec6ec9ae9a/niet-2.3.0-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "acc683d65a79bacc70a90fe62571d536", "sha256": "6cf6f4e5c2d329eb4a0fff1c826fdc9c1ba67830c8563e83a05625a628c103da" }, "downloads": -1, "filename": "niet-2.3.0.tar.gz", "has_sig": false, "md5_digest": "acc683d65a79bacc70a90fe62571d536", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 31023, "upload_time": "2020-10-23T09:49:17", "upload_time_iso_8601": "2020-10-23T09:49:17.484655Z", "url": "https://files.pythonhosted.org/packages/51/61/f02df14fd1c15d4508e4d7ff0b99a0d556b87ab6267e36108c62a1af5ece/niet-2.3.0.tar.gz", "yanked": false, "yanked_reason": null } ], "2.4.0": [ { "comment_text": "", "digests": { "md5": "bf804f72d0b24ba3e765035f0e73c05d", "sha256": "ba6ee8455be38fc12d3dedb81e85617e47c4d939173ab2681b5642e4e208d58a" }, "downloads": -1, "filename": "niet-2.4.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "bf804f72d0b24ba3e765035f0e73c05d", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.6", "size": 12796, "upload_time": "2021-04-26T08:17:46", "upload_time_iso_8601": "2021-04-26T08:17:46.597420Z", "url": "https://files.pythonhosted.org/packages/4b/51/5e18966c96fff12b6f83a147ded6c7c993e816f30c5e7aaaddae69414a46/niet-2.4.0-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "ee80485eb6d5780a7c2ada27cf53bcc0", "sha256": "bc9e79d7d160a433353acf5e0188c50dfe6d6f3df4f9e650b6b9f5d4a37957ca" }, "downloads": -1, "filename": "niet-2.4.0.tar.gz", "has_sig": false, "md5_digest": "ee80485eb6d5780a7c2ada27cf53bcc0", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 28097, "upload_time": "2021-04-26T08:17:47", "upload_time_iso_8601": "2021-04-26T08:17:47.918524Z", "url": "https://files.pythonhosted.org/packages/d1/96/798b439e5c07d915b91c1d8b928e087884a9c20582db4eb55a48312ae5eb/niet-2.4.0.tar.gz", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "bf804f72d0b24ba3e765035f0e73c05d", "sha256": "ba6ee8455be38fc12d3dedb81e85617e47c4d939173ab2681b5642e4e208d58a" }, "downloads": -1, "filename": "niet-2.4.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "bf804f72d0b24ba3e765035f0e73c05d", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.6", "size": 12796, "upload_time": "2021-04-26T08:17:46", "upload_time_iso_8601": "2021-04-26T08:17:46.597420Z", "url": "https://files.pythonhosted.org/packages/4b/51/5e18966c96fff12b6f83a147ded6c7c993e816f30c5e7aaaddae69414a46/niet-2.4.0-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "ee80485eb6d5780a7c2ada27cf53bcc0", "sha256": "bc9e79d7d160a433353acf5e0188c50dfe6d6f3df4f9e650b6b9f5d4a37957ca" }, "downloads": -1, "filename": "niet-2.4.0.tar.gz", "has_sig": false, "md5_digest": "ee80485eb6d5780a7c2ada27cf53bcc0", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 28097, "upload_time": "2021-04-26T08:17:47", "upload_time_iso_8601": "2021-04-26T08:17:47.918524Z", "url": "https://files.pythonhosted.org/packages/d1/96/798b439e5c07d915b91c1d8b928e087884a9c20582db4eb55a48312ae5eb/niet-2.4.0.tar.gz", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }