Metadata-Version: 2.1
Name: tasks3
Version: 0.7.0
Summary: A commandline tool to create and manage tasks and todos.
Home-page: https://github.com/hXtreme/tasks3
Author: Harsh Parekh
Author-email: harsh_parekh@outlook.com
License: GNU General Public License v3
Keywords: tasks3
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: End Users/Desktop
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Requires-Python: >=3.9
License-File: LICENSE
License-File: AUTHORS.rst

======
tasks3
======


.. image:: https://img.shields.io/pypi/v/tasks3.svg
        :target: https://pypi.python.org/pypi/tasks3

.. image:: https://github.com/hXtreme/tasks3/actions/workflows/tox-test.yml/badge.svg
        :target: https://github.com/hXtreme/tasks3/actions/workflows/tox-test.yml

.. image:: https://readthedocs.org/projects/tasks3/badge/?version=latest
        :target: https://tasks3.readthedocs.io/en/latest/?badge=latest
        :alt: Documentation Status



A commandline tool to create and manage tasks and todos.

Most task management tools are their own applications, so to manage tasks you have to
perform context switching by leaving what you're working on
to go to the task manager application.

``tasks3`` aims to solve that by bringing your tasks to you instead.

Each task is automatically assigned to the directory it was created in
and you can easily retrieve tasks under a directory.


* Free software: GNU General Public License v3
* Documentation: https://tasks3.readthedocs.io.


Features
--------

Help
====

It is easy to explore all capabilities of ``tasks3`` by running ``tasks3 --help``.
Each command also has its own help page which can be accessed by running:

.. code-block:: console

        $ tasks3 <command> --help

Create Tasks
============

Easily create tasks from the commandline and delegate them to folders.

Create a task in a specific folder with default settings.

.. code-block:: console

        $ tasks3 add --title "Think of a cool name" \
            --folder "~/Documents/story" \
            --yes
        Added Task:
        [e1c100] Think of a cool name (⏰⏰    ) (🚨🚨  )
          [path: ~/Documents/story]

Create a task in a current folder with custom settings and description.

.. code-block:: console

        $ tasks3 add --title "Try new model" \
            --urgency 4 --importance 3 \
            --description "Try:\n - model with 3 layers.\n - model with 4 layers." \
            --yes
        Added Task:
        [a0a5f4] Try new model (⏰⏰⏰⏰) (🚨🚨🚨 )
            Try:
             - model with 3 layers.
             - model with 4 layers.

Edit Existing Tasks
===================

You can edit existing tasks with the ``tasks3 edit`` command.

For example: You can use ``edit`` to update the urgency of a task.

.. code-block:: console

        $ tasks3 edit --urgency 4 e1c100
        Updated Task:
        [e1c100] Think of a cool name (⏰⏰⏰⏰) (🚨🚨  )
          [path: ~/Documents/story]

Search Tasks
============

You can search for tasks using various filters.

You can search for tasks with a specific importance value.

.. code-block:: console

        $ tasks3 search --importance 2
        [4a14d0] What is right here and now
        [f79155] Think of a cool name [path: /home/<user>/Documents/project]
        [2ce91b] See home [path: /home]

You can restrict search to a folder and its sub-directories.

.. code-block:: console

        $ tasks3 search --folder ~/Documents/project --output-format yaml
        title: Think of a Cool name
        urgency: 2
        importance: 2
        tags: null
        folder: /home/<user>/Documents/project

You can also search for sub-strings in task title or description.
It is also possible to restrict the search to tasks that have a specific set of tags.
Run ``tasks3 search --help`` to get see a full list off options.

Show Tasks
==========

You can show all tasks under current directory.

.. code-block:: console

        $ tasks3 show
        [a0a5f4] Try new model (⏰⏰⏰⏰) (🚨🚨🚨 )
            Try:
             model with 3 layers.
             model with 4 layers.
        [4a14d0] What is right here and now (⏰⏰    ) (🚨🚨  )

You can also show a particular task by specifying its id.

.. code-block:: console

        $ tasks3 show 1d8a9a
        [1d8a9a] Give a Title to this Task. (⏰⏰    ) (🚨🚨🚨🚨)
          (Hello tasks3)
            Task with
            multi-line
            desc

If you prefer to see the task in a different format, you can use the ``--output-format`` option.

.. code-block:: console

        $ tasks3 show --output-format json 1d8a9a
        {
          "id": "1d8a9a",
          "title": "Give a Title to this Task.",
          "urgency": 2,
          "importance": 4,
          "tags": [
            "Hello tasks3"
          ],
          "folder": "/home/<user>/Documents/tasks3",
          "description": "Task with \nmulti-line \ndesc"
        }


