kanban-python


Namekanban-python JSON
Version 0.3.2 PyPI version JSON
download
home_pagehttps://github.com/Zaloog/kanban-python
SummaryTerminal Kanban App written in Python
upload_time2023-12-02 14:00:08
maintainer
docs_urlNone
authorZaloog
requires_python
licenseMIT
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage
            <!-- These are examples of badges you might want to add to your README:
     please update the URLs accordingly

[![Built Status](https://api.cirrus-ci.com/github/<USER>/kanban-python.svg?branch=main)](https://cirrus-ci.com/github/<USER>/kanban-python)
[![ReadTheDocs](https://readthedocs.org/projects/kanban-python/badge/?version=latest)](https://kanban-python.readthedocs.io/en/stable/)
[![Conda-Forge](https://img.shields.io/conda/vn/conda-forge/kanban-python.svg)](https://anaconda.org/conda-forge/kanban-python)
[![Twitter](https://img.shields.io/twitter/url/http/shields.io.svg?style=social&label=Twitter)](https://twitter.com/kanban-python)
[![Monthly Downloads](https://pepy.tech/badge/kanban-python/month)](https://pepy.tech/project/kanban-python)
-->

[![Project generated with PyScaffold](https://img.shields.io/badge/-PyScaffold-005CA0?logo=pyscaffold)](https://pyscaffold.org/)
[![PyPI-Server](https://img.shields.io/pypi/v/kanban-python.svg)](https://pypi.org/project/kanban-python/)
[![Downloads](https://static.pepy.tech/badge/kanban-python)](https://pepy.tech/project/kanban-python)
[![Coveralls](https://img.shields.io/coveralls/github/Zaloog/kanban-python/main.svg)](https://coveralls.io/r/Zaloog/kanban-python)

# kanban-python

> A Terminal Kanban Application written in Python to boost your productivity :rocket:

## Introduction
Welcome to **kanban-python**, your Terminal Kanban-Board Manager.

![header](https://raw.githubusercontent.com/Zaloog/kanban-python/main/images/image_header.PNG)
The [clikan] Kanban App inspired me to write
my own Terminal Kanban Application, since I preferred a more simple and guided workflow.

**kanban-python** also comes with more features and customization options.
This package was developed with [pyscaffold], which provides nice project templates
and takes over much of the boilerplate for python packaging.
It was a great help for developing my first package and I can highly recommend it.

## Features
- *colorful and interactive*: kanban-python uses [rich] under the hood to process user input
and display nice looking tables to the terminal.

- *following the XDG convention*: kanban-python utilizes [platformdirs] `user_config_dir` to save the config file and `user_data_dir` for
the board specific task files. After creating your first board, you can use `kanban configure` to show the current settings table.
The config path in the table caption and the path for the task files can be found in the kanban_boards section.

- *automated scanning of files for task creation*: kanban-python can scan files of defined types for specific patterns at start of line.
Check [Automatic Task Creation](#automatic-task-creation) for more Infos.

- *configfile*: A `pykanban.ini` file gets created on first initialization in a `.kanban-python` folder in your `Home`-Directory.
This can be edited manually or within the kanban-python application. It tracks the location for all your created boards. \
![configfile](https://raw.githubusercontent.com/Zaloog/kanban-python/main/images/image_config.PNG)
   * `Active_Board`: current board that is shown when using `kanban`-command
   * `Done_Limit`: If the amount of tasks exceed this number in the  <span style="color:green">Done</span> column,
   the first task of that column gets its status updated to <span style="color:gold">Archived</span> and is moved into that column. (default: `10`)
   * `Column_Min_Width`: Sets the minimum width of columns. (default: `40`)
   * `Show_Footer`: Shows the table footer with package name and version. (default: `True`)
   * `Files`: Space seperated filetypes to search for patterns to create tasks. (default: `.py .md`)
   * `Patterns`: Comma seperated patterns to search for start of line to create tasks. <br />(default: `# TODO,#TODO,# BUG`)

   <br />

- *storage-file for each board*: Each created board comes with its own name and `pykanban.json` file,
which stores all tasks for that board. The files are stored in board specific folders under `.kanban-python/kanban_boards/<BOARDNAME>`

- *column customization*: kanban-python comes with 5 pre-defined colored columns: [Ready, Doing, Done, Archived, Deleted]
More column can be added manually in the `pykanban.ini`, also the visibility can be configured.

- *time-tracking*: for each task it is tracked, how long it was in the
 <span style="color:yellow">Doing</span> column, based on the moments when you update the task status.
 The initial Task structure on creation looks as follows:
![task](https://raw.githubusercontent.com/Zaloog/kanban-python/main/images/image_task_example.PNG)


## Installation
You can install kanban-python with:
```bash
python -m pip install kanban-python
```

## Usage
After Installation of kanban-python, there are 4 commands available:

### Create new Boards
  ```bash
  kanban init
  ```
Is used to create a new kanban board i.e. it asks for a name and then creates a `pykanban.json` file with a Welcome Task.
On first use of any command, the `pykanban.ini` configfile and the `.kanban-python` folder will be created automatically.
![init_file](https://raw.githubusercontent.com/Zaloog/kanban-python/main/images/image_kanban_init.PNG)

### Interact with Tasks/Boards
  ```bash
  kanban
  ```
This is your main command to interact with your boards and tasks. It also gives the option to show the current settings and adjust them.
Adjusting the settings can also be done directly by using the command `kanban configure`:
![kanban](https://raw.githubusercontent.com/Zaloog/kanban-python/main/images/image_kanban.PNG)

Use `Ctrl-C` or `Ctrl-D` to exit the application at any time. :warning: If you exit in the middle of creating/updating a task,
or changing settings, your progress wont be saved.

### Automatic Task Creation
  ```bash
  kanban scan
  ```
After executing this command, kanban-python scans your current Directory recursively for the defined filetypes and searches for lines
that start with the pattern provided.
![settings](https://raw.githubusercontent.com/Zaloog/kanban-python/main/images/image_scan_view.PNG)

After confirmation to add the found tasks to table they will be added to the board. The alphanumeric Part of the Pattern will be used as tag.
The filepath were the task was found will be added as description of the task.
![settings](https://raw.githubusercontent.com/Zaloog/kanban-python/main/images/image_scan_table.PNG)

### Change Settings
  ```bash
  kanban configure
  ```
![settings](https://raw.githubusercontent.com/Zaloog/kanban-python/main/images/image_kanban_configure.PNG)

To create a new custom Columns, you have to edit the `pykanban.ini` manually and add a new column name + visibility status
under the `settings.columns.visible` section. The same way you can also add more file endings or patterns for the `settings.scanner` section.
Keep in mind the specific separators for that section.
I am working on an option to customize those things in the future without the need to manual edit the file.


## Feedback and Issues
Feel free to reach out and share your feedback, or open an Issue, if something doesnt work as expected.
Also check the [Changelog](https://github.com/Zaloog/kanban-python/blob/main/CHANGELOG.md) for new updates. :warning:
With release v0.3.0 kanban-python switched to the [XDG] Basedir Spec. So some file migrations and config edits might be
needed to continue working with your already created boards if you update from `v0.2.X` to `v0.3.X`

<!-- pyscaffold-notes -->

## Note

This project has been set up using PyScaffold 4.5. For details and usage
information on PyScaffold see https://pyscaffold.org/.

[XDG]: https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html
[platformdirs]: https://platformdirs.readthedocs.io/en/latest/
[clikan]: https://github.com/kitplummer/clikan
[pyscaffold]: https://pyscaffold.org/
[rich]: https://github.com/Textualize/rich

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/Zaloog/kanban-python",
    "name": "kanban-python",
    "maintainer": "",
    "docs_url": null,
    "requires_python": "",
    "maintainer_email": "",
    "keywords": "",
    "author": "Zaloog",
    "author_email": "gramslars@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/02/c3/8a6d45ae19e290e8efcb8fede7e50c807c043600df9c5d72f468bc906ed9/kanban-python-0.3.2.tar.gz",
    "platform": "any",
    "description": "<!-- These are examples of badges you might want to add to your README:\n     please update the URLs accordingly\n\n[![Built Status](https://api.cirrus-ci.com/github/<USER>/kanban-python.svg?branch=main)](https://cirrus-ci.com/github/<USER>/kanban-python)\n[![ReadTheDocs](https://readthedocs.org/projects/kanban-python/badge/?version=latest)](https://kanban-python.readthedocs.io/en/stable/)\n[![Conda-Forge](https://img.shields.io/conda/vn/conda-forge/kanban-python.svg)](https://anaconda.org/conda-forge/kanban-python)\n[![Twitter](https://img.shields.io/twitter/url/http/shields.io.svg?style=social&label=Twitter)](https://twitter.com/kanban-python)\n[![Monthly Downloads](https://pepy.tech/badge/kanban-python/month)](https://pepy.tech/project/kanban-python)\n-->\n\n[![Project generated with PyScaffold](https://img.shields.io/badge/-PyScaffold-005CA0?logo=pyscaffold)](https://pyscaffold.org/)\n[![PyPI-Server](https://img.shields.io/pypi/v/kanban-python.svg)](https://pypi.org/project/kanban-python/)\n[![Downloads](https://static.pepy.tech/badge/kanban-python)](https://pepy.tech/project/kanban-python)\n[![Coveralls](https://img.shields.io/coveralls/github/Zaloog/kanban-python/main.svg)](https://coveralls.io/r/Zaloog/kanban-python)\n\n# kanban-python\n\n> A Terminal Kanban Application written in Python to boost your productivity :rocket:\n\n## Introduction\nWelcome to **kanban-python**, your Terminal Kanban-Board Manager.\n\n![header](https://raw.githubusercontent.com/Zaloog/kanban-python/main/images/image_header.PNG)\nThe [clikan] Kanban App inspired me to write\nmy own Terminal Kanban Application, since I preferred a more simple and guided workflow.\n\n**kanban-python** also comes with more features and customization options.\nThis package was developed with [pyscaffold], which provides nice project templates\nand takes over much of the boilerplate for python packaging.\nIt was a great help for developing my first package and I can highly recommend it.\n\n## Features\n- *colorful and interactive*: kanban-python uses [rich] under the hood to process user input\nand display nice looking tables to the terminal.\n\n- *following the XDG convention*: kanban-python utilizes [platformdirs] `user_config_dir` to save the config file and `user_data_dir` for\nthe board specific task files. After creating your first board, you can use `kanban configure` to show the current settings table.\nThe config path in the table caption and the path for the task files can be found in the kanban_boards section.\n\n- *automated scanning of files for task creation*: kanban-python can scan files of defined types for specific patterns at start of line.\nCheck [Automatic Task Creation](#automatic-task-creation) for more Infos.\n\n- *configfile*: A `pykanban.ini` file gets created on first initialization in a `.kanban-python` folder in your `Home`-Directory.\nThis can be edited manually or within the kanban-python application. It tracks the location for all your created boards. \\\n![configfile](https://raw.githubusercontent.com/Zaloog/kanban-python/main/images/image_config.PNG)\n   * `Active_Board`: current board that is shown when using `kanban`-command\n   * `Done_Limit`: If the amount of tasks exceed this number in the  <span style=\"color:green\">Done</span> column,\n   the first task of that column gets its status updated to <span style=\"color:gold\">Archived</span> and is moved into that column. (default: `10`)\n   * `Column_Min_Width`: Sets the minimum width of columns. (default: `40`)\n   * `Show_Footer`: Shows the table footer with package name and version. (default: `True`)\n   * `Files`: Space seperated filetypes to search for patterns to create tasks. (default: `.py .md`)\n   * `Patterns`: Comma seperated patterns to search for start of line to create tasks. <br />(default: `# TODO,#TODO,# BUG`)\n\n   <br />\n\n- *storage-file for each board*: Each created board comes with its own name and `pykanban.json` file,\nwhich stores all tasks for that board. The files are stored in board specific folders under `.kanban-python/kanban_boards/<BOARDNAME>`\n\n- *column customization*: kanban-python comes with 5 pre-defined colored columns: [Ready, Doing, Done, Archived, Deleted]\nMore column can be added manually in the `pykanban.ini`, also the visibility can be configured.\n\n- *time-tracking*: for each task it is tracked, how long it was in the\n <span style=\"color:yellow\">Doing</span> column, based on the moments when you update the task status.\n The initial Task structure on creation looks as follows:\n![task](https://raw.githubusercontent.com/Zaloog/kanban-python/main/images/image_task_example.PNG)\n\n\n## Installation\nYou can install kanban-python with:\n```bash\npython -m pip install kanban-python\n```\n\n## Usage\nAfter Installation of kanban-python, there are 4 commands available:\n\n### Create new Boards\n  ```bash\n  kanban init\n  ```\nIs used to create a new kanban board i.e. it asks for a name and then creates a `pykanban.json` file with a Welcome Task.\nOn first use of any command, the `pykanban.ini` configfile and the `.kanban-python` folder will be created automatically.\n![init_file](https://raw.githubusercontent.com/Zaloog/kanban-python/main/images/image_kanban_init.PNG)\n\n### Interact with Tasks/Boards\n  ```bash\n  kanban\n  ```\nThis is your main command to interact with your boards and tasks. It also gives the option to show the current settings and adjust them.\nAdjusting the settings can also be done directly by using the command `kanban configure`:\n![kanban](https://raw.githubusercontent.com/Zaloog/kanban-python/main/images/image_kanban.PNG)\n\nUse `Ctrl-C` or `Ctrl-D` to exit the application at any time. :warning: If you exit in the middle of creating/updating a task,\nor changing settings, your progress wont be saved.\n\n### Automatic Task Creation\n  ```bash\n  kanban scan\n  ```\nAfter executing this command, kanban-python scans your current Directory recursively for the defined filetypes and searches for lines\nthat start with the pattern provided.\n![settings](https://raw.githubusercontent.com/Zaloog/kanban-python/main/images/image_scan_view.PNG)\n\nAfter confirmation to add the found tasks to table they will be added to the board. The alphanumeric Part of the Pattern will be used as tag.\nThe filepath were the task was found will be added as description of the task.\n![settings](https://raw.githubusercontent.com/Zaloog/kanban-python/main/images/image_scan_table.PNG)\n\n### Change Settings\n  ```bash\n  kanban configure\n  ```\n![settings](https://raw.githubusercontent.com/Zaloog/kanban-python/main/images/image_kanban_configure.PNG)\n\nTo create a new custom Columns, you have to edit the `pykanban.ini` manually and add a new column name + visibility status\nunder the `settings.columns.visible` section. The same way you can also add more file endings or patterns for the `settings.scanner` section.\nKeep in mind the specific separators for that section.\nI am working on an option to customize those things in the future without the need to manual edit the file.\n\n\n## Feedback and Issues\nFeel free to reach out and share your feedback, or open an Issue, if something doesnt work as expected.\nAlso check the [Changelog](https://github.com/Zaloog/kanban-python/blob/main/CHANGELOG.md) for new updates. :warning:\nWith release v0.3.0 kanban-python switched to the [XDG] Basedir Spec. So some file migrations and config edits might be\nneeded to continue working with your already created boards if you update from `v0.2.X` to `v0.3.X`\n\n<!-- pyscaffold-notes -->\n\n## Note\n\nThis project has been set up using PyScaffold 4.5. For details and usage\ninformation on PyScaffold see https://pyscaffold.org/.\n\n[XDG]: https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html\n[platformdirs]: https://platformdirs.readthedocs.io/en/latest/\n[clikan]: https://github.com/kitplummer/clikan\n[pyscaffold]: https://pyscaffold.org/\n[rich]: https://github.com/Textualize/rich\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Terminal Kanban App written in Python",
    "version": "0.3.2",
    "project_urls": {
        "Homepage": "https://github.com/Zaloog/kanban-python",
        "Source": "https://github.com/Zaloog/kanban-python",
        "Tracker": "https://github.com/Zaloog/kanban-python/issues"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "cf981ae90c9982ca57fc0686cdc9c8c776df4bc1745e7c77402a30a00f0115df",
                "md5": "37a5cc2f2b88eb0ce3cd62cfd3cb5303",
                "sha256": "0921f6a887185a54f631021080c86f813be861526bfc683899b634ea4ea0ae7f"
            },
            "downloads": -1,
            "filename": "kanban_python-0.3.2-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "37a5cc2f2b88eb0ce3cd62cfd3cb5303",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": null,
            "size": 18199,
            "upload_time": "2023-12-02T14:00:06",
            "upload_time_iso_8601": "2023-12-02T14:00:06.486492Z",
            "url": "https://files.pythonhosted.org/packages/cf/98/1ae90c9982ca57fc0686cdc9c8c776df4bc1745e7c77402a30a00f0115df/kanban_python-0.3.2-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "02c38a6d45ae19e290e8efcb8fede7e50c807c043600df9c5d72f468bc906ed9",
                "md5": "80a1e65fda3172234c92b1d5cfbea451",
                "sha256": "68d1ab20bda423028277cecf607e4dc654c17de8382ff57211eb75923b5ac438"
            },
            "downloads": -1,
            "filename": "kanban-python-0.3.2.tar.gz",
            "has_sig": false,
            "md5_digest": "80a1e65fda3172234c92b1d5cfbea451",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 304296,
            "upload_time": "2023-12-02T14:00:08",
            "upload_time_iso_8601": "2023-12-02T14:00:08.788740Z",
            "url": "https://files.pythonhosted.org/packages/02/c3/8a6d45ae19e290e8efcb8fede7e50c807c043600df9c5d72f468bc906ed9/kanban-python-0.3.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-12-02 14:00:08",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "Zaloog",
    "github_project": "kanban-python",
    "travis_ci": false,
    "coveralls": true,
    "github_actions": true,
    "tox": true,
    "lcname": "kanban-python"
}
        
Elapsed time: 0.23652s