Metadata-Version: 2.1
Name: doit
Version: 0.36.0
Summary: doit - Automation Tool
Home-page: http://pydoit.org
Author: Eduardo Naufel Schettino
Author-email: schettino72@gmail.com
License: MIT
Project-URL: Documentation, https://pydoit.org/
Project-URL: Source, https://github.com/pydoit/doit/
Project-URL: Tracker, https://github.com/pydoit/doit/issues
Description: 
        *doit* comes from the idea of bringing the power of build-tools to execute any
        kind of task
        
        *doit* can be uses as a simple **Task Runner** allowing you to easily define ad hoc
        tasks, helping you to organize all your project related tasks in an unified
        easy-to-use & discoverable way.
        
        *doit* scales-up with an efficient execution model like a **build-tool**.
        *doit* creates a DAG (direct acyclic graph) and is able to cache task results.
        It ensures that only required tasks will be executed and in the correct order
        (aka incremental-builds).
        
        The *up-to-date* check to cache task results is not restricted to looking for
        file modification on dependencies.  Nor it requires "target" files.
        So it is also suitable to handle **workflows** not handled by traditional build-tools.
        
        Tasks' dependencies and creation can be done dynamically during it is execution
        making it suitable to drive complex workflows and **pipelines**.
        
        *doit* is build with a plugin architecture allowing extensible commands, custom
        output, storage backend and "task loader". It also provides an API allowing
        users to create new applications/tools leveraging *doit* functionality like a framework.
        
        *doit* is a mature project being actively developed for more than 10 years.
        It includes several extras like: parallel execution, auto execution (watch for file
        changes), shell tab-completion, DAG visualisation, IPython integration, and more.
        
        
        
        Sample Code
        ===========
        
        Define functions returning python dict with task's meta-data.
        
        Snippet from `tutorial <http://pydoit.org/tutorial-1.html>`_:
        
        .. code:: python
        
          def task_imports():
              """find imports from a python module"""
              for name, module in PKG_MODULES.by_name.items():
                  yield {
                      'name': name,
                      'file_dep': [module.path],
                      'actions': [(get_imports, (PKG_MODULES, module.path))],
                  }
        
          def task_dot():
              """generate a graphviz's dot graph from module imports"""
              return {
                  'targets': ['requests.dot'],
                  'actions': [module_to_dot],
                  'getargs': {'imports': ('imports', 'modules')},
                  'clean': True,
              }
        
          def task_draw():
              """generate image from a dot file"""
              return {
                  'file_dep': ['requests.dot'],
                  'targets': ['requests.png'],
                  'actions': ['dot -Tpng %(dependencies)s -o %(targets)s'],
                  'clean': True,
              }
        
        
        Run from terminal::
        
          $ doit list
          dot       generate a graphviz's dot graph from module imports
          draw      generate image from a dot file
          imports   find imports from a python module
          $ doit
          .  imports:requests.models
          .  imports:requests.__init__
          .  imports:requests.help
          (...)
          .  dot
          .  draw
        
        
        Project Details
        ===============
        
         - Website & docs - `http://pydoit.org <http://pydoit.org>`_
         - Project management on github - `https://github.com/pydoit/doit <https://github.com/pydoit/doit>`_
         - Discussion group - `https://groups.google.com/forum/#!forum/python-doit <https://groups.google.com/forum/#!forum/python-doit>`_
         - News/twitter - `https://twitter.com/pydoit <https://twitter.com/pydoit>`_
         - Plugins, extensions and projects based on doit - `https://github.com/pydoit/doit/wiki/powered-by-doit <https://github.com/pydoit/doit/wiki/powered-by-doit>`_
        
        license
        =======
        
        The MIT License
        Copyright (c) 2008-2022 Eduardo Naufel Schettino
        
Keywords: build make task automation pipeline task-runner
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Console
Classifier: License :: OSI Approved :: MIT License
Classifier: Natural Language :: English
Classifier: Operating System :: OS Independent
Classifier: Operating System :: POSIX
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Information Technology
Classifier: Intended Audience :: Science/Research
Classifier: Intended Audience :: System Administrators
Classifier: Topic :: Software Development :: Build Tools
Classifier: Topic :: Software Development :: Testing
Classifier: Topic :: Software Development :: Quality Assurance
Classifier: Topic :: Scientific/Engineering
Requires-Python: >=3.8
Provides-Extra: toml
