zaloog / kanban-python Goto Github PK
View Code? Open in Web Editor NEWKanban Terminal App written in Python
License: MIT License
Kanban Terminal App written in Python
License: MIT License
Or another solution, to give a better overview over all boards.
Either way it requires reading all json files of all boards on board change.
Thinking about storing them directly in the .kanban-python
folder next to the configfile.
Options:
boardname.json
kanban_boards/boardname.json
boardname/pykanban.json
kanban boards
under kanban_boards/boardname/pykanban.json
This would prevent spreading of multiple pykanban.json files across many directories.
Hi,
This is the first time I installed "kanban-python". After installing the package, I ran the following command but got the below error:
kanban init
Traceback (most recent call last):
File "/opt/homebrew/Caskroom/miniforge/base/bin/kanban", line 5, in <module>
from kanban_python.app import run
File "/opt/homebrew/Caskroom/miniforge/base/lib/python3.9/site-packages/kanban_python/app.py", line 25, in <module>
from kanban_python import cli_parser, config, controls, utils
File "/opt/homebrew/Caskroom/miniforge/base/lib/python3.9/site-packages/kanban_python/controls.py", line 106, in <module>
def add_tasks_to_db(tasks: dict | list[dict]) -> None:
TypeError: unsupported operand type(s) for |: 'type' and 'types.GenericAlias'
What could be the reason for this?
It seems kanban
expects ^C
for quitting.
Usually on Linux, ^D
(EOF
) is regarded as a signal to stop reading from standard input. When giving kanban
a ^D
at the “Choose wisely” prompt, kanban
dies with an EOFError
.
I suggest treating ^C
and ^D
as synonyms.
(And perhaps allow q
for quitting, too.)
» kanban init
Created new pykanban.ini file @Home Directory
Use 'kanban init' to create kanban boards
» # WTF?
» cat ~/pykanban.ini
[settings.general]
Active_Board =
Column_Min_Width = 35
Done_Limit = 10
Show_Footer = True
[settings.columns.visible]
Ready = True
Doing = True
Done = True
Deleted = False
Archived = False
[kanban_boards]
To place a configuration file as a visible file in the root of the user's home directory, is a no go.
Preferrably, use the directory $XDG_CONFIG_HOME/kanban-python
, where $XDG_CONFIG_HOME
defaults to ~/.config
.
If you do not like the XDG specification, at least put the config file in an invisible dot directory — e.g., ~/.kanban-python
.
To place a configuration file as a visible file in the root of the user's home directory, is a no go.
Monthly Report over all Boards like:
# December
## 06.12.2023
- (TAG) Task Title 1 [maybe add duration or board information?]
- (TAG) Task Title 2
## 07.12.2023
- (TAG) Task Title 3
can be used with kanban report
. Created in user_data_dir/reports/year
as month_year.md
, full path e.g. user_data_dir/reports/2023/december_2023.md
This looks great!
I use various vscode plugins that are able to record a todo list based on lines tagged with #todo in any file in your project. Would it be able to do any variant of this, maybe a variant of it - say adding a file if todo item automatically to the canban board (if using a different app to compile the todo list).
Trying to install using pipx returns the following dependency conflict:
PIP STDOUT
----------
Collecting kanban-python
Downloading kanban_python-0.3.10-py3-none-any.whl (22 kB)
Downloading kanban_python-0.3.9-py3-none-any.whl (22 kB)
Downloading kanban_python-0.3.8-py3-none-any.whl (22 kB)
Downloading kanban_python-0.3.7-py3-none-any.whl (21 kB)
Downloading kanban_python-0.3.6-py3-none-any.whl (19 kB)
Downloading kanban_python-0.3.5-py3-none-any.whl (19 kB)
Downloading kanban_python-0.3.4-py3-none-any.whl (19 kB)
Downloading kanban_python-0.3.3-py3-none-any.whl (19 kB)
Downloading kanban_python-0.3.2-py3-none-any.whl (18 kB)
Collecting platformdirs<4
Downloading platformdirs-2.4.0-py3-none-any.whl (14 kB)
Collecting kanban-python
Downloading kanban_python-0.3.1-py3-none-any.whl (18 kB)
Downloading kanban_python-0.3.0-py3-none-any.whl (18 kB)
Downloading kanban_python-0.2.2-py3-none-any.whl (17 kB)
Downloading kanban_python-0.2.1-py3-none-any.whl (17 kB)
Downloading kanban_python-0.2.0-py3-none-any.whl (15 kB)
Downloading kanban_python-0.1.4-py3-none-any.whl (14 kB)
Downloading kanban_python-0.1.3-py3-none-any.whl (14 kB)
Downloading kanban_python-0.1.1-py3-none-any.whl (14 kB)
Downloading kanban_python-0.1.0-py3-none-any.whl (14 kB)
Downloading kanban_python-0.0.5-py3-none-any.whl (14 kB)
The conflict is caused by:
kanban-python 0.3.10 depends on platformdirs<4 and >=3
kanban-python 0.3.9 depends on platformdirs<4 and >=3
kanban-python 0.3.8 depends on platformdirs<4 and >=3
kanban-python 0.3.7 depends on platformdirs<4 and >=3
kanban-python 0.3.6 depends on platformdirs<4 and >=3
kanban-python 0.3.5 depends on platformdirs<4 and >=3
kanban-python 0.3.4 depends on platformdirs<4 and >=3
kanban-python 0.3.3 depends on platformdirs<4 and >=3
kanban-python 0.3.2 depends on rich>=13.7.0
kanban-python 0.3.1 depends on rich>=13.7.0
kanban-python 0.3.0 depends on rich>=13.7.0
kanban-python 0.2.2 depends on rich>=13.7.0
kanban-python 0.2.1 depends on rich>=13.7.0
kanban-python 0.2.0 depends on rich>=13.7.0
kanban-python 0.1.4 depends on rich>=13.7.0
kanban-python 0.1.3 depends on rich>=13.7.0
kanban-python 0.1.1 depends on rich>=13.7.0
kanban-python 0.1.0 depends on rich>=13.7.0
kanban-python 0.0.5 depends on rich>=13.7.0
To fix this you could try to:
1. loosen the range of package versions you've specified
2. remove package versions to allow pip attempt to solve the dependency conflict
PIP STDERR
----------
ERROR: Cannot install kanban-python==0.0.5, kanban-python==0.1.0, kanban-python==0.1.1, kanban-python==0.1.3, kanban-python==0.1.4, kanban-python==0.2.0, kanban-python==0.2.1, kanban-python==0.2.2, kanban-python==0.3.0, kanban-python==0.3.1, kanban-python==0.3.10, kanban-python==0.3.2, kanban-python==0.3.3, kanban-python==0.3.4, kanban-python==0.3.5, kanban-python==0.3.6, kanban-python==0.3.7, kanban-python==0.3.8 and kanban-python==0.3.9 because these package versions have conflicting dependencies.
ERROR: ResolutionImpossible: for help visit https://pip.pypa.io/en/latest/user_guide/#fixing-conflicting-dependencies
It would be great to add an option to dump task info in a pretty way, i.e. adding show task
to Whats up!?, how can I help you being productive today 🚀
default question.
Currently, to get a task description you need to run [2] 🔃 Update/Check Task
and step through the 4 questions including one which cannot be passed as empty (assign the task stage).
Maybe something like:
# add to the prompt
[0] show task
# user inputs ID
Enter ID: 01
# outputs
ID: 01
Title: Some Task
Tag: BUG
Task Description: Some longer text
Another nice option building off this would be able to show all tasks with a certain tag:
# add to the prompt
[0] show task/s
# user inputs ID
Enter ID or Tag: BUG
# outputs
ID: 01
Title: Some Task
Tag: BUG
Task Description: Some longer text
ID: 04
Title: new Task
Tag: BUG
Task Description: Some longer text
ID: 05
Title: new new Task
Tag: BUG
Task Description: Some longer text
Thoughts:
kanban configure
commandDays remaining
on boardDays remaining
onChange Board
Action View|02|
behind task name)Consider using tools like platformdirs to save the config file (and many other files) in standard directories with multi-platform support. It is very important to follow XDG when placing files inside other people's systems, that way the information is well organized in the OS. You can see a simple example in this project of mine where I also create config files using configparse (and also log files) with the help of platformdirs to automatically retrieve the correct path that should store those files.
It is really easy to implement and the benefit is huge for the open-source community!
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.