├── luigi
├── py.typed
├── __version__.py
├── static
│ └── visualiser
│ │ ├── fonts
│ │ ├── FontAwesome.otf
│ │ ├── fontawesome-webfont.eot
│ │ ├── fontawesome-webfont.ttf
│ │ ├── fontawesome-webfont.woff
│ │ ├── fontawesome-webfont.woff2
│ │ ├── glyphicons-halflings-regular.eot
│ │ ├── glyphicons-halflings-regular.ttf
│ │ └── glyphicons-halflings-regular.woff
│ │ ├── lib
│ │ ├── datatables
│ │ │ └── images
│ │ │ │ ├── favicon.ico
│ │ │ │ ├── sort_asc.png
│ │ │ │ ├── sort_both.png
│ │ │ │ ├── sort_desc.png
│ │ │ │ ├── Sorting icons.psd
│ │ │ │ ├── sort_asc_disabled.png
│ │ │ │ └── sort_desc_disabled.png
│ │ ├── jquery-ui
│ │ │ └── css
│ │ │ │ └── images
│ │ │ │ ├── animated-overlay.gif
│ │ │ │ ├── ui-icons_222222_256x240.png
│ │ │ │ ├── ui-icons_2e83ff_256x240.png
│ │ │ │ ├── ui-icons_454545_256x240.png
│ │ │ │ ├── ui-icons_888888_256x240.png
│ │ │ │ ├── ui-icons_cd0a0a_256x240.png
│ │ │ │ ├── ui-bg_flat_0_aaaaaa_40x100.png
│ │ │ │ ├── ui-bg_flat_75_ffffff_40x100.png
│ │ │ │ ├── ui-bg_glass_55_fbf9ee_1x400.png
│ │ │ │ ├── ui-bg_glass_65_ffffff_1x400.png
│ │ │ │ ├── ui-bg_glass_75_dadada_1x400.png
│ │ │ │ ├── ui-bg_glass_75_e6e6e6_1x400.png
│ │ │ │ ├── ui-bg_glass_95_fef1ec_1x400.png
│ │ │ │ └── ui-bg_highlight-soft_75_cccccc_1x100.png
│ │ ├── bootstrap-toggle
│ │ │ └── css
│ │ │ │ └── bootstrap-toggle.min.css
│ │ └── AdminLTE
│ │ │ └── css
│ │ │ └── skin-green.min.css
│ │ ├── js
│ │ └── util.js
│ │ ├── mockdata
│ │ ├── fetch_error
│ │ ├── dep_graph
│ │ └── task_list
│ │ ├── test.html
│ │ └── css
│ │ └── tipsy.css
├── templates
│ ├── menu.html
│ ├── recent.html
│ └── show.html
├── contrib
│ ├── __init__.py
│ ├── hdfs
│ │ ├── error.py
│ │ ├── clients.py
│ │ ├── __init__.py
│ │ └── abstract_client.py
│ ├── gcp.py
│ ├── sparkey.py
│ ├── lsf_runner.py
│ ├── external_daily_snapshot.py
│ ├── target.py
│ ├── mrrunner.py
│ └── sge_runner.py
├── __main__.py
├── tools
│ ├── __init__.py
│ ├── deps_tree.py
│ └── luigi_grep.py
├── configuration
│ ├── __init__.py
│ ├── base_parser.py
│ ├── core.py
│ └── toml_parser.py
├── task_status.py
├── cmdline.py
├── event.py
├── task_history.py
├── freezing.py
└── metrics.py
├── test
├── conftest.py
├── contrib
│ ├── __init__.py
│ ├── hdfs
│ │ └── webhdfs_client_test.py
│ ├── bigquery_avro_test.py
│ ├── external_daily_snapshot_test.py
│ ├── scalding_test.py
│ ├── _webhdfs_test.py
│ ├── redis_test.py
│ └── cascading_test.py
├── visualiser
│ └── __init__.py
├── create_packages_archive_root
│ ├── package.egg-info
│ │ └── top_level.txt
│ ├── module.py
│ └── package
│ │ ├── __init__.py
│ │ ├── subpackage
│ │ ├── __init__.py
│ │ └── submodule.py
│ │ ├── submodule_without_imports.py
│ │ ├── submodule.py
│ │ └── submodule_with_absolute_import.py
├── auto_namespace_test
│ ├── __init__.py
│ └── my_namespace_test.py
├── testconfig
│ ├── luigi_local.toml
│ ├── pyproject.toml
│ ├── luigi.cfg
│ ├── core-site.xml
│ ├── luigi.toml
│ ├── log4j.properties
│ ├── logging.cfg
│ └── luigi_logging.toml
├── gcloud-credentials.json.enc
├── other_module.py
├── hdfs_client_test.py
├── runtests.py
├── most_common_test.py
├── task_progress_percentage_test.py
├── dynamic_import_test.py
├── task_status_message_test.py
├── set_task_name_test.py
├── metrics_test.py
├── factorial_test.py
├── remote_scheduler_test.py
├── subtask_test.py
├── recursion_test.py
├── priority_test.py
├── helpers_test.py
├── task_history_test.py
├── _mysqldb_test.py
├── test_ssh.py
├── task_register_test.py
├── choice_parameter_test.py
├── import_test.py
├── fib_test.py
├── task_bulk_complete_test.py
├── clone_test.py
├── instance_test.py
├── worker_task_process_test.py
├── mypy_test.py
├── test_sigpipe.py
├── config_toml_test.py
└── task_forwarded_attributes_test.py
├── doc
├── .gitignore
├── luigi.png
├── history.png
├── user_recs.png
├── web_server.png
├── history_by_id.png
├── task_breakdown.png
├── dependency_graph.png
├── execution_model.png
├── history_by_name.png
├── parameters_enum.png
├── task_parameters.png
├── aggregate_artists.png
├── history_by_task_id.png
├── task_with_targets.png
├── parameters_recursion.png
├── visualiser_front_page.png
├── parameters_date_algebra.png
├── tasks_with_dependencies.png
├── tasks_input_output_requires.png
├── mypy.rst
├── index.rst
├── logging.rst
└── design_and_limitations.rst
├── scripts
└── ci
│ ├── stop_azurite.sh
│ ├── conditional_tox.sh
│ ├── install_start_azurite.sh
│ └── setup_hadoop_env.sh
├── catalog-info.yaml
├── SECURITY.md
├── .readthedocs.yaml
├── bin
├── luigi
└── luigid
├── .coveragerc
├── .github
├── CODEOWNERS
├── PULL_REQUEST_TEMPLATE.md
├── stale.yml
├── ISSUE_TEMPLATE.md
└── workflows
│ └── codeql.yml
├── examples
├── hello_world.py
├── __init__.py
├── top_artists_spark.py
├── config.toml
├── foo.py
├── foo_complex.py
├── kubernetes.py
├── wordcount_hadoop.py
├── wordcount.py
└── ssh_remote_execution.py
├── RELEASE-PROCESS.rst
├── codecov.yml
├── CONTRIBUTING.rst
└── .gitignore
/luigi/py.typed:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/test/conftest.py:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/test/contrib/__init__.py:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/doc/.gitignore:
--------------------------------------------------------------------------------
1 | _static
2 | _build
3 | _templates
4 |
--------------------------------------------------------------------------------
/luigi/__version__.py:
--------------------------------------------------------------------------------
1 | # coding: utf-8
2 |
3 | VERSION = '3.6.0'
4 |
--------------------------------------------------------------------------------
/test/visualiser/__init__.py:
--------------------------------------------------------------------------------
1 | # Tests for visualiser javascript.
2 |
--------------------------------------------------------------------------------
/doc/luigi.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spotify/luigi/HEAD/doc/luigi.png
--------------------------------------------------------------------------------
/test/create_packages_archive_root/package.egg-info/top_level.txt:
--------------------------------------------------------------------------------
1 | package
2 |
--------------------------------------------------------------------------------
/doc/history.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spotify/luigi/HEAD/doc/history.png
--------------------------------------------------------------------------------
/doc/user_recs.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spotify/luigi/HEAD/doc/user_recs.png
--------------------------------------------------------------------------------
/doc/web_server.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spotify/luigi/HEAD/doc/web_server.png
--------------------------------------------------------------------------------
/doc/history_by_id.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spotify/luigi/HEAD/doc/history_by_id.png
--------------------------------------------------------------------------------
/doc/task_breakdown.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spotify/luigi/HEAD/doc/task_breakdown.png
--------------------------------------------------------------------------------
/doc/dependency_graph.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spotify/luigi/HEAD/doc/dependency_graph.png
--------------------------------------------------------------------------------
/doc/execution_model.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spotify/luigi/HEAD/doc/execution_model.png
--------------------------------------------------------------------------------
/doc/history_by_name.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spotify/luigi/HEAD/doc/history_by_name.png
--------------------------------------------------------------------------------
/doc/parameters_enum.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spotify/luigi/HEAD/doc/parameters_enum.png
--------------------------------------------------------------------------------
/doc/task_parameters.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spotify/luigi/HEAD/doc/task_parameters.png
--------------------------------------------------------------------------------
/doc/aggregate_artists.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spotify/luigi/HEAD/doc/aggregate_artists.png
--------------------------------------------------------------------------------
/doc/history_by_task_id.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spotify/luigi/HEAD/doc/history_by_task_id.png
--------------------------------------------------------------------------------
/doc/task_with_targets.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spotify/luigi/HEAD/doc/task_with_targets.png
--------------------------------------------------------------------------------
/test/auto_namespace_test/__init__.py:
--------------------------------------------------------------------------------
1 | import luigi
2 |
3 | luigi.auto_namespace(scope=__name__)
4 |
--------------------------------------------------------------------------------
/test/testconfig/luigi_local.toml:
--------------------------------------------------------------------------------
1 | [hdfs]
2 | namenode_host = "localhost"
3 | namenode_port = 50030
4 |
--------------------------------------------------------------------------------
/doc/parameters_recursion.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spotify/luigi/HEAD/doc/parameters_recursion.png
--------------------------------------------------------------------------------
/doc/visualiser_front_page.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spotify/luigi/HEAD/doc/visualiser_front_page.png
--------------------------------------------------------------------------------
/doc/parameters_date_algebra.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spotify/luigi/HEAD/doc/parameters_date_algebra.png
--------------------------------------------------------------------------------
/doc/tasks_with_dependencies.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spotify/luigi/HEAD/doc/tasks_with_dependencies.png
--------------------------------------------------------------------------------
/test/gcloud-credentials.json.enc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spotify/luigi/HEAD/test/gcloud-credentials.json.enc
--------------------------------------------------------------------------------
/test/testconfig/pyproject.toml:
--------------------------------------------------------------------------------
1 | [tool.mypy]
2 | plugins = ["luigi.mypy"]
3 | ignore_missing_imports = true
4 |
--------------------------------------------------------------------------------
/doc/tasks_input_output_requires.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spotify/luigi/HEAD/doc/tasks_input_output_requires.png
--------------------------------------------------------------------------------
/scripts/ci/stop_azurite.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 | docker stop "$(docker ps -q --filter ancestor=mcr.microsoft.com/azure-storage/azurite)"
--------------------------------------------------------------------------------
/luigi/static/visualiser/fonts/FontAwesome.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spotify/luigi/HEAD/luigi/static/visualiser/fonts/FontAwesome.otf
--------------------------------------------------------------------------------
/catalog-info.yaml:
--------------------------------------------------------------------------------
1 | apiVersion: backstage.io/v1alpha1
2 | kind: Component
3 | metadata:
4 | name: luigi
5 | spec:
6 | type: library
7 | owner: dataex
8 |
--------------------------------------------------------------------------------
/luigi/static/visualiser/fonts/fontawesome-webfont.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spotify/luigi/HEAD/luigi/static/visualiser/fonts/fontawesome-webfont.eot
--------------------------------------------------------------------------------
/luigi/static/visualiser/fonts/fontawesome-webfont.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spotify/luigi/HEAD/luigi/static/visualiser/fonts/fontawesome-webfont.ttf
--------------------------------------------------------------------------------
/luigi/static/visualiser/fonts/fontawesome-webfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spotify/luigi/HEAD/luigi/static/visualiser/fonts/fontawesome-webfont.woff
--------------------------------------------------------------------------------
/luigi/static/visualiser/fonts/fontawesome-webfont.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spotify/luigi/HEAD/luigi/static/visualiser/fonts/fontawesome-webfont.woff2
--------------------------------------------------------------------------------
/luigi/static/visualiser/lib/datatables/images/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spotify/luigi/HEAD/luigi/static/visualiser/lib/datatables/images/favicon.ico
--------------------------------------------------------------------------------
/luigi/static/visualiser/lib/datatables/images/sort_asc.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spotify/luigi/HEAD/luigi/static/visualiser/lib/datatables/images/sort_asc.png
--------------------------------------------------------------------------------
/luigi/static/visualiser/lib/datatables/images/sort_both.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spotify/luigi/HEAD/luigi/static/visualiser/lib/datatables/images/sort_both.png
--------------------------------------------------------------------------------
/luigi/static/visualiser/lib/datatables/images/sort_desc.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spotify/luigi/HEAD/luigi/static/visualiser/lib/datatables/images/sort_desc.png
--------------------------------------------------------------------------------
/luigi/static/visualiser/fonts/glyphicons-halflings-regular.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spotify/luigi/HEAD/luigi/static/visualiser/fonts/glyphicons-halflings-regular.eot
--------------------------------------------------------------------------------
/luigi/static/visualiser/fonts/glyphicons-halflings-regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spotify/luigi/HEAD/luigi/static/visualiser/fonts/glyphicons-halflings-regular.ttf
--------------------------------------------------------------------------------
/luigi/static/visualiser/fonts/glyphicons-halflings-regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spotify/luigi/HEAD/luigi/static/visualiser/fonts/glyphicons-halflings-regular.woff
--------------------------------------------------------------------------------
/luigi/static/visualiser/lib/datatables/images/Sorting icons.psd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spotify/luigi/HEAD/luigi/static/visualiser/lib/datatables/images/Sorting icons.psd
--------------------------------------------------------------------------------
/luigi/static/visualiser/lib/datatables/images/sort_asc_disabled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spotify/luigi/HEAD/luigi/static/visualiser/lib/datatables/images/sort_asc_disabled.png
--------------------------------------------------------------------------------
/luigi/static/visualiser/lib/datatables/images/sort_desc_disabled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spotify/luigi/HEAD/luigi/static/visualiser/lib/datatables/images/sort_desc_disabled.png
--------------------------------------------------------------------------------
/luigi/static/visualiser/lib/jquery-ui/css/images/animated-overlay.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spotify/luigi/HEAD/luigi/static/visualiser/lib/jquery-ui/css/images/animated-overlay.gif
--------------------------------------------------------------------------------
/luigi/static/visualiser/lib/jquery-ui/css/images/ui-icons_222222_256x240.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spotify/luigi/HEAD/luigi/static/visualiser/lib/jquery-ui/css/images/ui-icons_222222_256x240.png
--------------------------------------------------------------------------------
/luigi/static/visualiser/lib/jquery-ui/css/images/ui-icons_2e83ff_256x240.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spotify/luigi/HEAD/luigi/static/visualiser/lib/jquery-ui/css/images/ui-icons_2e83ff_256x240.png
--------------------------------------------------------------------------------
/luigi/static/visualiser/lib/jquery-ui/css/images/ui-icons_454545_256x240.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spotify/luigi/HEAD/luigi/static/visualiser/lib/jquery-ui/css/images/ui-icons_454545_256x240.png
--------------------------------------------------------------------------------
/luigi/static/visualiser/lib/jquery-ui/css/images/ui-icons_888888_256x240.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spotify/luigi/HEAD/luigi/static/visualiser/lib/jquery-ui/css/images/ui-icons_888888_256x240.png
--------------------------------------------------------------------------------
/luigi/static/visualiser/lib/jquery-ui/css/images/ui-icons_cd0a0a_256x240.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spotify/luigi/HEAD/luigi/static/visualiser/lib/jquery-ui/css/images/ui-icons_cd0a0a_256x240.png
--------------------------------------------------------------------------------
/luigi/static/visualiser/lib/jquery-ui/css/images/ui-bg_flat_0_aaaaaa_40x100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spotify/luigi/HEAD/luigi/static/visualiser/lib/jquery-ui/css/images/ui-bg_flat_0_aaaaaa_40x100.png
--------------------------------------------------------------------------------
/luigi/static/visualiser/lib/jquery-ui/css/images/ui-bg_flat_75_ffffff_40x100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spotify/luigi/HEAD/luigi/static/visualiser/lib/jquery-ui/css/images/ui-bg_flat_75_ffffff_40x100.png
--------------------------------------------------------------------------------
/luigi/static/visualiser/lib/jquery-ui/css/images/ui-bg_glass_55_fbf9ee_1x400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spotify/luigi/HEAD/luigi/static/visualiser/lib/jquery-ui/css/images/ui-bg_glass_55_fbf9ee_1x400.png
--------------------------------------------------------------------------------
/luigi/static/visualiser/lib/jquery-ui/css/images/ui-bg_glass_65_ffffff_1x400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spotify/luigi/HEAD/luigi/static/visualiser/lib/jquery-ui/css/images/ui-bg_glass_65_ffffff_1x400.png
--------------------------------------------------------------------------------
/luigi/static/visualiser/lib/jquery-ui/css/images/ui-bg_glass_75_dadada_1x400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spotify/luigi/HEAD/luigi/static/visualiser/lib/jquery-ui/css/images/ui-bg_glass_75_dadada_1x400.png
--------------------------------------------------------------------------------
/luigi/static/visualiser/lib/jquery-ui/css/images/ui-bg_glass_75_e6e6e6_1x400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spotify/luigi/HEAD/luigi/static/visualiser/lib/jquery-ui/css/images/ui-bg_glass_75_e6e6e6_1x400.png
--------------------------------------------------------------------------------
/luigi/static/visualiser/lib/jquery-ui/css/images/ui-bg_glass_95_fef1ec_1x400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spotify/luigi/HEAD/luigi/static/visualiser/lib/jquery-ui/css/images/ui-bg_glass_95_fef1ec_1x400.png
--------------------------------------------------------------------------------
/test/testconfig/luigi.cfg:
--------------------------------------------------------------------------------
1 | [core]
2 | logging_conf_file: test/testconfig/logging.cfg
3 |
4 | [hdfs]
5 | client: hadoopcli
6 | snakebite_autoconfig: false
7 | namenode_host: localhost
8 | namenode_port: 50030
9 |
--------------------------------------------------------------------------------
/luigi/static/visualiser/lib/jquery-ui/css/images/ui-bg_highlight-soft_75_cccccc_1x100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spotify/luigi/HEAD/luigi/static/visualiser/lib/jquery-ui/css/images/ui-bg_highlight-soft_75_cccccc_1x100.png
--------------------------------------------------------------------------------
/scripts/ci/conditional_tox.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | set -ex
4 |
5 | ENDENV=$(echo $TOXENV | tail -c 7)
6 | if [[ $ENDENV == gcloud ]]
7 | then
8 | [[ $DIDNT_CREATE_GCP_CREDS = 1 ]] || tox
9 | else
10 | tox --hashseed 1
11 | fi
12 |
--------------------------------------------------------------------------------
/luigi/static/visualiser/js/util.js:
--------------------------------------------------------------------------------
1 | function escapeHtml(unsafe) {
2 | return unsafe
3 | .replace(/&/g, "&")
4 | .replace(//g, ">")
6 | .replace(/"/g, """)
7 | .replace(/'/g, "'");
8 | }
9 |
--------------------------------------------------------------------------------
/test/testconfig/core-site.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |