Metadata-Version: 2.1
Name: tasks3
Version: 0.5.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


.. image:: https://pyup.io/repos/github/hXtreme/tasks3/shield.svg
     :target: https://pyup.io/repos/github/hXtreme/tasks3/
     :alt: Updates



A commandline tool to create and manage tasks and todos.


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


Features
--------

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.

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"
        }

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

tasks3 supports shell integration for bash and zsh, 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: Edit existing tasks.
* 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.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.


