kitplummer / clikan Goto Github PK
View Code? Open in Web Editor NEWclikan is a super simple personal kanban board that runs in a CLI
License: MIT License
clikan is a super simple personal kanban board that runs in a CLI
License: MIT License
Hi,
Thanks for this tool. I am thinking of taking a deeper look and possibly contribute.
Could you add some instructions on how to run the test suite provided with this package?
Thanks
Failing now. Need to look into the HOME issue and see if it requires CI or functionality change, or test change.
When execute test, it fails me this function "test_command_version" I obtain the follow mistake.
#########################################################################################
def test_command_version():
version_file = open(os.path.join('./', 'VERSION'))
version = version_file.read().strip()
runner = CliRunner()
result = runner.invoke(clikan, ["--version"])
assert result.exit_code == 0
assert 'clikan, version {}'.format(version) in result.output
E AssertionError: assert 'clikan, version 0.2.1' in 'clikan, version 0.2.0\n'
E + where 'clikan, version 0.2.1' = <built-in method format of str object at 0x00000239651F2800>('0.2.1')
E + where <built-in method format of str object at 0x00000239651F2800> = 'clikan, version {}'.format
E + and 'clikan, version 0.2.0\n' = .output
#########################################################################################
I put clikan --version and show me 2.0.0 version, but in VERSION file put 2.0.1.
The test it's easy to correct it. But I need know the correct version, in case I have made a mistake in the download or in the branch.
Thanks for your project.
Hi, do these tests fail for anyone else?
============================= test session starts ==============================
platform linux -- Python 3.8.2, pytest-5.3.5, py-1.8.1, pluggy-0.13.1 -- /gnu/store/2dqjp4nl4iqkwz0914lq2ch098c1vvli-python-wrapper-3.8.2/bin/python
cachedir: .pytest_cache
hypothesis profile 'default' -> database=DirectoryBasedExampleDatabase('/home/jgart/clikan/.hypothesis/examples')
rootdir: /home/jgart/clikan
plugins: hypothesis-5.4.1
collecting ... collected 11 items
clikan_test.py::test_command_help PASSED [ 9%]
clikan_test.py::test_command_version PASSED [ 18%]
clikan_test.py::test_command_configure FAILED [ 27%]
clikan_test.py::test_command_configure_existing PASSED [ 36%]
clikan_test.py::test_command_a PASSED [ 45%]
clikan_test.py::test_no_command PASSED [ 54%]
clikan_test.py::test_command_s PASSED [ 63%]
clikan_test.py::test_command_show PASSED [ 72%]
clikan_test.py::test_command_not_show PASSED [ 81%]
clikan_test.py::test_command_promote PASSED [ 90%]
clikan_test.py::test_command_delete PASSED [100%]
=================================== FAILURES ===================================
____________________________ test_command_configure ____________________________
def test_command_configure():
runner = CliRunner()
result = runner.invoke(clikan, ["configure"])
assert result.exit_code == 0
> assert 'Creating' in result.output
E AssertionError: assert 'Creating' in 'Config file exists. Do you want to overwrite? [y/N]: \n'
E + where 'Config file exists. Do you want to overwrite? [y/N]: \n' = <Result okay>.output
clikan_test.py:30: AssertionError
========================= 1 failed, 10 passed in 0.64s =========================
Would be nice to have a way to increase the 40 char limit on task names.
French tends to have longer words so the limit becomes constraining.
(Willing to add this myself but wasn't sure if contributions to this project are welcome and how they should be done)
Loving this tool!
Love the project!
I find that after every modification command I run (add, delete, promote, regress), I inevitably run clikan show
after. What would you think about a configuration value that allows you to automatically run show after modifications? I'd like to contribute that to the project if you think it would be useful to others.
❯ clik d test
Traceback (most recent call last):
File "/Users/cplummer8/miniconda3/bin/clikan", line 33, in <module>
sys.exit(load_entry_point('clikan==0.2.1', 'console_scripts', 'clikan')())
File "/Users/cplummer8/miniconda3/lib/python3.8/site-packages/click/core.py", line 829, in __call__
return self.main(*args, **kwargs)
File "/Users/cplummer8/miniconda3/lib/python3.8/site-packages/click/core.py", line 782, in main
rv = self.invoke(ctx)
File "/Users/cplummer8/miniconda3/lib/python3.8/site-packages/click/core.py", line 1259, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/Users/cplummer8/miniconda3/lib/python3.8/site-packages/click/core.py", line 1066, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/Users/cplummer8/miniconda3/lib/python3.8/site-packages/click/core.py", line 610, in invoke
return callback(*args, **kwargs)
File "/Users/cplummer8/miniconda3/lib/python3.8/site-packages/clikan-0.2.1-py3.8.egg/clikan.py", line 137, in delete
item = dd['data'].get(int(id))
ValueError: invalid literal for int() with base 10: 'test'
Hi,
What do you think about putting in abbreviations for commands?
clikan a "Buy toilet paper" # a for add
clikan p 1 # p for promote
clikan d 1 # d for delete
Again, I can write this. I'm not trying to be pushy, I'm only checking if you think it's a good idea.
pip install clikan
Collecting clikan
Using cached https://files.pythonhosted.org/packages/fc/15/0b12cf336843c2e8022ae9aae4767fa6832b17239fb4eb1628f943becfea/clikan-0.0.4-py3-none-any.whl
Requirement already satisfied: pyyaml in c:\python38\lib\site-packages (from clikan) (5.3.1)
Requirement already satisfied: terminaltables in c:\python38\lib\site-packages (from clikan) (3.1.0)
Requirement already satisfied: Click in c:\python38\lib\site-packages (from clikan) (7.1.1)
Installing collected packages: clikan
Successfully installed clikan-0.0.4
clikan configure
Traceback (most recent call last):
File "c:\python38\lib\runpy.py", line 193, in _run_module_as_main
return _run_code(code, main_globals, None,
File "c:\python38\lib\runpy.py", line 86, in run_code
exec(code, run_globals)
File "C:\Python38\Scripts\clikan.exe_main.py", line 9, in
File "c:\python38\lib\site-packages\click\core.py", line 829, in call
return self.main(*args, **kwargs)
File "c:\python38\lib\site-packages\click\core.py", line 782, in main
rv = self.invoke(ctx)
File "c:\python38\lib\site-packages\click\core.py", line 1259, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "c:\python38\lib\site-packages\click\core.py", line 1066, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "c:\python38\lib\site-packages\click\core.py", line 610, in invoke
return callback(*args, **kwargs)
File "c:\python38\lib\site-packages\clikan.py", line 84, in configure
path = "%s/.clikan.dat" % os.environ['HOME']
File "c:\python38\lib\os.py", line 675, in getitem
raise KeyError(key) from None
KeyError: 'HOME'
Hello, I saw your (pretty cool) project but was wondering if there was a way to configure the tool in .ini
or through the process environment?
Both can be done in native python, so I think it'd be pretty nice to have at least one of those two alternatives.
Edit: Since I do want to use .ini
files, and using the environment would also be a convenience for my workflow, I started working on a fork to integrate this support (only noted TODOs on what to do for now).
Once it'll be done, I'll put it up for PR
for display I would set it as default, instead of needing a "d" option, as "d" is almost always used for "deletion" shortcut elsewhere, just a suggestion.
Hi, I'm try add command for enviroment test and I can't try the command.
When I put following command "python clikan.py" nothing happens. And I try create file exe, but when execute I have error, I thing is no same configure.
Would a Mastodon account for this project be possible?
GHA not functional anymore...
Last build on main failed to deploy new package to PyPi.
Hi again!
Are you open to the idea of making it possible to operate on multiple tasks in one go?
I'm thinking something like this:
clikan add "Buy toilet paper" "Feed cat" "Fold laundry" # Creates three tasks
clikan promote 1 2 # Promotes two tasks
clikan delete 1 2 3 # Deletes three tasks
If you're ok with such a behavior change then I'll be happy to add it in myself.
Another suggestion: it'd be handy to have tab completion for commands!
As detailed in the click documentation, the goal would be to type clikan
, followed by the tab key twice to see a list of the commands (add, configure, delete, etc.). This would allow people to see the commands without running the clikan
command first.
If this sounds good, I'd be happy to have a go at implementing this and submitting a PR.
➜ clikan git:(develop) clikan d
/usr/local/lib/python3.7/site-packages/clikan.py:250: YAMLLoadWarning: calling yaml.load() without Loader=... is deprecated, as the default Loader is unsafe. Please read https://msg.pyyaml.org/load for full details.
return yaml.load(stream)
/usr/local/lib/python3.7/site-packages/clikan.py:229: YAMLLoadWarning: calling yaml.load() without Loader=... is deprecated, as the default Loader is unsafe. Please read https://msg.pyyaml.org/load for full details.
return yaml.load(stream)
Hey, thanks for the great project!
I'd just like to suggest an enhancement: an option in the config that allows "show" to be the default command. So running clikan
on the command line would result in clikan show
being executed.
I'd be happy to have a go at doing this and submitting a pull request.
Investigate what it would take to run from a Python REPL.
It would be good to have the yaml file in .config on linux systems.
After running pip install clikan
and executing the clikan
command I get this error:
Traceback (most recent call last):
File "/usr/local/bin/clikan", line 5, in <module>
from clikan import clikan
File "/usr/local/lib/python3.11/site-packages/clikan.py", line 15, in <module>
VERSION = importlib.metadata.version('clikan')
^^^^^^^^^^^^^^^^^^
AttributeError: module 'importlib' has no attribute 'metadata'
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.