todo-or-not


Nametodo-or-not JSON
Version 0.9.1 PyPI version JSON
download
home_pagehttps://github.com/apps/todo-or-not
Summarytodoon integrates the TODOs in your codebase with your GitHub repository
upload_time2024-03-24 02:39:30
maintainerNone
docs_urlNone
authorTrentonYo
requires_python<4.0,>=3.11
licenseGPL-3.0-only
keywords todo github
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            [![image.png](https://i.postimg.cc/zDsb0YJW/image.png)](https://postimg.cc/jChSS9nd)

![PyPI - Version](https://img.shields.io/pypi/v/todo-or-not)
[![Coverage Status](https://coveralls.io/repos/github/Start-Out/todo-or-not/badge.svg?branch=dev/staging&kill_cache=1)](https://coveralls.io/github/Start-Out/todo-or-not?branch=dev/staging&kill_cache=1)
![PyPI - Downloads](https://img.shields.io/pypi/dm/todo-or-not)
[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
![PyPI - Python Version](https://img.shields.io/pypi/pyversions/todo-or-not)
![PyPI - License](https://img.shields.io/pypi/l/todo-or-not?color=purple)

## Overview

> TODO or not to do, that is the question

TODO Or Not (todoon) is, in essence, a simple tool that checks your project for TODO's and FIXME's. You can also
integrate this tool into your GitHub workflow via actions, and automate generating issues from the discovered TODO's and
FIXME's.

[Try it out! (see on PyPi)](https://pypi.org/project/todo-or-not/)

```bash
pip install --upgrade todo-or-not
todoignore-util -pc .gitignore 
todoignore-util -ut .git
todoon
```

## Example

Check out [this example code](blob/dev/staging/example.py) and
the [issues that it yielded](https://github.com/Start-Out/todo-or-not/issues?q=is%3Aissue+author%3Aapp%2Ftodo-or-not+label%3Aexample+)!

```py
###########################
# Example usage of # todoon
###########################

def an_unfinished_function():
    # TODO Finish documenting todo-or-not
    print("Hello, I'm not quite done, there's more to do!")
    print("Look at all these things I have to do!")
    a = 1 + 1
    b = a * 2
    print("Okay I'm done!")


def a_broken_function():
    # This line might not show up in the generated issue because it's too far away
    #  from the line that triggered the issue.
    # The search for pertinent lines will stop when it hits a line break or the
    #  maximum number of lines, set by PERTINENT_LINE_LIMIT
    a = [
        1, 1, 2, 3
    ]
    b = sum(a)
    c = b * len(a)
    return c / 0  # FIXME I just don't know why this doesn't work!
    # Notice that this line will be collected

    # But this one won't, because there's some whitespace between it and the trigger!


def a_skipping_example():
    # Since the line below has `# todoon` in it, the checker will give it a pass even though it has the magic words!
    print("Sometimes you really have to write TODO or FIXME, like this!")  # todoon


def a_very_pretty_example():
    # TODO Titled Issue! | In this format, you can define a title and a body! Also labels like #example or #enhancement
    print("Check this out!")

```

## Contributing

Please target `dev/contribute` with your fork, and please use the appropriate PR template! 

## Help

[See the wiki!](wiki)


            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/apps/todo-or-not",
    "name": "todo-or-not",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<4.0,>=3.11",
    "maintainer_email": null,
    "keywords": "todo, github",
    "author": "TrentonYo",
    "author_email": "trentonyo@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/41/32/fe3804ed3a91069a390fd5111b64cdd6e276700e78bd7344a53d0a8c1eb1/todo_or_not-0.9.1.tar.gz",
    "platform": null,
    "description": "[![image.png](https://i.postimg.cc/zDsb0YJW/image.png)](https://postimg.cc/jChSS9nd)\n\n![PyPI - Version](https://img.shields.io/pypi/v/todo-or-not)\n[![Coverage Status](https://coveralls.io/repos/github/Start-Out/todo-or-not/badge.svg?branch=dev/staging&kill_cache=1)](https://coveralls.io/github/Start-Out/todo-or-not?branch=dev/staging&kill_cache=1)\n![PyPI - Downloads](https://img.shields.io/pypi/dm/todo-or-not)\n[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)\n![PyPI - Python Version](https://img.shields.io/pypi/pyversions/todo-or-not)\n![PyPI - License](https://img.shields.io/pypi/l/todo-or-not?color=purple)\n\n## Overview\n\n> TODO or not to do, that is the question\n\nTODO Or Not (todoon) is, in essence, a simple tool that checks your project for TODO's and FIXME's. You can also\nintegrate this tool into your GitHub workflow via actions, and automate generating issues from the discovered TODO's and\nFIXME's.\n\n[Try it out! (see on PyPi)](https://pypi.org/project/todo-or-not/)\n\n```bash\npip install --upgrade todo-or-not\ntodoignore-util -pc .gitignore \ntodoignore-util -ut .git\ntodoon\n```\n\n## Example\n\nCheck out [this example code](blob/dev/staging/example.py) and\nthe [issues that it yielded](https://github.com/Start-Out/todo-or-not/issues?q=is%3Aissue+author%3Aapp%2Ftodo-or-not+label%3Aexample+)!\n\n```py\n###########################\n# Example usage of # todoon\n###########################\n\ndef an_unfinished_function():\n    # TODO Finish documenting todo-or-not\n    print(\"Hello, I'm not quite done, there's more to do!\")\n    print(\"Look at all these things I have to do!\")\n    a = 1 + 1\n    b = a * 2\n    print(\"Okay I'm done!\")\n\n\ndef a_broken_function():\n    # This line might not show up in the generated issue because it's too far away\n    #  from the line that triggered the issue.\n    # The search for pertinent lines will stop when it hits a line break or the\n    #  maximum number of lines, set by PERTINENT_LINE_LIMIT\n    a = [\n        1, 1, 2, 3\n    ]\n    b = sum(a)\n    c = b * len(a)\n    return c / 0  # FIXME I just don't know why this doesn't work!\n    # Notice that this line will be collected\n\n    # But this one won't, because there's some whitespace between it and the trigger!\n\n\ndef a_skipping_example():\n    # Since the line below has `# todoon` in it, the checker will give it a pass even though it has the magic words!\n    print(\"Sometimes you really have to write TODO or FIXME, like this!\")  # todoon\n\n\ndef a_very_pretty_example():\n    # TODO Titled Issue! | In this format, you can define a title and a body! Also labels like #example or #enhancement\n    print(\"Check this out!\")\n\n```\n\n## Contributing\n\nPlease target `dev/contribute` with your fork, and please use the appropriate PR template! \n\n## Help\n\n[See the wiki!](wiki)\n\n",
    "bugtrack_url": null,
    "license": "GPL-3.0-only",
    "summary": "todoon integrates the TODOs in your codebase with your GitHub repository",
    "version": "0.9.1",
    "project_urls": {
        "Documentation": "https://github.com/Start-Out/todo-or-not/blob/main/README.md",
        "Homepage": "https://github.com/apps/todo-or-not",
        "Repository": "https://github.com/Start-Out/todo-or-not"
    },
    "split_keywords": [
        "todo",
        " github"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "8a5736afc9248a41fc15e33380e95835953332c4d2480f915d9cbb8d62d32fae",
                "md5": "ceb91faf390d4972f89c8d517ab4d8e8",
                "sha256": "cbb4d02a31bbbfd4678939b568c38d0edaa24499c9b0944f1fe3b00e1cbc992a"
            },
            "downloads": -1,
            "filename": "todo_or_not-0.9.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "ceb91faf390d4972f89c8d517ab4d8e8",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<4.0,>=3.11",
            "size": 25768,
            "upload_time": "2024-03-24T02:39:29",
            "upload_time_iso_8601": "2024-03-24T02:39:29.268909Z",
            "url": "https://files.pythonhosted.org/packages/8a/57/36afc9248a41fc15e33380e95835953332c4d2480f915d9cbb8d62d32fae/todo_or_not-0.9.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "4132fe3804ed3a91069a390fd5111b64cdd6e276700e78bd7344a53d0a8c1eb1",
                "md5": "d57b960da389e2b4c6b852adf9d69fa2",
                "sha256": "f62f71ed7d779b4977964c1a01e4d3fc1e405041f5aca60012ae1ab30ba18629"
            },
            "downloads": -1,
            "filename": "todo_or_not-0.9.1.tar.gz",
            "has_sig": false,
            "md5_digest": "d57b960da389e2b4c6b852adf9d69fa2",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<4.0,>=3.11",
            "size": 25902,
            "upload_time": "2024-03-24T02:39:30",
            "upload_time_iso_8601": "2024-03-24T02:39:30.860194Z",
            "url": "https://files.pythonhosted.org/packages/41/32/fe3804ed3a91069a390fd5111b64cdd6e276700e78bd7344a53d0a8c1eb1/todo_or_not-0.9.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-03-24 02:39:30",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "apps",
    "github_project": "todo-or-not",
    "github_not_found": true,
    "lcname": "todo-or-not"
}
        
Elapsed time: 0.23578s