{ "info": { "author": "Naglis Jonaitis", "author_email": "hello@naglis.me", "bugtrack_url": null, "classifiers": [ "Environment :: Console", "Framework :: Odoo", "Intended Audience :: Developers", "License :: OSI Approved :: Apache Software License", "Natural Language :: English", "Operating System :: POSIX :: Linux", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.8", "Topic :: Software Development :: Quality Assurance", "Typing :: Typed" ], "description": "[![builds.sr.ht status](https://builds.sr.ht/~naglis/odd.svg \"builds.sr.ht status\")](https://builds.sr.ht/~naglis/odd)\n\n# odd\n\nodd, the Odoo addon linter\n\n## Installation\n\nInstall using pip:\n\n```\npip install odd\n```\n\n## Usage\n\n```\nodd 14 path/to/your/odoo_v14/addon\n```\n\n**NOTE**: *odd* does not detect issues out of the box, install\n[odd-bunch](https://pypi.org/project/odd-bunch/) for some plugins that do.\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://git.sr.ht/~naglis/odd", "keywords": "Odoo,static code analysis,linter", "license": "Apache-2.0", "maintainer": "", "maintainer_email": "", "name": "odd", "package_url": "https://pypi.org/project/odd/", "platform": "", "project_url": "https://pypi.org/project/odd/", "project_urls": { "Homepage": "https://git.sr.ht/~naglis/odd", "Repository": "https://git.sr.ht/~naglis/odd" }, "release_url": "https://pypi.org/project/odd/1.1/", "requires_dist": [ "lxml (>=4.4,<5.0)", "defusedxml (>=0.6,<0.7)" ], "requires_python": ">=3.8,<4.0", "summary": "odd, the Odoo addon linter", "version": "1.1", "yanked": true, "yanked_reason": null }, "last_serial": 10936723, "releases": { "0.0.1a1": [ { "comment_text": "", "digests": { "md5": "255983765802944b22e05d4f1542f004", "sha256": "5a1b84fd28261261b6c86fe1f79b62aa6c0306476751afe20f9bde406508a430" }, "downloads": -1, "filename": "odd-0.0.1a1-py3-none-any.whl", "has_sig": false, "md5_digest": "255983765802944b22e05d4f1542f004", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7,<4.0", "size": 193135, "upload_time": "2019-09-03T20:55:11", "upload_time_iso_8601": "2019-09-03T20:55:11.720055Z", "url": "https://files.pythonhosted.org/packages/47/d8/0ceee11a77fbc253b44aed5bc5ac569b6f3e1ce81ceb30665cfe608e3bfa/odd-0.0.1a1-py3-none-any.whl", "yanked": true, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "c5e17f7b106eaaeeb2a1e5c470799efd", "sha256": "279702630c045ac6c3575e7fe4316c59bbb9c4a11cb9c63348907692babed307" }, "downloads": -1, "filename": "odd-0.0.1a1.tar.gz", "has_sig": false, "md5_digest": "c5e17f7b106eaaeeb2a1e5c470799efd", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7,<4.0", "size": 158506, "upload_time": "2019-09-03T20:55:15", "upload_time_iso_8601": "2019-09-03T20:55:15.934882Z", "url": "https://files.pythonhosted.org/packages/62/28/4f0070d0216ecca1428e7d43e05a3c38934b9ce0b354d18ba97c31a3bc9e/odd-0.0.1a1.tar.gz", "yanked": true, "yanked_reason": null } ], "0.0.1a10": [ { "comment_text": "", "digests": { "md5": "e4bb301244dc3af9140e9de6193552c7", "sha256": "0d3f7c90a2596e49a19ef913439d74a9b939cbe079d04e9dd0caaadd3bbd64ae" }, "downloads": -1, "filename": "odd-0.0.1a10-py3-none-any.whl", "has_sig": false, "md5_digest": "e4bb301244dc3af9140e9de6193552c7", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7,<4.0", "size": 28330, "upload_time": "2019-10-12T21:39:18", "upload_time_iso_8601": "2019-10-12T21:39:18.208900Z", "url": "https://files.pythonhosted.org/packages/e8/3a/b9e58c934f114198154cd62c958730d93036ebf8321eb0e886556f4b0af5/odd-0.0.1a10-py3-none-any.whl", "yanked": true, "yanked_reason": null } ], "0.0.1a11": [ { "comment_text": "", "digests": { "md5": "52dd5387ac70f95e4a8380442155259f", "sha256": "83dff0964f1773540df25375199ba1f184af212f660aa124b4c814821426cb52" }, "downloads": -1, "filename": "odd-0.0.1a11-py3-none-any.whl", "has_sig": false, "md5_digest": "52dd5387ac70f95e4a8380442155259f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7,<4.0", "size": 28382, "upload_time": "2019-10-17T21:53:31", "upload_time_iso_8601": "2019-10-17T21:53:31.244200Z", "url": "https://files.pythonhosted.org/packages/10/ea/8e397bb6738a0af7bcf6608eeabaf2bd2f1d82a71815dfc91fd069a8051e/odd-0.0.1a11-py3-none-any.whl", "yanked": true, "yanked_reason": null } ], "0.0.1a12": [ { "comment_text": "", "digests": { "md5": "7ae8e2a685dbbcbc366efa04a3e6c302", "sha256": "a292a4ce71e18f1e7def0f81d59fa874495585e328f1f087ca470b83010d933d" }, "downloads": -1, "filename": "odd-0.0.1a12-py3-none-any.whl", "has_sig": false, "md5_digest": "7ae8e2a685dbbcbc366efa04a3e6c302", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.8,<4.0", "size": 28813, "upload_time": "2019-10-26T13:33:43", "upload_time_iso_8601": "2019-10-26T13:33:43.670712Z", "url": "https://files.pythonhosted.org/packages/c4/40/e0210fef777d6ea40eab1b03be9309525dec5987ae5c9559ff64cd1a7d58/odd-0.0.1a12-py3-none-any.whl", "yanked": true, "yanked_reason": null } ], "0.0.1a13": [ { "comment_text": "", "digests": { "md5": "3b0cb61a1226b66796b26905925cd22d", "sha256": "dd817d992d4a2c64e032fcd315fd57fed8cd77369bda7e1ea2df5472f57aa4fb" }, "downloads": -1, "filename": "odd-0.0.1a13-py3-none-any.whl", "has_sig": false, "md5_digest": "3b0cb61a1226b66796b26905925cd22d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.8,<4.0", "size": 27116, "upload_time": "2019-10-26T20:45:05", "upload_time_iso_8601": "2019-10-26T20:45:05.286788Z", "url": "https://files.pythonhosted.org/packages/69/2f/1500637e22b9a12cf74e01a5a8404f47dc365505f624c6d33d1e5389df58/odd-0.0.1a13-py3-none-any.whl", "yanked": true, "yanked_reason": null } ], "0.0.1a14": [ { "comment_text": "", "digests": { "md5": "4d04e8e9446124955833587aded557b0", "sha256": "d97ebcb1058727e8d17ef98a3d02ec2a77a87ee669bf2c3617f4d0e758fb66ab" }, "downloads": -1, "filename": "odd-0.0.1a14-py3-none-any.whl", "has_sig": false, "md5_digest": "4d04e8e9446124955833587aded557b0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.8,<4.0", "size": 28152, "upload_time": "2019-10-28T01:10:16", "upload_time_iso_8601": "2019-10-28T01:10:16.245566Z", "url": "https://files.pythonhosted.org/packages/75/cf/89dfba4c9902b5dd2048ff696d242abaafe7da4be4483a6827d01fcaddc0/odd-0.0.1a14-py3-none-any.whl", "yanked": true, "yanked_reason": null } ], "0.0.1a15": [ { "comment_text": "", "digests": { "md5": "e24220d687f32226294d52b5181f173e", "sha256": "b0adfc74a602250d5421c4e30df1cd3ba9c0c85b41e3f4420dc9e93c864979cc" }, "downloads": -1, "filename": "odd-0.0.1a15-py3-none-any.whl", "has_sig": false, "md5_digest": "e24220d687f32226294d52b5181f173e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.8,<4.0", "size": 29199, "upload_time": "2019-12-03T22:09:04", "upload_time_iso_8601": "2019-12-03T22:09:04.628817Z", "url": "https://files.pythonhosted.org/packages/87/04/55eb3cb75e4dcb21f627b44a6f77e3ca69c41b1b7b5b910f40262729c36b/odd-0.0.1a15-py3-none-any.whl", "yanked": true, "yanked_reason": null } ], "0.0.1a16": [ { "comment_text": "", "digests": { "md5": "c8fa42768a85093f93c3a3a466b5574c", "sha256": "5be991659a576b3709ab70a2546fdccf11b387c4a3a42895bb830e36525046f2" }, "downloads": -1, "filename": "odd-0.0.1a16-py3-none-any.whl", "has_sig": false, "md5_digest": "c8fa42768a85093f93c3a3a466b5574c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.8,<4.0", "size": 29680, "upload_time": "2019-12-11T18:43:47", "upload_time_iso_8601": "2019-12-11T18:43:47.750593Z", "url": "https://files.pythonhosted.org/packages/b3/8f/52457162b780afa5b5dab4a8473e157f62eecf3a3e5a82dcc857051c8666/odd-0.0.1a16-py3-none-any.whl", "yanked": true, "yanked_reason": null } ], "0.0.1a2": [ { "comment_text": "", "digests": { "md5": "6824f98adf84b54586990646fda7e2dd", "sha256": "23cdc7670ff5c1c4d2a2ec4619ecb4457af640a77869893dc10f800a114b2af2" }, "downloads": -1, "filename": "odd-0.0.1a2-py3-none-any.whl", "has_sig": false, "md5_digest": "6824f98adf84b54586990646fda7e2dd", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7,<4.0", "size": 193158, "upload_time": "2019-09-03T21:20:03", "upload_time_iso_8601": "2019-09-03T21:20:03.005454Z", "url": "https://files.pythonhosted.org/packages/93/93/35d82bcfff1818971385bd9e14eea27b8dd5758900a88f12eb6a3507d55a/odd-0.0.1a2-py3-none-any.whl", "yanked": true, "yanked_reason": null } ], "0.0.1a3": [ { "comment_text": "", "digests": { "md5": "6f17a3a275e3dddc938cca78a8496dca", "sha256": "169c60233156c0350f60383263d98c468f9c74ae20bbc7d55a28957d26dde4f7" }, "downloads": -1, "filename": "odd-0.0.1a3-py3-none-any.whl", "has_sig": false, "md5_digest": "6f17a3a275e3dddc938cca78a8496dca", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7,<4.0", "size": 193319, "upload_time": "2019-09-03T22:08:20", "upload_time_iso_8601": "2019-09-03T22:08:20.087965Z", "url": "https://files.pythonhosted.org/packages/05/68/67279dd8e462fb527244b67f3057e5091db51807c25d6c15391f63495e74/odd-0.0.1a3-py3-none-any.whl", "yanked": true, "yanked_reason": null } ], "0.0.1a4": [ { "comment_text": "", "digests": { "md5": "8782e9a4d3824d450f41371e104501be", "sha256": "2a838af45ce4214845ae19cc5d1ef9d0b15366bfab4bca852e06c65644920725" }, "downloads": -1, "filename": "odd-0.0.1a4-py3-none-any.whl", "has_sig": false, "md5_digest": "8782e9a4d3824d450f41371e104501be", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7,<4.0", "size": 193633, "upload_time": "2019-09-05T23:15:06", "upload_time_iso_8601": "2019-09-05T23:15:06.331892Z", "url": "https://files.pythonhosted.org/packages/98/d2/d4e900fb7d3252b211220b1860eab018d82e4063c6d772a6dc39ce299f40/odd-0.0.1a4-py3-none-any.whl", "yanked": true, "yanked_reason": null } ], "0.0.1a5": [ { "comment_text": "", "digests": { "md5": "6955ae168e0374e59d45b39c62c1efe9", "sha256": "cabd6f749b58bf40e6a1197b779eb3bce908947c10754451236006d56dbb75ca" }, "downloads": -1, "filename": "odd-0.0.1a5-py3-none-any.whl", "has_sig": false, "md5_digest": "6955ae168e0374e59d45b39c62c1efe9", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7,<4.0", "size": 195969, "upload_time": "2019-09-08T22:21:02", "upload_time_iso_8601": "2019-09-08T22:21:02.781293Z", "url": "https://files.pythonhosted.org/packages/5b/01/99e466f2b90295a850db62c14b094f1184df9c9207f4b56a379c2ce864e9/odd-0.0.1a5-py3-none-any.whl", "yanked": true, "yanked_reason": null } ], "0.0.1a6": [ { "comment_text": "", "digests": { "md5": "7a270d2db29b9ff55518e1fc475673c1", "sha256": "969d04b12575b6815c65afd6f32ae0695f9546800a0b88821c93cdc859426aa1" }, "downloads": -1, "filename": "odd-0.0.1a6-py3-none-any.whl", "has_sig": false, "md5_digest": "7a270d2db29b9ff55518e1fc475673c1", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7,<4.0", "size": 30406, "upload_time": "2019-09-16T18:30:39", "upload_time_iso_8601": "2019-09-16T18:30:39.891067Z", "url": "https://files.pythonhosted.org/packages/5f/bb/292d177bdbbc018c5854c12cb89838e671346d66afc07b6564df3c979fb5/odd-0.0.1a6-py3-none-any.whl", "yanked": true, "yanked_reason": null } ], "0.0.1a7": [ { "comment_text": "", "digests": { "md5": "86fc4b88bb9c17e2fd5e7c7f213dc730", "sha256": "ce941d50a29de1e8785bd8d9f22e716222fc5f84ae366cc811d5849da9ae4f3e" }, "downloads": -1, "filename": "odd-0.0.1a7-py3-none-any.whl", "has_sig": false, "md5_digest": "86fc4b88bb9c17e2fd5e7c7f213dc730", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7,<4.0", "size": 30440, "upload_time": "2019-09-20T21:01:11", "upload_time_iso_8601": "2019-09-20T21:01:11.071818Z", "url": "https://files.pythonhosted.org/packages/1b/c7/82fa938658e6460004940aa8072462d8bbe636ce34a493a7b3120e3f60e4/odd-0.0.1a7-py3-none-any.whl", "yanked": true, "yanked_reason": null } ], "0.0.1a8": [ { "comment_text": "", "digests": { "md5": "4b26850f031789291f4802229d0ae883", "sha256": "9496e6ee0c600768589d3d3f2c901f0edd29ef2a0fecc27fa47967f5e5bddd35" }, "downloads": -1, "filename": "odd-0.0.1a8-py3-none-any.whl", "has_sig": false, "md5_digest": "4b26850f031789291f4802229d0ae883", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7,<4.0", "size": 29584, "upload_time": "2019-09-22T20:51:34", "upload_time_iso_8601": "2019-09-22T20:51:34.571509Z", "url": "https://files.pythonhosted.org/packages/88/2a/51774ea8aa015198a85de9e0931537d881ace2287c94be63fdcd6f84b217/odd-0.0.1a8-py3-none-any.whl", "yanked": true, "yanked_reason": null } ], "0.0.1a9": [ { "comment_text": "", "digests": { "md5": "0ce7e2fcc08259789bd2498a039ae9b3", "sha256": "570b4fa986b43e181b18c51892b3b893cafd08e72b17ab99e4a547651d61071d" }, "downloads": -1, "filename": "odd-0.0.1a9-py3-none-any.whl", "has_sig": false, "md5_digest": "0ce7e2fcc08259789bd2498a039ae9b3", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7,<4.0", "size": 28165, "upload_time": "2019-10-05T22:33:16", "upload_time_iso_8601": "2019-10-05T22:33:16.751869Z", "url": "https://files.pythonhosted.org/packages/86/49/7fa7efd325ec4f21a5b56950dc941624b78c43343274c8bc5b66dbd38f37/odd-0.0.1a9-py3-none-any.whl", "yanked": true, "yanked_reason": null } ], "1.0": [ { "comment_text": "", "digests": { "md5": "1e11271063cc92bb08ec26460cb0d0fc", "sha256": "30d6298f9af342f23710d9c7e403313f8f014bda37bfa31cdd3e938951ac0385" }, "downloads": -1, "filename": "odd-1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "1e11271063cc92bb08ec26460cb0d0fc", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.8,<4.0", "size": 29452, "upload_time": "2020-08-09T13:41:20", "upload_time_iso_8601": "2020-08-09T13:41:20.928505Z", "url": "https://files.pythonhosted.org/packages/de/a3/38801a4135fb10d0f9f662122c99a6118b20b9077d2424271c680feea362/odd-1.0-py3-none-any.whl", "yanked": true, "yanked_reason": null } ], "1.1": [ { "comment_text": "", "digests": { "md5": "64999f0d2d7c3c9c4072331fa37b9d75", "sha256": "40c81a018472c15610c9dcca20b77ee23917044369bc4acaa6f9282c70ed914d" }, "downloads": -1, "filename": "odd-1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "64999f0d2d7c3c9c4072331fa37b9d75", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.8,<4.0", "size": 29455, "upload_time": "2020-10-07T21:04:37", "upload_time_iso_8601": "2020-10-07T21:04:37.134689Z", "url": "https://files.pythonhosted.org/packages/68/2f/afdd0efd71f95d7e74faed371a9d6f6c1f2d8f632fdcb1c4d686b4d0f5cb/odd-1.1-py3-none-any.whl", "yanked": true, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "64999f0d2d7c3c9c4072331fa37b9d75", "sha256": "40c81a018472c15610c9dcca20b77ee23917044369bc4acaa6f9282c70ed914d" }, "downloads": -1, "filename": "odd-1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "64999f0d2d7c3c9c4072331fa37b9d75", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.8,<4.0", "size": 29455, "upload_time": "2020-10-07T21:04:37", "upload_time_iso_8601": "2020-10-07T21:04:37.134689Z", "url": "https://files.pythonhosted.org/packages/68/2f/afdd0efd71f95d7e74faed371a9d6f6c1f2d8f632fdcb1c4d686b4d0f5cb/odd-1.1-py3-none-any.whl", "yanked": true, "yanked_reason": null } ], "vulnerabilities": [] }