From 55623a3e9908ab27b3f30f4653911f4ccca81888 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christoffer=20Str=C3=B6mberg?= Date: Thu, 29 Feb 2024 13:07:48 +0100 Subject: [PATCH 1/8] first commit --- LICENSE | 21 + Pipfile | 17 + Pipfile.lock | 1113 ++++++ README.md | 50 +- docs/assets/favicon.png | Bin 0 -> 596 bytes docs/assets/ifk_logo_black.png | Bin 0 -> 5498 bytes docs/assets/ifk_logo_white.png | Bin 0 -> 5620 bytes docs/index.md | 3 + material/partials/copyright.html | 14 + mkdocs.yml | 37 + notebooks/example.ipynb | 3038 +++++++++++++++++ notebooks/example.py | 78 + pyproject.toml | 56 + .../__pycache__/slv_wrapper.cpython-310.pyc | Bin 0 -> 4244 bytes src/co2_meal_planner/slv_wrapper.py | 117 + src/ifk_co2_meal_planner.egg-info/PKG-INFO | 83 + src/ifk_co2_meal_planner.egg-info/SOURCES.txt | 10 + .../dependency_links.txt | 1 + .../requires.txt | 30 + .../top_level.txt | 1 + src/rdi.py | 24 + tests/test_unit.py | 8 + 22 files changed, 4699 insertions(+), 2 deletions(-) create mode 100644 LICENSE create mode 100644 Pipfile create mode 100644 Pipfile.lock create mode 100644 docs/assets/favicon.png create mode 100644 docs/assets/ifk_logo_black.png create mode 100644 docs/assets/ifk_logo_white.png create mode 100644 docs/index.md create mode 100644 material/partials/copyright.html create mode 100644 mkdocs.yml create mode 100644 notebooks/example.ipynb create mode 100644 notebooks/example.py create mode 100644 pyproject.toml create mode 100644 src/co2_meal_planner/__pycache__/slv_wrapper.cpython-310.pyc create mode 100644 src/co2_meal_planner/slv_wrapper.py create mode 100644 src/ifk_co2_meal_planner.egg-info/PKG-INFO create mode 100644 src/ifk_co2_meal_planner.egg-info/SOURCES.txt create mode 100644 src/ifk_co2_meal_planner.egg-info/dependency_links.txt create mode 100644 src/ifk_co2_meal_planner.egg-info/requires.txt create mode 100644 src/ifk_co2_meal_planner.egg-info/top_level.txt create mode 100644 src/rdi.py create mode 100644 tests/test_unit.py diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..0542b31 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2023 Ingenjörsarbete För Klimatet + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/Pipfile b/Pipfile new file mode 100644 index 0000000..9fc0c00 --- /dev/null +++ b/Pipfile @@ -0,0 +1,17 @@ +[[source]] +url = "https://pypi.org/simple" +verify_ssl = true +name = "pypi" + +[packages] +e = "*" +ifk-co2-meal-planner = {file = "."} +ruff = "*" +black = "*" +mypy = "*" + +[dev-packages] +ipykernel = "*" + +[requires] +python_version = "3.10" diff --git a/Pipfile.lock b/Pipfile.lock new file mode 100644 index 0000000..363e923 --- /dev/null +++ b/Pipfile.lock @@ -0,0 +1,1113 @@ +{ + "_meta": { + "hash": { + "sha256": "54aa47be4d5df0bf3c8523d7b79a54529a2292cf120f3ee51db3e9fde63943a0" + }, + "pipfile-spec": 6, + "requires": { + "python_version": "3.10" + }, + "sources": [ + { + "name": "pypi", + "url": "https://pypi.org/simple", + "verify_ssl": true + } + ] + }, + "default": { + "black": { + "hashes": [ + "sha256:057c3dc602eaa6fdc451069bd027a1b2635028b575a6c3acfd63193ced20d9c8", + "sha256:08654d0797e65f2423f850fc8e16a0ce50925f9337fb4a4a176a7aa4026e63f8", + "sha256:163baf4ef40e6897a2a9b83890e59141cc8c2a98f2dda5080dc15c00ee1e62cd", + "sha256:1e08fb9a15c914b81dd734ddd7fb10513016e5ce7e6704bdd5e1251ceee51ac9", + "sha256:4dd76e9468d5536abd40ffbc7a247f83b2324f0c050556d9c371c2b9a9a95e31", + "sha256:4f9de21bafcba9683853f6c96c2d515e364aee631b178eaa5145fc1c61a3cc92", + "sha256:61a0391772490ddfb8a693c067df1ef5227257e72b0e4108482b8d41b5aee13f", + "sha256:6981eae48b3b33399c8757036c7f5d48a535b962a7c2310d19361edeef64ce29", + "sha256:7e53a8c630f71db01b28cd9602a1ada68c937cbf2c333e6ed041390d6968faf4", + "sha256:810d445ae6069ce64030c78ff6127cd9cd178a9ac3361435708b907d8a04c693", + "sha256:93601c2deb321b4bad8f95df408e3fb3943d85012dddb6121336b8e24a0d1218", + "sha256:992e451b04667116680cb88f63449267c13e1ad134f30087dec8527242e9862a", + "sha256:9db528bccb9e8e20c08e716b3b09c6bdd64da0dd129b11e160bf082d4642ac23", + "sha256:a0057f800de6acc4407fe75bb147b0c2b5cbb7c3ed110d3e5999cd01184d53b0", + "sha256:ba15742a13de85e9b8f3239c8f807723991fbfae24bad92d34a2b12e81904982", + "sha256:bce4f25c27c3435e4dace4815bcb2008b87e167e3bf4ee47ccdc5ce906eb4894", + "sha256:ca610d29415ee1a30a3f30fab7a8f4144e9d34c89a235d81292a1edb2b55f540", + "sha256:d533d5e3259720fdbc1b37444491b024003e012c5173f7d06825a77508085430", + "sha256:d84f29eb3ee44859052073b7636533ec995bd0f64e2fb43aeceefc70090e752b", + "sha256:e37c99f89929af50ffaf912454b3e3b47fd64109659026b678c091a4cd450fb2", + "sha256:e8a6ae970537e67830776488bca52000eaa37fa63b9988e8c487458d9cd5ace6", + "sha256:faf2ee02e6612577ba0181f4347bcbcf591eb122f7841ae5ba233d12c39dcb4d" + ], + "index": "pypi", + "markers": "python_version >= '3.8'", + "version": "==24.2.0" + }, + "certifi": { + "hashes": [ + "sha256:0569859f95fc761b18b45ef421b1290a0f65f147e92a1e5eb3e635f9a5e4e66f", + "sha256:dc383c07b76109f368f6106eee2b593b04a011ea4d55f652c6ca24a754d1cdd1" + ], + "markers": "python_version >= '3.6'", + "version": "==2024.2.2" + }, + "charset-normalizer": { + "hashes": [ + "sha256:06435b539f889b1f6f4ac1758871aae42dc3a8c0e24ac9e60c2384973ad73027", + "sha256:06a81e93cd441c56a9b65d8e1d043daeb97a3d0856d177d5c90ba85acb3db087", + "sha256:0a55554a2fa0d408816b3b5cedf0045f4b8e1a6065aec45849de2d6f3f8e9786", + "sha256:0b2b64d2bb6d3fb9112bafa732def486049e63de9618b5843bcdd081d8144cd8", + "sha256:10955842570876604d404661fbccbc9c7e684caf432c09c715ec38fbae45ae09", + "sha256:122c7fa62b130ed55f8f285bfd56d5f4b4a5b503609d181f9ad85e55c89f4185", + "sha256:1ceae2f17a9c33cb48e3263960dc5fc8005351ee19db217e9b1bb15d28c02574", + "sha256:1d3193f4a680c64b4b6a9115943538edb896edc190f0b222e73761716519268e", + "sha256:1f79682fbe303db92bc2b1136016a38a42e835d932bab5b3b1bfcfbf0640e519", + "sha256:2127566c664442652f024c837091890cb1942c30937add288223dc895793f898", + "sha256:22afcb9f253dac0696b5a4be4a1c0f8762f8239e21b99680099abd9b2b1b2269", + "sha256:25baf083bf6f6b341f4121c2f3c548875ee6f5339300e08be3f2b2ba1721cdd3", + "sha256:2e81c7b9c8979ce92ed306c249d46894776a909505d8f5a4ba55b14206e3222f", + "sha256:3287761bc4ee9e33561a7e058c72ac0938c4f57fe49a09eae428fd88aafe7bb6", + "sha256:34d1c8da1e78d2e001f363791c98a272bb734000fcef47a491c1e3b0505657a8", + "sha256:37e55c8e51c236f95b033f6fb391d7d7970ba5fe7ff453dad675e88cf303377a", + "sha256:3d47fa203a7bd9c5b6cee4736ee84ca03b8ef23193c0d1ca99b5089f72645c73", + "sha256:3e4d1f6587322d2788836a99c69062fbb091331ec940e02d12d179c1d53e25fc", + "sha256:42cb296636fcc8b0644486d15c12376cb9fa75443e00fb25de0b8602e64c1714", + "sha256:45485e01ff4d3630ec0d9617310448a8702f70e9c01906b0d0118bdf9d124cf2", + "sha256:4a78b2b446bd7c934f5dcedc588903fb2f5eec172f3d29e52a9096a43722adfc", + "sha256:4ab2fe47fae9e0f9dee8c04187ce5d09f48eabe611be8259444906793ab7cbce", + "sha256:4d0d1650369165a14e14e1e47b372cfcb31d6ab44e6e33cb2d4e57265290044d", + "sha256:549a3a73da901d5bc3ce8d24e0600d1fa85524c10287f6004fbab87672bf3e1e", + "sha256:55086ee1064215781fff39a1af09518bc9255b50d6333f2e4c74ca09fac6a8f6", + "sha256:572c3763a264ba47b3cf708a44ce965d98555f618ca42c926a9c1616d8f34269", + "sha256:573f6eac48f4769d667c4442081b1794f52919e7edada77495aaed9236d13a96", + "sha256:5b4c145409bef602a690e7cfad0a15a55c13320ff7a3ad7ca59c13bb8ba4d45d", + "sha256:6463effa3186ea09411d50efc7d85360b38d5f09b870c48e4600f63af490e56a", + "sha256:65f6f63034100ead094b8744b3b97965785388f308a64cf8d7c34f2f2e5be0c4", + "sha256:663946639d296df6a2bb2aa51b60a2454ca1cb29835324c640dafb5ff2131a77", + "sha256:6897af51655e3691ff853668779c7bad41579facacf5fd7253b0133308cf000d", + "sha256:68d1f8a9e9e37c1223b656399be5d6b448dea850bed7d0f87a8311f1ff3dabb0", + "sha256:6ac7ffc7ad6d040517be39eb591cac5ff87416c2537df6ba3cba3bae290c0fed", + "sha256:6b3251890fff30ee142c44144871185dbe13b11bab478a88887a639655be1068", + "sha256:6c4caeef8fa63d06bd437cd4bdcf3ffefe6738fb1b25951440d80dc7df8c03ac", + "sha256:6ef1d82a3af9d3eecdba2321dc1b3c238245d890843e040e41e470ffa64c3e25", + "sha256:753f10e867343b4511128c6ed8c82f7bec3bd026875576dfd88483c5c73b2fd8", + "sha256:7cd13a2e3ddeed6913a65e66e94b51d80a041145a026c27e6bb76c31a853c6ab", + "sha256:7ed9e526742851e8d5cc9e6cf41427dfc6068d4f5a3bb03659444b4cabf6bc26", + "sha256:7f04c839ed0b6b98b1a7501a002144b76c18fb1c1850c8b98d458ac269e26ed2", + "sha256:802fe99cca7457642125a8a88a084cef28ff0cf9407060f7b93dca5aa25480db", + "sha256:80402cd6ee291dcb72644d6eac93785fe2c8b9cb30893c1af5b8fdd753b9d40f", + "sha256:8465322196c8b4d7ab6d1e049e4c5cb460d0394da4a27d23cc242fbf0034b6b5", + "sha256:86216b5cee4b06df986d214f664305142d9c76df9b6512be2738aa72a2048f99", + "sha256:87d1351268731db79e0f8e745d92493ee2841c974128ef629dc518b937d9194c", + "sha256:8bdb58ff7ba23002a4c5808d608e4e6c687175724f54a5dade5fa8c67b604e4d", + "sha256:8c622a5fe39a48f78944a87d4fb8a53ee07344641b0562c540d840748571b811", + "sha256:8d756e44e94489e49571086ef83b2bb8ce311e730092d2c34ca8f7d925cb20aa", + "sha256:8f4a014bc36d3c57402e2977dada34f9c12300af536839dc38c0beab8878f38a", + "sha256:9063e24fdb1e498ab71cb7419e24622516c4a04476b17a2dab57e8baa30d6e03", + "sha256:90d558489962fd4918143277a773316e56c72da56ec7aa3dc3dbbe20fdfed15b", + "sha256:923c0c831b7cfcb071580d3f46c4baf50f174be571576556269530f4bbd79d04", + "sha256:95f2a5796329323b8f0512e09dbb7a1860c46a39da62ecb2324f116fa8fdc85c", + "sha256:96b02a3dc4381e5494fad39be677abcb5e6634bf7b4fa83a6dd3112607547001", + "sha256:9f96df6923e21816da7e0ad3fd47dd8f94b2a5ce594e00677c0013018b813458", + "sha256:a10af20b82360ab00827f916a6058451b723b4e65030c5a18577c8b2de5b3389", + "sha256:a50aebfa173e157099939b17f18600f72f84eed3049e743b68ad15bd69b6bf99", + "sha256:a981a536974bbc7a512cf44ed14938cf01030a99e9b3a06dd59578882f06f985", + "sha256:a9a8e9031d613fd2009c182b69c7b2c1ef8239a0efb1df3f7c8da66d5dd3d537", + "sha256:ae5f4161f18c61806f411a13b0310bea87f987c7d2ecdbdaad0e94eb2e404238", + "sha256:aed38f6e4fb3f5d6bf81bfa990a07806be9d83cf7bacef998ab1a9bd660a581f", + "sha256:b01b88d45a6fcb69667cd6d2f7a9aeb4bf53760d7fc536bf679ec94fe9f3ff3d", + "sha256:b261ccdec7821281dade748d088bb6e9b69e6d15b30652b74cbbac25e280b796", + "sha256:b2b0a0c0517616b6869869f8c581d4eb2dd83a4d79e0ebcb7d373ef9956aeb0a", + "sha256:b4a23f61ce87adf89be746c8a8974fe1c823c891d8f86eb218bb957c924bb143", + "sha256:bd8f7df7d12c2db9fab40bdd87a7c09b1530128315d047a086fa3ae3435cb3a8", + "sha256:beb58fe5cdb101e3a055192ac291b7a21e3b7ef4f67fa1d74e331a7f2124341c", + "sha256:c002b4ffc0be611f0d9da932eb0f704fe2602a9a949d1f738e4c34c75b0863d5", + "sha256:c083af607d2515612056a31f0a8d9e0fcb5876b7bfc0abad3ecd275bc4ebc2d5", + "sha256:c180f51afb394e165eafe4ac2936a14bee3eb10debc9d9e4db8958fe36afe711", + "sha256:c235ebd9baae02f1b77bcea61bce332cb4331dc3617d254df3323aa01ab47bd4", + "sha256:cd70574b12bb8a4d2aaa0094515df2463cb429d8536cfb6c7ce983246983e5a6", + "sha256:d0eccceffcb53201b5bfebb52600a5fb483a20b61da9dbc885f8b103cbe7598c", + "sha256:d965bba47ddeec8cd560687584e88cf699fd28f192ceb452d1d7ee807c5597b7", + "sha256:db364eca23f876da6f9e16c9da0df51aa4f104a972735574842618b8c6d999d4", + "sha256:ddbb2551d7e0102e7252db79ba445cdab71b26640817ab1e3e3648dad515003b", + "sha256:deb6be0ac38ece9ba87dea880e438f25ca3eddfac8b002a2ec3d9183a454e8ae", + "sha256:e06ed3eb3218bc64786f7db41917d4e686cc4856944f53d5bdf83a6884432e12", + "sha256:e27ad930a842b4c5eb8ac0016b0a54f5aebbe679340c26101df33424142c143c", + "sha256:e537484df0d8f426ce2afb2d0f8e1c3d0b114b83f8850e5f2fbea0e797bd82ae", + "sha256:eb00ed941194665c332bf8e078baf037d6c35d7c4f3102ea2d4f16ca94a26dc8", + "sha256:eb6904c354526e758fda7167b33005998fb68c46fbc10e013ca97f21ca5c8887", + "sha256:eb8821e09e916165e160797a6c17edda0679379a4be5c716c260e836e122f54b", + "sha256:efcb3f6676480691518c177e3b465bcddf57cea040302f9f4e6e191af91174d4", + "sha256:f27273b60488abe721a075bcca6d7f3964f9f6f067c8c4c605743023d7d3944f", + "sha256:f30c3cb33b24454a82faecaf01b19c18562b1e89558fb6c56de4d9118a032fd5", + "sha256:fb69256e180cb6c8a894fee62b3afebae785babc1ee98b81cdf68bbca1987f33", + "sha256:fd1abc0d89e30cc4e02e4064dc67fcc51bd941eb395c502aac3ec19fab46b519", + "sha256:ff8fa367d09b717b2a17a052544193ad76cd49979c805768879cb63d9ca50561" + ], + "markers": "python_full_version >= '3.7.0'", + "version": "==3.3.2" + }, + "click": { + "hashes": [ + "sha256:ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28", + "sha256:ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de" + ], + "markers": "python_version >= '3.7'", + "version": "==8.1.7" + }, + "contourpy": { + "hashes": [ + "sha256:0274c1cb63625972c0c007ab14dd9ba9e199c36ae1a231ce45d725cbcbfd10a8", + "sha256:0d7e03c0f9a4f90dc18d4e77e9ef4ec7b7bbb437f7f675be8e530d65ae6ef956", + "sha256:11f8d2554e52f459918f7b8e6aa20ec2a3bce35ce95c1f0ef4ba36fbda306df5", + "sha256:139d8d2e1c1dd52d78682f505e980f592ba53c9f73bd6be102233e358b401063", + "sha256:16a7380e943a6d52472096cb7ad5264ecee36ed60888e2a3d3814991a0107286", + "sha256:171f311cb758de7da13fc53af221ae47a5877be5a0843a9fe150818c51ed276a", + "sha256:18fc2b4ed8e4a8fe849d18dce4bd3c7ea637758c6343a1f2bae1e9bd4c9f4686", + "sha256:1c203f617abc0dde5792beb586f827021069fb6d403d7f4d5c2b543d87edceb9", + "sha256:1c2559d6cffc94890b0529ea7eeecc20d6fadc1539273aa27faf503eb4656d8f", + "sha256:1c88dfb9e0c77612febebb6ac69d44a8d81e3dc60f993215425b62c1161353f4", + "sha256:1e9dc350fb4c58adc64df3e0703ab076f60aac06e67d48b3848c23647ae4310e", + "sha256:247b9d16535acaa766d03037d8e8fb20866d054d3c7fbf6fd1f993f11fc60ca0", + "sha256:266270c6f6608340f6c9836a0fb9b367be61dde0c9a9a18d5ece97774105ff3e", + "sha256:34b9071c040d6fe45d9826cbbe3727d20d83f1b6110d219b83eb0e2a01d79488", + "sha256:3d7d1f8871998cdff5d2ff6a087e5e1780139abe2838e85b0b46b7ae6cc25399", + "sha256:461e3ae84cd90b30f8d533f07d87c00379644205b1d33a5ea03381edc4b69431", + "sha256:464b423bc2a009088f19bdf1f232299e8b6917963e2b7e1d277da5041f33a779", + "sha256:491b1917afdd8638a05b611a56d46587d5a632cabead889a5440f7c638bc6ed9", + "sha256:4a1b1208102be6e851f20066bf0e7a96b7d48a07c9b0cfe6d0d4545c2f6cadab", + "sha256:575bcaf957a25d1194903a10bc9f316c136c19f24e0985a2b9b5608bdf5dbfe0", + "sha256:5c6b28956b7b232ae801406e529ad7b350d3f09a4fde958dfdf3c0520cdde0dd", + "sha256:5d16edfc3fc09968e09ddffada434b3bf989bf4911535e04eada58469873e28e", + "sha256:5fd1810973a375ca0e097dee059c407913ba35723b111df75671a1976efa04bc", + "sha256:67b7f17679fa62ec82b7e3e611c43a016b887bd64fb933b3ae8638583006c6d6", + "sha256:68ce4788b7d93e47f84edd3f1f95acdcd142ae60bc0e5493bfd120683d2d4316", + "sha256:6d3364b999c62f539cd403f8123ae426da946e142312a514162adb2addd8d808", + "sha256:6e739530c662a8d6d42c37c2ed52a6f0932c2d4a3e8c1f90692ad0ce1274abe0", + "sha256:6fdd887f17c2f4572ce548461e4f96396681212d858cae7bd52ba3310bc6f00f", + "sha256:78e6ad33cf2e2e80c5dfaaa0beec3d61face0fb650557100ee36db808bfa6843", + "sha256:884c3f9d42d7218304bc74a8a7693d172685c84bd7ab2bab1ee567b769696df9", + "sha256:8d8faf05be5ec8e02a4d86f616fc2a0322ff4a4ce26c0f09d9f7fb5330a35c95", + "sha256:999c71939aad2780f003979b25ac5b8f2df651dac7b38fb8ce6c46ba5abe6ae9", + "sha256:99ad97258985328b4f207a5e777c1b44a83bfe7cf1f87b99f9c11d4ee477c4de", + "sha256:9e6c93b5b2dbcedad20a2f18ec22cae47da0d705d454308063421a3b290d9ea4", + "sha256:ab459a1cbbf18e8698399c595a01f6dcc5c138220ca3ea9e7e6126232d102bb4", + "sha256:b69303ceb2e4d4f146bf82fda78891ef7bcd80c41bf16bfca3d0d7eb545448aa", + "sha256:b7caf9b241464c404613512d5594a6e2ff0cc9cb5615c9475cc1d9b514218ae8", + "sha256:b95a225d4948b26a28c08307a60ac00fb8671b14f2047fc5476613252a129776", + "sha256:bd2f1ae63998da104f16a8b788f685e55d65760cd1929518fd94cd682bf03e41", + "sha256:be16975d94c320432657ad2402f6760990cb640c161ae6da1363051805fa8108", + "sha256:ce96dd400486e80ac7d195b2d800b03e3e6a787e2a522bfb83755938465a819e", + "sha256:dbd50d0a0539ae2e96e537553aff6d02c10ed165ef40c65b0e27e744a0f10af8", + "sha256:dd10c26b4eadae44783c45ad6655220426f971c61d9b239e6f7b16d5cdaaa727", + "sha256:ebeac59e9e1eb4b84940d076d9f9a6cec0064e241818bcb6e32124cc5c3e377a" + ], + "markers": "python_version >= '3.9'", + "version": "==1.2.0" + }, + "cycler": { + "hashes": [ + "sha256:85cef7cff222d8644161529808465972e51340599459b8ac3ccbac5a854e0d30", + "sha256:88bb128f02ba341da8ef447245a9e138fae777f6a23943da4540077d3601eb1c" + ], + "markers": "python_version >= '3.8'", + "version": "==0.12.1" + }, + "e": { + "hashes": [ + "sha256:1ce64149fd260237e8f53d5b4863466875594e77341ec47d340c0d2c6d3b5942" + ], + "index": "pypi", + "version": "==1.4.5" + }, + "fonttools": { + "hashes": [ + "sha256:0404faea044577a01bb82d47a8fa4bc7a54067fa7e324785dd65d200d6dd1133", + "sha256:07bc5ea02bb7bc3aa40a1eb0481ce20e8d9b9642a9536cde0218290dd6085828", + "sha256:08877e355d3dde1c11973bb58d4acad1981e6d1140711230a4bfb40b2b937ccc", + "sha256:0af65c720520710cc01c293f9c70bd69684365c6015cc3671db2b7d807fe51f2", + "sha256:0ba0e00620ca28d4ca11fc700806fd69144b463aa3275e1b36e56c7c09915559", + "sha256:1f255ce8ed7556658f6d23f6afd22a6d9bbc3edb9b96c96682124dc487e1bf42", + "sha256:1fac1b7eebfce75ea663e860e7c5b4a8831b858c17acd68263bc156125201abf", + "sha256:263832fae27481d48dfafcc43174644b6706639661e242902ceb30553557e16c", + "sha256:29e89d0e1a7f18bc30f197cfadcbef5a13d99806447c7e245f5667579a808036", + "sha256:33037d9e56e2562c710c8954d0f20d25b8386b397250d65581e544edc9d6b942", + "sha256:33c584c0ef7dc54f5dd4f84082eabd8d09d1871a3d8ca2986b0c0c98165f8e86", + "sha256:36c8865bdb5cfeec88f5028e7e592370a0657b676c6f1d84a2108e0564f90e22", + "sha256:4145f91531fd43c50f9eb893faa08399816bb0b13c425667c48475c9f3a2b9b5", + "sha256:4d418b1fee41a1d14931f7ab4b92dc0bc323b490e41d7a333eec82c9f1780c75", + "sha256:768947008b4dc552d02772e5ebd49e71430a466e2373008ce905f953afea755a", + "sha256:7c7125068e04a70739dad11857a4d47626f2b0bd54de39e8622e89701836eabd", + "sha256:83a0d9336de2cba86d886507dd6e0153df333ac787377325a39a2797ec529814", + "sha256:86eef6aab7fd7c6c8545f3ebd00fd1d6729ca1f63b0cb4d621bccb7d1d1c852b", + "sha256:8fb022d799b96df3eaa27263e9eea306bd3d437cc9aa981820850281a02b6c9a", + "sha256:9d95fa0d22bf4f12d2fb7b07a46070cdfc19ef5a7b1c98bc172bfab5bf0d6844", + "sha256:a974c49a981e187381b9cc2c07c6b902d0079b88ff01aed34695ec5360767034", + "sha256:ac9a745b7609f489faa65e1dc842168c18530874a5f5b742ac3dd79e26bca8bc", + "sha256:af20acbe198a8a790618ee42db192eb128afcdcc4e96d99993aca0b60d1faeb4", + "sha256:af281525e5dd7fa0b39fb1667b8d5ca0e2a9079967e14c4bfe90fd1cd13e0f18", + "sha256:b050d362df50fc6e38ae3954d8c29bf2da52be384649ee8245fdb5186b620836", + "sha256:b44a52b8e6244b6548851b03b2b377a9702b88ddc21dcaf56a15a0393d425cb9", + "sha256:b607ea1e96768d13be26d2b400d10d3ebd1456343eb5eaddd2f47d1c4bd00880", + "sha256:b85ec0bdd7bdaa5c1946398cbb541e90a6dfc51df76dfa88e0aaa41b335940cb", + "sha256:bebd91041dda0d511b0d303180ed36e31f4f54b106b1259b69fade68413aa7ff", + "sha256:c076a9e548521ecc13d944b1d261ff3d7825048c338722a4bd126d22316087b7", + "sha256:cbe61b158deb09cffdd8540dc4a948d6e8f4d5b4f3bf5cd7db09bd6a61fee64e", + "sha256:cdee3ab220283057e7840d5fb768ad4c2ebe65bdba6f75d5d7bf47f4e0ed7d29", + "sha256:ce7033cb61f2bb65d8849658d3786188afd80f53dad8366a7232654804529532", + "sha256:d00af0884c0e65f60dfaf9340e26658836b935052fdd0439952ae42e44fdd2be", + "sha256:d647a0e697e5daa98c87993726da8281c7233d9d4ffe410812a4896c7c57c075", + "sha256:d970ecca0aac90d399e458f0b7a8a597e08f95de021f17785fb68e2dc0b99717", + "sha256:ea329dafb9670ffbdf4dbc3b0e5c264104abcd8441d56de77f06967f032943cb", + "sha256:ebf46e7f01b7af7861310417d7c49591a85d99146fc23a5ba82fdb28af156321", + "sha256:edc0cce355984bb3c1d1e89d6a661934d39586bb32191ebff98c600f8957c63e", + "sha256:f3bbe672df03563d1f3a691ae531f2e31f84061724c319652039e5a70927167e", + "sha256:fc11e5114f3f978d0cea7e9853627935b30d451742eeb4239a81a677bdee6bf6", + "sha256:fdb54b076f25d6b0f0298dc706acee5052de20c83530fa165b60d1f2e9cbe3cb" + ], + "markers": "python_version >= '3.8'", + "version": "==4.49.0" + }, + "idna": { + "hashes": [ + "sha256:9ecdbbd083b06798ae1e86adcbfe8ab1479cf864e4ee30fe4e46a003d12491ca", + "sha256:c05567e9c24a6b9faaa835c4821bad0590fbb9d5779e7caa6e1cc4978e7eb24f" + ], + "markers": "python_version >= '3.5'", + "version": "==3.6" + }, + "ifk-co2-meal-planner": { + "file": "." + }, + "kiwisolver": { + "hashes": [ + "sha256:00bd361b903dc4bbf4eb165f24d1acbee754fce22ded24c3d56eec268658a5cf", + "sha256:040c1aebeda72197ef477a906782b5ab0d387642e93bda547336b8957c61022e", + "sha256:05703cf211d585109fcd72207a31bb170a0f22144d68298dc5e61b3c946518af", + "sha256:06f54715b7737c2fecdbf140d1afb11a33d59508a47bf11bb38ecf21dc9ab79f", + "sha256:0dc9db8e79f0036e8173c466d21ef18e1befc02de8bf8aa8dc0813a6dc8a7046", + "sha256:0f114aa76dc1b8f636d077979c0ac22e7cd8f3493abbab152f20eb8d3cda71f3", + "sha256:11863aa14a51fd6ec28688d76f1735f8f69ab1fabf388851a595d0721af042f5", + "sha256:11c7de8f692fc99816e8ac50d1d1aef4f75126eefc33ac79aac02c099fd3db71", + "sha256:11d011a7574eb3b82bcc9c1a1d35c1d7075677fdd15de527d91b46bd35e935ee", + "sha256:146d14bebb7f1dc4d5fbf74f8a6cb15ac42baadee8912eb84ac0b3b2a3dc6ac3", + "sha256:15568384086b6df3c65353820a4473575dbad192e35010f622c6ce3eebd57af9", + "sha256:19df6e621f6d8b4b9c4d45f40a66839294ff2bb235e64d2178f7522d9170ac5b", + "sha256:1b04139c4236a0f3aff534479b58f6f849a8b351e1314826c2d230849ed48985", + "sha256:210ef2c3a1f03272649aff1ef992df2e724748918c4bc2d5a90352849eb40bea", + "sha256:2270953c0d8cdab5d422bee7d2007f043473f9d2999631c86a223c9db56cbd16", + "sha256:2400873bccc260b6ae184b2b8a4fec0e4082d30648eadb7c3d9a13405d861e89", + "sha256:2a40773c71d7ccdd3798f6489aaac9eee213d566850a9533f8d26332d626b82c", + "sha256:2c5674c4e74d939b9d91dda0fae10597ac7521768fec9e399c70a1f27e2ea2d9", + "sha256:3195782b26fc03aa9c6913d5bad5aeb864bdc372924c093b0f1cebad603dd712", + "sha256:31a82d498054cac9f6d0b53d02bb85811185bcb477d4b60144f915f3b3126342", + "sha256:32d5cf40c4f7c7b3ca500f8985eb3fb3a7dfc023215e876f207956b5ea26632a", + "sha256:346f5343b9e3f00b8db8ba359350eb124b98c99efd0b408728ac6ebf38173958", + "sha256:378a214a1e3bbf5ac4a8708304318b4f890da88c9e6a07699c4ae7174c09a68d", + "sha256:39b42c68602539407884cf70d6a480a469b93b81b7701378ba5e2328660c847a", + "sha256:3a2b053a0ab7a3960c98725cfb0bf5b48ba82f64ec95fe06f1d06c99b552e130", + "sha256:3aba7311af82e335dd1e36ffff68aaca609ca6290c2cb6d821a39aa075d8e3ff", + "sha256:3cd32d6c13807e5c66a7cbb79f90b553642f296ae4518a60d8d76243b0ad2898", + "sha256:3edd2fa14e68c9be82c5b16689e8d63d89fe927e56debd6e1dbce7a26a17f81b", + "sha256:4c380469bd3f970ef677bf2bcba2b6b0b4d5c75e7a020fb863ef75084efad66f", + "sha256:4e66e81a5779b65ac21764c295087de82235597a2293d18d943f8e9e32746265", + "sha256:53abb58632235cd154176ced1ae8f0d29a6657aa1aa9decf50b899b755bc2b93", + "sha256:5794cf59533bc3f1b1c821f7206a3617999db9fbefc345360aafe2e067514929", + "sha256:59415f46a37f7f2efeec758353dd2eae1b07640d8ca0f0c42548ec4125492635", + "sha256:59ec7b7c7e1a61061850d53aaf8e93db63dce0c936db1fda2658b70e4a1be709", + "sha256:59edc41b24031bc25108e210c0def6f6c2191210492a972d585a06ff246bb79b", + "sha256:5a580c91d686376f0f7c295357595c5a026e6cbc3d77b7c36e290201e7c11ecb", + "sha256:5b94529f9b2591b7af5f3e0e730a4e0a41ea174af35a4fd067775f9bdfeee01a", + "sha256:5c7b3b3a728dc6faf3fc372ef24f21d1e3cee2ac3e9596691d746e5a536de920", + "sha256:5c90ae8c8d32e472be041e76f9d2f2dbff4d0b0be8bd4041770eddb18cf49a4e", + "sha256:5e7139af55d1688f8b960ee9ad5adafc4ac17c1c473fe07133ac092310d76544", + "sha256:5ff5cf3571589b6d13bfbfd6bcd7a3f659e42f96b5fd1c4830c4cf21d4f5ef45", + "sha256:620ced262a86244e2be10a676b646f29c34537d0d9cc8eb26c08f53d98013390", + "sha256:6512cb89e334e4700febbffaaa52761b65b4f5a3cf33f960213d5656cea36a77", + "sha256:6c08e1312a9cf1074d17b17728d3dfce2a5125b2d791527f33ffbe805200a355", + "sha256:6c3bd3cde54cafb87d74d8db50b909705c62b17c2099b8f2e25b461882e544ff", + "sha256:6ef7afcd2d281494c0a9101d5c571970708ad911d028137cd558f02b851c08b4", + "sha256:7269d9e5f1084a653d575c7ec012ff57f0c042258bf5db0954bf551c158466e7", + "sha256:72d40b33e834371fd330fb1472ca19d9b8327acb79a5821d4008391db8e29f20", + "sha256:74d1b44c6cfc897df648cc9fdaa09bc3e7679926e6f96df05775d4fb3946571c", + "sha256:74db36e14a7d1ce0986fa104f7d5637aea5c82ca6326ed0ec5694280942d1162", + "sha256:763773d53f07244148ccac5b084da5adb90bfaee39c197554f01b286cf869228", + "sha256:76c6a5964640638cdeaa0c359382e5703e9293030fe730018ca06bc2010c4437", + "sha256:76d9289ed3f7501012e05abb8358bbb129149dbd173f1f57a1bf1c22d19ab7cc", + "sha256:7931d8f1f67c4be9ba1dd9c451fb0eeca1a25b89e4d3f89e828fe12a519b782a", + "sha256:7b8b454bac16428b22560d0a1cf0a09875339cab69df61d7805bf48919415901", + "sha256:7e5bab140c309cb3a6ce373a9e71eb7e4873c70c2dda01df6820474f9889d6d4", + "sha256:83d78376d0d4fd884e2c114d0621624b73d2aba4e2788182d286309ebdeed770", + "sha256:852542f9481f4a62dbb5dd99e8ab7aedfeb8fb6342349a181d4036877410f525", + "sha256:85267bd1aa8880a9c88a8cb71e18d3d64d2751a790e6ca6c27b8ccc724bcd5ad", + "sha256:88a2df29d4724b9237fc0c6eaf2a1adae0cdc0b3e9f4d8e7dc54b16812d2d81a", + "sha256:88b9f257ca61b838b6f8094a62418421f87ac2a1069f7e896c36a7d86b5d4c29", + "sha256:8ab3919a9997ab7ef2fbbed0cc99bb28d3c13e6d4b1ad36e97e482558a91be90", + "sha256:92dea1ffe3714fa8eb6a314d2b3c773208d865a0e0d35e713ec54eea08a66250", + "sha256:9407b6a5f0d675e8a827ad8742e1d6b49d9c1a1da5d952a67d50ef5f4170b18d", + "sha256:9408acf3270c4b6baad483865191e3e582b638b1654a007c62e3efe96f09a9a3", + "sha256:955e8513d07a283056b1396e9a57ceddbd272d9252c14f154d450d227606eb54", + "sha256:9db8ea4c388fdb0f780fe91346fd438657ea602d58348753d9fb265ce1bca67f", + "sha256:9eaa8b117dc8337728e834b9c6e2611f10c79e38f65157c4c38e9400286f5cb1", + "sha256:a51a263952b1429e429ff236d2f5a21c5125437861baeed77f5e1cc2d2c7c6da", + "sha256:a6aa6315319a052b4ee378aa171959c898a6183f15c1e541821c5c59beaa0238", + "sha256:aa12042de0171fad672b6c59df69106d20d5596e4f87b5e8f76df757a7c399aa", + "sha256:aaf7be1207676ac608a50cd08f102f6742dbfc70e8d60c4db1c6897f62f71523", + "sha256:b0157420efcb803e71d1b28e2c287518b8808b7cf1ab8af36718fd0a2c453eb0", + "sha256:b3f7e75f3015df442238cca659f8baa5f42ce2a8582727981cbfa15fee0ee205", + "sha256:b9098e0049e88c6a24ff64545cdfc50807818ba6c1b739cae221bbbcbc58aad3", + "sha256:ba55dce0a9b8ff59495ddd050a0225d58bd0983d09f87cfe2b6aec4f2c1234e4", + "sha256:bb86433b1cfe686da83ce32a9d3a8dd308e85c76b60896d58f082136f10bffac", + "sha256:bbea0db94288e29afcc4c28afbf3a7ccaf2d7e027489c449cf7e8f83c6346eb9", + "sha256:bbf1d63eef84b2e8c89011b7f2235b1e0bf7dacc11cac9431fc6468e99ac77fb", + "sha256:c7940c1dc63eb37a67721b10d703247552416f719c4188c54e04334321351ced", + "sha256:c9bf3325c47b11b2e51bca0824ea217c7cd84491d8ac4eefd1e409705ef092bd", + "sha256:cdc8a402aaee9a798b50d8b827d7ecf75edc5fb35ea0f91f213ff927c15f4ff0", + "sha256:ceec1a6bc6cab1d6ff5d06592a91a692f90ec7505d6463a88a52cc0eb58545da", + "sha256:cfe6ab8da05c01ba6fbea630377b5da2cd9bcbc6338510116b01c1bc939a2c18", + "sha256:d099e745a512f7e3bbe7249ca835f4d357c586d78d79ae8f1dcd4d8adeb9bda9", + "sha256:d0ef46024e6a3d79c01ff13801cb19d0cad7fd859b15037aec74315540acc276", + "sha256:d2e5a98f0ec99beb3c10e13b387f8db39106d53993f498b295f0c914328b1333", + "sha256:da4cfb373035def307905d05041c1d06d8936452fe89d464743ae7fb8371078b", + "sha256:da802a19d6e15dffe4b0c24b38b3af68e6c1a68e6e1d8f30148c83864f3881db", + "sha256:dced8146011d2bc2e883f9bd68618b8247387f4bbec46d7392b3c3b032640126", + "sha256:dfdd7c0b105af050eb3d64997809dc21da247cf44e63dc73ff0fd20b96be55a9", + "sha256:e368f200bbc2e4f905b8e71eb38b3c04333bddaa6a2464a6355487b02bb7fb09", + "sha256:e391b1f0a8a5a10ab3b9bb6afcfd74f2175f24f8975fb87ecae700d1503cdee0", + "sha256:e57e563a57fb22a142da34f38acc2fc1a5c864bc29ca1517a88abc963e60d6ec", + "sha256:e5d706eba36b4c4d5bc6c6377bb6568098765e990cfc21ee16d13963fab7b3e7", + "sha256:ec20916e7b4cbfb1f12380e46486ec4bcbaa91a9c448b97023fde0d5bbf9e4ff", + "sha256:f1d072c2eb0ad60d4c183f3fb44ac6f73fb7a8f16a2694a91f988275cbf352f9", + "sha256:f846c260f483d1fd217fe5ed7c173fb109efa6b1fc8381c8b7552c5781756192", + "sha256:f91de7223d4c7b793867797bacd1ee53bfe7359bd70d27b7b58a04efbb9436c8", + "sha256:faae4860798c31530dd184046a900e652c95513796ef51a12bc086710c2eec4d", + "sha256:fc579bf0f502e54926519451b920e875f433aceb4624a3646b3252b5caa9e0b6", + "sha256:fcc700eadbbccbf6bc1bcb9dbe0786b4b1cb91ca0dcda336eef5c2beed37b797", + "sha256:fd32ea360bcbb92d28933fc05ed09bffcb1704ba3fc7942e81db0fd4f81a7892", + "sha256:fdb7adb641a0d13bdcd4ef48e062363d8a9ad4a182ac7647ec88f695e719ae9f" + ], + "markers": "python_version >= '3.7'", + "version": "==1.4.5" + }, + "matplotlib": { + "hashes": [ + "sha256:01a978b871b881ee76017152f1f1a0cbf6bd5f7b8ff8c96df0df1bd57d8755a1", + "sha256:03f9d160a29e0b65c0790bb07f4f45d6a181b1ac33eb1bb0dd225986450148f0", + "sha256:091275d18d942cf1ee9609c830a1bc36610607d8223b1b981c37d5c9fc3e46a4", + "sha256:09796f89fb71a0c0e1e2f4bdaf63fb2cefc84446bb963ecdeb40dfee7dfa98c7", + "sha256:0f4fc5d72b75e2c18e55eb32292659cf731d9d5b312a6eb036506304f4675630", + "sha256:172f4d0fbac3383d39164c6caafd3255ce6fa58f08fc392513a0b1d3b89c4f89", + "sha256:1b0f3b8ea0e99e233a4bcc44590f01604840d833c280ebb8fe5554fd3e6cfe8d", + "sha256:3773002da767f0a9323ba1a9b9b5d00d6257dbd2a93107233167cfb581f64717", + "sha256:46a569130ff53798ea5f50afce7406e91fdc471ca1e0e26ba976a8c734c9427a", + "sha256:4c318c1e95e2f5926fba326f68177dee364aa791d6df022ceb91b8221bd0a627", + "sha256:4e208f46cf6576a7624195aa047cb344a7f802e113bb1a06cfd4bee431de5e31", + "sha256:533b0e3b0c6768eef8cbe4b583731ce25a91ab54a22f830db2b031e83cca9213", + "sha256:5864bdd7da445e4e5e011b199bb67168cdad10b501750367c496420f2ad00843", + "sha256:5ba9cbd8ac6cf422f3102622b20f8552d601bf8837e49a3afed188d560152788", + "sha256:6f9c6976748a25e8b9be51ea028df49b8e561eed7809146da7a47dbecebab367", + "sha256:7c48d9e221b637c017232e3760ed30b4e8d5dfd081daf327e829bf2a72c731b4", + "sha256:830f00640c965c5b7f6bc32f0d4ce0c36dfe0379f7dd65b07a00c801713ec40a", + "sha256:9a5430836811b7652991939012f43d2808a2db9b64ee240387e8c43e2e5578c8", + "sha256:aa11b3c6928a1e496c1a79917d51d4cd5d04f8a2e75f21df4949eeefdf697f4b", + "sha256:b78e4f2cedf303869b782071b55fdde5987fda3038e9d09e58c91cc261b5ad18", + "sha256:b9576723858a78751d5aacd2497b8aef29ffea6d1c95981505877f7ac28215c6", + "sha256:bddfb1db89bfaa855912261c805bd0e10218923cc262b9159a49c29a7a1c1afa", + "sha256:c7d36c2209d9136cd8e02fab1c0ddc185ce79bc914c45054a9f514e44c787917", + "sha256:d1095fecf99eeb7384dabad4bf44b965f929a5f6079654b681193edf7169ec20", + "sha256:d7b1704a530395aaf73912be741c04d181f82ca78084fbd80bc737be04848331", + "sha256:d86593ccf546223eb75a39b44c32788e6f6440d13cfc4750c1c15d0fcb850b63", + "sha256:deaed9ad4da0b1aea77fe0aa0cebb9ef611c70b3177be936a95e5d01fa05094f", + "sha256:ef8345b48e95cee45ff25192ed1f4857273117917a4dcd48e3905619bcd9c9b8" + ], + "markers": "python_version >= '3.9'", + "version": "==3.8.2" + }, + "mypy-extensions": { + "hashes": [ + "sha256:4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d", + "sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782" + ], + "markers": "python_version >= '3.5'", + "version": "==1.0.0" + }, + "numpy": { + "hashes": [ + "sha256:03a8c78d01d9781b28a6989f6fa1bb2c4f2d51201cf99d3dd875df6fbd96b23b", + "sha256:08beddf13648eb95f8d867350f6a018a4be2e5ad54c8d8caed89ebca558b2818", + "sha256:1af303d6b2210eb850fcf03064d364652b7120803a0b872f5211f5234b399f20", + "sha256:1dda2e7b4ec9dd512f84935c5f126c8bd8b9f2fc001e9f54af255e8c5f16b0e0", + "sha256:2a02aba9ed12e4ac4eb3ea9421c420301a0c6460d9830d74a9df87efa4912010", + "sha256:2e4ee3380d6de9c9ec04745830fd9e2eccb3e6cf790d39d7b98ffd19b0dd754a", + "sha256:3373d5d70a5fe74a2c1bb6d2cfd9609ecf686d47a2d7b1d37a8f3b6bf6003aea", + "sha256:47711010ad8555514b434df65f7d7b076bb8261df1ca9bb78f53d3b2db02e95c", + "sha256:4c66707fabe114439db9068ee468c26bbdf909cac0fb58686a42a24de1760c71", + "sha256:50193e430acfc1346175fcbdaa28ffec49947a06918b7b92130744e81e640110", + "sha256:52b8b60467cd7dd1e9ed082188b4e6bb35aa5cdd01777621a1658910745b90be", + "sha256:60dedbb91afcbfdc9bc0b1f3f402804070deed7392c23eb7a7f07fa857868e8a", + "sha256:62b8e4b1e28009ef2846b4c7852046736bab361f7aeadeb6a5b89ebec3c7055a", + "sha256:666dbfb6ec68962c033a450943ded891bed2d54e6755e35e5835d63f4f6931d5", + "sha256:675d61ffbfa78604709862923189bad94014bef562cc35cf61d3a07bba02a7ed", + "sha256:679b0076f67ecc0138fd2ede3a8fd196dddc2ad3254069bcb9faf9a79b1cebcd", + "sha256:7349ab0fa0c429c82442a27a9673fc802ffdb7c7775fad780226cb234965e53c", + "sha256:7ab55401287bfec946ced39700c053796e7cc0e3acbef09993a9ad2adba6ca6e", + "sha256:7e50d0a0cc3189f9cb0aeb3a6a6af18c16f59f004b866cd2be1c14b36134a4a0", + "sha256:95a7476c59002f2f6c590b9b7b998306fba6a5aa646b1e22ddfeaf8f78c3a29c", + "sha256:96ff0b2ad353d8f990b63294c8986f1ec3cb19d749234014f4e7eb0112ceba5a", + "sha256:9fad7dcb1aac3c7f0584a5a8133e3a43eeb2fe127f47e3632d43d677c66c102b", + "sha256:9ff0f4f29c51e2803569d7a51c2304de5554655a60c5d776e35b4a41413830d0", + "sha256:a354325ee03388678242a4d7ebcd08b5c727033fcff3b2f536aea978e15ee9e6", + "sha256:a4abb4f9001ad2858e7ac189089c42178fcce737e4169dc61321660f1a96c7d2", + "sha256:ab47dbe5cc8210f55aa58e4805fe224dac469cde56b9f731a4c098b91917159a", + "sha256:afedb719a9dcfc7eaf2287b839d8198e06dcd4cb5d276a3df279231138e83d30", + "sha256:b3ce300f3644fb06443ee2222c2201dd3a89ea6040541412b8fa189341847218", + "sha256:b97fe8060236edf3662adfc2c633f56a08ae30560c56310562cb4f95500022d5", + "sha256:bfe25acf8b437eb2a8b2d49d443800a5f18508cd811fea3181723922a8a82b07", + "sha256:cd25bcecc4974d09257ffcd1f098ee778f7834c3ad767fe5db785be9a4aa9cb2", + "sha256:d209d8969599b27ad20994c8e41936ee0964e6da07478d6c35016bc386b66ad4", + "sha256:d5241e0a80d808d70546c697135da2c613f30e28251ff8307eb72ba696945764", + "sha256:edd8b5fe47dab091176d21bb6de568acdd906d1887a4584a15a9a96a1dca06ef", + "sha256:f870204a840a60da0b12273ef34f7051e98c3b5961b61b0c2c1be6dfd64fbcd3", + "sha256:ffa75af20b44f8dba823498024771d5ac50620e6915abac414251bd971b4529f" + ], + "markers": "python_version >= '3.9'", + "version": "==1.26.4" + }, + "packaging": { + "hashes": [ + "sha256:048fb0e9405036518eaaf48a55953c750c11e1a1b68e0dd1a9d62ed0c092cfc5", + "sha256:8c491190033a9af7e1d931d0b5dacc2ef47509b34dd0de67ed209b5203fc88c7" + ], + "markers": "python_version >= '3.7'", + "version": "==23.2" + }, + "pandas": { + "hashes": [ + "sha256:159205c99d7a5ce89ecfc37cb08ed179de7783737cea403b295b5eda8e9c56d1", + "sha256:20404d2adefe92aed3b38da41d0847a143a09be982a31b85bc7dd565bdba0f4e", + "sha256:2707514a7bec41a4ab81f2ccce8b382961a29fbe9492eab1305bb075b2b1ff4f", + "sha256:30b83f7c3eb217fb4d1b494a57a2fda5444f17834f5df2de6b2ffff68dc3c8e2", + "sha256:38e0b4fc3ddceb56ec8a287313bc22abe17ab0eb184069f08fc6a9352a769b18", + "sha256:3de918a754bbf2da2381e8a3dcc45eede8cd7775b047b923f9006d5f876802ae", + "sha256:52826b5f4ed658fa2b729264d63f6732b8b29949c7fd234510d57c61dbeadfcd", + "sha256:57abcaeda83fb80d447f28ab0cc7b32b13978f6f733875ebd1ed14f8fbc0f4ab", + "sha256:5a946f210383c7e6d16312d30b238fd508d80d927014f3b33fb5b15c2f895430", + "sha256:736da9ad4033aeab51d067fc3bd69a0ba36f5a60f66a527b3d72e2030e63280a", + "sha256:761cb99b42a69005dec2b08854fb1d4888fdf7b05db23a8c5a099e4b886a2106", + "sha256:7ea3ee3f125032bfcade3a4cf85131ed064b4f8dd23e5ce6fa16473e48ebcaf5", + "sha256:8108ee1712bb4fa2c16981fba7e68b3f6ea330277f5ca34fa8d557e986a11670", + "sha256:85793cbdc2d5bc32620dc8ffa715423f0c680dacacf55056ba13454a5be5de88", + "sha256:8ce2fbc8d9bf303ce54a476116165220a1fedf15985b09656b4b4275300e920b", + "sha256:9f66419d4a41132eb7e9a73dcec9486cf5019f52d90dd35547af11bc58f8637d", + "sha256:a146b9dcacc3123aa2b399df1a284de5f46287a4ab4fbfc237eac98a92ebcb71", + "sha256:a1b438fa26b208005c997e78672f1aa8138f67002e833312e6230f3e57fa87d5", + "sha256:a20628faaf444da122b2a64b1e5360cde100ee6283ae8effa0d8745153809a2e", + "sha256:a41d06f308a024981dcaa6c41f2f2be46a6b186b902c94c2674e8cb5c42985bc", + "sha256:a626795722d893ed6aacb64d2401d017ddc8a2341b49e0384ab9bf7112bdec30", + "sha256:bde2bc699dbd80d7bc7f9cab1e23a95c4375de615860ca089f34e7c64f4a8de7", + "sha256:cfd6c2491dc821b10c716ad6776e7ab311f7df5d16038d0b7458bc0b67dc10f3", + "sha256:e60f1f7dba3c2d5ca159e18c46a34e7ca7247a73b5dd1a22b6d59707ed6b899a", + "sha256:eb1e1f3861ea9132b32f2133788f3b14911b68102d562715d71bd0013bc45440", + "sha256:eb61dc8567b798b969bcc1fc964788f5a68214d333cade8319c7ab33e2b5d88a", + "sha256:f5be5d03ea2073627e7111f61b9f1f0d9625dc3c4d8dda72cc827b0c58a1d042", + "sha256:f9670b3ac00a387620489dfc1bca66db47a787f4e55911f1293063a78b108df1", + "sha256:fbc1b53c0e1fdf16388c33c3cca160f798d38aea2978004dd3f4d3dec56454c9" + ], + "markers": "python_version >= '3.9'", + "version": "==2.2.0" + }, + "pathspec": { + "hashes": [ + "sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08", + "sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712" + ], + "markers": "python_version >= '3.8'", + "version": "==0.12.1" + }, + "pillow": { + "hashes": [ + "sha256:0304004f8067386b477d20a518b50f3fa658a28d44e4116970abfcd94fac34a8", + "sha256:0689b5a8c5288bc0504d9fcee48f61a6a586b9b98514d7d29b840143d6734f39", + "sha256:0eae2073305f451d8ecacb5474997c08569fb4eb4ac231ffa4ad7d342fdc25ac", + "sha256:0fb3e7fc88a14eacd303e90481ad983fd5b69c761e9e6ef94c983f91025da869", + "sha256:11fa2e5984b949b0dd6d7a94d967743d87c577ff0b83392f17cb3990d0d2fd6e", + "sha256:127cee571038f252a552760076407f9cff79761c3d436a12af6000cd182a9d04", + "sha256:154e939c5f0053a383de4fd3d3da48d9427a7e985f58af8e94d0b3c9fcfcf4f9", + "sha256:15587643b9e5eb26c48e49a7b33659790d28f190fc514a322d55da2fb5c2950e", + "sha256:170aeb00224ab3dc54230c797f8404507240dd868cf52066f66a41b33169bdbe", + "sha256:1b5e1b74d1bd1b78bc3477528919414874748dd363e6272efd5abf7654e68bef", + "sha256:1da3b2703afd040cf65ec97efea81cfba59cdbed9c11d8efc5ab09df9509fc56", + "sha256:1e23412b5c41e58cec602f1135c57dfcf15482013ce6e5f093a86db69646a5aa", + "sha256:2247178effb34a77c11c0e8ac355c7a741ceca0a732b27bf11e747bbc950722f", + "sha256:257d8788df5ca62c980314053197f4d46eefedf4e6175bc9412f14412ec4ea2f", + "sha256:3031709084b6e7852d00479fd1d310b07d0ba82765f973b543c8af5061cf990e", + "sha256:322209c642aabdd6207517e9739c704dc9f9db943015535783239022002f054a", + "sha256:322bdf3c9b556e9ffb18f93462e5f749d3444ce081290352c6070d014c93feb2", + "sha256:33870dc4653c5017bf4c8873e5488d8f8d5f8935e2f1fb9a2208c47cdd66efd2", + "sha256:35bb52c37f256f662abdfa49d2dfa6ce5d93281d323a9af377a120e89a9eafb5", + "sha256:3c31822339516fb3c82d03f30e22b1d038da87ef27b6a78c9549888f8ceda39a", + "sha256:3eedd52442c0a5ff4f887fab0c1c0bb164d8635b32c894bc1faf4c618dd89df2", + "sha256:3ff074fc97dd4e80543a3e91f69d58889baf2002b6be64347ea8cf5533188213", + "sha256:47c0995fc4e7f79b5cfcab1fc437ff2890b770440f7696a3ba065ee0fd496563", + "sha256:49d9ba1ed0ef3e061088cd1e7538a0759aab559e2e0a80a36f9fd9d8c0c21591", + "sha256:51f1a1bffc50e2e9492e87d8e09a17c5eea8409cda8d3f277eb6edc82813c17c", + "sha256:52a50aa3fb3acb9cf7213573ef55d31d6eca37f5709c69e6858fe3bc04a5c2a2", + "sha256:54f1852cd531aa981bc0965b7d609f5f6cc8ce8c41b1139f6ed6b3c54ab82bfb", + "sha256:609448742444d9290fd687940ac0b57fb35e6fd92bdb65386e08e99af60bf757", + "sha256:69ffdd6120a4737710a9eee73e1d2e37db89b620f702754b8f6e62594471dee0", + "sha256:6fad5ff2f13d69b7e74ce5b4ecd12cc0ec530fcee76356cac6742785ff71c452", + "sha256:7049e301399273a0136ff39b84c3678e314f2158f50f517bc50285fb5ec847ad", + "sha256:70c61d4c475835a19b3a5aa42492409878bbca7438554a1f89d20d58a7c75c01", + "sha256:716d30ed977be8b37d3ef185fecb9e5a1d62d110dfbdcd1e2a122ab46fddb03f", + "sha256:753cd8f2086b2b80180d9b3010dd4ed147efc167c90d3bf593fe2af21265e5a5", + "sha256:773efe0603db30c281521a7c0214cad7836c03b8ccff897beae9b47c0b657d61", + "sha256:7823bdd049099efa16e4246bdf15e5a13dbb18a51b68fa06d6c1d4d8b99a796e", + "sha256:7c8f97e8e7a9009bcacbe3766a36175056c12f9a44e6e6f2d5caad06dcfbf03b", + "sha256:823ef7a27cf86df6597fa0671066c1b596f69eba53efa3d1e1cb8b30f3533068", + "sha256:8373c6c251f7ef8bda6675dd6d2b3a0fcc31edf1201266b5cf608b62a37407f9", + "sha256:83b2021f2ade7d1ed556bc50a399127d7fb245e725aa0113ebd05cfe88aaf588", + "sha256:870ea1ada0899fd0b79643990809323b389d4d1d46c192f97342eeb6ee0b8483", + "sha256:8d12251f02d69d8310b046e82572ed486685c38f02176bd08baf216746eb947f", + "sha256:9c23f307202661071d94b5e384e1e1dc7dfb972a28a2310e4ee16103e66ddb67", + "sha256:9d189550615b4948f45252d7f005e53c2040cea1af5b60d6f79491a6e147eef7", + "sha256:a086c2af425c5f62a65e12fbf385f7c9fcb8f107d0849dba5839461a129cf311", + "sha256:a2b56ba36e05f973d450582fb015594aaa78834fefe8dfb8fcd79b93e64ba4c6", + "sha256:aebb6044806f2e16ecc07b2a2637ee1ef67a11840a66752751714a0d924adf72", + "sha256:b1b3020d90c2d8e1dae29cf3ce54f8094f7938460fb5ce8bc5c01450b01fbaf6", + "sha256:b4b6b1e20608493548b1f32bce8cca185bf0480983890403d3b8753e44077129", + "sha256:b6f491cdf80ae540738859d9766783e3b3c8e5bd37f5dfa0b76abdecc5081f13", + "sha256:b792a349405fbc0163190fde0dc7b3fef3c9268292586cf5645598b48e63dc67", + "sha256:b7c2286c23cd350b80d2fc9d424fc797575fb16f854b831d16fd47ceec078f2c", + "sha256:babf5acfede515f176833ed6028754cbcd0d206f7f614ea3447d67c33be12516", + "sha256:c365fd1703040de1ec284b176d6af5abe21b427cb3a5ff68e0759e1e313a5e7e", + "sha256:c4225f5220f46b2fde568c74fca27ae9771536c2e29d7c04f4fb62c83275ac4e", + "sha256:c570f24be1e468e3f0ce7ef56a89a60f0e05b30a3669a459e419c6eac2c35364", + "sha256:c6dafac9e0f2b3c78df97e79af707cdc5ef8e88208d686a4847bab8266870023", + "sha256:c8de2789052ed501dd829e9cae8d3dcce7acb4777ea4a479c14521c942d395b1", + "sha256:cb28c753fd5eb3dd859b4ee95de66cc62af91bcff5db5f2571d32a520baf1f04", + "sha256:cb4c38abeef13c61d6916f264d4845fab99d7b711be96c326b84df9e3e0ff62d", + "sha256:d1b35bcd6c5543b9cb547dee3150c93008f8dd0f1fef78fc0cd2b141c5baf58a", + "sha256:d8e6aeb9201e655354b3ad049cb77d19813ad4ece0df1249d3c793de3774f8c7", + "sha256:d8ecd059fdaf60c1963c58ceb8997b32e9dc1b911f5da5307aab614f1ce5c2fb", + "sha256:da2b52b37dad6d9ec64e653637a096905b258d2fc2b984c41ae7d08b938a67e4", + "sha256:e87f0b2c78157e12d7686b27d63c070fd65d994e8ddae6f328e0dcf4a0cd007e", + "sha256:edca80cbfb2b68d7b56930b84a0e45ae1694aeba0541f798e908a49d66b837f1", + "sha256:f379abd2f1e3dddb2b61bc67977a6b5a0a3f7485538bcc6f39ec76163891ee48", + "sha256:fe4c15f6c9285dc54ce6553a3ce908ed37c8f3825b5a51a15c91442bb955b868" + ], + "markers": "python_version >= '3.8'", + "version": "==10.2.0" + }, + "platformdirs": { + "hashes": [ + "sha256:0614df2a2f37e1a662acbd8e2b25b92ccf8632929bc6d43467e17fe89c75e068", + "sha256:ef0cc731df711022c174543cb70a9b5bd22e5a9337c8624ef2c2ceb8ddad8768" + ], + "markers": "python_version >= '3.8'", + "version": "==4.2.0" + }, + "pyarrow": { + "hashes": [ + "sha256:001fca027738c5f6be0b7a3159cc7ba16a5c52486db18160909a0831b063c4e4", + "sha256:003d680b5e422d0204e7287bb3fa775b332b3fce2996aa69e9adea23f5c8f970", + "sha256:036a7209c235588c2f07477fe75c07e6caced9b7b61bb897c8d4e52c4b5f9555", + "sha256:07eb7f07dc9ecbb8dace0f58f009d3a29ee58682fcdc91337dfeb51ea618a75b", + "sha256:0a524532fd6dd482edaa563b686d754c70417c2f72742a8c990b322d4c03a15d", + "sha256:0ca9cb0039923bec49b4fe23803807e4ef39576a2bec59c32b11296464623dc2", + "sha256:17d53a9d1b2b5bd7d5e4cd84d018e2a45bc9baaa68f7e6e3ebed45649900ba99", + "sha256:19a8918045993349b207de72d4576af0191beef03ea655d8bdb13762f0cd6eac", + "sha256:1f500956a49aadd907eaa21d4fff75f73954605eaa41f61cb94fb008cf2e00c6", + "sha256:2bd8a0e5296797faf9a3294e9fa2dc67aa7f10ae2207920dbebb785c77e9dbe5", + "sha256:47af7036f64fce990bb8a5948c04722e4e3ea3e13b1007ef52dfe0aa8f23cf7f", + "sha256:5b8d43e31ca16aa6e12402fcb1e14352d0d809de70edd185c7650fe80e0769e3", + "sha256:5db1769e5d0a77eb92344c7382d6543bea1164cca3704f84aa44e26c67e320fb", + "sha256:60a6bdb314affa9c2e0d5dddf3d9cbb9ef4a8dddaa68669975287d47ece67642", + "sha256:66958fd1771a4d4b754cd385835e66a3ef6b12611e001d4e5edfcef5f30391e2", + "sha256:6eda9e117f0402dfcd3cd6ec9bfee89ac5071c48fc83a84f3075b60efa96747f", + "sha256:6f87d9c4f09e049c2cade559643424da84c43a35068f2a1c4653dc5b1408a929", + "sha256:85239b9f93278e130d86c0e6bb455dcb66fc3fd891398b9d45ace8799a871a1e", + "sha256:876858f549d540898f927eba4ef77cd549ad8d24baa3207cf1b72e5788b50e83", + "sha256:8780b1a29d3c8b21ba6b191305a2a607de2e30dab399776ff0aa09131e266340", + "sha256:93768ccfff85cf044c418bfeeafce9a8bb0cee091bd8fd19011aff91e58de540", + "sha256:972a0141be402bb18e3201448c8ae62958c9c7923dfaa3b3d4530c835ac81aed", + "sha256:9950a9c9df24090d3d558b43b97753b8f5867fb8e521f29876aa021c52fda351", + "sha256:9a3a6180c0e8f2727e6f1b1c87c72d3254cac909e609f35f22532e4115461177", + "sha256:9ed5a78ed29d171d0acc26a305a4b7f83c122d54ff5270810ac23c75813585e4", + "sha256:c8c287d1d479de8269398b34282e206844abb3208224dbdd7166d580804674b7", + "sha256:d0ec076b32bacb6666e8813a22e6e5a7ef1314c8069d4ff345efa6246bc38593", + "sha256:d1c48648f64aec09accf44140dccb92f4f94394b8d79976c426a5b79b11d4fa7", + "sha256:d31c1d45060180131caf10f0f698e3a782db333a422038bf7fe01dace18b3a31", + "sha256:e2617e3bf9df2a00020dd1c1c6dce5cc343d979efe10bc401c0632b0eef6ef5b", + "sha256:e8ebed6053dbe76883a822d4e8da36860f479d55a762bd9e70d8494aed87113e", + "sha256:f01fc5cf49081426429127aa2d427d9d98e1cb94a32cb961d583a70b7c4504e6", + "sha256:f6ee87fd6892700960d90abb7b17a72a5abb3b64ee0fe8db6c782bcc2d0dc0b4", + "sha256:f75fce89dad10c95f4bf590b765e3ae98bcc5ba9f6ce75adb828a334e26a3d40", + "sha256:fa7cd198280dbd0c988df525e50e35b5d16873e2cdae2aaaa6363cdb64e3eec5", + "sha256:fe0ec198ccc680f6c92723fadcb97b74f07c45ff3fdec9dd765deb04955ccf19" + ], + "markers": "python_version >= '3.8'", + "version": "==15.0.0" + }, + "pyparsing": { + "hashes": [ + "sha256:32c7c0b711493c72ff18a981d24f28aaf9c1fb7ed5e9667c9e84e3db623bdbfb", + "sha256:ede28a1a32462f5a9705e07aea48001a08f7cf81a021585011deba701581a0db" + ], + "markers": "python_full_version >= '3.6.8'", + "version": "==3.1.1" + }, + "python-dateutil": { + "hashes": [ + "sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86", + "sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", + "version": "==2.8.2" + }, + "pytz": { + "hashes": [ + "sha256:2a29735ea9c18baf14b448846bde5a48030ed267578472d8955cd0e7443a9812", + "sha256:328171f4e3623139da4983451950b28e95ac706e13f3f2630a879749e7a8b319" + ], + "version": "==2024.1" + }, + "requests": { + "hashes": [ + "sha256:58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f", + "sha256:942c5a758f98d790eaed1a29cb6eefc7ffb0d1cf7af05c3d2791656dbd6ad1e1" + ], + "markers": "python_version >= '3.7'", + "version": "==2.31.0" + }, + "ruff": { + "hashes": [ + "sha256:0a9efb032855ffb3c21f6405751d5e147b0c6b631e3ca3f6b20f917572b97eb6", + "sha256:0c126da55c38dd917621552ab430213bdb3273bb10ddb67bc4b761989210eb6e", + "sha256:1695700d1e25a99d28f7a1636d85bafcc5030bba9d0578c0781ba1790dbcf51c", + "sha256:1ec49be4fe6ddac0503833f3ed8930528e26d1e60ad35c2446da372d16651ce9", + "sha256:3b65494f7e4bed2e74110dac1f0d17dc8e1f42faaa784e7c58a98e335ec83d7e", + "sha256:5e1439c8f407e4f356470e54cdecdca1bd5439a0673792dbe34a2b0a551a2fe3", + "sha256:5e22676a5b875bd72acd3d11d5fa9075d3a5f53b877fe7b4793e4673499318ba", + "sha256:6a61ea0ff048e06de273b2e45bd72629f470f5da8f71daf09fe481278b175001", + "sha256:940de32dc8853eba0f67f7198b3e79bc6ba95c2edbfdfac2144c8235114d6726", + "sha256:b0c232af3d0bd8f521806223723456ffebf8e323bd1e4e82b0befb20ba18388e", + "sha256:c9d15fc41e6054bfc7200478720570078f0b41c9ae4f010bcc16bd6f4d1aacdd", + "sha256:cc9a91ae137d687f43a44c900e5d95e9617cb37d4c989e462980ba27039d239d", + "sha256:d450b7fbff85913f866a5384d8912710936e2b96da74541c82c1b458472ddb39", + "sha256:d920499b576f6c68295bc04e7b17b6544d9d05f196bb3aac4358792ef6f34325", + "sha256:e62ed7f36b3068a30ba39193a14274cd706bc486fad521276458022f7bccb31d", + "sha256:ecd46e3106850a5c26aee114e562c329f9a1fbe9e4821b008c4404f64ff9ce73", + "sha256:f63d96494eeec2fc70d909393bcd76c69f35334cdbd9e20d089fb3f0640216ca" + ], + "index": "pypi", + "markers": "python_version >= '3.7'", + "version": "==0.2.2" + }, + "six": { + "hashes": [ + "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926", + "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", + "version": "==1.16.0" + }, + "tomli": { + "hashes": [ + "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc", + "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f" + ], + "markers": "python_version < '3.11'", + "version": "==2.0.1" + }, + "typing-extensions": { + "hashes": [ + "sha256:69b1a937c3a517342112fb4c6df7e72fc39a38e7891a5730ed4985b5214b5475", + "sha256:b0abd7c89e8fb96f98db18d86106ff1d90ab692004eb746cf6eda2682f91b3cb" + ], + "markers": "python_version < '3.11'", + "version": "==4.10.0" + }, + "tzdata": { + "hashes": [ + "sha256:2674120f8d891909751c38abcdfd386ac0a5a1127954fbc332af6b5ceae07efd", + "sha256:9068bc196136463f5245e51efda838afa15aaeca9903f49050dfa2679db4d252" + ], + "markers": "python_version >= '2'", + "version": "==2024.1" + }, + "urllib3": { + "hashes": [ + "sha256:450b20ec296a467077128bff42b73080516e71b56ff59a60a02bef2232c4fa9d", + "sha256:d0570876c61ab9e520d776c38acbbb5b05a776d3f9ff98a5c8fd5162a444cf19" + ], + "markers": "python_version >= '3.8'", + "version": "==2.2.1" + } + }, + "develop": { + "asttokens": { + "hashes": [ + "sha256:051ed49c3dcae8913ea7cd08e46a606dba30b79993209636c4875bc1d637bc24", + "sha256:b03869718ba9a6eb027e134bfdf69f38a236d681c83c160d510768af11254ba0" + ], + "version": "==2.4.1" + }, + "comm": { + "hashes": [ + "sha256:0bc91edae1344d39d3661dcbc36937181fdaddb304790458f8b044dbc064b89a", + "sha256:87928485c0dfc0e7976fd89fc1e187023cf587e7c353e4a9b417555b44adf021" + ], + "markers": "python_version >= '3.8'", + "version": "==0.2.1" + }, + "debugpy": { + "hashes": [ + "sha256:016a9fcfc2c6b57f939673c874310d8581d51a0fe0858e7fac4e240c5eb743cb", + "sha256:0de56aba8249c28a300bdb0672a9b94785074eb82eb672db66c8144fff673146", + "sha256:1a9fe0829c2b854757b4fd0a338d93bc17249a3bf69ecf765c61d4c522bb92a8", + "sha256:28acbe2241222b87e255260c76741e1fbf04fdc3b6d094fcf57b6c6f75ce1242", + "sha256:3a79c6f62adef994b2dbe9fc2cc9cc3864a23575b6e387339ab739873bea53d0", + "sha256:3bda0f1e943d386cc7a0e71bfa59f4137909e2ed947fb3946c506e113000f741", + "sha256:3ebb70ba1a6524d19fa7bb122f44b74170c447d5746a503e36adc244a20ac539", + "sha256:58911e8521ca0c785ac7a0539f1e77e0ce2df753f786188f382229278b4cdf23", + "sha256:6df9aa9599eb05ca179fb0b810282255202a66835c6efb1d112d21ecb830ddd3", + "sha256:7a3afa222f6fd3d9dfecd52729bc2e12c93e22a7491405a0ecbf9e1d32d45b39", + "sha256:7eb7bd2b56ea3bedb009616d9e2f64aab8fc7000d481faec3cd26c98a964bcdd", + "sha256:92116039b5500633cc8d44ecc187abe2dfa9b90f7a82bbf81d079fcdd506bae9", + "sha256:a2e658a9630f27534e63922ebf655a6ab60c370f4d2fc5c02a5b19baf4410ace", + "sha256:bfb20cb57486c8e4793d41996652e5a6a885b4d9175dd369045dad59eaacea42", + "sha256:caad2846e21188797a1f17fc09c31b84c7c3c23baf2516fed5b40b378515bbf0", + "sha256:d915a18f0597ef685e88bb35e5d7ab968964b7befefe1aaea1eb5b2640b586c7", + "sha256:dda73bf69ea479c8577a0448f8c707691152e6c4de7f0c4dec5a4bc11dee516e", + "sha256:e38beb7992b5afd9d5244e96ad5fa9135e94993b0c551ceebf3fe1a5d9beb234", + "sha256:edcc9f58ec0fd121a25bc950d4578df47428d72e1a0d66c07403b04eb93bcf98", + "sha256:efd3fdd3f67a7e576dd869c184c5dd71d9aaa36ded271939da352880c012e703", + "sha256:f696d6be15be87aef621917585f9bb94b1dc9e8aced570db1b8a6fc14e8f9b42", + "sha256:fd97ed11a4c7f6d042d320ce03d83b20c3fb40da892f994bc041bbc415d7a099" + ], + "markers": "python_version >= '3.8'", + "version": "==1.8.1" + }, + "decorator": { + "hashes": [ + "sha256:637996211036b6385ef91435e4fae22989472f9d571faba8927ba8253acbc330", + "sha256:b8c3f85900b9dc423225913c5aace94729fe1fa9763b38939a95226f02d37186" + ], + "markers": "python_version >= '3.5'", + "version": "==5.1.1" + }, + "exceptiongroup": { + "hashes": [ + "sha256:4bfd3996ac73b41e9b9628b04e079f193850720ea5945fc96a08633c66912f14", + "sha256:91f5c769735f051a4290d52edd0858999b57e5876e9f85937691bd4c9fa3ed68" + ], + "markers": "python_version < '3.11'", + "version": "==1.2.0" + }, + "executing": { + "hashes": [ + "sha256:35afe2ce3affba8ee97f2d69927fa823b08b472b7b994e36a52a964b93d16147", + "sha256:eac49ca94516ccc753f9fb5ce82603156e590b27525a8bc32cce8ae302eb61bc" + ], + "markers": "python_version >= '3.5'", + "version": "==2.0.1" + }, + "ipykernel": { + "hashes": [ + "sha256:5aa086a4175b0229d4eca211e181fb473ea78ffd9869af36ba7694c947302a21", + "sha256:e14c250d1f9ea3989490225cc1a542781b095a18a19447fcf2b5eaf7d0ac5bd2" + ], + "index": "pypi", + "markers": "python_version >= '3.8'", + "version": "==6.29.3" + }, + "ipython": { + "hashes": [ + "sha256:39c6f9efc079fb19bfb0f17eee903978fe9a290b1b82d68196c641cecb76ea22", + "sha256:869335e8cded62ffb6fac8928e5287a05433d6462e3ebaac25f4216474dd6bc4" + ], + "markers": "python_version >= '3.10'", + "version": "==8.22.1" + }, + "jedi": { + "hashes": [ + "sha256:cf0496f3651bc65d7174ac1b7d043eff454892c708a87d1b683e57b569927ffd", + "sha256:e983c654fe5c02867aef4cdfce5a2fbb4a50adc0af145f70504238f18ef5e7e0" + ], + "markers": "python_version >= '3.6'", + "version": "==0.19.1" + }, + "jupyter-client": { + "hashes": [ + "sha256:0642244bb83b4764ae60d07e010e15f0e2d275ec4e918a8f7b80fbbef3ca60c7", + "sha256:909c474dbe62582ae62b758bca86d6518c85234bdee2d908c778db6d72f39d99" + ], + "markers": "python_version >= '3.8'", + "version": "==8.6.0" + }, + "jupyter-core": { + "hashes": [ + "sha256:c65c82126453a723a2804aa52409930434598fd9d35091d63dfb919d2b765bb7", + "sha256:de61a9d7fc71240f688b2fb5ab659fbb56979458dc66a71decd098e03c79e218" + ], + "markers": "python_version >= '3.8'", + "version": "==5.7.1" + }, + "matplotlib-inline": { + "hashes": [ + "sha256:f1f41aab5328aa5aaea9b16d083b128102f8712542f819fe7e6a420ff581b311", + "sha256:f887e5f10ba98e8d2b150ddcf4702c1e5f8b3a20005eb0f74bfdbd360ee6f304" + ], + "markers": "python_version >= '3.5'", + "version": "==0.1.6" + }, + "nest-asyncio": { + "hashes": [ + "sha256:6f172d5449aca15afd6c646851f4e31e02c598d553a667e38cafa997cfec55fe", + "sha256:87af6efd6b5e897c81050477ef65c62e2b2f35d51703cae01aff2905b1852e1c" + ], + "markers": "python_version >= '3.5'", + "version": "==1.6.0" + }, + "packaging": { + "hashes": [ + "sha256:048fb0e9405036518eaaf48a55953c750c11e1a1b68e0dd1a9d62ed0c092cfc5", + "sha256:8c491190033a9af7e1d931d0b5dacc2ef47509b34dd0de67ed209b5203fc88c7" + ], + "markers": "python_version >= '3.7'", + "version": "==23.2" + }, + "parso": { + "hashes": [ + "sha256:8c07be290bb59f03588915921e29e8a50002acaf2cdc5fa0e0114f91709fafa0", + "sha256:c001d4636cd3aecdaf33cbb40aebb59b094be2a74c556778ef5576c175e19e75" + ], + "markers": "python_version >= '3.6'", + "version": "==0.8.3" + }, + "pexpect": { + "hashes": [ + "sha256:7236d1e080e4936be2dc3e326cec0af72acf9212a7e1d060210e70a47e253523", + "sha256:ee7d41123f3c9911050ea2c2dac107568dc43b2d3b0c7557a33212c398ead30f" + ], + "markers": "sys_platform != 'win32' and sys_platform != 'emscripten'", + "version": "==4.9.0" + }, + "platformdirs": { + "hashes": [ + "sha256:0614df2a2f37e1a662acbd8e2b25b92ccf8632929bc6d43467e17fe89c75e068", + "sha256:ef0cc731df711022c174543cb70a9b5bd22e5a9337c8624ef2c2ceb8ddad8768" + ], + "markers": "python_version >= '3.8'", + "version": "==4.2.0" + }, + "prompt-toolkit": { + "hashes": [ + "sha256:3527b7af26106cbc65a040bcc84839a3566ec1b051bb0bfe953631e704b0ff7d", + "sha256:a11a29cb3bf0a28a387fe5122cdb649816a957cd9261dcedf8c9f1fef33eacf6" + ], + "markers": "python_full_version >= '3.7.0'", + "version": "==3.0.43" + }, + "psutil": { + "hashes": [ + "sha256:02615ed8c5ea222323408ceba16c60e99c3f91639b07da6373fb7e6539abc56d", + "sha256:05806de88103b25903dff19bb6692bd2e714ccf9e668d050d144012055cbca73", + "sha256:26bd09967ae00920df88e0352a91cff1a78f8d69b3ecabbfe733610c0af486c8", + "sha256:27cc40c3493bb10de1be4b3f07cae4c010ce715290a5be22b98493509c6299e2", + "sha256:36f435891adb138ed3c9e58c6af3e2e6ca9ac2f365efe1f9cfef2794e6c93b4e", + "sha256:50187900d73c1381ba1454cf40308c2bf6f34268518b3f36a9b663ca87e65e36", + "sha256:611052c4bc70432ec770d5d54f64206aa7203a101ec273a0cd82418c86503bb7", + "sha256:6be126e3225486dff286a8fb9a06246a5253f4c7c53b475ea5f5ac934e64194c", + "sha256:7d79560ad97af658a0f6adfef8b834b53f64746d45b403f225b85c5c2c140eee", + "sha256:8cb6403ce6d8e047495a701dc7c5bd788add903f8986d523e3e20b98b733e421", + "sha256:8db4c1b57507eef143a15a6884ca10f7c73876cdf5d51e713151c1236a0e68cf", + "sha256:aee678c8720623dc456fa20659af736241f575d79429a0e5e9cf88ae0605cc81", + "sha256:bc56c2a1b0d15aa3eaa5a60c9f3f8e3e565303b465dbf57a1b730e7a2b9844e0", + "sha256:bd1184ceb3f87651a67b2708d4c3338e9b10c5df903f2e3776b62303b26cb631", + "sha256:d06016f7f8625a1825ba3732081d77c94589dca78b7a3fc072194851e88461a4", + "sha256:d16bbddf0693323b8c6123dd804100241da461e41d6e332fb0ba6058f630f8c8" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5'", + "version": "==5.9.8" + }, + "ptyprocess": { + "hashes": [ + "sha256:4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35", + "sha256:5c5d0a3b48ceee0b48485e0c26037c0acd7d29765ca3fbb5cb3831d347423220" + ], + "version": "==0.7.0" + }, + "pure-eval": { + "hashes": [ + "sha256:01eaab343580944bc56080ebe0a674b39ec44a945e6d09ba7db3cb8cec289350", + "sha256:2b45320af6dfaa1750f543d714b6d1c520a1688dec6fd24d339063ce0aaa9ac3" + ], + "version": "==0.2.2" + }, + "pygments": { + "hashes": [ + "sha256:b27c2826c47d0f3219f29554824c30c5e8945175d888647acd804ddd04af846c", + "sha256:da46cec9fd2de5be3a8a784f434e4c4ab670b4ff54d605c4c2717e9d49c4c367" + ], + "markers": "python_version >= '3.7'", + "version": "==2.17.2" + }, + "python-dateutil": { + "hashes": [ + "sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86", + "sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", + "version": "==2.8.2" + }, + "pyzmq": { + "hashes": [ + "sha256:004ff469d21e86f0ef0369717351073e0e577428e514c47c8480770d5e24a565", + "sha256:00a06faa7165634f0cac1abb27e54d7a0b3b44eb9994530b8ec73cf52e15353b", + "sha256:00c48ae2fd81e2a50c3485de1b9d5c7c57cd85dc8ec55683eac16846e57ac979", + "sha256:01171fc48542348cd1a360a4b6c3e7d8f46cdcf53a8d40f84db6707a6768acc1", + "sha256:019744b99da30330798bb37df33549d59d380c78e516e3bab9c9b84f87a9592f", + "sha256:02bbc1a87b76e04fd780b45e7f695471ae6de747769e540da909173d50ff8e2d", + "sha256:02c9087b109070c5ab0b383079fa1b5f797f8d43e9a66c07a4b8b8bdecfd88ee", + "sha256:07cd61a20a535524906595e09344505a9bd46f1da7a07e504b315d41cd42eb07", + "sha256:0806175f2ae5ad4b835ecd87f5f85583316b69f17e97786f7443baaf54b9bb98", + "sha256:09dfe949e83087da88c4a76767df04b22304a682d6154de2c572625c62ad6886", + "sha256:0dabfb10ef897f3b7e101cacba1437bd3a5032ee667b7ead32bbcdd1a8422fe7", + "sha256:0ddd6d71d4ef17ba5a87becf7ddf01b371eaba553c603477679ae817a8d84d75", + "sha256:0f513130c4c361201da9bc69df25a086487250e16b5571ead521b31ff6b02220", + "sha256:0f97bc2f1f13cb16905a5f3e1fbdf100e712d841482b2237484360f8bc4cb3d7", + "sha256:11e70516688190e9c2db14fcf93c04192b02d457b582a1f6190b154691b4c93a", + "sha256:146b9b1f29ead41255387fb07be56dc29639262c0f7344f570eecdcd8d683314", + "sha256:16b726c1f6c2e7625706549f9dbe9b06004dfbec30dbed4bf50cbdfc73e5b32a", + "sha256:1b3cbba2f47062b85fe0ef9de5b987612140a9ba3a9c6d2543c6dec9f7c2ab27", + "sha256:1b9b1f2ad6498445a941d9a4fee096d387fee436e45cc660e72e768d3d8ee611", + "sha256:1ec23bd7b3a893ae676d0e54ad47d18064e6c5ae1fadc2f195143fb27373f7f6", + "sha256:246747b88917e4867e2367b005fc8eefbb4a54b7db363d6c92f89d69abfff4b6", + "sha256:25c2dbb97d38b5ac9fd15586e048ec5eb1e38f3d47fe7d92167b0c77bb3584e9", + "sha256:2c6441e0398c2baacfe5ba30c937d274cfc2dc5b55e82e3749e333aabffde561", + "sha256:2c9a79f1d2495b167119d02be7448bfba57fad2a4207c4f68abc0bab4b92925b", + "sha256:2e2713ef44be5d52dd8b8e2023d706bf66cb22072e97fc71b168e01d25192755", + "sha256:313c3794d650d1fccaaab2df942af9f2c01d6217c846177cfcbc693c7410839e", + "sha256:3516e0b6224cf6e43e341d56da15fd33bdc37fa0c06af4f029f7d7dfceceabbc", + "sha256:359f7f74b5d3c65dae137f33eb2bcfa7ad9ebefd1cab85c935f063f1dbb245cc", + "sha256:39b1067f13aba39d794a24761e385e2eddc26295826530a8c7b6c6c341584289", + "sha256:3c00c9b7d1ca8165c610437ca0c92e7b5607b2f9076f4eb4b095c85d6e680a1d", + "sha256:3c53687dde4d9d473c587ae80cc328e5b102b517447456184b485587ebd18b62", + "sha256:3e124e6b1dd3dfbeb695435dff0e383256655bb18082e094a8dd1f6293114642", + "sha256:4345c9a27f4310afbb9c01750e9461ff33d6fb74cd2456b107525bbeebcb5be3", + "sha256:45999e7f7ed5c390f2e87ece7f6c56bf979fb213550229e711e45ecc7d42ccb8", + "sha256:49151b0efece79f6a79d41a461d78535356136ee70084a1c22532fc6383f4ad0", + "sha256:4cb8fc1f8d69b411b8ec0b5f1ffbcaf14c1db95b6bccea21d83610987435f1a4", + "sha256:4e5837af3e5aaa99a091302df5ee001149baff06ad22b722d34e30df5f0d9097", + "sha256:4e6f689880d5ad87918430957297c975203a082d9a036cc426648fcbedae769b", + "sha256:5074adeacede5f810b7ef39607ee59d94e948b4fd954495bdb072f8c54558181", + "sha256:518efd91c3d8ac9f9b4f7dd0e2b7b8bf1a4fe82a308009016b07eaa48681af82", + "sha256:55875492f820d0eb3417b51d96fea549cde77893ae3790fd25491c5754ea2f68", + "sha256:5a68d491fc20762b630e5db2191dd07ff89834086740f70e978bb2ef2668be08", + "sha256:5dde6751e857910c1339890f3524de74007958557593b9e7e8c5f01cd919f8a7", + "sha256:5e319ed7d6b8f5fad9b76daa0a68497bc6f129858ad956331a5835785761e003", + "sha256:5edac3f57c7ddaacdb4d40f6ef2f9e299471fc38d112f4bc6d60ab9365445fb0", + "sha256:6cc0020b74b2e410287e5942e1e10886ff81ac77789eb20bec13f7ae681f0fdd", + "sha256:6dd0d50bbf9dca1d0bdea219ae6b40f713a3fb477c06ca3714f208fd69e16fd8", + "sha256:7598d2ba821caa37a0f9d54c25164a4fa351ce019d64d0b44b45540950458840", + "sha256:759cfd391a0996345ba94b6a5110fca9c557ad4166d86a6e81ea526c376a01e8", + "sha256:7ae8f354b895cbd85212da245f1a5ad8159e7840e37d78b476bb4f4c3f32a9fe", + "sha256:7b6d09a8962a91151f0976008eb7b29b433a560fde056ec7a3db9ec8f1075438", + "sha256:7c61e346ac34b74028ede1c6b4bcecf649d69b707b3ff9dc0fab453821b04d1e", + "sha256:7f51a7b4ead28d3fca8dda53216314a553b0f7a91ee8fc46a72b402a78c3e43d", + "sha256:82544e0e2d0c1811482d37eef297020a040c32e0687c1f6fc23a75b75db8062c", + "sha256:8807c87fa893527ae8a524c15fc505d9950d5e856f03dae5921b5e9aa3b8783b", + "sha256:889370d5174a741a62566c003ee8ddba4b04c3f09a97b8000092b7ca83ec9c49", + "sha256:8b14c75979ce932c53b79976a395cb2a8cd3aaf14aef75e8c2cb55a330b9b49d", + "sha256:8c5f80e578427d4695adac6fdf4370c14a2feafdc8cb35549c219b90652536ae", + "sha256:8e9f3fabc445d0ce320ea2c59a75fe3ea591fdbdeebec5db6de530dd4b09412e", + "sha256:93f1aa311e8bb912e34f004cf186407a4e90eec4f0ecc0efd26056bf7eda0226", + "sha256:94504ff66f278ab4b7e03e4cba7e7e400cb73bfa9d3d71f58d8972a8dc67e7a6", + "sha256:967668420f36878a3c9ecb5ab33c9d0ff8d054f9c0233d995a6d25b0e95e1b6b", + "sha256:9880078f683466b7f567b8624bfc16cad65077be046b6e8abb53bed4eeb82dd3", + "sha256:99a6b36f95c98839ad98f8c553d8507644c880cf1e0a57fe5e3a3f3969040882", + "sha256:9a18fff090441a40ffda8a7f4f18f03dc56ae73f148f1832e109f9bffa85df15", + "sha256:9add2e5b33d2cd765ad96d5eb734a5e795a0755f7fc49aa04f76d7ddda73fd70", + "sha256:a793ac733e3d895d96f865f1806f160696422554e46d30105807fdc9841b9f7d", + "sha256:a86c2dd76ef71a773e70551a07318b8e52379f58dafa7ae1e0a4be78efd1ff16", + "sha256:a8c1d566344aee826b74e472e16edae0a02e2a044f14f7c24e123002dcff1c05", + "sha256:ac170e9e048b40c605358667aca3d94e98f604a18c44bdb4c102e67070f3ac9b", + "sha256:b264bf2cc96b5bc43ce0e852be995e400376bd87ceb363822e2cb1964fcdc737", + "sha256:b8c8a419dfb02e91b453615c69568442e897aaf77561ee0064d789705ff37a92", + "sha256:bc69c96735ab501419c432110016329bf0dea8898ce16fab97c6d9106dc0b348", + "sha256:bef02cfcbded83473bdd86dd8d3729cd82b2e569b75844fb4ea08fee3c26ae41", + "sha256:c0b5ca88a8928147b7b1e2dfa09f3b6c256bc1135a1338536cbc9ea13d3b7add", + "sha256:cc69949484171cc961e6ecd4a8911b9ce7a0d1f738fcae717177c231bf77437b", + "sha256:ced111c2e81506abd1dc142e6cd7b68dd53747b3b7ae5edbea4578c5eeff96b7", + "sha256:d1299d7e964c13607efd148ca1f07dcbf27c3ab9e125d1d0ae1d580a1682399d", + "sha256:d1b604734bec94f05f81b360a272fc824334267426ae9905ff32dc2be433ab96", + "sha256:d9a5f194cf730f2b24d6af1f833c14c10f41023da46a7f736f48b6d35061e76e", + "sha256:db36c27baed588a5a8346b971477b718fdc66cf5b80cbfbd914b4d6d355e44e2", + "sha256:df0c7a16ebb94452d2909b9a7b3337940e9a87a824c4fc1c7c36bb4404cb0cde", + "sha256:e10a4b5a4b1192d74853cc71a5e9fd022594573926c2a3a4802020360aa719d8", + "sha256:e624c789359f1a16f83f35e2c705d07663ff2b4d4479bad35621178d8f0f6ea4", + "sha256:e690145a8c0c273c28d3b89d6fb32c45e0d9605b2293c10e650265bf5c11cfec", + "sha256:ea1608dd169da230a0ad602d5b1ebd39807ac96cae1845c3ceed39af08a5c6df", + "sha256:ea253b368eb41116011add00f8d5726762320b1bda892f744c91997b65754d73", + "sha256:eb7e49a17fb8c77d3119d41a4523e432eb0c6932187c37deb6fbb00cc3028088", + "sha256:ef12e259e7bc317c7597d4f6ef59b97b913e162d83b421dd0db3d6410f17a244", + "sha256:f8429b17cbb746c3e043cb986328da023657e79d5ed258b711c06a70c2ea7537", + "sha256:fa99973d2ed20417744fca0073390ad65ce225b546febb0580358e36aa90dba6", + "sha256:faf79a302f834d9e8304fafdc11d0d042266667ac45209afa57e5efc998e3872", + "sha256:fc31baa0c32a2ca660784d5af3b9487e13b61b3032cb01a115fce6588e1bed30" + ], + "markers": "python_version >= '3.6'", + "version": "==25.1.2" + }, + "six": { + "hashes": [ + "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926", + "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", + "version": "==1.16.0" + }, + "stack-data": { + "hashes": [ + "sha256:836a778de4fec4dcd1dcd89ed8abff8a221f58308462e1c4aa2a3cf30148f0b9", + "sha256:d5558e0c25a4cb0853cddad3d77da9891a08cb85dd9f9f91b9f8cd66e511e695" + ], + "version": "==0.6.3" + }, + "tornado": { + "hashes": [ + "sha256:02ccefc7d8211e5a7f9e8bc3f9e5b0ad6262ba2fbb683a6443ecc804e5224ce0", + "sha256:10aeaa8006333433da48dec9fe417877f8bcc21f48dda8d661ae79da357b2a63", + "sha256:27787de946a9cffd63ce5814c33f734c627a87072ec7eed71f7fc4417bb16263", + "sha256:6f8a6c77900f5ae93d8b4ae1196472d0ccc2775cc1dfdc9e7727889145c45052", + "sha256:71ddfc23a0e03ef2df1c1397d859868d158c8276a0603b96cf86892bff58149f", + "sha256:72291fa6e6bc84e626589f1c29d90a5a6d593ef5ae68052ee2ef000dfd273dee", + "sha256:88b84956273fbd73420e6d4b8d5ccbe913c65d31351b4c004ae362eba06e1f78", + "sha256:e43bc2e5370a6a8e413e1e1cd0c91bedc5bd62a74a532371042a18ef19e10579", + "sha256:f0251554cdd50b4b44362f73ad5ba7126fc5b2c2895cc62b14a1c2d7ea32f212", + "sha256:f7894c581ecdcf91666a0912f18ce5e757213999e183ebfc2c3fdbf4d5bd764e", + "sha256:fd03192e287fbd0899dd8f81c6fb9cbbc69194d2074b38f384cb6fa72b80e9c2" + ], + "markers": "python_version >= '3.8'", + "version": "==6.4" + }, + "traitlets": { + "hashes": [ + "sha256:2e5a030e6eff91737c643231bfcf04a65b0132078dad75e4936700b213652e74", + "sha256:8585105b371a04b8316a43d5ce29c098575c2e477850b62b848b964f1444527e" + ], + "markers": "python_version >= '3.8'", + "version": "==5.14.1" + }, + "wcwidth": { + "hashes": [ + "sha256:3da69048e4540d84af32131829ff948f1e022c1c6bdb8d6102117aac784f6859", + "sha256:72ea0c06399eb286d978fdedb6923a9eb47e1c486ce63e9b4e64fc18303972b5" + ], + "version": "==0.2.13" + } + } +} diff --git a/README.md b/README.md index 9f7fc00..29a2d3e 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,48 @@ -# co2-meal-planner -co2-meal-planner +

ifk-co2-meal-planner

+ +

+ + build + + + coverage + + + docs + + + lint + + + type + +

+ +

+ + Python: 3.9 - 3.12 + + + Testing framework: pytest + + + Linter and formatter: ruff + + + Type checker: mypy + +

+ +## Description + +Welcome to ifk-co2-meal-planner. + +## Configuration + +When you start a new project, apart from the obvious changes, +there are some details to consider. + +- Build workflow, follow the guide in [dynamic badges](https://github.com/Schneegans/dynamic-badges-action). +- To build docs, change `branch` in `github/workflows/github-action-docs.yaml` +from `["SET_TO_MAIN"]` to `["main"]`. You also need to activate Pages under repo +Settings/Pages. diff --git a/docs/assets/favicon.png b/docs/assets/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..44ea633be6676118e1c082557a4ac9afabc13019 GIT binary patch literal 596 zcmV-a0;~OrP)h@dFiZIQwt zC>HS}7N$!h7>E*;poU1+WMyDRhU3hgxtrbC>z^LEvXQ3504up`cSBk&U#s3GAlWzdta4FbNE& z@Tly@fG@x`VAYD!ci_Iq?l3T7t(VQqy(TJs0LTGL4&6-;fs|e84;S$eDGnxk&esO-jdMW z@;N%vB!M%)OCh@pl=XW~8u$q8W%vvNuY{}y^Z{>T3G`^TdCwCXKqr7_LiSeI%BC&! z72!Kw;XX&_9if(x;XVjFkR#bgpgZvKVnAQ@oql?>2MPR0h(Jb$Q9#u|MaVt^M_rqJ z1deMX7Zict9-RvNypX9>ozmeSjU}*=;3Nr8^gyz4N%y=ez`8y|{=(ME5z*&1=EV9Na5iDTyj#`{fv3QVxK_pBg+6$U-DiCV@Ij^J iwxxR>>8FD>0r&%sEQrphZ&jKA0000d literal 0 HcmV?d00001 diff --git a/docs/assets/ifk_logo_black.png b/docs/assets/ifk_logo_black.png new file mode 100644 index 0000000000000000000000000000000000000000..6f81d61e15a839a37ecfa8bc83a9272905e2c4a4 GIT binary patch literal 5498 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 SJBa>bh}lcCM~ZfP#QYC}dv8nt literal 0 HcmV?d00001 diff --git a/docs/assets/ifk_logo_white.png b/docs/assets/ifk_logo_white.png new file mode 100644 index 0000000000000000000000000000000000000000..5a0816b509e69b16d81eeb27ba9f6f1d969a8413 GIT binary patch literal 5620 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 BeChxI literal 0 HcmV?d00001 diff --git a/docs/index.md b/docs/index.md new file mode 100644 index 0000000..ecdd4a7 --- /dev/null +++ b/docs/index.md @@ -0,0 +1,3 @@ +# Welcome to ifk-co2-meal-planner + +Docs for ifk-co2-meal-planner. diff --git a/material/partials/copyright.html b/material/partials/copyright.html new file mode 100644 index 0000000..d05edfe --- /dev/null +++ b/material/partials/copyright.html @@ -0,0 +1,14 @@ +{#- +This file was automatically generated - do not edit +-#} + diff --git a/mkdocs.yml b/mkdocs.yml new file mode 100644 index 0000000..5552478 --- /dev/null +++ b/mkdocs.yml @@ -0,0 +1,37 @@ +site_name: ifk-co2-meal-planner +repo_url: https://github.com/Ingenjorsarbete-For-Klimatet/ifk-co2-meal-planner +site_author: IFK +site_url: https://ingenjorsarbete-for-klimatet.github.io/ifk-co2-meal-planner/ +repo_name: Ingenjorsarbete-For-Klimatet/ifk-co2-meal-planner + +nav: +- Home: index.md + +watch: +- src + +theme: + name: material + custom_dir: material + palette: + scheme: default + primary: black + accent: light green + language: en + icon: + repo: fontawesome/brands/git-alt + logo: assets/ifk_logo_white.png + favicon: assets/favicon.png + features: + - navigation.tabs + +plugins: +- search +- mkdocstrings + +markdown_extensions: + - pymdownx.highlight: + anchor_linenums: true + - pymdownx.inlinehilite + - pymdownx.snippets + - pymdownx.superfences diff --git a/notebooks/example.ipynb b/notebooks/example.ipynb new file mode 100644 index 0000000..7caaa21 --- /dev/null +++ b/notebooks/example.ipynb @@ -0,0 +1,3038 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "ename": "ModuleNotFoundError", + "evalue": "No module named 'co2_meal_planner.rdi'", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mModuleNotFoundError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[1], line 11\u001b[0m\n\u001b[1;32m 9\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mco2_meal_planner\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mslv_wrapper\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m SlvWrapper\n\u001b[1;32m 10\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mIPython\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mdisplay\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m display\n\u001b[0;32m---> 11\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mco2_meal_planner\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mrdi\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m rdi\n\u001b[1;32m 13\u001b[0m slv \u001b[38;5;241m=\u001b[39m SlvWrapper()\n", + "\u001b[0;31mModuleNotFoundError\u001b[0m: No module named 'co2_meal_planner.rdi'" + ] + } + ], + "source": [ + "\"\"\"Example.\n", + "\n", + "https://www.livsmedelsverket.se/om-oss/psidata/livsmedelsdatbasenalfa\n", + "\n", + "ClimateHub have open source on CHG, but only free for internal use.\n", + "\"\"\"\n", + "\n", + "import pandas as pd\n", + "from co2_meal_planner.rdi import rdi\n", + "from co2_meal_planner.slv_wrapper import SlvWrapper\n", + "from IPython.display import display\n", + "\n", + "slv = SlvWrapper()\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Paranötter 1568\n", + "[{'namn': 'Zink, Zn', 'euroFIRkod': 'ZN', 'forkortning': 'Zn', 'varde': 3.8, 'enhet': 'mg', 'viktGram': 100, 'vardetyp': 'Ett analysvärde av sammansatt prov', 'vardetypkod': 'AV', 'ursprung': 'Analys SLV', 'ursprungkod': 'O', 'publikation': 'Analysprotokoll Dnr 2018/00798', 'metodtyp': 'Analysresultat', 'metodtypkod': 'A', 'metodindikator': 'ICP-MS', 'metodindikatorkod': 'MI1209', 'referenstyp': 'Rapport', 'referenstypkod': 'R'}, {'namn': 'Vitamin E', 'euroFIRkod': 'VITE', 'forkortning': 'VitE', 'varde': 6.1, 'enhet': 'mg', 'viktGram': 100, 'berakning': '6,130', 'vardetyp': 'Bästa skattning', 'vardetypkod': 'BE', 'ursprung': 'Värde framtaget med eget system', 'ursprungkod': 'S', 'publikation': 'SLV - Riktlinjer för livsmedel', 'metodtyp': 'Summering av beståndsdelar', 'metodtypkod': 'S', 'metodindikator': 'Vit E från alfatokoferol', 'metodindikatorkod': 'MI0368', 'referenstyp': 'Rapport', 'referenstypkod': 'R'}, {'namn': 'Vitamin D', 'euroFIRkod': 'VITD', 'forkortning': 'VitD', 'varde': 0.0, 'enhet': 'µg', 'viktGram': 100, 'berakning': '0,000+0,000', 'vardetyp': 'Bästa skattning', 'vardetypkod': 'BE', 'ursprung': 'Värde framtaget med eget system', 'ursprungkod': 'S', 'publikation': 'SLV - Riktlinjer för livsmedel', 'metodtyp': 'Summering av beståndsdelar', 'metodtypkod': 'S', 'metodindikator': 'Vit D från D2 och D3', 'metodindikatorkod': 'MI0351', 'referenstyp': 'Rapport', 'referenstypkod': 'R'}, {'namn': 'Vitamin C', 'euroFIRkod': 'VITC', 'forkortning': 'VitC', 'varde': 0.0, 'enhet': 'mg', 'viktGram': 100, 'vardetyp': 'Bästa skattning', 'vardetypkod': 'BE', 'ursprung': 'Livsmedelstabell', 'ursprungkod': 'F', 'publikation': \"McCance and Widdowson's composition of foods integrated dataset 2019\", 'metodtyp': 'Allmän analys', 'metodtypkod': 'AG', 'referenstyp': 'Rapport', 'referenstypkod': 'R', 'kommentar': 'Food Code 14-871'}, {'namn': 'Vitamin B6', 'euroFIRkod': 'VITB6', 'forkortning': 'VitB6', 'varde': 0.33, 'enhet': 'mg', 'viktGram': 100, 'vardetyp': 'Ett analysvärde av sammansatt prov', 'vardetypkod': 'AV', 'ursprung': 'Analys SLV', 'ursprungkod': 'O', 'publikation': 'Analysprotokoll Dnr 2018/00798', 'metodtyp': 'Analysresultat', 'metodtypkod': 'A', 'metodindikator': 'HPLC-FLD tiamin, riboflavin, vitamin B6, vitamin C', 'referenstyp': 'Rapport', 'referenstypkod': 'R'}, {'namn': 'Vitamin B12', 'euroFIRkod': 'VITB12', 'forkortning': 'VitB12', 'varde': 0.0, 'enhet': 'µg', 'viktGram': 100, 'vardetyp': 'Logisk nolla', 'vardetypkod': 'LZ', 'ursprung': 'Annat ursprung', 'ursprungkod': 'E', 'publikation': 'SLV - Riktlinjer för livsmedel', 'metodtyp': 'Skattat logisk slutledning', 'metodtypkod': 'U', 'referenstyp': 'Rapport', 'referenstypkod': 'R'}, {'namn': 'Vitamin A', 'euroFIRkod': 'VITA', 'forkortning': 'VitA', 'varde': 0.6, 'enhet': 'RE/µg', 'viktGram': 100, 'berakning': '0,000+5,400/12+(2,300+0,000)/24,0', 'vardetyp': 'Bästa skattning', 'vardetypkod': 'BE', 'ursprung': 'Värde framtaget med eget system', 'ursprungkod': 'S', 'publikation': 'SLV - Riktlinjer för livsmedel', 'metodtyp': 'Beräknad, omräkningsfaktor inkluderad', 'metodtypkod': 'T', 'metodindikator': 'Vitamin A aktivitet (RAE)', 'metodindikatorkod': 'MI0324', 'referenstyp': 'Rapport', 'referenstypkod': 'R'}, {'namn': 'Vatten', 'euroFIRkod': 'WATER', 'forkortning': 'Vatt', 'varde': 1.8, 'enhet': 'g', 'viktGram': 100, 'vardetyp': 'Ett analysvärde av sammansatt prov', 'vardetypkod': 'AV', 'ursprung': 'Analys, oberoende labb', 'ursprungkod': 'D', 'publikation': 'Analysprotokoll Dnr 2018/00798', 'metodtyp': 'Analysresultat', 'metodtypkod': 'A', 'metodindikator': 'Gravimetrisk metod'}, {'namn': 'Tiamin', 'euroFIRkod': 'THIA', 'forkortning': 'Tiam', 'varde': 0.73, 'enhet': 'mg', 'viktGram': 100, 'vardetyp': 'Ett analysvärde av sammansatt prov', 'vardetypkod': 'AV', 'ursprung': 'Analys SLV', 'ursprungkod': 'O', 'publikation': 'Analysprotokoll Dnr 2018/00798', 'metodtyp': 'Analysresultat', 'metodtypkod': 'A', 'metodindikator': 'HPLC-FLD tiamin, riboflavin, vitamin B6, vitamin C', 'referenstyp': 'Rapport', 'referenstypkod': 'R'}, {'namn': 'Tillsatt socker', 'euroFIRkod': 'SUGAD', 'forkortning': 'Socker/t', 'varde': 0, 'enhet': 'g', 'viktGram': 100, 'vardetyp': 'Logisk nolla', 'vardetypkod': 'LZ', 'ursprung': 'Värde framtaget med eget system', 'ursprungkod': 'S', 'publikation': 'SLV - Riktlinjer för livsmedel', 'metodtyp': 'Skattat logisk slutledning', 'metodtypkod': 'U', 'referenstyp': 'Rapport', 'referenstypkod': 'R'}, {'namn': 'Fritt socker', 'euroFIRkod': 'SUGFR', 'forkortning': 'Socker/f', 'varde': 0, 'enhet': 'g', 'viktGram': 100, 'vardetyp': 'Logisk nolla', 'vardetypkod': 'LZ', 'ursprung': 'Värde framtaget med eget system', 'ursprungkod': 'S', 'publikation': 'SLV - Riktlinjer för livsmedel', 'metodtyp': 'Skattat logisk slutledning', 'metodtypkod': 'U', 'referenstyp': 'Rapport', 'referenstypkod': 'R'}, {'namn': 'Selen, Se', 'euroFIRkod': 'SE', 'forkortning': 'Se', 'varde': 225.0, 'enhet': 'µg', 'viktGram': 100, 'vardetyp': 'Ett analysvärde av sammansatt prov', 'vardetypkod': 'AV', 'ursprung': 'Analys, oberoende labb', 'ursprungkod': 'D', 'publikation': 'Analysprotokoll Dnr 2018/00798', 'metodtyp': 'Analysresultat', 'metodtypkod': 'A', 'metodindikator': 'ICP-SFMS, mineraler', 'metodindikatorkod': '', 'referenstyp': 'Rapport', 'referenstypkod': 'R'}, {'namn': 'Sackaros', 'euroFIRkod': 'SUCS', 'forkortning': 'Sack', 'varde': 1.8, 'enhet': 'g', 'viktGram': 100, 'vardetyp': 'Ett analysvärde av sammansatt prov', 'vardetypkod': 'AV', 'ursprung': 'Analys, oberoende labb', 'ursprungkod': 'D', 'publikation': 'Analysprotokoll Dnr 2018/00798', 'metodtyp': 'Analysresultat', 'metodtypkod': 'A', 'metodindikator': 'Kromatografi', 'metodindikatorkod': 'MI1144', 'referenstyp': 'Rapport', 'referenstypkod': 'R'}, {'namn': 'Riboflavin', 'euroFIRkod': 'RIBF', 'forkortning': 'Ribo', 'varde': 0.0, 'enhet': 'mg', 'viktGram': 100, 'vardetyp': 'Spår', 'vardetypkod': 'TR', 'ursprung': 'Analys SLV', 'ursprungkod': 'O', 'publikation': 'Analysprotokoll Dnr 2018/00798', 'metodtyp': 'Analysresultat', 'metodtypkod': 'A', 'metodindikator': 'HPLC-FLD tiamin, riboflavin, vitamin B6, vitamin C', 'referenstyp': 'Rapport', 'referenstypkod': 'R'}, {'namn': 'Retinol', 'euroFIRkod': 'RETOL', 'forkortning': 'Reti', 'varde': 0.0, 'enhet': 'µg', 'viktGram': 100, 'berakning': '0,000', 'vardetyp': 'Bästa skattning', 'vardetypkod': 'BE', 'ursprung': 'Värde framtaget med eget system', 'ursprungkod': 'S', 'publikation': 'SLV - Riktlinjer för livsmedel', 'metodtyp': 'Summering av beståndsdelar', 'metodtypkod': 'S', 'metodindikator': 'Retinol beräknat enbart från transretinol', 'metodindikatorkod': '', 'referenstyp': 'Rapport', 'referenstypkod': 'R'}, {'namn': 'Protein', 'euroFIRkod': 'PROT', 'forkortning': 'Prot', 'varde': 14.2, 'enhet': 'g', 'viktGram': 100, 'berakning': '2,600*5,46', 'vardetyp': 'Bästa skattning', 'vardetypkod': 'BE', 'ursprung': 'Värde framtaget med eget system', 'ursprungkod': 'S', 'publikation': 'SLV - Riktlinjer för livsmedel', 'metodtyp': 'Beräknad, omräkningsfaktor inkluderad', 'metodtypkod': 'T', 'metodindikator': 'Protein beräknat från proteinkväve', 'metodindikatorkod': 'MI0122', 'referenstyp': 'Rapport', 'referenstypkod': 'R'}, {'namn': 'Summa fleromättade fettsyror', 'euroFIRkod': 'FAPU', 'forkortning': 'Pole', 'varde': 29.2, 'enhet': 'g', 'viktGram': 100, 'berakning': '0,956*67,8*(0,000+0,000+0,000+45,000+0,000+0,000+0,000+0,000+0,000+0,000+0,000+0,000+0,000+0,000+0,000+0,000+0,000+0,000+0,000+0,000+0,000)/100,0', 'vardetyp': 'Bästa skattning', 'vardetypkod': 'BE', 'ursprung': 'Värde framtaget med eget system', 'ursprungkod': 'S', 'publikation': 'SLV - Riktlinjer för livsmedel', 'metodtyp': 'Beräknad, omräkningsfaktor inkluderad', 'metodtypkod': 'T', 'metodindikator': 'Fettsyror beräknade från fettsyraprofil %', 'metodindikatorkod': 'MI0201', 'referenstyp': 'Rapport', 'referenstypkod': 'R'}, {'namn': 'Fosfor, P', 'euroFIRkod': 'P', 'forkortning': 'P', 'varde': 723, 'enhet': 'mg', 'viktGram': 100, 'vardetyp': 'Ett analysvärde av sammansatt prov', 'vardetypkod': 'AV', 'ursprung': 'Analys, oberoende labb', 'ursprungkod': 'D', 'publikation': 'Analysprotokoll Dnr 2018/00798', 'metodtyp': 'Analysresultat', 'metodtypkod': 'A', 'metodindikator': 'ICP-SFMS, mineraler', 'metodindikatorkod': '', 'referenstyp': 'Rapport', 'referenstypkod': 'R'}, {'namn': 'Niacinekvivalenter', 'euroFIRkod': 'NIAEQ', 'forkortning': 'Niek', 'varde': 2.9, 'enhet': 'NE/mg', 'viktGram': 100, 'berakning': '0,484+14,20*10,0*1/60,0', 'vardetyp': 'Bästa skattning', 'vardetypkod': 'BE', 'ursprung': 'Värde framtaget med eget system', 'ursprungkod': 'S', 'publikation': 'SLV - Riktlinjer för livsmedel', 'metodtyp': 'Beräknad, omräkningsfaktor inkluderad', 'metodtypkod': 'T', 'metodindikator': 'Niacinekvivalenter', 'metodindikatorkod': 'MI0421', 'referenstyp': 'Rapport', 'referenstypkod': 'R'}, {'namn': 'Niacin', 'euroFIRkod': 'NIA', 'forkortning': 'Niac', 'varde': 0.48, 'enhet': 'mg', 'viktGram': 100, 'vardetyp': 'Ett analysvärde av sammansatt prov', 'vardetypkod': 'AV', 'ursprung': 'Analys SLV', 'ursprungkod': 'O', 'publikation': 'Analysprotokoll Dnr 2018/00798', 'metodtyp': 'Analysresultat', 'metodtypkod': 'A', 'metodindikator': 'Lactobacillus plantarum, niacin', 'metodindikatorkod': '', 'referenstyp': 'Rapport', 'referenstypkod': 'R'}, {'namn': 'Salt, NaCl', 'euroFIRkod': 'NACL', 'forkortning': 'NaCl', 'varde': 0.0, 'enhet': 'g', 'viktGram': 100, 'berakning': '0,000*2,5/1000,0', 'vardetyp': 'Bästa skattning', 'vardetypkod': 'BE', 'ursprung': 'Värde framtaget med eget system', 'ursprungkod': 'S', 'publikation': 'SLV - Riktlinjer för livsmedel', 'metodtyp': 'Beräknad, omräkningsfaktor inkluderad', 'metodtypkod': 'T', 'metodindikator': 'Salt beräknat från natrium (totalt)', 'metodindikatorkod': 'MI0120', 'referenstyp': 'Rapport', 'referenstypkod': 'R'}, {'namn': 'Natrium, Na', 'euroFIRkod': 'NA', 'forkortning': 'Na', 'varde': 0, 'enhet': 'mg', 'viktGram': 100, 'vardetyp': 'Spår', 'vardetypkod': 'TR', 'ursprung': 'Analys, oberoende labb', 'ursprungkod': 'D', 'publikation': 'Analysprotokoll Dnr 2018/00798', 'metodtyp': 'Analysresultat', 'metodtypkod': 'A', 'metodindikator': 'ICP-SFMS, mineraler', 'metodindikatorkod': '', 'referenstyp': 'Rapport', 'referenstypkod': 'R'}, {'namn': 'Monosackarider', 'euroFIRkod': 'MNSAC', 'forkortning': 'Msac', 'varde': 0.0, 'enhet': 'g', 'viktGram': 100, 'berakning': '0,000+0,000', 'vardetyp': 'Bästa skattning', 'vardetypkod': 'BE', 'ursprung': 'Värde framtaget med eget system', 'ursprungkod': 'S', 'publikation': 'SLV - Riktlinjer för livsmedel', 'metodtyp': 'Summering av beståndsdelar', 'metodtypkod': 'S', 'metodindikator': 'Monosackarider beräknade som summan av glukos och fruktos', 'metodindikatorkod': '', 'referenstyp': 'Rapport', 'referenstypkod': 'R'}, {'namn': 'Sockerarter, totalt', 'euroFIRkod': 'SUGAR', 'forkortning': 'Mono/disack', 'varde': 1.8, 'enhet': 'g', 'viktGram': 100, 'berakning': '0,000+0,000+1,800+0,000+0,000', 'vardetyp': 'Bästa skattning', 'vardetypkod': 'BE', 'ursprung': 'Värde framtaget med eget system', 'ursprungkod': 'S', 'publikation': 'SLV - Riktlinjer för livsmedel', 'metodtyp': 'Summering av beståndsdelar', 'metodtypkod': 'S', 'metodindikator': 'Summa sockerarter beräknade som summan av glukos, fruktos, laktos, maltos och sackaros', 'metodindikatorkod': 'MI0153', 'referenstyp': 'Rapport', 'referenstypkod': 'R'}, {'namn': 'Summa enkelomättade fettsyror', 'euroFIRkod': 'FAMS', 'forkortning': 'Mone', 'varde': 20.1, 'enhet': 'g', 'viktGram': 100, 'berakning': '0,956*67,8*(0,000+0,000+0,300+0,000+30,700+0,000+0,000+0,000)/100,0', 'vardetyp': 'Bästa skattning', 'vardetypkod': 'BE', 'ursprung': 'Värde framtaget med eget system', 'ursprungkod': 'S', 'publikation': 'SLV - Riktlinjer för livsmedel', 'metodtyp': 'Beräknad, omräkningsfaktor inkluderad', 'metodtypkod': 'T', 'metodindikator': 'Fettsyror beräknade från fettsyraprofil %', 'metodindikatorkod': 'MI0201', 'referenstyp': 'Rapport', 'referenstypkod': 'R'}, {'namn': 'Magnesium, Mg', 'euroFIRkod': 'MG', 'forkortning': 'Mg', 'varde': 400, 'enhet': 'mg', 'viktGram': 100, 'vardetyp': 'Ett analysvärde av sammansatt prov', 'vardetypkod': 'AV', 'ursprung': 'Analys, oberoende labb', 'ursprungkod': 'D', 'publikation': 'Analysprotokoll Dnr 2018/00798', 'metodtyp': 'Analysresultat', 'metodtypkod': 'A', 'metodindikator': 'ICP-SFMS, mineraler', 'metodindikatorkod': '', 'referenstyp': 'Rapport', 'referenstypkod': 'R'}, {'namn': 'Summa mättade fettsyror', 'euroFIRkod': 'FASAT', 'forkortning': 'Mfet', 'varde': 15.4, 'enhet': 'g', 'viktGram': 100, 'berakning': '0,956*67,8*(0,000+0,000+0,000+0,000+0,000+0,000+0,000+0,000+0,000+0,000+0,000+0,000+14,200+0,000+0,000+0,000+0,000+0,000+9,300+0,200+0,000+0,00+0,000)/100,0', 'vardetyp': 'Bästa skattning', 'vardetypkod': 'BE', 'ursprung': 'Värde framtaget med eget system', 'ursprungkod': 'S', 'publikation': 'SLV - Riktlinjer för livsmedel', 'metodtyp': 'Beräknad, omräkningsfaktor inkluderad', 'metodtypkod': 'T', 'metodindikator': 'Fettsyror beräknade från fettsyraprofil %', 'metodindikatorkod': 'MI0201', 'referenstyp': 'Rapport', 'referenstypkod': 'R'}, {'namn': 'Kolhydrater, tillgängliga', 'euroFIRkod': 'CHO', 'forkortning': 'Kolh', 'varde': 0.0, 'enhet': 'g', 'viktGram': 100, 'berakning': '100,0-(1,770+3,760+14,20+67,8+13,7+0,000)', 'vardetyp': 'Bästa skattning', 'vardetypkod': 'BE', 'ursprung': 'Värde framtaget med eget system', 'ursprungkod': 'S', 'publikation': 'SLV - Riktlinjer för livsmedel', 'metodtyp': 'Summering av beståndsdelar', 'metodtypkod': 'S', 'metodindikator': 'Kolhydrater, tillgängliga beräknat som rest', 'metodindikatorkod': 'MI0183', 'referenstyp': 'Rapport', 'referenstypkod': 'R'}, {'namn': 'Kolesterol', 'euroFIRkod': 'CHORL', 'forkortning': 'Kole', 'varde': 0.0, 'enhet': 'mg', 'viktGram': 100, 'vardetyp': 'Logisk nolla', 'vardetypkod': 'LZ', 'ursprung': 'Annat ursprung', 'ursprungkod': 'E', 'publikation': 'SLV - Riktlinjer för livsmedel', 'metodtyp': 'Skattat logisk slutledning', 'metodtypkod': 'U'}, {'namn': 'Kalium, K', 'euroFIRkod': 'K', 'forkortning': 'K', 'varde': 623, 'enhet': 'mg', 'viktGram': 100, 'vardetyp': 'Ett analysvärde av sammansatt prov', 'vardetypkod': 'AV', 'ursprung': 'Analys, oberoende labb', 'ursprungkod': 'D', 'publikation': 'Analysprotokoll Dnr 2018/00798', 'metodtyp': 'Analysresultat', 'metodtypkod': 'A', 'metodindikator': 'ICP-SFMS, mineraler', 'metodindikatorkod': '', 'referenstyp': 'Rapport', 'referenstypkod': 'R'}, {'namn': 'Jod, I', 'euroFIRkod': 'ID', 'forkortning': 'I', 'varde': 0.0, 'enhet': 'µg', 'viktGram': 100, 'vardetyp': 'Spår', 'vardetypkod': 'TR', 'ursprung': 'Analys, oberoende labb', 'ursprungkod': 'D', 'publikation': 'Analysprotokoll Dnr 2018/00798', 'metodtyp': 'Analysresultat', 'metodtypkod': 'A', 'metodindikator': 'ICP-SFMS, mineraler', 'metodindikatorkod': '', 'referenstyp': 'Rapport', 'referenstypkod': 'R'}, {'namn': 'Fullkorn totalt', 'euroFIRkod': 'WHOLET', 'forkortning': 'Fullk/tot', 'varde': 0, 'enhet': 'g', 'viktGram': 100, 'berakning': '0,000+0,000+0,000+0,000+0,000', 'vardetyp': 'Bästa skattning', 'vardetypkod': 'BE', 'ursprung': 'Värde framtaget med eget system', 'ursprungkod': 'S', 'publikation': 'SLV - Riktlinjer för livsmedel', 'metodtyp': 'Summering av beståndsdelar', 'metodtypkod': 'S', 'metodindikator': 'Skattat från ingrediensförteckning', 'referenstyp': 'Rapport', 'referenstypkod': 'R'}, {'namn': 'Folat', 'euroFIRkod': 'FOL', 'forkortning': 'Folat', 'varde': 5.3, 'enhet': 'µg', 'viktGram': 100, 'vardetyp': 'Ett analysvärde av sammansatt prov', 'vardetypkod': 'AV', 'ursprung': 'Analys SLV', 'ursprungkod': 'O', 'publikation': 'Analysprotokoll Dnr 2018/00798', 'metodtyp': 'Analysresultat', 'metodtypkod': 'A', 'metodindikator': 'Lactobacillus plantarum, niacin', 'metodindikatorkod': '', 'referenstyp': 'Rapport', 'referenstypkod': 'R'}, {'namn': 'Fibrer', 'euroFIRkod': 'FIBT', 'forkortning': 'Fibe', 'varde': 13.7, 'enhet': 'g', 'viktGram': 100, 'vardetyp': 'Ett analysvärde av sammansatt prov', 'vardetypkod': 'AV', 'ursprung': 'Analys, oberoende labb', 'ursprungkod': 'D', 'publikation': 'Analysprotokoll Dnr 2018/00798', 'metodtyp': 'Analysresultat', 'metodtypkod': 'A', 'metodindikator': 'Enzymatisk metod', 'metodindikatorkod': 'MI1218'}, {'namn': 'Fett, totalt', 'euroFIRkod': 'FAT', 'forkortning': 'Fett', 'varde': 67.8, 'enhet': 'g', 'viktGram': 100, 'vardetyp': 'Ett analysvärde av sammansatt prov', 'vardetypkod': 'AV', 'ursprung': 'Analys, oberoende labb', 'ursprungkod': 'D', 'publikation': 'Analysprotokoll Dnr 2018/00798', 'metodtyp': 'Analysresultat', 'metodtypkod': 'A', 'metodindikator': 'NMR, fett', 'metodindikatorkod': 'MI1165'}, {'namn': 'Järn, Fe', 'euroFIRkod': 'FE', 'forkortning': 'Fe', 'varde': 2.4, 'enhet': 'mg', 'viktGram': 100, 'vardetyp': 'Ett analysvärde av sammansatt prov', 'vardetypkod': 'AV', 'ursprung': 'Analys SLV', 'ursprungkod': 'O', 'publikation': 'Analysprotokoll Dnr 2018/00798', 'metodtyp': 'Analysresultat', 'metodtypkod': 'A', 'metodindikator': 'ICP-MS', 'metodindikatorkod': 'MI1209', 'referenstyp': 'Rapport', 'referenstypkod': 'R'}, {'namn': 'Energi (kJ)', 'euroFIRkod': 'ENERC', 'forkortning': 'Ener', 'varde': 2860, 'enhet': 'kJ', 'viktGram': 100, 'berakning': '0,0*17,0+14,20*17,0+67,8*37,0+0,000*29,0+13,7*8,0', 'vardetyp': 'Bästa skattning', 'vardetypkod': 'BE', 'ursprung': 'Värde framtaget med eget system', 'ursprungkod': 'S', 'publikation': 'SLV - Riktlinjer för livsmedel', 'metodtyp': 'Beräknad, omräkningsfaktor inkluderad', 'metodtypkod': 'T', 'metodindikator': 'Energiberäkning kJ NNR', 'metodindikatorkod': 'MI0110', 'referenstyp': 'Rapport', 'referenstypkod': 'R'}, {'namn': 'Energi (kcal)', 'euroFIRkod': 'ENERC', 'forkortning': 'Ener', 'varde': 683, 'enhet': 'kcal', 'viktGram': 100, 'berakning': '2859,60*0,239', 'vardetyp': 'Bästa skattning', 'vardetypkod': 'BE', 'ursprung': 'Värde framtaget med eget system', 'ursprungkod': 'S', 'publikation': 'SLV - Riktlinjer för livsmedel', 'metodtyp': 'Beräknad, omräkningsfaktor inkluderad', 'metodtypkod': 'T', 'metodindikator': 'Energiberäkning kcal enligt NNR', 'metodindikatorkod': 'MI0117', 'referenstyp': 'Rapport', 'referenstypkod': 'R'}, {'namn': 'Disackarider', 'euroFIRkod': 'DISAC', 'forkortning': 'Dsac', 'varde': 1.8, 'enhet': 'g', 'viktGram': 100, 'berakning': '0,000+0,000+1,800', 'vardetyp': 'Bästa skattning', 'vardetypkod': 'BE', 'ursprung': 'Värde framtaget med eget system', 'ursprungkod': 'S', 'publikation': 'SLV - Riktlinjer för livsmedel', 'metodtyp': 'Summering av beståndsdelar', 'metodtypkod': 'S', 'metodindikator': 'Disackarider beräknade som summan av laktos, maltos och sackaros', 'metodindikatorkod': '', 'referenstyp': 'Rapport', 'referenstypkod': 'R'}, {'namn': 'Kalcium, Ca', 'euroFIRkod': 'CA', 'forkortning': 'Ca', 'varde': 176, 'enhet': 'mg', 'viktGram': 100, 'vardetyp': 'Ett analysvärde av sammansatt prov', 'vardetypkod': 'AV', 'ursprung': 'Analys, oberoende labb', 'ursprungkod': 'D', 'publikation': 'Analysprotokoll Dnr 2018/00798', 'metodtyp': 'Analysresultat', 'metodtypkod': 'A', 'metodindikator': 'ICP-SFMS, mineraler', 'metodindikatorkod': '', 'referenstyp': 'Rapport', 'referenstypkod': 'R'}, {'namn': 'Fettsyra 4:0-10:0', 'euroFIRkod': 'F4-10:0', 'forkortning': 'C4:0-C10:0', 'varde': 0.0, 'enhet': 'g', 'viktGram': 100, 'berakning': '0,956*67,8*(0,000+0,000+0,000+0,000)/100,0', 'vardetyp': 'Bästa skattning', 'vardetypkod': 'BE', 'ursprung': 'Värde framtaget med eget system', 'ursprungkod': 'S', 'publikation': 'SLV - Riktlinjer för livsmedel', 'metodtyp': 'Beräknad, omräkningsfaktor inkluderad', 'metodtypkod': 'T', 'metodindikator': 'Fettsyror beräknade från fettsyraprofil %', 'metodindikatorkod': 'MI0201', 'referenstyp': 'Rapport', 'referenstypkod': 'R'}, {'namn': 'DHA (C22:6)', 'euroFIRkod': 'F22:6', 'forkortning': 'C22:6', 'varde': 0.0, 'enhet': 'g', 'viktGram': 100, 'berakning': '0,956*67,8*(0,000)/100,0', 'vardetyp': 'Bästa skattning', 'vardetypkod': 'BE', 'ursprung': 'Värde framtaget med eget system', 'ursprungkod': 'S', 'publikation': 'SLV - Riktlinjer för livsmedel', 'metodtyp': 'Beräknad, omräkningsfaktor inkluderad', 'metodtypkod': 'T', 'metodindikator': 'Fettsyror beräknade från fettsyraprofil %', 'metodindikatorkod': 'MI0201', 'referenstyp': 'Rapport', 'referenstypkod': 'R'}, {'namn': 'DPA (C22:5)', 'euroFIRkod': 'F22:5', 'forkortning': 'C22:5', 'varde': 0.0, 'enhet': 'g', 'viktGram': 100, 'berakning': '0,956*67,8*(0,000+0,000)/100,0', 'vardetyp': 'Bästa skattning', 'vardetypkod': 'BE', 'ursprung': 'Värde framtaget med eget system', 'ursprungkod': 'S', 'publikation': 'SLV - Riktlinjer för livsmedel', 'metodtyp': 'Beräknad, omräkningsfaktor inkluderad', 'metodtypkod': 'T', 'metodindikator': 'Fettsyror beräknade från fettsyraprofil %', 'metodindikatorkod': 'MI0201', 'referenstyp': 'Rapport', 'referenstypkod': 'R'}, {'namn': 'EPA (C20:5)', 'euroFIRkod': 'F20:5', 'forkortning': 'C20:5', 'varde': 0.0, 'enhet': 'g', 'viktGram': 100, 'berakning': '0,956*67,8*(0,000)/100,0', 'vardetyp': 'Bästa skattning', 'vardetypkod': 'BE', 'ursprung': 'Värde framtaget med eget system', 'ursprungkod': 'S', 'publikation': 'SLV - Riktlinjer för livsmedel', 'metodtyp': 'Beräknad, omräkningsfaktor inkluderad', 'metodtypkod': 'T', 'metodindikator': 'Fettsyror beräknade från fettsyraprofil %', 'metodindikatorkod': 'MI0201', 'referenstyp': 'Rapport', 'referenstypkod': 'R'}, {'namn': 'Arakidonsyra C20:4', 'euroFIRkod': 'F20:4', 'forkortning': 'C20:4', 'varde': 0.0, 'enhet': 'g', 'viktGram': 100, 'berakning': '0,956*67,8*(0,000+0,000)/100,0', 'vardetyp': 'Bästa skattning', 'vardetypkod': 'BE', 'ursprung': 'Värde framtaget med eget system', 'ursprungkod': 'S', 'publikation': 'SLV - Riktlinjer för livsmedel', 'metodtyp': 'Beräknad, omräkningsfaktor inkluderad', 'metodtypkod': 'T', 'metodindikator': 'Fettsyror beräknade från fettsyraprofil %', 'metodindikatorkod': 'MI0201', 'referenstyp': 'Rapport', 'referenstypkod': 'R'}, {'namn': 'Arakidinsyra C20:0', 'euroFIRkod': 'F20:0', 'forkortning': 'C20:0', 'varde': 0.1, 'enhet': 'g', 'viktGram': 100, 'berakning': '0,956*67,8*0,200/100,0', 'vardetyp': 'Bästa skattning', 'vardetypkod': 'BE', 'ursprung': 'Värde framtaget med eget system', 'ursprungkod': 'S', 'publikation': 'SLV - Riktlinjer för livsmedel', 'metodtyp': 'Beräknad, omräkningsfaktor inkluderad', 'metodtypkod': 'T', 'metodindikator': 'Fettsyror beräknade från fettsyraprofil %', 'metodindikatorkod': 'MI0201', 'referenstyp': 'Rapport', 'referenstypkod': 'R'}, {'namn': 'Linolensyra C18:3', 'euroFIRkod': 'F18:3', 'forkortning': 'C18:3', 'varde': 0.0, 'enhet': 'g', 'viktGram': 100, 'berakning': '0,956*67,8*(0,000+0,000+0,000)/100,0', 'vardetyp': 'Bästa skattning', 'vardetypkod': 'BE', 'ursprung': 'Värde framtaget med eget system', 'ursprungkod': 'S', 'publikation': 'SLV - Riktlinjer för livsmedel', 'metodtyp': 'Beräknad, omräkningsfaktor inkluderad', 'metodtypkod': 'T', 'metodindikator': 'Fettsyror beräknade från fettsyraprofil %', 'metodindikatorkod': 'MI0201', 'referenstyp': 'Rapport', 'referenstypkod': 'R'}, {'namn': 'Linolsyra C18:2', 'euroFIRkod': 'F18:2', 'forkortning': 'C18:2', 'varde': 29.2, 'enhet': 'g', 'viktGram': 100, 'berakning': '0,956*67,8*45,000/100,0', 'vardetyp': 'Bästa skattning', 'vardetypkod': 'BE', 'ursprung': 'Värde framtaget med eget system', 'ursprungkod': 'S', 'publikation': 'SLV - Riktlinjer för livsmedel', 'metodtyp': 'Beräknad, omräkningsfaktor inkluderad', 'metodtypkod': 'T', 'metodindikator': 'Fettsyror beräknade från fettsyraprofil %', 'metodindikatorkod': 'MI0201', 'referenstyp': 'Rapport', 'referenstypkod': 'R'}, {'namn': 'Oljesyra C18:1', 'euroFIRkod': 'F18:1', 'forkortning': 'C18:1', 'varde': 19.9, 'enhet': 'g', 'viktGram': 100, 'berakning': '0,956*67,8*30,700/100,0', 'vardetyp': 'Bästa skattning', 'vardetypkod': 'BE', 'ursprung': 'Värde framtaget med eget system', 'ursprungkod': 'S', 'publikation': 'SLV - Riktlinjer för livsmedel', 'metodtyp': 'Beräknad, omräkningsfaktor inkluderad', 'metodtypkod': 'T', 'metodindikator': 'Fettsyror beräknade från fettsyraprofil %', 'metodindikatorkod': 'MI0201', 'referenstyp': 'Rapport', 'referenstypkod': 'R'}, {'namn': 'Stearinsyra C18:0', 'euroFIRkod': 'F18:0', 'forkortning': 'C18:0', 'varde': 6.0, 'enhet': 'g', 'viktGram': 100, 'berakning': '0,956*67,8*9,300/100,0', 'vardetyp': 'Bästa skattning', 'vardetypkod': 'BE', 'ursprung': 'Värde framtaget med eget system', 'ursprungkod': 'S', 'publikation': 'SLV - Riktlinjer för livsmedel', 'metodtyp': 'Beräknad, omräkningsfaktor inkluderad', 'metodtypkod': 'T', 'metodindikator': 'Fettsyror beräknade från fettsyraprofil %', 'metodindikatorkod': 'MI0201', 'referenstyp': 'Rapport', 'referenstypkod': 'R'}, {'namn': 'Palmitoljesyra C16:1', 'euroFIRkod': 'F16:1', 'forkortning': 'C16:1', 'varde': 0.2, 'enhet': 'g', 'viktGram': 100, 'berakning': '0,956*67,8*0,300/100,0', 'vardetyp': 'Bästa skattning', 'vardetypkod': 'BE', 'ursprung': 'Värde framtaget med eget system', 'ursprungkod': 'S', 'publikation': 'SLV - Riktlinjer för livsmedel', 'metodtyp': 'Beräknad, omräkningsfaktor inkluderad', 'metodtypkod': 'T', 'metodindikator': 'Fettsyror beräknade från fettsyraprofil %', 'metodindikatorkod': 'MI0201', 'referenstyp': 'Rapport', 'referenstypkod': 'R'}, {'namn': 'Palmitinsyra C16:0', 'euroFIRkod': 'F16:0', 'forkortning': 'C16:0', 'varde': 9.2, 'enhet': 'g', 'viktGram': 100, 'berakning': '0,956*67,8*14,200/100,0', 'vardetyp': 'Bästa skattning', 'vardetypkod': 'BE', 'ursprung': 'Värde framtaget med eget system', 'ursprungkod': 'S', 'publikation': 'SLV - Riktlinjer för livsmedel', 'metodtyp': 'Beräknad, omräkningsfaktor inkluderad', 'metodtypkod': 'T', 'metodindikator': 'Fettsyror beräknade från fettsyraprofil %', 'metodindikatorkod': 'MI0201', 'referenstyp': 'Rapport', 'referenstypkod': 'R'}, {'namn': 'Myristinsyra C14:0', 'euroFIRkod': 'F14:0', 'forkortning': 'C14:0', 'varde': 0.0, 'enhet': 'g', 'viktGram': 100, 'berakning': '0,956*67,8*0,000/100,0', 'vardetyp': 'Bästa skattning', 'vardetypkod': 'BE', 'ursprung': 'Värde framtaget med eget system', 'ursprungkod': 'S', 'publikation': 'SLV - Riktlinjer för livsmedel', 'metodtyp': 'Beräknad, omräkningsfaktor inkluderad', 'metodtypkod': 'T', 'metodindikator': 'Fettsyror beräknade från fettsyraprofil %', 'metodindikatorkod': 'MI0201', 'referenstyp': 'Rapport', 'referenstypkod': 'R'}, {'namn': 'Laurinsyra C12:0', 'euroFIRkod': 'F12:0', 'forkortning': 'C12:0', 'varde': 0.0, 'enhet': 'g', 'viktGram': 100, 'berakning': '0,956*67,8*0,000/100,0', 'vardetyp': 'Bästa skattning', 'vardetypkod': 'BE', 'ursprung': 'Värde framtaget med eget system', 'ursprungkod': 'S', 'publikation': 'SLV - Riktlinjer för livsmedel', 'metodtyp': 'Beräknad, omräkningsfaktor inkluderad', 'metodtypkod': 'T', 'metodindikator': 'Fettsyror beräknade från fettsyraprofil %', 'metodindikatorkod': 'MI0201', 'referenstyp': 'Rapport', 'referenstypkod': 'R'}, {'namn': 'Betakaroten/β-Karoten', 'euroFIRkod': 'CARTB', 'forkortning': 'b-Kar', 'varde': 5, 'enhet': 'µg', 'viktGram': 100, 'vardetyp': 'Ett analysvärde av sammansatt prov', 'vardetypkod': 'AV', 'ursprung': 'Analys SLV', 'ursprungkod': 'O', 'publikation': 'Analysprotokoll Dnr 2018/00798', 'metodtyp': 'Analysresultat', 'metodtypkod': 'A', 'metodindikator': 'HPLC-DAD karotenoider', 'metodindikatorkod': 'MI1137', 'referenstyp': 'Rapport', 'referenstypkod': 'R'}, {'namn': 'Avfall (skal etc.)', 'euroFIRkod': 'WASTE', 'forkortning': 'Avfa', 'varde': 52, 'enhet': '%', 'viktGram': 100, 'vardetyp': 'Bästa skattning', 'vardetypkod': 'BE', 'ursprung': 'Livsmedelstabell', 'ursprungkod': 'F', 'publikation': 'SLV livsmedelstabell energi och näringsämnen 2002', 'metodtyp': 'Skattat värde', 'metodtypkod': 'IG', 'referenstyp': 'Rapport', 'referenstypkod': 'R'}, {'namn': 'Aska', 'euroFIRkod': 'ASH', 'forkortning': 'Aska', 'varde': 3.8, 'enhet': 'g', 'viktGram': 100, 'vardetyp': 'Ett analysvärde av sammansatt prov', 'vardetypkod': 'AV', 'ursprung': 'Analys, oberoende labb', 'ursprungkod': 'D', 'publikation': 'Analysprotokoll Dnr 2018/00798', 'metodtyp': 'Analysresultat', 'metodtypkod': 'A', 'metodindikator': 'Gravimetrisk metod'}, {'namn': 'Alkohol', 'euroFIRkod': 'ALC', 'forkortning': 'Alko', 'varde': 0.0, 'enhet': 'g', 'viktGram': 100, 'vardetyp': 'Logisk nolla', 'vardetypkod': 'LZ', 'ursprung': 'Annat ursprung', 'ursprungkod': 'E', 'publikation': 'SLV - Riktlinjer för livsmedel', 'metodtyp': 'Skattat logisk slutledning', 'metodtypkod': 'U'}]\n" + ] + }, + { + "data": { + "text/plain": [ + "[{'namn': 'Zink, Zn',\n", + " 'euroFIRkod': 'ZN',\n", + " 'forkortning': 'Zn',\n", + " 'varde': 3.8,\n", + " 'enhet': 'mg',\n", + " 'viktGram': 100,\n", + " 'vardetyp': 'Ett analysvärde av sammansatt prov',\n", + " 'vardetypkod': 'AV',\n", + " 'ursprung': 'Analys SLV',\n", + " 'ursprungkod': 'O',\n", + " 'publikation': 'Analysprotokoll Dnr 2018/00798',\n", + " 'metodtyp': 'Analysresultat',\n", + " 'metodtypkod': 'A',\n", + " 'metodindikator': 'ICP-MS',\n", + " 'metodindikatorkod': 'MI1209',\n", + " 'referenstyp': 'Rapport',\n", + " 'referenstypkod': 'R'},\n", + " {'namn': 'Vitamin E',\n", + " 'euroFIRkod': 'VITE',\n", + " 'forkortning': 'VitE',\n", + " 'varde': 6.1,\n", + " 'enhet': 'mg',\n", + " 'viktGram': 100,\n", + " 'berakning': '6,130',\n", + " 'vardetyp': 'Bästa skattning',\n", + " 'vardetypkod': 'BE',\n", + " 'ursprung': 'Värde framtaget med eget system',\n", + " 'ursprungkod': 'S',\n", + " 'publikation': 'SLV - Riktlinjer för livsmedel',\n", + " 'metodtyp': 'Summering av beståndsdelar',\n", + " 'metodtypkod': 'S',\n", + " 'metodindikator': 'Vit E från alfatokoferol',\n", + " 'metodindikatorkod': 'MI0368',\n", + " 'referenstyp': 'Rapport',\n", + " 'referenstypkod': 'R'},\n", + " {'namn': 'Vitamin D',\n", + " 'euroFIRkod': 'VITD',\n", + " 'forkortning': 'VitD',\n", + " 'varde': 0.0,\n", + " 'enhet': 'µg',\n", + " 'viktGram': 100,\n", + " 'berakning': '0,000+0,000',\n", + " 'vardetyp': 'Bästa skattning',\n", + " 'vardetypkod': 'BE',\n", + " 'ursprung': 'Värde framtaget med eget system',\n", + " 'ursprungkod': 'S',\n", + " 'publikation': 'SLV - Riktlinjer för livsmedel',\n", + " 'metodtyp': 'Summering av beståndsdelar',\n", + " 'metodtypkod': 'S',\n", + " 'metodindikator': 'Vit D från D2 och D3',\n", + " 'metodindikatorkod': 'MI0351',\n", + " 'referenstyp': 'Rapport',\n", + " 'referenstypkod': 'R'},\n", + " {'namn': 'Vitamin C',\n", + " 'euroFIRkod': 'VITC',\n", + " 'forkortning': 'VitC',\n", + " 'varde': 0.0,\n", + " 'enhet': 'mg',\n", + " 'viktGram': 100,\n", + " 'vardetyp': 'Bästa skattning',\n", + " 'vardetypkod': 'BE',\n", + " 'ursprung': 'Livsmedelstabell',\n", + " 'ursprungkod': 'F',\n", + " 'publikation': \"McCance and Widdowson's composition of foods integrated dataset 2019\",\n", + " 'metodtyp': 'Allmän analys',\n", + " 'metodtypkod': 'AG',\n", + " 'referenstyp': 'Rapport',\n", + " 'referenstypkod': 'R',\n", + " 'kommentar': 'Food Code 14-871'},\n", + " {'namn': 'Vitamin B6',\n", + " 'euroFIRkod': 'VITB6',\n", + " 'forkortning': 'VitB6',\n", + " 'varde': 0.33,\n", + " 'enhet': 'mg',\n", + " 'viktGram': 100,\n", + " 'vardetyp': 'Ett analysvärde av sammansatt prov',\n", + " 'vardetypkod': 'AV',\n", + " 'ursprung': 'Analys SLV',\n", + " 'ursprungkod': 'O',\n", + " 'publikation': 'Analysprotokoll Dnr 2018/00798',\n", + " 'metodtyp': 'Analysresultat',\n", + " 'metodtypkod': 'A',\n", + " 'metodindikator': 'HPLC-FLD tiamin, riboflavin, vitamin B6, vitamin C',\n", + " 'referenstyp': 'Rapport',\n", + " 'referenstypkod': 'R'},\n", + " {'namn': 'Vitamin B12',\n", + " 'euroFIRkod': 'VITB12',\n", + " 'forkortning': 'VitB12',\n", + " 'varde': 0.0,\n", + " 'enhet': 'µg',\n", + " 'viktGram': 100,\n", + " 'vardetyp': 'Logisk nolla',\n", + " 'vardetypkod': 'LZ',\n", + " 'ursprung': 'Annat ursprung',\n", + " 'ursprungkod': 'E',\n", + " 'publikation': 'SLV - Riktlinjer för livsmedel',\n", + " 'metodtyp': 'Skattat logisk slutledning',\n", + " 'metodtypkod': 'U',\n", + " 'referenstyp': 'Rapport',\n", + " 'referenstypkod': 'R'},\n", + " {'namn': 'Vitamin A',\n", + " 'euroFIRkod': 'VITA',\n", + " 'forkortning': 'VitA',\n", + " 'varde': 0.6,\n", + " 'enhet': 'RE/µg',\n", + " 'viktGram': 100,\n", + " 'berakning': '0,000+5,400/12+(2,300+0,000)/24,0',\n", + " 'vardetyp': 'Bästa skattning',\n", + " 'vardetypkod': 'BE',\n", + " 'ursprung': 'Värde framtaget med eget system',\n", + " 'ursprungkod': 'S',\n", + " 'publikation': 'SLV - Riktlinjer för livsmedel',\n", + " 'metodtyp': 'Beräknad, omräkningsfaktor inkluderad',\n", + " 'metodtypkod': 'T',\n", + " 'metodindikator': 'Vitamin A aktivitet (RAE)',\n", + " 'metodindikatorkod': 'MI0324',\n", + " 'referenstyp': 'Rapport',\n", + " 'referenstypkod': 'R'},\n", + " {'namn': 'Vatten',\n", + " 'euroFIRkod': 'WATER',\n", + " 'forkortning': 'Vatt',\n", + " 'varde': 1.8,\n", + " 'enhet': 'g',\n", + " 'viktGram': 100,\n", + " 'vardetyp': 'Ett analysvärde av sammansatt prov',\n", + " 'vardetypkod': 'AV',\n", + " 'ursprung': 'Analys, oberoende labb',\n", + " 'ursprungkod': 'D',\n", + " 'publikation': 'Analysprotokoll Dnr 2018/00798',\n", + " 'metodtyp': 'Analysresultat',\n", + " 'metodtypkod': 'A',\n", + " 'metodindikator': 'Gravimetrisk metod'},\n", + " {'namn': 'Tiamin',\n", + " 'euroFIRkod': 'THIA',\n", + " 'forkortning': 'Tiam',\n", + " 'varde': 0.73,\n", + " 'enhet': 'mg',\n", + " 'viktGram': 100,\n", + " 'vardetyp': 'Ett analysvärde av sammansatt prov',\n", + " 'vardetypkod': 'AV',\n", + " 'ursprung': 'Analys SLV',\n", + " 'ursprungkod': 'O',\n", + " 'publikation': 'Analysprotokoll Dnr 2018/00798',\n", + " 'metodtyp': 'Analysresultat',\n", + " 'metodtypkod': 'A',\n", + " 'metodindikator': 'HPLC-FLD tiamin, riboflavin, vitamin B6, vitamin C',\n", + " 'referenstyp': 'Rapport',\n", + " 'referenstypkod': 'R'},\n", + " {'namn': 'Tillsatt socker',\n", + " 'euroFIRkod': 'SUGAD',\n", + " 'forkortning': 'Socker/t',\n", + " 'varde': 0,\n", + " 'enhet': 'g',\n", + " 'viktGram': 100,\n", + " 'vardetyp': 'Logisk nolla',\n", + " 'vardetypkod': 'LZ',\n", + " 'ursprung': 'Värde framtaget med eget system',\n", + " 'ursprungkod': 'S',\n", + " 'publikation': 'SLV - Riktlinjer för livsmedel',\n", + " 'metodtyp': 'Skattat logisk slutledning',\n", + " 'metodtypkod': 'U',\n", + " 'referenstyp': 'Rapport',\n", + " 'referenstypkod': 'R'},\n", + " {'namn': 'Fritt socker',\n", + " 'euroFIRkod': 'SUGFR',\n", + " 'forkortning': 'Socker/f',\n", + " 'varde': 0,\n", + " 'enhet': 'g',\n", + " 'viktGram': 100,\n", + " 'vardetyp': 'Logisk nolla',\n", + " 'vardetypkod': 'LZ',\n", + " 'ursprung': 'Värde framtaget med eget system',\n", + " 'ursprungkod': 'S',\n", + " 'publikation': 'SLV - Riktlinjer för livsmedel',\n", + " 'metodtyp': 'Skattat logisk slutledning',\n", + " 'metodtypkod': 'U',\n", + " 'referenstyp': 'Rapport',\n", + " 'referenstypkod': 'R'},\n", + " {'namn': 'Selen, Se',\n", + " 'euroFIRkod': 'SE',\n", + " 'forkortning': 'Se',\n", + " 'varde': 225.0,\n", + " 'enhet': 'µg',\n", + " 'viktGram': 100,\n", + " 'vardetyp': 'Ett analysvärde av sammansatt prov',\n", + " 'vardetypkod': 'AV',\n", + " 'ursprung': 'Analys, oberoende labb',\n", + " 'ursprungkod': 'D',\n", + " 'publikation': 'Analysprotokoll Dnr 2018/00798',\n", + " 'metodtyp': 'Analysresultat',\n", + " 'metodtypkod': 'A',\n", + " 'metodindikator': 'ICP-SFMS, mineraler',\n", + " 'metodindikatorkod': '',\n", + " 'referenstyp': 'Rapport',\n", + " 'referenstypkod': 'R'},\n", + " {'namn': 'Sackaros',\n", + " 'euroFIRkod': 'SUCS',\n", + " 'forkortning': 'Sack',\n", + " 'varde': 1.8,\n", + " 'enhet': 'g',\n", + " 'viktGram': 100,\n", + " 'vardetyp': 'Ett analysvärde av sammansatt prov',\n", + " 'vardetypkod': 'AV',\n", + " 'ursprung': 'Analys, oberoende labb',\n", + " 'ursprungkod': 'D',\n", + " 'publikation': 'Analysprotokoll Dnr 2018/00798',\n", + " 'metodtyp': 'Analysresultat',\n", + " 'metodtypkod': 'A',\n", + " 'metodindikator': 'Kromatografi',\n", + " 'metodindikatorkod': 'MI1144',\n", + " 'referenstyp': 'Rapport',\n", + " 'referenstypkod': 'R'},\n", + " {'namn': 'Riboflavin',\n", + " 'euroFIRkod': 'RIBF',\n", + " 'forkortning': 'Ribo',\n", + " 'varde': 0.0,\n", + " 'enhet': 'mg',\n", + " 'viktGram': 100,\n", + " 'vardetyp': 'Spår',\n", + " 'vardetypkod': 'TR',\n", + " 'ursprung': 'Analys SLV',\n", + " 'ursprungkod': 'O',\n", + " 'publikation': 'Analysprotokoll Dnr 2018/00798',\n", + " 'metodtyp': 'Analysresultat',\n", + " 'metodtypkod': 'A',\n", + " 'metodindikator': 'HPLC-FLD tiamin, riboflavin, vitamin B6, vitamin C',\n", + " 'referenstyp': 'Rapport',\n", + " 'referenstypkod': 'R'},\n", + " {'namn': 'Retinol',\n", + " 'euroFIRkod': 'RETOL',\n", + " 'forkortning': 'Reti',\n", + " 'varde': 0.0,\n", + " 'enhet': 'µg',\n", + " 'viktGram': 100,\n", + " 'berakning': '0,000',\n", + " 'vardetyp': 'Bästa skattning',\n", + " 'vardetypkod': 'BE',\n", + " 'ursprung': 'Värde framtaget med eget system',\n", + " 'ursprungkod': 'S',\n", + " 'publikation': 'SLV - Riktlinjer för livsmedel',\n", + " 'metodtyp': 'Summering av beståndsdelar',\n", + " 'metodtypkod': 'S',\n", + " 'metodindikator': 'Retinol beräknat enbart från transretinol',\n", + " 'metodindikatorkod': '',\n", + " 'referenstyp': 'Rapport',\n", + " 'referenstypkod': 'R'},\n", + " {'namn': 'Protein',\n", + " 'euroFIRkod': 'PROT',\n", + " 'forkortning': 'Prot',\n", + " 'varde': 14.2,\n", + " 'enhet': 'g',\n", + " 'viktGram': 100,\n", + " 'berakning': '2,600*5,46',\n", + " 'vardetyp': 'Bästa skattning',\n", + " 'vardetypkod': 'BE',\n", + " 'ursprung': 'Värde framtaget med eget system',\n", + " 'ursprungkod': 'S',\n", + " 'publikation': 'SLV - Riktlinjer för livsmedel',\n", + " 'metodtyp': 'Beräknad, omräkningsfaktor inkluderad',\n", + " 'metodtypkod': 'T',\n", + " 'metodindikator': 'Protein beräknat från proteinkväve',\n", + " 'metodindikatorkod': 'MI0122',\n", + " 'referenstyp': 'Rapport',\n", + " 'referenstypkod': 'R'},\n", + " {'namn': 'Summa fleromättade fettsyror',\n", + " 'euroFIRkod': 'FAPU',\n", + " 'forkortning': 'Pole',\n", + " 'varde': 29.2,\n", + " 'enhet': 'g',\n", + " 'viktGram': 100,\n", + " 'berakning': '0,956*67,8*(0,000+0,000+0,000+45,000+0,000+0,000+0,000+0,000+0,000+0,000+0,000+0,000+0,000+0,000+0,000+0,000+0,000+0,000+0,000+0,000+0,000)/100,0',\n", + " 'vardetyp': 'Bästa skattning',\n", + " 'vardetypkod': 'BE',\n", + " 'ursprung': 'Värde framtaget med eget system',\n", + " 'ursprungkod': 'S',\n", + " 'publikation': 'SLV - Riktlinjer för livsmedel',\n", + " 'metodtyp': 'Beräknad, omräkningsfaktor inkluderad',\n", + " 'metodtypkod': 'T',\n", + " 'metodindikator': 'Fettsyror beräknade från fettsyraprofil %',\n", + " 'metodindikatorkod': 'MI0201',\n", + " 'referenstyp': 'Rapport',\n", + " 'referenstypkod': 'R'},\n", + " {'namn': 'Fosfor, P',\n", + " 'euroFIRkod': 'P',\n", + " 'forkortning': 'P',\n", + " 'varde': 723,\n", + " 'enhet': 'mg',\n", + " 'viktGram': 100,\n", + " 'vardetyp': 'Ett analysvärde av sammansatt prov',\n", + " 'vardetypkod': 'AV',\n", + " 'ursprung': 'Analys, oberoende labb',\n", + " 'ursprungkod': 'D',\n", + " 'publikation': 'Analysprotokoll Dnr 2018/00798',\n", + " 'metodtyp': 'Analysresultat',\n", + " 'metodtypkod': 'A',\n", + " 'metodindikator': 'ICP-SFMS, mineraler',\n", + " 'metodindikatorkod': '',\n", + " 'referenstyp': 'Rapport',\n", + " 'referenstypkod': 'R'},\n", + " {'namn': 'Niacinekvivalenter',\n", + " 'euroFIRkod': 'NIAEQ',\n", + " 'forkortning': 'Niek',\n", + " 'varde': 2.9,\n", + " 'enhet': 'NE/mg',\n", + " 'viktGram': 100,\n", + " 'berakning': '0,484+14,20*10,0*1/60,0',\n", + " 'vardetyp': 'Bästa skattning',\n", + " 'vardetypkod': 'BE',\n", + " 'ursprung': 'Värde framtaget med eget system',\n", + " 'ursprungkod': 'S',\n", + " 'publikation': 'SLV - Riktlinjer för livsmedel',\n", + " 'metodtyp': 'Beräknad, omräkningsfaktor inkluderad',\n", + " 'metodtypkod': 'T',\n", + " 'metodindikator': 'Niacinekvivalenter',\n", + " 'metodindikatorkod': 'MI0421',\n", + " 'referenstyp': 'Rapport',\n", + " 'referenstypkod': 'R'},\n", + " {'namn': 'Niacin',\n", + " 'euroFIRkod': 'NIA',\n", + " 'forkortning': 'Niac',\n", + " 'varde': 0.48,\n", + " 'enhet': 'mg',\n", + " 'viktGram': 100,\n", + " 'vardetyp': 'Ett analysvärde av sammansatt prov',\n", + " 'vardetypkod': 'AV',\n", + " 'ursprung': 'Analys SLV',\n", + " 'ursprungkod': 'O',\n", + " 'publikation': 'Analysprotokoll Dnr 2018/00798',\n", + " 'metodtyp': 'Analysresultat',\n", + " 'metodtypkod': 'A',\n", + " 'metodindikator': 'Lactobacillus plantarum, niacin',\n", + " 'metodindikatorkod': '',\n", + " 'referenstyp': 'Rapport',\n", + " 'referenstypkod': 'R'},\n", + " {'namn': 'Salt, NaCl',\n", + " 'euroFIRkod': 'NACL',\n", + " 'forkortning': 'NaCl',\n", + " 'varde': 0.0,\n", + " 'enhet': 'g',\n", + " 'viktGram': 100,\n", + " 'berakning': '0,000*2,5/1000,0',\n", + " 'vardetyp': 'Bästa skattning',\n", + " 'vardetypkod': 'BE',\n", + " 'ursprung': 'Värde framtaget med eget system',\n", + " 'ursprungkod': 'S',\n", + " 'publikation': 'SLV - Riktlinjer för livsmedel',\n", + " 'metodtyp': 'Beräknad, omräkningsfaktor inkluderad',\n", + " 'metodtypkod': 'T',\n", + " 'metodindikator': 'Salt beräknat från natrium (totalt)',\n", + " 'metodindikatorkod': 'MI0120',\n", + " 'referenstyp': 'Rapport',\n", + " 'referenstypkod': 'R'},\n", + " {'namn': 'Natrium, Na',\n", + " 'euroFIRkod': 'NA',\n", + " 'forkortning': 'Na',\n", + " 'varde': 0,\n", + " 'enhet': 'mg',\n", + " 'viktGram': 100,\n", + " 'vardetyp': 'Spår',\n", + " 'vardetypkod': 'TR',\n", + " 'ursprung': 'Analys, oberoende labb',\n", + " 'ursprungkod': 'D',\n", + " 'publikation': 'Analysprotokoll Dnr 2018/00798',\n", + " 'metodtyp': 'Analysresultat',\n", + " 'metodtypkod': 'A',\n", + " 'metodindikator': 'ICP-SFMS, mineraler',\n", + " 'metodindikatorkod': '',\n", + " 'referenstyp': 'Rapport',\n", + " 'referenstypkod': 'R'},\n", + " {'namn': 'Monosackarider',\n", + " 'euroFIRkod': 'MNSAC',\n", + " 'forkortning': 'Msac',\n", + " 'varde': 0.0,\n", + " 'enhet': 'g',\n", + " 'viktGram': 100,\n", + " 'berakning': '0,000+0,000',\n", + " 'vardetyp': 'Bästa skattning',\n", + " 'vardetypkod': 'BE',\n", + " 'ursprung': 'Värde framtaget med eget system',\n", + " 'ursprungkod': 'S',\n", + " 'publikation': 'SLV - Riktlinjer för livsmedel',\n", + " 'metodtyp': 'Summering av beståndsdelar',\n", + " 'metodtypkod': 'S',\n", + " 'metodindikator': 'Monosackarider beräknade som summan av glukos och fruktos',\n", + " 'metodindikatorkod': '',\n", + " 'referenstyp': 'Rapport',\n", + " 'referenstypkod': 'R'},\n", + " {'namn': 'Sockerarter, totalt',\n", + " 'euroFIRkod': 'SUGAR',\n", + " 'forkortning': 'Mono/disack',\n", + " 'varde': 1.8,\n", + " 'enhet': 'g',\n", + " 'viktGram': 100,\n", + " 'berakning': '0,000+0,000+1,800+0,000+0,000',\n", + " 'vardetyp': 'Bästa skattning',\n", + " 'vardetypkod': 'BE',\n", + " 'ursprung': 'Värde framtaget med eget system',\n", + " 'ursprungkod': 'S',\n", + " 'publikation': 'SLV - Riktlinjer för livsmedel',\n", + " 'metodtyp': 'Summering av beståndsdelar',\n", + " 'metodtypkod': 'S',\n", + " 'metodindikator': 'Summa sockerarter beräknade som summan av glukos, fruktos, laktos, maltos och sackaros',\n", + " 'metodindikatorkod': 'MI0153',\n", + " 'referenstyp': 'Rapport',\n", + " 'referenstypkod': 'R'},\n", + " {'namn': 'Summa enkelomättade fettsyror',\n", + " 'euroFIRkod': 'FAMS',\n", + " 'forkortning': 'Mone',\n", + " 'varde': 20.1,\n", + " 'enhet': 'g',\n", + " 'viktGram': 100,\n", + " 'berakning': '0,956*67,8*(0,000+0,000+0,300+0,000+30,700+0,000+0,000+0,000)/100,0',\n", + " 'vardetyp': 'Bästa skattning',\n", + " 'vardetypkod': 'BE',\n", + " 'ursprung': 'Värde framtaget med eget system',\n", + " 'ursprungkod': 'S',\n", + " 'publikation': 'SLV - Riktlinjer för livsmedel',\n", + " 'metodtyp': 'Beräknad, omräkningsfaktor inkluderad',\n", + " 'metodtypkod': 'T',\n", + " 'metodindikator': 'Fettsyror beräknade från fettsyraprofil %',\n", + " 'metodindikatorkod': 'MI0201',\n", + " 'referenstyp': 'Rapport',\n", + " 'referenstypkod': 'R'},\n", + " {'namn': 'Magnesium, Mg',\n", + " 'euroFIRkod': 'MG',\n", + " 'forkortning': 'Mg',\n", + " 'varde': 400,\n", + " 'enhet': 'mg',\n", + " 'viktGram': 100,\n", + " 'vardetyp': 'Ett analysvärde av sammansatt prov',\n", + " 'vardetypkod': 'AV',\n", + " 'ursprung': 'Analys, oberoende labb',\n", + " 'ursprungkod': 'D',\n", + " 'publikation': 'Analysprotokoll Dnr 2018/00798',\n", + " 'metodtyp': 'Analysresultat',\n", + " 'metodtypkod': 'A',\n", + " 'metodindikator': 'ICP-SFMS, mineraler',\n", + " 'metodindikatorkod': '',\n", + " 'referenstyp': 'Rapport',\n", + " 'referenstypkod': 'R'},\n", + " {'namn': 'Summa mättade fettsyror',\n", + " 'euroFIRkod': 'FASAT',\n", + " 'forkortning': 'Mfet',\n", + " 'varde': 15.4,\n", + " 'enhet': 'g',\n", + " 'viktGram': 100,\n", + " 'berakning': '0,956*67,8*(0,000+0,000+0,000+0,000+0,000+0,000+0,000+0,000+0,000+0,000+0,000+0,000+14,200+0,000+0,000+0,000+0,000+0,000+9,300+0,200+0,000+0,00+0,000)/100,0',\n", + " 'vardetyp': 'Bästa skattning',\n", + " 'vardetypkod': 'BE',\n", + " 'ursprung': 'Värde framtaget med eget system',\n", + " 'ursprungkod': 'S',\n", + " 'publikation': 'SLV - Riktlinjer för livsmedel',\n", + " 'metodtyp': 'Beräknad, omräkningsfaktor inkluderad',\n", + " 'metodtypkod': 'T',\n", + " 'metodindikator': 'Fettsyror beräknade från fettsyraprofil %',\n", + " 'metodindikatorkod': 'MI0201',\n", + " 'referenstyp': 'Rapport',\n", + " 'referenstypkod': 'R'},\n", + " {'namn': 'Kolhydrater, tillgängliga',\n", + " 'euroFIRkod': 'CHO',\n", + " 'forkortning': 'Kolh',\n", + " 'varde': 0.0,\n", + " 'enhet': 'g',\n", + " 'viktGram': 100,\n", + " 'berakning': '100,0-(1,770+3,760+14,20+67,8+13,7+0,000)',\n", + " 'vardetyp': 'Bästa skattning',\n", + " 'vardetypkod': 'BE',\n", + " 'ursprung': 'Värde framtaget med eget system',\n", + " 'ursprungkod': 'S',\n", + " 'publikation': 'SLV - Riktlinjer för livsmedel',\n", + " 'metodtyp': 'Summering av beståndsdelar',\n", + " 'metodtypkod': 'S',\n", + " 'metodindikator': 'Kolhydrater, tillgängliga beräknat som rest',\n", + " 'metodindikatorkod': 'MI0183',\n", + " 'referenstyp': 'Rapport',\n", + " 'referenstypkod': 'R'},\n", + " {'namn': 'Kolesterol',\n", + " 'euroFIRkod': 'CHORL',\n", + " 'forkortning': 'Kole',\n", + " 'varde': 0.0,\n", + " 'enhet': 'mg',\n", + " 'viktGram': 100,\n", + " 'vardetyp': 'Logisk nolla',\n", + " 'vardetypkod': 'LZ',\n", + " 'ursprung': 'Annat ursprung',\n", + " 'ursprungkod': 'E',\n", + " 'publikation': 'SLV - Riktlinjer för livsmedel',\n", + " 'metodtyp': 'Skattat logisk slutledning',\n", + " 'metodtypkod': 'U'},\n", + " {'namn': 'Kalium, K',\n", + " 'euroFIRkod': 'K',\n", + " 'forkortning': 'K',\n", + " 'varde': 623,\n", + " 'enhet': 'mg',\n", + " 'viktGram': 100,\n", + " 'vardetyp': 'Ett analysvärde av sammansatt prov',\n", + " 'vardetypkod': 'AV',\n", + " 'ursprung': 'Analys, oberoende labb',\n", + " 'ursprungkod': 'D',\n", + " 'publikation': 'Analysprotokoll Dnr 2018/00798',\n", + " 'metodtyp': 'Analysresultat',\n", + " 'metodtypkod': 'A',\n", + " 'metodindikator': 'ICP-SFMS, mineraler',\n", + " 'metodindikatorkod': '',\n", + " 'referenstyp': 'Rapport',\n", + " 'referenstypkod': 'R'},\n", + " {'namn': 'Jod, I',\n", + " 'euroFIRkod': 'ID',\n", + " 'forkortning': 'I',\n", + " 'varde': 0.0,\n", + " 'enhet': 'µg',\n", + " 'viktGram': 100,\n", + " 'vardetyp': 'Spår',\n", + " 'vardetypkod': 'TR',\n", + " 'ursprung': 'Analys, oberoende labb',\n", + " 'ursprungkod': 'D',\n", + " 'publikation': 'Analysprotokoll Dnr 2018/00798',\n", + " 'metodtyp': 'Analysresultat',\n", + " 'metodtypkod': 'A',\n", + " 'metodindikator': 'ICP-SFMS, mineraler',\n", + " 'metodindikatorkod': '',\n", + " 'referenstyp': 'Rapport',\n", + " 'referenstypkod': 'R'},\n", + " {'namn': 'Fullkorn totalt',\n", + " 'euroFIRkod': 'WHOLET',\n", + " 'forkortning': 'Fullk/tot',\n", + " 'varde': 0,\n", + " 'enhet': 'g',\n", + " 'viktGram': 100,\n", + " 'berakning': '0,000+0,000+0,000+0,000+0,000',\n", + " 'vardetyp': 'Bästa skattning',\n", + " 'vardetypkod': 'BE',\n", + " 'ursprung': 'Värde framtaget med eget system',\n", + " 'ursprungkod': 'S',\n", + " 'publikation': 'SLV - Riktlinjer för livsmedel',\n", + " 'metodtyp': 'Summering av beståndsdelar',\n", + " 'metodtypkod': 'S',\n", + " 'metodindikator': 'Skattat från ingrediensförteckning',\n", + " 'referenstyp': 'Rapport',\n", + " 'referenstypkod': 'R'},\n", + " {'namn': 'Folat',\n", + " 'euroFIRkod': 'FOL',\n", + " 'forkortning': 'Folat',\n", + " 'varde': 5.3,\n", + " 'enhet': 'µg',\n", + " 'viktGram': 100,\n", + " 'vardetyp': 'Ett analysvärde av sammansatt prov',\n", + " 'vardetypkod': 'AV',\n", + " 'ursprung': 'Analys SLV',\n", + " 'ursprungkod': 'O',\n", + " 'publikation': 'Analysprotokoll Dnr 2018/00798',\n", + " 'metodtyp': 'Analysresultat',\n", + " 'metodtypkod': 'A',\n", + " 'metodindikator': 'Lactobacillus plantarum, niacin',\n", + " 'metodindikatorkod': '',\n", + " 'referenstyp': 'Rapport',\n", + " 'referenstypkod': 'R'},\n", + " {'namn': 'Fibrer',\n", + " 'euroFIRkod': 'FIBT',\n", + " 'forkortning': 'Fibe',\n", + " 'varde': 13.7,\n", + " 'enhet': 'g',\n", + " 'viktGram': 100,\n", + " 'vardetyp': 'Ett analysvärde av sammansatt prov',\n", + " 'vardetypkod': 'AV',\n", + " 'ursprung': 'Analys, oberoende labb',\n", + " 'ursprungkod': 'D',\n", + " 'publikation': 'Analysprotokoll Dnr 2018/00798',\n", + " 'metodtyp': 'Analysresultat',\n", + " 'metodtypkod': 'A',\n", + " 'metodindikator': 'Enzymatisk metod',\n", + " 'metodindikatorkod': 'MI1218'},\n", + " {'namn': 'Fett, totalt',\n", + " 'euroFIRkod': 'FAT',\n", + " 'forkortning': 'Fett',\n", + " 'varde': 67.8,\n", + " 'enhet': 'g',\n", + " 'viktGram': 100,\n", + " 'vardetyp': 'Ett analysvärde av sammansatt prov',\n", + " 'vardetypkod': 'AV',\n", + " 'ursprung': 'Analys, oberoende labb',\n", + " 'ursprungkod': 'D',\n", + " 'publikation': 'Analysprotokoll Dnr 2018/00798',\n", + " 'metodtyp': 'Analysresultat',\n", + " 'metodtypkod': 'A',\n", + " 'metodindikator': 'NMR, fett',\n", + " 'metodindikatorkod': 'MI1165'},\n", + " {'namn': 'Järn, Fe',\n", + " 'euroFIRkod': 'FE',\n", + " 'forkortning': 'Fe',\n", + " 'varde': 2.4,\n", + " 'enhet': 'mg',\n", + " 'viktGram': 100,\n", + " 'vardetyp': 'Ett analysvärde av sammansatt prov',\n", + " 'vardetypkod': 'AV',\n", + " 'ursprung': 'Analys SLV',\n", + " 'ursprungkod': 'O',\n", + " 'publikation': 'Analysprotokoll Dnr 2018/00798',\n", + " 'metodtyp': 'Analysresultat',\n", + " 'metodtypkod': 'A',\n", + " 'metodindikator': 'ICP-MS',\n", + " 'metodindikatorkod': 'MI1209',\n", + " 'referenstyp': 'Rapport',\n", + " 'referenstypkod': 'R'},\n", + " {'namn': 'Energi (kJ)',\n", + " 'euroFIRkod': 'ENERC',\n", + " 'forkortning': 'Ener',\n", + " 'varde': 2860,\n", + " 'enhet': 'kJ',\n", + " 'viktGram': 100,\n", + " 'berakning': '0,0*17,0+14,20*17,0+67,8*37,0+0,000*29,0+13,7*8,0',\n", + " 'vardetyp': 'Bästa skattning',\n", + " 'vardetypkod': 'BE',\n", + " 'ursprung': 'Värde framtaget med eget system',\n", + " 'ursprungkod': 'S',\n", + " 'publikation': 'SLV - Riktlinjer för livsmedel',\n", + " 'metodtyp': 'Beräknad, omräkningsfaktor inkluderad',\n", + " 'metodtypkod': 'T',\n", + " 'metodindikator': 'Energiberäkning kJ NNR',\n", + " 'metodindikatorkod': 'MI0110',\n", + " 'referenstyp': 'Rapport',\n", + " 'referenstypkod': 'R'},\n", + " {'namn': 'Energi (kcal)',\n", + " 'euroFIRkod': 'ENERC',\n", + " 'forkortning': 'Ener',\n", + " 'varde': 683,\n", + " 'enhet': 'kcal',\n", + " 'viktGram': 100,\n", + " 'berakning': '2859,60*0,239',\n", + " 'vardetyp': 'Bästa skattning',\n", + " 'vardetypkod': 'BE',\n", + " 'ursprung': 'Värde framtaget med eget system',\n", + " 'ursprungkod': 'S',\n", + " 'publikation': 'SLV - Riktlinjer för livsmedel',\n", + " 'metodtyp': 'Beräknad, omräkningsfaktor inkluderad',\n", + " 'metodtypkod': 'T',\n", + " 'metodindikator': 'Energiberäkning kcal enligt NNR',\n", + " 'metodindikatorkod': 'MI0117',\n", + " 'referenstyp': 'Rapport',\n", + " 'referenstypkod': 'R'},\n", + " {'namn': 'Disackarider',\n", + " 'euroFIRkod': 'DISAC',\n", + " 'forkortning': 'Dsac',\n", + " 'varde': 1.8,\n", + " 'enhet': 'g',\n", + " 'viktGram': 100,\n", + " 'berakning': '0,000+0,000+1,800',\n", + " 'vardetyp': 'Bästa skattning',\n", + " 'vardetypkod': 'BE',\n", + " 'ursprung': 'Värde framtaget med eget system',\n", + " 'ursprungkod': 'S',\n", + " 'publikation': 'SLV - Riktlinjer för livsmedel',\n", + " 'metodtyp': 'Summering av beståndsdelar',\n", + " 'metodtypkod': 'S',\n", + " 'metodindikator': 'Disackarider beräknade som summan av laktos, maltos och sackaros',\n", + " 'metodindikatorkod': '',\n", + " 'referenstyp': 'Rapport',\n", + " 'referenstypkod': 'R'},\n", + " {'namn': 'Kalcium, Ca',\n", + " 'euroFIRkod': 'CA',\n", + " 'forkortning': 'Ca',\n", + " 'varde': 176,\n", + " 'enhet': 'mg',\n", + " 'viktGram': 100,\n", + " 'vardetyp': 'Ett analysvärde av sammansatt prov',\n", + " 'vardetypkod': 'AV',\n", + " 'ursprung': 'Analys, oberoende labb',\n", + " 'ursprungkod': 'D',\n", + " 'publikation': 'Analysprotokoll Dnr 2018/00798',\n", + " 'metodtyp': 'Analysresultat',\n", + " 'metodtypkod': 'A',\n", + " 'metodindikator': 'ICP-SFMS, mineraler',\n", + " 'metodindikatorkod': '',\n", + " 'referenstyp': 'Rapport',\n", + " 'referenstypkod': 'R'},\n", + " {'namn': 'Fettsyra 4:0-10:0',\n", + " 'euroFIRkod': 'F4-10:0',\n", + " 'forkortning': 'C4:0-C10:0',\n", + " 'varde': 0.0,\n", + " 'enhet': 'g',\n", + " 'viktGram': 100,\n", + " 'berakning': '0,956*67,8*(0,000+0,000+0,000+0,000)/100,0',\n", + " 'vardetyp': 'Bästa skattning',\n", + " 'vardetypkod': 'BE',\n", + " 'ursprung': 'Värde framtaget med eget system',\n", + " 'ursprungkod': 'S',\n", + " 'publikation': 'SLV - Riktlinjer för livsmedel',\n", + " 'metodtyp': 'Beräknad, omräkningsfaktor inkluderad',\n", + " 'metodtypkod': 'T',\n", + " 'metodindikator': 'Fettsyror beräknade från fettsyraprofil %',\n", + " 'metodindikatorkod': 'MI0201',\n", + " 'referenstyp': 'Rapport',\n", + " 'referenstypkod': 'R'},\n", + " {'namn': 'DHA (C22:6)',\n", + " 'euroFIRkod': 'F22:6',\n", + " 'forkortning': 'C22:6',\n", + " 'varde': 0.0,\n", + " 'enhet': 'g',\n", + " 'viktGram': 100,\n", + " 'berakning': '0,956*67,8*(0,000)/100,0',\n", + " 'vardetyp': 'Bästa skattning',\n", + " 'vardetypkod': 'BE',\n", + " 'ursprung': 'Värde framtaget med eget system',\n", + " 'ursprungkod': 'S',\n", + " 'publikation': 'SLV - Riktlinjer för livsmedel',\n", + " 'metodtyp': 'Beräknad, omräkningsfaktor inkluderad',\n", + " 'metodtypkod': 'T',\n", + " 'metodindikator': 'Fettsyror beräknade från fettsyraprofil %',\n", + " 'metodindikatorkod': 'MI0201',\n", + " 'referenstyp': 'Rapport',\n", + " 'referenstypkod': 'R'},\n", + " {'namn': 'DPA (C22:5)',\n", + " 'euroFIRkod': 'F22:5',\n", + " 'forkortning': 'C22:5',\n", + " 'varde': 0.0,\n", + " 'enhet': 'g',\n", + " 'viktGram': 100,\n", + " 'berakning': '0,956*67,8*(0,000+0,000)/100,0',\n", + " 'vardetyp': 'Bästa skattning',\n", + " 'vardetypkod': 'BE',\n", + " 'ursprung': 'Värde framtaget med eget system',\n", + " 'ursprungkod': 'S',\n", + " 'publikation': 'SLV - Riktlinjer för livsmedel',\n", + " 'metodtyp': 'Beräknad, omräkningsfaktor inkluderad',\n", + " 'metodtypkod': 'T',\n", + " 'metodindikator': 'Fettsyror beräknade från fettsyraprofil %',\n", + " 'metodindikatorkod': 'MI0201',\n", + " 'referenstyp': 'Rapport',\n", + " 'referenstypkod': 'R'},\n", + " {'namn': 'EPA (C20:5)',\n", + " 'euroFIRkod': 'F20:5',\n", + " 'forkortning': 'C20:5',\n", + " 'varde': 0.0,\n", + " 'enhet': 'g',\n", + " 'viktGram': 100,\n", + " 'berakning': '0,956*67,8*(0,000)/100,0',\n", + " 'vardetyp': 'Bästa skattning',\n", + " 'vardetypkod': 'BE',\n", + " 'ursprung': 'Värde framtaget med eget system',\n", + " 'ursprungkod': 'S',\n", + " 'publikation': 'SLV - Riktlinjer för livsmedel',\n", + " 'metodtyp': 'Beräknad, omräkningsfaktor inkluderad',\n", + " 'metodtypkod': 'T',\n", + " 'metodindikator': 'Fettsyror beräknade från fettsyraprofil %',\n", + " 'metodindikatorkod': 'MI0201',\n", + " 'referenstyp': 'Rapport',\n", + " 'referenstypkod': 'R'},\n", + " {'namn': 'Arakidonsyra C20:4',\n", + " 'euroFIRkod': 'F20:4',\n", + " 'forkortning': 'C20:4',\n", + " 'varde': 0.0,\n", + " 'enhet': 'g',\n", + " 'viktGram': 100,\n", + " 'berakning': '0,956*67,8*(0,000+0,000)/100,0',\n", + " 'vardetyp': 'Bästa skattning',\n", + " 'vardetypkod': 'BE',\n", + " 'ursprung': 'Värde framtaget med eget system',\n", + " 'ursprungkod': 'S',\n", + " 'publikation': 'SLV - Riktlinjer för livsmedel',\n", + " 'metodtyp': 'Beräknad, omräkningsfaktor inkluderad',\n", + " 'metodtypkod': 'T',\n", + " 'metodindikator': 'Fettsyror beräknade från fettsyraprofil %',\n", + " 'metodindikatorkod': 'MI0201',\n", + " 'referenstyp': 'Rapport',\n", + " 'referenstypkod': 'R'},\n", + " {'namn': 'Arakidinsyra C20:0',\n", + " 'euroFIRkod': 'F20:0',\n", + " 'forkortning': 'C20:0',\n", + " 'varde': 0.1,\n", + " 'enhet': 'g',\n", + " 'viktGram': 100,\n", + " 'berakning': '0,956*67,8*0,200/100,0',\n", + " 'vardetyp': 'Bästa skattning',\n", + " 'vardetypkod': 'BE',\n", + " 'ursprung': 'Värde framtaget med eget system',\n", + " 'ursprungkod': 'S',\n", + " 'publikation': 'SLV - Riktlinjer för livsmedel',\n", + " 'metodtyp': 'Beräknad, omräkningsfaktor inkluderad',\n", + " 'metodtypkod': 'T',\n", + " 'metodindikator': 'Fettsyror beräknade från fettsyraprofil %',\n", + " 'metodindikatorkod': 'MI0201',\n", + " 'referenstyp': 'Rapport',\n", + " 'referenstypkod': 'R'},\n", + " {'namn': 'Linolensyra C18:3',\n", + " 'euroFIRkod': 'F18:3',\n", + " 'forkortning': 'C18:3',\n", + " 'varde': 0.0,\n", + " 'enhet': 'g',\n", + " 'viktGram': 100,\n", + " 'berakning': '0,956*67,8*(0,000+0,000+0,000)/100,0',\n", + " 'vardetyp': 'Bästa skattning',\n", + " 'vardetypkod': 'BE',\n", + " 'ursprung': 'Värde framtaget med eget system',\n", + " 'ursprungkod': 'S',\n", + " 'publikation': 'SLV - Riktlinjer för livsmedel',\n", + " 'metodtyp': 'Beräknad, omräkningsfaktor inkluderad',\n", + " 'metodtypkod': 'T',\n", + " 'metodindikator': 'Fettsyror beräknade från fettsyraprofil %',\n", + " 'metodindikatorkod': 'MI0201',\n", + " 'referenstyp': 'Rapport',\n", + " 'referenstypkod': 'R'},\n", + " {'namn': 'Linolsyra C18:2',\n", + " 'euroFIRkod': 'F18:2',\n", + " 'forkortning': 'C18:2',\n", + " 'varde': 29.2,\n", + " 'enhet': 'g',\n", + " 'viktGram': 100,\n", + " 'berakning': '0,956*67,8*45,000/100,0',\n", + " 'vardetyp': 'Bästa skattning',\n", + " 'vardetypkod': 'BE',\n", + " 'ursprung': 'Värde framtaget med eget system',\n", + " 'ursprungkod': 'S',\n", + " 'publikation': 'SLV - Riktlinjer för livsmedel',\n", + " 'metodtyp': 'Beräknad, omräkningsfaktor inkluderad',\n", + " 'metodtypkod': 'T',\n", + " 'metodindikator': 'Fettsyror beräknade från fettsyraprofil %',\n", + " 'metodindikatorkod': 'MI0201',\n", + " 'referenstyp': 'Rapport',\n", + " 'referenstypkod': 'R'},\n", + " {'namn': 'Oljesyra C18:1',\n", + " 'euroFIRkod': 'F18:1',\n", + " 'forkortning': 'C18:1',\n", + " 'varde': 19.9,\n", + " 'enhet': 'g',\n", + " 'viktGram': 100,\n", + " 'berakning': '0,956*67,8*30,700/100,0',\n", + " 'vardetyp': 'Bästa skattning',\n", + " 'vardetypkod': 'BE',\n", + " 'ursprung': 'Värde framtaget med eget system',\n", + " 'ursprungkod': 'S',\n", + " 'publikation': 'SLV - Riktlinjer för livsmedel',\n", + " 'metodtyp': 'Beräknad, omräkningsfaktor inkluderad',\n", + " 'metodtypkod': 'T',\n", + " 'metodindikator': 'Fettsyror beräknade från fettsyraprofil %',\n", + " 'metodindikatorkod': 'MI0201',\n", + " 'referenstyp': 'Rapport',\n", + " 'referenstypkod': 'R'},\n", + " {'namn': 'Stearinsyra C18:0',\n", + " 'euroFIRkod': 'F18:0',\n", + " 'forkortning': 'C18:0',\n", + " 'varde': 6.0,\n", + " 'enhet': 'g',\n", + " 'viktGram': 100,\n", + " 'berakning': '0,956*67,8*9,300/100,0',\n", + " 'vardetyp': 'Bästa skattning',\n", + " 'vardetypkod': 'BE',\n", + " 'ursprung': 'Värde framtaget med eget system',\n", + " 'ursprungkod': 'S',\n", + " 'publikation': 'SLV - Riktlinjer för livsmedel',\n", + " 'metodtyp': 'Beräknad, omräkningsfaktor inkluderad',\n", + " 'metodtypkod': 'T',\n", + " 'metodindikator': 'Fettsyror beräknade från fettsyraprofil %',\n", + " 'metodindikatorkod': 'MI0201',\n", + " 'referenstyp': 'Rapport',\n", + " 'referenstypkod': 'R'},\n", + " {'namn': 'Palmitoljesyra C16:1',\n", + " 'euroFIRkod': 'F16:1',\n", + " 'forkortning': 'C16:1',\n", + " 'varde': 0.2,\n", + " 'enhet': 'g',\n", + " 'viktGram': 100,\n", + " 'berakning': '0,956*67,8*0,300/100,0',\n", + " 'vardetyp': 'Bästa skattning',\n", + " 'vardetypkod': 'BE',\n", + " 'ursprung': 'Värde framtaget med eget system',\n", + " 'ursprungkod': 'S',\n", + " 'publikation': 'SLV - Riktlinjer för livsmedel',\n", + " 'metodtyp': 'Beräknad, omräkningsfaktor inkluderad',\n", + " 'metodtypkod': 'T',\n", + " 'metodindikator': 'Fettsyror beräknade från fettsyraprofil %',\n", + " 'metodindikatorkod': 'MI0201',\n", + " 'referenstyp': 'Rapport',\n", + " 'referenstypkod': 'R'},\n", + " {'namn': 'Palmitinsyra C16:0',\n", + " 'euroFIRkod': 'F16:0',\n", + " 'forkortning': 'C16:0',\n", + " 'varde': 9.2,\n", + " 'enhet': 'g',\n", + " 'viktGram': 100,\n", + " 'berakning': '0,956*67,8*14,200/100,0',\n", + " 'vardetyp': 'Bästa skattning',\n", + " 'vardetypkod': 'BE',\n", + " 'ursprung': 'Värde framtaget med eget system',\n", + " 'ursprungkod': 'S',\n", + " 'publikation': 'SLV - Riktlinjer för livsmedel',\n", + " 'metodtyp': 'Beräknad, omräkningsfaktor inkluderad',\n", + " 'metodtypkod': 'T',\n", + " 'metodindikator': 'Fettsyror beräknade från fettsyraprofil %',\n", + " 'metodindikatorkod': 'MI0201',\n", + " 'referenstyp': 'Rapport',\n", + " 'referenstypkod': 'R'},\n", + " {'namn': 'Myristinsyra C14:0',\n", + " 'euroFIRkod': 'F14:0',\n", + " 'forkortning': 'C14:0',\n", + " 'varde': 0.0,\n", + " 'enhet': 'g',\n", + " 'viktGram': 100,\n", + " 'berakning': '0,956*67,8*0,000/100,0',\n", + " 'vardetyp': 'Bästa skattning',\n", + " 'vardetypkod': 'BE',\n", + " 'ursprung': 'Värde framtaget med eget system',\n", + " 'ursprungkod': 'S',\n", + " 'publikation': 'SLV - Riktlinjer för livsmedel',\n", + " 'metodtyp': 'Beräknad, omräkningsfaktor inkluderad',\n", + " 'metodtypkod': 'T',\n", + " 'metodindikator': 'Fettsyror beräknade från fettsyraprofil %',\n", + " 'metodindikatorkod': 'MI0201',\n", + " 'referenstyp': 'Rapport',\n", + " 'referenstypkod': 'R'},\n", + " {'namn': 'Laurinsyra C12:0',\n", + " 'euroFIRkod': 'F12:0',\n", + " 'forkortning': 'C12:0',\n", + " 'varde': 0.0,\n", + " 'enhet': 'g',\n", + " 'viktGram': 100,\n", + " 'berakning': '0,956*67,8*0,000/100,0',\n", + " 'vardetyp': 'Bästa skattning',\n", + " 'vardetypkod': 'BE',\n", + " 'ursprung': 'Värde framtaget med eget system',\n", + " 'ursprungkod': 'S',\n", + " 'publikation': 'SLV - Riktlinjer för livsmedel',\n", + " 'metodtyp': 'Beräknad, omräkningsfaktor inkluderad',\n", + " 'metodtypkod': 'T',\n", + " 'metodindikator': 'Fettsyror beräknade från fettsyraprofil %',\n", + " 'metodindikatorkod': 'MI0201',\n", + " 'referenstyp': 'Rapport',\n", + " 'referenstypkod': 'R'},\n", + " {'namn': 'Betakaroten/β-Karoten',\n", + " 'euroFIRkod': 'CARTB',\n", + " 'forkortning': 'b-Kar',\n", + " 'varde': 5,\n", + " 'enhet': 'µg',\n", + " 'viktGram': 100,\n", + " 'vardetyp': 'Ett analysvärde av sammansatt prov',\n", + " 'vardetypkod': 'AV',\n", + " 'ursprung': 'Analys SLV',\n", + " 'ursprungkod': 'O',\n", + " 'publikation': 'Analysprotokoll Dnr 2018/00798',\n", + " 'metodtyp': 'Analysresultat',\n", + " 'metodtypkod': 'A',\n", + " 'metodindikator': 'HPLC-DAD karotenoider',\n", + " 'metodindikatorkod': 'MI1137',\n", + " 'referenstyp': 'Rapport',\n", + " 'referenstypkod': 'R'},\n", + " {'namn': 'Avfall (skal etc.)',\n", + " 'euroFIRkod': 'WASTE',\n", + " 'forkortning': 'Avfa',\n", + " 'varde': 52,\n", + " 'enhet': '%',\n", + " 'viktGram': 100,\n", + " 'vardetyp': 'Bästa skattning',\n", + " 'vardetypkod': 'BE',\n", + " 'ursprung': 'Livsmedelstabell',\n", + " 'ursprungkod': 'F',\n", + " 'publikation': 'SLV livsmedelstabell energi och näringsämnen 2002',\n", + " 'metodtyp': 'Skattat värde',\n", + " 'metodtypkod': 'IG',\n", + " 'referenstyp': 'Rapport',\n", + " 'referenstypkod': 'R'},\n", + " {'namn': 'Aska',\n", + " 'euroFIRkod': 'ASH',\n", + " 'forkortning': 'Aska',\n", + " 'varde': 3.8,\n", + " 'enhet': 'g',\n", + " 'viktGram': 100,\n", + " 'vardetyp': 'Ett analysvärde av sammansatt prov',\n", + " 'vardetypkod': 'AV',\n", + " 'ursprung': 'Analys, oberoende labb',\n", + " 'ursprungkod': 'D',\n", + " 'publikation': 'Analysprotokoll Dnr 2018/00798',\n", + " 'metodtyp': 'Analysresultat',\n", + " 'metodtypkod': 'A',\n", + " 'metodindikator': 'Gravimetrisk metod'},\n", + " {'namn': 'Alkohol',\n", + " 'euroFIRkod': 'ALC',\n", + " 'forkortning': 'Alko',\n", + " 'varde': 0.0,\n", + " 'enhet': 'g',\n", + " 'viktGram': 100,\n", + " 'vardetyp': 'Logisk nolla',\n", + " 'vardetypkod': 'LZ',\n", + " 'ursprung': 'Annat ursprung',\n", + " 'ursprungkod': 'E',\n", + " 'publikation': 'SLV - Riktlinjer för livsmedel',\n", + " 'metodtyp': 'Skattat logisk slutledning',\n", + " 'metodtypkod': 'U'}]" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "slv.search_food(\"paranöt\")\n", + "\n", + "menu = {'Mango': {'number': 574, 'weight': 100},\n", + " 'cashew': {'number': 1557, 'weight': 65/4},\n", + " 'hirs': {'number': 834, 'weight': 1180./5},\n", + " 'kikärtor': {'number': 3815, 'weight': 250/4},\n", + " 'basilika': {'number': 379, 'weight': 3},\n", + " 'apelsin': {'number': 551, 'weight': 80},\n", + " }\n", + "\n", + "slv.get_minerals_from_number(1568)\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Zink, ZnVitamin EVitamin DVitamin CVitamin B6Vitamin B12Vitamin AVattenTiaminTillsatt sockerFritt sockerSelen, SeSackarosRiboflavinRetinolProteinSumma fleromättade fettsyrorFosfor, PNiacinekvivalenterNiacinSalt, NaClNatrium, NaMonosackariderSockerarter, totaltSumma enkelomättade fettsyrorMagnesium, MgSumma mättade fettsyrorKolhydrater, tillgängligaKolesterolKalium, KJod, IFullkorn totaltFolatFibrerFett, totaltJärn, FeEnergi (kJ)Energi (kcal)DisackariderKalcium, CaFettsyra 4:0-10:0DHA (C22:6)DPA (C22:5)EPA (C20:5)Arakidonsyra C20:4Arakidinsyra C20:0Linolensyra C18:3Linolsyra C18:2Oljesyra C18:1Stearinsyra C18:0Palmitoljesyra C16:1Palmitinsyra C16:0Myristinsyra C14:0Laurinsyra C12:0Betakaroten/β-KarotenAvfall (skal etc.)AskaAlkoholweight
name
havredryck 3per0.10.61.10.00.010.380.087.80.020.00.00.00.10.250.0000001.00.8110.00.200.080.142.00.02.91.80.00.26.60.0220.022.50.00.00.83.00.0248.060.02.9120.00.00.00.00.00.00.00.20.71.70.00.00.20.00.00.00.00.70.0100.0
havregryn2.60.80.00.00.110.000.010.20.290.00.00.01.00.070.0000009.52.8360.02.400.800.01.00.01.02.6110.01.164.10.0340.06.8100.030.27.57.03.41569.0375.01.043.00.00.00.00.00.00.00.12.72.40.10.01.00.00.00.00.01.70.030.0
Paranötter3.86.10.00.00.330.000.61.80.730.00.0225.01.80.000.41666714.229.2723.02.900.480.00.00.01.820.1400.015.40.00.0623.00.00.05.313.767.82.42860.0683.01.8176.00.00.00.00.00.00.10.029.219.96.00.29.20.00.05.052.03.80.0100.0
äppelmos0.00.10.01.00.030.002.542.00.1030.030.00.08.20.022.5000000.20.024.00.230.200.04.035.944.10.02.00.056.90.0112.00.00.01.00.70.00.9976.0233.08.25.00.00.00.00.00.00.00.00.00.00.00.00.00.00.030.00.00.20.015.0
\n", + "
" + ], + "text/plain": [ + " Zink, Zn Vitamin E Vitamin D Vitamin C Vitamin B6 \\\n", + "name \n", + "havredryck 3per 0.1 0.6 1.1 0.0 0.01 \n", + "havregryn 2.6 0.8 0.0 0.0 0.11 \n", + "Paranötter 3.8 6.1 0.0 0.0 0.33 \n", + "äppelmos 0.0 0.1 0.0 1.0 0.03 \n", + "\n", + " Vitamin B12 Vitamin A Vatten Tiamin Tillsatt socker \\\n", + "name \n", + "havredryck 3per 0.38 0.0 87.8 0.02 0.0 \n", + "havregryn 0.00 0.0 10.2 0.29 0.0 \n", + "Paranötter 0.00 0.6 1.8 0.73 0.0 \n", + "äppelmos 0.00 2.5 42.0 0.10 30.0 \n", + "\n", + " Fritt socker Selen, Se Sackaros Riboflavin Retinol \\\n", + "name \n", + "havredryck 3per 0.0 0.0 0.1 0.25 0.000000 \n", + "havregryn 0.0 0.0 1.0 0.07 0.000000 \n", + "Paranötter 0.0 225.0 1.8 0.00 0.416667 \n", + "äppelmos 30.0 0.0 8.2 0.02 2.500000 \n", + "\n", + " Protein Summa fleromättade fettsyror Fosfor, P \\\n", + "name \n", + "havredryck 3per 1.0 0.8 110.0 \n", + "havregryn 9.5 2.8 360.0 \n", + "Paranötter 14.2 29.2 723.0 \n", + "äppelmos 0.2 0.0 24.0 \n", + "\n", + " Niacinekvivalenter Niacin Salt, NaCl Natrium, Na \\\n", + "name \n", + "havredryck 3per 0.20 0.08 0.1 42.0 \n", + "havregryn 2.40 0.80 0.0 1.0 \n", + "Paranötter 2.90 0.48 0.0 0.0 \n", + "äppelmos 0.23 0.20 0.0 4.0 \n", + "\n", + " Monosackarider Sockerarter, totalt \\\n", + "name \n", + "havredryck 3per 0.0 2.9 \n", + "havregryn 0.0 1.0 \n", + "Paranötter 0.0 1.8 \n", + "äppelmos 35.9 44.1 \n", + "\n", + " Summa enkelomättade fettsyror Magnesium, Mg \\\n", + "name \n", + "havredryck 3per 1.8 0.0 \n", + "havregryn 2.6 110.0 \n", + "Paranötter 20.1 400.0 \n", + "äppelmos 0.0 2.0 \n", + "\n", + " Summa mättade fettsyror Kolhydrater, tillgängliga \\\n", + "name \n", + "havredryck 3per 0.2 6.6 \n", + "havregryn 1.1 64.1 \n", + "Paranötter 15.4 0.0 \n", + "äppelmos 0.0 56.9 \n", + "\n", + " Kolesterol Kalium, K Jod, I Fullkorn totalt Folat \\\n", + "name \n", + "havredryck 3per 0.0 220.0 22.5 0.0 0.0 \n", + "havregryn 0.0 340.0 6.8 100.0 30.2 \n", + "Paranötter 0.0 623.0 0.0 0.0 5.3 \n", + "äppelmos 0.0 112.0 0.0 0.0 1.0 \n", + "\n", + " Fibrer Fett, totalt Järn, Fe Energi (kJ) Energi (kcal) \\\n", + "name \n", + "havredryck 3per 0.8 3.0 0.0 248.0 60.0 \n", + "havregryn 7.5 7.0 3.4 1569.0 375.0 \n", + "Paranötter 13.7 67.8 2.4 2860.0 683.0 \n", + "äppelmos 0.7 0.0 0.9 976.0 233.0 \n", + "\n", + " Disackarider Kalcium, Ca Fettsyra 4:0-10:0 DHA (C22:6) \\\n", + "name \n", + "havredryck 3per 2.9 120.0 0.0 0.0 \n", + "havregryn 1.0 43.0 0.0 0.0 \n", + "Paranötter 1.8 176.0 0.0 0.0 \n", + "äppelmos 8.2 5.0 0.0 0.0 \n", + "\n", + " DPA (C22:5) EPA (C20:5) Arakidonsyra C20:4 \\\n", + "name \n", + "havredryck 3per 0.0 0.0 0.0 \n", + "havregryn 0.0 0.0 0.0 \n", + "Paranötter 0.0 0.0 0.0 \n", + "äppelmos 0.0 0.0 0.0 \n", + "\n", + " Arakidinsyra C20:0 Linolensyra C18:3 Linolsyra C18:2 \\\n", + "name \n", + "havredryck 3per 0.0 0.2 0.7 \n", + "havregryn 0.0 0.1 2.7 \n", + "Paranötter 0.1 0.0 29.2 \n", + "äppelmos 0.0 0.0 0.0 \n", + "\n", + " Oljesyra C18:1 Stearinsyra C18:0 Palmitoljesyra C16:1 \\\n", + "name \n", + "havredryck 3per 1.7 0.0 0.0 \n", + "havregryn 2.4 0.1 0.0 \n", + "Paranötter 19.9 6.0 0.2 \n", + "äppelmos 0.0 0.0 0.0 \n", + "\n", + " Palmitinsyra C16:0 Myristinsyra C14:0 Laurinsyra C12:0 \\\n", + "name \n", + "havredryck 3per 0.2 0.0 0.0 \n", + "havregryn 1.0 0.0 0.0 \n", + "Paranötter 9.2 0.0 0.0 \n", + "äppelmos 0.0 0.0 0.0 \n", + "\n", + " Betakaroten/β-Karoten Avfall (skal etc.) Aska Alkohol \\\n", + "name \n", + "havredryck 3per 0.0 0.0 0.7 0.0 \n", + "havregryn 0.0 0.0 1.7 0.0 \n", + "Paranötter 5.0 52.0 3.8 0.0 \n", + "äppelmos 30.0 0.0 0.2 0.0 \n", + "\n", + " weight \n", + "name \n", + "havredryck 3per 100.0 \n", + "havregryn 30.0 \n", + "Paranötter 100.0 \n", + "äppelmos 15.0 " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Zink, ZnVitamin EVitamin DVitamin CVitamin B6Vitamin B12Vitamin AVattenTiaminTillsatt sockerFritt sockerSelen, SeSackarosRiboflavinRetinolProteinSumma fleromättade fettsyrorFosfor, PNiacinekvivalenterNiacinSalt, NaClNatrium, NaMonosackariderSockerarter, totaltSumma enkelomättade fettsyrorMagnesium, MgSumma mättade fettsyrorKolhydrater, tillgängligaKolesterolKalium, KJod, IFullkorn totaltFolatFibrerFett, totaltJärn, FeEnergi (kJ)Energi (kcal)DisackariderKalcium, CaFettsyra 4:0-10:0DHA (C22:6)DPA (C22:5)EPA (C20:5)Arakidonsyra C20:4Arakidinsyra C20:0Linolensyra C18:3Linolsyra C18:2Oljesyra C18:1Stearinsyra C18:0Palmitoljesyra C16:1Palmitinsyra C16:0Myristinsyra C14:0Laurinsyra C12:0Betakaroten/β-KarotenAvfall (skal etc.)AskaAlkoholweight
name
havredryck 3per0.100.6001.10.000.01000.380.00087.800.0200.00.00.00.100.2500.0000001.000.80110.00.20000.080.142.00.0002.9001.800.00.206.6000.0220.022.500.00.000.8003.00.000248.060.002.90120.000.00.00.00.00.00.00.200.701.700.000.00.20.00.00.00.00.700.0100.00
havregryn0.780.2400.00.000.03300.000.0003.060.0870.00.00.00.300.0210.0000002.850.84108.00.72000.240.00.30.0000.3000.7833.00.3319.2300.0102.02.0430.09.062.2502.11.020470.7112.500.3012.900.00.00.00.00.00.00.030.810.720.030.00.30.00.00.00.00.510.09.00
Paranötter3.806.1000.00.000.33000.000.6001.800.7300.00.0225.01.800.0000.41666714.2029.20723.02.90000.480.00.00.0001.80020.10400.015.400.0000.0623.00.000.05.3013.70067.82.4002860.0683.001.80176.000.00.00.00.00.00.10.0029.2019.906.000.29.20.00.05.052.03.800.0100.00
äppelmos0.000.0150.00.150.00450.000.3756.300.0154.54.50.01.230.0030.3750000.030.003.60.03450.030.00.65.3856.6150.000.30.008.5350.016.80.000.00.150.1050.00.135146.434.951.230.750.00.00.00.00.00.00.000.000.000.000.00.00.00.04.50.00.030.02.25
\n", + "
" + ], + "text/plain": [ + " Zink, Zn Vitamin E Vitamin D Vitamin C Vitamin B6 \\\n", + "name \n", + "havredryck 3per 0.10 0.600 1.1 0.00 0.0100 \n", + "havregryn 0.78 0.240 0.0 0.00 0.0330 \n", + "Paranötter 3.80 6.100 0.0 0.00 0.3300 \n", + "äppelmos 0.00 0.015 0.0 0.15 0.0045 \n", + "\n", + " Vitamin B12 Vitamin A Vatten Tiamin Tillsatt socker \\\n", + "name \n", + "havredryck 3per 0.38 0.000 87.80 0.020 0.0 \n", + "havregryn 0.00 0.000 3.06 0.087 0.0 \n", + "Paranötter 0.00 0.600 1.80 0.730 0.0 \n", + "äppelmos 0.00 0.375 6.30 0.015 4.5 \n", + "\n", + " Fritt socker Selen, Se Sackaros Riboflavin Retinol \\\n", + "name \n", + "havredryck 3per 0.0 0.0 0.10 0.250 0.000000 \n", + "havregryn 0.0 0.0 0.30 0.021 0.000000 \n", + "Paranötter 0.0 225.0 1.80 0.000 0.416667 \n", + "äppelmos 4.5 0.0 1.23 0.003 0.375000 \n", + "\n", + " Protein Summa fleromättade fettsyror Fosfor, P \\\n", + "name \n", + "havredryck 3per 1.00 0.80 110.0 \n", + "havregryn 2.85 0.84 108.0 \n", + "Paranötter 14.20 29.20 723.0 \n", + "äppelmos 0.03 0.00 3.6 \n", + "\n", + " Niacinekvivalenter Niacin Salt, NaCl Natrium, Na \\\n", + "name \n", + "havredryck 3per 0.2000 0.08 0.1 42.0 \n", + "havregryn 0.7200 0.24 0.0 0.3 \n", + "Paranötter 2.9000 0.48 0.0 0.0 \n", + "äppelmos 0.0345 0.03 0.0 0.6 \n", + "\n", + " Monosackarider Sockerarter, totalt \\\n", + "name \n", + "havredryck 3per 0.000 2.900 \n", + "havregryn 0.000 0.300 \n", + "Paranötter 0.000 1.800 \n", + "äppelmos 5.385 6.615 \n", + "\n", + " Summa enkelomättade fettsyror Magnesium, Mg \\\n", + "name \n", + "havredryck 3per 1.80 0.0 \n", + "havregryn 0.78 33.0 \n", + "Paranötter 20.10 400.0 \n", + "äppelmos 0.00 0.3 \n", + "\n", + " Summa mättade fettsyror Kolhydrater, tillgängliga \\\n", + "name \n", + "havredryck 3per 0.20 6.600 \n", + "havregryn 0.33 19.230 \n", + "Paranötter 15.40 0.000 \n", + "äppelmos 0.00 8.535 \n", + "\n", + " Kolesterol Kalium, K Jod, I Fullkorn totalt Folat \\\n", + "name \n", + "havredryck 3per 0.0 220.0 22.50 0.0 0.00 \n", + "havregryn 0.0 102.0 2.04 30.0 9.06 \n", + "Paranötter 0.0 623.0 0.00 0.0 5.30 \n", + "äppelmos 0.0 16.8 0.00 0.0 0.15 \n", + "\n", + " Fibrer Fett, totalt Järn, Fe Energi (kJ) Energi (kcal) \\\n", + "name \n", + "havredryck 3per 0.800 3.0 0.000 248.0 60.00 \n", + "havregryn 2.250 2.1 1.020 470.7 112.50 \n", + "Paranötter 13.700 67.8 2.400 2860.0 683.00 \n", + "äppelmos 0.105 0.0 0.135 146.4 34.95 \n", + "\n", + " Disackarider Kalcium, Ca Fettsyra 4:0-10:0 DHA (C22:6) \\\n", + "name \n", + "havredryck 3per 2.90 120.00 0.0 0.0 \n", + "havregryn 0.30 12.90 0.0 0.0 \n", + "Paranötter 1.80 176.00 0.0 0.0 \n", + "äppelmos 1.23 0.75 0.0 0.0 \n", + "\n", + " DPA (C22:5) EPA (C20:5) Arakidonsyra C20:4 \\\n", + "name \n", + "havredryck 3per 0.0 0.0 0.0 \n", + "havregryn 0.0 0.0 0.0 \n", + "Paranötter 0.0 0.0 0.0 \n", + "äppelmos 0.0 0.0 0.0 \n", + "\n", + " Arakidinsyra C20:0 Linolensyra C18:3 Linolsyra C18:2 \\\n", + "name \n", + "havredryck 3per 0.0 0.20 0.70 \n", + "havregryn 0.0 0.03 0.81 \n", + "Paranötter 0.1 0.00 29.20 \n", + "äppelmos 0.0 0.00 0.00 \n", + "\n", + " Oljesyra C18:1 Stearinsyra C18:0 Palmitoljesyra C16:1 \\\n", + "name \n", + "havredryck 3per 1.70 0.00 0.0 \n", + "havregryn 0.72 0.03 0.0 \n", + "Paranötter 19.90 6.00 0.2 \n", + "äppelmos 0.00 0.00 0.0 \n", + "\n", + " Palmitinsyra C16:0 Myristinsyra C14:0 Laurinsyra C12:0 \\\n", + "name \n", + "havredryck 3per 0.2 0.0 0.0 \n", + "havregryn 0.3 0.0 0.0 \n", + "Paranötter 9.2 0.0 0.0 \n", + "äppelmos 0.0 0.0 0.0 \n", + "\n", + " Betakaroten/β-Karoten Avfall (skal etc.) Aska Alkohol \\\n", + "name \n", + "havredryck 3per 0.0 0.0 0.70 0.0 \n", + "havregryn 0.0 0.0 0.51 0.0 \n", + "Paranötter 5.0 52.0 3.80 0.0 \n", + "äppelmos 4.5 0.0 0.03 0.0 \n", + "\n", + " weight \n", + "name \n", + "havredryck 3per 100.00 \n", + "havregryn 9.00 \n", + "Paranötter 100.00 \n", + "äppelmos 2.25 " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/tmp/ipykernel_6101/1072998217.py:28: FutureWarning: The behavior of DataFrame concatenation with empty or all-NA entries is deprecated. In a future version, this will no longer exclude empty or all-NA columns when determining the result dtypes. To retain the old behavior, exclude the relevant entries before the concat operation.\n", + " mineral_df = pd.concat([mineral_df, rdi_df])\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Zink, ZnVitamin EVitamin DVitamin CVitamin B6Vitamin B12Vitamin AVattenTiaminTillsatt sockerFritt sockerSelen, SeSackarosRiboflavinRetinolProteinSumma fleromättade fettsyrorFosfor, PNiacinekvivalenterNiacinSalt, NaClNatrium, NaMonosackariderSockerarter, totaltSumma enkelomättade fettsyrorMagnesium, MgSumma mättade fettsyrorKolhydrater, tillgängligaKolesterolKalium, KJod, IFullkorn totaltFolatFibrerFett, totaltJärn, FeEnergi (kJ)Energi (kcal)DisackariderKalcium, CaFettsyra 4:0-10:0DHA (C22:6)DPA (C22:5)EPA (C20:5)Arakidonsyra C20:4Arakidinsyra C20:0Linolensyra C18:3Linolsyra C18:2Oljesyra C18:1Stearinsyra C18:0Palmitoljesyra C16:1Palmitinsyra C16:0Myristinsyra C14:0Laurinsyra C12:0Betakaroten/β-KarotenAvfall (skal etc.)AskaAlkoholweight
name
havredryck 3per0.100.6001.10.000.01000.380.00087.800.0200.00.00.00.100.2500.0000001.000.80110.00.20000.080.142.00.0002.9001.800.00.206.6000.0220.022.500.00.000.8003.00.000248.060.002.90120.000.00.00.00.00.00.00.200.701.700.000.00.20.00.00.00.00.700.0100.00
havregryn0.780.2400.00.000.03300.000.0003.060.0870.00.00.00.300.0210.0000002.850.84108.00.72000.240.00.30.0000.3000.7833.00.3319.2300.0102.02.0430.09.062.2502.11.020470.7112.500.3012.900.00.00.00.00.00.00.030.810.720.030.00.30.00.00.00.00.510.09.00
Paranötter3.806.1000.00.000.33000.000.6001.800.7300.00.0225.01.800.0000.41666714.2029.20723.02.90000.480.00.00.0001.80020.10400.015.400.0000.0623.00.000.05.3013.70067.82.4002860.0683.001.80176.000.00.00.00.00.00.10.0029.2019.906.000.29.20.00.05.052.03.800.0100.00
äppelmos0.000.0150.00.150.00450.000.3756.300.0154.54.50.01.230.0030.3750000.030.003.60.03450.030.00.65.3856.6150.000.30.008.5350.016.80.000.00.150.1050.00.135146.434.951.230.750.00.00.00.00.00.00.000.000.000.000.00.00.00.04.50.00.030.02.25
total4.686.9551.10.150.37750.380.97598.960.8524.54.5225.03.430.2740.79166718.0830.84944.63.85450.830.142.95.38511.61522.68433.315.9334.3650.0961.824.5430.014.5116.85572.93.5553725.1890.456.23309.650.00.00.00.00.00.10.2330.7122.326.030.29.70.00.09.552.05.040.0211.25
male12.7011.00010.0110.001.80004.00NaNNaN0.100NaNNaN90.0NaN1.600800.000000NaNNaN520.01.6000NaNNaNNaNNaNNaNNaN350.0NaNNaNNaN3500.0150.00NaN330.00NaNNaN9.000NaNNaNNaN950.00NaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
female9.7010.00010.095.001.60004.00NaNNaN0.100NaNNaN75.0NaN1.600700.000000NaNNaN520.01.6000NaNNaNNaNNaNNaNNaN300.0NaNNaNNaN3500.0150.00NaN330.00NaNNaN15.000NaNNaNNaN950.00NaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
4-6 years5.808.00010.035.000.70001.70NaNNaN0.100NaNNaN25.0NaN0.700350.000000NaNNaN440.01.6000NaNNaNNaNNaNNaNNaN230.0NaNNaNNaN1150.0100.00NaN140.00NaNNaN7.000NaNNaNNaN800.00NaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
\n", + "
" + ], + "text/plain": [ + " Zink, Zn Vitamin E Vitamin D Vitamin C Vitamin B6 \\\n", + "name \n", + "havredryck 3per 0.10 0.600 1.1 0.00 0.0100 \n", + "havregryn 0.78 0.240 0.0 0.00 0.0330 \n", + "Paranötter 3.80 6.100 0.0 0.00 0.3300 \n", + "äppelmos 0.00 0.015 0.0 0.15 0.0045 \n", + "total 4.68 6.955 1.1 0.15 0.3775 \n", + "male 12.70 11.000 10.0 110.00 1.8000 \n", + "female 9.70 10.000 10.0 95.00 1.6000 \n", + "4-6 years 5.80 8.000 10.0 35.00 0.7000 \n", + "\n", + " Vitamin B12 Vitamin A Vatten Tiamin Tillsatt socker \\\n", + "name \n", + "havredryck 3per 0.38 0.000 87.80 0.020 0.0 \n", + "havregryn 0.00 0.000 3.06 0.087 0.0 \n", + "Paranötter 0.00 0.600 1.80 0.730 0.0 \n", + "äppelmos 0.00 0.375 6.30 0.015 4.5 \n", + "total 0.38 0.975 98.96 0.852 4.5 \n", + "male 4.00 NaN NaN 0.100 NaN \n", + "female 4.00 NaN NaN 0.100 NaN \n", + "4-6 years 1.70 NaN NaN 0.100 NaN \n", + "\n", + " Fritt socker Selen, Se Sackaros Riboflavin Retinol \\\n", + "name \n", + "havredryck 3per 0.0 0.0 0.10 0.250 0.000000 \n", + "havregryn 0.0 0.0 0.30 0.021 0.000000 \n", + "Paranötter 0.0 225.0 1.80 0.000 0.416667 \n", + "äppelmos 4.5 0.0 1.23 0.003 0.375000 \n", + "total 4.5 225.0 3.43 0.274 0.791667 \n", + "male NaN 90.0 NaN 1.600 800.000000 \n", + "female NaN 75.0 NaN 1.600 700.000000 \n", + "4-6 years NaN 25.0 NaN 0.700 350.000000 \n", + "\n", + " Protein Summa fleromättade fettsyror Fosfor, P \\\n", + "name \n", + "havredryck 3per 1.00 0.80 110.0 \n", + "havregryn 2.85 0.84 108.0 \n", + "Paranötter 14.20 29.20 723.0 \n", + "äppelmos 0.03 0.00 3.6 \n", + "total 18.08 30.84 944.6 \n", + "male NaN NaN 520.0 \n", + "female NaN NaN 520.0 \n", + "4-6 years NaN NaN 440.0 \n", + "\n", + " Niacinekvivalenter Niacin Salt, NaCl Natrium, Na \\\n", + "name \n", + "havredryck 3per 0.2000 0.08 0.1 42.0 \n", + "havregryn 0.7200 0.24 0.0 0.3 \n", + "Paranötter 2.9000 0.48 0.0 0.0 \n", + "äppelmos 0.0345 0.03 0.0 0.6 \n", + "total 3.8545 0.83 0.1 42.9 \n", + "male 1.6000 NaN NaN NaN \n", + "female 1.6000 NaN NaN NaN \n", + "4-6 years 1.6000 NaN NaN NaN \n", + "\n", + " Monosackarider Sockerarter, totalt \\\n", + "name \n", + "havredryck 3per 0.000 2.900 \n", + "havregryn 0.000 0.300 \n", + "Paranötter 0.000 1.800 \n", + "äppelmos 5.385 6.615 \n", + "total 5.385 11.615 \n", + "male NaN NaN \n", + "female NaN NaN \n", + "4-6 years NaN NaN \n", + "\n", + " Summa enkelomättade fettsyror Magnesium, Mg \\\n", + "name \n", + "havredryck 3per 1.80 0.0 \n", + "havregryn 0.78 33.0 \n", + "Paranötter 20.10 400.0 \n", + "äppelmos 0.00 0.3 \n", + "total 22.68 433.3 \n", + "male NaN 350.0 \n", + "female NaN 300.0 \n", + "4-6 years NaN 230.0 \n", + "\n", + " Summa mättade fettsyror Kolhydrater, tillgängliga \\\n", + "name \n", + "havredryck 3per 0.20 6.600 \n", + "havregryn 0.33 19.230 \n", + "Paranötter 15.40 0.000 \n", + "äppelmos 0.00 8.535 \n", + "total 15.93 34.365 \n", + "male NaN NaN \n", + "female NaN NaN \n", + "4-6 years NaN NaN \n", + "\n", + " Kolesterol Kalium, K Jod, I Fullkorn totalt Folat \\\n", + "name \n", + "havredryck 3per 0.0 220.0 22.50 0.0 0.00 \n", + "havregryn 0.0 102.0 2.04 30.0 9.06 \n", + "Paranötter 0.0 623.0 0.00 0.0 5.30 \n", + "äppelmos 0.0 16.8 0.00 0.0 0.15 \n", + "total 0.0 961.8 24.54 30.0 14.51 \n", + "male NaN 3500.0 150.00 NaN 330.00 \n", + "female NaN 3500.0 150.00 NaN 330.00 \n", + "4-6 years NaN 1150.0 100.00 NaN 140.00 \n", + "\n", + " Fibrer Fett, totalt Järn, Fe Energi (kJ) Energi (kcal) \\\n", + "name \n", + "havredryck 3per 0.800 3.0 0.000 248.0 60.00 \n", + "havregryn 2.250 2.1 1.020 470.7 112.50 \n", + "Paranötter 13.700 67.8 2.400 2860.0 683.00 \n", + "äppelmos 0.105 0.0 0.135 146.4 34.95 \n", + "total 16.855 72.9 3.555 3725.1 890.45 \n", + "male NaN NaN 9.000 NaN NaN \n", + "female NaN NaN 15.000 NaN NaN \n", + "4-6 years NaN NaN 7.000 NaN NaN \n", + "\n", + " Disackarider Kalcium, Ca Fettsyra 4:0-10:0 DHA (C22:6) \\\n", + "name \n", + "havredryck 3per 2.90 120.00 0.0 0.0 \n", + "havregryn 0.30 12.90 0.0 0.0 \n", + "Paranötter 1.80 176.00 0.0 0.0 \n", + "äppelmos 1.23 0.75 0.0 0.0 \n", + "total 6.23 309.65 0.0 0.0 \n", + "male NaN 950.00 NaN NaN \n", + "female NaN 950.00 NaN NaN \n", + "4-6 years NaN 800.00 NaN NaN \n", + "\n", + " DPA (C22:5) EPA (C20:5) Arakidonsyra C20:4 \\\n", + "name \n", + "havredryck 3per 0.0 0.0 0.0 \n", + "havregryn 0.0 0.0 0.0 \n", + "Paranötter 0.0 0.0 0.0 \n", + "äppelmos 0.0 0.0 0.0 \n", + "total 0.0 0.0 0.0 \n", + "male NaN NaN NaN \n", + "female NaN NaN NaN \n", + "4-6 years NaN NaN NaN \n", + "\n", + " Arakidinsyra C20:0 Linolensyra C18:3 Linolsyra C18:2 \\\n", + "name \n", + "havredryck 3per 0.0 0.20 0.70 \n", + "havregryn 0.0 0.03 0.81 \n", + "Paranötter 0.1 0.00 29.20 \n", + "äppelmos 0.0 0.00 0.00 \n", + "total 0.1 0.23 30.71 \n", + "male NaN NaN NaN \n", + "female NaN NaN NaN \n", + "4-6 years NaN NaN NaN \n", + "\n", + " Oljesyra C18:1 Stearinsyra C18:0 Palmitoljesyra C16:1 \\\n", + "name \n", + "havredryck 3per 1.70 0.00 0.0 \n", + "havregryn 0.72 0.03 0.0 \n", + "Paranötter 19.90 6.00 0.2 \n", + "äppelmos 0.00 0.00 0.0 \n", + "total 22.32 6.03 0.2 \n", + "male NaN NaN NaN \n", + "female NaN NaN NaN \n", + "4-6 years NaN NaN NaN \n", + "\n", + " Palmitinsyra C16:0 Myristinsyra C14:0 Laurinsyra C12:0 \\\n", + "name \n", + "havredryck 3per 0.2 0.0 0.0 \n", + "havregryn 0.3 0.0 0.0 \n", + "Paranötter 9.2 0.0 0.0 \n", + "äppelmos 0.0 0.0 0.0 \n", + "total 9.7 0.0 0.0 \n", + "male NaN NaN NaN \n", + "female NaN NaN NaN \n", + "4-6 years NaN NaN NaN \n", + "\n", + " Betakaroten/β-Karoten Avfall (skal etc.) Aska Alkohol \\\n", + "name \n", + "havredryck 3per 0.0 0.0 0.70 0.0 \n", + "havregryn 0.0 0.0 0.51 0.0 \n", + "Paranötter 5.0 52.0 3.80 0.0 \n", + "äppelmos 4.5 0.0 0.03 0.0 \n", + "total 9.5 52.0 5.04 0.0 \n", + "male NaN NaN NaN NaN \n", + "female NaN NaN NaN NaN \n", + "4-6 years NaN NaN NaN NaN \n", + "\n", + " weight \n", + "name \n", + "havredryck 3per 100.00 \n", + "havregryn 9.00 \n", + "Paranötter 100.00 \n", + "äppelmos 2.25 \n", + "total 211.25 \n", + "male NaN \n", + "female NaN \n", + "4-6 years NaN " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "\n", + "mineral_dict = slv.populate_mineral_dict(menu)\n", + "mineral_df = slv.mineral_dict_to_df(mineral_dict)\n", + "mineral_df = slv.convert_betakaroten_to_retinol(mineral_df)\n", + "display(mineral_df)\n", + "\n", + "mineral_df = slv.calculate_minerals_for_weight(mineral_df)\n", + "\n", + "display(mineral_df)\n", + "\n", + "# calculate total\n", + "mineral_df.loc['total'] = mineral_df.sum()\n", + "\n", + "# create an own class for rdi?\n", + "rdi_dict = slv.init_mineral_dict()\n", + "for gen in rdi['Zink, Zn'].keys():\n", + " for col in rdi_dict.keys():\n", + " if col in rdi.keys():\n", + " rdi_dict[col].append(rdi[col][gen])\n", + " elif col == 'name':\n", + " rdi_dict['name'].append(gen)\n", + " else:\n", + " rdi_dict[col].append(None)\n", + "\n", + "rdi_df = pd.DataFrame.from_dict(rdi_dict)\n", + "rdi_df.set_index('name', inplace=True)\n", + "mineral_df = pd.concat([mineral_df, rdi_df])\n", + "\n", + "pd.set_option('display.max_columns', 500)\n", + "display(mineral_df)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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fHx8EBUVBU9PT5iYmCAhIQExMTEK7f79A0IgEFS7TSqV1nq+p4+pnNr4rGOaNm2Ktm3bAgAcHBywbt06uLi4IDU1tcZFLWqSkJCASZMmYc+ePbUeKxQKq12go39JDMrKDOp1TnWQ20B/wGtra/PLi5pgLtQHc6E+mAvV0pYJVB0CUYPSoBe5qDRu3DhoaGhg165d2LFjB/z8/ORFS3V0dHRQXq44Xp6RkQFbW1uEhoaiR48ecHBwwO3bt1926C+kctTqyZMn9Tru22+/xUcffYRvv/1WPk2RiIiIiIierVGMYBkaGuLdd99FSEgIRCIRfH19a21vZ2eHn376CVlZWTA3N4eJiQkcHByQl5eHhIQE9OzZEwcPHkRiYuKruYA6evToEe7duyefIjhv3jxYWFigb9++8jZXr15FaWkp/u///g+PHj2SP1y5chXFXbt2YeLEifjss8/Qu3dv3Lt3DwCgp6dX7T1rRERERET0P42iwAIqpgl+9dVX8Pb2hrW1da1tAwICkJaWhh49eqCoqAipqal4++23MWvWLAQGBkIsFmPo0KEICwtDZGTkq7mAOggPD0d4eDgAwMLCAj179sSRI0cUnvHl7e2tMPLWrVs3AIBMJgMAfPnllygrK8O0adMwbdo0ebuJEydWWe6+NmdCBqv02WJERERERKogkFV+syZSApFIBBMTE9y/f58FlhqQSCRITk6Gt7c3729QMeZCfTAX6oO5UA/FpWVoH5yIO+vGobCwsMoCXkRUP43iHiwiIiIiIqJXgQUWERERERGRkrDAIiIiIiIiUhIWWERERERERErCAouIiIiIiEhJWGAREREREREpCQssIiIiIiIiJWGBRUREREREpCQssIiIiIiIiJRES9UBvA4iIyORlJSEixcvquT8AoEAiYmJGDFihErO/zzc97ijTK9M1WE0ekIIEWYaBpddLhBDrOpwGjXmonqZEzNVHQIREZFSNeoRrOHDh8PLy6vafSdPnoRAIMDly5cRFBSEY8eOyff5+vq+0mInPz8fQ4YMeaE+7OzsIBAIIBAIoKmpCWtra/j7++PBgwcK7WQyGVavXg1HR0cIhUK0aNECS5cufaFzExERERE1Fo26wPL390dKSgru3r1bZV9cXBx69OgBJycnGBoawtzcXAURVrC0tIRQKHzhfhYtWoT8/Hzk5eVh586dOHHi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tKjfsUVEREREZKk4gzUETk5OWL58OdLS0qDX6xEXF3fT8X5+fnj33XdRX18Pd3d3qNVqBAYGoqWlBVqtFrNnz8ahQ4dQVFQ0Om9giLq6utDe3g6DwYBz587hjTfewN69e5GVlYX7779f7vKIiIiIiCweG6whSkhIwF//+lcsWbIE3t7eNx27cuVKVFRUIDg4GN3d3SgvL8cTTzyBdevWISkpCb29vYiMjERGRga2bNkyOm9gCDZv3ozNmzfD3t4eGo0GP/7xj1FaWoqwsLBh76s6baGsvxuMiIiIiEgOCiGEkLsIsh56vR5qtRrnz59ng2UBDAYDSkpKsGTJEl7fIDNmYTmYheVgFpah52ofgjYUofX3y3Dp0qUBN+AiouHhNVhEREREREQSYYNFREREREQkETZYREREREREEmGDRUREREREJBE2WERERERERBJhg0VERERERCQRNlhEREREREQSYYNFREREREQkEVu5C7AmW7ZswcGDB3HmzBlZXl+hUKCoqAhRUVGyvP71wg+Eo29cn9xljHkqqJDhmoGQwhD0olfucsY0ZmE5mIXlsLQszsaelbsEIrICnMEagscffxyLFy8edN3Ro0ehUCjw0UcfITU1FaWlpaZ1cXFxo9rstLW14bHHHrujffj5+UGhUAx4bN++XaIqiYiIiIisF2ewhiAhIQFPPfUUvvzyS9x7771m6/Lz8xEcHIzp06cDAJycnOQoEQCg0Wgk2c/WrVuxcuVKs2XOzs6S7JuIiIiIyJpxBmsIfv7zn2PSpEkoKCgwW97d3Y0DBw4gISEBwPenCM6cOdP097/97W946623TLNAFRUVAIANGzbggQcegKOjI+677z5kZGTAYDCY9nttP3l5efDx8YGTkxPWrFmD/v5+ZGdnQ6PRwMPDA9u2bTOrR6FQ4ODBgwCApqYmKBQKvPnmmwgLC4OjoyNmzJiBqqqqW75fZ2dnaDQas8f48eNv7+AREREREY0hnMEaAltbWzz77LMoKChAeno6FAoFAODAgQPo7+9HdHT0gG1SU1NRV1cHvV6P/Px8AICbmxuA7xuYgoICeHt74+zZs1i5ciWcnZ2xfv160/aNjY04fPgw/vWvf6GxsRG//OUv8cUXX+CBBx5AZWUljh8/jvj4eISHh2POnDk3rD09PR27du1CYGAg0tPTER0djYaGBtjaShN9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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "\n", + "for gen in rdi['Zink, Zn'].keys():\n", + " mineral_df.loc[gen + ' percentage'] = rdi_per = mineral_df.loc['total'] / mineral_df.loc[gen] * 100\n", + "\n", + "#ax = mineral_df['total'].plot.bar(rot=0)\n", + "rdi_per_labels = ['female percentage', 'male percentage', '4-6 years percentage']\n", + "ax = mineral_df.loc[rdi_per_labels].dropna(axis=1, how='all').transpose().plot.barh()\n", + "ax.legend(bbox_to_anchor=(1.42, 1))\n", + "ax.axvline(x=100)\n", + "ax.set_xlim([0, 100])\n", + "ax.grid()" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "livsmedel-9tGI6gb3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.12" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/notebooks/example.py b/notebooks/example.py new file mode 100644 index 0000000..6322594 --- /dev/null +++ b/notebooks/example.py @@ -0,0 +1,78 @@ +# %% +"""Example. + +https://www.livsmedelsverket.se/om-oss/psidata/livsmedelsdatbasenalfa + +ClimateHub have open source on CHG, but only free for internal use. +""" + +import pandas as pd + +# from IPython.display import display +from ifk_co2_meal_planner.rdi import rdi +from ifk_co2_meal_planner.slv_wrapper import SlvWrapper + +slv = SlvWrapper() + + +# %% +slv.search_food("paranöt") + +menu = { + "Mango": {"number": 574, "weight": 100}, + "cashew": {"number": 1557, "weight": 65 / 4}, + "hirs": {"number": 834, "weight": 1180.0 / 5}, + "kikärtor": {"number": 3815, "weight": 250 / 4}, + "basilika": {"number": 379, "weight": 3}, + "apelsin": {"number": 551, "weight": 80}, +} + +slv.get_minerals_from_number(1568) + + +# %% + +mineral_dict = slv.populate_mineral_dict(menu) +mineral_df = slv.mineral_dict_to_df(mineral_dict) +mineral_df = slv.convert_betakaroten_to_retinol(mineral_df) +print(mineral_df) + +mineral_df = slv.calculate_minerals_for_weight(mineral_df) + +print(mineral_df) + +# calculate total +mineral_df.loc["total"] = mineral_df.sum() + +# create an own class for rdi? +rdi_dict = slv.init_mineral_dict() +for gen in rdi["Zink, Zn"].keys(): + for col in rdi_dict.keys(): + if col in rdi.keys(): + rdi_dict[col].append(rdi[col][gen]) + elif col == "name": + rdi_dict["name"].append(gen) + else: + rdi_dict[col].append(None) + +rdi_df = pd.DataFrame.from_dict(rdi_dict) +rdi_df.set_index("name", inplace=True) +mineral_df = pd.concat([mineral_df, rdi_df]) + +pd.set_option("display.max_columns", 500) +print(mineral_df) + +# %% + +for gen in rdi["Zink, Zn"].keys(): + mineral_df.loc[gen + " percentage"] = rdi_per = ( + mineral_df.loc["total"] / mineral_df.loc[gen] * 100 + ) + +# ax = mineral_df['total'].plot.bar(rot=0) +rdi_per_labels = ["female percentage", "male percentage", "4-6 years percentage"] +ax = mineral_df.loc[rdi_per_labels].dropna(axis=1, how="all").transpose().plot.barh() +ax.legend(bbox_to_anchor=(1.42, 1)) +ax.axvline(x=100) +ax.set_xlim([0, 100]) +ax.grid() diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..ea97c17 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,56 @@ +[build-system] +requires = ["setuptools", "setuptools-scm"] +build-backend = "setuptools.build_meta" + +[project] +name = "ifk-co2-meal-planner" +version = "0.1.0" +description = "For evaluation of nutrition and CHG of meals." +license = { text = "MIT" } +readme = "README.md" +authors = [ + { name = "IFK", email = "info@ingenjorsarbeteforklimatet.se" }, +] +requires-python = ">=3.9" +dependencies = ["requests==2.31.0", + "pandas==2.2.0", + "matplotlib==3.8.2", + "pyarrow==15.0.0" +] + +[project.optional-dependencies] +lint = [ + "ruff ~= 0.1", +] +type = ["mypy ~= 1.7", "types-requests ~= 2.28", "pandas-stubs ~= 1.5"] +test = ["pytest ~= 7.1", "coverage ~= 6.5", "pytest-cov ~= 4.0"] +doc = [ + "mkdocs ~= 1.4", + "mkdocs-material ~= 8.5", + "mkdocstrings[python] ~= 0.19", +] +dev = [ + "ifk-co2-meal-planner[lint]", + "ifk-co2-meal-planner[type]", + "ifk-co2-meal-planner[test]", + "ifk-co2-meal-planner[doc]", + "pre-commit ~= 2.20", + "ipykernel ~= 6.26", +] + +[tool.setuptools.packages.find] +where = ["src"] +exclude = ["material"] + +[tool.ruff] +line-length = 88 +extend-include = ["*.ipynb"] + +[tool.ruff.lint] +select = ["E4", "E7", "E9", "W", "F", "B", "D", "I", "S"] +ignore = ["D203", "D213", "S101"] +unfixable = ["B", "S"] +pydocstyle.convention = "google" + +[tool.mypy] +ignore_missing_imports = true diff --git a/src/co2_meal_planner/__pycache__/slv_wrapper.cpython-310.pyc b/src/co2_meal_planner/__pycache__/slv_wrapper.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d69365a8704e947c292674369bc5db8319e5a024 GIT binary patch literal 4244 zcmbVPOK%*<5uVpR`4G9HXwiy6%lHK?3rY@L@X1ET(t5rn|bkzN)Wk zlBK1(fooTO&HuV=82_YB@v_l*f?M83!;D>nnaqmJT}%JlyY|NhvzhbSV9qOR*J0Lk zqgfjM@SRWjL7&UaWq#(n9g+0hC>+QhXFQSvE?)Ai^#&S^oq*cn<)HHfxBLSdZtR*^ z6|3#qY=b$h^xDBHWnN+yvpWu}uqq^FR^t_B@hT*Bwg5>@_bj%^me8xSWnP`Uzrt1^ zSzxPLve;e1oCdoJ*)m(>=wndqS7P}7V3bS$2w^jXlH29_P)0B(hdru=@ zO1F~;x5Kj_jQ3nWW^O8yfI}{$fi_1=l?BiGBHjs19C3P)rRjc(JGZtuGCYG>V>2_4 zt&w?Rj;)b(Y@fj58wTDv%+c1q@<|+Kp&x}qKMRw%^@h|AyZc#|%B^;rAV?FD`BCc} z29mdDvbLXw?ZH=)N1YZRl2A3Czx{F2=}4YE+Pocwy)b)p|G|TYw`D5)myhnL+Dyq# zv!p7M*{UjXFObUK|d~p@vm?JpqhH-43 z7z0DBXMl_PXsr$7m1PHmE8^$srf2lw!pU!UgPKtWZNo($>x! zP=TQqa?Ki*RR|;*tzKS%wX9z|)^NRGvBFTj>I*JTnT?`)W;V?w@b0ehJNWm=L~H-P zG`6&#TPG&@_}Cs%ggL{1e9SYq7Xo2Fk~*LUVdg`SN7`OE;IWHyV#Q01mk)vY^iVfQ zgy1qwVn)V?8GTo#JP12spe;Mc;Zq%~XP{tVkhzCpwy(EFJ43{uS4xOYR-9ooeE9!G z=5S#ijqTxbJNC(Mm@&u=W&`EgixGEksz-k7x>_viIJ=M4bF2J_wv&havRTCs zxPR}mZ7HY6x+pJ+uh z9`VYZ_Px!`z2*gei_Oec3JOzkiyHDx?SrbM2?9*;eTY;kgeyo@rivwIxsz0Kl6Z%v zxHQN{kSK>nit8l2K@FwiywSl?=&x&`04 zaI#+fl>1P!rEt^ka|aKZ(Jja72u%yF?G3W-7wywXA6{WYJmPW1?UCO z{FlB+G9+@~gW@=hlc-?ZkNhA*QSApv+S7C`zoS-~?YaZ>E`wo~m;W0CF^2Z$_7a9l zfwOt8c(aI8tIA|RpW^Q)^K-TT{+GKy%a5q>nATooNLB9W^PL6iR**ZeSFjJ^HL=gH zFja%*EHte0H;yxG7C^gv?kVgjz-B?FD_WB{8VuV2H-nu=W*3z$kVLp`7;7lmZU94) zZ5s!UM$;bt`9s$2-3n($r$$P3tX8fKTnH0QVrQMv?R*Vp?hLZumU52wcU z*%RdFDyU9~g*t7&i(oS=gzE&uic%G_z9$c;;(et9`9rXQZ@}}Z>ED1bMT)`w|<6}Zx(@&`I zl|z)FNnW$RAPNItzkMUlWQ+)9HGG9WMqBQ>^#j3iUALucCtmb}fRIRGnu>S*rSY9mv literal 0 HcmV?d00001 diff --git a/src/co2_meal_planner/slv_wrapper.py b/src/co2_meal_planner/slv_wrapper.py new file mode 100644 index 0000000..ed57f77 --- /dev/null +++ b/src/co2_meal_planner/slv_wrapper.py @@ -0,0 +1,117 @@ +""""Request data from livsmedelsverket.""" + +import pandas as pd +import requests + + +class SlvWrapper: + """Class for fetcing and process slv data.""" + + def __init__(self) -> None: + """Initialization.""" + self.version = 1 + list_of_foods_url = "https://dataportal.livsmedelsverket.se/livsmedel/api/v{self.version}/livsmedel?offset=0&limit=2556&sprak=1" + all_foods = requests.get(list_of_foods_url) # noqa: S113 + self.all_foods = all_foods.json()["livsmedel"] + + def search_food(self, food: str) -> None: + """Search for string in slv. + + Args: + food: name of food to search for. + """ + for livsmedel in self.all_foods: + if food in livsmedel["namn"].lower(): + print(livsmedel["namn"], livsmedel["nummer"]) + + pass + + def get_minerals_from_number(self, number: int) -> dict: + """Get minerals and vitamins for given number. + + Args: + number: number corresponding to a specific food + + Returns: + dict with mineals etc corresponding to food number + """ + url = f"https://dataportal.livsmedelsverket.se/livsmedel/api/v{self.version}/livsmedel/{number}/naringsvarden" + temp_minerals = requests.get(url).json() # noqa: S113 + return temp_minerals + + def init_mineral_dict(self) -> dict: + """Initialization of mineral dict. + + Returns: + dict with keys corresponding to minerals etc. + """ + temp = self.get_minerals_from_number(1) + mineral_dict: dict = {mineral["namn"]: [] for mineral in temp} + mineral_dict["name"] = [] + mineral_dict["weight"] = [] + return mineral_dict + + def populate_mineral_dict(self, menu: dict) -> dict: + """Populate mineral dict with minearls from set of foods. + + Args: + menu: dict with foods on format {name: {number: x, weight: y}} + + Returns: + dict with minerals etc (/100g) corresponding to menu + + """ + mineral_dict = self.init_mineral_dict() + for key, item in menu.items(): + mineral_dict["name"].append(key) + mineral_dict["weight"].append(item["weight"]) + temp_minerals = self.get_minerals_from_number(item["number"]) + for mineral in temp_minerals: + mineral_dict[mineral["namn"]].append(mineral["varde"]) + + return mineral_dict + + def mineral_dict_to_df(self, mineral_dict: dict) -> pd.DataFrame: + """Convert minearl dict to dataframe. + + Args: + mineral_dict: dict with minearals etc. + + Returns: + Dataframe with minerals etc. + """ + mineral_df = pd.DataFrame.from_dict(mineral_dict) + mineral_df.set_index("name", inplace=True) + mineral_df = mineral_df.astype(float) + return mineral_df + + def convert_betakaroten_to_retinol(self, mineral_df: pd.DataFrame) -> pd.DataFrame: + """Convert betakaroten to retinol. + + Factor according to slv. + + Args: + mineral_df: dataframe with minerals etc. + + Returns: + Dataframe with Retinol modified. + """ + factor = 12 + mineral_df["Retinol"] = ( + mineral_df["Retinol"] + mineral_df["Betakaroten/β-Karoten"] / factor + ) + + return mineral_df + + def calculate_minerals_for_weight(self, mineral_df: pd.DataFrame) -> pd.DataFrame: + """Adjust minerals by weight. + + Args: + mineral_df: dataframe with minerals etc + + Returns: + dataframe with minerals etc adjusted. + """ + for index, row in mineral_df.iterrows(): + mineral_df.loc[index] = mineral_df.loc[index] * row["weight"] / 100.0 + return mineral_df diff --git a/src/ifk_co2_meal_planner.egg-info/PKG-INFO b/src/ifk_co2_meal_planner.egg-info/PKG-INFO new file mode 100644 index 0000000..6a3823c --- /dev/null +++ b/src/ifk_co2_meal_planner.egg-info/PKG-INFO @@ -0,0 +1,83 @@ +Metadata-Version: 2.1 +Name: ifk-co2-meal-planner +Version: 0.1.0 +Summary: For evaluation of nutrition and CHG of meals. +Author-email: IFK +License: MIT +Requires-Python: >=3.9 +Description-Content-Type: text/markdown +License-File: LICENSE +Requires-Dist: requests==2.31.0 +Requires-Dist: pandas==2.2.0 +Requires-Dist: matplotlib==3.8.2 +Requires-Dist: pyarrow==15.0.0 +Provides-Extra: lint +Requires-Dist: ruff~=0.1; extra == "lint" +Provides-Extra: type +Requires-Dist: mypy~=1.7; extra == "type" +Requires-Dist: types-requests~=2.28; extra == "type" +Requires-Dist: pandas-stubs~=1.5; extra == "type" +Provides-Extra: test +Requires-Dist: pytest~=7.1; extra == "test" +Requires-Dist: coverage~=6.5; extra == "test" +Requires-Dist: pytest-cov~=4.0; extra == "test" +Provides-Extra: doc +Requires-Dist: mkdocs~=1.4; extra == "doc" +Requires-Dist: mkdocs-material~=8.5; extra == "doc" +Requires-Dist: mkdocstrings[python]~=0.19; extra == "doc" +Provides-Extra: dev +Requires-Dist: ifk-co2-meal-planner[lint]; extra == "dev" +Requires-Dist: ifk-co2-meal-planner[type]; extra == "dev" +Requires-Dist: ifk-co2-meal-planner[test]; extra == "dev" +Requires-Dist: ifk-co2-meal-planner[doc]; extra == "dev" +Requires-Dist: pre-commit~=2.20; extra == "dev" +Requires-Dist: ipykernel~=6.26; extra == "dev" + +

ifk-co2-meal-planner

+ +

+ + build + + + coverage + + + docs + + + lint + + + type + +

+ +

+ + Python: 3.9 - 3.12 + + + Testing framework: pytest + + + Linter and formatter: ruff + + + Type checker: mypy + +

+ +## Description + +Welcome to ifk-co2-meal-planner. + +## Configuration + +When you start a new project, apart from the obvious changes, +there are some details to consider. + +- Build workflow, follow the guide in [dynamic badges](https://github.com/Schneegans/dynamic-badges-action). +- To build docs, change `branch` in `github/workflows/github-action-docs.yaml` +from `["SET_TO_MAIN"]` to `["main"]`. You also need to activate Pages under repo +Settings/Pages. diff --git a/src/ifk_co2_meal_planner.egg-info/SOURCES.txt b/src/ifk_co2_meal_planner.egg-info/SOURCES.txt new file mode 100644 index 0000000..23d1149 --- /dev/null +++ b/src/ifk_co2_meal_planner.egg-info/SOURCES.txt @@ -0,0 +1,10 @@ +LICENSE +README.md +pyproject.toml +src/co2_meal_planner/slv_wrapper.py +src/ifk_co2_meal_planner.egg-info/PKG-INFO +src/ifk_co2_meal_planner.egg-info/SOURCES.txt +src/ifk_co2_meal_planner.egg-info/dependency_links.txt +src/ifk_co2_meal_planner.egg-info/requires.txt +src/ifk_co2_meal_planner.egg-info/top_level.txt +tests/test_unit.py \ No newline at end of file diff --git a/src/ifk_co2_meal_planner.egg-info/dependency_links.txt b/src/ifk_co2_meal_planner.egg-info/dependency_links.txt new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/src/ifk_co2_meal_planner.egg-info/dependency_links.txt @@ -0,0 +1 @@ + diff --git a/src/ifk_co2_meal_planner.egg-info/requires.txt b/src/ifk_co2_meal_planner.egg-info/requires.txt new file mode 100644 index 0000000..811ab89 --- /dev/null +++ b/src/ifk_co2_meal_planner.egg-info/requires.txt @@ -0,0 +1,30 @@ +requests==2.31.0 +pandas==2.2.0 +matplotlib==3.8.2 +pyarrow==15.0.0 + +[dev] +ifk-co2-meal-planner[lint] +ifk-co2-meal-planner[type] +ifk-co2-meal-planner[test] +ifk-co2-meal-planner[doc] +pre-commit~=2.20 +ipykernel~=6.26 + +[doc] +mkdocs~=1.4 +mkdocs-material~=8.5 +mkdocstrings[python]~=0.19 + +[lint] +ruff~=0.1 + +[test] +pytest~=7.1 +coverage~=6.5 +pytest-cov~=4.0 + +[type] +mypy~=1.7 +types-requests~=2.28 +pandas-stubs~=1.5 diff --git a/src/ifk_co2_meal_planner.egg-info/top_level.txt b/src/ifk_co2_meal_planner.egg-info/top_level.txt new file mode 100644 index 0000000..4373af3 --- /dev/null +++ b/src/ifk_co2_meal_planner.egg-info/top_level.txt @@ -0,0 +1 @@ +co2_meal_planner diff --git a/src/rdi.py b/src/rdi.py new file mode 100644 index 0000000..fcb3a4a --- /dev/null +++ b/src/rdi.py @@ -0,0 +1,24 @@ +"""RDI list.""" + +# Zink ett intag på 25-30% högre rekommenderas vid veg kost + +rdi = { + "Zink, Zn": {"male": 12.7, "female": 9.7, "4-6 years": 5.8}, + "Vitamin E": {"male": 11, "female": 10, "4-6 years": 8}, + "Vitamin D": {"male": 10, "female": 10, "4-6 years": 10}, + "Vitamin C": {"male": 110, "female": 95, "4-6 years": 35}, + "Vitamin B6": {"male": 1.8, "female": 1.6, "4-6 years": 0.7}, + "Vitamin B12": {"male": 4, "female": 4, "4-6 years": 1.7}, + "Tiamin": {"male": 0.1, "female": 0.1, "4-6 years": 0.1}, + "Selen, Se": {"male": 90, "female": 75, "4-6 years": 25}, + "Riboflavin": {"male": 1.6, "female": 1.6, "4-6 years": 0.7}, + "Retinol": {"male": 800, "female": 700, "4-6 years": 350}, + "Fosfor, P": {"male": 520, "female": 520, "4-6 years": 440}, + "Niacinekvivalenter": {"male": 1.6, "female": 1.6, "4-6 years": 1.6}, + "Magnesium, Mg": {"male": 350, "female": 300, "4-6 years": 230}, + "Kalium, K": {"male": 3500, "female": 3500, "4-6 years": 1150}, + "Jod, I": {"male": 150, "female": 150, "4-6 years": 100}, + "Folat": {"male": 330, "female": 330, "4-6 years": 140}, + "Järn, Fe": {"male": 9, "female": 15, "4-6 years": 7}, + "Kalcium, Ca": {"male": 950, "female": 950, "4-6 years": 800}, +} diff --git a/tests/test_unit.py b/tests/test_unit.py new file mode 100644 index 0000000..2eca37e --- /dev/null +++ b/tests/test_unit.py @@ -0,0 +1,8 @@ +"""Temporary unit test.""" + +from co2_meal_planner.slv_wrapper import temp + + +def test_unit_temp(): + """Unit test of temp function.""" + assert temp() is True From 8a072c371d5338467e6693b63f23f50fef3a556b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christoffer=20Str=C3=B6mberg?= Date: Thu, 29 Feb 2024 15:50:09 +0100 Subject: [PATCH 2/8] add gitignore --- .gitignore | 163 ++++++++++++++++++ Pipfile.lock | 36 +++- src/ifk_co2_meal_planner.egg-info/SOURCES.txt | 12 ++ 3 files changed, 210 insertions(+), 1 deletion(-) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b3040cb --- /dev/null +++ b/.gitignore @@ -0,0 +1,163 @@ +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +share/python-wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.nox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +*.py,cover +.hypothesis/ +.pytest_cache/ +cover/ + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +local_settings.py +db.sqlite3 +db.sqlite3-journal + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +.pybuilder/ +target/ + +# Jupyter Notebook +.ipynb_checkpoints +*.ipynb + +# IPython +profile_default/ +ipython_config.py + +# pyenv +# For a library or package, you might want to ignore these files since the code is +# intended to run in multiple environments; otherwise, check them in: +# .python-version + +# pipenv +# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. +# However, in case of collaboration, if having platform-specific dependencies or dependencies +# having no cross-platform support, pipenv may install dependencies that don't work, or not +# install all needed dependencies. +Pipfile.lock +Pipfile + +# poetry +# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control. +# This is especially recommended for binary packages to ensure reproducibility, and is more +# commonly ignored for libraries. +# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control +#poetry.lock + +# pdm +# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control. +#pdm.lock +# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it +# in version control. +# https://pdm.fming.dev/#use-with-ide +.pdm.toml + +# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm +__pypackages__/ + +# Celery stuff +celerybeat-schedule +celerybeat.pid + +# SageMath parsed files +*.sage.py + +# Environments +.env +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ +.dmypy.json +dmypy.json + +# Pyre type checker +.pyre/ + +# pytype static type analyzer +.pytype/ + +# Cython debug symbols +cython_debug/ + +# PyCharm +# JetBrains specific template is maintained in a separate JetBrains.gitignore that can +# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore +# and can be added to the global gitignore or merged into this file. For a more nuclear +# option (not recommended) you can uncomment the following to ignore the entire idea folder. +#.idea/ + diff --git a/Pipfile.lock b/Pipfile.lock index 363e923..93c7db0 100644 --- a/Pipfile.lock +++ b/Pipfile.lock @@ -1,7 +1,7 @@ { "_meta": { "hash": { - "sha256": "54aa47be4d5df0bf3c8523d7b79a54529a2292cf120f3ee51db3e9fde63943a0" + "sha256": "a1058a25cc5b03657173e71d252414fbae3227756f25429b6a1e7f4f4ea10b9f" }, "pipfile-spec": 6, "requires": { @@ -425,6 +425,40 @@ "markers": "python_version >= '3.9'", "version": "==3.8.2" }, + "mypy": { + "hashes": [ + "sha256:028cf9f2cae89e202d7b6593cd98db6759379f17a319b5faf4f9978d7084cdc6", + "sha256:2afecd6354bbfb6e0160f4e4ad9ba6e4e003b767dd80d85516e71f2e955ab50d", + "sha256:2b5b6c721bd4aabaadead3a5e6fa85c11c6c795e0c81a7215776ef8afc66de02", + "sha256:42419861b43e6962a649068a61f4a4839205a3ef525b858377a960b9e2de6e0d", + "sha256:42c6680d256ab35637ef88891c6bd02514ccb7e1122133ac96055ff458f93fc3", + "sha256:485a8942f671120f76afffff70f259e1cd0f0cfe08f81c05d8816d958d4577d3", + "sha256:4c886c6cce2d070bd7df4ec4a05a13ee20c0aa60cb587e8d1265b6c03cf91da3", + "sha256:4e6d97288757e1ddba10dd9549ac27982e3e74a49d8d0179fc14d4365c7add66", + "sha256:4ef4be7baf08a203170f29e89d79064463b7fc7a0908b9d0d5114e8009c3a259", + "sha256:51720c776d148bad2372ca21ca29256ed483aa9a4cdefefcef49006dff2a6835", + "sha256:52825b01f5c4c1c4eb0db253ec09c7aa17e1a7304d247c48b6f3599ef40db8bd", + "sha256:538fd81bb5e430cc1381a443971c0475582ff9f434c16cd46d2c66763ce85d9d", + "sha256:5c1538c38584029352878a0466f03a8ee7547d7bd9f641f57a0f3017a7c905b8", + "sha256:6ff8b244d7085a0b425b56d327b480c3b29cafbd2eff27316a004f9a7391ae07", + "sha256:7178def594014aa6c35a8ff411cf37d682f428b3b5617ca79029d8ae72f5402b", + "sha256:720a5ca70e136b675af3af63db533c1c8c9181314d207568bbe79051f122669e", + "sha256:7f1478736fcebb90f97e40aff11a5f253af890c845ee0c850fe80aa060a267c6", + "sha256:855fe27b80375e5c5878492f0729540db47b186509c98dae341254c8f45f42ae", + "sha256:8963b83d53ee733a6e4196954502b33567ad07dfd74851f32be18eb932fb1cb9", + "sha256:9261ed810972061388918c83c3f5cd46079d875026ba97380f3e3978a72f503d", + "sha256:99b00bc72855812a60d253420d8a2eae839b0afa4938f09f4d2aa9bb4654263a", + "sha256:ab3c84fa13c04aeeeabb2a7f67a25ef5d77ac9d6486ff33ded762ef353aa5592", + "sha256:afe3fe972c645b4632c563d3f3eff1cdca2fa058f730df2b93a35e3b0c538218", + "sha256:d19c413b3c07cbecf1f991e2221746b0d2a9410b59cb3f4fb9557f0365a1a817", + "sha256:df9824ac11deaf007443e7ed2a4a26bebff98d2bc43c6da21b2b64185da011c4", + "sha256:e46f44b54ebddbeedbd3d5b289a893219065ef805d95094d16a0af6630f5d410", + "sha256:f5ac9a4eeb1ec0f1ccdc6f326bcdb464de5f80eb07fb38b5ddd7b0de6bc61e55" + ], + "index": "pypi", + "markers": "python_version >= '3.8'", + "version": "==1.8.0" + }, "mypy-extensions": { "hashes": [ "sha256:4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d", diff --git a/src/ifk_co2_meal_planner.egg-info/SOURCES.txt b/src/ifk_co2_meal_planner.egg-info/SOURCES.txt index 23d1149..8fe68e9 100644 --- a/src/ifk_co2_meal_planner.egg-info/SOURCES.txt +++ b/src/ifk_co2_meal_planner.egg-info/SOURCES.txt @@ -1,7 +1,19 @@ LICENSE +Pipfile +Pipfile.lock README.md +mkdocs.yml pyproject.toml +docs/index.md +docs/assets/favicon.png +docs/assets/ifk_logo_black.png +docs/assets/ifk_logo_white.png +material/partials/copyright.html +notebooks/example.ipynb +notebooks/example.py +src/rdi.py src/co2_meal_planner/slv_wrapper.py +src/co2_meal_planner/__pycache__/slv_wrapper.cpython-310.pyc src/ifk_co2_meal_planner.egg-info/PKG-INFO src/ifk_co2_meal_planner.egg-info/SOURCES.txt src/ifk_co2_meal_planner.egg-info/dependency_links.txt From 487db610860e3a80bdbff570fc1cba060a4a2f29 Mon Sep 17 00:00:00 2001 From: strobba <68318760+strobba@users.noreply.github.com> Date: Thu, 29 Feb 2024 15:53:16 +0100 Subject: [PATCH 3/8] Delete Pipfile.lock --- Pipfile.lock | 1147 -------------------------------------------------- 1 file changed, 1147 deletions(-) delete mode 100644 Pipfile.lock diff --git a/Pipfile.lock b/Pipfile.lock deleted file mode 100644 index 93c7db0..0000000 --- a/Pipfile.lock +++ /dev/null @@ -1,1147 +0,0 @@ -{ - "_meta": { - "hash": { - "sha256": "a1058a25cc5b03657173e71d252414fbae3227756f25429b6a1e7f4f4ea10b9f" - }, - "pipfile-spec": 6, - "requires": { - "python_version": "3.10" - }, - "sources": [ - { - "name": "pypi", - "url": "https://pypi.org/simple", - "verify_ssl": true - } - ] - }, - "default": { - "black": { - "hashes": [ - "sha256:057c3dc602eaa6fdc451069bd027a1b2635028b575a6c3acfd63193ced20d9c8", - "sha256:08654d0797e65f2423f850fc8e16a0ce50925f9337fb4a4a176a7aa4026e63f8", - "sha256:163baf4ef40e6897a2a9b83890e59141cc8c2a98f2dda5080dc15c00ee1e62cd", - "sha256:1e08fb9a15c914b81dd734ddd7fb10513016e5ce7e6704bdd5e1251ceee51ac9", - "sha256:4dd76e9468d5536abd40ffbc7a247f83b2324f0c050556d9c371c2b9a9a95e31", - "sha256:4f9de21bafcba9683853f6c96c2d515e364aee631b178eaa5145fc1c61a3cc92", - "sha256:61a0391772490ddfb8a693c067df1ef5227257e72b0e4108482b8d41b5aee13f", - "sha256:6981eae48b3b33399c8757036c7f5d48a535b962a7c2310d19361edeef64ce29", - "sha256:7e53a8c630f71db01b28cd9602a1ada68c937cbf2c333e6ed041390d6968faf4", - "sha256:810d445ae6069ce64030c78ff6127cd9cd178a9ac3361435708b907d8a04c693", - "sha256:93601c2deb321b4bad8f95df408e3fb3943d85012dddb6121336b8e24a0d1218", - "sha256:992e451b04667116680cb88f63449267c13e1ad134f30087dec8527242e9862a", - "sha256:9db528bccb9e8e20c08e716b3b09c6bdd64da0dd129b11e160bf082d4642ac23", - "sha256:a0057f800de6acc4407fe75bb147b0c2b5cbb7c3ed110d3e5999cd01184d53b0", - "sha256:ba15742a13de85e9b8f3239c8f807723991fbfae24bad92d34a2b12e81904982", - "sha256:bce4f25c27c3435e4dace4815bcb2008b87e167e3bf4ee47ccdc5ce906eb4894", - "sha256:ca610d29415ee1a30a3f30fab7a8f4144e9d34c89a235d81292a1edb2b55f540", - "sha256:d533d5e3259720fdbc1b37444491b024003e012c5173f7d06825a77508085430", - "sha256:d84f29eb3ee44859052073b7636533ec995bd0f64e2fb43aeceefc70090e752b", - "sha256:e37c99f89929af50ffaf912454b3e3b47fd64109659026b678c091a4cd450fb2", - "sha256:e8a6ae970537e67830776488bca52000eaa37fa63b9988e8c487458d9cd5ace6", - "sha256:faf2ee02e6612577ba0181f4347bcbcf591eb122f7841ae5ba233d12c39dcb4d" - ], - "index": "pypi", - "markers": "python_version >= '3.8'", - "version": "==24.2.0" - }, - "certifi": { - "hashes": [ - "sha256:0569859f95fc761b18b45ef421b1290a0f65f147e92a1e5eb3e635f9a5e4e66f", - "sha256:dc383c07b76109f368f6106eee2b593b04a011ea4d55f652c6ca24a754d1cdd1" - ], - "markers": "python_version >= '3.6'", - "version": "==2024.2.2" - }, - "charset-normalizer": { - "hashes": [ - "sha256:06435b539f889b1f6f4ac1758871aae42dc3a8c0e24ac9e60c2384973ad73027", - "sha256:06a81e93cd441c56a9b65d8e1d043daeb97a3d0856d177d5c90ba85acb3db087", - "sha256:0a55554a2fa0d408816b3b5cedf0045f4b8e1a6065aec45849de2d6f3f8e9786", - "sha256:0b2b64d2bb6d3fb9112bafa732def486049e63de9618b5843bcdd081d8144cd8", - "sha256:10955842570876604d404661fbccbc9c7e684caf432c09c715ec38fbae45ae09", - "sha256:122c7fa62b130ed55f8f285bfd56d5f4b4a5b503609d181f9ad85e55c89f4185", - "sha256:1ceae2f17a9c33cb48e3263960dc5fc8005351ee19db217e9b1bb15d28c02574", - "sha256:1d3193f4a680c64b4b6a9115943538edb896edc190f0b222e73761716519268e", - "sha256:1f79682fbe303db92bc2b1136016a38a42e835d932bab5b3b1bfcfbf0640e519", - "sha256:2127566c664442652f024c837091890cb1942c30937add288223dc895793f898", - "sha256:22afcb9f253dac0696b5a4be4a1c0f8762f8239e21b99680099abd9b2b1b2269", - "sha256:25baf083bf6f6b341f4121c2f3c548875ee6f5339300e08be3f2b2ba1721cdd3", - "sha256:2e81c7b9c8979ce92ed306c249d46894776a909505d8f5a4ba55b14206e3222f", - "sha256:3287761bc4ee9e33561a7e058c72ac0938c4f57fe49a09eae428fd88aafe7bb6", - "sha256:34d1c8da1e78d2e001f363791c98a272bb734000fcef47a491c1e3b0505657a8", - "sha256:37e55c8e51c236f95b033f6fb391d7d7970ba5fe7ff453dad675e88cf303377a", - "sha256:3d47fa203a7bd9c5b6cee4736ee84ca03b8ef23193c0d1ca99b5089f72645c73", - "sha256:3e4d1f6587322d2788836a99c69062fbb091331ec940e02d12d179c1d53e25fc", - "sha256:42cb296636fcc8b0644486d15c12376cb9fa75443e00fb25de0b8602e64c1714", - "sha256:45485e01ff4d3630ec0d9617310448a8702f70e9c01906b0d0118bdf9d124cf2", - "sha256:4a78b2b446bd7c934f5dcedc588903fb2f5eec172f3d29e52a9096a43722adfc", - "sha256:4ab2fe47fae9e0f9dee8c04187ce5d09f48eabe611be8259444906793ab7cbce", - "sha256:4d0d1650369165a14e14e1e47b372cfcb31d6ab44e6e33cb2d4e57265290044d", - "sha256:549a3a73da901d5bc3ce8d24e0600d1fa85524c10287f6004fbab87672bf3e1e", - "sha256:55086ee1064215781fff39a1af09518bc9255b50d6333f2e4c74ca09fac6a8f6", - "sha256:572c3763a264ba47b3cf708a44ce965d98555f618ca42c926a9c1616d8f34269", - "sha256:573f6eac48f4769d667c4442081b1794f52919e7edada77495aaed9236d13a96", - "sha256:5b4c145409bef602a690e7cfad0a15a55c13320ff7a3ad7ca59c13bb8ba4d45d", - "sha256:6463effa3186ea09411d50efc7d85360b38d5f09b870c48e4600f63af490e56a", - "sha256:65f6f63034100ead094b8744b3b97965785388f308a64cf8d7c34f2f2e5be0c4", - "sha256:663946639d296df6a2bb2aa51b60a2454ca1cb29835324c640dafb5ff2131a77", - "sha256:6897af51655e3691ff853668779c7bad41579facacf5fd7253b0133308cf000d", - "sha256:68d1f8a9e9e37c1223b656399be5d6b448dea850bed7d0f87a8311f1ff3dabb0", - "sha256:6ac7ffc7ad6d040517be39eb591cac5ff87416c2537df6ba3cba3bae290c0fed", - "sha256:6b3251890fff30ee142c44144871185dbe13b11bab478a88887a639655be1068", - "sha256:6c4caeef8fa63d06bd437cd4bdcf3ffefe6738fb1b25951440d80dc7df8c03ac", - "sha256:6ef1d82a3af9d3eecdba2321dc1b3c238245d890843e040e41e470ffa64c3e25", - "sha256:753f10e867343b4511128c6ed8c82f7bec3bd026875576dfd88483c5c73b2fd8", - "sha256:7cd13a2e3ddeed6913a65e66e94b51d80a041145a026c27e6bb76c31a853c6ab", - "sha256:7ed9e526742851e8d5cc9e6cf41427dfc6068d4f5a3bb03659444b4cabf6bc26", - "sha256:7f04c839ed0b6b98b1a7501a002144b76c18fb1c1850c8b98d458ac269e26ed2", - "sha256:802fe99cca7457642125a8a88a084cef28ff0cf9407060f7b93dca5aa25480db", - "sha256:80402cd6ee291dcb72644d6eac93785fe2c8b9cb30893c1af5b8fdd753b9d40f", - "sha256:8465322196c8b4d7ab6d1e049e4c5cb460d0394da4a27d23cc242fbf0034b6b5", - "sha256:86216b5cee4b06df986d214f664305142d9c76df9b6512be2738aa72a2048f99", - "sha256:87d1351268731db79e0f8e745d92493ee2841c974128ef629dc518b937d9194c", - "sha256:8bdb58ff7ba23002a4c5808d608e4e6c687175724f54a5dade5fa8c67b604e4d", - "sha256:8c622a5fe39a48f78944a87d4fb8a53ee07344641b0562c540d840748571b811", - "sha256:8d756e44e94489e49571086ef83b2bb8ce311e730092d2c34ca8f7d925cb20aa", - "sha256:8f4a014bc36d3c57402e2977dada34f9c12300af536839dc38c0beab8878f38a", - "sha256:9063e24fdb1e498ab71cb7419e24622516c4a04476b17a2dab57e8baa30d6e03", - "sha256:90d558489962fd4918143277a773316e56c72da56ec7aa3dc3dbbe20fdfed15b", - "sha256:923c0c831b7cfcb071580d3f46c4baf50f174be571576556269530f4bbd79d04", - "sha256:95f2a5796329323b8f0512e09dbb7a1860c46a39da62ecb2324f116fa8fdc85c", - "sha256:96b02a3dc4381e5494fad39be677abcb5e6634bf7b4fa83a6dd3112607547001", - "sha256:9f96df6923e21816da7e0ad3fd47dd8f94b2a5ce594e00677c0013018b813458", - "sha256:a10af20b82360ab00827f916a6058451b723b4e65030c5a18577c8b2de5b3389", - "sha256:a50aebfa173e157099939b17f18600f72f84eed3049e743b68ad15bd69b6bf99", - "sha256:a981a536974bbc7a512cf44ed14938cf01030a99e9b3a06dd59578882f06f985", - "sha256:a9a8e9031d613fd2009c182b69c7b2c1ef8239a0efb1df3f7c8da66d5dd3d537", - "sha256:ae5f4161f18c61806f411a13b0310bea87f987c7d2ecdbdaad0e94eb2e404238", - "sha256:aed38f6e4fb3f5d6bf81bfa990a07806be9d83cf7bacef998ab1a9bd660a581f", - "sha256:b01b88d45a6fcb69667cd6d2f7a9aeb4bf53760d7fc536bf679ec94fe9f3ff3d", - "sha256:b261ccdec7821281dade748d088bb6e9b69e6d15b30652b74cbbac25e280b796", - "sha256:b2b0a0c0517616b6869869f8c581d4eb2dd83a4d79e0ebcb7d373ef9956aeb0a", - "sha256:b4a23f61ce87adf89be746c8a8974fe1c823c891d8f86eb218bb957c924bb143", - "sha256:bd8f7df7d12c2db9fab40bdd87a7c09b1530128315d047a086fa3ae3435cb3a8", - "sha256:beb58fe5cdb101e3a055192ac291b7a21e3b7ef4f67fa1d74e331a7f2124341c", - "sha256:c002b4ffc0be611f0d9da932eb0f704fe2602a9a949d1f738e4c34c75b0863d5", - "sha256:c083af607d2515612056a31f0a8d9e0fcb5876b7bfc0abad3ecd275bc4ebc2d5", - "sha256:c180f51afb394e165eafe4ac2936a14bee3eb10debc9d9e4db8958fe36afe711", - "sha256:c235ebd9baae02f1b77bcea61bce332cb4331dc3617d254df3323aa01ab47bd4", - "sha256:cd70574b12bb8a4d2aaa0094515df2463cb429d8536cfb6c7ce983246983e5a6", - "sha256:d0eccceffcb53201b5bfebb52600a5fb483a20b61da9dbc885f8b103cbe7598c", - "sha256:d965bba47ddeec8cd560687584e88cf699fd28f192ceb452d1d7ee807c5597b7", - "sha256:db364eca23f876da6f9e16c9da0df51aa4f104a972735574842618b8c6d999d4", - "sha256:ddbb2551d7e0102e7252db79ba445cdab71b26640817ab1e3e3648dad515003b", - "sha256:deb6be0ac38ece9ba87dea880e438f25ca3eddfac8b002a2ec3d9183a454e8ae", - "sha256:e06ed3eb3218bc64786f7db41917d4e686cc4856944f53d5bdf83a6884432e12", - "sha256:e27ad930a842b4c5eb8ac0016b0a54f5aebbe679340c26101df33424142c143c", - "sha256:e537484df0d8f426ce2afb2d0f8e1c3d0b114b83f8850e5f2fbea0e797bd82ae", - "sha256:eb00ed941194665c332bf8e078baf037d6c35d7c4f3102ea2d4f16ca94a26dc8", - "sha256:eb6904c354526e758fda7167b33005998fb68c46fbc10e013ca97f21ca5c8887", - "sha256:eb8821e09e916165e160797a6c17edda0679379a4be5c716c260e836e122f54b", - "sha256:efcb3f6676480691518c177e3b465bcddf57cea040302f9f4e6e191af91174d4", - "sha256:f27273b60488abe721a075bcca6d7f3964f9f6f067c8c4c605743023d7d3944f", - "sha256:f30c3cb33b24454a82faecaf01b19c18562b1e89558fb6c56de4d9118a032fd5", - "sha256:fb69256e180cb6c8a894fee62b3afebae785babc1ee98b81cdf68bbca1987f33", - "sha256:fd1abc0d89e30cc4e02e4064dc67fcc51bd941eb395c502aac3ec19fab46b519", - "sha256:ff8fa367d09b717b2a17a052544193ad76cd49979c805768879cb63d9ca50561" - ], - "markers": "python_full_version >= '3.7.0'", - "version": "==3.3.2" - }, - "click": { - "hashes": [ - "sha256:ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28", - "sha256:ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de" - ], - "markers": "python_version >= '3.7'", - "version": "==8.1.7" - }, - "contourpy": { - "hashes": [ - "sha256:0274c1cb63625972c0c007ab14dd9ba9e199c36ae1a231ce45d725cbcbfd10a8", - "sha256:0d7e03c0f9a4f90dc18d4e77e9ef4ec7b7bbb437f7f675be8e530d65ae6ef956", - "sha256:11f8d2554e52f459918f7b8e6aa20ec2a3bce35ce95c1f0ef4ba36fbda306df5", - "sha256:139d8d2e1c1dd52d78682f505e980f592ba53c9f73bd6be102233e358b401063", - "sha256:16a7380e943a6d52472096cb7ad5264ecee36ed60888e2a3d3814991a0107286", - "sha256:171f311cb758de7da13fc53af221ae47a5877be5a0843a9fe150818c51ed276a", - "sha256:18fc2b4ed8e4a8fe849d18dce4bd3c7ea637758c6343a1f2bae1e9bd4c9f4686", - "sha256:1c203f617abc0dde5792beb586f827021069fb6d403d7f4d5c2b543d87edceb9", - "sha256:1c2559d6cffc94890b0529ea7eeecc20d6fadc1539273aa27faf503eb4656d8f", - "sha256:1c88dfb9e0c77612febebb6ac69d44a8d81e3dc60f993215425b62c1161353f4", - "sha256:1e9dc350fb4c58adc64df3e0703ab076f60aac06e67d48b3848c23647ae4310e", - "sha256:247b9d16535acaa766d03037d8e8fb20866d054d3c7fbf6fd1f993f11fc60ca0", - "sha256:266270c6f6608340f6c9836a0fb9b367be61dde0c9a9a18d5ece97774105ff3e", - "sha256:34b9071c040d6fe45d9826cbbe3727d20d83f1b6110d219b83eb0e2a01d79488", - "sha256:3d7d1f8871998cdff5d2ff6a087e5e1780139abe2838e85b0b46b7ae6cc25399", - "sha256:461e3ae84cd90b30f8d533f07d87c00379644205b1d33a5ea03381edc4b69431", - "sha256:464b423bc2a009088f19bdf1f232299e8b6917963e2b7e1d277da5041f33a779", - "sha256:491b1917afdd8638a05b611a56d46587d5a632cabead889a5440f7c638bc6ed9", - "sha256:4a1b1208102be6e851f20066bf0e7a96b7d48a07c9b0cfe6d0d4545c2f6cadab", - "sha256:575bcaf957a25d1194903a10bc9f316c136c19f24e0985a2b9b5608bdf5dbfe0", - "sha256:5c6b28956b7b232ae801406e529ad7b350d3f09a4fde958dfdf3c0520cdde0dd", - "sha256:5d16edfc3fc09968e09ddffada434b3bf989bf4911535e04eada58469873e28e", - "sha256:5fd1810973a375ca0e097dee059c407913ba35723b111df75671a1976efa04bc", - "sha256:67b7f17679fa62ec82b7e3e611c43a016b887bd64fb933b3ae8638583006c6d6", - "sha256:68ce4788b7d93e47f84edd3f1f95acdcd142ae60bc0e5493bfd120683d2d4316", - "sha256:6d3364b999c62f539cd403f8123ae426da946e142312a514162adb2addd8d808", - "sha256:6e739530c662a8d6d42c37c2ed52a6f0932c2d4a3e8c1f90692ad0ce1274abe0", - "sha256:6fdd887f17c2f4572ce548461e4f96396681212d858cae7bd52ba3310bc6f00f", - "sha256:78e6ad33cf2e2e80c5dfaaa0beec3d61face0fb650557100ee36db808bfa6843", - "sha256:884c3f9d42d7218304bc74a8a7693d172685c84bd7ab2bab1ee567b769696df9", - "sha256:8d8faf05be5ec8e02a4d86f616fc2a0322ff4a4ce26c0f09d9f7fb5330a35c95", - "sha256:999c71939aad2780f003979b25ac5b8f2df651dac7b38fb8ce6c46ba5abe6ae9", - "sha256:99ad97258985328b4f207a5e777c1b44a83bfe7cf1f87b99f9c11d4ee477c4de", - "sha256:9e6c93b5b2dbcedad20a2f18ec22cae47da0d705d454308063421a3b290d9ea4", - "sha256:ab459a1cbbf18e8698399c595a01f6dcc5c138220ca3ea9e7e6126232d102bb4", - "sha256:b69303ceb2e4d4f146bf82fda78891ef7bcd80c41bf16bfca3d0d7eb545448aa", - "sha256:b7caf9b241464c404613512d5594a6e2ff0cc9cb5615c9475cc1d9b514218ae8", - "sha256:b95a225d4948b26a28c08307a60ac00fb8671b14f2047fc5476613252a129776", - "sha256:bd2f1ae63998da104f16a8b788f685e55d65760cd1929518fd94cd682bf03e41", - "sha256:be16975d94c320432657ad2402f6760990cb640c161ae6da1363051805fa8108", - "sha256:ce96dd400486e80ac7d195b2d800b03e3e6a787e2a522bfb83755938465a819e", - "sha256:dbd50d0a0539ae2e96e537553aff6d02c10ed165ef40c65b0e27e744a0f10af8", - "sha256:dd10c26b4eadae44783c45ad6655220426f971c61d9b239e6f7b16d5cdaaa727", - "sha256:ebeac59e9e1eb4b84940d076d9f9a6cec0064e241818bcb6e32124cc5c3e377a" - ], - "markers": "python_version >= '3.9'", - "version": "==1.2.0" - }, - "cycler": { - "hashes": [ - "sha256:85cef7cff222d8644161529808465972e51340599459b8ac3ccbac5a854e0d30", - "sha256:88bb128f02ba341da8ef447245a9e138fae777f6a23943da4540077d3601eb1c" - ], - "markers": "python_version >= '3.8'", - "version": "==0.12.1" - }, - "e": { - "hashes": [ - "sha256:1ce64149fd260237e8f53d5b4863466875594e77341ec47d340c0d2c6d3b5942" - ], - "index": "pypi", - "version": "==1.4.5" - }, - "fonttools": { - "hashes": [ - "sha256:0404faea044577a01bb82d47a8fa4bc7a54067fa7e324785dd65d200d6dd1133", - "sha256:07bc5ea02bb7bc3aa40a1eb0481ce20e8d9b9642a9536cde0218290dd6085828", - "sha256:08877e355d3dde1c11973bb58d4acad1981e6d1140711230a4bfb40b2b937ccc", - "sha256:0af65c720520710cc01c293f9c70bd69684365c6015cc3671db2b7d807fe51f2", - "sha256:0ba0e00620ca28d4ca11fc700806fd69144b463aa3275e1b36e56c7c09915559", - "sha256:1f255ce8ed7556658f6d23f6afd22a6d9bbc3edb9b96c96682124dc487e1bf42", - "sha256:1fac1b7eebfce75ea663e860e7c5b4a8831b858c17acd68263bc156125201abf", - "sha256:263832fae27481d48dfafcc43174644b6706639661e242902ceb30553557e16c", - "sha256:29e89d0e1a7f18bc30f197cfadcbef5a13d99806447c7e245f5667579a808036", - "sha256:33037d9e56e2562c710c8954d0f20d25b8386b397250d65581e544edc9d6b942", - "sha256:33c584c0ef7dc54f5dd4f84082eabd8d09d1871a3d8ca2986b0c0c98165f8e86", - "sha256:36c8865bdb5cfeec88f5028e7e592370a0657b676c6f1d84a2108e0564f90e22", - "sha256:4145f91531fd43c50f9eb893faa08399816bb0b13c425667c48475c9f3a2b9b5", - "sha256:4d418b1fee41a1d14931f7ab4b92dc0bc323b490e41d7a333eec82c9f1780c75", - "sha256:768947008b4dc552d02772e5ebd49e71430a466e2373008ce905f953afea755a", - "sha256:7c7125068e04a70739dad11857a4d47626f2b0bd54de39e8622e89701836eabd", - "sha256:83a0d9336de2cba86d886507dd6e0153df333ac787377325a39a2797ec529814", - "sha256:86eef6aab7fd7c6c8545f3ebd00fd1d6729ca1f63b0cb4d621bccb7d1d1c852b", - "sha256:8fb022d799b96df3eaa27263e9eea306bd3d437cc9aa981820850281a02b6c9a", - "sha256:9d95fa0d22bf4f12d2fb7b07a46070cdfc19ef5a7b1c98bc172bfab5bf0d6844", - "sha256:a974c49a981e187381b9cc2c07c6b902d0079b88ff01aed34695ec5360767034", - "sha256:ac9a745b7609f489faa65e1dc842168c18530874a5f5b742ac3dd79e26bca8bc", - "sha256:af20acbe198a8a790618ee42db192eb128afcdcc4e96d99993aca0b60d1faeb4", - "sha256:af281525e5dd7fa0b39fb1667b8d5ca0e2a9079967e14c4bfe90fd1cd13e0f18", - "sha256:b050d362df50fc6e38ae3954d8c29bf2da52be384649ee8245fdb5186b620836", - "sha256:b44a52b8e6244b6548851b03b2b377a9702b88ddc21dcaf56a15a0393d425cb9", - "sha256:b607ea1e96768d13be26d2b400d10d3ebd1456343eb5eaddd2f47d1c4bd00880", - "sha256:b85ec0bdd7bdaa5c1946398cbb541e90a6dfc51df76dfa88e0aaa41b335940cb", - "sha256:bebd91041dda0d511b0d303180ed36e31f4f54b106b1259b69fade68413aa7ff", - "sha256:c076a9e548521ecc13d944b1d261ff3d7825048c338722a4bd126d22316087b7", - "sha256:cbe61b158deb09cffdd8540dc4a948d6e8f4d5b4f3bf5cd7db09bd6a61fee64e", - "sha256:cdee3ab220283057e7840d5fb768ad4c2ebe65bdba6f75d5d7bf47f4e0ed7d29", - "sha256:ce7033cb61f2bb65d8849658d3786188afd80f53dad8366a7232654804529532", - "sha256:d00af0884c0e65f60dfaf9340e26658836b935052fdd0439952ae42e44fdd2be", - "sha256:d647a0e697e5daa98c87993726da8281c7233d9d4ffe410812a4896c7c57c075", - "sha256:d970ecca0aac90d399e458f0b7a8a597e08f95de021f17785fb68e2dc0b99717", - "sha256:ea329dafb9670ffbdf4dbc3b0e5c264104abcd8441d56de77f06967f032943cb", - "sha256:ebf46e7f01b7af7861310417d7c49591a85d99146fc23a5ba82fdb28af156321", - "sha256:edc0cce355984bb3c1d1e89d6a661934d39586bb32191ebff98c600f8957c63e", - "sha256:f3bbe672df03563d1f3a691ae531f2e31f84061724c319652039e5a70927167e", - "sha256:fc11e5114f3f978d0cea7e9853627935b30d451742eeb4239a81a677bdee6bf6", - "sha256:fdb54b076f25d6b0f0298dc706acee5052de20c83530fa165b60d1f2e9cbe3cb" - ], - "markers": "python_version >= '3.8'", - "version": "==4.49.0" - }, - "idna": { - "hashes": [ - "sha256:9ecdbbd083b06798ae1e86adcbfe8ab1479cf864e4ee30fe4e46a003d12491ca", - "sha256:c05567e9c24a6b9faaa835c4821bad0590fbb9d5779e7caa6e1cc4978e7eb24f" - ], - "markers": "python_version >= '3.5'", - "version": "==3.6" - }, - "ifk-co2-meal-planner": { - "file": "." - }, - "kiwisolver": { - "hashes": [ - "sha256:00bd361b903dc4bbf4eb165f24d1acbee754fce22ded24c3d56eec268658a5cf", - "sha256:040c1aebeda72197ef477a906782b5ab0d387642e93bda547336b8957c61022e", - "sha256:05703cf211d585109fcd72207a31bb170a0f22144d68298dc5e61b3c946518af", - "sha256:06f54715b7737c2fecdbf140d1afb11a33d59508a47bf11bb38ecf21dc9ab79f", - "sha256:0dc9db8e79f0036e8173c466d21ef18e1befc02de8bf8aa8dc0813a6dc8a7046", - "sha256:0f114aa76dc1b8f636d077979c0ac22e7cd8f3493abbab152f20eb8d3cda71f3", - "sha256:11863aa14a51fd6ec28688d76f1735f8f69ab1fabf388851a595d0721af042f5", - "sha256:11c7de8f692fc99816e8ac50d1d1aef4f75126eefc33ac79aac02c099fd3db71", - "sha256:11d011a7574eb3b82bcc9c1a1d35c1d7075677fdd15de527d91b46bd35e935ee", - "sha256:146d14bebb7f1dc4d5fbf74f8a6cb15ac42baadee8912eb84ac0b3b2a3dc6ac3", - "sha256:15568384086b6df3c65353820a4473575dbad192e35010f622c6ce3eebd57af9", - "sha256:19df6e621f6d8b4b9c4d45f40a66839294ff2bb235e64d2178f7522d9170ac5b", - "sha256:1b04139c4236a0f3aff534479b58f6f849a8b351e1314826c2d230849ed48985", - "sha256:210ef2c3a1f03272649aff1ef992df2e724748918c4bc2d5a90352849eb40bea", - "sha256:2270953c0d8cdab5d422bee7d2007f043473f9d2999631c86a223c9db56cbd16", - "sha256:2400873bccc260b6ae184b2b8a4fec0e4082d30648eadb7c3d9a13405d861e89", - "sha256:2a40773c71d7ccdd3798f6489aaac9eee213d566850a9533f8d26332d626b82c", - "sha256:2c5674c4e74d939b9d91dda0fae10597ac7521768fec9e399c70a1f27e2ea2d9", - "sha256:3195782b26fc03aa9c6913d5bad5aeb864bdc372924c093b0f1cebad603dd712", - "sha256:31a82d498054cac9f6d0b53d02bb85811185bcb477d4b60144f915f3b3126342", - "sha256:32d5cf40c4f7c7b3ca500f8985eb3fb3a7dfc023215e876f207956b5ea26632a", - "sha256:346f5343b9e3f00b8db8ba359350eb124b98c99efd0b408728ac6ebf38173958", - "sha256:378a214a1e3bbf5ac4a8708304318b4f890da88c9e6a07699c4ae7174c09a68d", - "sha256:39b42c68602539407884cf70d6a480a469b93b81b7701378ba5e2328660c847a", - "sha256:3a2b053a0ab7a3960c98725cfb0bf5b48ba82f64ec95fe06f1d06c99b552e130", - "sha256:3aba7311af82e335dd1e36ffff68aaca609ca6290c2cb6d821a39aa075d8e3ff", - "sha256:3cd32d6c13807e5c66a7cbb79f90b553642f296ae4518a60d8d76243b0ad2898", - "sha256:3edd2fa14e68c9be82c5b16689e8d63d89fe927e56debd6e1dbce7a26a17f81b", - "sha256:4c380469bd3f970ef677bf2bcba2b6b0b4d5c75e7a020fb863ef75084efad66f", - "sha256:4e66e81a5779b65ac21764c295087de82235597a2293d18d943f8e9e32746265", - "sha256:53abb58632235cd154176ced1ae8f0d29a6657aa1aa9decf50b899b755bc2b93", - "sha256:5794cf59533bc3f1b1c821f7206a3617999db9fbefc345360aafe2e067514929", - "sha256:59415f46a37f7f2efeec758353dd2eae1b07640d8ca0f0c42548ec4125492635", - "sha256:59ec7b7c7e1a61061850d53aaf8e93db63dce0c936db1fda2658b70e4a1be709", - "sha256:59edc41b24031bc25108e210c0def6f6c2191210492a972d585a06ff246bb79b", - "sha256:5a580c91d686376f0f7c295357595c5a026e6cbc3d77b7c36e290201e7c11ecb", - "sha256:5b94529f9b2591b7af5f3e0e730a4e0a41ea174af35a4fd067775f9bdfeee01a", - "sha256:5c7b3b3a728dc6faf3fc372ef24f21d1e3cee2ac3e9596691d746e5a536de920", - "sha256:5c90ae8c8d32e472be041e76f9d2f2dbff4d0b0be8bd4041770eddb18cf49a4e", - "sha256:5e7139af55d1688f8b960ee9ad5adafc4ac17c1c473fe07133ac092310d76544", - "sha256:5ff5cf3571589b6d13bfbfd6bcd7a3f659e42f96b5fd1c4830c4cf21d4f5ef45", - "sha256:620ced262a86244e2be10a676b646f29c34537d0d9cc8eb26c08f53d98013390", - "sha256:6512cb89e334e4700febbffaaa52761b65b4f5a3cf33f960213d5656cea36a77", - "sha256:6c08e1312a9cf1074d17b17728d3dfce2a5125b2d791527f33ffbe805200a355", - "sha256:6c3bd3cde54cafb87d74d8db50b909705c62b17c2099b8f2e25b461882e544ff", - "sha256:6ef7afcd2d281494c0a9101d5c571970708ad911d028137cd558f02b851c08b4", - "sha256:7269d9e5f1084a653d575c7ec012ff57f0c042258bf5db0954bf551c158466e7", - "sha256:72d40b33e834371fd330fb1472ca19d9b8327acb79a5821d4008391db8e29f20", - "sha256:74d1b44c6cfc897df648cc9fdaa09bc3e7679926e6f96df05775d4fb3946571c", - "sha256:74db36e14a7d1ce0986fa104f7d5637aea5c82ca6326ed0ec5694280942d1162", - "sha256:763773d53f07244148ccac5b084da5adb90bfaee39c197554f01b286cf869228", - "sha256:76c6a5964640638cdeaa0c359382e5703e9293030fe730018ca06bc2010c4437", - "sha256:76d9289ed3f7501012e05abb8358bbb129149dbd173f1f57a1bf1c22d19ab7cc", - "sha256:7931d8f1f67c4be9ba1dd9c451fb0eeca1a25b89e4d3f89e828fe12a519b782a", - "sha256:7b8b454bac16428b22560d0a1cf0a09875339cab69df61d7805bf48919415901", - "sha256:7e5bab140c309cb3a6ce373a9e71eb7e4873c70c2dda01df6820474f9889d6d4", - "sha256:83d78376d0d4fd884e2c114d0621624b73d2aba4e2788182d286309ebdeed770", - "sha256:852542f9481f4a62dbb5dd99e8ab7aedfeb8fb6342349a181d4036877410f525", - "sha256:85267bd1aa8880a9c88a8cb71e18d3d64d2751a790e6ca6c27b8ccc724bcd5ad", - "sha256:88a2df29d4724b9237fc0c6eaf2a1adae0cdc0b3e9f4d8e7dc54b16812d2d81a", - "sha256:88b9f257ca61b838b6f8094a62418421f87ac2a1069f7e896c36a7d86b5d4c29", - "sha256:8ab3919a9997ab7ef2fbbed0cc99bb28d3c13e6d4b1ad36e97e482558a91be90", - "sha256:92dea1ffe3714fa8eb6a314d2b3c773208d865a0e0d35e713ec54eea08a66250", - "sha256:9407b6a5f0d675e8a827ad8742e1d6b49d9c1a1da5d952a67d50ef5f4170b18d", - "sha256:9408acf3270c4b6baad483865191e3e582b638b1654a007c62e3efe96f09a9a3", - "sha256:955e8513d07a283056b1396e9a57ceddbd272d9252c14f154d450d227606eb54", - "sha256:9db8ea4c388fdb0f780fe91346fd438657ea602d58348753d9fb265ce1bca67f", - "sha256:9eaa8b117dc8337728e834b9c6e2611f10c79e38f65157c4c38e9400286f5cb1", - "sha256:a51a263952b1429e429ff236d2f5a21c5125437861baeed77f5e1cc2d2c7c6da", - "sha256:a6aa6315319a052b4ee378aa171959c898a6183f15c1e541821c5c59beaa0238", - "sha256:aa12042de0171fad672b6c59df69106d20d5596e4f87b5e8f76df757a7c399aa", - "sha256:aaf7be1207676ac608a50cd08f102f6742dbfc70e8d60c4db1c6897f62f71523", - "sha256:b0157420efcb803e71d1b28e2c287518b8808b7cf1ab8af36718fd0a2c453eb0", - "sha256:b3f7e75f3015df442238cca659f8baa5f42ce2a8582727981cbfa15fee0ee205", - "sha256:b9098e0049e88c6a24ff64545cdfc50807818ba6c1b739cae221bbbcbc58aad3", - "sha256:ba55dce0a9b8ff59495ddd050a0225d58bd0983d09f87cfe2b6aec4f2c1234e4", - "sha256:bb86433b1cfe686da83ce32a9d3a8dd308e85c76b60896d58f082136f10bffac", - "sha256:bbea0db94288e29afcc4c28afbf3a7ccaf2d7e027489c449cf7e8f83c6346eb9", - "sha256:bbf1d63eef84b2e8c89011b7f2235b1e0bf7dacc11cac9431fc6468e99ac77fb", - "sha256:c7940c1dc63eb37a67721b10d703247552416f719c4188c54e04334321351ced", - "sha256:c9bf3325c47b11b2e51bca0824ea217c7cd84491d8ac4eefd1e409705ef092bd", - "sha256:cdc8a402aaee9a798b50d8b827d7ecf75edc5fb35ea0f91f213ff927c15f4ff0", - "sha256:ceec1a6bc6cab1d6ff5d06592a91a692f90ec7505d6463a88a52cc0eb58545da", - "sha256:cfe6ab8da05c01ba6fbea630377b5da2cd9bcbc6338510116b01c1bc939a2c18", - "sha256:d099e745a512f7e3bbe7249ca835f4d357c586d78d79ae8f1dcd4d8adeb9bda9", - "sha256:d0ef46024e6a3d79c01ff13801cb19d0cad7fd859b15037aec74315540acc276", - "sha256:d2e5a98f0ec99beb3c10e13b387f8db39106d53993f498b295f0c914328b1333", - "sha256:da4cfb373035def307905d05041c1d06d8936452fe89d464743ae7fb8371078b", - "sha256:da802a19d6e15dffe4b0c24b38b3af68e6c1a68e6e1d8f30148c83864f3881db", - "sha256:dced8146011d2bc2e883f9bd68618b8247387f4bbec46d7392b3c3b032640126", - "sha256:dfdd7c0b105af050eb3d64997809dc21da247cf44e63dc73ff0fd20b96be55a9", - "sha256:e368f200bbc2e4f905b8e71eb38b3c04333bddaa6a2464a6355487b02bb7fb09", - "sha256:e391b1f0a8a5a10ab3b9bb6afcfd74f2175f24f8975fb87ecae700d1503cdee0", - "sha256:e57e563a57fb22a142da34f38acc2fc1a5c864bc29ca1517a88abc963e60d6ec", - "sha256:e5d706eba36b4c4d5bc6c6377bb6568098765e990cfc21ee16d13963fab7b3e7", - "sha256:ec20916e7b4cbfb1f12380e46486ec4bcbaa91a9c448b97023fde0d5bbf9e4ff", - "sha256:f1d072c2eb0ad60d4c183f3fb44ac6f73fb7a8f16a2694a91f988275cbf352f9", - "sha256:f846c260f483d1fd217fe5ed7c173fb109efa6b1fc8381c8b7552c5781756192", - "sha256:f91de7223d4c7b793867797bacd1ee53bfe7359bd70d27b7b58a04efbb9436c8", - "sha256:faae4860798c31530dd184046a900e652c95513796ef51a12bc086710c2eec4d", - "sha256:fc579bf0f502e54926519451b920e875f433aceb4624a3646b3252b5caa9e0b6", - "sha256:fcc700eadbbccbf6bc1bcb9dbe0786b4b1cb91ca0dcda336eef5c2beed37b797", - "sha256:fd32ea360bcbb92d28933fc05ed09bffcb1704ba3fc7942e81db0fd4f81a7892", - "sha256:fdb7adb641a0d13bdcd4ef48e062363d8a9ad4a182ac7647ec88f695e719ae9f" - ], - "markers": "python_version >= '3.7'", - "version": "==1.4.5" - }, - "matplotlib": { - "hashes": [ - "sha256:01a978b871b881ee76017152f1f1a0cbf6bd5f7b8ff8c96df0df1bd57d8755a1", - "sha256:03f9d160a29e0b65c0790bb07f4f45d6a181b1ac33eb1bb0dd225986450148f0", - "sha256:091275d18d942cf1ee9609c830a1bc36610607d8223b1b981c37d5c9fc3e46a4", - "sha256:09796f89fb71a0c0e1e2f4bdaf63fb2cefc84446bb963ecdeb40dfee7dfa98c7", - "sha256:0f4fc5d72b75e2c18e55eb32292659cf731d9d5b312a6eb036506304f4675630", - "sha256:172f4d0fbac3383d39164c6caafd3255ce6fa58f08fc392513a0b1d3b89c4f89", - "sha256:1b0f3b8ea0e99e233a4bcc44590f01604840d833c280ebb8fe5554fd3e6cfe8d", - "sha256:3773002da767f0a9323ba1a9b9b5d00d6257dbd2a93107233167cfb581f64717", - "sha256:46a569130ff53798ea5f50afce7406e91fdc471ca1e0e26ba976a8c734c9427a", - "sha256:4c318c1e95e2f5926fba326f68177dee364aa791d6df022ceb91b8221bd0a627", - "sha256:4e208f46cf6576a7624195aa047cb344a7f802e113bb1a06cfd4bee431de5e31", - "sha256:533b0e3b0c6768eef8cbe4b583731ce25a91ab54a22f830db2b031e83cca9213", - "sha256:5864bdd7da445e4e5e011b199bb67168cdad10b501750367c496420f2ad00843", - "sha256:5ba9cbd8ac6cf422f3102622b20f8552d601bf8837e49a3afed188d560152788", - "sha256:6f9c6976748a25e8b9be51ea028df49b8e561eed7809146da7a47dbecebab367", - "sha256:7c48d9e221b637c017232e3760ed30b4e8d5dfd081daf327e829bf2a72c731b4", - "sha256:830f00640c965c5b7f6bc32f0d4ce0c36dfe0379f7dd65b07a00c801713ec40a", - "sha256:9a5430836811b7652991939012f43d2808a2db9b64ee240387e8c43e2e5578c8", - "sha256:aa11b3c6928a1e496c1a79917d51d4cd5d04f8a2e75f21df4949eeefdf697f4b", - "sha256:b78e4f2cedf303869b782071b55fdde5987fda3038e9d09e58c91cc261b5ad18", - "sha256:b9576723858a78751d5aacd2497b8aef29ffea6d1c95981505877f7ac28215c6", - "sha256:bddfb1db89bfaa855912261c805bd0e10218923cc262b9159a49c29a7a1c1afa", - "sha256:c7d36c2209d9136cd8e02fab1c0ddc185ce79bc914c45054a9f514e44c787917", - "sha256:d1095fecf99eeb7384dabad4bf44b965f929a5f6079654b681193edf7169ec20", - "sha256:d7b1704a530395aaf73912be741c04d181f82ca78084fbd80bc737be04848331", - "sha256:d86593ccf546223eb75a39b44c32788e6f6440d13cfc4750c1c15d0fcb850b63", - "sha256:deaed9ad4da0b1aea77fe0aa0cebb9ef611c70b3177be936a95e5d01fa05094f", - "sha256:ef8345b48e95cee45ff25192ed1f4857273117917a4dcd48e3905619bcd9c9b8" - ], - "markers": "python_version >= '3.9'", - "version": "==3.8.2" - }, - "mypy": { - "hashes": [ - "sha256:028cf9f2cae89e202d7b6593cd98db6759379f17a319b5faf4f9978d7084cdc6", - "sha256:2afecd6354bbfb6e0160f4e4ad9ba6e4e003b767dd80d85516e71f2e955ab50d", - "sha256:2b5b6c721bd4aabaadead3a5e6fa85c11c6c795e0c81a7215776ef8afc66de02", - "sha256:42419861b43e6962a649068a61f4a4839205a3ef525b858377a960b9e2de6e0d", - "sha256:42c6680d256ab35637ef88891c6bd02514ccb7e1122133ac96055ff458f93fc3", - "sha256:485a8942f671120f76afffff70f259e1cd0f0cfe08f81c05d8816d958d4577d3", - "sha256:4c886c6cce2d070bd7df4ec4a05a13ee20c0aa60cb587e8d1265b6c03cf91da3", - "sha256:4e6d97288757e1ddba10dd9549ac27982e3e74a49d8d0179fc14d4365c7add66", - "sha256:4ef4be7baf08a203170f29e89d79064463b7fc7a0908b9d0d5114e8009c3a259", - "sha256:51720c776d148bad2372ca21ca29256ed483aa9a4cdefefcef49006dff2a6835", - "sha256:52825b01f5c4c1c4eb0db253ec09c7aa17e1a7304d247c48b6f3599ef40db8bd", - "sha256:538fd81bb5e430cc1381a443971c0475582ff9f434c16cd46d2c66763ce85d9d", - "sha256:5c1538c38584029352878a0466f03a8ee7547d7bd9f641f57a0f3017a7c905b8", - "sha256:6ff8b244d7085a0b425b56d327b480c3b29cafbd2eff27316a004f9a7391ae07", - "sha256:7178def594014aa6c35a8ff411cf37d682f428b3b5617ca79029d8ae72f5402b", - "sha256:720a5ca70e136b675af3af63db533c1c8c9181314d207568bbe79051f122669e", - "sha256:7f1478736fcebb90f97e40aff11a5f253af890c845ee0c850fe80aa060a267c6", - "sha256:855fe27b80375e5c5878492f0729540db47b186509c98dae341254c8f45f42ae", - "sha256:8963b83d53ee733a6e4196954502b33567ad07dfd74851f32be18eb932fb1cb9", - "sha256:9261ed810972061388918c83c3f5cd46079d875026ba97380f3e3978a72f503d", - "sha256:99b00bc72855812a60d253420d8a2eae839b0afa4938f09f4d2aa9bb4654263a", - "sha256:ab3c84fa13c04aeeeabb2a7f67a25ef5d77ac9d6486ff33ded762ef353aa5592", - "sha256:afe3fe972c645b4632c563d3f3eff1cdca2fa058f730df2b93a35e3b0c538218", - "sha256:d19c413b3c07cbecf1f991e2221746b0d2a9410b59cb3f4fb9557f0365a1a817", - "sha256:df9824ac11deaf007443e7ed2a4a26bebff98d2bc43c6da21b2b64185da011c4", - "sha256:e46f44b54ebddbeedbd3d5b289a893219065ef805d95094d16a0af6630f5d410", - "sha256:f5ac9a4eeb1ec0f1ccdc6f326bcdb464de5f80eb07fb38b5ddd7b0de6bc61e55" - ], - "index": "pypi", - "markers": "python_version >= '3.8'", - "version": "==1.8.0" - }, - "mypy-extensions": { - "hashes": [ - "sha256:4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d", - "sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782" - ], - "markers": "python_version >= '3.5'", - "version": "==1.0.0" - }, - "numpy": { - "hashes": [ - "sha256:03a8c78d01d9781b28a6989f6fa1bb2c4f2d51201cf99d3dd875df6fbd96b23b", - "sha256:08beddf13648eb95f8d867350f6a018a4be2e5ad54c8d8caed89ebca558b2818", - "sha256:1af303d6b2210eb850fcf03064d364652b7120803a0b872f5211f5234b399f20", - "sha256:1dda2e7b4ec9dd512f84935c5f126c8bd8b9f2fc001e9f54af255e8c5f16b0e0", - "sha256:2a02aba9ed12e4ac4eb3ea9421c420301a0c6460d9830d74a9df87efa4912010", - "sha256:2e4ee3380d6de9c9ec04745830fd9e2eccb3e6cf790d39d7b98ffd19b0dd754a", - "sha256:3373d5d70a5fe74a2c1bb6d2cfd9609ecf686d47a2d7b1d37a8f3b6bf6003aea", - "sha256:47711010ad8555514b434df65f7d7b076bb8261df1ca9bb78f53d3b2db02e95c", - "sha256:4c66707fabe114439db9068ee468c26bbdf909cac0fb58686a42a24de1760c71", - "sha256:50193e430acfc1346175fcbdaa28ffec49947a06918b7b92130744e81e640110", - "sha256:52b8b60467cd7dd1e9ed082188b4e6bb35aa5cdd01777621a1658910745b90be", - "sha256:60dedbb91afcbfdc9bc0b1f3f402804070deed7392c23eb7a7f07fa857868e8a", - "sha256:62b8e4b1e28009ef2846b4c7852046736bab361f7aeadeb6a5b89ebec3c7055a", - "sha256:666dbfb6ec68962c033a450943ded891bed2d54e6755e35e5835d63f4f6931d5", - "sha256:675d61ffbfa78604709862923189bad94014bef562cc35cf61d3a07bba02a7ed", - "sha256:679b0076f67ecc0138fd2ede3a8fd196dddc2ad3254069bcb9faf9a79b1cebcd", - "sha256:7349ab0fa0c429c82442a27a9673fc802ffdb7c7775fad780226cb234965e53c", - "sha256:7ab55401287bfec946ced39700c053796e7cc0e3acbef09993a9ad2adba6ca6e", - "sha256:7e50d0a0cc3189f9cb0aeb3a6a6af18c16f59f004b866cd2be1c14b36134a4a0", - "sha256:95a7476c59002f2f6c590b9b7b998306fba6a5aa646b1e22ddfeaf8f78c3a29c", - "sha256:96ff0b2ad353d8f990b63294c8986f1ec3cb19d749234014f4e7eb0112ceba5a", - "sha256:9fad7dcb1aac3c7f0584a5a8133e3a43eeb2fe127f47e3632d43d677c66c102b", - "sha256:9ff0f4f29c51e2803569d7a51c2304de5554655a60c5d776e35b4a41413830d0", - "sha256:a354325ee03388678242a4d7ebcd08b5c727033fcff3b2f536aea978e15ee9e6", - "sha256:a4abb4f9001ad2858e7ac189089c42178fcce737e4169dc61321660f1a96c7d2", - "sha256:ab47dbe5cc8210f55aa58e4805fe224dac469cde56b9f731a4c098b91917159a", - "sha256:afedb719a9dcfc7eaf2287b839d8198e06dcd4cb5d276a3df279231138e83d30", - "sha256:b3ce300f3644fb06443ee2222c2201dd3a89ea6040541412b8fa189341847218", - "sha256:b97fe8060236edf3662adfc2c633f56a08ae30560c56310562cb4f95500022d5", - "sha256:bfe25acf8b437eb2a8b2d49d443800a5f18508cd811fea3181723922a8a82b07", - "sha256:cd25bcecc4974d09257ffcd1f098ee778f7834c3ad767fe5db785be9a4aa9cb2", - "sha256:d209d8969599b27ad20994c8e41936ee0964e6da07478d6c35016bc386b66ad4", - "sha256:d5241e0a80d808d70546c697135da2c613f30e28251ff8307eb72ba696945764", - "sha256:edd8b5fe47dab091176d21bb6de568acdd906d1887a4584a15a9a96a1dca06ef", - "sha256:f870204a840a60da0b12273ef34f7051e98c3b5961b61b0c2c1be6dfd64fbcd3", - "sha256:ffa75af20b44f8dba823498024771d5ac50620e6915abac414251bd971b4529f" - ], - "markers": "python_version >= '3.9'", - "version": "==1.26.4" - }, - "packaging": { - "hashes": [ - "sha256:048fb0e9405036518eaaf48a55953c750c11e1a1b68e0dd1a9d62ed0c092cfc5", - "sha256:8c491190033a9af7e1d931d0b5dacc2ef47509b34dd0de67ed209b5203fc88c7" - ], - "markers": "python_version >= '3.7'", - "version": "==23.2" - }, - "pandas": { - "hashes": [ - "sha256:159205c99d7a5ce89ecfc37cb08ed179de7783737cea403b295b5eda8e9c56d1", - "sha256:20404d2adefe92aed3b38da41d0847a143a09be982a31b85bc7dd565bdba0f4e", - "sha256:2707514a7bec41a4ab81f2ccce8b382961a29fbe9492eab1305bb075b2b1ff4f", - "sha256:30b83f7c3eb217fb4d1b494a57a2fda5444f17834f5df2de6b2ffff68dc3c8e2", - "sha256:38e0b4fc3ddceb56ec8a287313bc22abe17ab0eb184069f08fc6a9352a769b18", - "sha256:3de918a754bbf2da2381e8a3dcc45eede8cd7775b047b923f9006d5f876802ae", - "sha256:52826b5f4ed658fa2b729264d63f6732b8b29949c7fd234510d57c61dbeadfcd", - "sha256:57abcaeda83fb80d447f28ab0cc7b32b13978f6f733875ebd1ed14f8fbc0f4ab", - "sha256:5a946f210383c7e6d16312d30b238fd508d80d927014f3b33fb5b15c2f895430", - "sha256:736da9ad4033aeab51d067fc3bd69a0ba36f5a60f66a527b3d72e2030e63280a", - "sha256:761cb99b42a69005dec2b08854fb1d4888fdf7b05db23a8c5a099e4b886a2106", - "sha256:7ea3ee3f125032bfcade3a4cf85131ed064b4f8dd23e5ce6fa16473e48ebcaf5", - "sha256:8108ee1712bb4fa2c16981fba7e68b3f6ea330277f5ca34fa8d557e986a11670", - "sha256:85793cbdc2d5bc32620dc8ffa715423f0c680dacacf55056ba13454a5be5de88", - "sha256:8ce2fbc8d9bf303ce54a476116165220a1fedf15985b09656b4b4275300e920b", - "sha256:9f66419d4a41132eb7e9a73dcec9486cf5019f52d90dd35547af11bc58f8637d", - "sha256:a146b9dcacc3123aa2b399df1a284de5f46287a4ab4fbfc237eac98a92ebcb71", - "sha256:a1b438fa26b208005c997e78672f1aa8138f67002e833312e6230f3e57fa87d5", - "sha256:a20628faaf444da122b2a64b1e5360cde100ee6283ae8effa0d8745153809a2e", - "sha256:a41d06f308a024981dcaa6c41f2f2be46a6b186b902c94c2674e8cb5c42985bc", - "sha256:a626795722d893ed6aacb64d2401d017ddc8a2341b49e0384ab9bf7112bdec30", - "sha256:bde2bc699dbd80d7bc7f9cab1e23a95c4375de615860ca089f34e7c64f4a8de7", - "sha256:cfd6c2491dc821b10c716ad6776e7ab311f7df5d16038d0b7458bc0b67dc10f3", - "sha256:e60f1f7dba3c2d5ca159e18c46a34e7ca7247a73b5dd1a22b6d59707ed6b899a", - "sha256:eb1e1f3861ea9132b32f2133788f3b14911b68102d562715d71bd0013bc45440", - "sha256:eb61dc8567b798b969bcc1fc964788f5a68214d333cade8319c7ab33e2b5d88a", - "sha256:f5be5d03ea2073627e7111f61b9f1f0d9625dc3c4d8dda72cc827b0c58a1d042", - "sha256:f9670b3ac00a387620489dfc1bca66db47a787f4e55911f1293063a78b108df1", - "sha256:fbc1b53c0e1fdf16388c33c3cca160f798d38aea2978004dd3f4d3dec56454c9" - ], - "markers": "python_version >= '3.9'", - "version": "==2.2.0" - }, - "pathspec": { - "hashes": [ - "sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08", - "sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712" - ], - "markers": "python_version >= '3.8'", - "version": "==0.12.1" - }, - "pillow": { - "hashes": [ - "sha256:0304004f8067386b477d20a518b50f3fa658a28d44e4116970abfcd94fac34a8", - "sha256:0689b5a8c5288bc0504d9fcee48f61a6a586b9b98514d7d29b840143d6734f39", - "sha256:0eae2073305f451d8ecacb5474997c08569fb4eb4ac231ffa4ad7d342fdc25ac", - "sha256:0fb3e7fc88a14eacd303e90481ad983fd5b69c761e9e6ef94c983f91025da869", - "sha256:11fa2e5984b949b0dd6d7a94d967743d87c577ff0b83392f17cb3990d0d2fd6e", - "sha256:127cee571038f252a552760076407f9cff79761c3d436a12af6000cd182a9d04", - "sha256:154e939c5f0053a383de4fd3d3da48d9427a7e985f58af8e94d0b3c9fcfcf4f9", - "sha256:15587643b9e5eb26c48e49a7b33659790d28f190fc514a322d55da2fb5c2950e", - "sha256:170aeb00224ab3dc54230c797f8404507240dd868cf52066f66a41b33169bdbe", - "sha256:1b5e1b74d1bd1b78bc3477528919414874748dd363e6272efd5abf7654e68bef", - "sha256:1da3b2703afd040cf65ec97efea81cfba59cdbed9c11d8efc5ab09df9509fc56", - "sha256:1e23412b5c41e58cec602f1135c57dfcf15482013ce6e5f093a86db69646a5aa", - "sha256:2247178effb34a77c11c0e8ac355c7a741ceca0a732b27bf11e747bbc950722f", - "sha256:257d8788df5ca62c980314053197f4d46eefedf4e6175bc9412f14412ec4ea2f", - "sha256:3031709084b6e7852d00479fd1d310b07d0ba82765f973b543c8af5061cf990e", - "sha256:322209c642aabdd6207517e9739c704dc9f9db943015535783239022002f054a", - "sha256:322bdf3c9b556e9ffb18f93462e5f749d3444ce081290352c6070d014c93feb2", - "sha256:33870dc4653c5017bf4c8873e5488d8f8d5f8935e2f1fb9a2208c47cdd66efd2", - "sha256:35bb52c37f256f662abdfa49d2dfa6ce5d93281d323a9af377a120e89a9eafb5", - "sha256:3c31822339516fb3c82d03f30e22b1d038da87ef27b6a78c9549888f8ceda39a", - "sha256:3eedd52442c0a5ff4f887fab0c1c0bb164d8635b32c894bc1faf4c618dd89df2", - "sha256:3ff074fc97dd4e80543a3e91f69d58889baf2002b6be64347ea8cf5533188213", - "sha256:47c0995fc4e7f79b5cfcab1fc437ff2890b770440f7696a3ba065ee0fd496563", - "sha256:49d9ba1ed0ef3e061088cd1e7538a0759aab559e2e0a80a36f9fd9d8c0c21591", - "sha256:51f1a1bffc50e2e9492e87d8e09a17c5eea8409cda8d3f277eb6edc82813c17c", - "sha256:52a50aa3fb3acb9cf7213573ef55d31d6eca37f5709c69e6858fe3bc04a5c2a2", - "sha256:54f1852cd531aa981bc0965b7d609f5f6cc8ce8c41b1139f6ed6b3c54ab82bfb", - "sha256:609448742444d9290fd687940ac0b57fb35e6fd92bdb65386e08e99af60bf757", - "sha256:69ffdd6120a4737710a9eee73e1d2e37db89b620f702754b8f6e62594471dee0", - "sha256:6fad5ff2f13d69b7e74ce5b4ecd12cc0ec530fcee76356cac6742785ff71c452", - "sha256:7049e301399273a0136ff39b84c3678e314f2158f50f517bc50285fb5ec847ad", - "sha256:70c61d4c475835a19b3a5aa42492409878bbca7438554a1f89d20d58a7c75c01", - "sha256:716d30ed977be8b37d3ef185fecb9e5a1d62d110dfbdcd1e2a122ab46fddb03f", - "sha256:753cd8f2086b2b80180d9b3010dd4ed147efc167c90d3bf593fe2af21265e5a5", - "sha256:773efe0603db30c281521a7c0214cad7836c03b8ccff897beae9b47c0b657d61", - "sha256:7823bdd049099efa16e4246bdf15e5a13dbb18a51b68fa06d6c1d4d8b99a796e", - "sha256:7c8f97e8e7a9009bcacbe3766a36175056c12f9a44e6e6f2d5caad06dcfbf03b", - "sha256:823ef7a27cf86df6597fa0671066c1b596f69eba53efa3d1e1cb8b30f3533068", - "sha256:8373c6c251f7ef8bda6675dd6d2b3a0fcc31edf1201266b5cf608b62a37407f9", - "sha256:83b2021f2ade7d1ed556bc50a399127d7fb245e725aa0113ebd05cfe88aaf588", - "sha256:870ea1ada0899fd0b79643990809323b389d4d1d46c192f97342eeb6ee0b8483", - "sha256:8d12251f02d69d8310b046e82572ed486685c38f02176bd08baf216746eb947f", - "sha256:9c23f307202661071d94b5e384e1e1dc7dfb972a28a2310e4ee16103e66ddb67", - "sha256:9d189550615b4948f45252d7f005e53c2040cea1af5b60d6f79491a6e147eef7", - "sha256:a086c2af425c5f62a65e12fbf385f7c9fcb8f107d0849dba5839461a129cf311", - "sha256:a2b56ba36e05f973d450582fb015594aaa78834fefe8dfb8fcd79b93e64ba4c6", - "sha256:aebb6044806f2e16ecc07b2a2637ee1ef67a11840a66752751714a0d924adf72", - "sha256:b1b3020d90c2d8e1dae29cf3ce54f8094f7938460fb5ce8bc5c01450b01fbaf6", - "sha256:b4b6b1e20608493548b1f32bce8cca185bf0480983890403d3b8753e44077129", - "sha256:b6f491cdf80ae540738859d9766783e3b3c8e5bd37f5dfa0b76abdecc5081f13", - "sha256:b792a349405fbc0163190fde0dc7b3fef3c9268292586cf5645598b48e63dc67", - "sha256:b7c2286c23cd350b80d2fc9d424fc797575fb16f854b831d16fd47ceec078f2c", - "sha256:babf5acfede515f176833ed6028754cbcd0d206f7f614ea3447d67c33be12516", - "sha256:c365fd1703040de1ec284b176d6af5abe21b427cb3a5ff68e0759e1e313a5e7e", - "sha256:c4225f5220f46b2fde568c74fca27ae9771536c2e29d7c04f4fb62c83275ac4e", - "sha256:c570f24be1e468e3f0ce7ef56a89a60f0e05b30a3669a459e419c6eac2c35364", - "sha256:c6dafac9e0f2b3c78df97e79af707cdc5ef8e88208d686a4847bab8266870023", - "sha256:c8de2789052ed501dd829e9cae8d3dcce7acb4777ea4a479c14521c942d395b1", - "sha256:cb28c753fd5eb3dd859b4ee95de66cc62af91bcff5db5f2571d32a520baf1f04", - "sha256:cb4c38abeef13c61d6916f264d4845fab99d7b711be96c326b84df9e3e0ff62d", - "sha256:d1b35bcd6c5543b9cb547dee3150c93008f8dd0f1fef78fc0cd2b141c5baf58a", - "sha256:d8e6aeb9201e655354b3ad049cb77d19813ad4ece0df1249d3c793de3774f8c7", - "sha256:d8ecd059fdaf60c1963c58ceb8997b32e9dc1b911f5da5307aab614f1ce5c2fb", - "sha256:da2b52b37dad6d9ec64e653637a096905b258d2fc2b984c41ae7d08b938a67e4", - "sha256:e87f0b2c78157e12d7686b27d63c070fd65d994e8ddae6f328e0dcf4a0cd007e", - "sha256:edca80cbfb2b68d7b56930b84a0e45ae1694aeba0541f798e908a49d66b837f1", - "sha256:f379abd2f1e3dddb2b61bc67977a6b5a0a3f7485538bcc6f39ec76163891ee48", - "sha256:fe4c15f6c9285dc54ce6553a3ce908ed37c8f3825b5a51a15c91442bb955b868" - ], - "markers": "python_version >= '3.8'", - "version": "==10.2.0" - }, - "platformdirs": { - "hashes": [ - "sha256:0614df2a2f37e1a662acbd8e2b25b92ccf8632929bc6d43467e17fe89c75e068", - "sha256:ef0cc731df711022c174543cb70a9b5bd22e5a9337c8624ef2c2ceb8ddad8768" - ], - "markers": "python_version >= '3.8'", - "version": "==4.2.0" - }, - "pyarrow": { - "hashes": [ - "sha256:001fca027738c5f6be0b7a3159cc7ba16a5c52486db18160909a0831b063c4e4", - "sha256:003d680b5e422d0204e7287bb3fa775b332b3fce2996aa69e9adea23f5c8f970", - "sha256:036a7209c235588c2f07477fe75c07e6caced9b7b61bb897c8d4e52c4b5f9555", - "sha256:07eb7f07dc9ecbb8dace0f58f009d3a29ee58682fcdc91337dfeb51ea618a75b", - "sha256:0a524532fd6dd482edaa563b686d754c70417c2f72742a8c990b322d4c03a15d", - "sha256:0ca9cb0039923bec49b4fe23803807e4ef39576a2bec59c32b11296464623dc2", - "sha256:17d53a9d1b2b5bd7d5e4cd84d018e2a45bc9baaa68f7e6e3ebed45649900ba99", - "sha256:19a8918045993349b207de72d4576af0191beef03ea655d8bdb13762f0cd6eac", - "sha256:1f500956a49aadd907eaa21d4fff75f73954605eaa41f61cb94fb008cf2e00c6", - "sha256:2bd8a0e5296797faf9a3294e9fa2dc67aa7f10ae2207920dbebb785c77e9dbe5", - "sha256:47af7036f64fce990bb8a5948c04722e4e3ea3e13b1007ef52dfe0aa8f23cf7f", - "sha256:5b8d43e31ca16aa6e12402fcb1e14352d0d809de70edd185c7650fe80e0769e3", - "sha256:5db1769e5d0a77eb92344c7382d6543bea1164cca3704f84aa44e26c67e320fb", - "sha256:60a6bdb314affa9c2e0d5dddf3d9cbb9ef4a8dddaa68669975287d47ece67642", - "sha256:66958fd1771a4d4b754cd385835e66a3ef6b12611e001d4e5edfcef5f30391e2", - "sha256:6eda9e117f0402dfcd3cd6ec9bfee89ac5071c48fc83a84f3075b60efa96747f", - "sha256:6f87d9c4f09e049c2cade559643424da84c43a35068f2a1c4653dc5b1408a929", - "sha256:85239b9f93278e130d86c0e6bb455dcb66fc3fd891398b9d45ace8799a871a1e", - "sha256:876858f549d540898f927eba4ef77cd549ad8d24baa3207cf1b72e5788b50e83", - "sha256:8780b1a29d3c8b21ba6b191305a2a607de2e30dab399776ff0aa09131e266340", - "sha256:93768ccfff85cf044c418bfeeafce9a8bb0cee091bd8fd19011aff91e58de540", - "sha256:972a0141be402bb18e3201448c8ae62958c9c7923dfaa3b3d4530c835ac81aed", - "sha256:9950a9c9df24090d3d558b43b97753b8f5867fb8e521f29876aa021c52fda351", - "sha256:9a3a6180c0e8f2727e6f1b1c87c72d3254cac909e609f35f22532e4115461177", - "sha256:9ed5a78ed29d171d0acc26a305a4b7f83c122d54ff5270810ac23c75813585e4", - "sha256:c8c287d1d479de8269398b34282e206844abb3208224dbdd7166d580804674b7", - "sha256:d0ec076b32bacb6666e8813a22e6e5a7ef1314c8069d4ff345efa6246bc38593", - "sha256:d1c48648f64aec09accf44140dccb92f4f94394b8d79976c426a5b79b11d4fa7", - "sha256:d31c1d45060180131caf10f0f698e3a782db333a422038bf7fe01dace18b3a31", - "sha256:e2617e3bf9df2a00020dd1c1c6dce5cc343d979efe10bc401c0632b0eef6ef5b", - "sha256:e8ebed6053dbe76883a822d4e8da36860f479d55a762bd9e70d8494aed87113e", - "sha256:f01fc5cf49081426429127aa2d427d9d98e1cb94a32cb961d583a70b7c4504e6", - "sha256:f6ee87fd6892700960d90abb7b17a72a5abb3b64ee0fe8db6c782bcc2d0dc0b4", - "sha256:f75fce89dad10c95f4bf590b765e3ae98bcc5ba9f6ce75adb828a334e26a3d40", - "sha256:fa7cd198280dbd0c988df525e50e35b5d16873e2cdae2aaaa6363cdb64e3eec5", - "sha256:fe0ec198ccc680f6c92723fadcb97b74f07c45ff3fdec9dd765deb04955ccf19" - ], - "markers": "python_version >= '3.8'", - "version": "==15.0.0" - }, - "pyparsing": { - "hashes": [ - "sha256:32c7c0b711493c72ff18a981d24f28aaf9c1fb7ed5e9667c9e84e3db623bdbfb", - "sha256:ede28a1a32462f5a9705e07aea48001a08f7cf81a021585011deba701581a0db" - ], - "markers": "python_full_version >= '3.6.8'", - "version": "==3.1.1" - }, - "python-dateutil": { - "hashes": [ - "sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86", - "sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9" - ], - "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", - "version": "==2.8.2" - }, - "pytz": { - "hashes": [ - "sha256:2a29735ea9c18baf14b448846bde5a48030ed267578472d8955cd0e7443a9812", - "sha256:328171f4e3623139da4983451950b28e95ac706e13f3f2630a879749e7a8b319" - ], - "version": "==2024.1" - }, - "requests": { - "hashes": [ - "sha256:58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f", - "sha256:942c5a758f98d790eaed1a29cb6eefc7ffb0d1cf7af05c3d2791656dbd6ad1e1" - ], - "markers": "python_version >= '3.7'", - "version": "==2.31.0" - }, - "ruff": { - "hashes": [ - "sha256:0a9efb032855ffb3c21f6405751d5e147b0c6b631e3ca3f6b20f917572b97eb6", - "sha256:0c126da55c38dd917621552ab430213bdb3273bb10ddb67bc4b761989210eb6e", - "sha256:1695700d1e25a99d28f7a1636d85bafcc5030bba9d0578c0781ba1790dbcf51c", - "sha256:1ec49be4fe6ddac0503833f3ed8930528e26d1e60ad35c2446da372d16651ce9", - "sha256:3b65494f7e4bed2e74110dac1f0d17dc8e1f42faaa784e7c58a98e335ec83d7e", - "sha256:5e1439c8f407e4f356470e54cdecdca1bd5439a0673792dbe34a2b0a551a2fe3", - "sha256:5e22676a5b875bd72acd3d11d5fa9075d3a5f53b877fe7b4793e4673499318ba", - "sha256:6a61ea0ff048e06de273b2e45bd72629f470f5da8f71daf09fe481278b175001", - "sha256:940de32dc8853eba0f67f7198b3e79bc6ba95c2edbfdfac2144c8235114d6726", - "sha256:b0c232af3d0bd8f521806223723456ffebf8e323bd1e4e82b0befb20ba18388e", - "sha256:c9d15fc41e6054bfc7200478720570078f0b41c9ae4f010bcc16bd6f4d1aacdd", - "sha256:cc9a91ae137d687f43a44c900e5d95e9617cb37d4c989e462980ba27039d239d", - "sha256:d450b7fbff85913f866a5384d8912710936e2b96da74541c82c1b458472ddb39", - "sha256:d920499b576f6c68295bc04e7b17b6544d9d05f196bb3aac4358792ef6f34325", - "sha256:e62ed7f36b3068a30ba39193a14274cd706bc486fad521276458022f7bccb31d", - "sha256:ecd46e3106850a5c26aee114e562c329f9a1fbe9e4821b008c4404f64ff9ce73", - "sha256:f63d96494eeec2fc70d909393bcd76c69f35334cdbd9e20d089fb3f0640216ca" - ], - "index": "pypi", - "markers": "python_version >= '3.7'", - "version": "==0.2.2" - }, - "six": { - "hashes": [ - "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926", - "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254" - ], - "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", - "version": "==1.16.0" - }, - "tomli": { - "hashes": [ - "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc", - "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f" - ], - "markers": "python_version < '3.11'", - "version": "==2.0.1" - }, - "typing-extensions": { - "hashes": [ - "sha256:69b1a937c3a517342112fb4c6df7e72fc39a38e7891a5730ed4985b5214b5475", - "sha256:b0abd7c89e8fb96f98db18d86106ff1d90ab692004eb746cf6eda2682f91b3cb" - ], - "markers": "python_version < '3.11'", - "version": "==4.10.0" - }, - "tzdata": { - "hashes": [ - "sha256:2674120f8d891909751c38abcdfd386ac0a5a1127954fbc332af6b5ceae07efd", - "sha256:9068bc196136463f5245e51efda838afa15aaeca9903f49050dfa2679db4d252" - ], - "markers": "python_version >= '2'", - "version": "==2024.1" - }, - "urllib3": { - "hashes": [ - "sha256:450b20ec296a467077128bff42b73080516e71b56ff59a60a02bef2232c4fa9d", - "sha256:d0570876c61ab9e520d776c38acbbb5b05a776d3f9ff98a5c8fd5162a444cf19" - ], - "markers": "python_version >= '3.8'", - "version": "==2.2.1" - } - }, - "develop": { - "asttokens": { - "hashes": [ - "sha256:051ed49c3dcae8913ea7cd08e46a606dba30b79993209636c4875bc1d637bc24", - "sha256:b03869718ba9a6eb027e134bfdf69f38a236d681c83c160d510768af11254ba0" - ], - "version": "==2.4.1" - }, - "comm": { - "hashes": [ - "sha256:0bc91edae1344d39d3661dcbc36937181fdaddb304790458f8b044dbc064b89a", - "sha256:87928485c0dfc0e7976fd89fc1e187023cf587e7c353e4a9b417555b44adf021" - ], - "markers": "python_version >= '3.8'", - "version": "==0.2.1" - }, - "debugpy": { - "hashes": [ - "sha256:016a9fcfc2c6b57f939673c874310d8581d51a0fe0858e7fac4e240c5eb743cb", - "sha256:0de56aba8249c28a300bdb0672a9b94785074eb82eb672db66c8144fff673146", - "sha256:1a9fe0829c2b854757b4fd0a338d93bc17249a3bf69ecf765c61d4c522bb92a8", - "sha256:28acbe2241222b87e255260c76741e1fbf04fdc3b6d094fcf57b6c6f75ce1242", - "sha256:3a79c6f62adef994b2dbe9fc2cc9cc3864a23575b6e387339ab739873bea53d0", - "sha256:3bda0f1e943d386cc7a0e71bfa59f4137909e2ed947fb3946c506e113000f741", - "sha256:3ebb70ba1a6524d19fa7bb122f44b74170c447d5746a503e36adc244a20ac539", - "sha256:58911e8521ca0c785ac7a0539f1e77e0ce2df753f786188f382229278b4cdf23", - "sha256:6df9aa9599eb05ca179fb0b810282255202a66835c6efb1d112d21ecb830ddd3", - "sha256:7a3afa222f6fd3d9dfecd52729bc2e12c93e22a7491405a0ecbf9e1d32d45b39", - "sha256:7eb7bd2b56ea3bedb009616d9e2f64aab8fc7000d481faec3cd26c98a964bcdd", - "sha256:92116039b5500633cc8d44ecc187abe2dfa9b90f7a82bbf81d079fcdd506bae9", - "sha256:a2e658a9630f27534e63922ebf655a6ab60c370f4d2fc5c02a5b19baf4410ace", - "sha256:bfb20cb57486c8e4793d41996652e5a6a885b4d9175dd369045dad59eaacea42", - "sha256:caad2846e21188797a1f17fc09c31b84c7c3c23baf2516fed5b40b378515bbf0", - "sha256:d915a18f0597ef685e88bb35e5d7ab968964b7befefe1aaea1eb5b2640b586c7", - "sha256:dda73bf69ea479c8577a0448f8c707691152e6c4de7f0c4dec5a4bc11dee516e", - "sha256:e38beb7992b5afd9d5244e96ad5fa9135e94993b0c551ceebf3fe1a5d9beb234", - "sha256:edcc9f58ec0fd121a25bc950d4578df47428d72e1a0d66c07403b04eb93bcf98", - "sha256:efd3fdd3f67a7e576dd869c184c5dd71d9aaa36ded271939da352880c012e703", - "sha256:f696d6be15be87aef621917585f9bb94b1dc9e8aced570db1b8a6fc14e8f9b42", - "sha256:fd97ed11a4c7f6d042d320ce03d83b20c3fb40da892f994bc041bbc415d7a099" - ], - "markers": "python_version >= '3.8'", - "version": "==1.8.1" - }, - "decorator": { - "hashes": [ - "sha256:637996211036b6385ef91435e4fae22989472f9d571faba8927ba8253acbc330", - "sha256:b8c3f85900b9dc423225913c5aace94729fe1fa9763b38939a95226f02d37186" - ], - "markers": "python_version >= '3.5'", - "version": "==5.1.1" - }, - "exceptiongroup": { - "hashes": [ - "sha256:4bfd3996ac73b41e9b9628b04e079f193850720ea5945fc96a08633c66912f14", - "sha256:91f5c769735f051a4290d52edd0858999b57e5876e9f85937691bd4c9fa3ed68" - ], - "markers": "python_version < '3.11'", - "version": "==1.2.0" - }, - "executing": { - "hashes": [ - "sha256:35afe2ce3affba8ee97f2d69927fa823b08b472b7b994e36a52a964b93d16147", - "sha256:eac49ca94516ccc753f9fb5ce82603156e590b27525a8bc32cce8ae302eb61bc" - ], - "markers": "python_version >= '3.5'", - "version": "==2.0.1" - }, - "ipykernel": { - "hashes": [ - "sha256:5aa086a4175b0229d4eca211e181fb473ea78ffd9869af36ba7694c947302a21", - "sha256:e14c250d1f9ea3989490225cc1a542781b095a18a19447fcf2b5eaf7d0ac5bd2" - ], - "index": "pypi", - "markers": "python_version >= '3.8'", - "version": "==6.29.3" - }, - "ipython": { - "hashes": [ - "sha256:39c6f9efc079fb19bfb0f17eee903978fe9a290b1b82d68196c641cecb76ea22", - "sha256:869335e8cded62ffb6fac8928e5287a05433d6462e3ebaac25f4216474dd6bc4" - ], - "markers": "python_version >= '3.10'", - "version": "==8.22.1" - }, - "jedi": { - "hashes": [ - "sha256:cf0496f3651bc65d7174ac1b7d043eff454892c708a87d1b683e57b569927ffd", - "sha256:e983c654fe5c02867aef4cdfce5a2fbb4a50adc0af145f70504238f18ef5e7e0" - ], - "markers": "python_version >= '3.6'", - "version": "==0.19.1" - }, - "jupyter-client": { - "hashes": [ - "sha256:0642244bb83b4764ae60d07e010e15f0e2d275ec4e918a8f7b80fbbef3ca60c7", - "sha256:909c474dbe62582ae62b758bca86d6518c85234bdee2d908c778db6d72f39d99" - ], - "markers": "python_version >= '3.8'", - "version": "==8.6.0" - }, - "jupyter-core": { - "hashes": [ - "sha256:c65c82126453a723a2804aa52409930434598fd9d35091d63dfb919d2b765bb7", - "sha256:de61a9d7fc71240f688b2fb5ab659fbb56979458dc66a71decd098e03c79e218" - ], - "markers": "python_version >= '3.8'", - "version": "==5.7.1" - }, - "matplotlib-inline": { - "hashes": [ - "sha256:f1f41aab5328aa5aaea9b16d083b128102f8712542f819fe7e6a420ff581b311", - "sha256:f887e5f10ba98e8d2b150ddcf4702c1e5f8b3a20005eb0f74bfdbd360ee6f304" - ], - "markers": "python_version >= '3.5'", - "version": "==0.1.6" - }, - "nest-asyncio": { - "hashes": [ - "sha256:6f172d5449aca15afd6c646851f4e31e02c598d553a667e38cafa997cfec55fe", - "sha256:87af6efd6b5e897c81050477ef65c62e2b2f35d51703cae01aff2905b1852e1c" - ], - "markers": "python_version >= '3.5'", - "version": "==1.6.0" - }, - "packaging": { - "hashes": [ - "sha256:048fb0e9405036518eaaf48a55953c750c11e1a1b68e0dd1a9d62ed0c092cfc5", - "sha256:8c491190033a9af7e1d931d0b5dacc2ef47509b34dd0de67ed209b5203fc88c7" - ], - "markers": "python_version >= '3.7'", - "version": "==23.2" - }, - "parso": { - "hashes": [ - "sha256:8c07be290bb59f03588915921e29e8a50002acaf2cdc5fa0e0114f91709fafa0", - "sha256:c001d4636cd3aecdaf33cbb40aebb59b094be2a74c556778ef5576c175e19e75" - ], - "markers": "python_version >= '3.6'", - "version": "==0.8.3" - }, - "pexpect": { - "hashes": [ - "sha256:7236d1e080e4936be2dc3e326cec0af72acf9212a7e1d060210e70a47e253523", - "sha256:ee7d41123f3c9911050ea2c2dac107568dc43b2d3b0c7557a33212c398ead30f" - ], - "markers": "sys_platform != 'win32' and sys_platform != 'emscripten'", - "version": "==4.9.0" - }, - "platformdirs": { - "hashes": [ - "sha256:0614df2a2f37e1a662acbd8e2b25b92ccf8632929bc6d43467e17fe89c75e068", - "sha256:ef0cc731df711022c174543cb70a9b5bd22e5a9337c8624ef2c2ceb8ddad8768" - ], - "markers": "python_version >= '3.8'", - "version": "==4.2.0" - }, - "prompt-toolkit": { - "hashes": [ - "sha256:3527b7af26106cbc65a040bcc84839a3566ec1b051bb0bfe953631e704b0ff7d", - "sha256:a11a29cb3bf0a28a387fe5122cdb649816a957cd9261dcedf8c9f1fef33eacf6" - ], - "markers": "python_full_version >= '3.7.0'", - "version": "==3.0.43" - }, - "psutil": { - "hashes": [ - "sha256:02615ed8c5ea222323408ceba16c60e99c3f91639b07da6373fb7e6539abc56d", - "sha256:05806de88103b25903dff19bb6692bd2e714ccf9e668d050d144012055cbca73", - "sha256:26bd09967ae00920df88e0352a91cff1a78f8d69b3ecabbfe733610c0af486c8", - "sha256:27cc40c3493bb10de1be4b3f07cae4c010ce715290a5be22b98493509c6299e2", - "sha256:36f435891adb138ed3c9e58c6af3e2e6ca9ac2f365efe1f9cfef2794e6c93b4e", - "sha256:50187900d73c1381ba1454cf40308c2bf6f34268518b3f36a9b663ca87e65e36", - "sha256:611052c4bc70432ec770d5d54f64206aa7203a101ec273a0cd82418c86503bb7", - "sha256:6be126e3225486dff286a8fb9a06246a5253f4c7c53b475ea5f5ac934e64194c", - "sha256:7d79560ad97af658a0f6adfef8b834b53f64746d45b403f225b85c5c2c140eee", - "sha256:8cb6403ce6d8e047495a701dc7c5bd788add903f8986d523e3e20b98b733e421", - "sha256:8db4c1b57507eef143a15a6884ca10f7c73876cdf5d51e713151c1236a0e68cf", - "sha256:aee678c8720623dc456fa20659af736241f575d79429a0e5e9cf88ae0605cc81", - "sha256:bc56c2a1b0d15aa3eaa5a60c9f3f8e3e565303b465dbf57a1b730e7a2b9844e0", - "sha256:bd1184ceb3f87651a67b2708d4c3338e9b10c5df903f2e3776b62303b26cb631", - "sha256:d06016f7f8625a1825ba3732081d77c94589dca78b7a3fc072194851e88461a4", - "sha256:d16bbddf0693323b8c6123dd804100241da461e41d6e332fb0ba6058f630f8c8" - ], - "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5'", - "version": "==5.9.8" - }, - "ptyprocess": { - "hashes": [ - "sha256:4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35", - "sha256:5c5d0a3b48ceee0b48485e0c26037c0acd7d29765ca3fbb5cb3831d347423220" - ], - "version": "==0.7.0" - }, - "pure-eval": { - "hashes": [ - "sha256:01eaab343580944bc56080ebe0a674b39ec44a945e6d09ba7db3cb8cec289350", - "sha256:2b45320af6dfaa1750f543d714b6d1c520a1688dec6fd24d339063ce0aaa9ac3" - ], - "version": "==0.2.2" - }, - "pygments": { - "hashes": [ - "sha256:b27c2826c47d0f3219f29554824c30c5e8945175d888647acd804ddd04af846c", - "sha256:da46cec9fd2de5be3a8a784f434e4c4ab670b4ff54d605c4c2717e9d49c4c367" - ], - "markers": "python_version >= '3.7'", - "version": "==2.17.2" - }, - "python-dateutil": { - "hashes": [ - "sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86", - "sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9" - ], - "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", - "version": "==2.8.2" - }, - "pyzmq": { - "hashes": [ - "sha256:004ff469d21e86f0ef0369717351073e0e577428e514c47c8480770d5e24a565", - "sha256:00a06faa7165634f0cac1abb27e54d7a0b3b44eb9994530b8ec73cf52e15353b", - "sha256:00c48ae2fd81e2a50c3485de1b9d5c7c57cd85dc8ec55683eac16846e57ac979", - "sha256:01171fc48542348cd1a360a4b6c3e7d8f46cdcf53a8d40f84db6707a6768acc1", - "sha256:019744b99da30330798bb37df33549d59d380c78e516e3bab9c9b84f87a9592f", - "sha256:02bbc1a87b76e04fd780b45e7f695471ae6de747769e540da909173d50ff8e2d", - "sha256:02c9087b109070c5ab0b383079fa1b5f797f8d43e9a66c07a4b8b8bdecfd88ee", - "sha256:07cd61a20a535524906595e09344505a9bd46f1da7a07e504b315d41cd42eb07", - "sha256:0806175f2ae5ad4b835ecd87f5f85583316b69f17e97786f7443baaf54b9bb98", - "sha256:09dfe949e83087da88c4a76767df04b22304a682d6154de2c572625c62ad6886", - "sha256:0dabfb10ef897f3b7e101cacba1437bd3a5032ee667b7ead32bbcdd1a8422fe7", - "sha256:0ddd6d71d4ef17ba5a87becf7ddf01b371eaba553c603477679ae817a8d84d75", - "sha256:0f513130c4c361201da9bc69df25a086487250e16b5571ead521b31ff6b02220", - "sha256:0f97bc2f1f13cb16905a5f3e1fbdf100e712d841482b2237484360f8bc4cb3d7", - "sha256:11e70516688190e9c2db14fcf93c04192b02d457b582a1f6190b154691b4c93a", - "sha256:146b9b1f29ead41255387fb07be56dc29639262c0f7344f570eecdcd8d683314", - "sha256:16b726c1f6c2e7625706549f9dbe9b06004dfbec30dbed4bf50cbdfc73e5b32a", - "sha256:1b3cbba2f47062b85fe0ef9de5b987612140a9ba3a9c6d2543c6dec9f7c2ab27", - "sha256:1b9b1f2ad6498445a941d9a4fee096d387fee436e45cc660e72e768d3d8ee611", - "sha256:1ec23bd7b3a893ae676d0e54ad47d18064e6c5ae1fadc2f195143fb27373f7f6", - "sha256:246747b88917e4867e2367b005fc8eefbb4a54b7db363d6c92f89d69abfff4b6", - "sha256:25c2dbb97d38b5ac9fd15586e048ec5eb1e38f3d47fe7d92167b0c77bb3584e9", - "sha256:2c6441e0398c2baacfe5ba30c937d274cfc2dc5b55e82e3749e333aabffde561", - "sha256:2c9a79f1d2495b167119d02be7448bfba57fad2a4207c4f68abc0bab4b92925b", - "sha256:2e2713ef44be5d52dd8b8e2023d706bf66cb22072e97fc71b168e01d25192755", - "sha256:313c3794d650d1fccaaab2df942af9f2c01d6217c846177cfcbc693c7410839e", - "sha256:3516e0b6224cf6e43e341d56da15fd33bdc37fa0c06af4f029f7d7dfceceabbc", - "sha256:359f7f74b5d3c65dae137f33eb2bcfa7ad9ebefd1cab85c935f063f1dbb245cc", - "sha256:39b1067f13aba39d794a24761e385e2eddc26295826530a8c7b6c6c341584289", - "sha256:3c00c9b7d1ca8165c610437ca0c92e7b5607b2f9076f4eb4b095c85d6e680a1d", - "sha256:3c53687dde4d9d473c587ae80cc328e5b102b517447456184b485587ebd18b62", - "sha256:3e124e6b1dd3dfbeb695435dff0e383256655bb18082e094a8dd1f6293114642", - "sha256:4345c9a27f4310afbb9c01750e9461ff33d6fb74cd2456b107525bbeebcb5be3", - "sha256:45999e7f7ed5c390f2e87ece7f6c56bf979fb213550229e711e45ecc7d42ccb8", - "sha256:49151b0efece79f6a79d41a461d78535356136ee70084a1c22532fc6383f4ad0", - "sha256:4cb8fc1f8d69b411b8ec0b5f1ffbcaf14c1db95b6bccea21d83610987435f1a4", - "sha256:4e5837af3e5aaa99a091302df5ee001149baff06ad22b722d34e30df5f0d9097", - "sha256:4e6f689880d5ad87918430957297c975203a082d9a036cc426648fcbedae769b", - "sha256:5074adeacede5f810b7ef39607ee59d94e948b4fd954495bdb072f8c54558181", - "sha256:518efd91c3d8ac9f9b4f7dd0e2b7b8bf1a4fe82a308009016b07eaa48681af82", - "sha256:55875492f820d0eb3417b51d96fea549cde77893ae3790fd25491c5754ea2f68", - "sha256:5a68d491fc20762b630e5db2191dd07ff89834086740f70e978bb2ef2668be08", - "sha256:5dde6751e857910c1339890f3524de74007958557593b9e7e8c5f01cd919f8a7", - "sha256:5e319ed7d6b8f5fad9b76daa0a68497bc6f129858ad956331a5835785761e003", - "sha256:5edac3f57c7ddaacdb4d40f6ef2f9e299471fc38d112f4bc6d60ab9365445fb0", - "sha256:6cc0020b74b2e410287e5942e1e10886ff81ac77789eb20bec13f7ae681f0fdd", - "sha256:6dd0d50bbf9dca1d0bdea219ae6b40f713a3fb477c06ca3714f208fd69e16fd8", - "sha256:7598d2ba821caa37a0f9d54c25164a4fa351ce019d64d0b44b45540950458840", - "sha256:759cfd391a0996345ba94b6a5110fca9c557ad4166d86a6e81ea526c376a01e8", - "sha256:7ae8f354b895cbd85212da245f1a5ad8159e7840e37d78b476bb4f4c3f32a9fe", - "sha256:7b6d09a8962a91151f0976008eb7b29b433a560fde056ec7a3db9ec8f1075438", - "sha256:7c61e346ac34b74028ede1c6b4bcecf649d69b707b3ff9dc0fab453821b04d1e", - "sha256:7f51a7b4ead28d3fca8dda53216314a553b0f7a91ee8fc46a72b402a78c3e43d", - "sha256:82544e0e2d0c1811482d37eef297020a040c32e0687c1f6fc23a75b75db8062c", - "sha256:8807c87fa893527ae8a524c15fc505d9950d5e856f03dae5921b5e9aa3b8783b", - "sha256:889370d5174a741a62566c003ee8ddba4b04c3f09a97b8000092b7ca83ec9c49", - "sha256:8b14c75979ce932c53b79976a395cb2a8cd3aaf14aef75e8c2cb55a330b9b49d", - "sha256:8c5f80e578427d4695adac6fdf4370c14a2feafdc8cb35549c219b90652536ae", - "sha256:8e9f3fabc445d0ce320ea2c59a75fe3ea591fdbdeebec5db6de530dd4b09412e", - "sha256:93f1aa311e8bb912e34f004cf186407a4e90eec4f0ecc0efd26056bf7eda0226", - "sha256:94504ff66f278ab4b7e03e4cba7e7e400cb73bfa9d3d71f58d8972a8dc67e7a6", - "sha256:967668420f36878a3c9ecb5ab33c9d0ff8d054f9c0233d995a6d25b0e95e1b6b", - "sha256:9880078f683466b7f567b8624bfc16cad65077be046b6e8abb53bed4eeb82dd3", - "sha256:99a6b36f95c98839ad98f8c553d8507644c880cf1e0a57fe5e3a3f3969040882", - "sha256:9a18fff090441a40ffda8a7f4f18f03dc56ae73f148f1832e109f9bffa85df15", - "sha256:9add2e5b33d2cd765ad96d5eb734a5e795a0755f7fc49aa04f76d7ddda73fd70", - "sha256:a793ac733e3d895d96f865f1806f160696422554e46d30105807fdc9841b9f7d", - "sha256:a86c2dd76ef71a773e70551a07318b8e52379f58dafa7ae1e0a4be78efd1ff16", - "sha256:a8c1d566344aee826b74e472e16edae0a02e2a044f14f7c24e123002dcff1c05", - "sha256:ac170e9e048b40c605358667aca3d94e98f604a18c44bdb4c102e67070f3ac9b", - "sha256:b264bf2cc96b5bc43ce0e852be995e400376bd87ceb363822e2cb1964fcdc737", - "sha256:b8c8a419dfb02e91b453615c69568442e897aaf77561ee0064d789705ff37a92", - "sha256:bc69c96735ab501419c432110016329bf0dea8898ce16fab97c6d9106dc0b348", - "sha256:bef02cfcbded83473bdd86dd8d3729cd82b2e569b75844fb4ea08fee3c26ae41", - "sha256:c0b5ca88a8928147b7b1e2dfa09f3b6c256bc1135a1338536cbc9ea13d3b7add", - "sha256:cc69949484171cc961e6ecd4a8911b9ce7a0d1f738fcae717177c231bf77437b", - "sha256:ced111c2e81506abd1dc142e6cd7b68dd53747b3b7ae5edbea4578c5eeff96b7", - "sha256:d1299d7e964c13607efd148ca1f07dcbf27c3ab9e125d1d0ae1d580a1682399d", - "sha256:d1b604734bec94f05f81b360a272fc824334267426ae9905ff32dc2be433ab96", - "sha256:d9a5f194cf730f2b24d6af1f833c14c10f41023da46a7f736f48b6d35061e76e", - "sha256:db36c27baed588a5a8346b971477b718fdc66cf5b80cbfbd914b4d6d355e44e2", - "sha256:df0c7a16ebb94452d2909b9a7b3337940e9a87a824c4fc1c7c36bb4404cb0cde", - "sha256:e10a4b5a4b1192d74853cc71a5e9fd022594573926c2a3a4802020360aa719d8", - "sha256:e624c789359f1a16f83f35e2c705d07663ff2b4d4479bad35621178d8f0f6ea4", - "sha256:e690145a8c0c273c28d3b89d6fb32c45e0d9605b2293c10e650265bf5c11cfec", - "sha256:ea1608dd169da230a0ad602d5b1ebd39807ac96cae1845c3ceed39af08a5c6df", - "sha256:ea253b368eb41116011add00f8d5726762320b1bda892f744c91997b65754d73", - "sha256:eb7e49a17fb8c77d3119d41a4523e432eb0c6932187c37deb6fbb00cc3028088", - "sha256:ef12e259e7bc317c7597d4f6ef59b97b913e162d83b421dd0db3d6410f17a244", - "sha256:f8429b17cbb746c3e043cb986328da023657e79d5ed258b711c06a70c2ea7537", - "sha256:fa99973d2ed20417744fca0073390ad65ce225b546febb0580358e36aa90dba6", - "sha256:faf79a302f834d9e8304fafdc11d0d042266667ac45209afa57e5efc998e3872", - "sha256:fc31baa0c32a2ca660784d5af3b9487e13b61b3032cb01a115fce6588e1bed30" - ], - "markers": "python_version >= '3.6'", - "version": "==25.1.2" - }, - "six": { - "hashes": [ - "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926", - "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254" - ], - "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", - "version": "==1.16.0" - }, - "stack-data": { - "hashes": [ - "sha256:836a778de4fec4dcd1dcd89ed8abff8a221f58308462e1c4aa2a3cf30148f0b9", - "sha256:d5558e0c25a4cb0853cddad3d77da9891a08cb85dd9f9f91b9f8cd66e511e695" - ], - "version": "==0.6.3" - }, - "tornado": { - "hashes": [ - "sha256:02ccefc7d8211e5a7f9e8bc3f9e5b0ad6262ba2fbb683a6443ecc804e5224ce0", - "sha256:10aeaa8006333433da48dec9fe417877f8bcc21f48dda8d661ae79da357b2a63", - "sha256:27787de946a9cffd63ce5814c33f734c627a87072ec7eed71f7fc4417bb16263", - "sha256:6f8a6c77900f5ae93d8b4ae1196472d0ccc2775cc1dfdc9e7727889145c45052", - "sha256:71ddfc23a0e03ef2df1c1397d859868d158c8276a0603b96cf86892bff58149f", - "sha256:72291fa6e6bc84e626589f1c29d90a5a6d593ef5ae68052ee2ef000dfd273dee", - "sha256:88b84956273fbd73420e6d4b8d5ccbe913c65d31351b4c004ae362eba06e1f78", - "sha256:e43bc2e5370a6a8e413e1e1cd0c91bedc5bd62a74a532371042a18ef19e10579", - "sha256:f0251554cdd50b4b44362f73ad5ba7126fc5b2c2895cc62b14a1c2d7ea32f212", - "sha256:f7894c581ecdcf91666a0912f18ce5e757213999e183ebfc2c3fdbf4d5bd764e", - "sha256:fd03192e287fbd0899dd8f81c6fb9cbbc69194d2074b38f384cb6fa72b80e9c2" - ], - "markers": "python_version >= '3.8'", - "version": "==6.4" - }, - "traitlets": { - "hashes": [ - "sha256:2e5a030e6eff91737c643231bfcf04a65b0132078dad75e4936700b213652e74", - "sha256:8585105b371a04b8316a43d5ce29c098575c2e477850b62b848b964f1444527e" - ], - "markers": "python_version >= '3.8'", - "version": "==5.14.1" - }, - "wcwidth": { - "hashes": [ - "sha256:3da69048e4540d84af32131829ff948f1e022c1c6bdb8d6102117aac784f6859", - "sha256:72ea0c06399eb286d978fdedb6923a9eb47e1c486ce63e9b4e64fc18303972b5" - ], - "version": "==0.2.13" - } - } -} From d6ff1af8a9c9a0997a17e7fe34a54431c1f3e7b7 Mon Sep 17 00:00:00 2001 From: strobba <68318760+strobba@users.noreply.github.com> Date: Thu, 29 Feb 2024 15:53:32 +0100 Subject: [PATCH 4/8] Delete Pipfile --- Pipfile | 17 ----------------- 1 file changed, 17 deletions(-) delete mode 100644 Pipfile diff --git a/Pipfile b/Pipfile deleted file mode 100644 index 9fc0c00..0000000 --- a/Pipfile +++ /dev/null @@ -1,17 +0,0 @@ -[[source]] -url = "https://pypi.org/simple" -verify_ssl = true -name = "pypi" - -[packages] -e = "*" -ifk-co2-meal-planner = {file = "."} -ruff = "*" -black = "*" -mypy = "*" - -[dev-packages] -ipykernel = "*" - -[requires] -python_version = "3.10" From 3c050b3d5b853cad5d82a1a1d88a92488bbb7b80 Mon Sep 17 00:00:00 2001 From: strobba <68318760+strobba@users.noreply.github.com> Date: Thu, 29 Feb 2024 15:54:34 +0100 Subject: [PATCH 5/8] Delete src/ifk_co2_meal_planner.egg-info directory --- src/ifk_co2_meal_planner.egg-info/PKG-INFO | 83 ------------------- src/ifk_co2_meal_planner.egg-info/SOURCES.txt | 22 ----- .../dependency_links.txt | 1 - .../requires.txt | 30 ------- .../top_level.txt | 1 - 5 files changed, 137 deletions(-) delete mode 100644 src/ifk_co2_meal_planner.egg-info/PKG-INFO delete mode 100644 src/ifk_co2_meal_planner.egg-info/SOURCES.txt delete mode 100644 src/ifk_co2_meal_planner.egg-info/dependency_links.txt delete mode 100644 src/ifk_co2_meal_planner.egg-info/requires.txt delete mode 100644 src/ifk_co2_meal_planner.egg-info/top_level.txt diff --git a/src/ifk_co2_meal_planner.egg-info/PKG-INFO b/src/ifk_co2_meal_planner.egg-info/PKG-INFO deleted file mode 100644 index 6a3823c..0000000 --- a/src/ifk_co2_meal_planner.egg-info/PKG-INFO +++ /dev/null @@ -1,83 +0,0 @@ -Metadata-Version: 2.1 -Name: ifk-co2-meal-planner -Version: 0.1.0 -Summary: For evaluation of nutrition and CHG of meals. -Author-email: IFK -License: MIT -Requires-Python: >=3.9 -Description-Content-Type: text/markdown -License-File: LICENSE -Requires-Dist: requests==2.31.0 -Requires-Dist: pandas==2.2.0 -Requires-Dist: matplotlib==3.8.2 -Requires-Dist: pyarrow==15.0.0 -Provides-Extra: lint -Requires-Dist: ruff~=0.1; extra == "lint" -Provides-Extra: type -Requires-Dist: mypy~=1.7; extra == "type" -Requires-Dist: types-requests~=2.28; extra == "type" -Requires-Dist: pandas-stubs~=1.5; extra == "type" -Provides-Extra: test -Requires-Dist: pytest~=7.1; extra == "test" -Requires-Dist: coverage~=6.5; extra == "test" -Requires-Dist: pytest-cov~=4.0; extra == "test" -Provides-Extra: doc -Requires-Dist: mkdocs~=1.4; extra == "doc" -Requires-Dist: mkdocs-material~=8.5; extra == "doc" -Requires-Dist: mkdocstrings[python]~=0.19; extra == "doc" -Provides-Extra: dev -Requires-Dist: ifk-co2-meal-planner[lint]; extra == "dev" -Requires-Dist: ifk-co2-meal-planner[type]; extra == "dev" -Requires-Dist: ifk-co2-meal-planner[test]; extra == "dev" -Requires-Dist: ifk-co2-meal-planner[doc]; extra == "dev" -Requires-Dist: pre-commit~=2.20; extra == "dev" -Requires-Dist: ipykernel~=6.26; extra == "dev" - -

ifk-co2-meal-planner

- -

- - build - - - coverage - - - docs - - - lint - - - type - -

- -

- - Python: 3.9 - 3.12 - - - Testing framework: pytest - - - Linter and formatter: ruff - - - Type checker: mypy - -

- -## Description - -Welcome to ifk-co2-meal-planner. - -## Configuration - -When you start a new project, apart from the obvious changes, -there are some details to consider. - -- Build workflow, follow the guide in [dynamic badges](https://github.com/Schneegans/dynamic-badges-action). -- To build docs, change `branch` in `github/workflows/github-action-docs.yaml` -from `["SET_TO_MAIN"]` to `["main"]`. You also need to activate Pages under repo -Settings/Pages. diff --git a/src/ifk_co2_meal_planner.egg-info/SOURCES.txt b/src/ifk_co2_meal_planner.egg-info/SOURCES.txt deleted file mode 100644 index 8fe68e9..0000000 --- a/src/ifk_co2_meal_planner.egg-info/SOURCES.txt +++ /dev/null @@ -1,22 +0,0 @@ -LICENSE -Pipfile -Pipfile.lock -README.md -mkdocs.yml -pyproject.toml -docs/index.md -docs/assets/favicon.png -docs/assets/ifk_logo_black.png -docs/assets/ifk_logo_white.png -material/partials/copyright.html -notebooks/example.ipynb -notebooks/example.py -src/rdi.py -src/co2_meal_planner/slv_wrapper.py -src/co2_meal_planner/__pycache__/slv_wrapper.cpython-310.pyc -src/ifk_co2_meal_planner.egg-info/PKG-INFO -src/ifk_co2_meal_planner.egg-info/SOURCES.txt -src/ifk_co2_meal_planner.egg-info/dependency_links.txt -src/ifk_co2_meal_planner.egg-info/requires.txt -src/ifk_co2_meal_planner.egg-info/top_level.txt -tests/test_unit.py \ No newline at end of file diff --git a/src/ifk_co2_meal_planner.egg-info/dependency_links.txt b/src/ifk_co2_meal_planner.egg-info/dependency_links.txt deleted file mode 100644 index 8b13789..0000000 --- a/src/ifk_co2_meal_planner.egg-info/dependency_links.txt +++ /dev/null @@ -1 +0,0 @@ - diff --git a/src/ifk_co2_meal_planner.egg-info/requires.txt b/src/ifk_co2_meal_planner.egg-info/requires.txt deleted file mode 100644 index 811ab89..0000000 --- a/src/ifk_co2_meal_planner.egg-info/requires.txt +++ /dev/null @@ -1,30 +0,0 @@ -requests==2.31.0 -pandas==2.2.0 -matplotlib==3.8.2 -pyarrow==15.0.0 - -[dev] -ifk-co2-meal-planner[lint] -ifk-co2-meal-planner[type] -ifk-co2-meal-planner[test] -ifk-co2-meal-planner[doc] -pre-commit~=2.20 -ipykernel~=6.26 - -[doc] -mkdocs~=1.4 -mkdocs-material~=8.5 -mkdocstrings[python]~=0.19 - -[lint] -ruff~=0.1 - -[test] -pytest~=7.1 -coverage~=6.5 -pytest-cov~=4.0 - -[type] -mypy~=1.7 -types-requests~=2.28 -pandas-stubs~=1.5 diff --git a/src/ifk_co2_meal_planner.egg-info/top_level.txt b/src/ifk_co2_meal_planner.egg-info/top_level.txt deleted file mode 100644 index 4373af3..0000000 --- a/src/ifk_co2_meal_planner.egg-info/top_level.txt +++ /dev/null @@ -1 +0,0 @@ -co2_meal_planner From aa54a69d867a956598b5eeb15c9c40042d38232c Mon Sep 17 00:00:00 2001 From: strobba <68318760+strobba@users.noreply.github.com> Date: Thu, 29 Feb 2024 15:57:48 +0100 Subject: [PATCH 6/8] Delete notebooks/example.ipynb --- notebooks/example.ipynb | 3038 --------------------------------------- 1 file changed, 3038 deletions(-) delete mode 100644 notebooks/example.ipynb diff --git a/notebooks/example.ipynb b/notebooks/example.ipynb deleted file mode 100644 index 7caaa21..0000000 --- a/notebooks/example.ipynb +++ /dev/null @@ -1,3038 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [ - { - "ename": "ModuleNotFoundError", - "evalue": "No module named 'co2_meal_planner.rdi'", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mModuleNotFoundError\u001b[0m Traceback (most recent call last)", - "Cell \u001b[0;32mIn[1], line 11\u001b[0m\n\u001b[1;32m 9\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mco2_meal_planner\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mslv_wrapper\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m SlvWrapper\n\u001b[1;32m 10\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mIPython\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mdisplay\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m display\n\u001b[0;32m---> 11\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mco2_meal_planner\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mrdi\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m rdi\n\u001b[1;32m 13\u001b[0m slv \u001b[38;5;241m=\u001b[39m SlvWrapper()\n", - "\u001b[0;31mModuleNotFoundError\u001b[0m: No module named 'co2_meal_planner.rdi'" - ] - } - ], - "source": [ - "\"\"\"Example.\n", - "\n", - "https://www.livsmedelsverket.se/om-oss/psidata/livsmedelsdatbasenalfa\n", - "\n", - "ClimateHub have open source on CHG, but only free for internal use.\n", - "\"\"\"\n", - "\n", - "import pandas as pd\n", - "from co2_meal_planner.rdi import rdi\n", - "from co2_meal_planner.slv_wrapper import SlvWrapper\n", - "from IPython.display import display\n", - "\n", - "slv = SlvWrapper()\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Paranötter 1568\n", - "[{'namn': 'Zink, Zn', 'euroFIRkod': 'ZN', 'forkortning': 'Zn', 'varde': 3.8, 'enhet': 'mg', 'viktGram': 100, 'vardetyp': 'Ett analysvärde av sammansatt prov', 'vardetypkod': 'AV', 'ursprung': 'Analys SLV', 'ursprungkod': 'O', 'publikation': 'Analysprotokoll Dnr 2018/00798', 'metodtyp': 'Analysresultat', 'metodtypkod': 'A', 'metodindikator': 'ICP-MS', 'metodindikatorkod': 'MI1209', 'referenstyp': 'Rapport', 'referenstypkod': 'R'}, {'namn': 'Vitamin E', 'euroFIRkod': 'VITE', 'forkortning': 'VitE', 'varde': 6.1, 'enhet': 'mg', 'viktGram': 100, 'berakning': '6,130', 'vardetyp': 'Bästa skattning', 'vardetypkod': 'BE', 'ursprung': 'Värde framtaget med eget system', 'ursprungkod': 'S', 'publikation': 'SLV - Riktlinjer för livsmedel', 'metodtyp': 'Summering av beståndsdelar', 'metodtypkod': 'S', 'metodindikator': 'Vit E från alfatokoferol', 'metodindikatorkod': 'MI0368', 'referenstyp': 'Rapport', 'referenstypkod': 'R'}, {'namn': 'Vitamin D', 'euroFIRkod': 'VITD', 'forkortning': 'VitD', 'varde': 0.0, 'enhet': 'µg', 'viktGram': 100, 'berakning': '0,000+0,000', 'vardetyp': 'Bästa skattning', 'vardetypkod': 'BE', 'ursprung': 'Värde framtaget med eget system', 'ursprungkod': 'S', 'publikation': 'SLV - Riktlinjer för livsmedel', 'metodtyp': 'Summering av beståndsdelar', 'metodtypkod': 'S', 'metodindikator': 'Vit D från D2 och D3', 'metodindikatorkod': 'MI0351', 'referenstyp': 'Rapport', 'referenstypkod': 'R'}, {'namn': 'Vitamin C', 'euroFIRkod': 'VITC', 'forkortning': 'VitC', 'varde': 0.0, 'enhet': 'mg', 'viktGram': 100, 'vardetyp': 'Bästa skattning', 'vardetypkod': 'BE', 'ursprung': 'Livsmedelstabell', 'ursprungkod': 'F', 'publikation': \"McCance and Widdowson's composition of foods integrated dataset 2019\", 'metodtyp': 'Allmän analys', 'metodtypkod': 'AG', 'referenstyp': 'Rapport', 'referenstypkod': 'R', 'kommentar': 'Food Code 14-871'}, {'namn': 'Vitamin B6', 'euroFIRkod': 'VITB6', 'forkortning': 'VitB6', 'varde': 0.33, 'enhet': 'mg', 'viktGram': 100, 'vardetyp': 'Ett analysvärde av sammansatt prov', 'vardetypkod': 'AV', 'ursprung': 'Analys SLV', 'ursprungkod': 'O', 'publikation': 'Analysprotokoll Dnr 2018/00798', 'metodtyp': 'Analysresultat', 'metodtypkod': 'A', 'metodindikator': 'HPLC-FLD tiamin, riboflavin, vitamin B6, vitamin C', 'referenstyp': 'Rapport', 'referenstypkod': 'R'}, {'namn': 'Vitamin B12', 'euroFIRkod': 'VITB12', 'forkortning': 'VitB12', 'varde': 0.0, 'enhet': 'µg', 'viktGram': 100, 'vardetyp': 'Logisk nolla', 'vardetypkod': 'LZ', 'ursprung': 'Annat ursprung', 'ursprungkod': 'E', 'publikation': 'SLV - Riktlinjer för livsmedel', 'metodtyp': 'Skattat logisk slutledning', 'metodtypkod': 'U', 'referenstyp': 'Rapport', 'referenstypkod': 'R'}, {'namn': 'Vitamin A', 'euroFIRkod': 'VITA', 'forkortning': 'VitA', 'varde': 0.6, 'enhet': 'RE/µg', 'viktGram': 100, 'berakning': '0,000+5,400/12+(2,300+0,000)/24,0', 'vardetyp': 'Bästa skattning', 'vardetypkod': 'BE', 'ursprung': 'Värde framtaget med eget system', 'ursprungkod': 'S', 'publikation': 'SLV - Riktlinjer för livsmedel', 'metodtyp': 'Beräknad, omräkningsfaktor inkluderad', 'metodtypkod': 'T', 'metodindikator': 'Vitamin A aktivitet (RAE)', 'metodindikatorkod': 'MI0324', 'referenstyp': 'Rapport', 'referenstypkod': 'R'}, {'namn': 'Vatten', 'euroFIRkod': 'WATER', 'forkortning': 'Vatt', 'varde': 1.8, 'enhet': 'g', 'viktGram': 100, 'vardetyp': 'Ett analysvärde av sammansatt prov', 'vardetypkod': 'AV', 'ursprung': 'Analys, oberoende labb', 'ursprungkod': 'D', 'publikation': 'Analysprotokoll Dnr 2018/00798', 'metodtyp': 'Analysresultat', 'metodtypkod': 'A', 'metodindikator': 'Gravimetrisk metod'}, {'namn': 'Tiamin', 'euroFIRkod': 'THIA', 'forkortning': 'Tiam', 'varde': 0.73, 'enhet': 'mg', 'viktGram': 100, 'vardetyp': 'Ett analysvärde av sammansatt prov', 'vardetypkod': 'AV', 'ursprung': 'Analys SLV', 'ursprungkod': 'O', 'publikation': 'Analysprotokoll Dnr 2018/00798', 'metodtyp': 'Analysresultat', 'metodtypkod': 'A', 'metodindikator': 'HPLC-FLD tiamin, riboflavin, vitamin B6, vitamin C', 'referenstyp': 'Rapport', 'referenstypkod': 'R'}, {'namn': 'Tillsatt socker', 'euroFIRkod': 'SUGAD', 'forkortning': 'Socker/t', 'varde': 0, 'enhet': 'g', 'viktGram': 100, 'vardetyp': 'Logisk nolla', 'vardetypkod': 'LZ', 'ursprung': 'Värde framtaget med eget system', 'ursprungkod': 'S', 'publikation': 'SLV - Riktlinjer för livsmedel', 'metodtyp': 'Skattat logisk slutledning', 'metodtypkod': 'U', 'referenstyp': 'Rapport', 'referenstypkod': 'R'}, {'namn': 'Fritt socker', 'euroFIRkod': 'SUGFR', 'forkortning': 'Socker/f', 'varde': 0, 'enhet': 'g', 'viktGram': 100, 'vardetyp': 'Logisk nolla', 'vardetypkod': 'LZ', 'ursprung': 'Värde framtaget med eget system', 'ursprungkod': 'S', 'publikation': 'SLV - Riktlinjer för livsmedel', 'metodtyp': 'Skattat logisk slutledning', 'metodtypkod': 'U', 'referenstyp': 'Rapport', 'referenstypkod': 'R'}, {'namn': 'Selen, Se', 'euroFIRkod': 'SE', 'forkortning': 'Se', 'varde': 225.0, 'enhet': 'µg', 'viktGram': 100, 'vardetyp': 'Ett analysvärde av sammansatt prov', 'vardetypkod': 'AV', 'ursprung': 'Analys, oberoende labb', 'ursprungkod': 'D', 'publikation': 'Analysprotokoll Dnr 2018/00798', 'metodtyp': 'Analysresultat', 'metodtypkod': 'A', 'metodindikator': 'ICP-SFMS, mineraler', 'metodindikatorkod': '', 'referenstyp': 'Rapport', 'referenstypkod': 'R'}, {'namn': 'Sackaros', 'euroFIRkod': 'SUCS', 'forkortning': 'Sack', 'varde': 1.8, 'enhet': 'g', 'viktGram': 100, 'vardetyp': 'Ett analysvärde av sammansatt prov', 'vardetypkod': 'AV', 'ursprung': 'Analys, oberoende labb', 'ursprungkod': 'D', 'publikation': 'Analysprotokoll Dnr 2018/00798', 'metodtyp': 'Analysresultat', 'metodtypkod': 'A', 'metodindikator': 'Kromatografi', 'metodindikatorkod': 'MI1144', 'referenstyp': 'Rapport', 'referenstypkod': 'R'}, {'namn': 'Riboflavin', 'euroFIRkod': 'RIBF', 'forkortning': 'Ribo', 'varde': 0.0, 'enhet': 'mg', 'viktGram': 100, 'vardetyp': 'Spår', 'vardetypkod': 'TR', 'ursprung': 'Analys SLV', 'ursprungkod': 'O', 'publikation': 'Analysprotokoll Dnr 2018/00798', 'metodtyp': 'Analysresultat', 'metodtypkod': 'A', 'metodindikator': 'HPLC-FLD tiamin, riboflavin, vitamin B6, vitamin C', 'referenstyp': 'Rapport', 'referenstypkod': 'R'}, {'namn': 'Retinol', 'euroFIRkod': 'RETOL', 'forkortning': 'Reti', 'varde': 0.0, 'enhet': 'µg', 'viktGram': 100, 'berakning': '0,000', 'vardetyp': 'Bästa skattning', 'vardetypkod': 'BE', 'ursprung': 'Värde framtaget med eget system', 'ursprungkod': 'S', 'publikation': 'SLV - Riktlinjer för livsmedel', 'metodtyp': 'Summering av beståndsdelar', 'metodtypkod': 'S', 'metodindikator': 'Retinol beräknat enbart från transretinol', 'metodindikatorkod': '', 'referenstyp': 'Rapport', 'referenstypkod': 'R'}, {'namn': 'Protein', 'euroFIRkod': 'PROT', 'forkortning': 'Prot', 'varde': 14.2, 'enhet': 'g', 'viktGram': 100, 'berakning': '2,600*5,46', 'vardetyp': 'Bästa skattning', 'vardetypkod': 'BE', 'ursprung': 'Värde framtaget med eget system', 'ursprungkod': 'S', 'publikation': 'SLV - Riktlinjer för livsmedel', 'metodtyp': 'Beräknad, omräkningsfaktor inkluderad', 'metodtypkod': 'T', 'metodindikator': 'Protein beräknat från proteinkväve', 'metodindikatorkod': 'MI0122', 'referenstyp': 'Rapport', 'referenstypkod': 'R'}, {'namn': 'Summa fleromättade fettsyror', 'euroFIRkod': 'FAPU', 'forkortning': 'Pole', 'varde': 29.2, 'enhet': 'g', 'viktGram': 100, 'berakning': '0,956*67,8*(0,000+0,000+0,000+45,000+0,000+0,000+0,000+0,000+0,000+0,000+0,000+0,000+0,000+0,000+0,000+0,000+0,000+0,000+0,000+0,000+0,000)/100,0', 'vardetyp': 'Bästa skattning', 'vardetypkod': 'BE', 'ursprung': 'Värde framtaget med eget system', 'ursprungkod': 'S', 'publikation': 'SLV - Riktlinjer för livsmedel', 'metodtyp': 'Beräknad, omräkningsfaktor inkluderad', 'metodtypkod': 'T', 'metodindikator': 'Fettsyror beräknade från fettsyraprofil %', 'metodindikatorkod': 'MI0201', 'referenstyp': 'Rapport', 'referenstypkod': 'R'}, {'namn': 'Fosfor, P', 'euroFIRkod': 'P', 'forkortning': 'P', 'varde': 723, 'enhet': 'mg', 'viktGram': 100, 'vardetyp': 'Ett analysvärde av sammansatt prov', 'vardetypkod': 'AV', 'ursprung': 'Analys, oberoende labb', 'ursprungkod': 'D', 'publikation': 'Analysprotokoll Dnr 2018/00798', 'metodtyp': 'Analysresultat', 'metodtypkod': 'A', 'metodindikator': 'ICP-SFMS, mineraler', 'metodindikatorkod': '', 'referenstyp': 'Rapport', 'referenstypkod': 'R'}, {'namn': 'Niacinekvivalenter', 'euroFIRkod': 'NIAEQ', 'forkortning': 'Niek', 'varde': 2.9, 'enhet': 'NE/mg', 'viktGram': 100, 'berakning': '0,484+14,20*10,0*1/60,0', 'vardetyp': 'Bästa skattning', 'vardetypkod': 'BE', 'ursprung': 'Värde framtaget med eget system', 'ursprungkod': 'S', 'publikation': 'SLV - Riktlinjer för livsmedel', 'metodtyp': 'Beräknad, omräkningsfaktor inkluderad', 'metodtypkod': 'T', 'metodindikator': 'Niacinekvivalenter', 'metodindikatorkod': 'MI0421', 'referenstyp': 'Rapport', 'referenstypkod': 'R'}, {'namn': 'Niacin', 'euroFIRkod': 'NIA', 'forkortning': 'Niac', 'varde': 0.48, 'enhet': 'mg', 'viktGram': 100, 'vardetyp': 'Ett analysvärde av sammansatt prov', 'vardetypkod': 'AV', 'ursprung': 'Analys SLV', 'ursprungkod': 'O', 'publikation': 'Analysprotokoll Dnr 2018/00798', 'metodtyp': 'Analysresultat', 'metodtypkod': 'A', 'metodindikator': 'Lactobacillus plantarum, niacin', 'metodindikatorkod': '', 'referenstyp': 'Rapport', 'referenstypkod': 'R'}, {'namn': 'Salt, NaCl', 'euroFIRkod': 'NACL', 'forkortning': 'NaCl', 'varde': 0.0, 'enhet': 'g', 'viktGram': 100, 'berakning': '0,000*2,5/1000,0', 'vardetyp': 'Bästa skattning', 'vardetypkod': 'BE', 'ursprung': 'Värde framtaget med eget system', 'ursprungkod': 'S', 'publikation': 'SLV - Riktlinjer för livsmedel', 'metodtyp': 'Beräknad, omräkningsfaktor inkluderad', 'metodtypkod': 'T', 'metodindikator': 'Salt beräknat från natrium (totalt)', 'metodindikatorkod': 'MI0120', 'referenstyp': 'Rapport', 'referenstypkod': 'R'}, {'namn': 'Natrium, Na', 'euroFIRkod': 'NA', 'forkortning': 'Na', 'varde': 0, 'enhet': 'mg', 'viktGram': 100, 'vardetyp': 'Spår', 'vardetypkod': 'TR', 'ursprung': 'Analys, oberoende labb', 'ursprungkod': 'D', 'publikation': 'Analysprotokoll Dnr 2018/00798', 'metodtyp': 'Analysresultat', 'metodtypkod': 'A', 'metodindikator': 'ICP-SFMS, mineraler', 'metodindikatorkod': '', 'referenstyp': 'Rapport', 'referenstypkod': 'R'}, {'namn': 'Monosackarider', 'euroFIRkod': 'MNSAC', 'forkortning': 'Msac', 'varde': 0.0, 'enhet': 'g', 'viktGram': 100, 'berakning': '0,000+0,000', 'vardetyp': 'Bästa skattning', 'vardetypkod': 'BE', 'ursprung': 'Värde framtaget med eget system', 'ursprungkod': 'S', 'publikation': 'SLV - Riktlinjer för livsmedel', 'metodtyp': 'Summering av beståndsdelar', 'metodtypkod': 'S', 'metodindikator': 'Monosackarider beräknade som summan av glukos och fruktos', 'metodindikatorkod': '', 'referenstyp': 'Rapport', 'referenstypkod': 'R'}, {'namn': 'Sockerarter, totalt', 'euroFIRkod': 'SUGAR', 'forkortning': 'Mono/disack', 'varde': 1.8, 'enhet': 'g', 'viktGram': 100, 'berakning': '0,000+0,000+1,800+0,000+0,000', 'vardetyp': 'Bästa skattning', 'vardetypkod': 'BE', 'ursprung': 'Värde framtaget med eget system', 'ursprungkod': 'S', 'publikation': 'SLV - Riktlinjer för livsmedel', 'metodtyp': 'Summering av beståndsdelar', 'metodtypkod': 'S', 'metodindikator': 'Summa sockerarter beräknade som summan av glukos, fruktos, laktos, maltos och sackaros', 'metodindikatorkod': 'MI0153', 'referenstyp': 'Rapport', 'referenstypkod': 'R'}, {'namn': 'Summa enkelomättade fettsyror', 'euroFIRkod': 'FAMS', 'forkortning': 'Mone', 'varde': 20.1, 'enhet': 'g', 'viktGram': 100, 'berakning': '0,956*67,8*(0,000+0,000+0,300+0,000+30,700+0,000+0,000+0,000)/100,0', 'vardetyp': 'Bästa skattning', 'vardetypkod': 'BE', 'ursprung': 'Värde framtaget med eget system', 'ursprungkod': 'S', 'publikation': 'SLV - Riktlinjer för livsmedel', 'metodtyp': 'Beräknad, omräkningsfaktor inkluderad', 'metodtypkod': 'T', 'metodindikator': 'Fettsyror beräknade från fettsyraprofil %', 'metodindikatorkod': 'MI0201', 'referenstyp': 'Rapport', 'referenstypkod': 'R'}, {'namn': 'Magnesium, Mg', 'euroFIRkod': 'MG', 'forkortning': 'Mg', 'varde': 400, 'enhet': 'mg', 'viktGram': 100, 'vardetyp': 'Ett analysvärde av sammansatt prov', 'vardetypkod': 'AV', 'ursprung': 'Analys, oberoende labb', 'ursprungkod': 'D', 'publikation': 'Analysprotokoll Dnr 2018/00798', 'metodtyp': 'Analysresultat', 'metodtypkod': 'A', 'metodindikator': 'ICP-SFMS, mineraler', 'metodindikatorkod': '', 'referenstyp': 'Rapport', 'referenstypkod': 'R'}, {'namn': 'Summa mättade fettsyror', 'euroFIRkod': 'FASAT', 'forkortning': 'Mfet', 'varde': 15.4, 'enhet': 'g', 'viktGram': 100, 'berakning': '0,956*67,8*(0,000+0,000+0,000+0,000+0,000+0,000+0,000+0,000+0,000+0,000+0,000+0,000+14,200+0,000+0,000+0,000+0,000+0,000+9,300+0,200+0,000+0,00+0,000)/100,0', 'vardetyp': 'Bästa skattning', 'vardetypkod': 'BE', 'ursprung': 'Värde framtaget med eget system', 'ursprungkod': 'S', 'publikation': 'SLV - Riktlinjer för livsmedel', 'metodtyp': 'Beräknad, omräkningsfaktor inkluderad', 'metodtypkod': 'T', 'metodindikator': 'Fettsyror beräknade från fettsyraprofil %', 'metodindikatorkod': 'MI0201', 'referenstyp': 'Rapport', 'referenstypkod': 'R'}, {'namn': 'Kolhydrater, tillgängliga', 'euroFIRkod': 'CHO', 'forkortning': 'Kolh', 'varde': 0.0, 'enhet': 'g', 'viktGram': 100, 'berakning': '100,0-(1,770+3,760+14,20+67,8+13,7+0,000)', 'vardetyp': 'Bästa skattning', 'vardetypkod': 'BE', 'ursprung': 'Värde framtaget med eget system', 'ursprungkod': 'S', 'publikation': 'SLV - Riktlinjer för livsmedel', 'metodtyp': 'Summering av beståndsdelar', 'metodtypkod': 'S', 'metodindikator': 'Kolhydrater, tillgängliga beräknat som rest', 'metodindikatorkod': 'MI0183', 'referenstyp': 'Rapport', 'referenstypkod': 'R'}, {'namn': 'Kolesterol', 'euroFIRkod': 'CHORL', 'forkortning': 'Kole', 'varde': 0.0, 'enhet': 'mg', 'viktGram': 100, 'vardetyp': 'Logisk nolla', 'vardetypkod': 'LZ', 'ursprung': 'Annat ursprung', 'ursprungkod': 'E', 'publikation': 'SLV - Riktlinjer för livsmedel', 'metodtyp': 'Skattat logisk slutledning', 'metodtypkod': 'U'}, {'namn': 'Kalium, K', 'euroFIRkod': 'K', 'forkortning': 'K', 'varde': 623, 'enhet': 'mg', 'viktGram': 100, 'vardetyp': 'Ett analysvärde av sammansatt prov', 'vardetypkod': 'AV', 'ursprung': 'Analys, oberoende labb', 'ursprungkod': 'D', 'publikation': 'Analysprotokoll Dnr 2018/00798', 'metodtyp': 'Analysresultat', 'metodtypkod': 'A', 'metodindikator': 'ICP-SFMS, mineraler', 'metodindikatorkod': '', 'referenstyp': 'Rapport', 'referenstypkod': 'R'}, {'namn': 'Jod, I', 'euroFIRkod': 'ID', 'forkortning': 'I', 'varde': 0.0, 'enhet': 'µg', 'viktGram': 100, 'vardetyp': 'Spår', 'vardetypkod': 'TR', 'ursprung': 'Analys, oberoende labb', 'ursprungkod': 'D', 'publikation': 'Analysprotokoll Dnr 2018/00798', 'metodtyp': 'Analysresultat', 'metodtypkod': 'A', 'metodindikator': 'ICP-SFMS, mineraler', 'metodindikatorkod': '', 'referenstyp': 'Rapport', 'referenstypkod': 'R'}, {'namn': 'Fullkorn totalt', 'euroFIRkod': 'WHOLET', 'forkortning': 'Fullk/tot', 'varde': 0, 'enhet': 'g', 'viktGram': 100, 'berakning': '0,000+0,000+0,000+0,000+0,000', 'vardetyp': 'Bästa skattning', 'vardetypkod': 'BE', 'ursprung': 'Värde framtaget med eget system', 'ursprungkod': 'S', 'publikation': 'SLV - Riktlinjer för livsmedel', 'metodtyp': 'Summering av beståndsdelar', 'metodtypkod': 'S', 'metodindikator': 'Skattat från ingrediensförteckning', 'referenstyp': 'Rapport', 'referenstypkod': 'R'}, {'namn': 'Folat', 'euroFIRkod': 'FOL', 'forkortning': 'Folat', 'varde': 5.3, 'enhet': 'µg', 'viktGram': 100, 'vardetyp': 'Ett analysvärde av sammansatt prov', 'vardetypkod': 'AV', 'ursprung': 'Analys SLV', 'ursprungkod': 'O', 'publikation': 'Analysprotokoll Dnr 2018/00798', 'metodtyp': 'Analysresultat', 'metodtypkod': 'A', 'metodindikator': 'Lactobacillus plantarum, niacin', 'metodindikatorkod': '', 'referenstyp': 'Rapport', 'referenstypkod': 'R'}, {'namn': 'Fibrer', 'euroFIRkod': 'FIBT', 'forkortning': 'Fibe', 'varde': 13.7, 'enhet': 'g', 'viktGram': 100, 'vardetyp': 'Ett analysvärde av sammansatt prov', 'vardetypkod': 'AV', 'ursprung': 'Analys, oberoende labb', 'ursprungkod': 'D', 'publikation': 'Analysprotokoll Dnr 2018/00798', 'metodtyp': 'Analysresultat', 'metodtypkod': 'A', 'metodindikator': 'Enzymatisk metod', 'metodindikatorkod': 'MI1218'}, {'namn': 'Fett, totalt', 'euroFIRkod': 'FAT', 'forkortning': 'Fett', 'varde': 67.8, 'enhet': 'g', 'viktGram': 100, 'vardetyp': 'Ett analysvärde av sammansatt prov', 'vardetypkod': 'AV', 'ursprung': 'Analys, oberoende labb', 'ursprungkod': 'D', 'publikation': 'Analysprotokoll Dnr 2018/00798', 'metodtyp': 'Analysresultat', 'metodtypkod': 'A', 'metodindikator': 'NMR, fett', 'metodindikatorkod': 'MI1165'}, {'namn': 'Järn, Fe', 'euroFIRkod': 'FE', 'forkortning': 'Fe', 'varde': 2.4, 'enhet': 'mg', 'viktGram': 100, 'vardetyp': 'Ett analysvärde av sammansatt prov', 'vardetypkod': 'AV', 'ursprung': 'Analys SLV', 'ursprungkod': 'O', 'publikation': 'Analysprotokoll Dnr 2018/00798', 'metodtyp': 'Analysresultat', 'metodtypkod': 'A', 'metodindikator': 'ICP-MS', 'metodindikatorkod': 'MI1209', 'referenstyp': 'Rapport', 'referenstypkod': 'R'}, {'namn': 'Energi (kJ)', 'euroFIRkod': 'ENERC', 'forkortning': 'Ener', 'varde': 2860, 'enhet': 'kJ', 'viktGram': 100, 'berakning': '0,0*17,0+14,20*17,0+67,8*37,0+0,000*29,0+13,7*8,0', 'vardetyp': 'Bästa skattning', 'vardetypkod': 'BE', 'ursprung': 'Värde framtaget med eget system', 'ursprungkod': 'S', 'publikation': 'SLV - Riktlinjer för livsmedel', 'metodtyp': 'Beräknad, omräkningsfaktor inkluderad', 'metodtypkod': 'T', 'metodindikator': 'Energiberäkning kJ NNR', 'metodindikatorkod': 'MI0110', 'referenstyp': 'Rapport', 'referenstypkod': 'R'}, {'namn': 'Energi (kcal)', 'euroFIRkod': 'ENERC', 'forkortning': 'Ener', 'varde': 683, 'enhet': 'kcal', 'viktGram': 100, 'berakning': '2859,60*0,239', 'vardetyp': 'Bästa skattning', 'vardetypkod': 'BE', 'ursprung': 'Värde framtaget med eget system', 'ursprungkod': 'S', 'publikation': 'SLV - Riktlinjer för livsmedel', 'metodtyp': 'Beräknad, omräkningsfaktor inkluderad', 'metodtypkod': 'T', 'metodindikator': 'Energiberäkning kcal enligt NNR', 'metodindikatorkod': 'MI0117', 'referenstyp': 'Rapport', 'referenstypkod': 'R'}, {'namn': 'Disackarider', 'euroFIRkod': 'DISAC', 'forkortning': 'Dsac', 'varde': 1.8, 'enhet': 'g', 'viktGram': 100, 'berakning': '0,000+0,000+1,800', 'vardetyp': 'Bästa skattning', 'vardetypkod': 'BE', 'ursprung': 'Värde framtaget med eget system', 'ursprungkod': 'S', 'publikation': 'SLV - Riktlinjer för livsmedel', 'metodtyp': 'Summering av beståndsdelar', 'metodtypkod': 'S', 'metodindikator': 'Disackarider beräknade som summan av laktos, maltos och sackaros', 'metodindikatorkod': '', 'referenstyp': 'Rapport', 'referenstypkod': 'R'}, {'namn': 'Kalcium, Ca', 'euroFIRkod': 'CA', 'forkortning': 'Ca', 'varde': 176, 'enhet': 'mg', 'viktGram': 100, 'vardetyp': 'Ett analysvärde av sammansatt prov', 'vardetypkod': 'AV', 'ursprung': 'Analys, oberoende labb', 'ursprungkod': 'D', 'publikation': 'Analysprotokoll Dnr 2018/00798', 'metodtyp': 'Analysresultat', 'metodtypkod': 'A', 'metodindikator': 'ICP-SFMS, mineraler', 'metodindikatorkod': '', 'referenstyp': 'Rapport', 'referenstypkod': 'R'}, {'namn': 'Fettsyra 4:0-10:0', 'euroFIRkod': 'F4-10:0', 'forkortning': 'C4:0-C10:0', 'varde': 0.0, 'enhet': 'g', 'viktGram': 100, 'berakning': '0,956*67,8*(0,000+0,000+0,000+0,000)/100,0', 'vardetyp': 'Bästa skattning', 'vardetypkod': 'BE', 'ursprung': 'Värde framtaget med eget system', 'ursprungkod': 'S', 'publikation': 'SLV - Riktlinjer för livsmedel', 'metodtyp': 'Beräknad, omräkningsfaktor inkluderad', 'metodtypkod': 'T', 'metodindikator': 'Fettsyror beräknade från fettsyraprofil %', 'metodindikatorkod': 'MI0201', 'referenstyp': 'Rapport', 'referenstypkod': 'R'}, {'namn': 'DHA (C22:6)', 'euroFIRkod': 'F22:6', 'forkortning': 'C22:6', 'varde': 0.0, 'enhet': 'g', 'viktGram': 100, 'berakning': '0,956*67,8*(0,000)/100,0', 'vardetyp': 'Bästa skattning', 'vardetypkod': 'BE', 'ursprung': 'Värde framtaget med eget system', 'ursprungkod': 'S', 'publikation': 'SLV - Riktlinjer för livsmedel', 'metodtyp': 'Beräknad, omräkningsfaktor inkluderad', 'metodtypkod': 'T', 'metodindikator': 'Fettsyror beräknade från fettsyraprofil %', 'metodindikatorkod': 'MI0201', 'referenstyp': 'Rapport', 'referenstypkod': 'R'}, {'namn': 'DPA (C22:5)', 'euroFIRkod': 'F22:5', 'forkortning': 'C22:5', 'varde': 0.0, 'enhet': 'g', 'viktGram': 100, 'berakning': '0,956*67,8*(0,000+0,000)/100,0', 'vardetyp': 'Bästa skattning', 'vardetypkod': 'BE', 'ursprung': 'Värde framtaget med eget system', 'ursprungkod': 'S', 'publikation': 'SLV - Riktlinjer för livsmedel', 'metodtyp': 'Beräknad, omräkningsfaktor inkluderad', 'metodtypkod': 'T', 'metodindikator': 'Fettsyror beräknade från fettsyraprofil %', 'metodindikatorkod': 'MI0201', 'referenstyp': 'Rapport', 'referenstypkod': 'R'}, {'namn': 'EPA (C20:5)', 'euroFIRkod': 'F20:5', 'forkortning': 'C20:5', 'varde': 0.0, 'enhet': 'g', 'viktGram': 100, 'berakning': '0,956*67,8*(0,000)/100,0', 'vardetyp': 'Bästa skattning', 'vardetypkod': 'BE', 'ursprung': 'Värde framtaget med eget system', 'ursprungkod': 'S', 'publikation': 'SLV - Riktlinjer för livsmedel', 'metodtyp': 'Beräknad, omräkningsfaktor inkluderad', 'metodtypkod': 'T', 'metodindikator': 'Fettsyror beräknade från fettsyraprofil %', 'metodindikatorkod': 'MI0201', 'referenstyp': 'Rapport', 'referenstypkod': 'R'}, {'namn': 'Arakidonsyra C20:4', 'euroFIRkod': 'F20:4', 'forkortning': 'C20:4', 'varde': 0.0, 'enhet': 'g', 'viktGram': 100, 'berakning': '0,956*67,8*(0,000+0,000)/100,0', 'vardetyp': 'Bästa skattning', 'vardetypkod': 'BE', 'ursprung': 'Värde framtaget med eget system', 'ursprungkod': 'S', 'publikation': 'SLV - Riktlinjer för livsmedel', 'metodtyp': 'Beräknad, omräkningsfaktor inkluderad', 'metodtypkod': 'T', 'metodindikator': 'Fettsyror beräknade från fettsyraprofil %', 'metodindikatorkod': 'MI0201', 'referenstyp': 'Rapport', 'referenstypkod': 'R'}, {'namn': 'Arakidinsyra C20:0', 'euroFIRkod': 'F20:0', 'forkortning': 'C20:0', 'varde': 0.1, 'enhet': 'g', 'viktGram': 100, 'berakning': '0,956*67,8*0,200/100,0', 'vardetyp': 'Bästa skattning', 'vardetypkod': 'BE', 'ursprung': 'Värde framtaget med eget system', 'ursprungkod': 'S', 'publikation': 'SLV - Riktlinjer för livsmedel', 'metodtyp': 'Beräknad, omräkningsfaktor inkluderad', 'metodtypkod': 'T', 'metodindikator': 'Fettsyror beräknade från fettsyraprofil %', 'metodindikatorkod': 'MI0201', 'referenstyp': 'Rapport', 'referenstypkod': 'R'}, {'namn': 'Linolensyra C18:3', 'euroFIRkod': 'F18:3', 'forkortning': 'C18:3', 'varde': 0.0, 'enhet': 'g', 'viktGram': 100, 'berakning': '0,956*67,8*(0,000+0,000+0,000)/100,0', 'vardetyp': 'Bästa skattning', 'vardetypkod': 'BE', 'ursprung': 'Värde framtaget med eget system', 'ursprungkod': 'S', 'publikation': 'SLV - Riktlinjer för livsmedel', 'metodtyp': 'Beräknad, omräkningsfaktor inkluderad', 'metodtypkod': 'T', 'metodindikator': 'Fettsyror beräknade från fettsyraprofil %', 'metodindikatorkod': 'MI0201', 'referenstyp': 'Rapport', 'referenstypkod': 'R'}, {'namn': 'Linolsyra C18:2', 'euroFIRkod': 'F18:2', 'forkortning': 'C18:2', 'varde': 29.2, 'enhet': 'g', 'viktGram': 100, 'berakning': '0,956*67,8*45,000/100,0', 'vardetyp': 'Bästa skattning', 'vardetypkod': 'BE', 'ursprung': 'Värde framtaget med eget system', 'ursprungkod': 'S', 'publikation': 'SLV - Riktlinjer för livsmedel', 'metodtyp': 'Beräknad, omräkningsfaktor inkluderad', 'metodtypkod': 'T', 'metodindikator': 'Fettsyror beräknade från fettsyraprofil %', 'metodindikatorkod': 'MI0201', 'referenstyp': 'Rapport', 'referenstypkod': 'R'}, {'namn': 'Oljesyra C18:1', 'euroFIRkod': 'F18:1', 'forkortning': 'C18:1', 'varde': 19.9, 'enhet': 'g', 'viktGram': 100, 'berakning': '0,956*67,8*30,700/100,0', 'vardetyp': 'Bästa skattning', 'vardetypkod': 'BE', 'ursprung': 'Värde framtaget med eget system', 'ursprungkod': 'S', 'publikation': 'SLV - Riktlinjer för livsmedel', 'metodtyp': 'Beräknad, omräkningsfaktor inkluderad', 'metodtypkod': 'T', 'metodindikator': 'Fettsyror beräknade från fettsyraprofil %', 'metodindikatorkod': 'MI0201', 'referenstyp': 'Rapport', 'referenstypkod': 'R'}, {'namn': 'Stearinsyra C18:0', 'euroFIRkod': 'F18:0', 'forkortning': 'C18:0', 'varde': 6.0, 'enhet': 'g', 'viktGram': 100, 'berakning': '0,956*67,8*9,300/100,0', 'vardetyp': 'Bästa skattning', 'vardetypkod': 'BE', 'ursprung': 'Värde framtaget med eget system', 'ursprungkod': 'S', 'publikation': 'SLV - Riktlinjer för livsmedel', 'metodtyp': 'Beräknad, omräkningsfaktor inkluderad', 'metodtypkod': 'T', 'metodindikator': 'Fettsyror beräknade från fettsyraprofil %', 'metodindikatorkod': 'MI0201', 'referenstyp': 'Rapport', 'referenstypkod': 'R'}, {'namn': 'Palmitoljesyra C16:1', 'euroFIRkod': 'F16:1', 'forkortning': 'C16:1', 'varde': 0.2, 'enhet': 'g', 'viktGram': 100, 'berakning': '0,956*67,8*0,300/100,0', 'vardetyp': 'Bästa skattning', 'vardetypkod': 'BE', 'ursprung': 'Värde framtaget med eget system', 'ursprungkod': 'S', 'publikation': 'SLV - Riktlinjer för livsmedel', 'metodtyp': 'Beräknad, omräkningsfaktor inkluderad', 'metodtypkod': 'T', 'metodindikator': 'Fettsyror beräknade från fettsyraprofil %', 'metodindikatorkod': 'MI0201', 'referenstyp': 'Rapport', 'referenstypkod': 'R'}, {'namn': 'Palmitinsyra C16:0', 'euroFIRkod': 'F16:0', 'forkortning': 'C16:0', 'varde': 9.2, 'enhet': 'g', 'viktGram': 100, 'berakning': '0,956*67,8*14,200/100,0', 'vardetyp': 'Bästa skattning', 'vardetypkod': 'BE', 'ursprung': 'Värde framtaget med eget system', 'ursprungkod': 'S', 'publikation': 'SLV - Riktlinjer för livsmedel', 'metodtyp': 'Beräknad, omräkningsfaktor inkluderad', 'metodtypkod': 'T', 'metodindikator': 'Fettsyror beräknade från fettsyraprofil %', 'metodindikatorkod': 'MI0201', 'referenstyp': 'Rapport', 'referenstypkod': 'R'}, {'namn': 'Myristinsyra C14:0', 'euroFIRkod': 'F14:0', 'forkortning': 'C14:0', 'varde': 0.0, 'enhet': 'g', 'viktGram': 100, 'berakning': '0,956*67,8*0,000/100,0', 'vardetyp': 'Bästa skattning', 'vardetypkod': 'BE', 'ursprung': 'Värde framtaget med eget system', 'ursprungkod': 'S', 'publikation': 'SLV - Riktlinjer för livsmedel', 'metodtyp': 'Beräknad, omräkningsfaktor inkluderad', 'metodtypkod': 'T', 'metodindikator': 'Fettsyror beräknade från fettsyraprofil %', 'metodindikatorkod': 'MI0201', 'referenstyp': 'Rapport', 'referenstypkod': 'R'}, {'namn': 'Laurinsyra C12:0', 'euroFIRkod': 'F12:0', 'forkortning': 'C12:0', 'varde': 0.0, 'enhet': 'g', 'viktGram': 100, 'berakning': '0,956*67,8*0,000/100,0', 'vardetyp': 'Bästa skattning', 'vardetypkod': 'BE', 'ursprung': 'Värde framtaget med eget system', 'ursprungkod': 'S', 'publikation': 'SLV - Riktlinjer för livsmedel', 'metodtyp': 'Beräknad, omräkningsfaktor inkluderad', 'metodtypkod': 'T', 'metodindikator': 'Fettsyror beräknade från fettsyraprofil %', 'metodindikatorkod': 'MI0201', 'referenstyp': 'Rapport', 'referenstypkod': 'R'}, {'namn': 'Betakaroten/β-Karoten', 'euroFIRkod': 'CARTB', 'forkortning': 'b-Kar', 'varde': 5, 'enhet': 'µg', 'viktGram': 100, 'vardetyp': 'Ett analysvärde av sammansatt prov', 'vardetypkod': 'AV', 'ursprung': 'Analys SLV', 'ursprungkod': 'O', 'publikation': 'Analysprotokoll Dnr 2018/00798', 'metodtyp': 'Analysresultat', 'metodtypkod': 'A', 'metodindikator': 'HPLC-DAD karotenoider', 'metodindikatorkod': 'MI1137', 'referenstyp': 'Rapport', 'referenstypkod': 'R'}, {'namn': 'Avfall (skal etc.)', 'euroFIRkod': 'WASTE', 'forkortning': 'Avfa', 'varde': 52, 'enhet': '%', 'viktGram': 100, 'vardetyp': 'Bästa skattning', 'vardetypkod': 'BE', 'ursprung': 'Livsmedelstabell', 'ursprungkod': 'F', 'publikation': 'SLV livsmedelstabell energi och näringsämnen 2002', 'metodtyp': 'Skattat värde', 'metodtypkod': 'IG', 'referenstyp': 'Rapport', 'referenstypkod': 'R'}, {'namn': 'Aska', 'euroFIRkod': 'ASH', 'forkortning': 'Aska', 'varde': 3.8, 'enhet': 'g', 'viktGram': 100, 'vardetyp': 'Ett analysvärde av sammansatt prov', 'vardetypkod': 'AV', 'ursprung': 'Analys, oberoende labb', 'ursprungkod': 'D', 'publikation': 'Analysprotokoll Dnr 2018/00798', 'metodtyp': 'Analysresultat', 'metodtypkod': 'A', 'metodindikator': 'Gravimetrisk metod'}, {'namn': 'Alkohol', 'euroFIRkod': 'ALC', 'forkortning': 'Alko', 'varde': 0.0, 'enhet': 'g', 'viktGram': 100, 'vardetyp': 'Logisk nolla', 'vardetypkod': 'LZ', 'ursprung': 'Annat ursprung', 'ursprungkod': 'E', 'publikation': 'SLV - Riktlinjer för livsmedel', 'metodtyp': 'Skattat logisk slutledning', 'metodtypkod': 'U'}]\n" - ] - }, - { - "data": { - "text/plain": [ - "[{'namn': 'Zink, Zn',\n", - " 'euroFIRkod': 'ZN',\n", - " 'forkortning': 'Zn',\n", - " 'varde': 3.8,\n", - " 'enhet': 'mg',\n", - " 'viktGram': 100,\n", - " 'vardetyp': 'Ett analysvärde av sammansatt prov',\n", - " 'vardetypkod': 'AV',\n", - " 'ursprung': 'Analys SLV',\n", - " 'ursprungkod': 'O',\n", - " 'publikation': 'Analysprotokoll Dnr 2018/00798',\n", - " 'metodtyp': 'Analysresultat',\n", - " 'metodtypkod': 'A',\n", - " 'metodindikator': 'ICP-MS',\n", - " 'metodindikatorkod': 'MI1209',\n", - " 'referenstyp': 'Rapport',\n", - " 'referenstypkod': 'R'},\n", - " {'namn': 'Vitamin E',\n", - " 'euroFIRkod': 'VITE',\n", - " 'forkortning': 'VitE',\n", - " 'varde': 6.1,\n", - " 'enhet': 'mg',\n", - " 'viktGram': 100,\n", - " 'berakning': '6,130',\n", - " 'vardetyp': 'Bästa skattning',\n", - " 'vardetypkod': 'BE',\n", - " 'ursprung': 'Värde framtaget med eget system',\n", - " 'ursprungkod': 'S',\n", - " 'publikation': 'SLV - Riktlinjer för livsmedel',\n", - " 'metodtyp': 'Summering av beståndsdelar',\n", - " 'metodtypkod': 'S',\n", - " 'metodindikator': 'Vit E från alfatokoferol',\n", - " 'metodindikatorkod': 'MI0368',\n", - " 'referenstyp': 'Rapport',\n", - " 'referenstypkod': 'R'},\n", - " {'namn': 'Vitamin D',\n", - " 'euroFIRkod': 'VITD',\n", - " 'forkortning': 'VitD',\n", - " 'varde': 0.0,\n", - " 'enhet': 'µg',\n", - " 'viktGram': 100,\n", - " 'berakning': '0,000+0,000',\n", - " 'vardetyp': 'Bästa skattning',\n", - " 'vardetypkod': 'BE',\n", - " 'ursprung': 'Värde framtaget med eget system',\n", - " 'ursprungkod': 'S',\n", - " 'publikation': 'SLV - Riktlinjer för livsmedel',\n", - " 'metodtyp': 'Summering av beståndsdelar',\n", - " 'metodtypkod': 'S',\n", - " 'metodindikator': 'Vit D från D2 och D3',\n", - " 'metodindikatorkod': 'MI0351',\n", - " 'referenstyp': 'Rapport',\n", - " 'referenstypkod': 'R'},\n", - " {'namn': 'Vitamin C',\n", - " 'euroFIRkod': 'VITC',\n", - " 'forkortning': 'VitC',\n", - " 'varde': 0.0,\n", - " 'enhet': 'mg',\n", - " 'viktGram': 100,\n", - " 'vardetyp': 'Bästa skattning',\n", - " 'vardetypkod': 'BE',\n", - " 'ursprung': 'Livsmedelstabell',\n", - " 'ursprungkod': 'F',\n", - " 'publikation': \"McCance and Widdowson's composition of foods integrated dataset 2019\",\n", - " 'metodtyp': 'Allmän analys',\n", - " 'metodtypkod': 'AG',\n", - " 'referenstyp': 'Rapport',\n", - " 'referenstypkod': 'R',\n", - " 'kommentar': 'Food Code 14-871'},\n", - " {'namn': 'Vitamin B6',\n", - " 'euroFIRkod': 'VITB6',\n", - " 'forkortning': 'VitB6',\n", - " 'varde': 0.33,\n", - " 'enhet': 'mg',\n", - " 'viktGram': 100,\n", - " 'vardetyp': 'Ett analysvärde av sammansatt prov',\n", - " 'vardetypkod': 'AV',\n", - " 'ursprung': 'Analys SLV',\n", - " 'ursprungkod': 'O',\n", - " 'publikation': 'Analysprotokoll Dnr 2018/00798',\n", - " 'metodtyp': 'Analysresultat',\n", - " 'metodtypkod': 'A',\n", - " 'metodindikator': 'HPLC-FLD tiamin, riboflavin, vitamin B6, vitamin C',\n", - " 'referenstyp': 'Rapport',\n", - " 'referenstypkod': 'R'},\n", - " {'namn': 'Vitamin B12',\n", - " 'euroFIRkod': 'VITB12',\n", - " 'forkortning': 'VitB12',\n", - " 'varde': 0.0,\n", - " 'enhet': 'µg',\n", - " 'viktGram': 100,\n", - " 'vardetyp': 'Logisk nolla',\n", - " 'vardetypkod': 'LZ',\n", - " 'ursprung': 'Annat ursprung',\n", - " 'ursprungkod': 'E',\n", - " 'publikation': 'SLV - Riktlinjer för livsmedel',\n", - " 'metodtyp': 'Skattat logisk slutledning',\n", - " 'metodtypkod': 'U',\n", - " 'referenstyp': 'Rapport',\n", - " 'referenstypkod': 'R'},\n", - " {'namn': 'Vitamin A',\n", - " 'euroFIRkod': 'VITA',\n", - " 'forkortning': 'VitA',\n", - " 'varde': 0.6,\n", - " 'enhet': 'RE/µg',\n", - " 'viktGram': 100,\n", - " 'berakning': '0,000+5,400/12+(2,300+0,000)/24,0',\n", - " 'vardetyp': 'Bästa skattning',\n", - " 'vardetypkod': 'BE',\n", - " 'ursprung': 'Värde framtaget med eget system',\n", - " 'ursprungkod': 'S',\n", - " 'publikation': 'SLV - Riktlinjer för livsmedel',\n", - " 'metodtyp': 'Beräknad, omräkningsfaktor inkluderad',\n", - " 'metodtypkod': 'T',\n", - " 'metodindikator': 'Vitamin A aktivitet (RAE)',\n", - " 'metodindikatorkod': 'MI0324',\n", - " 'referenstyp': 'Rapport',\n", - " 'referenstypkod': 'R'},\n", - " {'namn': 'Vatten',\n", - " 'euroFIRkod': 'WATER',\n", - " 'forkortning': 'Vatt',\n", - " 'varde': 1.8,\n", - " 'enhet': 'g',\n", - " 'viktGram': 100,\n", - " 'vardetyp': 'Ett analysvärde av sammansatt prov',\n", - " 'vardetypkod': 'AV',\n", - " 'ursprung': 'Analys, oberoende labb',\n", - " 'ursprungkod': 'D',\n", - " 'publikation': 'Analysprotokoll Dnr 2018/00798',\n", - " 'metodtyp': 'Analysresultat',\n", - " 'metodtypkod': 'A',\n", - " 'metodindikator': 'Gravimetrisk metod'},\n", - " {'namn': 'Tiamin',\n", - " 'euroFIRkod': 'THIA',\n", - " 'forkortning': 'Tiam',\n", - " 'varde': 0.73,\n", - " 'enhet': 'mg',\n", - " 'viktGram': 100,\n", - " 'vardetyp': 'Ett analysvärde av sammansatt prov',\n", - " 'vardetypkod': 'AV',\n", - " 'ursprung': 'Analys SLV',\n", - " 'ursprungkod': 'O',\n", - " 'publikation': 'Analysprotokoll Dnr 2018/00798',\n", - " 'metodtyp': 'Analysresultat',\n", - " 'metodtypkod': 'A',\n", - " 'metodindikator': 'HPLC-FLD tiamin, riboflavin, vitamin B6, vitamin C',\n", - " 'referenstyp': 'Rapport',\n", - " 'referenstypkod': 'R'},\n", - " {'namn': 'Tillsatt socker',\n", - " 'euroFIRkod': 'SUGAD',\n", - " 'forkortning': 'Socker/t',\n", - " 'varde': 0,\n", - " 'enhet': 'g',\n", - " 'viktGram': 100,\n", - " 'vardetyp': 'Logisk nolla',\n", - " 'vardetypkod': 'LZ',\n", - " 'ursprung': 'Värde framtaget med eget system',\n", - " 'ursprungkod': 'S',\n", - " 'publikation': 'SLV - Riktlinjer för livsmedel',\n", - " 'metodtyp': 'Skattat logisk slutledning',\n", - " 'metodtypkod': 'U',\n", - " 'referenstyp': 'Rapport',\n", - " 'referenstypkod': 'R'},\n", - " {'namn': 'Fritt socker',\n", - " 'euroFIRkod': 'SUGFR',\n", - " 'forkortning': 'Socker/f',\n", - " 'varde': 0,\n", - " 'enhet': 'g',\n", - " 'viktGram': 100,\n", - " 'vardetyp': 'Logisk nolla',\n", - " 'vardetypkod': 'LZ',\n", - " 'ursprung': 'Värde framtaget med eget system',\n", - " 'ursprungkod': 'S',\n", - " 'publikation': 'SLV - Riktlinjer för livsmedel',\n", - " 'metodtyp': 'Skattat logisk slutledning',\n", - " 'metodtypkod': 'U',\n", - " 'referenstyp': 'Rapport',\n", - " 'referenstypkod': 'R'},\n", - " {'namn': 'Selen, Se',\n", - " 'euroFIRkod': 'SE',\n", - " 'forkortning': 'Se',\n", - " 'varde': 225.0,\n", - " 'enhet': 'µg',\n", - " 'viktGram': 100,\n", - " 'vardetyp': 'Ett analysvärde av sammansatt prov',\n", - " 'vardetypkod': 'AV',\n", - " 'ursprung': 'Analys, oberoende labb',\n", - " 'ursprungkod': 'D',\n", - " 'publikation': 'Analysprotokoll Dnr 2018/00798',\n", - " 'metodtyp': 'Analysresultat',\n", - " 'metodtypkod': 'A',\n", - " 'metodindikator': 'ICP-SFMS, mineraler',\n", - " 'metodindikatorkod': '',\n", - " 'referenstyp': 'Rapport',\n", - " 'referenstypkod': 'R'},\n", - " {'namn': 'Sackaros',\n", - " 'euroFIRkod': 'SUCS',\n", - " 'forkortning': 'Sack',\n", - " 'varde': 1.8,\n", - " 'enhet': 'g',\n", - " 'viktGram': 100,\n", - " 'vardetyp': 'Ett analysvärde av sammansatt prov',\n", - " 'vardetypkod': 'AV',\n", - " 'ursprung': 'Analys, oberoende labb',\n", - " 'ursprungkod': 'D',\n", - " 'publikation': 'Analysprotokoll Dnr 2018/00798',\n", - " 'metodtyp': 'Analysresultat',\n", - " 'metodtypkod': 'A',\n", - " 'metodindikator': 'Kromatografi',\n", - " 'metodindikatorkod': 'MI1144',\n", - " 'referenstyp': 'Rapport',\n", - " 'referenstypkod': 'R'},\n", - " {'namn': 'Riboflavin',\n", - " 'euroFIRkod': 'RIBF',\n", - " 'forkortning': 'Ribo',\n", - " 'varde': 0.0,\n", - " 'enhet': 'mg',\n", - " 'viktGram': 100,\n", - " 'vardetyp': 'Spår',\n", - " 'vardetypkod': 'TR',\n", - " 'ursprung': 'Analys SLV',\n", - " 'ursprungkod': 'O',\n", - " 'publikation': 'Analysprotokoll Dnr 2018/00798',\n", - " 'metodtyp': 'Analysresultat',\n", - " 'metodtypkod': 'A',\n", - " 'metodindikator': 'HPLC-FLD tiamin, riboflavin, vitamin B6, vitamin C',\n", - " 'referenstyp': 'Rapport',\n", - " 'referenstypkod': 'R'},\n", - " {'namn': 'Retinol',\n", - " 'euroFIRkod': 'RETOL',\n", - " 'forkortning': 'Reti',\n", - " 'varde': 0.0,\n", - " 'enhet': 'µg',\n", - " 'viktGram': 100,\n", - " 'berakning': '0,000',\n", - " 'vardetyp': 'Bästa skattning',\n", - " 'vardetypkod': 'BE',\n", - " 'ursprung': 'Värde framtaget med eget system',\n", - " 'ursprungkod': 'S',\n", - " 'publikation': 'SLV - Riktlinjer för livsmedel',\n", - " 'metodtyp': 'Summering av beståndsdelar',\n", - " 'metodtypkod': 'S',\n", - " 'metodindikator': 'Retinol beräknat enbart från transretinol',\n", - " 'metodindikatorkod': '',\n", - " 'referenstyp': 'Rapport',\n", - " 'referenstypkod': 'R'},\n", - " {'namn': 'Protein',\n", - " 'euroFIRkod': 'PROT',\n", - " 'forkortning': 'Prot',\n", - " 'varde': 14.2,\n", - " 'enhet': 'g',\n", - " 'viktGram': 100,\n", - " 'berakning': '2,600*5,46',\n", - " 'vardetyp': 'Bästa skattning',\n", - " 'vardetypkod': 'BE',\n", - " 'ursprung': 'Värde framtaget med eget system',\n", - " 'ursprungkod': 'S',\n", - " 'publikation': 'SLV - Riktlinjer för livsmedel',\n", - " 'metodtyp': 'Beräknad, omräkningsfaktor inkluderad',\n", - " 'metodtypkod': 'T',\n", - " 'metodindikator': 'Protein beräknat från proteinkväve',\n", - " 'metodindikatorkod': 'MI0122',\n", - " 'referenstyp': 'Rapport',\n", - " 'referenstypkod': 'R'},\n", - " {'namn': 'Summa fleromättade fettsyror',\n", - " 'euroFIRkod': 'FAPU',\n", - " 'forkortning': 'Pole',\n", - " 'varde': 29.2,\n", - " 'enhet': 'g',\n", - " 'viktGram': 100,\n", - " 'berakning': '0,956*67,8*(0,000+0,000+0,000+45,000+0,000+0,000+0,000+0,000+0,000+0,000+0,000+0,000+0,000+0,000+0,000+0,000+0,000+0,000+0,000+0,000+0,000)/100,0',\n", - " 'vardetyp': 'Bästa skattning',\n", - " 'vardetypkod': 'BE',\n", - " 'ursprung': 'Värde framtaget med eget system',\n", - " 'ursprungkod': 'S',\n", - " 'publikation': 'SLV - Riktlinjer för livsmedel',\n", - " 'metodtyp': 'Beräknad, omräkningsfaktor inkluderad',\n", - " 'metodtypkod': 'T',\n", - " 'metodindikator': 'Fettsyror beräknade från fettsyraprofil %',\n", - " 'metodindikatorkod': 'MI0201',\n", - " 'referenstyp': 'Rapport',\n", - " 'referenstypkod': 'R'},\n", - " {'namn': 'Fosfor, P',\n", - " 'euroFIRkod': 'P',\n", - " 'forkortning': 'P',\n", - " 'varde': 723,\n", - " 'enhet': 'mg',\n", - " 'viktGram': 100,\n", - " 'vardetyp': 'Ett analysvärde av sammansatt prov',\n", - " 'vardetypkod': 'AV',\n", - " 'ursprung': 'Analys, oberoende labb',\n", - " 'ursprungkod': 'D',\n", - " 'publikation': 'Analysprotokoll Dnr 2018/00798',\n", - " 'metodtyp': 'Analysresultat',\n", - " 'metodtypkod': 'A',\n", - " 'metodindikator': 'ICP-SFMS, mineraler',\n", - " 'metodindikatorkod': '',\n", - " 'referenstyp': 'Rapport',\n", - " 'referenstypkod': 'R'},\n", - " {'namn': 'Niacinekvivalenter',\n", - " 'euroFIRkod': 'NIAEQ',\n", - " 'forkortning': 'Niek',\n", - " 'varde': 2.9,\n", - " 'enhet': 'NE/mg',\n", - " 'viktGram': 100,\n", - " 'berakning': '0,484+14,20*10,0*1/60,0',\n", - " 'vardetyp': 'Bästa skattning',\n", - " 'vardetypkod': 'BE',\n", - " 'ursprung': 'Värde framtaget med eget system',\n", - " 'ursprungkod': 'S',\n", - " 'publikation': 'SLV - Riktlinjer för livsmedel',\n", - " 'metodtyp': 'Beräknad, omräkningsfaktor inkluderad',\n", - " 'metodtypkod': 'T',\n", - " 'metodindikator': 'Niacinekvivalenter',\n", - " 'metodindikatorkod': 'MI0421',\n", - " 'referenstyp': 'Rapport',\n", - " 'referenstypkod': 'R'},\n", - " {'namn': 'Niacin',\n", - " 'euroFIRkod': 'NIA',\n", - " 'forkortning': 'Niac',\n", - " 'varde': 0.48,\n", - " 'enhet': 'mg',\n", - " 'viktGram': 100,\n", - " 'vardetyp': 'Ett analysvärde av sammansatt prov',\n", - " 'vardetypkod': 'AV',\n", - " 'ursprung': 'Analys SLV',\n", - " 'ursprungkod': 'O',\n", - " 'publikation': 'Analysprotokoll Dnr 2018/00798',\n", - " 'metodtyp': 'Analysresultat',\n", - " 'metodtypkod': 'A',\n", - " 'metodindikator': 'Lactobacillus plantarum, niacin',\n", - " 'metodindikatorkod': '',\n", - " 'referenstyp': 'Rapport',\n", - " 'referenstypkod': 'R'},\n", - " {'namn': 'Salt, NaCl',\n", - " 'euroFIRkod': 'NACL',\n", - " 'forkortning': 'NaCl',\n", - " 'varde': 0.0,\n", - " 'enhet': 'g',\n", - " 'viktGram': 100,\n", - " 'berakning': '0,000*2,5/1000,0',\n", - " 'vardetyp': 'Bästa skattning',\n", - " 'vardetypkod': 'BE',\n", - " 'ursprung': 'Värde framtaget med eget system',\n", - " 'ursprungkod': 'S',\n", - " 'publikation': 'SLV - Riktlinjer för livsmedel',\n", - " 'metodtyp': 'Beräknad, omräkningsfaktor inkluderad',\n", - " 'metodtypkod': 'T',\n", - " 'metodindikator': 'Salt beräknat från natrium (totalt)',\n", - " 'metodindikatorkod': 'MI0120',\n", - " 'referenstyp': 'Rapport',\n", - " 'referenstypkod': 'R'},\n", - " {'namn': 'Natrium, Na',\n", - " 'euroFIRkod': 'NA',\n", - " 'forkortning': 'Na',\n", - " 'varde': 0,\n", - " 'enhet': 'mg',\n", - " 'viktGram': 100,\n", - " 'vardetyp': 'Spår',\n", - " 'vardetypkod': 'TR',\n", - " 'ursprung': 'Analys, oberoende labb',\n", - " 'ursprungkod': 'D',\n", - " 'publikation': 'Analysprotokoll Dnr 2018/00798',\n", - " 'metodtyp': 'Analysresultat',\n", - " 'metodtypkod': 'A',\n", - " 'metodindikator': 'ICP-SFMS, mineraler',\n", - " 'metodindikatorkod': '',\n", - " 'referenstyp': 'Rapport',\n", - " 'referenstypkod': 'R'},\n", - " {'namn': 'Monosackarider',\n", - " 'euroFIRkod': 'MNSAC',\n", - " 'forkortning': 'Msac',\n", - " 'varde': 0.0,\n", - " 'enhet': 'g',\n", - " 'viktGram': 100,\n", - " 'berakning': '0,000+0,000',\n", - " 'vardetyp': 'Bästa skattning',\n", - " 'vardetypkod': 'BE',\n", - " 'ursprung': 'Värde framtaget med eget system',\n", - " 'ursprungkod': 'S',\n", - " 'publikation': 'SLV - Riktlinjer för livsmedel',\n", - " 'metodtyp': 'Summering av beståndsdelar',\n", - " 'metodtypkod': 'S',\n", - " 'metodindikator': 'Monosackarider beräknade som summan av glukos och fruktos',\n", - " 'metodindikatorkod': '',\n", - " 'referenstyp': 'Rapport',\n", - " 'referenstypkod': 'R'},\n", - " {'namn': 'Sockerarter, totalt',\n", - " 'euroFIRkod': 'SUGAR',\n", - " 'forkortning': 'Mono/disack',\n", - " 'varde': 1.8,\n", - " 'enhet': 'g',\n", - " 'viktGram': 100,\n", - " 'berakning': '0,000+0,000+1,800+0,000+0,000',\n", - " 'vardetyp': 'Bästa skattning',\n", - " 'vardetypkod': 'BE',\n", - " 'ursprung': 'Värde framtaget med eget system',\n", - " 'ursprungkod': 'S',\n", - " 'publikation': 'SLV - Riktlinjer för livsmedel',\n", - " 'metodtyp': 'Summering av beståndsdelar',\n", - " 'metodtypkod': 'S',\n", - " 'metodindikator': 'Summa sockerarter beräknade som summan av glukos, fruktos, laktos, maltos och sackaros',\n", - " 'metodindikatorkod': 'MI0153',\n", - " 'referenstyp': 'Rapport',\n", - " 'referenstypkod': 'R'},\n", - " {'namn': 'Summa enkelomättade fettsyror',\n", - " 'euroFIRkod': 'FAMS',\n", - " 'forkortning': 'Mone',\n", - " 'varde': 20.1,\n", - " 'enhet': 'g',\n", - " 'viktGram': 100,\n", - " 'berakning': '0,956*67,8*(0,000+0,000+0,300+0,000+30,700+0,000+0,000+0,000)/100,0',\n", - " 'vardetyp': 'Bästa skattning',\n", - " 'vardetypkod': 'BE',\n", - " 'ursprung': 'Värde framtaget med eget system',\n", - " 'ursprungkod': 'S',\n", - " 'publikation': 'SLV - Riktlinjer för livsmedel',\n", - " 'metodtyp': 'Beräknad, omräkningsfaktor inkluderad',\n", - " 'metodtypkod': 'T',\n", - " 'metodindikator': 'Fettsyror beräknade från fettsyraprofil %',\n", - " 'metodindikatorkod': 'MI0201',\n", - " 'referenstyp': 'Rapport',\n", - " 'referenstypkod': 'R'},\n", - " {'namn': 'Magnesium, Mg',\n", - " 'euroFIRkod': 'MG',\n", - " 'forkortning': 'Mg',\n", - " 'varde': 400,\n", - " 'enhet': 'mg',\n", - " 'viktGram': 100,\n", - " 'vardetyp': 'Ett analysvärde av sammansatt prov',\n", - " 'vardetypkod': 'AV',\n", - " 'ursprung': 'Analys, oberoende labb',\n", - " 'ursprungkod': 'D',\n", - " 'publikation': 'Analysprotokoll Dnr 2018/00798',\n", - " 'metodtyp': 'Analysresultat',\n", - " 'metodtypkod': 'A',\n", - " 'metodindikator': 'ICP-SFMS, mineraler',\n", - " 'metodindikatorkod': '',\n", - " 'referenstyp': 'Rapport',\n", - " 'referenstypkod': 'R'},\n", - " {'namn': 'Summa mättade fettsyror',\n", - " 'euroFIRkod': 'FASAT',\n", - " 'forkortning': 'Mfet',\n", - " 'varde': 15.4,\n", - " 'enhet': 'g',\n", - " 'viktGram': 100,\n", - " 'berakning': '0,956*67,8*(0,000+0,000+0,000+0,000+0,000+0,000+0,000+0,000+0,000+0,000+0,000+0,000+14,200+0,000+0,000+0,000+0,000+0,000+9,300+0,200+0,000+0,00+0,000)/100,0',\n", - " 'vardetyp': 'Bästa skattning',\n", - " 'vardetypkod': 'BE',\n", - " 'ursprung': 'Värde framtaget med eget system',\n", - " 'ursprungkod': 'S',\n", - " 'publikation': 'SLV - Riktlinjer för livsmedel',\n", - " 'metodtyp': 'Beräknad, omräkningsfaktor inkluderad',\n", - " 'metodtypkod': 'T',\n", - " 'metodindikator': 'Fettsyror beräknade från fettsyraprofil %',\n", - " 'metodindikatorkod': 'MI0201',\n", - " 'referenstyp': 'Rapport',\n", - " 'referenstypkod': 'R'},\n", - " {'namn': 'Kolhydrater, tillgängliga',\n", - " 'euroFIRkod': 'CHO',\n", - " 'forkortning': 'Kolh',\n", - " 'varde': 0.0,\n", - " 'enhet': 'g',\n", - " 'viktGram': 100,\n", - " 'berakning': '100,0-(1,770+3,760+14,20+67,8+13,7+0,000)',\n", - " 'vardetyp': 'Bästa skattning',\n", - " 'vardetypkod': 'BE',\n", - " 'ursprung': 'Värde framtaget med eget system',\n", - " 'ursprungkod': 'S',\n", - " 'publikation': 'SLV - Riktlinjer för livsmedel',\n", - " 'metodtyp': 'Summering av beståndsdelar',\n", - " 'metodtypkod': 'S',\n", - " 'metodindikator': 'Kolhydrater, tillgängliga beräknat som rest',\n", - " 'metodindikatorkod': 'MI0183',\n", - " 'referenstyp': 'Rapport',\n", - " 'referenstypkod': 'R'},\n", - " {'namn': 'Kolesterol',\n", - " 'euroFIRkod': 'CHORL',\n", - " 'forkortning': 'Kole',\n", - " 'varde': 0.0,\n", - " 'enhet': 'mg',\n", - " 'viktGram': 100,\n", - " 'vardetyp': 'Logisk nolla',\n", - " 'vardetypkod': 'LZ',\n", - " 'ursprung': 'Annat ursprung',\n", - " 'ursprungkod': 'E',\n", - " 'publikation': 'SLV - Riktlinjer för livsmedel',\n", - " 'metodtyp': 'Skattat logisk slutledning',\n", - " 'metodtypkod': 'U'},\n", - " {'namn': 'Kalium, K',\n", - " 'euroFIRkod': 'K',\n", - " 'forkortning': 'K',\n", - " 'varde': 623,\n", - " 'enhet': 'mg',\n", - " 'viktGram': 100,\n", - " 'vardetyp': 'Ett analysvärde av sammansatt prov',\n", - " 'vardetypkod': 'AV',\n", - " 'ursprung': 'Analys, oberoende labb',\n", - " 'ursprungkod': 'D',\n", - " 'publikation': 'Analysprotokoll Dnr 2018/00798',\n", - " 'metodtyp': 'Analysresultat',\n", - " 'metodtypkod': 'A',\n", - " 'metodindikator': 'ICP-SFMS, mineraler',\n", - " 'metodindikatorkod': '',\n", - " 'referenstyp': 'Rapport',\n", - " 'referenstypkod': 'R'},\n", - " {'namn': 'Jod, I',\n", - " 'euroFIRkod': 'ID',\n", - " 'forkortning': 'I',\n", - " 'varde': 0.0,\n", - " 'enhet': 'µg',\n", - " 'viktGram': 100,\n", - " 'vardetyp': 'Spår',\n", - " 'vardetypkod': 'TR',\n", - " 'ursprung': 'Analys, oberoende labb',\n", - " 'ursprungkod': 'D',\n", - " 'publikation': 'Analysprotokoll Dnr 2018/00798',\n", - " 'metodtyp': 'Analysresultat',\n", - " 'metodtypkod': 'A',\n", - " 'metodindikator': 'ICP-SFMS, mineraler',\n", - " 'metodindikatorkod': '',\n", - " 'referenstyp': 'Rapport',\n", - " 'referenstypkod': 'R'},\n", - " {'namn': 'Fullkorn totalt',\n", - " 'euroFIRkod': 'WHOLET',\n", - " 'forkortning': 'Fullk/tot',\n", - " 'varde': 0,\n", - " 'enhet': 'g',\n", - " 'viktGram': 100,\n", - " 'berakning': '0,000+0,000+0,000+0,000+0,000',\n", - " 'vardetyp': 'Bästa skattning',\n", - " 'vardetypkod': 'BE',\n", - " 'ursprung': 'Värde framtaget med eget system',\n", - " 'ursprungkod': 'S',\n", - " 'publikation': 'SLV - Riktlinjer för livsmedel',\n", - " 'metodtyp': 'Summering av beståndsdelar',\n", - " 'metodtypkod': 'S',\n", - " 'metodindikator': 'Skattat från ingrediensförteckning',\n", - " 'referenstyp': 'Rapport',\n", - " 'referenstypkod': 'R'},\n", - " {'namn': 'Folat',\n", - " 'euroFIRkod': 'FOL',\n", - " 'forkortning': 'Folat',\n", - " 'varde': 5.3,\n", - " 'enhet': 'µg',\n", - " 'viktGram': 100,\n", - " 'vardetyp': 'Ett analysvärde av sammansatt prov',\n", - " 'vardetypkod': 'AV',\n", - " 'ursprung': 'Analys SLV',\n", - " 'ursprungkod': 'O',\n", - " 'publikation': 'Analysprotokoll Dnr 2018/00798',\n", - " 'metodtyp': 'Analysresultat',\n", - " 'metodtypkod': 'A',\n", - " 'metodindikator': 'Lactobacillus plantarum, niacin',\n", - " 'metodindikatorkod': '',\n", - " 'referenstyp': 'Rapport',\n", - " 'referenstypkod': 'R'},\n", - " {'namn': 'Fibrer',\n", - " 'euroFIRkod': 'FIBT',\n", - " 'forkortning': 'Fibe',\n", - " 'varde': 13.7,\n", - " 'enhet': 'g',\n", - " 'viktGram': 100,\n", - " 'vardetyp': 'Ett analysvärde av sammansatt prov',\n", - " 'vardetypkod': 'AV',\n", - " 'ursprung': 'Analys, oberoende labb',\n", - " 'ursprungkod': 'D',\n", - " 'publikation': 'Analysprotokoll Dnr 2018/00798',\n", - " 'metodtyp': 'Analysresultat',\n", - " 'metodtypkod': 'A',\n", - " 'metodindikator': 'Enzymatisk metod',\n", - " 'metodindikatorkod': 'MI1218'},\n", - " {'namn': 'Fett, totalt',\n", - " 'euroFIRkod': 'FAT',\n", - " 'forkortning': 'Fett',\n", - " 'varde': 67.8,\n", - " 'enhet': 'g',\n", - " 'viktGram': 100,\n", - " 'vardetyp': 'Ett analysvärde av sammansatt prov',\n", - " 'vardetypkod': 'AV',\n", - " 'ursprung': 'Analys, oberoende labb',\n", - " 'ursprungkod': 'D',\n", - " 'publikation': 'Analysprotokoll Dnr 2018/00798',\n", - " 'metodtyp': 'Analysresultat',\n", - " 'metodtypkod': 'A',\n", - " 'metodindikator': 'NMR, fett',\n", - " 'metodindikatorkod': 'MI1165'},\n", - " {'namn': 'Järn, Fe',\n", - " 'euroFIRkod': 'FE',\n", - " 'forkortning': 'Fe',\n", - " 'varde': 2.4,\n", - " 'enhet': 'mg',\n", - " 'viktGram': 100,\n", - " 'vardetyp': 'Ett analysvärde av sammansatt prov',\n", - " 'vardetypkod': 'AV',\n", - " 'ursprung': 'Analys SLV',\n", - " 'ursprungkod': 'O',\n", - " 'publikation': 'Analysprotokoll Dnr 2018/00798',\n", - " 'metodtyp': 'Analysresultat',\n", - " 'metodtypkod': 'A',\n", - " 'metodindikator': 'ICP-MS',\n", - " 'metodindikatorkod': 'MI1209',\n", - " 'referenstyp': 'Rapport',\n", - " 'referenstypkod': 'R'},\n", - " {'namn': 'Energi (kJ)',\n", - " 'euroFIRkod': 'ENERC',\n", - " 'forkortning': 'Ener',\n", - " 'varde': 2860,\n", - " 'enhet': 'kJ',\n", - " 'viktGram': 100,\n", - " 'berakning': '0,0*17,0+14,20*17,0+67,8*37,0+0,000*29,0+13,7*8,0',\n", - " 'vardetyp': 'Bästa skattning',\n", - " 'vardetypkod': 'BE',\n", - " 'ursprung': 'Värde framtaget med eget system',\n", - " 'ursprungkod': 'S',\n", - " 'publikation': 'SLV - Riktlinjer för livsmedel',\n", - " 'metodtyp': 'Beräknad, omräkningsfaktor inkluderad',\n", - " 'metodtypkod': 'T',\n", - " 'metodindikator': 'Energiberäkning kJ NNR',\n", - " 'metodindikatorkod': 'MI0110',\n", - " 'referenstyp': 'Rapport',\n", - " 'referenstypkod': 'R'},\n", - " {'namn': 'Energi (kcal)',\n", - " 'euroFIRkod': 'ENERC',\n", - " 'forkortning': 'Ener',\n", - " 'varde': 683,\n", - " 'enhet': 'kcal',\n", - " 'viktGram': 100,\n", - " 'berakning': '2859,60*0,239',\n", - " 'vardetyp': 'Bästa skattning',\n", - " 'vardetypkod': 'BE',\n", - " 'ursprung': 'Värde framtaget med eget system',\n", - " 'ursprungkod': 'S',\n", - " 'publikation': 'SLV - Riktlinjer för livsmedel',\n", - " 'metodtyp': 'Beräknad, omräkningsfaktor inkluderad',\n", - " 'metodtypkod': 'T',\n", - " 'metodindikator': 'Energiberäkning kcal enligt NNR',\n", - " 'metodindikatorkod': 'MI0117',\n", - " 'referenstyp': 'Rapport',\n", - " 'referenstypkod': 'R'},\n", - " {'namn': 'Disackarider',\n", - " 'euroFIRkod': 'DISAC',\n", - " 'forkortning': 'Dsac',\n", - " 'varde': 1.8,\n", - " 'enhet': 'g',\n", - " 'viktGram': 100,\n", - " 'berakning': '0,000+0,000+1,800',\n", - " 'vardetyp': 'Bästa skattning',\n", - " 'vardetypkod': 'BE',\n", - " 'ursprung': 'Värde framtaget med eget system',\n", - " 'ursprungkod': 'S',\n", - " 'publikation': 'SLV - Riktlinjer för livsmedel',\n", - " 'metodtyp': 'Summering av beståndsdelar',\n", - " 'metodtypkod': 'S',\n", - " 'metodindikator': 'Disackarider beräknade som summan av laktos, maltos och sackaros',\n", - " 'metodindikatorkod': '',\n", - " 'referenstyp': 'Rapport',\n", - " 'referenstypkod': 'R'},\n", - " {'namn': 'Kalcium, Ca',\n", - " 'euroFIRkod': 'CA',\n", - " 'forkortning': 'Ca',\n", - " 'varde': 176,\n", - " 'enhet': 'mg',\n", - " 'viktGram': 100,\n", - " 'vardetyp': 'Ett analysvärde av sammansatt prov',\n", - " 'vardetypkod': 'AV',\n", - " 'ursprung': 'Analys, oberoende labb',\n", - " 'ursprungkod': 'D',\n", - " 'publikation': 'Analysprotokoll Dnr 2018/00798',\n", - " 'metodtyp': 'Analysresultat',\n", - " 'metodtypkod': 'A',\n", - " 'metodindikator': 'ICP-SFMS, mineraler',\n", - " 'metodindikatorkod': '',\n", - " 'referenstyp': 'Rapport',\n", - " 'referenstypkod': 'R'},\n", - " {'namn': 'Fettsyra 4:0-10:0',\n", - " 'euroFIRkod': 'F4-10:0',\n", - " 'forkortning': 'C4:0-C10:0',\n", - " 'varde': 0.0,\n", - " 'enhet': 'g',\n", - " 'viktGram': 100,\n", - " 'berakning': '0,956*67,8*(0,000+0,000+0,000+0,000)/100,0',\n", - " 'vardetyp': 'Bästa skattning',\n", - " 'vardetypkod': 'BE',\n", - " 'ursprung': 'Värde framtaget med eget system',\n", - " 'ursprungkod': 'S',\n", - " 'publikation': 'SLV - Riktlinjer för livsmedel',\n", - " 'metodtyp': 'Beräknad, omräkningsfaktor inkluderad',\n", - " 'metodtypkod': 'T',\n", - " 'metodindikator': 'Fettsyror beräknade från fettsyraprofil %',\n", - " 'metodindikatorkod': 'MI0201',\n", - " 'referenstyp': 'Rapport',\n", - " 'referenstypkod': 'R'},\n", - " {'namn': 'DHA (C22:6)',\n", - " 'euroFIRkod': 'F22:6',\n", - " 'forkortning': 'C22:6',\n", - " 'varde': 0.0,\n", - " 'enhet': 'g',\n", - " 'viktGram': 100,\n", - " 'berakning': '0,956*67,8*(0,000)/100,0',\n", - " 'vardetyp': 'Bästa skattning',\n", - " 'vardetypkod': 'BE',\n", - " 'ursprung': 'Värde framtaget med eget system',\n", - " 'ursprungkod': 'S',\n", - " 'publikation': 'SLV - Riktlinjer för livsmedel',\n", - " 'metodtyp': 'Beräknad, omräkningsfaktor inkluderad',\n", - " 'metodtypkod': 'T',\n", - " 'metodindikator': 'Fettsyror beräknade från fettsyraprofil %',\n", - " 'metodindikatorkod': 'MI0201',\n", - " 'referenstyp': 'Rapport',\n", - " 'referenstypkod': 'R'},\n", - " {'namn': 'DPA (C22:5)',\n", - " 'euroFIRkod': 'F22:5',\n", - " 'forkortning': 'C22:5',\n", - " 'varde': 0.0,\n", - " 'enhet': 'g',\n", - " 'viktGram': 100,\n", - " 'berakning': '0,956*67,8*(0,000+0,000)/100,0',\n", - " 'vardetyp': 'Bästa skattning',\n", - " 'vardetypkod': 'BE',\n", - " 'ursprung': 'Värde framtaget med eget system',\n", - " 'ursprungkod': 'S',\n", - " 'publikation': 'SLV - Riktlinjer för livsmedel',\n", - " 'metodtyp': 'Beräknad, omräkningsfaktor inkluderad',\n", - " 'metodtypkod': 'T',\n", - " 'metodindikator': 'Fettsyror beräknade från fettsyraprofil %',\n", - " 'metodindikatorkod': 'MI0201',\n", - " 'referenstyp': 'Rapport',\n", - " 'referenstypkod': 'R'},\n", - " {'namn': 'EPA (C20:5)',\n", - " 'euroFIRkod': 'F20:5',\n", - " 'forkortning': 'C20:5',\n", - " 'varde': 0.0,\n", - " 'enhet': 'g',\n", - " 'viktGram': 100,\n", - " 'berakning': '0,956*67,8*(0,000)/100,0',\n", - " 'vardetyp': 'Bästa skattning',\n", - " 'vardetypkod': 'BE',\n", - " 'ursprung': 'Värde framtaget med eget system',\n", - " 'ursprungkod': 'S',\n", - " 'publikation': 'SLV - Riktlinjer för livsmedel',\n", - " 'metodtyp': 'Beräknad, omräkningsfaktor inkluderad',\n", - " 'metodtypkod': 'T',\n", - " 'metodindikator': 'Fettsyror beräknade från fettsyraprofil %',\n", - " 'metodindikatorkod': 'MI0201',\n", - " 'referenstyp': 'Rapport',\n", - " 'referenstypkod': 'R'},\n", - " {'namn': 'Arakidonsyra C20:4',\n", - " 'euroFIRkod': 'F20:4',\n", - " 'forkortning': 'C20:4',\n", - " 'varde': 0.0,\n", - " 'enhet': 'g',\n", - " 'viktGram': 100,\n", - " 'berakning': '0,956*67,8*(0,000+0,000)/100,0',\n", - " 'vardetyp': 'Bästa skattning',\n", - " 'vardetypkod': 'BE',\n", - " 'ursprung': 'Värde framtaget med eget system',\n", - " 'ursprungkod': 'S',\n", - " 'publikation': 'SLV - Riktlinjer för livsmedel',\n", - " 'metodtyp': 'Beräknad, omräkningsfaktor inkluderad',\n", - " 'metodtypkod': 'T',\n", - " 'metodindikator': 'Fettsyror beräknade från fettsyraprofil %',\n", - " 'metodindikatorkod': 'MI0201',\n", - " 'referenstyp': 'Rapport',\n", - " 'referenstypkod': 'R'},\n", - " {'namn': 'Arakidinsyra C20:0',\n", - " 'euroFIRkod': 'F20:0',\n", - " 'forkortning': 'C20:0',\n", - " 'varde': 0.1,\n", - " 'enhet': 'g',\n", - " 'viktGram': 100,\n", - " 'berakning': '0,956*67,8*0,200/100,0',\n", - " 'vardetyp': 'Bästa skattning',\n", - " 'vardetypkod': 'BE',\n", - " 'ursprung': 'Värde framtaget med eget system',\n", - " 'ursprungkod': 'S',\n", - " 'publikation': 'SLV - Riktlinjer för livsmedel',\n", - " 'metodtyp': 'Beräknad, omräkningsfaktor inkluderad',\n", - " 'metodtypkod': 'T',\n", - " 'metodindikator': 'Fettsyror beräknade från fettsyraprofil %',\n", - " 'metodindikatorkod': 'MI0201',\n", - " 'referenstyp': 'Rapport',\n", - " 'referenstypkod': 'R'},\n", - " {'namn': 'Linolensyra C18:3',\n", - " 'euroFIRkod': 'F18:3',\n", - " 'forkortning': 'C18:3',\n", - " 'varde': 0.0,\n", - " 'enhet': 'g',\n", - " 'viktGram': 100,\n", - " 'berakning': '0,956*67,8*(0,000+0,000+0,000)/100,0',\n", - " 'vardetyp': 'Bästa skattning',\n", - " 'vardetypkod': 'BE',\n", - " 'ursprung': 'Värde framtaget med eget system',\n", - " 'ursprungkod': 'S',\n", - " 'publikation': 'SLV - Riktlinjer för livsmedel',\n", - " 'metodtyp': 'Beräknad, omräkningsfaktor inkluderad',\n", - " 'metodtypkod': 'T',\n", - " 'metodindikator': 'Fettsyror beräknade från fettsyraprofil %',\n", - " 'metodindikatorkod': 'MI0201',\n", - " 'referenstyp': 'Rapport',\n", - " 'referenstypkod': 'R'},\n", - " {'namn': 'Linolsyra C18:2',\n", - " 'euroFIRkod': 'F18:2',\n", - " 'forkortning': 'C18:2',\n", - " 'varde': 29.2,\n", - " 'enhet': 'g',\n", - " 'viktGram': 100,\n", - " 'berakning': '0,956*67,8*45,000/100,0',\n", - " 'vardetyp': 'Bästa skattning',\n", - " 'vardetypkod': 'BE',\n", - " 'ursprung': 'Värde framtaget med eget system',\n", - " 'ursprungkod': 'S',\n", - " 'publikation': 'SLV - Riktlinjer för livsmedel',\n", - " 'metodtyp': 'Beräknad, omräkningsfaktor inkluderad',\n", - " 'metodtypkod': 'T',\n", - " 'metodindikator': 'Fettsyror beräknade från fettsyraprofil %',\n", - " 'metodindikatorkod': 'MI0201',\n", - " 'referenstyp': 'Rapport',\n", - " 'referenstypkod': 'R'},\n", - " {'namn': 'Oljesyra C18:1',\n", - " 'euroFIRkod': 'F18:1',\n", - " 'forkortning': 'C18:1',\n", - " 'varde': 19.9,\n", - " 'enhet': 'g',\n", - " 'viktGram': 100,\n", - " 'berakning': '0,956*67,8*30,700/100,0',\n", - " 'vardetyp': 'Bästa skattning',\n", - " 'vardetypkod': 'BE',\n", - " 'ursprung': 'Värde framtaget med eget system',\n", - " 'ursprungkod': 'S',\n", - " 'publikation': 'SLV - Riktlinjer för livsmedel',\n", - " 'metodtyp': 'Beräknad, omräkningsfaktor inkluderad',\n", - " 'metodtypkod': 'T',\n", - " 'metodindikator': 'Fettsyror beräknade från fettsyraprofil %',\n", - " 'metodindikatorkod': 'MI0201',\n", - " 'referenstyp': 'Rapport',\n", - " 'referenstypkod': 'R'},\n", - " {'namn': 'Stearinsyra C18:0',\n", - " 'euroFIRkod': 'F18:0',\n", - " 'forkortning': 'C18:0',\n", - " 'varde': 6.0,\n", - " 'enhet': 'g',\n", - " 'viktGram': 100,\n", - " 'berakning': '0,956*67,8*9,300/100,0',\n", - " 'vardetyp': 'Bästa skattning',\n", - " 'vardetypkod': 'BE',\n", - " 'ursprung': 'Värde framtaget med eget system',\n", - " 'ursprungkod': 'S',\n", - " 'publikation': 'SLV - Riktlinjer för livsmedel',\n", - " 'metodtyp': 'Beräknad, omräkningsfaktor inkluderad',\n", - " 'metodtypkod': 'T',\n", - " 'metodindikator': 'Fettsyror beräknade från fettsyraprofil %',\n", - " 'metodindikatorkod': 'MI0201',\n", - " 'referenstyp': 'Rapport',\n", - " 'referenstypkod': 'R'},\n", - " {'namn': 'Palmitoljesyra C16:1',\n", - " 'euroFIRkod': 'F16:1',\n", - " 'forkortning': 'C16:1',\n", - " 'varde': 0.2,\n", - " 'enhet': 'g',\n", - " 'viktGram': 100,\n", - " 'berakning': '0,956*67,8*0,300/100,0',\n", - " 'vardetyp': 'Bästa skattning',\n", - " 'vardetypkod': 'BE',\n", - " 'ursprung': 'Värde framtaget med eget system',\n", - " 'ursprungkod': 'S',\n", - " 'publikation': 'SLV - Riktlinjer för livsmedel',\n", - " 'metodtyp': 'Beräknad, omräkningsfaktor inkluderad',\n", - " 'metodtypkod': 'T',\n", - " 'metodindikator': 'Fettsyror beräknade från fettsyraprofil %',\n", - " 'metodindikatorkod': 'MI0201',\n", - " 'referenstyp': 'Rapport',\n", - " 'referenstypkod': 'R'},\n", - " {'namn': 'Palmitinsyra C16:0',\n", - " 'euroFIRkod': 'F16:0',\n", - " 'forkortning': 'C16:0',\n", - " 'varde': 9.2,\n", - " 'enhet': 'g',\n", - " 'viktGram': 100,\n", - " 'berakning': '0,956*67,8*14,200/100,0',\n", - " 'vardetyp': 'Bästa skattning',\n", - " 'vardetypkod': 'BE',\n", - " 'ursprung': 'Värde framtaget med eget system',\n", - " 'ursprungkod': 'S',\n", - " 'publikation': 'SLV - Riktlinjer för livsmedel',\n", - " 'metodtyp': 'Beräknad, omräkningsfaktor inkluderad',\n", - " 'metodtypkod': 'T',\n", - " 'metodindikator': 'Fettsyror beräknade från fettsyraprofil %',\n", - " 'metodindikatorkod': 'MI0201',\n", - " 'referenstyp': 'Rapport',\n", - " 'referenstypkod': 'R'},\n", - " {'namn': 'Myristinsyra C14:0',\n", - " 'euroFIRkod': 'F14:0',\n", - " 'forkortning': 'C14:0',\n", - " 'varde': 0.0,\n", - " 'enhet': 'g',\n", - " 'viktGram': 100,\n", - " 'berakning': '0,956*67,8*0,000/100,0',\n", - " 'vardetyp': 'Bästa skattning',\n", - " 'vardetypkod': 'BE',\n", - " 'ursprung': 'Värde framtaget med eget system',\n", - " 'ursprungkod': 'S',\n", - " 'publikation': 'SLV - Riktlinjer för livsmedel',\n", - " 'metodtyp': 'Beräknad, omräkningsfaktor inkluderad',\n", - " 'metodtypkod': 'T',\n", - " 'metodindikator': 'Fettsyror beräknade från fettsyraprofil %',\n", - " 'metodindikatorkod': 'MI0201',\n", - " 'referenstyp': 'Rapport',\n", - " 'referenstypkod': 'R'},\n", - " {'namn': 'Laurinsyra C12:0',\n", - " 'euroFIRkod': 'F12:0',\n", - " 'forkortning': 'C12:0',\n", - " 'varde': 0.0,\n", - " 'enhet': 'g',\n", - " 'viktGram': 100,\n", - " 'berakning': '0,956*67,8*0,000/100,0',\n", - " 'vardetyp': 'Bästa skattning',\n", - " 'vardetypkod': 'BE',\n", - " 'ursprung': 'Värde framtaget med eget system',\n", - " 'ursprungkod': 'S',\n", - " 'publikation': 'SLV - Riktlinjer för livsmedel',\n", - " 'metodtyp': 'Beräknad, omräkningsfaktor inkluderad',\n", - " 'metodtypkod': 'T',\n", - " 'metodindikator': 'Fettsyror beräknade från fettsyraprofil %',\n", - " 'metodindikatorkod': 'MI0201',\n", - " 'referenstyp': 'Rapport',\n", - " 'referenstypkod': 'R'},\n", - " {'namn': 'Betakaroten/β-Karoten',\n", - " 'euroFIRkod': 'CARTB',\n", - " 'forkortning': 'b-Kar',\n", - " 'varde': 5,\n", - " 'enhet': 'µg',\n", - " 'viktGram': 100,\n", - " 'vardetyp': 'Ett analysvärde av sammansatt prov',\n", - " 'vardetypkod': 'AV',\n", - " 'ursprung': 'Analys SLV',\n", - " 'ursprungkod': 'O',\n", - " 'publikation': 'Analysprotokoll Dnr 2018/00798',\n", - " 'metodtyp': 'Analysresultat',\n", - " 'metodtypkod': 'A',\n", - " 'metodindikator': 'HPLC-DAD karotenoider',\n", - " 'metodindikatorkod': 'MI1137',\n", - " 'referenstyp': 'Rapport',\n", - " 'referenstypkod': 'R'},\n", - " {'namn': 'Avfall (skal etc.)',\n", - " 'euroFIRkod': 'WASTE',\n", - " 'forkortning': 'Avfa',\n", - " 'varde': 52,\n", - " 'enhet': '%',\n", - " 'viktGram': 100,\n", - " 'vardetyp': 'Bästa skattning',\n", - " 'vardetypkod': 'BE',\n", - " 'ursprung': 'Livsmedelstabell',\n", - " 'ursprungkod': 'F',\n", - " 'publikation': 'SLV livsmedelstabell energi och näringsämnen 2002',\n", - " 'metodtyp': 'Skattat värde',\n", - " 'metodtypkod': 'IG',\n", - " 'referenstyp': 'Rapport',\n", - " 'referenstypkod': 'R'},\n", - " {'namn': 'Aska',\n", - " 'euroFIRkod': 'ASH',\n", - " 'forkortning': 'Aska',\n", - " 'varde': 3.8,\n", - " 'enhet': 'g',\n", - " 'viktGram': 100,\n", - " 'vardetyp': 'Ett analysvärde av sammansatt prov',\n", - " 'vardetypkod': 'AV',\n", - " 'ursprung': 'Analys, oberoende labb',\n", - " 'ursprungkod': 'D',\n", - " 'publikation': 'Analysprotokoll Dnr 2018/00798',\n", - " 'metodtyp': 'Analysresultat',\n", - " 'metodtypkod': 'A',\n", - " 'metodindikator': 'Gravimetrisk metod'},\n", - " {'namn': 'Alkohol',\n", - " 'euroFIRkod': 'ALC',\n", - " 'forkortning': 'Alko',\n", - " 'varde': 0.0,\n", - " 'enhet': 'g',\n", - " 'viktGram': 100,\n", - " 'vardetyp': 'Logisk nolla',\n", - " 'vardetypkod': 'LZ',\n", - " 'ursprung': 'Annat ursprung',\n", - " 'ursprungkod': 'E',\n", - " 'publikation': 'SLV - Riktlinjer för livsmedel',\n", - " 'metodtyp': 'Skattat logisk slutledning',\n", - " 'metodtypkod': 'U'}]" - ] - }, - "execution_count": 3, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "slv.search_food(\"paranöt\")\n", - "\n", - "menu = {'Mango': {'number': 574, 'weight': 100},\n", - " 'cashew': {'number': 1557, 'weight': 65/4},\n", - " 'hirs': {'number': 834, 'weight': 1180./5},\n", - " 'kikärtor': {'number': 3815, 'weight': 250/4},\n", - " 'basilika': {'number': 379, 'weight': 3},\n", - " 'apelsin': {'number': 551, 'weight': 80},\n", - " }\n", - "\n", - "slv.get_minerals_from_number(1568)\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Zink, ZnVitamin EVitamin DVitamin CVitamin B6Vitamin B12Vitamin AVattenTiaminTillsatt sockerFritt sockerSelen, SeSackarosRiboflavinRetinolProteinSumma fleromättade fettsyrorFosfor, PNiacinekvivalenterNiacinSalt, NaClNatrium, NaMonosackariderSockerarter, totaltSumma enkelomättade fettsyrorMagnesium, MgSumma mättade fettsyrorKolhydrater, tillgängligaKolesterolKalium, KJod, IFullkorn totaltFolatFibrerFett, totaltJärn, FeEnergi (kJ)Energi (kcal)DisackariderKalcium, CaFettsyra 4:0-10:0DHA (C22:6)DPA (C22:5)EPA (C20:5)Arakidonsyra C20:4Arakidinsyra C20:0Linolensyra C18:3Linolsyra C18:2Oljesyra C18:1Stearinsyra C18:0Palmitoljesyra C16:1Palmitinsyra C16:0Myristinsyra C14:0Laurinsyra C12:0Betakaroten/β-KarotenAvfall (skal etc.)AskaAlkoholweight
name
havredryck 3per0.10.61.10.00.010.380.087.80.020.00.00.00.10.250.0000001.00.8110.00.200.080.142.00.02.91.80.00.26.60.0220.022.50.00.00.83.00.0248.060.02.9120.00.00.00.00.00.00.00.20.71.70.00.00.20.00.00.00.00.70.0100.0
havregryn2.60.80.00.00.110.000.010.20.290.00.00.01.00.070.0000009.52.8360.02.400.800.01.00.01.02.6110.01.164.10.0340.06.8100.030.27.57.03.41569.0375.01.043.00.00.00.00.00.00.00.12.72.40.10.01.00.00.00.00.01.70.030.0
Paranötter3.86.10.00.00.330.000.61.80.730.00.0225.01.80.000.41666714.229.2723.02.900.480.00.00.01.820.1400.015.40.00.0623.00.00.05.313.767.82.42860.0683.01.8176.00.00.00.00.00.00.10.029.219.96.00.29.20.00.05.052.03.80.0100.0
äppelmos0.00.10.01.00.030.002.542.00.1030.030.00.08.20.022.5000000.20.024.00.230.200.04.035.944.10.02.00.056.90.0112.00.00.01.00.70.00.9976.0233.08.25.00.00.00.00.00.00.00.00.00.00.00.00.00.00.030.00.00.20.015.0
\n", - "
" - ], - "text/plain": [ - " Zink, Zn Vitamin E Vitamin D Vitamin C Vitamin B6 \\\n", - "name \n", - "havredryck 3per 0.1 0.6 1.1 0.0 0.01 \n", - "havregryn 2.6 0.8 0.0 0.0 0.11 \n", - "Paranötter 3.8 6.1 0.0 0.0 0.33 \n", - "äppelmos 0.0 0.1 0.0 1.0 0.03 \n", - "\n", - " Vitamin B12 Vitamin A Vatten Tiamin Tillsatt socker \\\n", - "name \n", - "havredryck 3per 0.38 0.0 87.8 0.02 0.0 \n", - "havregryn 0.00 0.0 10.2 0.29 0.0 \n", - "Paranötter 0.00 0.6 1.8 0.73 0.0 \n", - "äppelmos 0.00 2.5 42.0 0.10 30.0 \n", - "\n", - " Fritt socker Selen, Se Sackaros Riboflavin Retinol \\\n", - "name \n", - "havredryck 3per 0.0 0.0 0.1 0.25 0.000000 \n", - "havregryn 0.0 0.0 1.0 0.07 0.000000 \n", - "Paranötter 0.0 225.0 1.8 0.00 0.416667 \n", - "äppelmos 30.0 0.0 8.2 0.02 2.500000 \n", - "\n", - " Protein Summa fleromättade fettsyror Fosfor, P \\\n", - "name \n", - "havredryck 3per 1.0 0.8 110.0 \n", - "havregryn 9.5 2.8 360.0 \n", - "Paranötter 14.2 29.2 723.0 \n", - "äppelmos 0.2 0.0 24.0 \n", - "\n", - " Niacinekvivalenter Niacin Salt, NaCl Natrium, Na \\\n", - "name \n", - "havredryck 3per 0.20 0.08 0.1 42.0 \n", - "havregryn 2.40 0.80 0.0 1.0 \n", - "Paranötter 2.90 0.48 0.0 0.0 \n", - "äppelmos 0.23 0.20 0.0 4.0 \n", - "\n", - " Monosackarider Sockerarter, totalt \\\n", - "name \n", - "havredryck 3per 0.0 2.9 \n", - "havregryn 0.0 1.0 \n", - "Paranötter 0.0 1.8 \n", - "äppelmos 35.9 44.1 \n", - "\n", - " Summa enkelomättade fettsyror Magnesium, Mg \\\n", - "name \n", - "havredryck 3per 1.8 0.0 \n", - "havregryn 2.6 110.0 \n", - "Paranötter 20.1 400.0 \n", - "äppelmos 0.0 2.0 \n", - "\n", - " Summa mättade fettsyror Kolhydrater, tillgängliga \\\n", - "name \n", - "havredryck 3per 0.2 6.6 \n", - "havregryn 1.1 64.1 \n", - "Paranötter 15.4 0.0 \n", - "äppelmos 0.0 56.9 \n", - "\n", - " Kolesterol Kalium, K Jod, I Fullkorn totalt Folat \\\n", - "name \n", - "havredryck 3per 0.0 220.0 22.5 0.0 0.0 \n", - "havregryn 0.0 340.0 6.8 100.0 30.2 \n", - "Paranötter 0.0 623.0 0.0 0.0 5.3 \n", - "äppelmos 0.0 112.0 0.0 0.0 1.0 \n", - "\n", - " Fibrer Fett, totalt Järn, Fe Energi (kJ) Energi (kcal) \\\n", - "name \n", - "havredryck 3per 0.8 3.0 0.0 248.0 60.0 \n", - "havregryn 7.5 7.0 3.4 1569.0 375.0 \n", - "Paranötter 13.7 67.8 2.4 2860.0 683.0 \n", - "äppelmos 0.7 0.0 0.9 976.0 233.0 \n", - "\n", - " Disackarider Kalcium, Ca Fettsyra 4:0-10:0 DHA (C22:6) \\\n", - "name \n", - "havredryck 3per 2.9 120.0 0.0 0.0 \n", - "havregryn 1.0 43.0 0.0 0.0 \n", - "Paranötter 1.8 176.0 0.0 0.0 \n", - "äppelmos 8.2 5.0 0.0 0.0 \n", - "\n", - " DPA (C22:5) EPA (C20:5) Arakidonsyra C20:4 \\\n", - "name \n", - "havredryck 3per 0.0 0.0 0.0 \n", - "havregryn 0.0 0.0 0.0 \n", - "Paranötter 0.0 0.0 0.0 \n", - "äppelmos 0.0 0.0 0.0 \n", - "\n", - " Arakidinsyra C20:0 Linolensyra C18:3 Linolsyra C18:2 \\\n", - "name \n", - "havredryck 3per 0.0 0.2 0.7 \n", - "havregryn 0.0 0.1 2.7 \n", - "Paranötter 0.1 0.0 29.2 \n", - "äppelmos 0.0 0.0 0.0 \n", - "\n", - " Oljesyra C18:1 Stearinsyra C18:0 Palmitoljesyra C16:1 \\\n", - "name \n", - "havredryck 3per 1.7 0.0 0.0 \n", - "havregryn 2.4 0.1 0.0 \n", - "Paranötter 19.9 6.0 0.2 \n", - "äppelmos 0.0 0.0 0.0 \n", - "\n", - " Palmitinsyra C16:0 Myristinsyra C14:0 Laurinsyra C12:0 \\\n", - "name \n", - "havredryck 3per 0.2 0.0 0.0 \n", - "havregryn 1.0 0.0 0.0 \n", - "Paranötter 9.2 0.0 0.0 \n", - "äppelmos 0.0 0.0 0.0 \n", - "\n", - " Betakaroten/β-Karoten Avfall (skal etc.) Aska Alkohol \\\n", - "name \n", - "havredryck 3per 0.0 0.0 0.7 0.0 \n", - "havregryn 0.0 0.0 1.7 0.0 \n", - "Paranötter 5.0 52.0 3.8 0.0 \n", - "äppelmos 30.0 0.0 0.2 0.0 \n", - "\n", - " weight \n", - "name \n", - "havredryck 3per 100.0 \n", - "havregryn 30.0 \n", - "Paranötter 100.0 \n", - "äppelmos 15.0 " - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Zink, ZnVitamin EVitamin DVitamin CVitamin B6Vitamin B12Vitamin AVattenTiaminTillsatt sockerFritt sockerSelen, SeSackarosRiboflavinRetinolProteinSumma fleromättade fettsyrorFosfor, PNiacinekvivalenterNiacinSalt, NaClNatrium, NaMonosackariderSockerarter, totaltSumma enkelomättade fettsyrorMagnesium, MgSumma mättade fettsyrorKolhydrater, tillgängligaKolesterolKalium, KJod, IFullkorn totaltFolatFibrerFett, totaltJärn, FeEnergi (kJ)Energi (kcal)DisackariderKalcium, CaFettsyra 4:0-10:0DHA (C22:6)DPA (C22:5)EPA (C20:5)Arakidonsyra C20:4Arakidinsyra C20:0Linolensyra C18:3Linolsyra C18:2Oljesyra C18:1Stearinsyra C18:0Palmitoljesyra C16:1Palmitinsyra C16:0Myristinsyra C14:0Laurinsyra C12:0Betakaroten/β-KarotenAvfall (skal etc.)AskaAlkoholweight
name
havredryck 3per0.100.6001.10.000.01000.380.00087.800.0200.00.00.00.100.2500.0000001.000.80110.00.20000.080.142.00.0002.9001.800.00.206.6000.0220.022.500.00.000.8003.00.000248.060.002.90120.000.00.00.00.00.00.00.200.701.700.000.00.20.00.00.00.00.700.0100.00
havregryn0.780.2400.00.000.03300.000.0003.060.0870.00.00.00.300.0210.0000002.850.84108.00.72000.240.00.30.0000.3000.7833.00.3319.2300.0102.02.0430.09.062.2502.11.020470.7112.500.3012.900.00.00.00.00.00.00.030.810.720.030.00.30.00.00.00.00.510.09.00
Paranötter3.806.1000.00.000.33000.000.6001.800.7300.00.0225.01.800.0000.41666714.2029.20723.02.90000.480.00.00.0001.80020.10400.015.400.0000.0623.00.000.05.3013.70067.82.4002860.0683.001.80176.000.00.00.00.00.00.10.0029.2019.906.000.29.20.00.05.052.03.800.0100.00
äppelmos0.000.0150.00.150.00450.000.3756.300.0154.54.50.01.230.0030.3750000.030.003.60.03450.030.00.65.3856.6150.000.30.008.5350.016.80.000.00.150.1050.00.135146.434.951.230.750.00.00.00.00.00.00.000.000.000.000.00.00.00.04.50.00.030.02.25
\n", - "
" - ], - "text/plain": [ - " Zink, Zn Vitamin E Vitamin D Vitamin C Vitamin B6 \\\n", - "name \n", - "havredryck 3per 0.10 0.600 1.1 0.00 0.0100 \n", - "havregryn 0.78 0.240 0.0 0.00 0.0330 \n", - "Paranötter 3.80 6.100 0.0 0.00 0.3300 \n", - "äppelmos 0.00 0.015 0.0 0.15 0.0045 \n", - "\n", - " Vitamin B12 Vitamin A Vatten Tiamin Tillsatt socker \\\n", - "name \n", - "havredryck 3per 0.38 0.000 87.80 0.020 0.0 \n", - "havregryn 0.00 0.000 3.06 0.087 0.0 \n", - "Paranötter 0.00 0.600 1.80 0.730 0.0 \n", - "äppelmos 0.00 0.375 6.30 0.015 4.5 \n", - "\n", - " Fritt socker Selen, Se Sackaros Riboflavin Retinol \\\n", - "name \n", - "havredryck 3per 0.0 0.0 0.10 0.250 0.000000 \n", - "havregryn 0.0 0.0 0.30 0.021 0.000000 \n", - "Paranötter 0.0 225.0 1.80 0.000 0.416667 \n", - "äppelmos 4.5 0.0 1.23 0.003 0.375000 \n", - "\n", - " Protein Summa fleromättade fettsyror Fosfor, P \\\n", - "name \n", - "havredryck 3per 1.00 0.80 110.0 \n", - "havregryn 2.85 0.84 108.0 \n", - "Paranötter 14.20 29.20 723.0 \n", - "äppelmos 0.03 0.00 3.6 \n", - "\n", - " Niacinekvivalenter Niacin Salt, NaCl Natrium, Na \\\n", - "name \n", - "havredryck 3per 0.2000 0.08 0.1 42.0 \n", - "havregryn 0.7200 0.24 0.0 0.3 \n", - "Paranötter 2.9000 0.48 0.0 0.0 \n", - "äppelmos 0.0345 0.03 0.0 0.6 \n", - "\n", - " Monosackarider Sockerarter, totalt \\\n", - "name \n", - "havredryck 3per 0.000 2.900 \n", - "havregryn 0.000 0.300 \n", - "Paranötter 0.000 1.800 \n", - "äppelmos 5.385 6.615 \n", - "\n", - " Summa enkelomättade fettsyror Magnesium, Mg \\\n", - "name \n", - "havredryck 3per 1.80 0.0 \n", - "havregryn 0.78 33.0 \n", - "Paranötter 20.10 400.0 \n", - "äppelmos 0.00 0.3 \n", - "\n", - " Summa mättade fettsyror Kolhydrater, tillgängliga \\\n", - "name \n", - "havredryck 3per 0.20 6.600 \n", - "havregryn 0.33 19.230 \n", - "Paranötter 15.40 0.000 \n", - "äppelmos 0.00 8.535 \n", - "\n", - " Kolesterol Kalium, K Jod, I Fullkorn totalt Folat \\\n", - "name \n", - "havredryck 3per 0.0 220.0 22.50 0.0 0.00 \n", - "havregryn 0.0 102.0 2.04 30.0 9.06 \n", - "Paranötter 0.0 623.0 0.00 0.0 5.30 \n", - "äppelmos 0.0 16.8 0.00 0.0 0.15 \n", - "\n", - " Fibrer Fett, totalt Järn, Fe Energi (kJ) Energi (kcal) \\\n", - "name \n", - "havredryck 3per 0.800 3.0 0.000 248.0 60.00 \n", - "havregryn 2.250 2.1 1.020 470.7 112.50 \n", - "Paranötter 13.700 67.8 2.400 2860.0 683.00 \n", - "äppelmos 0.105 0.0 0.135 146.4 34.95 \n", - "\n", - " Disackarider Kalcium, Ca Fettsyra 4:0-10:0 DHA (C22:6) \\\n", - "name \n", - "havredryck 3per 2.90 120.00 0.0 0.0 \n", - "havregryn 0.30 12.90 0.0 0.0 \n", - "Paranötter 1.80 176.00 0.0 0.0 \n", - "äppelmos 1.23 0.75 0.0 0.0 \n", - "\n", - " DPA (C22:5) EPA (C20:5) Arakidonsyra C20:4 \\\n", - "name \n", - "havredryck 3per 0.0 0.0 0.0 \n", - "havregryn 0.0 0.0 0.0 \n", - "Paranötter 0.0 0.0 0.0 \n", - "äppelmos 0.0 0.0 0.0 \n", - "\n", - " Arakidinsyra C20:0 Linolensyra C18:3 Linolsyra C18:2 \\\n", - "name \n", - "havredryck 3per 0.0 0.20 0.70 \n", - "havregryn 0.0 0.03 0.81 \n", - "Paranötter 0.1 0.00 29.20 \n", - "äppelmos 0.0 0.00 0.00 \n", - "\n", - " Oljesyra C18:1 Stearinsyra C18:0 Palmitoljesyra C16:1 \\\n", - "name \n", - "havredryck 3per 1.70 0.00 0.0 \n", - "havregryn 0.72 0.03 0.0 \n", - "Paranötter 19.90 6.00 0.2 \n", - "äppelmos 0.00 0.00 0.0 \n", - "\n", - " Palmitinsyra C16:0 Myristinsyra C14:0 Laurinsyra C12:0 \\\n", - "name \n", - "havredryck 3per 0.2 0.0 0.0 \n", - "havregryn 0.3 0.0 0.0 \n", - "Paranötter 9.2 0.0 0.0 \n", - "äppelmos 0.0 0.0 0.0 \n", - "\n", - " Betakaroten/β-Karoten Avfall (skal etc.) Aska Alkohol \\\n", - "name \n", - "havredryck 3per 0.0 0.0 0.70 0.0 \n", - "havregryn 0.0 0.0 0.51 0.0 \n", - "Paranötter 5.0 52.0 3.80 0.0 \n", - "äppelmos 4.5 0.0 0.03 0.0 \n", - "\n", - " weight \n", - "name \n", - "havredryck 3per 100.00 \n", - "havregryn 9.00 \n", - "Paranötter 100.00 \n", - "äppelmos 2.25 " - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/tmp/ipykernel_6101/1072998217.py:28: FutureWarning: The behavior of DataFrame concatenation with empty or all-NA entries is deprecated. In a future version, this will no longer exclude empty or all-NA columns when determining the result dtypes. To retain the old behavior, exclude the relevant entries before the concat operation.\n", - " mineral_df = pd.concat([mineral_df, rdi_df])\n" - ] - }, - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Zink, ZnVitamin EVitamin DVitamin CVitamin B6Vitamin B12Vitamin AVattenTiaminTillsatt sockerFritt sockerSelen, SeSackarosRiboflavinRetinolProteinSumma fleromättade fettsyrorFosfor, PNiacinekvivalenterNiacinSalt, NaClNatrium, NaMonosackariderSockerarter, totaltSumma enkelomättade fettsyrorMagnesium, MgSumma mättade fettsyrorKolhydrater, tillgängligaKolesterolKalium, KJod, IFullkorn totaltFolatFibrerFett, totaltJärn, FeEnergi (kJ)Energi (kcal)DisackariderKalcium, CaFettsyra 4:0-10:0DHA (C22:6)DPA (C22:5)EPA (C20:5)Arakidonsyra C20:4Arakidinsyra C20:0Linolensyra C18:3Linolsyra C18:2Oljesyra C18:1Stearinsyra C18:0Palmitoljesyra C16:1Palmitinsyra C16:0Myristinsyra C14:0Laurinsyra C12:0Betakaroten/β-KarotenAvfall (skal etc.)AskaAlkoholweight
name
havredryck 3per0.100.6001.10.000.01000.380.00087.800.0200.00.00.00.100.2500.0000001.000.80110.00.20000.080.142.00.0002.9001.800.00.206.6000.0220.022.500.00.000.8003.00.000248.060.002.90120.000.00.00.00.00.00.00.200.701.700.000.00.20.00.00.00.00.700.0100.00
havregryn0.780.2400.00.000.03300.000.0003.060.0870.00.00.00.300.0210.0000002.850.84108.00.72000.240.00.30.0000.3000.7833.00.3319.2300.0102.02.0430.09.062.2502.11.020470.7112.500.3012.900.00.00.00.00.00.00.030.810.720.030.00.30.00.00.00.00.510.09.00
Paranötter3.806.1000.00.000.33000.000.6001.800.7300.00.0225.01.800.0000.41666714.2029.20723.02.90000.480.00.00.0001.80020.10400.015.400.0000.0623.00.000.05.3013.70067.82.4002860.0683.001.80176.000.00.00.00.00.00.10.0029.2019.906.000.29.20.00.05.052.03.800.0100.00
äppelmos0.000.0150.00.150.00450.000.3756.300.0154.54.50.01.230.0030.3750000.030.003.60.03450.030.00.65.3856.6150.000.30.008.5350.016.80.000.00.150.1050.00.135146.434.951.230.750.00.00.00.00.00.00.000.000.000.000.00.00.00.04.50.00.030.02.25
total4.686.9551.10.150.37750.380.97598.960.8524.54.5225.03.430.2740.79166718.0830.84944.63.85450.830.142.95.38511.61522.68433.315.9334.3650.0961.824.5430.014.5116.85572.93.5553725.1890.456.23309.650.00.00.00.00.00.10.2330.7122.326.030.29.70.00.09.552.05.040.0211.25
male12.7011.00010.0110.001.80004.00NaNNaN0.100NaNNaN90.0NaN1.600800.000000NaNNaN520.01.6000NaNNaNNaNNaNNaNNaN350.0NaNNaNNaN3500.0150.00NaN330.00NaNNaN9.000NaNNaNNaN950.00NaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
female9.7010.00010.095.001.60004.00NaNNaN0.100NaNNaN75.0NaN1.600700.000000NaNNaN520.01.6000NaNNaNNaNNaNNaNNaN300.0NaNNaNNaN3500.0150.00NaN330.00NaNNaN15.000NaNNaNNaN950.00NaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
4-6 years5.808.00010.035.000.70001.70NaNNaN0.100NaNNaN25.0NaN0.700350.000000NaNNaN440.01.6000NaNNaNNaNNaNNaNNaN230.0NaNNaNNaN1150.0100.00NaN140.00NaNNaN7.000NaNNaNNaN800.00NaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
\n", - "
" - ], - "text/plain": [ - " Zink, Zn Vitamin E Vitamin D Vitamin C Vitamin B6 \\\n", - "name \n", - "havredryck 3per 0.10 0.600 1.1 0.00 0.0100 \n", - "havregryn 0.78 0.240 0.0 0.00 0.0330 \n", - "Paranötter 3.80 6.100 0.0 0.00 0.3300 \n", - "äppelmos 0.00 0.015 0.0 0.15 0.0045 \n", - "total 4.68 6.955 1.1 0.15 0.3775 \n", - "male 12.70 11.000 10.0 110.00 1.8000 \n", - "female 9.70 10.000 10.0 95.00 1.6000 \n", - "4-6 years 5.80 8.000 10.0 35.00 0.7000 \n", - "\n", - " Vitamin B12 Vitamin A Vatten Tiamin Tillsatt socker \\\n", - "name \n", - "havredryck 3per 0.38 0.000 87.80 0.020 0.0 \n", - "havregryn 0.00 0.000 3.06 0.087 0.0 \n", - "Paranötter 0.00 0.600 1.80 0.730 0.0 \n", - "äppelmos 0.00 0.375 6.30 0.015 4.5 \n", - "total 0.38 0.975 98.96 0.852 4.5 \n", - "male 4.00 NaN NaN 0.100 NaN \n", - "female 4.00 NaN NaN 0.100 NaN \n", - "4-6 years 1.70 NaN NaN 0.100 NaN \n", - "\n", - " Fritt socker Selen, Se Sackaros Riboflavin Retinol \\\n", - "name \n", - "havredryck 3per 0.0 0.0 0.10 0.250 0.000000 \n", - "havregryn 0.0 0.0 0.30 0.021 0.000000 \n", - "Paranötter 0.0 225.0 1.80 0.000 0.416667 \n", - "äppelmos 4.5 0.0 1.23 0.003 0.375000 \n", - "total 4.5 225.0 3.43 0.274 0.791667 \n", - "male NaN 90.0 NaN 1.600 800.000000 \n", - "female NaN 75.0 NaN 1.600 700.000000 \n", - "4-6 years NaN 25.0 NaN 0.700 350.000000 \n", - "\n", - " Protein Summa fleromättade fettsyror Fosfor, P \\\n", - "name \n", - "havredryck 3per 1.00 0.80 110.0 \n", - "havregryn 2.85 0.84 108.0 \n", - "Paranötter 14.20 29.20 723.0 \n", - "äppelmos 0.03 0.00 3.6 \n", - "total 18.08 30.84 944.6 \n", - "male NaN NaN 520.0 \n", - "female NaN NaN 520.0 \n", - "4-6 years NaN NaN 440.0 \n", - "\n", - " Niacinekvivalenter Niacin Salt, NaCl Natrium, Na \\\n", - "name \n", - "havredryck 3per 0.2000 0.08 0.1 42.0 \n", - "havregryn 0.7200 0.24 0.0 0.3 \n", - "Paranötter 2.9000 0.48 0.0 0.0 \n", - "äppelmos 0.0345 0.03 0.0 0.6 \n", - "total 3.8545 0.83 0.1 42.9 \n", - "male 1.6000 NaN NaN NaN \n", - "female 1.6000 NaN NaN NaN \n", - "4-6 years 1.6000 NaN NaN NaN \n", - "\n", - " Monosackarider Sockerarter, totalt \\\n", - "name \n", - "havredryck 3per 0.000 2.900 \n", - "havregryn 0.000 0.300 \n", - "Paranötter 0.000 1.800 \n", - "äppelmos 5.385 6.615 \n", - "total 5.385 11.615 \n", - "male NaN NaN \n", - "female NaN NaN \n", - "4-6 years NaN NaN \n", - "\n", - " Summa enkelomättade fettsyror Magnesium, Mg \\\n", - "name \n", - "havredryck 3per 1.80 0.0 \n", - "havregryn 0.78 33.0 \n", - "Paranötter 20.10 400.0 \n", - "äppelmos 0.00 0.3 \n", - "total 22.68 433.3 \n", - "male NaN 350.0 \n", - "female NaN 300.0 \n", - "4-6 years NaN 230.0 \n", - "\n", - " Summa mättade fettsyror Kolhydrater, tillgängliga \\\n", - "name \n", - "havredryck 3per 0.20 6.600 \n", - "havregryn 0.33 19.230 \n", - "Paranötter 15.40 0.000 \n", - "äppelmos 0.00 8.535 \n", - "total 15.93 34.365 \n", - "male NaN NaN \n", - "female NaN NaN \n", - "4-6 years NaN NaN \n", - "\n", - " Kolesterol Kalium, K Jod, I Fullkorn totalt Folat \\\n", - "name \n", - "havredryck 3per 0.0 220.0 22.50 0.0 0.00 \n", - "havregryn 0.0 102.0 2.04 30.0 9.06 \n", - "Paranötter 0.0 623.0 0.00 0.0 5.30 \n", - "äppelmos 0.0 16.8 0.00 0.0 0.15 \n", - "total 0.0 961.8 24.54 30.0 14.51 \n", - "male NaN 3500.0 150.00 NaN 330.00 \n", - "female NaN 3500.0 150.00 NaN 330.00 \n", - "4-6 years NaN 1150.0 100.00 NaN 140.00 \n", - "\n", - " Fibrer Fett, totalt Järn, Fe Energi (kJ) Energi (kcal) \\\n", - "name \n", - "havredryck 3per 0.800 3.0 0.000 248.0 60.00 \n", - "havregryn 2.250 2.1 1.020 470.7 112.50 \n", - "Paranötter 13.700 67.8 2.400 2860.0 683.00 \n", - "äppelmos 0.105 0.0 0.135 146.4 34.95 \n", - "total 16.855 72.9 3.555 3725.1 890.45 \n", - "male NaN NaN 9.000 NaN NaN \n", - "female NaN NaN 15.000 NaN NaN \n", - "4-6 years NaN NaN 7.000 NaN NaN \n", - "\n", - " Disackarider Kalcium, Ca Fettsyra 4:0-10:0 DHA (C22:6) \\\n", - "name \n", - "havredryck 3per 2.90 120.00 0.0 0.0 \n", - "havregryn 0.30 12.90 0.0 0.0 \n", - "Paranötter 1.80 176.00 0.0 0.0 \n", - "äppelmos 1.23 0.75 0.0 0.0 \n", - "total 6.23 309.65 0.0 0.0 \n", - "male NaN 950.00 NaN NaN \n", - "female NaN 950.00 NaN NaN \n", - "4-6 years NaN 800.00 NaN NaN \n", - "\n", - " DPA (C22:5) EPA (C20:5) Arakidonsyra C20:4 \\\n", - "name \n", - "havredryck 3per 0.0 0.0 0.0 \n", - "havregryn 0.0 0.0 0.0 \n", - "Paranötter 0.0 0.0 0.0 \n", - "äppelmos 0.0 0.0 0.0 \n", - "total 0.0 0.0 0.0 \n", - "male NaN NaN NaN \n", - "female NaN NaN NaN \n", - "4-6 years NaN NaN NaN \n", - "\n", - " Arakidinsyra C20:0 Linolensyra C18:3 Linolsyra C18:2 \\\n", - "name \n", - "havredryck 3per 0.0 0.20 0.70 \n", - "havregryn 0.0 0.03 0.81 \n", - "Paranötter 0.1 0.00 29.20 \n", - "äppelmos 0.0 0.00 0.00 \n", - "total 0.1 0.23 30.71 \n", - "male NaN NaN NaN \n", - "female NaN NaN NaN \n", - "4-6 years NaN NaN NaN \n", - "\n", - " Oljesyra C18:1 Stearinsyra C18:0 Palmitoljesyra C16:1 \\\n", - "name \n", - "havredryck 3per 1.70 0.00 0.0 \n", - "havregryn 0.72 0.03 0.0 \n", - "Paranötter 19.90 6.00 0.2 \n", - "äppelmos 0.00 0.00 0.0 \n", - "total 22.32 6.03 0.2 \n", - "male NaN NaN NaN \n", - "female NaN NaN NaN \n", - "4-6 years NaN NaN NaN \n", - "\n", - " Palmitinsyra C16:0 Myristinsyra C14:0 Laurinsyra C12:0 \\\n", - "name \n", - "havredryck 3per 0.2 0.0 0.0 \n", - "havregryn 0.3 0.0 0.0 \n", - "Paranötter 9.2 0.0 0.0 \n", - "äppelmos 0.0 0.0 0.0 \n", - "total 9.7 0.0 0.0 \n", - "male NaN NaN NaN \n", - "female NaN NaN NaN \n", - "4-6 years NaN NaN NaN \n", - "\n", - " Betakaroten/β-Karoten Avfall (skal etc.) Aska Alkohol \\\n", - "name \n", - "havredryck 3per 0.0 0.0 0.70 0.0 \n", - "havregryn 0.0 0.0 0.51 0.0 \n", - "Paranötter 5.0 52.0 3.80 0.0 \n", - "äppelmos 4.5 0.0 0.03 0.0 \n", - "total 9.5 52.0 5.04 0.0 \n", - "male NaN NaN NaN NaN \n", - "female NaN NaN NaN NaN \n", - "4-6 years NaN NaN NaN NaN \n", - "\n", - " weight \n", - "name \n", - "havredryck 3per 100.00 \n", - "havregryn 9.00 \n", - "Paranötter 100.00 \n", - "äppelmos 2.25 \n", - "total 211.25 \n", - "male NaN \n", - "female NaN \n", - "4-6 years NaN " - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "\n", - "mineral_dict = slv.populate_mineral_dict(menu)\n", - "mineral_df = slv.mineral_dict_to_df(mineral_dict)\n", - "mineral_df = slv.convert_betakaroten_to_retinol(mineral_df)\n", - "display(mineral_df)\n", - "\n", - "mineral_df = slv.calculate_minerals_for_weight(mineral_df)\n", - "\n", - "display(mineral_df)\n", - "\n", - "# calculate total\n", - "mineral_df.loc['total'] = mineral_df.sum()\n", - "\n", - "# create an own class for rdi?\n", - "rdi_dict = slv.init_mineral_dict()\n", - "for gen in rdi['Zink, Zn'].keys():\n", - " for col in rdi_dict.keys():\n", - " if col in rdi.keys():\n", - " rdi_dict[col].append(rdi[col][gen])\n", - " elif col == 'name':\n", - " rdi_dict['name'].append(gen)\n", - " else:\n", - " rdi_dict[col].append(None)\n", - "\n", - "rdi_df = pd.DataFrame.from_dict(rdi_dict)\n", - "rdi_df.set_index('name', inplace=True)\n", - "mineral_df = pd.concat([mineral_df, rdi_df])\n", - "\n", - "pd.set_option('display.max_columns', 500)\n", - "display(mineral_df)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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fHx8EBUVBU9PT5iYmCAhIQExMTEK7f79A0IgEFS7TSqV1nq+p4+pnNr4rGOaNm2Ktm3bAgAcHBywbt06uLi4IDU1tcZFLWqSkJCASZMmYc+ePbUeKxQKq12go39JDMrKDOp1TnWQ20B/wGtra/PLi5pgLtQHc6E+mAvV0pYJVB0CUYPSoBe5qDRu3DhoaGhg165d2LFjB/z8/ORFS3V0dHRQXq44Xp6RkQFbW1uEhoaiR48ecHBwwO3bt1926C+kctTqyZMn9Tru22+/xUcffYRvv/1WPk2RiIiIiIierVGMYBkaGuLdd99FSEgIRCIRfH19a21vZ2eHn376CVlZWTA3N4eJiQkcHByQl5eHhIQE9OzZEwcPHkRiYuKruYA6evToEe7duyefIjhv3jxYWFigb9++8jZXr15FaWkp/u///g+PHj2SP1y5chXFXbt2YeLEifjss8/Qu3dv3Lt3DwCgp6dX7T1rRERERET0P42iwAIqpgl+9dVX8Pb2hrW1da1tAwICkJaWhh49eqCoqAipqal4++23MWvWLAQGBkIsFmPo0KEICwtDZGTkq7mAOggPD0d4eDgAwMLCAj179sSRI0cUnvHl7e2tMPLWrVs3AIBMJgMAfPnllygrK8O0adMwbdo0ebuJEydWWe6+NmdCBqv02WJERERERKogkFV+syZSApFIBBMTE9y/f58FlhqQSCRITk6Gt7c3729QMeZCfTAX6oO5UA/FpWVoH5yIO+vGobCwsMoCXkRUP43iHiwiIiIiIqJXgQUWERERERGRkrDAIiIiIiIiUhIWWERERERERErCAouIiIiIiEhJWGAREREREREpCQssIiIiIiIiJWGBRUREREREpCQssIiIiIiIiJRES9UBvA4iIyORlJSEixcvquT8AoEAiYmJGDFihErO/zzc97ijTK9M1WE0ekIIEWYaBpddLhBDrOpwGjXmonqZEzNVHQIREZFSNeoRrOHDh8PLy6vafSdPnoRAIMDly5cRFBSEY8eOyff5+vq+0mInPz8fQ4YMeaE+7OzsIBAIIBAIoKmpCWtra/j7++PBgwcK7WQyGVavXg1HR0cIhUK0aNECS5cufaFzExERERE1Fo26wPL390dKSgru3r1bZV9cXBx69OgBJycnGBoawtzcXAURVrC0tIRQKHzhfhYtWoT8/Hzk5eVh586dOHHi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tKjfsUVEREREZKk4gzUETk5OWL58OdLS0qDX6xEXF3fT8X5+fnj33XdRX18Pd3d3qNVqBAYGoqWlBVqtFrNnz8ahQ4dQVFQ0Om9giLq6utDe3g6DwYBz587hjTfewN69e5GVlYX7779f7vKIiIiIiCweG6whSkhIwF//+lcsWbIE3t7eNx27cuVKVFRUIDg4GN3d3SgvL8cTTzyBdevWISkpCb29vYiMjERGRga2bNkyOm9gCDZv3ozNmzfD3t4eGo0GP/7xj1FaWoqwsLBh76s6baGsvxuMiIiIiEgOCiGEkLsIsh56vR5qtRrnz59ng2UBDAYDSkpKsGTJEl7fIDNmYTmYheVgFpah52ofgjYUofX3y3Dp0qUBN+AiouHhNVhEREREREQSYYNFREREREQkETZYREREREREEmGDRUREREREJBE2WERERERERBJhg0VERERERCQRNlhEREREREQSYYNFREREREQkEVu5C7AmW7ZswcGDB3HmzBlZXl+hUKCoqAhRUVGyvP71wg+Eo29cn9xljHkqqJDhmoGQwhD0olfucsY0ZmE5mIXlsLQszsaelbsEIrICnMEagscffxyLFy8edN3Ro0ehUCjw0UcfITU1FaWlpaZ1cXFxo9rstLW14bHHHrujffj5+UGhUAx4bN++XaIqiYiIiIisF2ewhiAhIQFPPfUUvvzyS9x7771m6/Lz8xEcHIzp06cDAJycnOQoEQCg0Wgk2c/WrVuxcuVKs2XOzs6S7JuIiIiIyJpxBmsIfv7zn2PSpEkoKCgwW97d3Y0DBw4gISEBwPenCM6cOdP097/97W946623TLNAFRUVAIANGzbggQcegKOjI+677z5kZGTAYDCY9nttP3l5efDx8YGTkxPWrFmD/v5+ZGdnQ6PRwMPDA9u2bTOrR6FQ4ODBgwCApqYmKBQKvPnmmwgLC4OjoyNmzJiBqqqqW75fZ2dnaDQas8f48eNv7+AREREREY0hnMEaAltbWzz77LMoKChAeno6FAoFAODAgQPo7+9HdHT0gG1SU1NRV1cHvV6P/Px8AICbmxuA7xuYgoICeHt74+zZs1i5ciWcnZ2xfv160/aNjY04fPgw/vWvf6GxsRG//OUv8cUXX+CBBx5AZWUljh8/jvj4eISHh2POnDk3rD09PR27du1CYGAg0tPTER0djYaGBtjaShN9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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "\n", - "for gen in rdi['Zink, Zn'].keys():\n", - " mineral_df.loc[gen + ' percentage'] = rdi_per = mineral_df.loc['total'] / mineral_df.loc[gen] * 100\n", - "\n", - "#ax = mineral_df['total'].plot.bar(rot=0)\n", - "rdi_per_labels = ['female percentage', 'male percentage', '4-6 years percentage']\n", - "ax = mineral_df.loc[rdi_per_labels].dropna(axis=1, how='all').transpose().plot.barh()\n", - "ax.legend(bbox_to_anchor=(1.42, 1))\n", - "ax.axvline(x=100)\n", - "ax.set_xlim([0, 100])\n", - "ax.grid()" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "livsmedel-9tGI6gb3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.10.12" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} From 19235ff6ec8082a4d0557d9fdc735ae7111ee6cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christoffer=20Str=C3=B6mberg?= Date: Thu, 29 Feb 2024 16:26:44 +0100 Subject: [PATCH 7/8] structure --- .../__pycache__/slv_wrapper.cpython-310.pyc | Bin 4244 -> 0 bytes src/{ => ifk_co2_meal_planner}/rdi.py | 0 .../slv_wrapper.py | 2 +- 3 files changed, 1 insertion(+), 1 deletion(-) delete mode 100644 src/co2_meal_planner/__pycache__/slv_wrapper.cpython-310.pyc rename src/{ => ifk_co2_meal_planner}/rdi.py (100%) rename src/{co2_meal_planner => ifk_co2_meal_planner}/slv_wrapper.py (96%) diff --git a/src/co2_meal_planner/__pycache__/slv_wrapper.cpython-310.pyc b/src/co2_meal_planner/__pycache__/slv_wrapper.cpython-310.pyc deleted file mode 100644 index d69365a8704e947c292674369bc5db8319e5a024..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4244 zcmbVPOK%*<5uVpR`4G9HXwiy6%lHK?3rY@L@X1ET(t5rn|bkzN)Wk zlBK1(fooTO&HuV=82_YB@v_l*f?M83!;D>nnaqmJT}%JlyY|NhvzhbSV9qOR*J0Lk zqgfjM@SRWjL7&UaWq#(n9g+0hC>+QhXFQSvE?)Ai^#&S^oq*cn<)HHfxBLSdZtR*^ z6|3#qY=b$h^xDBHWnN+yvpWu}uqq^FR^t_B@hT*Bwg5>@_bj%^me8xSWnP`Uzrt1^ zSzxPLve;e1oCdoJ*)m(>=wndqS7P}7V3bS$2w^jXlH29_P)0B(hdru=@ zO1F~;x5Kj_jQ3nWW^O8yfI}{$fi_1=l?BiGBHjs19C3P)rRjc(JGZtuGCYG>V>2_4 zt&w?Rj;)b(Y@fj58wTDv%+c1q@<|+Kp&x}qKMRw%^@h|AyZc#|%B^;rAV?FD`BCc} z29mdDvbLXw?ZH=)N1YZRl2A3Czx{F2=}4YE+Pocwy)b)p|G|TYw`D5)myhnL+Dyq# zv!p7M*{UjXFObUK|d~p@vm?JpqhH-43 z7z0DBXMl_PXsr$7m1PHmE8^$srf2lw!pU!UgPKtWZNo($>x! zP=TQqa?Ki*RR|;*tzKS%wX9z|)^NRGvBFTj>I*JTnT?`)W;V?w@b0ehJNWm=L~H-P zG`6&#TPG&@_}Cs%ggL{1e9SYq7Xo2Fk~*LUVdg`SN7`OE;IWHyV#Q01mk)vY^iVfQ zgy1qwVn)V?8GTo#JP12spe;Mc;Zq%~XP{tVkhzCpwy(EFJ43{uS4xOYR-9ooeE9!G z=5S#ijqTxbJNC(Mm@&u=W&`EgixGEksz-k7x>_viIJ=M4bF2J_wv&havRTCs zxPR}mZ7HY6x+pJ+uh z9`VYZ_Px!`z2*gei_Oec3JOzkiyHDx?SrbM2?9*;eTY;kgeyo@rivwIxsz0Kl6Z%v zxHQN{kSK>nit8l2K@FwiywSl?=&x&`04 zaI#+fl>1P!rEt^ka|aKZ(Jja72u%yF?G3W-7wywXA6{WYJmPW1?UCO z{FlB+G9+@~gW@=hlc-?ZkNhA*QSApv+S7C`zoS-~?YaZ>E`wo~m;W0CF^2Z$_7a9l zfwOt8c(aI8tIA|RpW^Q)^K-TT{+GKy%a5q>nATooNLB9W^PL6iR**ZeSFjJ^HL=gH zFja%*EHte0H;yxG7C^gv?kVgjz-B?FD_WB{8VuV2H-nu=W*3z$kVLp`7;7lmZU94) zZ5s!UM$;bt`9s$2-3n($r$$P3tX8fKTnH0QVrQMv?R*Vp?hLZumU52wcU z*%RdFDyU9~g*t7&i(oS=gzE&uic%G_z9$c;;(et9`9rXQZ@}}Z>ED1bMT)`w|<6}Zx(@&`I zl|z)FNnW$RAPNItzkMUlWQ+)9HGG9WMqBQ>^#j3iUALucCtmb}fRIRGnu>S*rSY9mv diff --git a/src/rdi.py b/src/ifk_co2_meal_planner/rdi.py similarity index 100% rename from src/rdi.py rename to src/ifk_co2_meal_planner/rdi.py diff --git a/src/co2_meal_planner/slv_wrapper.py b/src/ifk_co2_meal_planner/slv_wrapper.py similarity index 96% rename from src/co2_meal_planner/slv_wrapper.py rename to src/ifk_co2_meal_planner/slv_wrapper.py index ed57f77..b7aea1b 100644 --- a/src/co2_meal_planner/slv_wrapper.py +++ b/src/ifk_co2_meal_planner/slv_wrapper.py @@ -10,7 +10,7 @@ class SlvWrapper: def __init__(self) -> None: """Initialization.""" self.version = 1 - list_of_foods_url = "https://dataportal.livsmedelsverket.se/livsmedel/api/v{self.version}/livsmedel?offset=0&limit=2556&sprak=1" + list_of_foods_url = f"https://dataportal.livsmedelsverket.se/livsmedel/api/v{self.version}/livsmedel?offset=0&limit=2556&sprak=1" all_foods = requests.get(list_of_foods_url) # noqa: S113 self.all_foods = all_foods.json()["livsmedel"] From bc86655a2f87145b227f1b90f3948a9fccb6a3ec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christoffer=20Str=C3=B6mberg?= Date: Fri, 26 Jul 2024 22:30:52 +0200 Subject: [PATCH 8/8] breakdown, work on going --- notebooks/example.py | 56 +++++++++++++++++++++++++ src/ifk_co2_meal_planner/slv_wrapper.py | 45 +++++++++++++++++++- 2 files changed, 100 insertions(+), 1 deletion(-) diff --git a/notebooks/example.py b/notebooks/example.py index 6322594..12050b0 100644 --- a/notebooks/example.py +++ b/notebooks/example.py @@ -62,6 +62,7 @@ pd.set_option("display.max_columns", 500) print(mineral_df) + # %% for gen in rdi["Zink, Zn"].keys(): @@ -76,3 +77,58 @@ ax.axvline(x=100) ax.set_xlim([0, 100]) ax.grid() + + +# %% +# get classifications +a = slv.get_ingredients_from_number(300) + +classifications = [] +for i in range(1, 70): + classification = slv.get_calssification_from_number(i) + try: + if len(slv.get_ingredients_from_number(i)) == 1: + if classification[-1]["kod"] not in classifications: + classifications.append(classification[-1]["kod"]) + except Exception: + print("did not find number: ", i) + +for x in classifications: + print(x) + +# %% +menu = { + "Mango": {"number": 574, "weight": 50}, + "Cashewnötter rostade u. salt": {"number": 1557, "weight": 20}, + "Hirs kokt m. salt fullkorn": {"number": 834, "weight": 100}, + "Potatisgratäng m. lättmjölk ost mager hemlagad": {"number": 279, "weight": 300}, +} + +# breakdown to ingredients +menu_ingredients = {} +for key, value_dict in menu.items(): + ingredients = slv.get_ingredients_from_number(value_dict["number"]) + if len(ingredients) == 1: + if key in menu_ingredients.keys(): + menu_ingredients[key]["weight"] = ( + menu_ingredients[key]["weight"] + value_dict["weight"] + ) + else: + menu_ingredients[key] = value_dict + else: + total_weight = value_dict["weight"] + for food in ingredients: + number = slv.get_number_from_name(food["namn"]) + weight = (total_weight * food["andel"]) / 100 + if food["namn"] in menu_ingredients.keys(): + menu_ingredients[food["namn"]]["weight"] = ( + menu_ingredients[food["namn"]]["weight"] + weight + ) + else: + menu_ingredients[food["namn"]] = {"number": number, "weight": weight} + + +# %% + + +a = slv.search_food("Mjölk") diff --git a/src/ifk_co2_meal_planner/slv_wrapper.py b/src/ifk_co2_meal_planner/slv_wrapper.py index b7aea1b..218612a 100644 --- a/src/ifk_co2_meal_planner/slv_wrapper.py +++ b/src/ifk_co2_meal_planner/slv_wrapper.py @@ -21,11 +21,28 @@ def search_food(self, food: str) -> None: food: name of food to search for. """ for livsmedel in self.all_foods: - if food in livsmedel["namn"].lower(): + if food.lower() in livsmedel["namn"].lower(): print(livsmedel["namn"], livsmedel["nummer"]) pass + def get_number_from_name(self, food: str) -> int: + """Get number from name. + + Args: + food: name of food to search for. + + Retruns: + number of food. + """ + number = -1 + for livsmedel in self.all_foods: + if food == livsmedel["namn"]: + number = livsmedel["nummer"] + break + + return number + def get_minerals_from_number(self, number: int) -> dict: """Get minerals and vitamins for given number. @@ -39,6 +56,32 @@ def get_minerals_from_number(self, number: int) -> dict: temp_minerals = requests.get(url).json() # noqa: S113 return temp_minerals + def get_ingredients_from_number(self, number: int) -> dict: + """Get ingredients for given number. + + Args: + number: number corresponding to a specific food + + Returns: + dict with ingredients + """ + url = f"https://dataportal.livsmedelsverket.se/livsmedel/api/v{self.version}/livsmedel/{number}/ravaror" + ingredients = requests.get(url).json() # noqa: S113 + return ingredients + + def get_classification_from_number(self, number: int) -> dict: + """Get classification from number. + + Args: + number: number corresponding to a specific food + + Returns: + dict classification + """ + url = f"https://dataportal.livsmedelsverket.se/livsmedel/api/v{self.version}/livsmedel/{number}/klassificeringar" + classification_from_number = requests.get(url).json() # noqa: S113 + return classification_from_number + def init_mineral_dict(self) -> dict: """Initialization of mineral dict.