Delete Tasks
============

You can use the ``tasks3 delete <task_id>`` command to delete a task.

.. note:: I will be adding a way to simply mark a task as done in the future,
        prefer using that instead of deleting tasks.

.. code-block:: console

        $ tasks3 remove --yes 2e0b84
        Removed Task: [2e0b84] Adding support for task deletion (⏰⏰    ) (🚨🚨  )

Shell Integration
=================

tasks3 supports shell integration for bash, zsh, and fish; tasks3 will automatically
run ``tasks3 show -o oneline`` when you ``cd`` into a directory to show
the tasks in that directory.

You can setup shell integration by adding the following command to your ``.rc`` file.

.. code-block:: shell

        eval "$(tasks3 shell $(basename $SHELL))"

.. note:: Pull requests to support additional shells are greatly appreciated.
        Please see Contributing_ page for information on how to contribute.

* TODO: Delete tasks.

Credits
-------

This package was created with Cookiecutter_ and the `audreyr/cookiecutter-pypackage`_ project template.

.. _Contributing: ./contributing.html
.. _Cookiecutter: https://github.com/audreyr/cookiecutter
.. _`audreyr/cookiecutter-pypackage`: https://github.com/audreyr/cookiecutter-pypackage


=======
History
=======

0.7.0: (2022-07-30)
-------------------

* Added support to delete a task from the cli.
* Updated dependencies.

0.6.0 (2022-05-16)
------------------

* Added support to edit existing tasks.
* Update dev-requirements.

0.5.1 (2022-05-06)
------------------

* Added shell integration for fish.

0.5.0 (2022-05-06)
------------------

* Added shell integration for zsh and bash.
* Improve the index page.
* Add more info to Contributing page.

0.4.4 (2022-05-03)
------------------

* Improve docs

0.4.3 (2022-05-03)
------------------

* Fix python version in setup.py

0.4.2 (2022-05-03)
------------------

* Upgrade development status to Alpha.

0.4.1 (2022-05-03)
------------------

* Resolve a SNAFU with tags.

0.4.0 (2022-05-03)
------------------

* Add the ability to search for tasks.
* Add json output format for tasks.
* Implement the ``tasks3 task show`` cli endpoint.
* Update docs.
* Add Output format preference to config.
* Make the cli interface easier to use (flatten the task command tree)

0.3.3 (2022-05-02)
------------------

* Switch docs theme to ``sphinx_rtd_theme``.

0.3.2 (2022-05-02)
------------------

* Add workflow to check for package compatability with PyPI.
  This should make sure that the issue with v0.3.0 does not occur again.

0.3.1 (2022-05-02)
------------------

* Fix README to render on PyPI.

0.3.0 (2022-05-02)
------------------

* Remove ``tasks3 db init`` cli command.
* Implement ``tasks3 task add`` cli command.
* Implement ``task.yaml``, ``task.short``, ``task.one_line`` methods to display task.

0.2.8 (2022-05-01)
------------------

* Use dataclass to store configuration settings.
* Flatten tasks3.config module into config.py file.

0.2.7 (2022-04-30)
------------------

* Remove usage of deprecated  SQLAlchemy api ``db_engine.table_names``.
* Remove deprecated pytest configuration option ``collect_ignore``.

0.2.6 (2022-04-30)
------------------

* Flatten tasks3.db.model module into models.py
* Linting changes
* Minor refactoring

0.2.4 (2022-04-30)
------------------

* Remove pytest from dependency and let tox handle testing.

0.2.3 (2022-04-30)
------------------

* Migrate testing to github-workflow
* Update SQLAlchemy package version.
* Switch deployment workflow to python 3.9

0.2.0 (2022-04-30)
------------------

* Drop support for python<=3.8

0.1.0 (2020-08-17)
------------------

* Implement tasks3.add
* Implement tasks3.edit
* Implement tasks3.remove

0.0.11 (2020-08-04)
-------------------

* Add support for a yaml configuration file.
* Add database to store Tasks, db models and api to interact with db.
* Switch to using requirements.txt for managing dependency and add
  back the support for py35.
* Add a bunch of type annotations.
* Update dependency:
   * pip to 20.2
   * pytest to 6.0.1
   * tox to 3.18.1
   * coverage to 5.2.1

0.0.9 - 0.0.10 (2020-07-26)
---------------------------

* Fix version numbers and git tags.

0.0.8 (2020-07-26)
------------------

* Implement a CLI for tasks3.
* Add black (formatter).
* Add some basic test-cases.

0.0.2 - 0.0.7 (2020-07-20)
--------------------------

* Move deployment away from Travis to Github workflow.

0.0.1 (2020-07-20)
------------------

* First release on PyPI.


