{
"info": {
"author": "Andrej Radovi\u0107",
"author_email": "r.andrej@gmail.com",
"bugtrack_url": null,
"classifiers": [
"Development Status :: 3 - Alpha",
"Intended Audience :: Developers",
"License :: OSI Approved :: MIT License",
"Operating System :: OS Independent",
"Programming Language :: C",
"Programming Language :: Python",
"Programming Language :: Python :: 3.6",
"Programming Language :: Python :: 3.7",
"Programming Language :: Python :: 3 :: Only",
"Programming Language :: Python :: Implementation :: CPython",
"Programming Language :: Python :: Implementation :: PyPy",
"Topic :: Software Development :: Code Generators",
"Topic :: Software Development :: Embedded Systems",
"Topic :: Software Development :: Libraries :: Python Modules",
"Topic :: Software Development :: Pre-processors"
],
"description": "\n######\ncsnake\n######\n\n.. image:: https://gitlab.com/andrejr/csnake/badges/master/pipeline.svg\n :alt: pipeline status\n :target: https://gitlab.com/andrejr/csnake/pipelines\n.. image:: https://gitlab.com/andrejr/csnake/badges/master/coverage.svg\n :alt: coverage report\n :target: https://andrejr.gitlab.io/csnake/coverage/index.html\n\nCsnake is a Python 3 package that helps you generate C code from Python.\n\nCsnake provides you with a consistent and opinionated API that helps you\nstructure your C-generating Python code.\nIt does so by providing classes and functions for generating every C language\nconstruct.\n\nProbably the most important feature is the ability to initialize a value to\n``struct`` and *array* initializers from Python dicts and lists (actually,\n``Map``\\s and ``Collection``\\s), nested to an arbitrary level.\n\nHere's a taste:\n\n.. code-block:: python\n\n from csnake import CodeWriter, Variable, FormattedLiteral\n import numpy as np\n\n var = Variable(\n \"test\",\n primitive=\"struct whatever\",\n value={\n \"field1\": [{'x': num, 'y': 10-num} for num in range(2)],\n \"field2\": {'test': range(3), 'field': np.arange(6).reshape(2,3)},\n \"field3\": FormattedLiteral([30, 31, 32], int_formatter=hex),\n \"field4\": 8,\n },\n )\n cw = CodeWriter()\n cw.add_variable_initialization(var)\n print(cw)\n\n\nThis yields:\n\n.. code-block:: c\n\n struct whatever test = {\n .field1 = {\n {\n .x = 0,\n .y = 10\n },{\n .x = 1,\n .y = 9\n }\n },\n .field2 = {\n .test = {0, 1, 2},\n .field = {\n {0, 1, 2},\n {3, 4, 5}\n }\n\n },\n .field3 = {0x1e, 0x1f, 0x20},\n .field4 = 8\n };\n\nAs shown, ``numpy`` arrays are supported as values (so are ``sympy`` arrays),\nand values can be formatted by arbitrary functions (here we're using ``hex`` to\noutput ints as hex literals for member `field3`).\n\nMotivation\n==========\n\nCsnake's varable generation was motivated by a common embedded development\ntask: inputting data into C code.\n\nCsnake should be of help when generating C code for representing data like\nbitmaps, fonts, statemachines, lookup tables - as arrays and structs.\nIt can also be used for loop unrolling, templating, ...\n\nCsnake can be easily incorporated into a build system (Make, CMake,\nScons,...), and also goes along great with\n`Ned Batcher's cog `_.\n\nDocumentation\n=============\n\nDocumentation (Sphinx) can be viewed on\n`GitLab pages for this package `_.\n\nExamples\n========\n\nCsnake is used on several of my yet-to-be-released open source embedded\nprojects. I'll be adding those (and other) examples along the way.\n\nCredits\n=======\n\nCsnake is a major re-implementation (and improvement) of\n`C-Snake `_\nby\n`Oliver `_\n(original idea) and Andrej (variable initialization idea and implementation,\nauthor of this package).\n\nIt's provided under the MIT license.\n\nChangelog\n=========\n\nThe changelog can be found within the documentation, \n`here `_.\n\n\n",
"description_content_type": "text/x-rst; charset=UTF-8",
"docs_url": null,
"download_url": "",
"downloads": {
"last_day": -1,
"last_month": -1,
"last_week": -1
},
"home_page": "https://gitlab.com/andrejr/csnake",
"keywords": "",
"license": "MIT",
"maintainer": "",
"maintainer_email": "",
"name": "csnake",
"package_url": "https://pypi.org/project/csnake/",
"platform": "",
"project_url": "https://pypi.org/project/csnake/",
"project_urls": {
"Homepage": "https://gitlab.com/andrejr/csnake"
},
"release_url": "https://pypi.org/project/csnake/0.3.0/",
"requires_dist": [
"numpy ; extra == 'numpy_arrays_matrices_types_as_initializers'",
"pillow ; extra == 'pillow_images_as_initializers'",
"sympy ; extra == 'sympy_arrays_matrices_types_as_initializers'"
],
"requires_python": ">=3.6.0",
"summary": "C code generation helper package.",
"version": "0.3.0"
},
"last_serial": 5704218,
"releases": {
"0.2.0": [
{
"comment_text": "",
"digests": {
"md5": "9d68ddf4c6e33e43bf0e9b87fc8746e4",
"sha256": "01f238e24c056bb86fd4d75e666d535ce66ba22e5be8541ab0be371c26f522c2"
},
"downloads": -1,
"filename": "csnake-0.2.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "9d68ddf4c6e33e43bf0e9b87fc8746e4",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.6.0",
"size": 24960,
"upload_time": "2018-10-08T10:53:37",
"url": "https://files.pythonhosted.org/packages/71/75/1ee2e1d1c0d1e8d8fa85fe3c7aaf6902810a9d1c4d7281fbef0b6a3a1cf9/csnake-0.2.0-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "0f53d4ca2aff5fb45e13c6242aea9cd5",
"sha256": "e668bfba1bea12d2327b7e3f215117365d12627644da2c251e319c12f0988063"
},
"downloads": -1,
"filename": "csnake-0.2.0.tar.gz",
"has_sig": false,
"md5_digest": "0f53d4ca2aff5fb45e13c6242aea9cd5",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.6.0",
"size": 553160,
"upload_time": "2018-10-08T10:53:40",
"url": "https://files.pythonhosted.org/packages/2e/1d/04bdd8abf065c8b1c4ddda69e87dc0faf8c51e9d2c7d239e03be80e6a79e/csnake-0.2.0.tar.gz"
}
],
"0.2.1": [
{
"comment_text": "",
"digests": {
"md5": "df58c3f0aee027c2feb9cdb6aeb2a2d3",
"sha256": "ac4ffcdadf6ebc9bbf47c37d277043adac6785f771d5ddd999b34c1869d752d5"
},
"downloads": -1,
"filename": "csnake-0.2.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "df58c3f0aee027c2feb9cdb6aeb2a2d3",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.6.0",
"size": 24956,
"upload_time": "2018-10-08T11:20:38",
"url": "https://files.pythonhosted.org/packages/9f/83/5606b6a61c208c06c0cd29db332f899fc1c039fd8d5adbfd037860a530a6/csnake-0.2.1-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "fcfc988043bdf9daabb6f4fbe32de8f3",
"sha256": "1c3add7a1c4456fca12a8ed44e019494f9f2ffbcda0f9957b00fb0f1455d7fd1"
},
"downloads": -1,
"filename": "csnake-0.2.1.tar.gz",
"has_sig": false,
"md5_digest": "fcfc988043bdf9daabb6f4fbe32de8f3",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.6.0",
"size": 263399,
"upload_time": "2018-10-08T11:20:39",
"url": "https://files.pythonhosted.org/packages/96/ba/b09be5b39e60a3f2db1fcc0ba866732ec3a1f16f4b25e16b3bf34abc9850/csnake-0.2.1.tar.gz"
}
],
"0.2.2": [
{
"comment_text": "",
"digests": {
"md5": "b79d11943810555539f1e30dae1f895e",
"sha256": "e798889976826edbb264395a54d29b799a7aeedf8f94fb86f6f4efa1ff6a27bc"
},
"downloads": -1,
"filename": "csnake-0.2.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "b79d11943810555539f1e30dae1f895e",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.6.0",
"size": 25200,
"upload_time": "2018-10-08T17:03:25",
"url": "https://files.pythonhosted.org/packages/36/c1/7b371f58ecb0fefd36cfca15822f909c6bd24a86fe18b4fecc2e0d7279bf/csnake-0.2.2-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "513c862fb0818b89888b14fc7b637c46",
"sha256": "86e74c9adb74e0b1fac8af483d4a27b0b8ba57609eaec1ab2e4c5db145bfda8e"
},
"downloads": -1,
"filename": "csnake-0.2.2.tar.gz",
"has_sig": false,
"md5_digest": "513c862fb0818b89888b14fc7b637c46",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.6.0",
"size": 264785,
"upload_time": "2018-10-08T17:03:27",
"url": "https://files.pythonhosted.org/packages/75/61/7f4c5182e1c95904662fa67fafefd5a292d285a3f5086da0e68a4c141b40/csnake-0.2.2.tar.gz"
}
],
"0.2.3": [
{
"comment_text": "",
"digests": {
"md5": "c3937a36a7a745365e3758ac32ec19fd",
"sha256": "18b16467ee28c236f765af8ac6290d9496826f8b09ea369f85ddf93e2e0ba33b"
},
"downloads": -1,
"filename": "csnake-0.2.3-py3-none-any.whl",
"has_sig": false,
"md5_digest": "c3937a36a7a745365e3758ac32ec19fd",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.6.0",
"size": 25115,
"upload_time": "2018-10-08T19:13:59",
"url": "https://files.pythonhosted.org/packages/f9/a6/7325f2f3c82d011d7c6186ec268c50ad524603a3853a0ee51fd00f745a03/csnake-0.2.3-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "f3f2ff96b097c9808305be0556ed4d16",
"sha256": "237f4fb1eb6b0f6cc66ffd634f3f740ca3259085a6e8367592ca95f2beffc3d5"
},
"downloads": -1,
"filename": "csnake-0.2.3.tar.gz",
"has_sig": false,
"md5_digest": "f3f2ff96b097c9808305be0556ed4d16",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.6.0",
"size": 264820,
"upload_time": "2018-10-08T19:14:00",
"url": "https://files.pythonhosted.org/packages/b2/38/c0ee4c05740b377c90a202c9683bc8f9bec517a3c5ca103d5fd2a77249a1/csnake-0.2.3.tar.gz"
}
],
"0.2.4": [
{
"comment_text": "",
"digests": {
"md5": "6ba140bab2816d152d8d62ee57f9d449",
"sha256": "e8bde276bd99fcb610db121ea42ddba07e74d34a113b43e14751a0d7be7399c4"
},
"downloads": -1,
"filename": "csnake-0.2.4-py3-none-any.whl",
"has_sig": false,
"md5_digest": "6ba140bab2816d152d8d62ee57f9d449",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.6.0",
"size": 28953,
"upload_time": "2018-10-29T11:55:11",
"url": "https://files.pythonhosted.org/packages/c8/f8/63b750ea8cea743d13818ad495473ac1d66f541759017f1105c09d2160a3/csnake-0.2.4-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "d6cf8de635c435890b54bfb14f48510b",
"sha256": "5b588ed11f91607aa33ecea8d41c32a0b6c18e40e7a2172ffe706846d3855331"
},
"downloads": -1,
"filename": "csnake-0.2.4.tar.gz",
"has_sig": false,
"md5_digest": "d6cf8de635c435890b54bfb14f48510b",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.6.0",
"size": 9710117,
"upload_time": "2018-10-29T11:55:13",
"url": "https://files.pythonhosted.org/packages/45/ae/25ceeb2968d7a1def2818d6e280fd82c989839593a63157d9b4014c16e57/csnake-0.2.4.tar.gz"
}
],
"0.2.5": [
{
"comment_text": "",
"digests": {
"md5": "14fa6e249f4901f2cc2bb69fb23ae28e",
"sha256": "59527a304dc61b162e23b18ef49a10a8f422a6fcb7ea60e504aa6149263a99cd"
},
"downloads": -1,
"filename": "csnake-0.2.5-py3-none-any.whl",
"has_sig": false,
"md5_digest": "14fa6e249f4901f2cc2bb69fb23ae28e",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.6.0",
"size": 29060,
"upload_time": "2019-08-16T20:36:43",
"url": "https://files.pythonhosted.org/packages/92/77/a51985870a34c2b4f35a953949a4662ba68695bbcc7f724a383b4e4435f1/csnake-0.2.5-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "4be1b477edba7c3a0d17604950aa3408",
"sha256": "a7caaed52b4b93436304e3ad08b49807e05aa2a7c20750e8243615af73519c13"
},
"downloads": -1,
"filename": "csnake-0.2.5.tar.gz",
"has_sig": false,
"md5_digest": "4be1b477edba7c3a0d17604950aa3408",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.6.0",
"size": 9699412,
"upload_time": "2019-08-16T20:36:45",
"url": "https://files.pythonhosted.org/packages/26/f5/bb66793f521ecd1be21dc56f9c5a5a3640db91506a3ab37d700d2784fb16/csnake-0.2.5.tar.gz"
}
],
"0.3.0": [
{
"comment_text": "",
"digests": {
"md5": "f9503ce47916ce20bd0c40f0d8ce7bb3",
"sha256": "f5ce56aa6090b9ad83c9639753ccde1680382c186fe439b3d5a563845144902d"
},
"downloads": -1,
"filename": "csnake-0.3.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "f9503ce47916ce20bd0c40f0d8ce7bb3",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.6.0",
"size": 29186,
"upload_time": "2019-08-20T16:03:46",
"url": "https://files.pythonhosted.org/packages/e7/c3/b1c94764f1ee790507a5a09f0bd7b2925ab805f7be774b0f08b9500d2150/csnake-0.3.0-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "bdcacfbf69c7fc4110b5ce50a197168f",
"sha256": "868faef9551ff3166b66a65d19596eba42cc1a23a54c616c8893a8c4fa9eecfa"
},
"downloads": -1,
"filename": "csnake-0.3.0.tar.gz",
"has_sig": false,
"md5_digest": "bdcacfbf69c7fc4110b5ce50a197168f",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.6.0",
"size": 9704416,
"upload_time": "2019-08-20T16:03:48",
"url": "https://files.pythonhosted.org/packages/c7/6c/2e71814386d0c4ae469ca84f03a2a43705e2cf45ad72b6c4f87ff6a832b1/csnake-0.3.0.tar.gz"
}
]
},
"urls": [
{
"comment_text": "",
"digests": {
"md5": "f9503ce47916ce20bd0c40f0d8ce7bb3",
"sha256": "f5ce56aa6090b9ad83c9639753ccde1680382c186fe439b3d5a563845144902d"
},
"downloads": -1,
"filename": "csnake-0.3.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "f9503ce47916ce20bd0c40f0d8ce7bb3",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.6.0",
"size": 29186,
"upload_time": "2019-08-20T16:03:46",
"url": "https://files.pythonhosted.org/packages/e7/c3/b1c94764f1ee790507a5a09f0bd7b2925ab805f7be774b0f08b9500d2150/csnake-0.3.0-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "bdcacfbf69c7fc4110b5ce50a197168f",
"sha256": "868faef9551ff3166b66a65d19596eba42cc1a23a54c616c8893a8c4fa9eecfa"
},
"downloads": -1,
"filename": "csnake-0.3.0.tar.gz",
"has_sig": false,
"md5_digest": "bdcacfbf69c7fc4110b5ce50a197168f",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.6.0",
"size": 9704416,
"upload_time": "2019-08-20T16:03:48",
"url": "https://files.pythonhosted.org/packages/c7/6c/2e71814386d0c4ae469ca84f03a2a43705e2cf45ad72b6c4f87ff6a832b1/csnake-0.3.0.tar.gz"
}
]
}