Package: kanban-python
kanban-pythonA Terminal Kanban Application written in Python to boost your productivity :rocket:IntroductionWelcome tokanban-python, your Terminal Kanban-Board Manager.TheclikanKanban App inspired me to write
my own Terminal Kanban Application since I preferred a more simple and guided workflow.kanban-pythonalso comes with more features, like custom column creation,
automatic scanning and customizable config file to support you being productive.This package was developed withpyscaffold, which provides awesome 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.FeaturesColorful and Interactivekanban-python usesrichunder the hood to process user input
and display nice looking kanban-boards to the terminal.Each task has a uniqueIDper board and also has an optionalTagandDue Dateassociated with it,
which are displayed alongside itsTitleFollowing the XDG basedir conventionkanban-python utilizesplatformdirsuser_config_dirto save the config file anduser_data_dirfor
the board specific task files. After creating your first board, you can usekanban configureto 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.Scanning of Files for automatic Task Creationkanban-python can scan files of defined types for specific patterns at start of line.
CheckAutomatic Task Creationfor more Infos.Customizable ConfigfileApykanban.inifile gets created on first initialization in akanban-pythonfolder in youruser_config_dir-Directory.
This can be edited manually or within the kanban-python application. It tracks the location for all your created boards.Active_Board: current board that is shown when usingkanban-commandDone_Limit: If the amount of tasks exceed this number in theDonecolumn,
the first task of that column gets its status updated toArchivedand 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.(default:# TODO,#TODO,# BUG)Task Storage File for each BoardEach created board comes with its own name andpykanban.jsonfile,
which stores all tasks for that board. The files are stored in board specific folders under$USER_DATA_DIR/kanban-python/kanban_boards/<BOARDNAME>.
When changing Boards you also get an overview over tasks in visible columns for each board and the most urgent or overdue task on that board.Customizable Columnskanban-python comes with 5 pre-defined colored columns: [Ready, Doing, Done, Archived, Deleted]
More column can be added manually in thepykanban.ini, the visibility can be configured in the settings
withkanban configure.Time Tracking of Task duration in DoingFor each task it is tracked, how long it was in theDoingcolumn, based on the moments when you update the task status.
The initial Task structure on creation looks as follows:Report Creation for completed TasksWhen you usekanban reporta github-like contribution map is displayed for the current year,
Also a markdown file is created with all tasks comleted based on the moment, when the tasks were moved to Done Column.InstallationYou can install kanban-python with:python-mpipinstallkanban-pythonor usingpipx:pipxinstallkanban-pythonUsageAfter Installation of kanban-python, there are 5 commands available:Create new BoardskanbaninitIs used to create a new kanban board i.e. it asks for a name and then creates apykanban.jsonfile with a Welcome Task.
On first use of any command, thepykanban.iniconfigfile and thekanban-pythonfolder will be created automatically.Interact with Tasks/BoardskanbanThis 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 commandkanban configure:UseCtrl-CorCtrl-Dto 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 CreationkanbanscanAfter executing this command, kanban-python scans your current Directory recursively for the defined filetypes and searches for lines
that start with the pattern provided.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.Create ReportkanbanreportGoes over all your Boards and creates a single markdown file by checking theCompletion Datesof your tasks.
Also shows a nice github-like contribution table for the current year.Change SettingskanbanconfigureTo create a new custom Columns, you have to edit thepykanban.inimanually and add a new column name + visibility status
under thesettings.columns.visiblesection. The other options are all customizable now via the new settings menu.Feedback and IssuesFeel free to reach out and share your feedback, or open an Issue, if something doesnt work as expected.
Also check theChangelogfor new updates.:warning:
With release v0.3.0 kanban-python switched to theXDGBasedir Spec. So some file migrations and config edits might be
needed to continue working with your already created boards if you update fromv0.2.Xtov0.3.XNoteThis project has been set up using PyScaffold 4.5. For details and usage
information on PyScaffold seehttps://pyscaffold.org/.